diff --git a/.gitignore b/.gitignore index 562477c..7c1cdbd 100644 --- a/.gitignore +++ b/.gitignore @@ -31,3 +31,4 @@ opencryptoki-2.3.1.tar.gz /opencryptoki-3.17.0.tar.gz /opencryptoki-3.18.0.tar.gz /opencryptoki-3.19.0.tar.gz +/opencryptoki-3.21.0.tar.gz diff --git a/0001-EP11-Unify-key-pair-generation-functions.patch b/0001-EP11-Unify-key-pair-generation-functions.patch deleted file mode 100644 index 20ffbc7..0000000 --- a/0001-EP11-Unify-key-pair-generation-functions.patch +++ /dev/null @@ -1,809 +0,0 @@ -From 27088567f4375578e39c5b75b4ceae9dff231962 Mon Sep 17 00:00:00 2001 -From: Ingo Franzki -Date: Tue, 11 Oct 2022 13:46:08 +0200 -Subject: [PATCH 01/34] EP11: Unify key-pair generation functions - -Unify the DSA and DH key-pair generation functions with those for -RSA, EC and Dilithium. Make sure that the attribute handling is done -in the same sequence for all those functions. - -Also remove obsolete parameters for all the key-pair generation functions. - -Signed-off-by: Ingo Franzki ---- - usr/lib/ep11_stdll/ep11_specific.c | 494 ++++++++++++++----------------------- - 1 file changed, 187 insertions(+), 307 deletions(-) - -diff --git a/usr/lib/ep11_stdll/ep11_specific.c b/usr/lib/ep11_stdll/ep11_specific.c -index a6a33719..5d7c5607 100644 ---- a/usr/lib/ep11_stdll/ep11_specific.c -+++ b/usr/lib/ep11_stdll/ep11_specific.c -@@ -5374,15 +5374,10 @@ error: - - - --static CK_RV dh_generate_keypair(STDLL_TokData_t * tokdata, -- SESSION * sess, -+static CK_RV dh_generate_keypair(STDLL_TokData_t *tokdata, -+ SESSION *sess, - CK_MECHANISM_PTR pMechanism, -- TEMPLATE * publ_tmpl, TEMPLATE * priv_tmpl, -- CK_ATTRIBUTE_PTR pPublicKeyTemplate, -- CK_ULONG ulPublicKeyAttributeCount, -- CK_ATTRIBUTE_PTR pPrivateKeyTemplate, -- CK_ULONG ulPrivateKeyAttributeCount, -- CK_SESSION_HANDLE h) -+ TEMPLATE *publ_tmpl, TEMPLATE *priv_tmpl) - { - CK_RV rc; - CK_BYTE publblob[MAX_BLOBSIZE]; -@@ -5399,9 +5394,6 @@ static CK_RV dh_generate_keypair(STDLL_TokData_t * tokdata, - CK_ULONG dh_ulPublicKeyAttributeCount = 0; - CK_ATTRIBUTE_PTR dh_pPrivateKeyTemplate = NULL; - CK_ULONG dh_ulPrivateKeyAttributeCount = 0; -- size_t p_len = 0, g_len = 0; -- int new_public_attr; -- CK_ULONG i; - CK_ULONG data_len; - CK_ULONG field_len; - CK_BYTE *data; -@@ -5421,149 +5413,122 @@ static CK_RV dh_generate_keypair(STDLL_TokData_t * tokdata, - unsigned char *pg; - } dh_pgs; - -- UNUSED(h); -- - memset(&dh_pgs, 0, sizeof(dh_pgs)); - memset(publblob, 0, sizeof(publblob)); - memset(privblob, 0, sizeof(privblob)); - -- /* card does not want CKA_PRIME/CKA_BASE in template but in dh_pgs */ -- pPublicKeyTemplate_new = -- (CK_ATTRIBUTE *) malloc(sizeof(CK_ATTRIBUTE) * -- ulPublicKeyAttributeCount); -- if (!pPublicKeyTemplate_new) { -- TRACE_ERROR("%s Memory allocation failed\n", __func__); -- return CKR_HOST_MEMORY; -- } -- memset(pPublicKeyTemplate_new, 0, -- sizeof(CK_ATTRIBUTE) * ulPublicKeyAttributeCount); -- -- for (i = 0, new_public_attr = 0; i < ulPublicKeyAttributeCount; i++) { -- /* filter out CKA_PRIME/CKA_BASE, -- * but remember where they can be found -- */ -- switch (pPublicKeyTemplate[i].type) { -- case CKA_PRIME: -- prime_attr = &(pPublicKeyTemplate[i]); -- p_len = pPublicKeyTemplate[i].ulValueLen; -- break; -- case CKA_BASE: -- base_attr = &(pPublicKeyTemplate[i]); -- g_len = pPublicKeyTemplate[i].ulValueLen; -- break; -- default: -- /* copy all other attributes */ -- memcpy(&pPublicKeyTemplate_new[new_public_attr], -- &(pPublicKeyTemplate[i]), sizeof(CK_ATTRIBUTE)); -- new_public_attr++; -- } -+ rc = build_ep11_attrs(tokdata, publ_tmpl, &dh_pPublicKeyTemplate, -+ &dh_ulPublicKeyAttributeCount, -+ CKK_DH, CKO_PUBLIC_KEY, -1, pMechanism); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("%s build_ep11_attrs failed with rc=0x%lx\n", __func__, rc); -+ goto dh_generate_keypair_end; - } - -- if (prime_attr == NULL || base_attr == NULL) { -- TRACE_ERROR("%s Incomplete template prime_attr=%p base_attr=%p\n", -- __func__, (void *)prime_attr, (void *)base_attr); -- rc = CKR_TEMPLATE_INCOMPLETE; -+ rc = build_ep11_attrs(tokdata, priv_tmpl, &dh_pPrivateKeyTemplate, -+ &dh_ulPrivateKeyAttributeCount, -+ CKK_DH, CKO_PRIVATE_KEY, -1, pMechanism); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("%s build_ep11_attrs failed with rc=0x%lx\n", __func__, rc); - goto dh_generate_keypair_end; - } - -- /* copy CKA_PRIME/CKA_BASE to private template */ -- rc = build_attribute(CKA_PRIME, prime_attr->pValue, -- prime_attr->ulValueLen, &attr); -+ rc = check_key_attributes(tokdata, CKK_DH, CKO_PUBLIC_KEY, -+ dh_pPublicKeyTemplate, -+ dh_ulPublicKeyAttributeCount, -+ &new_publ_attrs, &new_publ_attrs_len, -1); - if (rc != CKR_OK) { -- TRACE_ERROR("%s build_attribute failed with rc=0x%lx\n", __func__, rc); -+ TRACE_ERROR("%s DH check public key attributes failed with " -+ "rc=0x%lx\n", __func__, rc); - goto dh_generate_keypair_end; - } -- rc = template_update_attribute(priv_tmpl, attr); -+ -+ rc = check_key_attributes(tokdata, CKK_DH, CKO_PRIVATE_KEY, -+ dh_pPrivateKeyTemplate, -+ dh_ulPrivateKeyAttributeCount, -+ &new_priv_attrs, &new_priv_attrs_len, -1); - if (rc != CKR_OK) { -- TRACE_ERROR("%s template_update_attribute failed with rc=0x%lx\n", -- __func__, rc); -- free(attr); -+ TRACE_ERROR("%s DH check private key attributes failed with " -+ "rc=0x%lx\n", __func__, rc); - goto dh_generate_keypair_end; - } -- rc = build_attribute(CKA_BASE, base_attr->pValue, -- base_attr->ulValueLen, &attr); -+ -+ /* card does not want CKA_PRIME/CKA_BASE in template but in dh_pgs */ -+ rc = template_attribute_get_non_empty(publ_tmpl, CKA_PRIME, -+ &prime_attr); - if (rc != CKR_OK) { -- TRACE_ERROR("%s build_attribute failed with rc=0x%lx\n", __func__, rc); -+ TRACE_ERROR("%s DH No CKA_PRIME attribute found\n", __func__); - goto dh_generate_keypair_end; - } -- rc = template_update_attribute(priv_tmpl, attr); -+ -+ rc = template_attribute_get_non_empty(publ_tmpl, CKA_BASE, -+ &base_attr); - if (rc != CKR_OK) { -- TRACE_ERROR("%s template_update_attribute failed with rc=0x%lx\n", -- __func__, rc); -- free(attr); -+ TRACE_ERROR("%s DH No CKA_BASE attribute found\n", __func__); - goto dh_generate_keypair_end; - } - -- /* copy CKA_PRIME/CKA_BASE values */ -- dh_pgs.pg = malloc(p_len * 2); -+ dh_pgs.pg = malloc(prime_attr->ulValueLen * 2); - if (!dh_pgs.pg) { - TRACE_ERROR("%s Memory allocation failed\n", __func__); - rc = CKR_HOST_MEMORY; - goto dh_generate_keypair_end; - } -- memset(dh_pgs.pg, 0, p_len * 2); -- memcpy(dh_pgs.pg, prime_attr->pValue, p_len); /* copy CKA_PRIME value */ -+ -+ memset(dh_pgs.pg, 0, prime_attr->ulValueLen * 2); -+ /* copy CKA_PRIME value */ -+ memcpy(dh_pgs.pg, prime_attr->pValue, prime_attr->ulValueLen); - /* copy CKA_BASE value, it must have leading zeros - * if it is shorter than CKA_PRIME - */ -- memcpy(dh_pgs.pg + p_len + (p_len - g_len), base_attr->pValue, g_len); -- dh_pgs.pg_bytes = p_len * 2; -+ memcpy(dh_pgs.pg + prime_attr->ulValueLen + -+ (prime_attr->ulValueLen - base_attr->ulValueLen), -+ base_attr->pValue, base_attr->ulValueLen); -+ dh_pgs.pg_bytes = prime_attr->ulValueLen * 2; - - #ifdef DEBUG - TRACE_DEBUG("%s P:\n", __func__); -- TRACE_DEBUG_DUMP(" ", &dh_pgs.pg[0], p_len); -+ TRACE_DEBUG_DUMP(" ", &dh_pgs.pg[0], prime_attr->ulValueLen); - TRACE_DEBUG("%s G:\n", __func__); -- TRACE_DEBUG_DUMP(" ", &dh_pgs.pg[p_len], p_len); -+ TRACE_DEBUG_DUMP(" ", &dh_pgs.pg[prime_attr->ulValueLen], -+ prime_attr->ulValueLen); - #endif - -- /* add special attribute, do not add it to ock's pPublicKeyTemplate */ -- CK_ATTRIBUTE pgs[] = { {CKA_IBM_STRUCT_PARAMS, (CK_VOID_PTR) dh_pgs.pg, -- dh_pgs.pg_bytes} -- }; -- memcpy(&(pPublicKeyTemplate_new[new_public_attr]), -- &(pgs[0]), sizeof(CK_ATTRIBUTE)); -- -- rc = check_key_attributes(tokdata, CKK_DH, CKO_PUBLIC_KEY, -- pPublicKeyTemplate_new, new_public_attr + 1, -- &dh_pPublicKeyTemplate, -- &dh_ulPublicKeyAttributeCount, -1); -+ rc = add_to_attribute_array(&new_publ_attrs, &new_publ_attrs_len, -+ CKA_IBM_STRUCT_PARAMS, dh_pgs.pg, -+ dh_pgs.pg_bytes); - if (rc != CKR_OK) { -- TRACE_ERROR("%s DH check public key attributes failed with " -- "rc=0x%lx\n", __func__, rc); -+ TRACE_ERROR("%s add_to_attribute_array failed with rc=0x%lx\n", -+ __func__, rc); - goto dh_generate_keypair_end; - } - -- rc = check_key_attributes(tokdata, CKK_DH, CKO_PRIVATE_KEY, -- pPrivateKeyTemplate, ulPrivateKeyAttributeCount, -- &dh_pPrivateKeyTemplate, -- &dh_ulPrivateKeyAttributeCount, -1); -+ /* copy CKA_PRIME/CKA_BASE to private template */ -+ rc = build_attribute(CKA_PRIME, prime_attr->pValue, -+ prime_attr->ulValueLen, &attr); - if (rc != CKR_OK) { -- TRACE_ERROR("%s DH check private key attributes failed with " -- "rc=0x%lx\n", __func__, rc); -+ TRACE_ERROR("%s build_attribute failed with rc=0x%lx\n", __func__, rc); - goto dh_generate_keypair_end; - } -- -- rc = build_ep11_attrs(tokdata, publ_tmpl, -- &new_publ_attrs, &new_publ_attrs_len, -- CKK_DH, CKO_PUBLIC_KEY, -1, pMechanism); -+ rc = template_update_attribute(priv_tmpl, attr); - if (rc != CKR_OK) { -- TRACE_ERROR("%s build_ep11_attrs failed with rc=0x%lx\n", __func__, rc); -+ TRACE_ERROR("%s template_update_attribute failed with rc=0x%lx\n", -+ __func__, rc); -+ free(attr); - goto dh_generate_keypair_end; - } - -- rc = add_to_attribute_array(&new_publ_attrs, &new_publ_attrs_len, -- CKA_IBM_STRUCT_PARAMS, (CK_VOID_PTR) dh_pgs.pg, -- dh_pgs.pg_bytes); -+ rc = build_attribute(CKA_BASE, base_attr->pValue, -+ base_attr->ulValueLen, &attr); - if (rc != CKR_OK) { -- TRACE_ERROR("%s add_to_attribute_array failed with rc=0x%lx\n", __func__, rc); -+ TRACE_ERROR("%s build_attribute failed with rc=0x%lx\n", __func__, rc); - goto dh_generate_keypair_end; - } -- -- rc = build_ep11_attrs(tokdata, priv_tmpl, -- &new_priv_attrs, &new_priv_attrs_len, -- CKK_DH, CKO_PRIVATE_KEY, -1, pMechanism); -+ rc = template_update_attribute(priv_tmpl, attr); - if (rc != CKR_OK) { -- TRACE_ERROR("%s build_ep11_attrs failed with rc=0x%lx\n", __func__, rc); -+ TRACE_ERROR("%s template_update_attribute failed with rc=0x%lx\n", -+ __func__, rc); -+ free(attr); - goto dh_generate_keypair_end; - } - -@@ -5573,10 +5538,10 @@ static CK_RV dh_generate_keypair(STDLL_TokData_t * tokdata, - new_priv_attrs, new_priv_attrs_len); - - ep11_get_pin_blob(ep11_session, -- (ep11_is_session_object -- (pPublicKeyTemplate, ulPublicKeyAttributeCount) -- || ep11_is_session_object(pPrivateKeyTemplate, -- ulPrivateKeyAttributeCount)), -+ (ep11_is_session_object(new_publ_attrs, -+ new_publ_attrs_len) || -+ ep11_is_session_object(new_priv_attrs, -+ new_priv_attrs_len)), - &ep11_pin_blob, &ep11_pin_blob_len); - - RETRY_START(rc, tokdata) -@@ -5595,7 +5560,7 @@ static CK_RV dh_generate_keypair(STDLL_TokData_t * tokdata, - } - - TRACE_INFO("%s rc=0x%lx plen=%zd publblobsize=0x%zx privblobsize=0x%zx\n", -- __func__, rc, p_len, publblobsize, privblobsize); -+ __func__, rc, prime_attr->ulValueLen, publblobsize, privblobsize); - - if (check_expected_mkvp(tokdata, privblob, privblobsize) != CKR_OK) { - TRACE_ERROR("%s\n", ock_err(ERR_DEVICE_ERROR)); -@@ -5700,15 +5665,10 @@ dh_generate_keypair_end: - return rc; - } - --static CK_RV dsa_generate_keypair(STDLL_TokData_t * tokdata, -- SESSION * sess, -+static CK_RV dsa_generate_keypair(STDLL_TokData_t *tokdata, -+ SESSION *sess, - CK_MECHANISM_PTR pMechanism, -- TEMPLATE * publ_tmpl, TEMPLATE * priv_tmpl, -- CK_ATTRIBUTE_PTR pPublicKeyTemplate, -- CK_ULONG ulPublicKeyAttributeCount, -- CK_ATTRIBUTE_PTR pPrivateKeyTemplate, -- CK_ULONG ulPrivateKeyAttributeCount, -- CK_SESSION_HANDLE h) -+ TEMPLATE *publ_tmpl, TEMPLATE *priv_tmpl) - { - CK_RV rc; - CK_BYTE publblob[MAX_BLOBSIZE]; -@@ -5721,9 +5681,6 @@ static CK_RV dsa_generate_keypair(STDLL_TokData_t * tokdata, - CK_ATTRIBUTE *opaque_attr = NULL; - CK_ATTRIBUTE *value_attr = NULL; - CK_ATTRIBUTE *attr = NULL; -- size_t p_len = 0, q_len = 0, g_len = 0; -- int new_public_attr; -- CK_ULONG i; - CK_ATTRIBUTE *pPublicKeyTemplate_new = NULL; - CK_BYTE *key; - CK_BYTE *data, *oid, *parm; -@@ -5737,8 +5694,6 @@ static CK_RV dsa_generate_keypair(STDLL_TokData_t * tokdata, - ep11_session_t *ep11_session = (ep11_session_t *) sess->private_data; - CK_ATTRIBUTE *new_publ_attrs = NULL, *new_priv_attrs = NULL; - CK_ULONG new_publ_attrs_len = 0, new_priv_attrs_len = 0; -- CK_ATTRIBUTE *new_publ_attrs2 = NULL, *new_priv_attrs2 = NULL; -- CK_ULONG new_publ_attrs2_len = 0, new_priv_attrs2_len = 0; - - /* ep11 accepts CKA_PRIME,CKA_SUBPRIME,CKA_BASE only in this format */ - struct { -@@ -5746,95 +5701,68 @@ static CK_RV dsa_generate_keypair(STDLL_TokData_t * tokdata, - unsigned char *pqg; - } dsa_pqgs; - -- UNUSED(h); -- - memset(&dsa_pqgs, 0, sizeof(dsa_pqgs)); - memset(publblob, 0, sizeof(publblob)); - memset(privblob, 0, sizeof(privblob)); - -- /* card does not want CKA_PRIME/CKA_BASE/CKA_SUBPRIME -- * in template but in dsa_pqgs -- */ -- pPublicKeyTemplate_new = -- (CK_ATTRIBUTE *) malloc(sizeof(CK_ATTRIBUTE) * -- ulPublicKeyAttributeCount); -- if (!pPublicKeyTemplate_new) { -- TRACE_ERROR("%s Memory allocation failed\n", __func__); -- return CKR_HOST_MEMORY; -- } -- memset(pPublicKeyTemplate_new, 0, -- sizeof(CK_ATTRIBUTE) * ulPublicKeyAttributeCount); -- -- for (i = 0, new_public_attr = 0; i < ulPublicKeyAttributeCount; i++) { -- switch (pPublicKeyTemplate[i].type) { -- case CKA_PRIME: -- prime_attr = &(pPublicKeyTemplate[i]); -- p_len = pPublicKeyTemplate[i].ulValueLen; -- break; -- case CKA_SUBPRIME: -- sub_prime_attr = &(pPublicKeyTemplate[i]); -- q_len = pPublicKeyTemplate[i].ulValueLen; -- break; -- case CKA_BASE: -- base_attr = &(pPublicKeyTemplate[i]); -- g_len = pPublicKeyTemplate[i].ulValueLen; -- break; -- default: -- /* copy all other attributes */ -- memcpy(&pPublicKeyTemplate_new[new_public_attr], -- &(pPublicKeyTemplate[i]), sizeof(CK_ATTRIBUTE)); -- new_public_attr++; -- } -- } -- -- if (prime_attr == NULL || sub_prime_attr == NULL || base_attr == NULL) { -- rc = CKR_TEMPLATE_INCOMPLETE; -+ rc = build_ep11_attrs(tokdata, publ_tmpl, &dsa_pPublicKeyTemplate, -+ &dsa_ulPublicKeyAttributeCount, -+ CKK_DSA, CKO_PUBLIC_KEY, -1, pMechanism); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("%s build_ep11_attrs failed with rc=0x%lx\n", __func__, rc); - goto dsa_generate_keypair_end; - } - -- /* copy CKA_PRIME/CKA_BASE/CKA_SUBPRIME to private template */ -- rc = build_attribute(CKA_PRIME, prime_attr->pValue, -- prime_attr->ulValueLen, &attr); -+ rc = build_ep11_attrs(tokdata, priv_tmpl, &dsa_pPrivateKeyTemplate, -+ &dsa_ulPrivateKeyAttributeCount, -+ CKK_DSA, CKO_PRIVATE_KEY, -1, pMechanism); - if (rc != CKR_OK) { -- TRACE_ERROR("%s build_attribute failed with rc=0x%lx\n", __func__, rc); -+ TRACE_ERROR("%s build_ep11_attrs failed with rc=0x%lx\n", __func__, rc); - goto dsa_generate_keypair_end; - } - -- rc = template_update_attribute(priv_tmpl, attr); -+ rc = check_key_attributes(tokdata, CKK_DSA, CKO_PUBLIC_KEY, -+ dsa_pPublicKeyTemplate, -+ dsa_ulPublicKeyAttributeCount, -+ &new_publ_attrs, &new_publ_attrs_len, -1); - if (rc != CKR_OK) { -- TRACE_ERROR("%s template_update_attribute failed with rc=0x%lx\n", -- __func__, rc); -- free(attr); -+ TRACE_ERROR("%s DSA check public key attributes failed with " -+ "rc=0x%lx\n", __func__, rc); - goto dsa_generate_keypair_end; - } - -- rc = build_attribute(CKA_BASE, base_attr->pValue, -- base_attr->ulValueLen, &attr); -+ rc = check_key_attributes(tokdata, CKK_DSA, CKO_PRIVATE_KEY, -+ dsa_pPrivateKeyTemplate, -+ dsa_ulPrivateKeyAttributeCount, -+ &new_priv_attrs, &new_priv_attrs_len, -1); - if (rc != CKR_OK) { -- TRACE_ERROR("%s build_attribute failed with rc=0x%lx\n", __func__, rc); -+ TRACE_ERROR("%s DSA check private key attributes failed with " -+ "rc=0x%lx\n", __func__, rc); - goto dsa_generate_keypair_end; - } - -- rc = template_update_attribute(priv_tmpl, attr); -+ /* -+ * card does not want CKA_PRIME/CKA_BASE/CKA_SUBPRIME in template but in -+ * dsa_pqgs -+ */ -+ rc = template_attribute_get_non_empty(publ_tmpl, CKA_PRIME, -+ &prime_attr); - if (rc != CKR_OK) { -- TRACE_ERROR("%s template_update_attribute failed with rc=0x%lx\n", -- __func__, rc); -- free(attr); -+ TRACE_ERROR("%s DSA No CKA_PRIME attribute found\n", __func__); - goto dsa_generate_keypair_end; - } - -- rc = build_attribute(CKA_SUBPRIME, sub_prime_attr->pValue, -- sub_prime_attr->ulValueLen, &attr); -+ rc = template_attribute_get_non_empty(publ_tmpl, CKA_SUBPRIME, -+ &sub_prime_attr); - if (rc != CKR_OK) { -- TRACE_ERROR("%s build_attribute failed with rc=0x%lx\n", __func__, rc); -+ TRACE_ERROR("%s DSA No CKA_SUBPRIME attribute found\n", __func__); - goto dsa_generate_keypair_end; - } - -- rc = template_update_attribute(priv_tmpl, attr); -+ rc = template_attribute_get_non_empty(publ_tmpl, CKA_BASE, -+ &base_attr); - if (rc != CKR_OK) { -- TRACE_ERROR("%s template_update_attribute failed with rc=0x%lx\n", -- __func__, rc); -- free(attr); -+ TRACE_ERROR("%s DSA No CKA_BASE attribute found\n", __func__); - goto dsa_generate_keypair_end; - } - -@@ -5842,95 +5770,102 @@ static CK_RV dsa_generate_keypair(STDLL_TokData_t * tokdata, - * then they are extented by leading zeros till they have - * the size of CKA_PRIME - */ -- dsa_pqgs.pqg = malloc(p_len * 3); -+ dsa_pqgs.pqg = malloc(prime_attr->ulValueLen * 3); - if (!dsa_pqgs.pqg) { - TRACE_ERROR("%s Memory allocation failed\n", __func__); - rc = CKR_HOST_MEMORY; - goto dsa_generate_keypair_end; - } -- memset(dsa_pqgs.pqg, 0, p_len * 3); -- memcpy(dsa_pqgs.pqg, prime_attr->pValue, p_len); -- memcpy(dsa_pqgs.pqg + p_len + (p_len - q_len), -- sub_prime_attr->pValue, q_len); -- memcpy(dsa_pqgs.pqg + 2 * p_len + (p_len - g_len), -- base_attr->pValue, g_len); -- dsa_pqgs.pqg_bytes = p_len * 3; -+ -+ memset(dsa_pqgs.pqg, 0, prime_attr->ulValueLen * 3); -+ memcpy(dsa_pqgs.pqg, prime_attr->pValue, prime_attr->ulValueLen); -+ memcpy(dsa_pqgs.pqg + prime_attr->ulValueLen + -+ (prime_attr->ulValueLen - sub_prime_attr->ulValueLen), -+ sub_prime_attr->pValue, sub_prime_attr->ulValueLen); -+ memcpy(dsa_pqgs.pqg + 2 * prime_attr->ulValueLen + -+ (prime_attr->ulValueLen - base_attr->ulValueLen), -+ base_attr->pValue, base_attr->ulValueLen); -+ dsa_pqgs.pqg_bytes = prime_attr->ulValueLen * 3; - - #ifdef DEBUG - TRACE_DEBUG("%s P:\n", __func__); -- TRACE_DEBUG_DUMP(" ", &dsa_pqgs.pqg[0], p_len); -+ TRACE_DEBUG_DUMP(" ", &dsa_pqgs.pqg[0], prime_attr->ulValueLen); - TRACE_DEBUG("%s Q:\n", __func__); -- TRACE_DEBUG_DUMP(" ", &dsa_pqgs.pqg[p_len], p_len); -+ TRACE_DEBUG_DUMP(" ", &dsa_pqgs.pqg[prime_attr->ulValueLen], -+ prime_attr->ulValueLen); - TRACE_DEBUG("%s G:\n", __func__); -- TRACE_DEBUG_DUMP(" ", &dsa_pqgs.pqg[2 * p_len], p_len); -+ TRACE_DEBUG_DUMP(" ", &dsa_pqgs.pqg[2 * prime_attr->ulValueLen], -+ prime_attr->ulValueLen); - #endif - -- CK_ATTRIBUTE pqgs[] = { {CKA_IBM_STRUCT_PARAMS, -- (CK_VOID_PTR) dsa_pqgs.pqg, dsa_pqgs.pqg_bytes} -- }; -- -- /* add special attribute, do not add it to ock's pPublicKeyTemplate */ -- memcpy(&(pPublicKeyTemplate_new[new_public_attr]), -- &(pqgs[0]), sizeof(CK_ATTRIBUTE)); -- -- rc = build_ep11_attrs(tokdata, publ_tmpl, -- &new_publ_attrs, &new_publ_attrs_len, -- CKK_DSA, CKO_PUBLIC_KEY, -1, pMechanism); -+ rc = add_to_attribute_array(&new_publ_attrs, &new_publ_attrs_len, -+ CKA_IBM_STRUCT_PARAMS, dsa_pqgs.pqg, -+ dsa_pqgs.pqg_bytes); - if (rc != CKR_OK) { -- TRACE_ERROR("%s build_ep11_attrs failed with rc=0x%lx\n", __func__, rc); -+ TRACE_ERROR("%s add_to_attribute_array failed with rc=0x%lx\n", -+ __func__, rc); - goto dsa_generate_keypair_end; - } - -- rc = check_key_attributes(tokdata, CKK_DSA, CKO_PUBLIC_KEY, -- new_publ_attrs, new_publ_attrs_len, -- &new_publ_attrs2, &new_publ_attrs2_len, -1); -+ /* copy CKA_PRIME/CKA_BASE/CKA_SUBPRIME to private template */ -+ rc = build_attribute(CKA_PRIME, prime_attr->pValue, -+ prime_attr->ulValueLen, &attr); - if (rc != CKR_OK) { -- TRACE_ERROR("%s DSA check public key attributes failed with " -- "rc=0x%lx\n", __func__, rc); -+ TRACE_ERROR("%s build_attribute failed with rc=0x%lx\n", __func__, rc); - goto dsa_generate_keypair_end; - } -- -- rc = add_to_attribute_array(&new_publ_attrs2, &new_publ_attrs2_len, -- CKA_IBM_STRUCT_PARAMS, (CK_VOID_PTR) dsa_pqgs.pqg, -- dsa_pqgs.pqg_bytes); -+ rc = template_update_attribute(priv_tmpl, attr); - if (rc != CKR_OK) { -- TRACE_ERROR("%s add_to_attribute_array failed with rc=0x%lx\n", __func__, rc); -+ TRACE_ERROR("%s template_update_attribute failed with rc=0x%lx\n", -+ __func__, rc); -+ free(attr); - goto dsa_generate_keypair_end; - } - -- rc = build_ep11_attrs(tokdata, priv_tmpl, -- &new_priv_attrs, &new_priv_attrs_len, -- CKK_DSA, CKO_PRIVATE_KEY, -1, pMechanism); -+ rc = build_attribute(CKA_SUBPRIME, sub_prime_attr->pValue, -+ sub_prime_attr->ulValueLen, &attr); - if (rc != CKR_OK) { -- TRACE_ERROR("%s build_ep11_attrs failed with rc=0x%lx\n", __func__, rc); -+ TRACE_ERROR("%s build_attribute failed with rc=0x%lx\n", __func__, rc); -+ goto dsa_generate_keypair_end; -+ } -+ rc = template_update_attribute(priv_tmpl, attr); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("%s template_update_attribute failed with rc=0x%lx\n", -+ __func__, rc); -+ free(attr); - goto dsa_generate_keypair_end; - } - -- rc = check_key_attributes(tokdata, CKK_DSA, CKO_PRIVATE_KEY, -- new_priv_attrs, new_priv_attrs_len, -- &new_priv_attrs2, &new_priv_attrs2_len, -1); -+ rc = build_attribute(CKA_BASE, base_attr->pValue, -+ base_attr->ulValueLen, &attr); - if (rc != CKR_OK) { -- TRACE_ERROR("%s DSA check private key attributes failed with " -- "rc=0x%lx\n", __func__, rc); -+ TRACE_ERROR("%s build_attribute failed with rc=0x%lx\n", __func__, rc); -+ goto dsa_generate_keypair_end; -+ } -+ rc = template_update_attribute(priv_tmpl, attr); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("%s template_update_attribute failed with rc=0x%lx\n", -+ __func__, rc); -+ free(attr); - goto dsa_generate_keypair_end; - } - - trace_attributes(__func__, "DSA public key attributes:", -- new_publ_attrs2, new_publ_attrs2_len); -+ new_publ_attrs, new_publ_attrs_len); - trace_attributes(__func__, "DSA private key attributes:", -- new_priv_attrs2, new_priv_attrs2_len); -+ new_priv_attrs, new_priv_attrs_len); - - ep11_get_pin_blob(ep11_session, -- (ep11_is_session_object -- (pPublicKeyTemplate, ulPublicKeyAttributeCount) -- || ep11_is_session_object(pPrivateKeyTemplate, -- ulPrivateKeyAttributeCount)), -+ (ep11_is_session_object(new_publ_attrs, -+ new_publ_attrs_len) || -+ ep11_is_session_object(new_priv_attrs, -+ new_priv_attrs_len)), - &ep11_pin_blob, &ep11_pin_blob_len); - - RETRY_START(rc, tokdata) - rc = dll_m_GenerateKeyPair(pMechanism, -- new_publ_attrs2, new_publ_attrs2_len, -- new_priv_attrs2, new_priv_attrs2_len, -+ new_publ_attrs, new_publ_attrs_len, -+ new_priv_attrs, new_priv_attrs_len, - ep11_pin_blob, ep11_pin_blob_len, privblob, - &privblobsize, publblob, &publblobsize, - target_info->target); -@@ -5943,10 +5878,8 @@ static CK_RV dsa_generate_keypair(STDLL_TokData_t * tokdata, - goto dsa_generate_keypair_end; - } - -- TRACE_INFO("%s rc=0x%lx p_len=%zd publblobsize=0x%zx privblobsize=0x%zx " -- "npattr=0x%x\n", -- __func__, rc, p_len, publblobsize, privblobsize, -- new_public_attr + 1); -+ TRACE_INFO("%s rc=0x%lx plen=%zd publblobsize=0x%zx privblobsize=0x%zx\n", -+ __func__, rc, prime_attr->ulValueLen, publblobsize, privblobsize); - - if (check_expected_mkvp(tokdata, privblob, privblobsize) != CKR_OK) { - TRACE_ERROR("%s\n", ock_err(ERR_DEVICE_ERROR)); -@@ -6030,22 +5963,13 @@ dsa_generate_keypair_end: - free_attribute_array(new_publ_attrs, new_publ_attrs_len); - if (new_priv_attrs) - free_attribute_array(new_priv_attrs, new_priv_attrs_len); -- if (new_publ_attrs2) -- free_attribute_array(new_publ_attrs2, new_publ_attrs2_len); -- if (new_priv_attrs) -- free_attribute_array(new_priv_attrs2, new_priv_attrs2_len); - return rc; - } - --static CK_RV rsa_ec_generate_keypair(STDLL_TokData_t * tokdata, -- SESSION * sess, -+static CK_RV rsa_ec_generate_keypair(STDLL_TokData_t *tokdata, -+ SESSION *sess, - CK_MECHANISM_PTR pMechanism, -- TEMPLATE * publ_tmpl, TEMPLATE * priv_tmpl, -- CK_ATTRIBUTE_PTR pPublicKeyTemplate, -- CK_ULONG ulPublicKeyAttributeCount, -- CK_ATTRIBUTE_PTR pPrivateKeyTemplate, -- CK_ULONG ulPrivateKeyAttributeCount, -- CK_SESSION_HANDLE h) -+ TEMPLATE *publ_tmpl, TEMPLATE *priv_tmpl) - { - CK_RV rc; - CK_ATTRIBUTE *attr = NULL; -@@ -6054,7 +5978,6 @@ static CK_RV rsa_ec_generate_keypair(STDLL_TokData_t * tokdata, - size_t privkey_blob_len = sizeof(privkey_blob); - unsigned char spki[MAX_BLOBSIZE]; - size_t spki_len = sizeof(spki); -- CK_ULONG i; - CK_ULONG bit_str_len; - CK_BYTE *key; - CK_BYTE *data, *oid, *parm; -@@ -6074,8 +5997,6 @@ static CK_RV rsa_ec_generate_keypair(STDLL_TokData_t * tokdata, - CK_ULONG new_publ_attrs2_len = 0, new_priv_attrs2_len = 0; - const struct _ec *curve = NULL; - -- UNUSED(h); -- - if (pMechanism->mechanism == CKM_EC_KEY_PAIR_GEN) { - ktype = CKK_EC; - } else if ((pMechanism->mechanism == CKM_RSA_PKCS_KEY_PAIR_GEN) || -@@ -6132,24 +6053,16 @@ static CK_RV rsa_ec_generate_keypair(STDLL_TokData_t * tokdata, - goto error; - } - -- /* debug */ -- for (i = 0; i < new_ulPrivateKeyAttributeCount; i++) { -- TRACE_INFO("%s gen priv attr type=0x%lx valuelen=0x%lx attrcnt=0x%lx\n", -- __func__, new_pPrivateKeyTemplate[i].type, -- new_pPrivateKeyTemplate[i].ulValueLen, -- new_ulPrivateKeyAttributeCount); -- } -- - trace_attributes(__func__, "RSA/EC public key attributes:", - new_publ_attrs2, new_publ_attrs2_len); - trace_attributes(__func__, "RSA/EC private key attributes:", - new_priv_attrs2, new_priv_attrs2_len); - - ep11_get_pin_blob(ep11_session, -- (ep11_is_session_object -- (pPublicKeyTemplate, ulPublicKeyAttributeCount) -- || ep11_is_session_object(pPrivateKeyTemplate, -- ulPrivateKeyAttributeCount)), -+ (ep11_is_session_object(new_publ_attrs2, -+ new_publ_attrs2_len) || -+ ep11_is_session_object(new_priv_attrs2, -+ new_priv_attrs2_len)), - &ep11_pin_blob, &ep11_pin_blob_len); - - RETRY_START(rc, tokdata) -@@ -6406,15 +6319,10 @@ error: - return rc; - } - --static CK_RV ibm_dilithium_generate_keypair(STDLL_TokData_t * tokdata, -- SESSION * sess, -+static CK_RV ibm_dilithium_generate_keypair(STDLL_TokData_t *tokdata, -+ SESSION *sess, - CK_MECHANISM_PTR pMechanism, -- TEMPLATE * publ_tmpl, TEMPLATE * priv_tmpl, -- CK_ATTRIBUTE_PTR pPublicKeyTemplate, -- CK_ULONG ulPublicKeyAttributeCount, -- CK_ATTRIBUTE_PTR pPrivateKeyTemplate, -- CK_ULONG ulPrivateKeyAttributeCount, -- CK_SESSION_HANDLE h) -+ TEMPLATE *publ_tmpl, TEMPLATE *priv_tmpl) - { - CK_RV rc; - CK_ATTRIBUTE *attr = NULL; -@@ -6422,7 +6330,6 @@ static CK_RV ibm_dilithium_generate_keypair(STDLL_TokData_t * tokdata, - size_t privkey_blob_len = sizeof(privkey_blob); - unsigned char spki[MAX_BLOBSIZE]; - size_t spki_len = sizeof(spki); -- CK_ULONG i; - CK_ULONG bit_str_len; - CK_BYTE *key; - CK_BYTE *data, *oid, *parm; -@@ -6444,8 +6351,6 @@ static CK_RV ibm_dilithium_generate_keypair(STDLL_TokData_t * tokdata, - const CK_BYTE dilithium_oid[] = { 0x06, 0x0b, 0x2b, 0x06, 0x01, 0x04, 0x01, - 0x02, 0x82, 0x0b, 0x01, 0x06, 0x05 }; - -- UNUSED(h); -- - if (pMechanism->mechanism != CKM_IBM_DILITHIUM) { - TRACE_ERROR("Invalid mechanism provided for %s\n ", __func__); - return CKR_MECHANISM_INVALID; -@@ -6503,24 +6408,16 @@ static CK_RV ibm_dilithium_generate_keypair(STDLL_TokData_t * tokdata, - goto error; - } - -- /* debug */ -- for (i = 0; i < new_ulPrivateKeyAttributeCount; i++) { -- TRACE_INFO("%s gen priv attr type=0x%lx valuelen=0x%lx attrcnt=0x%lx\n", -- __func__, new_pPrivateKeyTemplate[i].type, -- new_pPrivateKeyTemplate[i].ulValueLen, -- new_ulPrivateKeyAttributeCount); -- } -- - trace_attributes(__func__, "Dilithium public key attributes:", - new_publ_attrs2, new_publ_attrs2_len); - trace_attributes(__func__, "Dilithium private key attributes:", - new_priv_attrs2, new_priv_attrs2_len); - - ep11_get_pin_blob(ep11_session, -- (ep11_is_session_object -- (pPublicKeyTemplate, ulPublicKeyAttributeCount) -- || ep11_is_session_object(pPrivateKeyTemplate, -- ulPrivateKeyAttributeCount)), -+ (ep11_is_session_object(new_publ_attrs2, -+ new_publ_attrs2_len) || -+ ep11_is_session_object(new_priv_attrs2, -+ new_priv_attrs2_len)), - &ep11_pin_blob, &ep11_pin_blob_len); - - RETRY_START(rc, tokdata) -@@ -6763,42 +6660,25 @@ CK_RV ep11tok_generate_key_pair(STDLL_TokData_t * tokdata, SESSION * sess, - case CKM_DH_PKCS_KEY_PAIR_GEN: - rc = dh_generate_keypair(tokdata, sess, pMechanism, - public_key_obj->template, -- private_key_obj->template, -- pPublicKeyTemplate, -- ulPublicKeyAttributeCount, -- pPrivateKeyTemplate, -- ulPrivateKeyAttributeCount, sess->handle); -+ private_key_obj->template); - break; - case CKM_EC_KEY_PAIR_GEN: /* takes same parameters as RSA */ - case CKM_RSA_PKCS_KEY_PAIR_GEN: - case CKM_RSA_X9_31_KEY_PAIR_GEN: - rc = rsa_ec_generate_keypair(tokdata, sess, pMechanism, - public_key_obj->template, -- private_key_obj->template, -- pPublicKeyTemplate, -- ulPublicKeyAttributeCount, -- pPrivateKeyTemplate, -- ulPrivateKeyAttributeCount, sess->handle); -+ private_key_obj->template); - break; - case CKM_DSA_PARAMETER_GEN: - case CKM_DSA_KEY_PAIR_GEN: - rc = dsa_generate_keypair(tokdata, sess, pMechanism, - public_key_obj->template, -- private_key_obj->template, -- pPublicKeyTemplate, -- ulPublicKeyAttributeCount, -- pPrivateKeyTemplate, -- ulPrivateKeyAttributeCount, sess->handle); -+ private_key_obj->template); - break; - case CKM_IBM_DILITHIUM: - rc = ibm_dilithium_generate_keypair(tokdata, sess, pMechanism, - public_key_obj->template, -- private_key_obj->template, -- pPublicKeyTemplate, -- ulPublicKeyAttributeCount, -- pPrivateKeyTemplate, -- ulPrivateKeyAttributeCount, -- sess->handle); -+ private_key_obj->template); - break; - default: - TRACE_ERROR("%s invalid mech %s\n", __func__, --- -2.16.2.windows.1 - diff --git a/0002-EP11-Do-not-report-DSA-DH-parameter-generation-as-be.patch b/0002-EP11-Do-not-report-DSA-DH-parameter-generation-as-be.patch deleted file mode 100644 index a8804be..0000000 --- a/0002-EP11-Do-not-report-DSA-DH-parameter-generation-as-be.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 8310482e5c46d6a15894c4d3ebf8156264175282 Mon Sep 17 00:00:00 2001 -From: Ingo Franzki -Date: Wed, 12 Oct 2022 09:00:51 +0200 -Subject: [PATCH 02/34] EP11: Do not report DSA/DH parameter generation as - being supported - -Mechanisms CKM_DSA_PARAMETER_GEN and CKM_DH_PKCS_PARAMETER_GEN were -reported to be supported in the mechanism list of the EP11 token, but -they never were really supported in the code. - -Remove them from the mechanism list. - -Signed-off-by: Ingo Franzki ---- - usr/lib/ep11_stdll/ep11_specific.c | 3 --- - 1 file changed, 3 deletions(-) - -diff --git a/usr/lib/ep11_stdll/ep11_specific.c b/usr/lib/ep11_stdll/ep11_specific.c -index 5d7c5607..737b373b 100644 ---- a/usr/lib/ep11_stdll/ep11_specific.c -+++ b/usr/lib/ep11_stdll/ep11_specific.c -@@ -6669,7 +6669,6 @@ CK_RV ep11tok_generate_key_pair(STDLL_TokData_t * tokdata, SESSION * sess, - public_key_obj->template, - private_key_obj->template); - break; -- case CKM_DSA_PARAMETER_GEN: - case CKM_DSA_KEY_PAIR_GEN: - rc = dsa_generate_keypair(tokdata, sess, pMechanism, - public_key_obj->template, -@@ -9042,10 +9041,8 @@ static const CK_MECHANISM_TYPE ep11_supported_mech_list[] = { - CKM_DES3_KEY_GEN, - CKM_DH_PKCS_DERIVE, - CKM_DH_PKCS_KEY_PAIR_GEN, -- CKM_DH_PKCS_PARAMETER_GEN, - CKM_DSA, - CKM_DSA_KEY_PAIR_GEN, -- CKM_DSA_PARAMETER_GEN, - CKM_DSA_SHA1, - CKM_EC_KEY_PAIR_GEN, - CKM_ECDH1_DERIVE, --- -2.16.2.windows.1 - diff --git a/0003-EP11-Do-not-pass-empty-CKA_PUBLIC_KEY_INFO-to-EP11-h.patch b/0003-EP11-Do-not-pass-empty-CKA_PUBLIC_KEY_INFO-to-EP11-h.patch deleted file mode 100644 index 54f1961..0000000 --- a/0003-EP11-Do-not-pass-empty-CKA_PUBLIC_KEY_INFO-to-EP11-h.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 993274f7b968caa908bdc3bf560ece55e40c875a Mon Sep 17 00:00:00 2001 -From: Ingo Franzki -Date: Fri, 21 Oct 2022 10:03:40 +0200 -Subject: [PATCH 03/34] EP11: Do not pass empty CKA_PUBLIC_KEY_INFO to EP11 - host library - -Newer EP11 host library versions do not like empty (zero length) -attributes of type CKA_PUBLIC_KEY_INFO. Filter them out when building -the attribute list passed to the EP11 host library - -Signed-off-by: Ingo Franzki ---- - usr/lib/ep11_stdll/ep11_specific.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/usr/lib/ep11_stdll/ep11_specific.c b/usr/lib/ep11_stdll/ep11_specific.c -index 737b373b..d3688c56 100644 ---- a/usr/lib/ep11_stdll/ep11_specific.c -+++ b/usr/lib/ep11_stdll/ep11_specific.c -@@ -1968,6 +1968,11 @@ static CK_RV build_ep11_attrs(STDLL_TokData_t * tokdata, TEMPLATE *template, - case CKA_NEVER_EXTRACTABLE: - case CKA_LOCAL: - break; -+ /* EP11 does not like empty (zero length) attributes of that types */ -+ case CKA_PUBLIC_KEY_INFO: -+ if (attr->ulValueLen == 0) -+ break; -+ /* Fallthrough */ - default: - if (attr->ulValueLen > 0 && attr->pValue == NULL) - return CKR_ATTRIBUTE_VALUE_INVALID; --- -2.16.2.windows.1 - diff --git a/0004-Mechtable-CKM_IBM_DILITHIUM-can-also-be-used-for-key.patch b/0004-Mechtable-CKM_IBM_DILITHIUM-can-also-be-used-for-key.patch deleted file mode 100644 index 87d2e93..0000000 --- a/0004-Mechtable-CKM_IBM_DILITHIUM-can-also-be-used-for-key.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 3b8f82b2aaf34fa67901aa27f85ae7973d5553d0 Mon Sep 17 00:00:00 2001 -From: Ingo Franzki -Date: Fri, 21 Oct 2022 10:10:36 +0200 -Subject: [PATCH 04/34] Mechtable: CKM_IBM_DILITHIUM can also be used for key - generation - -Currently this is not used anywhere, but let's correct it anyway. - -Signed-off-by: Ingo Franzki ---- - usr/lib/api/mechtable.inc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/usr/lib/api/mechtable.inc b/usr/lib/api/mechtable.inc -index 4a28192c..f74e08b7 100644 ---- a/usr/lib/api/mechtable.inc -+++ b/usr/lib/api/mechtable.inc -@@ -78,7 +78,7 @@ const struct mechrow mechtable_rows[] = - { "CKM_IBM_ATTRIBUTEBOUND_WRAP", CKM_IBM_ATTRIBUTEBOUND_WRAP, 0, MC_INFORMATION_UNAVAILABLE, MCF_WRAPUNWRAP | MCF_NEEDSPARAM }, - { "CKM_IBM_BTC_DERIVE", CKM_IBM_BTC_DERIVE, 0, MC_INFORMATION_UNAVAILABLE, MCF_DERIVE | MCF_NEEDSPARAM }, - { "CKM_IBM_CMAC", CKM_IBM_CMAC, 0, MC_KEY_DEPENDENT, MCF_SIGNVERIFY }, -- { "CKM_IBM_DILITHIUM", CKM_IBM_DILITHIUM, 0, 3366, MCF_SIGNVERIFY },/* Size unknown */ -+ { "CKM_IBM_DILITHIUM", CKM_IBM_DILITHIUM, 0, 3366, MCF_KEYGEN | MCF_SIGNVERIFY }, - { "CKM_IBM_ECDSA_OTHER", CKM_IBM_ECDSA_OTHER, 0, MC_KEY_DEPENDENT, MCF_SIGNVERIFY | MCF_NEEDSPARAM }, - { "CKM_IBM_EC_X25519", CKM_IBM_EC_X25519, 0, MC_INFORMATION_UNAVAILABLE, MCF_DERIVE }, - { "CKM_IBM_EC_X448", CKM_IBM_EC_X448, 0, MC_INFORMATION_UNAVAILABLE, MCF_DERIVE }, --- -2.16.2.windows.1 - diff --git a/0005-EP11-Remove-DSA-DH-parameter-generation-mechanisms-f.patch b/0005-EP11-Remove-DSA-DH-parameter-generation-mechanisms-f.patch deleted file mode 100644 index 3a7baa0..0000000 --- a/0005-EP11-Remove-DSA-DH-parameter-generation-mechanisms-f.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 7b4b5ef263aaa202667f318f4dcb09b01d3f025a Mon Sep 17 00:00:00 2001 -From: Ingo Franzki -Date: Mon, 24 Oct 2022 12:58:16 +0200 -Subject: [PATCH 05/34] EP11: Remove DSA/DH parameter generation mechanisms - from CP filter - -Commit 836f2a25b928127c3bfb8f94a57cc16aa76a84c3 removed the DSA/DH -parameter generation mechanisms CKM_DSA_PARAMETER_GEN and -CKM_DH_PKCS_PARAMETER_GEN from the EP11 token code. Also remove -them from the CP filter config file and from a comment in the code. - -Signed-off-by: Ingo Franzki ---- - usr/lib/ep11_stdll/ep11_specific.c | 3 +-- - usr/lib/ep11_stdll/ep11cpfilter.conf | 8 ++++---- - 2 files changed, 5 insertions(+), 6 deletions(-) - -diff --git a/usr/lib/ep11_stdll/ep11_specific.c b/usr/lib/ep11_stdll/ep11_specific.c -index d3688c56..432790f1 100644 ---- a/usr/lib/ep11_stdll/ep11_specific.c -+++ b/usr/lib/ep11_stdll/ep11_specific.c -@@ -1720,8 +1720,7 @@ static CK_RV check_key_attributes(STDLL_TokData_t * tokdata, - check_types = &check_types_pub[0]; - attr_cnt = sizeof(check_types_pub) / sizeof(CK_ULONG); - } -- /* do nothing for CKM_DH_PKCS_KEY_PAIR_GEN -- and CKM_DH_PKCS_PARAMETER_GEN and CKK_IBM_PQC_DILITHIUM */ -+ /* do nothing for CKM_DH_PKCS_KEY_PAIR_GEN and CKK_IBM_PQC_DILITHIUM */ - break; - case CKO_PRIVATE_KEY: - if ((kt == CKK_EC) || (kt == CKK_ECDSA) || (kt == CKK_DSA)) { -diff --git a/usr/lib/ep11_stdll/ep11cpfilter.conf b/usr/lib/ep11_stdll/ep11cpfilter.conf -index 6d979053..0d3a6b3f 100644 ---- a/usr/lib/ep11_stdll/ep11cpfilter.conf -+++ b/usr/lib/ep11_stdll/ep11cpfilter.conf -@@ -48,20 +48,20 @@ XCP_CPB_UNWRAP_SYMM: CKM_AES_CBC, CKM_AES_CBC_PAD, CKM_DES3_CBC, CKM_DES3_CBC_PA - # generate asymmetric keypairs - XCP_CPB_KEYGEN_ASYMM: CKM_RSA_PKCS_KEY_PAIR_GEN, CKM_RSA_X9_31_KEY_PAIR_GEN, CKM_EC_KEY_PAIR_GEN, CKM_DSA_KEY_PAIR_GEN, CKM_DH_PKCS_KEY_PAIR_GEN - --# generate or derive symmetric keys, including DSA parameters --XCP_CPB_KEYGEN_SYMM: CKM_AES_KEY_GEN, CKM_DES2_KEY_GEN, CKM_DES3_KEY_GEN, CKM_DSA_PARAMETER_GEN, CKM_DH_PKCS_PARAMETER_GEN, CKM_PBE_SHA1_DES3_EDE_CBC, CKM_DES_KEY_GEN, CKM_GENERIC_SECRET_KEY_GEN -+# generate or derive symmetric keys -+XCP_CPB_KEYGEN_SYMM: CKM_AES_KEY_GEN, CKM_DES2_KEY_GEN, CKM_DES3_KEY_GEN, CKM_PBE_SHA1_DES3_EDE_CBC, CKM_DES_KEY_GEN, CKM_GENERIC_SECRET_KEY_GEN - - # RSA private-key or key-encrypt use - XCP_CPB_ALG_RSA: CKM_RSA_PKCS, CKM_RSA_PKCS_KEY_PAIR_GEN, CKM_RSA_X9_31_KEY_PAIR_GEN, CKM_RSA_PKCS_PSS, CKM_SHA1_RSA_X9_31, CKM_SHA1_RSA_PKCS, CKM_SHA1_RSA_PKCS_PSS, CKM_SHA256_RSA_PKCS, CKM_SHA256_RSA_PKCS_PSS, CKM_SHA224_RSA_PKCS, CKM_SHA224_RSA_PKCS_PSS, CKM_SHA384_RSA_PKCS, CKM_SHA384_RSA_PKCS_PSS, CKM_SHA512_RSA_PKCS, CKM_SHA512_RSA_PKCS_PSS, CKM_RSA_X9_31 - - # DSA private-key use --XCP_CPB_ALG_DSA: CKM_DSA_PARAMETER_GEN, CKM_DSA_KEY_PAIR_GEN, CKM_DSA, CKM_DSA_SHA1 -+XCP_CPB_ALG_DSA: CKM_DSA_KEY_PAIR_GEN, CKM_DSA, CKM_DSA_SHA1 - - # EC private-key use - XCP_CPB_ALG_EC: CKM_EC_KEY_PAIR_GEN, CKM_ECDH1_DERIVE, CKM_ECDSA, CKM_ECDSA_SHA224, CKM_ECDSA_SHA256, CKM_ECDSA_SHA384, CKM_ECDSA_SHA512 - - # Diffie-Hellman use (private keys) --XCP_CPB_ALG_DH: CKM_ECDH1_DERIVE, CKM_DH_PKCS_PARAMETER_GEN, CKM_DH_PKCS_KEY_PAIR_GEN, CKM_DH_PKCS_DERIVE -+XCP_CPB_ALG_DH: CKM_ECDH1_DERIVE, CKM_DH_PKCS_KEY_PAIR_GEN, CKM_DH_PKCS_DERIVE - - # allow key derivation (symmetric+EC/DH) - XCP_CPB_DERIVE: CKM_SHA1_KEY_DERIVATION, CKM_SHA256_KEY_DERIVATION, CKM_SHA384_KEY_DERIVATION, CKM_SHA512_KEY_DERIVATION, CKM_SHA224_KEY_DERIVATION, CKM_ECDH1_DERIVE, CKM_DH_PKCS_DERIVE --- -2.16.2.windows.1 - diff --git a/0006-EP11-Pass-back-chain-code-for-CKM_IBM_BTC_DERIVE.patch b/0006-EP11-Pass-back-chain-code-for-CKM_IBM_BTC_DERIVE.patch deleted file mode 100644 index 3cbb5e2..0000000 --- a/0006-EP11-Pass-back-chain-code-for-CKM_IBM_BTC_DERIVE.patch +++ /dev/null @@ -1,68 +0,0 @@ -From c6d6be8b7c1c1fa346af420daada56e28da5af6d Mon Sep 17 00:00:00 2001 -From: Ingo Franzki -Date: Fri, 4 Nov 2022 09:44:35 +0100 -Subject: [PATCH 06/34] EP11: Pass back chain code for CKM_IBM_BTC_DERIVE - -When deriving a key using CKM_IBM_BTC_DERIVE, the resulting chain code -must be passed back in the buffer supplied by the caller in the -mechanism parameter (field pChainCode in CK_IBM_BTC_DERIVE_PARAMS). -This chain code can then be used to derive further keys from the just -derived key. - -Note that field ulChainCodeLen must be zero for any BTC master key -derivation, but pChainCode must still point to a buffer of 32 bytes -(CK_IBM_BTC_CHAINCODE_LENGTH) to receive the resulting chain code. - -Signed-off-by: Ingo Franzki ---- - usr/lib/ep11_stdll/ep11_specific.c | 20 ++++++++++++++++++++ - 1 file changed, 20 insertions(+) - -diff --git a/usr/lib/ep11_stdll/ep11_specific.c b/usr/lib/ep11_stdll/ep11_specific.c -index 432790f1..a56b5b82 100644 ---- a/usr/lib/ep11_stdll/ep11_specific.c -+++ b/usr/lib/ep11_stdll/ep11_specific.c -@@ -4988,6 +4988,7 @@ CK_RV ep11tok_derive_key(STDLL_TokData_t * tokdata, SESSION * session, - CK_ULONG used_firmware_API_version; - CK_MECHANISM_PTR mech_orig = mech; - CK_ATTRIBUTE *ec_params; -+ CK_IBM_BTC_DERIVE_PARAMS *btc_params = NULL; - - memset(newblob, 0, sizeof(newblob)); - -@@ -5106,6 +5107,18 @@ CK_RV ep11tok_derive_key(STDLL_TokData_t * tokdata, SESSION * session, - } - } - -+ if (mech->mechanism == CKM_IBM_BTC_DERIVE) { -+ if (mech->ulParameterLen != sizeof(CK_IBM_BTC_DERIVE_PARAMS) || -+ mech->pParameter == NULL) { -+ TRACE_ERROR("%s Param NULL or len for %s wrong: %lu\n", -+ __func__, ep11_get_ckm(tokdata, mech->mechanism), -+ mech->ulParameterLen); -+ return CKR_MECHANISM_PARAM_INVALID; -+ } -+ -+ btc_params = (CK_IBM_BTC_DERIVE_PARAMS *)mech->pParameter; -+ } -+ - rc = h_opaque_2_blob(tokdata, hBaseKey, &keyblob, &keyblobsize, - &base_key_obj, READ_LOCK); - if (rc != CKR_OK) { -@@ -5300,6 +5313,13 @@ CK_RV ep11tok_derive_key(STDLL_TokData_t * tokdata, SESSION * session, - } - opaque_attr = NULL; - -+ if (mech->mechanism == CKM_IBM_BTC_DERIVE && -+ btc_params != NULL && btc_params->pChainCode != NULL && -+ cslen >= CK_IBM_BTC_CHAINCODE_LENGTH) { -+ memcpy(btc_params->pChainCode, csum, CK_IBM_BTC_CHAINCODE_LENGTH); -+ btc_params->ulChainCodeLen = CK_IBM_BTC_CHAINCODE_LENGTH; -+ } -+ - if (mech->mechanism == CKM_IBM_BTC_DERIVE && class == CKO_PUBLIC_KEY) { - /* Derived blob is an SPKI, extract public EC key attributes */ - rc = ecdsa_priv_unwrap_get_data(key_obj->template, --- -2.16.2.windows.1 - diff --git a/0007-EP11-Supply-CKA_PUBLIC_KEY_INFO-with-CKM_IBM_BTC_DER.patch b/0007-EP11-Supply-CKA_PUBLIC_KEY_INFO-with-CKM_IBM_BTC_DER.patch deleted file mode 100644 index f35d967..0000000 --- a/0007-EP11-Supply-CKA_PUBLIC_KEY_INFO-with-CKM_IBM_BTC_DER.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 63a42a9398f5ec7b2b139810ee7b5beb7ad1abc3 Mon Sep 17 00:00:00 2001 -From: Ingo Franzki -Date: Fri, 4 Nov 2022 09:31:29 +0100 -Subject: [PATCH 07/34] EP11: Supply CKA_PUBLIC_KEY_INFO with - CKM_IBM_BTC_DERIVE of public key - -When deriving a public EC key with the CKM_IBM_BTC_DERIVE mechanism, -also supply the SPKI in the CKA_PUBLIC_KEY_INFO attribute. - -Signed-off-by: Ingo Franzki ---- - usr/lib/ep11_stdll/ep11_specific.c | 28 ++++++++++++++++++++++++++++ - 1 file changed, 28 insertions(+) - -diff --git a/usr/lib/ep11_stdll/ep11_specific.c b/usr/lib/ep11_stdll/ep11_specific.c -index a56b5b82..886692c4 100644 ---- a/usr/lib/ep11_stdll/ep11_specific.c -+++ b/usr/lib/ep11_stdll/ep11_specific.c -@@ -4989,6 +4989,9 @@ CK_RV ep11tok_derive_key(STDLL_TokData_t * tokdata, SESSION * session, - CK_MECHANISM_PTR mech_orig = mech; - CK_ATTRIBUTE *ec_params; - CK_IBM_BTC_DERIVE_PARAMS *btc_params = NULL; -+ CK_BYTE *spki = NULL; -+ CK_ULONG spki_length = 0; -+ CK_ATTRIBUTE *spki_attr = NULL; - - memset(newblob, 0, sizeof(newblob)); - -@@ -5329,6 +5332,29 @@ CK_RV ep11tok_derive_key(STDLL_TokData_t * tokdata, SESSION * session, - __func__, rc); - goto error; - } -+ -+ /* Extract the SPKI and add CKA_PUBLIC_KEY_INFO to key */ -+ rc = publ_key_get_spki(key_obj->template, ktype, FALSE, -+ &spki, &spki_length); -+ if (rc != CKR_OK) { -+ TRACE_DEVEL("publ_key_get_spki failed\n"); -+ goto error; -+ } -+ -+ rc = build_attribute(CKA_PUBLIC_KEY_INFO, spki, spki_length, &spki_attr); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("%s build_attribute failed with rc=0x%lx\n", -+ __func__, rc); -+ goto error; -+ } -+ -+ rc = template_update_attribute(key_obj->template, spki_attr); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("%s template_update_attribute failed with " -+ "rc=0x%lx\n", __func__, rc); -+ goto error; -+ } -+ spki_attr = NULL; - } - - if (class == CKO_SECRET_KEY || class == CKO_PRIVATE_KEY) { -@@ -5381,6 +5407,8 @@ error: - free(opaque_attr); - if (chk_attr != NULL) - free(chk_attr); -+ if (spki_attr != NULL) -+ free(spki_attr); - if (new_attrs) - free_attribute_array(new_attrs, new_attrs_len); - if (new_attrs1) --- -2.16.2.windows.1 - diff --git a/0008-EP11-Supply-CKA_PUBLIC_KEY_INFO-when-importing-priva.patch b/0008-EP11-Supply-CKA_PUBLIC_KEY_INFO-when-importing-priva.patch deleted file mode 100644 index 2b8233f..0000000 --- a/0008-EP11-Supply-CKA_PUBLIC_KEY_INFO-when-importing-priva.patch +++ /dev/null @@ -1,347 +0,0 @@ -From b8bc3e183b43e9aeee8a8f23c8e48fffb6eedc35 Mon Sep 17 00:00:00 2001 -From: Ingo Franzki -Date: Fri, 4 Nov 2022 10:51:08 +0100 -Subject: [PATCH 08/34] EP11: Supply CKA_PUBLIC_KEY_INFO when importing private - keys - -When importing private keys, the SPKI of the corresponding public key -is returned in parameters csum/cslen of the m_UnwrapKey() EP11 host -library call. Supply this SPKI as CKA_PUBLIC_KEY_INFO to the object. - -For public key import, the common code already builds the SPKI from -the clear public key attributes of the imported public key. - -Signed-off-by: Ingo Franzki ---- - usr/lib/common/obj_mgr.c | 5 ++ - usr/lib/ep11_stdll/ep11_specific.c | 113 +++++++++++++++++++++++++------------ - 2 files changed, 83 insertions(+), 35 deletions(-) - -diff --git a/usr/lib/common/obj_mgr.c b/usr/lib/common/obj_mgr.c -index 8e61cbd4..347ec3f3 100644 ---- a/usr/lib/common/obj_mgr.c -+++ b/usr/lib/common/obj_mgr.c -@@ -123,6 +123,11 @@ CK_RV object_mgr_add(STDLL_TokData_t *tokdata, - switch(class) { - case CKO_PUBLIC_KEY: - case CKO_PRIVATE_KEY: -+ /* Skip if there is already a non-empty CKA_PUBLIC_KEY_INFO */ -+ if (template_attribute_get_non_empty(o->template, CKA_PUBLIC_KEY_INFO, -+ &spki_attr) == CKR_OK) -+ break; -+ - rc = template_attribute_get_ulong(o->template, CKA_KEY_TYPE, &keytype); - if (rc != CKR_OK) { - TRACE_ERROR("Could not find CKA_KEY_TYPE for the key object.\n"); -diff --git a/usr/lib/ep11_stdll/ep11_specific.c b/usr/lib/ep11_stdll/ep11_specific.c -index 886692c4..3b14a557 100644 ---- a/usr/lib/ep11_stdll/ep11_specific.c -+++ b/usr/lib/ep11_stdll/ep11_specific.c -@@ -2745,9 +2745,10 @@ static int get_curve_type_from_template(TEMPLATE *tmpl) - * SPKIs for public imported RSA keys. - * Similar to rawkey_2_blob, but keys must follow a standard BER encoding. - */ --static CK_RV import_RSA_key(STDLL_TokData_t * tokdata, SESSION * sess, -- OBJECT * rsa_key_obj, -- CK_BYTE * blob, size_t * blob_size) -+static CK_RV import_RSA_key(STDLL_TokData_t *tokdata, SESSION *sess, -+ OBJECT *rsa_key_obj, -+ CK_BYTE *blob, size_t *blob_size, -+ CK_BYTE *spki, size_t *spki_size) - { - ep11_private_data_t *ep11_data = tokdata->private_data; - CK_RV rc; -@@ -2759,8 +2760,6 @@ static CK_RV import_RSA_key(STDLL_TokData_t * tokdata, SESSION * sess, - CK_ULONG attrs_len = 0; - CK_ATTRIBUTE_PTR new_p_attrs = NULL; - CK_ULONG new_attrs_len = 0; -- CK_BYTE csum[MAX_BLOBSIZE]; -- CK_ULONG cslen = sizeof(csum); - CK_OBJECT_CLASS class; - CK_BYTE *data = NULL; - CK_ULONG data_len; -@@ -2831,6 +2830,8 @@ static CK_RV import_RSA_key(STDLL_TokData_t * tokdata, SESSION * sess, - goto import_RSA_key_end; - } - -+ *spki_size = 0; /* common code will extract SPKI from object */ -+ - } else { - - /* imported private RSA key goes here */ -@@ -2884,7 +2885,7 @@ static CK_RV import_RSA_key(STDLL_TokData_t * tokdata, SESSION * sess, - ep11_data->raw2key_wrap_blob_l, NULL, ~0, - ep11_pin_blob, ep11_pin_blob_len, &mech_w, - new_p_attrs, new_attrs_len, blob, blob_size, -- csum, &cslen, target_info->target); -+ spki, spki_size, target_info->target); - RETRY_END(rc, tokdata, sess) - - if (rc != CKR_OK) { -@@ -2921,9 +2922,10 @@ import_RSA_key_end: - * SPKIs for public imported EC keys. - * Similar to rawkey_2_blob, but keys must follow a standard BER encoding. - */ --static CK_RV import_EC_key(STDLL_TokData_t * tokdata, SESSION * sess, -- OBJECT * ec_key_obj, -- CK_BYTE * blob, size_t * blob_size) -+static CK_RV import_EC_key(STDLL_TokData_t *tokdata, SESSION *sess, -+ OBJECT *ec_key_obj, -+ CK_BYTE *blob, size_t *blob_size, -+ CK_BYTE *spki, size_t *spki_size) - { - ep11_private_data_t *ep11_data = tokdata->private_data; - CK_RV rc; -@@ -2935,8 +2937,6 @@ static CK_RV import_EC_key(STDLL_TokData_t * tokdata, SESSION * sess, - CK_ULONG attrs_len = 0; - CK_ATTRIBUTE_PTR new_p_attrs = NULL; - CK_ULONG new_attrs_len = 0; -- CK_BYTE csum[MAX_BLOBSIZE]; -- CK_ULONG cslen = sizeof(csum); - CK_OBJECT_CLASS class; - CK_BYTE *data = NULL; - CK_ULONG data_len; -@@ -3059,6 +3059,8 @@ static CK_RV import_EC_key(STDLL_TokData_t * tokdata, SESSION * sess, - goto import_EC_key_end; - } - -+ *spki_size = 0; /* common code will extract SPKI from object */ -+ - } else { - - /* imported private EC key goes here */ -@@ -3115,7 +3117,8 @@ static CK_RV import_EC_key(STDLL_TokData_t * tokdata, SESSION * sess, - ep11_pin_blob, - ep11_pin_blob_len, &mech_w, - new_p_attrs, new_attrs_len, blob, -- blob_size, csum, &cslen, target_info->target); -+ blob_size, spki, spki_size, -+ target_info->target); - RETRY_END(rc, tokdata, sess) - - if (rc != CKR_OK) { -@@ -3149,9 +3152,10 @@ import_EC_key_end: - * SPKIs for public imported DSA keys. - * Similar to rawkey_2_blob, but keys must follow a standard BER encoding. - */ --static CK_RV import_DSA_key(STDLL_TokData_t * tokdata, SESSION * sess, -- OBJECT * dsa_key_obj, -- CK_BYTE * blob, size_t * blob_size) -+static CK_RV import_DSA_key(STDLL_TokData_t *tokdata, SESSION *sess, -+ OBJECT *dsa_key_obj, -+ CK_BYTE *blob, size_t *blob_size, -+ CK_BYTE *spki, size_t *spki_size) - { - ep11_private_data_t *ep11_data = tokdata->private_data; - CK_RV rc; -@@ -3163,8 +3167,6 @@ static CK_RV import_DSA_key(STDLL_TokData_t * tokdata, SESSION * sess, - CK_ULONG attrs_len = 0; - CK_ATTRIBUTE_PTR new_p_attrs = NULL; - CK_ULONG new_attrs_len = 0; -- CK_BYTE csum[MAX_BLOBSIZE]; -- CK_ULONG cslen = sizeof(csum); - CK_OBJECT_CLASS class; - CK_BYTE *data = NULL; - CK_ULONG data_len; -@@ -3251,6 +3253,8 @@ static CK_RV import_DSA_key(STDLL_TokData_t * tokdata, SESSION * sess, - goto import_DSA_key_end; - } - -+ *spki_size = 0; /* common code will extract SPKI from object */ -+ - } else { - - /* imported private DSA key goes here */ -@@ -3307,7 +3311,8 @@ static CK_RV import_DSA_key(STDLL_TokData_t * tokdata, SESSION * sess, - ep11_pin_blob, - ep11_pin_blob_len, &mech_w, - new_p_attrs, new_attrs_len, blob, -- blob_size, csum, &cslen, target_info->target); -+ blob_size, spki, spki_size, -+ target_info->target); - RETRY_END(rc, tokdata, sess) - - if (rc != CKR_OK) { -@@ -3339,9 +3344,10 @@ import_DSA_key_end: - * SPKIs for public imported DH keys. - * Similar to rawkey_2_blob, but keys must follow a standard BER encoding. - */ --static CK_RV import_DH_key(STDLL_TokData_t * tokdata, SESSION * sess, -- OBJECT * dh_key_obj, -- CK_BYTE * blob, size_t * blob_size) -+static CK_RV import_DH_key(STDLL_TokData_t *tokdata, SESSION *sess, -+ OBJECT *dh_key_obj, -+ CK_BYTE *blob, size_t *blob_size, -+ CK_BYTE *spki, size_t *spki_size) - { - ep11_private_data_t *ep11_data = tokdata->private_data; - CK_RV rc; -@@ -3353,8 +3359,6 @@ static CK_RV import_DH_key(STDLL_TokData_t * tokdata, SESSION * sess, - CK_ULONG attrs_len = 0; - CK_ATTRIBUTE_PTR new_p_attrs = NULL; - CK_ULONG new_attrs_len = 0; -- CK_BYTE csum[MAX_BLOBSIZE]; -- CK_ULONG cslen = sizeof(csum); - CK_OBJECT_CLASS class; - CK_BYTE *data = NULL; - CK_ULONG data_len; -@@ -3433,6 +3437,8 @@ static CK_RV import_DH_key(STDLL_TokData_t * tokdata, SESSION * sess, - goto import_DH_key_end; - } - -+ *spki_size = 0; /* common code will extract SPKI from object */ -+ - } else { - CK_ATTRIBUTE *value; - CK_ATTRIBUTE *value_bits; -@@ -3500,7 +3506,8 @@ static CK_RV import_DH_key(STDLL_TokData_t * tokdata, SESSION * sess, - ep11_pin_blob, - ep11_pin_blob_len, &mech_w, - new_p_attrs, new_attrs_len, blob, -- blob_size, csum, &cslen, target_info->target); -+ blob_size, spki, spki_size, -+ target_info->target); - RETRY_END(rc, tokdata, sess) - - if (rc != CKR_OK) { -@@ -3547,9 +3554,10 @@ import_DH_key_end: - * SPKIs for public imported IBM Dilithium keys. - * Similar to rawkey_2_blob, but keys must follow a standard BER encoding. - */ --static CK_RV import_IBM_Dilithium_key(STDLL_TokData_t * tokdata, SESSION * sess, -- OBJECT * dilithium_key_obj, -- CK_BYTE * blob, size_t * blob_size) -+static CK_RV import_IBM_Dilithium_key(STDLL_TokData_t *tokdata, SESSION *sess, -+ OBJECT *dilithium_key_obj, -+ CK_BYTE *blob, size_t *blob_size, -+ CK_BYTE *spki, size_t *spki_size) - { - ep11_private_data_t *ep11_data = tokdata->private_data; - CK_RV rc; -@@ -3561,8 +3569,6 @@ static CK_RV import_IBM_Dilithium_key(STDLL_TokData_t * tokdata, SESSION * sess, - CK_ULONG attrs_len = 0; - CK_ATTRIBUTE_PTR new_p_attrs = NULL; - CK_ULONG new_attrs_len = 0; -- CK_BYTE csum[MAX_BLOBSIZE]; -- CK_ULONG cslen = sizeof(csum); - CK_OBJECT_CLASS class; - CK_BYTE *data = NULL; - CK_ULONG data_len; -@@ -3652,6 +3658,8 @@ static CK_RV import_IBM_Dilithium_key(STDLL_TokData_t * tokdata, SESSION * sess, - goto done; - } - -+ *spki_size = 0; /* common code will extract SPKI from object */ -+ - } else { - - /* imported private IBM Dilithium key goes here */ -@@ -3709,7 +3717,8 @@ static CK_RV import_IBM_Dilithium_key(STDLL_TokData_t * tokdata, SESSION * sess, - ep11_pin_blob, - ep11_pin_blob_len, &mech_w, - new_p_attrs, new_attrs_len, blob, -- blob_size, csum, &cslen, target_info->target); -+ blob_size, spki, spki_size, -+ target_info->target); - RETRY_END(rc, tokdata, sess) - - if (rc != CKR_OK) { -@@ -3747,9 +3756,13 @@ CK_RV token_specific_object_add(STDLL_TokData_t * tokdata, SESSION * sess, - CK_ATTRIBUTE *attr = NULL; - CK_BYTE blob[MAX_BLOBSIZE]; - size_t blobsize = sizeof(blob); -+ CK_BYTE spki[MAX_BLOBSIZE]; -+ size_t spkisize = sizeof(spki); - CK_RV rc; - CK_ULONG class; - CK_BBOOL attrbound; -+ CK_BYTE *temp; -+ CK_ULONG temp_len; - - /* get key type */ - rc = template_attribute_get_ulong(obj->template, CKA_KEY_TYPE, &keytype); -@@ -3783,7 +3796,8 @@ CK_RV token_specific_object_add(STDLL_TokData_t * tokdata, SESSION * sess, - /* only these keys can be imported */ - switch (keytype) { - case CKK_RSA: -- rc = import_RSA_key(tokdata, sess, obj, blob, &blobsize); -+ rc = import_RSA_key(tokdata, sess, obj, blob, &blobsize, -+ spki, &spkisize); - if (rc != CKR_OK) { - TRACE_ERROR("%s import RSA key rc=0x%lx blobsize=0x%zx\n", - __func__, rc, blobsize); -@@ -3793,7 +3807,8 @@ CK_RV token_specific_object_add(STDLL_TokData_t * tokdata, SESSION * sess, - __func__, rc, blobsize); - break; - case CKK_EC: -- rc = import_EC_key(tokdata, sess, obj, blob, &blobsize); -+ rc = import_EC_key(tokdata, sess, obj, blob, &blobsize, -+ spki, &spkisize); - if (rc != CKR_OK) { - TRACE_ERROR("%s import EC key rc=0x%lx blobsize=0x%zx\n", - __func__, rc, blobsize); -@@ -3803,7 +3818,8 @@ CK_RV token_specific_object_add(STDLL_TokData_t * tokdata, SESSION * sess, - __func__, rc, blobsize); - break; - case CKK_DSA: -- rc = import_DSA_key(tokdata, sess, obj, blob, &blobsize); -+ rc = import_DSA_key(tokdata, sess, obj, blob, &blobsize, -+ spki, &spkisize); - if (rc != CKR_OK) { - TRACE_ERROR("%s import DSA key rc=0x%lx blobsize=0x%zx\n", - __func__, rc, blobsize); -@@ -3813,7 +3829,8 @@ CK_RV token_specific_object_add(STDLL_TokData_t * tokdata, SESSION * sess, - __func__, rc, blobsize); - break; - case CKK_DH: -- rc = import_DH_key(tokdata, sess, obj, blob, &blobsize); -+ rc = import_DH_key(tokdata, sess, obj, blob, &blobsize, -+ spki, &spkisize); - if (rc != CKR_OK) { - TRACE_ERROR("%s import DH key rc=0x%lx blobsize=0x%zx\n", - __func__, rc, blobsize); -@@ -3823,7 +3840,8 @@ CK_RV token_specific_object_add(STDLL_TokData_t * tokdata, SESSION * sess, - __func__, rc, blobsize); - break; - case CKK_IBM_PQC_DILITHIUM: -- rc = import_IBM_Dilithium_key(tokdata, sess, obj, blob, &blobsize); -+ rc = import_IBM_Dilithium_key(tokdata, sess, obj, blob, &blobsize, -+ spki, &spkisize); - if (rc != CKR_OK) { - TRACE_ERROR("%s import IBM Dilithium key rc=0x%lx blobsize=0x%zx\n", - __func__, rc, blobsize); -@@ -3891,6 +3909,31 @@ CK_RV token_specific_object_add(STDLL_TokData_t * tokdata, SESSION * sess, - return rc; - } - -+ if (spkisize > 0 && (class == CKO_PRIVATE_KEY || class == CKO_PUBLIC_KEY)) { -+ /* spki may be a MACed SPKI, get length of SPKI part only */ -+ rc = ber_decode_SEQUENCE(spki, &temp, &temp_len, &spkisize); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("%s ber_decode_SEQUENCE failed rc=0x%lx\n", -+ __func__, rc); -+ return rc; -+ } -+ -+ rc = build_attribute(CKA_PUBLIC_KEY_INFO, spki, spkisize, &attr); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("%s build_attribute failed with rc=0x%lx\n", __func__, -+ rc); -+ return rc; -+ } -+ -+ rc = template_update_attribute(obj->template, attr); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("%s template_update_attribute failed with rc=0x%lx\n", -+ __func__, rc); -+ free(attr); -+ return rc; -+ } -+ } -+ - rc = update_ep11_attrs_from_blob(tokdata, sess, obj->template); - if (rc != CKR_OK) { - TRACE_ERROR("%s update_ep11_attrs_from_blob failed with rc=0x%lx\n", --- -2.16.2.windows.1 - diff --git a/0009-EP11-Fix-memory-leak-introduced-with-recent-commit.patch b/0009-EP11-Fix-memory-leak-introduced-with-recent-commit.patch deleted file mode 100644 index a42bfbf..0000000 --- a/0009-EP11-Fix-memory-leak-introduced-with-recent-commit.patch +++ /dev/null @@ -1,31 +0,0 @@ -From b17570340533d36db1782e5aeafc9107c607b7c4 Mon Sep 17 00:00:00 2001 -From: Ingo Franzki -Date: Mon, 7 Nov 2022 14:04:01 +0100 -Subject: [PATCH 09/34] EP11: Fix memory leak introduced with recent commit - -Function publ_key_get_spki() allocates the SPKI buffer, so it must be freed -afterwards. - -Fixes: 638fa126c8cb28ff7daf2bb383a0461c8f9fe6f8 - -Signed-off-by: Ingo Franzki ---- - usr/lib/ep11_stdll/ep11_specific.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/usr/lib/ep11_stdll/ep11_specific.c b/usr/lib/ep11_stdll/ep11_specific.c -index 3b14a557..9e320503 100644 ---- a/usr/lib/ep11_stdll/ep11_specific.c -+++ b/usr/lib/ep11_stdll/ep11_specific.c -@@ -5452,6 +5452,8 @@ error: - free(chk_attr); - if (spki_attr != NULL) - free(spki_attr); -+ if (spki != NULL) -+ free(spki); - if (new_attrs) - free_attribute_array(new_attrs, new_attrs_len); - if (new_attrs1) --- -2.16.2.windows.1 - diff --git a/0010-p11sak-Fix-segfault-when-dilithium-version-is-not-sp.patch b/0010-p11sak-Fix-segfault-when-dilithium-version-is-not-sp.patch deleted file mode 100644 index 0795559..0000000 --- a/0010-p11sak-Fix-segfault-when-dilithium-version-is-not-sp.patch +++ /dev/null @@ -1,34 +0,0 @@ -From bea2552c40339d9013eaaa55b13491c7e36fbadf Mon Sep 17 00:00:00 2001 -From: Ingo Franzki -Date: Tue, 8 Nov 2022 15:49:22 +0100 -Subject: [PATCH 10/34] p11sak: Fix segfault when dilithium version is not - specified with generate-key - -Command 'p11sak generate-key ibm-dilithium' segfaults because the dilithium -version is not specified, but the code does not check for a NULL pointer. - -Signed-off-by: Ingo Franzki ---- - usr/sbin/p11sak/p11sak.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/usr/sbin/p11sak/p11sak.c b/usr/sbin/p11sak/p11sak.c -index b399c88a..8cfcb21d 100644 ---- a/usr/sbin/p11sak/p11sak.c -+++ b/usr/sbin/p11sak/p11sak.c -@@ -1843,6 +1843,12 @@ static CK_RV check_args_gen_key(p11sak_kt *kt, CK_ULONG keylength, - case kt_3DES: - break; - case kt_IBM_DILITHIUM: -+ if (dilithium_ver == NULL) { -+ fprintf(stderr, -+ "Cipher key type [%d] supported but Dilithium version not set in arguments. Try adding argument \n", -+ *kt); -+ return CKR_ARGUMENTS_BAD; -+ } - if (strcasecmp(dilithium_ver, "r2_65") == 0) { - break; - } else { --- -2.16.2.windows.1 - diff --git a/0011-EP11-remove-dead-code-and-unused-variables.patch b/0011-EP11-remove-dead-code-and-unused-variables.patch deleted file mode 100644 index 543b28f..0000000 --- a/0011-EP11-remove-dead-code-and-unused-variables.patch +++ /dev/null @@ -1,118 +0,0 @@ -From ee3464dff7536c98fd64c80d87c765f703dff0f0 Mon Sep 17 00:00:00 2001 -From: Ingo Franzki -Date: Fri, 18 Nov 2022 10:44:56 +0100 -Subject: [PATCH 11/34] EP11: remove dead code and unused variables - -Some variables are declared and initialized to NULL, but never used or set. -The attempt to free them at the end of the function is dead code. - -Signed-off-by: Ingo Franzki ---- - usr/lib/ep11_stdll/ep11_specific.c | 28 ---------------------------- - 1 file changed, 28 deletions(-) - -diff --git a/usr/lib/ep11_stdll/ep11_specific.c b/usr/lib/ep11_stdll/ep11_specific.c -index 9e320503..1dbfe0f5 100644 ---- a/usr/lib/ep11_stdll/ep11_specific.c -+++ b/usr/lib/ep11_stdll/ep11_specific.c -@@ -3575,7 +3575,6 @@ static CK_RV import_IBM_Dilithium_key(STDLL_TokData_t *tokdata, SESSION *sess, - unsigned char *ep11_pin_blob = NULL; - CK_ULONG ep11_pin_blob_len = 0; - ep11_session_t *ep11_session = (ep11_session_t *) sess->private_data; -- CK_BYTE *pubkey = NULL; - - memcpy(iv, "1234567812345678", AES_BLOCK_SIZE); - -@@ -3734,9 +3733,6 @@ static CK_RV import_IBM_Dilithium_key(STDLL_TokData_t *tokdata, SESSION *sess, - } - - done: -- -- if (pubkey) -- free(pubkey); - if (data) { - OPENSSL_cleanse(data, data_len); - free(data); -@@ -5486,7 +5482,6 @@ static CK_RV dh_generate_keypair(STDLL_TokData_t *tokdata, - CK_ATTRIBUTE *opaque_attr = NULL; - CK_ATTRIBUTE *value_attr = NULL; - CK_ATTRIBUTE *attr = NULL; -- CK_ATTRIBUTE *pPublicKeyTemplate_new = NULL; - CK_ATTRIBUTE_PTR dh_pPublicKeyTemplate = NULL; - CK_ULONG dh_ulPublicKeyAttributeCount = 0; - CK_ATTRIBUTE_PTR dh_pPrivateKeyTemplate = NULL; -@@ -5746,7 +5741,6 @@ static CK_RV dh_generate_keypair(STDLL_TokData_t *tokdata, - } - - dh_generate_keypair_end: -- free(pPublicKeyTemplate_new); - if (dh_pgs.pg != NULL) - free(dh_pgs.pg); - if (dh_pPublicKeyTemplate) -@@ -5778,7 +5772,6 @@ static CK_RV dsa_generate_keypair(STDLL_TokData_t *tokdata, - CK_ATTRIBUTE *opaque_attr = NULL; - CK_ATTRIBUTE *value_attr = NULL; - CK_ATTRIBUTE *attr = NULL; -- CK_ATTRIBUTE *pPublicKeyTemplate_new = NULL; - CK_BYTE *key; - CK_BYTE *data, *oid, *parm; - CK_ULONG data_len, field_len, bit_str_len, oid_len, parm_len; -@@ -6047,7 +6040,6 @@ static CK_RV dsa_generate_keypair(STDLL_TokData_t *tokdata, - } - - dsa_generate_keypair_end: -- free(pPublicKeyTemplate_new); - if (dsa_pqgs.pqg != NULL) - free(dsa_pqgs.pqg); - if (dsa_pPublicKeyTemplate) -@@ -6080,10 +6072,6 @@ static CK_RV rsa_ec_generate_keypair(STDLL_TokData_t *tokdata, - CK_BYTE *data, *oid, *parm; - CK_ULONG data_len, oid_len, parm_len; - CK_ULONG field_len; -- CK_ATTRIBUTE_PTR new_pPublicKeyTemplate = NULL; -- CK_ULONG new_ulPublicKeyAttributeCount = 0; -- CK_ATTRIBUTE_PTR new_pPrivateKeyTemplate = NULL; -- CK_ULONG new_ulPrivateKeyAttributeCount = 0; - CK_ULONG ktype; - unsigned char *ep11_pin_blob = NULL; - CK_ULONG ep11_pin_blob_len = 0; -@@ -6399,12 +6387,6 @@ static CK_RV rsa_ec_generate_keypair(STDLL_TokData_t *tokdata, - } - - error: -- if (new_pPrivateKeyTemplate) -- free_attribute_array(new_pPrivateKeyTemplate, -- new_ulPrivateKeyAttributeCount); -- if (new_pPublicKeyTemplate) -- free_attribute_array(new_pPublicKeyTemplate, -- new_ulPublicKeyAttributeCount); - if (new_publ_attrs) - free_attribute_array(new_publ_attrs, new_publ_attrs_len); - if (new_priv_attrs) -@@ -6432,10 +6414,6 @@ static CK_RV ibm_dilithium_generate_keypair(STDLL_TokData_t *tokdata, - CK_BYTE *data, *oid, *parm; - CK_ULONG data_len, oid_len, parm_len; - CK_ULONG field_len; -- CK_ATTRIBUTE_PTR new_pPublicKeyTemplate = NULL; -- CK_ULONG new_ulPublicKeyAttributeCount = 0; -- CK_ATTRIBUTE_PTR new_pPrivateKeyTemplate = NULL; -- CK_ULONG new_ulPrivateKeyAttributeCount = 0; - CK_ULONG ktype = CKK_IBM_PQC_DILITHIUM; - unsigned char *ep11_pin_blob = NULL; - CK_ULONG ep11_pin_blob_len = 0; -@@ -6679,12 +6657,6 @@ static CK_RV ibm_dilithium_generate_keypair(STDLL_TokData_t *tokdata, - } - - error: -- if (new_pPrivateKeyTemplate) -- free_attribute_array(new_pPrivateKeyTemplate, -- new_ulPrivateKeyAttributeCount); -- if (new_pPublicKeyTemplate) -- free_attribute_array(new_pPublicKeyTemplate, -- new_ulPublicKeyAttributeCount); - if (new_publ_attrs) - free_attribute_array(new_publ_attrs, new_publ_attrs_len); - if (new_priv_attrs) --- -2.16.2.windows.1 - diff --git a/0012-EP11-Update-EP11-host-library-header-files.patch b/0012-EP11-Update-EP11-host-library-header-files.patch deleted file mode 100644 index 47f14e2..0000000 --- a/0012-EP11-Update-EP11-host-library-header-files.patch +++ /dev/null @@ -1,2331 +0,0 @@ -From 1197829d87732e1cae18ee64eefe44f0a6cb391f Mon Sep 17 00:00:00 2001 -From: Ingo Franzki -Date: Wed, 16 Feb 2022 10:09:10 +0100 -Subject: [PATCH 12/34] EP11: Update EP11 host library header files - -Signed-off-by: Ingo Franzki ---- - usr/lib/ep11_stdll/ep11.h | 1345 +++++++++++++++++++++++++----------------- - usr/lib/ep11_stdll/ep11adm.h | 305 +++------- - 2 files changed, 911 insertions(+), 739 deletions(-) - -diff --git a/usr/lib/ep11_stdll/ep11.h b/usr/lib/ep11_stdll/ep11.h -index cd4f11e5..c68dd045 100644 ---- a/usr/lib/ep11_stdll/ep11.h -+++ b/usr/lib/ep11_stdll/ep11.h -@@ -16,7 +16,6 @@ - - #if !defined(XCP_H__) - #define XCP_H__ -- - #if !defined(CKR_OK) - #include "pkcs11.h" - #endif -@@ -25,195 +24,10 @@ - #error "We need 64-bit types, please include before this file." - #endif - --// SHA224 etc. are additions to PKCS#11 2.20 --// remove these if host migrates beyond 2.20 as base minimum [unlikely] --// --#if !defined(CKM_SHA224) --#define CKM_SHA224 0x00000255 --#define CKM_SHA224_HMAC 0x00000256 --#define CKM_SHA224_HMAC_GENERAL 0x00000257 --#define CKM_SHA224_RSA_PKCS 0x00000046 --#define CKM_SHA224_RSA_PKCS_PSS 0x00000047 --#define CKM_SHA224_KEY_DERIVATION 0x00000396 --#define CKM_AES_CTR 0x00001086 --#define CKG_MGF1_SHA224 0x00000005 --#endif -- --#if !defined(CKM_AES_CMAC) --#define CKM_AES_CMAC 0x0000108a --#endif -- --#if !defined(CKM_DES3_CMAC) --#define CKM_DES3_CMAC 0x00000138 --#endif -- -- -- --// max value for target groups --#define XCP_MAX_GRPIDX 1024u --// --// current version of XCP_Module structure; host code SHOULD interact with --// future/past versions, MUST be set by caller before using m_add_module() --// valid versions are all >0 --#define XCP_MOD_VERSION 2 - // - // used for internal and external paths/addresses - #define MAX_FNAME_CHARS 256 - --// macros for setting/checking and removing domains from (tgt.mgmt) domain mask --#define XCPTGTMASK_SET_DOM(mask, domain) \ -- mask[((domain)/8)] |= (1 << (7-(domain)%8)) --#define XCPTGTMASK_DOM_IS_SET(mask, domain) \ -- (mask[((domain)/8)] & (1 << (7-(domain)%8))) --#define XCPTGTMASK_CLR_DOM(mask, domain) \ -- mask[((domain)/8)] &= ~(1 << (7-(domain)%8)) --// -- -- --/* flags that can be set for the target tokens -- * -- * This flags are domain specific and are therefore called domain flags -- * -- * start of flags is >16 Bit. Max value for domains is 0xFF. Should be enough -- * room for extensions -- */ --#define XCP_TGTFL_WCAP 0x10000000 /* Capture wire request in output buffer -- * without sending it to the module -- */ --#define XCP_TGTFL_WCAP_SQ 0x20000000 /* Size query: Return size of request in -- * output buffer length field -- */ --#define XCP_TGTFL_SET_SCMD 0x40000000 /* Protected key special command: Set the -- * special command flag in the CPRB -- * header -- */ --#define XCP_TGTFL_API_CHKD 0x80000000 /* supported API version of modules in -- * target (group) has been checked -- */ -- --#define XCP_TGTFL_NO_LOCK 0x01000000 /* target token ignores sequential locks -- * for target probing -- */ --#define XCP_TGTFL_SET_ACMD 0x04000000 /* add CPRB admin flag to CPRB header */ -- --//-------------------------------------- --// socket use only --#define XCP_MAXCONNECTIONS 64 /* max value for active connections */ --#define XCP_MAX_PORT 0xffff -- --// hostname and port value fore one module --typedef struct XCP_ModuleSocket { -- char host[ MAX_FNAME_CHARS +1 ]; -- uint32_t port; --} *XCP_ModuleSocket_t ; -- -- --//-------------------------------------- --// diagnostics use only --typedef struct XCP_DomainPerf { -- /* perf value of last request per domain -- * -- * At the moment unused -- * */ -- unsigned int lastperf[ 256 ]; --} *XCP_DomainPerf_t; -- -- --//-------------------------------------- --// subsequent communications with a module MAY skip infrastructure-specific --// fields, such as a query not reporting device handles etc., even if they --// have been supplied originally when the module has been registered. --// --typedef struct XCP_Module { -- uint32_t version; /* >0 for supported API versions */ -- -- uint64_t flags; /* see XCP_Module_Flags */ -- -- uint32_t domains; /* max# addressable under this module; -- * cached from OS -- * -- * when callers set domains to 0, the library -- * returns the module-claimed domain count. -- */ -- -- unsigned char domainmask[ 256 /8 ]; -- /* higher domain# through future flags (none -- * currently defined) which would add things -- * like 'FLAG_256_1023' etc. at the same time, -- * we would add domainmask2[] etc. -- * corresponding new fields. -- * -- * new fields would then store mask for -- * domains 256+ etc. -- * -- * domain #0 is bit x80 of 1st byte, -- * #255 is bit 0x01 of last byte. -- */ -- -- // when a domainmask is supplied, with bits set beyond -- // what the module supports, the bitmask is trimmed to -- // the supported range, but this is NOT reported as an -- // error, unless XCP_MFL_STRICT is also supplied. -- // -- // without XCP_MFL_STRICT, callers are expected to check -- // at least the returned domain count. -- -- /* used only when flags includes XCP_MFL_SOCKET */ -- struct XCP_ModuleSocket socket; -- -- /* used when system exposes modules through an -- * array of transparent pipes, or similar abstraction -- * (such as mainframe AP Queues, or other Linux -- * 'device-minor' numbers etc.). Interpretation -- * is platform-dependent. -- * -- * used only when flags includes XCP_MFL_MODULE -- */ -- uint32_t module_nr; -- -- /* used by systems which associate devices with -- * device handles/structs/etc. persistent state. -- * opaque pointer, usually a const pointer to -- * such aux structs, MAY be stored here. -- * -- * interpretation is platform-dependent. -- * used only when flags includes XCP_MFL_MHANDLE -- */ -- void *mhandle; -- /* diagnostics use only, when XCP_MFL_PERF is set */ -- struct XCP_DomainPerf perf; -- //----- end of v1 fields ------------------------------------------- -- -- uint32_t api; /* module api version*/ -- //----- end of v2 fields ------------------------------------------- --} *XCP_Module_t ; -- --typedef enum { -- XCP_MFL_SOCKET = 1, /* backend is socket-attached */ -- XCP_MFL_MODULE = 2, /* backends identified in -- array-of-modules */ -- XCP_MFL_MHANDLE = 4, /* backends uses 'module handle' field */ -- XCP_MFL_PERF = 8, /* performance statistics collected -- * for this module, see .perf -- */ -- XCP_MFL_VIRTUAL = 0x10, /* queried 'target' is a load-balancer, -- * other other group. -- */ -- XCP_MFL_STRICT = 0x20, /* enable aggressive error checking, -- * see field descriptions for effect -- */ -- XCP_MFL_PROBE = 0x40, /* send api query to module, to check if -- * target(s) can be used -- */ -- XCP_MFL_ALW_TGT_ADD = 0x80, /* Allows it to use a target in any -- * functional and admin call without -- * adding it beforehand with -- * m_add_module() -- */ -- XCP_MFL_MAX = 0xff --} XCP_Module_Flags; -- -- - // Error Values for functions that do not return CK_RV - // general errors - #define XCP_OK 0 /* function successful -@@ -282,17 +96,15 @@ typedef enum { - * flag is not active - */ - -- - /*--------------------------------------------------------------------------*/ - #define XCP_COMMON_PUBLIC_H__ - - --#define XCP_API_VERSION 0x071d /* major[8] minor[8] */ -+#define XCP_API_VERSION 0x0810 /* major[8] minor[8] */ - #define XCP_API_ORDINAL 0x0004 - /* increment this with every major/minor change */ - --#define XCP_HOST_API_VER 0x030100 /* major[8] minor[8] fixpack[8] */ --#define XCP_RPM_VERSION XCP_HOST_API_VER /* deprecated */ -+#define XCP_HOST_API_VER 0x040000 /* major[8] minor[8] fixpack[8] */ - - /* HSM connection information; not for PKCS11 user consumption */ - #define XCP_HSM_AGENT_ID 0x5843 /* ASCII "XC" */ -@@ -375,6 +187,8 @@ typedef enum { - #define CKR_IBM_TARGET_INVALID (CKR_VENDOR_DEFINED +0x10030) - - -+#define CKR_IBM_PQC_PARAMS_NOT_SUPPORTED (CKR_VENDOR_DEFINED +0x10031) -+ - - // Error returned if internal verification of crypto engines fail - #define CKR_IBM_ERROR_STATE (CKR_VENDOR_DEFINED +0x10101) -@@ -445,12 +259,18 @@ typedef enum { - #define CKM_IBM_ED448_SHA3 (CKM_VENDOR_DEFINED +0x1001f) - - -+// round counts are passed as mechanism parameters -+#define CKM_IBM_SIPHASH (CKM_VENDOR_DEFINED +0x10021) -+ -+ - // these need a strength definition - // XCP_U32_VALUE_BITS/CKA_VALUE_BITS would be sufficient; strength->K/L mapping - // - // umbrella mech for PQC/Crystals variants - #define CKM_IBM_DILITHIUM (CKM_VENDOR_DEFINED +0x10023) - // ^^^ sign/verify plus keygen only -+#define CKM_IBM_KYBER (CKM_VENDOR_DEFINED +0x10024) -+ // ^^^ en/decrypt, keygen, key transport, and (hybrid) key derivation - - // SHA-3 HMAC variants - #define CKM_IBM_SHA3_224_HMAC (CKM_VENDOR_DEFINED +0x10025) -@@ -481,6 +301,10 @@ typedef enum { - ECSG_IBM_MAX = ECSG_IBM_ECSDSA_COMPR_MULTI, - } ECSG_Var_t; - -+#define CK_IBM_ECSG_IBM_ECSDSA_S256 ECSG_IBM_ECSDSA_S256 -+#define CK_IBM_ECSG_IBM_ECDSA_COMPR_MULTI_S256 ECSG_IBM_ECDSA_COMPR_MULTI_S256 -+#define CK_IBM_ECSG_IBM_MAX ECSG_IBM_MAX -+ - - //--- transport additions -------------------------------------------------- - #define CKM_IBM_CLEARKEY_TRANSPORT (CKM_VENDOR_DEFINED +0x20001) -@@ -565,6 +389,12 @@ typedef enum { - - #define CKA_IBM_PQC_PARAMS (CKA_VENDOR_DEFINED +0x1000e) - -+// query or modify login session an object is bound to -+#define CKA_IBM_LOGIN_SESSION (CKA_VENDOR_DEFINED +0x1000f) -+ -+// query MAC'd spki from a private key -+#define CKA_IBM_MACED_PUBLIC_KEY_INFO (CKA_VENDOR_DEFINED +0x20002) -+ - // direct access to attributes' wire form - // parameters of this attribute, if it's the only one present, - // inserted verbatim into request package -@@ -574,6 +404,9 @@ typedef enum { - // matches the key type constant for clear key Dilithium with ICSF - #define CKK_IBM_PQC_DILITHIUM (CKK_VENDOR_DEFINED +0x10023) - -+#define CKK_IBM_PQC_KYBER (CKK_VENDOR_DEFINED +0x10024) -+ -+ - - - -@@ -583,6 +416,7 @@ typedef enum { - #define XCP_MOD_ERROR_STATE_SYSTEST_CMD 0x00000003 - #define XCP_MOD_ERROR_STATE_TRNG_HEALTH 0x00000004 - -+ - /*---------------------------------------------------------------------------- - * sizes related to blobs and host-visible entities - * -@@ -599,10 +433,10 @@ typedef enum { - #define XCP_BLOBCLRATTR_BYTES 8 /* clear blob attr's bytecount */ - /* keep in sync with objattr_t */ - #define XCP_BLOBCLRMODE_BYTES 8 /* clear blob modefield bytecount */ --#define MOD_WRAP_BLOCKSIZE ((size_t) (128 /8)) /* blob crypt block bytecount */ -+#define XCP_WRAP_BLOCKSIZE ((size_t) (128 /8)) /* blob crypt block bytecount */ - #define XCP_MACKEY_BYTES (256 /8) /* derived from controlling WK */ - // --#define XCP_PIN_SALT_BYTES MOD_WRAP_BLOCKSIZE -+#define XCP_PIN_SALT_BYTES XCP_WRAP_BLOCKSIZE - #define XCP_PINBLOB_BYTES \ - (XCP_WK_BYTES +XCP_PIN_SALT_BYTES +XCP_HMAC_BYTES) - -@@ -664,6 +498,18 @@ typedef enum { - - #define XCP_BTC_VERSION 1 - -+#define XCP_KYBER_KEM_VERSION 0 -+ -+#define XCP_KYBER_KEM_MIN_WIRE_BYTES (4 + 4 + 4 + 4 + 4 + 4) /* version[32] || -+ kdf[32] || -+ mode[32] || -+ cphr[32] || -+ shrd[32] || -+ blob [32] */ -+ -+#define XCP_KYBER_RAW_BYTES 32 -+ -+ - #define XCP_ECDH1_DERIVE_MAX_PUBLIC_BYTES 1024 /* limit public data length to - reasonable number of bytes */ - // -@@ -698,6 +544,8 @@ typedef enum { - // related to the protected-key capability - // see also CKA_IBM_PROTKEY_* description - -+ CKF_IBM_HW_DUAL_OA = 0x1000, // module supports dual OA certs/signatures -+ // see CK_IBM_XCPXQ_OA_CAP for more details - } XCP_CK_EXTFLAGS_t; - - // these numbers apply to current version, subject to change -@@ -720,7 +568,7 @@ typedef enum { - - // ~arbitrary limit on acceptable admin. certificates - // additional limits, such as transport-bytecount, may restrict further --#define XCP_CERT_MAX_BYTES ((size_t) 4096) -+#define XCP_CERT_MAX_BYTES ((size_t) 12288) /* fits dil certs (8k + meta) */ - #define XCP_CERTHASH_BYTES (256/8) - /* hash or SKI of public key, or other hash-identified things; SHA-256 */ - -@@ -734,6 +582,9 @@ typedef enum { - /* ^^^ increase this when policy moves beyond shorter curves */ - #define XCP_MAX_EC_CURVE_BITS 521 - -+#define XCP_MAX_DIL_SIGNATURE_BYTES 4668 /* max. length of dil. 8-7 sigs */ -+#define XCP_MAX_SINFO_META_BYTES 100 /* signer info framework bytes */ -+ - /* bytecount of raw (generic) keys, not key schedules */ - #define MOD_MAX_SYMMKEY_BYTES 256 - -@@ -754,8 +605,20 @@ typedef enum { - /* trailing big-endian bitcount field after UnwrapKey() checksum */ - - /* card(OA) signature bytecount: SKI-identified SignerInfo, -- 4096-bit RSA signature, with SHA-256 hash */ --#define XCP_RSPSIG_MAX_BYTES (75 +4096/8) -+ * Non quantum safe: Must contain space for either: -+ * - 4096-bit RSA signature, hash OID, encr. OID and SKI -+ * - EC-P521 signature, hash OID, encr. OID and SKI -+ */ -+#define XCP_RSPSIG_RSA (4096 / 8) -+#define XCP_RSPSIG_MAX_BYTES (XCP_MAX_SINFO_META_BYTES + \ -+ XCP_RSPSIG_RSA) -+ -+/* card(OA) signature bytecount: SKI-identified SignerInfo, -+ * Quantum safe: Must contain space for: -+ * - DIL signature, hash OID, encr. OID and SKI -+ */ -+#define XCP_RSPSIG_QS_MAX_BYTES (XCP_MAX_SINFO_META_BYTES + \ -+ XCP_MAX_DIL_SIGNATURE_BYTES) - - /* minimal padding for raw RSA enc/dec/sign/ver/wr/unwr - * Used for example in CKM_RSA_PKCS. See RFC 2313 chapter 8 for a complete -@@ -772,84 +635,85 @@ typedef enum { - /* indicates particular events, not generic event types/categories, */ - /* if bits in this region are non-zero */ - --typedef enum { /* functionality categories: keep within uint16_t range */ -- XCP_LOGEV_QUERY = 0, -- XCP_LOGEV_FUNCTION = 1, -- XCP_LOGEV_ADMFUNCTION = 2, -- XCP_LOGEV_STARTUP = 3, -- XCP_LOGEV_SHUTDOWN = 4, -- XCP_LOGEV_SELFTEST = 5, -- XCP_LOGEV_DOM_IMPORT = 6, /* import sec-relevant data to domain */ -- XCP_LOGEV_DOM_EXPORT = 7, /* export sec-relevant data from domain */ -- XCP_LOGEV_FAILURE = 8, -- XCP_LOGEV_GENERATE = 9, -- XCP_LOGEV_REMOVE = 10, -- XCP_LOGEV_SPECIFIC = 11, /* obtain meaning elsewhere */ -- XCP_LOGEV_STATE_IMPORT = 12, /* import to card/multiple domains */ -- XCP_LOGEV_STATE_EXPORT = 13, /* export from card/multiple domains */ -- /* [after successful export] */ -- XCP_LOGEV_IMPORT = 14, /* key/state import (UnwrapKey) */ -- /* fields provide more context */ -- XCP_LOGEV_EXPORT = 15, /* key/state import (WrapKey) */ -- /* fields provide more context */ -- -- /*--- specific events (any including XCP_LOGEV_SPEC) ---------*/ -- -- XCP_LOGSPEV_TRANSACT_ZEROIZE = XCP_LOGEV_SPEC +1, -- /* zeroize card by transaction */ -- -- XCP_LOGSPEV_KAT_FAILED = XCP_LOGEV_SPEC +2, -- /* algorithm selftest failed */ -- -- XCP_LOGSPEV_KAT_COMPLETED = XCP_LOGEV_SPEC +3, -- /* algorithm selftests completed */ -- /* redundant; logged only to */ -- /* provide specific event */ -- -- XCP_LOGSPEV_EARLY_Q_START = XCP_LOGEV_SPEC +4, -- /* subsequent events were found */ -- /* in the early-event queue. */ -- /* their timestamps are only */ -- /* approximate; order is correct */ -- -- XCP_LOGSPEV_EARLY_Q_END = XCP_LOGEV_SPEC +5, -- /* early-even queue processing ends. */ -- /* subsequent events are through */ -- /* regular auditing, with valid */ -- /* timestamps and ordering. */ -- -- XCP_LOGSPEV_AUDIT_NEWCHAIN = XCP_LOGEV_SPEC +6, -- /* audit state is corrupted; removed. */ -- /* generating new instance and start */ -- /* new chain as a replacement */ -- -- XCP_LOGSPEV_TIMECHG_BEFORE = XCP_LOGEV_SPEC +7, -- /* time change: original time */ -- -- XCP_LOGSPEV_TIMECHG_AFTER = XCP_LOGEV_SPEC +8, -- /* time change: updated time */ -- -- XCP_LOGSPEV_MODSTIMPORT_START = XCP_LOGEV_SPEC +9, -- /* accepted full-state import */ -- /* data structure */ -- /* starting update procedure */ -- -- XCP_LOGSPEV_MODSTIMPORT_FAIL = XCP_LOGEV_SPEC +10, -- /* rejected import structure */ -- /* issued after initial verify; */ -- /* indicates some inconsistency */ -- /* of import data structures */ -- -- XCP_LOGSPEV_MODSTIMPORT_END = XCP_LOGEV_SPEC +11, -- /* completed full-state import */ -- -- XCP_LOGSPEV_MODSTEXPORT_START = XCP_LOGEV_SPEC +12, -- /* started full-state export */ -- /* see also: XCP_LOGEV_STATE_EXPORT */ -- -- XCP_LOGSPEV_MODSTEXPORT_FAIL = XCP_LOGEV_SPEC +13 -- /* full-state export did not complete */ --} XCP_LogEvent_t; -+ /* functionality categories: keep within uint16_t range */ -+#define XCP_LOGEV_QUERY 0 -+#define XCP_LOGEV_FUNCTION 1 -+#define XCP_LOGEV_ADMFUNCTION 2 -+#define XCP_LOGEV_STARTUP 3 -+#define XCP_LOGEV_SHUTDOWN 4 -+#define XCP_LOGEV_SELFTEST 5 -+#define XCP_LOGEV_DOM_IMPORT 6 /* import sec-relevant data to */ -+ /* domain */ -+#define XCP_LOGEV_DOM_EXPORT 7 /* export sec-relevant data from */ -+ /* domain */ -+#define XCP_LOGEV_FAILURE 8 -+#define XCP_LOGEV_GENERATE 9 -+#define XCP_LOGEV_REMOVE 10 -+#define XCP_LOGEV_SPECIFIC 11 /* obtain meaning elsewhere */ -+#define XCP_LOGEV_STATE_IMPORT 12 /* import to card/multiple domains */ -+#define XCP_LOGEV_STATE_EXPORT 13 /* export from card/multiple */ -+ /* domains */ -+ /* [after successful export] */ -+#define XCP_LOGEV_IMPORT 14 /* key/state import (UnwrapKey) */ -+ /* fields provide more context */ -+#define XCP_LOGEV_EXPORT 15 /* key/state import (WrapKey) */ -+ /* fields provide more context */ -+ -+ /*--- specific events (any including XCP_LOGEV_SPEC) ---------*/ -+ -+#define XCP_LOGSPEV_TRANSACT_ZEROIZE (XCP_LOGEV_SPEC +1) -+ /* zeroize card by transaction */ -+ -+#define XCP_LOGSPEV_KAT_FAILED (XCP_LOGEV_SPEC +2) -+ /* algorithm selftest failed */ -+ -+#define XCP_LOGSPEV_KAT_COMPLETED (XCP_LOGEV_SPEC +3) -+ /* algorithm selftests completed */ -+ /* redundant; logged only to */ -+ /* provide specific event */ -+ -+#define XCP_LOGSPEV_EARLY_Q_START (XCP_LOGEV_SPEC +4) -+ /* subsequent events were found */ -+ /* in the early-event queue. */ -+ /* their timestamps are only */ -+ /* approximate; order is correct */ -+ -+#define XCP_LOGSPEV_EARLY_Q_END (XCP_LOGEV_SPEC +5) -+ /* early-even queue processing ends. */ -+ /* subsequent events are through */ -+ /* regular auditing, with valid */ -+ /* timestamps and ordering. */ -+ -+#define XCP_LOGSPEV_AUDIT_NEWCHAIN (XCP_LOGEV_SPEC +6) -+ /* audit state is corrupted; removed. */ -+ /* generating new instance and start */ -+ /* new chain as a replacement */ -+ -+#define XCP_LOGSPEV_TIMECHG_BEFORE (XCP_LOGEV_SPEC +7) -+ /* time change: original time */ -+ -+#define XCP_LOGSPEV_TIMECHG_AFTER (XCP_LOGEV_SPEC +8) -+ /* time change: updated time */ -+ -+#define XCP_LOGSPEV_MODSTIMPORT_START (XCP_LOGEV_SPEC +9) -+ /* accepted full-state import */ -+ /* data structure */ -+ /* starting update procedure */ -+ -+#define XCP_LOGSPEV_MODSTIMPORT_FAIL (XCP_LOGEV_SPEC +10) -+ /* rejected import structure */ -+ /* issued after initial verify; */ -+ /* indicates some inconsistency */ -+ /* of import data structures */ -+ -+#define XCP_LOGSPEV_MODSTIMPORT_END (XCP_LOGEV_SPEC +11) -+ /* completed full-state import */ -+ -+#define XCP_LOGSPEV_MODSTEXPORT_START (XCP_LOGEV_SPEC +12) -+ /* started full-state export */ -+ /* see also: XCP_LOGEV_STATE_EXPORT */ -+ -+#define XCP_LOGSPEV_MODSTEXPORT_FAIL (XCP_LOGEV_SPEC +13) - - - typedef enum { -@@ -863,21 +727,19 @@ typedef enum { - } XCP_LogSystem_t; - - /* bitmask of audit-event flags (mainly optional fields) */ --typedef enum { -- XCP_LOGFL_WK_PRESENT = 0x80000000, -- XCP_LOGFL_COMPLIANCE_PRESENT = 0x40000000, /* ...of hosting domain */ -- XCP_LOGFL_FINALWK_PRESENT = 0x20000000, -- XCP_LOGFL_KEYREC0_PRESENT = 0x10000000, -- XCP_LOGFL_KEYREC0_COMPL = 0x08000000, /* key0 compliance */ -- XCP_LOGFL_KEYREC1_PRESENT = 0x04000000, -- XCP_LOGFL_KEYREC2_PRESENT = 0x02000000, -- XCP_LOGFL_FINTIME_PRESENT = 0x01000000, -- XCP_LOGFL_SALT0_PRESENT = 0x00800000, -- XCP_LOGFL_SALT1_PRESENT = 0x00400000, -- XCP_LOGFL_SALT2_PRESENT = 0x00200000, -- XCP_LOGFL_REASON_PRESENT = 0x00100000, -- XCP_LOGFL_SEQPRF_PRESENT = 0x00080000 --} XCP_LogFlags_t; -+#define XCP_LOGFL_WK_PRESENT 0x80000000 -+#define XCP_LOGFL_COMPLIANCE_PRESENT 0x40000000 /* ...of hosting domain */ -+#define XCP_LOGFL_FINALWK_PRESENT 0x20000000 -+#define XCP_LOGFL_KEYREC0_PRESENT 0x10000000 -+#define XCP_LOGFL_KEYREC0_COMPL 0x08000000 /* key0 compliance */ -+#define XCP_LOGFL_KEYREC1_PRESENT 0x04000000 -+#define XCP_LOGFL_KEYREC2_PRESENT 0x02000000 -+#define XCP_LOGFL_FINTIME_PRESENT 0x01000000 -+#define XCP_LOGFL_SALT0_PRESENT 0x00800000 -+#define XCP_LOGFL_SALT1_PRESENT 0x00400000 -+#define XCP_LOGFL_SALT2_PRESENT 0x00200000 -+#define XCP_LOGFL_REASON_PRESENT 0x00100000 -+#define XCP_LOGFL_SEQPRF_PRESENT 0x00080000 - - - -@@ -885,16 +747,26 @@ typedef enum { - typedef enum { - XCP_IMPRKEY_RSA_2048 = 0, - XCP_IMPRKEY_RSA_4096 = 1, -- XCP_IMPRKEY_EC_P256 = 2, /* EC, NIST P-256 */ -- XCP_IMPRKEY_EC_P521 = 3, /* EC, NIST P-521 */ -- XCP_IMPRKEY_EC_BP256r = 4, /* EC, Brainpool BP-256r */ -- XCP_IMPRKEY_EC_BP320r = 5, /* EC, Brainpool BP-320r */ -- XCP_IMPRKEY_EC_BP512r = 6, /* EC, Brainpool BP-512r */ -+ XCP_IMPRKEY_EC_P256 = 2, /* EC, NIST P-256 */ -+ XCP_IMPRKEY_EC_P521 = 3, /* EC, NIST P-521 */ -+ XCP_IMPRKEY_EC_BP256r = 4, /* EC, Brainpool BP-256r */ -+ XCP_IMPRKEY_EC_BP320r = 5, /* EC, Brainpool BP-320r */ -+ XCP_IMPRKEY_EC_BP512r = 6, /* EC, Brainpool BP-512r */ - XCP_IMPRKEY_RSA_3072 = 7, -- XCP_IMPRKEY_MAX = XCP_IMPRKEY_RSA_3072 -+ XCP_IMPRKEY_EC_P521_TKE = 8, /* EC, NIST P-521 (TKE propr. sign.) */ -+ XCP_IMPRKEY_MAX = XCP_IMPRKEY_EC_P521_TKE - } XCP_IMPRKEY_t; - - -+//--- OA key types ---------------------------------------------------- -+typedef enum { -+ XCP_OAKEY_RSA_4096 = 1, /* RSA 4096 bit */ -+ XCP_OAKEY_ECC_P521 = 2, /* ECC NIST P-521 */ -+ XCP_OAKEY_DIL_87R2 = 3, /* DIL 8-7 R2 */ -+ XCP_OAKEY_MAX = XCP_OAKEY_DIL_87R2 -+} XCP_OAKEY_t; -+ -+ - - //--- retained key structures --------------------------- - // initial loading: -@@ -914,6 +786,7 @@ typedef struct CK_RETAINEDKEY_PARAMS { - - - -+ - //--- operation categories (perf. measurement) ----------------------------- - typedef enum { - XCP_OPCAT_ASYMM_SLOW = 1, -@@ -951,7 +824,12 @@ typedef enum { - /* never be enabled due to */ - /* policy-minimum restrictions. */ - -- CK_IBM_XCPQ_MAX = CK_IBM_XCPQ_CP_BLACKLIST -+ CK_IBM_XCPQ_PQC_STRENGTHS -+ = 14, /* supported quantum safe levels*/ -+ /* of strength */ -+ /* see: XCP_PQCStrength_t */ -+ -+ CK_IBM_XCPQ_MAX = CK_IBM_XCPQ_PQC_STRENGTHS - } CK_IBM_XCPQUERY_t; - - //--- module sub-query sub-types -------------------------------------------- -@@ -966,6 +844,9 @@ typedef enum { - /* attributes bitmask */ - CK_IBM_XCPMSQ_ATTRS = 6, /* number of supported */ - /* administrative attributes */ -+ CK_IBM_XCPMSQ_MOD_V2 = 7, /* add version two fields to */ -+ /* module query */ -+ CK_IBM_XCPMSQ_MAX = CK_IBM_XCPMSQ_MOD_V2 - } CK_IBM_XCPMSUBQUERY_t; - - // byte sizes of queries which are not represented as structures -@@ -976,48 +857,34 @@ typedef enum { - - #define CK_IBM_XCP_HOSTQ_IDX 0xff000000 /* host-only queries index, min. */ - --typedef enum { -- CK_IBM_XCPHQ_COUNT = 0xff000000, /* number of host-query indexes */ -- /* including this type itself */ -- CK_IBM_XCPHQ_VERSION = 0xff000001, /* host-specific package version */ -- /* such as packaging library ID */ -- CK_IBM_XCPHQ_VERSION_HASH = 0xff000002, -- /* assumed-unique identifier of */ -- /* host code, such as version- */ -- /* identifying cryptographic hash */ -- /* (library signature field...) */ -- CK_IBM_XCPHQ_DIAGS = 0xff000003, /* host code diagnostic level */ -- /* 0 if non-diagnostics host code */ -- CK_IBM_XCPHQ_HVERSION = 0xff000004, /* human-readable host version */ -- /* identification (recommended: */ -- /* UTF-8 string) */ -- CK_IBM_XCPHQ_TGT_MODE = 0xff000005, /* host targeting modes */ -- /* returns supported target modes */ -- /* as bitmask */ -- /* if not available only compat */ -- /* target mode is in use */ -- /* See CK_IBM_XCPHQ_TGT_MODES_t */ -- CK_IBM_XCPHQ_ECDH_DERPRM = 0xff000006, -- /* ECDH DeriveKey parameter usage */ -- /* is being enforced with hostlib */ -- /* version */ -- /**/ -- CK_IBM_XCPHQ_TOL_MODES = 0xff000007,/* check if toleration mode for */ -- /* key attribute checking is */ -- /* enabled */ -- /* If it is, some attribute values*/ -- /* are always set to correct */ -- /* values automatically - */ -- CK__IBM_XCPHQ_MAX = CK_IBM_XCPHQ_TGT_MODE --} CK_IBM_XCPHQUERY_t; -- --#define CK_IBM_XCPHQ_ATTR_TOL_ENABLED 0x00000001 -- /* flag to indicate that toleration */ -- /* mode for key attribute checking */ -- /* is enabled i.e. all attributes */ -- /* that may no longer be set CK_TRUE */ -- /* using a CEX8S HSM will be reset */ -- /* to CK_FALSE automatically */ -+#define CK_IBM_XCPHQ_COUNT 0xff000000 /* number of host-query indexes */ -+ /* including this type itself */ -+#define CK_IBM_XCPHQ_VERSION 0xff000001 /* host-specific package version */ -+ /* such as packaging library ID */ -+#define CK_IBM_XCPHQ_VERSION_HASH 0xff000002 -+ /* assumed-unique identifier of */ -+ /* host code, such as version- */ -+ /* identifying cryptographic hash*/ -+ /* (library signature field...) */ -+#define CK_IBM_XCPHQ_DIAGS 0xff000003 /* host code diagnostic level */ -+ /* 0 if non-diagnostics host code*/ -+#define CK_IBM_XCPHQ_HVERSION 0xff000004 /* human-readable host version */ -+ /* identification (recommended: */ -+ /* UTF-8 string) */ -+#define CK_IBM_XCPHQ_TGT_MODE 0xff000005 /* host targeting modes */ -+ /* returns supported target modes*/ -+ /* as bitmask */ -+ /* if not available only compat */ -+ /* target mode is in use */ -+ /* See CK_IBM_XCPHQ_TGT_MODES_t */ -+#define CK_IBM_XCPHQ_ECDH_DERPRM 0xff000006 -+ /* ECDH DeriveKey parameter usage*/ -+ /* is being enforced with hostlib*/ -+ /* version */ -+ /**/ -+ -+#define CK__IBM_XCPHQ_MAX CK_IBM_XCPHQ_TGT_MODE -+ - - typedef enum { - CK_IBM_XCPHQ_TGT_MODES_TGTGRP = 1, /* target groups are supported */ -@@ -1040,7 +907,6 @@ typedef enum { - CK_IBM_XCPXQ_IMPEXP_CAPS = 7, /* capability for WK and state */ - /* export / import. See 8.7.1.1.1 */ - /* for more info */ -- CK_IBM_XCPXQ_DOMIMPORT_VER = 7, /* DEPRECATED */ - CK_IBM_XCPXQ_CERT_MAXBYTES = 8, /* bytecount of largest accepted */ - /* administrative certificate, if */ - /* there is an upper limit. 0 if */ -@@ -1058,20 +924,20 @@ typedef enum { - - CK_IBM_XCPXQ_ECDSA_OTHER = 15, /* bitmask of supported, other EC - signing mechanisms */ -+ CK_IBM_XCPXQ_OA_CAP = 16, /* bitmask of supported outbound -+ authority signing mechanisms */ - -- CK_IBM_XCPXQ_MAXIDX = CK_IBM_XCPXQ_ECDSA_OTHER, -+ CK_IBM_XCPXQ_MAXIDX = CK_IBM_XCPXQ_OA_CAP, - } CK_IBM_XCPEXTCAP_t; - - --typedef enum { -- CK_IBM_DOM_ADMIND = 1, /* administrators present */ -- CK_IBM_DOM_CURR_WK = 2, /* domain has current WK */ -- CK_IBM_DOM_NEXT_WK = 4, /* domain has pending/next WK */ -- CK_IBM_DOM_COMMITTED_NWK = 8, /* next WK is active(committed) */ -- CK_IBM_DOM_IMPRINTED = 0x10, /* has left imprint mode */ -- CK_IBM_DOM_IMPRINTS = 0x80000000, /* enforces imprint mode */ -- CK_IBM_DOM_PROTKEY_ALLOW = 0x20 /* policies allow protected key */ --} CK_IBM_DOMAINQ_t; -+#define CK_IBM_DOM_ADMIND 1 /* administrators present */ -+#define CK_IBM_DOM_CURR_WK 2 /* domain has current WK */ -+#define CK_IBM_DOM_NEXT_WK 4 /* domain has pending/next WK */ -+#define CK_IBM_DOM_COMMITTED_NWK 8 /* next WK is active(committed) */ -+#define CK_IBM_DOM_IMPRINTED 0x10 /* has left imprint mode */ -+#define CK_IBM_DOM_IMPRINTS 0x80000000 /* enforces imprint mode */ -+#define CK_IBM_DOM_PROTKEY_ALLOW 0x20 /* policies allow protected key */ - // - // note: CK_IBM_DOM_IMPRINTS will go away - -@@ -1142,34 +1008,54 @@ typedef CK_IBM_XCPAPI_INFO CK_PTR CK_IBM_XCPAPI_INFO_PTR; - CK_BYTE infra_count; \ - CK_BYTE comp_count; - -+#define CK_IBM_XCP_ADMATTRLIST_MEMBER_V2 \ -+ CK_BYTE perm_ext01_modes[ 8 ]; -+ -+#define CK_IBM_XCP_ADMATTRCOUNT_MEMBER_V2 \ -+ CK_BYTE perm_ext01_count; -+ - // see chapter 5.1.1. in the wire spec - typedef struct CK_IBM_XCP_INFO { -- CK_IBM_XCP_INFO_MEMBERS_V0; -+ CK_IBM_XCP_INFO_MEMBERS_V0 - } CK_IBM_XCP_INFO; - // - // see chapter 5.1.1. in the wire spec - typedef struct CK_IBM_XCP_INFO_V1 { -- CK_IBM_XCP_INFO_MEMBERS_V0; -- CK_IBM_XCP_DESCINFO_MEMBER; -+ CK_IBM_XCP_INFO_MEMBERS_V0 -+ CK_IBM_XCP_DESCINFO_MEMBER - CK_BYTE fnid_mask[ 16 ]; - CK_BYTE fnid_count; -- CK_IBM_XCP_ADMATTRLIST_MEMBER; -- CK_IBM_XCP_ADMATTRCOUNT_MEMBER; -+ CK_IBM_XCP_ADMATTRLIST_MEMBER -+ CK_IBM_XCP_ADMATTRCOUNT_MEMBER - } CK_IBM_XCP_INFO_V1; - // -+// see chapter 5.1.1. in the wire spec -+typedef struct CK_IBM_XCP_INFO_V2 { -+ CK_IBM_XCP_INFO_MEMBERS_V0 -+ CK_IBM_XCP_DESCINFO_MEMBER -+ CK_BYTE fnid_mask[ 16 ]; -+ CK_BYTE fnid_count; -+ CK_IBM_XCP_ADMATTRLIST_MEMBER -+ CK_IBM_XCP_ADMATTRCOUNT_MEMBER -+ CK_IBM_XCP_ADMATTRLIST_MEMBER_V2 -+ CK_IBM_XCP_ADMATTRCOUNT_MEMBER_V2 -+} CK_IBM_XCP_INFO_V2; -+// - // see chapter 5.1.1.1. in the wire spec - typedef struct CK_IBM_XCP_DESCINFO { -- CK_IBM_XCP_DESCINFO_MEMBER; -+ CK_IBM_XCP_DESCINFO_MEMBER - } CK_IBM_XCP_DESCINFO; - // - // see chapter 5.1.1.3. in the wire spec - typedef struct CK_IBM_XCP_ATTRLIST { - CK_IBM_XCP_ADMATTRLIST_MEMBER -+ CK_IBM_XCP_ADMATTRLIST_MEMBER_V2 - } CK_IBM_XCP_ATTRLIST; - // - // see chapter 5.1.1.3. in the wire spec - typedef struct CK_IBM_XCP_ATTRCOUNT { - CK_IBM_XCP_ADMATTRCOUNT_MEMBER -+ CK_IBM_XCP_ADMATTRCOUNT_MEMBER_V2 - } CK_IBM_XCP_ATTRCOUNT; - - /**/ -@@ -1177,14 +1063,18 @@ typedef struct CK_IBM_XCP_ATTRCOUNT { - { 0,0, {0,0,},{0,0,}, {0,},{0,},{0,}, {0,},{0,}, \ - 0,0, 0,0, 0,0,0,0,0,0,0, 0,0,0, } - --typedef CK_IBM_XCP_INFO CK_PTR CK_IBM_XCP_INFO_PTR; --typedef CK_IBM_XCP_INFO_V1 CK_PTR CK_IBM_XCP_INFO_V1_PTR; --typedef CK_IBM_XCP_DESCINFO CK_PTR CK_IBM_XCP_DESCINFO_PTR; --typedef CK_IBM_XCP_ATTRLIST CK_PTR CK_IBM_XCP_ATTRLIST_PTR; --typedef CK_IBM_XCP_ATTRCOUNT CK_PTR CK_IBM_XCP_ATTRCOUNT_PTR; -+#define CK_IBM_XCP_INFO_V2_INIT0 \ -+ { 0,0, {0,0,},{0,0,}, {0,},{0,},{0,}, {0,},{0,}, \ -+ 0,0, 0,0, 0,0,0,0,0,0,0, 0,0,0, \ -+ {0}, {0}, {0}, 0, {0}, {0}, {0}, 0, 0, 0, \ -+ {0}, 0} - --// DEPRECATED - use CK_IBM_XCP_INFO --typedef CK_IBM_XCP_INFO CK_IBM_EP11_INFO; -+typedef CK_IBM_XCP_INFO CK_PTR CK_IBM_XCP_INFO_PTR; -+typedef CK_IBM_XCP_INFO_V1 CK_PTR CK_IBM_XCP_INFO_V1_PTR; -+typedef CK_IBM_XCP_INFO_V2 CK_PTR CK_IBM_XCP_INFO_V2_PTR; -+typedef CK_IBM_XCP_DESCINFO CK_PTR CK_IBM_XCP_DESCINFO_PTR; -+typedef CK_IBM_XCP_ATTRLIST CK_PTR CK_IBM_XCP_ATTRLIST_PTR; -+typedef CK_IBM_XCP_ATTRCOUNT CK_PTR CK_IBM_XCP_ATTRCOUNT_PTR; - - typedef struct CK_IBM_DOMAIN_INFO { - CK_ULONG domain; -@@ -1227,9 +1117,31 @@ typedef enum { - } CK_IBM_BTC_t; - - -+typedef enum { -+ XCP_KEM_ENCAPSULATE = 1, -+ XCP_KEM_DECAPSULATE = 2, -+} XCP_KEM_t; -+ -+typedef CK_ULONG CK_IBM_KEM_MODE; -+ -+#define CK_IBM_KEM_ENCAPSULATE XCP_KEM_ENCAPSULATE -+#define CK_IBM_KEM_DECAPSULATE XCP_KEM_DECAPSULATE -+ -+typedef struct XCP_KYBER_KEM_PARAMS { -+ CK_ULONG version; -+ CK_IBM_KEM_MODE mode; -+ CK_ULONG kdf; -+ CK_BBOOL prepend; -+ CK_BYTE *pCipher; -+ CK_ULONG ulCipherLen; -+ CK_BYTE *pSharedData; -+ CK_ULONG ulSharedDataLen; -+ CK_BYTE *pBlob; -+ CK_ULONG ulBlobLen; -+} XCP_KYBER_KEM_PARAMS_t; -+ -+ - //--- attribute constants -------------------------------------------------- --// keep in sync with unprivileged object (XCP_BLOB_NO_RIGHTS) --// table is parsed by automated tools; please do not change layout - // - typedef enum { - XCP_BLOB_EXTRACTABLE = 1, -@@ -1309,8 +1221,8 @@ typedef enum { - /* CP sets get padded to multiple */ - - typedef enum { -- XCP_CPB_ADD_CPBS = 0, // allow addition (activation) of CP bits -- XCP_CPB_DELETE_CPBS = 1, // disable activating further control points -+ XCP_CPB_ADD_CPBS = 0, // allow activation of CP bits -+ XCP_CPB_DELETE_CPBS = 1, // allow deactivation of CP bits - // (remove both ADD_CPBs and DELETE_CPBs - // to make unit read-only) - -@@ -1424,8 +1336,12 @@ typedef enum { - - XCP_CPB_COMPAT_LEGACY_SHA3 = 70, // allow fall-back to non-standard - // SHA3 defaults -- -- XCP_CPBITS_MAX = XCP_CPB_COMPAT_LEGACY_SHA3 // marks last used CPB -+ XCP_CPB_DSA_PARAMETER_GEN = 71, // allow DSA/PQG parameter generation -+ XCP_CPB_DERIVE_NON_AB_KEYS = 72, // allow the derivation of a non-AB or raw -+ // from an AB key. Only relevant if -+ // XCP_CPB_NON_ATTRBOUND -+ XCP_CPBITS_MAX = XCP_CPB_DERIVE_NON_AB_KEYS -+ // marks last used CPB - } XCP_CPbit_t; - - -@@ -1623,7 +1539,7 @@ typedef enum { - // blob/SPKI - XCP_ADM_DOMAINS_ZEROIZE = 36, // multi-domain zeroize - // XCP_ADM_EXPORT_NEXT_WK = 38, // placeholder, find real entry above -- XCP_ADM_SESSIONS_DROP = 39, // drop all open sessions -+ XCP_ADM_SESSION_REMOVE = 39, // remove all or selected sessions - - XCP_ADMQ_ADMIN = 1 | XCP_ADM_QUERY, // admin SKI/cert - XCP_ADMQ_DOMADMIN = 2 | XCP_ADM_QUERY, // domain adm. SKI/cert -@@ -1648,10 +1564,11 @@ typedef enum { - // current migration importer - XCP_ADMQ_AUDIT_STATE = 16 | XCP_ADM_QUERY, - // audit state entry or event count -- XCP_ADMQ_LASTCMD_DOM_MASK = 17 | XCP_ADM_QUERY -+ XCP_ADMQ_LASTCMD_DOM_MASK = 17 | XCP_ADM_QUERY, - // domain-bitmask affected by last - // state-related administrative - // command (export, import) -+ XCP_ADMQ_SVCADMIN = 18 | XCP_ADM_QUERY, // svc admin SKI/cert - } XCP_Admcmd_t; - - typedef enum { -@@ -1660,7 +1577,8 @@ typedef enum { - XCP_ADMINT_PERMS = 3, // permissions - XCP_ADMINT_MODE = 4, // operating mode - XCP_ADMINT_STD = 5, // standards' compliance -- XCP_ADMINT_IDX_MAX = XCP_ADMINT_STD -+ XCP_ADMINT_PERMS_EXT01 = 6, // permissions (extension #1) -+ XCP_ADMINT_IDX_MAX = XCP_ADMINT_PERMS_EXT01 - } XCP_AdmAttr_t; - - #define XCP_ADMIN_ATTRIBUTE_COUNT XCP_ADMINT_IDX_MAX -@@ -1719,6 +1637,29 @@ typedef enum { - #define XCP_ADMP_CHG_DO_NOT_DISTURB \ - 0x80000000 // allow changing the corresponding - // Do Not Disturb bit -+ -+// -+// permissions (extension 01) -+// -+#define XCP_ADMP_NQS_OA_SIGNATURES 1 // enable non-quantum-safe OA signat. -+#define XCP_ADMP_QS_OA_SIGNATURES 2 // enable quantum-safe OA signatures -+#define XCP_ADMP_NQS_ADM_SIGNATURES 4 // enable non-quantum-safe adm signat. -+#define XCP_ADMP_QS_ADM_SIGNATURES 8 // enable quantum-safe adm signatures -+ -+#define XCP_ADMP_CHG_NQS_OA_SIGNATURES \ -+ 0x10000 // allow changing the corresponding -+ // non-quantum-safe OA signature bit -+#define XCP_ADMP_CHG_QS_OA_SIGNATURES \ -+ 0x20000 // allow changing the corresponding -+ // quantum-safe OA signature bit -+#define XCP_ADMP_CHG_NQS_ADM_SIGNATURES \ -+ 0x40000 // allow changing the corresponding -+ // non-quantum-safe adm signature bit -+#define XCP_ADMP_CHG_QS_ADM_SIGNATURES \ -+ 0x80000 // allow changing the corresponding -+ // quantum-safe adm signature bit -+ -+ - // - // if adding other change-control bits, also update: - // prevented_perm_changes() -@@ -1754,15 +1695,49 @@ typedef enum { - XCP_ADMP_STATE_1PART | \ - XCP_ADMP_DO_NOT_DISTURB) - // -+// CHGBITS / PERMS (extension 01) -+#define XCP_ADMP__CHGBITS_EXT01 \ -+ (XCP_ADMP_CHG_NQS_OA_SIGNATURES | \ -+ XCP_ADMP_CHG_QS_OA_SIGNATURES | \ -+ XCP_ADMP_CHG_NQS_ADM_SIGNATURES | \ -+ XCP_ADMP_CHG_QS_ADM_SIGNATURES) -+// -+#define XCP_ADMP__PERMS_EXT01 \ -+ (XCP_ADMP_NQS_OA_SIGNATURES | \ -+ XCP_ADMP_QS_OA_SIGNATURES | \ -+ XCP_ADMP_NQS_ADM_SIGNATURES | \ -+ XCP_ADMP_QS_ADM_SIGNATURES) -+// -+#define XCP__ADMP_SUP_EXT01 (XCP_ADMP__PERMS_EXT01 | \ -+ XCP_ADMP__CHGBITS_EXT01) -+// -+// - #define XCP_ADMP__DEFAULT \ - (XCP_ADMP_WK_IMPORT | \ - XCP_ADMP_1SIGN | \ - XCP_ADMP__CHGBITS) - // -+#define XCP_ADMP__DEFAULT_EXT01 \ -+ (XCP_ADMP__CHGBITS_EXT01 | \ -+ XCP_ADMP_NQS_OA_SIGNATURES | \ -+ XCP_ADMP_QS_OA_SIGNATURES | \ -+ XCP_ADMP_NQS_ADM_SIGNATURES | \ -+ XCP_ADMP_QS_ADM_SIGNATURES) -+// - #define XCPM_ADMP__MODULE_DEFAULTS_MASK \ - (XCP_ADMP_DO_NOT_DISTURB | \ - XCP_ADMP_CHG_DO_NOT_DISTURB) - // -+#define XCPM_ADMP__MODULE_DEFAULTS_MASK_EXT01 \ -+ (XCP_ADMP_NQS_OA_SIGNATURES | \ -+ XCP_ADMP_CHG_NQS_OA_SIGNATURES | \ -+ XCP_ADMP_QS_OA_SIGNATURES | \ -+ XCP_ADMP_CHG_QS_OA_SIGNATURES | \ -+ XCP_ADMP_NQS_ADM_SIGNATURES | \ -+ XCP_ADMP_CHG_NQS_ADM_SIGNATURES | \ -+ XCP_ADMP_QS_ADM_SIGNATURES | \ -+ XCP_ADMP_CHG_QS_ADM_SIGNATURES) -+// - #define XCP_ADMP__CARD_MASK \ - ~(XCP_ADMP_WK_IMPORT | \ - XCP_ADMP_WK_EXPORT | \ -@@ -1775,6 +1750,9 @@ typedef enum { - XCP_ADMP_CHG_WK_RANDOM | \ - XCP_ADMP_CHG_CP_1SIGN) - // -+#define XCP_ADMP__CARD_MASK_EXT01 \ -+ ~(0U) -+// - #define XCP_ADMP__DOM_MASK \ - ~(XCP_ADMP_NO_DOMAIN_IMPRINT | \ - XCP_ADMP_STATE_IMPORT | \ -@@ -1784,6 +1762,12 @@ typedef enum { - XCP_ADMP_CHG_ST_EXPORT | \ - XCP_ADMP_CHG_ST_1PART) - // -+#define XCP_ADMP__DOM_MASK_EXT01 \ -+ ~(0U) -+// -+ -+#define XCP__ADMP_SUP ((XCP_ADMP__PERMS | XCP_ADMP__CHGBITS) &\ -+ ~XCP_ADMP_NOT_SUP) - - // card modes - #define XCP_ADMM_AUTHENTICATED 1U // no longer in imprint mode -@@ -1838,6 +1822,8 @@ typedef enum { - XCP_ADMM_STR_192BIT | \ - XCP_ADMM_STR_256BIT) - -+#define XCP__ADMM_SUP XCP_ADMM__MASK -+ - // specific standards' compliance suites - #define XCP_ADMS_FIPS2009 1 // NIST, 80+ bits, -2011.01.01. - #define XCP_ADMS_BSI2009 2 // BSI , 80+ bits, -2011.01.01. -@@ -1850,18 +1836,74 @@ typedef enum { - // - #define XCP_ADMS_BSICC2017 0x40 // BSI, EP11 Common Criteria EAL4 2017 - // -+#define XCP_ADMS_FIPS2021 0x80 // NIST SP800-131A REV.2, 2021.01.01 -+#define XCP_ADMS_FIPS2024 0x100 // NIST SP800-131A REV.2, 2024.01.01 -+#define XCP_ADMS_ADM_FIPS2021 0x200 // NIST SP800-131A REV.2, 2021.01.01 - - #define XCP_ADMS__ALL \ - (XCP_ADMS_FIPS2009 | \ - XCP_ADMS_BSI2009 | \ - XCP_ADMS_FIPS2011 | \ - XCP_ADMS_BSI2011 | \ -+ XCP_ADMS_BSICC2017 | \ -+ XCP_ADMS_FIPS2021 | \ -+ XCP_ADMS_FIPS2024 | \ -+ XCP_ADMS_ADM_FIPS2021) -+ -+#define XCP_ADMS__SUPP (XCP_ADMS__ALL & \ -+ ~(XCP_ADMS_FIPS2021 | \ -+ XCP_ADMS_ADM_FIPS2021 | \ -+ XCP_ADMS_FIPS2024)) -+ -+// The following 'legacy' defines are used as default 'supported bit masks' -+// for older devices that do not have native bit masks for that purpose. -+// Note: If supported bits are not present, the import of these bits are -+// skipped and the default values will be kept. -+#define XCP__ADMP_SUP_LEGACY \ -+ (XCP_ADMP_WK_IMPORT | \ -+ XCP_ADMP_WK_EXPORT | \ -+ XCP_ADMP_WK_1PART | \ -+ XCP_ADMP_WK_RANDOM | \ -+ XCP_ADMP_1SIGN | \ -+ XCP_ADMP_CP_1SIGN | \ -+ XCP_ADMP_ZERO_1SIGN | \ -+ XCP_ADMP_NO_DOMAIN_IMPRINT | \ -+ XCP_ADMP_STATE_IMPORT | \ -+ XCP_ADMP_STATE_EXPORT | \ -+ XCP_ADMP_STATE_1PART | \ -+ XCP_ADMP_CHG_WK_IMPORT | \ -+ XCP_ADMP_CHG_WK_EXPORT | \ -+ XCP_ADMP_CHG_WK_1PART | \ -+ XCP_ADMP_CHG_WK_RANDOM | \ -+ XCP_ADMP_CHG_SIGN_THR | \ -+ XCP_ADMP_CHG_REVOKE_THR | \ -+ XCP_ADMP_CHG_1SIGN | \ -+ XCP_ADMP_CHG_CP_1SIGN | \ -+ XCP_ADMP_CHG_ZERO_1SIGN | \ -+ XCP_ADMP_CHG_ST_IMPORT | \ -+ XCP_ADMP_CHG_ST_EXPORT | \ -+ XCP_ADMP_CHG_ST_1PART) -+ -+#define XCP__ADMM_SUP_LEGACY \ -+ (XCP_ADMM_AUTHENTICATED | \ -+ XCP_ADMM_EXTWNG | \ -+ XCP_ADMM_WKCLEAN_EXTWNG | \ -+ XCP_ADMM_BATT_LOW | \ -+ XCP_ADMM_API_ACTIVE) -+ -+#define XCP_ADMS__ALL_LEGACY \ -+ (XCP_ADMS_FIPS2009 | \ -+ XCP_ADMS_BSI2009 | \ -+ XCP_ADMS_FIPS2011 | \ -+ XCP_ADMS_BSI2011 | \ - XCP_ADMS_BSICC2017) - -+#define XCP__ADMP_SUP_EXT01_LEGACY (0) -+ - // has compliance any BSI mode --#define XCP_ADMS_IS_BSI(mode) (!!(mode & (XCP_ADMS_BSI2009 | \ -- XCP_ADMS_BSI2011 | \ -- XCP_ADMS_BSICC2017 )) ) -+#define XCP_ADMS_IS_BSI(mode) (!!((mode) & (XCP_ADMS_BSI2009 | \ -+ XCP_ADMS_BSI2011 | \ -+ XCP_ADMS_BSICC2017 )) ) - // mask of supported import keys - // 3k and 4k RSA are not supported - #define XCP_ADM_IMPEXP_KEYS__MASK \ -@@ -1870,7 +1912,8 @@ typedef enum { - (1 << XCP_IMPRKEY_EC_P521) | \ - (1 << XCP_IMPRKEY_EC_BP256r) | \ - (1 << XCP_IMPRKEY_EC_BP320r) | \ -- (1 << XCP_IMPRKEY_EC_BP512r)) -+ (1 << XCP_IMPRKEY_EC_BP512r) | \ -+ (1 << XCP_IMPRKEY_EC_P521_TKE)) - - - /*--- audit chains -------------------------------------------------------*/ -@@ -1922,50 +1965,55 @@ typedef enum { - - /*--- state serialization ------------------------------------------------*/ - typedef enum { -- XCP_STSTYPE_SECTIONCOUNT = 1, // section count +file hash -- XCP_STSTYPE_DOMAINIDX_MAX = 2, // largest index +total nr of domains -- XCP_STSTYPE_DOMAINS_MASK = 3, // bitmask of included domains -- XCP_STSTYPE_SERIALNR = 4, -- XCP_STSTYPE_CREATE_TIME = 5, // file date/time (UTC) -- XCP_STSTYPE_FCV = 6, // public parts of originating FCV -- XCP_STSTYPE_CARD_QUERY = 7, // card state structure (xcp_info) -- XCP_STSTYPE_CARD_ADM_SKIS = 8, // card admin SKIs, packed -- XCP_STSTYPE_CARD_ADM_CERTS = 9, // card admin certificates, packed -- XCP_STSTYPE_DOM_ADM_SKIS = 10, // domain admin SKIs, packed -- XCP_STSTYPE_DOM_ADM_CERTS = 11, // domain admin certificates, packed -- XCP_STSTYPE_DOM_QUERY = 12, // domain state structure (xcp_info) -- XCP_STSTYPE_KPH_SKIS = 13, // count and SKIs of targeted KPHs -- XCP_STSTYPE_CARD_ATTRS = 14, // card attributes -- XCP_STSTYPE_DOM_ATTRS = 15, // domain attributes -- XCP_STSTYPE_CARD_TRANSCTR = 16, // card transaction counter -- XCP_STSTYPE_DOM_TRANSCTR = 17, // domain transaction counter -- XCP_STSTYPE_WK_ENCR_ALG = 18, -- XCP_STSTYPE_WK_ENCR_DATA = 19, -- XCP_STSTYPE_SIG_CERT_COUNT = 20, -- XCP_STSTYPE_SIG_CERTS = 21, -- XCP_STSTYPE_FILE_SIG = 22, -- XCP_STSTYPE_DOM_CPS = 23, // full set of control points -- XCP_STSTYPE_STATE_SALT = 24, -- XCP_STSTYPE_KEYPART = 25, // encrypted keypart (RecipientInfo) -- XCP_STSTYPE_KEYPART_SIG = 26, // signature on encrypted keypart -- XCP_STSTYPE_KEYPART_COUNT = 27, // total number of keyparts -- XCP_STSTYPE_KEYPART_LIMIT = 28, // number of keyparts needed to -- // restore -- XCP_STSTYPE_KEYPART_CERT = 29, // certificate of keypart holder -- XCP_STSTYPE_CERT_AUTH = 30, // certificate authority issuing -- // some of the certificates. This -- // field contains host-supplied data -- // and it is ignored by EP11 itself. -- XCP_STSTYPE_STATE_SCOPE = 31, // restriction on contents of full -- // state structure -- XCP_STSTYPE_MULTIIMPORT_MASK -- = 32, // import only: designate import -- // request to be replicated into -- // multiple recipient domains -- XCP_STSTYPE_CPS_MASK = 33, // bitmask of all CPs supported -- // by the exporting module -- -- XCP_STSTYPE_MAX = XCP_STSTYPE_CPS_MASK -+ XCP_STSTYPE_SECTIONCOUNT = 1, // section count +file hash -+ XCP_STSTYPE_DOMAINIDX_MAX = 2, // largest index +total nr of doms -+ XCP_STSTYPE_DOMAINS_MASK = 3, // bitmask of included domains -+ XCP_STSTYPE_SERIALNR = 4, -+ XCP_STSTYPE_CREATE_TIME = 5, // file date/time (UTC) -+ XCP_STSTYPE_FCV = 6, // public parts of originating FCV -+ XCP_STSTYPE_CARD_QUERY = 7, // V0 card state struct (xcp_info) -+ XCP_STSTYPE_CARD_ADM_SKIS = 8, // card admin SKIs, packed -+ XCP_STSTYPE_CARD_ADM_CERTS = 9, // card admin certificates, packed -+ XCP_STSTYPE_DOM_ADM_SKIS = 10, // domain admin SKIs, packed -+ XCP_STSTYPE_DOM_ADM_CERTS = 11, // domain admin certs, packed -+ XCP_STSTYPE_DOM_QUERY = 12, // domain state struct (xcp_info) -+ XCP_STSTYPE_KPH_SKIS = 13, // count and SKIs of targeted KPHs -+ XCP_STSTYPE_CARD_ATTRS = 14, // card attributes -+ XCP_STSTYPE_DOM_ATTRS = 15, // domain attributes -+ XCP_STSTYPE_CARD_TRANSCTR = 16, // card transaction counter -+ XCP_STSTYPE_DOM_TRANSCTR = 17, // domain transaction counter -+ XCP_STSTYPE_WK_ENCR_ALG = 18, -+ XCP_STSTYPE_WK_ENCR_DATA = 19, -+ XCP_STSTYPE_SIG_CERT_COUNT = 20, -+ XCP_STSTYPE_SIG_CERTS = 21, -+ XCP_STSTYPE_FILE_SIG = 22, -+ XCP_STSTYPE_DOM_CPS = 23, // full set of control points -+ XCP_STSTYPE_STATE_SALT = 24, -+ XCP_STSTYPE_KEYPART = 25, // encrypted keypart (RecipientInfo) -+ XCP_STSTYPE_KEYPART_SIG = 26, // signature on encrypted keypart -+ XCP_STSTYPE_KEYPART_COUNT = 27, // total number of keyparts -+ XCP_STSTYPE_KEYPART_LIMIT = 28, // number of keyparts needed to -+ // restore -+ XCP_STSTYPE_KEYPART_CERT = 29, // certificate of keypart holder -+ XCP_STSTYPE_CERT_AUTH = 30, // certificate authority issuing -+ // some of the certificates. This -+ // field contains host-supplied data -+ // and it is ignored by EP11 itself. -+ XCP_STSTYPE_STATE_SCOPE = 31, // restriction on contents of full -+ // state structure -+ XCP_STSTYPE_MULTIIMPORT_MASK = 32, // import only: designate import -+ // request to be replicated into -+ // multiple recipient domains -+ XCP_STSTYPE_CPS_MASK = 33, // bitmask of all CPs supported -+ // by the exporting module -+ XCP_STSTYPE_CARD_QUERY_V1 = 34, // V1 card state struct (xcp_info) -+ XCP_STSTYPE_CARD_QUERY_V2 = 35, // V2 card state struct (xcp_info) -+ XCP_STSTYPE_CARD_EXTADM_SKIS = 36, // ext. card admin SKIs, packed -+ XCP_STSTYPE_CARD_EXTADM_CERTS = 37, // ext. card admin certs, packed -+ XCP_STSTYPE_DOM_EXTADM_SKIS = 38, // ext. dom admin SKIs, packed -+ XCP_STSTYPE_DOM_EXTADM_CERTS = 39, // ext. dom admin certs, packed -+ -+ XCP_STSTYPE_MAX = XCP_STSTYPE_DOM_EXTADM_CERTS - } XCP_StateSection_t; - - typedef enum { -@@ -1991,7 +2039,11 @@ typedef enum { - // not return KPH certificates - XCP_STWK_KP_NO_OA_CHAIN = 8, // keypart section restricted to - // not return OA certificate chain -- XCP_STDATA_MAX = ((XCP_STWK_KP_NO_OA_CHAIN *2) -1) -+ XCP_STDATA_NQS = 0x20,// allow use of non-quantum-safe -+ // algorithms in KP export/signature -+ XCP_STDATA_QS = 0x40,// allow use of quantum-safe -+ // algorithms in KP export/signature -+ XCP_STDATA_MAX = ((XCP_STDATA_QS *2) -1) - } XCP_StateType_t; - - // type || identifier prefixes -@@ -2124,10 +2176,6 @@ typedef enum { - #define XCP_EC_MAX_ID_BYTES 11 /* fits all EC names/OIDs */ - - --// Dilithium related OIDs --#define XCP_PQC_DILITHIUM_65_NAME "\x6\xB\x2B\x6\x1\x4\x1\x2\x82\xB\x1\x6\x5" --#define XCP_PQC_DILITHIUM_65_NAME_BYTES 13 -- - /*------------------------------------*/ - typedef enum { - XCP_EC_C_NIST_P192 = 1, /* NIST, FP curves */ -@@ -2158,6 +2206,7 @@ typedef enum { - XCP_EC_C_ED25519 = 26, /* ed25519, EDDSA */ - - -+ XCP_EC_C_MAX = 27 /* last possible value */ - - } XCP_ECcurve_t; - -@@ -2175,6 +2224,56 @@ typedef enum { - } XCP_ECCurveGrp_t; - - -+/*--- PQC algorithms ------------------------------------------------------*/ -+ -+// Dilithium related OIDs -+// Round 2 Dilithium-3 (5-4) -+#define XCP_PQC_DILITHIUM_R2_54 "\x6\xb\x2b\x6\x1\x4\x1\x2\x82\xb\x1\x5\x4" -+#define XCP_PQC_DILITHIUM_R2_54_BYTES 13 -+// Round 2 Dilithium-4 (6-5) -+#define XCP_PQC_DILITHIUM_R2_65 "\x6\xb\x2b\x6\x1\x4\x1\x2\x82\xb\x1\x6\x5" -+#define XCP_PQC_DILITHIUM_R2_65_BYTES 13 -+// Round 2 Dilithium-5 (8-7) -+#define XCP_PQC_DILITHIUM_R2_87 "\x6\xb\x2b\x6\x1\x4\x1\x2\x82\xb\x1\x8\x7" -+#define XCP_PQC_DILITHIUM_R2_87_BYTES 13 -+// Round 3 Dilithium-2 (4-4) -+#define XCP_PQC_DILITHIUM_R3_44 "\x6\xb\x2b\x6\x1\x4\x1\x2\x82\xb\x7\x4\x4" -+#define XCP_PQC_DILITHIUM_R3_44_BYTES 13 -+// Round 3 Dilithium-3 (6-5) -+#define XCP_PQC_DILITHIUM_R3_65 "\x6\xb\x2b\x6\x1\x4\x1\x2\x82\xb\x7\x6\x5" -+#define XCP_PQC_DILITHIUM_R3_65_BYTES 13 -+// Round 3 Dilithium-5 (8-7) -+#define XCP_PQC_DILITHIUM_R3_87 "\x6\xb\x2b\x6\x1\x4\x1\x2\x82\xb\x7\x8\x7" -+#define XCP_PQC_DILITHIUM_R3_87_BYTES 13 -+ -+// Round 2 Kyber 512 -+#define XCP_PQC_KYBER_R2_512 "\x6\x9\x2B\x6\x1\x4\x1\x2\x82\xB\x5" -+#define XCP_PQC_KYBER_R2_512_BYTES 11 -+ -+// Round 2 Kyber 768 -+#define XCP_PQC_KYBER_R2_768 "\x6\xB\x2B\x6\x1\x4\x1\x2\x82\xB\x5\x3\x3" -+#define XCP_PQC_KYBER_R2_768_BYTES 13 -+ -+// Round 2 Kyber 1024 -+#define XCP_PQC_KYBER_R2_1024 "\x6\xB\x2B\x6\x1\x4\x1\x2\x82\xB\x5\x4\x4" -+#define XCP_PQC_KYBER_R2_1024_BYTES 13 -+ -+/*------------------------------------*/ -+typedef enum { -+ XCP_PQC_S_DILITHIUM_R2_54 = 1, /* Round-2 Dilithium */ -+ XCP_PQC_S_DILITHIUM_R2_65 = 2, -+ XCP_PQC_S_DILITHIUM_R2_87 = 3, -+ XCP_PQC_S_DILITHIUM_R3_44 = 4, /* Round-3 Dilithium */ -+ XCP_PQC_S_DILITHIUM_R3_65 = 5, -+ XCP_PQC_S_DILITHIUM_R3_87 = 6, -+ XCP_PQC_S_KYBER_R2_512 = 7, /* Round-2 Kyber */ -+ XCP_PQC_S_KYBER_R2_768 = 8, -+ XCP_PQC_S_KYBER_R2_1024 = 9, -+ -+ XCP_PQC_MAX = XCP_PQC_S_KYBER_R2_1024, -+} XCP_PQCStrength_t; -+ -+ - // binary encoding of function/version query - // SEQUENCE { OCTET STRING (0) } - // module responds with API version and build ID -@@ -2343,12 +2442,15 @@ typedef enum { - XCP_DEV_FLIP_ERRORSTATE = 68, // explicitly flip the setting of the - // error state of the module - XCP_DEV_AESKW = 69, -- XCP_DEV_MAX_INDEX = XCP_DEV_AESKW -+ XCP_DEV_UNIT_TEST = 72, // run unit tests on module -+ -+ -+ XCP_DEV_MAX_INDEX = XCP_DEV_UNIT_TEST - } XCP_DEVcmd_t; - // - // upper limit on additional data bytes, for SYS-TEST commands with aux. data - // (arbitrary limit, commands may restict further) --#define XCP_DEV_MAX_DATABYTES ((size_t) 4096) -+#define XCP_DEV_MAX_DATABYTES ((size_t) 64000) - // - // iteration-count limit applies to any iterative call - // driver[timeout] may interfere; dev-only feature is not otherwise restricted -@@ -2412,23 +2514,207 @@ typedef enum { - #define CKG_IBM_MGF1_SHA3_384 (CKG_VENDOR_DEFINED +3) - #define CKG_IBM_MGF1_SHA3_512 (CKG_VENDOR_DEFINED +4) - -+#if !defined(CKD_VENDOR_DEFINED) -+#define CKD_VENDOR_DEFINED 0x80000000UL -+#endif - -+#define CKD_IBM_HYBRID_NULL (CKD_VENDOR_DEFINED + 0x00000001UL) -+#define CKD_IBM_HYBRID_SHA1_KDF (CKD_VENDOR_DEFINED + 0x00000002UL) -+#define CKD_IBM_HYBRID_SHA224_KDF (CKD_VENDOR_DEFINED + 0x00000003UL) -+#define CKD_IBM_HYBRID_SHA256_KDF (CKD_VENDOR_DEFINED + 0x00000004UL) -+#define CKD_IBM_HYBRID_SHA384_KDF (CKD_VENDOR_DEFINED + 0x00000005UL) -+#define CKD_IBM_HYBRID_SHA512_KDF (CKD_VENDOR_DEFINED + 0x00000006UL) - --typedef uint64_t target_t; -- --#define XCP_TGT_INIT ~0UL -+#define XCP_MODEL_CEX4P 4 -+#define XCP_MODEL_CEX5P 5 -+#define XCP_MODEL_CEX6P 6 -+#define XCP_MODEL_CEX7P 7 -+#define XCP_MODEL_CEX8P 8 - --#define XCP_TGT_FMT "x%016" PRIx64 -+/*--------------------------------------------------------------------------*/ -+// max value for target groups -+#define XCP_MAX_GRPIDX 1024u - --// initializes the library --int m_init(void); --// shutting down the library --int m_shutdown(void); -+// -+// macros for setting/checking and removing domains from (tgt.mgmt) domain mask -+#define XCPTGTMASK_SET_DOM(mask, domain) \ -+ ((mask)[((domain)/8)] |= (1 << (7-(domain)%8))) -+#define XCPTGTMASK_DOM_IS_SET(mask, domain) \ -+ ((mask)[((domain)/8)] & (1 << (7-(domain)%8))) -+#define XCPTGTMASK_CLR_DOM(mask, domain) \ -+ ((mask)[((domain)/8)] &= ~(1 << (7-(domain)%8))) -+ -+ -+/* flags that can be set for the target tokens -+ * -+ * This flags are domain specific and are therefore called domain flags -+ * -+ * start of flags is >16 Bit. Max value for domains is 0xFF. Should be enough -+ * room for extensions -+ */ -+#define XCP_TGTFL_WCAP 0x10000000 /* Capture wire request in output buffer -+ * without sending it to the module -+ */ -+#define XCP_TGTFL_WCAP_SQ 0x20000000 /* Size query: Return size of request in -+ * output buffer length field -+ */ -+#define XCP_TGTFL_SET_SCMD 0x40000000 /* Protected key special command: Set the -+ * special command flag in the CPRB -+ * header -+ */ -+#define XCP_TGTFL_API_CHKD 0x80000000 /* supported API version of modules in -+ * target (group) has been checked -+ */ -+ -+#define XCP_TGTFL_NO_LOCK 0x01000000 /* target token ignores sequential locks -+ * for target probing -+ */ -+#define XCP_TGTFL_CHK_ATTR 0x02000000 /* reject unknown attribute in attribute -+ * templates with -+ * CKR_TEMPLATE_INCONSISTENT. Default is -+ * to ignore unknown attributes. -+ */ -+#define XCP_TGTFL_SET_ACMD 0x04000000 /* add CPRB admin flag to CPRB header */ -+ -+#define XCP_TGTFL_NO_SPLIT 0x08000000 /* enforce single-shot requests */ -+ -+//-------------------------------------- -+// socket use only -+#define XCP_MAXCONNECTIONS 64 /* max value for active connections */ -+#define XCP_MAX_PORT 0xffff -+ -+// hostname and port value fore one module -+typedef struct XCP_ModuleSocket { -+ char host[ MAX_FNAME_CHARS +1 ]; -+ uint32_t port; -+} *XCP_ModuleSocket_t ; -+ -+ -+//-------------------------------------- -+// diagnostics use only -+typedef struct XCP_DomainPerf { -+ /* perf value of last request per domain -+ * -+ * At the moment unused -+ * */ -+ unsigned int lastperf[ 256 ]; -+} *XCP_DomainPerf_t; -+ -+ -+// current version of XCP_Module structure; host code SHOULD interact with -+// future/past versions, MUST be set by caller before using m_add_module() -+// valid versions are all >0 -+#define XCP_MOD_VERSION 2 -+//-------------------------------------- -+// subsequent communications with a module MAY skip infrastructure-specific -+// fields, such as a query not reporting device handles etc., even if they -+// have been supplied originally when the module has been registered. -+// -+typedef struct XCP_Module { -+ uint32_t version; /* >0 for supported API versions */ -+ -+ uint64_t flags; /* see XCP_Module_Flags */ -+ -+ uint32_t domains; /* max# addressable under this module; -+ * cached from OS -+ * -+ * when callers set domains to 0, the library -+ * returns the module-claimed domain count. -+ */ -+ -+ unsigned char domainmask[ 256 /8 ]; -+ /* higher domain# through future flags (none -+ * currently defined) which would add things -+ * like 'FLAG_256_1023' etc. at the same time, -+ * we would add domainmask2[] etc. -+ * corresponding new fields. -+ * -+ * new fields would then store mask for -+ * domains 256+ etc. -+ * -+ * domain #0 is bit x80 of 1st byte, -+ * #255 is bit 0x01 of last byte. -+ */ -+ -+ // when a domainmask is supplied, with bits set beyond -+ // what the module supports, the bitmask is trimmed to -+ // the supported range, but this is NOT reported as an -+ // error, unless XCP_MFL_STRICT is also supplied. -+ // -+ // without XCP_MFL_STRICT, callers are expected to check -+ // at least the returned domain count. -+ -+ /* used only when flags includes XCP_MFL_SOCKET */ -+ struct XCP_ModuleSocket socket; -+ -+ /* used when system exposes modules through an -+ * array of transparent pipes, or similar abstraction -+ * (such as mainframe AP Queues, or other Linux -+ * 'device-minor' numbers etc.). Interpretation -+ * is platform-dependent. -+ * -+ * used only when flags includes XCP_MFL_MODULE -+ */ -+ uint32_t module_nr; -+ -+ /* used by systems which associate devices with -+ * device handles/structs/etc. persistent state. -+ * opaque pointer, usually a const pointer to -+ * such aux structs, MAY be stored here. -+ * -+ * interpretation is platform-dependent. -+ * used only when flags includes XCP_MFL_MHANDLE -+ */ -+ void *mhandle; -+ /* diagnostics use only, when XCP_MFL_PERF is set */ -+ struct XCP_DomainPerf perf; -+ //----- end of v1 fields ------------------------------------------- -+ -+ uint32_t api; /* module api version*/ -+ //----- end of v2 fields ------------------------------------------- -+} *XCP_Module_t ; -+ -+typedef enum { -+ XCP_MFL_SOCKET = 1, /* backend is socket-attached */ -+ XCP_MFL_MODULE = 2, /* backends identified in -+ array-of-modules */ -+ XCP_MFL_MHANDLE = 4, /* backends uses 'module handle' field */ -+ XCP_MFL_PERF = 8, /* performance statistics collected -+ * for this module, see .perf -+ */ -+ XCP_MFL_VIRTUAL = 0x10, /* queried 'target' is a load-balancer, -+ * other other group. -+ */ -+ XCP_MFL_STRICT = 0x20, /* enable aggressive error checking, -+ * see field descriptions for effect -+ */ -+ XCP_MFL_PROBE = 0x40, /* send api query to module, to check if -+ * target(s) can be used -+ */ -+ XCP_MFL_ALW_TGT_ADD = 0x80, /* Allows it to use a target in any -+ * functional and admin call without -+ * adding it beforehand with -+ * m_add_module() -+ */ -+ XCP_MFL_MAX = 0xff -+} XCP_Module_Flags; -+ -+typedef uint64_t target_t; -+ -+#define XCP_TGT_INIT ~0UL -+ -+#define XCP_TGT_FMT "x%016" PRIx64 - - int m_add_module(XCP_Module_t module, target_t *target) ; - - int m_rm_module(XCP_Module_t module, target_t target) ; - -+CK_RV m_admin (unsigned char *response1, size_t *r1len, -+ unsigned char *response2, size_t *r2len, -+ const unsigned char *cmd, size_t clen, -+ const unsigned char *sigs, size_t slen, -+ target_t target) ; -+ - /*---------------------------------------------------------------------- - * CK_... type arguments correspond to the original PKCS#11 call's - * arguments. Standard types mean PKCS#11 objects (session, token etc.) -@@ -2442,11 +2728,31 @@ int m_rm_module(XCP_Module_t module, target_t target) ; - * For certain operations, such as _GenerateKey, there are no real - * PKCS#11 type parameters at this level. - */ -+ -+ -+CK_RV m_Login ( CK_UTF8CHAR_PTR pin, CK_ULONG pinlen, -+ const unsigned char *nonce, size_t nlen, -+ unsigned char *pinblob, size_t *pinbloblen, -+ target_t target) ; -+CK_RV m_Logout ( const unsigned char *pin, size_t len, target_t target) ; -+ -+CK_RV m_LoginExtended( CK_UTF8CHAR_PTR pin, CK_ULONG pinlen, -+ const unsigned char *nonce, size_t nlen, -+ const unsigned char *xstruct, size_t xslen, -+ unsigned char *pinblob, size_t *pinbloblen, -+ target_t target) ; -+ -+CK_RV m_LogoutExtended( CK_UTF8CHAR_PTR pin, CK_ULONG pinlen, -+ const unsigned char *nonce, size_t nlen, -+ const unsigned char *xstruct, size_t xslen, -+ target_t target) ; -+ - CK_RV m_GenerateRandom (CK_BYTE_PTR rnd, CK_ULONG len, target_t target) ; - /**/ - /* note: external seeding not supported */ - CK_RV m_SeedRandom (CK_BYTE_PTR pSeed, CK_ULONG ulSeedLen, - target_t target) ; -+ - CK_RV m_DigestInit (unsigned char *state, size_t *len, - const CK_MECHANISM_PTR pmech, - target_t target) ; -@@ -2469,6 +2775,73 @@ CK_RV m_DigestSingle (CK_MECHANISM_PTR pmech, - CK_BYTE_PTR digest, CK_ULONG_PTR dlen, - target_t target) ; - -+CK_RV m_GenerateKey (CK_MECHANISM_PTR pmech, -+ CK_ATTRIBUTE_PTR ptempl, CK_ULONG templcount, -+ const unsigned char *pin, size_t pinlen, -+ unsigned char *key, size_t *klen, -+ unsigned char *csum, size_t *clen, -+ target_t target) ; -+/**/ -+CK_RV m_GenerateKeyPair (CK_MECHANISM_PTR pmech, -+ CK_ATTRIBUTE_PTR ppublic, CK_ULONG pubattrs, -+ CK_ATTRIBUTE_PTR pprivate, CK_ULONG prvattrs, -+ const unsigned char *pin, size_t pinlen, -+ unsigned char *key, size_t *klen, -+ unsigned char *pubkey, size_t *pklen, -+ target_t target) ; -+ -+/* mackey is NULL for PKCS#11 formats, not for authenticated ones */ -+CK_RV m_WrapKey (const unsigned char *key, size_t keylen, -+ const unsigned char *kek, size_t keklen, -+ const unsigned char *mackey, size_t mklen, -+ const CK_MECHANISM_PTR pmech, -+ CK_BYTE_PTR wrapped, CK_ULONG_PTR wlen, -+ target_t target) ; -+/**/ -+/* mackey is NULL for PKCS#11 formats, not for authenticated ones */ -+CK_RV m_UnwrapKey (const CK_BYTE_PTR wrapped, CK_ULONG wlen, -+ const unsigned char *kek, size_t keklen, -+ const unsigned char *mackey, size_t mklen, -+ const unsigned char *pin, size_t pinlen, -+ const CK_MECHANISM_PTR uwmech, -+ const CK_ATTRIBUTE_PTR ptempl, CK_ULONG pcount, -+ unsigned char *unwrapped, size_t *uwlen, -+ CK_BYTE_PTR csum, CK_ULONG *cslen, -+ target_t target) ; -+ -+CK_RV m_DeriveKey ( CK_MECHANISM_PTR pderivemech, -+ CK_ATTRIBUTE_PTR ptempl, CK_ULONG templcount, -+ const unsigned char *basekey, size_t bklen, -+ const unsigned char *data, size_t dlen, -+ const unsigned char *pin, size_t pinlen, -+ unsigned char *newkey, size_t *nklen, -+ unsigned char *csum, size_t *cslen, -+ target_t target) ; -+ -+CK_RV m_GetAttributeValue (const unsigned char *obj, size_t olen, -+ CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount, -+ target_t target) ; -+CK_RV m_SetAttributeValue (unsigned char *obj, size_t olen, -+ CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount, -+ target_t target) ; -+ -+/**/ -+CK_RV m_GetMechanismList (CK_SLOT_ID slot, -+ CK_MECHANISM_TYPE_PTR mechs, -+ CK_ULONG_PTR count, -+ target_t target) ; -+CK_RV m_GetMechanismInfo (CK_SLOT_ID slot, -+ CK_MECHANISM_TYPE mech, -+ CK_MECHANISM_INFO_PTR pmechinfo, -+ target_t target) ; -+ -+CK_RV m_get_xcp_info (CK_VOID_PTR pinfo, CK_ULONG_PTR infbytes, -+ unsigned int query, -+ unsigned int subquery, -+ target_t target) ; -+ -+// see also: CK_IBM_XCPQUERY_t -+ - CK_RV m_EncryptInit (unsigned char *state, size_t *slen, - CK_MECHANISM_PTR pmech, - const unsigned char *key, size_t klen, -@@ -2516,21 +2889,6 @@ CK_RV m_DecryptSingle (const unsigned char *key, size_t klen, - CK_BYTE_PTR plain, CK_ULONG_PTR plen, - target_t target) ; - --CK_RV m_GenerateKey (CK_MECHANISM_PTR pmech, -- CK_ATTRIBUTE_PTR ptempl, CK_ULONG templcount, -- const unsigned char *pin, size_t pinlen, -- unsigned char *key, size_t *klen, -- unsigned char *csum, size_t *clen, -- target_t target) ; --/**/ --CK_RV m_GenerateKeyPair (CK_MECHANISM_PTR pmech, -- CK_ATTRIBUTE_PTR ppublic, CK_ULONG pubattrs, -- CK_ATTRIBUTE_PTR pprivate, CK_ULONG prvattrs, -- const unsigned char *pin, size_t pinlen, -- unsigned char *key, size_t *klen, -- unsigned char *pubkey, size_t *pklen, -- target_t target) ; -- - CK_RV m_SignInit (unsigned char *state, size_t *slen, - CK_MECHANISM_PTR alg, - const unsigned char *key, size_t klen, -@@ -2574,72 +2932,6 @@ CK_RV m_VerifySingle (const unsigned char *key, size_t klen, - CK_BYTE_PTR sig, CK_ULONG slen, - target_t target) ; - --/* mackey is NULL for PKCS#11 formats, not for authenticated ones */ --CK_RV m_WrapKey (const unsigned char *key, size_t keylen, -- const unsigned char *kek, size_t keklen, -- const unsigned char *mackey, size_t mklen, -- const CK_MECHANISM_PTR pmech, -- CK_BYTE_PTR wrapped, CK_ULONG_PTR wlen, -- target_t target) ; --/**/ --/* mackey is NULL for PKCS#11 formats, not for authenticated ones */ --CK_RV m_UnwrapKey (const CK_BYTE_PTR wrapped, CK_ULONG wlen, -- const unsigned char *kek, size_t keklen, -- const unsigned char *mackey, size_t mklen, -- const unsigned char *pin, size_t pinlen, -- const CK_MECHANISM_PTR uwmech, -- const CK_ATTRIBUTE_PTR ptempl, CK_ULONG pcount, -- unsigned char *unwrapped, size_t *uwlen, -- CK_BYTE_PTR csum, CK_ULONG *cslen, -- target_t target) ; -- --CK_RV m_DeriveKey ( CK_MECHANISM_PTR pderivemech, -- CK_ATTRIBUTE_PTR ptempl, CK_ULONG templcount, -- const unsigned char *basekey, size_t bklen, -- const unsigned char *data, size_t dlen, -- const unsigned char *pin, size_t pinlen, -- unsigned char *newkey, size_t *nklen, -- unsigned char *csum, size_t *cslen, -- target_t target) ; -- --/**/ --CK_RV m_GetMechanismList (CK_SLOT_ID slot, -- CK_MECHANISM_TYPE_PTR mechs, -- CK_ULONG_PTR count, -- target_t target) ; --CK_RV m_GetMechanismInfo (CK_SLOT_ID slot, -- CK_MECHANISM_TYPE mech, -- CK_MECHANISM_INFO_PTR pmechinfo, -- target_t target) ; -- --CK_RV m_GetAttributeValue (const unsigned char *obj, size_t olen, -- CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount, -- target_t target) ; --CK_RV m_SetAttributeValue (unsigned char *obj, size_t olen, -- CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount, -- target_t target) ; -- -- --CK_RV m_Login ( CK_UTF8CHAR_PTR pin, CK_ULONG pinlen, -- const unsigned char *nonce, size_t nlen, -- unsigned char *pinblob, size_t *pinbloblen, -- target_t target) ; --CK_RV m_Logout ( const unsigned char *pin, size_t len, target_t target) ; -- --CK_RV m_admin (unsigned char *response1, size_t *r1len, -- unsigned char *response2, size_t *r2len, -- const unsigned char *cmd, size_t clen, -- const unsigned char *sigs, size_t slen, -- target_t target) ; -- --CK_RV m_get_xcp_info (CK_VOID_PTR pinfo, CK_ULONG_PTR infbytes, -- unsigned int query, -- unsigned int subquery, -- target_t target) ; -- --// see also: CK_IBM_XCPQUERY_t -- -- - // m_wire() by default removes transport headers of responses (CPRB header etc.) - // setting to prevent stripping: - // -@@ -2661,17 +2953,20 @@ CK_RV m_wire (unsigned char *rsp, size_t *rsplen, CK_RV *irv, - #define XCP_W_NO_SEND_CPRB 1 /* data already includes request header */ - #define XCP_W_NO_RECV_CPRB 2 /* leave transport header in response */ - -+// initializes the library -+int m_init(void); -+// shutting down the library -+int m_shutdown(void); - --/*-- build identification ------------------------------------------------*/ - --#define XCP_BUILD_ID 0x9c14a5e6 --#define XCP_BUILD_DATE 0x20220610 /* UTC */ --#define XCP_BUILD_TIME 0x123354 /* UTC */ - --/*--------------------------------------------------------------------------*/ --/*--------------------------------------------------------------------------*/ -+/*-- build identification ------------------------------------------------*/ - -+#define XCP_BUILD_ID 0xf1d34cc2 -+#define XCP_BUILD_DATE 0x20221214 /* UTC */ -+#define XCP_BUILD_TIME 0x094523 /* UTC */ - -+/*--------------------------------------------------------------------------*/ - #define __XCP_REASONCODES_H__ 1 - - -@@ -2823,14 +3118,10 @@ typedef enum { - } XCP_ReasonCode_t ; - - -- -- --#if ! defined(__transport_fns_h__) --#define __transport_fns_h__ -- - /* function identifiers must be consecutive, between: */ - #define __MIN_MOD_FNID 1 --#define __MAX_MOD_FNID 43 -+#define __MAX_MOD_FNID 42 -+/* selectively disabled functions within that range reported separately */ - - #define __FNID_Login 1 - #define __FNID_Logout 2 -@@ -2938,8 +3229,6 @@ typedef enum { - #define __HOST2MOD_DATAPRM 9 - #define __MOD2HOST_DATAPRM 2 - --#endif /* n defined(__transport_fns_h__) */ -- - - #endif /* n defined(XCP_H__) */ - -diff --git a/usr/lib/ep11_stdll/ep11adm.h b/usr/lib/ep11_stdll/ep11adm.h -index ecb524d5..0cd50a65 100644 ---- a/usr/lib/ep11_stdll/ep11adm.h -+++ b/usr/lib/ep11_stdll/ep11adm.h -@@ -25,34 +25,6 @@ - #error "We need types, please include before this file." - #endif - --// these numbers apply to current version, subject to change --// Please note that this defines are DEPRECATED. Please use their XCP_* --// counterpart in ep11.h --// --#if !defined(EP11_SERIALNR_CHARS) --#define EP11_SERIALNR_CHARS XCP_SERIALNR_CHARS --#endif -- --#if !defined(EP11_KEYCSUM_BYTES) --/* full size of verific. pattern */ --#define EP11_KEYCSUM_BYTES XCP_KEYCSUM_BYTES --#endif -- --#if !defined(EP11_ADMCTR_BYTES) --/* admin transaction ctrs */ --#define EP11_ADMCTR_BYTES XCP_ADMCTR_BYTES --#endif -- --#if !defined(EP11_ADM_REENCRYPT) --/* transform blobs to next WK */ --#define EP11_ADM_REENCRYPT XCP_ADM_REENCRYPT --#endif -- --#if !defined(CK_IBM_EP11Q_DOMAIN) --/* list domain's WK hashes */ --#define CK_IBM_EP11Q_DOMAIN CK_IBM_XCPQ_DOMAIN --#endif --// end of DEPRECATED defines - - //------------------------------------- - // flags common to all functions that have a flag parameter -@@ -100,13 +72,22 @@ - - #define DOMAIN_MASK_LENGTH XCP_DOMAINS/8 // space for 256 domains - -- -+//------------------------------------- -+// Key-Part-Holder template -+// contain credentials of a key-part holder. Those credentials -+// can be file based and/or smart card based references. - struct KPH { -- const unsigned char *cert; -- size_t clen; -- const char *id; -- const char *pw; -- const char *kpfname; -+ const unsigned char *cert; // certificate -+ size_t clen; // certificate length -+ const char *id; // private key -+ const char *pw; // private key passphrase -+ const char *kpfname; // filename of the key-part -+ char scard; // indicates a smart card user -+ char ski_id; // subject key identifier ID -+ int rdr_id; // smart card reader number -+ char kp_id; // key-part ID -+ uint64_t sigmech; // signature mechenism -+ const char *padmode; // padding mode - } ; - - -@@ -159,30 +140,6 @@ typedef struct XCPadmresp { - #define XCP_ADMRESP_INIT0 { 0,0,0, {0},{0},{0}, {0}, CKR_OK, 0, NULL,0, } - - --// ep11_admresp_t is DEPRECATED. Please use XCPadmresp_t directly --typedef struct ep11_admresp { -- uint32_t fn; -- uint32_t domain; -- uint32_t domainInst; -- -- /* module ID || module instance */ -- unsigned char module[ EP11_SERIALNR_CHARS + EP11_SERIALNR_CHARS ]; -- unsigned char modNr[ EP11_SERIALNR_CHARS ]; -- unsigned char modInst[ EP11_SERIALNR_CHARS ]; -- -- unsigned char tctr[ EP11_ADMCTR_BYTES ]; /* transaction counter */ -- -- CK_RV rv; -- uint32_t reason; -- -- // points to original response; NULL if no payload -- // make sure it's copied if used after releasing response block -- // -- const unsigned char *payload; -- size_t pllen; --} *ep11_admresp_t; -- -- - //------------------------------------- - // listing of CP modes with their respective sets of control points that are - // either required or prohibited -@@ -249,9 +206,39 @@ static const struct { - XCP_CPB_ALG_NBSI2011, XCP_CPB_ALG_DH, - XCP_CPB_DERIVE }, - }, -+ { XCP_ADMS_FIPS2021, "fips2021", -+ 15, -+ { XCP_CPB_ALG_NFIPS2011, XCP_CPB_KEYSZ_80BIT, -+ XCP_CPB_KEYSZ_RSA65536, -+ XCP_CPB_ALG_NFIPS2021, XCP_CPB_ALG_EC_25519, -+ XCP_CPB_ALG_PQC, XCP_CPB_BTC, -+ XCP_CPB_ECDSA_OTHER, XCP_CPB_ALLOW_NONSESSION, -+ XCP_CPB_ALG_EC_SECGCRV, XCP_CPB_ALG_EC_BPOOLCRV, -+ XCP_CPB_COMPAT_LEGACY_SHA3, XCP_CPB_DSA_PARAMETER_GEN, -+ XCP_CPB_WRAP_ASYMM, XCP_CPB_UNWRAP_ASYMM -+ }, -+ 0, -+ { }, -+ }, -+ { XCP_ADMS_FIPS2024, "fips2024", -+ 16, -+ { XCP_CPB_ALG_NFIPS2011, XCP_CPB_KEYSZ_80BIT, -+ XCP_CPB_KEYSZ_RSA65536, -+ XCP_CPB_ALG_NFIPS2021, XCP_CPB_ALG_EC_25519, -+ XCP_CPB_ALG_PQC, XCP_CPB_BTC, -+ XCP_CPB_ECDSA_OTHER, XCP_CPB_ALLOW_NONSESSION, -+ XCP_CPB_ALG_EC_SECGCRV, XCP_CPB_ALG_EC_BPOOLCRV, -+ XCP_CPB_ALG_NFIPS2024, XCP_CPB_COMPAT_LEGACY_SHA3, -+ XCP_CPB_DSA_PARAMETER_GEN, XCP_CPB_WRAP_ASYMM, -+ XCP_CPB_UNWRAP_ASYMM -+ }, -+ 0, -+ { }, -+ // XCP_ADMS_ADM_FIPS2021 is not reported here as it is not set with -+ // control points -+ } - } ; - -- - //------------------------------------- - // Structure to collect all relevant data for state export/import - // -@@ -351,21 +338,12 @@ long xcpa_certreplace(unsigned char *blk, size_t blen, - - - //------------------------------------- --// xcpa_query_wk queries the hash of the current/next WK for the given target --// xcpa_query_wk without the feature define EP11ADM_V2 can only query the hash --// of the current WK. Latter version is deprecated and will be removed with the --// next major release -+// Queries the current/next WK for the given target - // --// Parameter description: --// wk pointer to the output buffer, contains current/next WK hash after --// call --// wlen needs to be set to the size of the output buffer --// type CK_IBM_DOM_CURR_WK or CK_IBM_DOM_NEXT_WK (only available with --// EP11ADM_V2 defined) --// target a single target set up with m_add_module -+// WK Hash is returned in (*wk, wlen) on success if wk is not NULL - // - // returns >0 (bytecount) if present --// 0 if valid but no current/next WK -+// 0 if valid but no current WK - // <0 if anything failed - // - // Possible error return codes: -@@ -375,14 +353,7 @@ long xcpa_certreplace(unsigned char *blk, size_t blen, - // - // Uses xcpa_queryblock() - See function header for possible return codes - // --#if defined(EP11ADM_V2) --__asm__(".symver xcpa_query_wk, xcpa_query_wk@EP11ADM_V2"); --long xcpa_query_wk(unsigned char *wk, size_t wlen, int type, -- target_t target) ; --#else --long xcpa_query_wk(unsigned char *wk, size_t wlen, target_t target) -- __attribute__ ((deprecated)); --#endif -+long xcpa_query_wk(unsigned char *wk, size_t wlen, int type, target_t target) ; - - - //------------------------------------- -@@ -681,12 +652,13 @@ long xcpa_set_cps(target_t target, - //------------------------------------- - // get compliance mode from CP set (see ep11_cpt_modes[] for possible compliance - // modes) -+// can not check for administrative compliance modes - // - // cps CP set of XCP_CP_BYTES length, see xcpa_query_cps - // - // returns >0 compliance mode (see XCP_ADMS_...) - // --// does not verify CP set! -+// does not verify CP set - // - uint32_t xcpa_cps2compliance(const unsigned char *cps /* XCP_CP_BYTES */) ; - -@@ -823,7 +795,10 @@ typedef struct Encrdkey { - // EC only: RSA recipients must keep these lengths 0 - // - // largest supported curve: P-521 -- -+ unsigned char srcprivate[ 66 ]; /* private key (PKCS#8) */ -+ size_t sprivlen; /* priv. key byte count */ -+ unsigned char *oid; /* EC curve OID */ -+ size_t olen; /* EC curve OID length */ - unsigned char srcpublic[ 1+66+66 ]; /* originator public point */ - size_t splen; /* pub. point bytecount */ - -@@ -840,18 +815,10 @@ typedef struct Encrdkey { - int ktype; /* one of the wire-specified types */ - - CK_MECHANISM *alg; /* currently, ignored */ -+ unsigned char wrap_alg[25]; /* AES Key Wrap algorithm OID */ - // largest supported importer type: 4096-bit RSA - unsigned char raw[ 4096/8 ]; /* actual encrypted bytes */ - size_t rlen; -- --#if defined(EP11ADM_V2) -- unsigned char srcprivate[ 66 ]; /* private key (PKCS#8) */ -- size_t sprivlen; /* priv. key byte count */ -- unsigned char *oid; /* EC curve OID */ -- size_t olen; /* EC curve OID length */ -- -- unsigned char wrap_alg[25]; /* AES Key Wrap algorithm OID */ --#endif - } *Encrdkey_t; - - -@@ -893,9 +860,6 @@ long xcp_rcptinfo_sharedinfo(unsigned char *sinfo, size_t slen, - // creates RecipientInfo ASN.1 sequence (asn) from encr structure following RFC - // 3852 for RSA and RFC 5753 for EC - // --// uses encr->wrap_alg if EP11ADM_V2 defined. Otherwise assumes aes256-wrap is --// used for EC --// - // verifies if a known importer key is used and if the SPKI does match - // the importer key type - // -@@ -907,9 +871,10 @@ long xcp_rcptinfo_sharedinfo(unsigned char *sinfo, size_t slen, - // XCP_ADMERR_RI_IMPR_INVALID: if the importer type or the key import structure - // encr is not supported / invalid - // --long xcp_rcptinfo(unsigned char *asn, size_t alen, -- const struct Encrdkey *encr, -- const CK_MECHANISM *encrmech) ; -+long xcp_rcptinfo (unsigned char *asn, size_t alen, -+ const struct Encrdkey *encr, -+ const CK_MECHANISM *encrmech) ; -+ - - //------------------------------------- - // reads ASN.1 formatted RecipientInfo (asn) and turns it into rinfo structure -@@ -990,12 +955,8 @@ long xcpa_import_keypart (unsigned char *out, size_t olen, - // XCP_ADMERR_RI_IMPR_INVALID: importer key type invalid / unsupported or does - // not match SPKI - // --// uses xcp_rcptinfo and xcpa_cmdblock() - see function header for more return --// codes and EP11AMD_V2 specific changes -+// uses xcpa_cmdblock() - see function header for more return codes - // --#if defined(EP11ADM_V2) --__asm__(".symver xcpa_import_cmdblock, xcpa_import_cmdblock@EP11ADM_V2"); --#endif - long xcpa_import_cmdblock (unsigned char *out, size_t olen, - const struct Encrdkey *key, - const struct XCPadmresp *minf, -@@ -1164,19 +1125,10 @@ long xcpa_fill_export_req(unsigned char *asn, size_t alen, - // Constructs key part file with ASN.1 envelope - // writes output to (*reqprep, reqpreplen) - // --// default version: --// statesave contains the target domain mask --// kphs keypart holder certificates --// ekps contains re-encrypted keyparts --// kcnt number of kphs --// reqprep output buffer --// reqpreplen output length --// --// with EP11ADM_V2 feature define active: - // domainmask target domain mask - // kphs keypart holder certificates --// ekps contains re-encrypted keyparts - // kcnt number of kphs -+// ekps contains re-encrypted keyparts - // reqprep output buffer - // reqpreplen output length - // headerinfo set to 0 if no header info requested -@@ -1184,9 +1136,6 @@ long xcpa_fill_export_req(unsigned char *asn, size_t alen, - // - // returns 0 if successful - // <0 if something fails --#if defined(EP11ADM_V2) --__asm__(".symver xcpa_construct_keypart_file, " -- "xcpa_construct_keypart_file@EP11ADM_V2"); - long xcpa_construct_keypart_file(unsigned char *domainmask, - const struct KPH *kphs, - const struct Encrdkey *ekps, -@@ -1194,15 +1143,7 @@ long xcpa_construct_keypart_file(unsigned char *domainmask, - unsigned char *reqprep, - size_t *reqpreplen, - unsigned int headerinfo); --#else --long xcpa_construct_keypart_file(struct STATESAVE *statesave, -- const struct KPH *kphs, -- const struct Encrdkey *ekps, -- unsigned int kcnt, -- unsigned char *reqprep, -- size_t *reqpreplen) -- __attribute__((deprecated)); --#endif -+ - - //------------------------------------- - // Enable export WK permission -@@ -1254,17 +1195,6 @@ long xcpa_enable_import_state(target_t target, - // Export the domain WK of the given target - // writes output to (*resp, resplen) - // --// default version: --// target addresses target module/domain --// keyparts pointer to the encrypted keyparts --// keypartlen length of encrypted keyparts --// request pointer to the export request data --// requestlen length of request data --// sign_cb provide the callback for generating signatures --// may be NULL if no signatures required --// signopts number of signatures requested --// --// with EP11ADM_V2 feature define active: - // target addresses target module/domain - // wktype indicates either current or next WK - // keyparts pointer to the encrypted keyparts -@@ -1274,20 +1204,11 @@ long xcpa_enable_import_state(target_t target, - // sign_cb provide the callback for generating signatures - // may be NULL if no signatures required - // signopts number of signatures requested --// --#if defined(EP11ADM_V2) --__asm__(".symver xcpa_export_wk, xcpa_export_wk@EP11ADM_V2"); - long xcpa_export_wk(target_t target, int wktype, - unsigned char *keyparts, size_t *keypartlen, - const unsigned char *request, size_t requestlen, - xcpa_admin_signs_cb_t sign_cb, const void *signopts); --#else --long xcpa_export_wk(target_t target, -- unsigned char *keyparts, size_t *keypartlen, -- const unsigned char *request, size_t requestlen, -- xcpa_admin_signs_cb_t sign_cb, const void *signopts) -- __attribute__((deprecated)); --#endif -+ - - //------------------------------------- - // Export the state of the given target -@@ -1337,11 +1258,6 @@ long xcpa_import_wk_rcptinfo(target_t target, - // sign_cb provide the callback for generating signatures - // may be NULL if no signatures required - // signopts number of signatures requested --// --// uses xcp_rcptinfo and is therefore dependent on EP11ADM_V2 --#if defined(EP11ADM_V2) --__asm__(".symver xcpa_import_wk, xcpa_import_wk@EP11ADM_V2"); --#endif - long xcpa_import_wk(target_t target, const struct Encrdkey *ekps, - unsigned int kcnt, const unsigned char *wkvp, - xcpa_admin_signs_cb_t sign_cb, const void *signopts); -@@ -1436,11 +1352,11 @@ long xcpa_gen_random_wk(target_t target, unsigned char *wkvp, - // XCP_ADMERR_SI_OID_MECH_MISMATCH: mismatch between signature and hash - // mechanism - // --long xcp_signerinfo(unsigned char *asn, size_t alen, -- const unsigned char *ski, size_t skilen, /* signer */ -- const unsigned char *sig, size_t siglen, -- const CK_MECHANISM *sigmech, -- const CK_MECHANISM *hashmech) ; -+long xcp_signerinfo (unsigned char *asn, size_t alen, -+ const unsigned char *ski, size_t skilen, /* signer */ -+ const unsigned char *sig, size_t siglen, -+ const CK_MECHANISM *sigmech, -+ const CK_MECHANISM *hashmech) ; - - - //------------------------------------- -@@ -1461,13 +1377,13 @@ long xcp_signerinfo(unsigned char *asn, size_t alen, - // - // no length checks on signature or SKI, other than checking both for non-empty - // --long xcp_signerinfo_read(const unsigned char *sinfo, size_t silen, -- const unsigned char **ski, size_t *skilen, -- const unsigned char **sig, size_t *siglen, -- const unsigned char **hoid, size_t *hoidlen, -- const unsigned char **soid, size_t *soidlen, -- CK_MECHANISM *signmech, -- CK_MECHANISM *hashmech) ; -+long xcp_signerinfo_read (const unsigned char *sinfo, size_t silen, -+ const unsigned char **ski, size_t *skilen, -+ const unsigned char **sig, size_t *siglen, -+ const unsigned char **hoid, size_t *hoidlen, -+ const unsigned char **soid, size_t *soidlen, -+ CK_MECHANISM *signmech, -+ CK_MECHANISM *hashmech) ; - - - //------------------------------------- -@@ -1488,57 +1404,10 @@ long xcp_signerinfo_read(const unsigned char *sinfo, size_t silen, - // - // note: we do not verify other details of SPKI; caller must do so - // --long xcp_spki2pubkey(const unsigned char **bitstr, -- const unsigned char *spki, size_t slen) ; -- -- -- --//---------------------------------------------------------------------- --// The following functions are DEPRECTATED! --// for return values see their xcpa_* counterpart -+long xcp_spki2pubkey (const unsigned char **bitstr, -+ const unsigned char *spki, size_t slen) ; - - --/*---------------------------------------------------------------------- -- * build a command block to (blk,blen), querying 'fn' -- * (payload,plen) copied to query block if non-NULL -- * -- * returns written bytecount; size query if blk is NULL -- * *minf used for module ID and transaction counter -- * ignored for commands where those fields are ignored -- */ --long ep11a_cmdblock(unsigned char *blk, size_t blen, -- unsigned int fn, -- const struct ep11_admresp *minf, -- const unsigned char *tctr, /* EP11_ADMCTR_BYTES */ -- const unsigned char *payload, size_t plen) -- __attribute__ ((deprecated)) ; -- -- --/*---------------------------------------------------------------------- -- * returns <0 if response is malformed, or contents invalid -- * -- * parse embedded return value from response, writes to *rv if non-NULL -- * (outside envelope always reports CKR_OK, unless infrastructure -- * failed) -- */ --long ep11a_internal_rv(const unsigned char *rsp, size_t rlen, -- struct ep11_admresp *rspblk, CK_RV *rv) -- __attribute__ ((deprecated)) ; -- -- --/*---------------------------------------------------------------------- -- * in: [0] query type -- * out: [0] packed info structure -- * -- * outputs are fixed size, except CK_IBM_XCPQ_DOMAINS, which returns a -- * list therefore, infbytes is ignored by other types (we still check -- * if present) -- */ --CK_RV m_get_ep11_info(CK_VOID_PTR pinfo, CK_ULONG_PTR infbytes, -- unsigned int query, -- unsigned int subquery, -- target_t target) -- __attribute__ ((deprecated)) ; - - - /* -@@ -1548,7 +1417,7 @@ CK_RV m_get_ep11_info(CK_VOID_PTR pinfo, CK_ULONG_PTR infbytes, - * mask pointer to an 32 byte array that represents our domain mask - * masksize bit-length of the mask - */ --int xcp_args2mask(char *args, unsigned char *mask, int masksize) ; -+int xcp_args2mask(char *args, unsigned char *mask, int masksize); - - - /* -@@ -1602,6 +1471,10 @@ long xcpa_write_full_file(target_t target, - unsigned int fileid, unsigned int block); - - -+long xcpa_remove_file(target_t target, unsigned int fileid, -+ xcpa_admin_signs_cb_t sign_cb, const void *signopts); -+ -+ - /* brute-force section parser: enumerate all encrypted-KP sections - * - * returns >0 offset of full OCTET STRING T+L+V section -@@ -1627,5 +1500,15 @@ long xcpa_kps_retrieve_rcptinfo(struct Recipient_info *rcpti, - const unsigned char *kpexport, - size_t kplen); - -+ -+/* -+ * report domain compliance -+ * -+ * returns compliance bitmask if successful and 0 if anything failed -+ * (as zero is invalid as we always have a default compliance active) -+ * -+ */ -+uint64_t get_dom_compl(target_t target); -+ - #endif /* !defined(__xcpadm_h__) */ - --- -2.16.2.windows.1 - diff --git a/0013-EP11-Support-EP11-host-library-version-4.patch b/0013-EP11-Support-EP11-host-library-version-4.patch deleted file mode 100644 index 32aff25..0000000 --- a/0013-EP11-Support-EP11-host-library-version-4.patch +++ /dev/null @@ -1,137 +0,0 @@ -From 4cad40e594b916ef3416dd574304b2c60138a6fe Mon Sep 17 00:00:00 2001 -From: Ingo Franzki -Date: Mon, 19 Sep 2022 09:01:13 +0200 -Subject: [PATCH 13/34] EP11: Support EP11 host library version 4 - -Try to load the EP11 host library version 4 (libep11.so.4) first, -but fall back to version 3, 2, 1, or even the un-versioned shared library. - -Signed-off-by: Ingo Franzki ---- - usr/lib/ep11_stdll/ep11_specific.c | 15 ++++++++++++--- - usr/sbin/pkcsep11_migrate/pkcsep11_migrate.c | 11 +++++++++-- - usr/sbin/pkcsep11_session/pkcsep11_session.c | 11 +++++++++-- - 3 files changed, 30 insertions(+), 7 deletions(-) - -diff --git a/usr/lib/ep11_stdll/ep11_specific.c b/usr/lib/ep11_stdll/ep11_specific.c -index 1dbfe0f5..304989fc 100644 ---- a/usr/lib/ep11_stdll/ep11_specific.c -+++ b/usr/lib/ep11_stdll/ep11_specific.c -@@ -66,6 +66,7 @@ - #include "pkey_utils.h" - - #define EP11SHAREDLIB_NAME "OCK_EP11_LIBRARY" -+#define EP11SHAREDLIB_V4 "libep11.so.4" - #define EP11SHAREDLIB_V3 "libep11.so.3" - #define EP11SHAREDLIB_V2 "libep11.so.2" - #define EP11SHAREDLIB_V1 "libep11.so.1" -@@ -2209,9 +2210,17 @@ static void *ep11_load_host_lib() - return lib_ep11; - } - -- ep11_lib_name = EP11SHAREDLIB_V3; -+ ep11_lib_name = EP11SHAREDLIB_V4; - lib_ep11 = dlopen(ep11_lib_name, DLOPEN_FLAGS); - -+ if (lib_ep11 == NULL) { -+ TRACE_DEVEL("%s Error loading shared library '%s', trying '%s'\n", -+ __func__, EP11SHAREDLIB_V4, EP11SHAREDLIB_V3); -+ /* Try version 3 instead */ -+ ep11_lib_name = EP11SHAREDLIB_V3; -+ lib_ep11 = dlopen(ep11_lib_name, DLOPEN_FLAGS); -+ } -+ - if (lib_ep11 == NULL) { - TRACE_DEVEL("%s Error loading shared library '%s', trying '%s'\n", - __func__, EP11SHAREDLIB_V3, EP11SHAREDLIB_V2); -@@ -2239,9 +2248,9 @@ static void *ep11_load_host_lib() - if (lib_ep11 == NULL) { - errstr = dlerror(); - OCK_SYSLOG(LOG_ERR, -- "%s: Error loading shared library '%s[.3|.2|.1]' [%s]\n", -+ "%s: Error loading shared library '%s[.4][.3|.2|.1]' [%s]\n", - __func__, EP11SHAREDLIB, errstr); -- TRACE_ERROR("%s Error loading shared library '%s[.3|.2|.1]' [%s]\n", -+ TRACE_ERROR("%s Error loading shared library '%s[.4][.3|.2|.1]' [%s]\n", - __func__, EP11SHAREDLIB, errstr); - return NULL; - } -diff --git a/usr/sbin/pkcsep11_migrate/pkcsep11_migrate.c b/usr/sbin/pkcsep11_migrate/pkcsep11_migrate.c -index 4a42a085..f80cfa9f 100644 ---- a/usr/sbin/pkcsep11_migrate/pkcsep11_migrate.c -+++ b/usr/sbin/pkcsep11_migrate/pkcsep11_migrate.c -@@ -30,6 +30,7 @@ - #include "pin_prompt.h" - - #define EP11SHAREDLIB_NAME "OCK_EP11_LIBRARY" -+#define EP11SHAREDLIB_V4 "libep11.so.4" - #define EP11SHAREDLIB_V3 "libep11.so.3" - #define EP11SHAREDLIB_V2 "libep11.so.2" - #define EP11SHAREDLIB_V1 "libep11.so.1" -@@ -424,9 +425,15 @@ static void *ep11_load_host_lib() - return lib_ep11; - } - -- ep11_lib_name = EP11SHAREDLIB_V3; -+ ep11_lib_name = EP11SHAREDLIB_V4; - lib_ep11 = dlopen(ep11_lib_name, DLOPEN_FLAGS); - -+ if (lib_ep11 == NULL) { -+ /* Try version 3 instead */ -+ ep11_lib_name = EP11SHAREDLIB_V3; -+ lib_ep11 = dlopen(ep11_lib_name, DLOPEN_FLAGS); -+ } -+ - if (lib_ep11 == NULL) { - /* Try version 2 instead */ - ep11_lib_name = EP11SHAREDLIB_V2; -@@ -447,7 +454,7 @@ static void *ep11_load_host_lib() - - if (lib_ep11 == NULL) { - errstr = dlerror(); -- fprintf(stderr, "Error loading shared library '%s[.3|.2|.1]' [%s]\n", -+ fprintf(stderr, "Error loading shared library '%s[.4|.3|.2|.1]' [%s]\n", - EP11SHAREDLIB, errstr); - return NULL; - } -diff --git a/usr/sbin/pkcsep11_session/pkcsep11_session.c b/usr/sbin/pkcsep11_session/pkcsep11_session.c -index 0c210135..b7b9e9c4 100644 ---- a/usr/sbin/pkcsep11_session/pkcsep11_session.c -+++ b/usr/sbin/pkcsep11_session/pkcsep11_session.c -@@ -35,6 +35,7 @@ - #include "pin_prompt.h" - - #define EP11SHAREDLIB_NAME "OCK_EP11_LIBRARY" -+#define EP11SHAREDLIB_V4 "libep11.so.4" - #define EP11SHAREDLIB_V3 "libep11.so.3" - #define EP11SHAREDLIB_V2 "libep11.so.2" - #define EP11SHAREDLIB_V1 "libep11.so.1" -@@ -1050,9 +1051,15 @@ static void *ep11_load_host_lib() - return lib_ep11; - } - -- ep11_lib_name = EP11SHAREDLIB_V3; -+ ep11_lib_name = EP11SHAREDLIB_V4; - lib_ep11 = dlopen(ep11_lib_name, DLOPEN_FLAGS); - -+ if (lib_ep11 == NULL) { -+ /* Try version 3 instead */ -+ ep11_lib_name = EP11SHAREDLIB_V3; -+ lib_ep11 = dlopen(ep11_lib_name, DLOPEN_FLAGS); -+ } -+ - if (lib_ep11 == NULL) { - /* Try version 2 instead */ - ep11_lib_name = EP11SHAREDLIB_V2; -@@ -1073,7 +1080,7 @@ static void *ep11_load_host_lib() - - if (lib_ep11 == NULL) { - errstr = dlerror(); -- fprintf(stderr, "Error loading shared library '%s[.3|.2|.1]' [%s]\n", -+ fprintf(stderr, "Error loading shared library '%s[.4|.3|.2|.1]' [%s]\n", - EP11SHAREDLIB, errstr); - return NULL; - } --- -2.16.2.windows.1 - diff --git a/0014-EP11-Add-new-control-points.patch b/0014-EP11-Add-new-control-points.patch deleted file mode 100644 index 9e6c7b3..0000000 --- a/0014-EP11-Add-new-control-points.patch +++ /dev/null @@ -1,53 +0,0 @@ -From b89b408953e9192d7bfcb31cdf8c48d6c973488a Mon Sep 17 00:00:00 2001 -From: Ingo Franzki -Date: Wed, 16 Feb 2022 10:23:29 +0100 -Subject: [PATCH 14/34] EP11: Add new control points - -Signed-off-by: Ingo Franzki ---- - usr/lib/ep11_stdll/ep11_specific.c | 7 +++++++ - usr/lib/ep11_stdll/ep11cpfilter.conf | 6 ++++++ - 2 files changed, 13 insertions(+) - -diff --git a/usr/lib/ep11_stdll/ep11_specific.c b/usr/lib/ep11_stdll/ep11_specific.c -index 304989fc..147ce7b2 100644 ---- a/usr/lib/ep11_stdll/ep11_specific.c -+++ b/usr/lib/ep11_stdll/ep11_specific.c -@@ -10524,13 +10524,20 @@ static const_info_t ep11_cps[] = { - CONSTINFO(XCP_CPB_WRAP_WITH_RAW_SPKI), - CONSTINFO(XCP_CPB_ALG_DH), - CONSTINFO(XCP_CPB_DERIVE), -+ CONSTINFO(XCP_CPB_ALLOW_NONSESSION), - CONSTINFO(XCP_CPB_ALG_EC_25519), -+ CONSTINFO(XCP_CPB_ALG_EC_SECGCRV), - CONSTINFO(XCP_CPB_ALG_NBSI2017), - CONSTINFO(XCP_CPB_CPACF_PK), - CONSTINFO(XCP_CPB_ALG_PQC_DILITHIUM), - CONSTINFO(XCP_CPB_ALG_PQC), - CONSTINFO(XCP_CPB_BTC), - CONSTINFO(XCP_CPB_ECDSA_OTHER), -+ CONSTINFO(XCP_CPB_ALG_NFIPS2021), -+ CONSTINFO(XCP_CPB_ALG_NFIPS2024), -+ CONSTINFO(XCP_CPB_COMPAT_LEGACY_SHA3), -+ CONSTINFO(XCP_CPB_DSA_PARAMETER_GEN), -+ CONSTINFO(XCP_CPB_DERIVE_NON_AB_KEYS), - }; - - #ifdef DEBUG -diff --git a/usr/lib/ep11_stdll/ep11cpfilter.conf b/usr/lib/ep11_stdll/ep11cpfilter.conf -index 0d3a6b3f..9d6a2fc8 100644 ---- a/usr/lib/ep11_stdll/ep11cpfilter.conf -+++ b/usr/lib/ep11_stdll/ep11cpfilter.conf -@@ -80,3 +80,9 @@ XCP_CPB_BTC: CKM_IBM_BTC_DERIVE - - # enable non-ECDSA/non-EdDSA elliptic curve signature algorithms - XCP_CPB_ECDSA_OTHER: CKM_IBM_ECDSA_OTHER -+ -+# allow non-FIPS-approved algs (2021) -+XCP_CPB_ALG_NFIPS2021: CKM_RSA_PKCS, CKM_SHA1_RSA_PKCS, CKM_DSA_SHA1, CKM_ECDSA_SHA1, CKM_DES_KEY_GEN, CKM_DES_ECB, CKM_DES_CBC, CKM_DES_CBC_PAD, CKM_DES2_KEY_GEN, CKM_DES3_KEY_GEN, CKM_DES3_ECB, CKM_DES3_CBC, CKM_DES3_MAC, CKM_DES3_MAC_GENERAL, CKM_DES3_CBC_PAD, CKM_DES3_CMAC_GENERAL, CKM_DES3_CMAC, CKM_DES_OFB64, CKM_DES_CFB64, CKM_DES_CFB8, CKM_SHA_1_HMAC, CKM_SHA_1_HMAC_GENERAL, CKM_SHA1_KEY_DERIVATION -+ -+# allow non-FIPS-approved algs (2024) -+XCP_CPB_ALG_NFIPS2024: CKM_RSA_PKCS, CKM_SHA1_RSA_PKCS, CKM_DSA_SHA1, CKM_ECDSA_SHA1, CKM_DES_KEY_GEN, CKM_DES_ECB, CKM_DES_CBC, CKM_DES_CBC_PAD, CKM_DES2_KEY_GEN, CKM_DES3_KEY_GEN, CKM_DES3_ECB, CKM_DES3_CBC, CKM_DES3_MAC, CKM_DES3_MAC_GENERAL, CKM_DES3_CBC_PAD, CKM_DES3_CMAC_GENERAL, CKM_DES3_CMAC, CKM_DES_OFB64, CKM_DES_CFB64, CKM_DES_CFB8, CKM_SHA_1_HMAC, CKM_SHA_1_HMAC_GENERAL, CKM_SHA1_KEY_DERIVATION --- -2.16.2.windows.1 - diff --git a/0015-EP11-Default-unknown-CPs-to-ON.patch b/0015-EP11-Default-unknown-CPs-to-ON.patch deleted file mode 100644 index e7e23db..0000000 --- a/0015-EP11-Default-unknown-CPs-to-ON.patch +++ /dev/null @@ -1,76 +0,0 @@ -From 65cb0f2b0204183617b5d6e8e475f85faa8b789d Mon Sep 17 00:00:00 2001 -From: Ingo Franzki -Date: Mon, 14 Feb 2022 16:35:34 +0100 -Subject: [PATCH 15/34] EP11: Default unknown CPs to ON - -Newer EP11 cards know additional control points that older cards do not -know. When building the combined minimum control point setting, treat -unknown control points as ON, to not disable mechanisms just because an -older card does not know a control point. - -Signed-off-by: Ingo Franzki ---- - usr/lib/ep11_stdll/ep11_specific.c | 21 +++++++++++++++++---- - 1 file changed, 17 insertions(+), 4 deletions(-) - -diff --git a/usr/lib/ep11_stdll/ep11_specific.c b/usr/lib/ep11_stdll/ep11_specific.c -index 147ce7b2..e3451163 100644 ---- a/usr/lib/ep11_stdll/ep11_specific.c -+++ b/usr/lib/ep11_stdll/ep11_specific.c -@@ -10904,13 +10904,18 @@ static CK_RV control_point_handler(uint_32 adapter, uint_32 domain, - #ifdef DEBUG - TRACE_DEBUG("Control points from adapter %02X.%04X\n", adapter, domain); - TRACE_DEBUG_DUMP(" ", cp, cp_len); -+ TRACE_DEBUG("Max control point index: %lu\n", max_cp_index); - #endif - - if (data->first) { - data->first_adapter = adapter; - data->first_domain = domain; -- memcpy(data->first_cp, cp, cp_len); -- memcpy(data->combined_cp, cp, cp_len); -+ /* Apply CP bits 0 to max_cp_index-1 only */ -+ for (i = 0; i < max_cp_index; i++) { -+ data->combined_cp[CP_BYTE_NO(i)] &= -+ (cp[CP_BYTE_NO(i)] | ~CP_BIT_MASK(i)); -+ } -+ memcpy(data->first_cp, data->combined_cp, sizeof(data->first_cp)); - data->max_cp_index = max_cp_index; - data->first = 0; - } else { -@@ -10927,8 +10932,10 @@ static CK_RV control_point_handler(uint_32 adapter, uint_32 domain, - data->first_domain); - } - -- for (i = 0; i < cp_len; i++) { -- data->combined_cp[i] &= cp[i]; -+ for (i = 0; i < max_cp_index; i++) { -+ /* Apply CP bits 0 to max_cp_index-1 only */ -+ data->combined_cp[CP_BYTE_NO(i)] &= -+ (cp[CP_BYTE_NO(i)] | ~CP_BIT_MASK(i)); - } - - if (max_cp_index != data->max_cp_index) { -@@ -10973,6 +10980,11 @@ static CK_RV get_control_points(STDLL_TokData_t * tokdata, - ep11_private_data_t *ep11_data = tokdata->private_data; - - memset(&data, 0, sizeof(data)); -+ /* -+ * Turn all CPs ON by default, so that newer control points that are unknown -+ * to older cards default to ON. CPs being OFF disable functionality. -+ */ -+ memset(data.combined_cp, 0xff, sizeof(data.combined_cp)); - data.first = 1; - rc = handle_all_ep11_cards(&ep11_data->target_list, control_point_handler, - &data); -@@ -10987,6 +10999,7 @@ static CK_RV get_control_points(STDLL_TokData_t * tokdata, - TRACE_DEBUG("Combined control points from all cards (%lu CPs):\n", - data.max_cp_index); - TRACE_DEBUG_DUMP(" ", cp, *cp_len); -+ TRACE_DEBUG("Max control point index: %lu\n", data.max_cp_index); - print_control_points(cp, *cp_len, data.max_cp_index); - #endif - --- -2.16.2.windows.1 - diff --git a/0016-COMMON-Add-defines-for-Dilithium-round-2-and-3-varia.patch b/0016-COMMON-Add-defines-for-Dilithium-round-2-and-3-varia.patch deleted file mode 100644 index 05b3901..0000000 --- a/0016-COMMON-Add-defines-for-Dilithium-round-2-and-3-varia.patch +++ /dev/null @@ -1,76 +0,0 @@ -From 95f64e0c9f30ea8e0712e554418230659dabe1ec Mon Sep 17 00:00:00 2001 -From: Ingo Franzki -Date: Wed, 16 Feb 2022 13:44:10 +0100 -Subject: [PATCH 16/34] COMMON: Add defines for Dilithium round 2 and 3 - variants - -Signed-off-by: Ingo Franzki ---- - usr/include/pkcs11types.h | 12 ++++++++++-- - usr/lib/common/p11util.c | 6 ++++++ - 2 files changed, 16 insertions(+), 2 deletions(-) - -diff --git a/usr/include/pkcs11types.h b/usr/include/pkcs11types.h -index bc53e672..6bf9c1fa 100644 ---- a/usr/include/pkcs11types.h -+++ b/usr/include/pkcs11types.h -@@ -437,6 +437,7 @@ typedef CK_ULONG CK_KEY_TYPE; - #ifndef OCK_NO_EP11_DEFINES - #define CKK_IBM_PQC_DILITHIUM CKK_VENDOR_DEFINED + 0x10023 - #endif -+#define CKK_IBM_DILITHIUM CKK_IBM_PQC_DILITHIUM - - /* CK_CERTIFICATE_TYPE is a value that identifies a certificate - * type */ -@@ -594,8 +595,15 @@ typedef CK_ULONG CK_ATTRIBUTE_TYPE; - #define CKA_IBM_PROTKEY_NEVER_EXTRACTABLE (CKA_VENDOR_DEFINED +0x1000d) - #define CKA_IBM_OPAQUE_PKEY (CKA_VENDOR_DEFINED + 0xd0100) - --/* For Dilithium, oid = 1.3.6.1.4.1.2.267.1.6.5 */ --#define IBM_DILITHIUM_KEYFORM_ROUND2 1 -+#define CK_IBM_DILITHIUM_KEYFORM_ROUND2_65 1 -+#define CK_IBM_DILITHIUM_KEYFORM_ROUND2_87 2 -+#define CK_IBM_DILITHIUM_KEYFORM_ROUND3_44 3 -+#define CK_IBM_DILITHIUM_KEYFORM_ROUND3_65 4 -+#define CK_IBM_DILITHIUM_KEYFORM_ROUND3_87 5 -+ -+#define IBM_DILITHIUM_KEYFORM_ROUND2 CK_IBM_DILITHIUM_KEYFORM_ROUND2_65 -+ -+#define CKA_IBM_DILITHIUM_MODE (CKA_VENDOR_DEFINED + 0x00010) - - #define CKA_IBM_DILITHIUM_KEYFORM (CKA_VENDOR_DEFINED + 0xd0001) - #define CKA_IBM_DILITHIUM_RHO (CKA_VENDOR_DEFINED + 0xd0002) -diff --git a/usr/lib/common/p11util.c b/usr/lib/common/p11util.c -index 4ef33306..f3a031e3 100644 ---- a/usr/lib/common/p11util.c -+++ b/usr/lib/common/p11util.c -@@ -123,6 +123,10 @@ const char *p11_get_ckr(CK_RV rc) - } - } - -+#ifndef CKA_IBM_PQC_PARAMS -+#define CKA_IBM_PQC_PARAMS (CKA_VENDOR_DEFINED +0x1000e) -+#endif -+ - // - // p11_get_cka - return textual interpretation of an attribute type - // only simple types - no arrays. For unknown a ptr to a static -@@ -221,6 +225,7 @@ const char *p11_get_cka(CK_ATTRIBUTE_TYPE atype) - _sym2str(CKA_IBM_PROTKEY_NEVER_EXTRACTABLE); - _sym2str(CKA_IBM_OPAQUE_PKEY); - _sym2str(CKA_IBM_DILITHIUM_KEYFORM); -+ _sym2str(CKA_IBM_DILITHIUM_MODE); - _sym2str(CKA_IBM_DILITHIUM_RHO); - _sym2str(CKA_IBM_DILITHIUM_SEED); - _sym2str(CKA_IBM_DILITHIUM_TR); -@@ -228,6 +233,7 @@ const char *p11_get_cka(CK_ATTRIBUTE_TYPE atype) - _sym2str(CKA_IBM_DILITHIUM_S2); - _sym2str(CKA_IBM_DILITHIUM_T0); - _sym2str(CKA_IBM_DILITHIUM_T1); -+ _sym2str(CKA_IBM_PQC_PARAMS); - default: - sprintf(buf, "unknown attribute type 0x%08lx", atype); - return buf; --- -2.16.2.windows.1 - diff --git a/0017-COMMON-Add-defines-for-Kyber.patch b/0017-COMMON-Add-defines-for-Kyber.patch deleted file mode 100644 index ee444ab..0000000 --- a/0017-COMMON-Add-defines-for-Kyber.patch +++ /dev/null @@ -1,103 +0,0 @@ -From d4bb3258779d757ce6faf5b698c70af77ab7647f Mon Sep 17 00:00:00 2001 -From: Ingo Franzki -Date: Wed, 16 Feb 2022 13:51:16 +0100 -Subject: [PATCH 17/34] COMMON: Add defines for Kyber - -Signed-off-by: Ingo Franzki ---- - usr/include/pkcs11types.h | 49 +++++++++++++++++++++++++++++++++++++++++++++++ - usr/lib/common/p11util.c | 4 ++++ - 2 files changed, 53 insertions(+) - -diff --git a/usr/include/pkcs11types.h b/usr/include/pkcs11types.h -index 6bf9c1fa..3d967a13 100644 ---- a/usr/include/pkcs11types.h -+++ b/usr/include/pkcs11types.h -@@ -439,6 +439,11 @@ typedef CK_ULONG CK_KEY_TYPE; - #endif - #define CKK_IBM_DILITHIUM CKK_IBM_PQC_DILITHIUM - -+#ifndef OCK_NO_EP11_DEFINES -+#define CKK_IBM_PQC_KYBER CKK_VENDOR_DEFINED + 0x10024 -+#endif -+#define CKK_IBM_KYBER CKK_IBM_PQC_KYBER -+ - /* CK_CERTIFICATE_TYPE is a value that identifies a certificate - * type */ - /* CK_CERTIFICATE_TYPE was changed from CK_USHORT to CK_ULONG -@@ -614,6 +619,49 @@ typedef CK_ULONG CK_ATTRIBUTE_TYPE; - #define CKA_IBM_DILITHIUM_T0 (CKA_VENDOR_DEFINED + 0xd0007) - #define CKA_IBM_DILITHIUM_T1 (CKA_VENDOR_DEFINED + 0xd0008) - -+#define CKA_IBM_KYBER_MODE (CKA_VENDOR_DEFINED + 0x0000E) -+ -+#define CKA_IBM_KYBER_KEYFORM (CKA_VENDOR_DEFINED + 0xd0009) -+#define CKA_IBM_KYBER_PK (CKA_VENDOR_DEFINED + 0xd000A) -+#define CKA_IBM_KYBER_SK (CKA_VENDOR_DEFINED + 0xd000B) -+ -+#define CK_IBM_KYBER_KEYFORM_ROUND2_768 1 -+#define CK_IBM_KYBER_KEYFORM_ROUND2_1024 2 -+ -+#define CK_IBM_KYBER_KEM_VERSION 0 -+ -+typedef CK_ULONG CK_IBM_KYBER_KEM_MODE; -+ -+#define CK_IBM_KYBER_KEM_ENCAPSULATE 1 -+#define CK_IBM_KYBER_KEM_DECAPSULATE 2 -+ -+typedef CK_ULONG CK_IBM_KYBER_KDF_TYPE; -+ -+#if !defined(CKD_VENDOR_DEFINED) -+#define CKD_VENDOR_DEFINED 0x80000000UL -+#endif -+ -+#ifndef OCK_NO_EP11_DEFINES -+#define CKD_IBM_HYBRID_NULL CKD_VENDOR_DEFINED + 0x00000001UL -+#define CKD_IBM_HYBRID_SHA1_KDF CKD_VENDOR_DEFINED + 0x00000002UL -+#define CKD_IBM_HYBRID_SHA224_KDF CKD_VENDOR_DEFINED + 0x00000003UL -+#define CKD_IBM_HYBRID_SHA256_KDF CKD_VENDOR_DEFINED + 0x00000004UL -+#define CKD_IBM_HYBRID_SHA384_KDF CKD_VENDOR_DEFINED + 0x00000005UL -+#define CKD_IBM_HYBRID_SHA512_KDF CKD_VENDOR_DEFINED + 0x00000006UL -+#endif -+ -+typedef struct CK_IBM_KYBER_PARAMS { -+ CK_ULONG ulVersion; -+ CK_IBM_KYBER_KEM_MODE mode; -+ CK_IBM_KYBER_KDF_TYPE kdf; -+ CK_BBOOL bPrepend; -+ CK_BYTE *pCipher; -+ CK_ULONG ulCipherLen; -+ CK_BYTE *pSharedData; -+ CK_ULONG ulSharedDataLen; -+ CK_OBJECT_HANDLE hSecret; -+} CK_IBM_KYBER_PARAMS; -+ - /* For NSS 3.30: */ - #define NSSCK_VENDOR_NSS 0x4E534350 - #define CKA_NSS (CKA_VENDOR_DEFINED | NSSCK_VENDOR_NSS) -@@ -941,6 +989,7 @@ typedef CK_ULONG CK_MECHANISM_TYPE; - #define CKM_IBM_SHA3_512 CKM_VENDOR_DEFINED + 0x00010004 - #define CKM_IBM_CMAC CKM_VENDOR_DEFINED + 0x00010007 - #define CKM_IBM_DILITHIUM CKM_VENDOR_DEFINED + 0x00010023 -+#define CKM_IBM_KYBER CKM_VENDOR_DEFINED + 0x00010024 - #define CKM_IBM_SHA3_224_HMAC CKM_VENDOR_DEFINED + 0x00010025 - #define CKM_IBM_SHA3_256_HMAC CKM_VENDOR_DEFINED + 0x00010026 - #define CKM_IBM_SHA3_384_HMAC CKM_VENDOR_DEFINED + 0x00010027 -diff --git a/usr/lib/common/p11util.c b/usr/lib/common/p11util.c -index f3a031e3..8b81ab42 100644 ---- a/usr/lib/common/p11util.c -+++ b/usr/lib/common/p11util.c -@@ -234,6 +234,10 @@ const char *p11_get_cka(CK_ATTRIBUTE_TYPE atype) - _sym2str(CKA_IBM_DILITHIUM_T0); - _sym2str(CKA_IBM_DILITHIUM_T1); - _sym2str(CKA_IBM_PQC_PARAMS); -+ _sym2str(CKA_IBM_KYBER_KEYFORM); -+ _sym2str(CKA_IBM_KYBER_MODE); -+ _sym2str(CKA_IBM_KYBER_PK); -+ _sym2str(CKA_IBM_KYBER_SK); - default: - sprintf(buf, "unknown attribute type 0x%08lx", atype); - return buf; --- -2.16.2.windows.1 - diff --git a/0018-COMMON-Add-post-quantum-algorithm-OIDs.patch b/0018-COMMON-Add-post-quantum-algorithm-OIDs.patch deleted file mode 100644 index cb3c985..0000000 --- a/0018-COMMON-Add-post-quantum-algorithm-OIDs.patch +++ /dev/null @@ -1,249 +0,0 @@ -From 67ed25a8f7764e61647c3c31d09a1e60db38006b Mon Sep 17 00:00:00 2001 -From: Ingo Franzki -Date: Wed, 16 Feb 2022 11:20:54 +0100 -Subject: [PATCH 18/34] COMMON: Add post-quantum algorithm OIDs - -Signed-off-by: Ingo Franzki ---- - usr/include/include.mk | 2 +- - usr/include/pqc_oids.h | 48 ++++++++++++++++++++++++++ - usr/lib/common/common.mk | 3 +- - usr/lib/common/globals.c | 1 + - usr/lib/common/pqc_defs.h | 48 ++++++++++++++++++++++++++ - usr/lib/common/pqc_supported.c | 78 ++++++++++++++++++++++++++++++++++++++++++ - 6 files changed, 178 insertions(+), 2 deletions(-) - create mode 100644 usr/include/pqc_oids.h - create mode 100644 usr/lib/common/pqc_defs.h - create mode 100644 usr/lib/common/pqc_supported.c - -diff --git a/usr/include/include.mk b/usr/include/include.mk -index 79e593d7..a63e043f 100644 ---- a/usr/include/include.mk -+++ b/usr/include/include.mk -@@ -3,7 +3,7 @@ opencryptokiincludedir = ${includedir}/opencryptoki - opencryptokiinclude_HEADERS = \ - usr/include/apiclient.h usr/include/pkcs11types.h \ - usr/include/pkcs11.h \ -- usr/include/ec_curves.h -+ usr/include/ec_curves.h usr/include/pqc_oids.h - - noinst_HEADERS += \ - usr/include/apictl.h usr/include/local_types.h \ -diff --git a/usr/include/pqc_oids.h b/usr/include/pqc_oids.h -new file mode 100644 -index 00000000..0891373e ---- /dev/null -+++ b/usr/include/pqc_oids.h -@@ -0,0 +1,48 @@ -+/* -+ * COPYRIGHT (c) International Business Machines Corp. 2022 -+ * -+ * This program is provided under the terms of the Common Public License, -+ * version 1.0 (CPL-1.0). Any use, reproduction or distribution for this -+ * software constitutes recipient's acceptance of CPL-1.0 terms which can be -+ * found in the file LICENSE file or at -+ * https://opensource.org/licenses/cpl1.0.php -+ */ -+ -+ -+#ifndef _PQC_OIDS_H_ -+#define _PQC_OIDS_H_ -+ -+/* -+ * OIDs and their DER encoding for the post-quantum crypto algorithms -+ * supported by OpenCryptoki: -+ */ -+ -+/* Dilithium Round 2 high-security (SHAKE-256): 1.3.6.1.4.1.2.267.1.6.5 */ -+#define OCK_DILITHIUM_R2_65 { 0x06, 0x0B, 0x2B, 0x06, 0x01, 0x04, \ -+ 0x01, 0x02, 0x82, 0x0B, 0x01, 0x06, 0x05 } -+ -+/* Dilithium Round 2 for outbound authentication: 1.3.6.1.4.1.2.267.1.8.7 */ -+#define OCK_DILITHIUM_R2_87 { 0x06, 0x0B, 0x2B, 0x06, 0x01, 0x04, \ -+ 0x01, 0x02, 0x82, 0x0B, 0x01, 0x08, 0x07 } -+ -+/* Dilithium Round 3 weak (SHAKE-256): 1.3.6.1.4.1.2.267.7.4.4 */ -+#define OCK_DILITHIUM_R3_44 { 0x06, 0x0B, 0x2B, 0x06, 0x01, 0x04, \ -+ 0x01, 0x02, 0x82, 0x0B, 0x07, 0x04, 0x04 } -+ -+/* Dilithium Round 3 recommended (SHAKE-256): 1.3.6.1.4.1.2.267.7.6.5 */ -+#define OCK_DILITHIUM_R3_65 { 0x06, 0x0B, 0x2B, 0x06, 0x01, 0x04, \ -+ 0x01, 0x02, 0x82, 0x0B, 0x07, 0x06, 0x05 } -+ -+/* Dilithium Round 3 high-security (SHAKE-256): 1.3.6.1.4.1.2.267.7.8.7 */ -+#define OCK_DILITHIUM_R3_87 { 0x06, 0x0B, 0x2B, 0x06, 0x01, 0x04, \ -+ 0x01, 0x02, 0x82, 0x0B, 0x07, 0x08, 0x07 } -+ -+/* Kyber Round 2 768 (SHAKE-128): 1.3.6.1.4.1.2.267.5.3.3 */ -+#define OCK_KYBER_R2_768 { 0x06, 0x0B, 0x2B, 0x06, 0x01, 0x04, \ -+ 0x01, 0x02, 0x82, 0x0B, 0x05, 0x03, 0x03 } -+ -+/* Kyber Round 2 1024 (SHAKE-128): 1.3.6.1.4.1.2.267.5.4.4 */ -+#define OCK_KYBER_R2_1024 { 0x06, 0x0B, 0x2B, 0x06, 0x01, 0x04, \ -+ 0x01, 0x02, 0x82, 0x0B, 0x05, 0x04, 0x04 } -+ -+#endif // _PQC_OIDS_H_ -diff --git a/usr/lib/common/common.mk b/usr/lib/common/common.mk -index 6341cb74..93f1e21f 100644 ---- a/usr/lib/common/common.mk -+++ b/usr/lib/common/common.mk -@@ -7,4 +7,5 @@ noinst_HEADERS += \ - usr/lib/common/p11util.h usr/lib/common/event_client.h \ - usr/lib/common/list.h usr/lib/common/tok_specific.h \ - usr/lib/common/uri_enc.h usr/lib/common/uri.h \ -- usr/lib/common/buffer.h usr/lib/common/pin_prompt.h -+ usr/lib/common/buffer.h usr/lib/common/pin_prompt.h \ -+ usr/lib/common/pqc_defs.h -diff --git a/usr/lib/common/globals.c b/usr/lib/common/globals.c -index db4d352c..5b79e785 100644 ---- a/usr/lib/common/globals.c -+++ b/usr/lib/common/globals.c -@@ -27,6 +27,7 @@ - #include "defs.h" - #include "host_defs.h" - #include "h_extern.h" -+#include "pqc_oids.h" - - struct ST_FCN_LIST function_list; - -diff --git a/usr/lib/common/pqc_defs.h b/usr/lib/common/pqc_defs.h -new file mode 100644 -index 00000000..51ee1200 ---- /dev/null -+++ b/usr/lib/common/pqc_defs.h -@@ -0,0 +1,48 @@ -+/* -+ * COPYRIGHT (c) International Business Machines Corp. 2022 -+ * -+ * This program is provided under the terms of the Common Public License, -+ * version 1.0 (CPL-1.0). Any use, reproduction or distribution for this -+ * software constitutes recipient's acceptance of CPL-1.0 terms which can be -+ * found in the file LICENSE file or at -+ * https://opensource.org/licenses/cpl1.0.php -+ */ -+ -+#ifndef _PQC_DEFS -+#define _PQC_DEFS -+ -+#include -+ -+#include "pqc_oids.h" -+ -+extern const CK_BYTE dilithium_r2_65[]; -+extern const CK_ULONG dilithium_r2_65_len; -+extern const CK_BYTE dilithium_r2_87[]; -+extern const CK_ULONG dilithium_r2_87_len; -+extern const CK_BYTE dilithium_r3_44[]; -+extern const CK_ULONG dilithium_r3_44_len; -+extern const CK_BYTE dilithium_r3_56[]; -+extern const CK_ULONG dilithium_r3_56_len; -+extern const CK_BYTE dilithium_r3_87[]; -+extern const CK_ULONG dilithium_r3_87_len; -+ -+extern const CK_BYTE kyber_r2_768[]; -+extern const CK_ULONG kyber_r2_768_len; -+extern const CK_BYTE kyber_r2_1024[]; -+extern const CK_ULONG kyber_r2_1024_len; -+ -+struct pqc_oid { -+ const CK_BYTE *oid; -+ CK_ULONG oid_len; -+ CK_ULONG keyform; -+}; -+ -+extern const struct pqc_oid dilithium_oids[]; -+extern const struct pqc_oid kyber_oids[]; -+ -+const struct pqc_oid *find_pqc_by_keyform(const struct pqc_oid *pqcs, -+ CK_ULONG keyform); -+const struct pqc_oid *find_pqc_by_oid(const struct pqc_oid *pqcs, -+ CK_BYTE *oid, CK_ULONG oid_len); -+ -+#endif -diff --git a/usr/lib/common/pqc_supported.c b/usr/lib/common/pqc_supported.c -new file mode 100644 -index 00000000..4f048c33 ---- /dev/null -+++ b/usr/lib/common/pqc_supported.c -@@ -0,0 +1,78 @@ -+/* -+ * COPYRIGHT (c) International Business Machines Corp. 2022 -+ * -+ * This program is provided under the terms of the Common Public License, -+ * version 1.0 (CPL-1.0). Any use, reproduction or distribution for this -+ * software constitutes recipient's acceptance of CPL-1.0 terms which can be -+ * found in the file LICENSE file or at -+ * https://opensource.org/licenses/cpl1.0.php -+ */ -+ -+#include -+#include "pkcs11types.h" -+#include "pqc_defs.h" -+ -+const CK_BYTE dilithium_r2_65[] = OCK_DILITHIUM_R2_65; -+const CK_ULONG dilithium_r2_65_len = sizeof(dilithium_r2_65); -+const CK_BYTE dilithium_r2_87[] = OCK_DILITHIUM_R2_87; -+const CK_ULONG dilithium_r2_87_len = sizeof(dilithium_r2_87); -+const CK_BYTE dilithium_r3_44[] = OCK_DILITHIUM_R3_44; -+const CK_ULONG dilithium_r3_44_len = sizeof(dilithium_r3_44); -+const CK_BYTE dilithium_r3_65[] = OCK_DILITHIUM_R3_65; -+const CK_ULONG dilithium_r3_65_len = sizeof(dilithium_r3_65); -+const CK_BYTE dilithium_r3_87[] = OCK_DILITHIUM_R3_87; -+const CK_ULONG dilithium_r3_87_len = sizeof(dilithium_r3_87); -+ -+const struct pqc_oid dilithium_oids[] = { -+ { .oid = dilithium_r2_65, .oid_len = dilithium_r2_65_len, -+ .keyform = CK_IBM_DILITHIUM_KEYFORM_ROUND2_65 }, -+ { .oid = dilithium_r2_87, .oid_len = dilithium_r2_87_len, -+ .keyform = CK_IBM_DILITHIUM_KEYFORM_ROUND2_87 }, -+ { .oid = dilithium_r3_44, .oid_len = dilithium_r3_44_len, -+ .keyform = CK_IBM_DILITHIUM_KEYFORM_ROUND3_44 }, -+ { .oid = dilithium_r3_65, .oid_len = dilithium_r3_65_len, -+ .keyform = CK_IBM_DILITHIUM_KEYFORM_ROUND3_65 }, -+ { .oid = dilithium_r3_87, .oid_len = dilithium_r3_87_len, -+ .keyform = CK_IBM_DILITHIUM_KEYFORM_ROUND3_87 }, -+ { .oid = NULL, .oid_len = 0, .keyform = 0 } -+}; -+ -+const CK_BYTE kyber_r2_768[] = OCK_KYBER_R2_768; -+const CK_ULONG kyber_r2_768_len = sizeof(kyber_r2_768); -+const CK_BYTE kyber_r2_1024[] = OCK_KYBER_R2_1024; -+const CK_ULONG kyber_r2_1024_len = sizeof(kyber_r2_1024); -+ -+const struct pqc_oid kyber_oids[] = { -+ { .oid = kyber_r2_768, .oid_len = kyber_r2_768_len, -+ .keyform = CK_IBM_KYBER_KEYFORM_ROUND2_768 }, -+ { .oid = kyber_r2_1024, .oid_len = kyber_r2_1024_len, -+ .keyform = CK_IBM_KYBER_KEYFORM_ROUND2_1024 }, -+ { .oid = NULL, .oid_len = 0, .keyform = 0 } -+}; -+ -+const struct pqc_oid *find_pqc_by_keyform(const struct pqc_oid *pqcs, -+ CK_ULONG keyform) -+{ -+ CK_ULONG i; -+ -+ for (i = 0; pqcs[i].oid != NULL; i++) { -+ if (pqcs[i].keyform == keyform) -+ return &pqcs[i]; -+ } -+ -+ return NULL; -+} -+ -+const struct pqc_oid *find_pqc_by_oid(const struct pqc_oid *pqcs, -+ CK_BYTE *oid, CK_ULONG oid_len) -+{ -+ CK_ULONG i; -+ -+ for (i = 0; pqcs[i].oid != NULL; i++) { -+ if (pqcs[i].oid_len == oid_len && -+ memcmp(pqcs[i].oid, oid, oid_len) == 0) -+ return &pqcs[i]; -+ } -+ -+ return NULL; -+} --- -2.16.2.windows.1 - diff --git a/0019-COMMON-Dilithium-key-BER-encoding-decoding-allow-dif.patch b/0019-COMMON-Dilithium-key-BER-encoding-decoding-allow-dif.patch deleted file mode 100644 index 90a6c20..0000000 --- a/0019-COMMON-Dilithium-key-BER-encoding-decoding-allow-dif.patch +++ /dev/null @@ -1,604 +0,0 @@ -From 76307be97a42f5a743e7cf0ef75a87dac0c0106f Mon Sep 17 00:00:00 2001 -From: Ingo Franzki -Date: Wed, 16 Feb 2022 13:04:24 +0100 -Subject: [PATCH 19/34] COMMON: Dilithium key BER encoding/decoding allow - different OIDs - -Signed-off-by: Ingo Franzki ---- - usr/lib/cca_stdll/cca_stdll.mk | 2 +- - usr/lib/common/asn1.c | 143 ++++++++++++++++++++----------- - usr/lib/common/globals.c | 8 +- - usr/lib/common/h_extern.h | 54 ++++++------ - usr/lib/common/key.c | 10 ++- - usr/lib/common/key_mgr.c | 13 ++- - usr/lib/ep11_stdll/ep11_specific.c | 6 +- - usr/lib/ep11_stdll/ep11_stdll.mk | 3 +- - usr/lib/ica_s390_stdll/ica_s390_stdll.mk | 2 +- - usr/lib/icsf_stdll/icsf_stdll.mk | 2 +- - usr/lib/soft_stdll/soft_stdll.mk | 2 +- - usr/lib/tpm_stdll/tpm_stdll.mk | 2 +- - usr/sbin/pkcscca/pkcscca.mk | 2 +- - 13 files changed, 152 insertions(+), 97 deletions(-) - -diff --git a/usr/lib/cca_stdll/cca_stdll.mk b/usr/lib/cca_stdll/cca_stdll.mk -index 9b71085a..5963df59 100644 ---- a/usr/lib/cca_stdll/cca_stdll.mk -+++ b/usr/lib/cca_stdll/cca_stdll.mk -@@ -41,7 +41,7 @@ opencryptoki_stdll_libpkcs11_cca_la_SOURCES = usr/lib/common/asn1.c \ - usr/lib/common/utility_common.c usr/lib/common/ec_supported.c \ - usr/lib/api/policyhelper.c usr/lib/config/configuration.c \ - usr/lib/config/cfgparse.y usr/lib/config/cfglex.l \ -- usr/lib/common/mech_openssl.c -+ usr/lib/common/mech_openssl.c usr/lib/common/pqc_supported.c - - if ENABLE_LOCKS - opencryptoki_stdll_libpkcs11_cca_la_SOURCES += \ -diff --git a/usr/lib/common/asn1.c b/usr/lib/common/asn1.c -index b3f49c41..884ef489 100644 ---- a/usr/lib/common/asn1.c -+++ b/usr/lib/common/asn1.c -@@ -24,6 +24,7 @@ - #include "host_defs.h" - #include "h_extern.h" - #include "trace.h" -+#include "pqc_defs.h" - - - // -@@ -3616,7 +3617,7 @@ cleanup: - * - * SEQUENCE (2 elem) - * SEQUENCE (2 elem) -- * OBJECT IDENTIFIER 1.3.6.1.4.1.2.267.1.6.5 -+ * OBJECT IDENTIFIER 1.3.6.1.4.1.2.267.xxx - * NULL - * BIT STRING (1 elem) - * SEQUENCE (2 elem) -@@ -3624,20 +3625,26 @@ cleanup: - * BIT STRING (13824 bit) = 1728 bytes - */ - CK_RV ber_encode_IBM_DilithiumPublicKey(CK_BBOOL length_only, -- CK_BYTE **data, CK_ULONG *data_len, -- CK_ATTRIBUTE *rho, CK_ATTRIBUTE *t1) -+ CK_BYTE **data, CK_ULONG *data_len, -+ const CK_BYTE *oid, CK_ULONG oid_len, -+ CK_ATTRIBUTE *rho, CK_ATTRIBUTE *t1) - { - CK_BYTE *buf = NULL, *buf2 = NULL, *buf3 = NULL, *buf4 = NULL; -- CK_ULONG len = 0, len4, offset, total, total_len; -+ CK_BYTE *buf5 = NULL, *algid = NULL; -+ CK_ULONG len = 0, len4, offset, total, total_len, algid_len; - CK_RV rc; - - UNUSED(length_only); - - offset = 0; - rc = 0; -- total_len = ber_AlgIdDilithiumLen; -+ total_len = 0; - total = 0; - -+ /* Calculate storage for AlgID sequence */ -+ rc |= ber_encode_SEQUENCE(TRUE, NULL, &total_len, NULL, -+ oid_len + ber_NULLLen); -+ - /* Calculate storage for inner sequence */ - rc |= ber_encode_INTEGER(TRUE, NULL, &len, NULL, rho->ulValueLen); - offset += len; -@@ -3709,12 +3716,30 @@ CK_RV ber_encode_IBM_DilithiumPublicKey(CK_BBOOL length_only, - - /* - * SEQUENCE (2 elem) -- * OBJECT IDENTIFIER 1.3.6.1.4.1.2.267.1.6.5 -+ * OBJECT IDENTIFIER 1.3.6.1.4.1.2.267.xxx - * NULL <- no parms for this oid - */ -- total_len = 0; -- memcpy(buf3 + total_len, ber_AlgIdDilithium, ber_AlgIdDilithiumLen); -- total_len += ber_AlgIdDilithiumLen; -+ buf5 = (CK_BYTE *) malloc(oid_len + ber_NULLLen); -+ if (!buf5) { -+ TRACE_ERROR("%s Memory allocation failed\n", __func__); -+ rc = CKR_HOST_MEMORY; -+ goto error; -+ } -+ memcpy(buf5, oid, oid_len); -+ memcpy(buf5 + oid_len, ber_NULL, ber_NULLLen); -+ -+ rc = ber_encode_SEQUENCE(FALSE, &algid, &algid_len, buf5, -+ oid_len + ber_NULLLen); -+ free(buf5); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("%s ber_encode_SEQUENCE failed with rc=0x%lx\n", __func__, rc); -+ goto error; -+ } -+ -+ total_len = algid_len; -+ memcpy(buf3, algid, algid_len); -+ free(algid); -+ algid = NULL; - - /* - * BIT STRING (1 elem) -@@ -3760,16 +3785,15 @@ error: - - - CK_RV ber_decode_IBM_DilithiumPublicKey(CK_BYTE *data, -- CK_ULONG data_len, -- CK_ATTRIBUTE **rho_attr, -- CK_ATTRIBUTE **t1_attr) -+ CK_ULONG data_len, -+ CK_ATTRIBUTE **rho_attr, -+ CK_ATTRIBUTE **t1_attr) - { - CK_ATTRIBUTE *rho_attr_temp = NULL; - CK_ATTRIBUTE *t1_attr_temp = NULL; - -- CK_BYTE *algid_DilithiumBase = NULL; -- CK_BYTE *algid = NULL; -- CK_ULONG algid_len; -+ CK_BYTE *algoid = NULL; -+ CK_ULONG algoid_len; - CK_BYTE *param = NULL; - CK_ULONG param_len; - CK_BYTE *val = NULL; -@@ -3780,26 +3804,20 @@ CK_RV ber_decode_IBM_DilithiumPublicKey(CK_BYTE *data, - CK_ULONG rho_len; - CK_BYTE *t1; - CK_ULONG t1_len; -- CK_ULONG field_len, offset, len; -+ CK_ULONG field_len, offset; - CK_RV rc; - - UNUSED(data_len); // XXX can this parameter be removed ? - -- rc = ber_decode_SPKI(data, &algid, &algid_len, ¶m, ¶m_len, -+ rc = ber_decode_SPKI(data, &algoid, &algoid_len, ¶m, ¶m_len, - &val, &val_len); - if (rc != CKR_OK) { - TRACE_DEVEL("ber_decode_SPKI failed\n"); - return rc; - } - -- /* Make sure we're dealing with a Dilithium key */ -- rc = ber_decode_SEQUENCE((CK_BYTE *)ber_AlgIdDilithium, &algid_DilithiumBase, &len, -- &field_len); -- if (rc != CKR_OK) { -- TRACE_DEVEL("ber_decode_SEQUENCE failed\n"); -- return rc; -- } -- if (memcmp(algid, algid_DilithiumBase, len) != 0) { -+ if (algoid_len != dilithium_r2_65_len || -+ memcmp(algoid, dilithium_r2_65, dilithium_r2_65_len) != 0) { - TRACE_ERROR("%s\n", ock_err(ERR_FUNCTION_FAILED)); - return CKR_FUNCTION_FAILED; - } -@@ -3879,18 +3897,20 @@ cleanup: - * } - */ - CK_RV ber_encode_IBM_DilithiumPrivateKey(CK_BBOOL length_only, -- CK_BYTE **data, -- CK_ULONG *data_len, -- CK_ATTRIBUTE *rho, -- CK_ATTRIBUTE *seed, -- CK_ATTRIBUTE *tr, -- CK_ATTRIBUTE *s1, -- CK_ATTRIBUTE *s2, -- CK_ATTRIBUTE *t0, -- CK_ATTRIBUTE *t1) -+ CK_BYTE **data, -+ CK_ULONG *data_len, -+ const CK_BYTE *oid, CK_ULONG oid_len, -+ CK_ATTRIBUTE *rho, -+ CK_ATTRIBUTE *seed, -+ CK_ATTRIBUTE *tr, -+ CK_ATTRIBUTE *s1, -+ CK_ATTRIBUTE *s2, -+ CK_ATTRIBUTE *t0, -+ CK_ATTRIBUTE *t1) - { - CK_BYTE *buf = NULL, *buf2 = NULL, *buf3 = NULL; -- CK_ULONG len, len2 = 0, offset; -+ CK_BYTE *algid = NULL, *algid_buf = NULL; -+ CK_ULONG len, len2 = 0, offset, algid_len = 0; - CK_BYTE version[] = { 0 }; - CK_RV rc; - -@@ -3898,6 +3918,9 @@ CK_RV ber_encode_IBM_DilithiumPrivateKey(CK_BBOOL length_only, - offset = 0; - rc = 0; - -+ rc |= ber_encode_SEQUENCE(TRUE, NULL, &algid_len, NULL, -+ oid_len + ber_NULLLen); -+ - rc |= ber_encode_INTEGER(TRUE, NULL, &len, NULL, sizeof(version)); - offset += len; - rc |= ber_encode_BIT_STRING(TRUE, NULL, &len, NULL, rho->ulValueLen, 0); -@@ -3931,7 +3954,7 @@ CK_RV ber_encode_IBM_DilithiumPrivateKey(CK_BBOOL length_only, - } - rc = ber_encode_PrivateKeyInfo(TRUE, - NULL, data_len, -- NULL, ber_AlgIdDilithiumLen, -+ NULL, algid_len, - NULL, len); - if (rc != CKR_OK) { - TRACE_DEVEL("ber_encode_PrivateKeyInfo failed\n"); -@@ -4051,10 +4074,28 @@ CK_RV ber_encode_IBM_DilithiumPrivateKey(CK_BBOOL length_only, - TRACE_ERROR("ber_encode_SEQUENCE failed\n"); - goto error; - } -+ -+ algid_buf = (CK_BYTE *) malloc(oid_len + ber_NULLLen); -+ if (!algid_buf) { -+ TRACE_ERROR("%s Memory allocation failed\n", __func__); -+ rc = CKR_HOST_MEMORY; -+ goto error; -+ } -+ memcpy(algid_buf, oid, oid_len); -+ memcpy(algid_buf + oid_len, ber_NULL, ber_NULLLen); -+ -+ rc = ber_encode_SEQUENCE(FALSE, &algid, &algid_len, algid_buf, -+ oid_len + ber_NULLLen); -+ free(algid_buf); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("%s ber_encode_SEQUENCE failed with rc=0x%lx\n", __func__, rc); -+ goto error; -+ } -+ - rc = ber_encode_PrivateKeyInfo(FALSE, - data, data_len, -- ber_AlgIdDilithium, -- ber_AlgIdDilithiumLen, buf2, len); -+ algid, algid_len, -+ buf2, len); - if (rc != CKR_OK) { - TRACE_ERROR("ber_encode_PrivateKeyInfo failed\n"); - } -@@ -4066,6 +4107,8 @@ error: - free(buf2); - if (buf) - free(buf); -+ if (algid) -+ free(algid); - - return rc; - } -@@ -4087,19 +4130,19 @@ error: - * } - */ - CK_RV ber_decode_IBM_DilithiumPrivateKey(CK_BYTE *data, -- CK_ULONG data_len, -- CK_ATTRIBUTE **rho, -- CK_ATTRIBUTE **seed, -- CK_ATTRIBUTE **tr, -- CK_ATTRIBUTE **s1, -- CK_ATTRIBUTE **s2, -- CK_ATTRIBUTE **t0, -- CK_ATTRIBUTE **t1) -+ CK_ULONG data_len, -+ CK_ATTRIBUTE **rho, -+ CK_ATTRIBUTE **seed, -+ CK_ATTRIBUTE **tr, -+ CK_ATTRIBUTE **s1, -+ CK_ATTRIBUTE **s2, -+ CK_ATTRIBUTE **t0, -+ CK_ATTRIBUTE **t1) - { - CK_ATTRIBUTE *rho_attr = NULL, *seed_attr = NULL; - CK_ATTRIBUTE *tr_attr = NULL, *s1_attr = NULL, *s2_attr = NULL; - CK_ATTRIBUTE *t0_attr = NULL, *t1_attr = NULL; -- CK_BYTE *alg = NULL; -+ CK_BYTE *algoid = NULL; - CK_BYTE *dilithium_priv_key = NULL; - CK_BYTE *buf = NULL; - CK_BYTE *tmp = NULL; -@@ -4107,15 +4150,15 @@ CK_RV ber_decode_IBM_DilithiumPrivateKey(CK_BYTE *data, - CK_RV rc; - - /* Check if this is a Dilithium private key */ -- rc = ber_decode_PrivateKeyInfo(data, data_len, &alg, &len, -+ rc = ber_decode_PrivateKeyInfo(data, data_len, &algoid, &len, - &dilithium_priv_key); - if (rc != CKR_OK) { - TRACE_DEVEL("ber_decode_PrivateKeyInfo failed\n"); - return rc; - } - -- if (memcmp(alg, ber_AlgIdDilithium, ber_AlgIdDilithiumLen) != 0) { -- // probably ought to use a different error -+ if (len != dilithium_r2_65_len + ber_NULLLen || -+ memcmp(algoid, dilithium_r2_65, dilithium_r2_65_len) != 0) { - TRACE_ERROR("%s\n", ock_err(ERR_FUNCTION_FAILED)); - return CKR_FUNCTION_FAILED; - } -diff --git a/usr/lib/common/globals.c b/usr/lib/common/globals.c -index 5b79e785..a7197ec6 100644 ---- a/usr/lib/common/globals.c -+++ b/usr/lib/common/globals.c -@@ -105,11 +105,7 @@ const CK_BYTE ber_AlgIdRSAEncryption[] = { - const CK_BYTE der_AlgIdECBase[] = - { 0x30, 0x09, 0x06, 0x07, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x02, 0x01 }; - --const CK_BYTE ber_AlgIdDilithium[] = -- { 0x30, 0x0F, 0x06, 0x0B, 0x2B, 0x06, 0x01, -- 0x04, 0x01, 0x02, 0x82, 0x0B, 0x01, 0x06, -- 0x05, 0x05, 0x00 --}; -+const CK_BYTE ber_NULL[] = { 0x05, 0x00 }; - - // ID Lengths - // -@@ -135,7 +131,7 @@ const CK_ULONG ber_AlgSha384Len = sizeof(ber_AlgSha384); - const CK_ULONG ber_AlgSha512Len = sizeof(ber_AlgSha512); - const CK_ULONG ber_AlgIdRSAEncryptionLen = sizeof(ber_AlgIdRSAEncryption); - const CK_ULONG der_AlgIdECBaseLen = sizeof(der_AlgIdECBase); --const CK_ULONG ber_AlgIdDilithiumLen = sizeof(ber_AlgIdDilithium); -+const CK_ULONG ber_NULLLen = sizeof(ber_NULL); - - const CK_ULONG des_weak_count = 4; - const CK_ULONG des_semi_weak_count = 12; -diff --git a/usr/lib/common/h_extern.h b/usr/lib/common/h_extern.h -index 340ab88d..41ca12df 100644 ---- a/usr/lib/common/h_extern.h -+++ b/usr/lib/common/h_extern.h -@@ -56,16 +56,14 @@ extern const CK_BYTE ber_rsaEncryption[]; - extern const CK_ULONG ber_rsaEncryptionLen; - extern const CK_BYTE der_AlgIdECBase[]; - extern const CK_ULONG der_AlgIdECBaseLen; --extern const CK_BYTE ber_AlgIdDilithium[]; --extern const CK_ULONG ber_AlgIdDilithiumLen; - extern const CK_BYTE ber_idDSA[]; - extern const CK_ULONG ber_idDSALen; - extern const CK_BYTE ber_idDH[]; - extern const CK_ULONG ber_idDHLen; - extern const CK_BYTE ber_idEC[]; - extern const CK_ULONG ber_idECLen; --extern const CK_BYTE ber_idDilithium[]; --extern const CK_ULONG ber_idDilithiumLen; -+extern const CK_BYTE ber_NULL[]; -+extern const CK_ULONG ber_NULLLen; - - #if !(NOMD2) - extern const CK_BYTE ber_md2WithRSAEncryption[]; -@@ -2742,35 +2740,37 @@ CK_RV ber_decode_ECDHPrivateKey(CK_BYTE *data, - CK_ATTRIBUTE **pub_key, - CK_ATTRIBUTE **priv_key); - --CK_RV ber_encode_IBM_DilithiumPublicKey(CK_BBOOL length_only, CK_BYTE **data, -- CK_ULONG *data_len, CK_ATTRIBUTE *rho, -- CK_ATTRIBUTE *t1); -+CK_RV ber_encode_IBM_DilithiumPublicKey(CK_BBOOL length_only, -+ CK_BYTE **data, CK_ULONG *data_len, -+ const CK_BYTE *oid, CK_ULONG oid_len, -+ CK_ATTRIBUTE *rho, CK_ATTRIBUTE *t1); - - CK_RV ber_decode_IBM_DilithiumPublicKey(CK_BYTE *data, -- CK_ULONG data_len, -- CK_ATTRIBUTE **rho_attr, -- CK_ATTRIBUTE **t1_attr); -+ CK_ULONG data_len, -+ CK_ATTRIBUTE **rho_attr, -+ CK_ATTRIBUTE **t1_attr); - - CK_RV ber_encode_IBM_DilithiumPrivateKey(CK_BBOOL length_only, -- CK_BYTE **data, -- CK_ULONG *data_len, -- CK_ATTRIBUTE *rho, -- CK_ATTRIBUTE *seed, -- CK_ATTRIBUTE *tr, -- CK_ATTRIBUTE *s1, -- CK_ATTRIBUTE *s2, -- CK_ATTRIBUTE *t0, -- CK_ATTRIBUTE *t1); -+ CK_BYTE **data, -+ CK_ULONG *data_len, -+ const CK_BYTE *oid, CK_ULONG oid_len, -+ CK_ATTRIBUTE *rho, -+ CK_ATTRIBUTE *seed, -+ CK_ATTRIBUTE *tr, -+ CK_ATTRIBUTE *s1, -+ CK_ATTRIBUTE *s2, -+ CK_ATTRIBUTE *t0, -+ CK_ATTRIBUTE *t1); - - CK_RV ber_decode_IBM_DilithiumPrivateKey(CK_BYTE *data, -- CK_ULONG data_len, -- CK_ATTRIBUTE **rho, -- CK_ATTRIBUTE **seed, -- CK_ATTRIBUTE **tr, -- CK_ATTRIBUTE **s1, -- CK_ATTRIBUTE **s2, -- CK_ATTRIBUTE **t0, -- CK_ATTRIBUTE **t1); -+ CK_ULONG data_len, -+ CK_ATTRIBUTE **rho, -+ CK_ATTRIBUTE **seed, -+ CK_ATTRIBUTE **tr, -+ CK_ATTRIBUTE **s1, -+ CK_ATTRIBUTE **s2, -+ CK_ATTRIBUTE **t0, -+ CK_ATTRIBUTE **t1); - - typedef CK_RV (*t_rsa_encrypt)(STDLL_TokData_t *, CK_BYTE *in_data, - CK_ULONG in_data_len, CK_BYTE *out_data, -diff --git a/usr/lib/common/key.c b/usr/lib/common/key.c -index 6e9a839a..41857b97 100644 ---- a/usr/lib/common/key.c -+++ b/usr/lib/common/key.c -@@ -81,6 +81,7 @@ - #include "h_extern.h" - #include "attributes.h" - #include "trace.h" -+#include "pqc_defs.h" - - #include "tok_spec_struct.h" - -@@ -2688,7 +2689,10 @@ CK_RV ibm_dilithium_publ_get_spki(TEMPLATE *tmpl, CK_BBOOL length_only, - return rc; - } - -- rc = ber_encode_IBM_DilithiumPublicKey(length_only, data,data_len, rho, t1); -+ rc = ber_encode_IBM_DilithiumPublicKey(length_only, data, data_len, -+ dilithium_r2_65, -+ dilithium_r2_65_len, -+ rho, t1); - if (rc != CKR_OK) { - TRACE_ERROR("ber_encode_IBM_DilithiumPublicKey failed.\n"); - return rc; -@@ -2766,7 +2770,9 @@ CK_RV ibm_dilithium_priv_wrap_get_data(TEMPLATE *tmpl, - } - - rc = ber_encode_IBM_DilithiumPrivateKey(length_only, data, data_len, -- rho, seed, tr, s1, s2, t0, t1); -+ dilithium_r2_65, -+ dilithium_r2_65_len, -+ rho, seed, tr, s1, s2, t0, t1); - if (rc != CKR_OK) { - TRACE_DEVEL("ber_encode_IBM_DilithiumPrivateKey failed\n"); - } -diff --git a/usr/lib/common/key_mgr.c b/usr/lib/common/key_mgr.c -index 99f2a72e..01103dc2 100644 ---- a/usr/lib/common/key_mgr.c -+++ b/usr/lib/common/key_mgr.c -@@ -35,6 +35,7 @@ - #include "attributes.h" - #include "tok_spec_struct.h" - #include "trace.h" -+#include "pqc_defs.h" - - #include "../api/policy.h" - #include "../api/statistics.h" -@@ -1368,7 +1369,7 @@ CK_RV key_mgr_get_private_key_type(CK_BYTE *keydata, - { - CK_BYTE *alg = NULL; - CK_BYTE *priv_key = NULL; -- CK_ULONG alg_len; -+ CK_ULONG alg_len, i; - CK_RV rc; - - rc = ber_decode_PrivateKeyInfo(keydata, keylen, &alg, &alg_len, &priv_key); -@@ -1408,10 +1409,14 @@ CK_RV key_mgr_get_private_key_type(CK_BYTE *keydata, - return CKR_OK; - } - } -- // Check only the OBJECT IDENTIFIER for DILITHIUM -+ // Check only the OBJECT IDENTIFIERs for DILITHIUM - // -- if (alg_len >= ber_idDilithiumLen) { -- if (memcmp(alg, ber_idDilithium, ber_idDilithiumLen) == 0) { -+ for (i = 0; dilithium_oids[i].oid != NULL; i++) { -+ if (alg_len == dilithium_oids[i].oid_len + ber_NULLLen && -+ memcmp(alg, dilithium_oids[i].oid, -+ dilithium_oids[i].oid_len) == 0 && -+ memcmp(alg + dilithium_oids[i].oid_len, -+ ber_NULL, ber_NULLLen) == 0) { - *keytype = CKK_IBM_PQC_DILITHIUM; - return CKR_OK; - } -diff --git a/usr/lib/ep11_stdll/ep11_specific.c b/usr/lib/ep11_stdll/ep11_specific.c -index e3451163..45069ae8 100644 ---- a/usr/lib/ep11_stdll/ep11_specific.c -+++ b/usr/lib/ep11_stdll/ep11_specific.c -@@ -37,6 +37,7 @@ - #include "trace.h" - #include "ock_syslog.h" - #include "ec_defs.h" -+#include "pqc_defs.h" - #include "p11util.h" - #include "events.h" - #include "cfgparser.h" -@@ -3645,7 +3646,10 @@ static CK_RV import_IBM_Dilithium_key(STDLL_TokData_t *tokdata, SESSION *sess, - } - - /* Encode the public key */ -- rc = ber_encode_IBM_DilithiumPublicKey(0, &data, &data_len, rho, t1); -+ rc = ber_encode_IBM_DilithiumPublicKey(FALSE, &data, &data_len, -+ dilithium_r2_65, -+ dilithium_r2_65_len, -+ rho, t1); - if (rc != CKR_OK) { - TRACE_ERROR("%s public key import class=0x%lx rc=0x%lx " - "data_len=0x%lx\n", __func__, class, rc, data_len); -diff --git a/usr/lib/ep11_stdll/ep11_stdll.mk b/usr/lib/ep11_stdll/ep11_stdll.mk -index 9a8aa76a..11061f76 100644 ---- a/usr/lib/ep11_stdll/ep11_stdll.mk -+++ b/usr/lib/ep11_stdll/ep11_stdll.mk -@@ -43,7 +43,8 @@ opencryptoki_stdll_libpkcs11_ep11_la_SOURCES = usr/lib/common/asn1.c \ - usr/lib/ep11_stdll/ep11_specific.c \ - usr/lib/common/utility_common.c usr/lib/common/ec_supported.c \ - usr/lib/api/policyhelper.c usr/lib/config/configuration.c \ -- usr/lib/config/cfgparse.y usr/lib/config/cfglex.l -+ usr/lib/config/cfgparse.y usr/lib/config/cfglex.l \ -+ usr/lib/common/pqc_supported.c - - if ENABLE_LOCKS - opencryptoki_stdll_libpkcs11_ep11_la_SOURCES += \ -diff --git a/usr/lib/ica_s390_stdll/ica_s390_stdll.mk b/usr/lib/ica_s390_stdll/ica_s390_stdll.mk -index cb9d898f..f89cd343 100644 ---- a/usr/lib/ica_s390_stdll/ica_s390_stdll.mk -+++ b/usr/lib/ica_s390_stdll/ica_s390_stdll.mk -@@ -38,7 +38,7 @@ opencryptoki_stdll_libpkcs11_ica_la_SOURCES = \ - usr/lib/ica_s390_stdll/ica_specific.c usr/lib/common/dlist.c \ - usr/lib/common/mech_openssl.c \ - usr/lib/common/utility_common.c usr/lib/common/ec_supported.c \ -- usr/lib/api/policyhelper.c -+ usr/lib/api/policyhelper.c usr/lib/common/pqc_supported.c - - if ENABLE_LOCKS - opencryptoki_stdll_libpkcs11_ica_la_SOURCES += \ -diff --git a/usr/lib/icsf_stdll/icsf_stdll.mk b/usr/lib/icsf_stdll/icsf_stdll.mk -index ee83f674..ebf24290 100644 ---- a/usr/lib/icsf_stdll/icsf_stdll.mk -+++ b/usr/lib/icsf_stdll/icsf_stdll.mk -@@ -43,7 +43,7 @@ opencryptoki_stdll_libpkcs11_icsf_la_SOURCES = usr/lib/common/asn1.c \ - usr/lib/icsf_stdll/icsf_specific.c \ - usr/lib/icsf_stdll/icsf.c usr/lib/common/utility_common.c \ - usr/lib/common/ec_supported.c usr/lib/api/policyhelper.c \ -- usr/lib/config/configuration.c \ -+ usr/lib/config/configuration.c usr/lib/common/pqc_supported.c \ - usr/lib/config/cfgparse.y usr/lib/config/cfglex.l \ - usr/lib/common/mech_openssl.c - -diff --git a/usr/lib/soft_stdll/soft_stdll.mk b/usr/lib/soft_stdll/soft_stdll.mk -index 6cdf82b8..7a842ddc 100644 ---- a/usr/lib/soft_stdll/soft_stdll.mk -+++ b/usr/lib/soft_stdll/soft_stdll.mk -@@ -36,7 +36,7 @@ opencryptoki_stdll_libpkcs11_sw_la_SOURCES = \ - usr/lib/soft_stdll/soft_specific.c usr/lib/common/attributes.c \ - usr/lib/common/dlist.c usr/lib/common/mech_openssl.c \ - usr/lib/common/utility_common.c usr/lib/common/ec_supported.c \ -- usr/lib/api/policyhelper.c -+ usr/lib/api/policyhelper.c usr/lib/common/pqc_supported.c - - if ENABLE_LOCKS - opencryptoki_stdll_libpkcs11_sw_la_SOURCES += \ -diff --git a/usr/lib/tpm_stdll/tpm_stdll.mk b/usr/lib/tpm_stdll/tpm_stdll.mk -index 54551c1f..7fa18121 100644 ---- a/usr/lib/tpm_stdll/tpm_stdll.mk -+++ b/usr/lib/tpm_stdll/tpm_stdll.mk -@@ -38,7 +38,7 @@ opencryptoki_stdll_libpkcs11_tpm_la_SOURCES = \ - usr/lib/tpm_stdll/tpm_openssl.c usr/lib/tpm_stdll/tpm_util.c \ - usr/lib/common/dlist.c usr/lib/common/mech_openssl.c \ - usr/lib/common/utility_common.c usr/lib/common/ec_supported.c \ -- usr/lib/api/policyhelper.c -+ usr/lib/api/policyhelper.c usr/lib/common/pqc_supported.c - - if ENABLE_LOCKS - opencryptoki_stdll_libpkcs11_tpm_la_SOURCES += \ -diff --git a/usr/sbin/pkcscca/pkcscca.mk b/usr/sbin/pkcscca/pkcscca.mk -index 187a93f2..59300ef5 100644 ---- a/usr/sbin/pkcscca/pkcscca.mk -+++ b/usr/sbin/pkcscca/pkcscca.mk -@@ -41,7 +41,7 @@ usr_sbin_pkcscca_pkcscca_SOURCES = usr/lib/common/asn1.c \ - usr/lib/common/dlist.c usr/sbin/pkcscca/pkcscca.c \ - usr/lib/common/utility_common.c usr/lib/common/ec_supported.c \ - usr/lib/common/pin_prompt.c usr/lib/common/mech_openssl.c \ -- usr/lib/api/policyhelper.c -+ usr/lib/api/policyhelper.c usr/lib/common/pqc_supported.c - - nodist_usr_sbin_pkcscca_pkcscca_SOURCES = usr/lib/api/mechtable.c - --- -2.16.2.windows.1 - diff --git a/0020-COMMON-EP11-Add-CKA_VALUE-holding-SPKI-PKCS-8-of-key.patch b/0020-COMMON-EP11-Add-CKA_VALUE-holding-SPKI-PKCS-8-of-key.patch deleted file mode 100644 index 609a9d6..0000000 --- a/0020-COMMON-EP11-Add-CKA_VALUE-holding-SPKI-PKCS-8-of-key.patch +++ /dev/null @@ -1,815 +0,0 @@ -From 108b7ea5f8b8eedf3ad56b014b6807fc1a0c692c Mon Sep 17 00:00:00 2001 -From: Ingo Franzki -Date: Wed, 16 Feb 2022 16:20:41 +0100 -Subject: [PATCH 20/34] COMMON/EP11: Add CKA_VALUE holding SPKI/PKCS#8 of key - for Dilithium keys - -Signed-off-by: Ingo Franzki ---- - usr/lib/common/asn1.c | 41 ++++++- - usr/lib/common/h_extern.h | 11 +- - usr/lib/common/key.c | 167 +++++++++++++++++++++---- - usr/lib/ep11_stdll/ep11_specific.c | 245 ++++++++++++++----------------------- - 4 files changed, 274 insertions(+), 190 deletions(-) - -diff --git a/usr/lib/common/asn1.c b/usr/lib/common/asn1.c -index 884ef489..dbf06dfd 100644 ---- a/usr/lib/common/asn1.c -+++ b/usr/lib/common/asn1.c -@@ -3787,10 +3787,12 @@ error: - CK_RV ber_decode_IBM_DilithiumPublicKey(CK_BYTE *data, - CK_ULONG data_len, - CK_ATTRIBUTE **rho_attr, -- CK_ATTRIBUTE **t1_attr) -+ CK_ATTRIBUTE **t1_attr, -+ CK_ATTRIBUTE **value_attr) - { - CK_ATTRIBUTE *rho_attr_temp = NULL; - CK_ATTRIBUTE *t1_attr_temp = NULL; -+ CK_ATTRIBUTE *value_attr_temp = NULL; - - CK_BYTE *algoid = NULL; - CK_ULONG algoid_len; -@@ -3804,7 +3806,7 @@ CK_RV ber_decode_IBM_DilithiumPublicKey(CK_BYTE *data, - CK_ULONG rho_len; - CK_BYTE *t1; - CK_ULONG t1_len; -- CK_ULONG field_len, offset; -+ CK_ULONG field_len, offset, raw_spki_len; - CK_RV rc; - - UNUSED(data_len); // XXX can this parameter be removed ? -@@ -3866,8 +3868,21 @@ CK_RV ber_decode_IBM_DilithiumPublicKey(CK_BYTE *data, - goto cleanup; - } - -+ /* Add raw SPKI as CKA_VALUE to public key (z/OS ICSF compatibility) */ -+ rc = ber_decode_SEQUENCE(data, &val, &val_len, &raw_spki_len); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("%s ber_decode_SEQUENCE failed with rc=0x%lx\n", __func__, rc); -+ goto cleanup; -+ } -+ rc = build_attribute(CKA_VALUE, data, raw_spki_len, &value_attr_temp); -+ if (rc != CKR_OK) { -+ TRACE_DEVEL("build_attribute failed\n"); -+ goto cleanup; -+ } -+ - *rho_attr = rho_attr_temp; - *t1_attr = t1_attr_temp; -+ *value_attr = value_attr_temp; - - return CKR_OK; - -@@ -3876,6 +3891,8 @@ cleanup: - free(rho_attr_temp); - if (t1_attr_temp) - free(t1_attr_temp); -+ if (value_attr_temp) -+ free(value_attr_temp); - - return rc; - } -@@ -4137,11 +4154,12 @@ CK_RV ber_decode_IBM_DilithiumPrivateKey(CK_BYTE *data, - CK_ATTRIBUTE **s1, - CK_ATTRIBUTE **s2, - CK_ATTRIBUTE **t0, -- CK_ATTRIBUTE **t1) -+ CK_ATTRIBUTE **t1, -+ CK_ATTRIBUTE **value) - { - CK_ATTRIBUTE *rho_attr = NULL, *seed_attr = NULL; - CK_ATTRIBUTE *tr_attr = NULL, *s1_attr = NULL, *s2_attr = NULL; -- CK_ATTRIBUTE *t0_attr = NULL, *t1_attr = NULL; -+ CK_ATTRIBUTE *t0_attr = NULL, *t1_attr = NULL, *value_attr = NULL; - CK_BYTE *algoid = NULL; - CK_BYTE *dilithium_priv_key = NULL; - CK_BYTE *buf = NULL; -@@ -4314,6 +4332,18 @@ CK_RV ber_decode_IBM_DilithiumPrivateKey(CK_BYTE *data, - goto cleanup; - } - -+ /* Add private key as CKA_VALUE to public key (z/OS ICSF compatibility) */ -+ rc = ber_decode_SEQUENCE(data, &tmp, &len, &field_len); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("%s ber_decode_SEQUENCE failed with rc=0x%lx\n", __func__, rc); -+ goto cleanup; -+ } -+ rc = build_attribute(CKA_VALUE, data, field_len, &value_attr); -+ if (rc != CKR_OK) { -+ TRACE_DEVEL("build_attribute for (t1) failed\n"); -+ goto cleanup; -+ } -+ - *rho = rho_attr; - *seed = seed_attr; - *tr = tr_attr; -@@ -4321,6 +4351,7 @@ CK_RV ber_decode_IBM_DilithiumPrivateKey(CK_BYTE *data, - *s2 = s2_attr; - *t0 = t0_attr; - *t1 = t1_attr; -+ *value = value_attr; - - return CKR_OK; - -@@ -4340,6 +4371,8 @@ cleanup: - free(s2_attr); - if (t0_attr) - free(t0_attr); -+ if (value_attr) -+ free(value_attr); - - return rc; - } -diff --git a/usr/lib/common/h_extern.h b/usr/lib/common/h_extern.h -index 41ca12df..53909e99 100644 ---- a/usr/lib/common/h_extern.h -+++ b/usr/lib/common/h_extern.h -@@ -2500,9 +2500,10 @@ CK_RV ibm_dilithium_priv_validate_attribute(STDLL_TokData_t *tokdata, TEMPLATE * - CK_RV ibm_dilithium_priv_wrap_get_data(TEMPLATE *tmpl, CK_BBOOL length_only, - CK_BYTE **data, CK_ULONG *data_len); - CK_RV ibm_dilithium_priv_unwrap(TEMPLATE *tmpl, CK_BYTE *data, -- CK_ULONG total_length); -+ CK_ULONG total_length, CK_BBOOL add_value); - CK_RV ibm_dilithium_priv_unwrap_get_data(TEMPLATE *tmpl, -- CK_BYTE *data, CK_ULONG total_length); -+ CK_BYTE *data, CK_ULONG total_length, -+ CK_BBOOL add_value); - - // diffie-hellman routines - // -@@ -2748,7 +2749,8 @@ CK_RV ber_encode_IBM_DilithiumPublicKey(CK_BBOOL length_only, - CK_RV ber_decode_IBM_DilithiumPublicKey(CK_BYTE *data, - CK_ULONG data_len, - CK_ATTRIBUTE **rho_attr, -- CK_ATTRIBUTE **t1_attr); -+ CK_ATTRIBUTE **t1_attr, -+ CK_ATTRIBUTE **value_attr); - - CK_RV ber_encode_IBM_DilithiumPrivateKey(CK_BBOOL length_only, - CK_BYTE **data, -@@ -2770,7 +2772,8 @@ CK_RV ber_decode_IBM_DilithiumPrivateKey(CK_BYTE *data, - CK_ATTRIBUTE **s1, - CK_ATTRIBUTE **s2, - CK_ATTRIBUTE **t0, -- CK_ATTRIBUTE **t1); -+ CK_ATTRIBUTE **t1, -+ CK_ATTRIBUTE **value); - - typedef CK_RV (*t_rsa_encrypt)(STDLL_TokData_t *, CK_BYTE *in_data, - CK_ULONG in_data_len, CK_BYTE *out_data, -diff --git a/usr/lib/common/key.c b/usr/lib/common/key.c -index 41857b97..b0050816 100644 ---- a/usr/lib/common/key.c -+++ b/usr/lib/common/key.c -@@ -1051,7 +1051,7 @@ CK_RV priv_key_unwrap(TEMPLATE *tmpl, - rc = ec_priv_unwrap(tmpl, data, data_len); - break; - case CKK_IBM_PQC_DILITHIUM: -- rc = ibm_dilithium_priv_unwrap(tmpl, data, data_len); -+ rc = ibm_dilithium_priv_unwrap(tmpl, data, data_len, TRUE); - break; - default: - TRACE_ERROR("%s\n", ock_err(ERR_WRAPPED_KEY_INVALID)); -@@ -2781,13 +2781,16 @@ CK_RV ibm_dilithium_priv_wrap_get_data(TEMPLATE *tmpl, - } - - CK_RV ibm_dilithium_priv_unwrap_get_data(TEMPLATE *tmpl, CK_BYTE *data, -- CK_ULONG total_length) -+ CK_ULONG total_length, -+ CK_BBOOL add_value) - { - CK_ATTRIBUTE *rho = NULL; - CK_ATTRIBUTE *t1 = NULL; -+ CK_ATTRIBUTE *value = NULL; - CK_RV rc; - -- rc = ber_decode_IBM_DilithiumPublicKey(data, total_length, &rho, &t1); -+ rc = ber_decode_IBM_DilithiumPublicKey(data, total_length, &rho, &t1, -+ &value); - if (rc != CKR_OK) { - TRACE_ERROR("ber_decode_DilithiumPublicKey failed\n"); - return rc; -@@ -2805,6 +2808,16 @@ CK_RV ibm_dilithium_priv_unwrap_get_data(TEMPLATE *tmpl, CK_BYTE *data, - goto error; - } - t1 = NULL; -+ if (add_value) { -+ rc = template_update_attribute(tmpl, value); -+ if (rc != CKR_OK) { -+ TRACE_DEVEL("template_update_attribute failed.\n"); -+ goto error; -+ } -+ } else { -+ free(value); -+ } -+ value = NULL; - - return CKR_OK; - -@@ -2813,6 +2826,8 @@ error: - free(rho); - if (t1) - free(t1); -+ if (value) -+ free(value); - - return rc; - } -@@ -2820,14 +2835,15 @@ error: - // - // - CK_RV ibm_dilithium_priv_unwrap(TEMPLATE *tmpl, CK_BYTE *data, -- CK_ULONG total_length) -+ CK_ULONG total_length, CK_BBOOL add_value) - { -- CK_ATTRIBUTE *rho = NULL, *seed = NULL, *tr = NULL; -+ CK_ATTRIBUTE *rho = NULL, *seed = NULL, *tr = NULL, *value = NULL; - CK_ATTRIBUTE *s1 = NULL, *s2 = NULL, *t0 = NULL, *t1 = NULL; - CK_RV rc; - - rc = ber_decode_IBM_DilithiumPrivateKey(data, total_length, -- &rho, &seed, &tr, &s1, &s2, &t0, &t1); -+ &rho, &seed, &tr, &s1, &s2, &t0, -+ &t1, &value); - if (rc != CKR_OK) { - TRACE_ERROR("der_decode_IBM_DilithiumPrivateKey failed\n"); - return rc; -@@ -2877,6 +2893,16 @@ CK_RV ibm_dilithium_priv_unwrap(TEMPLATE *tmpl, CK_BYTE *data, - } - } - t1 = NULL; -+ if (add_value) { -+ rc = template_update_attribute(tmpl, value); -+ if (rc != CKR_OK) { -+ TRACE_DEVEL("template_update_attribute failed.\n"); -+ goto error; -+ } -+ } else { -+ free(value); -+ } -+ value = NULL; - - return CKR_OK; - -@@ -2895,6 +2921,8 @@ error: - free(t0); - if (t1) - free(t1); -+ if (value) -+ free(value); - - return rc; - } -@@ -4633,6 +4661,7 @@ CK_RV ibm_dilithium_publ_set_default_attributes(TEMPLATE *tmpl, CK_ULONG mode) - CK_ATTRIBUTE *rho_attr = NULL; - CK_ATTRIBUTE *t1_attr = NULL; - CK_ATTRIBUTE *keyform_attr = NULL; -+ CK_ATTRIBUTE *value_attr = NULL; - CK_RV rc; - - publ_key_set_default_attributes(tmpl, mode); -@@ -4641,8 +4670,9 @@ CK_RV ibm_dilithium_publ_set_default_attributes(TEMPLATE *tmpl, CK_ULONG mode) - keyform_attr = (CK_ATTRIBUTE *) malloc(sizeof(CK_ATTRIBUTE) + sizeof(CK_ULONG)); - rho_attr = (CK_ATTRIBUTE *) malloc(sizeof(CK_ATTRIBUTE)); - t1_attr = (CK_ATTRIBUTE *) malloc(sizeof(CK_ATTRIBUTE)); -+ value_attr = (CK_ATTRIBUTE *) malloc(sizeof(CK_ATTRIBUTE)); - -- if (!type_attr || !rho_attr || !t1_attr || !keyform_attr) { -+ if (!type_attr || !rho_attr || !t1_attr || !keyform_attr || !value_attr) { - TRACE_ERROR("%s\n", ock_err(ERR_HOST_MEMORY)); - rc = CKR_HOST_MEMORY; - goto error; -@@ -4666,6 +4696,10 @@ CK_RV ibm_dilithium_publ_set_default_attributes(TEMPLATE *tmpl, CK_ULONG mode) - t1_attr->ulValueLen = 0; - t1_attr->pValue = NULL; - -+ value_attr->type = CKA_VALUE; -+ value_attr->ulValueLen = 0; -+ value_attr->pValue = NULL; -+ - rc = template_update_attribute(tmpl, type_attr); - if (rc != CKR_OK) { - TRACE_ERROR("template_update_attribute failed\n"); -@@ -4690,6 +4724,12 @@ CK_RV ibm_dilithium_publ_set_default_attributes(TEMPLATE *tmpl, CK_ULONG mode) - goto error; - } - keyform_attr = NULL; -+ rc = template_update_attribute(tmpl, value_attr); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("template_update_attribute failed\n"); -+ goto error; -+ } -+ value_attr = NULL; - - return CKR_OK; - -@@ -4702,6 +4742,8 @@ error: - free(t1_attr); - if (keyform_attr) - free(keyform_attr); -+ if (value_attr) -+ free(value_attr); - - return rc; - } -@@ -4719,6 +4761,7 @@ CK_RV ibm_dilithium_priv_set_default_attributes(TEMPLATE *tmpl, CK_ULONG mode) - CK_ATTRIBUTE *t0_attr = NULL; - CK_ATTRIBUTE *t1_attr = NULL; - CK_ATTRIBUTE *keyform_attr = NULL; -+ CK_ATTRIBUTE *value_attr = NULL; - CK_RV rc; - - priv_key_set_default_attributes(tmpl, mode); -@@ -4732,9 +4775,10 @@ CK_RV ibm_dilithium_priv_set_default_attributes(TEMPLATE *tmpl, CK_ULONG mode) - s2_attr = (CK_ATTRIBUTE *) malloc(sizeof(CK_ATTRIBUTE)); - t0_attr = (CK_ATTRIBUTE *) malloc(sizeof(CK_ATTRIBUTE)); - t1_attr = (CK_ATTRIBUTE *) malloc(sizeof(CK_ATTRIBUTE)); -+ value_attr = (CK_ATTRIBUTE *) malloc(sizeof(CK_ATTRIBUTE)); - - if (!type_attr || !rho_attr || !seed_attr || !tr_attr || !s1_attr -- || !s2_attr || !t0_attr || !t1_attr || !keyform_attr) { -+ || !s2_attr || !t0_attr || !t1_attr || !keyform_attr || !value_attr) { - TRACE_ERROR("%s\n", ock_err(ERR_HOST_MEMORY)); - rc = CKR_HOST_MEMORY; - goto error; -@@ -4778,6 +4822,10 @@ CK_RV ibm_dilithium_priv_set_default_attributes(TEMPLATE *tmpl, CK_ULONG mode) - t1_attr->ulValueLen = 0; - t1_attr->pValue = NULL; - -+ value_attr->type = CKA_VALUE; -+ value_attr->ulValueLen = 0; -+ value_attr->pValue = NULL; -+ - rc = template_update_attribute(tmpl, type_attr); - if (rc != CKR_OK) { - TRACE_ERROR("template_update_attribute failed\n"); -@@ -4832,6 +4880,12 @@ CK_RV ibm_dilithium_priv_set_default_attributes(TEMPLATE *tmpl, CK_ULONG mode) - goto error; - } - t1_attr = NULL; -+ rc = template_update_attribute(tmpl, value_attr); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("template_update_attribute failed\n"); -+ goto error; -+ } -+ value_attr = NULL; - - return CKR_OK; - -@@ -4854,6 +4908,8 @@ error: - free(t1_attr); - if (keyform_attr) - free(keyform_attr); -+ if (value_attr) -+ free(value_attr); - - return rc; - } -@@ -4869,18 +4925,46 @@ CK_RV ibm_dilithium_publ_check_required_attributes(TEMPLATE *tmpl, CK_ULONG mode - CKA_IBM_DILITHIUM_T1, - }; - CK_ULONG i; -+ CK_RV rc; - -- /* MODE_KEYGEN: attrs are added during keygen */ -- if (mode == MODE_KEYGEN || mode == MODE_UNWRAP) -- return publ_key_check_required_attributes(tmpl, mode); -- -- /* MODE_CREATE (key import) or MODE_COPY: check if all attrs present */ -- for (i = 0; i < sizeof(req_attrs) / sizeof(req_attrs[0]); i++) { -- if (!(template_attribute_find(tmpl, req_attrs[i], &attr))) { -- TRACE_ERROR("%s, attribute %08lX missing.\n", -- ock_err(ERR_TEMPLATE_INCOMPLETE), req_attrs[i]); -+ switch (mode) { -+ case MODE_KEYGEN: -+ case MODE_UNWRAP: -+ /* Attrs will be added during keygen/unwrap */ -+ break; -+ case MODE_CREATE: -+ /* Either CKA_VALUE or all other attrs must be present */ -+ if (template_attribute_find(tmpl, CKA_VALUE, &attr) && -+ attr->ulValueLen > 0 && attr->pValue != NULL) -+ break; -+ for (i = 0; i < sizeof(req_attrs) / sizeof(req_attrs[0]); i++) { -+ rc = template_attribute_get_non_empty(tmpl, req_attrs[i], &attr); -+ if (rc != CKR_OK) { -+ if (rc != CKR_ATTRIBUTE_VALUE_INVALID) -+ TRACE_ERROR("%s, attribute %08lX missing.\n", -+ ock_err(ERR_TEMPLATE_INCOMPLETE), req_attrs[i]); -+ return rc; -+ } -+ } -+ break; -+ case MODE_COPY: -+ /* CKA_VALUE and all other attrs must be present */ -+ if (!template_attribute_find(tmpl, CKA_VALUE, &attr) && -+ attr->ulValueLen > 0 && attr->pValue != NULL) { -+ TRACE_ERROR("%s, attribute CKA_VALUE missing.\n", -+ ock_err(ERR_TEMPLATE_INCOMPLETE)); - return CKR_TEMPLATE_INCOMPLETE; - } -+ for (i = 0; i < sizeof(req_attrs) / sizeof(req_attrs[0]); i++) { -+ rc = template_attribute_get_non_empty(tmpl, req_attrs[i], &attr); -+ if (rc != CKR_OK) { -+ if (rc != CKR_ATTRIBUTE_VALUE_INVALID) -+ TRACE_ERROR("%s, attribute %08lX missing.\n", -+ ock_err(ERR_TEMPLATE_INCOMPLETE), req_attrs[i]); -+ return rc; -+ } -+ } -+ break; - } - - /* All required attrs found, check them */ -@@ -4903,18 +4987,47 @@ CK_RV ibm_dilithium_priv_check_required_attributes(TEMPLATE *tmpl, CK_ULONG mode - CKA_IBM_DILITHIUM_T1, - }; - CK_ULONG i; -+ CK_RV rc; - -- /* MODE_KEYGEN: attrs are added during keygen */ -- if (mode == MODE_KEYGEN || mode == MODE_UNWRAP) -- return priv_key_check_required_attributes(tmpl, mode); -- -- /* MODE_CREATE (key import) or MODE_COPY: check if all attrs present */ -- for (i = 0; i < sizeof(req_attrs) / sizeof(req_attrs[0]); i++) { -- if (!(template_attribute_find(tmpl, req_attrs[i], &attr))) { -- TRACE_ERROR("%s, attribute %08lX missing.\n", -- ock_err(ERR_TEMPLATE_INCOMPLETE), req_attrs[i]); -+ switch (mode) { -+ case MODE_KEYGEN: -+ case MODE_UNWRAP: -+ /* Attrs will be added during keygen/unwrap */ -+ break; -+ case MODE_CREATE: -+ /* Either CKA_VALUE or all other attrs must be present */ -+ if (template_attribute_find(tmpl, CKA_VALUE, &attr) && -+ attr->ulValueLen > 0 && attr->pValue != NULL) -+ break; -+ for (i = 0; i < sizeof(req_attrs) / sizeof(req_attrs[0]); i++) { -+ rc = template_attribute_get_non_empty(tmpl, req_attrs[i], &attr); -+ if (rc != CKR_OK) { -+ if (rc != CKR_ATTRIBUTE_VALUE_INVALID) -+ TRACE_ERROR("%s, attribute %08lX missing.\n", -+ ock_err(ERR_TEMPLATE_INCOMPLETE), req_attrs[i]); -+ return rc; -+ } -+ } -+ break; -+ case MODE_COPY: -+ /* CKA_VALUE and all other attrs must be present */ -+ if (!template_attribute_find(tmpl, CKA_VALUE, &attr) && -+ attr->ulValueLen > 0 && attr->pValue != NULL) { -+ TRACE_ERROR("%s, attribute CKA_VALUE missing.\n", -+ ock_err(ERR_TEMPLATE_INCOMPLETE)); - return CKR_TEMPLATE_INCOMPLETE; -+ -+ } -+ for (i = 0; i < sizeof(req_attrs) / sizeof(req_attrs[0]); i++) { -+ rc = template_attribute_get_non_empty(tmpl, req_attrs[i], &attr); -+ if (rc != CKR_OK) { -+ if (rc != CKR_ATTRIBUTE_VALUE_INVALID) -+ TRACE_ERROR("%s, attribute %08lX missing.\n", -+ ock_err(ERR_TEMPLATE_INCOMPLETE), req_attrs[i]); -+ return rc; -+ } - } -+ break; - } - - /* All required attrs found, check them */ -@@ -4930,6 +5043,7 @@ CK_RV ibm_dilithium_publ_validate_attribute(STDLL_TokData_t *tokdata, - switch (attr->type) { - case CKA_IBM_DILITHIUM_RHO: - case CKA_IBM_DILITHIUM_T1: -+ case CKA_VALUE: - if (mode == MODE_CREATE) - return CKR_OK; - TRACE_ERROR("%s\n", ock_err(ERR_ATTRIBUTE_READ_ONLY)); -@@ -4969,6 +5083,7 @@ CK_RV ibm_dilithium_priv_validate_attribute(STDLL_TokData_t *tokdata, - case CKA_IBM_DILITHIUM_S2: - case CKA_IBM_DILITHIUM_T0: - case CKA_IBM_DILITHIUM_T1: -+ case CKA_VALUE: - if (mode == MODE_CREATE) - return CKR_OK; - TRACE_ERROR("%s\n", ock_err(ERR_ATTRIBUTE_READ_ONLY)); -diff --git a/usr/lib/ep11_stdll/ep11_specific.c b/usr/lib/ep11_stdll/ep11_specific.c -index 45069ae8..9221b8cd 100644 ---- a/usr/lib/ep11_stdll/ep11_specific.c -+++ b/usr/lib/ep11_stdll/ep11_specific.c -@@ -3585,6 +3585,8 @@ static CK_RV import_IBM_Dilithium_key(STDLL_TokData_t *tokdata, SESSION *sess, - unsigned char *ep11_pin_blob = NULL; - CK_ULONG ep11_pin_blob_len = 0; - ep11_session_t *ep11_session = (ep11_session_t *) sess->private_data; -+ CK_ATTRIBUTE *value_attr = NULL; -+ CK_BBOOL data_alloced = TRUE; - - memcpy(iv, "1234567812345678", AES_BLOCK_SIZE); - -@@ -3606,57 +3608,55 @@ static CK_RV import_IBM_Dilithium_key(STDLL_TokData_t *tokdata, SESSION *sess, - goto done; - - if (class != CKO_PRIVATE_KEY) { -- - /* Make an SPKI for the public IBM Dilithium key */ -- CK_ULONG keyform; -- CK_ATTRIBUTE *rho; -- CK_ATTRIBUTE *t1; -- -- /* A public IBM Dilithium key must have a keyform value */ -- rc = template_attribute_get_ulong(dilithium_key_obj->template, -- CKA_IBM_DILITHIUM_KEYFORM, -- &keyform); -- if (rc != CKR_OK) { -- TRACE_ERROR("Could not find CKA_IBM_DILITHIUM_KEYFORM for the " -- "key.\n"); -- goto done; -- } -- -- /* Check if it's an expected keyform */ -- if (keyform != IBM_DILITHIUM_KEYFORM_ROUND2) { -- TRACE_ERROR("Keyform is not supported\n"); -- rc = CKR_TEMPLATE_INCONSISTENT; -- goto done; -- } - -- /* A public IBM Dilithium key must have a rho value */ -- rc = template_attribute_get_non_empty(dilithium_key_obj->template, -- CKA_IBM_DILITHIUM_RHO, &rho); -- if (rc != CKR_OK) { -- TRACE_ERROR("Could not find CKA_IBM_DILITHIUM_RHO for the key.\n"); -- goto done; -- } -+ /* A public IBM Dilithium key must either have a CKA_VALUE containing -+ * the SPKI, or must have a keyform value and the individual attributes -+ */ -+ if (template_attribute_find(dilithium_key_obj->template, -+ CKA_VALUE, &value_attr) && -+ value_attr->ulValueLen > 0 && value_attr ->pValue != NULL) { -+ /* CKA_VALUE with SPKI */ -+ data = value_attr ->pValue; -+ data_len = value_attr->ulValueLen; -+ data_alloced = FALSE; -+ -+ /* Decode SPKI and add public key attributes */ -+ rc = ibm_dilithium_priv_unwrap_get_data(dilithium_key_obj->template, -+ data, data_len, FALSE); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("Failed to decode SPKI from CKA_VALUE.\n"); -+ goto done; -+ } -+ } else { -+ /* Individual attributes */ -+ rc = ibm_dilithium_publ_get_spki(dilithium_key_obj->template, -+ FALSE, &data, &data_len); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("%s public key import class=0x%lx rc=0x%lx " -+ "data_len=0x%lx\n", __func__, class, rc, data_len); -+ goto done; -+ } else { -+ TRACE_INFO("%s public key import class=0x%lx rc=0x%lx " -+ "data_len=0x%lx\n", __func__, class, rc, data_len); -+ } - -- /* A public IBM Dilithium key must have a t1 value */ -- rc = template_attribute_get_non_empty(dilithium_key_obj->template, -- CKA_IBM_DILITHIUM_T1, &t1); -- if (rc != CKR_OK) { -- TRACE_ERROR("Could not find CKA_IBM_DILITHIUM_T1 for the key.\n"); -- goto done; -- } -+ /* Add SPKI as CKA_VALUE to public key (z/OS ICSF compatibility) */ -+ rc = build_attribute(CKA_VALUE, data, data_len, &value_attr); -+ if (rc != CKR_OK) { -+ TRACE_DEVEL("build_attribute failed\n"); -+ goto done; -+ } - -- /* Encode the public key */ -- rc = ber_encode_IBM_DilithiumPublicKey(FALSE, &data, &data_len, -- dilithium_r2_65, -- dilithium_r2_65_len, -- rho, t1); -- if (rc != CKR_OK) { -- TRACE_ERROR("%s public key import class=0x%lx rc=0x%lx " -- "data_len=0x%lx\n", __func__, class, rc, data_len); -- goto done; -- } else { -- TRACE_INFO("%s public key import class=0x%lx rc=0x%lx " -- "data_len=0x%lx\n", __func__, class, rc, data_len); -+ rc = template_update_attribute(dilithium_key_obj->template, -+ value_attr); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("%s template_update_attribute failed with rc=0x%lx\n", -+ __func__, rc); -+ free(value_attr); -+ goto done; -+ } -+ value_attr = NULL; - } - - /* save the SPKI as blob although it is not a blob. -@@ -3676,14 +3676,35 @@ static CK_RV import_IBM_Dilithium_key(STDLL_TokData_t *tokdata, SESSION *sess, - - /* imported private IBM Dilithium key goes here */ - -- /* extract the secret data to be wrapped -- * since this is AES_CBC_PAD, padding is done in mechanism. -+ /* A public IBM Dilithium key must either have a CKA_VALUE containing -+ * the PKCS#8 encoded private key, or must have a keyform value and the -+ * individual attributes - */ -- rc = ibm_dilithium_priv_wrap_get_data(dilithium_key_obj->template, FALSE, -- &data, &data_len); -- if (rc != CKR_OK) { -- TRACE_DEVEL("%s Dilithium wrap get data failed\n", __func__); -- goto done; -+ if (template_attribute_find(dilithium_key_obj->template, -+ CKA_VALUE, &value_attr) && -+ value_attr->ulValueLen > 0 && value_attr ->pValue != NULL) { -+ /* CKA_VALUE with SPKI */ -+ data = value_attr ->pValue; -+ data_len = value_attr->ulValueLen; -+ data_alloced = FALSE; -+ -+ /* Decode PKCS#8 private key and add key attributes */ -+ rc = ibm_dilithium_priv_unwrap(dilithium_key_obj->template, -+ data, data_len, FALSE); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("Failed to decode private key from CKA_VALUE.\n"); -+ goto done; -+ } -+ } else { -+ /* extract the secret data to be wrapped -+ * since this is AES_CBC_PAD, padding is done in mechanism. -+ */ -+ rc = ibm_dilithium_priv_wrap_get_data(dilithium_key_obj->template, -+ FALSE, &data, &data_len); -+ if (rc != CKR_OK) { -+ TRACE_DEVEL("%s Dilithium wrap get data failed\n", __func__); -+ goto done; -+ } - } - - /* encrypt */ -@@ -3743,10 +3764,15 @@ static CK_RV import_IBM_Dilithium_key(STDLL_TokData_t *tokdata, SESSION *sess, - } - - cleanse_attribute(dilithium_key_obj->template, CKA_VALUE); -+ cleanse_attribute(dilithium_key_obj->template, CKA_IBM_DILITHIUM_SEED); -+ cleanse_attribute(dilithium_key_obj->template, CKA_IBM_DILITHIUM_TR); -+ cleanse_attribute(dilithium_key_obj->template, CKA_IBM_DILITHIUM_S1); -+ cleanse_attribute(dilithium_key_obj->template, CKA_IBM_DILITHIUM_S2); -+ cleanse_attribute(dilithium_key_obj->template, CKA_IBM_DILITHIUM_T0); - } - - done: -- if (data) { -+ if (data_alloced && data) { - OPENSSL_cleanse(data, data_len); - free(data); - } -@@ -6422,16 +6448,10 @@ static CK_RV ibm_dilithium_generate_keypair(STDLL_TokData_t *tokdata, - size_t privkey_blob_len = sizeof(privkey_blob); - unsigned char spki[MAX_BLOBSIZE]; - size_t spki_len = sizeof(spki); -- CK_ULONG bit_str_len; -- CK_BYTE *key; -- CK_BYTE *data, *oid, *parm; -- CK_ULONG data_len, oid_len, parm_len; -- CK_ULONG field_len; - CK_ULONG ktype = CKK_IBM_PQC_DILITHIUM; - unsigned char *ep11_pin_blob = NULL; - CK_ULONG ep11_pin_blob_len = 0; - ep11_session_t *ep11_session = (ep11_session_t *) sess->private_data; -- CK_BYTE *rho, *t1; - CK_ATTRIBUTE *new_publ_attrs = NULL, *new_priv_attrs = NULL; - CK_ULONG new_publ_attrs_len = 0, new_priv_attrs_len = 0; - CK_ATTRIBUTE *new_publ_attrs2 = NULL, *new_priv_attrs2 = NULL; -@@ -6567,105 +6587,17 @@ static CK_RV ibm_dilithium_generate_keypair(STDLL_TokData_t *tokdata, - goto error; - } - -- /* Decode SPKI */ -- rc = ber_decode_SPKI(spki, &oid, &oid_len, &parm, &parm_len, &key, -- &bit_str_len); -- if (rc != CKR_OK) { -- TRACE_ERROR("%s read key from SPKI failed with rc=0x%lx\n", __func__, -- rc); -- goto error; -- } -- -- /* Public key must be a sequence holding two bit-strings: (rho, t1) */ -- rc = ber_decode_SEQUENCE(key, &data, &data_len, &field_len); -+ rc = ibm_dilithium_priv_unwrap_get_data(publ_tmpl, spki, spki_len, TRUE); - if (rc != CKR_OK) { -- TRACE_ERROR("%s read sequence failed with rc=0x%lx\n", __func__, rc); -- goto error; -- } -- -- /* Decode rho */ -- rho = key + field_len - data_len; -- rc = ber_decode_BIT_STRING(rho, &data, &data_len, &field_len); -- if (rc != CKR_OK) { -- TRACE_ERROR("%s read rho failed with rc=0x%lx\n", __func__, rc); -- goto error; -- } -- /* Remove leading unused-bits byte, returned by ber_decode_BIT_STRING */ -- data++; -- data_len--; --#ifdef DEBUG -- TRACE_DEBUG("%s dilithium_generate_keypair (rho):\n", __func__); -- TRACE_DEBUG_DUMP(" ", data, data_len); --#endif -- -- /* build and add CKA_IBM_DILITHIUM_RHO for public key */ -- rc = build_attribute(CKA_IBM_DILITHIUM_RHO, data, data_len, &attr); -- if (rc != CKR_OK) { -- TRACE_ERROR("%s build_attribute failed with rc=0x%lx\n", __func__, rc); -- goto error; -- } -- rc = template_update_attribute(publ_tmpl, attr); -- if (rc != CKR_OK) { -- TRACE_ERROR("%s template_update_attribute failed with rc=0x%lx\n", -- __func__, rc); -- free(attr); -- goto error; -- } -- -- /* build and add CKA_IBM_DILITHIUM_RHO for private key */ -- rc = build_attribute(CKA_IBM_DILITHIUM_RHO, data, data_len, &attr); -- if (rc != CKR_OK) { -- TRACE_ERROR("%s build_attribute failed with rc=0x%lx\n", __func__, rc); -- goto error; -- } -- rc = template_update_attribute(priv_tmpl, attr); -- if (rc != CKR_OK) { -- TRACE_ERROR("%s template_update_attribute failed with rc=0x%lx\n", -- __func__, rc); -- free(attr); -- goto error; -- } -- -- /* Decode t1 */ -- t1 = rho + field_len; -- rc = ber_decode_BIT_STRING(t1, &data, &data_len, &field_len); -- if (rc != CKR_OK) { -- TRACE_ERROR("%s read t failed with rc=0x%lx\n", __func__, rc); -- goto error; -- } -- /* Remove leading unused-bits byte, returned by ber_decode_BIT_STRING */ -- data++; -- data_len--; --#ifdef DEBUG -- TRACE_DEBUG("%s dilithium_generate_keypair (t1):\n", __func__); -- TRACE_DEBUG_DUMP(" ", data, data_len); --#endif -- -- /* build and add CKA_IBM_DILITHIUM_T1 for public key */ -- rc = build_attribute(CKA_IBM_DILITHIUM_T1, data, data_len, &attr); -- if (rc != CKR_OK) { -- TRACE_ERROR("%s build_attribute failed with rc=0x%lx\n", __func__, rc); -- goto error; -- } -- rc = template_update_attribute(publ_tmpl, attr); -- if (rc != CKR_OK) { -- TRACE_ERROR("%s template_update_attribute failed with rc=0x%lx\n", -- __func__, rc); -- free(attr); -+ TRACE_ERROR("%s ibm_dilithium_priv_unwrap_get_data with rc=0x%lx\n", -+ __func__, rc); - goto error; - } - -- /* build and add CKA_IBM_DILITHIUM_T1 for private key */ -- rc = build_attribute(CKA_IBM_DILITHIUM_T1, data, data_len, &attr); -- if (rc != CKR_OK) { -- TRACE_ERROR("%s build_attribute failed with rc=0x%lx\n", __func__, rc); -- goto error; -- } -- rc = template_update_attribute(priv_tmpl, attr); -+ rc = ibm_dilithium_priv_unwrap_get_data(priv_tmpl, spki, spki_len, FALSE); - if (rc != CKR_OK) { -- TRACE_ERROR("%s template_update_attribute failed with rc=0x%lx\n", -- __func__, rc); -- free(attr); -+ TRACE_ERROR("%s ibm_dilithium_priv_unwrap_get_data with rc=0x%lx\n", -+ __func__, rc); - goto error; - } - -@@ -9043,7 +8975,8 @@ CK_RV ep11tok_unwrap_key(STDLL_TokData_t * tokdata, SESSION * session, - rc = dh_priv_unwrap_get_data(key_obj->template, csum, cslen); - break; - case CKK_IBM_PQC_DILITHIUM: -- rc = ibm_dilithium_priv_unwrap_get_data(key_obj->template, csum, cslen); -+ rc = ibm_dilithium_priv_unwrap_get_data(key_obj->template, -+ csum, cslen, FALSE); - break; - } - --- -2.16.2.windows.1 - diff --git a/0021-COMMON-EP11-Allow-to-select-Dilithium-variant-via-mo.patch b/0021-COMMON-EP11-Allow-to-select-Dilithium-variant-via-mo.patch deleted file mode 100644 index dd764d3..0000000 --- a/0021-COMMON-EP11-Allow-to-select-Dilithium-variant-via-mo.patch +++ /dev/null @@ -1,994 +0,0 @@ -From 57cd8cd4db0d68c08b123b669f1cf57bed0fe34d Mon Sep 17 00:00:00 2001 -From: Ingo Franzki -Date: Thu, 17 Feb 2022 10:27:56 +0100 -Subject: [PATCH 21/34] COMMON/EP11: Allow to select Dilithium variant via mode - or key form attribute - -Attributes CKA_IBM_DILITHIUM_KEYFORM or CKA_IBM_DILITHIUM_MODE can -be used to select the Dilithium variant to use. - -Signed-off-by: Ingo Franzki ---- - testcases/common/common.c | 4 +- - usr/lib/common/asn1.c | 20 +- - usr/lib/common/h_extern.h | 11 +- - usr/lib/common/key.c | 443 +++++++++++++++++++++++-------------- - usr/lib/ep11_stdll/ep11_specific.c | 84 +++++-- - 5 files changed, 375 insertions(+), 187 deletions(-) - -diff --git a/testcases/common/common.c b/testcases/common/common.c -index 8ec5043b..fac9e4e6 100644 ---- a/testcases/common/common.c -+++ b/testcases/common/common.c -@@ -629,7 +629,7 @@ CK_RV create_DilithiumPrivateKey(CK_SESSION_HANDLE session, - CK_UTF8CHAR label[] = "A Dilithium private key object"; - CK_BYTE subject[] = {0}; - CK_BYTE id[] = { 123 }; -- CK_ULONG keyform = IBM_DILITHIUM_KEYFORM_ROUND2; -+ CK_ULONG keyform = CK_IBM_DILITHIUM_KEYFORM_ROUND2_65; - CK_RV rc; - - CK_BBOOL true = TRUE; -@@ -678,7 +678,7 @@ CK_RV create_DilithiumPublicKey(CK_SESSION_HANDLE session, - CK_KEY_TYPE keyType = CKK_IBM_PQC_DILITHIUM; - CK_UTF8CHAR label[] = "A Dilithium public key object"; - CK_BBOOL true = TRUE; -- CK_ULONG keyform = IBM_DILITHIUM_KEYFORM_ROUND2; -+ CK_ULONG keyform = CK_IBM_DILITHIUM_KEYFORM_ROUND2_65; - CK_ATTRIBUTE template[] = { - {CKA_CLASS, &class, sizeof(class)}, - {CKA_KEY_TYPE, &keyType, sizeof(keyType)}, -diff --git a/usr/lib/common/asn1.c b/usr/lib/common/asn1.c -index dbf06dfd..85d3924c 100644 ---- a/usr/lib/common/asn1.c -+++ b/usr/lib/common/asn1.c -@@ -3788,7 +3788,8 @@ CK_RV ber_decode_IBM_DilithiumPublicKey(CK_BYTE *data, - CK_ULONG data_len, - CK_ATTRIBUTE **rho_attr, - CK_ATTRIBUTE **t1_attr, -- CK_ATTRIBUTE **value_attr) -+ CK_ATTRIBUTE **value_attr, -+ const struct pqc_oid **oid) - { - CK_ATTRIBUTE *rho_attr_temp = NULL; - CK_ATTRIBUTE *t1_attr_temp = NULL; -@@ -3818,8 +3819,8 @@ CK_RV ber_decode_IBM_DilithiumPublicKey(CK_BYTE *data, - return rc; - } - -- if (algoid_len != dilithium_r2_65_len || -- memcmp(algoid, dilithium_r2_65, dilithium_r2_65_len) != 0) { -+ *oid = find_pqc_by_oid(dilithium_oids, algoid, algoid_len); -+ if (*oid == NULL) { - TRACE_ERROR("%s\n", ock_err(ERR_FUNCTION_FAILED)); - return CKR_FUNCTION_FAILED; - } -@@ -4155,7 +4156,8 @@ CK_RV ber_decode_IBM_DilithiumPrivateKey(CK_BYTE *data, - CK_ATTRIBUTE **s2, - CK_ATTRIBUTE **t0, - CK_ATTRIBUTE **t1, -- CK_ATTRIBUTE **value) -+ CK_ATTRIBUTE **value, -+ const struct pqc_oid **oid) - { - CK_ATTRIBUTE *rho_attr = NULL, *seed_attr = NULL; - CK_ATTRIBUTE *tr_attr = NULL, *s1_attr = NULL, *s2_attr = NULL; -@@ -4175,8 +4177,14 @@ CK_RV ber_decode_IBM_DilithiumPrivateKey(CK_BYTE *data, - return rc; - } - -- if (len != dilithium_r2_65_len + ber_NULLLen || -- memcmp(algoid, dilithium_r2_65, dilithium_r2_65_len) != 0) { -+ if (len <= ber_NULLLen || -+ memcmp(algoid + len - ber_NULLLen, ber_NULL, ber_NULLLen) != 0) { -+ TRACE_ERROR("%s\n", ock_err(ERR_FUNCTION_FAILED)); -+ return CKR_FUNCTION_FAILED; -+ } -+ len -= ber_NULLLen; -+ *oid = find_pqc_by_oid(dilithium_oids, algoid, len); -+ if (*oid == NULL) { - TRACE_ERROR("%s\n", ock_err(ERR_FUNCTION_FAILED)); - return CKR_FUNCTION_FAILED; - } -diff --git a/usr/lib/common/h_extern.h b/usr/lib/common/h_extern.h -index 53909e99..fdbcacd9 100644 ---- a/usr/lib/common/h_extern.h -+++ b/usr/lib/common/h_extern.h -@@ -26,6 +26,7 @@ - #include - #include "dlist.h" - #include "host_defs.h" -+#include "pqc_defs.h" - - #include - -@@ -2504,6 +2505,10 @@ CK_RV ibm_dilithium_priv_unwrap(TEMPLATE *tmpl, CK_BYTE *data, - CK_RV ibm_dilithium_priv_unwrap_get_data(TEMPLATE *tmpl, - CK_BYTE *data, CK_ULONG total_length, - CK_BBOOL add_value); -+const struct pqc_oid *ibm_pqc_get_keyform_mode(TEMPLATE *tmpl, -+ CK_MECHANISM_TYPE mech); -+CK_RV ibm_pqc_add_keyform_mode(TEMPLATE *tmpl, const struct pqc_oid *oid, -+ CK_MECHANISM_TYPE mech); - - // diffie-hellman routines - // -@@ -2750,7 +2755,8 @@ CK_RV ber_decode_IBM_DilithiumPublicKey(CK_BYTE *data, - CK_ULONG data_len, - CK_ATTRIBUTE **rho_attr, - CK_ATTRIBUTE **t1_attr, -- CK_ATTRIBUTE **value_attr); -+ CK_ATTRIBUTE **value_attr, -+ const struct pqc_oid **oid); - - CK_RV ber_encode_IBM_DilithiumPrivateKey(CK_BBOOL length_only, - CK_BYTE **data, -@@ -2773,7 +2779,8 @@ CK_RV ber_decode_IBM_DilithiumPrivateKey(CK_BYTE *data, - CK_ATTRIBUTE **s2, - CK_ATTRIBUTE **t0, - CK_ATTRIBUTE **t1, -- CK_ATTRIBUTE **value); -+ CK_ATTRIBUTE **value, -+ const struct pqc_oid **oid); - - typedef CK_RV (*t_rsa_encrypt)(STDLL_TokData_t *, CK_BYTE *in_data, - CK_ULONG in_data_len, CK_BYTE *out_data, -diff --git a/usr/lib/common/key.c b/usr/lib/common/key.c -index b0050816..ba40cefd 100644 ---- a/usr/lib/common/key.c -+++ b/usr/lib/common/key.c -@@ -2654,6 +2654,117 @@ error: - return rc; - } - -+static CK_RV ibm_pqc_keyform_mode_attrs_by_mech(CK_MECHANISM_TYPE mech, -+ CK_ATTRIBUTE_TYPE *keyform_attr, -+ CK_ATTRIBUTE_TYPE *mode_attr, -+ const struct pqc_oid **oids) -+{ -+ switch (mech) { -+ case CKM_IBM_DILITHIUM: -+ *keyform_attr = CKA_IBM_DILITHIUM_KEYFORM; -+ *mode_attr = CKA_IBM_DILITHIUM_MODE; -+ *oids = dilithium_oids; -+ break; -+ case CKM_IBM_KYBER: -+ *keyform_attr = CKA_IBM_KYBER_KEYFORM; -+ *mode_attr = CKA_IBM_KYBER_MODE; -+ *oids = kyber_oids; -+ break; -+ default: -+ TRACE_ERROR("Unsupported mechanims: 0x%lx\n", mech); -+ return CKR_MECHANISM_INVALID; -+ } -+ -+ return CKR_OK; -+} -+ -+const struct pqc_oid *ibm_pqc_get_keyform_mode(TEMPLATE *tmpl, -+ CK_MECHANISM_TYPE mech) -+{ -+ CK_ATTRIBUTE *attr = NULL; -+ const struct pqc_oid *oids, *oid; -+ CK_ATTRIBUTE_TYPE keyform_attr; -+ CK_ATTRIBUTE_TYPE mode_attr; -+ -+ if (ibm_pqc_keyform_mode_attrs_by_mech(mech, &keyform_attr, -+ &mode_attr, &oids) != CKR_OK) -+ return NULL; -+ -+ if (template_attribute_find(tmpl, keyform_attr, &attr) && -+ attr->ulValueLen == sizeof(CK_ULONG) && attr->pValue != NULL) { -+ oid = find_pqc_by_keyform(oids, *(CK_ULONG *)(attr->pValue)); -+ if (oid == NULL) { -+ TRACE_ERROR("KEYFORM attribute specifies an invalid value: %lu\n", -+ *(CK_ULONG *)(attr->pValue)); -+ return NULL; -+ } -+ return oid; -+ } -+ -+ if (template_attribute_find(tmpl, mode_attr, &attr) && -+ attr->ulValueLen != 0 && attr->pValue != NULL) { -+ oid = find_pqc_by_oid(oids, attr->pValue, attr->ulValueLen); -+ if (oid == NULL) { -+ TRACE_ERROR("MODE attribute specifies an invalid value\n"); -+ return NULL; -+ } -+ return oid; -+ } -+ -+ TRACE_ERROR("Neither KEYFORM nor MODE found\n"); -+ return NULL; -+} -+ -+CK_RV ibm_pqc_add_keyform_mode(TEMPLATE *tmpl, const struct pqc_oid *oid, -+ CK_MECHANISM_TYPE mech) -+{ -+ CK_ATTRIBUTE *mode = NULL; -+ CK_ATTRIBUTE *keyform = NULL; -+ CK_RV rc; -+ CK_ATTRIBUTE_TYPE keyform_attr; -+ CK_ATTRIBUTE_TYPE mode_attr; -+ const struct pqc_oid *oids; -+ -+ if (ibm_pqc_keyform_mode_attrs_by_mech(mech, &keyform_attr, -+ &mode_attr, &oids) != CKR_OK) -+ return CKR_MECHANISM_INVALID; -+ -+ rc = build_attribute(mode_attr, (CK_BYTE *)oid->oid, oid->oid_len, &mode); -+ if (rc != CKR_OK) { -+ TRACE_DEVEL("build_attribute failed\n"); -+ goto error; -+ } -+ rc = template_update_attribute(tmpl, mode); -+ if (rc != CKR_OK) { -+ TRACE_DEVEL("template_update_attribute failed.\n"); -+ goto error; -+ } -+ mode = NULL; -+ -+ rc = build_attribute(keyform_attr, (CK_BYTE *)&oid->keyform, -+ sizeof(CK_ULONG), &keyform); -+ if (rc != CKR_OK) { -+ TRACE_DEVEL("build_attribute failed\n"); -+ goto error; -+ } -+ rc = template_update_attribute(tmpl, keyform); -+ if (rc != CKR_OK) { -+ TRACE_DEVEL("template_update_attribute failed.\n"); -+ goto error; -+ } -+ keyform = NULL; -+ -+ return CKR_OK; -+ -+error: -+ if (mode) -+ free(mode); -+ if (keyform) -+ free(keyform); -+ -+ return rc; -+} -+ - /* - * Extract the SubjectPublicKeyInfo from the Dilithium public key - */ -@@ -2662,21 +2773,12 @@ CK_RV ibm_dilithium_publ_get_spki(TEMPLATE *tmpl, CK_BBOOL length_only, - { - CK_ATTRIBUTE *rho = NULL; - CK_ATTRIBUTE *t1 = NULL; -- CK_ULONG keyform; -+ const struct pqc_oid *oid; - CK_RV rc; - -- rc = template_attribute_get_ulong(tmpl, CKA_IBM_DILITHIUM_KEYFORM, -- &keyform); -- if (rc != CKR_OK) { -- TRACE_ERROR("Could not find CKA_IBM_DILITHIUM_KEYFORM for the key.\n"); -- return rc; -- } -- -- if ( keyform != IBM_DILITHIUM_KEYFORM_ROUND2) { -- TRACE_ERROR("This key has an unexpected CKA_IBM_DILITHIUM_KEYFORM: " -- "%ld \n", keyform); -- return CKR_ATTRIBUTE_VALUE_INVALID; -- } -+ oid = ibm_pqc_get_keyform_mode(tmpl, CKM_IBM_DILITHIUM); -+ if (oid == NULL) -+ return CKR_TEMPLATE_INCOMPLETE; - - rc = template_attribute_get_non_empty(tmpl, CKA_IBM_DILITHIUM_RHO, &rho); - if (rc != CKR_OK) { -@@ -2690,8 +2792,7 @@ CK_RV ibm_dilithium_publ_get_spki(TEMPLATE *tmpl, CK_BBOOL length_only, - } - - rc = ber_encode_IBM_DilithiumPublicKey(length_only, data, data_len, -- dilithium_r2_65, -- dilithium_r2_65_len, -+ oid->oid, oid->oid_len, - rho, t1); - if (rc != CKR_OK) { - TRACE_ERROR("ber_encode_IBM_DilithiumPublicKey failed.\n"); -@@ -2709,23 +2810,12 @@ CK_RV ibm_dilithium_priv_wrap_get_data(TEMPLATE *tmpl, - CK_ATTRIBUTE *rho = NULL, *seed = NULL; - CK_ATTRIBUTE *tr = NULL, *s1 = NULL, *s2 = NULL; - CK_ATTRIBUTE *t0 = NULL, *t1 = NULL; -- CK_ULONG keyform; -+ const struct pqc_oid *oid; - CK_RV rc; - -- /* A private Dilithium key must have a keyform value */ -- rc = template_attribute_get_ulong(tmpl, CKA_IBM_DILITHIUM_KEYFORM, -- &keyform); -- if (rc != CKR_OK) { -- TRACE_ERROR("Could not find CKA_IBM_DILITHIUM_KEYFORM for the key.\n"); -- return rc; -- } -- -- /* Check if it's an expected keyform */ -- if (keyform != IBM_DILITHIUM_KEYFORM_ROUND2) { -- TRACE_ERROR("This key has an unexpected CKA_IBM_DILITHIUM_KEYFORM: %ld\n", -- keyform); -- return CKR_ATTRIBUTE_VALUE_INVALID; -- } -+ oid = ibm_pqc_get_keyform_mode(tmpl, CKM_IBM_DILITHIUM); -+ if (oid == NULL) -+ return CKR_TEMPLATE_INCOMPLETE; - - rc = template_attribute_get_non_empty(tmpl, CKA_IBM_DILITHIUM_RHO, &rho); - if (rc != CKR_OK) { -@@ -2770,8 +2860,7 @@ CK_RV ibm_dilithium_priv_wrap_get_data(TEMPLATE *tmpl, - } - - rc = ber_encode_IBM_DilithiumPrivateKey(length_only, data, data_len, -- dilithium_r2_65, -- dilithium_r2_65_len, -+ oid->oid, oid->oid_len, - rho, seed, tr, s1, s2, t0, t1); - if (rc != CKR_OK) { - TRACE_DEVEL("ber_encode_IBM_DilithiumPrivateKey failed\n"); -@@ -2787,15 +2876,22 @@ CK_RV ibm_dilithium_priv_unwrap_get_data(TEMPLATE *tmpl, CK_BYTE *data, - CK_ATTRIBUTE *rho = NULL; - CK_ATTRIBUTE *t1 = NULL; - CK_ATTRIBUTE *value = NULL; -+ const struct pqc_oid *oid; - CK_RV rc; - - rc = ber_decode_IBM_DilithiumPublicKey(data, total_length, &rho, &t1, -- &value); -+ &value, &oid); - if (rc != CKR_OK) { - TRACE_ERROR("ber_decode_DilithiumPublicKey failed\n"); - return rc; - } - -+ rc = ibm_pqc_add_keyform_mode(tmpl, oid, CKM_IBM_DILITHIUM); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("ibm_pqc_add_keyform_mode failed\n"); -+ return rc; -+ } -+ - rc = template_update_attribute(tmpl, rho); - if (rc != CKR_OK) { - TRACE_DEVEL("template_update_attribute failed.\n"); -@@ -2839,16 +2935,23 @@ CK_RV ibm_dilithium_priv_unwrap(TEMPLATE *tmpl, CK_BYTE *data, - { - CK_ATTRIBUTE *rho = NULL, *seed = NULL, *tr = NULL, *value = NULL; - CK_ATTRIBUTE *s1 = NULL, *s2 = NULL, *t0 = NULL, *t1 = NULL; -+ const struct pqc_oid *oid; - CK_RV rc; - - rc = ber_decode_IBM_DilithiumPrivateKey(data, total_length, - &rho, &seed, &tr, &s1, &s2, &t0, -- &t1, &value); -+ &t1, &value, &oid); - if (rc != CKR_OK) { - TRACE_ERROR("der_decode_IBM_DilithiumPrivateKey failed\n"); - return rc; - } - -+ rc = ibm_pqc_add_keyform_mode(tmpl, oid, CKM_IBM_DILITHIUM); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("ibm_pqc_add_keyform_mode failed\n"); -+ return rc; -+ } -+ - rc = template_update_attribute(tmpl, rho); - if (rc != CKR_OK) { - TRACE_ERROR("template_update_attribute failed\n"); -@@ -4660,19 +4763,17 @@ CK_RV ibm_dilithium_publ_set_default_attributes(TEMPLATE *tmpl, CK_ULONG mode) - CK_ATTRIBUTE *type_attr = NULL; - CK_ATTRIBUTE *rho_attr = NULL; - CK_ATTRIBUTE *t1_attr = NULL; -- CK_ATTRIBUTE *keyform_attr = NULL; - CK_ATTRIBUTE *value_attr = NULL; - CK_RV rc; - - publ_key_set_default_attributes(tmpl, mode); - - type_attr = (CK_ATTRIBUTE *) malloc(sizeof(CK_ATTRIBUTE) + sizeof(CK_KEY_TYPE)); -- keyform_attr = (CK_ATTRIBUTE *) malloc(sizeof(CK_ATTRIBUTE) + sizeof(CK_ULONG)); - rho_attr = (CK_ATTRIBUTE *) malloc(sizeof(CK_ATTRIBUTE)); - t1_attr = (CK_ATTRIBUTE *) malloc(sizeof(CK_ATTRIBUTE)); - value_attr = (CK_ATTRIBUTE *) malloc(sizeof(CK_ATTRIBUTE)); - -- if (!type_attr || !rho_attr || !t1_attr || !keyform_attr || !value_attr) { -+ if (!type_attr || !rho_attr || !t1_attr || !value_attr) { - TRACE_ERROR("%s\n", ock_err(ERR_HOST_MEMORY)); - rc = CKR_HOST_MEMORY; - goto error; -@@ -4683,11 +4784,6 @@ CK_RV ibm_dilithium_publ_set_default_attributes(TEMPLATE *tmpl, CK_ULONG mode) - type_attr->pValue = (CK_BYTE *) type_attr + sizeof(CK_ATTRIBUTE); - *(CK_KEY_TYPE *) type_attr->pValue = CKK_IBM_PQC_DILITHIUM; - -- keyform_attr->type = CKA_IBM_DILITHIUM_KEYFORM; -- keyform_attr->ulValueLen = sizeof(CK_ULONG); -- keyform_attr->pValue = (CK_BYTE *) keyform_attr + sizeof(CK_ATTRIBUTE); -- *(CK_ULONG *) keyform_attr->pValue = IBM_DILITHIUM_KEYFORM_ROUND2; -- - rho_attr->type = CKA_IBM_DILITHIUM_RHO; - rho_attr->ulValueLen = 0; - rho_attr->pValue = NULL; -@@ -4718,12 +4814,6 @@ CK_RV ibm_dilithium_publ_set_default_attributes(TEMPLATE *tmpl, CK_ULONG mode) - goto error; - } - t1_attr = NULL; -- rc = template_update_attribute(tmpl, keyform_attr); -- if (rc != CKR_OK) { -- TRACE_ERROR("template_update_attribute failed\n"); -- goto error; -- } -- keyform_attr = NULL; - rc = template_update_attribute(tmpl, value_attr); - if (rc != CKR_OK) { - TRACE_ERROR("template_update_attribute failed\n"); -@@ -4740,8 +4830,6 @@ error: - free(rho_attr); - if (t1_attr) - free(t1_attr); -- if (keyform_attr) -- free(keyform_attr); - if (value_attr) - free(value_attr); - -@@ -4760,14 +4848,12 @@ CK_RV ibm_dilithium_priv_set_default_attributes(TEMPLATE *tmpl, CK_ULONG mode) - CK_ATTRIBUTE *s2_attr = NULL; - CK_ATTRIBUTE *t0_attr = NULL; - CK_ATTRIBUTE *t1_attr = NULL; -- CK_ATTRIBUTE *keyform_attr = NULL; - CK_ATTRIBUTE *value_attr = NULL; - CK_RV rc; - - priv_key_set_default_attributes(tmpl, mode); - - type_attr = (CK_ATTRIBUTE *) malloc(sizeof(CK_ATTRIBUTE) + sizeof(CK_KEY_TYPE)); -- keyform_attr = (CK_ATTRIBUTE *) malloc(sizeof(CK_ATTRIBUTE) + sizeof(CK_ULONG)); - rho_attr = (CK_ATTRIBUTE *) malloc(sizeof(CK_ATTRIBUTE)); - seed_attr = (CK_ATTRIBUTE *) malloc(sizeof(CK_ATTRIBUTE)); - tr_attr = (CK_ATTRIBUTE *) malloc(sizeof(CK_ATTRIBUTE)); -@@ -4778,7 +4864,7 @@ CK_RV ibm_dilithium_priv_set_default_attributes(TEMPLATE *tmpl, CK_ULONG mode) - value_attr = (CK_ATTRIBUTE *) malloc(sizeof(CK_ATTRIBUTE)); - - if (!type_attr || !rho_attr || !seed_attr || !tr_attr || !s1_attr -- || !s2_attr || !t0_attr || !t1_attr || !keyform_attr || !value_attr) { -+ || !s2_attr || !t0_attr || !t1_attr || !value_attr) { - TRACE_ERROR("%s\n", ock_err(ERR_HOST_MEMORY)); - rc = CKR_HOST_MEMORY; - goto error; -@@ -4789,11 +4875,6 @@ CK_RV ibm_dilithium_priv_set_default_attributes(TEMPLATE *tmpl, CK_ULONG mode) - type_attr->pValue = (CK_BYTE *) type_attr + sizeof(CK_ATTRIBUTE); - *(CK_KEY_TYPE *) type_attr->pValue = CKK_IBM_PQC_DILITHIUM; - -- keyform_attr->type = CKA_IBM_DILITHIUM_KEYFORM; -- keyform_attr->ulValueLen = sizeof(CK_ULONG); -- keyform_attr->pValue = (CK_BYTE *) keyform_attr + sizeof(CK_ATTRIBUTE); -- *(CK_ULONG *) keyform_attr->pValue = IBM_DILITHIUM_KEYFORM_ROUND2; -- - rho_attr->type = CKA_IBM_DILITHIUM_RHO; - rho_attr->ulValueLen = 0; - rho_attr->pValue = NULL; -@@ -4832,12 +4913,6 @@ CK_RV ibm_dilithium_priv_set_default_attributes(TEMPLATE *tmpl, CK_ULONG mode) - goto error; - } - type_attr = NULL; -- rc = template_update_attribute(tmpl, keyform_attr); -- if (rc != CKR_OK) { -- TRACE_ERROR("template_update_attribute failed\n"); -- goto error; -- } -- keyform_attr = NULL; - rc = template_update_attribute(tmpl, rho_attr); - if (rc != CKR_OK) { - TRACE_ERROR("template_update_attribute failed\n"); -@@ -4906,38 +4981,59 @@ error: - free(t0_attr); - if (t1_attr) - free(t1_attr); -- if (keyform_attr) -- free(keyform_attr); - if (value_attr) - free(value_attr); - - return rc; - } - --// ibm_dilithium_publ_check_required_attributes() --// --CK_RV ibm_dilithium_publ_check_required_attributes(TEMPLATE *tmpl, CK_ULONG mode) -+static CK_RV ibm_pqc_check_attributes(TEMPLATE *tmpl, CK_ULONG mode, -+ CK_MECHANISM_TYPE mech, -+ CK_ULONG *req_attrs, -+ CK_ULONG num_req_attrs) - { -+ CK_ATTRIBUTE_TYPE keyform_attr; -+ CK_ATTRIBUTE_TYPE mode_attr; - CK_ATTRIBUTE *attr = NULL; -- static CK_ULONG req_attrs[] = { -- CKA_IBM_DILITHIUM_KEYFORM, -- CKA_IBM_DILITHIUM_RHO, -- CKA_IBM_DILITHIUM_T1, -- }; -+ CK_BBOOL keyform_present = FALSE; -+ CK_BBOOL mode_present = FALSE; -+ const struct pqc_oid *oids, *oid; - CK_ULONG i; - CK_RV rc; - -+ if (ibm_pqc_keyform_mode_attrs_by_mech(mech, &keyform_attr, -+ &mode_attr, &oids) != CKR_OK) -+ return CKR_MECHANISM_INVALID; -+ -+ if (template_attribute_find(tmpl, keyform_attr, &attr) && -+ attr->ulValueLen == sizeof(CK_ULONG) && attr->pValue != NULL) { -+ oid = find_pqc_by_keyform(oids, *(CK_ULONG *)(attr->pValue)); -+ if (oid == NULL) { -+ TRACE_ERROR("%s, attribute KEYFORM has an unsupported value.\n", -+ ock_err(ERR_ATTRIBUTE_VALUE_INVALID)); -+ return CKR_ATTRIBUTE_VALUE_INVALID; -+ } -+ keyform_present = TRUE; -+ } -+ -+ if (template_attribute_find(tmpl, mode_attr, &attr) && -+ attr->ulValueLen > 0 && attr->pValue != NULL) { -+ oid = find_pqc_by_oid(oids, attr->pValue, attr->ulValueLen); -+ if (oid == NULL) { -+ TRACE_ERROR("%s, attribute MODE has an unsupported value.\n", -+ ock_err(ERR_ATTRIBUTE_VALUE_INVALID)); -+ return CKR_ATTRIBUTE_VALUE_INVALID; -+ } -+ mode_present = TRUE; -+ } -+ - switch (mode) { -- case MODE_KEYGEN: -- case MODE_UNWRAP: -- /* Attrs will be added during keygen/unwrap */ -- break; - case MODE_CREATE: - /* Either CKA_VALUE or all other attrs must be present */ - if (template_attribute_find(tmpl, CKA_VALUE, &attr) && - attr->ulValueLen > 0 && attr->pValue != NULL) - break; -- for (i = 0; i < sizeof(req_attrs) / sizeof(req_attrs[0]); i++) { -+ for (i = 0; i < num_req_attrs; i++) { - rc = template_attribute_get_non_empty(tmpl, req_attrs[i], &attr); - if (rc != CKR_OK) { - if (rc != CKR_ATTRIBUTE_VALUE_INVALID) -@@ -4946,27 +5042,58 @@ CK_RV ibm_dilithium_publ_check_required_attributes(TEMPLATE *tmpl, CK_ULONG mode - return rc; - } - } -+ /* fallthrough */ -+ case MODE_KEYGEN: -+ /* Either keyform or mode or none of it must be present */ -+ if (keyform_present && mode_present) { -+ TRACE_ERROR("%s, only one of KEYFORM or MODE can be specified .\n", -+ ock_err(ERR_TEMPLATE_INCONSISTENT)); -+ return CKR_TEMPLATE_INCONSISTENT; -+ } -+ break; -+ case MODE_UNWRAP: -+ /* neither keyform or mode must be present */ -+ if (keyform_present || mode_present) { -+ TRACE_ERROR("%s, none of KEYFORM or MODE can be specified .\n", -+ ock_err(ERR_TEMPLATE_INCONSISTENT)); -+ return CKR_TEMPLATE_INCONSISTENT; -+ } - break; - case MODE_COPY: -- /* CKA_VALUE and all other attrs must be present */ -- if (!template_attribute_find(tmpl, CKA_VALUE, &attr) && -- attr->ulValueLen > 0 && attr->pValue != NULL) { -- TRACE_ERROR("%s, attribute CKA_VALUE missing.\n", -+ /* All attributes must be present */ -+ if (!keyform_present || !mode_present) { -+ TRACE_ERROR("%s, KEYFORM or MODE must be specified .\n", - ock_err(ERR_TEMPLATE_INCOMPLETE)); - return CKR_TEMPLATE_INCOMPLETE; - } -- for (i = 0; i < sizeof(req_attrs) / sizeof(req_attrs[0]); i++) { -- rc = template_attribute_get_non_empty(tmpl, req_attrs[i], &attr); -- if (rc != CKR_OK) { -- if (rc != CKR_ATTRIBUTE_VALUE_INVALID) -- TRACE_ERROR("%s, attribute %08lX missing.\n", -- ock_err(ERR_TEMPLATE_INCOMPLETE), req_attrs[i]); -- return rc; -+ for (i = 0; i < num_req_attrs; i++) { -+ if (!template_attribute_find(tmpl, req_attrs[i], &attr)) { -+ TRACE_ERROR("%s, attribute %08lX missing.\n", -+ ock_err(ERR_TEMPLATE_INCOMPLETE), req_attrs[i]); -+ return CKR_TEMPLATE_INCOMPLETE; - } - } - break; - } - -+ return CKR_OK; -+} -+ -+// ibm_dilithium_publ_check_required_attributes() -+// -+CK_RV ibm_dilithium_publ_check_required_attributes(TEMPLATE *tmpl, CK_ULONG mode) -+{ -+ static CK_ULONG req_attrs[] = { -+ CKA_IBM_DILITHIUM_RHO, -+ CKA_IBM_DILITHIUM_T1, -+ }; -+ CK_RV rc; -+ -+ rc = ibm_pqc_check_attributes(tmpl, mode, CKM_IBM_DILITHIUM, req_attrs, -+ sizeof(req_attrs) / sizeof(req_attrs[0])); -+ if (rc != CKR_OK) -+ return rc; -+ - /* All required attrs found, check them */ - return publ_key_check_required_attributes(tmpl, mode); - } -@@ -4975,9 +5102,7 @@ CK_RV ibm_dilithium_publ_check_required_attributes(TEMPLATE *tmpl, CK_ULONG mode - // - CK_RV ibm_dilithium_priv_check_required_attributes(TEMPLATE *tmpl, CK_ULONG mode) - { -- CK_ATTRIBUTE *attr = NULL; - static CK_ULONG req_attrs[] = { -- CKA_IBM_DILITHIUM_KEYFORM, - CKA_IBM_DILITHIUM_RHO, - CKA_IBM_DILITHIUM_SEED, - CKA_IBM_DILITHIUM_TR, -@@ -4986,52 +5111,62 @@ CK_RV ibm_dilithium_priv_check_required_attributes(TEMPLATE *tmpl, CK_ULONG mode - CKA_IBM_DILITHIUM_T0, - CKA_IBM_DILITHIUM_T1, - }; -- CK_ULONG i; - CK_RV rc; - -- switch (mode) { -- case MODE_KEYGEN: -- case MODE_UNWRAP: -- /* Attrs will be added during keygen/unwrap */ -- break; -- case MODE_CREATE: -- /* Either CKA_VALUE or all other attrs must be present */ -- if (template_attribute_find(tmpl, CKA_VALUE, &attr) && -- attr->ulValueLen > 0 && attr->pValue != NULL) -- break; -- for (i = 0; i < sizeof(req_attrs) / sizeof(req_attrs[0]); i++) { -- rc = template_attribute_get_non_empty(tmpl, req_attrs[i], &attr); -- if (rc != CKR_OK) { -- if (rc != CKR_ATTRIBUTE_VALUE_INVALID) -- TRACE_ERROR("%s, attribute %08lX missing.\n", -- ock_err(ERR_TEMPLATE_INCOMPLETE), req_attrs[i]); -- return rc; -- } -- } -- break; -- case MODE_COPY: -- /* CKA_VALUE and all other attrs must be present */ -- if (!template_attribute_find(tmpl, CKA_VALUE, &attr) && -- attr->ulValueLen > 0 && attr->pValue != NULL) { -- TRACE_ERROR("%s, attribute CKA_VALUE missing.\n", -- ock_err(ERR_TEMPLATE_INCOMPLETE)); -- return CKR_TEMPLATE_INCOMPLETE; -+ rc = ibm_pqc_check_attributes(tmpl, mode, CKM_IBM_DILITHIUM, req_attrs, -+ sizeof(req_attrs) / sizeof(req_attrs[0])); -+ if (rc != CKR_OK) -+ return rc; -+ -+ /* All required attrs found, check them */ -+ return priv_key_check_required_attributes(tmpl, mode); -+} -+ -+static CK_RV ibm_pqc_validate_keyform_mode(CK_ATTRIBUTE *attr, CK_ULONG mode, -+ CK_MECHANISM_TYPE mech) -+{ -+ CK_ATTRIBUTE_TYPE keyform_attr; -+ CK_ATTRIBUTE_TYPE mode_attr; -+ const struct pqc_oid *oids, *oid; - -+ if (ibm_pqc_keyform_mode_attrs_by_mech(mech, &keyform_attr, -+ &mode_attr, &oids) != CKR_OK) -+ return CKR_MECHANISM_INVALID; -+ -+ if (attr->type == keyform_attr) { -+ if (mode == MODE_CREATE || mode == MODE_KEYGEN) { -+ if (attr->ulValueLen != sizeof(CK_ULONG) || attr->pValue == NULL) { -+ TRACE_ERROR("%s\n", ock_err(ERR_ATTRIBUTE_VALUE_INVALID)); -+ return CKR_ATTRIBUTE_VALUE_INVALID; -+ } -+ oid = find_pqc_by_keyform(oids, *((CK_ULONG *)attr->pValue)); -+ if (oid == NULL) { -+ TRACE_ERROR("%s\n", ock_err(ERR_ATTRIBUTE_VALUE_INVALID)); -+ return CKR_ATTRIBUTE_VALUE_INVALID; -+ } -+ return CKR_OK; - } -- for (i = 0; i < sizeof(req_attrs) / sizeof(req_attrs[0]); i++) { -- rc = template_attribute_get_non_empty(tmpl, req_attrs[i], &attr); -- if (rc != CKR_OK) { -- if (rc != CKR_ATTRIBUTE_VALUE_INVALID) -- TRACE_ERROR("%s, attribute %08lX missing.\n", -- ock_err(ERR_TEMPLATE_INCOMPLETE), req_attrs[i]); -- return rc; -+ TRACE_ERROR("%s\n", ock_err(ERR_ATTRIBUTE_READ_ONLY)); -+ return CKR_ATTRIBUTE_READ_ONLY; -+ } -+ if (attr->type == mode_attr) { -+ if (mode == MODE_CREATE || mode == MODE_KEYGEN) { -+ if (attr->ulValueLen == 0 || attr->pValue == NULL) { -+ TRACE_ERROR("%s\n", ock_err(ERR_ATTRIBUTE_VALUE_INVALID)); -+ return CKR_ATTRIBUTE_VALUE_INVALID; -+ } -+ oid = find_pqc_by_oid(oids, attr->pValue, attr->ulValueLen); -+ if (oid == NULL) { -+ TRACE_ERROR("%s\n", ock_err(ERR_ATTRIBUTE_VALUE_INVALID)); -+ return CKR_ATTRIBUTE_VALUE_INVALID; - } -+ return CKR_OK; - } -- break; -+ TRACE_ERROR("%s\n", ock_err(ERR_ATTRIBUTE_READ_ONLY)); -+ return CKR_ATTRIBUTE_READ_ONLY; - } - -- /* All required attrs found, check them */ -- return priv_key_check_required_attributes(tmpl, mode); -+ return CKR_OK; - } - - // ibm_dilithium_publ_validate_attribute() -@@ -5040,7 +5175,15 @@ CK_RV ibm_dilithium_publ_validate_attribute(STDLL_TokData_t *tokdata, - TEMPLATE *tmpl, CK_ATTRIBUTE *attr, - CK_ULONG mode) - { -+ CK_RV rc; -+ - switch (attr->type) { -+ case CKA_IBM_DILITHIUM_KEYFORM: -+ case CKA_IBM_DILITHIUM_MODE: -+ rc = ibm_pqc_validate_keyform_mode(attr, mode, CKM_IBM_DILITHIUM); -+ if (rc != CKR_OK) -+ return rc; -+ return CKR_OK; - case CKA_IBM_DILITHIUM_RHO: - case CKA_IBM_DILITHIUM_T1: - case CKA_VALUE: -@@ -5048,22 +5191,6 @@ CK_RV ibm_dilithium_publ_validate_attribute(STDLL_TokData_t *tokdata, - return CKR_OK; - TRACE_ERROR("%s\n", ock_err(ERR_ATTRIBUTE_READ_ONLY)); - return CKR_ATTRIBUTE_READ_ONLY; -- case CKA_IBM_DILITHIUM_KEYFORM: -- if (mode == MODE_CREATE || mode == MODE_KEYGEN) { -- if (attr->ulValueLen != sizeof(CK_ULONG) || attr->pValue == NULL) { -- TRACE_ERROR("%s\n", ock_err(ERR_ATTRIBUTE_VALUE_INVALID)); -- return CKR_ATTRIBUTE_VALUE_INVALID; -- } -- switch (*((CK_ULONG *)attr->pValue)) { -- case IBM_DILITHIUM_KEYFORM_ROUND2: -- return CKR_OK; -- default: -- TRACE_ERROR("%s\n", ock_err(CKR_ATTRIBUTE_VALUE_INVALID)); -- return CKR_ATTRIBUTE_VALUE_INVALID; -- } -- } -- TRACE_ERROR("%s\n", ock_err(ERR_ATTRIBUTE_READ_ONLY)); -- return CKR_ATTRIBUTE_READ_ONLY; - default: - return publ_key_validate_attribute(tokdata, tmpl, attr, mode); - } -@@ -5075,7 +5202,15 @@ CK_RV ibm_dilithium_priv_validate_attribute(STDLL_TokData_t *tokdata, - TEMPLATE *tmpl, CK_ATTRIBUTE *attr, - CK_ULONG mode) - { -+ CK_RV rc; -+ - switch (attr->type) { -+ case CKA_IBM_DILITHIUM_KEYFORM: -+ case CKA_IBM_DILITHIUM_MODE: -+ rc = ibm_pqc_validate_keyform_mode(attr, mode, CKM_IBM_DILITHIUM); -+ if (rc != CKR_OK) -+ return rc; -+ return CKR_OK; - case CKA_IBM_DILITHIUM_RHO: - case CKA_IBM_DILITHIUM_SEED: - case CKA_IBM_DILITHIUM_TR: -@@ -5088,22 +5223,6 @@ CK_RV ibm_dilithium_priv_validate_attribute(STDLL_TokData_t *tokdata, - return CKR_OK; - TRACE_ERROR("%s\n", ock_err(ERR_ATTRIBUTE_READ_ONLY)); - return CKR_ATTRIBUTE_READ_ONLY; -- case CKA_IBM_DILITHIUM_KEYFORM: -- if (mode == MODE_CREATE || mode == MODE_KEYGEN) { -- if (attr->ulValueLen != sizeof(CK_ULONG) || attr->pValue == NULL) { -- TRACE_ERROR("%s\n", ock_err(ERR_ATTRIBUTE_VALUE_INVALID)); -- return CKR_ATTRIBUTE_VALUE_INVALID; -- } -- switch (*((CK_ULONG *)attr->pValue)) { -- case IBM_DILITHIUM_KEYFORM_ROUND2: -- return CKR_OK; -- default: -- TRACE_ERROR("%s\n", ock_err(CKR_ATTRIBUTE_VALUE_INVALID)); -- return CKR_ATTRIBUTE_VALUE_INVALID; -- } -- } -- TRACE_ERROR("%s\n", ock_err(ERR_ATTRIBUTE_READ_ONLY)); -- return CKR_ATTRIBUTE_READ_ONLY; - default: - return priv_key_validate_attribute(tokdata, tmpl, attr, mode); - } -diff --git a/usr/lib/ep11_stdll/ep11_specific.c b/usr/lib/ep11_stdll/ep11_specific.c -index 9221b8cd..c440cac5 100644 ---- a/usr/lib/ep11_stdll/ep11_specific.c -+++ b/usr/lib/ep11_stdll/ep11_specific.c -@@ -158,8 +158,8 @@ const char label[] = "ep11tok"; - #define MAX_CSUMSIZE 64 - #define EP11_CSUMSIZE 3 - #define MAX_DIGEST_STATE_BYTES 1024 --#define MAX_CRYPT_STATE_BYTES 8192 --#define MAX_SIGN_STATE_BYTES 8192 -+#define MAX_CRYPT_STATE_BYTES 12288 -+#define MAX_SIGN_STATE_BYTES 12288 - #define MAX_APQN 256 - #define EP11_BLOB_WKID_OFFSET 32 - -@@ -1937,7 +1937,9 @@ static CK_BBOOL attr_applicable_for_ep11(STDLL_TokData_t * tokdata, - case CKK_IBM_PQC_DILITHIUM: - if (attr->type == CKA_ENCRYPT || attr->type == CKA_DECRYPT || - attr->type == CKA_WRAP || attr->type == CKA_UNWRAP || -- attr->type == CKA_DERIVE) -+ attr->type == CKA_DERIVE || -+ attr->type == CKA_IBM_DILITHIUM_KEYFORM || -+ attr->type == CKA_IBM_DILITHIUM_MODE) - return CK_FALSE; - break; - default: -@@ -3587,6 +3589,7 @@ static CK_RV import_IBM_Dilithium_key(STDLL_TokData_t *tokdata, SESSION *sess, - ep11_session_t *ep11_session = (ep11_session_t *) sess->private_data; - CK_ATTRIBUTE *value_attr = NULL; - CK_BBOOL data_alloced = TRUE; -+ const struct pqc_oid *oid; - - memcpy(iv, "1234567812345678", AES_BLOCK_SIZE); - -@@ -3611,7 +3614,8 @@ static CK_RV import_IBM_Dilithium_key(STDLL_TokData_t *tokdata, SESSION *sess, - /* Make an SPKI for the public IBM Dilithium key */ - - /* A public IBM Dilithium key must either have a CKA_VALUE containing -- * the SPKI, or must have a keyform value and the individual attributes -+ * the SPKI, or must have a keyform/mode value and the individual -+ * attributes - */ - if (template_attribute_find(dilithium_key_obj->template, - CKA_VALUE, &value_attr) && -@@ -3621,7 +3625,10 @@ static CK_RV import_IBM_Dilithium_key(STDLL_TokData_t *tokdata, SESSION *sess, - data_len = value_attr->ulValueLen; - data_alloced = FALSE; - -- /* Decode SPKI and add public key attributes */ -+ /* -+ * Decode SPKI and add public key attributes. This also adds the -+ * keyform and mode attributes to the template. -+ */ - rc = ibm_dilithium_priv_unwrap_get_data(dilithium_key_obj->template, - data, data_len, FALSE); - if (rc != CKR_OK) { -@@ -3641,6 +3648,21 @@ static CK_RV import_IBM_Dilithium_key(STDLL_TokData_t *tokdata, SESSION *sess, - "data_len=0x%lx\n", __func__, class, rc, data_len); - } - -+ /* Ensure both, keyform and mode attributes are added */ -+ oid = ibm_pqc_get_keyform_mode(dilithium_key_obj->template, -+ CKM_IBM_DILITHIUM); -+ if (oid == NULL) { -+ rc = CKR_TEMPLATE_INCOMPLETE; -+ goto done; -+ } -+ -+ rc = ibm_pqc_add_keyform_mode(dilithium_key_obj->template, -+ oid, CKM_IBM_DILITHIUM); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("ibm_pqc_add_keyform_mode failed\n"); -+ goto done; -+ } -+ - /* Add SPKI as CKA_VALUE to public key (z/OS ICSF compatibility) */ - rc = build_attribute(CKA_VALUE, data, data_len, &value_attr); - if (rc != CKR_OK) { -@@ -3677,8 +3699,8 @@ static CK_RV import_IBM_Dilithium_key(STDLL_TokData_t *tokdata, SESSION *sess, - /* imported private IBM Dilithium key goes here */ - - /* A public IBM Dilithium key must either have a CKA_VALUE containing -- * the PKCS#8 encoded private key, or must have a keyform value and the -- * individual attributes -+ * the PKCS#8 encoded private key, or must have a keyform/mode value -+ * and the individual attributes - */ - if (template_attribute_find(dilithium_key_obj->template, - CKA_VALUE, &value_attr) && -@@ -3696,8 +3718,9 @@ static CK_RV import_IBM_Dilithium_key(STDLL_TokData_t *tokdata, SESSION *sess, - goto done; - } - } else { -- /* extract the secret data to be wrapped -- * since this is AES_CBC_PAD, padding is done in mechanism. -+ /* Extract the secret data to be wrapped since this is AES_CBC_PAD, -+ * padding is done in mechanism. This also adds the keyform and mode -+ * attributes to the template. - */ - rc = ibm_dilithium_priv_wrap_get_data(dilithium_key_obj->template, - FALSE, &data, &data_len); -@@ -3705,6 +3728,21 @@ static CK_RV import_IBM_Dilithium_key(STDLL_TokData_t *tokdata, SESSION *sess, - TRACE_DEVEL("%s Dilithium wrap get data failed\n", __func__); - goto done; - } -+ -+ /* Ensure both, keyform and mode attributes are added */ -+ oid = ibm_pqc_get_keyform_mode(dilithium_key_obj->template, -+ CKM_IBM_DILITHIUM); -+ if (oid == NULL) { -+ rc = CKR_TEMPLATE_INCOMPLETE; -+ goto done; -+ } -+ -+ rc = ibm_pqc_add_keyform_mode(dilithium_key_obj->template, -+ oid, CKM_IBM_DILITHIUM); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("ibm_pqc_add_keyform_mode failed\n"); -+ goto done; -+ } - } - - /* encrypt */ -@@ -6456,8 +6494,7 @@ static CK_RV ibm_dilithium_generate_keypair(STDLL_TokData_t *tokdata, - CK_ULONG new_publ_attrs_len = 0, new_priv_attrs_len = 0; - CK_ATTRIBUTE *new_publ_attrs2 = NULL, *new_priv_attrs2 = NULL; - CK_ULONG new_publ_attrs2_len = 0, new_priv_attrs2_len = 0; -- const CK_BYTE dilithium_oid[] = { 0x06, 0x0b, 0x2b, 0x06, 0x01, 0x04, 0x01, -- 0x02, 0x82, 0x0b, 0x01, 0x06, 0x05 }; -+ const struct pqc_oid *dilithium_oid; - - if (pMechanism->mechanism != CKM_IBM_DILITHIUM) { - TRACE_ERROR("Invalid mechanism provided for %s\n ", __func__); -@@ -6480,9 +6517,25 @@ static CK_RV ibm_dilithium_generate_keypair(STDLL_TokData_t *tokdata, - goto error; - } - -+ dilithium_oid = ibm_pqc_get_keyform_mode(publ_tmpl, CKM_IBM_DILITHIUM); -+ if (dilithium_oid == NULL) -+ dilithium_oid = ibm_pqc_get_keyform_mode(priv_tmpl, CKM_IBM_DILITHIUM); -+ if (dilithium_oid == NULL) -+ dilithium_oid = find_pqc_by_keyform(dilithium_oids, -+ CK_IBM_DILITHIUM_KEYFORM_ROUND2_65); -+ if (dilithium_oid == NULL) { -+ TRACE_ERROR("%s Failed to determine Dilithium OID\n", __func__); -+ rc = CKR_FUNCTION_FAILED; -+ goto error; -+ } -+ -+ TRACE_INFO("%s Generate Dilithium key with keyform %lu\n", __func__, -+ dilithium_oid->keyform); -+ - rc = add_to_attribute_array(&new_publ_attrs, &new_publ_attrs_len, -- CKA_IBM_PQC_PARAMS, (CK_BYTE *)dilithium_oid, -- sizeof(dilithium_oid)); -+ CKA_IBM_PQC_PARAMS, -+ (CK_BYTE *)dilithium_oid->oid, -+ dilithium_oid->oid_len); - if (rc != CKR_OK) { - TRACE_ERROR("%s add_to_attribute_array failed with rc=0x%lx\n", - __func__, rc); -@@ -6490,8 +6543,9 @@ static CK_RV ibm_dilithium_generate_keypair(STDLL_TokData_t *tokdata, - } - - rc = add_to_attribute_array(&new_priv_attrs, &new_priv_attrs_len, -- CKA_IBM_PQC_PARAMS,(CK_BYTE *)dilithium_oid, -- sizeof(dilithium_oid)); -+ CKA_IBM_PQC_PARAMS, -+ (CK_BYTE *)dilithium_oid->oid, -+ dilithium_oid->oid_len); - if (rc != CKR_OK) { - TRACE_ERROR("%s add_to_attribute_array failed with rc=0x%lx\n", - __func__, rc); --- -2.16.2.windows.1 - diff --git a/0022-EP11-Query-supported-PQC-variants-and-restrict-usage.patch b/0022-EP11-Query-supported-PQC-variants-and-restrict-usage.patch deleted file mode 100644 index 9dee5cd..0000000 --- a/0022-EP11-Query-supported-PQC-variants-and-restrict-usage.patch +++ /dev/null @@ -1,308 +0,0 @@ -From cf68e9b9d342ced84e8a7fa88b0787a40a44cebb Mon Sep 17 00:00:00 2001 -From: Ingo Franzki -Date: Thu, 17 Feb 2022 17:04:11 +0100 -Subject: [PATCH 22/34] EP11: Query supported PQC variants and restrict usage - -Allow only those PQC variants that are supported by all -configured APQNs. If a key is used with an unsupported strength, -CKR_KEY_SIZE_RANGE is returned. - -Signed-off-by: Ingo Franzki ---- - usr/lib/ep11_stdll/ep11_specific.c | 187 +++++++++++++++++++++++++++++++++---- - 1 file changed, 168 insertions(+), 19 deletions(-) - -diff --git a/usr/lib/ep11_stdll/ep11_specific.c b/usr/lib/ep11_stdll/ep11_specific.c -index c440cac5..479951cb 100644 ---- a/usr/lib/ep11_stdll/ep11_specific.c -+++ b/usr/lib/ep11_stdll/ep11_specific.c -@@ -540,6 +540,11 @@ static CK_RV handle_all_ep11_cards(ep11_target_t * ep11_targets, - #define PKEY_MODE_DEFAULT 1 - #define PKEY_MODE_ENABLE4NONEXTR 2 - -+#define PQC_BYTE_NO(idx) (((idx) - 1) / 8) -+#define PQC_BIT_IN_BYTE(idx) (((idx - 1)) % 8) -+#define PQC_BIT_MASK(idx) (0x80 >> PQC_BIT_IN_BYTE(idx)) -+#define PQC_BYTES ((((XCP_PQC_MAX / 32) * 32) + 32) / 8) -+ - typedef struct { - volatile unsigned long ref_count; - target_t target; -@@ -549,6 +554,7 @@ typedef struct { - size_t control_points_len; - size_t max_control_point_index; - CK_CHAR serialNumber[16]; -+ CK_BYTE pqc_strength[PQC_BYTES]; - } ep11_target_info_t; - - typedef struct { -@@ -660,6 +666,87 @@ static CK_RV check_expected_mkvp(STDLL_TokData_t *tokdata, CK_BYTE *blob, - return CKR_OK; - } - -+static CK_BBOOL ep11_pqc_strength_supported(ep11_target_info_t *target_info, -+ CK_MECHANISM_TYPE mech, -+ const struct pqc_oid *oid) -+{ -+ CK_ULONG strength; -+ -+ switch (mech) { -+ case CKM_IBM_DILITHIUM: -+ switch (oid->keyform) { -+ case CK_IBM_DILITHIUM_KEYFORM_ROUND2_65: -+ strength = XCP_PQC_S_DILITHIUM_R2_65; -+ break; -+ case CK_IBM_DILITHIUM_KEYFORM_ROUND2_87: -+ strength = XCP_PQC_S_DILITHIUM_R2_87; -+ break; -+ case CK_IBM_DILITHIUM_KEYFORM_ROUND3_44: -+ strength = XCP_PQC_S_DILITHIUM_R3_44; -+ break; -+ case CK_IBM_DILITHIUM_KEYFORM_ROUND3_65: -+ strength = XCP_PQC_S_DILITHIUM_R3_65; -+ break; -+ case CK_IBM_DILITHIUM_KEYFORM_ROUND3_87: -+ strength = XCP_PQC_S_DILITHIUM_R3_87; -+ break; -+ default: -+ TRACE_DEVEL("Dilithium keyform %lu not supported by EP11\n", -+ oid->keyform); -+ return FALSE; -+ } -+ break; -+ case CKM_IBM_KYBER: -+ switch (oid->keyform) { -+ case CK_IBM_KYBER_KEYFORM_ROUND2_768: -+ strength = XCP_PQC_S_KYBER_R2_768; -+ break; -+ case CK_IBM_KYBER_KEYFORM_ROUND2_1024: -+ strength = XCP_PQC_S_KYBER_R2_1024; -+ break; -+ default: -+ TRACE_DEVEL("Kyber keyform %lu not supported by EP11\n", -+ oid->keyform); -+ return FALSE; -+ } -+ break; -+ default: -+ return FALSE; -+ } -+ -+ if ((target_info->pqc_strength[PQC_BYTE_NO(strength)] & -+ PQC_BIT_MASK(strength)) == 0) { -+ TRACE_DEVEL("Keyform %lu not supported by configured APQNs\n", -+ oid->keyform); -+ return FALSE; -+ } -+ -+ return TRUE; -+} -+ -+static CK_BBOOL ep11_pqc_obj_strength_supported(ep11_target_info_t *target_info, -+ CK_MECHANISM_TYPE mech, -+ OBJECT *key_obj) -+{ -+ const struct pqc_oid *oid; -+ -+ switch (mech) { -+ case CKM_IBM_DILITHIUM: -+ case CKM_IBM_KYBER: -+ break; -+ default: -+ return TRUE; -+ } -+ -+ oid = ibm_pqc_get_keyform_mode(key_obj->template, mech); -+ if (oid == NULL) { -+ TRACE_DEVEL("No keyform/mode found in key object\n"); -+ return FALSE; -+ } -+ -+ return ep11_pqc_strength_supported(target_info, mech, oid); -+} -+ - /******************************************************************************* - * - * Begin EP11 protected key option -@@ -3747,10 +3834,15 @@ static CK_RV import_IBM_Dilithium_key(STDLL_TokData_t *tokdata, SESSION *sess, - - /* encrypt */ - RETRY_START(rc, tokdata) -- rc = dll_m_EncryptSingle(ep11_data->raw2key_wrap_blob, -- ep11_data->raw2key_wrap_blob_l, -- &mech_w, data, data_len, -- cipher, &cipher_l, target_info->target); -+ if (ep11_pqc_obj_strength_supported(target_info, CKM_IBM_DILITHIUM, -+ dilithium_key_obj)) -+ rc = dll_m_EncryptSingle(ep11_data->raw2key_wrap_blob, -+ ep11_data->raw2key_wrap_blob_l, -+ &mech_w, data, data_len, -+ cipher, &cipher_l, -+ target_info->target); -+ else -+ rc = CKR_KEY_SIZE_RANGE; - RETRY_END(rc, tokdata, sess) - - TRACE_INFO("%s wrapping wrap key rc=0x%lx cipher_l=0x%lx\n", -@@ -6583,12 +6675,16 @@ static CK_RV ibm_dilithium_generate_keypair(STDLL_TokData_t *tokdata, - &ep11_pin_blob, &ep11_pin_blob_len); - - RETRY_START(rc, tokdata) -- rc = dll_m_GenerateKeyPair(pMechanism, -- new_publ_attrs2, new_publ_attrs2_len, -- new_priv_attrs2, new_priv_attrs2_len, -- ep11_pin_blob, ep11_pin_blob_len, -- privkey_blob, &privkey_blob_len, spki, -- &spki_len, target_info->target); -+ if (ep11_pqc_strength_supported(target_info, pMechanism->mechanism, -+ dilithium_oid)) -+ rc = dll_m_GenerateKeyPair(pMechanism, -+ new_publ_attrs2, new_publ_attrs2_len, -+ new_priv_attrs2, new_priv_attrs2_len, -+ ep11_pin_blob, ep11_pin_blob_len, -+ privkey_blob, &privkey_blob_len, spki, -+ &spki_len, target_info->target); -+ else -+ rc = CKR_KEY_SIZE_RANGE; - RETRY_END(rc, tokdata, sess) - if (rc != CKR_OK) { - rc = ep11_error_to_pkcs11_error(rc, sess); -@@ -7336,8 +7432,13 @@ CK_RV ep11tok_sign_init(STDLL_TokData_t * tokdata, SESSION * session, - } - - RETRY_START(rc, tokdata) -- rc = dll_m_SignInit(ep11_sign_state, &ep11_sign_state_l, -- mech, keyblob, keyblobsize, target_info->target); -+ if (ep11_pqc_obj_strength_supported(target_info, mech->mechanism, -+ key_obj)) -+ rc = dll_m_SignInit(ep11_sign_state, &ep11_sign_state_l, -+ mech, keyblob, keyblobsize, -+ target_info->target); -+ else -+ rc = CKR_KEY_SIZE_RANGE; - RETRY_END(rc, tokdata, session) - - if (rc != CKR_OK) { -@@ -7570,8 +7671,12 @@ CK_RV ep11tok_sign_single(STDLL_TokData_t *tokdata, SESSION *session, - } - - RETRY_START(rc, tokdata) -- rc = dll_m_SignSingle(keyblob, keyblobsize, mech, in_data, in_data_len, -- signature, sig_len, target_info->target); -+ if (ep11_pqc_obj_strength_supported(target_info, mech->mechanism, -+ key_obj)) -+ rc = dll_m_SignSingle(keyblob, keyblobsize, mech, in_data, in_data_len, -+ signature, sig_len, target_info->target); -+ else -+ rc = CKR_KEY_SIZE_RANGE; - RETRY_END(rc, tokdata, session) - if (rc != CKR_OK) { - rc = ep11_error_to_pkcs11_error(rc, session); -@@ -7689,8 +7794,12 @@ CK_RV ep11tok_verify_init(STDLL_TokData_t * tokdata, SESSION * session, - } - - RETRY_START(rc, tokdata) -- rc = dll_m_VerifyInit(ep11_sign_state, &ep11_sign_state_l, mech, -- spki, spki_len, target_info->target); -+ if (ep11_pqc_obj_strength_supported(target_info, mech->mechanism, -+ key_obj)) -+ rc = dll_m_VerifyInit(ep11_sign_state, &ep11_sign_state_l, mech, -+ spki, spki_len, target_info->target); -+ else -+ rc = CKR_KEY_SIZE_RANGE; - RETRY_END(rc, tokdata, session) - - if (rc != CKR_OK) { -@@ -7929,8 +8038,12 @@ CK_RV ep11tok_verify_single(STDLL_TokData_t *tokdata, SESSION *session, - } - - RETRY_START(rc, tokdata) -- rc = dll_m_VerifySingle(spki, spki_len, mech, in_data, in_data_len, -- signature, sig_len, target_info->target); -+ if (ep11_pqc_obj_strength_supported(target_info, mech->mechanism, -+ key_obj)) -+ rc = dll_m_VerifySingle(spki, spki_len, mech, in_data, in_data_len, -+ signature, sig_len, target_info->target); -+ else -+ rc = CKR_KEY_SIZE_RANGE; - RETRY_END(rc, tokdata, session) - if (rc != CKR_OK) { - rc = ep11_error_to_pkcs11_error(rc, session); -@@ -11751,6 +11864,7 @@ typedef struct query_version - CK_CHAR serialNumber[16]; - CK_BBOOL first; - CK_BBOOL error; -+ CK_BYTE pqc_strength[PQC_BYTES]; - } query_version_t; - - static CK_RV version_query_handler(uint_32 adapter, uint_32 domain, -@@ -11759,9 +11873,11 @@ static CK_RV version_query_handler(uint_32 adapter, uint_32 domain, - query_version_t *qv = (query_version_t *)handler_data; - CK_IBM_XCP_INFO xcp_info; - CK_ULONG xcp_info_len = sizeof(xcp_info); -+ CK_BYTE pqc_strength[PQC_BYTES] = { 0 }; -+ CK_ULONG pqc_strength_len = sizeof(pqc_strength); - CK_RV rc; - target_t target; -- CK_ULONG card_type; -+ CK_ULONG card_type, i; - ep11_card_version_t *card_version; - - rc = get_ep11_target_for_apqn(adapter, domain, &target, 0); -@@ -11877,6 +11993,30 @@ static CK_RV version_query_handler(uint_32 adapter, uint_32 domain, - if (qv->first) - memcpy(qv->serialNumber, xcp_info.serialNumber, - sizeof(qv->serialNumber)); -+ -+ /* Query for PQC strength support. If the PQC strength query is not -+ available only Dilithium 6-5 round 2 is available. */ -+ rc = dll_m_get_xcp_info(&pqc_strength, &pqc_strength_len, -+ CK_IBM_XCPQ_PQC_STRENGTHS, 0, target); -+ if (rc != CKR_OK) { -+ TRACE_DEVEL("%s Failed to query PQC-strength from adapter %02X.%04X\n", -+ __func__, adapter, domain); -+ /* Only R2_65 is available */ -+ pqc_strength[PQC_BYTE_NO(XCP_PQC_S_DILITHIUM_R2_65)] |= -+ PQC_BIT_MASK(XCP_PQC_S_DILITHIUM_R2_65); -+ rc = CKR_OK; -+ } -+ -+ TRACE_DEBUG("PQC-strength of %02X.%04X:\n", adapter, domain); -+ TRACE_DEBUG_DUMP("", pqc_strength, sizeof(qv->pqc_strength)); -+ -+ if (qv->first) { -+ memcpy(qv->pqc_strength, pqc_strength, sizeof(qv->pqc_strength)); -+ } else { -+ for (i = 0; i < sizeof(qv->pqc_strength); i++) -+ qv->pqc_strength[i] &= pqc_strength[i]; -+ } -+ - qv->first = FALSE; - - out: -@@ -11934,6 +12074,7 @@ static CK_RV ep11tok_get_ep11_version(STDLL_TokData_t *tokdata, - ep11_private_data_t *ep11_data = tokdata->private_data; - ep11_card_version_t *card_version; - query_version_t qv; -+ CK_ULONG i; - CK_RV rc; - - memset(&qv, 0, sizeof(qv)); -@@ -11991,6 +12132,14 @@ static CK_RV ep11tok_get_ep11_version(STDLL_TokData_t *tokdata, - TRACE_INFO("%s Used Firmware API: %lu\n", __func__, - target_info->used_firmware_API_version); - -+ memcpy(target_info->pqc_strength, qv.pqc_strength, sizeof(qv.pqc_strength)); -+ -+ TRACE_INFO("Combined PQC-strength:\n"); -+ for (i = 1; i <= XCP_PQC_MAX; i++) { -+ TRACE_INFO(" Strength %lu: %d\n", i, -+ (qv.pqc_strength[PQC_BYTE_NO(i)] & PQC_BIT_MASK(i)) != 0); -+ } -+ - return CKR_OK; - } - --- -2.16.2.windows.1 - diff --git a/0023-POLICY-Dilithium-strength-and-signature-size-depends.patch b/0023-POLICY-Dilithium-strength-and-signature-size-depends.patch deleted file mode 100644 index d966a2a..0000000 --- a/0023-POLICY-Dilithium-strength-and-signature-size-depends.patch +++ /dev/null @@ -1,218 +0,0 @@ -From ff2bfaa612704a7b8fb5126d450b596106421244 Mon Sep 17 00:00:00 2001 -From: Ingo Franzki -Date: Fri, 18 Feb 2022 12:58:24 +0100 -Subject: [PATCH 23/34] POLICY: Dilithium strength and signature size depends - on variant - -Signed-off-by: Ingo Franzki ---- - testcases/unit/unit.mk | 3 +- - usr/lib/api/api.mk | 1 + - usr/lib/api/mechtable.inc | 2 +- - usr/lib/api/policy.c | 65 +++++++++++++++++++++++++++++++++++++++++- - usr/lib/common/pqc_defs.h | 2 ++ - usr/lib/common/pqc_supported.c | 27 ++++++++++++------ - 6 files changed, 88 insertions(+), 12 deletions(-) - -diff --git a/testcases/unit/unit.mk b/testcases/unit/unit.mk -index accaebca..56ae3bcc 100644 ---- a/testcases/unit/unit.mk -+++ b/testcases/unit/unit.mk -@@ -22,7 +22,8 @@ testcases_unit_policytest_SOURCES=testcases/unit/policytest.c \ - usr/lib/common/kdf_translation.c \ - usr/lib/common/mgf_translation.c \ - usr/lib/api/supportedstrengths.c \ -- usr/lib/config/cfgparse.y usr/lib/config/cfglex.l -+ usr/lib/config/cfgparse.y usr/lib/config/cfglex.l \ -+ usr/lib/common/pqc_supported.c - - nodist_testcases_unit_policytest_SOURCES=usr/lib/api/mechtable.c - -diff --git a/usr/lib/api/api.mk b/usr/lib/api/api.mk -index 8ec4034e..f222dce7 100644 ---- a/usr/lib/api/api.mk -+++ b/usr/lib/api/api.mk -@@ -30,6 +30,7 @@ opencryptoki_libopencryptoki_la_SOURCES = usr/lib/api/api_interface.c \ - usr/lib/common/kdf_translation.c \ - usr/lib/common/mgf_translation.c \ - usr/lib/api/supportedstrengths.c \ -+ usr/lib/common/pqc_supported.c \ - usr/lib/config/cfgparse.y usr/lib/config/cfglex.l - - nodist_opencryptoki_libopencryptoki_la_SOURCES = \ -diff --git a/usr/lib/api/mechtable.inc b/usr/lib/api/mechtable.inc -index f74e08b7..e3d14e3e 100644 ---- a/usr/lib/api/mechtable.inc -+++ b/usr/lib/api/mechtable.inc -@@ -78,7 +78,7 @@ const struct mechrow mechtable_rows[] = - { "CKM_IBM_ATTRIBUTEBOUND_WRAP", CKM_IBM_ATTRIBUTEBOUND_WRAP, 0, MC_INFORMATION_UNAVAILABLE, MCF_WRAPUNWRAP | MCF_NEEDSPARAM }, - { "CKM_IBM_BTC_DERIVE", CKM_IBM_BTC_DERIVE, 0, MC_INFORMATION_UNAVAILABLE, MCF_DERIVE | MCF_NEEDSPARAM }, - { "CKM_IBM_CMAC", CKM_IBM_CMAC, 0, MC_KEY_DEPENDENT, MCF_SIGNVERIFY }, -- { "CKM_IBM_DILITHIUM", CKM_IBM_DILITHIUM, 0, 3366, MCF_KEYGEN | MCF_SIGNVERIFY }, -+ { "CKM_IBM_DILITHIUM", CKM_IBM_DILITHIUM, 0, MC_KEY_DEPENDENT, MCF_KEYGEN | MCF_SIGNVERIFY }, - { "CKM_IBM_ECDSA_OTHER", CKM_IBM_ECDSA_OTHER, 0, MC_KEY_DEPENDENT, MCF_SIGNVERIFY | MCF_NEEDSPARAM }, - { "CKM_IBM_EC_X25519", CKM_IBM_EC_X25519, 0, MC_INFORMATION_UNAVAILABLE, MCF_DERIVE }, - { "CKM_IBM_EC_X448", CKM_IBM_EC_X448, 0, MC_INFORMATION_UNAVAILABLE, MCF_DERIVE }, -diff --git a/usr/lib/api/policy.c b/usr/lib/api/policy.c -index 82e799cd..4bee5180 100644 ---- a/usr/lib/api/policy.c -+++ b/usr/lib/api/policy.c -@@ -25,6 +25,7 @@ - #include - #include - #include -+#include - - /* in h_extern.h, but not included since it creates too many unneeded - dependencies for unit tests. */ -@@ -179,6 +180,65 @@ static CK_RV policy_get_curve_args(get_attr_val_f getattr, void *d, - return rv; - } - -+static CK_RV policy_get_pqc_args(CK_KEY_TYPE key_type, -+ get_attr_val_f getattr, void *d, -+ free_attr_f free_attr, CK_ULONG *size, -+ CK_ULONG *siglen, const CK_BYTE **oid, -+ CK_ULONG *oidlen) -+{ -+ CK_ATTRIBUTE_TYPE keyform_attr; -+ CK_ATTRIBUTE_TYPE mode_attr; -+ CK_ATTRIBUTE *keyform = NULL, *mode = NULL; -+ const struct pqc_oid *oids, *pqc_oid = NULL; -+ CK_RV rv; -+ -+ switch (key_type) { -+ case CKK_IBM_PQC_DILITHIUM: -+ keyform_attr = CKA_IBM_DILITHIUM_KEYFORM; -+ mode_attr = CKA_IBM_DILITHIUM_MODE; -+ oids = dilithium_oids; -+ break; -+ case CKK_IBM_PQC_KYBER: -+ keyform_attr = CKA_IBM_KYBER_KEYFORM; -+ mode_attr = CKA_IBM_KYBER_MODE; -+ oids = kyber_oids; -+ break; -+ default: -+ TRACE_ERROR("Unsupported key type 0x%lx\n", key_type); -+ return CKR_KEY_TYPE_INCONSISTENT; -+ } -+ -+ rv = getattr(d, keyform_attr, &keyform); -+ if (rv == CKR_OK && keyform->ulValueLen == sizeof(CK_ULONG)) { -+ pqc_oid = find_pqc_by_keyform(oids, *(CK_ULONG *)keyform->pValue); -+ } else { -+ rv = getattr(d, mode_attr, &mode); -+ if (rv == CKR_OK && mode->ulValueLen > 0) -+ pqc_oid = find_pqc_by_oid(oids, mode->pValue, mode->ulValueLen); -+ } -+ if (pqc_oid == NULL) { -+ TRACE_ERROR("Did not find KEYFORM or MODE for key type 0x%lx\n", -+ key_type); -+ rv = CKR_TEMPLATE_INCOMPLETE; -+ goto out; -+ } -+ -+ *size = pqc_oid->policy_size; -+ *siglen = pqc_oid->policy_siglen; -+ *oid = pqc_oid->oid; -+ *oidlen = pqc_oid->oid_len; -+ -+out: -+ if (free_attr) { -+ if (keyform) -+ free_attr(keyform); -+ if (mode) -+ free_attr(mode); -+ } -+ -+ return rv; -+} -+ - static CK_RV policy_extract_key_data(get_attr_val_f getattr, void *d, - free_attr_f free_attr, - CK_ULONG *comptarget, CK_ULONG *size, -@@ -273,7 +333,8 @@ static CK_RV policy_extract_key_data(get_attr_val_f getattr, void *d, - *comptarget = COMPARE_SYMMETRIC; - break; - case CKK_IBM_PQC_DILITHIUM: -- *size = 256; -+ rv = policy_get_pqc_args(*(CK_ULONG *)keytype->pValue, getattr, d, -+ free_attr, size, siglen, oid, oidlen); - *comptarget = COMPARE_PQC; - break; - /* POLICY: New CKK */ -@@ -346,6 +407,8 @@ static CK_RV policy_get_sig_size(CK_MECHANISM_PTR mech, struct objstrength *s, - case CKM_RSA_X9_31: - /* Fallthrough */ - case CKM_IBM_ED448_SHA3: -+ /* Fallthrough */ -+ case CKM_IBM_DILITHIUM: - *ssize = s->siglen; - break; - case CKM_DSA_SHA1: -diff --git a/usr/lib/common/pqc_defs.h b/usr/lib/common/pqc_defs.h -index 51ee1200..947f86a7 100644 ---- a/usr/lib/common/pqc_defs.h -+++ b/usr/lib/common/pqc_defs.h -@@ -35,6 +35,8 @@ struct pqc_oid { - const CK_BYTE *oid; - CK_ULONG oid_len; - CK_ULONG keyform; -+ CK_ULONG policy_size; -+ CK_ULONG policy_siglen; - }; - - extern const struct pqc_oid dilithium_oids[]; -diff --git a/usr/lib/common/pqc_supported.c b/usr/lib/common/pqc_supported.c -index 4f048c33..77970352 100644 ---- a/usr/lib/common/pqc_supported.c -+++ b/usr/lib/common/pqc_supported.c -@@ -25,16 +25,22 @@ const CK_ULONG dilithium_r3_87_len = sizeof(dilithium_r3_87); - - const struct pqc_oid dilithium_oids[] = { - { .oid = dilithium_r2_65, .oid_len = dilithium_r2_65_len, -- .keyform = CK_IBM_DILITHIUM_KEYFORM_ROUND2_65 }, -+ .keyform = CK_IBM_DILITHIUM_KEYFORM_ROUND2_65, -+ .policy_size = 256, .policy_siglen = 3366 }, - { .oid = dilithium_r2_87, .oid_len = dilithium_r2_87_len, -- .keyform = CK_IBM_DILITHIUM_KEYFORM_ROUND2_87 }, -+ .keyform = CK_IBM_DILITHIUM_KEYFORM_ROUND2_87, -+ .policy_size = 256, .policy_siglen = 4668 }, - { .oid = dilithium_r3_44, .oid_len = dilithium_r3_44_len, -- .keyform = CK_IBM_DILITHIUM_KEYFORM_ROUND3_44 }, -+ .keyform = CK_IBM_DILITHIUM_KEYFORM_ROUND3_44, -+ .policy_size = 256, .policy_siglen = 2420 }, - { .oid = dilithium_r3_65, .oid_len = dilithium_r3_65_len, -- .keyform = CK_IBM_DILITHIUM_KEYFORM_ROUND3_65 }, -+ .keyform = CK_IBM_DILITHIUM_KEYFORM_ROUND3_65, -+ .policy_size = 256, .policy_siglen = 3293 }, - { .oid = dilithium_r3_87, .oid_len = dilithium_r3_87_len, -- .keyform = CK_IBM_DILITHIUM_KEYFORM_ROUND3_87 }, -- { .oid = NULL, .oid_len = 0, .keyform = 0 } -+ .keyform = CK_IBM_DILITHIUM_KEYFORM_ROUND3_87, -+ .policy_size = 256, .policy_siglen = 4595 }, -+ { .oid = NULL, .oid_len = 0, .keyform = 0, -+ .policy_size = 0, .policy_siglen = 0 } - }; - - const CK_BYTE kyber_r2_768[] = OCK_KYBER_R2_768; -@@ -44,10 +50,13 @@ const CK_ULONG kyber_r2_1024_len = sizeof(kyber_r2_1024); - - const struct pqc_oid kyber_oids[] = { - { .oid = kyber_r2_768, .oid_len = kyber_r2_768_len, -- .keyform = CK_IBM_KYBER_KEYFORM_ROUND2_768 }, -+ .keyform = CK_IBM_KYBER_KEYFORM_ROUND2_768, -+ .policy_size = 256, .policy_siglen = 0 }, - { .oid = kyber_r2_1024, .oid_len = kyber_r2_1024_len, -- .keyform = CK_IBM_KYBER_KEYFORM_ROUND2_1024 }, -- { .oid = NULL, .oid_len = 0, .keyform = 0 } -+ .keyform = CK_IBM_KYBER_KEYFORM_ROUND2_1024, -+ .policy_size = 256, .policy_siglen = 0 }, -+ { .oid = NULL, .oid_len = 0, .keyform = 0, -+ .policy_size = 0, .policy_siglen = 0 } - }; - - const struct pqc_oid *find_pqc_by_keyform(const struct pqc_oid *pqcs, --- -2.16.2.windows.1 - diff --git a/0024-TESTCASES-Test-Dilithium-variants.patch b/0024-TESTCASES-Test-Dilithium-variants.patch deleted file mode 100644 index ef76374..0000000 --- a/0024-TESTCASES-Test-Dilithium-variants.patch +++ /dev/null @@ -1,5332 +0,0 @@ -From 2d5a833f21191988649686e836c02c3370283f72 Mon Sep 17 00:00:00 2001 -From: Ingo Franzki -Date: Fri, 18 Feb 2022 14:25:16 +0100 -Subject: [PATCH 24/34] TESTCASES: Test Dilithium variants - -Signed-off-by: Ingo Franzki ---- - testcases/common/common.c | 78 +- - testcases/crypto/dilithium.h | 4769 ++++++++++++++++++++++++++++++++++++- - testcases/crypto/dilithium_func.c | 196 +- - 3 files changed, 4965 insertions(+), 78 deletions(-) - -diff --git a/testcases/common/common.c b/testcases/common/common.c -index fac9e4e6..9d02a01a 100644 ---- a/testcases/common/common.c -+++ b/testcases/common/common.c -@@ -615,21 +615,22 @@ CK_RV create_ECPublicKey(CK_SESSION_HANDLE session, - - /** Create an IBM Dilithium private key using private values **/ - CK_RV create_DilithiumPrivateKey(CK_SESSION_HANDLE session, -- CK_BYTE rho[], CK_ULONG rho_len, -- CK_BYTE seed[], CK_ULONG seed_len, -- CK_BYTE tr[], CK_ULONG tr_len, -- CK_BYTE s1[], CK_ULONG s1_len, -- CK_BYTE s2[], CK_ULONG s2_len, -- CK_BYTE t0[], CK_ULONG t0_len, -- CK_BYTE t1[], CK_ULONG t1_len, -- CK_OBJECT_HANDLE * priv_key) -+ CK_BYTE pkcs8[], CK_ULONG pkcs8_len, -+ CK_ULONG keyform, -+ CK_BYTE rho[], CK_ULONG rho_len, -+ CK_BYTE seed[], CK_ULONG seed_len, -+ CK_BYTE tr[], CK_ULONG tr_len, -+ CK_BYTE s1[], CK_ULONG s1_len, -+ CK_BYTE s2[], CK_ULONG s2_len, -+ CK_BYTE t0[], CK_ULONG t0_len, -+ CK_BYTE t1[], CK_ULONG t1_len, -+ CK_OBJECT_HANDLE * priv_key) - { - CK_OBJECT_CLASS class = CKO_PRIVATE_KEY; - CK_KEY_TYPE keyType = CKK_IBM_PQC_DILITHIUM; - CK_UTF8CHAR label[] = "A Dilithium private key object"; - CK_BYTE subject[] = {0}; - CK_BYTE id[] = { 123 }; -- CK_ULONG keyform = CK_IBM_DILITHIUM_KEYFORM_ROUND2_65; - CK_RV rc; - - CK_BBOOL true = TRUE; -@@ -652,13 +653,32 @@ CK_RV create_DilithiumPrivateKey(CK_SESSION_HANDLE session, - {CKA_IBM_DILITHIUM_T1, t1, t1_len}, - {CKA_IBM_DILITHIUM_KEYFORM, &keyform, sizeof(keyform)}, - }; -+ CK_ATTRIBUTE template_pkcs8[] = { -+ {CKA_CLASS, &class, sizeof(class)}, -+ {CKA_KEY_TYPE, &keyType, sizeof(keyType)}, -+ {CKA_TOKEN, &true, sizeof(true)}, -+ {CKA_PRIVATE, &true, sizeof(true)}, -+ {CKA_LABEL, label, sizeof(label)}, -+ {CKA_SUBJECT, subject, 0}, -+ {CKA_ID, id, sizeof(id)}, -+ {CKA_SENSITIVE, &true, sizeof(true)}, -+ {CKA_SIGN, &true, sizeof(true)}, -+ {CKA_VALUE, pkcs8, pkcs8_len}, -+ }; - - // create key -- rc = funcs->C_CreateObject(session, template, -- sizeof(template) / sizeof(CK_ATTRIBUTE), -- priv_key); -+ if (pkcs8_len > 0) -+ rc = funcs->C_CreateObject(session, template_pkcs8, -+ sizeof(template_pkcs8) / sizeof(CK_ATTRIBUTE), -+ priv_key); -+ else -+ rc = funcs->C_CreateObject(session, template, -+ sizeof(template) / sizeof(CK_ATTRIBUTE), -+ priv_key); - if (rc != CKR_OK) { -- if (is_rejected_by_policy(rc, session)) -+ if (rc == CKR_KEY_SIZE_RANGE) -+ testcase_notice("C_CreateObject rc=%s", p11_get_ckr(rc)); -+ else if (is_rejected_by_policy(rc, session)) - rc = CKR_POLICY_VIOLATION; - else - testcase_error("C_CreateObject rc=%s", p11_get_ckr(rc)); -@@ -669,16 +689,17 @@ CK_RV create_DilithiumPrivateKey(CK_SESSION_HANDLE session, - - /** Create an IBM Dilithium public key using (rho, t1) **/ - CK_RV create_DilithiumPublicKey(CK_SESSION_HANDLE session, -- CK_BYTE rho[], CK_ULONG rho_len, -- CK_BYTE t1[], CK_ULONG t1_len, -- CK_OBJECT_HANDLE * publ_key) -+ CK_BYTE spki[], CK_ULONG spki_len, -+ CK_ULONG keyform, -+ CK_BYTE rho[], CK_ULONG rho_len, -+ CK_BYTE t1[], CK_ULONG t1_len, -+ CK_OBJECT_HANDLE * publ_key) - { - CK_RV rc; - CK_OBJECT_CLASS class = CKO_PUBLIC_KEY; - CK_KEY_TYPE keyType = CKK_IBM_PQC_DILITHIUM; - CK_UTF8CHAR label[] = "A Dilithium public key object"; - CK_BBOOL true = TRUE; -- CK_ULONG keyform = CK_IBM_DILITHIUM_KEYFORM_ROUND2_65; - CK_ATTRIBUTE template[] = { - {CKA_CLASS, &class, sizeof(class)}, - {CKA_KEY_TYPE, &keyType, sizeof(keyType)}, -@@ -689,13 +710,28 @@ CK_RV create_DilithiumPublicKey(CK_SESSION_HANDLE session, - {CKA_IBM_DILITHIUM_T1, t1, t1_len}, - {CKA_IBM_DILITHIUM_KEYFORM, &keyform, sizeof(keyform)}, - }; -+ CK_ATTRIBUTE template_spki[] = { -+ {CKA_CLASS, &class, sizeof(class)}, -+ {CKA_KEY_TYPE, &keyType, sizeof(keyType)}, -+ {CKA_TOKEN, &true, sizeof(true)}, -+ {CKA_LABEL, label, sizeof(label)}, -+ {CKA_VERIFY, &true, sizeof(true)}, -+ {CKA_VALUE, spki, spki_len}, -+ }; - - // create key -- rc = funcs->C_CreateObject(session, template, -- sizeof(template) / sizeof(CK_ATTRIBUTE), -- publ_key); -+ if (spki_len > 0) -+ rc = funcs->C_CreateObject(session, template_spki, -+ sizeof(template_spki) / sizeof(CK_ATTRIBUTE), -+ publ_key); -+ else -+ rc = funcs->C_CreateObject(session, template, -+ sizeof(template) / sizeof(CK_ATTRIBUTE), -+ publ_key); - if (rc != CKR_OK) { -- if (is_rejected_by_policy(rc, session)) -+ if (rc == CKR_KEY_SIZE_RANGE) -+ testcase_notice("C_CreateObject rc=%s", p11_get_ckr(rc)); -+ else if (is_rejected_by_policy(rc, session)) - rc = CKR_POLICY_VIOLATION; - else - testcase_error("C_CreateObject rc=%s", p11_get_ckr(rc)); -diff --git a/testcases/crypto/dilithium.h b/testcases/crypto/dilithium.h -index 24962d3d..c61820b0 100644 ---- a/testcases/crypto/dilithium.h -+++ b/testcases/crypto/dilithium.h -@@ -10,7 +10,7 @@ - - /** - * Experimental Support for Dilithium keys and signatures -- * with oid = 1.3.6.1.4.1.2.267.1.6.5 -+ * with oid = 1.3.6.1.4.1.2.267.xxx - * - * Public-key encoding; raw public-key field. See RFC 3279 for - * subjectPublicKeyInfo (SPKI) structures. -@@ -41,6 +41,7 @@ - struct DILITHIUM_TEST_VECTOR { - char *name; - int version; -+ CK_ULONG keyform; - CK_ULONG rho_len; - CK_BYTE rho[32]; - CK_ULONG seed_len; -@@ -48,17 +49,21 @@ struct DILITHIUM_TEST_VECTOR { - CK_ULONG tr_len; - CK_BYTE tr[48]; - CK_ULONG s1_len; -- CK_BYTE s1[480]; -+ CK_BYTE s1[672]; - CK_ULONG s2_len; -- CK_BYTE s2[576]; -+ CK_BYTE s2[768]; - CK_ULONG t0_len; -- CK_BYTE t0[2688]; -+ CK_BYTE t0[3584]; - CK_ULONG t1_len; -- CK_BYTE t1[1728]; -+ CK_BYTE t1[2560]; -+ CK_BYTE pkcs8[8192]; -+ CK_ULONG pkcs8_len; -+ CK_BYTE spki[8192]; -+ CK_ULONG spki_len; - CK_ULONG msg_len; - CK_BYTE msg[4096]; // adjust to max msg len - CK_ULONG sig_len; -- CK_BYTE sig[3366]; -+ CK_BYTE sig[4668]; - }; - - /** -@@ -66,8 +71,372 @@ struct DILITHIUM_TEST_VECTOR { - */ - struct DILITHIUM_TEST_VECTOR dilithium_tv[] = { - { -- .name = "Dilithium 6-5 KAT 0", -+ .name = "Dilithium Round 2, Level 4 (6-5) KAT 0 (PKCS#8/SPKI)", - .version = 0, -+ .keyform = 0, -+ .rho_len = 0, -+ .seed_len = 0, -+ .tr_len = 0, -+ .s1_len = 0, -+ .s2_len = 0, -+ .t0_len = 0, -+ .t1_len = 0, -+ .pkcs8_len = 5652, -+ .pkcs8 = { -+ 0x30, 0x82, 0x16, 0x10, 0x02, 0x01, 0x00, 0x30, 0x0f, 0x06, 0x0b, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x02, 0x82, 0x0b, 0x01, 0x06, 0x05, 0x05, 0x00, 0x04, 0x82, 0x15, 0xf8, 0x30, 0x82, 0x15, 0xf4, -+ 0x02, 0x01, 0x00, 0x03, 0x21, 0x00, 0x7c, 0x99, 0x35, 0xa0, 0xb0, 0x76, 0x94, 0xaa, 0x0c, 0x6d, 0x10, 0xe4, 0xdb, 0x6b, 0x1a, 0xdd, 0x2f, 0xd8, 0x1a, 0x25, 0xcc, 0xb1, 0x48, 0x03, 0x2d, 0xcd, -+ 0x73, 0x99, 0x36, 0x73, 0x7f, 0x2d, 0x03, 0x21, 0x00, 0x3e, 0x78, 0x4c, 0xcb, 0x7e, 0xbc, 0xdc, 0xfd, 0x45, 0x54, 0x2b, 0x7f, 0x6a, 0xf7, 0x78, 0x74, 0x2e, 0x0f, 0x44, 0x79, 0x17, 0x50, 0x84, -+ 0xaa, 0x48, 0x8b, 0x3b, 0x74, 0x34, 0x06, 0x78, 0xaa, 0x03, 0x31, 0x00, 0x73, 0xfd, 0x5e, 0x3f, 0xe6, 0xfb, 0x80, 0xfa, 0x84, 0x71, 0xc0, 0x8c, 0x68, 0x82, 0xf7, 0x1d, 0x86, 0x21, 0x84, 0xc3, -+ 0x5f, 0x55, 0x76, 0xc0, 0x65, 0x97, 0xd8, 0xdc, 0xfa, 0x36, 0xa8, 0x0b, 0x2c, 0x25, 0x5a, 0x59, 0x9a, 0x55, 0xb0, 0x74, 0xaf, 0x36, 0xe8, 0xdb, 0x79, 0x23, 0xf7, 0x68, 0x03, 0x82, 0x01, 0xe1, -+ 0x00, 0x91, 0xb4, 0x79, 0x09, 0xc5, 0x15, 0x4e, 0x10, 0xb2, 0x0d, 0x12, 0x0d, 0x98, 0x66, 0x0b, 0x08, 0xab, 0x6c, 0xe8, 0xea, 0x09, 0xa6, 0x36, 0x14, 0xac, 0xe0, 0xc0, 0x41, 0x38, 0x13, 0x11, -+ 0xc9, 0xd5, 0x14, 0x6a, 0x71, 0xc0, 0xda, 0x41, 0xa2, 0x49, 0x91, 0x6e, 0x6d, 0x12, 0xf2, 0xc2, 0x6a, 0xd2, 0x4c, 0x55, 0x8c, 0x86, 0x61, 0x62, 0x01, 0xd8, 0x32, 0x12, 0xc3, 0x04, 0x24, 0x26, -+ 0x4b, 0xb2, 0xa2, 0xad, 0xe6, 0xda, 0x2e, 0x36, 0xa9, 0xe8, 0x28, 0x8e, 0x2c, 0xd3, 0xcd, 0x5d, 0x22, 0x6d, 0x66, 0xc6, 0xba, 0x02, 0x0c, 0x31, 0x19, 0x69, 0x43, 0xe4, 0x04, 0x6e, 0x71, 0x67, -+ 0x89, 0x13, 0x14, 0x74, 0x4a, 0x47, 0xb0, 0x50, 0xc3, 0x61, 0x8d, 0x01, 0x22, 0x2a, 0x5a, 0x6b, 0x6a, 0x34, 0x60, 0x26, 0x00, 0x01, 0x68, 0xa6, 0x89, 0x0d, 0x95, 0x10, 0x20, 0x04, 0x82, 0x0c, -+ 0x6b, 0x70, 0x94, 0x89, 0x50, 0x73, 0x26, 0xd4, 0xb5, 0x0b, 0x40, 0x48, 0x82, 0x31, 0x12, 0xc2, 0x02, 0x0d, 0xe2, 0x78, 0xd0, 0x20, 0x2e, 0x4a, 0x07, 0x41, 0x58, 0x2c, 0x47, 0x9c, 0xbb, 0x15, -+ 0x2e, 0x8d, 0x24, 0x73, 0x10, 0xd6, 0xe8, 0x66, 0x01, 0xb3, 0x1c, 0xa5, 0x75, 0xb9, 0xd4, 0xd5, 0x84, 0x4e, 0x08, 0xb9, 0xc9, 0x46, 0xc4, 0x84, 0x26, 0xe9, 0x9a, 0xae, 0x6b, 0x33, 0x94, 0x20, -+ 0x79, 0x35, 0x16, 0x90, 0x58, 0xd4, 0xb2, 0x5e, 0x46, 0xc7, 0x29, 0x09, 0x47, 0xa0, 0x19, 0xb0, 0x16, 0x2a, 0xc6, 0xe1, 0xc0, 0x42, 0x70, 0x04, 0x62, 0x43, 0xe1, 0xcd, 0x6e, 0x52, 0x25, 0x86, -+ 0xca, 0x8a, 0x15, 0x51, 0x2c, 0x69, 0xb1, 0x62, 0x12, 0x89, 0xc9, 0x89, 0x15, 0x2c, 0x8d, 0xb1, 0x01, 0x2c, 0x1c, 0xb2, 0x14, 0x05, 0x5b, 0x1b, 0x95, 0xcc, 0x41, 0x29, 0x27, 0xc3, 0x4a, 0xc8, -+ 0x51, 0xcc, 0x65, 0x19, 0x52, 0x13, 0x5e, 0x38, 0x44, 0x80, 0x8c, 0x32, 0x2b, 0x56, 0xcf, 0x1a, 0x68, 0x0d, 0x80, 0xd3, 0xda, 0x6d, 0xb1, 0xd5, 0xf5, 0x98, 0x50, 0x85, 0x38, 0x30, 0x42, 0x6a, -+ 0x73, 0x9a, 0x4b, 0xcd, 0x50, 0x35, 0x0d, 0x5b, 0x4b, 0x86, 0x90, 0x22, 0xd8, 0x4e, 0x55, 0xa8, 0x23, 0x9d, 0x15, 0x25, 0x50, 0x35, 0x08, 0x91, 0x31, 0xda, 0x08, 0xcf, 0x2a, 0xb3, 0x15, 0x43, -+ 0x33, 0xc8, 0x5d, 0x41, 0x59, 0x43, 0xd4, 0x99, 0x30, 0x94, 0x45, 0xd4, 0x3c, 0x60, 0x16, 0xb2, 0x14, 0x45, 0xab, 0xd1, 0xd5, 0x14, 0x7b, 0x85, 0xc8, 0x8a, 0x1b, 0x6c, 0x66, 0x40, 0x49, 0x02, -+ 0x69, 0xaa, 0x45, 0x83, 0xb2, 0x66, 0x74, 0x81, 0x68, 0x95, 0x2d, 0x51, 0x19, 0x6b, 0x90, 0xab, 0x22, 0x84, 0x55, 0xc9, 0x71, 0xaa, 0x44, 0x00, 0x1c, 0x43, 0xa9, 0x62, 0x47, 0x93, 0x0e, 0xa6, -+ 0xd2, 0xa2, 0xc6, 0x38, 0xa5, 0x17, 0x2f, 0x4a, 0x25, 0x3a, 0x04, 0xb7, 0x54, 0x91, 0x38, 0x07, 0x42, 0x94, 0x45, 0xf3, 0xa2, 0x45, 0xe8, 0x36, 0xc6, 0x48, 0x8a, 0x08, 0x82, 0x4d, 0x97, 0x1b, -+ 0xdd, 0x36, 0xac, 0x43, 0x85, 0xd6, 0xd2, 0x4d, 0x5d, 0x88, 0x69, 0x9b, 0xd4, 0x4e, 0x8c, 0x0c, 0xc3, 0xa5, 0x56, 0xb3, 0x54, 0x0a, 0x26, 0x6c, 0x21, 0x6b, 0x5d, 0x3d, 0x52, 0x9e, 0x5d, 0x0d, -+ 0x9a, 0x00, 0x14, 0x4d, 0x32, 0x08, 0x58, 0x09, 0xd3, 0xd9, 0x38, 0x35, 0x1d, 0xd0, 0xb1, 0x69, 0x29, 0x57, 0x1a, 0x43, 0xc9, 0x32, 0xd3, 0x85, 0xa8, 0x90, 0x0c, 0x6d, 0x1a, 0x2b, 0x74, 0x3a, -+ 0xb9, 0x03, 0x82, 0x02, 0x41, 0x00, 0x16, 0xa7, 0x65, 0x55, 0x1c, 0x11, 0x1e, 0x95, 0x6c, 0x90, 0x30, 0x79, 0x8b, 0x67, 0x8e, 0x0a, 0x36, 0x72, 0xca, 0x50, 0x27, 0x98, 0xe5, 0x46, 0x6c, 0xa2, -+ 0x14, 0x16, 0x33, 0x02, 0x11, 0x2c, 0xc3, 0xa9, 0x6d, 0xa3, 0x86, 0xa9, 0xae, 0xa1, 0x10, 0x27, 0x50, 0x08, 0xd9, 0xb3, 0xb9, 0xc0, 0x51, 0x1d, 0x13, 0x9e, 0x5a, 0x66, 0xe0, 0x0c, 0x76, 0x76, -+ 0x85, 0xa6, 0x0b, 0x12, 0x8f, 0x93, 0xd0, 0x48, 0x02, 0x28, 0x2c, 0x1e, 0x9d, 0x8c, 0x5b, 0x01, 0x14, 0x74, 0x60, 0x66, 0x43, 0xc2, 0x0d, 0x42, 0x1b, 0xa3, 0x8a, 0x44, 0x25, 0x92, 0x44, 0x90, -+ 0x41, 0x06, 0x8a, 0xa9, 0x24, 0x41, 0xa6, 0x81, 0xd5, 0x05, 0x3a, 0xd4, 0x6c, 0x93, 0x45, 0x5d, 0x8c, 0x18, 0x88, 0xd4, 0x5a, 0x20, 0x3d, 0xaa, 0xcd, 0xa0, 0xa6, 0xac, 0x54, 0x45, 0xb3, 0x0b, -+ 0x13, 0xb1, 0x61, 0x1a, 0x08, 0x56, 0x6d, 0x6d, 0x8d, 0xa6, 0xda, 0xc0, 0x8d, 0x0d, 0x33, 0xce, 0x99, 0x96, 0xb4, 0x8b, 0xdb, 0x8d, 0xc8, 0x8c, 0x85, 0x6e, 0x03, 0xb2, 0xc1, 0x2c, 0xaa, 0x43, -+ 0x60, 0x27, 0x60, 0xc1, 0x95, 0x54, 0xca, 0x2e, 0x8d, 0x02, 0x19, 0x83, 0x80, 0x3a, 0x43, 0x1d, 0xcc, 0xd1, 0x82, 0x39, 0x81, 0x90, 0xd1, 0xc2, 0x40, 0xc6, 0x28, 0x6c, 0xb5, 0x8c, 0x6a, 0x15, -+ 0xea, 0xc8, 0x18, 0x42, 0x6a, 0x6b, 0x01, 0x05, 0x93, 0xb1, 0x53, 0x15, 0xaa, 0xcd, 0x96, 0xcd, 0xc4, 0x79, 0x00, 0x64, 0x8a, 0x24, 0xb6, 0x2e, 0xc6, 0x10, 0xb0, 0x32, 0x38, 0xba, 0x66, 0xa2, -+ 0x6a, 0xd9, 0x12, 0x2c, 0x74, 0xc9, 0x15, 0x58, 0x44, 0xd1, 0x45, 0xd4, 0xc9, 0x84, 0x6d, 0x97, 0x55, 0x5c, 0x39, 0xdc, 0x40, 0xc2, 0x83, 0xda, 0x46, 0x82, 0x48, 0x33, 0x14, 0x02, 0xa6, 0xb1, -+ 0x58, 0x78, 0xa3, 0x65, 0x53, 0x8d, 0x25, 0x07, 0xdc, 0x14, 0x5b, 0x73, 0x39, 0xb2, 0x28, 0xb6, 0xd1, 0xb6, 0x54, 0x02, 0x85, 0x9c, 0x00, 0x95, 0x37, 0xd1, 0x6b, 0xb4, 0xa9, 0x32, 0xb9, 0xd5, -+ 0x0b, 0x44, 0xb4, 0x03, 0x6a, 0x0c, 0xa9, 0x21, 0x4e, 0x81, 0x95, 0x36, 0x0c, 0xc0, 0x72, 0x65, 0x59, 0xc4, 0x09, 0x42, 0x39, 0x93, 0x48, 0xd2, 0x03, 0x44, 0x9b, 0xa5, 0x42, 0xa4, 0xd9, 0x9a, -+ 0x19, 0xe4, 0x6c, 0x1a, 0xaa, 0xc4, 0x11, 0x1b, 0x41, 0x2d, 0xf3, 0xb0, 0xcc, 0xac, 0x39, 0xa5, 0x19, 0x05, 0x47, 0xa0, 0x51, 0x56, 0x51, 0x57, 0x8c, 0x5b, 0xed, 0xd6, 0x62, 0xda, 0x5a, 0x75, -+ 0x50, 0x6c, 0x13, 0x11, 0x63, 0x34, 0x52, 0x23, 0x25, 0x46, 0x78, 0x2c, 0x93, 0xc5, 0x20, 0x20, 0x80, 0x59, 0x2a, 0xc2, 0xa4, 0xe6, 0x7a, 0x4e, 0x9c, 0x70, 0xce, 0xa4, 0x8e, 0x86, 0x5d, 0x73, -+ 0x61, 0xca, 0xd1, 0x13, 0xd2, 0xc5, 0xf6, 0xea, 0x95, 0x2a, 0xb8, 0x6c, 0x90, 0x69, 0x23, 0xab, 0xd5, 0x59, 0x00, 0x52, 0x93, 0x51, 0x59, 0x37, 0x34, 0x2b, 0xba, 0xb0, 0xb4, 0x14, 0x93, 0xe1, -+ 0xaa, 0xa8, 0x20, 0x08, 0x0e, 0xa9, 0xca, 0x30, 0x51, 0xb1, 0x60, 0xaa, 0xa8, 0x40, 0xc1, 0x3a, 0x5a, 0xc5, 0xb0, 0x02, 0x1a, 0xae, 0x1e, 0x2c, 0x9b, 0x6c, 0xd7, 0x0e, 0x32, 0x39, 0x06, 0x50, -+ 0x92, 0xa9, 0x71, 0x92, 0x56, 0x02, 0x26, 0xce, 0x9c, 0x41, 0x6e, 0x50, 0x1c, 0x96, 0x4c, 0xa0, 0x7a, 0x13, 0x61, 0x99, 0x01, 0x0b, 0x72, 0x81, 0x45, 0x45, 0x52, 0x1a, 0x0a, 0x6c, 0x31, 0x57, -+ 0x13, 0x6a, 0x71, 0x42, 0x8d, 0x92, 0xe5, 0x60, 0xc8, 0x99, 0x92, 0x42, 0x9a, 0x91, 0xa6, 0xe9, 0x4a, 0x94, 0xa2, 0x58, 0x33, 0x8e, 0x8a, 0xaa, 0x80, 0xc8, 0x89, 0x23, 0x31, 0x3b, 0x6e, 0x33, -+ 0x76, 0x44, 0x1b, 0x57, 0x12, 0x10, 0x37, 0xad, 0xa6, 0x36, 0x0e, 0x43, 0xd6, 0x19, 0xbb, 0x58, 0xed, 0xe2, 0x91, 0x83, 0x1a, 0x10, 0x0a, 0xb7, 0xb9, 0x0b, 0xd3, 0x2a, 0x43, 0x5c, 0x4f, 0x34, -+ 0x18, 0x53, 0xe4, 0xe2, 0x94, 0xde, 0xe4, 0xc1, 0x8a, 0xa5, 0x0a, 0xa5, 0x91, 0x4e, 0x45, 0xb9, 0x6c, 0xe4, 0xc6, 0x4c, 0xaa, 0x64, 0x00, 0x63, 0xdd, 0x1a, 0x33, 0xdc, 0x81, 0x42, 0xc7, 0x0d, -+ 0x4b, 0x80, 0x82, 0x58, 0x29, 0x93, 0x03, 0x82, 0x0a, 0x81, 0x00, 0x78, 0x81, 0x96, 0x2f, 0x23, 0xe6, 0x5b, 0x5c, 0x42, 0xdd, 0xce, 0x0b, 0x7d, 0x97, 0xd3, 0x53, 0x6b, 0xa3, 0xd9, 0x0b, 0xb3, -+ 0x6f, 0x47, 0xdb, 0x3f, 0xb1, 0x38, 0xa0, 0x3a, 0x8d, 0xce, 0x07, 0x90, 0x71, 0x65, 0x8b, 0xbb, 0xf2, 0x55, 0x7e, 0x54, 0xd6, 0xfd, 0x7c, 0x88, 0xfb, 0xbd, 0xbd, 0x73, 0x71, 0x03, 0x3c, 0x86, -+ 0x5f, 0x24, 0x82, 0x1c, 0xb6, 0x86, 0xc7, 0x24, 0xa0, 0x75, 0xf2, 0x34, 0xeb, 0xaf, 0x37, 0xab, 0x7c, 0xdc, 0x57, 0xab, 0xfb, 0xe3, 0x7a, 0xa6, 0x0a, 0x44, 0x29, 0x1c, 0x66, 0x00, 0x8f, 0x22, -+ 0x4e, 0x3b, 0x1a, 0x0e, 0x5e, 0x17, 0xc5, 0xf3, 0xec, 0xe3, 0x11, 0x23, 0x44, 0x49, 0x90, 0x31, 0xb2, 0x1f, 0x50, 0xed, 0x5b, 0xb5, 0xff, 0x84, 0x0c, 0x13, 0x16, 0x45, 0x6b, 0xdc, 0x82, 0x5e, -+ 0xb9, 0x03, 0x9a, 0x8f, 0x62, 0x7e, 0x81, 0xa3, 0xbc, 0x39, 0x54, 0xf4, 0xa4, 0xff, 0xf5, 0x73, 0x71, 0xb4, 0x6b, 0x17, 0xf5, 0xb6, 0x84, 0x53, 0x2c, 0xfd, 0xfa, 0x64, 0x7c, 0x73, 0x24, 0x2c, -+ 0x82, 0xc1, 0x24, 0x4c, 0xc1, 0x41, 0xd3, 0x97, 0x2b, 0x2c, 0xad, 0x88, 0x14, 0xfe, 0x61, 0xec, 0x80, 0xf0, 0x78, 0x3c, 0xe0, 0xc4, 0x19, 0xb6, 0x73, 0x6e, 0xa6, 0xd7, 0xfa, 0xb2, 0x18, 0x95, -+ 0x01, 0xff, 0x37, 0x78, 0x11, 0x56, 0x03, 0xd9, 0x4a, 0xbf, 0xff, 0x5d, 0x61, 0xe2, 0x81, 0xd8, 0xc1, 0xaf, 0x33, 0x2b, 0x63, 0xf9, 0xca, 0x13, 0x4c, 0xd0, 0x0b, 0xb9, 0x4f, 0x6b, 0x33, 0x67, -+ 0x2e, 0x92, 0xd4, 0x21, 0xef, 0xda, 0x70, 0x6e, 0x47, 0x04, 0xd3, 0x89, 0x76, 0xe3, 0x39, 0x12, 0x4a, 0x7b, 0xfc, 0x21, 0x85, 0x61, 0xd3, 0xb9, 0x32, 0x5c, 0x09, 0x69, 0xea, 0x0d, 0x0f, 0xd8, -+ 0x3c, 0x38, 0xd8, 0xf9, 0x84, 0x16, 0xdb, 0x58, 0x5b, 0xf1, 0x6c, 0xaa, 0x1e, 0x11, 0xd8, 0xcf, 0x2b, 0x9a, 0x91, 0x47, 0xa1, 0x14, 0x34, 0x2d, 0x6a, 0x40, 0xaf, 0x35, 0xcb, 0x14, 0x5c, 0xf6, -+ 0x28, 0x55, 0xad, 0x31, 0x96, 0xbe, 0x6c, 0xa9, 0xb8, 0x8c, 0x88, 0xe3, 0x03, 0x6b, 0x33, 0x00, 0x7b, 0x83, 0x10, 0x67, 0xee, 0x46, 0x08, 0xfd, 0x38, 0xf1, 0x1f, 0x10, 0x2a, 0xcb, 0x30, 0x90, -+ 0xfe, 0x7c, 0x11, 0x24, 0xf8, 0x16, 0x4f, 0x99, 0xe7, 0x5f, 0xf9, 0x7e, 0xa0, 0xdb, 0xaa, 0x20, 0x78, 0xf5, 0x90, 0x58, 0xdd, 0x9f, 0x4d, 0x15, 0x73, 0xfe, 0xa0, 0xe7, 0x28, 0x60, 0x0a, 0xbb, -+ 0x63, 0xa9, 0xb9, 0x99, 0xd1, 0xd9, 0x15, 0x27, 0x1c, 0xe7, 0x5b, 0x12, 0x05, 0xa6, 0x20, 0x25, 0x69, 0x1f, 0xa4, 0xf8, 0xad, 0x8a, 0x83, 0x74, 0x94, 0x65, 0x25, 0x81, 0x34, 0x13, 0x1c, 0x01, -+ 0xbf, 0x3d, 0x43, 0x6a, 0x82, 0x9e, 0xa4, 0xff, 0x36, 0xa4, 0x06, 0xa8, 0x91, 0x2a, 0xb6, 0x04, 0x13, 0xcb, 0x67, 0xe1, 0x27, 0xe6, 0xa1, 0xf3, 0xb6, 0xcf, 0x3d, 0x8c, 0x70, 0xf2, 0xb5, 0x6f, -+ 0xe4, 0x57, 0x81, 0x6e, 0x17, 0x30, 0x8c, 0x60, 0x05, 0x37, 0x24, 0xd0, 0x97, 0x0f, 0x7f, 0x41, 0xcd, 0x4c, 0xb4, 0xf4, 0x40, 0xbf, 0xe4, 0xe6, 0x0d, 0xf6, 0x88, 0xb5, 0x36, 0xca, 0x57, 0xc8, -+ 0xf0, 0x15, 0xd8, 0xfd, 0x8d, 0xfd, 0xc4, 0x56, 0x4b, 0xf1, 0x79, 0x40, 0x71, 0x1d, 0xa7, 0x24, 0xa9, 0xb9, 0x86, 0x53, 0x00, 0x58, 0xc4, 0x21, 0x37, 0xd5, 0xce, 0x52, 0x40, 0x1c, 0x26, 0xfa, -+ 0x59, 0x92, 0x93, 0x96, 0x60, 0xdc, 0x65, 0x2d, 0xf1, 0xdd, 0x91, 0x99, 0x59, 0xc7, 0xd1, 0x15, 0xcd, 0x19, 0x64, 0xb0, 0x4e, 0xf0, 0x3c, 0x30, 0xd1, 0xea, 0x29, 0x47, 0xdc, 0x2e, 0x94, 0x5d, -+ 0xb8, 0x78, 0xb4, 0xd7, 0x30, 0x27, 0x98, 0xaf, 0xb9, 0x3f, 0x26, 0xea, 0x9a, 0x95, 0xbf, 0x20, 0xef, 0x05, 0x83, 0x7d, 0xf6, 0xdc, 0xc0, 0xd9, 0x62, 0x4b, 0xf0, 0xd4, 0xdf, 0x28, 0xe0, 0xb6, -+ 0xaf, 0x9d, 0x98, 0xc2, 0x21, 0x96, 0x1a, 0xfe, 0x1e, 0x72, 0x8c, 0x35, 0xaf, 0x7c, 0x6b, 0x42, 0xcc, 0x18, 0x70, 0xac, 0x27, 0xae, 0x90, 0xdb, 0x78, 0xcb, 0x48, 0x85, 0x07, 0xe8, 0x56, 0x1e, -+ 0x13, 0xd5, 0xb1, 0x72, 0xb2, 0xde, 0x08, 0x66, 0x44, 0xb3, 0x9c, 0x19, 0x44, 0x71, 0x5d, 0x26, 0x31, 0x8e, 0x72, 0xf3, 0x21, 0x91, 0x79, 0x18, 0x6a, 0x9f, 0xe0, 0x2e, 0x41, 0xfe, 0x64, 0xa9, -+ 0x55, 0xca, 0x04, 0x4d, 0x1d, 0xc7, 0x97, 0xd4, 0x8a, 0x8f, 0x74, 0xdf, 0xf4, 0x17, 0x75, 0x39, 0x02, 0x0e, 0x52, 0x20, 0x7f, 0x01, 0x8d, 0x07, 0xa5, 0xed, 0x88, 0xd7, 0x2d, 0xc6, 0xf1, 0xe9, -+ 0x2b, 0x36, 0x72, 0x59, 0x4a, 0xee, 0xf3, 0x7e, 0xae, 0x5e, 0xf5, 0xe1, 0xbf, 0xc8, 0x7f, 0x4a, 0x98, 0x36, 0xb2, 0x64, 0x2a, 0x4c, 0x8a, 0xde, 0xdc, 0xc5, 0x1c, 0xf0, 0x70, 0xea, 0x4f, 0xf8, -+ 0xbf, 0xd8, 0x12, 0x1b, 0x5d, 0x43, 0xad, 0xe5, 0xe1, 0x7e, 0xaf, 0x2c, 0x60, 0xb2, 0x0d, 0x36, 0x11, 0xfd, 0xc3, 0xdf, 0xff, 0x32, 0x14, 0xe3, 0xc6, 0x54, 0xac, 0xb9, 0x7e, 0x0e, 0xe7, 0x2f, -+ 0x41, 0x6a, 0x50, 0x83, 0xa3, 0x4c, 0x44, 0xb6, 0xe6, 0xc4, 0x4b, 0xc1, 0x0e, 0x92, 0x5f, 0x61, 0x37, 0x0f, 0x18, 0x06, 0xdf, 0x77, 0xcf, 0xc6, 0x8d, 0x40, 0x80, 0x28, 0x52, 0x29, 0x08, 0x7a, -+ 0xb6, 0xb1, 0x11, 0x5c, 0xab, 0xde, 0x98, 0x2f, 0x11, 0x63, 0xa0, 0xb2, 0x40, 0xaf, 0x6a, 0x5b, 0x94, 0x57, 0xcc, 0xed, 0x75, 0xd2, 0x1b, 0x72, 0xc7, 0x28, 0xba, 0x90, 0x4d, 0x07, 0x39, 0x41, -+ 0x93, 0xdd, 0x59, 0x6d, 0x75, 0xe3, 0x21, 0x33, 0xdf, 0x3e, 0xaf, 0x89, 0xda, 0x68, 0xad, 0x8a, 0xd1, 0x16, 0xc0, 0x0f, 0x54, 0xd5, 0x51, 0xbe, 0x76, 0x29, 0x82, 0xa2, 0x2a, 0x3d, 0xea, 0xe6, -+ 0x2d, 0x34, 0xd2, 0x04, 0xd2, 0xcb, 0x06, 0xc1, 0xa8, 0x4e, 0xb4, 0x7a, 0xc9, 0x49, 0x55, 0x13, 0xc1, 0x72, 0x60, 0x20, 0xd8, 0x82, 0x13, 0x50, 0x9c, 0xc8, 0xf0, 0x12, 0xfa, 0x70, 0x4d, 0x2f, -+ 0xfb, 0xe6, 0xfc, 0xb8, 0xd8, 0x0d, 0x94, 0x7c, 0xfb, 0xd2, 0x0f, 0xef, 0x29, 0x0a, 0xd6, 0x27, 0x18, 0x54, 0x37, 0xd0, 0x24, 0xa9, 0xa1, 0x5e, 0x43, 0x66, 0x24, 0x96, 0x10, 0xbb, 0x75, 0x2d, -+ 0x4a, 0x86, 0xf5, 0x47, 0x2c, 0x23, 0x46, 0x78, 0x95, 0xf3, 0xad, 0x79, 0xf2, 0x37, 0x17, 0xd1, 0x2f, 0xa1, 0xaf, 0xe1, 0x69, 0x4d, 0x6a, 0x4b, 0x51, 0x8e, 0x7e, 0x03, 0x0a, 0x21, 0x44, 0xd8, -+ 0x2c, 0xac, 0x65, 0x03, 0xbe, 0x53, 0x56, 0x06, 0x48, 0xd6, 0xea, 0xc3, 0xaa, 0x19, 0x47, 0x01, 0x76, 0x5b, 0x2b, 0xd9, 0xee, 0x9b, 0x2a, 0xaa, 0x53, 0x62, 0xbc, 0x79, 0xa0, 0x2c, 0x2b, 0xf7, -+ 0x3a, 0xa5, 0x41, 0x1c, 0xbd, 0x04, 0xb9, 0x16, 0xb1, 0x38, 0xfc, 0x7b, 0x0d, 0x55, 0x0e, 0x70, 0x5e, 0x50, 0x3a, 0x42, 0xd3, 0x0b, 0x22, 0x0d, 0x60, 0x8c, 0x83, 0xcf, 0x2e, 0xef, 0x62, 0x79, -+ 0x50, 0xb8, 0x29, 0xdf, 0x33, 0x44, 0xa6, 0xa9, 0x57, 0xb2, 0x97, 0x18, 0x4b, 0xa6, 0x69, 0xc2, 0x25, 0x0a, 0xd4, 0x29, 0x38, 0xe4, 0xf9, 0x22, 0x92, 0x5f, 0x22, 0x88, 0x7d, 0xf7, 0x9e, 0x95, -+ 0x43, 0x36, 0xa3, 0xc0, 0xb7, 0x46, 0x22, 0x84, 0xb4, 0xf3, 0x80, 0x11, 0x5c, 0xe7, 0xc3, 0x25, 0x37, 0x64, 0x47, 0x89, 0xf4, 0x2a, 0x31, 0xdb, 0x5c, 0x84, 0x7c, 0xc0, 0x65, 0xa3, 0xdf, 0x03, -+ 0x54, 0x78, 0x9a, 0x2e, 0x18, 0x49, 0x75, 0x15, 0x1d, 0xfb, 0x96, 0xa9, 0x59, 0x26, 0x97, 0xde, 0xc9, 0xf9, 0xa8, 0xdd, 0xde, 0x89, 0x51, 0x63, 0xbc, 0xfa, 0x48, 0x31, 0x48, 0x5d, 0x2c, 0x98, -+ 0xfd, 0xa5, 0xc8, 0x3c, 0x7e, 0xea, 0xed, 0xc1, 0xbb, 0x1c, 0x03, 0x81, 0x27, 0xe7, 0x92, 0x91, 0x5a, 0xc5, 0x3d, 0x47, 0x62, 0x8a, 0xf3, 0x8b, 0x30, 0xfc, 0x3b, 0xb9, 0x14, 0xfd, 0x7a, 0x4c, -+ 0x29, 0x83, 0x3c, 0x94, 0x9e, 0xf1, 0xc0, 0xac, 0x5f, 0xf3, 0xbf, 0x3c, 0x76, 0xc9, 0xf6, 0x59, 0x35, 0x96, 0x52, 0x14, 0x5a, 0xbc, 0xbe, 0xd4, 0x7b, 0xcf, 0x3b, 0xd5, 0x4f, 0xf6, 0x82, 0x45, -+ 0x2e, 0xd7, 0x51, 0xe2, 0x98, 0x62, 0x93, 0x64, 0xd8, 0x63, 0x3d, 0x24, 0x8b, 0x30, 0x00, 0x96, 0x7c, 0x75, 0x84, 0x7c, 0x61, 0x76, 0x53, 0xcb, 0x44, 0xc5, 0x7c, 0xcf, 0x34, 0xf4, 0xd9, 0xee, -+ 0xd8, 0x3f, 0xd2, 0x87, 0xa1, 0x1a, 0xb8, 0x6f, 0xfb, 0x4c, 0xa0, 0x1f, 0xd8, 0x2b, 0x04, 0x96, 0xe6, 0xfc, 0xed, 0x8d, 0xc6, 0xd1, 0xf6, 0xc7, 0xdd, 0x1e, 0x2a, 0x8f, 0xf3, 0xc3, 0x1a, 0x36, -+ 0x1c, 0x77, 0x9d, 0xe7, 0x6f, 0x00, 0x9d, 0x18, 0xef, 0x19, 0x74, 0x3f, 0x1f, 0xff, 0xa6, 0x04, 0x92, 0xbe, 0x1d, 0x01, 0x46, 0xe6, 0xad, 0x13, 0xc3, 0x81, 0x87, 0x0e, 0x6c, 0xdb, 0xde, 0x7e, -+ 0x5e, 0x71, 0x12, 0x1a, 0x89, 0x26, 0x26, 0xe2, 0xeb, 0xb8, 0x9f, 0x6f, 0x0c, 0x55, 0xc0, 0x4f, 0x9b, 0xcb, 0xaf, 0xb3, 0xf9, 0x05, 0xd4, 0x6d, 0x05, 0x44, 0x10, 0x8c, 0x58, 0x49, 0x7d, 0x44, -+ 0xc6, 0x40, 0xbc, 0xbf, 0xe3, 0x91, 0xdc, 0xdf, 0xee, 0xee, 0x3d, 0x81, 0x59, 0xe9, 0x73, 0x53, 0xfe, 0x1b, 0x42, 0xf8, 0xd7, 0x09, 0x9e, 0x16, 0xd7, 0x3a, 0x44, 0xf3, 0xa7, 0x07, 0xd0, 0x48, -+ 0xb1, 0x9c, 0x6f, 0x84, 0xb3, 0x70, 0x44, 0x13, 0x14, 0x56, 0xf6, 0xcf, 0x52, 0x69, 0x4c, 0x5f, 0x39, 0x1e, 0xe3, 0xdd, 0xfd, 0x7c, 0xbe, 0x36, 0x0b, 0x72, 0x99, 0xbc, 0x99, 0xfa, 0xdf, 0xf6, -+ 0x92, 0xbe, 0xad, 0xbb, 0x31, 0x39, 0x43, 0x33, 0xc1, 0xfa, 0x8d, 0xeb, 0x49, 0x0f, 0xb6, 0x54, 0xea, 0x0c, 0x0e, 0xa9, 0xca, 0x79, 0x8d, 0xf2, 0x86, 0x56, 0xed, 0x4c, 0x60, 0xf6, 0xbd, 0x0c, -+ 0xb2, 0x41, 0x9b, 0x87, 0xa9, 0x14, 0x9f, 0xc8, 0xea, 0x23, 0x6d, 0xb0, 0x8d, 0x5c, 0xb5, 0xb7, 0xdc, 0x6e, 0x61, 0xa9, 0xec, 0xb0, 0x00, 0x06, 0x02, 0xaf, 0x03, 0xb4, 0x49, 0xe7, 0xab, 0xd9, -+ 0x2a, 0x9d, 0xf6, 0x42, 0x0c, 0x04, 0x91, 0x24, 0xd7, 0x64, 0x84, 0xc9, 0x22, 0x92, 0x68, 0x91, 0x05, 0x71, 0x74, 0xfc, 0xde, 0xea, 0x07, 0x2f, 0x7d, 0xe3, 0x8e, 0xa3, 0xcf, 0xab, 0x50, 0xac, -+ 0x5b, 0xd4, 0xaa, 0xd7, 0xca, 0xc3, 0x58, 0x97, 0x72, 0xa1, 0x32, 0xb2, 0x51, 0x0b, 0x62, 0x7a, 0x9e, 0xe1, 0x60, 0xac, 0xb7, 0xa3, 0x55, 0x24, 0xde, 0xe9, 0x49, 0x8b, 0x71, 0xff, 0x65, 0xe9, -+ 0x62, 0x93, 0x06, 0x93, 0xab, 0x8c, 0xd2, 0x54, 0x84, 0xa5, 0x08, 0x43, 0xfe, 0xe4, 0x84, 0xd6, 0xb6, 0xc1, 0xca, 0x9d, 0x85, 0xf9, 0x7d, 0x80, 0x7d, 0xfe, 0x9e, 0x39, 0x62, 0xc1, 0xf0, 0xee, -+ 0xfc, 0x00, 0x17, 0x07, 0x64, 0x4b, 0xe2, 0x52, 0x2c, 0xfa, 0x04, 0x26, 0x73, 0x73, 0x93, 0x93, 0x6d, 0x2f, 0xe1, 0xe2, 0x89, 0x75, 0x79, 0xa0, 0x68, 0xfe, 0x29, 0x65, 0xde, 0x40, 0x21, 0x4b, -+ 0x94, 0xa5, 0x16, 0x08, 0xff, 0xf6, 0xdf, 0x2d, 0x15, 0xdc, 0xe9, 0xa5, 0xb3, 0x0a, 0x11, 0x01, 0x4e, 0xd9, 0x0c, 0x44, 0x46, 0x6f, 0xdf, 0xe0, 0x5c, 0x08, 0x4c, 0x3c, 0x72, 0x47, 0xdf, 0x2c, -+ 0x72, 0x74, 0xf1, 0x87, 0x9f, 0x39, 0x11, 0x1f, 0x61, 0xbb, 0x98, 0xbb, 0xdb, 0x03, 0x45, 0x8d, 0xfa, 0xba, 0x7d, 0xeb, 0xc7, 0x44, 0xdb, 0x04, 0xcd, 0x84, 0xe8, 0x79, 0xbb, 0xb0, 0xc0, 0x70, -+ 0xe5, 0x4b, 0x62, 0x96, 0xab, 0x48, 0xd5, 0x11, 0x7f, 0x91, 0x70, 0x01, 0x28, 0xc7, 0x86, 0xb0, 0x1c, 0x89, 0x1c, 0xc0, 0x81, 0x89, 0x6d, 0x40, 0xbf, 0x87, 0x6a, 0x5d, 0x18, 0x22, 0xdd, 0xc3, -+ 0xf0, 0x6b, 0xca, 0x94, 0x2d, 0x46, 0xd8, 0x49, 0x38, 0x96, 0x55, 0xc8, 0xde, 0xc2, 0xaa, 0xc2, 0xea, 0xf6, 0x1d, 0x11, 0xc7, 0xf7, 0x15, 0x23, 0x36, 0x7e, 0xd4, 0x56, 0x4c, 0x0f, 0x98, 0xd5, -+ 0xb0, 0x38, 0x66, 0x61, 0x8c, 0x3d, 0xe3, 0x7d, 0x56, 0x6e, 0x8c, 0x0f, 0x8f, 0x7a, 0x56, 0x65, 0x68, 0x87, 0x39, 0x86, 0x1f, 0x78, 0x42, 0x92, 0x57, 0x8b, 0x72, 0x80, 0x3f, 0x7a, 0x4b, 0x8d, -+ 0x03, 0x18, 0x30, 0xe0, 0xef, 0x94, 0x47, 0x00, 0x9c, 0x83, 0x9f, 0xd6, 0x94, 0xeb, 0x4f, 0x2b, 0x49, 0x08, 0xb8, 0x4d, 0x11, 0xcc, 0x2d, 0xf4, 0x47, 0xa1, 0xc7, 0xb4, 0x84, 0xa6, 0x14, 0x25, -+ 0x34, 0xd5, 0x62, 0x3e, 0x86, 0xe6, 0xfa, 0xd1, 0x78, 0xa4, 0xa6, 0x0d, 0x4c, 0x8f, 0xe1, 0x1e, 0xe1, 0x53, 0x85, 0xac, 0x79, 0x1b, 0x69, 0x08, 0x48, 0x96, 0xc1, 0xf1, 0x50, 0xd5, 0x0c, 0x24, -+ 0xf5, 0x07, 0x8f, 0x80, 0xfe, 0xad, 0x9b, 0x4f, 0x51, 0x86, 0x49, 0xb6, 0xb4, 0x09, 0x50, 0x2b, 0x38, 0xe0, 0x7b, 0xef, 0x58, 0x77, 0x35, 0xe8, 0xcb, 0xa9, 0xff, 0x4d, 0x96, 0x85, 0x07, 0x63, -+ 0xa4, 0x74, 0x37, 0xb2, 0xda, 0x8f, 0x40, 0x72, 0x5e, 0xc6, 0x46, 0xde, 0xc7, 0x27, 0xa8, 0x81, 0x1d, 0x4e, 0x66, 0x8e, 0xa9, 0x7b, 0xc0, 0x23, 0x7f, 0x4e, 0x4a, 0x25, 0xa2, 0xfa, 0x19, 0x8c, -+ 0x3a, 0x77, 0x4b, 0x57, 0x91, 0x7b, 0x72, 0x07, 0x5a, 0x42, 0x1a, 0x73, 0x90, 0x0b, 0x75, 0x61, 0xee, 0x43, 0x6f, 0x07, 0x75, 0x31, 0x09, 0xf9, 0x22, 0xc0, 0x55, 0x1f, 0x59, 0x1f, 0xb5, 0x46, -+ 0xa8, 0x81, 0xb1, 0x1c, 0x8c, 0x83, 0x6b, 0xf8, 0x3e, 0xc4, 0x2f, 0xf7, 0x45, 0x1b, 0xf3, 0xe0, 0xcb, 0xc8, 0x7c, 0x97, 0x29, 0x7d, 0x8f, 0xd1, 0x1e, 0x53, 0x44, 0x1e, 0x4b, 0x74, 0x4a, 0xfe, -+ 0xe4, 0xaa, 0x0b, 0x72, 0x3b, 0x80, 0x6c, 0x34, 0x85, 0xbb, 0xfb, 0x67, 0x31, 0x06, 0x92, 0x05, 0x10, 0x1c, 0xff, 0xcc, 0x2c, 0xe2, 0x63, 0xf3, 0xec, 0xfe, 0x8d, 0x93, 0x0b, 0xf4, 0x9a, 0xd2, -+ 0x8a, 0x7e, 0x6c, 0xea, 0x75, 0xc5, 0x69, 0x90, 0x6b, 0x5f, 0x93, 0x55, 0x97, 0x1d, 0xf4, 0x03, 0x3d, 0x00, 0x86, 0x65, 0xdd, 0xd0, 0x62, 0x88, 0x11, 0x99, 0x0b, 0x13, 0x04, 0x7a, 0x6b, 0x2e, -+ 0xec, 0xe1, 0x8c, 0x62, 0x55, 0x82, 0xd6, 0x0e, 0x08, 0x7b, 0x13, 0x47, 0x37, 0xbb, 0xc9, 0x26, 0x03, 0x9c, 0xfa, 0x9c, 0xab, 0xab, 0x8e, 0x3b, 0xd6, 0x31, 0x90, 0x7a, 0x33, 0x1f, 0x1b, 0x08, -+ 0xc0, 0x9d, 0xca, 0x05, 0xce, 0xb1, 0x49, 0xa0, 0xdf, 0x0e, 0x9a, 0x43, 0x06, 0xa0, 0x49, 0xc9, 0x06, 0x47, 0xc0, 0xee, 0xe7, 0xbf, 0x84, 0xca, 0xf9, 0x1c, 0x1b, 0xe7, 0x1d, 0xf4, 0xa3, 0x23, -+ 0x69, 0x89, 0x6d, 0xf8, 0xbb, 0x3d, 0xa8, 0xe8, 0x54, 0x4d, 0xd5, 0xc1, 0xd5, 0xcb, 0xa1, 0x34, 0x0b, 0x56, 0xb6, 0xb5, 0x18, 0xaa, 0x62, 0xf9, 0x83, 0xa2, 0x71, 0xba, 0x38, 0x92, 0x04, 0xe1, -+ 0x95, 0x36, 0xac, 0x98, 0x86, 0x87, 0xa2, 0xdc, 0x0c, 0x5d, 0xec, 0xc1, 0xf0, 0x14, 0x33, 0xb7, 0x01, 0xce, 0x27, 0xb5, 0xca, 0x70, 0x27, 0x38, 0x22, 0xfc, 0x8a, 0x3f, 0x58, 0xe5, 0x22, 0xee, -+ 0x8b, 0x8b, 0xd0, 0xb7, 0x56, 0x42, 0x72, 0x9d, 0x9d, 0x4c, 0xee, 0xdb, 0xe3, 0xe8, 0xf9, 0x00, 0x69, 0x1a, 0xca, 0x09, 0x6c, 0x92, 0x7a, 0xc3, 0x4e, 0x94, 0xe2, 0xc7, 0xb8, 0x5d, 0x18, 0x74, -+ 0x5e, 0x42, 0x63, 0xa1, 0x60, 0xfc, 0xc7, 0x87, 0x36, 0x81, 0xf0, 0xdc, 0xc0, 0x36, 0xc1, 0x8d, 0xd0, 0x0f, 0x52, 0x1a, 0x8b, 0x88, 0xd4, 0x8f, 0x71, 0xd2, 0xc5, 0xe7, 0x69, 0xd6, 0xe4, 0x44, -+ 0x35, 0x70, 0xe9, 0x8c, 0x8c, 0xf6, 0x70, 0xc6, 0xaf, 0x97, 0x46, 0xa8, 0xc2, 0x87, 0xf7, 0x5c, 0xc2, 0x6b, 0xd3, 0x36, 0xbe, 0xec, 0x5a, 0xd8, 0xca, 0x35, 0xd1, 0x67, 0x70, 0xcf, 0x09, 0x3f, -+ 0xac, 0x78, 0x81, 0xe8, 0x22, 0xaf, 0x2d, 0xad, 0xb7, 0x27, 0x79, 0xab, 0x3e, 0xd8, 0xbc, 0x79, 0x99, 0x95, 0x7c, 0x0d, 0x8a, 0xbd, 0x71, 0xb2, 0x04, 0xf0, 0xfd, 0xbb, 0xac, 0x65, 0x82, 0x17, -+ 0xe8, 0x83, 0xca, 0xbb, 0x6a, 0xba, 0xc8, 0x0c, 0xf4, 0xba, 0x09, 0x0b, 0x05, 0x71, 0x1b, 0xb3, 0x7b, 0x14, 0x0d, 0xbb, 0x37, 0x4d, 0xa2, 0x89, 0xd7, 0xa9, 0x34, 0x34, 0x49, 0x7d, 0xa9, 0xf8, -+ 0x16, 0x71, 0x34, 0x57, 0x04, 0xec, 0x03, 0xbb, 0x86, 0x82, 0x52, 0x89, 0x37, 0x3f, 0x72, 0x3c, 0x83, 0x83, 0x13, 0xc8, 0x78, 0x7c, 0x1f, 0xad, 0x57, 0x29, 0xb9, 0xe6, 0x6d, 0xda, 0x71, 0x0d, -+ 0xd9, 0xfe, 0xb8, 0xb5, 0xba, 0x24, 0x1a, 0x0b, 0xc4, 0x02, 0xdd, 0x9c, 0x30, 0x00, 0x68, 0xf5, 0x0f, 0x94, 0x47, 0x5e, 0xf2, 0xf4, 0xad, 0xd6, 0x67, 0x11, 0x92, 0x07, 0x5a, 0xd2, 0x42, 0x02, -+ 0xf8, 0xd7, 0x73, 0x66, 0x5c, 0xda, 0x7d, 0x29, 0x79, 0x65, 0x6e, 0xfc, 0x48, 0x94, 0x18, 0xfd, 0x67, 0x99, 0x29, 0xd5, 0xeb, 0x58, 0x4a, 0x6c, 0x18, 0x4d, 0xff, 0xe3, 0xf9, 0x9f, 0x26, 0x71, -+ 0xd5, 0x4e, 0xc3, 0x48, 0x32, 0x2f, 0xa1, 0xae, 0xc4, 0x67, 0xf5, 0x57, 0x91, 0x22, 0x9f, 0x03, 0x03, 0x53, 0xaf, 0x0f, 0x63, 0x3a, 0x34, 0x59, 0x6e, 0xc0, 0x4c, 0xec, 0x58, 0xc2, 0x50, 0xe0, -+ 0x99, 0x40, 0xd4, 0x89, 0xef, 0x4b, 0xb5, 0x47, 0x34, 0xf7, 0x64, 0x69, 0x9a, 0x45, 0x3c, 0x43, 0x76, 0x4d, 0x1c, 0xfd, 0x4a, 0x61, 0x8f, 0xc9, 0xed, 0xe9, 0xe3, 0x45, 0x66, 0x3e, 0x9b, 0x20, -+ 0x89, 0x54, 0xb5, 0x91, 0x8c, 0x61, 0x0d, 0xb7, 0xf5, 0xba, 0xd1, 0xc5, 0xdb, 0x8a, 0x4b, 0xcc, 0xa1, 0xd6, 0x43, 0x92, 0xc7, 0x38, 0x05, 0x36, 0xf0, 0x9c, 0x0a, 0xcc, 0x61, 0xaa, 0xc4, 0x62, -+ 0x99, 0x44, 0xdc, 0x64, 0x42, 0xe2, 0x30, 0x8c, 0x5a, 0xd7, 0x42, 0x6e, 0x1f, 0xae, 0x75, 0xe8, 0xa3, 0xa0, 0xbb, 0xb7, 0xf3, 0x4f, 0xb4, 0x0f, 0x41, 0x4a, 0xc7, 0x97, 0xe0, 0xb7, 0x0f, 0x69, -+ 0x65, 0xfc, 0xd3, 0xe0, 0xed, 0x07, 0xda, 0x8b, 0x75, 0x2f, 0x99, 0x2d, 0x3c, 0xd2, 0xc0, 0x58, 0x87, 0x84, 0x85, 0x77, 0xa0, 0x28, 0x12, 0x72, 0x28, 0x69, 0x4a, 0x8d, 0xd5, 0x57, 0x3a, 0x73, -+ 0x6e, 0xa7, 0xf8, 0x75, 0x06, 0xf9, 0x32, 0xb2, 0xf1, 0x4b, 0x53, 0x86, 0xbd, 0x07, 0x17, 0x04, 0x30, 0x54, 0x82, 0x81, 0x3c, 0xf1, 0x1a, 0xd4, 0x25, 0x0e, 0xc5, 0x79, 0xe8, 0xff, 0x73, 0x4e, -+ 0x07, 0x95, 0xc5, 0x03, 0xb6, 0x2d, 0x6e, 0x44, 0x7b, 0xed, 0xfd, 0xd1, 0x43, 0x44, 0xe1, 0x8d, 0xd3, 0xfb, 0x95, 0xf0, 0x72, 0xec, 0xf7, 0xc0, 0xe5, 0x51, 0x7c, 0x18, 0xc0, 0xa6, 0x35, 0x26, -+ 0xda, 0xdd, 0xc9, 0xbc, 0xaf, 0x8b, 0x8b, 0x6a, 0x26, 0x75, 0x58, 0x1b, 0x9d, 0x46, 0x56, 0x3a, 0xda, 0x1c, 0x93, 0xaa, 0x27, 0xf7, 0xa2, 0xf2, 0xc4, 0xb5, 0xee, 0x8a, 0xed, 0x3d, 0x92, 0x5c, -+ 0x6a, 0x65, 0x47, 0xf6, 0x67, 0x2c, 0x05, 0x8e, 0x5d, 0x95, 0x9b, 0x6b, 0x9e, 0x32, 0x6a, 0xfc, 0x36, 0xe8, 0x9c, 0x14, 0xe6, 0x81, 0x2b, 0x5c, 0xdd, 0xab, 0x38, 0x6b, 0x13, 0xf5, 0xd1, 0x44, -+ 0x1a, 0x78, 0x98, 0x7b, 0xd1, 0x9e, 0xbe, 0xea, 0x91, 0xef, 0xe4, 0x72, 0xc2, 0xf8, 0xc2, 0x0d, 0xe2, 0x11, 0x73, 0xad, 0xb5, 0xaa, 0xf9, 0x17, 0xc6, 0x03, 0x76, 0xc2, 0x77, 0x6d, 0xd0, 0xc6, -+ 0x58, 0xe9, 0x48, 0xf3, 0x46, 0xc2, 0xca, 0x2b, 0x77, 0xdc, 0x6b, 0x8b, 0x84, 0xc3, 0x96, 0x78, 0x7e, 0x62, 0xdf, 0x47, 0x0e, 0x94, 0xd8, 0xab, 0x87, 0xca, 0x45, 0x37, 0xce, 0x65, 0x07, 0x0d, -+ 0xa5, 0xa1, 0xba, 0x4d, 0x22, 0x4d, 0x21, 0x07, 0xff, 0x60, 0x4b, 0x1d, 0x14, 0x25, 0x45, 0x95, 0x8c, 0x11, 0xa3, 0xff, 0xef, 0x36, 0x85, 0x54, 0x69, 0x4f, 0x2b, 0xfa, 0x6b, 0xff, 0x57, 0xf5, -+ 0x49, 0x98, 0x8c, 0xa9, 0x1e, 0x87, 0xc9, 0xdf, 0xc4, 0x74, 0x76, 0xa0, 0x82, 0x06, 0xc5, 0x03, 0x82, 0x06, 0xc1, 0x00, 0x68, 0x59, 0xf6, 0x4c, 0x66, 0x39, 0x16, 0x79, 0x5e, 0x9d, 0x42, 0xa6, -+ 0x28, 0xf7, 0xa1, 0x1f, 0xb6, 0xca, 0xd6, 0xbe, 0x5a, 0x22, 0x92, 0x06, 0xf3, 0x8e, 0xc3, 0xe8, 0x7e, 0x74, 0x87, 0xc6, 0x51, 0x27, 0x45, 0xfe, 0xd6, 0xd0, 0xb6, 0x4f, 0x60, 0x55, 0x07, 0xc0, -+ 0x43, 0xe2, 0x5d, 0x10, 0x3d, 0x19, 0x67, 0x34, 0x93, 0x73, 0x04, 0x73, 0xcd, 0xc0, 0xef, 0x78, 0x0a, 0x83, 0xf2, 0x3a, 0x5c, 0x6c, 0x38, 0x75, 0xbc, 0x10, 0xb6, 0xa0, 0x53, 0xb1, 0x3a, 0xad, -+ 0x6f, 0xd7, 0xff, 0x1e, 0xcf, 0x8f, 0x72, 0x5f, 0x46, 0x01, 0x81, 0x46, 0x0c, 0x5c, 0x75, 0xe0, 0x50, 0x52, 0xfe, 0xa0, 0xdb, 0xc4, 0x99, 0x2e, 0xe0, 0x43, 0x22, 0xbb, 0x21, 0xaf, 0x25, 0xd7, -+ 0x84, 0xcb, 0xd4, 0x34, 0xdf, 0x2a, 0x87, 0xaa, 0x48, 0x6a, 0xe7, 0x05, 0x7f, 0xa0, 0x42, 0x87, 0xda, 0x5f, 0xc0, 0xd0, 0x08, 0x8c, 0x16, 0x82, 0xe0, 0x9e, 0x47, 0xab, 0xf3, 0x08, 0x36, 0xc3, -+ 0x82, 0x42, 0xc8, 0xa4, 0xba, 0x58, 0xfa, 0x4b, 0x7a, 0x17, 0x2d, 0x3b, 0x00, 0x32, 0x51, 0x65, 0x63, 0xfe, 0x46, 0xb7, 0x2e, 0x49, 0xdf, 0xac, 0xd0, 0x03, 0x3e, 0x44, 0x4f, 0x5c, 0xef, 0x0f, -+ 0xf4, 0x97, 0xd4, 0xd9, 0xd9, 0xe5, 0xb9, 0x88, 0x6f, 0x4b, 0x47, 0x29, 0x9d, 0x63, 0x52, 0x41, 0xa6, 0xdc, 0xf0, 0x69, 0xf1, 0xed, 0x1c, 0x81, 0x5a, 0x51, 0xa6, 0xf7, 0xc7, 0x55, 0xd3, 0xfb, -+ 0x2c, 0xf0, 0xd6, 0x19, 0xf8, 0x48, 0xc3, 0x5c, 0x5a, 0x61, 0x41, 0x9a, 0x53, 0xcb, 0xa5, 0x19, 0x30, 0x97, 0x43, 0x83, 0x82, 0x8d, 0xad, 0x66, 0x7c, 0x4b, 0x89, 0x01, 0xf7, 0xdf, 0x68, 0xf4, -+ 0x9f, 0x7f, 0xa2, 0x06, 0x9f, 0x2a, 0xa5, 0xc7, 0xfd, 0xc8, 0x5d, 0x37, 0xd0, 0x66, 0x35, 0x65, 0x71, 0x1d, 0xd1, 0xc5, 0xe6, 0x53, 0x56, 0xdd, 0xfb, 0xe3, 0x4a, 0x67, 0x5c, 0x6f, 0x55, 0xa1, -+ 0x85, 0xcb, 0xec, 0x69, 0x74, 0x7d, 0x3f, 0x24, 0x8c, 0xc8, 0x1d, 0x1f, 0xb7, 0xd4, 0xbc, 0x6e, 0x3f, 0x78, 0x5a, 0xd0, 0x21, 0x70, 0x01, 0x7d, 0x2a, 0x98, 0x5c, 0x5c, 0xc9, 0xe1, 0x05, 0xcb, -+ 0x5d, 0xfb, 0x87, 0x86, 0xd4, 0x57, 0x80, 0x13, 0xe7, 0x93, 0xb0, 0xaf, 0x05, 0x75, 0x65, 0xb5, 0xfa, 0xa4, 0xf4, 0x1c, 0x3e, 0xa7, 0x10, 0xc0, 0x19, 0xf8, 0x7d, 0x7e, 0x39, 0xbb, 0xbc, 0x09, -+ 0x32, 0x01, 0xf7, 0x6e, 0xcb, 0x19, 0xb4, 0xe4, 0xbe, 0x14, 0x90, 0x86, 0x39, 0xe4, 0x46, 0xc3, 0xd1, 0xb1, 0x35, 0x04, 0x8b, 0x72, 0xd3, 0x86, 0x30, 0x93, 0x92, 0x1c, 0xe6, 0x0c, 0x51, 0xc7, -+ 0x08, 0x13, 0xf6, 0xe8, 0xf0, 0xb0, 0x69, 0x38, 0xb4, 0xaf, 0xa7, 0x96, 0xd1, 0x6f, 0xb6, 0x5f, 0x0c, 0x1b, 0xe6, 0xf2, 0x15, 0xa4, 0xe3, 0xf0, 0x84, 0x6f, 0xc3, 0x9b, 0xd6, 0xd2, 0xc3, 0x3b, -+ 0xca, 0xdf, 0xff, 0x2a, 0x9e, 0xcd, 0x96, 0x40, 0xdc, 0x3c, 0xbf, 0xee, 0x6f, 0x25, 0x1f, 0xc5, 0x3a, 0x53, 0x50, 0xbf, 0x1b, 0xbc, 0x12, 0xc9, 0x4b, 0x26, 0x3c, 0xd5, 0x89, 0xb5, 0x6a, 0xee, -+ 0x8a, 0xed, 0x89, 0x1d, 0x34, 0x2b, 0x76, 0xbd, 0x62, 0x15, 0xd9, 0x32, 0x11, 0xef, 0xed, 0x7c, 0x4a, 0x86, 0xba, 0xec, 0x77, 0xbb, 0xe1, 0x18, 0xca, 0xc7, 0x4d, 0xb9, 0xba, 0x42, 0x41, 0xf1, -+ 0x19, 0xfb, 0x7f, 0x11, 0x15, 0xdd, 0x0a, 0xea, 0x46, 0x5a, 0x83, 0xbf, 0xb0, 0x7d, 0x7f, 0x59, 0x5b, 0x66, 0xa7, 0xeb, 0x25, 0x7b, 0x39, 0x5e, 0x80, 0x45, 0x81, 0xc2, 0x58, 0x85, 0x4b, 0xf7, -+ 0x64, 0x3f, 0x2b, 0xbc, 0x4a, 0xc2, 0xd2, 0x11, 0x20, 0x70, 0xc3, 0xe6, 0x7b, 0xab, 0x0d, 0x40, 0x67, 0x59, 0xea, 0xe6, 0xeb, 0x90, 0xbe, 0x54, 0xef, 0x92, 0x27, 0xd4, 0xb1, 0x66, 0xad, 0x28, -+ 0x83, 0x42, 0x22, 0x68, 0x57, 0x65, 0x71, 0x18, 0x77, 0xa7, 0x82, 0x7b, 0x2b, 0xdb, 0xd7, 0xf5, 0xf8, 0xf2, 0x19, 0x92, 0x4a, 0xdd, 0x54, 0xcc, 0x30, 0x24, 0x92, 0x41, 0x82, 0xc5, 0x42, 0xc8, -+ 0x10, 0x11, 0x02, 0x1d, 0x85, 0x1b, 0x39, 0x72, 0x86, 0xf5, 0x21, 0x1c, 0x82, 0xde, 0xf9, 0xb5, 0x20, 0xf5, 0x64, 0x64, 0x80, 0x5a, 0xd6, 0x5d, 0xbd, 0x8c, 0x60, 0x39, 0xbe, 0x94, 0x86, 0xc0, -+ 0x72, 0xc0, 0x43, 0x08, 0x05, 0x13, 0x1b, 0xe1, 0xc1, 0xea, 0x43, 0xcc, 0x08, 0xe6, 0xbe, 0x9c, 0xeb, 0x94, 0xab, 0xeb, 0x48, 0xc8, 0xdd, 0x39, 0xa9, 0xde, 0x0b, 0xf0, 0xa3, 0x32, 0xcc, 0x25, -+ 0xef, 0x1b, 0x36, 0xa3, 0x6b, 0x06, 0xf8, 0x0d, 0x55, 0x9b, 0x46, 0xe2, 0x4d, 0x03, 0x02, 0xe8, 0x2b, 0x81, 0xf1, 0xad, 0xd4, 0x88, 0x49, 0xee, 0xd8, 0x7c, 0x3e, 0x3b, 0xee, 0x7a, 0xf5, 0xcb, -+ 0xcc, 0x96, 0x01, 0x7e, 0x32, 0xe8, 0xbe, 0x0c, 0x3e, 0xbc, 0x6f, 0x19, 0x87, 0x43, 0x58, 0xce, 0x70, 0xc8, 0x51, 0xad, 0xa6, 0xba, 0x86, 0x85, 0x39, 0x2c, 0x69, 0xb9, 0x06, 0x2c, 0xf7, 0x4d, -+ 0xb3, 0xc5, 0x3c, 0xbb, 0xe8, 0xe7, 0x78, 0x2b, 0xe7, 0x9e, 0x09, 0x10, 0x0d, 0xe3, 0x21, 0x1d, 0xf2, 0xa5, 0x72, 0x08, 0x31, 0x4b, 0x63, 0x2e, 0xd8, 0x79, 0x9e, 0x42, 0x26, 0xf7, 0xbd, 0x08, -+ 0x79, 0x02, 0xab, 0xfd, 0x1f, 0x3b, 0xe7, 0x29, 0xf8, 0x60, 0x85, 0x13, 0x32, 0x6f, 0x3f, 0x41, 0x42, 0xd5, 0xa9, 0xcf, 0x3c, 0x19, 0x61, 0x80, 0xa2, 0x3c, 0xbb, 0xbd, 0x37, 0xde, 0x01, 0xc6, -+ 0x06, 0x4a, 0x75, 0xcb, 0xac, 0x5d, 0xc7, 0x73, 0x15, 0x76, 0x36, 0x6f, 0x3c, 0x70, 0x6e, 0xc2, 0x9e, 0x0e, 0x15, 0xbe, 0xc3, 0x48, 0xa6, 0x07, 0xe2, 0xcf, 0xd4, 0x2a, 0x39, 0x2a, 0xf0, 0xe8, -+ 0xc4, 0x9d, 0x4b, 0x89, 0xce, 0x05, 0x79, 0xd1, 0x86, 0xf0, 0xc2, 0x2d, 0x84, 0xc5, 0x06, 0x6f, 0x1a, 0x3d, 0xf6, 0x0e, 0xed, 0x66, 0x3d, 0xfa, 0xf6, 0xa3, 0x5a, 0x74, 0x40, 0xd4, 0xc7, 0x68, -+ 0x53, 0xd7, 0x44, 0xfe, 0x18, 0x6d, 0x98, 0x9f, 0x27, 0x1f, 0x15, 0xc7, 0x0a, 0xd7, 0xa8, 0x60, 0x91, 0xb7, 0x78, 0x67, 0xdd, 0x2c, 0x4f, 0xe5, 0xe2, 0xad, 0x84, 0x3d, 0x7c, 0x99, 0xa6, 0x0b, -+ 0x70, 0x76, 0x8f, 0x38, 0x44, 0xf5, 0xcc, 0x35, 0x55, 0xf8, 0x19, 0x1b, 0x56, 0xc8, 0xb5, 0xc6, 0x2d, 0x54, 0xd3, 0xde, 0x7b, 0xed, 0x98, 0x01, 0x34, 0xf1, 0x51, 0xd7, 0xe2, 0xce, 0x98, 0x2f, -+ 0x19, 0x2c, 0x01, 0x08, 0x42, 0xbd, 0x4a, 0xb4, 0x40, 0xee, 0xe9, 0x83, 0x6e, 0x87, 0x2c, 0x8a, 0xef, 0x5e, 0x2b, 0x86, 0x57, 0x8b, 0x36, 0x8c, 0xde, 0x15, 0x96, 0x86, 0x14, 0xea, 0xde, 0xcc, -+ 0xed, 0xe7, 0x21, 0x79, 0xd4, 0xcc, 0x12, 0x72, 0xea, 0x35, 0xbb, 0x7c, 0xb0, 0x92, 0x50, 0x8c, 0x72, 0x2d, 0x6d, 0xb8, 0xe8, 0xcc, 0x9e, 0x52, 0xc0, 0xe7, 0x07, 0xe4, 0x4a, 0xa0, 0x23, 0x71, -+ 0x53, 0xae, 0x20, 0xde, 0x9d, 0x7e, 0xd5, 0x79, 0x80, 0xc1, 0xb8, 0x19, 0xf7, 0xb3, 0xa8, 0x59, 0x40, 0x2b, 0x1c, 0xdd, 0xfd, 0x0c, 0x49, 0x18, 0x4b, 0x9a, 0x12, 0x04, 0xa1, 0xd3, 0xdb, 0x63, -+ 0xff, 0x9d, 0x6a, 0xb7, 0x9b, 0x18, 0xcf, 0xed, 0x0b, 0xdb, 0x76, 0xcc, 0xaa, 0x24, 0xa3, 0xf7, 0xb6, 0xe7, 0x7c, 0xa7, 0x3d, 0x63, 0xf1, 0x5b, 0x2e, 0x98, 0x67, 0x65, 0xd8, 0x68, 0x55, 0xbc, -+ 0xef, 0x5d, 0x45, 0x3d, 0xea, 0xda, 0x48, 0xc3, 0x0f, 0x48, 0xbd, 0x33, 0xe8, 0xe1, 0x35, 0x11, 0x27, 0x98, 0xfe, 0xc7, 0x44, 0xea, 0xd8, 0x33, 0x8a, 0x77, 0x87, 0xfe, 0x59, 0xe3, 0xb9, 0x08, -+ 0x89, 0xed, 0x89, 0x63, 0x50, 0x9f, 0x68, 0x02, 0x0f, 0x43, 0x61, 0x92, 0xe9, 0x54, 0x41, 0x12, 0x7e, 0x03, 0xf7, 0x64, 0x32, 0x84, 0x54, 0x76, 0xff, 0x28, 0x4e, 0xe6, 0xf1, 0x62, 0x8c, 0x0f, -+ 0xec, 0x65, 0xeb, 0xbd, 0x9b, 0x48, 0xf2, 0x02, 0x5f, 0x14, 0x34, 0xe5, 0xa2, 0x23, 0x5f, 0x8f, 0xce, 0x87, 0x3d, 0x8c, 0xca, 0xef, 0x94, 0xc3, 0xba, 0xeb, 0x20, 0x0a, 0x08, 0x00, 0xa6, 0x0b, -+ 0x9b, 0x1f, 0xfe, 0x72, 0x78, 0xfd, 0x5a, 0x3a, 0xe3, 0x0c, 0x89, 0x34, 0x36, 0xc9, 0xaf, 0x57, 0xd7, 0xe0, 0xd6, 0x25, 0x80, 0xd4, 0x5f, 0x2d, 0xa7, 0x77, 0x0e, 0x49, 0x94, 0xa1, 0x03, 0x1e, -+ 0x7b, 0xa1, 0xf3, 0x3c, 0xaa, 0x2e, 0x20, 0xec, 0x83, 0x96, 0x60, 0x5f, 0xbd, 0x4c, 0x7b, 0x32, 0xa1, 0xd4, 0x60, 0xb8, 0x7b, 0xbd, 0xc1, 0x93, 0x46, 0x98, 0xe7, 0xf5, 0x71, 0xda, 0x56, 0x08, -+ 0xdc, 0x1d, 0xa5, 0x80, 0x54, 0xba, 0xa0, 0xb9, 0x83, 0xe0, 0x34, 0x84, 0xcf, 0xbc, 0x32, 0xd0, 0x1c, 0xca, 0x13, 0xbc, 0xf0, 0xca, 0x0c, 0xef, 0xb7, 0x48, 0x03, 0xb9, 0xfd, 0xbe, 0xca, 0x4c, -+ 0x70, 0x42, 0xb7, 0x28, 0xd2, 0xb7, 0xb3, 0xf4, 0x3c, 0x47, 0xb0, 0xa4, 0x2a, 0xd0, 0xc6, 0xd5, 0x26, 0x2b, 0xc3, 0x98, 0xe7, 0x16, 0x44, 0x8b, 0xb6, 0x8f, 0xae, 0x54, 0x2a, 0x0d, 0x5f, 0x46, -+ 0x82, 0x0b, 0xd7, 0x8a, 0x61, 0xc3, 0xe8, 0x33, 0xfd, 0x7b, 0xee, 0x3e, 0x39, 0x8f, 0x7c, 0x91, 0xb8, 0x9f, 0x89, 0xe5, 0xeb, 0x12, 0x29, 0x8e, 0xcc, 0x7b, 0xca, 0x64, 0xf9, 0x9f, 0x0a, 0x5f, -+ 0x48, 0xf5, 0x3f, 0x16, 0x77, 0xee, 0x13, 0xa1, 0xe1, 0xf3, 0x7c, 0x1a, 0x8d, 0xd2, 0x85, 0x58, 0x16, 0x45, 0x9b, 0x3f, 0x14, 0xa1, 0x0c, 0xae, 0x3d, 0x7f, 0x19, 0xe0, 0x41, 0x2a, 0xee, 0xa5, -+ 0x3b, 0x43, 0x05, 0xf0, 0xd0, 0x22, 0x88, 0x50, 0x60, 0xda, 0x5f, 0x2b, 0x46, 0x65, 0x2d, 0xe2, 0xf5, 0xaf, 0xa8, 0xbf, 0x7e, 0x6c, 0xe5, 0xa6, 0xe4, 0x04, 0x66, 0xc7, 0x92, 0xd3, 0x17, 0x50, -+ 0xad, 0x28, 0x40, 0x65, 0x1a, 0x44, 0x2b, 0x67, 0x35, 0x37, 0xa7, 0x6e, 0xf4, 0x5f, 0xa1, 0xd3, 0x8f, 0xf7, 0x7e, 0x47, 0x05, 0x21, 0x77, 0x39, 0x92, 0xd5, 0x69, 0x94, 0x12, 0x6e, 0xc9, 0xec, -+ 0x78, 0x04, 0x73, 0xa0, 0xfd, 0x5a, 0x7e, 0xc9, 0xf3, 0xcf, 0x78, 0x12, 0x56, 0xf4, 0xf1, 0xa9, 0x69, 0x30, 0x15, 0x22, 0x19, 0x3f, 0xd8, 0xcb, 0x8c, 0xcd, 0x5f, 0x94, 0x12, 0x4f, 0x2c, 0x39, -+ 0xca, 0xe4, 0x55, 0x74, 0x76, 0x1b, 0xd7, 0x6f, 0x64, 0x15, 0x39, 0x34, 0xbd, 0x22, 0x0b, 0x48, 0xfb, 0xd0, 0xfc, 0xb5, 0xd7, 0x39, 0x83, 0x3b, 0x20, 0x3d, 0x55, 0x43, 0x57, 0xc8, 0xb1, 0x91, -+ 0x9a, 0x46, 0xfd, 0x84, 0xfa, 0x39, 0x64, 0x3f, 0x5e, 0x05, 0x9e, 0xb7, 0x4d, 0x13, 0xf8, 0xb9, 0xd0, 0xe7, 0x73, 0x28, 0x5f, 0xe9, 0xdb, 0x5d, 0x98, 0x56, 0xc1, 0x4d, 0x76, 0xe2, 0x85, 0xcf, -+ 0xb7, 0xf1, 0xe0, 0x0c, 0xb2, 0x16, 0xcf, 0xda, 0xa9, 0x1f, 0x68, 0x44, 0xdc, 0x08, 0x13, 0xf3, 0xec, 0xb5, 0x36, 0x31, 0xb1, 0xcd, 0x94, 0x19, 0x4a, 0x69, 0x26, 0xb0, 0x1b, 0x35, 0xa3, 0x16, -+ 0x16, 0x9a, 0x67, 0x2b, 0xcb, 0x96, 0xf3, 0xd3, 0x50, 0x4c, 0xaa, 0xf4, 0xc0, 0x81, 0x32, 0xc1, 0x77, 0xfd, 0x47, 0x38, 0x51, 0x28, 0x23, 0x84, 0x91, 0x47, 0x19, 0x7c, 0x87, 0x3d, 0xf3, 0xc6, -+ 0xdd, 0x2a, 0xcb, 0xcc, 0xd2, 0x55, 0x7d, 0xd9, 0x64, 0x34, 0x4a, 0xa1, 0x15, 0xc9, 0x47, 0x2f, 0x38, 0xbd, 0x98, 0x96, 0x4a, 0x42, 0x26, 0xef, 0x91, 0x3b, 0x64, 0xb5, 0x40, 0x5d, 0xef, 0xca, -+ 0x1f, 0x00, 0x8c, 0xba, 0xce, 0xde, 0x3f, 0x63, 0x26, 0xbf, 0x43, 0x66, 0x3e, 0xdd, 0xb7, 0xe5, 0xfc, 0xca, 0x8e, 0xad, 0xa8, 0x86, 0xbc, 0x9d, 0xf4, 0x2e, 0xde, 0x4c, 0xc1, 0x42, 0x9c, 0xd7, -+ 0xff, 0x4c, 0x9e, 0xed, 0xb2, 0xa2, 0x10, 0xbc, 0x28, 0xae, 0x73, 0xd6, 0x23, 0x3f, 0x6f, 0x65, 0x70, 0x73, 0x9a, 0x0c, 0x53, 0x72, 0x6c, 0x32, 0xe2, 0xe9, 0x5f, 0xca, 0x8c, 0x34, 0xe3, 0x60, -+ 0x93, 0x72, 0x6a, 0x87, 0x01, 0x3a, 0x35, 0x12, 0xd8, 0x8e, 0xa9, 0x2a, 0x6b, 0x95, 0x7b, 0xf1, 0x0a, 0x6a, 0xee, 0x6e, 0x97, 0x6a, 0xbc, 0xc9, 0x5c, 0x14, 0xa8, 0xef, 0xe6, 0x0a, 0x2c, 0x1a, -+ 0xf0, 0xab, 0xbe, 0x6b, 0xf7, 0x89, 0xd4, 0xf6, 0x97, 0x38, 0x09, 0x2a, 0xe3, 0xe6, 0x2a, 0xf1, 0x77, 0x3e, 0xd6, 0xa4, 0x2f, 0x1a, 0xaa, 0xbc, 0xfb, 0x98, 0x73, 0x1c, 0xe2, 0x70, 0x1f, 0x42, -+ 0xe4, 0xba, 0x9e, 0x12, 0x8b, 0x67, 0x26, 0x1c, 0x59, 0x8d, 0x31, 0x89, 0xd0, 0x60, 0x24, 0xf0, 0x1e, 0x25, 0x35, 0x4d, 0x60, 0x32, 0x7f, 0xb6, 0x57, 0x0b, 0xf7, 0xe1, 0x63, 0xfa, 0x04, 0x32, -+ 0x4b, 0x32, 0xe7, 0xeb, 0xf8, 0xb7, 0x8a, 0xc2, 0xec, 0xfa, 0x3d, 0x36, 0xb1, 0x3a, 0x59, 0xa3, 0xa7, 0x27, 0x02, 0x9b, -+ }, -+ .spki_len = 1798, -+ .spki = { -+ 0x30, 0x82, 0x07, 0x02, 0x30, 0x0f, 0x06, 0x0b, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x02, 0x82, 0x0b, 0x01, 0x06, 0x05, 0x05, 0x00, 0x03, 0x82, 0x06, 0xed, 0x00, 0x30, 0x82, 0x06, 0xe8, 0x03, 0x21, -+ 0x00, 0x7c, 0x99, 0x35, 0xa0, 0xb0, 0x76, 0x94, 0xaa, 0x0c, 0x6d, 0x10, 0xe4, 0xdb, 0x6b, 0x1a, 0xdd, 0x2f, 0xd8, 0x1a, 0x25, 0xcc, 0xb1, 0x48, 0x03, 0x2d, 0xcd, 0x73, 0x99, 0x36, 0x73, 0x7f, -+ 0x2d, 0x03, 0x82, 0x06, 0xc1, 0x00, 0x68, 0x59, 0xf6, 0x4c, 0x66, 0x39, 0x16, 0x79, 0x5e, 0x9d, 0x42, 0xa6, 0x28, 0xf7, 0xa1, 0x1f, 0xb6, 0xca, 0xd6, 0xbe, 0x5a, 0x22, 0x92, 0x06, 0xf3, 0x8e, -+ 0xc3, 0xe8, 0x7e, 0x74, 0x87, 0xc6, 0x51, 0x27, 0x45, 0xfe, 0xd6, 0xd0, 0xb6, 0x4f, 0x60, 0x55, 0x07, 0xc0, 0x43, 0xe2, 0x5d, 0x10, 0x3d, 0x19, 0x67, 0x34, 0x93, 0x73, 0x04, 0x73, 0xcd, 0xc0, -+ 0xef, 0x78, 0x0a, 0x83, 0xf2, 0x3a, 0x5c, 0x6c, 0x38, 0x75, 0xbc, 0x10, 0xb6, 0xa0, 0x53, 0xb1, 0x3a, 0xad, 0x6f, 0xd7, 0xff, 0x1e, 0xcf, 0x8f, 0x72, 0x5f, 0x46, 0x01, 0x81, 0x46, 0x0c, 0x5c, -+ 0x75, 0xe0, 0x50, 0x52, 0xfe, 0xa0, 0xdb, 0xc4, 0x99, 0x2e, 0xe0, 0x43, 0x22, 0xbb, 0x21, 0xaf, 0x25, 0xd7, 0x84, 0xcb, 0xd4, 0x34, 0xdf, 0x2a, 0x87, 0xaa, 0x48, 0x6a, 0xe7, 0x05, 0x7f, 0xa0, -+ 0x42, 0x87, 0xda, 0x5f, 0xc0, 0xd0, 0x08, 0x8c, 0x16, 0x82, 0xe0, 0x9e, 0x47, 0xab, 0xf3, 0x08, 0x36, 0xc3, 0x82, 0x42, 0xc8, 0xa4, 0xba, 0x58, 0xfa, 0x4b, 0x7a, 0x17, 0x2d, 0x3b, 0x00, 0x32, -+ 0x51, 0x65, 0x63, 0xfe, 0x46, 0xb7, 0x2e, 0x49, 0xdf, 0xac, 0xd0, 0x03, 0x3e, 0x44, 0x4f, 0x5c, 0xef, 0x0f, 0xf4, 0x97, 0xd4, 0xd9, 0xd9, 0xe5, 0xb9, 0x88, 0x6f, 0x4b, 0x47, 0x29, 0x9d, 0x63, -+ 0x52, 0x41, 0xa6, 0xdc, 0xf0, 0x69, 0xf1, 0xed, 0x1c, 0x81, 0x5a, 0x51, 0xa6, 0xf7, 0xc7, 0x55, 0xd3, 0xfb, 0x2c, 0xf0, 0xd6, 0x19, 0xf8, 0x48, 0xc3, 0x5c, 0x5a, 0x61, 0x41, 0x9a, 0x53, 0xcb, -+ 0xa5, 0x19, 0x30, 0x97, 0x43, 0x83, 0x82, 0x8d, 0xad, 0x66, 0x7c, 0x4b, 0x89, 0x01, 0xf7, 0xdf, 0x68, 0xf4, 0x9f, 0x7f, 0xa2, 0x06, 0x9f, 0x2a, 0xa5, 0xc7, 0xfd, 0xc8, 0x5d, 0x37, 0xd0, 0x66, -+ 0x35, 0x65, 0x71, 0x1d, 0xd1, 0xc5, 0xe6, 0x53, 0x56, 0xdd, 0xfb, 0xe3, 0x4a, 0x67, 0x5c, 0x6f, 0x55, 0xa1, 0x85, 0xcb, 0xec, 0x69, 0x74, 0x7d, 0x3f, 0x24, 0x8c, 0xc8, 0x1d, 0x1f, 0xb7, 0xd4, -+ 0xbc, 0x6e, 0x3f, 0x78, 0x5a, 0xd0, 0x21, 0x70, 0x01, 0x7d, 0x2a, 0x98, 0x5c, 0x5c, 0xc9, 0xe1, 0x05, 0xcb, 0x5d, 0xfb, 0x87, 0x86, 0xd4, 0x57, 0x80, 0x13, 0xe7, 0x93, 0xb0, 0xaf, 0x05, 0x75, -+ 0x65, 0xb5, 0xfa, 0xa4, 0xf4, 0x1c, 0x3e, 0xa7, 0x10, 0xc0, 0x19, 0xf8, 0x7d, 0x7e, 0x39, 0xbb, 0xbc, 0x09, 0x32, 0x01, 0xf7, 0x6e, 0xcb, 0x19, 0xb4, 0xe4, 0xbe, 0x14, 0x90, 0x86, 0x39, 0xe4, -+ 0x46, 0xc3, 0xd1, 0xb1, 0x35, 0x04, 0x8b, 0x72, 0xd3, 0x86, 0x30, 0x93, 0x92, 0x1c, 0xe6, 0x0c, 0x51, 0xc7, 0x08, 0x13, 0xf6, 0xe8, 0xf0, 0xb0, 0x69, 0x38, 0xb4, 0xaf, 0xa7, 0x96, 0xd1, 0x6f, -+ 0xb6, 0x5f, 0x0c, 0x1b, 0xe6, 0xf2, 0x15, 0xa4, 0xe3, 0xf0, 0x84, 0x6f, 0xc3, 0x9b, 0xd6, 0xd2, 0xc3, 0x3b, 0xca, 0xdf, 0xff, 0x2a, 0x9e, 0xcd, 0x96, 0x40, 0xdc, 0x3c, 0xbf, 0xee, 0x6f, 0x25, -+ 0x1f, 0xc5, 0x3a, 0x53, 0x50, 0xbf, 0x1b, 0xbc, 0x12, 0xc9, 0x4b, 0x26, 0x3c, 0xd5, 0x89, 0xb5, 0x6a, 0xee, 0x8a, 0xed, 0x89, 0x1d, 0x34, 0x2b, 0x76, 0xbd, 0x62, 0x15, 0xd9, 0x32, 0x11, 0xef, -+ 0xed, 0x7c, 0x4a, 0x86, 0xba, 0xec, 0x77, 0xbb, 0xe1, 0x18, 0xca, 0xc7, 0x4d, 0xb9, 0xba, 0x42, 0x41, 0xf1, 0x19, 0xfb, 0x7f, 0x11, 0x15, 0xdd, 0x0a, 0xea, 0x46, 0x5a, 0x83, 0xbf, 0xb0, 0x7d, -+ 0x7f, 0x59, 0x5b, 0x66, 0xa7, 0xeb, 0x25, 0x7b, 0x39, 0x5e, 0x80, 0x45, 0x81, 0xc2, 0x58, 0x85, 0x4b, 0xf7, 0x64, 0x3f, 0x2b, 0xbc, 0x4a, 0xc2, 0xd2, 0x11, 0x20, 0x70, 0xc3, 0xe6, 0x7b, 0xab, -+ 0x0d, 0x40, 0x67, 0x59, 0xea, 0xe6, 0xeb, 0x90, 0xbe, 0x54, 0xef, 0x92, 0x27, 0xd4, 0xb1, 0x66, 0xad, 0x28, 0x83, 0x42, 0x22, 0x68, 0x57, 0x65, 0x71, 0x18, 0x77, 0xa7, 0x82, 0x7b, 0x2b, 0xdb, -+ 0xd7, 0xf5, 0xf8, 0xf2, 0x19, 0x92, 0x4a, 0xdd, 0x54, 0xcc, 0x30, 0x24, 0x92, 0x41, 0x82, 0xc5, 0x42, 0xc8, 0x10, 0x11, 0x02, 0x1d, 0x85, 0x1b, 0x39, 0x72, 0x86, 0xf5, 0x21, 0x1c, 0x82, 0xde, -+ 0xf9, 0xb5, 0x20, 0xf5, 0x64, 0x64, 0x80, 0x5a, 0xd6, 0x5d, 0xbd, 0x8c, 0x60, 0x39, 0xbe, 0x94, 0x86, 0xc0, 0x72, 0xc0, 0x43, 0x08, 0x05, 0x13, 0x1b, 0xe1, 0xc1, 0xea, 0x43, 0xcc, 0x08, 0xe6, -+ 0xbe, 0x9c, 0xeb, 0x94, 0xab, 0xeb, 0x48, 0xc8, 0xdd, 0x39, 0xa9, 0xde, 0x0b, 0xf0, 0xa3, 0x32, 0xcc, 0x25, 0xef, 0x1b, 0x36, 0xa3, 0x6b, 0x06, 0xf8, 0x0d, 0x55, 0x9b, 0x46, 0xe2, 0x4d, 0x03, -+ 0x02, 0xe8, 0x2b, 0x81, 0xf1, 0xad, 0xd4, 0x88, 0x49, 0xee, 0xd8, 0x7c, 0x3e, 0x3b, 0xee, 0x7a, 0xf5, 0xcb, 0xcc, 0x96, 0x01, 0x7e, 0x32, 0xe8, 0xbe, 0x0c, 0x3e, 0xbc, 0x6f, 0x19, 0x87, 0x43, -+ 0x58, 0xce, 0x70, 0xc8, 0x51, 0xad, 0xa6, 0xba, 0x86, 0x85, 0x39, 0x2c, 0x69, 0xb9, 0x06, 0x2c, 0xf7, 0x4d, 0xb3, 0xc5, 0x3c, 0xbb, 0xe8, 0xe7, 0x78, 0x2b, 0xe7, 0x9e, 0x09, 0x10, 0x0d, 0xe3, -+ 0x21, 0x1d, 0xf2, 0xa5, 0x72, 0x08, 0x31, 0x4b, 0x63, 0x2e, 0xd8, 0x79, 0x9e, 0x42, 0x26, 0xf7, 0xbd, 0x08, 0x79, 0x02, 0xab, 0xfd, 0x1f, 0x3b, 0xe7, 0x29, 0xf8, 0x60, 0x85, 0x13, 0x32, 0x6f, -+ 0x3f, 0x41, 0x42, 0xd5, 0xa9, 0xcf, 0x3c, 0x19, 0x61, 0x80, 0xa2, 0x3c, 0xbb, 0xbd, 0x37, 0xde, 0x01, 0xc6, 0x06, 0x4a, 0x75, 0xcb, 0xac, 0x5d, 0xc7, 0x73, 0x15, 0x76, 0x36, 0x6f, 0x3c, 0x70, -+ 0x6e, 0xc2, 0x9e, 0x0e, 0x15, 0xbe, 0xc3, 0x48, 0xa6, 0x07, 0xe2, 0xcf, 0xd4, 0x2a, 0x39, 0x2a, 0xf0, 0xe8, 0xc4, 0x9d, 0x4b, 0x89, 0xce, 0x05, 0x79, 0xd1, 0x86, 0xf0, 0xc2, 0x2d, 0x84, 0xc5, -+ 0x06, 0x6f, 0x1a, 0x3d, 0xf6, 0x0e, 0xed, 0x66, 0x3d, 0xfa, 0xf6, 0xa3, 0x5a, 0x74, 0x40, 0xd4, 0xc7, 0x68, 0x53, 0xd7, 0x44, 0xfe, 0x18, 0x6d, 0x98, 0x9f, 0x27, 0x1f, 0x15, 0xc7, 0x0a, 0xd7, -+ 0xa8, 0x60, 0x91, 0xb7, 0x78, 0x67, 0xdd, 0x2c, 0x4f, 0xe5, 0xe2, 0xad, 0x84, 0x3d, 0x7c, 0x99, 0xa6, 0x0b, 0x70, 0x76, 0x8f, 0x38, 0x44, 0xf5, 0xcc, 0x35, 0x55, 0xf8, 0x19, 0x1b, 0x56, 0xc8, -+ 0xb5, 0xc6, 0x2d, 0x54, 0xd3, 0xde, 0x7b, 0xed, 0x98, 0x01, 0x34, 0xf1, 0x51, 0xd7, 0xe2, 0xce, 0x98, 0x2f, 0x19, 0x2c, 0x01, 0x08, 0x42, 0xbd, 0x4a, 0xb4, 0x40, 0xee, 0xe9, 0x83, 0x6e, 0x87, -+ 0x2c, 0x8a, 0xef, 0x5e, 0x2b, 0x86, 0x57, 0x8b, 0x36, 0x8c, 0xde, 0x15, 0x96, 0x86, 0x14, 0xea, 0xde, 0xcc, 0xed, 0xe7, 0x21, 0x79, 0xd4, 0xcc, 0x12, 0x72, 0xea, 0x35, 0xbb, 0x7c, 0xb0, 0x92, -+ 0x50, 0x8c, 0x72, 0x2d, 0x6d, 0xb8, 0xe8, 0xcc, 0x9e, 0x52, 0xc0, 0xe7, 0x07, 0xe4, 0x4a, 0xa0, 0x23, 0x71, 0x53, 0xae, 0x20, 0xde, 0x9d, 0x7e, 0xd5, 0x79, 0x80, 0xc1, 0xb8, 0x19, 0xf7, 0xb3, -+ 0xa8, 0x59, 0x40, 0x2b, 0x1c, 0xdd, 0xfd, 0x0c, 0x49, 0x18, 0x4b, 0x9a, 0x12, 0x04, 0xa1, 0xd3, 0xdb, 0x63, 0xff, 0x9d, 0x6a, 0xb7, 0x9b, 0x18, 0xcf, 0xed, 0x0b, 0xdb, 0x76, 0xcc, 0xaa, 0x24, -+ 0xa3, 0xf7, 0xb6, 0xe7, 0x7c, 0xa7, 0x3d, 0x63, 0xf1, 0x5b, 0x2e, 0x98, 0x67, 0x65, 0xd8, 0x68, 0x55, 0xbc, 0xef, 0x5d, 0x45, 0x3d, 0xea, 0xda, 0x48, 0xc3, 0x0f, 0x48, 0xbd, 0x33, 0xe8, 0xe1, -+ 0x35, 0x11, 0x27, 0x98, 0xfe, 0xc7, 0x44, 0xea, 0xd8, 0x33, 0x8a, 0x77, 0x87, 0xfe, 0x59, 0xe3, 0xb9, 0x08, 0x89, 0xed, 0x89, 0x63, 0x50, 0x9f, 0x68, 0x02, 0x0f, 0x43, 0x61, 0x92, 0xe9, 0x54, -+ 0x41, 0x12, 0x7e, 0x03, 0xf7, 0x64, 0x32, 0x84, 0x54, 0x76, 0xff, 0x28, 0x4e, 0xe6, 0xf1, 0x62, 0x8c, 0x0f, 0xec, 0x65, 0xeb, 0xbd, 0x9b, 0x48, 0xf2, 0x02, 0x5f, 0x14, 0x34, 0xe5, 0xa2, 0x23, -+ 0x5f, 0x8f, 0xce, 0x87, 0x3d, 0x8c, 0xca, 0xef, 0x94, 0xc3, 0xba, 0xeb, 0x20, 0x0a, 0x08, 0x00, 0xa6, 0x0b, 0x9b, 0x1f, 0xfe, 0x72, 0x78, 0xfd, 0x5a, 0x3a, 0xe3, 0x0c, 0x89, 0x34, 0x36, 0xc9, -+ 0xaf, 0x57, 0xd7, 0xe0, 0xd6, 0x25, 0x80, 0xd4, 0x5f, 0x2d, 0xa7, 0x77, 0x0e, 0x49, 0x94, 0xa1, 0x03, 0x1e, 0x7b, 0xa1, 0xf3, 0x3c, 0xaa, 0x2e, 0x20, 0xec, 0x83, 0x96, 0x60, 0x5f, 0xbd, 0x4c, -+ 0x7b, 0x32, 0xa1, 0xd4, 0x60, 0xb8, 0x7b, 0xbd, 0xc1, 0x93, 0x46, 0x98, 0xe7, 0xf5, 0x71, 0xda, 0x56, 0x08, 0xdc, 0x1d, 0xa5, 0x80, 0x54, 0xba, 0xa0, 0xb9, 0x83, 0xe0, 0x34, 0x84, 0xcf, 0xbc, -+ 0x32, 0xd0, 0x1c, 0xca, 0x13, 0xbc, 0xf0, 0xca, 0x0c, 0xef, 0xb7, 0x48, 0x03, 0xb9, 0xfd, 0xbe, 0xca, 0x4c, 0x70, 0x42, 0xb7, 0x28, 0xd2, 0xb7, 0xb3, 0xf4, 0x3c, 0x47, 0xb0, 0xa4, 0x2a, 0xd0, -+ 0xc6, 0xd5, 0x26, 0x2b, 0xc3, 0x98, 0xe7, 0x16, 0x44, 0x8b, 0xb6, 0x8f, 0xae, 0x54, 0x2a, 0x0d, 0x5f, 0x46, 0x82, 0x0b, 0xd7, 0x8a, 0x61, 0xc3, 0xe8, 0x33, 0xfd, 0x7b, 0xee, 0x3e, 0x39, 0x8f, -+ 0x7c, 0x91, 0xb8, 0x9f, 0x89, 0xe5, 0xeb, 0x12, 0x29, 0x8e, 0xcc, 0x7b, 0xca, 0x64, 0xf9, 0x9f, 0x0a, 0x5f, 0x48, 0xf5, 0x3f, 0x16, 0x77, 0xee, 0x13, 0xa1, 0xe1, 0xf3, 0x7c, 0x1a, 0x8d, 0xd2, -+ 0x85, 0x58, 0x16, 0x45, 0x9b, 0x3f, 0x14, 0xa1, 0x0c, 0xae, 0x3d, 0x7f, 0x19, 0xe0, 0x41, 0x2a, 0xee, 0xa5, 0x3b, 0x43, 0x05, 0xf0, 0xd0, 0x22, 0x88, 0x50, 0x60, 0xda, 0x5f, 0x2b, 0x46, 0x65, -+ 0x2d, 0xe2, 0xf5, 0xaf, 0xa8, 0xbf, 0x7e, 0x6c, 0xe5, 0xa6, 0xe4, 0x04, 0x66, 0xc7, 0x92, 0xd3, 0x17, 0x50, 0xad, 0x28, 0x40, 0x65, 0x1a, 0x44, 0x2b, 0x67, 0x35, 0x37, 0xa7, 0x6e, 0xf4, 0x5f, -+ 0xa1, 0xd3, 0x8f, 0xf7, 0x7e, 0x47, 0x05, 0x21, 0x77, 0x39, 0x92, 0xd5, 0x69, 0x94, 0x12, 0x6e, 0xc9, 0xec, 0x78, 0x04, 0x73, 0xa0, 0xfd, 0x5a, 0x7e, 0xc9, 0xf3, 0xcf, 0x78, 0x12, 0x56, 0xf4, -+ 0xf1, 0xa9, 0x69, 0x30, 0x15, 0x22, 0x19, 0x3f, 0xd8, 0xcb, 0x8c, 0xcd, 0x5f, 0x94, 0x12, 0x4f, 0x2c, 0x39, 0xca, 0xe4, 0x55, 0x74, 0x76, 0x1b, 0xd7, 0x6f, 0x64, 0x15, 0x39, 0x34, 0xbd, 0x22, -+ 0x0b, 0x48, 0xfb, 0xd0, 0xfc, 0xb5, 0xd7, 0x39, 0x83, 0x3b, 0x20, 0x3d, 0x55, 0x43, 0x57, 0xc8, 0xb1, 0x91, 0x9a, 0x46, 0xfd, 0x84, 0xfa, 0x39, 0x64, 0x3f, 0x5e, 0x05, 0x9e, 0xb7, 0x4d, 0x13, -+ 0xf8, 0xb9, 0xd0, 0xe7, 0x73, 0x28, 0x5f, 0xe9, 0xdb, 0x5d, 0x98, 0x56, 0xc1, 0x4d, 0x76, 0xe2, 0x85, 0xcf, 0xb7, 0xf1, 0xe0, 0x0c, 0xb2, 0x16, 0xcf, 0xda, 0xa9, 0x1f, 0x68, 0x44, 0xdc, 0x08, -+ 0x13, 0xf3, 0xec, 0xb5, 0x36, 0x31, 0xb1, 0xcd, 0x94, 0x19, 0x4a, 0x69, 0x26, 0xb0, 0x1b, 0x35, 0xa3, 0x16, 0x16, 0x9a, 0x67, 0x2b, 0xcb, 0x96, 0xf3, 0xd3, 0x50, 0x4c, 0xaa, 0xf4, 0xc0, 0x81, -+ 0x32, 0xc1, 0x77, 0xfd, 0x47, 0x38, 0x51, 0x28, 0x23, 0x84, 0x91, 0x47, 0x19, 0x7c, 0x87, 0x3d, 0xf3, 0xc6, 0xdd, 0x2a, 0xcb, 0xcc, 0xd2, 0x55, 0x7d, 0xd9, 0x64, 0x34, 0x4a, 0xa1, 0x15, 0xc9, -+ 0x47, 0x2f, 0x38, 0xbd, 0x98, 0x96, 0x4a, 0x42, 0x26, 0xef, 0x91, 0x3b, 0x64, 0xb5, 0x40, 0x5d, 0xef, 0xca, 0x1f, 0x00, 0x8c, 0xba, 0xce, 0xde, 0x3f, 0x63, 0x26, 0xbf, 0x43, 0x66, 0x3e, 0xdd, -+ 0xb7, 0xe5, 0xfc, 0xca, 0x8e, 0xad, 0xa8, 0x86, 0xbc, 0x9d, 0xf4, 0x2e, 0xde, 0x4c, 0xc1, 0x42, 0x9c, 0xd7, 0xff, 0x4c, 0x9e, 0xed, 0xb2, 0xa2, 0x10, 0xbc, 0x28, 0xae, 0x73, 0xd6, 0x23, 0x3f, -+ 0x6f, 0x65, 0x70, 0x73, 0x9a, 0x0c, 0x53, 0x72, 0x6c, 0x32, 0xe2, 0xe9, 0x5f, 0xca, 0x8c, 0x34, 0xe3, 0x60, 0x93, 0x72, 0x6a, 0x87, 0x01, 0x3a, 0x35, 0x12, 0xd8, 0x8e, 0xa9, 0x2a, 0x6b, 0x95, -+ 0x7b, 0xf1, 0x0a, 0x6a, 0xee, 0x6e, 0x97, 0x6a, 0xbc, 0xc9, 0x5c, 0x14, 0xa8, 0xef, 0xe6, 0x0a, 0x2c, 0x1a, 0xf0, 0xab, 0xbe, 0x6b, 0xf7, 0x89, 0xd4, 0xf6, 0x97, 0x38, 0x09, 0x2a, 0xe3, 0xe6, -+ 0x2a, 0xf1, 0x77, 0x3e, 0xd6, 0xa4, 0x2f, 0x1a, 0xaa, 0xbc, 0xfb, 0x98, 0x73, 0x1c, 0xe2, 0x70, 0x1f, 0x42, 0xe4, 0xba, 0x9e, 0x12, 0x8b, 0x67, 0x26, 0x1c, 0x59, 0x8d, 0x31, 0x89, 0xd0, 0x60, -+ 0x24, 0xf0, 0x1e, 0x25, 0x35, 0x4d, 0x60, 0x32, 0x7f, 0xb6, 0x57, 0x0b, 0xf7, 0xe1, 0x63, 0xfa, 0x04, 0x32, 0x4b, 0x32, 0xe7, 0xeb, 0xf8, 0xb7, 0x8a, 0xc2, 0xec, 0xfa, 0x3d, 0x36, 0xb1, 0x3a, -+ 0x59, 0xa3, 0xa7, 0x27, 0x02, 0x9b -+ }, -+ .msg_len = 33, -+ .msg = { 0xD8, 0x1C, 0x4D, 0x8D, 0x73, 0x4F, 0xCB, 0xFB, 0xEA, 0xDE, 0x3D, 0x3F, 0x8A, 0x03, 0x9F, 0xAA, 0x2A, 0x2C, 0x99, 0x57, 0xE8, 0x35, 0xAD, 0x55, 0xB2, 0x2E, 0x75, 0xBF, 0x57, 0xBB, 0x55, 0x6A, -+ 0xC8 }, -+ .sig_len = 3366, -+ .sig = { -+ 0xD7, 0x87, 0x58, 0xC8, 0x99, 0x2B, 0x2D, 0x0F, 0xC5, 0x1A, 0x03, 0xD7, 0x6B, 0x07, 0x17, 0x96, 0xF9, 0x15, 0xD6, 0xB2, 0x41, 0x5F, 0x61, 0x07, 0x58, 0xD1, 0x88, 0xAC, 0x94, 0x04, 0x8C, 0x53, -+ 0x0D, 0x81, 0xB2, 0xC1, 0xBC, 0x7B, 0x95, 0x19, 0xB3, 0xEB, 0x4F, 0x0C, 0xFA, 0x97, 0xDA, 0x66, 0xB8, 0xD1, 0x44, 0x70, 0x71, 0x1D, 0x1A, 0x85, 0x1A, 0x52, 0xB3, 0x72, 0xC2, 0xBE, 0xB4, 0xA3, -+ 0xFE, 0xA3, 0x3A, 0x29, 0x3B, 0xC1, 0x83, 0x47, 0xD1, 0x51, 0x47, 0x7D, 0x19, 0x7B, 0xD9, 0x39, 0x7A, 0xB2, 0x74, 0x1A, 0xA6, 0x5E, 0x37, 0xC1, 0x72, 0xEF, 0x29, 0xDD, 0xA2, 0x70, 0x0E, 0xCF, -+ 0xB9, 0xDF, 0x47, 0x8F, 0xF9, 0x4C, 0xAC, 0x21, 0x6B, 0xDD, 0xD6, 0x7E, 0x2A, 0x52, 0xA2, 0x83, 0x31, 0x2A, 0x2B, 0x09, 0x92, 0x7B, 0xA1, 0x73, 0x7F, 0xBD, 0xEC, 0x13, 0x85, 0x97, 0x83, 0x71, -+ 0xA1, 0xA1, 0x99, 0x54, 0x3B, 0x8B, 0x36, 0x91, 0x10, 0xEB, 0xE2, 0xB6, 0xDF, 0x44, 0x1A, 0xEE, 0x27, 0xB5, 0x20, 0x7C, 0xDD, 0x3A, 0xF2, 0xF7, 0x71, 0x09, 0xF2, 0xA3, 0xDB, 0x89, 0xD3, 0x00, -+ 0xE2, 0x7D, 0x9A, 0x48, 0x47, 0x33, 0xF6, 0x08, 0x5D, 0x21, 0xA3, 0xC4, 0xD7, 0xD2, 0x7F, 0x24, 0x37, 0x89, 0xFE, 0xBE, 0x36, 0x1D, 0xE4, 0x82, 0x9C, 0x20, 0x44, 0x1C, 0xD1, 0x93, 0x8E, 0xD9, -+ 0xF2, 0x83, 0xAC, 0x3C, 0x9A, 0x2D, 0x1F, 0xE8, 0xFE, 0x60, 0x55, 0xED, 0x3C, 0x51, 0x1C, 0x83, 0x07, 0x41, 0x1B, 0x65, 0xDE, 0xCD, 0xFC, 0x6D, 0xDF, 0xB5, 0xEB, 0x0E, 0x1B, 0xDF, 0xC7, 0x0A, -+ 0xD9, 0x09, 0xEB, 0x11, 0xB3, 0x89, 0x7D, 0xF7, 0x0E, 0x40, 0x65, 0x6E, 0x8D, 0x86, 0x9C, 0x24, 0xC4, 0x39, 0x31, 0x53, 0xF3, 0x8C, 0x7F, 0x58, 0x51, 0xEF, 0xDB, 0x40, 0xD8, 0x02, 0x3F, 0x6D, -+ 0x37, 0x51, 0x8F, 0xBA, 0xFE, 0x34, 0x44, 0xA8, 0x84, 0xD6, 0xD7, 0x6E, 0x8E, 0x99, 0x54, 0x22, 0xA2, 0x8C, 0xA1, 0x3C, 0x22, 0x32, 0x00, 0xF3, 0xB5, 0x1D, 0xD4, 0xA0, 0x62, 0x34, 0xA6, 0x9F, -+ 0xAB, 0x90, 0xF3, 0x38, 0x0A, 0x12, 0x5A, 0x63, 0x24, 0x59, 0xE4, 0x89, 0xD9, 0x21, 0x4E, 0x83, 0x7A, 0x16, 0xA8, 0x2D, 0x5F, 0x28, 0x9D, 0xD6, 0x00, 0x06, 0x03, 0x4A, 0xD2, 0xC2, 0xA8, 0x2C, -+ 0x7E, 0x68, 0x4E, 0xCE, 0xD1, 0x58, 0x4E, 0x95, 0xE6, 0x62, 0x55, 0x07, 0xB1, 0xA6, 0x59, 0xC0, 0xB3, 0x46, 0x3B, 0x9A, 0x11, 0xBB, 0x7C, 0x0A, 0xB6, 0x04, 0x33, 0xA7, 0x85, 0xC9, 0xCC, 0xB7, -+ 0x94, 0x1D, 0xEA, 0xCB, 0x0B, 0xEB, 0x51, 0x0B, 0x39, 0x50, 0x0A, 0x4C, 0x6E, 0x36, 0xDF, 0x96, 0x4C, 0x82, 0x36, 0x48, 0x1E, 0x73, 0xBD, 0x56, 0x42, 0xCB, 0x10, 0x12, 0xDD, 0x5E, 0x91, 0xD2, -+ 0xDA, 0x28, 0xBD, 0x29, 0x30, 0x58, 0xB8, 0xC4, 0x9E, 0x81, 0x68, 0xAA, 0x9F, 0x16, 0xEA, 0x45, 0x93, 0x87, 0x31, 0x4C, 0xB6, 0x16, 0x65, 0xCA, 0x62, 0x1D, 0x42, 0xD6, 0x82, 0xA3, 0x48, 0x93, -+ 0x23, 0xF4, 0x72, 0x84, 0x4B, 0xE5, 0xEB, 0x6D, 0xD1, 0x7A, 0x0B, 0xE4, 0xA1, 0x18, 0x1B, 0x55, 0x57, 0xB3, 0xB4, 0x2F, 0x90, 0x20, 0xDC, 0x3A, 0x7D, 0x1E, 0x55, 0x0C, 0x85, 0xB1, 0xB2, 0xA8, -+ 0x5F, 0x02, 0x31, 0x2C, 0x01, 0x03, 0xBA, 0x75, 0xB7, 0x09, 0x2C, 0xC1, 0x3A, 0x9C, 0xA6, 0x8A, 0x7B, 0x56, 0xA5, 0x58, 0x28, 0xFD, 0x70, 0x35, 0x64, 0x81, 0xD4, 0xBA, 0x15, 0x6B, 0xAF, 0xFC, -+ 0xE3, 0xEA, 0x26, 0xC5, 0x91, 0x48, 0x82, 0xF5, 0x5A, 0xB3, 0xFA, 0x73, 0xB4, 0xBF, 0x18, 0x33, 0x0D, 0xB5, 0x48, 0x20, 0x0D, 0x7D, 0xFE, 0x0F, 0xE7, 0xE8, 0x4F, 0xBE, 0x50, 0xB9, 0x9B, 0x37, -+ 0xEA, 0xBE, 0x32, 0x50, 0xB9, 0x45, 0x8A, 0xBB, 0xA6, 0x01, 0x9E, 0xA5, 0x4A, 0x49, 0x19, 0x0D, 0xCA, 0x0B, 0x62, 0x7C, 0x3D, 0x4F, 0xE4, 0x43, 0xCE, 0xFD, 0x85, 0x28, 0xE4, 0x93, 0xAA, 0xBF, -+ 0xF8, 0x49, 0x32, 0x67, 0x58, 0x1F, 0xEC, 0xF8, 0x02, 0x74, 0xBE, 0xE4, 0xDC, 0x5B, 0xDF, 0x95, 0x4F, 0xB0, 0x3E, 0xA8, 0xF0, 0x96, 0x3F, 0xED, 0xA3, 0xD1, 0xA1, 0xAE, 0xAE, 0x11, 0x5F, 0xA2, -+ 0x97, 0x57, 0x6A, 0x12, 0xF9, 0xF2, 0x39, 0x0C, 0x9C, 0xAB, 0x86, 0x9B, 0x22, 0x54, 0x37, 0x64, 0x23, 0x60, 0x72, 0x4F, 0x3F, 0x0A, 0x9F, 0x71, 0x97, 0x9A, 0xE4, 0xE3, 0x03, 0x1E, 0x83, 0xB2, -+ 0x76, 0x52, 0x63, 0xF4, 0x91, 0x40, 0x0E, 0x9B, 0x90, 0x88, 0x54, 0xB9, 0x16, 0xA1, 0x2F, 0x67, 0x46, 0x5A, 0x46, 0x01, 0xF4, 0x93, 0x2F, 0xA7, 0x11, 0xF1, 0xB0, 0x97, 0xC1, 0x3B, 0x88, 0x6E, -+ 0x0D, 0xDE, 0xD9, 0xE7, 0xAA, 0xEE, 0x74, 0xFA, 0xDC, 0xDD, 0xF3, 0x8D, 0x61, 0x06, 0x49, 0x55, 0x5E, 0x7A, 0x13, 0xA4, 0xDD, 0x02, 0x84, 0x70, 0x3A, 0x6D, 0x14, 0x7F, 0xDC, 0xE8, 0x6F, 0xC1, -+ 0xF3, 0x5D, 0xD7, 0x0D, 0xF9, 0xB6, 0x9B, 0xB4, 0xC3, 0xA0, 0x76, 0xBF, 0xA4, 0x6B, 0x05, 0x74, 0x3D, 0xE6, 0x3D, 0xB3, 0x37, 0xD2, 0x0C, 0x14, 0x3C, 0x64, 0x7B, 0x86, 0xCF, 0x8F, 0xF2, 0xE2, -+ 0x26, 0x7C, 0xC9, 0x5E, 0x0A, 0xC5, 0x57, 0x5D, 0xEF, 0xCD, 0xD2, 0xA5, 0x69, 0x2E, 0xB8, 0x84, 0x50, 0xB3, 0x49, 0x87, 0x78, 0xCA, 0x1F, 0x48, 0xFA, 0x2A, 0x59, 0x03, 0x21, 0xD5, 0x7B, 0x76, -+ 0xD5, 0x3C, 0x2A, 0x11, 0x29, 0xA3, 0xF2, 0x0B, 0x42, 0xB3, 0xDD, 0xC7, 0xB5, 0xDC, 0x5F, 0xFC, 0xB4, 0xC5, 0xEE, 0xE0, 0xE3, 0xDD, 0x62, 0x9E, 0x38, 0x1C, 0xE8, 0xA9, 0x5A, 0x65, 0xD8, 0xC5, -+ 0xAD, 0x29, 0xE7, 0x86, 0xDA, 0xA5, 0x8E, 0xA2, 0xC1, 0x29, 0x05, 0xEA, 0xD9, 0xC1, 0x04, 0x06, 0xEC, 0x50, 0xE9, 0xEB, 0x9F, 0xB3, 0x68, 0x2F, 0x1C, 0x33, 0xAD, 0x48, 0x73, 0x0C, 0xDB, 0x6D, -+ 0x47, 0x73, 0xDE, 0xFE, 0x7D, 0x07, 0xD3, 0xC9, 0xAC, 0xF7, 0xB4, 0x0F, 0x0E, 0x3D, 0x57, 0x2C, 0x0A, 0x10, 0x2D, 0x28, 0xB5, 0x2D, 0xBE, 0xBB, 0xAF, 0x40, 0x3A, 0x25, 0x41, 0x19, 0x64, 0xF3, -+ 0x55, 0x52, 0xB0, 0xDA, 0x42, 0x80, 0xEA, 0x60, 0xA6, 0x8C, 0x29, 0xA3, 0x1F, 0xD4, 0x99, 0xFF, 0x48, 0x98, 0x7B, 0xD8, 0x32, 0x8E, 0x84, 0x3D, 0xEB, 0xEA, 0x22, 0x21, 0x9B, 0xAB, 0x08, 0x07, -+ 0xD1, 0x4F, 0x78, 0x34, 0x60, 0x84, 0x70, 0x34, 0xF4, 0xAC, 0x38, 0x81, 0xCA, 0x7C, 0xA6, 0x74, 0xD4, 0x49, 0x98, 0xE0, 0xAC, 0x04, 0xE9, 0x04, 0x2A, 0xAA, 0x1F, 0xA6, 0x74, 0x49, 0x5F, 0xA0, -+ 0x8B, 0x0D, 0x43, 0xE0, 0x35, 0xCD, 0x6F, 0x18, 0x98, 0x1D, 0x7B, 0x96, 0xBE, 0x61, 0x7C, 0x2F, 0xFF, 0x3F, 0x3B, 0x77, 0x50, 0x74, 0x94, 0x60, 0xA4, 0xBA, 0x17, 0x52, 0xFB, 0x71, 0x37, 0x5B, -+ 0x10, 0xD9, 0xBE, 0xA5, 0x5B, 0xBE, 0x86, 0xAD, 0x9D, 0x9D, 0xE2, 0x54, 0xDB, 0x42, 0xD7, 0x68, 0x38, 0xFA, 0x81, 0x3A, 0x4D, 0x76, 0x5D, 0x1A, 0x6F, 0x29, 0x02, 0x4D, 0xFC, 0xA6, 0x13, 0xF6, -+ 0x18, 0xBA, 0x26, 0x3E, 0x97, 0xDB, 0xD0, 0xF4, 0x72, 0xFA, 0x5C, 0x01, 0x14, 0xBE, 0x0E, 0x57, 0xBA, 0x50, 0x58, 0x6D, 0xB3, 0x1B, 0x68, 0x58, 0xA6, 0x26, 0x1E, 0x11, 0xEB, 0x08, 0xAE, 0x66, -+ 0xEC, 0x3B, 0xF9, 0x70, 0x07, 0xD6, 0x0B, 0x37, 0x31, 0xA1, 0x3A, 0x60, 0xE6, 0xBA, 0xB1, 0x49, 0xC1, 0xFD, 0x1F, 0xD6, 0x60, 0xBB, 0x11, 0x3C, 0x50, 0x2E, 0xCF, 0x67, 0x65, 0x3D, 0xB1, 0xE2, -+ 0x80, 0xEB, 0xCB, 0x15, 0x22, 0x1C, 0xED, 0x2C, 0x2E, 0xCF, 0x94, 0xC2, 0x29, 0xAD, 0x50, 0x39, 0x4D, 0xD7, 0xCC, 0xFC, 0xE9, 0xB1, 0xF6, 0x40, 0x2D, 0x49, 0xB7, 0xAF, 0xE3, 0x7E, 0xF3, 0x27, -+ 0x0B, 0x19, 0xA7, 0x28, 0xD4, 0x5B, 0xE7, 0xDB, 0x71, 0x6C, 0x86, 0xA6, 0x84, 0x3F, 0xB9, 0x64, 0xFD, 0xEB, 0xD7, 0xA6, 0xFE, 0x30, 0xE8, 0xF3, 0x0F, 0x1F, 0x3A, 0x79, 0x31, 0xF6, 0x85, 0x29, -+ 0xC0, 0xCE, 0x9B, 0xA4, 0x75, 0x02, 0x32, 0xE0, 0x52, 0xFE, 0x8B, 0x61, 0x22, 0x1A, 0xED, 0x89, 0x0B, 0xF4, 0x9D, 0x15, 0xBD, 0xA3, 0x36, 0x8F, 0x09, 0x6A, 0x9E, 0x08, 0x8F, 0x94, 0x75, 0xD5, -+ 0x40, 0x3C, 0xCD, 0x26, 0x7B, 0x9C, 0x5B, 0xE5, 0x2A, 0x54, 0xBA, 0x81, 0x8B, 0xC6, 0xD9, 0x9B, 0x4D, 0x38, 0x3F, 0x1A, 0xDB, 0x58, 0x89, 0xCC, 0xBD, 0x29, 0xE2, 0x26, 0x8C, 0x35, 0x26, 0xE5, -+ 0x85, 0x31, 0x95, 0xDE, 0x86, 0x11, 0x9F, 0x21, 0x76, 0xEF, 0x1A, 0x25, 0x90, 0x6E, 0x8E, 0x74, 0xB0, 0x46, 0xE6, 0xFA, 0x42, 0xB4, 0x66, 0xBA, 0x0D, 0x5B, 0x21, 0x7C, 0x14, 0x74, 0xF6, 0x75, -+ 0x6C, 0x8F, 0x87, 0x44, 0x69, 0xCD, 0x9F, 0x1D, 0x41, 0x15, 0x1B, 0xAC, 0x70, 0x62, 0x08, 0x84, 0xD3, 0x35, 0x4F, 0x22, 0xF7, 0x44, 0x14, 0x53, 0x59, 0x0A, 0x6B, 0x93, 0x4F, 0x1B, 0xC6, 0xB5, -+ 0x61, 0x39, 0x83, 0x0D, 0xAB, 0x8E, 0xE9, 0x71, 0xEF, 0xD0, 0xC1, 0x61, 0xA9, 0xD0, 0xF2, 0x83, 0xF3, 0x44, 0xA4, 0x23, 0x27, 0xFA, 0x53, 0x2D, 0x1E, 0x45, 0x23, 0xC5, 0xC2, 0xA1, 0x2A, 0x80, -+ 0x1E, 0x0F, 0x92, 0x35, 0x13, 0xFD, 0x7C, 0xB7, 0x35, 0xE3, 0xB2, 0xB2, 0x50, 0xCF, 0x54, 0x14, 0x44, 0x51, 0x5E, 0xCE, 0x10, 0xF6, 0xED, 0x7C, 0x3A, 0xA4, 0x1D, 0xBA, 0xB0, 0xF4, 0xE2, 0xD0, -+ 0x0F, 0x6A, 0x32, 0xB2, 0xB2, 0xFF, 0xD8, 0x6F, 0xD5, 0xF4, 0xFE, 0x1A, 0x10, 0xC7, 0xDD, 0x10, 0xBE, 0xA3, 0x1B, 0xE8, 0xEB, 0x9B, 0x82, 0xCF, 0x72, 0xC2, 0x00, 0x15, 0x6F, 0xE5, 0x37, 0x37, -+ 0xBF, 0x00, 0x31, 0x74, 0xFF, 0xBC, 0x72, 0xA0, 0x9C, 0x10, 0xB4, 0xA4, 0x35, 0x13, 0x5D, 0xCD, 0xE5, 0x75, 0xB0, 0x56, 0x22, 0x9C, 0xCB, 0xD2, 0x6A, 0x11, 0x1A, 0xB4, 0x5E, 0x3F, 0x86, 0x4A, -+ 0xBF, 0xEF, 0x43, 0x14, 0x86, 0xC8, 0xA4, 0x71, 0xA2, 0x27, 0xF5, 0x14, 0x81, 0x9B, 0x0B, 0x13, 0x9C, 0x4C, 0x72, 0x98, 0xB5, 0xD8, 0x07, 0x95, 0x3E, 0x86, 0x40, 0xFE, 0xDE, 0x28, 0x4F, 0x1A, -+ 0x96, 0xA8, 0x32, 0xAB, 0xA1, 0x10, 0x00, 0xAB, 0x72, 0x6D, 0x30, 0xD3, 0xCB, 0x0C, 0xB7, 0x79, 0xE5, 0x50, 0x45, 0x72, 0xF2, 0xDA, 0xFA, 0xF8, 0x2E, 0x59, 0xB8, 0x19, 0x38, 0x0B, 0x4C, 0xEC, -+ 0xD1, 0x7B, 0xC7, 0xC3, 0x3B, 0xBA, 0x1E, 0x64, 0x52, 0x1D, 0xB2, 0xD2, 0x38, 0x74, 0x3C, 0x5A, 0x63, 0x75, 0x81, 0x78, 0x29, 0x41, 0x5B, 0x97, 0xDA, 0xD1, 0x34, 0xAC, 0x40, 0x0A, 0xA0, 0xE4, -+ 0x1B, 0x8B, 0x27, 0x36, 0x47, 0x56, 0xAE, 0xF8, 0x32, 0xE8, 0x8E, 0x5A, 0x29, 0x71, 0xDB, 0x85, 0x79, 0x28, 0x52, 0xDF, 0x55, 0xA7, 0xE8, 0x52, 0x7D, 0x42, 0xB4, 0xC1, 0xAB, 0x8F, 0x80, 0xA3, -+ 0x84, 0xA8, 0xF3, 0x7C, 0x09, 0x50, 0x41, 0x5B, 0xE7, 0x15, 0x79, 0x5C, 0x88, 0x4C, 0x88, 0x2F, 0xDE, 0xA1, 0x11, 0xF6, 0x67, 0xD4, 0x65, 0x6C, 0x10, 0xA5, 0xCF, 0x5A, 0xF6, 0xBE, 0xB5, 0xBE, -+ 0x27, 0xFA, 0xB2, 0xD6, 0xDD, 0xC4, 0x81, 0xEF, 0xA7, 0x4A, 0xA7, 0x8F, 0xA5, 0x66, 0xE8, 0x37, 0xEF, 0xDE, 0x77, 0xBC, 0xCF, 0x78, 0x5E, 0xD7, 0xCA, 0xD6, 0x4B, 0x1E, 0x1F, 0xD5, 0x19, 0xF3, -+ 0x82, 0x60, 0x74, 0xB4, 0xD2, 0x86, 0x77, 0xB0, 0xB1, 0xB9, 0x9A, 0x1D, 0x46, 0xE7, 0xFF, 0x70, 0x75, 0xD2, 0x44, 0x78, 0xD3, 0x7E, 0xA5, 0x43, 0x0C, 0x6E, 0xE8, 0xC5, 0x01, 0xBF, 0xF4, 0xE8, -+ 0x70, 0x3F, 0x06, 0x5B, 0x83, 0x60, 0x1B, 0x31, 0xB9, 0x0D, 0xE5, 0x01, 0x4A, 0xD4, 0x55, 0x8B, 0xF8, 0x80, 0x69, 0x90, 0xED, 0xDC, 0xC8, 0x50, 0x84, 0xA0, 0xAC, 0xCD, 0xC1, 0x49, 0x7C, 0x8C, -+ 0x69, 0x9F, 0x8B, 0x0C, 0x75, 0x74, 0x3B, 0x66, 0xFB, 0x4E, 0x2A, 0xE7, 0x99, 0xA0, 0xBD, 0x3A, 0x9C, 0x3F, 0x22, 0x97, 0x48, 0x7B, 0x86, 0x33, 0x4A, 0x73, 0xA9, 0x09, 0xFD, 0xD7, 0x88, 0xE9, -+ 0xCC, 0x02, 0xFA, 0xAB, 0x77, 0x57, 0xEE, 0xE5, 0x97, 0x89, 0x6C, 0x9C, 0xD3, 0x10, 0xBE, 0x5F, 0x3E, 0x4F, 0xFD, 0xA8, 0x04, 0x47, 0xEB, 0x4C, 0x4E, 0x58, 0xEF, 0xCB, 0x00, 0x90, 0x8B, 0xAA, -+ 0xB3, 0xF3, 0x64, 0x52, 0x23, 0x19, 0x69, 0x73, 0x43, 0x9A, 0xFA, 0xAF, 0x53, 0x39, 0x85, 0xAB, 0x81, 0x3B, 0x2E, 0x19, 0x78, 0xB3, 0xAD, 0x7A, 0x19, 0x00, 0xD9, 0xCB, 0x64, 0x4F, 0x7E, 0x28, -+ 0x99, 0x5D, 0xCE, 0x47, 0xC8, 0x79, 0xBA, 0x1D, 0xC2, 0x7B, 0x3B, 0x14, 0x83, 0x22, 0x88, 0xC9, 0x08, 0xCA, 0x10, 0xD7, 0x25, 0x99, 0x17, 0x6B, 0x15, 0x58, 0xC8, 0xCA, 0x1A, 0xF9, 0x51, 0x44, -+ 0x16, 0xA7, 0x60, 0xF3, 0xF7, 0x46, 0x21, 0x59, 0xEF, 0x95, 0x79, 0x56, 0x3E, 0xF6, 0xE3, 0xBE, 0x10, 0xB8, 0x54, 0xCD, 0xD7, 0xE8, 0x24, 0xDA, 0xE1, 0x3C, 0xEE, 0x70, 0xC8, 0x71, 0xFB, 0x6F, -+ 0x9B, 0xCC, 0x2C, 0x62, 0xAA, 0x41, 0x6F, 0xCF, 0x57, 0xA4, 0xDC, 0x22, 0xCA, 0xC3, 0x19, 0x8A, 0xE5, 0xAD, 0xF6, 0xE9, 0x57, 0x63, 0x5C, 0x95, 0xA8, 0xC1, 0xF8, 0xED, 0xE8, 0xF5, 0xB5, 0x14, -+ 0xD6, 0x81, 0xCA, 0x9B, 0xF9, 0x64, 0x43, 0x95, 0x8D, 0xDC, 0x00, 0xF0, 0x6E, 0x38, 0xD8, 0xB4, 0x95, 0x86, 0x4D, 0x5D, 0xF5, 0x6C, 0x32, 0xD2, 0x3E, 0xA9, 0x3D, 0x72, 0x1C, 0x66, 0xE6, 0x49, -+ 0xB2, 0x5F, 0x5B, 0x02, 0x44, 0x68, 0x4B, 0x58, 0xB1, 0x01, 0x26, 0x05, 0x55, 0x08, 0x94, 0xA2, 0x8D, 0xAD, 0x18, 0x92, 0x96, 0x6A, 0x56, 0x0E, 0x89, 0xAD, 0x7C, 0x1E, 0x4B, 0xD1, 0x76, 0x6E, -+ 0x63, 0x7A, 0x4F, 0xFF, 0x64, 0x2C, 0x8B, 0x14, 0xFE, 0xB7, 0xAE, 0x52, 0x41, 0xAA, 0x4C, 0x90, 0x35, 0xEC, 0x02, 0xF1, 0x78, 0x88, 0x73, 0x7A, 0xDE, 0x49, 0x0F, 0xA7, 0x92, 0xE7, 0xF7, 0x62, -+ 0x5E, 0x14, 0x1F, 0x95, 0x95, 0xE9, 0xF2, 0x62, 0xAD, 0xF4, 0x18, 0xAB, 0x6B, 0x31, 0xFB, 0xFE, 0x3B, 0x2E, 0x97, 0x4A, 0xB6, 0xF5, 0x2C, 0x96, 0x0B, 0x8F, 0x72, 0x9C, 0xF5, 0xE8, 0x49, 0x78, -+ 0x60, 0x12, 0x5C, 0xA6, 0x22, 0x99, 0x52, 0xC0, 0x71, 0xDB, 0x25, 0x8E, 0xFA, 0xDC, 0x6D, 0xBA, 0x70, 0xA1, 0x02, 0xD5, 0xB0, 0x84, 0x7B, 0x16, 0x6F, 0x21, 0x46, 0x6E, 0xBA, 0xAC, 0xF5, 0x19, -+ 0x9A, 0x8A, 0x9B, 0x68, 0x93, 0x3D, 0xED, 0x39, 0xB6, 0x44, 0x87, 0x13, 0x0F, 0x9C, 0x33, 0xB5, 0x1F, 0xA7, 0xBD, 0x53, 0x3A, 0x17, 0x04, 0xE4, 0x83, 0x42, 0xD6, 0xA5, 0xC0, 0xBB, 0x53, 0x97, -+ 0x2A, 0xD9, 0xF7, 0xE6, 0x3B, 0x53, 0x91, 0x5B, 0x3D, 0x87, 0x94, 0x9E, 0xDC, 0x6C, 0x34, 0x43, 0x38, 0xDA, 0x7B, 0x15, 0xE0, 0x7E, 0x18, 0xFF, 0xF5, 0x5B, 0xE2, 0x5D, 0x8A, 0xBB, 0x06, 0x82, -+ 0x2C, 0xD9, 0x5F, 0xB1, 0xA3, 0x26, 0xC7, 0xB5, 0xD0, 0xFD, 0x0C, 0x97, 0x10, 0x4B, 0xEF, 0x06, 0x7A, 0xA3, 0x00, 0x16, 0xA1, 0x33, 0x25, 0x4D, 0x02, 0xBA, 0x56, 0x52, 0x3E, 0x80, 0xE3, 0xB6, -+ 0xBA, 0xF9, 0x21, 0x6E, 0x0B, 0x1C, 0xEF, 0x65, 0xE2, 0xB8, 0xE4, 0x6D, 0x85, 0x69, 0x7F, 0xCA, 0xF0, 0x3E, 0xAB, 0x80, 0xC7, 0x74, 0x45, 0xCB, 0x10, 0x36, 0x6B, 0xD0, 0xB8, 0xB1, 0xC3, 0xB4, -+ 0xDF, 0x32, 0xED, 0xC0, 0x6C, 0xF3, 0xAF, 0x70, 0xFE, 0x29, 0x95, 0x51, 0x7E, 0x69, 0xFD, 0x2A, 0xE0, 0xBA, 0xF9, 0x58, 0x5F, 0x21, 0xF9, 0x25, 0x50, 0x4A, 0xDF, 0x8E, 0x8C, 0x91, 0xFB, 0xF2, -+ 0x10, 0x1C, 0xBB, 0xE7, 0x97, 0xA2, 0x66, 0x40, 0xD0, 0x8C, 0xD1, 0xF8, 0xC6, 0x41, 0x81, 0xE3, 0x82, 0x8E, 0xF2, 0xEE, 0x46, 0x20, 0x8B, 0x93, 0x12, 0x35, 0x36, 0xD0, 0x6E, 0xAB, 0x4A, 0x29, -+ 0xCE, 0x33, 0x4F, 0x43, 0xD4, 0x71, 0xEA, 0x15, 0x7F, 0xF7, 0xA8, 0xF3, 0x1A, 0x38, 0x7A, 0xCD, 0x03, 0xEA, 0x4B, 0x52, 0x96, 0xB4, 0x97, 0x14, 0x20, 0xE1, 0x83, 0x0E, 0xA0, 0xED, 0xE8, 0x1C, -+ 0x8B, 0x96, 0x54, 0x3A, 0x9F, 0xE2, 0x87, 0x63, 0xFC, 0xF5, 0x6B, 0x9A, 0xF4, 0x3F, 0x77, 0x7B, 0xCA, 0xCB, 0xEC, 0xC8, 0xAE, 0x13, 0xC3, 0xD4, 0x12, 0x66, 0x55, 0x8B, 0xEA, 0x42, 0x8E, 0xAA, -+ 0x10, 0xBB, 0xAC, 0xDE, 0xA9, 0x44, 0xCD, 0xA5, 0x9A, 0x1A, 0xEF, 0xB4, 0x82, 0x54, 0x81, 0x71, 0xC4, 0x2F, 0xF9, 0xC0, 0xE9, 0xD2, 0x46, 0x93, 0x5B, 0xB8, 0x0B, 0x3E, 0x34, 0x7E, 0xA1, 0xEF, -+ 0x9D, 0x1C, 0x51, 0xEF, 0x45, 0x5D, 0xA2, 0xDE, 0x90, 0xC8, 0x7C, 0xDB, 0xBC, 0xE1, 0x3D, 0x2F, 0xBA, 0xC8, 0xB4, 0xD4, 0x62, 0x4C, 0x36, 0xF6, 0x13, 0x49, 0x0F, 0xE5, 0xF9, 0x7E, 0x44, 0xF9, -+ 0x1D, 0xAE, 0x67, 0x4B, 0x09, 0xC2, 0x78, 0xA0, 0x0A, 0x95, 0x25, 0x23, 0x99, 0x3E, 0x92, 0xC6, 0x03, 0x96, 0xE9, 0x9F, 0x91, 0x67, 0x26, 0xA9, 0xB7, 0x11, 0x5F, 0xE9, 0xE2, 0x49, 0x5B, 0xD7, -+ 0x10, 0x2D, 0x9B, 0x61, 0x96, 0x1A, 0xEE, 0x02, 0x54, 0xB3, 0x27, 0xBF, 0xC0, 0x64, 0x46, 0x55, 0xA8, 0x5D, 0x35, 0x91, 0x8C, 0xA7, 0xD5, 0x66, 0x7E, 0xAF, 0xAE, 0x11, 0x3A, 0x12, 0x12, 0x80, -+ 0x50, 0x4E, 0xAC, 0x12, 0x2C, 0x04, 0x1D, 0xB2, 0x14, 0x1A, 0xA0, 0x85, 0x38, 0x15, 0xC1, 0x49, 0x96, 0x2B, 0x4D, 0x9C, 0x55, 0x99, 0xAC, 0xC7, 0x2A, 0x9E, 0x15, 0xF0, 0x06, 0xA2, 0x51, 0x96, -+ 0x09, 0x80, 0x0A, 0xB4, 0xEB, 0x11, 0x6D, 0x7B, 0x36, 0xBE, 0xB2, 0x59, 0x7E, 0x15, 0xA5, 0x54, 0x26, 0x3B, 0xD3, 0xB0, 0xE7, 0x8C, 0xE3, 0x8B, 0x7F, 0x60, 0x83, 0x11, 0xAB, 0x7B, 0xC3, 0xCA, -+ 0xF4, 0x38, 0xC5, 0x06, 0xB3, 0x23, 0x17, 0x43, 0xFE, 0x3E, 0x29, 0xF9, 0x3D, 0xF3, 0x5B, 0x34, 0x40, 0x10, 0x87, 0x04, 0x1C, 0xEE, 0x3B, 0x75, 0xAE, 0xFA, 0x0A, 0xFE, 0xAF, 0x09, 0xA6, 0xEB, -+ 0xF6, 0xD2, 0xFE, 0x41, 0x85, 0xBC, 0xC6, 0xB3, 0x9A, 0xED, 0x79, 0xF3, 0x38, 0x92, 0x12, 0xFD, 0xC0, 0x9F, 0xA4, 0x8A, 0x71, 0xFE, 0x6A, 0x2D, 0xE3, 0x3D, 0x40, 0xAC, 0xB6, 0xEB, 0x59, 0xE1, -+ 0x99, 0xB1, 0xCD, 0x76, 0x19, 0xAF, 0xE9, 0x6E, 0xD5, 0x46, 0xEE, 0xC5, 0x64, 0x39, 0x5F, 0xAC, 0x3B, 0x49, 0xA5, 0xE7, 0xAC, 0x20, 0x60, 0x68, 0x06, 0xF1, 0x91, 0x27, 0xC6, 0x38, 0x1E, 0xE3, -+ 0x47, 0x93, 0x6B, 0x35, 0xE3, 0x07, 0x4E, 0x23, 0xEB, 0x9E, 0xB0, 0xB0, 0x87, 0x2D, 0x67, 0x30, 0x54, 0xBF, 0x4F, 0xAB, 0x46, 0xD9, 0xC3, 0xC2, 0x75, 0x82, 0x31, 0x8A, 0x05, 0x56, 0xAA, 0x6F, -+ 0x5D, 0xCF, 0x79, 0x25, 0x9F, 0xF8, 0x47, 0xC0, 0xA6, 0xB5, 0x28, 0xD0, 0x49, 0xEE, 0x85, 0xE5, 0xE2, 0xD0, 0x57, 0x23, 0x49, 0x43, 0x89, 0x12, 0x51, 0x5A, 0xA9, 0x46, 0xCD, 0x2A, 0xD7, 0xF8, -+ 0x93, 0xA9, 0xC4, 0xD0, 0x16, 0x0A, 0x24, 0xEF, 0xAA, 0xE9, 0xE2, 0x89, 0x1A, 0xD9, 0x62, 0xB9, 0x62, 0x08, 0x0A, 0x06, 0x65, 0xFC, 0xF5, 0x4B, 0xA3, 0xE3, 0x7A, 0x83, 0x0A, 0x1E, 0x59, 0x5E, -+ 0xCB, 0xD0, 0xE0, 0xAC, 0x37, 0x01, 0x2E, 0x97, 0xDE, 0x3D, 0x4D, 0xAE, 0x2C, 0xA8, 0x42, 0x75, 0x25, 0x99, 0x88, 0xFC, 0x83, 0x9E, 0x0D, 0x59, 0xC1, 0x59, 0xA5, 0x18, 0x53, 0xDF, 0x57, 0xC6, -+ 0x22, 0xCA, 0x74, 0xCB, 0x71, 0xFD, 0xC2, 0xD5, 0x20, 0x01, 0xD4, 0xF8, 0x04, 0x73, 0x4E, 0xC0, 0x9B, 0x09, 0x0C, 0xDE, 0x83, 0x71, 0xE2, 0x6B, 0xC5, 0x7F, 0x76, 0x8C, 0x5F, 0xA0, 0x2B, 0xC6, -+ 0x6C, 0x6A, 0xEC, 0xB0, 0x44, 0xDA, 0x59, 0xF2, 0xCF, 0x52, 0x93, 0xB8, 0xD8, 0x6E, 0x61, 0xB8, 0x6E, 0x84, 0xEB, 0x6B, 0xA4, 0xDE, 0x6F, 0x44, 0xAC, 0xC5, 0x66, 0x2E, 0x34, 0x7B, 0xE8, 0x38, -+ 0xEA, 0xB6, 0xA0, 0x3B, 0x3F, 0x1E, 0xA9, 0x90, 0xA3, 0x22, 0xB0, 0xCB, 0x13, 0x09, 0x22, 0x87, 0xE7, 0xFF, 0x52, 0xF9, 0x35, 0x10, 0x45, 0x5D, 0xD2, 0xAF, 0x81, 0x1F, 0xBA, 0xE2, 0x19, 0x48, -+ 0x01, 0xA9, 0x0D, 0xCC, 0x2D, 0x69, 0x90, 0x59, 0x1F, 0xF9, 0x0A, 0xF8, 0x17, 0x30, 0xC7, 0xDD, 0x13, 0x91, 0xE7, 0x8D, 0x9B, 0x0E, 0x42, 0x64, 0x61, 0x55, 0xEF, 0x4C, 0x53, 0xFC, 0xF6, 0x23, -+ 0x9C, 0xAE, 0x7C, 0xAD, 0xEC, 0x2E, 0x8D, 0xB1, 0xFB, 0xAA, 0x91, 0x15, 0x24, 0x45, 0x4C, 0x49, 0x18, 0x4C, 0xC1, 0xA7, 0x7E, 0x57, 0x2A, 0x01, 0x67, 0xE2, 0x91, 0xC0, 0xA1, 0xEC, 0xBD, 0x9D, -+ 0x31, 0x70, 0x9C, 0x27, 0x7C, 0xE5, 0x41, 0xD3, 0x25, 0x56, 0x3C, 0x2E, 0xC3, 0x1E, 0x0A, 0x8B, 0x54, 0x2C, 0xAE, 0x34, 0xDC, 0x13, 0x4F, 0x66, 0x79, 0x96, 0xD8, 0x27, 0x1C, 0xA6, 0xE9, 0x0B, -+ 0xB8, 0x44, 0x6F, 0xB6, 0x6D, 0xBE, 0x61, 0xD2, 0x74, 0x2C, 0x38, 0xCA, 0xB4, 0x06, 0x4D, 0x2B, 0x40, 0xB6, 0x53, 0x72, 0x5B, 0x97, 0x6D, 0x37, 0xD2, 0x66, 0xAA, 0x6F, 0xA8, 0xB2, 0x99, 0x63, -+ 0x05, 0x8E, 0x06, 0xEF, 0xAD, 0x99, 0x07, 0x35, 0x9D, 0xE3, 0xDB, 0xC2, 0x27, 0x05, 0xFE, 0x6A, 0xB7, 0xD5, 0xFD, 0xAE, 0xB9, 0x02, 0x33, 0xEB, 0x94, 0xCB, 0x20, 0x40, 0x0B, 0x5A, 0x68, 0xC9, -+ 0xCE, 0xAB, 0x1A, 0x16, 0xBB, 0xBD, 0x5F, 0x1B, 0x90, 0x55, 0x6A, 0xC9, 0x38, 0x50, 0xAD, 0xFC, 0xCA, 0x90, 0x58, 0x8A, 0x1A, 0xAD, 0x3E, 0x71, 0x67, 0xEE, 0x26, 0x90, 0xEE, 0x58, 0xC1, 0xDE, -+ 0x36, 0xD2, 0x7B, 0xDE, 0xEA, 0xB9, 0xD8, 0x19, 0xD6, 0x9D, 0xFA, 0xF9, 0xEA, 0xE5, 0x5E, 0x1C, 0xD3, 0xA9, 0x7A, 0x5F, 0xB3, 0xFD, 0x10, 0xBB, 0xA2, 0x9D, 0x84, 0xC6, 0x9C, 0x14, 0xB2, 0x2E, -+ 0xDD, 0xD9, 0x91, 0xCD, 0x4E, 0xF2, 0x9F, 0xA3, 0x5D, 0xDB, 0xDE, 0xE6, 0xC9, 0xA0, 0x09, 0x6D, 0x4E, 0x7F, 0xDF, 0xCF, 0x7E, 0x28, 0x3C, 0x89, 0x91, 0x73, 0x10, 0xC8, 0x90, 0xBE, 0xEC, 0x2C, -+ 0x8C, 0x6C, 0xC0, 0xE6, 0xEE, 0x4A, 0xB5, 0xC2, 0x8F, 0xAA, 0xCB, 0x2E, 0x00, 0xBB, 0x93, 0xD9, 0x7E, 0x5C, 0xFB, 0xFA, 0xF8, 0xF7, 0x8B, 0xDF, 0x90, 0x2D, 0x25, 0xDF, 0xB5, 0x06, 0xA3, 0xB1, -+ 0x0C, 0x06, 0x48, 0xAA, 0xBB, 0xC5, 0xD4, 0xCA, 0x8B, 0x1A, 0x46, 0x6F, 0x04, 0x1B, 0xF7, 0xE1, 0x0E, 0xF5, 0x1E, 0x0D, 0x7A, 0x3F, 0xF5, 0xB1, 0x80, 0xAC, 0xBA, 0xF2, 0x36, 0xA3, 0x81, 0x51, -+ 0xB9, 0x56, 0xCB, 0x56, 0x35, 0x75, 0x65, 0xD7, 0x1E, 0x42, 0x60, 0xF2, 0xF6, 0x35, 0x12, 0xDC, 0xDB, 0xD3, 0xC3, 0x5E, 0x54, 0x0F, 0x87, 0x72, 0x63, 0x26, 0xAF, 0x2A, 0x3C, 0xD6, 0xEE, 0xD2, -+ 0xDA, 0x8E, 0x51, 0x9F, 0x9F, 0x60, 0x58, 0x1A, 0x58, 0x20, 0x13, 0xBC, 0x93, 0xBE, 0x25, 0xA0, 0x13, 0x71, 0xDC, 0x8C, 0x34, 0xBE, 0x1E, 0x88, 0x24, 0xA2, 0xD2, 0x12, 0x03, 0x39, 0xD6, 0xE2, -+ 0x87, 0xEC, 0x0C, 0xC4, 0x3D, 0x58, 0x6A, 0x04, 0xF8, 0x08, 0x75, 0xB3, 0x76, 0x64, 0x83, 0xB8, 0x84, 0xA9, 0x20, 0x2C, 0x1C, 0xDB, 0x4D, 0xF4, 0xC1, 0x1B, 0x1D, 0x79, 0xB1, 0xE4, 0xF2, 0xAE, -+ 0x88, 0x6E, 0x81, 0xA1, 0xFF, 0x7B, 0xCA, 0xC8, 0x98, 0x89, 0x53, 0x21, 0x4D, 0xAF, 0xE7, 0x79, 0xA7, 0x9D, 0xF5, 0x1A, 0x65, 0x1A, 0x51, 0x2D, 0xB2, 0x56, 0x2B, 0x7C, 0x1D, 0x46, 0x71, 0xD5, -+ 0x2C, 0x51, 0x70, 0x81, 0xD5, 0x3A, 0x79, 0x22, 0x70, 0xB1, 0xC3, 0x05, 0x51, 0x5F, 0xB7, 0xB6, 0xC4, 0x61, 0xBD, 0x4C, 0xD0, 0xD7, 0xC3, 0x17, 0x5B, 0x14, 0x6F, 0xE9, 0x62, 0xA4, 0xC9, 0xA9, -+ 0x08, 0x1E, 0x39, 0x49, 0x60, 0x68, 0x9B, 0xA9, 0xBC, 0xC6, 0xCA, 0xD5, 0xEA, 0xED, 0xF8, 0x1E, 0x34, 0x53, 0x61, 0x64, 0x6E, 0x9E, 0xAF, 0xB8, 0xBA, 0xEC, 0xF1, 0xFC, 0x01, 0x12, 0x1C, 0x29, -+ 0x3D, 0x58, 0x68, 0x7D, 0x7E, 0x81, 0xA4, 0xA8, 0xAE, 0xC9, 0x0F, 0x16, 0x1D, 0x73, 0x87, 0x97, 0xAC, 0xAE, 0xBE, 0xC1, 0x18, 0x19, 0x58, 0x67, 0x9D, 0xA1, 0xA7, 0xAA, 0xB0, 0xEB, 0xEE, 0xF0, -+ 0xF1, 0xFF, 0x18, 0x32, 0x3C, 0x47, 0x5D, 0x6A, 0x72, 0x7F, 0x80, 0x82, 0x93, 0xAD, 0xBD, 0xCC, 0xDF, 0xE6, 0xEC, 0xF0, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x1C, 0x2A, 0x34, 0x42, 0x55, 0x80, 0x16, -+ 0x15, 0x00, 0x78, 0x78, 0x2C, 0x25, 0x10, 0x0C, 0x02, 0x01, 0x82, 0x08, 0xD8, 0x80, 0x82, 0x02, 0xC4, 0x02, 0x01, 0x20, 0x27, 0x80, 0x84, 0x4A, 0x00, 0x12, 0x82, 0x02, 0x00, 0x50, 0x64, 0x4A, -+ 0xB2, 0xB4, 0x16, 0xBF, 0x7C, 0x04 }, -+ }, -+ { -+ .name = "Dilithium Round 2, Level 4 (6-5) KAT 0", -+ .version = 0, -+ .keyform = CK_IBM_DILITHIUM_KEYFORM_ROUND2_65, - .rho_len = 32, - .rho = { 0x7C, 0x99, 0x35, 0xA0, 0xB0, 0x76, 0x94, 0xAA, 0x0C, 0x6D, 0x10, 0xE4, 0xDB, 0x6B, 0x1A, 0xDD, 0x2F, 0xD8, 0x1A, 0x25, 0xCC, 0xB1, 0x48, 0x03, 0x2D, 0xCD, 0x73, 0x99, 0x36, 0x73, 0x7F, 0x2D }, - .seed_len = 32, -@@ -250,6 +619,8 @@ struct DILITHIUM_TEST_VECTOR dilithium_tv[] = { - 0x97, 0x6A, 0xBC, 0xC9, 0x5C, 0x14, 0xA8, 0xEF, 0xE6, 0x0A, 0x2C, 0x1A, 0xF0, 0xAB, 0xBE, 0x6B, 0xF7, 0x89, 0xD4, 0xF6, 0x97, 0x38, 0x09, 0x2A, 0xE3, 0xE6, 0x2A, 0xF1, 0x77, 0x3E, 0xD6, 0xA4, - 0x2F, 0x1A, 0xAA, 0xBC, 0xFB, 0x98, 0x73, 0x1C, 0xE2, 0x70, 0x1F, 0x42, 0xE4, 0xBA, 0x9E, 0x12, 0x8B, 0x67, 0x26, 0x1C, 0x59, 0x8D, 0x31, 0x89, 0xD0, 0x60, 0x24, 0xF0, 0x1E, 0x25, 0x35, 0x4D, - 0x60, 0x32, 0x7F, 0xB6, 0x57, 0x0B, 0xF7, 0xE1, 0x63, 0xFA, 0x04, 0x32, 0x4B, 0x32, 0xE7, 0xEB, 0xF8, 0xB7, 0x8A, 0xC2, 0xEC, 0xFA, 0x3D, 0x36, 0xB1, 0x3A, 0x59, 0xA3, 0xA7, 0x27, 0x02, 0x9B }, -+ .pkcs8_len = 0, -+ .spki_len = 0, - .msg_len = 33, - .msg = { 0xD8, 0x1C, 0x4D, 0x8D, 0x73, 0x4F, 0xCB, 0xFB, 0xEA, 0xDE, 0x3D, 0x3F, 0x8A, 0x03, 0x9F, 0xAA, 0x2A, 0x2C, 0x99, 0x57, 0xE8, 0x35, 0xAD, 0x55, 0xB2, 0x2E, 0x75, 0xBF, 0x57, 0xBB, 0x55, 0x6A, - 0xC8 }, -@@ -363,8 +734,9 @@ struct DILITHIUM_TEST_VECTOR dilithium_tv[] = { - 0xB2, 0xB4, 0x16, 0xBF, 0x7C, 0x04 }, - }, - { -- .name = "Dilithium 6-5 KAT 1", -+ .name = "Dilithium Round 2, Level 4 (6-5) KAT 1", - .version = 0, -+ .keyform = CK_IBM_DILITHIUM_KEYFORM_ROUND2_65, - .rho_len = 32, - .rho = { 0xBC, 0x96, 0x2D, 0x97, 0x8F, 0x38, 0x88, 0x10, 0x85, 0xC1, 0xB8, 0x13, 0xBC, 0x90, 0xEE, 0xE4, 0x4A, 0xD9, 0xE7, 0x65, 0x16, 0x81, 0xC2, 0x0B, 0xA4, 0x64, 0x02, 0xF5, 0x57, 0xC4, 0x54, 0xDE }, - .seed_len = 32, -@@ -547,6 +919,8 @@ struct DILITHIUM_TEST_VECTOR dilithium_tv[] = { - 0x6B, 0x50, 0x20, 0x56, 0x35, 0xCD, 0x16, 0xA5, 0xB4, 0xC2, 0x58, 0xA9, 0xC7, 0x33, 0x15, 0x11, 0x93, 0xE4, 0x1C, 0x73, 0xEA, 0xAD, 0xC8, 0x86, 0x41, 0x76, 0x42, 0x73, 0xDF, 0x00, 0xD6, 0x6F, - 0xE3, 0x84, 0x78, 0x3B, 0x95, 0xD5, 0x30, 0xC6, 0x90, 0x0B, 0x4A, 0x93, 0x84, 0x1D, 0x40, 0x54, 0x3E, 0x56, 0x37, 0x40, 0x75, 0x1A, 0xDE, 0x91, 0x63, 0xBA, 0x9A, 0x28, 0xAE, 0x8C, 0x95, 0xCF, - 0x15, 0x65, 0x34, 0xF9, 0x78, 0x1F, 0x35, 0xE7, 0x5F, 0x1C, 0x0E, 0xD8, 0x78, 0x98, 0xC0, 0xB5, 0x9B, 0x82, 0x13, 0x68, 0x86, 0xA2, 0x20, 0xC3, 0x4F, 0xD4, 0xDD, 0xC3, 0x96, 0x7C, 0xEF, 0x7D }, -+ .pkcs8_len = 0, -+ .spki_len = 0, - .msg_len = 891, - .msg = { 0x30, 0xD6, 0x1C, 0x6F, 0xBD, 0x64, 0x11, 0x3F, 0xCE, 0xD8, 0xC5, 0x20, 0x50, 0x26, 0xEB, 0xAC, 0x0D, 0x9F, 0x35, 0x22, 0x18, 0x26, 0x17, 0xCB, 0x00, 0xB6, 0xE7, 0x0C, 0x8D, 0xA6, 0x2E, 0xCC, - 0x1B, 0xBC, 0x8E, 0x1F, 0xDA, 0xF1, 0x7C, 0xC6, 0x1D, 0xD0, 0x1C, 0xE8, 0x5A, 0x90, 0x72, 0xCC, 0x1D, 0x9D, 0x34, 0xFD, 0xAD, 0xBA, 0x5B, 0x93, 0xE0, 0xAA, 0xB4, 0xC9, 0xC4, 0xC9, 0xE2, 0x6D, -@@ -685,8 +1059,9 @@ struct DILITHIUM_TEST_VECTOR dilithium_tv[] = { - 0x94, 0x55, 0x2B, 0xE6, 0x37, 0x0B }, - }, - { -- .name = "Dilithium 6-5 KAT 2", -+ .name = "Dilithium Round 2, Level 4 (6-5) KAT 2", - .version = 0, -+ .keyform = CK_IBM_DILITHIUM_KEYFORM_ROUND2_65, - .rho_len = 32, - .rho = { 0xDF, 0x48, 0x53, 0xF4, 0x82, 0xCC, 0x1D, 0x0B, 0x3A, 0x2D, 0x71, 0xE9, 0xEA, 0xCA, 0x06, 0x4E, 0x57, 0xC5, 0xD1, 0x00, 0xDF, 0x79, 0xBD, 0x00, 0x4B, 0xA8, 0x1B, 0x43, 0xEA, 0xCE, 0xC4, 0x01 }, - .seed_len = 32, -@@ -869,6 +1244,8 @@ struct DILITHIUM_TEST_VECTOR dilithium_tv[] = { - 0x22, 0x1E, 0x28, 0xD0, 0x85, 0x75, 0xB0, 0x42, 0x8F, 0x66, 0x63, 0x9F, 0x76, 0x06, 0xB0, 0x78, 0x25, 0x05, 0x5A, 0xBA, 0xE8, 0x17, 0xCD, 0x67, 0xAF, 0x4E, 0xD7, 0x59, 0x57, 0x3D, 0xF0, 0x51, - 0x02, 0x88, 0x79, 0xA1, 0x73, 0x0E, 0x89, 0x87, 0x55, 0x69, 0xD7, 0xFA, 0x12, 0x0F, 0x81, 0x80, 0xB9, 0x04, 0x95, 0x82, 0x93, 0x42, 0x8A, 0xF8, 0x9B, 0x9C, 0x96, 0x15, 0x2C, 0x40, 0x87, 0x81, - 0x2F, 0xDE, 0x74, 0x4F, 0x42, 0x41, 0x70, 0x5C, 0x85, 0x8A, 0x71, 0xB0, 0x0E, 0x66, 0xDA, 0xD4, 0x0F, 0xCF, 0x62, 0xB2, 0x23, 0x70, 0xFF, 0x6B, 0xAE, 0xA8, 0xF5, 0x18, 0x70, 0x78, 0x17, 0x75 }, -+ .pkcs8_len = 0, -+ .spki_len = 0, - .msg_len = 2442, - .msg = { 0xAC, 0xB4, 0x14, 0xEB, 0x55, 0xAE, 0x5E, 0x49, 0x10, 0x7B, 0xD0, 0xAC, 0x59, 0x75, 0x54, 0x4F, 0x83, 0x10, 0x4F, 0x72, 0x64, 0x49, 0x5A, 0xE0, 0xBF, 0x0A, 0x6D, 0x95, 0x94, 0xC4, 0x22, 0xC1, - 0x6B, 0x99, 0x46, 0x9E, 0xCC, 0xDF, 0xE8, 0xB8, 0x00, 0x08, 0x75, 0xB4, 0x69, 0x30, 0x98, 0x91, 0xEA, 0x42, 0x58, 0x6A, 0x61, 0x5D, 0x14, 0x6D, 0xE6, 0x4F, 0xE5, 0x92, 0x77, 0xA6, 0x16, 0x31, -@@ -1056,8 +1433,9 @@ struct DILITHIUM_TEST_VECTOR dilithium_tv[] = { - 0xA5, 0x26, 0x63, 0x08, 0xD2, 0x06 }, - }, - { -- .name = "Dilithium 6-5 KAT 3", -+ .name = "Dilithium Round 2, Level 4 (6-5) KAT 3", - .version = 0, -+ .keyform = CK_IBM_DILITHIUM_KEYFORM_ROUND2_65, - .rho_len = 32, - .rho = { 0x69, 0x04, 0x82, 0xBF, 0xF6, 0xC1, 0xD0, 0xBA, 0x6C, 0x07, 0x1D, 0xD3, 0x95, 0xAD, 0xF6, 0x9E, 0x55, 0xE1, 0xBF, 0xC4, 0xE0, 0x99, 0x2A, 0x86, 0x50, 0xFF, 0xB5, 0xE6, 0x0A, 0x02, 0xB1, 0x72 }, - .seed_len = 32, -@@ -1240,6 +1618,8 @@ struct DILITHIUM_TEST_VECTOR dilithium_tv[] = { - 0x5F, 0x41, 0xFF, 0xFC, 0xD8, 0xBA, 0x32, 0x59, 0x43, 0x59, 0x53, 0x98, 0xB2, 0xD9, 0x39, 0xC8, 0xA4, 0xC9, 0x0B, 0x1D, 0x58, 0x4C, 0x66, 0x9F, 0x0F, 0xFA, 0xCD, 0x43, 0x41, 0xE0, 0x35, 0x58, - 0x70, 0x07, 0x15, 0xC6, 0x1C, 0x3C, 0x64, 0x0D, 0x42, 0x5B, 0x67, 0xEB, 0x0D, 0xAA, 0xBF, 0x5E, 0xD3, 0x09, 0x20, 0x5F, 0xB0, 0x9A, 0x0C, 0x6B, 0x3D, 0xDD, 0xBB, 0x5F, 0x28, 0x8E, 0x57, 0x3B, - 0x46, 0x1A, 0x58, 0xF5, 0xEF, 0x5D, 0x43, 0x50, 0x13, 0x63, 0xD8, 0xB1, 0xA7, 0x79, 0xDC, 0x5E, 0x27, 0xDE, 0xAC, 0xDF, 0xCD, 0xCD, 0x0A, 0x9C, 0x20, 0x24, 0xAE, 0x48, 0x1C, 0xD9, 0x81, 0xD5 }, -+ .pkcs8_len = 0, -+ .spki_len = 0, - .msg_len = 3300, - .msg = { 0xD2, 0x1A, 0x6B, 0xB3, 0xA2, 0x35, 0x68, 0x05, 0xE6, 0x78, 0x67, 0x3C, 0x45, 0xFB, 0x05, 0x5F, 0xC5, 0x26, 0x6E, 0x3F, 0x69, 0x2A, 0xF9, 0x93, 0x5A, 0xEA, 0x30, 0x7F, 0x14, 0xA5, 0xC4, 0x1B, - 0x97, 0x99, 0x66, 0xA5, 0xDF, 0xE4, 0x2E, 0xBF, 0xED, 0x14, 0x87, 0xE4, 0x82, 0x2B, 0x74, 0xAB, 0x5A, 0xF2, 0x89, 0x95, 0xE0, 0x85, 0xEC, 0x80, 0x07, 0xEC, 0xA4, 0x97, 0x7C, 0x63, 0xEE, 0x52, -@@ -1453,6 +1833,4375 @@ struct DILITHIUM_TEST_VECTOR dilithium_tv[] = { - 0x00, 0x02, 0x16, 0xA0, 0x74, 0x00, 0x30, 0xB2, 0x40, 0x10, 0x95, 0x00, 0x0C, 0x00, 0x23, 0x42, 0x13, 0x20, 0x06, 0x06, 0x9C, 0x00, 0x00, 0x25, 0x04, 0x80, 0x09, 0xE2, 0x28, 0x84, 0xA2, 0x32, - 0x13, 0x7D, 0xE1, 0xCE, 0xBE, 0x04 }, - }, -+ { -+ .name = "Dilithium Round 2, Level 5 (8-7) KAT 0 (PKCS#8/SPKI)", -+ .version = 0, -+ .keyform = 0, -+ .rho_len = 0, -+ .seed_len = 0, -+ .tr_len = 0, -+ .s1_len = 0, -+ .s2_len = 0, -+ .t0_len = 0, -+ .t1_len = 0, -+ .pkcs8_len = 7508, -+ .pkcs8 = { -+ 0x30, 0x82, 0x1D, 0x50, 0x02, 0x01, 0x00, 0x30, 0x0F, 0x06, 0x0B, 0x2B, 0x06, 0x01, 0x04, 0x01, 0x02, 0x82, 0x0B, 0x01, 0x08, 0x07, 0x05, 0x00, 0x04, 0x82, 0x1D, 0x38, 0x30, 0x82, 0x1D, 0x34, -+ 0x02, 0x01, 0x00, 0x03, 0x21, 0x00, 0x7C, 0x99, 0x35, 0xA0, 0xB0, 0x76, 0x94, 0xAA, 0x0C, 0x6D, 0x10, 0xE4, 0xDB, 0x6B, 0x1A, 0xDD, 0x2F, 0xD8, 0x1A, 0x25, 0xCC, 0xB1, 0x48, 0x03, 0x2D, 0xCD, -+ 0x73, 0x99, 0x36, 0x73, 0x7F, 0x2D, 0x03, 0x21, 0x00, 0x3E, 0x78, 0x4C, 0xCB, 0x7E, 0xBC, 0xDC, 0xFD, 0x45, 0x54, 0x2B, 0x7F, 0x6A, 0xF7, 0x78, 0x74, 0x2E, 0x0F, 0x44, 0x79, 0x17, 0x50, 0x84, -+ 0xAA, 0x48, 0x8B, 0x3B, 0x74, 0x34, 0x06, 0x78, 0xAA, 0x03, 0x31, 0x00, 0x89, 0xDB, 0xBF, 0xC3, 0x69, 0x33, 0x5D, 0x8F, 0x70, 0xE7, 0xBC, 0xB4, 0xD1, 0x66, 0xD4, 0xBD, 0xD0, 0xD8, 0x36, 0xE4, -+ 0x5D, 0xE9, 0x37, 0x92, 0xED, 0xC4, 0x26, 0x10, 0x6F, 0xBF, 0x5A, 0xF2, 0x7C, 0x68, 0xA9, 0x50, 0xB4, 0xA1, 0xA6, 0x42, 0x28, 0x01, 0xC6, 0xF2, 0xAC, 0xC3, 0xA9, 0xFA, 0x03, 0x82, 0x02, 0xA1, -+ 0x00, 0x91, 0xB4, 0x2D, 0xA1, 0x38, 0x24, 0x08, 0x19, 0x24, 0x1A, 0x30, 0x4D, 0x40, 0xA8, 0x6C, 0xD8, 0x04, 0x6A, 0x03, 0x28, 0x04, 0x41, 0x38, 0x22, 0x22, 0x39, 0x0A, 0xE2, 0x80, 0x0D, 0x12, -+ 0x49, 0x91, 0x24, 0xB4, 0x50, 0x93, 0x46, 0x89, 0xD1, 0x30, 0x4C, 0x04, 0x20, 0x24, 0x20, 0x20, 0x31, 0x59, 0x92, 0x41, 0xC3, 0x26, 0x61, 0x14, 0x47, 0x32, 0xDB, 0x12, 0x69, 0x63, 0x46, 0x01, -+ 0x10, 0x93, 0x91, 0x10, 0x39, 0x81, 0x5B, 0x26, 0x71, 0x40, 0xB0, 0x01, 0x03, 0x41, 0x48, 0x04, 0x19, 0x09, 0x13, 0xB4, 0x91, 0x0C, 0x46, 0x08, 0xD4, 0x08, 0x09, 0x0C, 0x99, 0x04, 0x00, 0x35, -+ 0x61, 0x13, 0x14, 0x4C, 0x19, 0x41, 0x28, 0x1C, 0x16, 0x80, 0x88, 0xA0, 0x29, 0x1A, 0x30, 0x02, 0x10, 0x80, 0x4C, 0x13, 0x43, 0x25, 0x04, 0x08, 0x81, 0x20, 0x43, 0x70, 0x14, 0x11, 0x6A, 0x99, -+ 0x00, 0x40, 0x48, 0x82, 0x31, 0x12, 0x42, 0x20, 0x48, 0x06, 0x0D, 0xE2, 0xA2, 0x0C, 0x82, 0xB0, 0x28, 0xE2, 0x36, 0x10, 0x49, 0x16, 0x84, 0xD8, 0x04, 0x4C, 0x51, 0xB8, 0x68, 0xC2, 0x84, 0x90, -+ 0x9B, 0x10, 0x31, 0x21, 0x49, 0x32, 0x94, 0x20, 0x0D, 0x04, 0x41, 0x24, 0xCB, 0xA4, 0x6D, 0x1A, 0x82, 0x61, 0x08, 0x40, 0x8E, 0xA4, 0x00, 0x44, 0x93, 0x92, 0x91, 0x8C, 0x30, 0x62, 0x60, 0xB2, -+ 0x90, 0x58, 0x40, 0x62, 0x11, 0x97, 0x31, 0x21, 0x11, 0x81, 0x0C, 0x28, 0x88, 0x09, 0x07, 0x42, 0x88, 0x40, 0x6C, 0xC0, 0x96, 0x28, 0x81, 0x28, 0x8A, 0xC0, 0x12, 0x0C, 0x93, 0x48, 0x4C, 0x89, -+ 0x82, 0x25, 0xD8, 0x00, 0x22, 0x24, 0x45, 0x41, 0x1B, 0x95, 0x2C, 0xA0, 0x92, 0x61, 0x84, 0xA2, 0x70, 0x59, 0x86, 0x10, 0x0B, 0x87, 0x08, 0x10, 0x98, 0x61, 0xD3, 0x40, 0x0D, 0x40, 0xB0, 0x8D, -+ 0x09, 0x05, 0x71, 0x60, 0x84, 0x70, 0x18, 0x80, 0x61, 0x1A, 0x16, 0x2E, 0x63, 0x32, 0x06, 0x80, 0x80, 0x88, 0x50, 0xC6, 0x8C, 0x00, 0x10, 0x24, 0xC1, 0x00, 0x26, 0x94, 0x90, 0x48, 0x44, 0xB6, -+ 0x29, 0x1A, 0x35, 0x48, 0xD3, 0xB0, 0x91, 0x21, 0xA4, 0x08, 0x11, 0x34, 0x32, 0x03, 0x01, 0x05, 0x21, 0x32, 0x46, 0x1B, 0x31, 0x31, 0x1B, 0x86, 0x0C, 0x1A, 0x28, 0x0D, 0xD1, 0x08, 0x28, 0x8B, -+ 0xA8, 0x0D, 0x98, 0x90, 0x05, 0xD0, 0xA8, 0x29, 0x83, 0x48, 0x71, 0x03, 0x33, 0x80, 0x24, 0x90, 0x68, 0xD1, 0xA0, 0x2C, 0x23, 0x10, 0x4D, 0x12, 0x95, 0x11, 0xE4, 0x14, 0x21, 0x14, 0x39, 0x4E, -+ 0x12, 0x01, 0x70, 0x0C, 0x25, 0x71, 0x24, 0x83, 0x89, 0x54, 0x30, 0x06, 0x11, 0x90, 0x45, 0x12, 0x03, 0x04, 0x59, 0xB0, 0x4C, 0x20, 0x36, 0x8A, 0x19, 0x30, 0x72, 0x98, 0x94, 0x4C, 0x14, 0x81, -+ 0x40, 0xA2, 0xC6, 0x84, 0xCB, 0xA2, 0x48, 0x0C, 0xC1, 0x2D, 0x8A, 0xC4, 0x05, 0x42, 0x94, 0x45, 0x5B, 0xB4, 0x08, 0xDB, 0x18, 0x24, 0x88, 0x20, 0x90, 0x1B, 0xC3, 0x50, 0xA1, 0x96, 0x4D, 0x0B, -+ 0x31, 0x6D, 0x93, 0x26, 0x46, 0x00, 0x35, 0x52, 0x01, 0x13, 0x42, 0xDA, 0x46, 0x6A, 0x1A, 0x34, 0x01, 0x40, 0x92, 0x41, 0xC0, 0x08, 0x66, 0xE3, 0x94, 0x01, 0x63, 0x28, 0x69, 0x0C, 0x25, 0x31, -+ 0x0B, 0x21, 0x24, 0x43, 0xA2, 0x30, 0xD3, 0x22, 0x44, 0xCB, 0x36, 0x71, 0x02, 0x02, 0x42, 0x1A, 0xC1, 0x2C, 0x20, 0x23, 0x80, 0x8B, 0xA8, 0x85, 0x88, 0x08, 0x4A, 0x94, 0x10, 0x48, 0x18, 0x81, -+ 0x29, 0xE2, 0xB4, 0x4C, 0x89, 0x88, 0x51, 0xC9, 0x06, 0x09, 0xD3, 0x96, 0x71, 0x54, 0xB0, 0x91, 0x53, 0x86, 0x04, 0x53, 0xC4, 0x44, 0x81, 0x98, 0x11, 0x88, 0x20, 0x04, 0xA0, 0x16, 0x0A, 0x49, -+ 0xA0, 0x10, 0x1A, 0x17, 0x44, 0x21, 0x26, 0x66, 0xE0, 0xC0, 0x09, 0x59, 0x90, 0x8C, 0x93, 0x10, 0x49, 0x00, 0x85, 0x65, 0x4C, 0xC6, 0x0D, 0x00, 0x18, 0x30, 0x1B, 0x12, 0x6E, 0x10, 0x02, 0x45, -+ 0xA2, 0x12, 0x49, 0x22, 0xC8, 0x20, 0x03, 0xC5, 0x48, 0x12, 0x04, 0x52, 0xA1, 0x88, 0x25, 0x40, 0xB2, 0x4D, 0x4B, 0x38, 0x28, 0x23, 0xB2, 0x64, 0xC2, 0x38, 0x90, 0x09, 0x46, 0x92, 0x0C, 0x90, -+ 0x0D, 0x04, 0x06, 0x0C, 0x4C, 0x16, 0x2D, 0x08, 0x10, 0x49, 0x20, 0x47, 0x65, 0x50, 0x28, 0x29, 0x1A, 0x88, 0x80, 0x40, 0x30, 0x6D, 0x88, 0x36, 0x70, 0x63, 0x98, 0x71, 0x99, 0x96, 0x2C, 0x1B, -+ 0x91, 0x61, 0x61, 0x40, 0x06, 0x13, 0x35, 0x04, 0x09, 0x08, 0x8E, 0x54, 0xB8, 0x44, 0x81, 0x30, 0x08, 0xC8, 0x10, 0x2C, 0x5A, 0xB0, 0x04, 0x42, 0x46, 0x61, 0x20, 0x03, 0x88, 0x91, 0xA0, 0x91, -+ 0x81, 0x10, 0x4D, 0x12, 0xB7, 0x81, 0x20, 0x42, 0x02, 0x54, 0x94, 0x24, 0x59, 0xC4, 0x25, 0x8C, 0x44, 0x70, 0xE3, 0x32, 0x8E, 0x9A, 0x02, 0x60, 0xE4, 0xA6, 0x21, 0x4A, 0xB2, 0x85, 0x93, 0x36, -+ 0x20, 0x03, 0x82, 0x03, 0x01, 0x00, 0x01, 0x05, 0x32, 0x11, 0x44, 0x66, 0xE2, 0x06, 0x40, 0x14, 0x49, 0x6C, 0x0B, 0x86, 0x80, 0x02, 0x47, 0x26, 0xD2, 0xB2, 0x25, 0x58, 0x48, 0x0E, 0x58, 0x44, -+ 0x11, 0xD1, 0x44, 0x50, 0x51, 0xB8, 0x81, 0xC4, 0xA0, 0x48, 0x10, 0xC9, 0x50, 0x08, 0x98, 0x88, 0xD8, 0x28, 0x2A, 0x52, 0xC0, 0x4D, 0xD1, 0x38, 0x12, 0xD8, 0x46, 0x89, 0x00, 0x94, 0x00, 0xDA, -+ 0xC4, 0x45, 0x9B, 0x44, 0x6E, 0x0B, 0x44, 0x0C, 0xC0, 0xC0, 0x01, 0x20, 0xC1, 0x0C, 0xC0, 0x04, 0x4C, 0x08, 0x24, 0x21, 0x23, 0xC7, 0x65, 0x03, 0xA0, 0x80, 0x91, 0xC2, 0x50, 0x21, 0x10, 0x31, -+ 0x99, 0x36, 0x00, 0x64, 0x28, 0x70, 0x81, 0x38, 0x05, 0x4A, 0x18, 0x80, 0x1C, 0x89, 0x24, 0x08, 0x95, 0x49, 0x24, 0x39, 0x40, 0x24, 0x15, 0x22, 0xD9, 0x32, 0x90, 0x23, 0x24, 0x71, 0xC4, 0x46, -+ 0x50, 0xCB, 0x86, 0x65, 0xE4, 0x94, 0x8C, 0x42, 0x04, 0x82, 0x8A, 0x86, 0x71, 0x13, 0xA3, 0x00, 0xDB, 0x44, 0x04, 0x23, 0x82, 0x10, 0x23, 0x46, 0x26, 0x0B, 0x08, 0x08, 0x60, 0x16, 0x11, 0xA4, -+ 0xB6, 0x24, 0xE1, 0x32, 0x69, 0x04, 0x17, 0x86, 0xE3, 0x84, 0x2C, 0x9C, 0x32, 0x41, 0x92, 0xC8, 0x61, 0x5A, 0x32, 0x26, 0x24, 0xC3, 0x29, 0x5A, 0xC8, 0x05, 0x0A, 0x06, 0x8E, 0xE1, 0x16, 0x20, -+ 0x99, 0x94, 0x61, 0x19, 0xA2, 0x0C, 0x1B, 0x05, 0x2E, 0x1B, 0x44, 0x64, 0x9A, 0x00, 0x84, 0x8C, 0x18, 0x52, 0x84, 0xB4, 0x60, 0x82, 0x20, 0x08, 0x42, 0x48, 0x09, 0x84, 0x08, 0x46, 0x11, 0x00, -+ 0x46, 0x13, 0x43, 0x01, 0xE1, 0x06, 0x91, 0x1B, 0x44, 0x8E, 0x01, 0x94, 0x64, 0x4A, 0x12, 0x09, 0x98, 0x38, 0x0E, 0xE4, 0x06, 0x25, 0x24, 0x13, 0x68, 0x13, 0x21, 0x06, 0x04, 0xB9, 0x40, 0x54, -+ 0x24, 0x25, 0x14, 0x88, 0x69, 0x82, 0x38, 0x01, 0xA4, 0x28, 0x72, 0x50, 0x86, 0x61, 0x23, 0xB1, 0x88, 0xA2, 0x90, 0x08, 0x1C, 0x95, 0x30, 0x1C, 0x40, 0x82, 0x49, 0xC8, 0x64, 0xCA, 0x04, 0x40, -+ 0x44, 0x98, 0x21, 0x0B, 0x24, 0x61, 0x1C, 0xA0, 0x4C, 0x09, 0xA4, 0x21, 0xC9, 0x08, 0x8A, 0x22, 0x13, 0x41, 0x80, 0xC8, 0x89, 0x23, 0xB1, 0x64, 0x1C, 0x11, 0x49, 0x40, 0xA2, 0x29, 0x61, 0xC8, -+ 0x8C, 0x8B, 0x96, 0x91, 0x83, 0x02, 0x42, 0xE1, 0xB6, 0x85, 0x51, 0x86, 0x4C, 0x04, 0x43, 0x91, 0x4B, 0xB8, 0x69, 0x50, 0x24, 0x81, 0xC8, 0x04, 0x2E, 0x1B, 0xB9, 0x31, 0x93, 0x24, 0x00, 0x23, -+ 0x86, 0x81, 0xC2, 0xB8, 0x61, 0x09, 0x00, 0x62, 0x14, 0x99, 0x41, 0x19, 0x37, 0x6E, 0x1C, 0x16, 0x30, 0x0A, 0x27, 0x45, 0x51, 0x10, 0x0D, 0x1C, 0x33, 0x4A, 0x10, 0x40, 0x80, 0xA0, 0x34, 0x62, -+ 0xD8, 0x44, 0x4A, 0x01, 0x06, 0x45, 0x23, 0x83, 0x8C, 0x24, 0xA4, 0x85, 0x01, 0x04, 0x0C, 0x09, 0x03, 0x32, 0xDB, 0x90, 0x09, 0x4A, 0x14, 0x42, 0x01, 0x08, 0x21, 0x22, 0x08, 0x66, 0x8B, 0x28, -+ 0x70, 0x24, 0x38, 0x31, 0x0C, 0x46, 0x69, 0x43, 0x44, 0x69, 0x9A, 0x34, 0x4D, 0x82, 0xC8, 0x40, 0x42, 0x42, 0x01, 0x23, 0xC7, 0x29, 0x91, 0x32, 0x72, 0x1B, 0x36, 0x4C, 0x1B, 0x33, 0x05, 0x13, -+ 0x35, 0x61, 0x14, 0x02, 0x46, 0x08, 0x03, 0x65, 0x21, 0x87, 0x20, 0x09, 0x03, 0x91, 0xC1, 0xC4, 0x25, 0xE2, 0xA6, 0x4C, 0x81, 0x14, 0x48, 0x20, 0x25, 0x4D, 0x03, 0x19, 0x69, 0xA3, 0x00, 0x69, -+ 0x54, 0xA8, 0x30, 0x9C, 0x86, 0x05, 0x9C, 0x36, 0x82, 0x03, 0x37, 0x0C, 0x0A, 0x15, 0x50, 0x9C, 0xC0, 0x91, 0x04, 0xB6, 0x91, 0x0C, 0x11, 0x80, 0x09, 0xB5, 0x70, 0x63, 0x20, 0x92, 0x44, 0x22, -+ 0x71, 0xC1, 0x48, 0x44, 0x98, 0xC4, 0x6D, 0x64, 0xA6, 0x89, 0x0A, 0xA9, 0x40, 0x04, 0xB8, 0x50, 0x04, 0x34, 0x8C, 0xE2, 0xC4, 0x80, 0x02, 0x00, 0x12, 0xA3, 0x36, 0x46, 0xD2, 0x00, 0x01, 0x1C, -+ 0x45, 0x46, 0x22, 0x33, 0x6D, 0x81, 0x92, 0x01, 0x08, 0x12, 0x86, 0x9C, 0x04, 0x51, 0xA3, 0x98, 0x30, 0x48, 0x10, 0x91, 0x19, 0xA0, 0x44, 0xC3, 0x04, 0x8D, 0x42, 0x90, 0x40, 0x43, 0x80, 0x44, -+ 0xA4, 0x46, 0x71, 0x0B, 0xA2, 0x60, 0x52, 0x18, 0x6D, 0x0B, 0xB6, 0x85, 0x1B, 0xB2, 0x0C, 0x94, 0x12, 0x09, 0x04, 0xB6, 0x41, 0x18, 0xA8, 0x84, 0x10, 0x00, 0x22, 0x53, 0x42, 0x69, 0xC3, 0xA8, -+ 0x81, 0x00, 0x25, 0x32, 0x81, 0x16, 0x28, 0x81, 0x44, 0x2D, 0xD4, 0xB4, 0x4D, 0x08, 0xC8, 0x45, 0x5A, 0x04, 0x01, 0xC1, 0x90, 0x50, 0x22, 0x14, 0x82, 0x63, 0xC6, 0x6D, 0x04, 0x22, 0x72, 0x1C, -+ 0xB9, 0x44, 0x9B, 0x46, 0x0D, 0xC2, 0x14, 0x22, 0x91, 0xB0, 0x44, 0x21, 0x89, 0x68, 0xC4, 0x96, 0x08, 0x0A, 0xB9, 0x8C, 0x22, 0xB9, 0x40, 0xE2, 0x26, 0x50, 0x8C, 0x88, 0x25, 0xCB, 0xB8, 0x04, -+ 0x54, 0x16, 0x25, 0x63, 0x34, 0x0C, 0x24, 0xB0, 0x29, 0xA3, 0x44, 0x20, 0x43, 0x46, 0x40, 0x9C, 0x02, 0x48, 0x5A, 0xC8, 0x2C, 0x00, 0x05, 0x31, 0x09, 0x18, 0x00, 0xDB, 0x46, 0x51, 0xD2, 0xB6, -+ 0x2C, 0x44, 0x40, 0x88, 0x9A, 0x96, 0x24, 0x12, 0xA5, 0x90, 0x04, 0x39, 0x86, 0x10, 0x80, 0x2D, 0x10, 0x99, 0x21, 0x60, 0x06, 0x66, 0x21, 0x89, 0x4C, 0x91, 0x04, 0x60, 0x23, 0xB9, 0x01, 0x12, -+ 0x11, 0x48, 0x12, 0x29, 0x51, 0xA1, 0x06, 0x45, 0x44, 0x22, 0x12, 0x03, 0x27, 0x8E, 0x23, 0x94, 0x84, 0x0C, 0x29, 0x06, 0x94, 0x86, 0x50, 0xE0, 0x48, 0x10, 0x24, 0x26, 0x40, 0x61, 0x04, 0x66, -+ 0x9C, 0xB2, 0x84, 0x54, 0xC2, 0x2C, 0x03, 0x82, 0x0E, 0x01, 0x00, 0xD6, 0xD4, 0x27, 0x24, 0xCA, 0xFD, 0xF2, 0x81, 0xB9, 0xCA, 0xDC, 0x58, 0x04, 0x84, 0x83, 0x95, 0x49, 0x25, 0x4C, 0x9B, 0xE0, -+ 0xA1, 0xF9, 0xAA, 0x9D, 0x76, 0xE6, 0x54, 0x63, 0xCD, 0x83, 0x14, 0x20, 0x65, 0xE7, 0xF7, 0x47, 0xBD, 0x27, 0x4C, 0xF3, 0x7E, 0x85, 0x70, 0xE0, 0xE6, 0x3A, 0xDB, 0xF8, 0x5F, 0x31, 0x79, 0x14, -+ 0x75, 0xFF, 0x1A, 0x2F, 0x50, 0x5B, 0x53, 0x24, 0x77, 0x2C, 0xB0, 0xEB, 0x21, 0x9E, 0x2C, 0x28, 0xC4, 0xEF, 0xBC, 0x31, 0xE7, 0x13, 0xDF, 0x18, 0x77, 0x25, 0xB7, 0xBD, 0xE2, 0x90, 0xE6, 0x08, -+ 0x98, 0x5B, 0x7D, 0x8A, 0x71, 0x14, 0x42, 0xD4, 0x03, 0xD2, 0x56, 0xF5, 0x35, 0xA4, 0x27, 0x1F, 0x6C, 0xC6, 0x5F, 0x91, 0xF1, 0xA7, 0x3F, 0x3B, 0x33, 0x94, 0x83, 0x3D, 0xF0, 0x12, 0x79, 0xDC, -+ 0x71, 0xFB, 0x60, 0xBD, 0x14, 0x13, 0xBF, 0x23, 0xBA, 0x3A, 0x20, 0xC7, 0x15, 0xC1, 0x30, 0xDA, 0x19, 0x2D, 0x05, 0x1F, 0xF6, 0xEA, 0x7E, 0xDD, 0xBB, 0x81, 0xDB, 0xC4, 0xBE, 0xBA, 0xF6, 0x71, -+ 0x41, 0x23, 0x6E, 0x5D, 0x9E, 0x09, 0x93, 0xFB, 0x7D, 0xC7, 0x06, 0x44, 0x83, 0xDA, 0x06, 0x99, 0xE8, 0x40, 0x21, 0x76, 0xC6, 0xB2, 0x0F, 0x24, 0x0D, 0x35, 0x87, 0xBC, 0x1B, 0x07, 0x3C, 0x9A, -+ 0xA0, 0x09, 0xCB, 0xC1, 0xB0, 0x5F, 0x49, 0xCC, 0xBB, 0x25, 0x13, 0x12, 0x96, 0x92, 0xDF, 0x1C, 0xEC, 0xDA, 0x29, 0x54, 0xCC, 0xEC, 0xC1, 0x7B, 0xBB, 0x1D, 0x11, 0x96, 0x4F, 0xAE, 0xB0, 0xF9, -+ 0xE0, 0x29, 0x21, 0x29, 0x59, 0xB6, 0x8E, 0x4B, 0xE0, 0x66, 0x64, 0xF9, 0x58, 0x74, 0x32, 0xC0, 0x2D, 0xE6, 0x15, 0x88, 0x51, 0x55, 0x57, 0x56, 0x5A, 0x26, 0xA6, 0xEC, 0xD6, 0xB4, 0xDE, 0x47, -+ 0xF0, 0xB6, 0x47, 0x63, 0x77, 0x81, 0xEC, 0x19, 0x49, 0x32, 0xD2, 0x82, 0xFF, 0x1F, 0x83, 0x5E, 0xB8, 0x09, 0x66, 0xAB, 0xA2, 0x16, 0xB4, 0xE7, 0xF8, 0x8E, 0xAB, 0x97, 0x05, 0x21, 0x26, 0x4D, -+ 0xB5, 0xD6, 0xF2, 0x83, 0xA4, 0xF6, 0x79, 0x1E, 0x32, 0x9F, 0xB8, 0xCB, 0x54, 0x25, 0xB9, 0x13, 0x9E, 0x96, 0xAB, 0xB3, 0x94, 0x4E, 0x35, 0xBB, 0x88, 0x64, 0x2A, 0xC0, 0xE7, 0xDC, 0xDA, 0xB9, -+ 0xB5, 0x59, 0xD0, 0x9E, 0x29, 0x55, 0x72, 0xB2, 0x52, 0x92, 0xC0, 0x3C, 0xD5, 0xAB, 0x5E, 0x7B, 0xBE, 0x77, 0x61, 0xD8, 0x58, 0x3F, 0xAD, 0x91, 0x66, 0x91, 0x3F, 0xDE, 0x1B, 0x65, 0x8F, 0x87, -+ 0x26, 0xC3, 0xF7, 0xE6, 0xD2, 0x65, 0x63, 0x17, 0xDA, 0xAF, 0xB9, 0x2E, 0x78, 0x7D, 0x24, 0xC5, 0xD8, 0x94, 0x7F, 0xF5, 0x95, 0xA5, 0x85, 0x3D, 0x61, 0x11, 0x73, 0xDF, 0x20, 0xF0, 0xAE, 0x01, -+ 0x50, 0x75, 0x8C, 0x6B, 0x13, 0x1D, 0xFD, 0xEF, 0x36, 0xA0, 0x1D, 0x7C, 0x87, 0x4D, 0x0B, 0x8C, 0xD0, 0xC2, 0x53, 0x83, 0x56, 0x94, 0x06, 0xCB, 0xE4, 0x2A, 0x72, 0xD7, 0x09, 0x7E, 0x84, 0xD9, -+ 0x82, 0x58, 0x39, 0xEB, 0xD1, 0x4F, 0x17, 0x5E, 0xD5, 0x1E, 0x6A, 0xC1, 0xA3, 0xF7, 0xF7, 0xBE, 0xFF, 0x60, 0xF5, 0xC0, 0x72, 0x73, 0x42, 0xD7, 0xDD, 0x34, 0x76, 0xDC, 0x9A, 0xE0, 0xE2, 0x7E, -+ 0xDB, 0xB8, 0x86, 0xBF, 0xA0, 0x0D, 0x36, 0xFE, 0x80, 0xDA, 0x81, 0x6A, 0x45, 0xE0, 0xC8, 0x00, 0x0B, 0x6E, 0x23, 0xE9, 0xB5, 0xCA, 0xD0, 0x13, 0xB6, 0xDE, 0xBF, 0x74, 0x9E, 0xB7, 0x27, 0xB8, -+ 0xD8, 0x3B, 0xFE, 0x26, 0xF6, 0xC5, 0x99, 0xD5, 0xBD, 0x45, 0xB5, 0x82, 0xB8, 0x4F, 0x4F, 0xC8, 0x34, 0x10, 0xEE, 0x2A, 0x67, 0x5C, 0x66, 0x14, 0x5F, 0x52, 0xCF, 0x36, 0x83, 0x29, 0x0C, 0xC7, -+ 0x2A, 0x29, 0x28, 0x5D, 0x70, 0x66, 0x7A, 0x3A, 0x31, 0x58, 0x93, 0x54, 0xD9, 0x19, 0x31, 0x62, 0x5F, 0xFA, 0xCF, 0xB7, 0xE0, 0x2C, 0x03, 0xFE, 0x48, 0x09, 0x2A, 0x12, 0x0E, 0x5F, 0x43, 0x12, -+ 0x76, 0xE8, 0x37, 0x4D, 0xBE, 0x15, 0x40, 0x96, 0xC8, 0x6C, 0x58, 0x79, 0x10, 0xF5, 0x05, 0x1A, 0x86, 0x14, 0x17, 0xC0, 0x6A, 0x73, 0x48, 0x0C, 0xE3, 0x19, 0x5C, 0xC9, 0x99, 0xF6, 0xB8, 0xB3, -+ 0x01, 0x9B, 0x22, 0x37, 0x96, 0xC5, 0xE1, 0x1F, 0x73, 0x42, 0xC9, 0x74, 0x6A, 0xED, 0xBF, 0xA9, 0x44, 0xCD, 0x79, 0xB8, 0x5C, 0x10, 0x00, 0x07, 0xBB, 0x58, 0x69, 0x84, 0x3A, 0x23, 0xAD, 0x06, -+ 0xD8, 0x1F, 0x5C, 0xB2, 0x9D, 0xD1, 0x7B, 0xCE, 0xE7, 0x55, 0x72, 0xB9, 0xE0, 0xCF, 0xDB, 0xD5, 0xA8, 0x3A, 0x30, 0x57, 0x44, 0x2D, 0xF0, 0x00, 0xDA, 0x7A, 0x3A, 0xA6, 0xFC, 0x5F, 0xB2, 0x89, -+ 0xA1, 0x29, 0x99, 0x24, 0xD9, 0x23, 0x1F, 0xE1, 0xD0, 0xCF, 0x3C, 0x17, 0xF1, 0x80, 0x3F, 0x61, 0x43, 0xC0, 0x97, 0xF9, 0x54, 0x2C, 0x9A, 0xBB, 0x8F, 0x98, 0x77, 0xE4, 0xAE, 0xC5, 0x4A, 0xB9, -+ 0x39, 0x93, 0xDC, 0x49, 0x87, 0xDF, 0x67, 0x80, 0x8B, 0xF7, 0xBE, 0xDE, 0xA8, 0x6B, 0x5C, 0x83, 0xD2, 0x48, 0xE9, 0x5E, 0xA3, 0x02, 0x45, 0x3F, 0x5F, 0x6B, 0x7F, 0xF5, 0xB5, 0xF5, 0x8B, 0x65, -+ 0xD9, 0x32, 0xD2, 0xBF, 0x73, 0x7C, 0x51, 0x89, 0x3D, 0x89, 0xF0, 0x7D, 0xA5, 0xBF, 0xEA, 0x79, 0xD7, 0xE7, 0xFB, 0x2A, 0xAB, 0x82, 0x33, 0xA2, 0x7E, 0xB4, 0x4C, 0x68, 0x58, 0x05, 0x1D, 0x92, -+ 0xB9, 0x98, 0xBC, 0x47, 0x51, 0xA4, 0x90, 0x2A, 0xA2, 0x22, 0xDE, 0x2D, 0x5C, 0xDC, 0xEC, 0x26, 0xB3, 0x6D, 0xBA, 0x47, 0xCC, 0xEB, 0x41, 0xFB, 0x19, 0x2D, 0xDF, 0xFD, 0x55, 0x12, 0xD8, 0x2B, -+ 0x1B, 0xD3, 0x4D, 0x1E, 0xAA, 0x42, 0xF8, 0xCC, 0x50, 0x3F, 0x23, 0x85, 0x92, 0x42, 0x07, 0x9C, 0xBC, 0x1A, 0x55, 0xF0, 0x95, 0xAB, 0xB3, 0xC1, 0x87, 0x9F, 0xD1, 0xB4, 0x85, 0x04, 0xD8, 0x05, -+ 0x4C, 0x15, 0xEB, 0x3E, 0xBF, 0x54, 0xA3, 0x2C, 0x5B, 0x62, 0xC0, 0x55, 0x55, 0xE4, 0xAC, 0x60, 0x36, 0x91, 0x9B, 0xB9, 0xA1, 0xBB, 0x53, 0x9E, 0x78, 0x86, 0x7A, 0x74, 0xF5, 0x3C, 0x23, 0xB1, -+ 0xA1, 0x35, 0x98, 0x7D, 0x8B, 0xDD, 0x63, 0xE0, 0x92, 0xAB, 0x2B, 0xF1, 0xD8, 0xF6, 0x60, 0x38, 0xE1, 0x49, 0xAE, 0x41, 0x0B, 0x09, 0xAB, 0x25, 0xB4, 0xFE, 0x65, 0x53, 0xB3, 0x0E, 0x7B, 0xA7, -+ 0xBF, 0x01, 0x36, 0x36, 0x8E, 0x3B, 0x8B, 0x73, 0x23, 0xA1, 0x24, 0x89, 0x02, 0x94, 0x7B, 0x2A, 0x39, 0x85, 0xB5, 0xC5, 0xCB, 0x80, 0x27, 0xAE, 0xF8, 0xA9, 0xE3, 0x42, 0xA3, 0xB7, 0x54, 0x3C, -+ 0x31, 0x54, 0x72, 0x49, 0xFC, 0x77, 0x7C, 0x59, 0x2A, 0x31, 0xB8, 0x5B, 0x4B, 0x07, 0xE0, 0xAD, 0x87, 0x61, 0x2C, 0x3D, 0xF4, 0x9B, 0x9E, 0xB6, 0x6A, 0x53, 0xF4, 0x11, 0xC6, 0xD6, 0xDE, 0x9F, -+ 0x26, 0x86, 0x95, 0x07, 0x74, 0x80, 0x6A, 0xD0, 0xCE, 0xBF, 0x25, 0x4C, 0x18, 0x2F, 0x3A, 0x5D, 0xF9, 0xE4, 0x29, 0xF0, 0x79, 0x2E, 0x96, 0x35, 0x95, 0xB8, 0x42, 0x6B, 0xB0, 0xCB, 0x53, 0x62, -+ 0x75, 0x36, 0x26, 0x5C, 0x4F, 0x63, 0x46, 0xB4, 0xB0, 0x72, 0xEA, 0xB4, 0xD1, 0xE6, 0x87, 0xA4, 0xDE, 0x7B, 0x82, 0x89, 0x90, 0xEB, 0xF3, 0x38, 0x1F, 0x0B, 0x70, 0xE9, 0x26, 0xD6, 0x7B, 0x76, -+ 0x89, 0x73, 0xF1, 0x02, 0x40, 0x80, 0xBD, 0x40, 0xC6, 0x7B, 0x81, 0x04, 0x09, 0x34, 0xD1, 0xC3, 0xC3, 0x77, 0x4D, 0xDE, 0x93, 0x28, 0xBE, 0x69, 0xBB, 0xD5, 0xDF, 0xE3, 0xF2, 0x80, 0xDB, 0x77, -+ 0xFF, 0xC1, 0xA7, 0x8D, 0x11, 0x13, 0x34, 0xB4, 0x21, 0x97, 0x00, 0x2B, 0xD8, 0x5C, 0xD7, 0xCD, 0xF7, 0xCB, 0xB6, 0xED, 0x3F, 0x41, 0xCB, 0xB9, 0xAD, 0x48, 0x1F, 0x44, 0xA3, 0x35, 0x11, 0x55, -+ 0xA5, 0x22, 0x35, 0x0A, 0x65, 0x8F, 0x69, 0x92, 0x11, 0xD7, 0xAA, 0x5E, 0x68, 0xA5, 0x27, 0x94, 0x76, 0xC0, 0x0B, 0xD9, 0xEE, 0x01, 0x0C, 0xEC, 0x6E, 0x51, 0x02, 0xD2, 0x70, 0x54, 0xC9, 0x74, -+ 0xD1, 0x6B, 0xE4, 0xA6, 0xC6, 0x85, 0x99, 0xAE, 0x83, 0x01, 0x9C, 0xB1, 0x32, 0x4E, 0x35, 0x10, 0x4F, 0x10, 0x5A, 0x59, 0xE6, 0xCF, 0x07, 0x67, 0x30, 0xF3, 0x3A, 0x03, 0xED, 0xD7, 0xC9, 0x2E, -+ 0x07, 0x36, 0xB5, 0x42, 0x98, 0x79, 0x0C, 0xA8, 0xD5, 0x28, 0x72, 0x74, 0x28, 0x23, 0x73, 0x19, 0x9E, 0x90, 0xB9, 0x49, 0x13, 0xB9, 0x9C, 0x06, 0xD7, 0xD5, 0xB6, 0xC4, 0x18, 0xF5, 0x5B, 0x66, -+ 0x14, 0x13, 0x31, 0x13, 0x0E, 0x6B, 0xD5, 0x61, 0x52, 0xB8, 0xDB, 0x19, 0xB2, 0xFB, 0x1B, 0xB6, 0x5C, 0x8D, 0x21, 0xFC, 0xD4, 0xBE, 0x45, 0x1A, 0x4A, 0x1C, 0x0F, 0xEE, 0x73, 0xDB, 0xC3, 0x55, -+ 0x7D, 0x36, 0x2C, 0x45, 0x3D, 0x8E, 0x6A, 0x43, 0xE9, 0x9E, 0x47, 0x97, 0xD1, 0xF2, 0x5B, 0x1A, 0x58, 0x98, 0x14, 0x81, 0x1D, 0x66, 0xB7, 0x31, 0xA7, 0x5E, 0x99, 0x3F, 0xF1, 0xD3, 0xBC, 0x42, -+ 0x11, 0xF8, 0xC1, 0x51, 0x0B, 0x90, 0x40, 0x50, 0x68, 0x94, 0xB8, 0x6B, 0xA9, 0xFB, 0xA3, 0x55, 0x49, 0x61, 0xDF, 0x34, 0xFD, 0xB7, 0x65, 0x5F, 0xD9, 0x28, 0x37, 0x8B, 0x4E, 0x65, 0x00, 0x14, -+ 0x77, 0xD1, 0xFC, 0xF1, 0x8C, 0xB7, 0x1C, 0x5E, 0x41, 0x71, 0x69, 0x6F, 0x33, 0xB2, 0xB6, 0x76, 0x30, 0x38, 0xD5, 0x12, 0xAC, 0xB0, 0xF7, 0xFE, 0xEE, 0x76, 0xF0, 0xFB, 0x16, 0x4E, 0x30, 0xFE, -+ 0xB7, 0xD6, 0x37, 0xB3, 0xAB, 0x1E, 0x7F, 0x25, 0x1E, 0xF8, 0xC0, 0x54, 0x31, 0x46, 0x1C, 0x3A, 0xB9, 0x0F, 0x05, 0x7D, 0xA0, 0xF4, 0xD8, 0xC3, 0xB3, 0x78, 0x7A, 0xE5, 0x8C, 0xB0, 0x13, 0x6D, -+ 0x68, 0xAC, 0xB6, 0x40, 0x7B, 0xCF, 0x67, 0x16, 0x20, 0x72, 0x3A, 0x02, 0x30, 0xD4, 0xF7, 0xDD, 0x7A, 0xDE, 0x77, 0x0C, 0x41, 0x8F, 0xCA, 0xD9, 0x97, 0x8F, 0x7C, 0x96, 0x22, 0x26, 0xCA, 0x6D, -+ 0x65, 0x79, 0xBA, 0xDC, 0x67, 0x52, 0x23, 0x7C, 0x99, 0xD2, 0x4C, 0xA8, 0x04, 0xE9, 0xF1, 0xFC, 0xDC, 0x9A, 0xAA, 0x11, 0x1F, 0x2C, 0x90, 0x5E, 0xF0, 0x31, 0x69, 0x0D, 0x17, 0x65, 0xE8, 0x21, -+ 0x93, 0x8A, 0x0B, 0x78, 0x46, 0xC3, 0xBB, 0x80, 0xDB, 0xEF, 0x95, 0x30, 0xC6, 0x8C, 0xAA, 0x0A, 0xDA, 0x96, 0x2A, 0x59, 0x5F, 0xD9, 0xE7, 0xAB, 0xD9, 0xE1, 0xF7, 0x6F, 0xF2, 0x97, 0xE1, 0x78, -+ 0x50, 0x54, 0x13, 0xEE, 0x95, 0xFC, 0x0A, 0x95, 0x8D, 0x72, 0x0C, 0x2A, 0x23, 0x86, 0xA1, 0x64, 0x50, 0xF9, 0x7D, 0xE5, 0x8E, 0xE2, 0x27, 0xBF, 0xA3, 0x3C, 0xAA, 0xC0, 0x3F, 0x13, 0x5A, 0x83, -+ 0x45, 0x46, 0x9F, 0x26, 0xC7, 0x70, 0x26, 0x91, 0x5E, 0xE2, 0x0F, 0xBD, 0x82, 0xB0, 0x9B, 0x02, 0xFE, 0xA7, 0x7A, 0xBC, 0xFB, 0x9D, 0xA8, 0x94, 0xD8, 0x67, 0x6E, 0x16, 0x0F, 0x1E, 0x1C, 0xEA, -+ 0x42, 0x0B, 0x2C, 0xFE, 0x14, 0xFF, 0x08, 0xE1, 0x65, 0x0D, 0x56, 0x5B, 0x6C, 0xDF, 0x6A, 0xD7, 0xEE, 0x51, 0x3D, 0xC1, 0xE7, 0x34, 0x30, 0x96, 0xDD, 0x26, 0x5C, 0x45, 0x9F, 0xA1, 0x7C, 0x55, -+ 0xE5, 0xD6, 0xC6, 0x38, 0x28, 0xBC, 0xC4, 0xB7, 0x2A, 0x2A, 0x02, 0x7C, 0x31, 0xD2, 0x43, 0x8A, 0x7B, 0xFF, 0x42, 0x77, 0x3F, 0xED, 0x94, 0x35, 0xC3, 0xC6, 0xED, 0x66, 0x4D, 0x35, 0x41, 0x86, -+ 0x58, 0xCB, 0x13, 0x37, 0x43, 0xF4, 0x82, 0x73, 0x2F, 0x6F, 0xB2, 0xC8, 0x9C, 0x68, 0x00, 0x05, 0x20, 0x9D, 0xFB, 0xEE, 0xAB, 0x70, 0x2A, 0x39, 0x11, 0xA8, 0x7D, 0xD5, 0x5E, 0xF3, 0x9F, 0x40, -+ 0x93, 0x70, 0xBE, 0x94, 0x88, 0x84, 0x42, 0xB0, 0x8D, 0xB3, 0x37, 0x08, 0xBC, 0xB3, 0x1A, 0x14, 0x07, 0x30, 0x3B, 0x4F, 0xED, 0xF3, 0x11, 0xC1, 0x52, 0x63, 0x57, 0x9F, 0x81, 0x74, 0x6C, 0xED, -+ 0xFB, 0x79, 0x0C, 0xA0, 0x30, 0x4C, 0x88, 0xFC, 0xCA, 0x59, 0x56, 0xE9, 0xF8, 0x19, 0xFE, 0xFF, 0xAC, 0x13, 0xC6, 0x4D, 0x96, 0xC4, 0x3C, 0x98, 0xD8, 0x8F, 0xEC, 0x8F, 0xD9, 0x83, 0xC1, 0xC5, -+ 0x19, 0xCB, 0x88, 0x4D, 0x2E, 0x7A, 0x90, 0xCD, 0xF3, 0x65, 0xFE, 0x5F, 0xB5, 0xDA, 0x8F, 0xAB, 0x74, 0xF0, 0x73, 0xBA, 0x25, 0x8D, 0x26, 0x4F, 0x94, 0x2D, 0x14, 0xD6, 0xE2, 0xE9, 0x08, 0x29, -+ 0xAE, 0x35, 0x74, 0x6D, 0x05, 0x7A, 0x18, 0x0E, 0x56, 0x38, 0x42, 0xF5, 0x4C, 0x4B, 0xC7, 0xD5, 0x00, 0x49, 0x43, 0x24, 0x72, 0xD1, 0xED, 0xF1, 0x38, 0xF2, 0xE5, 0x86, 0x26, 0xAB, 0x8C, 0x96, -+ 0xE6, 0x00, 0xED, 0x19, 0x36, 0xF3, 0x38, 0x80, 0xF4, 0xF2, 0x20, 0x1B, 0x61, 0x07, 0xC4, 0xEF, 0xB9, 0xC0, 0x2E, 0xCF, 0x31, 0x44, 0xE3, 0xAC, 0x55, 0xB0, 0xEE, 0x51, 0x68, 0xA7, 0x93, 0xB1, -+ 0x5D, 0xB4, 0xA6, 0x1B, 0xFF, 0xFC, 0x8B, 0xE4, 0xA3, 0x80, 0x40, 0xA0, 0x6C, 0x31, 0xF5, 0x15, 0x2D, 0x7C, 0x95, 0xF8, 0xC4, 0x94, 0x45, 0x12, 0x4D, 0x07, 0x20, 0x95, 0xFC, 0x14, 0xF6, 0x79, -+ 0xDF, 0x55, 0xDC, 0x1E, 0x7F, 0xBE, 0x48, 0x83, 0xDA, 0xA3, 0x50, 0xF2, 0x16, 0x98, 0xEB, 0x78, 0xB2, 0x9A, 0xDB, 0xD0, 0x71, 0x53, 0x58, 0xF9, 0x65, 0x27, 0x8A, 0xF8, 0x67, 0xC1, 0x2E, 0x2B, -+ 0xB1, 0x9F, 0xFA, 0x16, 0x50, 0x27, 0x69, 0xF4, 0xFB, 0xDB, 0x20, 0x82, 0x2D, 0x1D, 0xE1, 0xFB, 0x6E, 0x41, 0x6D, 0x82, 0x29, 0x32, 0xB5, 0xCD, 0x5B, 0x37, 0x0A, 0x58, 0x65, 0x56, 0x07, 0x56, -+ 0xD7, 0x6D, 0x8C, 0x2F, 0xE4, 0x70, 0x4E, 0x0B, 0x15, 0x83, 0xEB, 0x5D, 0x23, 0x5E, 0xC3, 0xFE, 0x7F, 0xF4, 0x98, 0xE1, 0x35, 0x61, 0x00, 0xC5, 0x80, 0x76, 0x3E, 0xB5, 0xF2, 0x36, 0x35, 0x62, -+ 0x0C, 0xF6, 0xCC, 0x56, 0xE7, 0x4B, 0x48, 0x22, 0x3C, 0x70, 0xB5, 0xE5, 0x23, 0xAC, 0x61, 0xEA, 0xAE, 0xF8, 0x8E, 0x4D, 0xD1, 0x50, 0x5D, 0x25, 0xC9, 0x65, 0x8B, 0x96, 0xE9, 0x32, 0xCE, 0x0B, -+ 0xD0, 0xEF, 0xFE, 0x80, 0xBA, 0xA5, 0xD1, 0x05, 0xA6, 0x51, 0x4B, 0x25, 0x57, 0x8D, 0x1F, 0x3F, 0xCC, 0x8F, 0xF5, 0xF9, 0x3A, 0x7C, 0xDD, 0xCC, 0xE0, 0x84, 0x0F, 0x63, 0x1B, 0xE0, 0x2B, 0xCA, -+ 0x85, 0x20, 0x98, 0xDC, 0xFA, 0x06, 0x56, 0xF0, 0x8A, 0xF1, 0xBD, 0xC8, 0xE2, 0x4A, 0x27, 0x46, 0x74, 0x16, 0xF4, 0x87, 0xAD, 0x02, 0x60, 0x22, 0xDD, 0x5E, 0x1E, 0x1E, 0xFD, 0xC9, 0xC2, 0xB4, -+ 0x71, 0xE3, 0x26, 0x53, 0x65, 0xF2, 0x0B, 0xC8, 0x21, 0x86, 0x37, 0x66, 0x25, 0x5D, 0x0A, 0xAC, 0x67, 0xB6, 0x58, 0xE6, 0x63, 0x3F, 0xD2, 0xC9, 0x3F, 0x80, 0xE5, 0x55, 0x5C, 0x6B, 0x3F, 0x9B, -+ 0x9C, 0x54, 0x02, 0x62, 0xF9, 0x2E, 0x57, 0x5E, 0xCA, 0x8C, 0xBD, 0xDE, 0xA2, 0x5E, 0x35, 0x59, 0x9F, 0xAF, 0xE0, 0x90, 0x20, 0x1D, 0x53, 0x1A, 0x96, 0xA6, 0x59, 0x5F, 0x6B, 0xC0, 0xA0, 0x83, -+ 0x47, 0xF4, 0x54, 0xFC, 0x12, 0x6A, 0x16, 0x21, 0x64, 0xA0, 0xD5, 0x07, 0x39, 0xF3, 0x0A, 0xB2, 0x29, 0x89, 0xF8, 0x88, 0xE4, 0xDF, 0xA3, 0x56, 0x13, 0x7A, 0x3E, 0x65, 0xEC, 0xB5, 0xF4, 0x7E, -+ 0x20, 0x0E, 0x73, 0x36, 0xA2, 0xF0, 0xA5, 0xC5, 0x47, 0xA2, 0x36, 0x7F, 0x1D, 0x0F, 0xDE, 0xA8, 0x9D, 0x00, 0x69, 0x8D, 0x96, 0x2E, 0x62, 0xE8, 0xDA, 0xA5, 0x70, 0xEE, 0x07, 0x7B, 0x9E, 0xB8, -+ 0x18, 0xED, 0x82, 0x75, 0xB2, 0x3E, 0x73, 0x39, 0xFA, 0x3A, 0x6C, 0x9E, 0xF0, 0xD3, 0xC9, 0x78, 0xEE, 0xF7, 0x5B, 0xC9, 0x77, 0xAA, 0xFE, 0x87, 0xB1, 0xA4, 0x1F, 0xED, 0x4C, 0x7D, 0xA1, 0x7E, -+ 0x2B, 0xBE, 0xCC, 0xA8, 0xF4, 0x06, 0xF0, 0x40, 0xB1, 0x6F, 0xDD, 0xFB, 0x2E, 0x8F, 0x47, 0x0C, 0x25, 0x40, 0x9B, 0x8C, 0x7C, 0x13, 0x88, 0xE6, 0x08, 0xEB, 0xBA, 0xE2, 0x67, 0xF7, 0x7C, 0x5F, -+ 0xE0, 0x10, 0xF6, 0x91, 0x7B, 0xC6, 0xCA, 0x7B, 0xF6, 0x86, 0x5F, 0xAA, 0x73, 0xE1, 0x0F, 0x2F, 0x60, 0xD2, 0x2D, 0xB2, 0x4A, 0x21, 0x71, 0x81, 0xBE, 0x56, 0xFD, 0x47, 0x3E, 0xE7, 0xAF, 0x5E, -+ 0xD5, 0x60, 0x9A, 0xDA, 0x02, 0x36, 0xFA, 0xB3, 0x06, 0x6C, 0x3D, 0xAD, 0x28, 0xA2, 0x4F, 0x67, 0xD4, 0xCC, 0x1C, 0xEF, 0xE6, 0x10, 0x6F, 0x5E, 0x54, 0x27, 0xAC, 0xCD, 0xC7, 0x3F, 0xF8, 0x85, -+ 0x76, 0xA2, 0x7A, 0xEB, 0xE7, 0x1A, 0x33, 0xDB, 0x3C, 0x08, 0x02, 0xD6, 0x97, 0x18, 0x95, 0x6C, 0xD9, 0xD1, 0x5A, 0xAA, 0x9A, 0x2D, 0xE3, 0xAC, 0x62, 0x10, 0x10, 0x0A, 0x2E, 0x39, 0xAF, 0x5B, -+ 0xA9, 0x1D, 0xFA, 0x21, 0x8C, 0x53, 0x72, 0x66, 0x06, 0x2E, 0x32, 0x6E, 0x2F, 0xF8, 0xC4, 0x4D, 0x17, 0x80, 0xFB, 0xAF, 0xF4, 0xAD, 0xBA, 0x82, 0x71, 0x17, 0xE0, 0xBC, 0xB7, 0xA4, 0xC8, 0xF2, -+ 0x61, 0x39, 0x81, 0x71, 0x3F, 0xA5, 0x98, 0xA4, 0x68, 0x3A, 0x46, 0x70, 0x85, 0x4C, 0x94, 0x67, 0xF2, 0x5A, 0x65, 0x6D, 0xDB, 0x6E, 0x7C, 0x3E, 0xF1, 0x92, 0xEB, 0xBD, 0xEE, 0x15, 0x3A, 0x59, -+ 0x41, 0x61, 0x95, 0x26, 0xB3, 0x17, 0x87, 0x54, 0x4F, 0xE2, 0x31, 0x2A, 0x28, 0x98, 0x9C, 0x6A, 0xA3, 0xAC, 0xC0, 0xFE, 0x44, 0x23, 0x14, 0xFD, 0xFB, 0xD8, 0x08, 0x7F, 0x2B, 0x75, 0x5E, 0xB4, -+ 0xB7, 0x35, 0x55, 0x76, 0x28, 0x3F, 0xA8, 0x6C, 0xD2, 0xD9, 0xEC, 0x1A, 0x6B, 0xD9, 0x4E, 0x6C, 0x5D, 0x72, 0x82, 0x02, 0xEC, 0x0B, 0x6E, 0xDF, 0xE1, 0xF3, 0x35, 0x84, 0x11, 0xC4, 0x9E, 0xC1, -+ 0x10, 0x63, 0xAC, 0x1E, 0xDE, 0xB2, 0x1B, 0x95, 0xD7, 0x13, 0xD9, 0x0B, 0xE4, 0x96, 0xD8, 0x55, 0x84, 0xAA, 0x64, 0x25, 0x47, 0x14, 0x80, 0x84, 0x4E, 0x5B, 0xE2, 0xD7, 0x05, 0x3E, 0x87, 0x22, -+ 0x03, 0x64, 0x79, 0xBD, 0xCB, 0x36, 0x38, 0x35, 0xBB, 0x08, 0xB0, 0x10, 0xDD, 0x0C, 0x08, 0x0E, 0x3D, 0x85, 0x24, 0xAE, 0x62, 0x21, 0x3E, 0x20, 0x8E, 0xC4, 0x12, 0xD0, 0x1F, 0xC9, 0xCE, 0xFA, -+ 0x9C, 0x0A, 0xBD, 0x39, 0x64, 0x96, 0x45, 0x51, 0x84, 0xDB, 0x24, 0x4A, 0xD6, 0xBE, 0xB4, 0x5F, 0xB7, 0x68, 0x47, 0x91, 0x62, 0x47, 0x44, 0x33, 0x52, 0x0C, 0xE0, 0x63, 0x03, 0xFF, 0xC6, 0x06, -+ 0x07, 0xDD, 0x43, 0x29, 0x62, 0x88, 0x4F, 0x8A, 0xA6, 0x54, 0x39, 0x98, 0xE1, 0xFB, 0x24, 0xDA, 0xF8, 0xAB, 0x3F, 0xF8, 0x62, 0xA8, 0x16, 0xA3, 0x98, 0x28, 0xF5, 0x7B, 0x54, 0x7A, 0xE7, 0x66, -+ 0x98, 0x3F, 0x7C, 0xFA, 0xC8, 0x50, 0x23, 0xDC, 0x65, 0x53, 0x43, 0x12, 0x74, 0xB8, 0x40, 0x19, 0xDB, 0xD8, 0x5D, 0x2C, 0x42, 0x9D, 0x2B, 0x01, 0xE3, 0xC0, 0xA5, 0xDE, 0x1E, 0x6C, 0xC8, 0x5E, -+ 0x62, 0x57, 0x9B, 0x00, 0x12, 0x6E, 0x6F, 0xE8, 0x1A, 0xB2, 0xEC, 0x08, 0x85, 0xD4, 0x30, 0x98, 0xA6, 0xF2, 0x15, 0x94, 0xD6, 0x67, 0x0F, 0x3E, 0xAB, 0x54, 0xEF, 0x3E, 0x30, 0xC7, 0x38, 0x96, -+ 0x46, 0x1F, 0xE3, 0xCA, 0x4E, 0x8E, 0xD9, 0x29, 0x3E, 0x4F, 0x27, 0x6E, 0x18, 0xAA, 0xC8, 0x54, 0x46, 0xC0, 0xC2, 0x34, 0xFF, 0x6F, 0x9A, 0xE1, 0x1A, 0x09, 0x89, 0x9B, 0x3D, 0x22, 0x1C, 0xC6, -+ 0xC4, 0xB3, 0x63, 0xF7, 0xBE, 0x27, 0xAD, 0xF3, 0xF5, 0x1C, 0xE4, 0xBD, 0x8F, 0x51, 0xC2, 0x1C, 0x7F, 0x44, 0xE3, 0x08, 0x3C, 0x8D, 0x04, 0x71, 0x24, 0x08, 0x4C, 0x1E, 0xDB, 0x09, 0x0A, 0x7D, -+ 0x80, 0x56, 0x51, 0x7B, 0xBB, 0xD1, 0xF1, 0x87, 0xC4, 0x27, 0xDD, 0xA5, 0x9E, 0x54, 0x5E, 0x8C, 0x60, 0x03, 0xCA, 0x0B, 0xC5, 0xBD, 0x38, 0x9E, 0xBD, 0x90, 0xB9, 0x97, 0x08, 0xC3, 0xD3, 0xC7, -+ 0x40, 0x44, 0xEB, 0x2A, 0xB3, 0xCA, 0x6F, 0x72, 0xD4, 0xB2, 0xD4, 0x91, 0x02, 0xB9, 0x74, 0x89, 0x64, 0x56, 0xFC, 0x67, 0x38, 0xE9, 0x0B, 0x94, 0x8C, 0x62, 0xE0, 0x16, 0x17, 0x14, 0x87, 0x1F, -+ 0x57, 0x41, 0x9E, 0xCB, 0xAA, 0x16, 0xD0, 0x16, 0x65, 0xAC, 0xEB, 0x39, 0x69, 0xB4, 0x84, 0xA2, 0xE0, 0x29, 0xED, 0x6A, 0x73, 0x30, 0x0E, 0x06, 0xC8, 0x50, 0xAF, 0xEF, 0xFC, 0x08, 0xCE, 0x29, -+ 0x61, 0x85, 0x4E, 0x9A, 0xA0, 0x65, 0x38, 0xFF, 0x6D, 0x9F, 0x5A, 0xEE, 0xAF, 0x57, 0x76, 0x1C, 0xB6, 0xAE, 0x36, 0x87, 0x1D, 0xC4, 0x17, 0x33, 0x2F, 0x30, 0x63, 0xBF, 0x91, 0x37, 0x21, 0x22, -+ 0x68, 0xC3, 0x1F, 0x27, 0x8D, 0xC6, 0x85, 0xC1, 0xAD, 0x44, 0xD2, 0x22, 0x56, 0x6F, 0x9F, 0x18, 0x82, 0x3D, 0x55, 0x0E, 0x89, 0x86, 0x51, 0xD7, 0x65, 0x57, 0x1A, 0x10, 0x69, 0xB8, 0x27, 0x48, -+ 0x61, 0x85, 0x34, 0x59, 0xCF, 0x49, 0xDB, 0x92, 0x37, 0x44, 0xC9, 0xC5, 0xC9, 0x3D, 0xD2, 0x6F, 0x66, 0x3F, 0x9A, 0xDD, 0xD0, 0xBF, 0x56, 0x38, 0x05, 0xB4, 0xB7, 0x47, 0xC0, 0xA6, 0xE5, 0xB5, -+ 0x86, 0x90, 0x0C, 0x57, 0x25, 0x96, 0xF2, 0x12, 0x01, 0xD3, 0x74, 0x55, 0x53, 0xCA, 0x09, 0xD2, 0x19, 0xCB, 0x01, 0x79, 0xF0, 0xB1, 0x00, 0x17, 0xF0, 0xF1, 0x4D, 0x5A, 0xF3, 0xB9, 0x4B, 0xB4, -+ 0xA9, 0x38, 0x61, 0x78, 0xA8, 0x2D, 0x2B, 0x14, 0x11, 0xED, 0x8B, 0x95, 0xAC, 0x40, 0xAE, 0x73, 0xB2, 0x36, 0xD9, 0xB7, 0x83, 0x25, 0x0F, 0x1B, 0x9B, 0xBD, 0xBD, 0x88, 0xC0, 0x9E, 0xEB, 0x29, -+ 0x0A, 0x83, 0xD8, 0x0A, 0x44, 0x47, 0x60, 0xB9, 0x83, 0xB2, 0x70, 0x20, 0xF1, 0x28, 0xED, 0x00, 0xE5, 0xD1, 0xD3, 0xBB, 0xC8, 0xCE, 0x86, 0x21, 0x4E, 0xB5, 0xF5, 0x33, 0xCC, 0x80, 0xF2, 0x78, -+ 0xB1, 0x92, 0xB5, 0x7A, 0xBB, 0x0F, 0xFA, 0x70, 0x3E, 0xBF, 0x0B, 0xAA, 0xE4, 0x92, 0x6D, 0x63, 0xC0, 0xFF, 0x51, 0x8A, 0x9B, 0xBE, 0xB3, 0x48, 0xD5, 0xB5, 0xA0, 0x4F, 0x6F, 0xFF, 0xCF, 0xD3, -+ 0xA4, 0x25, 0xE5, 0x08, 0xBD, 0xAB, 0x88, 0xB4, 0x05, 0x7D, 0x94, 0xD6, 0xF8, 0xB1, 0xB0, 0x56, 0x78, 0x3F, 0xE4, 0x0B, 0xE6, 0xD6, 0xEF, 0xDF, 0x53, 0x1F, 0x52, 0x81, 0x15, 0xE2, 0xB3, 0x21, -+ 0x11, 0xD2, 0xB7, 0xCE, 0x59, 0x90, 0x84, 0xE2, 0x0F, 0x9E, 0xAD, 0x59, 0x5A, 0xC9, 0x15, 0xCB, 0xAB, 0x2A, 0x48, 0x6C, 0x98, 0x5F, 0xB5, 0x0F, 0x6E, 0x2F, 0x3E, 0x16, 0x02, 0xD8, 0xE8, 0xCF, -+ 0xA7, 0x68, 0x5A, 0xAA, 0x30, 0x5C, 0x06, 0x0F, 0x11, 0xDB, 0x98, 0x07, 0x40, 0xBB, 0xF4, 0xBD, 0xF4, 0xA7, 0x1A, 0x1C, 0x7E, 0x37, 0xC6, 0xC6, 0xE8, 0x91, 0x20, 0xAD, 0x91, 0x2C, 0x2F, 0x2A, -+ 0xC0, 0x25, 0x0F, 0x0F, 0xCE, 0x82, 0x6C, 0x55, 0xB6, 0xFB, 0x0F, 0x63, 0x8D, 0xC0, 0xC5, 0x5E, 0x32, 0x7E, 0x92, 0x2D, 0xC4, 0x53, 0x75, 0x18, 0x69, 0xCD, 0xAB, 0xBC, 0x95, 0xA3, 0xC3, 0x50, -+ 0x36, 0x8A, 0xF7, 0xAB, 0x4C, 0x17, 0xB0, 0x1D, 0x8B, 0xC4, 0x77, 0x74, 0xB9, 0x01, 0xA1, 0x8A, 0xDB, 0x86, 0x98, 0x10, 0x37, 0x67, 0x21, 0xDC, 0x23, 0x3D, 0x81, 0x1D, 0xF2, 0x20, 0x8C, 0x04, -+ 0xDF, 0x9B, 0xEE, 0xB8, 0x28, 0xB0, 0x02, 0xEA, 0xA1, 0xF8, 0x64, 0x09, 0x1C, 0x1C, 0xD0, 0x90, 0xEA, 0x6F, 0xAB, 0xCC, 0x0B, 0x06, 0x4E, 0xD2, 0x91, 0x6A, 0xA1, 0x0F, 0x14, 0x4E, 0xE4, 0x47, -+ 0x0A, 0x75, 0xAB, 0x04, 0xF2, 0xCC, 0xA1, 0xD8, 0xAC, 0x42, 0x48, 0x4D, 0xCE, 0x93, 0x46, 0x76, 0xE7, 0x4A, 0x2A, 0x9E, 0x19, 0xB0, 0x96, 0xF1, 0x08, 0x8E, 0xBD, 0x2F, 0xDE, 0x8D, 0x16, 0x78, -+ 0x46, 0xAA, 0x33, 0xD1, 0x81, 0x31, 0x72, 0xE9, 0x2B, 0x13, 0xB6, 0x70, 0x81, 0xC4, 0x4C, 0x35, 0xF2, 0x55, 0xBB, 0x23, 0x6D, 0x0C, 0xF2, 0x9A, 0x58, 0xD0, 0xCC, 0xDE, 0xC3, 0x70, 0xC8, 0x6F, -+ 0x84, 0x0D, 0xC6, 0xF9, 0x7A, 0x74, 0xBF, 0xAA, 0xCE, 0xFA, 0xBA, 0x55, 0x65, 0xD7, 0x73, 0x62, 0x3A, 0x24, 0x32, 0x92, 0xE6, 0xDC, 0x76, 0x57, 0x39, 0x23, 0xD5, 0x9A, 0xC4, 0x43, 0xDB, 0x86, -+ 0xA3, 0x12, 0x9A, 0x54, 0x73, 0xB1, 0x19, 0x4D, 0x21, 0xA4, 0x61, 0xF6, 0x11, 0x4F, 0xDE, 0xC3, 0xA6, 0xD3, 0x8F, 0x28, 0xB3, 0x9B, 0x87, 0xF2, 0xEA, 0x06, 0x86, 0x67, 0x40, 0x94, 0x6B, 0x0D, -+ 0x09, 0x7A, 0xF4, 0xB2, 0xC0, 0x6D, 0x36, 0xE9, 0xFC, 0xD2, 0x40, 0x48, 0x90, 0x8E, 0x38, 0xA6, 0xF7, 0x6E, 0xAB, 0xBC, 0x19, 0x76, 0x17, 0x92, 0x82, 0xEB, 0x0E, 0x51, 0xD0, 0xE8, 0x3B, 0xE5, -+ 0xCD, 0x93, 0xE6, 0x14, 0xC1, 0x6B, 0xEC, 0x1E, 0xEC, 0xB9, 0xF1, 0x81, 0x08, 0x61, 0x70, 0x47, 0x59, 0xD1, 0xA0, 0x78, 0x92, 0xBF, 0x52, 0xF5, 0x5F, 0x89, 0x39, 0xA4, 0xDC, 0x30, 0x88, 0xFA, -+ 0x16, 0x65, 0xF1, 0x35, 0xBD, 0x04, 0x77, 0xD0, 0x2D, 0xCD, 0xE5, 0x7E, 0x0C, 0x1C, 0x0F, 0xAC, 0x0F, 0xA7, 0x0A, 0x25, 0x6F, 0x9B, 0x9B, 0xEB, 0xC7, 0xEB, 0x33, 0xF6, 0x6D, 0xB4, 0xE7, 0x9D, -+ 0xF4, 0xB0, 0x70, 0xD8, 0x31, 0x81, 0x56, 0xFD, 0x65, 0xE1, 0xB3, 0x6D, 0x37, 0xAC, 0xF9, 0xB0, 0xAA, 0xF0, 0x7C, 0x60, 0x34, 0x37, 0xC4, 0xA3, 0xD2, 0xFA, 0x2D, 0xCE, 0x6B, 0xCF, 0xAF, 0x18, -+ 0x3F, 0x92, 0x1C, 0x6E, 0xE3, 0xE8, 0x7B, 0xD1, 0x75, 0x05, 0x7B, 0xC9, 0x97, 0xF9, 0x0D, 0x18, 0x59, 0xEF, 0x76, 0x01, 0xE6, 0x8D, 0x35, 0x84, 0x62, 0xAF, 0xE3, 0xBA, 0xD1, 0x92, 0x83, 0x60, -+ 0xE1, 0xAA, 0xFC, 0xCC, 0x17, 0x0D, 0x0F, 0xD7, 0x65, 0x18, 0x0B, 0x57, 0xB0, 0x33, 0xCF, 0xCC, 0xE2, 0x89, 0x87, 0x8F, 0x41, 0x9B, 0x7D, 0x44, 0x71, 0xB7, 0xB0, 0xF3, 0xBF, 0x42, 0x56, 0xC0, -+ 0x68, 0xDB, 0xCD, 0xBA, 0x7B, 0x0F, 0x20, 0x2C, 0xC7, 0x52, 0x9A, 0x76, 0xC0, 0x9D, 0xB1, 0x66, 0xA1, 0x98, 0x5E, 0x10, 0xB4, 0x6F, 0x83, 0x0F, 0x08, 0xF7, 0x3E, 0xB2, 0x54, 0xCC, 0x3E, 0x33, -+ 0xD6, 0x90, 0xDF, 0xAB, 0xED, 0x3F, 0x77, 0xE4, 0xC4, 0x65, 0x47, 0x39, 0x90, 0x9E, 0x86, 0x1D, 0x04, 0x87, 0x49, 0x35, 0xD1, 0x20, 0x5D, 0xF3, 0x94, 0x1B, 0x10, 0x3D, 0x60, 0xF7, 0x1C, 0x36, -+ 0x2B, 0xF0, 0x21, 0x91, 0x93, 0xF9, 0xAD, 0xAE, 0x49, 0xD3, 0x06, 0xF5, 0x0A, 0x34, 0x79, 0x09, 0x70, 0x8A, 0x41, 0x7C, 0x74, 0xF8, 0xB8, 0xC4, 0x4D, 0x8C, 0x7F, 0xBE, 0xD5, 0x2F, 0x1A, 0x00, -+ 0x98, 0x88, 0xED, 0x7D, 0xA2, 0x55, 0x12, 0xD7, 0x3C, 0xA3, 0x76, 0x02, 0xD4, 0x6E, 0xEC, 0x02, 0x9D, 0x4F, 0x16, 0x84, 0x91, 0xC7, 0x0F, 0x2D, 0x0F, 0x13, 0x58, 0xCE, 0x37, 0x0C, 0x2C, 0xF2, -+ 0x82, 0x35, 0x00, 0xE9, 0x89, 0xFB, 0x24, 0x72, 0x3C, 0x21, 0xDD, 0xA0, 0x82, 0x09, 0x05, 0x03, 0x82, 0x09, 0x01, 0x00, 0x94, 0x06, 0xE4, 0xDC, 0xE8, 0x12, 0xBE, 0x92, 0xE1, 0x53, 0xE0, 0x75, -+ 0x2C, 0xFE, 0x26, 0xC1, 0x12, 0x7E, 0x9C, 0x80, 0xC8, 0x11, 0x3E, 0x12, 0x16, 0x95, 0xF9, 0x01, 0x4E, 0x03, 0xFF, 0xF1, 0xFD, 0x7B, 0xE3, 0xB0, 0xF4, 0x0E, 0xEE, 0x5B, 0x02, 0xF5, 0x60, 0x1E, -+ 0x2F, 0xC3, 0xAF, 0xF0, 0xCD, 0xF7, 0xE7, 0xE7, 0x34, 0x99, 0x9C, 0x7F, 0xC4, 0xEB, 0x9D, 0xDA, 0x81, 0x8C, 0x52, 0x06, 0x93, 0xFE, 0x38, 0xE4, 0x49, 0xBE, 0x4C, 0xCF, 0x03, 0xFE, 0xA1, 0x72, -+ 0x8E, 0x4C, 0xCA, 0x64, 0xFD, 0x11, 0x0B, 0xFC, 0x8E, 0xC9, 0xCB, 0x79, 0x50, 0x3B, 0xD5, 0x53, 0xF5, 0x89, 0x9A, 0x2F, 0x63, 0x16, 0x5D, 0x19, 0x32, 0x72, 0x7D, 0xB7, 0x44, 0x72, 0x65, 0xF7, -+ 0x96, 0xF4, 0xFD, 0xBC, 0xFE, 0xA6, 0xF4, 0x05, 0x9E, 0x88, 0x34, 0x34, 0xC7, 0x98, 0xB8, 0x68, 0xF9, 0x86, 0x60, 0x5D, 0x4D, 0x03, 0xD3, 0x04, 0xB6, 0x77, 0xE3, 0x0F, 0xF7, 0xD7, 0x83, 0x0A, -+ 0xDD, 0x06, 0x65, 0x2B, 0xCC, 0x1B, 0xF0, 0x4D, 0x33, 0xDF, 0xFE, 0xFC, 0xEF, 0x63, 0x4A, 0xF5, 0xBA, 0xE0, 0xD5, 0xC6, 0xBA, 0xB6, 0xC5, 0x64, 0xF1, 0x95, 0x20, 0x82, 0xAA, 0x38, 0x25, 0x53, -+ 0x20, 0x01, 0x9C, 0xBC, 0x8E, 0xCA, 0x07, 0x3D, 0x80, 0xAF, 0x0A, 0x59, 0x6E, 0x4D, 0x33, 0xAD, 0x73, 0xB4, 0xF1, 0xED, 0xD4, 0x20, 0xE0, 0x90, 0x0B, 0xED, 0x47, 0x49, 0x5A, 0x88, 0x62, 0xD4, -+ 0xA9, 0xCD, 0xDE, 0xD0, 0xDE, 0xA7, 0x74, 0xCD, 0xE0, 0x23, 0x8C, 0x71, 0x2B, 0x8A, 0xA9, 0x82, 0x47, 0x56, 0x66, 0x0D, 0x2B, 0x34, 0xE4, 0x7E, 0x4B, 0x59, 0x42, 0x5F, 0x17, 0xA9, 0x60, 0x8D, -+ 0xAD, 0x38, 0x28, 0xEC, 0x9D, 0x8A, 0xDB, 0x5D, 0xD3, 0x8C, 0x7D, 0x53, 0xDD, 0xA6, 0xDA, 0xC7, 0x4D, 0x3F, 0xD0, 0x3C, 0x00, 0xB5, 0x9E, 0xE9, 0xA0, 0xE5, 0x27, 0x6E, 0x3E, 0x75, 0xD0, 0x13, -+ 0x61, 0x01, 0x66, 0x49, 0x1D, 0x87, 0x3A, 0x7D, 0xA2, 0xC9, 0xFD, 0xA3, 0x60, 0xA6, 0x47, 0x73, 0x25, 0x00, 0x58, 0x41, 0x8F, 0xA7, 0x62, 0x63, 0x2D, 0xCB, 0x12, 0x63, 0x85, 0x27, 0x32, 0x60, -+ 0x02, 0x18, 0x67, 0x53, 0xE6, 0xB5, 0xD3, 0x31, 0xE5, 0x64, 0x23, 0xC9, 0x70, 0x9D, 0x34, 0x9C, 0x69, 0x5A, 0x32, 0x8A, 0x56, 0x2B, 0x13, 0x9A, 0xF5, 0x98, 0xF8, 0x5D, 0xCB, 0x35, 0x98, 0x40, -+ 0x7D, 0x82, 0xF8, 0x49, 0xC2, 0x9A, 0x87, 0xDC, 0x41, 0xFA, 0xA7, 0x69, 0x8F, 0xAC, 0x7F, 0x20, 0x4D, 0x70, 0xD0, 0x7D, 0x4A, 0xDC, 0x1D, 0x68, 0xFB, 0x46, 0x08, 0x63, 0xBB, 0x00, 0x2F, 0x3A, -+ 0x23, 0x57, 0xCB, 0x65, 0xFB, 0x4B, 0x03, 0xBA, 0xB6, 0x8D, 0xB9, 0xB1, 0x1A, 0x09, 0xC9, 0x02, 0xE8, 0x12, 0x95, 0x91, 0x54, 0x16, 0xB4, 0x51, 0xD8, 0xE5, 0xFB, 0xF7, 0x81, 0x33, 0xBE, 0xD2, -+ 0x81, 0x81, 0x37, 0x17, 0xE3, 0x74, 0xC5, 0xB4, 0x15, 0xE7, 0x77, 0x3F, 0x95, 0xD8, 0x3D, 0x8B, 0xF9, 0x7D, 0x4A, 0xC4, 0x5E, 0xAC, 0x28, 0x1E, 0x50, 0x89, 0x69, 0x32, 0xF7, 0xEE, 0xA4, 0x83, -+ 0xE6, 0x98, 0xED, 0xD6, 0x07, 0xC3, 0xFF, 0xDD, 0xD3, 0x4C, 0x56, 0x67, 0x03, 0x28, 0xEB, 0xA5, 0xE1, 0xEB, 0x24, 0x9B, 0x8E, 0x26, 0x85, 0x38, 0xBF, 0x4C, 0xF3, 0x43, 0x2E, 0xD5, 0xA9, 0x33, -+ 0xB8, 0x2E, 0x6C, 0x0E, 0x96, 0x0D, 0xE1, 0x8A, 0x20, 0x9F, 0xA3, 0x90, 0x96, 0x93, 0x87, 0x88, 0x4D, 0xAD, 0x8D, 0x8E, 0xE7, 0xE6, 0x0A, 0x89, 0x69, 0x90, 0x62, 0x16, 0x2F, 0x90, 0xBB, 0x28, -+ 0xE4, 0xCC, 0xBA, 0x1A, 0x5F, 0x52, 0x6D, 0xE9, 0xCF, 0x7F, 0xEF, 0xEC, 0x7A, 0x77, 0xDD, 0xA0, 0x7C, 0xD7, 0x00, 0x09, 0xE4, 0x8E, 0xBF, 0x8E, 0xDD, 0x9B, 0x34, 0x87, 0x26, 0xA9, 0x37, 0xE1, -+ 0x4F, 0xF5, 0xEB, 0x6E, 0x79, 0xE3, 0xDB, 0x1B, 0x60, 0xD7, 0x0A, 0x73, 0x05, 0x11, 0x15, 0x4A, 0x8A, 0xB8, 0x75, 0xF8, 0x6D, 0xEB, 0xCB, 0x9D, 0x79, 0x0F, 0xC4, 0x32, 0x84, 0x4E, 0x90, 0x3C, -+ 0x8B, 0xD9, 0xFD, 0xB2, 0x8F, 0x99, 0x88, 0xDF, 0xAE, 0xA5, 0x56, 0xE9, 0x20, 0xE5, 0x79, 0x25, 0x47, 0xAE, 0xA7, 0xA4, 0x5B, 0x4C, 0x7E, 0x68, 0x41, 0x61, 0x1E, 0x33, 0x06, 0x4E, 0x5C, 0xB5, -+ 0x9B, 0xBA, 0xEC, 0xA6, 0x9E, 0x38, 0xA0, 0x99, 0x94, 0xAE, 0xEA, 0x3D, 0x10, 0xF6, 0xFC, 0x53, 0xF6, 0x43, 0x56, 0x2F, 0xA0, 0x0A, 0x34, 0x12, 0xD4, 0xAF, 0xF8, 0x01, 0xD4, 0x8D, 0x0C, 0x58, -+ 0xBA, 0x05, 0x5A, 0x42, 0xCD, 0xF6, 0xB8, 0xF1, 0x86, 0x16, 0x99, 0xEF, 0xD9, 0xAD, 0x9D, 0xF4, 0xCB, 0xB9, 0x88, 0xE7, 0x22, 0x17, 0x12, 0xBB, 0x42, 0xA4, 0x3B, 0xE8, 0x32, 0x25, 0x09, 0x11, -+ 0x1D, 0x3A, 0x8E, 0xBC, 0x97, 0xFA, 0xEB, 0xF9, 0xF8, 0x5D, 0x69, 0x20, 0x76, 0x5A, 0x18, 0x2A, 0xD9, 0xC4, 0x54, 0x27, 0x99, 0x31, 0x70, 0x5E, 0xA2, 0x90, 0x3F, 0x6E, 0x18, 0x7D, 0x2A, 0xF6, -+ 0xA5, 0xE4, 0xA8, 0x30, 0x54, 0x16, 0x8A, 0xA6, 0xA6, 0xF1, 0x27, 0xC8, 0xCE, 0x0C, 0x56, 0xA2, 0xEF, 0x67, 0xDC, 0x1C, 0xD9, 0xB2, 0x2A, 0x51, 0x39, 0xDA, 0xC1, 0x92, 0xFF, 0xC5, 0x3A, 0x13, -+ 0xEC, 0x52, 0xA3, 0x22, 0x07, 0xA9, 0x6A, 0x4F, 0xED, 0xB1, 0x20, 0x55, 0xFF, 0xDD, 0xBE, 0xE6, 0xAE, 0xF0, 0x72, 0xF7, 0x5D, 0xB7, 0xC6, 0xCD, 0x37, 0xB2, 0x58, 0x9D, 0xC0, 0x0F, 0xBE, 0xF1, -+ 0x33, 0x3E, 0xB1, 0x13, 0xC8, 0x22, 0x1B, 0xF8, 0x74, 0x0F, 0xD7, 0xBF, 0x7F, 0x39, 0xA5, 0x7E, 0x4A, 0xE2, 0xCE, 0x86, 0xE0, 0xE8, 0xB4, 0xE9, 0x21, 0x4D, 0x67, 0x21, 0x46, 0xED, 0xE9, 0x85, -+ 0x87, 0x15, 0x71, 0x56, 0x5E, 0x9F, 0x59, 0xCD, 0xA5, 0x92, 0x22, 0xAC, 0x9C, 0x6C, 0x00, 0xD5, 0xA7, 0xC9, 0xD8, 0xA3, 0xE5, 0x46, 0xDE, 0xC8, 0x3C, 0x65, 0x54, 0xEA, 0x89, 0x13, 0x72, 0xBB, -+ 0xCA, 0xE7, 0xD7, 0x76, 0x88, 0xDE, 0xD6, 0x0B, 0x52, 0x6C, 0x04, 0xC9, 0xBF, 0x0A, 0x7D, 0x96, 0x56, 0x81, 0x90, 0x4D, 0xAC, 0x03, 0x79, 0x1F, 0x08, 0xB0, 0x71, 0xF0, 0xEE, 0x5B, 0xAB, 0xA1, -+ 0xC4, 0x6B, 0x15, 0x61, 0x75, 0x6E, 0x58, 0x9C, 0x33, 0x7B, 0xAB, 0x4F, 0x2B, 0x75, 0xAE, 0x3B, 0xF6, 0xE7, 0x74, 0x3F, 0x6C, 0xEE, 0x5F, 0x09, 0x93, 0xE7, 0x18, 0xC9, 0x58, 0x4D, 0x47, 0xEA, -+ 0xD4, 0xC9, 0x61, 0xAE, 0x96, 0xF6, 0xD6, 0x02, 0xA5, 0x06, 0xA2, 0xA4, 0xC0, 0xF5, 0x7E, 0x88, 0x1D, 0x51, 0xDC, 0x24, 0xF2, 0x77, 0xEB, 0xA9, 0xCC, 0x3C, 0x6F, 0x23, 0x58, 0x29, 0xB5, 0xBA, -+ 0x87, 0xC2, 0x1F, 0x12, 0x32, 0x1C, 0xEE, 0x8B, 0x6E, 0xE9, 0x08, 0x9B, 0xB5, 0x2C, 0x3A, 0x71, 0xAD, 0x61, 0x12, 0x46, 0xAE, 0xD9, 0x80, 0xC1, 0xB9, 0x47, 0xA6, 0x7C, 0x88, 0xA1, 0x10, 0xA7, -+ 0xBD, 0x84, 0x49, 0xD0, 0x9C, 0xE3, 0x90, 0x6C, 0x65, 0x35, 0x45, 0x7D, 0x02, 0xF2, 0x32, 0x5C, 0x70, 0xEE, 0x78, 0x63, 0xAE, 0x63, 0x23, 0x0F, 0xC2, 0x3D, 0xEC, 0xA2, 0x99, 0xBB, 0x5B, 0x0E, -+ 0x4B, 0x1A, 0xE8, 0xE2, 0x40, 0x1D, 0xFB, 0x9D, 0x4B, 0xDD, 0xD0, 0x61, 0x18, 0xBD, 0x15, 0x0F, 0x4B, 0x5C, 0xD3, 0x85, 0xAF, 0xB4, 0xFA, 0xD4, 0xEC, 0xA4, 0x6D, 0x61, 0xBE, 0xCA, 0xB1, 0x1D, -+ 0x02, 0x70, 0x26, 0x67, 0x33, 0x33, 0xAB, 0x31, 0x4B, 0x9E, 0xF9, 0x1B, 0x7A, 0x7F, 0x94, 0x0B, 0xDA, 0x44, 0x44, 0xAE, 0xFE, 0x37, 0x03, 0x6A, 0x43, 0xF2, 0xB6, 0x8D, 0x0D, 0xFF, 0xD7, 0xAF, -+ 0x33, 0xA3, 0x63, 0x0F, 0xDB, 0x32, 0x5A, 0x74, 0xDA, 0x7B, 0x09, 0x0F, 0x94, 0x9D, 0x06, 0x4B, 0xF7, 0x45, 0xB8, 0x93, 0x37, 0x15, 0x2B, 0x98, 0x0E, 0x4E, 0x20, 0xCC, 0x23, 0xFF, 0xAF, 0xCC, -+ 0xBC, 0x7E, 0x95, 0x77, 0x04, 0xE9, 0x4B, 0xE7, 0xF3, 0xE8, 0x5F, 0x7F, 0xE8, 0x49, 0x6F, 0xD5, 0xAA, 0xB9, 0x67, 0xB2, 0x7C, 0x3F, 0x17, 0x3E, 0x26, 0x26, 0x80, 0xD0, 0x44, 0x08, 0x85, 0xE6, -+ 0xC0, 0xB2, 0xAA, 0xB0, 0x9A, 0xB8, 0x1F, 0x6D, 0xE5, 0xB2, 0x2D, 0x17, 0xD5, 0xA2, 0x11, 0x97, 0xD6, 0x98, 0x93, 0xBE, 0xED, 0x51, 0x83, 0x4E, 0x2D, 0x7E, 0x3D, 0xAF, 0xF0, 0x4C, 0xF8, 0x4A, -+ 0xA9, 0xC7, 0x79, 0x6E, 0xBB, 0x6A, 0xE2, 0x06, 0xC4, 0xE1, 0x66, 0x25, 0xFD, 0xFD, 0x61, 0x39, 0x85, 0x05, 0x48, 0x06, 0x26, 0x7C, 0xD6, 0x9B, 0xFA, 0x8F, 0x5D, 0xD6, 0x0F, 0x4F, 0x21, 0x94, -+ 0x12, 0xDF, 0x2B, 0xAB, 0xC9, 0x56, 0x41, 0xAE, 0x15, 0x54, 0x87, 0xFA, 0xF4, 0x13, 0x33, 0xF5, 0xE5, 0x1B, 0xEF, 0xC2, 0xF9, 0x63, 0xE6, 0x2B, 0x74, 0x8B, 0x3D, 0x9C, 0x20, 0x20, 0x66, 0xD1, -+ 0xEC, 0xBA, 0xB6, 0x03, 0x21, 0x79, 0x10, 0x58, 0x9B, 0xB9, 0x69, 0x55, 0x21, 0xA5, 0xC5, 0x2F, 0x12, 0x38, 0x2F, 0x0D, 0xE3, 0x24, 0x3F, 0x9E, 0x92, 0xED, 0x60, 0x53, 0x12, 0x63, 0x7D, 0xCC, -+ 0xE5, 0xAD, 0x80, 0x7D, 0xA0, 0xC9, 0x2E, 0x99, 0x32, 0x52, 0x05, 0x20, 0x41, 0xC7, 0xB6, 0x8F, 0x4E, 0xB1, 0xBB, 0xB7, 0x08, 0x5A, 0x5B, 0x02, 0x04, 0x77, 0x98, 0x92, 0x30, 0xCB, 0xA8, 0x9F, -+ 0x96, 0x6D, 0x34, 0x97, 0xC4, 0x04, 0x3D, 0x05, 0x6F, 0x79, 0x7E, 0xA0, 0xB4, 0x8E, 0x24, 0x7C, 0xAB, 0xBC, 0x7E, 0x59, 0x73, 0x07, 0xDA, 0x60, 0x5A, 0x00, 0x81, 0x45, 0x45, 0x51, 0xC8, 0x96, -+ 0xAB, 0x4E, 0xE1, 0x34, 0x6B, 0x90, 0x4E, 0x35, 0x8A, 0x58, 0xCA, 0x2F, 0x7B, 0x93, 0xDA, 0x32, 0x9D, 0x08, 0x0A, 0x49, 0xDC, 0xF9, 0xD2, 0xC9, 0xD1, 0xBB, 0xD6, 0xBA, 0x82, 0x6C, 0xA7, 0x13, -+ 0x3A, 0xB2, 0xDF, 0x61, 0xD7, 0x13, 0x16, 0xEB, 0xDD, 0xED, 0x88, 0x2E, 0x49, 0x83, 0xB7, 0x67, 0x46, 0xF7, 0x14, 0x36, 0xD2, 0xD7, 0xC1, 0x4D, 0x94, 0x34, 0x71, 0x70, 0xEE, 0x00, 0x15, 0x54, -+ 0x00, 0x28, 0x1B, 0xD3, 0xC6, 0xBF, 0xE5, 0xEC, 0xBF, 0x69, 0xDE, 0xA0, 0x59, 0x01, 0x63, 0xE3, 0xA2, 0x97, 0x10, 0xC4, 0x10, 0x7A, 0x08, 0xD4, 0xDD, 0x30, 0xFD, 0x6E, 0x05, 0x0E, 0xA1, 0xE9, -+ 0xE3, 0xF3, 0xBA, 0xCD, 0x74, 0x10, 0x35, 0xE3, 0x47, 0x18, 0xAF, 0xA9, 0xA9, 0xC8, 0xAB, 0x19, 0xEA, 0x9C, 0xD8, 0x75, 0x11, 0xCC, 0x59, 0xCC, 0x60, 0x1B, 0xC6, 0x3B, 0x82, 0x0F, 0xD0, 0x96, -+ 0x87, 0x1F, 0x95, 0x26, 0x34, 0xA2, 0xA3, 0x78, 0x87, 0x83, 0xAA, 0xE7, 0x6D, 0xA2, 0x05, 0xB1, 0xEB, 0x5E, 0x94, 0x42, 0x16, 0x19, 0xFF, 0x47, 0x52, 0x5F, 0x05, 0x62, 0xE4, 0xA3, 0x63, 0x3A, -+ 0xC7, 0xC4, 0x01, 0x7D, 0xA2, 0xC8, 0x13, 0x07, 0xBD, 0xBD, 0x74, 0xB2, 0xD9, 0x16, 0x1E, 0x99, 0xC1, 0x68, 0x6A, 0x9A, 0xB1, 0xC9, 0x44, 0x1B, 0x0D, 0x35, 0xC1, 0xCE, 0x7E, 0x9A, 0x62, 0x88, -+ 0x28, 0x92, 0x85, 0x02, 0x33, 0x20, 0x88, 0x9B, 0x63, 0x9E, 0xB9, 0xCD, 0x0A, 0x56, 0x92, 0x93, 0xE3, 0x67, 0xC2, 0xBD, 0x1F, 0xEA, 0x68, 0x7F, 0x45, 0x1B, 0x3D, 0xA8, 0x80, 0x9A, 0x77, 0xCA, -+ 0x31, 0x9D, 0xFC, 0xFF, 0xBA, 0xD4, 0x27, 0x24, 0xF2, 0xE0, 0x67, 0xCB, 0x3A, 0x85, 0xE7, 0x23, 0xCD, 0xD0, 0xEF, 0xC6, 0xB4, 0xC9, 0x7B, 0x5A, 0x13, 0x6B, 0xBE, 0xFC, 0xB6, 0xF1, 0x34, 0x59, -+ 0x2C, 0xED, 0xDD, 0x6A, 0xFC, 0x98, 0x30, 0x36, 0x5D, 0x75, 0xF7, 0x5A, 0x27, 0xCA, 0xC7, 0x22, 0x56, 0x07, 0x8E, 0xD0, 0x20, 0xA4, 0x49, 0x30, 0xDE, 0x9C, 0x35, 0xCE, 0x96, 0xE1, 0x54, 0x4E, -+ 0xE9, 0x85, 0x1B, 0xE6, 0x78, 0x48, 0x2A, 0x32, 0x7C, 0xFA, 0x37, 0xA9, 0x13, 0xE0, 0x45, 0xC8, 0xC2, 0x63, 0xD9, 0xB2, 0x5E, 0xAE, 0x21, 0xA2, 0x66, 0x4A, 0xF9, 0x43, 0x03, 0x95, 0x16, 0x3F, -+ 0x04, 0x56, 0xD1, 0xA5, 0x18, 0xF6, 0x09, 0x7C, 0x96, 0xDB, 0x8F, 0x50, 0x5F, 0x34, 0x40, 0xA6, 0xC8, 0xCC, 0x31, 0xB5, 0x95, 0xAC, 0xFE, 0x9A, 0xA9, 0xCC, 0x1C, 0xCF, 0xF9, 0xFD, 0xA6, 0x56, -+ 0xBC, 0xDB, 0x5E, 0xEB, 0x57, 0xF4, 0x1E, 0x94, 0x67, 0xC6, 0x43, 0xBA, 0x62, 0x79, 0xE5, 0x41, 0xE8, 0x6C, 0x91, 0x07, 0x4E, 0x55, 0xC6, 0x3A, 0xDF, 0x41, 0x51, 0x7C, 0xEA, 0x5A, 0x6F, 0x62, -+ 0x29, 0xF7, 0x10, 0x16, 0x62, 0xBB, 0x0A, 0xA0, 0xCE, 0xAB, 0x2B, 0x7F, 0x62, 0x11, 0x96, 0xC7, 0xA7, 0x7B, 0xB3, 0x27, 0xC7, 0x68, 0xC4, 0x3D, 0x06, 0x9D, 0x71, 0xC3, 0x2C, 0x71, 0x2C, 0x83, -+ 0x1D, 0x68, 0x50, 0xE6, 0xEB, 0x79, 0x3D, 0x7D, 0xEB, 0x08, 0xDE, 0x7A, 0x70, 0x4B, 0x38, 0x6D, 0xFD, 0x2B, 0x30, 0x72, 0xC2, 0x6B, 0x89, 0xDF, 0x8D, 0x07, 0x2B, 0x3E, 0x9F, 0x56, 0x96, 0xA0, -+ 0x73, 0x2E, 0x21, 0x5D, 0xF6, 0xDE, 0x47, 0x5D, 0x3A, 0x69, 0xF1, 0x11, 0x2F, 0x8B, 0x6B, 0x8E, 0xE7, 0x6B, 0x73, 0x9C, 0x92, 0x76, 0xD9, 0xEE, 0x78, 0x17, 0xD9, 0x89, 0xAA, 0x07, 0x90, 0xD4, -+ 0x6F, 0x8B, 0xE9, 0xBC, 0xF8, 0xA9, 0xDE, 0x83, 0xD3, 0xF3, 0xC3, 0x02, 0xA8, 0xAA, 0xBE, 0xE5, 0xC8, 0xFE, 0xBC, 0x2A, 0xDC, 0x70, 0x6F, 0xC0, 0xEA, 0x55, 0xCD, 0x6F, 0x38, 0x37, 0x74, 0xF9, -+ 0x55, 0xFE, 0xC7, 0x0A, 0x5F, 0x83, 0x80, 0x74, 0xDC, 0xB7, 0x31, 0x53, 0x2C, 0x94, 0x9C, 0x88, 0x84, 0xE9, 0x5F, 0xDE, 0xCE, 0x3A, 0x7D, 0x9F, 0x7E, 0xA2, 0x1A, 0xC5, 0xA8, 0xAC, 0xDF, 0xAA, -+ 0x89, 0x68, 0x1E, 0x95, 0x01, 0x4D, 0x5A, 0x23, 0x44, 0x31, 0x5B, 0xF8, 0xB3, 0xFF, 0x97, 0x12, 0xA0, 0x9A, 0x8F, 0xDE, 0xB8, 0x29, 0x4C, 0x25, 0x7D, 0x16, 0xCC, 0xEF, 0xAA, 0x78, 0xDD, 0x0F, -+ 0x5D, 0xFF, 0xE0, 0x49, 0xCE, 0x2B, 0x8A, 0xC7, 0xE1, 0x60, 0x02, 0xED, 0x1E, 0x32, 0x8C, 0x62, 0x86, 0xA1, 0x67, 0x4A, 0x5C, 0x06, 0xF6, 0x28, 0x37, 0xAA, 0xF3, 0xEE, 0xFF, 0xFC, 0x11, 0x46, -+ 0x94, 0x7A, 0x63, 0x0D, 0x82, 0x44, 0xAA, 0x72, 0x89, 0x8D, 0xFE, 0x5B, 0x94, 0x78, 0x63, 0x70, 0x64, 0x8A, 0x13, 0xF0, 0xE1, 0x6D, 0x50, 0x27, 0x77, 0xEB, 0x8D, 0xF9, 0x62, 0xFC, 0x86, 0x3C, -+ 0x77, 0xC1, 0x59, 0xBF, 0x64, 0xCC, 0x2A, 0x47, 0xCA, 0xF6, 0xB2, 0x12, 0xCB, 0xC6, 0x14, 0x2B, 0x5C, 0x9F, 0x5B, 0xFF, 0xE2, 0xDD, 0x3B, 0xB1, 0xF8, 0x63, 0x23, 0x10, 0x74, 0x82, 0x96, 0xBB, -+ 0x81, 0xB3, 0x62, 0xB7, 0xE4, 0x56, 0xEE, 0xE8, 0xDF, 0x29, 0x55, 0xFC, 0xDC, 0x04, 0xE5, 0x5D, 0x25, 0x16, 0xA8, 0x28, 0x07, 0x12, 0xCA, 0x5B, 0x60, 0xEA, 0x90, 0x7D, 0x51, 0xB2, 0xFA, 0x72, -+ 0xF9, 0xC7, 0x3D, 0xA7, 0xFE, 0x2C, 0x25, 0x98, 0x8F, 0x5B, 0xE1, 0xB8, 0x23, 0x68, 0x25, 0xC8, 0x3A, 0x02, 0x38, 0x22, 0x39, 0x40, 0x2A, 0x29, 0x4E, 0xA4, 0xBE, 0x31, 0xA1, 0x7D, 0xBD, 0x31, -+ 0xBA, 0x1B, 0xFF, 0xF8, 0x04, 0xCC, 0x78, 0x2F, 0xED, 0x78, 0x95, 0x09, 0x7F, 0x58, 0x3D, 0xD1, 0x3A, 0xCC, 0x85, 0x49, 0x1B, 0xDD, 0x12, 0x3F, 0xE0, 0x2C, 0x14, 0x12, 0xE3, 0x42, 0x61, 0x7D, -+ 0x9C, 0x26, 0xB8, 0xD9, 0x87, 0x7C, 0xAD, 0x5A, 0x72, 0xD2, 0x32, 0x80, 0xB5, 0x27, 0x61, 0x47, 0xA7, 0x25, 0x84, 0xDA, 0xE6, 0x17, 0x23, 0x15, 0x8B, 0x9A, 0x54, 0x79, 0xD6, 0x6B, 0x6D, 0x8A, -+ 0x6C, 0x4D, 0xB0, 0xF2, 0xE7, 0x1E, 0xDD, 0x46, 0x58, 0x85, 0xC3, 0x3A, 0x69, 0xA8, 0xA7, 0x4E, 0x78, 0x16, 0x08, 0xF0, 0x64, 0x16, 0x86, 0x6D, 0x19, 0x6B, 0x69, 0x5E, 0x70, 0xA4, 0x3B, 0x7D, -+ 0xEA, 0xBE, 0x8C, 0x00, 0x0D, 0x79, 0xEE, 0x16, 0x03, 0xD4, 0x7C, 0x45, 0xCC, 0xB8, 0x5B, 0xBF, 0x79, 0x2D, 0x59, 0x14, 0x6F, 0xA3, 0x22, 0x86, 0x97, 0x6F, 0xF5, 0x91, 0x72, 0x62, 0x96, 0x38, -+ 0xE1, 0xA0, 0x70, 0xCB, 0x0F, 0x0E, 0xCB, 0xF8, 0x09, 0xF9, 0xF5, 0xB8, 0x73, 0xFB, 0xEF, 0x96, 0x87, 0x4F, 0xCD, 0xED, 0x58, 0xA2, 0xC0, 0xA4, 0x99, 0x06, 0xD9, 0x09, 0x1D, 0x29, 0xB2, 0x1D, -+ 0x0A, 0x7B, 0x89, 0x94, 0x52, 0x5D, 0x08, 0x88, 0x74, 0x8F, 0xB7, 0xDE, 0xE1, 0x60, 0xF2, 0xFC, 0xC7, 0x89, 0x52, 0xBB, 0x57, 0xBE, 0x4D, 0x36, 0x68, 0x5B, 0xE4, 0xF2, 0xB1, 0x45, 0xBC, 0xAC, -+ 0x40, 0xE0, 0xDB, 0x30, 0x60, 0x87, 0x2D, 0x81, 0x76, 0x63, 0x91, 0xD4, 0xEC, 0x0B, 0x04, 0x60, 0x9F, 0x4F, 0x2D, 0xA2, 0x28, 0x94, 0x15, 0x45, 0x8D, 0x5F, 0x15, 0x22, 0x3C, 0x8E, 0x91, 0x11, -+ 0x88, 0xC7, 0x82, 0x5F, 0x52, 0xA0, 0xA3, 0xA2, 0xC2, 0xCA, 0x8B, 0x62, 0xA7, 0x4B, 0x03, 0x71, 0x59, 0xE5, 0x4D, 0x99, 0x73, 0xC8, 0x00, 0x54, 0x3D, 0x2F, 0x6C, 0x4C, 0x0D, 0x9E, 0x3B, 0x09, -+ 0x39, 0xC1, 0xC1, 0x68, 0x05, 0xE5, 0x79, 0x46, 0x95, 0x49, 0x9C, 0xE0, 0x13, 0xCF, 0xB9, 0xB0, 0xEA, 0xEE, 0xD8, 0xDD, -+ }, -+ .spki_len = 2374, -+ .spki = { -+ 0x30, 0x82, 0x09, 0x42, 0x30, 0x0F, 0x06, 0x0B, 0x2B, 0x06, 0x01, 0x04, 0x01, 0x02, 0x82, 0x0B, 0x01, 0x08, 0x07, 0x05, 0x00, 0x03, 0x82, 0x09, 0x2D, 0x00, 0x30, 0x82, 0x09, 0x28, 0x03, 0x21, -+ 0x00, 0x7C, 0x99, 0x35, 0xA0, 0xB0, 0x76, 0x94, 0xAA, 0x0C, 0x6D, 0x10, 0xE4, 0xDB, 0x6B, 0x1A, 0xDD, 0x2F, 0xD8, 0x1A, 0x25, 0xCC, 0xB1, 0x48, 0x03, 0x2D, 0xCD, 0x73, 0x99, 0x36, 0x73, 0x7F, -+ 0x2D, 0x03, 0x82, 0x09, 0x01, 0x00, 0x94, 0x06, 0xE4, 0xDC, 0xE8, 0x12, 0xBE, 0x92, 0xE1, 0x53, 0xE0, 0x75, 0x2C, 0xFE, 0x26, 0xC1, 0x12, 0x7E, 0x9C, 0x80, 0xC8, 0x11, 0x3E, 0x12, 0x16, 0x95, -+ 0xF9, 0x01, 0x4E, 0x03, 0xFF, 0xF1, 0xFD, 0x7B, 0xE3, 0xB0, 0xF4, 0x0E, 0xEE, 0x5B, 0x02, 0xF5, 0x60, 0x1E, 0x2F, 0xC3, 0xAF, 0xF0, 0xCD, 0xF7, 0xE7, 0xE7, 0x34, 0x99, 0x9C, 0x7F, 0xC4, 0xEB, -+ 0x9D, 0xDA, 0x81, 0x8C, 0x52, 0x06, 0x93, 0xFE, 0x38, 0xE4, 0x49, 0xBE, 0x4C, 0xCF, 0x03, 0xFE, 0xA1, 0x72, 0x8E, 0x4C, 0xCA, 0x64, 0xFD, 0x11, 0x0B, 0xFC, 0x8E, 0xC9, 0xCB, 0x79, 0x50, 0x3B, -+ 0xD5, 0x53, 0xF5, 0x89, 0x9A, 0x2F, 0x63, 0x16, 0x5D, 0x19, 0x32, 0x72, 0x7D, 0xB7, 0x44, 0x72, 0x65, 0xF7, 0x96, 0xF4, 0xFD, 0xBC, 0xFE, 0xA6, 0xF4, 0x05, 0x9E, 0x88, 0x34, 0x34, 0xC7, 0x98, -+ 0xB8, 0x68, 0xF9, 0x86, 0x60, 0x5D, 0x4D, 0x03, 0xD3, 0x04, 0xB6, 0x77, 0xE3, 0x0F, 0xF7, 0xD7, 0x83, 0x0A, 0xDD, 0x06, 0x65, 0x2B, 0xCC, 0x1B, 0xF0, 0x4D, 0x33, 0xDF, 0xFE, 0xFC, 0xEF, 0x63, -+ 0x4A, 0xF5, 0xBA, 0xE0, 0xD5, 0xC6, 0xBA, 0xB6, 0xC5, 0x64, 0xF1, 0x95, 0x20, 0x82, 0xAA, 0x38, 0x25, 0x53, 0x20, 0x01, 0x9C, 0xBC, 0x8E, 0xCA, 0x07, 0x3D, 0x80, 0xAF, 0x0A, 0x59, 0x6E, 0x4D, -+ 0x33, 0xAD, 0x73, 0xB4, 0xF1, 0xED, 0xD4, 0x20, 0xE0, 0x90, 0x0B, 0xED, 0x47, 0x49, 0x5A, 0x88, 0x62, 0xD4, 0xA9, 0xCD, 0xDE, 0xD0, 0xDE, 0xA7, 0x74, 0xCD, 0xE0, 0x23, 0x8C, 0x71, 0x2B, 0x8A, -+ 0xA9, 0x82, 0x47, 0x56, 0x66, 0x0D, 0x2B, 0x34, 0xE4, 0x7E, 0x4B, 0x59, 0x42, 0x5F, 0x17, 0xA9, 0x60, 0x8D, 0xAD, 0x38, 0x28, 0xEC, 0x9D, 0x8A, 0xDB, 0x5D, 0xD3, 0x8C, 0x7D, 0x53, 0xDD, 0xA6, -+ 0xDA, 0xC7, 0x4D, 0x3F, 0xD0, 0x3C, 0x00, 0xB5, 0x9E, 0xE9, 0xA0, 0xE5, 0x27, 0x6E, 0x3E, 0x75, 0xD0, 0x13, 0x61, 0x01, 0x66, 0x49, 0x1D, 0x87, 0x3A, 0x7D, 0xA2, 0xC9, 0xFD, 0xA3, 0x60, 0xA6, -+ 0x47, 0x73, 0x25, 0x00, 0x58, 0x41, 0x8F, 0xA7, 0x62, 0x63, 0x2D, 0xCB, 0x12, 0x63, 0x85, 0x27, 0x32, 0x60, 0x02, 0x18, 0x67, 0x53, 0xE6, 0xB5, 0xD3, 0x31, 0xE5, 0x64, 0x23, 0xC9, 0x70, 0x9D, -+ 0x34, 0x9C, 0x69, 0x5A, 0x32, 0x8A, 0x56, 0x2B, 0x13, 0x9A, 0xF5, 0x98, 0xF8, 0x5D, 0xCB, 0x35, 0x98, 0x40, 0x7D, 0x82, 0xF8, 0x49, 0xC2, 0x9A, 0x87, 0xDC, 0x41, 0xFA, 0xA7, 0x69, 0x8F, 0xAC, -+ 0x7F, 0x20, 0x4D, 0x70, 0xD0, 0x7D, 0x4A, 0xDC, 0x1D, 0x68, 0xFB, 0x46, 0x08, 0x63, 0xBB, 0x00, 0x2F, 0x3A, 0x23, 0x57, 0xCB, 0x65, 0xFB, 0x4B, 0x03, 0xBA, 0xB6, 0x8D, 0xB9, 0xB1, 0x1A, 0x09, -+ 0xC9, 0x02, 0xE8, 0x12, 0x95, 0x91, 0x54, 0x16, 0xB4, 0x51, 0xD8, 0xE5, 0xFB, 0xF7, 0x81, 0x33, 0xBE, 0xD2, 0x81, 0x81, 0x37, 0x17, 0xE3, 0x74, 0xC5, 0xB4, 0x15, 0xE7, 0x77, 0x3F, 0x95, 0xD8, -+ 0x3D, 0x8B, 0xF9, 0x7D, 0x4A, 0xC4, 0x5E, 0xAC, 0x28, 0x1E, 0x50, 0x89, 0x69, 0x32, 0xF7, 0xEE, 0xA4, 0x83, 0xE6, 0x98, 0xED, 0xD6, 0x07, 0xC3, 0xFF, 0xDD, 0xD3, 0x4C, 0x56, 0x67, 0x03, 0x28, -+ 0xEB, 0xA5, 0xE1, 0xEB, 0x24, 0x9B, 0x8E, 0x26, 0x85, 0x38, 0xBF, 0x4C, 0xF3, 0x43, 0x2E, 0xD5, 0xA9, 0x33, 0xB8, 0x2E, 0x6C, 0x0E, 0x96, 0x0D, 0xE1, 0x8A, 0x20, 0x9F, 0xA3, 0x90, 0x96, 0x93, -+ 0x87, 0x88, 0x4D, 0xAD, 0x8D, 0x8E, 0xE7, 0xE6, 0x0A, 0x89, 0x69, 0x90, 0x62, 0x16, 0x2F, 0x90, 0xBB, 0x28, 0xE4, 0xCC, 0xBA, 0x1A, 0x5F, 0x52, 0x6D, 0xE9, 0xCF, 0x7F, 0xEF, 0xEC, 0x7A, 0x77, -+ 0xDD, 0xA0, 0x7C, 0xD7, 0x00, 0x09, 0xE4, 0x8E, 0xBF, 0x8E, 0xDD, 0x9B, 0x34, 0x87, 0x26, 0xA9, 0x37, 0xE1, 0x4F, 0xF5, 0xEB, 0x6E, 0x79, 0xE3, 0xDB, 0x1B, 0x60, 0xD7, 0x0A, 0x73, 0x05, 0x11, -+ 0x15, 0x4A, 0x8A, 0xB8, 0x75, 0xF8, 0x6D, 0xEB, 0xCB, 0x9D, 0x79, 0x0F, 0xC4, 0x32, 0x84, 0x4E, 0x90, 0x3C, 0x8B, 0xD9, 0xFD, 0xB2, 0x8F, 0x99, 0x88, 0xDF, 0xAE, 0xA5, 0x56, 0xE9, 0x20, 0xE5, -+ 0x79, 0x25, 0x47, 0xAE, 0xA7, 0xA4, 0x5B, 0x4C, 0x7E, 0x68, 0x41, 0x61, 0x1E, 0x33, 0x06, 0x4E, 0x5C, 0xB5, 0x9B, 0xBA, 0xEC, 0xA6, 0x9E, 0x38, 0xA0, 0x99, 0x94, 0xAE, 0xEA, 0x3D, 0x10, 0xF6, -+ 0xFC, 0x53, 0xF6, 0x43, 0x56, 0x2F, 0xA0, 0x0A, 0x34, 0x12, 0xD4, 0xAF, 0xF8, 0x01, 0xD4, 0x8D, 0x0C, 0x58, 0xBA, 0x05, 0x5A, 0x42, 0xCD, 0xF6, 0xB8, 0xF1, 0x86, 0x16, 0x99, 0xEF, 0xD9, 0xAD, -+ 0x9D, 0xF4, 0xCB, 0xB9, 0x88, 0xE7, 0x22, 0x17, 0x12, 0xBB, 0x42, 0xA4, 0x3B, 0xE8, 0x32, 0x25, 0x09, 0x11, 0x1D, 0x3A, 0x8E, 0xBC, 0x97, 0xFA, 0xEB, 0xF9, 0xF8, 0x5D, 0x69, 0x20, 0x76, 0x5A, -+ 0x18, 0x2A, 0xD9, 0xC4, 0x54, 0x27, 0x99, 0x31, 0x70, 0x5E, 0xA2, 0x90, 0x3F, 0x6E, 0x18, 0x7D, 0x2A, 0xF6, 0xA5, 0xE4, 0xA8, 0x30, 0x54, 0x16, 0x8A, 0xA6, 0xA6, 0xF1, 0x27, 0xC8, 0xCE, 0x0C, -+ 0x56, 0xA2, 0xEF, 0x67, 0xDC, 0x1C, 0xD9, 0xB2, 0x2A, 0x51, 0x39, 0xDA, 0xC1, 0x92, 0xFF, 0xC5, 0x3A, 0x13, 0xEC, 0x52, 0xA3, 0x22, 0x07, 0xA9, 0x6A, 0x4F, 0xED, 0xB1, 0x20, 0x55, 0xFF, 0xDD, -+ 0xBE, 0xE6, 0xAE, 0xF0, 0x72, 0xF7, 0x5D, 0xB7, 0xC6, 0xCD, 0x37, 0xB2, 0x58, 0x9D, 0xC0, 0x0F, 0xBE, 0xF1, 0x33, 0x3E, 0xB1, 0x13, 0xC8, 0x22, 0x1B, 0xF8, 0x74, 0x0F, 0xD7, 0xBF, 0x7F, 0x39, -+ 0xA5, 0x7E, 0x4A, 0xE2, 0xCE, 0x86, 0xE0, 0xE8, 0xB4, 0xE9, 0x21, 0x4D, 0x67, 0x21, 0x46, 0xED, 0xE9, 0x85, 0x87, 0x15, 0x71, 0x56, 0x5E, 0x9F, 0x59, 0xCD, 0xA5, 0x92, 0x22, 0xAC, 0x9C, 0x6C, -+ 0x00, 0xD5, 0xA7, 0xC9, 0xD8, 0xA3, 0xE5, 0x46, 0xDE, 0xC8, 0x3C, 0x65, 0x54, 0xEA, 0x89, 0x13, 0x72, 0xBB, 0xCA, 0xE7, 0xD7, 0x76, 0x88, 0xDE, 0xD6, 0x0B, 0x52, 0x6C, 0x04, 0xC9, 0xBF, 0x0A, -+ 0x7D, 0x96, 0x56, 0x81, 0x90, 0x4D, 0xAC, 0x03, 0x79, 0x1F, 0x08, 0xB0, 0x71, 0xF0, 0xEE, 0x5B, 0xAB, 0xA1, 0xC4, 0x6B, 0x15, 0x61, 0x75, 0x6E, 0x58, 0x9C, 0x33, 0x7B, 0xAB, 0x4F, 0x2B, 0x75, -+ 0xAE, 0x3B, 0xF6, 0xE7, 0x74, 0x3F, 0x6C, 0xEE, 0x5F, 0x09, 0x93, 0xE7, 0x18, 0xC9, 0x58, 0x4D, 0x47, 0xEA, 0xD4, 0xC9, 0x61, 0xAE, 0x96, 0xF6, 0xD6, 0x02, 0xA5, 0x06, 0xA2, 0xA4, 0xC0, 0xF5, -+ 0x7E, 0x88, 0x1D, 0x51, 0xDC, 0x24, 0xF2, 0x77, 0xEB, 0xA9, 0xCC, 0x3C, 0x6F, 0x23, 0x58, 0x29, 0xB5, 0xBA, 0x87, 0xC2, 0x1F, 0x12, 0x32, 0x1C, 0xEE, 0x8B, 0x6E, 0xE9, 0x08, 0x9B, 0xB5, 0x2C, -+ 0x3A, 0x71, 0xAD, 0x61, 0x12, 0x46, 0xAE, 0xD9, 0x80, 0xC1, 0xB9, 0x47, 0xA6, 0x7C, 0x88, 0xA1, 0x10, 0xA7, 0xBD, 0x84, 0x49, 0xD0, 0x9C, 0xE3, 0x90, 0x6C, 0x65, 0x35, 0x45, 0x7D, 0x02, 0xF2, -+ 0x32, 0x5C, 0x70, 0xEE, 0x78, 0x63, 0xAE, 0x63, 0x23, 0x0F, 0xC2, 0x3D, 0xEC, 0xA2, 0x99, 0xBB, 0x5B, 0x0E, 0x4B, 0x1A, 0xE8, 0xE2, 0x40, 0x1D, 0xFB, 0x9D, 0x4B, 0xDD, 0xD0, 0x61, 0x18, 0xBD, -+ 0x15, 0x0F, 0x4B, 0x5C, 0xD3, 0x85, 0xAF, 0xB4, 0xFA, 0xD4, 0xEC, 0xA4, 0x6D, 0x61, 0xBE, 0xCA, 0xB1, 0x1D, 0x02, 0x70, 0x26, 0x67, 0x33, 0x33, 0xAB, 0x31, 0x4B, 0x9E, 0xF9, 0x1B, 0x7A, 0x7F, -+ 0x94, 0x0B, 0xDA, 0x44, 0x44, 0xAE, 0xFE, 0x37, 0x03, 0x6A, 0x43, 0xF2, 0xB6, 0x8D, 0x0D, 0xFF, 0xD7, 0xAF, 0x33, 0xA3, 0x63, 0x0F, 0xDB, 0x32, 0x5A, 0x74, 0xDA, 0x7B, 0x09, 0x0F, 0x94, 0x9D, -+ 0x06, 0x4B, 0xF7, 0x45, 0xB8, 0x93, 0x37, 0x15, 0x2B, 0x98, 0x0E, 0x4E, 0x20, 0xCC, 0x23, 0xFF, 0xAF, 0xCC, 0xBC, 0x7E, 0x95, 0x77, 0x04, 0xE9, 0x4B, 0xE7, 0xF3, 0xE8, 0x5F, 0x7F, 0xE8, 0x49, -+ 0x6F, 0xD5, 0xAA, 0xB9, 0x67, 0xB2, 0x7C, 0x3F, 0x17, 0x3E, 0x26, 0x26, 0x80, 0xD0, 0x44, 0x08, 0x85, 0xE6, 0xC0, 0xB2, 0xAA, 0xB0, 0x9A, 0xB8, 0x1F, 0x6D, 0xE5, 0xB2, 0x2D, 0x17, 0xD5, 0xA2, -+ 0x11, 0x97, 0xD6, 0x98, 0x93, 0xBE, 0xED, 0x51, 0x83, 0x4E, 0x2D, 0x7E, 0x3D, 0xAF, 0xF0, 0x4C, 0xF8, 0x4A, 0xA9, 0xC7, 0x79, 0x6E, 0xBB, 0x6A, 0xE2, 0x06, 0xC4, 0xE1, 0x66, 0x25, 0xFD, 0xFD, -+ 0x61, 0x39, 0x85, 0x05, 0x48, 0x06, 0x26, 0x7C, 0xD6, 0x9B, 0xFA, 0x8F, 0x5D, 0xD6, 0x0F, 0x4F, 0x21, 0x94, 0x12, 0xDF, 0x2B, 0xAB, 0xC9, 0x56, 0x41, 0xAE, 0x15, 0x54, 0x87, 0xFA, 0xF4, 0x13, -+ 0x33, 0xF5, 0xE5, 0x1B, 0xEF, 0xC2, 0xF9, 0x63, 0xE6, 0x2B, 0x74, 0x8B, 0x3D, 0x9C, 0x20, 0x20, 0x66, 0xD1, 0xEC, 0xBA, 0xB6, 0x03, 0x21, 0x79, 0x10, 0x58, 0x9B, 0xB9, 0x69, 0x55, 0x21, 0xA5, -+ 0xC5, 0x2F, 0x12, 0x38, 0x2F, 0x0D, 0xE3, 0x24, 0x3F, 0x9E, 0x92, 0xED, 0x60, 0x53, 0x12, 0x63, 0x7D, 0xCC, 0xE5, 0xAD, 0x80, 0x7D, 0xA0, 0xC9, 0x2E, 0x99, 0x32, 0x52, 0x05, 0x20, 0x41, 0xC7, -+ 0xB6, 0x8F, 0x4E, 0xB1, 0xBB, 0xB7, 0x08, 0x5A, 0x5B, 0x02, 0x04, 0x77, 0x98, 0x92, 0x30, 0xCB, 0xA8, 0x9F, 0x96, 0x6D, 0x34, 0x97, 0xC4, 0x04, 0x3D, 0x05, 0x6F, 0x79, 0x7E, 0xA0, 0xB4, 0x8E, -+ 0x24, 0x7C, 0xAB, 0xBC, 0x7E, 0x59, 0x73, 0x07, 0xDA, 0x60, 0x5A, 0x00, 0x81, 0x45, 0x45, 0x51, 0xC8, 0x96, 0xAB, 0x4E, 0xE1, 0x34, 0x6B, 0x90, 0x4E, 0x35, 0x8A, 0x58, 0xCA, 0x2F, 0x7B, 0x93, -+ 0xDA, 0x32, 0x9D, 0x08, 0x0A, 0x49, 0xDC, 0xF9, 0xD2, 0xC9, 0xD1, 0xBB, 0xD6, 0xBA, 0x82, 0x6C, 0xA7, 0x13, 0x3A, 0xB2, 0xDF, 0x61, 0xD7, 0x13, 0x16, 0xEB, 0xDD, 0xED, 0x88, 0x2E, 0x49, 0x83, -+ 0xB7, 0x67, 0x46, 0xF7, 0x14, 0x36, 0xD2, 0xD7, 0xC1, 0x4D, 0x94, 0x34, 0x71, 0x70, 0xEE, 0x00, 0x15, 0x54, 0x00, 0x28, 0x1B, 0xD3, 0xC6, 0xBF, 0xE5, 0xEC, 0xBF, 0x69, 0xDE, 0xA0, 0x59, 0x01, -+ 0x63, 0xE3, 0xA2, 0x97, 0x10, 0xC4, 0x10, 0x7A, 0x08, 0xD4, 0xDD, 0x30, 0xFD, 0x6E, 0x05, 0x0E, 0xA1, 0xE9, 0xE3, 0xF3, 0xBA, 0xCD, 0x74, 0x10, 0x35, 0xE3, 0x47, 0x18, 0xAF, 0xA9, 0xA9, 0xC8, -+ 0xAB, 0x19, 0xEA, 0x9C, 0xD8, 0x75, 0x11, 0xCC, 0x59, 0xCC, 0x60, 0x1B, 0xC6, 0x3B, 0x82, 0x0F, 0xD0, 0x96, 0x87, 0x1F, 0x95, 0x26, 0x34, 0xA2, 0xA3, 0x78, 0x87, 0x83, 0xAA, 0xE7, 0x6D, 0xA2, -+ 0x05, 0xB1, 0xEB, 0x5E, 0x94, 0x42, 0x16, 0x19, 0xFF, 0x47, 0x52, 0x5F, 0x05, 0x62, 0xE4, 0xA3, 0x63, 0x3A, 0xC7, 0xC4, 0x01, 0x7D, 0xA2, 0xC8, 0x13, 0x07, 0xBD, 0xBD, 0x74, 0xB2, 0xD9, 0x16, -+ 0x1E, 0x99, 0xC1, 0x68, 0x6A, 0x9A, 0xB1, 0xC9, 0x44, 0x1B, 0x0D, 0x35, 0xC1, 0xCE, 0x7E, 0x9A, 0x62, 0x88, 0x28, 0x92, 0x85, 0x02, 0x33, 0x20, 0x88, 0x9B, 0x63, 0x9E, 0xB9, 0xCD, 0x0A, 0x56, -+ 0x92, 0x93, 0xE3, 0x67, 0xC2, 0xBD, 0x1F, 0xEA, 0x68, 0x7F, 0x45, 0x1B, 0x3D, 0xA8, 0x80, 0x9A, 0x77, 0xCA, 0x31, 0x9D, 0xFC, 0xFF, 0xBA, 0xD4, 0x27, 0x24, 0xF2, 0xE0, 0x67, 0xCB, 0x3A, 0x85, -+ 0xE7, 0x23, 0xCD, 0xD0, 0xEF, 0xC6, 0xB4, 0xC9, 0x7B, 0x5A, 0x13, 0x6B, 0xBE, 0xFC, 0xB6, 0xF1, 0x34, 0x59, 0x2C, 0xED, 0xDD, 0x6A, 0xFC, 0x98, 0x30, 0x36, 0x5D, 0x75, 0xF7, 0x5A, 0x27, 0xCA, -+ 0xC7, 0x22, 0x56, 0x07, 0x8E, 0xD0, 0x20, 0xA4, 0x49, 0x30, 0xDE, 0x9C, 0x35, 0xCE, 0x96, 0xE1, 0x54, 0x4E, 0xE9, 0x85, 0x1B, 0xE6, 0x78, 0x48, 0x2A, 0x32, 0x7C, 0xFA, 0x37, 0xA9, 0x13, 0xE0, -+ 0x45, 0xC8, 0xC2, 0x63, 0xD9, 0xB2, 0x5E, 0xAE, 0x21, 0xA2, 0x66, 0x4A, 0xF9, 0x43, 0x03, 0x95, 0x16, 0x3F, 0x04, 0x56, 0xD1, 0xA5, 0x18, 0xF6, 0x09, 0x7C, 0x96, 0xDB, 0x8F, 0x50, 0x5F, 0x34, -+ 0x40, 0xA6, 0xC8, 0xCC, 0x31, 0xB5, 0x95, 0xAC, 0xFE, 0x9A, 0xA9, 0xCC, 0x1C, 0xCF, 0xF9, 0xFD, 0xA6, 0x56, 0xBC, 0xDB, 0x5E, 0xEB, 0x57, 0xF4, 0x1E, 0x94, 0x67, 0xC6, 0x43, 0xBA, 0x62, 0x79, -+ 0xE5, 0x41, 0xE8, 0x6C, 0x91, 0x07, 0x4E, 0x55, 0xC6, 0x3A, 0xDF, 0x41, 0x51, 0x7C, 0xEA, 0x5A, 0x6F, 0x62, 0x29, 0xF7, 0x10, 0x16, 0x62, 0xBB, 0x0A, 0xA0, 0xCE, 0xAB, 0x2B, 0x7F, 0x62, 0x11, -+ 0x96, 0xC7, 0xA7, 0x7B, 0xB3, 0x27, 0xC7, 0x68, 0xC4, 0x3D, 0x06, 0x9D, 0x71, 0xC3, 0x2C, 0x71, 0x2C, 0x83, 0x1D, 0x68, 0x50, 0xE6, 0xEB, 0x79, 0x3D, 0x7D, 0xEB, 0x08, 0xDE, 0x7A, 0x70, 0x4B, -+ 0x38, 0x6D, 0xFD, 0x2B, 0x30, 0x72, 0xC2, 0x6B, 0x89, 0xDF, 0x8D, 0x07, 0x2B, 0x3E, 0x9F, 0x56, 0x96, 0xA0, 0x73, 0x2E, 0x21, 0x5D, 0xF6, 0xDE, 0x47, 0x5D, 0x3A, 0x69, 0xF1, 0x11, 0x2F, 0x8B, -+ 0x6B, 0x8E, 0xE7, 0x6B, 0x73, 0x9C, 0x92, 0x76, 0xD9, 0xEE, 0x78, 0x17, 0xD9, 0x89, 0xAA, 0x07, 0x90, 0xD4, 0x6F, 0x8B, 0xE9, 0xBC, 0xF8, 0xA9, 0xDE, 0x83, 0xD3, 0xF3, 0xC3, 0x02, 0xA8, 0xAA, -+ 0xBE, 0xE5, 0xC8, 0xFE, 0xBC, 0x2A, 0xDC, 0x70, 0x6F, 0xC0, 0xEA, 0x55, 0xCD, 0x6F, 0x38, 0x37, 0x74, 0xF9, 0x55, 0xFE, 0xC7, 0x0A, 0x5F, 0x83, 0x80, 0x74, 0xDC, 0xB7, 0x31, 0x53, 0x2C, 0x94, -+ 0x9C, 0x88, 0x84, 0xE9, 0x5F, 0xDE, 0xCE, 0x3A, 0x7D, 0x9F, 0x7E, 0xA2, 0x1A, 0xC5, 0xA8, 0xAC, 0xDF, 0xAA, 0x89, 0x68, 0x1E, 0x95, 0x01, 0x4D, 0x5A, 0x23, 0x44, 0x31, 0x5B, 0xF8, 0xB3, 0xFF, -+ 0x97, 0x12, 0xA0, 0x9A, 0x8F, 0xDE, 0xB8, 0x29, 0x4C, 0x25, 0x7D, 0x16, 0xCC, 0xEF, 0xAA, 0x78, 0xDD, 0x0F, 0x5D, 0xFF, 0xE0, 0x49, 0xCE, 0x2B, 0x8A, 0xC7, 0xE1, 0x60, 0x02, 0xED, 0x1E, 0x32, -+ 0x8C, 0x62, 0x86, 0xA1, 0x67, 0x4A, 0x5C, 0x06, 0xF6, 0x28, 0x37, 0xAA, 0xF3, 0xEE, 0xFF, 0xFC, 0x11, 0x46, 0x94, 0x7A, 0x63, 0x0D, 0x82, 0x44, 0xAA, 0x72, 0x89, 0x8D, 0xFE, 0x5B, 0x94, 0x78, -+ 0x63, 0x70, 0x64, 0x8A, 0x13, 0xF0, 0xE1, 0x6D, 0x50, 0x27, 0x77, 0xEB, 0x8D, 0xF9, 0x62, 0xFC, 0x86, 0x3C, 0x77, 0xC1, 0x59, 0xBF, 0x64, 0xCC, 0x2A, 0x47, 0xCA, 0xF6, 0xB2, 0x12, 0xCB, 0xC6, -+ 0x14, 0x2B, 0x5C, 0x9F, 0x5B, 0xFF, 0xE2, 0xDD, 0x3B, 0xB1, 0xF8, 0x63, 0x23, 0x10, 0x74, 0x82, 0x96, 0xBB, 0x81, 0xB3, 0x62, 0xB7, 0xE4, 0x56, 0xEE, 0xE8, 0xDF, 0x29, 0x55, 0xFC, 0xDC, 0x04, -+ 0xE5, 0x5D, 0x25, 0x16, 0xA8, 0x28, 0x07, 0x12, 0xCA, 0x5B, 0x60, 0xEA, 0x90, 0x7D, 0x51, 0xB2, 0xFA, 0x72, 0xF9, 0xC7, 0x3D, 0xA7, 0xFE, 0x2C, 0x25, 0x98, 0x8F, 0x5B, 0xE1, 0xB8, 0x23, 0x68, -+ 0x25, 0xC8, 0x3A, 0x02, 0x38, 0x22, 0x39, 0x40, 0x2A, 0x29, 0x4E, 0xA4, 0xBE, 0x31, 0xA1, 0x7D, 0xBD, 0x31, 0xBA, 0x1B, 0xFF, 0xF8, 0x04, 0xCC, 0x78, 0x2F, 0xED, 0x78, 0x95, 0x09, 0x7F, 0x58, -+ 0x3D, 0xD1, 0x3A, 0xCC, 0x85, 0x49, 0x1B, 0xDD, 0x12, 0x3F, 0xE0, 0x2C, 0x14, 0x12, 0xE3, 0x42, 0x61, 0x7D, 0x9C, 0x26, 0xB8, 0xD9, 0x87, 0x7C, 0xAD, 0x5A, 0x72, 0xD2, 0x32, 0x80, 0xB5, 0x27, -+ 0x61, 0x47, 0xA7, 0x25, 0x84, 0xDA, 0xE6, 0x17, 0x23, 0x15, 0x8B, 0x9A, 0x54, 0x79, 0xD6, 0x6B, 0x6D, 0x8A, 0x6C, 0x4D, 0xB0, 0xF2, 0xE7, 0x1E, 0xDD, 0x46, 0x58, 0x85, 0xC3, 0x3A, 0x69, 0xA8, -+ 0xA7, 0x4E, 0x78, 0x16, 0x08, 0xF0, 0x64, 0x16, 0x86, 0x6D, 0x19, 0x6B, 0x69, 0x5E, 0x70, 0xA4, 0x3B, 0x7D, 0xEA, 0xBE, 0x8C, 0x00, 0x0D, 0x79, 0xEE, 0x16, 0x03, 0xD4, 0x7C, 0x45, 0xCC, 0xB8, -+ 0x5B, 0xBF, 0x79, 0x2D, 0x59, 0x14, 0x6F, 0xA3, 0x22, 0x86, 0x97, 0x6F, 0xF5, 0x91, 0x72, 0x62, 0x96, 0x38, 0xE1, 0xA0, 0x70, 0xCB, 0x0F, 0x0E, 0xCB, 0xF8, 0x09, 0xF9, 0xF5, 0xB8, 0x73, 0xFB, -+ 0xEF, 0x96, 0x87, 0x4F, 0xCD, 0xED, 0x58, 0xA2, 0xC0, 0xA4, 0x99, 0x06, 0xD9, 0x09, 0x1D, 0x29, 0xB2, 0x1D, 0x0A, 0x7B, 0x89, 0x94, 0x52, 0x5D, 0x08, 0x88, 0x74, 0x8F, 0xB7, 0xDE, 0xE1, 0x60, -+ 0xF2, 0xFC, 0xC7, 0x89, 0x52, 0xBB, 0x57, 0xBE, 0x4D, 0x36, 0x68, 0x5B, 0xE4, 0xF2, 0xB1, 0x45, 0xBC, 0xAC, 0x40, 0xE0, 0xDB, 0x30, 0x60, 0x87, 0x2D, 0x81, 0x76, 0x63, 0x91, 0xD4, 0xEC, 0x0B, -+ 0x04, 0x60, 0x9F, 0x4F, 0x2D, 0xA2, 0x28, 0x94, 0x15, 0x45, 0x8D, 0x5F, 0x15, 0x22, 0x3C, 0x8E, 0x91, 0x11, 0x88, 0xC7, 0x82, 0x5F, 0x52, 0xA0, 0xA3, 0xA2, 0xC2, 0xCA, 0x8B, 0x62, 0xA7, 0x4B, -+ 0x03, 0x71, 0x59, 0xE5, 0x4D, 0x99, 0x73, 0xC8, 0x00, 0x54, 0x3D, 0x2F, 0x6C, 0x4C, 0x0D, 0x9E, 0x3B, 0x09, 0x39, 0xC1, 0xC1, 0x68, 0x05, 0xE5, 0x79, 0x46, 0x95, 0x49, 0x9C, 0xE0, 0x13, 0xCF, -+ 0xB9, 0xB0, 0xEA, 0xEE, 0xD8, 0xDD, -+ }, -+ .msg_len = 33, -+ .msg = { 0xD8, 0x1C, 0x4D, 0x8D, 0x73, 0x4F, 0xCB, 0xFB, 0xEA, 0xDE, 0x3D, 0x3F, 0x8A, 0x03, 0x9F, 0xAA, 0x2A, 0x2C, 0x99, 0x57, 0xE8, 0x35, 0xAD, 0x55, 0xB2, 0x2E, 0x75, 0xBF, 0x57, 0xBB, 0x55, 0x6A, -+ 0xC8 }, -+ .sig_len = 4668, -+ .sig = { -+ 0x37, 0xBD, 0x0C, 0xCB, 0xC5, 0x4E, 0x5A, 0x48, 0x0F, 0x2F, 0xBB, 0x8E, 0xF3, 0x87, 0x9E, 0x83, 0x40, 0xD7, 0xF6, 0xC7, 0x42, 0x42, 0xAD, 0x44, 0xD3, 0xE8, 0xB0, 0x78, 0x3C, 0xC5, 0xBF, 0x21, -+ 0x36, 0xD7, 0xBD, 0x4A, 0x32, 0xA9, 0x55, 0x2F, 0xE0, 0xE8, 0xAF, 0x8E, 0x87, 0xD5, 0x41, 0x1D, 0x76, 0x8A, 0x69, 0x2F, 0xE2, 0xC5, 0x03, 0xA7, 0x0C, 0xCB, 0xC0, 0x3A, 0x34, 0xB3, 0xC1, 0xF0, -+ 0x81, 0x5B, 0x26, 0x4B, 0x57, 0x2A, 0x9E, 0x74, 0x60, 0x9B, 0x9A, 0xD7, 0x29, 0x3B, 0xE3, 0x72, 0x7B, 0xFE, 0x17, 0x58, 0x3B, 0x3B, 0x63, 0x4F, 0x0A, 0x11, 0x9D, 0x79, 0x3E, 0xB1, 0x4D, 0xFF, -+ 0x18, 0x64, 0x3D, 0x1C, 0x34, 0x6B, 0x65, 0xE5, 0x73, 0xEF, 0xB9, 0xD5, 0x3B, 0xFA, 0x4C, 0x20, 0x05, 0x5D, 0x55, 0xF7, 0x54, 0xAF, 0x2F, 0x73, 0xFC, 0x38, 0x62, 0x67, 0xD5, 0x89, 0x0B, 0x39, -+ 0x13, 0x01, 0x41, 0x55, 0x93, 0xB2, 0xC5, 0x69, 0x5B, 0x9C, 0x06, 0xF0, 0x01, 0xF8, 0x84, 0x5C, 0x7C, 0xFA, 0xD7, 0x7C, 0x04, 0xE4, 0x11, 0x65, 0x18, 0xDF, 0x80, 0xF0, 0x41, 0xA5, 0x8A, 0x85, -+ 0x74, 0x48, 0xE7, 0x68, 0xA7, 0x1A, 0x7A, 0x01, 0xF2, 0x43, 0x31, 0x70, 0xB3, 0x71, 0xE8, 0xE3, 0x01, 0xA5, 0x37, 0x87, 0xD5, 0xEC, 0x77, 0x05, 0xA5, 0xEE, 0x1F, 0xE4, 0xFC, 0x04, 0x91, 0xCD, -+ 0xC6, 0xC8, 0x76, 0x96, 0x8A, 0x60, 0x6E, 0xC1, 0x38, 0x6F, 0x45, 0x1C, 0xE8, 0x54, 0x77, 0x34, 0x8D, 0xE1, 0xC6, 0x8E, 0xCC, 0x33, 0x95, 0x41, 0x61, 0x24, 0x90, 0xB2, 0x4C, 0x24, 0x2D, 0x25, -+ 0x87, 0x39, 0x81, 0xF9, 0xDE, 0xA6, 0x6D, 0x13, 0xF3, 0xC2, 0x10, 0x93, 0xEA, 0x48, 0x11, 0x51, 0xD1, 0x76, 0xA5, 0x50, 0x08, 0x42, 0x55, 0x0C, 0x26, 0xD0, 0xAF, 0xB1, 0xC6, 0xAE, 0xBE, 0x8E, -+ 0x42, 0x67, 0xE3, 0x6F, 0xD5, 0x70, 0x1E, 0x45, 0xD1, 0xDF, 0x15, 0x95, 0x9C, 0x7D, 0xC4, 0x4E, 0x7F, 0x5B, 0x6B, 0xA8, 0xCA, 0x04, 0xED, 0xF1, 0xE3, 0xE6, 0x48, 0x69, 0xFA, 0x15, 0x3B, 0xA7, -+ 0x46, 0x7F, 0x0D, 0x7B, 0x2F, 0xDC, 0x91, 0x24, 0x3A, 0x22, 0x39, 0x06, 0xF1, 0xAE, 0xA0, 0xD9, 0xFC, 0x14, 0x0F, 0x70, 0xCD, 0x02, 0x5A, 0x31, 0xB4, 0x0F, 0x22, 0xC4, 0x71, 0xBD, 0xD2, 0x36, -+ 0x5E, 0xD6, 0x30, 0x2D, 0x14, 0x81, 0x31, 0x6E, 0xE3, 0xC4, 0xC1, 0x70, 0xA1, 0x62, 0xEF, 0xE9, 0xFF, 0x41, 0x85, 0xE4, 0x50, 0x08, 0xF0, 0x7F, 0x6B, 0xDB, 0xAC, 0x22, 0x1D, 0xEC, 0x0B, 0xF0, -+ 0xAF, 0x88, 0x4B, 0x16, 0xC9, 0x5F, 0x34, 0x35, 0x01, 0xAA, 0x09, 0x8A, 0xD4, 0xA1, 0xF8, 0x20, 0x68, 0xFA, 0x1F, 0xBF, 0xF0, 0xE0, 0x40, 0x94, 0x6D, 0xCD, 0x50, 0xBF, 0x00, 0x9D, 0xF1, 0xFC, -+ 0xA4, 0xA3, 0xAA, 0xDB, 0x1C, 0x29, 0x51, 0xC0, 0x86, 0xD2, 0x7F, 0x20, 0x02, 0xDF, 0xD8, 0x54, 0xE5, 0x98, 0x52, 0xF4, 0x15, 0x30, 0x90, 0xDD, 0xC1, 0xA2, 0x1A, 0x6E, 0x0B, 0xE5, 0x92, 0x18, -+ 0x7A, 0x68, 0xAE, 0x08, 0x5B, 0x1D, 0x5D, 0x98, 0xBE, 0x8F, 0xCE, 0x5E, 0x24, 0x03, 0x1F, 0x47, 0xF8, 0x34, 0x30, 0x6B, 0xE5, 0xA5, 0xB6, 0x80, 0xAC, 0xFC, 0xD9, 0xF4, 0x04, 0xC1, 0xDE, 0x85, -+ 0x79, 0x66, 0xD2, 0x54, 0x6E, 0x66, 0x94, 0x01, 0x5F, 0x05, 0x02, 0xD0, 0xE6, 0x56, 0x8C, 0x9A, 0xA1, 0xB1, 0x3B, 0x3D, 0x7B, 0x61, 0xEE, 0x6A, 0x3D, 0xA0, 0x16, 0xDD, 0x34, 0xD6, 0x44, 0xB1, -+ 0x29, 0x7E, 0x63, 0x8D, 0xF0, 0xFC, 0xB6, 0xF6, 0x85, 0x57, 0x7E, 0x16, 0x4F, 0x5D, 0x6A, 0xA6, 0xF0, 0x70, 0xC1, 0xD0, 0x21, 0x55, 0x8C, 0xBC, 0xFD, 0x6F, 0x9B, 0xA3, 0x75, 0xE2, 0x89, 0x1F, -+ 0x67, 0x26, 0xCC, 0xE4, 0xCE, 0xBC, 0x89, 0xA9, 0x63, 0x57, 0x93, 0x0D, 0x04, 0x4C, 0x16, 0xAB, 0x29, 0x45, 0x30, 0x2C, 0xE0, 0xF2, 0xB6, 0x46, 0x17, 0x04, 0x6C, 0x3C, 0x1C, 0x4A, 0x6B, 0x34, -+ 0xD5, 0xAA, 0x07, 0x4E, 0x5F, 0xCB, 0x10, 0xBB, 0xA4, 0xC2, 0xA6, 0x08, 0x26, 0x5F, 0x45, 0xD7, 0x45, 0x10, 0x75, 0x0E, 0xAC, 0x67, 0x3A, 0x82, 0x8D, 0x5D, 0x30, 0x8F, 0x34, 0x07, 0x92, 0x31, -+ 0x33, 0xD5, 0x50, 0xB2, 0x57, 0x85, 0xA8, 0x39, 0x02, 0x42, 0xDC, 0x27, 0xB0, 0x82, 0xD3, 0x87, 0xAB, 0xCC, 0xDA, 0x7C, 0xD4, 0xD6, 0xEE, 0x5E, 0xAB, 0x8D, 0x51, 0xC8, 0x76, 0x9C, 0x24, 0x3A, -+ 0x95, 0x88, 0xF0, 0x45, 0xCC, 0xD9, 0xA5, 0x17, 0x2D, 0x99, 0xD0, 0x4E, 0xE4, 0x39, 0x59, 0xDC, 0x4D, 0x95, 0xBE, 0xAC, 0x06, 0x14, 0xA2, 0xF8, 0x50, 0x97, 0xED, 0x1C, 0x47, 0x61, 0x38, 0x42, -+ 0x9D, 0x12, 0xC7, 0x75, 0x8F, 0xA5, 0x28, 0x75, 0xC7, 0x38, 0xD4, 0x6E, 0xF2, 0xD9, 0x67, 0x51, 0x90, 0xFB, 0x72, 0x65, 0xF9, 0xAA, 0xC8, 0xC6, 0xF1, 0x73, 0xE8, 0xD5, 0x5C, 0x6B, 0x33, 0x81, -+ 0x9F, 0xBF, 0x9B, 0x5B, 0xD3, 0x12, 0x4D, 0x30, 0xC5, 0x81, 0x3E, 0x44, 0x7F, 0xAE, 0x23, 0xFC, 0xA5, 0xDB, 0x43, 0x8E, 0xC5, 0xCC, 0x8A, 0x66, 0xDE, 0xEB, 0xEB, 0x39, 0x53, 0x49, 0x29, 0xCE, -+ 0x4C, 0xE0, 0xB9, 0x8F, 0x1C, 0xA0, 0xE2, 0xC7, 0xD4, 0x53, 0x81, 0xC8, 0xF2, 0xE2, 0xFD, 0x2F, 0xED, 0x40, 0x6B, 0x29, 0xCC, 0x6A, 0x09, 0xD8, 0x1B, 0x44, 0xA4, 0x4F, 0x16, 0xC1, 0x50, 0xD8, -+ 0x65, 0xE8, 0xEA, 0x60, 0x60, 0xA8, 0x58, 0x39, 0x7C, 0x07, 0xF8, 0x57, 0x3A, 0x9C, 0xA2, 0x93, 0x00, 0x7D, 0x1B, 0xE4, 0xDD, 0xD8, 0xA5, 0x37, 0xDD, 0x9A, 0x57, 0x7F, 0x5E, 0x42, 0xF3, 0xEC, -+ 0xB4, 0x8F, 0x75, 0x81, 0x51, 0xA4, 0x01, 0xCA, 0xF2, 0x26, 0xA4, 0x8D, 0x94, 0x81, 0x9D, 0x2A, 0x43, 0xED, 0x08, 0xCD, 0xB6, 0xAE, 0xDD, 0x64, 0x01, 0x14, 0x03, 0x22, 0x31, 0x3B, 0xFD, 0xE2, -+ 0x76, 0x05, 0x71, 0x7E, 0x35, 0x66, 0xDD, 0x31, 0xBB, 0x5C, 0x52, 0x71, 0x45, 0x90, 0x45, 0x93, 0xA4, 0x74, 0x41, 0xD2, 0xF3, 0xC7, 0x44, 0x2C, 0x63, 0x69, 0x5D, 0xD0, 0xC3, 0x60, 0xBD, 0xA9, -+ 0x95, 0xFB, 0xFE, 0xC3, 0xE6, 0xC6, 0x63, 0xD1, 0xD2, 0x2D, 0x89, 0x0D, 0x7D, 0xF7, 0x05, 0x98, 0xF1, 0xBB, 0xC6, 0x19, 0x2A, 0x4F, 0x3A, 0x0A, 0x45, 0x8A, 0x95, 0x44, 0xCA, 0xDD, 0x6F, 0x18, -+ 0xDF, 0xA9, 0xEE, 0xA6, 0xE3, 0x20, 0x6B, 0xDE, 0x60, 0xED, 0x1C, 0x57, 0xCC, 0xC8, 0x00, 0x5F, 0x7C, 0x7C, 0x82, 0x74, 0xC1, 0x40, 0x7C, 0x8F, 0xAF, 0x4E, 0xBD, 0x69, 0xD5, 0x76, 0x19, 0x79, -+ 0xF9, 0x07, 0xCF, 0xD0, 0x62, 0x4E, 0xC7, 0xBA, 0x1F, 0xD7, 0xB5, 0x67, 0x81, 0xAC, 0x71, 0xA4, 0xA5, 0x26, 0x84, 0xFF, 0xC3, 0x2D, 0x5B, 0x53, 0x3C, 0xB5, 0x6C, 0x07, 0xF6, 0x35, 0xF5, 0x79, -+ 0x69, 0xC8, 0xF1, 0x58, 0x8D, 0x34, 0xD0, 0xE7, 0xA1, 0xC7, 0xA9, 0x42, 0xAA, 0xA3, 0xF3, 0x56, 0x0B, 0x0D, 0xB4, 0xF8, 0xCE, 0xBC, 0xAF, 0x6F, 0x25, 0x24, 0x11, 0x4A, 0x5F, 0x6A, 0xF7, 0x1B, -+ 0x5F, 0x50, 0xE9, 0x42, 0xE6, 0x74, 0xA8, 0x77, 0xC1, 0x74, 0xD9, 0x22, 0x00, 0x86, 0x5A, 0x5A, 0x06, 0xFB, 0x2D, 0x7F, 0xB4, 0x74, 0x41, 0x46, 0x75, 0xED, 0x31, 0x72, 0xF5, 0xF1, 0x53, 0x8F, -+ 0x58, 0x1E, 0xDE, 0x5E, 0xDD, 0x74, 0x5B, 0x55, 0xF9, 0xA2, 0xFC, 0x49, 0x95, 0xEB, 0x98, 0x4B, 0x8A, 0x12, 0xD6, 0xF6, 0x5A, 0xAE, 0xDF, 0x8D, 0x8D, 0x6F, 0xF5, 0x3C, 0xE2, 0x38, 0xC3, 0xA6, -+ 0x6C, 0xF2, 0x34, 0xF5, 0x94, 0x36, 0x47, 0x1C, 0x9F, 0xCB, 0xD3, 0x8E, 0x7F, 0x26, 0xBD, 0xF9, 0x74, 0x1B, 0x59, 0x9E, 0x16, 0xB8, 0xF7, 0xED, 0x46, 0x44, 0xBB, 0x6A, 0xBE, 0x81, 0xBB, 0x94, -+ 0x0C, 0x24, 0xFA, 0x62, 0x0F, 0x44, 0x35, 0x84, 0xF9, 0x9B, 0xB9, 0xDC, 0x25, 0x71, 0xB5, 0xEB, 0x81, 0x19, 0x27, 0x52, 0x9C, 0x7A, 0xDC, 0xEB, 0xEE, 0xF7, 0xAF, 0x05, 0xBA, 0x7E, 0x88, 0x89, -+ 0x9F, 0xAB, 0xF8, 0x74, 0x0F, 0xCD, 0xD1, 0x27, 0x5B, 0x12, 0xF7, 0x2A, 0x75, 0xC6, 0xD0, 0x00, 0x56, 0x5C, 0x5A, 0xC8, 0x8F, 0xB1, 0xFD, 0x99, 0x5B, 0x84, 0xED, 0x38, 0x4D, 0x5D, 0x6A, 0x60, -+ 0x29, 0x37, 0x37, 0xD7, 0x2C, 0xC1, 0x09, 0x44, 0x36, 0x39, 0x71, 0xDA, 0x44, 0xD5, 0xEA, 0xE9, 0xE8, 0xB1, 0xE8, 0x0D, 0x75, 0x76, 0xC5, 0x0A, 0xAF, 0xF6, 0x7E, 0x42, 0x31, 0x96, 0xF3, 0x78, -+ 0x57, 0xD1, 0xD2, 0x35, 0xAB, 0x28, 0x39, 0xAE, 0x37, 0x79, 0xF9, 0xF2, 0xF9, 0xB7, 0x59, 0xFC, 0x52, 0xDA, 0xAE, 0xB8, 0x63, 0x7B, 0x8F, 0x4F, 0xC9, 0x0B, 0xD9, 0x4A, 0xDB, 0x6F, 0x57, 0x72, -+ 0x20, 0x82, 0xE9, 0x43, 0xD7, 0xCE, 0x3E, 0x73, 0x50, 0x1D, 0x8C, 0x93, 0xB5, 0x21, 0x2D, 0xEC, 0xE4, 0x95, 0x35, 0x53, 0x6E, 0xFC, 0xEA, 0xB8, 0xB8, 0x5E, 0xB2, 0xAA, 0x94, 0xCB, 0xE7, 0x7B, -+ 0xAA, 0xDF, 0x46, 0x58, 0x92, 0x01, 0xA3, 0xA8, 0xAC, 0xA4, 0x83, 0x9E, 0x51, 0x9B, 0x6F, 0xD0, 0xCC, 0x52, 0xEA, 0x58, 0xA8, 0xAC, 0x08, 0xDC, 0x15, 0xEE, 0xF4, 0x8E, 0xDB, 0x89, 0xA1, 0xFC, -+ 0x46, 0xE7, 0x13, 0x53, 0xFE, 0x73, 0xF6, 0x8E, 0x0F, 0x48, 0x55, 0xB7, 0xFF, 0x73, 0x27, 0xAE, 0x4B, 0xCB, 0xA0, 0x9D, 0xE0, 0x33, 0x53, 0xD4, 0x1E, 0xDE, 0x26, 0x78, 0x5A, 0x94, 0x49, 0x6A, -+ 0xCB, 0x4E, 0x74, 0x3B, 0xA0, 0x65, 0xD1, 0x79, 0x3F, 0xBE, 0x5B, 0x29, 0x3A, 0x77, 0x1C, 0xCB, 0x8B, 0x8D, 0x8B, 0xD2, 0x76, 0x77, 0xD5, 0xFF, 0xF7, 0x43, 0xF9, 0x49, 0x77, 0x21, 0x9D, 0x55, -+ 0x57, 0x35, 0xE5, 0xD0, 0xAC, 0xE1, 0x18, 0xC2, 0x57, 0x1F, 0xC6, 0x96, 0xAF, 0x1F, 0xB0, 0xA1, 0x97, 0x6A, 0x37, 0x85, 0xB0, 0x89, 0x61, 0x11, 0x7F, 0x19, 0x98, 0xB7, 0xE6, 0x1C, 0xF8, 0x14, -+ 0xFE, 0x91, 0xA8, 0xB8, 0x1D, 0x62, 0xE4, 0x8D, 0x93, 0xB0, 0x28, 0x0D, 0xBA, 0xBF, 0x18, 0xE1, 0x12, 0x12, 0x43, 0xBF, 0xF3, 0x7B, 0x5A, 0xF7, 0x1E, 0x29, 0xA3, 0x1B, 0x48, 0x4A, 0xDA, 0x4F, -+ 0x1F, 0xBC, 0x88, 0x30, 0x11, 0x27, 0x76, 0x60, 0xAE, 0xB4, 0x71, 0xB3, 0x09, 0xFA, 0x00, 0x32, 0x23, 0x5B, 0x3B, 0x2E, 0x2B, 0x2C, 0xAF, 0xCC, 0xC5, 0x44, 0x61, 0xB0, 0xB4, 0x5A, 0xE1, 0x5D, -+ 0x92, 0xAD, 0x61, 0xB6, 0x4C, 0x5F, 0x37, 0x4A, 0x23, 0x74, 0x44, 0xF9, 0x63, 0x1D, 0xE4, 0x3C, 0x0B, 0x67, 0x8D, 0x03, 0xB6, 0x4E, 0xA3, 0xF9, 0x9B, 0xBB, 0xD1, 0x79, 0x61, 0x15, 0x39, 0xFC, -+ 0x91, 0x69, 0x3B, 0x81, 0xE6, 0xA2, 0xF2, 0xFC, 0x81, 0x70, 0xE8, 0xBF, 0xD6, 0xD5, 0xB7, 0x8A, 0x5C, 0xD6, 0x44, 0x88, 0x1A, 0x67, 0xFD, 0x28, 0xAC, 0xDA, 0x74, 0x70, 0x58, 0x47, 0x27, 0x6C, -+ 0x16, 0xBD, 0xF0, 0x9E, 0xBE, 0xBB, 0x21, 0x8C, 0xC6, 0x89, 0xB4, 0x50, 0x85, 0x43, 0xC3, 0x9E, 0xA6, 0x56, 0x44, 0xA7, 0xF3, 0x3D, 0xF4, 0x7D, 0x32, 0x72, 0xA3, 0x7C, 0xA8, 0x30, 0x76, 0x7B, -+ 0x23, 0xF5, 0x52, 0xA1, 0xB3, 0x89, 0xF1, 0x4B, 0xE8, 0x71, 0xFF, 0x72, 0x59, 0xFB, 0x3A, 0x32, 0x93, 0x0F, 0x56, 0xDD, 0x42, 0x71, 0xF0, 0x21, 0xAA, 0xAC, 0xD7, 0xA2, 0xAC, 0x82, 0x03, 0xCF, -+ 0x69, 0xE9, 0x64, 0x30, 0xA1, 0x6A, 0x2F, 0x96, 0xC1, 0x1F, 0xD2, 0xCD, 0x44, 0xE0, 0x86, 0xE1, 0x16, 0x8A, 0x8C, 0x1A, 0x63, 0x7E, 0x23, 0x21, 0xF6, 0x0C, 0xA5, 0x93, 0x0C, 0x02, 0xF9, 0x2D, -+ 0xFF, 0x2D, 0x30, 0xAB, 0x10, 0x5A, 0xF8, 0x46, 0xB1, 0x6A, 0x90, 0xE2, 0xA7, 0x4D, 0xBC, 0x97, 0xDA, 0x40, 0xA1, 0x3F, 0x40, 0x5B, 0x71, 0x04, 0xBF, 0x2F, 0x22, 0xFC, 0xA4, 0x2E, 0x3A, 0x50, -+ 0x0A, 0x72, 0x7A, 0xE1, 0xEA, 0x24, 0x01, 0x21, 0x60, 0x16, 0xFE, 0x8B, 0xF0, 0xDD, 0xBA, 0xE6, 0x8E, 0xD8, 0x74, 0x17, 0xFA, 0x76, 0x0D, 0xBA, 0x07, 0xD8, 0x4C, 0x26, 0x9C, 0xF4, 0x2B, 0xBE, -+ 0xB3, 0x7D, 0x5B, 0x90, 0xEB, 0x23, 0x69, 0x76, 0xB8, 0x6F, 0x4D, 0x8F, 0x35, 0xE7, 0x82, 0x83, 0x7E, 0x32, 0xA1, 0x95, 0xF9, 0xCF, 0xD6, 0xC6, 0x73, 0x53, 0x6A, 0xA0, 0x43, 0x5B, 0x38, 0x0C, -+ 0x02, 0xD1, 0xB7, 0xB0, 0xDE, 0x3C, 0x47, 0x9F, 0xE6, 0xB5, 0xFE, 0x6C, 0xF9, 0x7C, 0x3B, 0xD7, 0x46, 0x10, 0xCF, 0x15, 0x06, 0xE5, 0x99, 0x86, 0xF3, 0x81, 0x46, 0xB9, 0xA8, 0x96, 0x3C, 0xAE, -+ 0x08, 0x00, 0x30, 0x75, 0xFF, 0x60, 0x7D, 0x47, 0x0E, 0x87, 0xA7, 0x2E, 0x8F, 0xFB, 0xC7, 0xE1, 0x38, 0x38, 0xDA, 0x93, 0xDC, 0x3A, 0x4B, 0x3E, 0x52, 0x34, 0x75, 0xCD, 0xC4, 0xE4, 0x8C, 0x2A, -+ 0x54, 0x5F, 0x30, 0xE5, 0x89, 0x24, 0x7C, 0x64, 0x62, 0x2F, 0xA1, 0x05, 0x59, 0xB7, 0x24, 0xBB, 0x5F, 0xE8, 0x73, 0xED, 0xDF, 0x78, 0x38, 0xE1, 0x83, 0x2A, 0xD2, 0x17, 0xD4, 0xE8, 0x0B, 0x58, -+ 0xB9, 0xFB, 0x39, 0xB6, 0x6C, 0xBE, 0x9F, 0x26, 0x48, 0x09, 0xEE, 0xD5, 0x94, 0x23, 0xF0, 0xA3, 0xCD, 0x3F, 0x00, 0xAD, 0xFC, 0x47, 0x42, 0xCE, 0x1B, 0x3C, 0xB6, 0x5B, 0x2B, 0xD2, 0xE3, 0x10, -+ 0x59, 0x50, 0x9A, 0xFC, 0x7E, 0x48, 0x36, 0xDF, 0x0A, 0xE6, 0xF9, 0xD5, 0xC0, 0x63, 0x30, 0x95, 0x3F, 0xA2, 0xBB, 0x6F, 0xD0, 0x18, 0x7A, 0x6C, 0xAB, 0x88, 0x14, 0xEE, 0x12, 0xD1, 0x4E, 0xBC, -+ 0x6D, 0xEF, 0xFC, 0x23, 0xE1, 0xC9, 0x01, 0x65, 0xE2, 0xE7, 0x78, 0x59, 0x45, 0xF1, 0x8B, 0xCC, 0x74, 0xD8, 0xB1, 0xC6, 0xAF, 0xA1, 0x5B, 0x32, 0x6C, 0x04, 0x7D, 0x94, 0x66, 0x8C, 0x03, 0x32, -+ 0xD1, 0x47, 0xAF, 0x57, 0x52, 0x17, 0x64, 0x52, 0xC7, 0x12, 0x20, 0xB0, 0xA4, 0x32, 0xD4, 0x89, 0x9B, 0x6C, 0xEA, 0xA5, 0x87, 0x59, 0x9C, 0xAC, 0xF0, 0x04, 0xBA, 0x12, 0xA9, 0x0B, 0x26, 0x06, -+ 0x21, 0x43, 0x06, 0xFA, 0x30, 0x0A, 0x4A, 0x13, 0xBF, 0x8F, 0x99, 0x4F, 0x46, 0xF5, 0xDF, 0x92, 0xE6, 0xD3, 0xBF, 0x47, 0x2C, 0xF7, 0x29, 0xFF, 0xF6, 0x66, 0xF2, 0x07, 0xEA, 0x71, 0xD5, 0x2C, -+ 0xF6, 0xF2, 0xB1, 0x9C, 0x87, 0xCE, 0xAF, 0x08, 0xCD, 0x44, 0x5D, 0x18, 0x4F, 0x89, 0x81, 0xCA, 0x28, 0xCB, 0xFE, 0xA0, 0x03, 0x06, 0xAC, 0x76, 0x8B, 0x47, 0x15, 0x42, 0xF3, 0x27, 0x48, 0x76, -+ 0x68, 0x4B, 0xCE, 0x7C, 0x17, 0xEB, 0xEC, 0x6C, 0xC6, 0xD7, 0xF9, 0x0E, 0xC1, 0x3D, 0xA9, 0x4C, 0xD7, 0xB4, 0xE9, 0x8E, 0x1C, 0xFA, 0xBA, 0x8F, 0x9C, 0xDD, 0xBF, 0x08, 0xCF, 0xD7, 0xDD, 0x5E, -+ 0x3A, 0x73, 0x25, 0x66, 0x36, 0x65, 0x98, 0x0D, 0x3F, 0x55, 0x59, 0x22, 0x60, 0x8A, 0x05, 0xD9, 0xDC, 0x20, 0x76, 0x69, 0x29, 0x41, 0x30, 0x66, 0xB3, 0xB1, 0xAF, 0x98, 0x44, 0x31, 0x34, 0x5F, -+ 0xD0, 0x12, 0x1D, 0x16, 0x42, 0xEA, 0xB5, 0x84, 0xF7, 0x47, 0x37, 0x3D, 0x08, 0xCE, 0x5B, 0x2E, 0x26, 0xE7, 0x6B, 0x51, 0xAB, 0x58, 0xE3, 0x9E, 0x6F, 0x9E, 0x6C, 0x4C, 0x33, 0xF1, 0x52, 0xE5, -+ 0x03, 0x7F, 0x7F, 0x52, 0x76, 0x0A, 0x98, 0x36, 0x94, 0x1D, 0x43, 0xF4, 0x3C, 0x2E, 0x8C, 0x34, 0x6E, 0x40, 0x4A, 0xF3, 0x51, 0x80, 0x13, 0x3C, 0x2C, 0x8B, 0x44, 0x03, 0x86, 0x98, 0xFB, 0xE6, -+ 0xE8, 0x44, 0xEB, 0xC9, 0x66, 0x57, 0xD5, 0xD3, 0x24, 0xCE, 0xB2, 0xCC, 0x38, 0xA4, 0xF2, 0xE3, 0xB0, 0x09, 0x38, 0x39, 0x3B, 0x05, 0x4E, 0x19, 0xA1, 0xAF, 0x2C, 0x7E, 0x2C, 0xBB, 0xC1, 0xC4, -+ 0x52, 0xB6, 0x9D, 0x02, 0xA4, 0xBF, 0x04, 0xEB, 0x58, 0x42, 0xAA, 0x6A, 0x0A, 0xF8, 0xFB, 0x9D, 0x85, 0xD7, 0x98, 0x5B, 0x9B, 0xB2, 0x3D, 0x86, 0x06, 0x24, 0xB4, 0xE4, 0x04, 0x7E, 0x14, 0x26, -+ 0xF7, 0x17, 0x76, 0x7E, 0x51, 0x5C, 0x3D, 0x99, 0xF4, 0xF3, 0xA1, 0x05, 0x66, 0x56, 0x23, 0x2A, 0x21, 0x1C, 0xC2, 0xC8, 0x07, 0xF1, 0xF9, 0xF9, 0x61, 0x1D, 0xC8, 0xAE, 0x50, 0x81, 0x94, 0xF7, -+ 0xD6, 0x18, 0x2E, 0xE3, 0xAE, 0x96, 0x71, 0xB3, 0x45, 0xD0, 0x23, 0x18, 0x94, 0x78, 0x6E, 0x70, 0x72, 0x42, 0xF0, 0x68, 0x80, 0x69, 0x5A, 0x3F, 0xA6, 0x26, 0x89, 0x15, 0x74, 0xFA, 0xEE, 0xEE, -+ 0x83, 0x39, 0xDE, 0xBE, 0x23, 0x0E, 0xE7, 0x6B, 0x82, 0xA9, 0xAE, 0x4F, 0x03, 0xD9, 0xCC, 0xA2, 0x8F, 0x3B, 0x9F, 0x2F, 0x06, 0xAC, 0x23, 0xE3, 0xD2, 0xCF, 0x76, 0xF0, 0x19, 0x50, 0x6F, 0xEC, -+ 0x5C, 0x6E, 0x99, 0x07, 0x58, 0x7F, 0xB3, 0xBF, 0x4C, 0x2B, 0xE6, 0x58, 0xC5, 0x6E, 0xD6, 0x31, 0x88, 0x46, 0x56, 0xD6, 0xC2, 0x0E, 0xE1, 0x0B, 0x78, 0xD8, 0xF2, 0xD8, 0x01, 0x82, 0x30, 0xCD, -+ 0xF9, 0x5E, 0xB8, 0x6E, 0x9C, 0xFD, 0xA2, 0xE1, 0x55, 0xBA, 0x33, 0x58, 0x12, 0xFC, 0x72, 0xEB, 0x88, 0x0B, 0xEA, 0x3A, 0x8C, 0x3A, 0x98, 0xCB, 0x56, 0x71, 0xE0, 0xE4, 0x03, 0x70, 0x4A, 0x55, -+ 0x33, 0x62, 0x5B, 0x3E, 0xFA, 0x5C, 0xD3, 0x6C, 0x93, 0xDA, 0x37, 0x77, 0x21, 0xBF, 0x43, 0x82, 0xA0, 0xD0, 0x11, 0x77, 0xBC, 0xC5, 0xBC, 0xB4, 0xB7, 0x08, 0x23, 0x32, 0xE3, 0xE5, 0x85, 0x1B, -+ 0x17, 0xF7, 0xB9, 0xD9, 0x10, 0xD2, 0x19, 0xEC, 0x5F, 0x98, 0xB9, 0xCE, 0x2E, 0xD2, 0x7F, 0x40, 0xB5, 0x72, 0x13, 0x8F, 0xE9, 0xA0, 0x3F, 0x15, 0x48, 0x65, 0x23, 0xB2, 0x9A, 0xA4, 0xC6, 0x07, -+ 0x60, 0x17, 0xEF, 0xD2, 0x70, 0x70, 0x56, 0x0A, 0xC6, 0x13, 0xB3, 0x1D, 0x76, 0xB9, 0x60, 0x07, 0xEA, 0x98, 0xD7, 0xB0, 0x1D, 0x9A, 0x92, 0x54, 0x0C, 0x6A, 0x03, 0x0C, 0x4D, 0x0B, 0x98, 0x50, -+ 0x8A, 0x14, 0x51, 0xE6, 0x48, 0x7F, 0x11, 0x2E, 0xF9, 0xE9, 0x05, 0xBA, 0x88, 0x92, 0x7A, 0xD6, 0x19, 0xEE, 0xEC, 0x6B, 0x58, 0xEE, 0xF0, 0x62, 0xE9, 0x1D, 0x35, 0x10, 0xB4, 0xED, 0xDA, 0xB2, -+ 0xE5, 0xF9, 0x15, 0x46, 0x70, 0xEA, 0x8C, 0xF0, 0x00, 0x4C, 0xA4, 0xE2, 0xCC, 0xB5, 0xCE, 0x6C, 0x18, 0x70, 0xDA, 0x6B, 0xD8, 0xFD, 0xDC, 0x36, 0x41, 0x03, 0x91, 0x08, 0x82, 0x23, 0xF1, 0x53, -+ 0xF6, 0x83, 0x97, 0x6B, 0xAB, 0x00, 0x87, 0xB2, 0xAF, 0x15, 0x7C, 0xA7, 0x89, 0x3E, 0x5C, 0x34, 0xF8, 0x38, 0xB2, 0x2A, 0xE6, 0x51, 0x4A, 0xB3, 0x81, 0xF4, 0x7A, 0x63, 0x3E, 0xC8, 0x9A, 0x2E, -+ 0x1E, 0x51, 0x11, 0x18, 0x75, 0xB3, 0xAE, 0x9A, 0xEB, 0x66, 0x7D, 0xC8, 0x38, 0x6D, 0xB8, 0x1F, 0x13, 0xFF, 0x8D, 0xF7, 0x38, 0xB1, 0x02, 0x15, 0xDA, 0x52, 0x21, 0x01, 0xEF, 0xB8, 0xAD, 0xC9, -+ 0xB1, 0x08, 0x75, 0xA4, 0x79, 0xB6, 0x47, 0x93, 0xB2, 0x4C, 0x67, 0x68, 0x41, 0xE3, 0x5C, 0x97, 0xA8, 0xE7, 0xEE, 0xBC, 0x6C, 0x51, 0x72, 0xCA, 0x88, 0x66, 0x1F, 0x2B, 0x62, 0x86, 0x46, 0x31, -+ 0x2A, 0x68, 0x8C, 0xCC, 0x12, 0x43, 0x7D, 0x70, 0x39, 0x0C, 0x3E, 0x16, 0x21, 0x92, 0x0E, 0x65, 0x53, 0x98, 0xFF, 0x9A, 0x7E, 0x53, 0x74, 0xDF, 0xEC, 0xE4, 0x00, 0x19, 0x5B, 0x6A, 0x43, 0x1C, -+ 0xDC, 0xC4, 0xB2, 0xF4, 0x4D, 0xAA, 0xC9, 0xBF, 0x91, 0x5E, 0x1B, 0x23, 0xA8, 0x5F, 0xED, 0x35, 0xE3, 0xC4, 0x3F, 0xCF, 0x02, 0x13, 0x04, 0x02, 0x10, 0x94, 0x83, 0x13, 0x48, 0x98, 0x37, 0x08, -+ 0x0F, 0x1D, 0x80, 0x30, 0x27, 0xB0, 0x98, 0x95, 0x11, 0xD0, 0x63, 0x16, 0x7B, 0x36, 0x58, 0xD3, 0xF9, 0x8C, 0x0D, 0x2C, 0xA8, 0x79, 0x76, 0x53, 0x49, 0x28, 0x98, 0xC8, 0x14, 0x0E, 0x21, 0x86, -+ 0x9C, 0x56, 0x3A, 0x5C, 0x03, 0xB7, 0x86, 0x07, 0x8F, 0x63, 0x4D, 0x75, 0xED, 0x2B, 0xDA, 0xD2, 0x74, 0x22, 0x51, 0xB6, 0x36, 0x48, 0x7D, 0x1A, 0xFF, 0xAB, 0xF3, 0x1E, 0x66, 0x46, 0x98, 0xC1, -+ 0x77, 0x3F, 0x4E, 0x4D, 0xE9, 0xF2, 0xC3, 0xA4, 0xFE, 0xE7, 0x58, 0xEA, 0x07, 0x34, 0x89, 0x46, 0x99, 0x48, 0xBC, 0x9B, 0x50, 0xDB, 0x60, 0xD0, 0x5D, 0x9F, 0x18, 0x31, 0x41, 0x48, 0x94, 0xC2, -+ 0x06, 0x19, 0x0E, 0xCD, 0xE8, 0xF2, 0x49, 0xBD, 0x43, 0x57, 0x7C, 0x8D, 0x40, 0xCA, 0x61, 0x1D, 0x23, 0xB6, 0xF7, 0x54, 0xCB, 0x06, 0xC6, 0x77, 0xC7, 0x1A, 0x77, 0x00, 0xCB, 0x8A, 0xF9, 0x30, -+ 0xC5, 0xFF, 0xDB, 0x55, 0x4C, 0xA6, 0xAB, 0xE6, 0xD0, 0x83, 0xEE, 0x1A, 0x5A, 0xBF, 0xAA, 0x27, 0xA6, 0xF3, 0x1A, 0x83, 0x02, 0xBF, 0xD5, 0x78, 0xBC, 0x52, 0x93, 0xBD, 0xA4, 0xC1, 0x84, 0xE7, -+ 0xD7, 0xBB, 0x58, 0x9F, 0x6D, 0xEA, 0x11, 0xC9, 0xF3, 0x9A, 0xB9, 0xCD, 0x09, 0x8A, 0x72, 0x81, 0x63, 0xD7, 0x96, 0x2B, 0x6A, 0x40, 0x06, 0xF2, 0x65, 0x27, 0x73, 0xD5, 0xD8, 0xCA, 0xDA, 0x35, -+ 0xFB, 0x07, 0xDD, 0x8D, 0x39, 0x2D, 0xF7, 0x07, 0x9D, 0x1D, 0x72, 0x1D, 0xFA, 0xEC, 0xFF, 0xAC, 0xDB, 0x80, 0x81, 0x42, 0xFB, 0xA4, 0xF3, 0xC9, 0xB5, 0xC3, 0x1C, 0x81, 0xBB, 0x58, 0xA9, 0xAA, -+ 0x30, 0x1F, 0x3D, 0x54, 0xEB, 0x4B, 0x0D, 0xBF, 0xF7, 0xF2, 0x67, 0x73, 0xB4, 0x56, 0xD5, 0xC0, 0x2F, 0x94, 0x25, 0x4E, 0xB7, 0x7E, 0x35, 0x3A, 0x68, 0x75, 0x3D, 0xCD, 0xC6, 0x2E, 0xC2, 0x3B, -+ 0xDD, 0x5D, 0x6B, 0xBA, 0x07, 0xDB, 0x3E, 0xAC, 0x51, 0xE6, 0x4C, 0x34, 0xB4, 0xB5, 0x34, 0x38, 0xBF, 0x7C, 0x6E, 0xF9, 0xC6, 0x23, 0x7B, 0x68, 0xF6, 0x98, 0xE4, 0x31, 0x50, 0x77, 0x23, 0xA2, -+ 0xE3, 0xBC, 0x43, 0xDD, 0xB6, 0xD9, 0x52, 0xA4, 0xF1, 0x2B, 0x43, 0xF7, 0x64, 0xF7, 0x5B, 0x5C, 0x6C, 0xB8, 0x82, 0xF7, 0xFE, 0xB7, 0x38, 0xAE, 0x3F, 0xB9, 0x1C, 0xBF, 0x49, 0x7E, 0x8E, 0x1D, -+ 0x1B, 0x1D, 0x59, 0x22, 0x79, 0xAF, 0x26, 0x16, 0x6C, 0xCA, 0x5A, 0xBD, 0xD2, 0x8E, 0x6E, 0xFF, 0x4F, 0xBA, 0x74, 0x60, 0x5E, 0xA8, 0x85, 0xCE, 0xEB, 0x5A, 0x01, 0xEA, 0xFD, 0xE3, 0x16, 0x93, -+ 0x9C, 0x35, 0xB8, 0x01, 0x0D, 0xD8, 0x57, 0x9A, 0x3A, 0x94, 0xFC, 0x68, 0x5E, 0xEB, 0x1F, 0x62, 0x83, 0xC5, 0xE6, 0xAD, 0x51, 0xE8, 0x2A, 0x93, 0x51, 0xC9, 0xD1, 0xA3, 0xFD, 0xB8, 0xB3, 0xD2, -+ 0x6D, 0x02, 0x93, 0xA8, 0xBC, 0xBF, 0x25, 0x6B, 0x5E, 0x5B, 0xB3, 0x31, 0x23, 0x3A, 0x30, 0xDA, 0xF0, 0xFE, 0x4A, 0xDE, 0x80, 0x82, 0xB3, 0x03, 0xC3, 0x9E, 0x55, 0x1D, 0xBC, 0xC3, 0x02, 0xBF, -+ 0x9B, 0x8A, 0xD3, 0x93, 0x3C, 0xB9, 0xAD, 0x90, 0x0A, 0x68, 0x25, 0x36, 0x7E, 0x15, 0x3E, 0x89, 0x6B, 0xC9, 0xAF, 0xDF, 0x8E, 0x40, 0x55, 0xA9, 0xD0, 0x9B, 0x85, 0x4C, 0xA8, 0x3D, 0x3A, 0xDF, -+ 0x6E, 0x00, 0x43, 0x75, 0xC4, 0xED, 0xE4, 0xEC, 0x5C, 0x57, 0x80, 0x5F, 0x79, 0xA2, 0x06, 0x03, 0x4C, 0x51, 0x40, 0xCC, 0x60, 0x27, 0x7E, 0xAA, 0x74, 0xCD, 0xEE, 0xE9, 0xF0, 0x49, 0x3E, 0x90, -+ 0x91, 0xC2, 0x29, 0x98, 0xB6, 0x13, 0x86, 0x3C, 0xE3, 0xAB, 0x77, 0x98, 0x39, 0x2E, 0x69, 0x67, 0x58, 0xC0, 0x32, 0x28, 0x6E, 0x10, 0x39, 0xBB, 0x13, 0x6C, 0x7C, 0x54, 0x30, 0xCB, 0xCD, 0x6D, -+ 0x99, 0x9A, 0xA1, 0xF7, 0xB2, 0x8B, 0xE6, 0x03, 0x32, 0xCE, 0x70, 0xF5, 0x6E, 0xE3, 0x1C, 0x9E, 0xAB, 0x2D, 0x1E, 0x41, 0x3F, 0x0E, 0x65, 0x59, 0xE1, 0xF5, 0xCC, 0x6A, 0x5A, 0xAA, 0x8A, 0xD2, -+ 0x64, 0x46, 0x88, 0x85, 0x52, 0x18, 0x1B, 0x8A, 0xA5, 0x30, 0xE4, 0xC6, 0x64, 0x68, 0x01, 0x08, 0x00, 0xAD, 0x5A, 0x94, 0xF3, 0xA0, 0xDD, 0x36, 0x9F, 0x1D, 0x5D, 0x16, 0xA8, 0x3A, 0x5F, 0xF7, -+ 0x49, 0xC5, 0xFE, 0xC8, 0x67, 0x2F, 0x92, 0xE5, 0xC8, 0x40, 0x0B, 0xD7, 0x67, 0x1F, 0x91, 0xFC, 0x06, 0x97, 0x21, 0x53, 0x14, 0xF0, 0x26, 0x51, 0x61, 0x42, 0xCA, 0xA6, 0x03, 0xED, 0x19, 0x11, -+ 0x5A, 0xAC, 0x9C, 0x32, 0x5D, 0x18, 0x34, 0x0E, 0x67, 0x62, 0xEF, 0xBA, 0xCF, 0xEF, 0x8E, 0x33, 0x13, 0x3C, 0x0F, 0x8F, 0x84, 0xBE, 0x6C, 0x1F, 0x95, 0xCB, 0x24, 0x45, 0x3D, 0xD8, 0x46, 0xEB, -+ 0xC6, 0x29, 0x5C, 0x7E, 0x7D, 0xF9, 0x44, 0xB0, 0x17, 0xF1, 0xEF, 0x8A, 0x47, 0x85, 0x22, 0x96, 0xF0, 0x91, 0x96, 0xD1, 0x51, 0xB7, 0x8D, 0x77, 0xC9, 0xC1, 0xDA, 0x7D, 0x99, 0x75, 0xE5, 0x89, -+ 0x83, 0xD3, 0x31, 0xE1, 0x78, 0x3F, 0xA6, 0x3B, 0xD9, 0x0C, 0x58, 0xC8, 0x2E, 0x4B, 0xFD, 0xDF, 0x8F, 0x0B, 0x4C, 0x37, 0xBB, 0xA4, 0x39, 0x07, 0x4F, 0x32, 0xE4, 0x1A, 0xBB, 0xCC, 0x90, 0xB5, -+ 0x6C, 0x6A, 0xD3, 0x6E, 0xC8, 0xAB, 0x1F, 0xB3, 0x34, 0xCE, 0x59, 0xDA, 0x0E, 0xEF, 0xBE, 0x46, 0x5B, 0xF9, 0x62, 0x67, 0x4D, 0x25, 0x81, 0x5F, 0x22, 0x10, 0x84, 0x86, 0x56, 0x93, 0xB0, 0x3A, -+ 0x44, 0xF6, 0x39, 0xF3, 0xA4, 0x7C, 0x36, 0xEE, 0xB2, 0x46, 0xD3, 0x90, 0x7D, 0x2F, 0x1D, 0x23, 0x78, 0xD7, 0xD7, 0x93, 0xD3, 0x95, 0xC3, 0x65, 0x52, 0x5A, 0x46, 0x5D, 0x9C, 0xE4, 0x15, 0x25, -+ 0x41, 0xE5, 0x94, 0xA7, 0x29, 0xAC, 0x62, 0xEE, 0x4E, 0x3A, 0xB5, 0x89, 0xE7, 0xB0, 0x01, 0xD5, 0xF2, 0x35, 0x4E, 0x3E, 0x30, 0xB1, 0x82, 0xBD, 0x69, 0xDC, 0x5A, 0x87, 0x7F, 0xF1, 0xCB, 0x87, -+ 0xFB, 0x9C, 0x25, 0x60, 0xBF, 0xE8, 0x2D, 0x3E, 0xDB, 0x06, 0x3B, 0xB7, 0x4D, 0x4B, 0x1F, 0x5C, 0xF3, 0x31, 0xB2, 0xD8, 0x4B, 0x45, 0x98, 0x8E, 0x04, 0xF7, 0x18, 0x32, 0xF0, 0x27, 0x2C, 0xD5, -+ 0xA8, 0x44, 0x91, 0x9E, 0xC3, 0x41, 0x3A, 0xE0, 0xE9, 0x9F, 0x0A, 0x8D, 0xAD, 0xC1, 0x87, 0xE9, 0xBD, 0x9A, 0x4D, 0xF9, 0xE1, 0x05, 0xD1, 0x81, 0x37, 0x60, 0xC4, 0xFA, 0x32, 0x95, 0xBC, 0x22, -+ 0x51, 0x7E, 0x89, 0x07, 0xD9, 0x85, 0xD2, 0x79, 0xEA, 0x25, 0x67, 0x4C, 0x78, 0x53, 0x18, 0x80, 0x5D, 0x1D, 0xBC, 0xD7, 0x97, 0x62, 0x46, 0x83, 0xC3, 0x63, 0xEA, 0xCA, 0xFE, 0x62, 0xC0, 0x78, -+ 0x83, 0x4A, 0x5B, 0x13, 0x78, 0x7F, 0xAF, 0x0A, 0xB3, 0xB4, 0xD2, 0x45, 0x71, 0x3B, 0x02, 0x22, 0x2A, 0x8A, 0x60, 0x56, 0x23, 0xA5, 0xE1, 0xE5, 0x0F, 0x5D, 0xBB, 0xAB, 0x95, 0x6A, 0xBC, 0xA5, -+ 0xF0, 0x64, 0x11, 0xD5, 0x97, 0xB0, 0xFB, 0x2D, 0x6D, 0xCC, 0x65, 0x0E, 0x77, 0x65, 0xF5, 0xE2, 0x3C, 0x4B, 0x8B, 0xC2, 0xB7, 0xAE, 0x0C, 0x88, 0x58, 0xB6, 0x50, 0xD1, 0x66, 0x89, 0x10, 0x38, -+ 0x54, 0x39, 0x2C, 0xB2, 0x41, 0x0E, 0xBD, 0x20, 0x8D, 0xF2, 0xE8, 0xD6, 0xF2, 0x21, 0x33, 0xCB, 0x63, 0xBC, 0x21, 0xE9, 0x69, 0xDC, 0x67, 0xA0, 0xE2, 0xEE, 0xDC, 0x42, 0x8E, 0x3B, 0x71, 0xC8, -+ 0x31, 0x89, 0x9B, 0x8D, 0x41, 0x22, 0xE5, 0x96, 0x69, 0xC1, 0x42, 0xBA, 0xB2, 0x0A, 0xFF, 0x7E, 0xD1, 0x89, 0x54, 0xB6, 0x52, 0x4B, 0x8C, 0x58, 0xD3, 0x91, 0xE3, 0x70, 0x61, 0xD1, 0xD5, 0x66, -+ 0xEA, 0x04, 0x42, 0x7E, 0x91, 0x44, 0x09, 0x5F, 0xDB, 0x1A, 0x28, 0xC1, 0xFD, 0x49, 0xCA, 0xD9, 0xFD, 0x55, 0xD7, 0x54, 0x7F, 0xF9, 0xD6, 0x0D, 0x54, 0xF7, 0x20, 0x5E, 0xBE, 0xD4, 0x96, 0xD1, -+ 0xE9, 0xDE, 0xDB, 0x8B, 0x28, 0xCE, 0xF8, 0x1D, 0x1A, 0xA5, 0x78, 0x05, 0x76, 0xD6, 0x7D, 0x70, 0x23, 0x21, 0xE5, 0x89, 0xD4, 0x4A, 0x60, 0xE2, 0x1F, 0xA0, 0x7B, 0xD9, 0x2D, 0xCF, 0xA1, 0x57, -+ 0xF1, 0x0D, 0xA6, 0x0F, 0xAD, 0x6E, 0x44, 0x28, 0x07, 0xD4, 0xE1, 0xCF, 0x5F, 0x7A, 0xBD, 0x0B, 0xB4, 0xBF, 0x1D, 0x7F, 0xF3, 0x6A, 0x0E, 0x63, 0x6E, 0x30, 0x0C, 0xD8, 0x57, 0x55, 0x33, 0x1B, -+ 0x22, 0x05, 0x97, 0x87, 0x23, 0xD9, 0xAC, 0xE6, 0xF2, 0xD5, 0x6F, 0xEC, 0x9D, 0x54, 0x59, 0x4C, 0xDB, 0x64, 0x3B, 0x8A, 0x9D, 0x8E, 0x6F, 0x76, 0x5C, 0xCE, 0xEF, 0x28, 0x19, 0xB3, 0xEF, 0x55, -+ 0xDE, 0x38, 0x9F, 0xDC, 0x00, 0x79, 0x27, 0xD2, 0x22, 0xF1, 0x1D, 0x22, 0x76, 0xDD, 0x18, 0xD4, 0xDF, 0x86, 0xE8, 0xE7, 0xE2, 0xA4, 0xD9, 0x94, 0x3D, 0xD8, 0x83, 0xD7, 0x0B, 0xC0, 0x45, 0xB6, -+ 0xAF, 0xAB, 0xED, 0xDF, 0x42, 0x18, 0xA2, 0x5A, 0xBF, 0x3F, 0xB0, 0xD4, 0x13, 0xD6, 0x18, 0x37, 0xC4, 0x5B, 0x86, 0xF9, 0xE6, 0xC6, 0x25, 0x53, 0x37, 0xC3, 0x8A, 0xF3, 0x5B, 0xE8, 0x2B, 0xE1, -+ 0xF0, 0x3A, 0xF0, 0x81, 0x1F, 0x2F, 0x1E, 0xEB, 0x25, 0x27, 0x6B, 0xF6, 0xAB, 0x27, 0xB9, 0x25, 0x64, 0x33, 0x4F, 0x06, 0x3A, 0x83, 0x18, 0xFC, 0x69, 0xC1, 0x34, 0x70, 0xDA, 0x6F, 0xD9, 0x47, -+ 0xB7, 0xEE, 0x2F, 0x67, 0xA7, 0x60, 0x5F, 0x6A, 0x57, 0x95, 0x3F, 0x96, 0xA3, 0x35, 0xB5, 0x50, 0x12, 0x63, 0x98, 0x67, 0x49, 0x02, 0x11, 0x88, 0x62, 0xF0, 0x86, 0x3F, 0x93, 0x13, 0xA3, 0x6A, -+ 0xD0, 0x57, 0x34, 0xE5, 0x1F, 0x54, 0x98, 0x62, 0x17, 0x0E, 0xC3, 0x69, 0x5A, 0x67, 0xE0, 0xC1, 0x6C, 0xDC, 0xDE, 0xA7, 0x7B, 0x39, 0x5D, 0x1F, 0xC4, 0xF8, 0xF1, 0x3A, 0x08, 0xBA, 0x8D, 0x4C, -+ 0xC4, 0x09, 0xCA, 0xBC, 0x9B, 0x15, 0xF1, 0x00, 0x7A, 0x4E, 0x3E, 0x4A, 0x71, 0x37, 0xB7, 0x00, 0xBE, 0xF5, 0xC3, 0x32, 0x97, 0x73, 0x5B, 0xE4, 0xC0, 0xAD, 0xB5, 0x4A, 0xA2, 0xDB, 0xE0, 0x96, -+ 0x2D, 0x16, 0x83, 0x55, 0x5C, 0xFC, 0xB8, 0x84, 0x17, 0xD7, 0x19, 0x4B, 0x7A, 0xDF, 0x09, 0xB3, 0xD2, 0xD5, 0xBA, 0xDE, 0xB1, 0xE8, 0x47, 0xAF, 0x62, 0x11, 0x65, 0x45, 0x4C, 0x4D, 0xA0, 0x0D, -+ 0x11, 0x85, 0x06, 0xE8, 0x25, 0xBD, 0x8F, 0x90, 0xDE, 0x0C, 0xC1, 0x1A, 0xFA, 0xD8, 0x5E, 0x08, 0xE9, 0x0E, 0xB5, 0xC4, 0x42, 0xD5, 0xB8, 0x5C, 0x9A, 0x9B, 0x86, 0xF2, 0x75, 0x8F, 0x4B, 0xB9, -+ 0xDA, 0x95, 0xA7, 0xB5, 0xB5, 0x85, 0xD6, 0x1A, 0x5C, 0x0E, 0x6E, 0x92, 0x0B, 0xBC, 0x43, 0x64, 0x97, 0xBB, 0x6C, 0x9A, 0xB8, 0x18, 0xAF, 0xCB, 0x5C, 0xE8, 0x14, 0x81, 0x09, 0xED, 0x99, 0x94, -+ 0x2E, 0x07, 0x90, 0xC5, 0xE2, 0x71, 0x4F, 0x4A, 0x88, 0x06, 0x74, 0xF4, 0xC6, 0x86, 0xF0, 0x7B, 0x48, 0xF5, 0xB8, 0x35, 0x9F, 0x9A, 0xF6, 0x3E, 0xB2, 0x05, 0xA3, 0x7B, 0xC0, 0xC6, 0x39, 0xDF, -+ 0x09, 0x3F, 0x88, 0xBB, 0x45, 0xCA, 0x1B, 0xA0, 0xDD, 0xD7, 0x1D, 0xB7, 0x4A, 0x22, 0xCE, 0x88, 0x4B, 0x39, 0x83, 0xD4, 0x54, 0xD5, 0x69, 0x56, 0x66, 0xED, 0x88, 0xDB, 0xB1, 0x66, 0xE9, 0x98, -+ 0x96, 0xEA, 0xBF, 0x67, 0x6B, 0xB8, 0x6D, 0x0E, 0xF3, 0xBD, 0xCF, 0x24, 0x1F, 0x50, 0xF2, 0x67, 0x2E, 0x3C, 0xD3, 0xBD, 0xAE, 0x60, 0xE6, 0xEC, 0xCD, 0xEF, 0x96, 0xDF, 0x63, 0x90, 0x88, 0xE4, -+ 0x45, 0x7A, 0xEE, 0xE7, 0x74, 0x6C, 0x24, 0xBD, 0x67, 0x6F, 0x3E, 0xFE, 0xA2, 0x7D, 0xDC, 0xDA, 0xC8, 0xA4, 0x1C, 0xA5, 0xBF, 0x9E, 0x03, 0xC8, 0xF5, 0xAF, 0xBB, 0xC8, 0x9B, 0x6D, 0x96, 0xBF, -+ 0x90, 0xD9, 0x4C, 0xFF, 0xD9, 0x1E, 0x3A, 0x8A, 0x07, 0xCC, 0xF0, 0x44, 0x93, 0xA5, 0xCB, 0x44, 0x1A, 0x9F, 0x59, 0x61, 0xEA, 0xC7, 0x1C, 0xEA, 0xB0, 0x4A, 0x78, 0xF7, 0x0B, 0x4F, 0x52, 0xF4, -+ 0x63, 0x09, 0x45, 0xAC, 0xC4, 0x5F, 0x4F, 0x83, 0xEE, 0x96, 0x7C, 0xF2, 0xB2, 0x37, 0x5D, 0x0F, 0xCE, 0x3A, 0x3F, 0x6E, 0x43, 0x96, 0x36, 0x14, 0xCC, 0xE0, 0x36, 0x03, 0xF0, 0x59, 0x7D, 0x30, -+ 0xE1, 0xD6, 0x75, 0xC0, 0x0F, 0x3C, 0xCA, 0xC4, 0x49, 0x21, 0xD2, 0x92, 0x28, 0xFF, 0x52, 0x96, 0xD4, 0x35, 0x25, 0x2F, 0x9C, 0xB3, 0x26, 0xA4, 0xD6, 0xFC, 0x34, 0xF0, 0x79, 0x89, 0xC1, 0x84, -+ 0x28, 0x86, 0x74, 0x59, 0xD1, 0x82, 0x95, 0xD2, 0xD6, 0x12, 0x10, 0x7F, 0x75, 0x35, 0xED, 0x27, 0xF6, 0x84, 0x6C, 0xA8, 0xD3, 0xB1, 0x73, 0x9D, 0x23, 0x45, 0xD2, 0x8B, 0xCC, 0xC4, 0xFD, 0x1A, -+ 0x63, 0x14, 0xFD, 0x47, 0x88, 0x9B, 0x53, 0xA1, 0xA7, 0x34, 0x63, 0x4B, 0xEC, 0x0C, 0x0A, 0x1C, 0x8A, 0x0A, 0x89, 0xAC, 0x66, 0xB0, 0xF4, 0xE5, 0x32, 0x8F, 0x76, 0x39, 0x2D, 0x01, 0x73, 0xE1, -+ 0x74, 0xEB, 0x8F, 0xA6, 0x0F, 0x86, 0xC9, 0x7F, 0x00, 0x20, 0xDC, 0xFA, 0x4E, 0x69, 0x94, 0xFC, 0x08, 0xFD, 0xCF, 0x40, 0x5A, 0x44, 0xB1, 0xC4, 0x8C, 0xC2, 0x1C, 0x51, 0xA0, 0x92, 0x81, 0x73, -+ 0x71, 0xF9, 0x6E, 0x64, 0xBD, 0x2B, 0x69, 0xBA, 0x79, 0xD7, 0xE4, 0xDD, 0x2C, 0x1F, 0x71, 0x8B, 0xF4, 0x56, 0x39, 0xCB, 0x45, 0x39, 0xE1, 0xF8, 0x9C, 0xF0, 0xE5, 0xEF, 0x25, 0x88, 0xE2, 0x5D, -+ 0xEB, 0x44, 0x10, 0x1D, 0x3C, 0x12, 0xE1, 0x4B, 0x99, 0x3C, 0x0A, 0xB3, 0x55, 0x61, 0x13, 0x82, 0x19, 0x59, 0xC6, 0xE9, 0xFC, 0x9A, 0xCC, 0x95, 0xBA, 0x17, 0x31, 0x4A, 0xC5, 0x6D, 0x2B, 0x26, -+ 0xA0, 0x39, 0x10, 0x69, 0x2A, 0xA4, 0xE1, 0x58, 0xF6, 0x81, 0xCB, 0xAA, 0x7C, 0x0F, 0xF8, 0x03, 0xD6, 0x66, 0x4B, 0x60, 0x9E, 0x5A, 0x4A, 0x25, 0x73, 0x58, 0x9F, 0xCD, 0x16, 0x8D, 0x17, 0x90, -+ 0x13, 0x32, 0x3E, 0x4B, 0x4F, 0x51, 0x53, 0x68, 0x6B, 0x74, 0x75, 0x78, 0x7C, 0xA2, 0xAF, 0xB6, 0xC4, 0xC5, 0xF4, 0xF8, 0x0D, 0x1D, 0x37, 0x46, 0x4D, 0x55, 0x57, 0x6A, 0x7B, 0x8C, 0xAC, 0xB2, -+ 0xC6, 0xC7, 0xC8, 0xD2, 0xEA, 0xF4, 0xF9, 0xFC, 0x18, 0x19, 0x20, 0x25, 0x27, 0x39, 0x5A, 0x5E, 0x90, 0xA4, 0xAF, 0xE8, 0xEF, 0xF2, 0xF8, 0xF9, 0x11, 0x29, 0x38, 0x68, 0x76, 0xAC, 0xAD, 0xBD, -+ 0xD6, 0xDA, 0xE1, 0xEB, 0xF3, 0x1B, 0x38, 0x5D, 0x67, 0x76, 0x81, 0x87, 0x8A, 0x91, 0x94, 0xAE, 0xC2, 0xD6, 0xD9, 0xDF, 0xFF, 0x01, 0x02, 0x1B, 0x2F, 0x34, 0x3B, 0x3F, 0x40, 0x58, 0x94, 0xAE, -+ 0xB1, 0xBD, 0xC5, 0xD5, 0xD7, 0x0A, 0x20, 0x23, 0x2D, 0x30, 0x3C, 0x65, 0x6C, 0x75, 0x76, 0x7E, 0x83, 0x90, 0xC2, 0xE7, 0xEB, 0x0C, 0x51, 0x64, 0x77, 0x88, 0xA4, 0xBB, 0xC1, 0xC7, 0xDB, 0xDC, -+ 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x28, 0x38, 0x45, 0x55, 0x65, 0x75, 0x81, 0x02, 0x10, 0x1C, 0x20, 0x18, 0x40, 0x08, 0x09, 0x06, 0x4C, 0x04, 0x04, -+ 0x02, 0x85, 0x00, 0x1D, 0xA0, 0x42, 0x9C, 0x48, 0x00, 0x81, 0x8C, 0x40, 0xC1, 0x42, 0x00, 0xC1, 0x0D, 0x09, 0x01, 0x94, 0xE8, 0x78, 0x5E, 0x1F, 0xF5, 0x65, 0x11, 0x03, -+ }, -+ }, -+ { -+ .name = "Dilithium Round 2, Level 5 (8-7) KAT 0", -+ .version = 0, -+ .keyform = CK_IBM_DILITHIUM_KEYFORM_ROUND2_87, -+ .rho_len = 32, -+ .rho = { -+ 0x7C, 0x99, 0x35, 0xA0, 0xB0, 0x76, 0x94, 0xAA, 0x0C, 0x6D, 0x10, 0xE4, 0xDB, 0x6B, 0x1A, 0xDD, 0x2F, 0xD8, 0x1A, 0x25, 0xCC, 0xB1, 0x48, 0x03, 0x2D, 0xCD, 0x73, 0x99, 0x36, 0x73, 0x7F, 0x2D, -+ }, -+ .seed_len = 32, -+ .seed = { -+ 0x3E, 0x78, 0x4C, 0xCB, 0x7E, 0xBC, 0xDC, 0xFD, 0x45, 0x54, 0x2B, 0x7F, 0x6A, 0xF7, 0x78, 0x74, 0x2E, 0x0F, 0x44, 0x79, 0x17, 0x50, 0x84, 0xAA, 0x48, 0x8B, 0x3B, 0x74, 0x34, 0x06, 0x78, 0xAA, -+ }, -+ .tr_len = 48, -+ .tr = { -+ 0x89, 0xDB, 0xBF, 0xC3, 0x69, 0x33, 0x5D, 0x8F, 0x70, 0xE7, 0xBC, 0xB4, 0xD1, 0x66, 0xD4, 0xBD, 0xD0, 0xD8, 0x36, 0xE4, 0x5D, 0xE9, 0x37, 0x92, 0xED, 0xC4, 0x26, 0x10, 0x6F, 0xBF, 0x5A, 0xF2, -+ 0x7C, 0x68, 0xA9, 0x50, 0xB4, 0xA1, 0xA6, 0x42, 0x28, 0x01, 0xC6, 0xF2, 0xAC, 0xC3, 0xA9, 0xFA, -+ }, -+ .s1_len = 672, -+ .s1 = { -+ 0x91, 0xB4, 0x2D, 0xA1, 0x38, 0x24, 0x08, 0x19, 0x24, 0x1A, 0x30, 0x4D, 0x40, 0xA8, 0x6C, 0xD8, 0x04, 0x6A, 0x03, 0x28, 0x04, 0x41, 0x38, 0x22, 0x22, 0x39, 0x0A, 0xE2, 0x80, 0x0D, 0x12, 0x49, -+ 0x91, 0x24, 0xB4, 0x50, 0x93, 0x46, 0x89, 0xD1, 0x30, 0x4C, 0x04, 0x20, 0x24, 0x20, 0x20, 0x31, 0x59, 0x92, 0x41, 0xC3, 0x26, 0x61, 0x14, 0x47, 0x32, 0xDB, 0x12, 0x69, 0x63, 0x46, 0x01, 0x10, -+ 0x93, 0x91, 0x10, 0x39, 0x81, 0x5B, 0x26, 0x71, 0x40, 0xB0, 0x01, 0x03, 0x41, 0x48, 0x04, 0x19, 0x09, 0x13, 0xB4, 0x91, 0x0C, 0x46, 0x08, 0xD4, 0x08, 0x09, 0x0C, 0x99, 0x04, 0x00, 0x35, 0x61, -+ 0x13, 0x14, 0x4C, 0x19, 0x41, 0x28, 0x1C, 0x16, 0x80, 0x88, 0xA0, 0x29, 0x1A, 0x30, 0x02, 0x10, 0x80, 0x4C, 0x13, 0x43, 0x25, 0x04, 0x08, 0x81, 0x20, 0x43, 0x70, 0x14, 0x11, 0x6A, 0x99, 0x00, -+ 0x40, 0x48, 0x82, 0x31, 0x12, 0x42, 0x20, 0x48, 0x06, 0x0D, 0xE2, 0xA2, 0x0C, 0x82, 0xB0, 0x28, 0xE2, 0x36, 0x10, 0x49, 0x16, 0x84, 0xD8, 0x04, 0x4C, 0x51, 0xB8, 0x68, 0xC2, 0x84, 0x90, 0x9B, -+ 0x10, 0x31, 0x21, 0x49, 0x32, 0x94, 0x20, 0x0D, 0x04, 0x41, 0x24, 0xCB, 0xA4, 0x6D, 0x1A, 0x82, 0x61, 0x08, 0x40, 0x8E, 0xA4, 0x00, 0x44, 0x93, 0x92, 0x91, 0x8C, 0x30, 0x62, 0x60, 0xB2, 0x90, -+ 0x58, 0x40, 0x62, 0x11, 0x97, 0x31, 0x21, 0x11, 0x81, 0x0C, 0x28, 0x88, 0x09, 0x07, 0x42, 0x88, 0x40, 0x6C, 0xC0, 0x96, 0x28, 0x81, 0x28, 0x8A, 0xC0, 0x12, 0x0C, 0x93, 0x48, 0x4C, 0x89, 0x82, -+ 0x25, 0xD8, 0x00, 0x22, 0x24, 0x45, 0x41, 0x1B, 0x95, 0x2C, 0xA0, 0x92, 0x61, 0x84, 0xA2, 0x70, 0x59, 0x86, 0x10, 0x0B, 0x87, 0x08, 0x10, 0x98, 0x61, 0xD3, 0x40, 0x0D, 0x40, 0xB0, 0x8D, 0x09, -+ 0x05, 0x71, 0x60, 0x84, 0x70, 0x18, 0x80, 0x61, 0x1A, 0x16, 0x2E, 0x63, 0x32, 0x06, 0x80, 0x80, 0x88, 0x50, 0xC6, 0x8C, 0x00, 0x10, 0x24, 0xC1, 0x00, 0x26, 0x94, 0x90, 0x48, 0x44, 0xB6, 0x29, -+ 0x1A, 0x35, 0x48, 0xD3, 0xB0, 0x91, 0x21, 0xA4, 0x08, 0x11, 0x34, 0x32, 0x03, 0x01, 0x05, 0x21, 0x32, 0x46, 0x1B, 0x31, 0x31, 0x1B, 0x86, 0x0C, 0x1A, 0x28, 0x0D, 0xD1, 0x08, 0x28, 0x8B, 0xA8, -+ 0x0D, 0x98, 0x90, 0x05, 0xD0, 0xA8, 0x29, 0x83, 0x48, 0x71, 0x03, 0x33, 0x80, 0x24, 0x90, 0x68, 0xD1, 0xA0, 0x2C, 0x23, 0x10, 0x4D, 0x12, 0x95, 0x11, 0xE4, 0x14, 0x21, 0x14, 0x39, 0x4E, 0x12, -+ 0x01, 0x70, 0x0C, 0x25, 0x71, 0x24, 0x83, 0x89, 0x54, 0x30, 0x06, 0x11, 0x90, 0x45, 0x12, 0x03, 0x04, 0x59, 0xB0, 0x4C, 0x20, 0x36, 0x8A, 0x19, 0x30, 0x72, 0x98, 0x94, 0x4C, 0x14, 0x81, 0x40, -+ 0xA2, 0xC6, 0x84, 0xCB, 0xA2, 0x48, 0x0C, 0xC1, 0x2D, 0x8A, 0xC4, 0x05, 0x42, 0x94, 0x45, 0x5B, 0xB4, 0x08, 0xDB, 0x18, 0x24, 0x88, 0x20, 0x90, 0x1B, 0xC3, 0x50, 0xA1, 0x96, 0x4D, 0x0B, 0x31, -+ 0x6D, 0x93, 0x26, 0x46, 0x00, 0x35, 0x52, 0x01, 0x13, 0x42, 0xDA, 0x46, 0x6A, 0x1A, 0x34, 0x01, 0x40, 0x92, 0x41, 0xC0, 0x08, 0x66, 0xE3, 0x94, 0x01, 0x63, 0x28, 0x69, 0x0C, 0x25, 0x31, 0x0B, -+ 0x21, 0x24, 0x43, 0xA2, 0x30, 0xD3, 0x22, 0x44, 0xCB, 0x36, 0x71, 0x02, 0x02, 0x42, 0x1A, 0xC1, 0x2C, 0x20, 0x23, 0x80, 0x8B, 0xA8, 0x85, 0x88, 0x08, 0x4A, 0x94, 0x10, 0x48, 0x18, 0x81, 0x29, -+ 0xE2, 0xB4, 0x4C, 0x89, 0x88, 0x51, 0xC9, 0x06, 0x09, 0xD3, 0x96, 0x71, 0x54, 0xB0, 0x91, 0x53, 0x86, 0x04, 0x53, 0xC4, 0x44, 0x81, 0x98, 0x11, 0x88, 0x20, 0x04, 0xA0, 0x16, 0x0A, 0x49, 0xA0, -+ 0x10, 0x1A, 0x17, 0x44, 0x21, 0x26, 0x66, 0xE0, 0xC0, 0x09, 0x59, 0x90, 0x8C, 0x93, 0x10, 0x49, 0x00, 0x85, 0x65, 0x4C, 0xC6, 0x0D, 0x00, 0x18, 0x30, 0x1B, 0x12, 0x6E, 0x10, 0x02, 0x45, 0xA2, -+ 0x12, 0x49, 0x22, 0xC8, 0x20, 0x03, 0xC5, 0x48, 0x12, 0x04, 0x52, 0xA1, 0x88, 0x25, 0x40, 0xB2, 0x4D, 0x4B, 0x38, 0x28, 0x23, 0xB2, 0x64, 0xC2, 0x38, 0x90, 0x09, 0x46, 0x92, 0x0C, 0x90, 0x0D, -+ 0x04, 0x06, 0x0C, 0x4C, 0x16, 0x2D, 0x08, 0x10, 0x49, 0x20, 0x47, 0x65, 0x50, 0x28, 0x29, 0x1A, 0x88, 0x80, 0x40, 0x30, 0x6D, 0x88, 0x36, 0x70, 0x63, 0x98, 0x71, 0x99, 0x96, 0x2C, 0x1B, 0x91, -+ 0x61, 0x61, 0x40, 0x06, 0x13, 0x35, 0x04, 0x09, 0x08, 0x8E, 0x54, 0xB8, 0x44, 0x81, 0x30, 0x08, 0xC8, 0x10, 0x2C, 0x5A, 0xB0, 0x04, 0x42, 0x46, 0x61, 0x20, 0x03, 0x88, 0x91, 0xA0, 0x91, 0x81, -+ 0x10, 0x4D, 0x12, 0xB7, 0x81, 0x20, 0x42, 0x02, 0x54, 0x94, 0x24, 0x59, 0xC4, 0x25, 0x8C, 0x44, 0x70, 0xE3, 0x32, 0x8E, 0x9A, 0x02, 0x60, 0xE4, 0xA6, 0x21, 0x4A, 0xB2, 0x85, 0x93, 0x36, 0x20, -+ }, -+ .s2_len = 768, -+ .s2 = { -+ 0x01, 0x05, 0x32, 0x11, 0x44, 0x66, 0xE2, 0x06, 0x40, 0x14, 0x49, 0x6C, 0x0B, 0x86, 0x80, 0x02, 0x47, 0x26, 0xD2, 0xB2, 0x25, 0x58, 0x48, 0x0E, 0x58, 0x44, 0x11, 0xD1, 0x44, 0x50, 0x51, 0xB8, -+ 0x81, 0xC4, 0xA0, 0x48, 0x10, 0xC9, 0x50, 0x08, 0x98, 0x88, 0xD8, 0x28, 0x2A, 0x52, 0xC0, 0x4D, 0xD1, 0x38, 0x12, 0xD8, 0x46, 0x89, 0x00, 0x94, 0x00, 0xDA, 0xC4, 0x45, 0x9B, 0x44, 0x6E, 0x0B, -+ 0x44, 0x0C, 0xC0, 0xC0, 0x01, 0x20, 0xC1, 0x0C, 0xC0, 0x04, 0x4C, 0x08, 0x24, 0x21, 0x23, 0xC7, 0x65, 0x03, 0xA0, 0x80, 0x91, 0xC2, 0x50, 0x21, 0x10, 0x31, 0x99, 0x36, 0x00, 0x64, 0x28, 0x70, -+ 0x81, 0x38, 0x05, 0x4A, 0x18, 0x80, 0x1C, 0x89, 0x24, 0x08, 0x95, 0x49, 0x24, 0x39, 0x40, 0x24, 0x15, 0x22, 0xD9, 0x32, 0x90, 0x23, 0x24, 0x71, 0xC4, 0x46, 0x50, 0xCB, 0x86, 0x65, 0xE4, 0x94, -+ 0x8C, 0x42, 0x04, 0x82, 0x8A, 0x86, 0x71, 0x13, 0xA3, 0x00, 0xDB, 0x44, 0x04, 0x23, 0x82, 0x10, 0x23, 0x46, 0x26, 0x0B, 0x08, 0x08, 0x60, 0x16, 0x11, 0xA4, 0xB6, 0x24, 0xE1, 0x32, 0x69, 0x04, -+ 0x17, 0x86, 0xE3, 0x84, 0x2C, 0x9C, 0x32, 0x41, 0x92, 0xC8, 0x61, 0x5A, 0x32, 0x26, 0x24, 0xC3, 0x29, 0x5A, 0xC8, 0x05, 0x0A, 0x06, 0x8E, 0xE1, 0x16, 0x20, 0x99, 0x94, 0x61, 0x19, 0xA2, 0x0C, -+ 0x1B, 0x05, 0x2E, 0x1B, 0x44, 0x64, 0x9A, 0x00, 0x84, 0x8C, 0x18, 0x52, 0x84, 0xB4, 0x60, 0x82, 0x20, 0x08, 0x42, 0x48, 0x09, 0x84, 0x08, 0x46, 0x11, 0x00, 0x46, 0x13, 0x43, 0x01, 0xE1, 0x06, -+ 0x91, 0x1B, 0x44, 0x8E, 0x01, 0x94, 0x64, 0x4A, 0x12, 0x09, 0x98, 0x38, 0x0E, 0xE4, 0x06, 0x25, 0x24, 0x13, 0x68, 0x13, 0x21, 0x06, 0x04, 0xB9, 0x40, 0x54, 0x24, 0x25, 0x14, 0x88, 0x69, 0x82, -+ 0x38, 0x01, 0xA4, 0x28, 0x72, 0x50, 0x86, 0x61, 0x23, 0xB1, 0x88, 0xA2, 0x90, 0x08, 0x1C, 0x95, 0x30, 0x1C, 0x40, 0x82, 0x49, 0xC8, 0x64, 0xCA, 0x04, 0x40, 0x44, 0x98, 0x21, 0x0B, 0x24, 0x61, -+ 0x1C, 0xA0, 0x4C, 0x09, 0xA4, 0x21, 0xC9, 0x08, 0x8A, 0x22, 0x13, 0x41, 0x80, 0xC8, 0x89, 0x23, 0xB1, 0x64, 0x1C, 0x11, 0x49, 0x40, 0xA2, 0x29, 0x61, 0xC8, 0x8C, 0x8B, 0x96, 0x91, 0x83, 0x02, -+ 0x42, 0xE1, 0xB6, 0x85, 0x51, 0x86, 0x4C, 0x04, 0x43, 0x91, 0x4B, 0xB8, 0x69, 0x50, 0x24, 0x81, 0xC8, 0x04, 0x2E, 0x1B, 0xB9, 0x31, 0x93, 0x24, 0x00, 0x23, 0x86, 0x81, 0xC2, 0xB8, 0x61, 0x09, -+ 0x00, 0x62, 0x14, 0x99, 0x41, 0x19, 0x37, 0x6E, 0x1C, 0x16, 0x30, 0x0A, 0x27, 0x45, 0x51, 0x10, 0x0D, 0x1C, 0x33, 0x4A, 0x10, 0x40, 0x80, 0xA0, 0x34, 0x62, 0xD8, 0x44, 0x4A, 0x01, 0x06, 0x45, -+ 0x23, 0x83, 0x8C, 0x24, 0xA4, 0x85, 0x01, 0x04, 0x0C, 0x09, 0x03, 0x32, 0xDB, 0x90, 0x09, 0x4A, 0x14, 0x42, 0x01, 0x08, 0x21, 0x22, 0x08, 0x66, 0x8B, 0x28, 0x70, 0x24, 0x38, 0x31, 0x0C, 0x46, -+ 0x69, 0x43, 0x44, 0x69, 0x9A, 0x34, 0x4D, 0x82, 0xC8, 0x40, 0x42, 0x42, 0x01, 0x23, 0xC7, 0x29, 0x91, 0x32, 0x72, 0x1B, 0x36, 0x4C, 0x1B, 0x33, 0x05, 0x13, 0x35, 0x61, 0x14, 0x02, 0x46, 0x08, -+ 0x03, 0x65, 0x21, 0x87, 0x20, 0x09, 0x03, 0x91, 0xC1, 0xC4, 0x25, 0xE2, 0xA6, 0x4C, 0x81, 0x14, 0x48, 0x20, 0x25, 0x4D, 0x03, 0x19, 0x69, 0xA3, 0x00, 0x69, 0x54, 0xA8, 0x30, 0x9C, 0x86, 0x05, -+ 0x9C, 0x36, 0x82, 0x03, 0x37, 0x0C, 0x0A, 0x15, 0x50, 0x9C, 0xC0, 0x91, 0x04, 0xB6, 0x91, 0x0C, 0x11, 0x80, 0x09, 0xB5, 0x70, 0x63, 0x20, 0x92, 0x44, 0x22, 0x71, 0xC1, 0x48, 0x44, 0x98, 0xC4, -+ 0x6D, 0x64, 0xA6, 0x89, 0x0A, 0xA9, 0x40, 0x04, 0xB8, 0x50, 0x04, 0x34, 0x8C, 0xE2, 0xC4, 0x80, 0x02, 0x00, 0x12, 0xA3, 0x36, 0x46, 0xD2, 0x00, 0x01, 0x1C, 0x45, 0x46, 0x22, 0x33, 0x6D, 0x81, -+ 0x92, 0x01, 0x08, 0x12, 0x86, 0x9C, 0x04, 0x51, 0xA3, 0x98, 0x30, 0x48, 0x10, 0x91, 0x19, 0xA0, 0x44, 0xC3, 0x04, 0x8D, 0x42, 0x90, 0x40, 0x43, 0x80, 0x44, 0xA4, 0x46, 0x71, 0x0B, 0xA2, 0x60, -+ 0x52, 0x18, 0x6D, 0x0B, 0xB6, 0x85, 0x1B, 0xB2, 0x0C, 0x94, 0x12, 0x09, 0x04, 0xB6, 0x41, 0x18, 0xA8, 0x84, 0x10, 0x00, 0x22, 0x53, 0x42, 0x69, 0xC3, 0xA8, 0x81, 0x00, 0x25, 0x32, 0x81, 0x16, -+ 0x28, 0x81, 0x44, 0x2D, 0xD4, 0xB4, 0x4D, 0x08, 0xC8, 0x45, 0x5A, 0x04, 0x01, 0xC1, 0x90, 0x50, 0x22, 0x14, 0x82, 0x63, 0xC6, 0x6D, 0x04, 0x22, 0x72, 0x1C, 0xB9, 0x44, 0x9B, 0x46, 0x0D, 0xC2, -+ 0x14, 0x22, 0x91, 0xB0, 0x44, 0x21, 0x89, 0x68, 0xC4, 0x96, 0x08, 0x0A, 0xB9, 0x8C, 0x22, 0xB9, 0x40, 0xE2, 0x26, 0x50, 0x8C, 0x88, 0x25, 0xCB, 0xB8, 0x04, 0x54, 0x16, 0x25, 0x63, 0x34, 0x0C, -+ 0x24, 0xB0, 0x29, 0xA3, 0x44, 0x20, 0x43, 0x46, 0x40, 0x9C, 0x02, 0x48, 0x5A, 0xC8, 0x2C, 0x00, 0x05, 0x31, 0x09, 0x18, 0x00, 0xDB, 0x46, 0x51, 0xD2, 0xB6, 0x2C, 0x44, 0x40, 0x88, 0x9A, 0x96, -+ 0x24, 0x12, 0xA5, 0x90, 0x04, 0x39, 0x86, 0x10, 0x80, 0x2D, 0x10, 0x99, 0x21, 0x60, 0x06, 0x66, 0x21, 0x89, 0x4C, 0x91, 0x04, 0x60, 0x23, 0xB9, 0x01, 0x12, 0x11, 0x48, 0x12, 0x29, 0x51, 0xA1, -+ 0x06, 0x45, 0x44, 0x22, 0x12, 0x03, 0x27, 0x8E, 0x23, 0x94, 0x84, 0x0C, 0x29, 0x06, 0x94, 0x86, 0x50, 0xE0, 0x48, 0x10, 0x24, 0x26, 0x40, 0x61, 0x04, 0x66, 0x9C, 0xB2, 0x84, 0x54, 0xC2, 0x2C, -+ }, -+ .t0_len = 3584, -+ .t0 = { -+ 0xD6, 0xD4, 0x27, 0x24, 0xCA, 0xFD, 0xF2, 0x81, 0xB9, 0xCA, 0xDC, 0x58, 0x04, 0x84, 0x83, 0x95, 0x49, 0x25, 0x4C, 0x9B, 0xE0, 0xA1, 0xF9, 0xAA, 0x9D, 0x76, 0xE6, 0x54, 0x63, 0xCD, 0x83, 0x14, -+ 0x20, 0x65, 0xE7, 0xF7, 0x47, 0xBD, 0x27, 0x4C, 0xF3, 0x7E, 0x85, 0x70, 0xE0, 0xE6, 0x3A, 0xDB, 0xF8, 0x5F, 0x31, 0x79, 0x14, 0x75, 0xFF, 0x1A, 0x2F, 0x50, 0x5B, 0x53, 0x24, 0x77, 0x2C, 0xB0, -+ 0xEB, 0x21, 0x9E, 0x2C, 0x28, 0xC4, 0xEF, 0xBC, 0x31, 0xE7, 0x13, 0xDF, 0x18, 0x77, 0x25, 0xB7, 0xBD, 0xE2, 0x90, 0xE6, 0x08, 0x98, 0x5B, 0x7D, 0x8A, 0x71, 0x14, 0x42, 0xD4, 0x03, 0xD2, 0x56, -+ 0xF5, 0x35, 0xA4, 0x27, 0x1F, 0x6C, 0xC6, 0x5F, 0x91, 0xF1, 0xA7, 0x3F, 0x3B, 0x33, 0x94, 0x83, 0x3D, 0xF0, 0x12, 0x79, 0xDC, 0x71, 0xFB, 0x60, 0xBD, 0x14, 0x13, 0xBF, 0x23, 0xBA, 0x3A, 0x20, -+ 0xC7, 0x15, 0xC1, 0x30, 0xDA, 0x19, 0x2D, 0x05, 0x1F, 0xF6, 0xEA, 0x7E, 0xDD, 0xBB, 0x81, 0xDB, 0xC4, 0xBE, 0xBA, 0xF6, 0x71, 0x41, 0x23, 0x6E, 0x5D, 0x9E, 0x09, 0x93, 0xFB, 0x7D, 0xC7, 0x06, -+ 0x44, 0x83, 0xDA, 0x06, 0x99, 0xE8, 0x40, 0x21, 0x76, 0xC6, 0xB2, 0x0F, 0x24, 0x0D, 0x35, 0x87, 0xBC, 0x1B, 0x07, 0x3C, 0x9A, 0xA0, 0x09, 0xCB, 0xC1, 0xB0, 0x5F, 0x49, 0xCC, 0xBB, 0x25, 0x13, -+ 0x12, 0x96, 0x92, 0xDF, 0x1C, 0xEC, 0xDA, 0x29, 0x54, 0xCC, 0xEC, 0xC1, 0x7B, 0xBB, 0x1D, 0x11, 0x96, 0x4F, 0xAE, 0xB0, 0xF9, 0xE0, 0x29, 0x21, 0x29, 0x59, 0xB6, 0x8E, 0x4B, 0xE0, 0x66, 0x64, -+ 0xF9, 0x58, 0x74, 0x32, 0xC0, 0x2D, 0xE6, 0x15, 0x88, 0x51, 0x55, 0x57, 0x56, 0x5A, 0x26, 0xA6, 0xEC, 0xD6, 0xB4, 0xDE, 0x47, 0xF0, 0xB6, 0x47, 0x63, 0x77, 0x81, 0xEC, 0x19, 0x49, 0x32, 0xD2, -+ 0x82, 0xFF, 0x1F, 0x83, 0x5E, 0xB8, 0x09, 0x66, 0xAB, 0xA2, 0x16, 0xB4, 0xE7, 0xF8, 0x8E, 0xAB, 0x97, 0x05, 0x21, 0x26, 0x4D, 0xB5, 0xD6, 0xF2, 0x83, 0xA4, 0xF6, 0x79, 0x1E, 0x32, 0x9F, 0xB8, -+ 0xCB, 0x54, 0x25, 0xB9, 0x13, 0x9E, 0x96, 0xAB, 0xB3, 0x94, 0x4E, 0x35, 0xBB, 0x88, 0x64, 0x2A, 0xC0, 0xE7, 0xDC, 0xDA, 0xB9, 0xB5, 0x59, 0xD0, 0x9E, 0x29, 0x55, 0x72, 0xB2, 0x52, 0x92, 0xC0, -+ 0x3C, 0xD5, 0xAB, 0x5E, 0x7B, 0xBE, 0x77, 0x61, 0xD8, 0x58, 0x3F, 0xAD, 0x91, 0x66, 0x91, 0x3F, 0xDE, 0x1B, 0x65, 0x8F, 0x87, 0x26, 0xC3, 0xF7, 0xE6, 0xD2, 0x65, 0x63, 0x17, 0xDA, 0xAF, 0xB9, -+ 0x2E, 0x78, 0x7D, 0x24, 0xC5, 0xD8, 0x94, 0x7F, 0xF5, 0x95, 0xA5, 0x85, 0x3D, 0x61, 0x11, 0x73, 0xDF, 0x20, 0xF0, 0xAE, 0x01, 0x50, 0x75, 0x8C, 0x6B, 0x13, 0x1D, 0xFD, 0xEF, 0x36, 0xA0, 0x1D, -+ 0x7C, 0x87, 0x4D, 0x0B, 0x8C, 0xD0, 0xC2, 0x53, 0x83, 0x56, 0x94, 0x06, 0xCB, 0xE4, 0x2A, 0x72, 0xD7, 0x09, 0x7E, 0x84, 0xD9, 0x82, 0x58, 0x39, 0xEB, 0xD1, 0x4F, 0x17, 0x5E, 0xD5, 0x1E, 0x6A, -+ 0xC1, 0xA3, 0xF7, 0xF7, 0xBE, 0xFF, 0x60, 0xF5, 0xC0, 0x72, 0x73, 0x42, 0xD7, 0xDD, 0x34, 0x76, 0xDC, 0x9A, 0xE0, 0xE2, 0x7E, 0xDB, 0xB8, 0x86, 0xBF, 0xA0, 0x0D, 0x36, 0xFE, 0x80, 0xDA, 0x81, -+ 0x6A, 0x45, 0xE0, 0xC8, 0x00, 0x0B, 0x6E, 0x23, 0xE9, 0xB5, 0xCA, 0xD0, 0x13, 0xB6, 0xDE, 0xBF, 0x74, 0x9E, 0xB7, 0x27, 0xB8, 0xD8, 0x3B, 0xFE, 0x26, 0xF6, 0xC5, 0x99, 0xD5, 0xBD, 0x45, 0xB5, -+ 0x82, 0xB8, 0x4F, 0x4F, 0xC8, 0x34, 0x10, 0xEE, 0x2A, 0x67, 0x5C, 0x66, 0x14, 0x5F, 0x52, 0xCF, 0x36, 0x83, 0x29, 0x0C, 0xC7, 0x2A, 0x29, 0x28, 0x5D, 0x70, 0x66, 0x7A, 0x3A, 0x31, 0x58, 0x93, -+ 0x54, 0xD9, 0x19, 0x31, 0x62, 0x5F, 0xFA, 0xCF, 0xB7, 0xE0, 0x2C, 0x03, 0xFE, 0x48, 0x09, 0x2A, 0x12, 0x0E, 0x5F, 0x43, 0x12, 0x76, 0xE8, 0x37, 0x4D, 0xBE, 0x15, 0x40, 0x96, 0xC8, 0x6C, 0x58, -+ 0x79, 0x10, 0xF5, 0x05, 0x1A, 0x86, 0x14, 0x17, 0xC0, 0x6A, 0x73, 0x48, 0x0C, 0xE3, 0x19, 0x5C, 0xC9, 0x99, 0xF6, 0xB8, 0xB3, 0x01, 0x9B, 0x22, 0x37, 0x96, 0xC5, 0xE1, 0x1F, 0x73, 0x42, 0xC9, -+ 0x74, 0x6A, 0xED, 0xBF, 0xA9, 0x44, 0xCD, 0x79, 0xB8, 0x5C, 0x10, 0x00, 0x07, 0xBB, 0x58, 0x69, 0x84, 0x3A, 0x23, 0xAD, 0x06, 0xD8, 0x1F, 0x5C, 0xB2, 0x9D, 0xD1, 0x7B, 0xCE, 0xE7, 0x55, 0x72, -+ 0xB9, 0xE0, 0xCF, 0xDB, 0xD5, 0xA8, 0x3A, 0x30, 0x57, 0x44, 0x2D, 0xF0, 0x00, 0xDA, 0x7A, 0x3A, 0xA6, 0xFC, 0x5F, 0xB2, 0x89, 0xA1, 0x29, 0x99, 0x24, 0xD9, 0x23, 0x1F, 0xE1, 0xD0, 0xCF, 0x3C, -+ 0x17, 0xF1, 0x80, 0x3F, 0x61, 0x43, 0xC0, 0x97, 0xF9, 0x54, 0x2C, 0x9A, 0xBB, 0x8F, 0x98, 0x77, 0xE4, 0xAE, 0xC5, 0x4A, 0xB9, 0x39, 0x93, 0xDC, 0x49, 0x87, 0xDF, 0x67, 0x80, 0x8B, 0xF7, 0xBE, -+ 0xDE, 0xA8, 0x6B, 0x5C, 0x83, 0xD2, 0x48, 0xE9, 0x5E, 0xA3, 0x02, 0x45, 0x3F, 0x5F, 0x6B, 0x7F, 0xF5, 0xB5, 0xF5, 0x8B, 0x65, 0xD9, 0x32, 0xD2, 0xBF, 0x73, 0x7C, 0x51, 0x89, 0x3D, 0x89, 0xF0, -+ 0x7D, 0xA5, 0xBF, 0xEA, 0x79, 0xD7, 0xE7, 0xFB, 0x2A, 0xAB, 0x82, 0x33, 0xA2, 0x7E, 0xB4, 0x4C, 0x68, 0x58, 0x05, 0x1D, 0x92, 0xB9, 0x98, 0xBC, 0x47, 0x51, 0xA4, 0x90, 0x2A, 0xA2, 0x22, 0xDE, -+ 0x2D, 0x5C, 0xDC, 0xEC, 0x26, 0xB3, 0x6D, 0xBA, 0x47, 0xCC, 0xEB, 0x41, 0xFB, 0x19, 0x2D, 0xDF, 0xFD, 0x55, 0x12, 0xD8, 0x2B, 0x1B, 0xD3, 0x4D, 0x1E, 0xAA, 0x42, 0xF8, 0xCC, 0x50, 0x3F, 0x23, -+ 0x85, 0x92, 0x42, 0x07, 0x9C, 0xBC, 0x1A, 0x55, 0xF0, 0x95, 0xAB, 0xB3, 0xC1, 0x87, 0x9F, 0xD1, 0xB4, 0x85, 0x04, 0xD8, 0x05, 0x4C, 0x15, 0xEB, 0x3E, 0xBF, 0x54, 0xA3, 0x2C, 0x5B, 0x62, 0xC0, -+ 0x55, 0x55, 0xE4, 0xAC, 0x60, 0x36, 0x91, 0x9B, 0xB9, 0xA1, 0xBB, 0x53, 0x9E, 0x78, 0x86, 0x7A, 0x74, 0xF5, 0x3C, 0x23, 0xB1, 0xA1, 0x35, 0x98, 0x7D, 0x8B, 0xDD, 0x63, 0xE0, 0x92, 0xAB, 0x2B, -+ 0xF1, 0xD8, 0xF6, 0x60, 0x38, 0xE1, 0x49, 0xAE, 0x41, 0x0B, 0x09, 0xAB, 0x25, 0xB4, 0xFE, 0x65, 0x53, 0xB3, 0x0E, 0x7B, 0xA7, 0xBF, 0x01, 0x36, 0x36, 0x8E, 0x3B, 0x8B, 0x73, 0x23, 0xA1, 0x24, -+ 0x89, 0x02, 0x94, 0x7B, 0x2A, 0x39, 0x85, 0xB5, 0xC5, 0xCB, 0x80, 0x27, 0xAE, 0xF8, 0xA9, 0xE3, 0x42, 0xA3, 0xB7, 0x54, 0x3C, 0x31, 0x54, 0x72, 0x49, 0xFC, 0x77, 0x7C, 0x59, 0x2A, 0x31, 0xB8, -+ 0x5B, 0x4B, 0x07, 0xE0, 0xAD, 0x87, 0x61, 0x2C, 0x3D, 0xF4, 0x9B, 0x9E, 0xB6, 0x6A, 0x53, 0xF4, 0x11, 0xC6, 0xD6, 0xDE, 0x9F, 0x26, 0x86, 0x95, 0x07, 0x74, 0x80, 0x6A, 0xD0, 0xCE, 0xBF, 0x25, -+ 0x4C, 0x18, 0x2F, 0x3A, 0x5D, 0xF9, 0xE4, 0x29, 0xF0, 0x79, 0x2E, 0x96, 0x35, 0x95, 0xB8, 0x42, 0x6B, 0xB0, 0xCB, 0x53, 0x62, 0x75, 0x36, 0x26, 0x5C, 0x4F, 0x63, 0x46, 0xB4, 0xB0, 0x72, 0xEA, -+ 0xB4, 0xD1, 0xE6, 0x87, 0xA4, 0xDE, 0x7B, 0x82, 0x89, 0x90, 0xEB, 0xF3, 0x38, 0x1F, 0x0B, 0x70, 0xE9, 0x26, 0xD6, 0x7B, 0x76, 0x89, 0x73, 0xF1, 0x02, 0x40, 0x80, 0xBD, 0x40, 0xC6, 0x7B, 0x81, -+ 0x04, 0x09, 0x34, 0xD1, 0xC3, 0xC3, 0x77, 0x4D, 0xDE, 0x93, 0x28, 0xBE, 0x69, 0xBB, 0xD5, 0xDF, 0xE3, 0xF2, 0x80, 0xDB, 0x77, 0xFF, 0xC1, 0xA7, 0x8D, 0x11, 0x13, 0x34, 0xB4, 0x21, 0x97, 0x00, -+ 0x2B, 0xD8, 0x5C, 0xD7, 0xCD, 0xF7, 0xCB, 0xB6, 0xED, 0x3F, 0x41, 0xCB, 0xB9, 0xAD, 0x48, 0x1F, 0x44, 0xA3, 0x35, 0x11, 0x55, 0xA5, 0x22, 0x35, 0x0A, 0x65, 0x8F, 0x69, 0x92, 0x11, 0xD7, 0xAA, -+ 0x5E, 0x68, 0xA5, 0x27, 0x94, 0x76, 0xC0, 0x0B, 0xD9, 0xEE, 0x01, 0x0C, 0xEC, 0x6E, 0x51, 0x02, 0xD2, 0x70, 0x54, 0xC9, 0x74, 0xD1, 0x6B, 0xE4, 0xA6, 0xC6, 0x85, 0x99, 0xAE, 0x83, 0x01, 0x9C, -+ 0xB1, 0x32, 0x4E, 0x35, 0x10, 0x4F, 0x10, 0x5A, 0x59, 0xE6, 0xCF, 0x07, 0x67, 0x30, 0xF3, 0x3A, 0x03, 0xED, 0xD7, 0xC9, 0x2E, 0x07, 0x36, 0xB5, 0x42, 0x98, 0x79, 0x0C, 0xA8, 0xD5, 0x28, 0x72, -+ 0x74, 0x28, 0x23, 0x73, 0x19, 0x9E, 0x90, 0xB9, 0x49, 0x13, 0xB9, 0x9C, 0x06, 0xD7, 0xD5, 0xB6, 0xC4, 0x18, 0xF5, 0x5B, 0x66, 0x14, 0x13, 0x31, 0x13, 0x0E, 0x6B, 0xD5, 0x61, 0x52, 0xB8, 0xDB, -+ 0x19, 0xB2, 0xFB, 0x1B, 0xB6, 0x5C, 0x8D, 0x21, 0xFC, 0xD4, 0xBE, 0x45, 0x1A, 0x4A, 0x1C, 0x0F, 0xEE, 0x73, 0xDB, 0xC3, 0x55, 0x7D, 0x36, 0x2C, 0x45, 0x3D, 0x8E, 0x6A, 0x43, 0xE9, 0x9E, 0x47, -+ 0x97, 0xD1, 0xF2, 0x5B, 0x1A, 0x58, 0x98, 0x14, 0x81, 0x1D, 0x66, 0xB7, 0x31, 0xA7, 0x5E, 0x99, 0x3F, 0xF1, 0xD3, 0xBC, 0x42, 0x11, 0xF8, 0xC1, 0x51, 0x0B, 0x90, 0x40, 0x50, 0x68, 0x94, 0xB8, -+ 0x6B, 0xA9, 0xFB, 0xA3, 0x55, 0x49, 0x61, 0xDF, 0x34, 0xFD, 0xB7, 0x65, 0x5F, 0xD9, 0x28, 0x37, 0x8B, 0x4E, 0x65, 0x00, 0x14, 0x77, 0xD1, 0xFC, 0xF1, 0x8C, 0xB7, 0x1C, 0x5E, 0x41, 0x71, 0x69, -+ 0x6F, 0x33, 0xB2, 0xB6, 0x76, 0x30, 0x38, 0xD5, 0x12, 0xAC, 0xB0, 0xF7, 0xFE, 0xEE, 0x76, 0xF0, 0xFB, 0x16, 0x4E, 0x30, 0xFE, 0xB7, 0xD6, 0x37, 0xB3, 0xAB, 0x1E, 0x7F, 0x25, 0x1E, 0xF8, 0xC0, -+ 0x54, 0x31, 0x46, 0x1C, 0x3A, 0xB9, 0x0F, 0x05, 0x7D, 0xA0, 0xF4, 0xD8, 0xC3, 0xB3, 0x78, 0x7A, 0xE5, 0x8C, 0xB0, 0x13, 0x6D, 0x68, 0xAC, 0xB6, 0x40, 0x7B, 0xCF, 0x67, 0x16, 0x20, 0x72, 0x3A, -+ 0x02, 0x30, 0xD4, 0xF7, 0xDD, 0x7A, 0xDE, 0x77, 0x0C, 0x41, 0x8F, 0xCA, 0xD9, 0x97, 0x8F, 0x7C, 0x96, 0x22, 0x26, 0xCA, 0x6D, 0x65, 0x79, 0xBA, 0xDC, 0x67, 0x52, 0x23, 0x7C, 0x99, 0xD2, 0x4C, -+ 0xA8, 0x04, 0xE9, 0xF1, 0xFC, 0xDC, 0x9A, 0xAA, 0x11, 0x1F, 0x2C, 0x90, 0x5E, 0xF0, 0x31, 0x69, 0x0D, 0x17, 0x65, 0xE8, 0x21, 0x93, 0x8A, 0x0B, 0x78, 0x46, 0xC3, 0xBB, 0x80, 0xDB, 0xEF, 0x95, -+ 0x30, 0xC6, 0x8C, 0xAA, 0x0A, 0xDA, 0x96, 0x2A, 0x59, 0x5F, 0xD9, 0xE7, 0xAB, 0xD9, 0xE1, 0xF7, 0x6F, 0xF2, 0x97, 0xE1, 0x78, 0x50, 0x54, 0x13, 0xEE, 0x95, 0xFC, 0x0A, 0x95, 0x8D, 0x72, 0x0C, -+ 0x2A, 0x23, 0x86, 0xA1, 0x64, 0x50, 0xF9, 0x7D, 0xE5, 0x8E, 0xE2, 0x27, 0xBF, 0xA3, 0x3C, 0xAA, 0xC0, 0x3F, 0x13, 0x5A, 0x83, 0x45, 0x46, 0x9F, 0x26, 0xC7, 0x70, 0x26, 0x91, 0x5E, 0xE2, 0x0F, -+ 0xBD, 0x82, 0xB0, 0x9B, 0x02, 0xFE, 0xA7, 0x7A, 0xBC, 0xFB, 0x9D, 0xA8, 0x94, 0xD8, 0x67, 0x6E, 0x16, 0x0F, 0x1E, 0x1C, 0xEA, 0x42, 0x0B, 0x2C, 0xFE, 0x14, 0xFF, 0x08, 0xE1, 0x65, 0x0D, 0x56, -+ 0x5B, 0x6C, 0xDF, 0x6A, 0xD7, 0xEE, 0x51, 0x3D, 0xC1, 0xE7, 0x34, 0x30, 0x96, 0xDD, 0x26, 0x5C, 0x45, 0x9F, 0xA1, 0x7C, 0x55, 0xE5, 0xD6, 0xC6, 0x38, 0x28, 0xBC, 0xC4, 0xB7, 0x2A, 0x2A, 0x02, -+ 0x7C, 0x31, 0xD2, 0x43, 0x8A, 0x7B, 0xFF, 0x42, 0x77, 0x3F, 0xED, 0x94, 0x35, 0xC3, 0xC6, 0xED, 0x66, 0x4D, 0x35, 0x41, 0x86, 0x58, 0xCB, 0x13, 0x37, 0x43, 0xF4, 0x82, 0x73, 0x2F, 0x6F, 0xB2, -+ 0xC8, 0x9C, 0x68, 0x00, 0x05, 0x20, 0x9D, 0xFB, 0xEE, 0xAB, 0x70, 0x2A, 0x39, 0x11, 0xA8, 0x7D, 0xD5, 0x5E, 0xF3, 0x9F, 0x40, 0x93, 0x70, 0xBE, 0x94, 0x88, 0x84, 0x42, 0xB0, 0x8D, 0xB3, 0x37, -+ 0x08, 0xBC, 0xB3, 0x1A, 0x14, 0x07, 0x30, 0x3B, 0x4F, 0xED, 0xF3, 0x11, 0xC1, 0x52, 0x63, 0x57, 0x9F, 0x81, 0x74, 0x6C, 0xED, 0xFB, 0x79, 0x0C, 0xA0, 0x30, 0x4C, 0x88, 0xFC, 0xCA, 0x59, 0x56, -+ 0xE9, 0xF8, 0x19, 0xFE, 0xFF, 0xAC, 0x13, 0xC6, 0x4D, 0x96, 0xC4, 0x3C, 0x98, 0xD8, 0x8F, 0xEC, 0x8F, 0xD9, 0x83, 0xC1, 0xC5, 0x19, 0xCB, 0x88, 0x4D, 0x2E, 0x7A, 0x90, 0xCD, 0xF3, 0x65, 0xFE, -+ 0x5F, 0xB5, 0xDA, 0x8F, 0xAB, 0x74, 0xF0, 0x73, 0xBA, 0x25, 0x8D, 0x26, 0x4F, 0x94, 0x2D, 0x14, 0xD6, 0xE2, 0xE9, 0x08, 0x29, 0xAE, 0x35, 0x74, 0x6D, 0x05, 0x7A, 0x18, 0x0E, 0x56, 0x38, 0x42, -+ 0xF5, 0x4C, 0x4B, 0xC7, 0xD5, 0x00, 0x49, 0x43, 0x24, 0x72, 0xD1, 0xED, 0xF1, 0x38, 0xF2, 0xE5, 0x86, 0x26, 0xAB, 0x8C, 0x96, 0xE6, 0x00, 0xED, 0x19, 0x36, 0xF3, 0x38, 0x80, 0xF4, 0xF2, 0x20, -+ 0x1B, 0x61, 0x07, 0xC4, 0xEF, 0xB9, 0xC0, 0x2E, 0xCF, 0x31, 0x44, 0xE3, 0xAC, 0x55, 0xB0, 0xEE, 0x51, 0x68, 0xA7, 0x93, 0xB1, 0x5D, 0xB4, 0xA6, 0x1B, 0xFF, 0xFC, 0x8B, 0xE4, 0xA3, 0x80, 0x40, -+ 0xA0, 0x6C, 0x31, 0xF5, 0x15, 0x2D, 0x7C, 0x95, 0xF8, 0xC4, 0x94, 0x45, 0x12, 0x4D, 0x07, 0x20, 0x95, 0xFC, 0x14, 0xF6, 0x79, 0xDF, 0x55, 0xDC, 0x1E, 0x7F, 0xBE, 0x48, 0x83, 0xDA, 0xA3, 0x50, -+ 0xF2, 0x16, 0x98, 0xEB, 0x78, 0xB2, 0x9A, 0xDB, 0xD0, 0x71, 0x53, 0x58, 0xF9, 0x65, 0x27, 0x8A, 0xF8, 0x67, 0xC1, 0x2E, 0x2B, 0xB1, 0x9F, 0xFA, 0x16, 0x50, 0x27, 0x69, 0xF4, 0xFB, 0xDB, 0x20, -+ 0x82, 0x2D, 0x1D, 0xE1, 0xFB, 0x6E, 0x41, 0x6D, 0x82, 0x29, 0x32, 0xB5, 0xCD, 0x5B, 0x37, 0x0A, 0x58, 0x65, 0x56, 0x07, 0x56, 0xD7, 0x6D, 0x8C, 0x2F, 0xE4, 0x70, 0x4E, 0x0B, 0x15, 0x83, 0xEB, -+ 0x5D, 0x23, 0x5E, 0xC3, 0xFE, 0x7F, 0xF4, 0x98, 0xE1, 0x35, 0x61, 0x00, 0xC5, 0x80, 0x76, 0x3E, 0xB5, 0xF2, 0x36, 0x35, 0x62, 0x0C, 0xF6, 0xCC, 0x56, 0xE7, 0x4B, 0x48, 0x22, 0x3C, 0x70, 0xB5, -+ 0xE5, 0x23, 0xAC, 0x61, 0xEA, 0xAE, 0xF8, 0x8E, 0x4D, 0xD1, 0x50, 0x5D, 0x25, 0xC9, 0x65, 0x8B, 0x96, 0xE9, 0x32, 0xCE, 0x0B, 0xD0, 0xEF, 0xFE, 0x80, 0xBA, 0xA5, 0xD1, 0x05, 0xA6, 0x51, 0x4B, -+ 0x25, 0x57, 0x8D, 0x1F, 0x3F, 0xCC, 0x8F, 0xF5, 0xF9, 0x3A, 0x7C, 0xDD, 0xCC, 0xE0, 0x84, 0x0F, 0x63, 0x1B, 0xE0, 0x2B, 0xCA, 0x85, 0x20, 0x98, 0xDC, 0xFA, 0x06, 0x56, 0xF0, 0x8A, 0xF1, 0xBD, -+ 0xC8, 0xE2, 0x4A, 0x27, 0x46, 0x74, 0x16, 0xF4, 0x87, 0xAD, 0x02, 0x60, 0x22, 0xDD, 0x5E, 0x1E, 0x1E, 0xFD, 0xC9, 0xC2, 0xB4, 0x71, 0xE3, 0x26, 0x53, 0x65, 0xF2, 0x0B, 0xC8, 0x21, 0x86, 0x37, -+ 0x66, 0x25, 0x5D, 0x0A, 0xAC, 0x67, 0xB6, 0x58, 0xE6, 0x63, 0x3F, 0xD2, 0xC9, 0x3F, 0x80, 0xE5, 0x55, 0x5C, 0x6B, 0x3F, 0x9B, 0x9C, 0x54, 0x02, 0x62, 0xF9, 0x2E, 0x57, 0x5E, 0xCA, 0x8C, 0xBD, -+ 0xDE, 0xA2, 0x5E, 0x35, 0x59, 0x9F, 0xAF, 0xE0, 0x90, 0x20, 0x1D, 0x53, 0x1A, 0x96, 0xA6, 0x59, 0x5F, 0x6B, 0xC0, 0xA0, 0x83, 0x47, 0xF4, 0x54, 0xFC, 0x12, 0x6A, 0x16, 0x21, 0x64, 0xA0, 0xD5, -+ 0x07, 0x39, 0xF3, 0x0A, 0xB2, 0x29, 0x89, 0xF8, 0x88, 0xE4, 0xDF, 0xA3, 0x56, 0x13, 0x7A, 0x3E, 0x65, 0xEC, 0xB5, 0xF4, 0x7E, 0x20, 0x0E, 0x73, 0x36, 0xA2, 0xF0, 0xA5, 0xC5, 0x47, 0xA2, 0x36, -+ 0x7F, 0x1D, 0x0F, 0xDE, 0xA8, 0x9D, 0x00, 0x69, 0x8D, 0x96, 0x2E, 0x62, 0xE8, 0xDA, 0xA5, 0x70, 0xEE, 0x07, 0x7B, 0x9E, 0xB8, 0x18, 0xED, 0x82, 0x75, 0xB2, 0x3E, 0x73, 0x39, 0xFA, 0x3A, 0x6C, -+ 0x9E, 0xF0, 0xD3, 0xC9, 0x78, 0xEE, 0xF7, 0x5B, 0xC9, 0x77, 0xAA, 0xFE, 0x87, 0xB1, 0xA4, 0x1F, 0xED, 0x4C, 0x7D, 0xA1, 0x7E, 0x2B, 0xBE, 0xCC, 0xA8, 0xF4, 0x06, 0xF0, 0x40, 0xB1, 0x6F, 0xDD, -+ 0xFB, 0x2E, 0x8F, 0x47, 0x0C, 0x25, 0x40, 0x9B, 0x8C, 0x7C, 0x13, 0x88, 0xE6, 0x08, 0xEB, 0xBA, 0xE2, 0x67, 0xF7, 0x7C, 0x5F, 0xE0, 0x10, 0xF6, 0x91, 0x7B, 0xC6, 0xCA, 0x7B, 0xF6, 0x86, 0x5F, -+ 0xAA, 0x73, 0xE1, 0x0F, 0x2F, 0x60, 0xD2, 0x2D, 0xB2, 0x4A, 0x21, 0x71, 0x81, 0xBE, 0x56, 0xFD, 0x47, 0x3E, 0xE7, 0xAF, 0x5E, 0xD5, 0x60, 0x9A, 0xDA, 0x02, 0x36, 0xFA, 0xB3, 0x06, 0x6C, 0x3D, -+ 0xAD, 0x28, 0xA2, 0x4F, 0x67, 0xD4, 0xCC, 0x1C, 0xEF, 0xE6, 0x10, 0x6F, 0x5E, 0x54, 0x27, 0xAC, 0xCD, 0xC7, 0x3F, 0xF8, 0x85, 0x76, 0xA2, 0x7A, 0xEB, 0xE7, 0x1A, 0x33, 0xDB, 0x3C, 0x08, 0x02, -+ 0xD6, 0x97, 0x18, 0x95, 0x6C, 0xD9, 0xD1, 0x5A, 0xAA, 0x9A, 0x2D, 0xE3, 0xAC, 0x62, 0x10, 0x10, 0x0A, 0x2E, 0x39, 0xAF, 0x5B, 0xA9, 0x1D, 0xFA, 0x21, 0x8C, 0x53, 0x72, 0x66, 0x06, 0x2E, 0x32, -+ 0x6E, 0x2F, 0xF8, 0xC4, 0x4D, 0x17, 0x80, 0xFB, 0xAF, 0xF4, 0xAD, 0xBA, 0x82, 0x71, 0x17, 0xE0, 0xBC, 0xB7, 0xA4, 0xC8, 0xF2, 0x61, 0x39, 0x81, 0x71, 0x3F, 0xA5, 0x98, 0xA4, 0x68, 0x3A, 0x46, -+ 0x70, 0x85, 0x4C, 0x94, 0x67, 0xF2, 0x5A, 0x65, 0x6D, 0xDB, 0x6E, 0x7C, 0x3E, 0xF1, 0x92, 0xEB, 0xBD, 0xEE, 0x15, 0x3A, 0x59, 0x41, 0x61, 0x95, 0x26, 0xB3, 0x17, 0x87, 0x54, 0x4F, 0xE2, 0x31, -+ 0x2A, 0x28, 0x98, 0x9C, 0x6A, 0xA3, 0xAC, 0xC0, 0xFE, 0x44, 0x23, 0x14, 0xFD, 0xFB, 0xD8, 0x08, 0x7F, 0x2B, 0x75, 0x5E, 0xB4, 0xB7, 0x35, 0x55, 0x76, 0x28, 0x3F, 0xA8, 0x6C, 0xD2, 0xD9, 0xEC, -+ 0x1A, 0x6B, 0xD9, 0x4E, 0x6C, 0x5D, 0x72, 0x82, 0x02, 0xEC, 0x0B, 0x6E, 0xDF, 0xE1, 0xF3, 0x35, 0x84, 0x11, 0xC4, 0x9E, 0xC1, 0x10, 0x63, 0xAC, 0x1E, 0xDE, 0xB2, 0x1B, 0x95, 0xD7, 0x13, 0xD9, -+ 0x0B, 0xE4, 0x96, 0xD8, 0x55, 0x84, 0xAA, 0x64, 0x25, 0x47, 0x14, 0x80, 0x84, 0x4E, 0x5B, 0xE2, 0xD7, 0x05, 0x3E, 0x87, 0x22, 0x03, 0x64, 0x79, 0xBD, 0xCB, 0x36, 0x38, 0x35, 0xBB, 0x08, 0xB0, -+ 0x10, 0xDD, 0x0C, 0x08, 0x0E, 0x3D, 0x85, 0x24, 0xAE, 0x62, 0x21, 0x3E, 0x20, 0x8E, 0xC4, 0x12, 0xD0, 0x1F, 0xC9, 0xCE, 0xFA, 0x9C, 0x0A, 0xBD, 0x39, 0x64, 0x96, 0x45, 0x51, 0x84, 0xDB, 0x24, -+ 0x4A, 0xD6, 0xBE, 0xB4, 0x5F, 0xB7, 0x68, 0x47, 0x91, 0x62, 0x47, 0x44, 0x33, 0x52, 0x0C, 0xE0, 0x63, 0x03, 0xFF, 0xC6, 0x06, 0x07, 0xDD, 0x43, 0x29, 0x62, 0x88, 0x4F, 0x8A, 0xA6, 0x54, 0x39, -+ 0x98, 0xE1, 0xFB, 0x24, 0xDA, 0xF8, 0xAB, 0x3F, 0xF8, 0x62, 0xA8, 0x16, 0xA3, 0x98, 0x28, 0xF5, 0x7B, 0x54, 0x7A, 0xE7, 0x66, 0x98, 0x3F, 0x7C, 0xFA, 0xC8, 0x50, 0x23, 0xDC, 0x65, 0x53, 0x43, -+ 0x12, 0x74, 0xB8, 0x40, 0x19, 0xDB, 0xD8, 0x5D, 0x2C, 0x42, 0x9D, 0x2B, 0x01, 0xE3, 0xC0, 0xA5, 0xDE, 0x1E, 0x6C, 0xC8, 0x5E, 0x62, 0x57, 0x9B, 0x00, 0x12, 0x6E, 0x6F, 0xE8, 0x1A, 0xB2, 0xEC, -+ 0x08, 0x85, 0xD4, 0x30, 0x98, 0xA6, 0xF2, 0x15, 0x94, 0xD6, 0x67, 0x0F, 0x3E, 0xAB, 0x54, 0xEF, 0x3E, 0x30, 0xC7, 0x38, 0x96, 0x46, 0x1F, 0xE3, 0xCA, 0x4E, 0x8E, 0xD9, 0x29, 0x3E, 0x4F, 0x27, -+ 0x6E, 0x18, 0xAA, 0xC8, 0x54, 0x46, 0xC0, 0xC2, 0x34, 0xFF, 0x6F, 0x9A, 0xE1, 0x1A, 0x09, 0x89, 0x9B, 0x3D, 0x22, 0x1C, 0xC6, 0xC4, 0xB3, 0x63, 0xF7, 0xBE, 0x27, 0xAD, 0xF3, 0xF5, 0x1C, 0xE4, -+ 0xBD, 0x8F, 0x51, 0xC2, 0x1C, 0x7F, 0x44, 0xE3, 0x08, 0x3C, 0x8D, 0x04, 0x71, 0x24, 0x08, 0x4C, 0x1E, 0xDB, 0x09, 0x0A, 0x7D, 0x80, 0x56, 0x51, 0x7B, 0xBB, 0xD1, 0xF1, 0x87, 0xC4, 0x27, 0xDD, -+ 0xA5, 0x9E, 0x54, 0x5E, 0x8C, 0x60, 0x03, 0xCA, 0x0B, 0xC5, 0xBD, 0x38, 0x9E, 0xBD, 0x90, 0xB9, 0x97, 0x08, 0xC3, 0xD3, 0xC7, 0x40, 0x44, 0xEB, 0x2A, 0xB3, 0xCA, 0x6F, 0x72, 0xD4, 0xB2, 0xD4, -+ 0x91, 0x02, 0xB9, 0x74, 0x89, 0x64, 0x56, 0xFC, 0x67, 0x38, 0xE9, 0x0B, 0x94, 0x8C, 0x62, 0xE0, 0x16, 0x17, 0x14, 0x87, 0x1F, 0x57, 0x41, 0x9E, 0xCB, 0xAA, 0x16, 0xD0, 0x16, 0x65, 0xAC, 0xEB, -+ 0x39, 0x69, 0xB4, 0x84, 0xA2, 0xE0, 0x29, 0xED, 0x6A, 0x73, 0x30, 0x0E, 0x06, 0xC8, 0x50, 0xAF, 0xEF, 0xFC, 0x08, 0xCE, 0x29, 0x61, 0x85, 0x4E, 0x9A, 0xA0, 0x65, 0x38, 0xFF, 0x6D, 0x9F, 0x5A, -+ 0xEE, 0xAF, 0x57, 0x76, 0x1C, 0xB6, 0xAE, 0x36, 0x87, 0x1D, 0xC4, 0x17, 0x33, 0x2F, 0x30, 0x63, 0xBF, 0x91, 0x37, 0x21, 0x22, 0x68, 0xC3, 0x1F, 0x27, 0x8D, 0xC6, 0x85, 0xC1, 0xAD, 0x44, 0xD2, -+ 0x22, 0x56, 0x6F, 0x9F, 0x18, 0x82, 0x3D, 0x55, 0x0E, 0x89, 0x86, 0x51, 0xD7, 0x65, 0x57, 0x1A, 0x10, 0x69, 0xB8, 0x27, 0x48, 0x61, 0x85, 0x34, 0x59, 0xCF, 0x49, 0xDB, 0x92, 0x37, 0x44, 0xC9, -+ 0xC5, 0xC9, 0x3D, 0xD2, 0x6F, 0x66, 0x3F, 0x9A, 0xDD, 0xD0, 0xBF, 0x56, 0x38, 0x05, 0xB4, 0xB7, 0x47, 0xC0, 0xA6, 0xE5, 0xB5, 0x86, 0x90, 0x0C, 0x57, 0x25, 0x96, 0xF2, 0x12, 0x01, 0xD3, 0x74, -+ 0x55, 0x53, 0xCA, 0x09, 0xD2, 0x19, 0xCB, 0x01, 0x79, 0xF0, 0xB1, 0x00, 0x17, 0xF0, 0xF1, 0x4D, 0x5A, 0xF3, 0xB9, 0x4B, 0xB4, 0xA9, 0x38, 0x61, 0x78, 0xA8, 0x2D, 0x2B, 0x14, 0x11, 0xED, 0x8B, -+ 0x95, 0xAC, 0x40, 0xAE, 0x73, 0xB2, 0x36, 0xD9, 0xB7, 0x83, 0x25, 0x0F, 0x1B, 0x9B, 0xBD, 0xBD, 0x88, 0xC0, 0x9E, 0xEB, 0x29, 0x0A, 0x83, 0xD8, 0x0A, 0x44, 0x47, 0x60, 0xB9, 0x83, 0xB2, 0x70, -+ 0x20, 0xF1, 0x28, 0xED, 0x00, 0xE5, 0xD1, 0xD3, 0xBB, 0xC8, 0xCE, 0x86, 0x21, 0x4E, 0xB5, 0xF5, 0x33, 0xCC, 0x80, 0xF2, 0x78, 0xB1, 0x92, 0xB5, 0x7A, 0xBB, 0x0F, 0xFA, 0x70, 0x3E, 0xBF, 0x0B, -+ 0xAA, 0xE4, 0x92, 0x6D, 0x63, 0xC0, 0xFF, 0x51, 0x8A, 0x9B, 0xBE, 0xB3, 0x48, 0xD5, 0xB5, 0xA0, 0x4F, 0x6F, 0xFF, 0xCF, 0xD3, 0xA4, 0x25, 0xE5, 0x08, 0xBD, 0xAB, 0x88, 0xB4, 0x05, 0x7D, 0x94, -+ 0xD6, 0xF8, 0xB1, 0xB0, 0x56, 0x78, 0x3F, 0xE4, 0x0B, 0xE6, 0xD6, 0xEF, 0xDF, 0x53, 0x1F, 0x52, 0x81, 0x15, 0xE2, 0xB3, 0x21, 0x11, 0xD2, 0xB7, 0xCE, 0x59, 0x90, 0x84, 0xE2, 0x0F, 0x9E, 0xAD, -+ 0x59, 0x5A, 0xC9, 0x15, 0xCB, 0xAB, 0x2A, 0x48, 0x6C, 0x98, 0x5F, 0xB5, 0x0F, 0x6E, 0x2F, 0x3E, 0x16, 0x02, 0xD8, 0xE8, 0xCF, 0xA7, 0x68, 0x5A, 0xAA, 0x30, 0x5C, 0x06, 0x0F, 0x11, 0xDB, 0x98, -+ 0x07, 0x40, 0xBB, 0xF4, 0xBD, 0xF4, 0xA7, 0x1A, 0x1C, 0x7E, 0x37, 0xC6, 0xC6, 0xE8, 0x91, 0x20, 0xAD, 0x91, 0x2C, 0x2F, 0x2A, 0xC0, 0x25, 0x0F, 0x0F, 0xCE, 0x82, 0x6C, 0x55, 0xB6, 0xFB, 0x0F, -+ 0x63, 0x8D, 0xC0, 0xC5, 0x5E, 0x32, 0x7E, 0x92, 0x2D, 0xC4, 0x53, 0x75, 0x18, 0x69, 0xCD, 0xAB, 0xBC, 0x95, 0xA3, 0xC3, 0x50, 0x36, 0x8A, 0xF7, 0xAB, 0x4C, 0x17, 0xB0, 0x1D, 0x8B, 0xC4, 0x77, -+ 0x74, 0xB9, 0x01, 0xA1, 0x8A, 0xDB, 0x86, 0x98, 0x10, 0x37, 0x67, 0x21, 0xDC, 0x23, 0x3D, 0x81, 0x1D, 0xF2, 0x20, 0x8C, 0x04, 0xDF, 0x9B, 0xEE, 0xB8, 0x28, 0xB0, 0x02, 0xEA, 0xA1, 0xF8, 0x64, -+ 0x09, 0x1C, 0x1C, 0xD0, 0x90, 0xEA, 0x6F, 0xAB, 0xCC, 0x0B, 0x06, 0x4E, 0xD2, 0x91, 0x6A, 0xA1, 0x0F, 0x14, 0x4E, 0xE4, 0x47, 0x0A, 0x75, 0xAB, 0x04, 0xF2, 0xCC, 0xA1, 0xD8, 0xAC, 0x42, 0x48, -+ 0x4D, 0xCE, 0x93, 0x46, 0x76, 0xE7, 0x4A, 0x2A, 0x9E, 0x19, 0xB0, 0x96, 0xF1, 0x08, 0x8E, 0xBD, 0x2F, 0xDE, 0x8D, 0x16, 0x78, 0x46, 0xAA, 0x33, 0xD1, 0x81, 0x31, 0x72, 0xE9, 0x2B, 0x13, 0xB6, -+ 0x70, 0x81, 0xC4, 0x4C, 0x35, 0xF2, 0x55, 0xBB, 0x23, 0x6D, 0x0C, 0xF2, 0x9A, 0x58, 0xD0, 0xCC, 0xDE, 0xC3, 0x70, 0xC8, 0x6F, 0x84, 0x0D, 0xC6, 0xF9, 0x7A, 0x74, 0xBF, 0xAA, 0xCE, 0xFA, 0xBA, -+ 0x55, 0x65, 0xD7, 0x73, 0x62, 0x3A, 0x24, 0x32, 0x92, 0xE6, 0xDC, 0x76, 0x57, 0x39, 0x23, 0xD5, 0x9A, 0xC4, 0x43, 0xDB, 0x86, 0xA3, 0x12, 0x9A, 0x54, 0x73, 0xB1, 0x19, 0x4D, 0x21, 0xA4, 0x61, -+ 0xF6, 0x11, 0x4F, 0xDE, 0xC3, 0xA6, 0xD3, 0x8F, 0x28, 0xB3, 0x9B, 0x87, 0xF2, 0xEA, 0x06, 0x86, 0x67, 0x40, 0x94, 0x6B, 0x0D, 0x09, 0x7A, 0xF4, 0xB2, 0xC0, 0x6D, 0x36, 0xE9, 0xFC, 0xD2, 0x40, -+ 0x48, 0x90, 0x8E, 0x38, 0xA6, 0xF7, 0x6E, 0xAB, 0xBC, 0x19, 0x76, 0x17, 0x92, 0x82, 0xEB, 0x0E, 0x51, 0xD0, 0xE8, 0x3B, 0xE5, 0xCD, 0x93, 0xE6, 0x14, 0xC1, 0x6B, 0xEC, 0x1E, 0xEC, 0xB9, 0xF1, -+ 0x81, 0x08, 0x61, 0x70, 0x47, 0x59, 0xD1, 0xA0, 0x78, 0x92, 0xBF, 0x52, 0xF5, 0x5F, 0x89, 0x39, 0xA4, 0xDC, 0x30, 0x88, 0xFA, 0x16, 0x65, 0xF1, 0x35, 0xBD, 0x04, 0x77, 0xD0, 0x2D, 0xCD, 0xE5, -+ 0x7E, 0x0C, 0x1C, 0x0F, 0xAC, 0x0F, 0xA7, 0x0A, 0x25, 0x6F, 0x9B, 0x9B, 0xEB, 0xC7, 0xEB, 0x33, 0xF6, 0x6D, 0xB4, 0xE7, 0x9D, 0xF4, 0xB0, 0x70, 0xD8, 0x31, 0x81, 0x56, 0xFD, 0x65, 0xE1, 0xB3, -+ 0x6D, 0x37, 0xAC, 0xF9, 0xB0, 0xAA, 0xF0, 0x7C, 0x60, 0x34, 0x37, 0xC4, 0xA3, 0xD2, 0xFA, 0x2D, 0xCE, 0x6B, 0xCF, 0xAF, 0x18, 0x3F, 0x92, 0x1C, 0x6E, 0xE3, 0xE8, 0x7B, 0xD1, 0x75, 0x05, 0x7B, -+ 0xC9, 0x97, 0xF9, 0x0D, 0x18, 0x59, 0xEF, 0x76, 0x01, 0xE6, 0x8D, 0x35, 0x84, 0x62, 0xAF, 0xE3, 0xBA, 0xD1, 0x92, 0x83, 0x60, 0xE1, 0xAA, 0xFC, 0xCC, 0x17, 0x0D, 0x0F, 0xD7, 0x65, 0x18, 0x0B, -+ 0x57, 0xB0, 0x33, 0xCF, 0xCC, 0xE2, 0x89, 0x87, 0x8F, 0x41, 0x9B, 0x7D, 0x44, 0x71, 0xB7, 0xB0, 0xF3, 0xBF, 0x42, 0x56, 0xC0, 0x68, 0xDB, 0xCD, 0xBA, 0x7B, 0x0F, 0x20, 0x2C, 0xC7, 0x52, 0x9A, -+ 0x76, 0xC0, 0x9D, 0xB1, 0x66, 0xA1, 0x98, 0x5E, 0x10, 0xB4, 0x6F, 0x83, 0x0F, 0x08, 0xF7, 0x3E, 0xB2, 0x54, 0xCC, 0x3E, 0x33, 0xD6, 0x90, 0xDF, 0xAB, 0xED, 0x3F, 0x77, 0xE4, 0xC4, 0x65, 0x47, -+ 0x39, 0x90, 0x9E, 0x86, 0x1D, 0x04, 0x87, 0x49, 0x35, 0xD1, 0x20, 0x5D, 0xF3, 0x94, 0x1B, 0x10, 0x3D, 0x60, 0xF7, 0x1C, 0x36, 0x2B, 0xF0, 0x21, 0x91, 0x93, 0xF9, 0xAD, 0xAE, 0x49, 0xD3, 0x06, -+ 0xF5, 0x0A, 0x34, 0x79, 0x09, 0x70, 0x8A, 0x41, 0x7C, 0x74, 0xF8, 0xB8, 0xC4, 0x4D, 0x8C, 0x7F, 0xBE, 0xD5, 0x2F, 0x1A, 0x00, 0x98, 0x88, 0xED, 0x7D, 0xA2, 0x55, 0x12, 0xD7, 0x3C, 0xA3, 0x76, -+ 0x02, 0xD4, 0x6E, 0xEC, 0x02, 0x9D, 0x4F, 0x16, 0x84, 0x91, 0xC7, 0x0F, 0x2D, 0x0F, 0x13, 0x58, 0xCE, 0x37, 0x0C, 0x2C, 0xF2, 0x82, 0x35, 0x00, 0xE9, 0x89, 0xFB, 0x24, 0x72, 0x3C, 0x21, 0xDD, -+ }, -+ .t1_len = 2304, -+ .t1 = { -+ 0x94, 0x06, 0xE4, 0xDC, 0xE8, 0x12, 0xBE, 0x92, 0xE1, 0x53, 0xE0, 0x75, 0x2C, 0xFE, 0x26, 0xC1, 0x12, 0x7E, 0x9C, 0x80, 0xC8, 0x11, 0x3E, 0x12, 0x16, 0x95, 0xF9, 0x01, 0x4E, 0x03, 0xFF, 0xF1, -+ 0xFD, 0x7B, 0xE3, 0xB0, 0xF4, 0x0E, 0xEE, 0x5B, 0x02, 0xF5, 0x60, 0x1E, 0x2F, 0xC3, 0xAF, 0xF0, 0xCD, 0xF7, 0xE7, 0xE7, 0x34, 0x99, 0x9C, 0x7F, 0xC4, 0xEB, 0x9D, 0xDA, 0x81, 0x8C, 0x52, 0x06, -+ 0x93, 0xFE, 0x38, 0xE4, 0x49, 0xBE, 0x4C, 0xCF, 0x03, 0xFE, 0xA1, 0x72, 0x8E, 0x4C, 0xCA, 0x64, 0xFD, 0x11, 0x0B, 0xFC, 0x8E, 0xC9, 0xCB, 0x79, 0x50, 0x3B, 0xD5, 0x53, 0xF5, 0x89, 0x9A, 0x2F, -+ 0x63, 0x16, 0x5D, 0x19, 0x32, 0x72, 0x7D, 0xB7, 0x44, 0x72, 0x65, 0xF7, 0x96, 0xF4, 0xFD, 0xBC, 0xFE, 0xA6, 0xF4, 0x05, 0x9E, 0x88, 0x34, 0x34, 0xC7, 0x98, 0xB8, 0x68, 0xF9, 0x86, 0x60, 0x5D, -+ 0x4D, 0x03, 0xD3, 0x04, 0xB6, 0x77, 0xE3, 0x0F, 0xF7, 0xD7, 0x83, 0x0A, 0xDD, 0x06, 0x65, 0x2B, 0xCC, 0x1B, 0xF0, 0x4D, 0x33, 0xDF, 0xFE, 0xFC, 0xEF, 0x63, 0x4A, 0xF5, 0xBA, 0xE0, 0xD5, 0xC6, -+ 0xBA, 0xB6, 0xC5, 0x64, 0xF1, 0x95, 0x20, 0x82, 0xAA, 0x38, 0x25, 0x53, 0x20, 0x01, 0x9C, 0xBC, 0x8E, 0xCA, 0x07, 0x3D, 0x80, 0xAF, 0x0A, 0x59, 0x6E, 0x4D, 0x33, 0xAD, 0x73, 0xB4, 0xF1, 0xED, -+ 0xD4, 0x20, 0xE0, 0x90, 0x0B, 0xED, 0x47, 0x49, 0x5A, 0x88, 0x62, 0xD4, 0xA9, 0xCD, 0xDE, 0xD0, 0xDE, 0xA7, 0x74, 0xCD, 0xE0, 0x23, 0x8C, 0x71, 0x2B, 0x8A, 0xA9, 0x82, 0x47, 0x56, 0x66, 0x0D, -+ 0x2B, 0x34, 0xE4, 0x7E, 0x4B, 0x59, 0x42, 0x5F, 0x17, 0xA9, 0x60, 0x8D, 0xAD, 0x38, 0x28, 0xEC, 0x9D, 0x8A, 0xDB, 0x5D, 0xD3, 0x8C, 0x7D, 0x53, 0xDD, 0xA6, 0xDA, 0xC7, 0x4D, 0x3F, 0xD0, 0x3C, -+ 0x00, 0xB5, 0x9E, 0xE9, 0xA0, 0xE5, 0x27, 0x6E, 0x3E, 0x75, 0xD0, 0x13, 0x61, 0x01, 0x66, 0x49, 0x1D, 0x87, 0x3A, 0x7D, 0xA2, 0xC9, 0xFD, 0xA3, 0x60, 0xA6, 0x47, 0x73, 0x25, 0x00, 0x58, 0x41, -+ 0x8F, 0xA7, 0x62, 0x63, 0x2D, 0xCB, 0x12, 0x63, 0x85, 0x27, 0x32, 0x60, 0x02, 0x18, 0x67, 0x53, 0xE6, 0xB5, 0xD3, 0x31, 0xE5, 0x64, 0x23, 0xC9, 0x70, 0x9D, 0x34, 0x9C, 0x69, 0x5A, 0x32, 0x8A, -+ 0x56, 0x2B, 0x13, 0x9A, 0xF5, 0x98, 0xF8, 0x5D, 0xCB, 0x35, 0x98, 0x40, 0x7D, 0x82, 0xF8, 0x49, 0xC2, 0x9A, 0x87, 0xDC, 0x41, 0xFA, 0xA7, 0x69, 0x8F, 0xAC, 0x7F, 0x20, 0x4D, 0x70, 0xD0, 0x7D, -+ 0x4A, 0xDC, 0x1D, 0x68, 0xFB, 0x46, 0x08, 0x63, 0xBB, 0x00, 0x2F, 0x3A, 0x23, 0x57, 0xCB, 0x65, 0xFB, 0x4B, 0x03, 0xBA, 0xB6, 0x8D, 0xB9, 0xB1, 0x1A, 0x09, 0xC9, 0x02, 0xE8, 0x12, 0x95, 0x91, -+ 0x54, 0x16, 0xB4, 0x51, 0xD8, 0xE5, 0xFB, 0xF7, 0x81, 0x33, 0xBE, 0xD2, 0x81, 0x81, 0x37, 0x17, 0xE3, 0x74, 0xC5, 0xB4, 0x15, 0xE7, 0x77, 0x3F, 0x95, 0xD8, 0x3D, 0x8B, 0xF9, 0x7D, 0x4A, 0xC4, -+ 0x5E, 0xAC, 0x28, 0x1E, 0x50, 0x89, 0x69, 0x32, 0xF7, 0xEE, 0xA4, 0x83, 0xE6, 0x98, 0xED, 0xD6, 0x07, 0xC3, 0xFF, 0xDD, 0xD3, 0x4C, 0x56, 0x67, 0x03, 0x28, 0xEB, 0xA5, 0xE1, 0xEB, 0x24, 0x9B, -+ 0x8E, 0x26, 0x85, 0x38, 0xBF, 0x4C, 0xF3, 0x43, 0x2E, 0xD5, 0xA9, 0x33, 0xB8, 0x2E, 0x6C, 0x0E, 0x96, 0x0D, 0xE1, 0x8A, 0x20, 0x9F, 0xA3, 0x90, 0x96, 0x93, 0x87, 0x88, 0x4D, 0xAD, 0x8D, 0x8E, -+ 0xE7, 0xE6, 0x0A, 0x89, 0x69, 0x90, 0x62, 0x16, 0x2F, 0x90, 0xBB, 0x28, 0xE4, 0xCC, 0xBA, 0x1A, 0x5F, 0x52, 0x6D, 0xE9, 0xCF, 0x7F, 0xEF, 0xEC, 0x7A, 0x77, 0xDD, 0xA0, 0x7C, 0xD7, 0x00, 0x09, -+ 0xE4, 0x8E, 0xBF, 0x8E, 0xDD, 0x9B, 0x34, 0x87, 0x26, 0xA9, 0x37, 0xE1, 0x4F, 0xF5, 0xEB, 0x6E, 0x79, 0xE3, 0xDB, 0x1B, 0x60, 0xD7, 0x0A, 0x73, 0x05, 0x11, 0x15, 0x4A, 0x8A, 0xB8, 0x75, 0xF8, -+ 0x6D, 0xEB, 0xCB, 0x9D, 0x79, 0x0F, 0xC4, 0x32, 0x84, 0x4E, 0x90, 0x3C, 0x8B, 0xD9, 0xFD, 0xB2, 0x8F, 0x99, 0x88, 0xDF, 0xAE, 0xA5, 0x56, 0xE9, 0x20, 0xE5, 0x79, 0x25, 0x47, 0xAE, 0xA7, 0xA4, -+ 0x5B, 0x4C, 0x7E, 0x68, 0x41, 0x61, 0x1E, 0x33, 0x06, 0x4E, 0x5C, 0xB5, 0x9B, 0xBA, 0xEC, 0xA6, 0x9E, 0x38, 0xA0, 0x99, 0x94, 0xAE, 0xEA, 0x3D, 0x10, 0xF6, 0xFC, 0x53, 0xF6, 0x43, 0x56, 0x2F, -+ 0xA0, 0x0A, 0x34, 0x12, 0xD4, 0xAF, 0xF8, 0x01, 0xD4, 0x8D, 0x0C, 0x58, 0xBA, 0x05, 0x5A, 0x42, 0xCD, 0xF6, 0xB8, 0xF1, 0x86, 0x16, 0x99, 0xEF, 0xD9, 0xAD, 0x9D, 0xF4, 0xCB, 0xB9, 0x88, 0xE7, -+ 0x22, 0x17, 0x12, 0xBB, 0x42, 0xA4, 0x3B, 0xE8, 0x32, 0x25, 0x09, 0x11, 0x1D, 0x3A, 0x8E, 0xBC, 0x97, 0xFA, 0xEB, 0xF9, 0xF8, 0x5D, 0x69, 0x20, 0x76, 0x5A, 0x18, 0x2A, 0xD9, 0xC4, 0x54, 0x27, -+ 0x99, 0x31, 0x70, 0x5E, 0xA2, 0x90, 0x3F, 0x6E, 0x18, 0x7D, 0x2A, 0xF6, 0xA5, 0xE4, 0xA8, 0x30, 0x54, 0x16, 0x8A, 0xA6, 0xA6, 0xF1, 0x27, 0xC8, 0xCE, 0x0C, 0x56, 0xA2, 0xEF, 0x67, 0xDC, 0x1C, -+ 0xD9, 0xB2, 0x2A, 0x51, 0x39, 0xDA, 0xC1, 0x92, 0xFF, 0xC5, 0x3A, 0x13, 0xEC, 0x52, 0xA3, 0x22, 0x07, 0xA9, 0x6A, 0x4F, 0xED, 0xB1, 0x20, 0x55, 0xFF, 0xDD, 0xBE, 0xE6, 0xAE, 0xF0, 0x72, 0xF7, -+ 0x5D, 0xB7, 0xC6, 0xCD, 0x37, 0xB2, 0x58, 0x9D, 0xC0, 0x0F, 0xBE, 0xF1, 0x33, 0x3E, 0xB1, 0x13, 0xC8, 0x22, 0x1B, 0xF8, 0x74, 0x0F, 0xD7, 0xBF, 0x7F, 0x39, 0xA5, 0x7E, 0x4A, 0xE2, 0xCE, 0x86, -+ 0xE0, 0xE8, 0xB4, 0xE9, 0x21, 0x4D, 0x67, 0x21, 0x46, 0xED, 0xE9, 0x85, 0x87, 0x15, 0x71, 0x56, 0x5E, 0x9F, 0x59, 0xCD, 0xA5, 0x92, 0x22, 0xAC, 0x9C, 0x6C, 0x00, 0xD5, 0xA7, 0xC9, 0xD8, 0xA3, -+ 0xE5, 0x46, 0xDE, 0xC8, 0x3C, 0x65, 0x54, 0xEA, 0x89, 0x13, 0x72, 0xBB, 0xCA, 0xE7, 0xD7, 0x76, 0x88, 0xDE, 0xD6, 0x0B, 0x52, 0x6C, 0x04, 0xC9, 0xBF, 0x0A, 0x7D, 0x96, 0x56, 0x81, 0x90, 0x4D, -+ 0xAC, 0x03, 0x79, 0x1F, 0x08, 0xB0, 0x71, 0xF0, 0xEE, 0x5B, 0xAB, 0xA1, 0xC4, 0x6B, 0x15, 0x61, 0x75, 0x6E, 0x58, 0x9C, 0x33, 0x7B, 0xAB, 0x4F, 0x2B, 0x75, 0xAE, 0x3B, 0xF6, 0xE7, 0x74, 0x3F, -+ 0x6C, 0xEE, 0x5F, 0x09, 0x93, 0xE7, 0x18, 0xC9, 0x58, 0x4D, 0x47, 0xEA, 0xD4, 0xC9, 0x61, 0xAE, 0x96, 0xF6, 0xD6, 0x02, 0xA5, 0x06, 0xA2, 0xA4, 0xC0, 0xF5, 0x7E, 0x88, 0x1D, 0x51, 0xDC, 0x24, -+ 0xF2, 0x77, 0xEB, 0xA9, 0xCC, 0x3C, 0x6F, 0x23, 0x58, 0x29, 0xB5, 0xBA, 0x87, 0xC2, 0x1F, 0x12, 0x32, 0x1C, 0xEE, 0x8B, 0x6E, 0xE9, 0x08, 0x9B, 0xB5, 0x2C, 0x3A, 0x71, 0xAD, 0x61, 0x12, 0x46, -+ 0xAE, 0xD9, 0x80, 0xC1, 0xB9, 0x47, 0xA6, 0x7C, 0x88, 0xA1, 0x10, 0xA7, 0xBD, 0x84, 0x49, 0xD0, 0x9C, 0xE3, 0x90, 0x6C, 0x65, 0x35, 0x45, 0x7D, 0x02, 0xF2, 0x32, 0x5C, 0x70, 0xEE, 0x78, 0x63, -+ 0xAE, 0x63, 0x23, 0x0F, 0xC2, 0x3D, 0xEC, 0xA2, 0x99, 0xBB, 0x5B, 0x0E, 0x4B, 0x1A, 0xE8, 0xE2, 0x40, 0x1D, 0xFB, 0x9D, 0x4B, 0xDD, 0xD0, 0x61, 0x18, 0xBD, 0x15, 0x0F, 0x4B, 0x5C, 0xD3, 0x85, -+ 0xAF, 0xB4, 0xFA, 0xD4, 0xEC, 0xA4, 0x6D, 0x61, 0xBE, 0xCA, 0xB1, 0x1D, 0x02, 0x70, 0x26, 0x67, 0x33, 0x33, 0xAB, 0x31, 0x4B, 0x9E, 0xF9, 0x1B, 0x7A, 0x7F, 0x94, 0x0B, 0xDA, 0x44, 0x44, 0xAE, -+ 0xFE, 0x37, 0x03, 0x6A, 0x43, 0xF2, 0xB6, 0x8D, 0x0D, 0xFF, 0xD7, 0xAF, 0x33, 0xA3, 0x63, 0x0F, 0xDB, 0x32, 0x5A, 0x74, 0xDA, 0x7B, 0x09, 0x0F, 0x94, 0x9D, 0x06, 0x4B, 0xF7, 0x45, 0xB8, 0x93, -+ 0x37, 0x15, 0x2B, 0x98, 0x0E, 0x4E, 0x20, 0xCC, 0x23, 0xFF, 0xAF, 0xCC, 0xBC, 0x7E, 0x95, 0x77, 0x04, 0xE9, 0x4B, 0xE7, 0xF3, 0xE8, 0x5F, 0x7F, 0xE8, 0x49, 0x6F, 0xD5, 0xAA, 0xB9, 0x67, 0xB2, -+ 0x7C, 0x3F, 0x17, 0x3E, 0x26, 0x26, 0x80, 0xD0, 0x44, 0x08, 0x85, 0xE6, 0xC0, 0xB2, 0xAA, 0xB0, 0x9A, 0xB8, 0x1F, 0x6D, 0xE5, 0xB2, 0x2D, 0x17, 0xD5, 0xA2, 0x11, 0x97, 0xD6, 0x98, 0x93, 0xBE, -+ 0xED, 0x51, 0x83, 0x4E, 0x2D, 0x7E, 0x3D, 0xAF, 0xF0, 0x4C, 0xF8, 0x4A, 0xA9, 0xC7, 0x79, 0x6E, 0xBB, 0x6A, 0xE2, 0x06, 0xC4, 0xE1, 0x66, 0x25, 0xFD, 0xFD, 0x61, 0x39, 0x85, 0x05, 0x48, 0x06, -+ 0x26, 0x7C, 0xD6, 0x9B, 0xFA, 0x8F, 0x5D, 0xD6, 0x0F, 0x4F, 0x21, 0x94, 0x12, 0xDF, 0x2B, 0xAB, 0xC9, 0x56, 0x41, 0xAE, 0x15, 0x54, 0x87, 0xFA, 0xF4, 0x13, 0x33, 0xF5, 0xE5, 0x1B, 0xEF, 0xC2, -+ 0xF9, 0x63, 0xE6, 0x2B, 0x74, 0x8B, 0x3D, 0x9C, 0x20, 0x20, 0x66, 0xD1, 0xEC, 0xBA, 0xB6, 0x03, 0x21, 0x79, 0x10, 0x58, 0x9B, 0xB9, 0x69, 0x55, 0x21, 0xA5, 0xC5, 0x2F, 0x12, 0x38, 0x2F, 0x0D, -+ 0xE3, 0x24, 0x3F, 0x9E, 0x92, 0xED, 0x60, 0x53, 0x12, 0x63, 0x7D, 0xCC, 0xE5, 0xAD, 0x80, 0x7D, 0xA0, 0xC9, 0x2E, 0x99, 0x32, 0x52, 0x05, 0x20, 0x41, 0xC7, 0xB6, 0x8F, 0x4E, 0xB1, 0xBB, 0xB7, -+ 0x08, 0x5A, 0x5B, 0x02, 0x04, 0x77, 0x98, 0x92, 0x30, 0xCB, 0xA8, 0x9F, 0x96, 0x6D, 0x34, 0x97, 0xC4, 0x04, 0x3D, 0x05, 0x6F, 0x79, 0x7E, 0xA0, 0xB4, 0x8E, 0x24, 0x7C, 0xAB, 0xBC, 0x7E, 0x59, -+ 0x73, 0x07, 0xDA, 0x60, 0x5A, 0x00, 0x81, 0x45, 0x45, 0x51, 0xC8, 0x96, 0xAB, 0x4E, 0xE1, 0x34, 0x6B, 0x90, 0x4E, 0x35, 0x8A, 0x58, 0xCA, 0x2F, 0x7B, 0x93, 0xDA, 0x32, 0x9D, 0x08, 0x0A, 0x49, -+ 0xDC, 0xF9, 0xD2, 0xC9, 0xD1, 0xBB, 0xD6, 0xBA, 0x82, 0x6C, 0xA7, 0x13, 0x3A, 0xB2, 0xDF, 0x61, 0xD7, 0x13, 0x16, 0xEB, 0xDD, 0xED, 0x88, 0x2E, 0x49, 0x83, 0xB7, 0x67, 0x46, 0xF7, 0x14, 0x36, -+ 0xD2, 0xD7, 0xC1, 0x4D, 0x94, 0x34, 0x71, 0x70, 0xEE, 0x00, 0x15, 0x54, 0x00, 0x28, 0x1B, 0xD3, 0xC6, 0xBF, 0xE5, 0xEC, 0xBF, 0x69, 0xDE, 0xA0, 0x59, 0x01, 0x63, 0xE3, 0xA2, 0x97, 0x10, 0xC4, -+ 0x10, 0x7A, 0x08, 0xD4, 0xDD, 0x30, 0xFD, 0x6E, 0x05, 0x0E, 0xA1, 0xE9, 0xE3, 0xF3, 0xBA, 0xCD, 0x74, 0x10, 0x35, 0xE3, 0x47, 0x18, 0xAF, 0xA9, 0xA9, 0xC8, 0xAB, 0x19, 0xEA, 0x9C, 0xD8, 0x75, -+ 0x11, 0xCC, 0x59, 0xCC, 0x60, 0x1B, 0xC6, 0x3B, 0x82, 0x0F, 0xD0, 0x96, 0x87, 0x1F, 0x95, 0x26, 0x34, 0xA2, 0xA3, 0x78, 0x87, 0x83, 0xAA, 0xE7, 0x6D, 0xA2, 0x05, 0xB1, 0xEB, 0x5E, 0x94, 0x42, -+ 0x16, 0x19, 0xFF, 0x47, 0x52, 0x5F, 0x05, 0x62, 0xE4, 0xA3, 0x63, 0x3A, 0xC7, 0xC4, 0x01, 0x7D, 0xA2, 0xC8, 0x13, 0x07, 0xBD, 0xBD, 0x74, 0xB2, 0xD9, 0x16, 0x1E, 0x99, 0xC1, 0x68, 0x6A, 0x9A, -+ 0xB1, 0xC9, 0x44, 0x1B, 0x0D, 0x35, 0xC1, 0xCE, 0x7E, 0x9A, 0x62, 0x88, 0x28, 0x92, 0x85, 0x02, 0x33, 0x20, 0x88, 0x9B, 0x63, 0x9E, 0xB9, 0xCD, 0x0A, 0x56, 0x92, 0x93, 0xE3, 0x67, 0xC2, 0xBD, -+ 0x1F, 0xEA, 0x68, 0x7F, 0x45, 0x1B, 0x3D, 0xA8, 0x80, 0x9A, 0x77, 0xCA, 0x31, 0x9D, 0xFC, 0xFF, 0xBA, 0xD4, 0x27, 0x24, 0xF2, 0xE0, 0x67, 0xCB, 0x3A, 0x85, 0xE7, 0x23, 0xCD, 0xD0, 0xEF, 0xC6, -+ 0xB4, 0xC9, 0x7B, 0x5A, 0x13, 0x6B, 0xBE, 0xFC, 0xB6, 0xF1, 0x34, 0x59, 0x2C, 0xED, 0xDD, 0x6A, 0xFC, 0x98, 0x30, 0x36, 0x5D, 0x75, 0xF7, 0x5A, 0x27, 0xCA, 0xC7, 0x22, 0x56, 0x07, 0x8E, 0xD0, -+ 0x20, 0xA4, 0x49, 0x30, 0xDE, 0x9C, 0x35, 0xCE, 0x96, 0xE1, 0x54, 0x4E, 0xE9, 0x85, 0x1B, 0xE6, 0x78, 0x48, 0x2A, 0x32, 0x7C, 0xFA, 0x37, 0xA9, 0x13, 0xE0, 0x45, 0xC8, 0xC2, 0x63, 0xD9, 0xB2, -+ 0x5E, 0xAE, 0x21, 0xA2, 0x66, 0x4A, 0xF9, 0x43, 0x03, 0x95, 0x16, 0x3F, 0x04, 0x56, 0xD1, 0xA5, 0x18, 0xF6, 0x09, 0x7C, 0x96, 0xDB, 0x8F, 0x50, 0x5F, 0x34, 0x40, 0xA6, 0xC8, 0xCC, 0x31, 0xB5, -+ 0x95, 0xAC, 0xFE, 0x9A, 0xA9, 0xCC, 0x1C, 0xCF, 0xF9, 0xFD, 0xA6, 0x56, 0xBC, 0xDB, 0x5E, 0xEB, 0x57, 0xF4, 0x1E, 0x94, 0x67, 0xC6, 0x43, 0xBA, 0x62, 0x79, 0xE5, 0x41, 0xE8, 0x6C, 0x91, 0x07, -+ 0x4E, 0x55, 0xC6, 0x3A, 0xDF, 0x41, 0x51, 0x7C, 0xEA, 0x5A, 0x6F, 0x62, 0x29, 0xF7, 0x10, 0x16, 0x62, 0xBB, 0x0A, 0xA0, 0xCE, 0xAB, 0x2B, 0x7F, 0x62, 0x11, 0x96, 0xC7, 0xA7, 0x7B, 0xB3, 0x27, -+ 0xC7, 0x68, 0xC4, 0x3D, 0x06, 0x9D, 0x71, 0xC3, 0x2C, 0x71, 0x2C, 0x83, 0x1D, 0x68, 0x50, 0xE6, 0xEB, 0x79, 0x3D, 0x7D, 0xEB, 0x08, 0xDE, 0x7A, 0x70, 0x4B, 0x38, 0x6D, 0xFD, 0x2B, 0x30, 0x72, -+ 0xC2, 0x6B, 0x89, 0xDF, 0x8D, 0x07, 0x2B, 0x3E, 0x9F, 0x56, 0x96, 0xA0, 0x73, 0x2E, 0x21, 0x5D, 0xF6, 0xDE, 0x47, 0x5D, 0x3A, 0x69, 0xF1, 0x11, 0x2F, 0x8B, 0x6B, 0x8E, 0xE7, 0x6B, 0x73, 0x9C, -+ 0x92, 0x76, 0xD9, 0xEE, 0x78, 0x17, 0xD9, 0x89, 0xAA, 0x07, 0x90, 0xD4, 0x6F, 0x8B, 0xE9, 0xBC, 0xF8, 0xA9, 0xDE, 0x83, 0xD3, 0xF3, 0xC3, 0x02, 0xA8, 0xAA, 0xBE, 0xE5, 0xC8, 0xFE, 0xBC, 0x2A, -+ 0xDC, 0x70, 0x6F, 0xC0, 0xEA, 0x55, 0xCD, 0x6F, 0x38, 0x37, 0x74, 0xF9, 0x55, 0xFE, 0xC7, 0x0A, 0x5F, 0x83, 0x80, 0x74, 0xDC, 0xB7, 0x31, 0x53, 0x2C, 0x94, 0x9C, 0x88, 0x84, 0xE9, 0x5F, 0xDE, -+ 0xCE, 0x3A, 0x7D, 0x9F, 0x7E, 0xA2, 0x1A, 0xC5, 0xA8, 0xAC, 0xDF, 0xAA, 0x89, 0x68, 0x1E, 0x95, 0x01, 0x4D, 0x5A, 0x23, 0x44, 0x31, 0x5B, 0xF8, 0xB3, 0xFF, 0x97, 0x12, 0xA0, 0x9A, 0x8F, 0xDE, -+ 0xB8, 0x29, 0x4C, 0x25, 0x7D, 0x16, 0xCC, 0xEF, 0xAA, 0x78, 0xDD, 0x0F, 0x5D, 0xFF, 0xE0, 0x49, 0xCE, 0x2B, 0x8A, 0xC7, 0xE1, 0x60, 0x02, 0xED, 0x1E, 0x32, 0x8C, 0x62, 0x86, 0xA1, 0x67, 0x4A, -+ 0x5C, 0x06, 0xF6, 0x28, 0x37, 0xAA, 0xF3, 0xEE, 0xFF, 0xFC, 0x11, 0x46, 0x94, 0x7A, 0x63, 0x0D, 0x82, 0x44, 0xAA, 0x72, 0x89, 0x8D, 0xFE, 0x5B, 0x94, 0x78, 0x63, 0x70, 0x64, 0x8A, 0x13, 0xF0, -+ 0xE1, 0x6D, 0x50, 0x27, 0x77, 0xEB, 0x8D, 0xF9, 0x62, 0xFC, 0x86, 0x3C, 0x77, 0xC1, 0x59, 0xBF, 0x64, 0xCC, 0x2A, 0x47, 0xCA, 0xF6, 0xB2, 0x12, 0xCB, 0xC6, 0x14, 0x2B, 0x5C, 0x9F, 0x5B, 0xFF, -+ 0xE2, 0xDD, 0x3B, 0xB1, 0xF8, 0x63, 0x23, 0x10, 0x74, 0x82, 0x96, 0xBB, 0x81, 0xB3, 0x62, 0xB7, 0xE4, 0x56, 0xEE, 0xE8, 0xDF, 0x29, 0x55, 0xFC, 0xDC, 0x04, 0xE5, 0x5D, 0x25, 0x16, 0xA8, 0x28, -+ 0x07, 0x12, 0xCA, 0x5B, 0x60, 0xEA, 0x90, 0x7D, 0x51, 0xB2, 0xFA, 0x72, 0xF9, 0xC7, 0x3D, 0xA7, 0xFE, 0x2C, 0x25, 0x98, 0x8F, 0x5B, 0xE1, 0xB8, 0x23, 0x68, 0x25, 0xC8, 0x3A, 0x02, 0x38, 0x22, -+ 0x39, 0x40, 0x2A, 0x29, 0x4E, 0xA4, 0xBE, 0x31, 0xA1, 0x7D, 0xBD, 0x31, 0xBA, 0x1B, 0xFF, 0xF8, 0x04, 0xCC, 0x78, 0x2F, 0xED, 0x78, 0x95, 0x09, 0x7F, 0x58, 0x3D, 0xD1, 0x3A, 0xCC, 0x85, 0x49, -+ 0x1B, 0xDD, 0x12, 0x3F, 0xE0, 0x2C, 0x14, 0x12, 0xE3, 0x42, 0x61, 0x7D, 0x9C, 0x26, 0xB8, 0xD9, 0x87, 0x7C, 0xAD, 0x5A, 0x72, 0xD2, 0x32, 0x80, 0xB5, 0x27, 0x61, 0x47, 0xA7, 0x25, 0x84, 0xDA, -+ 0xE6, 0x17, 0x23, 0x15, 0x8B, 0x9A, 0x54, 0x79, 0xD6, 0x6B, 0x6D, 0x8A, 0x6C, 0x4D, 0xB0, 0xF2, 0xE7, 0x1E, 0xDD, 0x46, 0x58, 0x85, 0xC3, 0x3A, 0x69, 0xA8, 0xA7, 0x4E, 0x78, 0x16, 0x08, 0xF0, -+ 0x64, 0x16, 0x86, 0x6D, 0x19, 0x6B, 0x69, 0x5E, 0x70, 0xA4, 0x3B, 0x7D, 0xEA, 0xBE, 0x8C, 0x00, 0x0D, 0x79, 0xEE, 0x16, 0x03, 0xD4, 0x7C, 0x45, 0xCC, 0xB8, 0x5B, 0xBF, 0x79, 0x2D, 0x59, 0x14, -+ 0x6F, 0xA3, 0x22, 0x86, 0x97, 0x6F, 0xF5, 0x91, 0x72, 0x62, 0x96, 0x38, 0xE1, 0xA0, 0x70, 0xCB, 0x0F, 0x0E, 0xCB, 0xF8, 0x09, 0xF9, 0xF5, 0xB8, 0x73, 0xFB, 0xEF, 0x96, 0x87, 0x4F, 0xCD, 0xED, -+ 0x58, 0xA2, 0xC0, 0xA4, 0x99, 0x06, 0xD9, 0x09, 0x1D, 0x29, 0xB2, 0x1D, 0x0A, 0x7B, 0x89, 0x94, 0x52, 0x5D, 0x08, 0x88, 0x74, 0x8F, 0xB7, 0xDE, 0xE1, 0x60, 0xF2, 0xFC, 0xC7, 0x89, 0x52, 0xBB, -+ 0x57, 0xBE, 0x4D, 0x36, 0x68, 0x5B, 0xE4, 0xF2, 0xB1, 0x45, 0xBC, 0xAC, 0x40, 0xE0, 0xDB, 0x30, 0x60, 0x87, 0x2D, 0x81, 0x76, 0x63, 0x91, 0xD4, 0xEC, 0x0B, 0x04, 0x60, 0x9F, 0x4F, 0x2D, 0xA2, -+ 0x28, 0x94, 0x15, 0x45, 0x8D, 0x5F, 0x15, 0x22, 0x3C, 0x8E, 0x91, 0x11, 0x88, 0xC7, 0x82, 0x5F, 0x52, 0xA0, 0xA3, 0xA2, 0xC2, 0xCA, 0x8B, 0x62, 0xA7, 0x4B, 0x03, 0x71, 0x59, 0xE5, 0x4D, 0x99, -+ 0x73, 0xC8, 0x00, 0x54, 0x3D, 0x2F, 0x6C, 0x4C, 0x0D, 0x9E, 0x3B, 0x09, 0x39, 0xC1, 0xC1, 0x68, 0x05, 0xE5, 0x79, 0x46, 0x95, 0x49, 0x9C, 0xE0, 0x13, 0xCF, 0xB9, 0xB0, 0xEA, 0xEE, 0xD8, 0xDD, -+ }, -+ .pkcs8_len = 0, -+ .spki_len = 0, -+ .msg_len = 33, -+ .msg = { 0xD8, 0x1C, 0x4D, 0x8D, 0x73, 0x4F, 0xCB, 0xFB, 0xEA, 0xDE, 0x3D, 0x3F, 0x8A, 0x03, 0x9F, 0xAA, 0x2A, 0x2C, 0x99, 0x57, 0xE8, 0x35, 0xAD, 0x55, 0xB2, 0x2E, 0x75, 0xBF, 0x57, 0xBB, 0x55, 0x6A, -+ 0xC8 }, -+ .sig_len = 4668, -+ .sig = { -+ 0x37, 0xBD, 0x0C, 0xCB, 0xC5, 0x4E, 0x5A, 0x48, 0x0F, 0x2F, 0xBB, 0x8E, 0xF3, 0x87, 0x9E, 0x83, 0x40, 0xD7, 0xF6, 0xC7, 0x42, 0x42, 0xAD, 0x44, 0xD3, 0xE8, 0xB0, 0x78, 0x3C, 0xC5, 0xBF, 0x21, -+ 0x36, 0xD7, 0xBD, 0x4A, 0x32, 0xA9, 0x55, 0x2F, 0xE0, 0xE8, 0xAF, 0x8E, 0x87, 0xD5, 0x41, 0x1D, 0x76, 0x8A, 0x69, 0x2F, 0xE2, 0xC5, 0x03, 0xA7, 0x0C, 0xCB, 0xC0, 0x3A, 0x34, 0xB3, 0xC1, 0xF0, -+ 0x81, 0x5B, 0x26, 0x4B, 0x57, 0x2A, 0x9E, 0x74, 0x60, 0x9B, 0x9A, 0xD7, 0x29, 0x3B, 0xE3, 0x72, 0x7B, 0xFE, 0x17, 0x58, 0x3B, 0x3B, 0x63, 0x4F, 0x0A, 0x11, 0x9D, 0x79, 0x3E, 0xB1, 0x4D, 0xFF, -+ 0x18, 0x64, 0x3D, 0x1C, 0x34, 0x6B, 0x65, 0xE5, 0x73, 0xEF, 0xB9, 0xD5, 0x3B, 0xFA, 0x4C, 0x20, 0x05, 0x5D, 0x55, 0xF7, 0x54, 0xAF, 0x2F, 0x73, 0xFC, 0x38, 0x62, 0x67, 0xD5, 0x89, 0x0B, 0x39, -+ 0x13, 0x01, 0x41, 0x55, 0x93, 0xB2, 0xC5, 0x69, 0x5B, 0x9C, 0x06, 0xF0, 0x01, 0xF8, 0x84, 0x5C, 0x7C, 0xFA, 0xD7, 0x7C, 0x04, 0xE4, 0x11, 0x65, 0x18, 0xDF, 0x80, 0xF0, 0x41, 0xA5, 0x8A, 0x85, -+ 0x74, 0x48, 0xE7, 0x68, 0xA7, 0x1A, 0x7A, 0x01, 0xF2, 0x43, 0x31, 0x70, 0xB3, 0x71, 0xE8, 0xE3, 0x01, 0xA5, 0x37, 0x87, 0xD5, 0xEC, 0x77, 0x05, 0xA5, 0xEE, 0x1F, 0xE4, 0xFC, 0x04, 0x91, 0xCD, -+ 0xC6, 0xC8, 0x76, 0x96, 0x8A, 0x60, 0x6E, 0xC1, 0x38, 0x6F, 0x45, 0x1C, 0xE8, 0x54, 0x77, 0x34, 0x8D, 0xE1, 0xC6, 0x8E, 0xCC, 0x33, 0x95, 0x41, 0x61, 0x24, 0x90, 0xB2, 0x4C, 0x24, 0x2D, 0x25, -+ 0x87, 0x39, 0x81, 0xF9, 0xDE, 0xA6, 0x6D, 0x13, 0xF3, 0xC2, 0x10, 0x93, 0xEA, 0x48, 0x11, 0x51, 0xD1, 0x76, 0xA5, 0x50, 0x08, 0x42, 0x55, 0x0C, 0x26, 0xD0, 0xAF, 0xB1, 0xC6, 0xAE, 0xBE, 0x8E, -+ 0x42, 0x67, 0xE3, 0x6F, 0xD5, 0x70, 0x1E, 0x45, 0xD1, 0xDF, 0x15, 0x95, 0x9C, 0x7D, 0xC4, 0x4E, 0x7F, 0x5B, 0x6B, 0xA8, 0xCA, 0x04, 0xED, 0xF1, 0xE3, 0xE6, 0x48, 0x69, 0xFA, 0x15, 0x3B, 0xA7, -+ 0x46, 0x7F, 0x0D, 0x7B, 0x2F, 0xDC, 0x91, 0x24, 0x3A, 0x22, 0x39, 0x06, 0xF1, 0xAE, 0xA0, 0xD9, 0xFC, 0x14, 0x0F, 0x70, 0xCD, 0x02, 0x5A, 0x31, 0xB4, 0x0F, 0x22, 0xC4, 0x71, 0xBD, 0xD2, 0x36, -+ 0x5E, 0xD6, 0x30, 0x2D, 0x14, 0x81, 0x31, 0x6E, 0xE3, 0xC4, 0xC1, 0x70, 0xA1, 0x62, 0xEF, 0xE9, 0xFF, 0x41, 0x85, 0xE4, 0x50, 0x08, 0xF0, 0x7F, 0x6B, 0xDB, 0xAC, 0x22, 0x1D, 0xEC, 0x0B, 0xF0, -+ 0xAF, 0x88, 0x4B, 0x16, 0xC9, 0x5F, 0x34, 0x35, 0x01, 0xAA, 0x09, 0x8A, 0xD4, 0xA1, 0xF8, 0x20, 0x68, 0xFA, 0x1F, 0xBF, 0xF0, 0xE0, 0x40, 0x94, 0x6D, 0xCD, 0x50, 0xBF, 0x00, 0x9D, 0xF1, 0xFC, -+ 0xA4, 0xA3, 0xAA, 0xDB, 0x1C, 0x29, 0x51, 0xC0, 0x86, 0xD2, 0x7F, 0x20, 0x02, 0xDF, 0xD8, 0x54, 0xE5, 0x98, 0x52, 0xF4, 0x15, 0x30, 0x90, 0xDD, 0xC1, 0xA2, 0x1A, 0x6E, 0x0B, 0xE5, 0x92, 0x18, -+ 0x7A, 0x68, 0xAE, 0x08, 0x5B, 0x1D, 0x5D, 0x98, 0xBE, 0x8F, 0xCE, 0x5E, 0x24, 0x03, 0x1F, 0x47, 0xF8, 0x34, 0x30, 0x6B, 0xE5, 0xA5, 0xB6, 0x80, 0xAC, 0xFC, 0xD9, 0xF4, 0x04, 0xC1, 0xDE, 0x85, -+ 0x79, 0x66, 0xD2, 0x54, 0x6E, 0x66, 0x94, 0x01, 0x5F, 0x05, 0x02, 0xD0, 0xE6, 0x56, 0x8C, 0x9A, 0xA1, 0xB1, 0x3B, 0x3D, 0x7B, 0x61, 0xEE, 0x6A, 0x3D, 0xA0, 0x16, 0xDD, 0x34, 0xD6, 0x44, 0xB1, -+ 0x29, 0x7E, 0x63, 0x8D, 0xF0, 0xFC, 0xB6, 0xF6, 0x85, 0x57, 0x7E, 0x16, 0x4F, 0x5D, 0x6A, 0xA6, 0xF0, 0x70, 0xC1, 0xD0, 0x21, 0x55, 0x8C, 0xBC, 0xFD, 0x6F, 0x9B, 0xA3, 0x75, 0xE2, 0x89, 0x1F, -+ 0x67, 0x26, 0xCC, 0xE4, 0xCE, 0xBC, 0x89, 0xA9, 0x63, 0x57, 0x93, 0x0D, 0x04, 0x4C, 0x16, 0xAB, 0x29, 0x45, 0x30, 0x2C, 0xE0, 0xF2, 0xB6, 0x46, 0x17, 0x04, 0x6C, 0x3C, 0x1C, 0x4A, 0x6B, 0x34, -+ 0xD5, 0xAA, 0x07, 0x4E, 0x5F, 0xCB, 0x10, 0xBB, 0xA4, 0xC2, 0xA6, 0x08, 0x26, 0x5F, 0x45, 0xD7, 0x45, 0x10, 0x75, 0x0E, 0xAC, 0x67, 0x3A, 0x82, 0x8D, 0x5D, 0x30, 0x8F, 0x34, 0x07, 0x92, 0x31, -+ 0x33, 0xD5, 0x50, 0xB2, 0x57, 0x85, 0xA8, 0x39, 0x02, 0x42, 0xDC, 0x27, 0xB0, 0x82, 0xD3, 0x87, 0xAB, 0xCC, 0xDA, 0x7C, 0xD4, 0xD6, 0xEE, 0x5E, 0xAB, 0x8D, 0x51, 0xC8, 0x76, 0x9C, 0x24, 0x3A, -+ 0x95, 0x88, 0xF0, 0x45, 0xCC, 0xD9, 0xA5, 0x17, 0x2D, 0x99, 0xD0, 0x4E, 0xE4, 0x39, 0x59, 0xDC, 0x4D, 0x95, 0xBE, 0xAC, 0x06, 0x14, 0xA2, 0xF8, 0x50, 0x97, 0xED, 0x1C, 0x47, 0x61, 0x38, 0x42, -+ 0x9D, 0x12, 0xC7, 0x75, 0x8F, 0xA5, 0x28, 0x75, 0xC7, 0x38, 0xD4, 0x6E, 0xF2, 0xD9, 0x67, 0x51, 0x90, 0xFB, 0x72, 0x65, 0xF9, 0xAA, 0xC8, 0xC6, 0xF1, 0x73, 0xE8, 0xD5, 0x5C, 0x6B, 0x33, 0x81, -+ 0x9F, 0xBF, 0x9B, 0x5B, 0xD3, 0x12, 0x4D, 0x30, 0xC5, 0x81, 0x3E, 0x44, 0x7F, 0xAE, 0x23, 0xFC, 0xA5, 0xDB, 0x43, 0x8E, 0xC5, 0xCC, 0x8A, 0x66, 0xDE, 0xEB, 0xEB, 0x39, 0x53, 0x49, 0x29, 0xCE, -+ 0x4C, 0xE0, 0xB9, 0x8F, 0x1C, 0xA0, 0xE2, 0xC7, 0xD4, 0x53, 0x81, 0xC8, 0xF2, 0xE2, 0xFD, 0x2F, 0xED, 0x40, 0x6B, 0x29, 0xCC, 0x6A, 0x09, 0xD8, 0x1B, 0x44, 0xA4, 0x4F, 0x16, 0xC1, 0x50, 0xD8, -+ 0x65, 0xE8, 0xEA, 0x60, 0x60, 0xA8, 0x58, 0x39, 0x7C, 0x07, 0xF8, 0x57, 0x3A, 0x9C, 0xA2, 0x93, 0x00, 0x7D, 0x1B, 0xE4, 0xDD, 0xD8, 0xA5, 0x37, 0xDD, 0x9A, 0x57, 0x7F, 0x5E, 0x42, 0xF3, 0xEC, -+ 0xB4, 0x8F, 0x75, 0x81, 0x51, 0xA4, 0x01, 0xCA, 0xF2, 0x26, 0xA4, 0x8D, 0x94, 0x81, 0x9D, 0x2A, 0x43, 0xED, 0x08, 0xCD, 0xB6, 0xAE, 0xDD, 0x64, 0x01, 0x14, 0x03, 0x22, 0x31, 0x3B, 0xFD, 0xE2, -+ 0x76, 0x05, 0x71, 0x7E, 0x35, 0x66, 0xDD, 0x31, 0xBB, 0x5C, 0x52, 0x71, 0x45, 0x90, 0x45, 0x93, 0xA4, 0x74, 0x41, 0xD2, 0xF3, 0xC7, 0x44, 0x2C, 0x63, 0x69, 0x5D, 0xD0, 0xC3, 0x60, 0xBD, 0xA9, -+ 0x95, 0xFB, 0xFE, 0xC3, 0xE6, 0xC6, 0x63, 0xD1, 0xD2, 0x2D, 0x89, 0x0D, 0x7D, 0xF7, 0x05, 0x98, 0xF1, 0xBB, 0xC6, 0x19, 0x2A, 0x4F, 0x3A, 0x0A, 0x45, 0x8A, 0x95, 0x44, 0xCA, 0xDD, 0x6F, 0x18, -+ 0xDF, 0xA9, 0xEE, 0xA6, 0xE3, 0x20, 0x6B, 0xDE, 0x60, 0xED, 0x1C, 0x57, 0xCC, 0xC8, 0x00, 0x5F, 0x7C, 0x7C, 0x82, 0x74, 0xC1, 0x40, 0x7C, 0x8F, 0xAF, 0x4E, 0xBD, 0x69, 0xD5, 0x76, 0x19, 0x79, -+ 0xF9, 0x07, 0xCF, 0xD0, 0x62, 0x4E, 0xC7, 0xBA, 0x1F, 0xD7, 0xB5, 0x67, 0x81, 0xAC, 0x71, 0xA4, 0xA5, 0x26, 0x84, 0xFF, 0xC3, 0x2D, 0x5B, 0x53, 0x3C, 0xB5, 0x6C, 0x07, 0xF6, 0x35, 0xF5, 0x79, -+ 0x69, 0xC8, 0xF1, 0x58, 0x8D, 0x34, 0xD0, 0xE7, 0xA1, 0xC7, 0xA9, 0x42, 0xAA, 0xA3, 0xF3, 0x56, 0x0B, 0x0D, 0xB4, 0xF8, 0xCE, 0xBC, 0xAF, 0x6F, 0x25, 0x24, 0x11, 0x4A, 0x5F, 0x6A, 0xF7, 0x1B, -+ 0x5F, 0x50, 0xE9, 0x42, 0xE6, 0x74, 0xA8, 0x77, 0xC1, 0x74, 0xD9, 0x22, 0x00, 0x86, 0x5A, 0x5A, 0x06, 0xFB, 0x2D, 0x7F, 0xB4, 0x74, 0x41, 0x46, 0x75, 0xED, 0x31, 0x72, 0xF5, 0xF1, 0x53, 0x8F, -+ 0x58, 0x1E, 0xDE, 0x5E, 0xDD, 0x74, 0x5B, 0x55, 0xF9, 0xA2, 0xFC, 0x49, 0x95, 0xEB, 0x98, 0x4B, 0x8A, 0x12, 0xD6, 0xF6, 0x5A, 0xAE, 0xDF, 0x8D, 0x8D, 0x6F, 0xF5, 0x3C, 0xE2, 0x38, 0xC3, 0xA6, -+ 0x6C, 0xF2, 0x34, 0xF5, 0x94, 0x36, 0x47, 0x1C, 0x9F, 0xCB, 0xD3, 0x8E, 0x7F, 0x26, 0xBD, 0xF9, 0x74, 0x1B, 0x59, 0x9E, 0x16, 0xB8, 0xF7, 0xED, 0x46, 0x44, 0xBB, 0x6A, 0xBE, 0x81, 0xBB, 0x94, -+ 0x0C, 0x24, 0xFA, 0x62, 0x0F, 0x44, 0x35, 0x84, 0xF9, 0x9B, 0xB9, 0xDC, 0x25, 0x71, 0xB5, 0xEB, 0x81, 0x19, 0x27, 0x52, 0x9C, 0x7A, 0xDC, 0xEB, 0xEE, 0xF7, 0xAF, 0x05, 0xBA, 0x7E, 0x88, 0x89, -+ 0x9F, 0xAB, 0xF8, 0x74, 0x0F, 0xCD, 0xD1, 0x27, 0x5B, 0x12, 0xF7, 0x2A, 0x75, 0xC6, 0xD0, 0x00, 0x56, 0x5C, 0x5A, 0xC8, 0x8F, 0xB1, 0xFD, 0x99, 0x5B, 0x84, 0xED, 0x38, 0x4D, 0x5D, 0x6A, 0x60, -+ 0x29, 0x37, 0x37, 0xD7, 0x2C, 0xC1, 0x09, 0x44, 0x36, 0x39, 0x71, 0xDA, 0x44, 0xD5, 0xEA, 0xE9, 0xE8, 0xB1, 0xE8, 0x0D, 0x75, 0x76, 0xC5, 0x0A, 0xAF, 0xF6, 0x7E, 0x42, 0x31, 0x96, 0xF3, 0x78, -+ 0x57, 0xD1, 0xD2, 0x35, 0xAB, 0x28, 0x39, 0xAE, 0x37, 0x79, 0xF9, 0xF2, 0xF9, 0xB7, 0x59, 0xFC, 0x52, 0xDA, 0xAE, 0xB8, 0x63, 0x7B, 0x8F, 0x4F, 0xC9, 0x0B, 0xD9, 0x4A, 0xDB, 0x6F, 0x57, 0x72, -+ 0x20, 0x82, 0xE9, 0x43, 0xD7, 0xCE, 0x3E, 0x73, 0x50, 0x1D, 0x8C, 0x93, 0xB5, 0x21, 0x2D, 0xEC, 0xE4, 0x95, 0x35, 0x53, 0x6E, 0xFC, 0xEA, 0xB8, 0xB8, 0x5E, 0xB2, 0xAA, 0x94, 0xCB, 0xE7, 0x7B, -+ 0xAA, 0xDF, 0x46, 0x58, 0x92, 0x01, 0xA3, 0xA8, 0xAC, 0xA4, 0x83, 0x9E, 0x51, 0x9B, 0x6F, 0xD0, 0xCC, 0x52, 0xEA, 0x58, 0xA8, 0xAC, 0x08, 0xDC, 0x15, 0xEE, 0xF4, 0x8E, 0xDB, 0x89, 0xA1, 0xFC, -+ 0x46, 0xE7, 0x13, 0x53, 0xFE, 0x73, 0xF6, 0x8E, 0x0F, 0x48, 0x55, 0xB7, 0xFF, 0x73, 0x27, 0xAE, 0x4B, 0xCB, 0xA0, 0x9D, 0xE0, 0x33, 0x53, 0xD4, 0x1E, 0xDE, 0x26, 0x78, 0x5A, 0x94, 0x49, 0x6A, -+ 0xCB, 0x4E, 0x74, 0x3B, 0xA0, 0x65, 0xD1, 0x79, 0x3F, 0xBE, 0x5B, 0x29, 0x3A, 0x77, 0x1C, 0xCB, 0x8B, 0x8D, 0x8B, 0xD2, 0x76, 0x77, 0xD5, 0xFF, 0xF7, 0x43, 0xF9, 0x49, 0x77, 0x21, 0x9D, 0x55, -+ 0x57, 0x35, 0xE5, 0xD0, 0xAC, 0xE1, 0x18, 0xC2, 0x57, 0x1F, 0xC6, 0x96, 0xAF, 0x1F, 0xB0, 0xA1, 0x97, 0x6A, 0x37, 0x85, 0xB0, 0x89, 0x61, 0x11, 0x7F, 0x19, 0x98, 0xB7, 0xE6, 0x1C, 0xF8, 0x14, -+ 0xFE, 0x91, 0xA8, 0xB8, 0x1D, 0x62, 0xE4, 0x8D, 0x93, 0xB0, 0x28, 0x0D, 0xBA, 0xBF, 0x18, 0xE1, 0x12, 0x12, 0x43, 0xBF, 0xF3, 0x7B, 0x5A, 0xF7, 0x1E, 0x29, 0xA3, 0x1B, 0x48, 0x4A, 0xDA, 0x4F, -+ 0x1F, 0xBC, 0x88, 0x30, 0x11, 0x27, 0x76, 0x60, 0xAE, 0xB4, 0x71, 0xB3, 0x09, 0xFA, 0x00, 0x32, 0x23, 0x5B, 0x3B, 0x2E, 0x2B, 0x2C, 0xAF, 0xCC, 0xC5, 0x44, 0x61, 0xB0, 0xB4, 0x5A, 0xE1, 0x5D, -+ 0x92, 0xAD, 0x61, 0xB6, 0x4C, 0x5F, 0x37, 0x4A, 0x23, 0x74, 0x44, 0xF9, 0x63, 0x1D, 0xE4, 0x3C, 0x0B, 0x67, 0x8D, 0x03, 0xB6, 0x4E, 0xA3, 0xF9, 0x9B, 0xBB, 0xD1, 0x79, 0x61, 0x15, 0x39, 0xFC, -+ 0x91, 0x69, 0x3B, 0x81, 0xE6, 0xA2, 0xF2, 0xFC, 0x81, 0x70, 0xE8, 0xBF, 0xD6, 0xD5, 0xB7, 0x8A, 0x5C, 0xD6, 0x44, 0x88, 0x1A, 0x67, 0xFD, 0x28, 0xAC, 0xDA, 0x74, 0x70, 0x58, 0x47, 0x27, 0x6C, -+ 0x16, 0xBD, 0xF0, 0x9E, 0xBE, 0xBB, 0x21, 0x8C, 0xC6, 0x89, 0xB4, 0x50, 0x85, 0x43, 0xC3, 0x9E, 0xA6, 0x56, 0x44, 0xA7, 0xF3, 0x3D, 0xF4, 0x7D, 0x32, 0x72, 0xA3, 0x7C, 0xA8, 0x30, 0x76, 0x7B, -+ 0x23, 0xF5, 0x52, 0xA1, 0xB3, 0x89, 0xF1, 0x4B, 0xE8, 0x71, 0xFF, 0x72, 0x59, 0xFB, 0x3A, 0x32, 0x93, 0x0F, 0x56, 0xDD, 0x42, 0x71, 0xF0, 0x21, 0xAA, 0xAC, 0xD7, 0xA2, 0xAC, 0x82, 0x03, 0xCF, -+ 0x69, 0xE9, 0x64, 0x30, 0xA1, 0x6A, 0x2F, 0x96, 0xC1, 0x1F, 0xD2, 0xCD, 0x44, 0xE0, 0x86, 0xE1, 0x16, 0x8A, 0x8C, 0x1A, 0x63, 0x7E, 0x23, 0x21, 0xF6, 0x0C, 0xA5, 0x93, 0x0C, 0x02, 0xF9, 0x2D, -+ 0xFF, 0x2D, 0x30, 0xAB, 0x10, 0x5A, 0xF8, 0x46, 0xB1, 0x6A, 0x90, 0xE2, 0xA7, 0x4D, 0xBC, 0x97, 0xDA, 0x40, 0xA1, 0x3F, 0x40, 0x5B, 0x71, 0x04, 0xBF, 0x2F, 0x22, 0xFC, 0xA4, 0x2E, 0x3A, 0x50, -+ 0x0A, 0x72, 0x7A, 0xE1, 0xEA, 0x24, 0x01, 0x21, 0x60, 0x16, 0xFE, 0x8B, 0xF0, 0xDD, 0xBA, 0xE6, 0x8E, 0xD8, 0x74, 0x17, 0xFA, 0x76, 0x0D, 0xBA, 0x07, 0xD8, 0x4C, 0x26, 0x9C, 0xF4, 0x2B, 0xBE, -+ 0xB3, 0x7D, 0x5B, 0x90, 0xEB, 0x23, 0x69, 0x76, 0xB8, 0x6F, 0x4D, 0x8F, 0x35, 0xE7, 0x82, 0x83, 0x7E, 0x32, 0xA1, 0x95, 0xF9, 0xCF, 0xD6, 0xC6, 0x73, 0x53, 0x6A, 0xA0, 0x43, 0x5B, 0x38, 0x0C, -+ 0x02, 0xD1, 0xB7, 0xB0, 0xDE, 0x3C, 0x47, 0x9F, 0xE6, 0xB5, 0xFE, 0x6C, 0xF9, 0x7C, 0x3B, 0xD7, 0x46, 0x10, 0xCF, 0x15, 0x06, 0xE5, 0x99, 0x86, 0xF3, 0x81, 0x46, 0xB9, 0xA8, 0x96, 0x3C, 0xAE, -+ 0x08, 0x00, 0x30, 0x75, 0xFF, 0x60, 0x7D, 0x47, 0x0E, 0x87, 0xA7, 0x2E, 0x8F, 0xFB, 0xC7, 0xE1, 0x38, 0x38, 0xDA, 0x93, 0xDC, 0x3A, 0x4B, 0x3E, 0x52, 0x34, 0x75, 0xCD, 0xC4, 0xE4, 0x8C, 0x2A, -+ 0x54, 0x5F, 0x30, 0xE5, 0x89, 0x24, 0x7C, 0x64, 0x62, 0x2F, 0xA1, 0x05, 0x59, 0xB7, 0x24, 0xBB, 0x5F, 0xE8, 0x73, 0xED, 0xDF, 0x78, 0x38, 0xE1, 0x83, 0x2A, 0xD2, 0x17, 0xD4, 0xE8, 0x0B, 0x58, -+ 0xB9, 0xFB, 0x39, 0xB6, 0x6C, 0xBE, 0x9F, 0x26, 0x48, 0x09, 0xEE, 0xD5, 0x94, 0x23, 0xF0, 0xA3, 0xCD, 0x3F, 0x00, 0xAD, 0xFC, 0x47, 0x42, 0xCE, 0x1B, 0x3C, 0xB6, 0x5B, 0x2B, 0xD2, 0xE3, 0x10, -+ 0x59, 0x50, 0x9A, 0xFC, 0x7E, 0x48, 0x36, 0xDF, 0x0A, 0xE6, 0xF9, 0xD5, 0xC0, 0x63, 0x30, 0x95, 0x3F, 0xA2, 0xBB, 0x6F, 0xD0, 0x18, 0x7A, 0x6C, 0xAB, 0x88, 0x14, 0xEE, 0x12, 0xD1, 0x4E, 0xBC, -+ 0x6D, 0xEF, 0xFC, 0x23, 0xE1, 0xC9, 0x01, 0x65, 0xE2, 0xE7, 0x78, 0x59, 0x45, 0xF1, 0x8B, 0xCC, 0x74, 0xD8, 0xB1, 0xC6, 0xAF, 0xA1, 0x5B, 0x32, 0x6C, 0x04, 0x7D, 0x94, 0x66, 0x8C, 0x03, 0x32, -+ 0xD1, 0x47, 0xAF, 0x57, 0x52, 0x17, 0x64, 0x52, 0xC7, 0x12, 0x20, 0xB0, 0xA4, 0x32, 0xD4, 0x89, 0x9B, 0x6C, 0xEA, 0xA5, 0x87, 0x59, 0x9C, 0xAC, 0xF0, 0x04, 0xBA, 0x12, 0xA9, 0x0B, 0x26, 0x06, -+ 0x21, 0x43, 0x06, 0xFA, 0x30, 0x0A, 0x4A, 0x13, 0xBF, 0x8F, 0x99, 0x4F, 0x46, 0xF5, 0xDF, 0x92, 0xE6, 0xD3, 0xBF, 0x47, 0x2C, 0xF7, 0x29, 0xFF, 0xF6, 0x66, 0xF2, 0x07, 0xEA, 0x71, 0xD5, 0x2C, -+ 0xF6, 0xF2, 0xB1, 0x9C, 0x87, 0xCE, 0xAF, 0x08, 0xCD, 0x44, 0x5D, 0x18, 0x4F, 0x89, 0x81, 0xCA, 0x28, 0xCB, 0xFE, 0xA0, 0x03, 0x06, 0xAC, 0x76, 0x8B, 0x47, 0x15, 0x42, 0xF3, 0x27, 0x48, 0x76, -+ 0x68, 0x4B, 0xCE, 0x7C, 0x17, 0xEB, 0xEC, 0x6C, 0xC6, 0xD7, 0xF9, 0x0E, 0xC1, 0x3D, 0xA9, 0x4C, 0xD7, 0xB4, 0xE9, 0x8E, 0x1C, 0xFA, 0xBA, 0x8F, 0x9C, 0xDD, 0xBF, 0x08, 0xCF, 0xD7, 0xDD, 0x5E, -+ 0x3A, 0x73, 0x25, 0x66, 0x36, 0x65, 0x98, 0x0D, 0x3F, 0x55, 0x59, 0x22, 0x60, 0x8A, 0x05, 0xD9, 0xDC, 0x20, 0x76, 0x69, 0x29, 0x41, 0x30, 0x66, 0xB3, 0xB1, 0xAF, 0x98, 0x44, 0x31, 0x34, 0x5F, -+ 0xD0, 0x12, 0x1D, 0x16, 0x42, 0xEA, 0xB5, 0x84, 0xF7, 0x47, 0x37, 0x3D, 0x08, 0xCE, 0x5B, 0x2E, 0x26, 0xE7, 0x6B, 0x51, 0xAB, 0x58, 0xE3, 0x9E, 0x6F, 0x9E, 0x6C, 0x4C, 0x33, 0xF1, 0x52, 0xE5, -+ 0x03, 0x7F, 0x7F, 0x52, 0x76, 0x0A, 0x98, 0x36, 0x94, 0x1D, 0x43, 0xF4, 0x3C, 0x2E, 0x8C, 0x34, 0x6E, 0x40, 0x4A, 0xF3, 0x51, 0x80, 0x13, 0x3C, 0x2C, 0x8B, 0x44, 0x03, 0x86, 0x98, 0xFB, 0xE6, -+ 0xE8, 0x44, 0xEB, 0xC9, 0x66, 0x57, 0xD5, 0xD3, 0x24, 0xCE, 0xB2, 0xCC, 0x38, 0xA4, 0xF2, 0xE3, 0xB0, 0x09, 0x38, 0x39, 0x3B, 0x05, 0x4E, 0x19, 0xA1, 0xAF, 0x2C, 0x7E, 0x2C, 0xBB, 0xC1, 0xC4, -+ 0x52, 0xB6, 0x9D, 0x02, 0xA4, 0xBF, 0x04, 0xEB, 0x58, 0x42, 0xAA, 0x6A, 0x0A, 0xF8, 0xFB, 0x9D, 0x85, 0xD7, 0x98, 0x5B, 0x9B, 0xB2, 0x3D, 0x86, 0x06, 0x24, 0xB4, 0xE4, 0x04, 0x7E, 0x14, 0x26, -+ 0xF7, 0x17, 0x76, 0x7E, 0x51, 0x5C, 0x3D, 0x99, 0xF4, 0xF3, 0xA1, 0x05, 0x66, 0x56, 0x23, 0x2A, 0x21, 0x1C, 0xC2, 0xC8, 0x07, 0xF1, 0xF9, 0xF9, 0x61, 0x1D, 0xC8, 0xAE, 0x50, 0x81, 0x94, 0xF7, -+ 0xD6, 0x18, 0x2E, 0xE3, 0xAE, 0x96, 0x71, 0xB3, 0x45, 0xD0, 0x23, 0x18, 0x94, 0x78, 0x6E, 0x70, 0x72, 0x42, 0xF0, 0x68, 0x80, 0x69, 0x5A, 0x3F, 0xA6, 0x26, 0x89, 0x15, 0x74, 0xFA, 0xEE, 0xEE, -+ 0x83, 0x39, 0xDE, 0xBE, 0x23, 0x0E, 0xE7, 0x6B, 0x82, 0xA9, 0xAE, 0x4F, 0x03, 0xD9, 0xCC, 0xA2, 0x8F, 0x3B, 0x9F, 0x2F, 0x06, 0xAC, 0x23, 0xE3, 0xD2, 0xCF, 0x76, 0xF0, 0x19, 0x50, 0x6F, 0xEC, -+ 0x5C, 0x6E, 0x99, 0x07, 0x58, 0x7F, 0xB3, 0xBF, 0x4C, 0x2B, 0xE6, 0x58, 0xC5, 0x6E, 0xD6, 0x31, 0x88, 0x46, 0x56, 0xD6, 0xC2, 0x0E, 0xE1, 0x0B, 0x78, 0xD8, 0xF2, 0xD8, 0x01, 0x82, 0x30, 0xCD, -+ 0xF9, 0x5E, 0xB8, 0x6E, 0x9C, 0xFD, 0xA2, 0xE1, 0x55, 0xBA, 0x33, 0x58, 0x12, 0xFC, 0x72, 0xEB, 0x88, 0x0B, 0xEA, 0x3A, 0x8C, 0x3A, 0x98, 0xCB, 0x56, 0x71, 0xE0, 0xE4, 0x03, 0x70, 0x4A, 0x55, -+ 0x33, 0x62, 0x5B, 0x3E, 0xFA, 0x5C, 0xD3, 0x6C, 0x93, 0xDA, 0x37, 0x77, 0x21, 0xBF, 0x43, 0x82, 0xA0, 0xD0, 0x11, 0x77, 0xBC, 0xC5, 0xBC, 0xB4, 0xB7, 0x08, 0x23, 0x32, 0xE3, 0xE5, 0x85, 0x1B, -+ 0x17, 0xF7, 0xB9, 0xD9, 0x10, 0xD2, 0x19, 0xEC, 0x5F, 0x98, 0xB9, 0xCE, 0x2E, 0xD2, 0x7F, 0x40, 0xB5, 0x72, 0x13, 0x8F, 0xE9, 0xA0, 0x3F, 0x15, 0x48, 0x65, 0x23, 0xB2, 0x9A, 0xA4, 0xC6, 0x07, -+ 0x60, 0x17, 0xEF, 0xD2, 0x70, 0x70, 0x56, 0x0A, 0xC6, 0x13, 0xB3, 0x1D, 0x76, 0xB9, 0x60, 0x07, 0xEA, 0x98, 0xD7, 0xB0, 0x1D, 0x9A, 0x92, 0x54, 0x0C, 0x6A, 0x03, 0x0C, 0x4D, 0x0B, 0x98, 0x50, -+ 0x8A, 0x14, 0x51, 0xE6, 0x48, 0x7F, 0x11, 0x2E, 0xF9, 0xE9, 0x05, 0xBA, 0x88, 0x92, 0x7A, 0xD6, 0x19, 0xEE, 0xEC, 0x6B, 0x58, 0xEE, 0xF0, 0x62, 0xE9, 0x1D, 0x35, 0x10, 0xB4, 0xED, 0xDA, 0xB2, -+ 0xE5, 0xF9, 0x15, 0x46, 0x70, 0xEA, 0x8C, 0xF0, 0x00, 0x4C, 0xA4, 0xE2, 0xCC, 0xB5, 0xCE, 0x6C, 0x18, 0x70, 0xDA, 0x6B, 0xD8, 0xFD, 0xDC, 0x36, 0x41, 0x03, 0x91, 0x08, 0x82, 0x23, 0xF1, 0x53, -+ 0xF6, 0x83, 0x97, 0x6B, 0xAB, 0x00, 0x87, 0xB2, 0xAF, 0x15, 0x7C, 0xA7, 0x89, 0x3E, 0x5C, 0x34, 0xF8, 0x38, 0xB2, 0x2A, 0xE6, 0x51, 0x4A, 0xB3, 0x81, 0xF4, 0x7A, 0x63, 0x3E, 0xC8, 0x9A, 0x2E, -+ 0x1E, 0x51, 0x11, 0x18, 0x75, 0xB3, 0xAE, 0x9A, 0xEB, 0x66, 0x7D, 0xC8, 0x38, 0x6D, 0xB8, 0x1F, 0x13, 0xFF, 0x8D, 0xF7, 0x38, 0xB1, 0x02, 0x15, 0xDA, 0x52, 0x21, 0x01, 0xEF, 0xB8, 0xAD, 0xC9, -+ 0xB1, 0x08, 0x75, 0xA4, 0x79, 0xB6, 0x47, 0x93, 0xB2, 0x4C, 0x67, 0x68, 0x41, 0xE3, 0x5C, 0x97, 0xA8, 0xE7, 0xEE, 0xBC, 0x6C, 0x51, 0x72, 0xCA, 0x88, 0x66, 0x1F, 0x2B, 0x62, 0x86, 0x46, 0x31, -+ 0x2A, 0x68, 0x8C, 0xCC, 0x12, 0x43, 0x7D, 0x70, 0x39, 0x0C, 0x3E, 0x16, 0x21, 0x92, 0x0E, 0x65, 0x53, 0x98, 0xFF, 0x9A, 0x7E, 0x53, 0x74, 0xDF, 0xEC, 0xE4, 0x00, 0x19, 0x5B, 0x6A, 0x43, 0x1C, -+ 0xDC, 0xC4, 0xB2, 0xF4, 0x4D, 0xAA, 0xC9, 0xBF, 0x91, 0x5E, 0x1B, 0x23, 0xA8, 0x5F, 0xED, 0x35, 0xE3, 0xC4, 0x3F, 0xCF, 0x02, 0x13, 0x04, 0x02, 0x10, 0x94, 0x83, 0x13, 0x48, 0x98, 0x37, 0x08, -+ 0x0F, 0x1D, 0x80, 0x30, 0x27, 0xB0, 0x98, 0x95, 0x11, 0xD0, 0x63, 0x16, 0x7B, 0x36, 0x58, 0xD3, 0xF9, 0x8C, 0x0D, 0x2C, 0xA8, 0x79, 0x76, 0x53, 0x49, 0x28, 0x98, 0xC8, 0x14, 0x0E, 0x21, 0x86, -+ 0x9C, 0x56, 0x3A, 0x5C, 0x03, 0xB7, 0x86, 0x07, 0x8F, 0x63, 0x4D, 0x75, 0xED, 0x2B, 0xDA, 0xD2, 0x74, 0x22, 0x51, 0xB6, 0x36, 0x48, 0x7D, 0x1A, 0xFF, 0xAB, 0xF3, 0x1E, 0x66, 0x46, 0x98, 0xC1, -+ 0x77, 0x3F, 0x4E, 0x4D, 0xE9, 0xF2, 0xC3, 0xA4, 0xFE, 0xE7, 0x58, 0xEA, 0x07, 0x34, 0x89, 0x46, 0x99, 0x48, 0xBC, 0x9B, 0x50, 0xDB, 0x60, 0xD0, 0x5D, 0x9F, 0x18, 0x31, 0x41, 0x48, 0x94, 0xC2, -+ 0x06, 0x19, 0x0E, 0xCD, 0xE8, 0xF2, 0x49, 0xBD, 0x43, 0x57, 0x7C, 0x8D, 0x40, 0xCA, 0x61, 0x1D, 0x23, 0xB6, 0xF7, 0x54, 0xCB, 0x06, 0xC6, 0x77, 0xC7, 0x1A, 0x77, 0x00, 0xCB, 0x8A, 0xF9, 0x30, -+ 0xC5, 0xFF, 0xDB, 0x55, 0x4C, 0xA6, 0xAB, 0xE6, 0xD0, 0x83, 0xEE, 0x1A, 0x5A, 0xBF, 0xAA, 0x27, 0xA6, 0xF3, 0x1A, 0x83, 0x02, 0xBF, 0xD5, 0x78, 0xBC, 0x52, 0x93, 0xBD, 0xA4, 0xC1, 0x84, 0xE7, -+ 0xD7, 0xBB, 0x58, 0x9F, 0x6D, 0xEA, 0x11, 0xC9, 0xF3, 0x9A, 0xB9, 0xCD, 0x09, 0x8A, 0x72, 0x81, 0x63, 0xD7, 0x96, 0x2B, 0x6A, 0x40, 0x06, 0xF2, 0x65, 0x27, 0x73, 0xD5, 0xD8, 0xCA, 0xDA, 0x35, -+ 0xFB, 0x07, 0xDD, 0x8D, 0x39, 0x2D, 0xF7, 0x07, 0x9D, 0x1D, 0x72, 0x1D, 0xFA, 0xEC, 0xFF, 0xAC, 0xDB, 0x80, 0x81, 0x42, 0xFB, 0xA4, 0xF3, 0xC9, 0xB5, 0xC3, 0x1C, 0x81, 0xBB, 0x58, 0xA9, 0xAA, -+ 0x30, 0x1F, 0x3D, 0x54, 0xEB, 0x4B, 0x0D, 0xBF, 0xF7, 0xF2, 0x67, 0x73, 0xB4, 0x56, 0xD5, 0xC0, 0x2F, 0x94, 0x25, 0x4E, 0xB7, 0x7E, 0x35, 0x3A, 0x68, 0x75, 0x3D, 0xCD, 0xC6, 0x2E, 0xC2, 0x3B, -+ 0xDD, 0x5D, 0x6B, 0xBA, 0x07, 0xDB, 0x3E, 0xAC, 0x51, 0xE6, 0x4C, 0x34, 0xB4, 0xB5, 0x34, 0x38, 0xBF, 0x7C, 0x6E, 0xF9, 0xC6, 0x23, 0x7B, 0x68, 0xF6, 0x98, 0xE4, 0x31, 0x50, 0x77, 0x23, 0xA2, -+ 0xE3, 0xBC, 0x43, 0xDD, 0xB6, 0xD9, 0x52, 0xA4, 0xF1, 0x2B, 0x43, 0xF7, 0x64, 0xF7, 0x5B, 0x5C, 0x6C, 0xB8, 0x82, 0xF7, 0xFE, 0xB7, 0x38, 0xAE, 0x3F, 0xB9, 0x1C, 0xBF, 0x49, 0x7E, 0x8E, 0x1D, -+ 0x1B, 0x1D, 0x59, 0x22, 0x79, 0xAF, 0x26, 0x16, 0x6C, 0xCA, 0x5A, 0xBD, 0xD2, 0x8E, 0x6E, 0xFF, 0x4F, 0xBA, 0x74, 0x60, 0x5E, 0xA8, 0x85, 0xCE, 0xEB, 0x5A, 0x01, 0xEA, 0xFD, 0xE3, 0x16, 0x93, -+ 0x9C, 0x35, 0xB8, 0x01, 0x0D, 0xD8, 0x57, 0x9A, 0x3A, 0x94, 0xFC, 0x68, 0x5E, 0xEB, 0x1F, 0x62, 0x83, 0xC5, 0xE6, 0xAD, 0x51, 0xE8, 0x2A, 0x93, 0x51, 0xC9, 0xD1, 0xA3, 0xFD, 0xB8, 0xB3, 0xD2, -+ 0x6D, 0x02, 0x93, 0xA8, 0xBC, 0xBF, 0x25, 0x6B, 0x5E, 0x5B, 0xB3, 0x31, 0x23, 0x3A, 0x30, 0xDA, 0xF0, 0xFE, 0x4A, 0xDE, 0x80, 0x82, 0xB3, 0x03, 0xC3, 0x9E, 0x55, 0x1D, 0xBC, 0xC3, 0x02, 0xBF, -+ 0x9B, 0x8A, 0xD3, 0x93, 0x3C, 0xB9, 0xAD, 0x90, 0x0A, 0x68, 0x25, 0x36, 0x7E, 0x15, 0x3E, 0x89, 0x6B, 0xC9, 0xAF, 0xDF, 0x8E, 0x40, 0x55, 0xA9, 0xD0, 0x9B, 0x85, 0x4C, 0xA8, 0x3D, 0x3A, 0xDF, -+ 0x6E, 0x00, 0x43, 0x75, 0xC4, 0xED, 0xE4, 0xEC, 0x5C, 0x57, 0x80, 0x5F, 0x79, 0xA2, 0x06, 0x03, 0x4C, 0x51, 0x40, 0xCC, 0x60, 0x27, 0x7E, 0xAA, 0x74, 0xCD, 0xEE, 0xE9, 0xF0, 0x49, 0x3E, 0x90, -+ 0x91, 0xC2, 0x29, 0x98, 0xB6, 0x13, 0x86, 0x3C, 0xE3, 0xAB, 0x77, 0x98, 0x39, 0x2E, 0x69, 0x67, 0x58, 0xC0, 0x32, 0x28, 0x6E, 0x10, 0x39, 0xBB, 0x13, 0x6C, 0x7C, 0x54, 0x30, 0xCB, 0xCD, 0x6D, -+ 0x99, 0x9A, 0xA1, 0xF7, 0xB2, 0x8B, 0xE6, 0x03, 0x32, 0xCE, 0x70, 0xF5, 0x6E, 0xE3, 0x1C, 0x9E, 0xAB, 0x2D, 0x1E, 0x41, 0x3F, 0x0E, 0x65, 0x59, 0xE1, 0xF5, 0xCC, 0x6A, 0x5A, 0xAA, 0x8A, 0xD2, -+ 0x64, 0x46, 0x88, 0x85, 0x52, 0x18, 0x1B, 0x8A, 0xA5, 0x30, 0xE4, 0xC6, 0x64, 0x68, 0x01, 0x08, 0x00, 0xAD, 0x5A, 0x94, 0xF3, 0xA0, 0xDD, 0x36, 0x9F, 0x1D, 0x5D, 0x16, 0xA8, 0x3A, 0x5F, 0xF7, -+ 0x49, 0xC5, 0xFE, 0xC8, 0x67, 0x2F, 0x92, 0xE5, 0xC8, 0x40, 0x0B, 0xD7, 0x67, 0x1F, 0x91, 0xFC, 0x06, 0x97, 0x21, 0x53, 0x14, 0xF0, 0x26, 0x51, 0x61, 0x42, 0xCA, 0xA6, 0x03, 0xED, 0x19, 0x11, -+ 0x5A, 0xAC, 0x9C, 0x32, 0x5D, 0x18, 0x34, 0x0E, 0x67, 0x62, 0xEF, 0xBA, 0xCF, 0xEF, 0x8E, 0x33, 0x13, 0x3C, 0x0F, 0x8F, 0x84, 0xBE, 0x6C, 0x1F, 0x95, 0xCB, 0x24, 0x45, 0x3D, 0xD8, 0x46, 0xEB, -+ 0xC6, 0x29, 0x5C, 0x7E, 0x7D, 0xF9, 0x44, 0xB0, 0x17, 0xF1, 0xEF, 0x8A, 0x47, 0x85, 0x22, 0x96, 0xF0, 0x91, 0x96, 0xD1, 0x51, 0xB7, 0x8D, 0x77, 0xC9, 0xC1, 0xDA, 0x7D, 0x99, 0x75, 0xE5, 0x89, -+ 0x83, 0xD3, 0x31, 0xE1, 0x78, 0x3F, 0xA6, 0x3B, 0xD9, 0x0C, 0x58, 0xC8, 0x2E, 0x4B, 0xFD, 0xDF, 0x8F, 0x0B, 0x4C, 0x37, 0xBB, 0xA4, 0x39, 0x07, 0x4F, 0x32, 0xE4, 0x1A, 0xBB, 0xCC, 0x90, 0xB5, -+ 0x6C, 0x6A, 0xD3, 0x6E, 0xC8, 0xAB, 0x1F, 0xB3, 0x34, 0xCE, 0x59, 0xDA, 0x0E, 0xEF, 0xBE, 0x46, 0x5B, 0xF9, 0x62, 0x67, 0x4D, 0x25, 0x81, 0x5F, 0x22, 0x10, 0x84, 0x86, 0x56, 0x93, 0xB0, 0x3A, -+ 0x44, 0xF6, 0x39, 0xF3, 0xA4, 0x7C, 0x36, 0xEE, 0xB2, 0x46, 0xD3, 0x90, 0x7D, 0x2F, 0x1D, 0x23, 0x78, 0xD7, 0xD7, 0x93, 0xD3, 0x95, 0xC3, 0x65, 0x52, 0x5A, 0x46, 0x5D, 0x9C, 0xE4, 0x15, 0x25, -+ 0x41, 0xE5, 0x94, 0xA7, 0x29, 0xAC, 0x62, 0xEE, 0x4E, 0x3A, 0xB5, 0x89, 0xE7, 0xB0, 0x01, 0xD5, 0xF2, 0x35, 0x4E, 0x3E, 0x30, 0xB1, 0x82, 0xBD, 0x69, 0xDC, 0x5A, 0x87, 0x7F, 0xF1, 0xCB, 0x87, -+ 0xFB, 0x9C, 0x25, 0x60, 0xBF, 0xE8, 0x2D, 0x3E, 0xDB, 0x06, 0x3B, 0xB7, 0x4D, 0x4B, 0x1F, 0x5C, 0xF3, 0x31, 0xB2, 0xD8, 0x4B, 0x45, 0x98, 0x8E, 0x04, 0xF7, 0x18, 0x32, 0xF0, 0x27, 0x2C, 0xD5, -+ 0xA8, 0x44, 0x91, 0x9E, 0xC3, 0x41, 0x3A, 0xE0, 0xE9, 0x9F, 0x0A, 0x8D, 0xAD, 0xC1, 0x87, 0xE9, 0xBD, 0x9A, 0x4D, 0xF9, 0xE1, 0x05, 0xD1, 0x81, 0x37, 0x60, 0xC4, 0xFA, 0x32, 0x95, 0xBC, 0x22, -+ 0x51, 0x7E, 0x89, 0x07, 0xD9, 0x85, 0xD2, 0x79, 0xEA, 0x25, 0x67, 0x4C, 0x78, 0x53, 0x18, 0x80, 0x5D, 0x1D, 0xBC, 0xD7, 0x97, 0x62, 0x46, 0x83, 0xC3, 0x63, 0xEA, 0xCA, 0xFE, 0x62, 0xC0, 0x78, -+ 0x83, 0x4A, 0x5B, 0x13, 0x78, 0x7F, 0xAF, 0x0A, 0xB3, 0xB4, 0xD2, 0x45, 0x71, 0x3B, 0x02, 0x22, 0x2A, 0x8A, 0x60, 0x56, 0x23, 0xA5, 0xE1, 0xE5, 0x0F, 0x5D, 0xBB, 0xAB, 0x95, 0x6A, 0xBC, 0xA5, -+ 0xF0, 0x64, 0x11, 0xD5, 0x97, 0xB0, 0xFB, 0x2D, 0x6D, 0xCC, 0x65, 0x0E, 0x77, 0x65, 0xF5, 0xE2, 0x3C, 0x4B, 0x8B, 0xC2, 0xB7, 0xAE, 0x0C, 0x88, 0x58, 0xB6, 0x50, 0xD1, 0x66, 0x89, 0x10, 0x38, -+ 0x54, 0x39, 0x2C, 0xB2, 0x41, 0x0E, 0xBD, 0x20, 0x8D, 0xF2, 0xE8, 0xD6, 0xF2, 0x21, 0x33, 0xCB, 0x63, 0xBC, 0x21, 0xE9, 0x69, 0xDC, 0x67, 0xA0, 0xE2, 0xEE, 0xDC, 0x42, 0x8E, 0x3B, 0x71, 0xC8, -+ 0x31, 0x89, 0x9B, 0x8D, 0x41, 0x22, 0xE5, 0x96, 0x69, 0xC1, 0x42, 0xBA, 0xB2, 0x0A, 0xFF, 0x7E, 0xD1, 0x89, 0x54, 0xB6, 0x52, 0x4B, 0x8C, 0x58, 0xD3, 0x91, 0xE3, 0x70, 0x61, 0xD1, 0xD5, 0x66, -+ 0xEA, 0x04, 0x42, 0x7E, 0x91, 0x44, 0x09, 0x5F, 0xDB, 0x1A, 0x28, 0xC1, 0xFD, 0x49, 0xCA, 0xD9, 0xFD, 0x55, 0xD7, 0x54, 0x7F, 0xF9, 0xD6, 0x0D, 0x54, 0xF7, 0x20, 0x5E, 0xBE, 0xD4, 0x96, 0xD1, -+ 0xE9, 0xDE, 0xDB, 0x8B, 0x28, 0xCE, 0xF8, 0x1D, 0x1A, 0xA5, 0x78, 0x05, 0x76, 0xD6, 0x7D, 0x70, 0x23, 0x21, 0xE5, 0x89, 0xD4, 0x4A, 0x60, 0xE2, 0x1F, 0xA0, 0x7B, 0xD9, 0x2D, 0xCF, 0xA1, 0x57, -+ 0xF1, 0x0D, 0xA6, 0x0F, 0xAD, 0x6E, 0x44, 0x28, 0x07, 0xD4, 0xE1, 0xCF, 0x5F, 0x7A, 0xBD, 0x0B, 0xB4, 0xBF, 0x1D, 0x7F, 0xF3, 0x6A, 0x0E, 0x63, 0x6E, 0x30, 0x0C, 0xD8, 0x57, 0x55, 0x33, 0x1B, -+ 0x22, 0x05, 0x97, 0x87, 0x23, 0xD9, 0xAC, 0xE6, 0xF2, 0xD5, 0x6F, 0xEC, 0x9D, 0x54, 0x59, 0x4C, 0xDB, 0x64, 0x3B, 0x8A, 0x9D, 0x8E, 0x6F, 0x76, 0x5C, 0xCE, 0xEF, 0x28, 0x19, 0xB3, 0xEF, 0x55, -+ 0xDE, 0x38, 0x9F, 0xDC, 0x00, 0x79, 0x27, 0xD2, 0x22, 0xF1, 0x1D, 0x22, 0x76, 0xDD, 0x18, 0xD4, 0xDF, 0x86, 0xE8, 0xE7, 0xE2, 0xA4, 0xD9, 0x94, 0x3D, 0xD8, 0x83, 0xD7, 0x0B, 0xC0, 0x45, 0xB6, -+ 0xAF, 0xAB, 0xED, 0xDF, 0x42, 0x18, 0xA2, 0x5A, 0xBF, 0x3F, 0xB0, 0xD4, 0x13, 0xD6, 0x18, 0x37, 0xC4, 0x5B, 0x86, 0xF9, 0xE6, 0xC6, 0x25, 0x53, 0x37, 0xC3, 0x8A, 0xF3, 0x5B, 0xE8, 0x2B, 0xE1, -+ 0xF0, 0x3A, 0xF0, 0x81, 0x1F, 0x2F, 0x1E, 0xEB, 0x25, 0x27, 0x6B, 0xF6, 0xAB, 0x27, 0xB9, 0x25, 0x64, 0x33, 0x4F, 0x06, 0x3A, 0x83, 0x18, 0xFC, 0x69, 0xC1, 0x34, 0x70, 0xDA, 0x6F, 0xD9, 0x47, -+ 0xB7, 0xEE, 0x2F, 0x67, 0xA7, 0x60, 0x5F, 0x6A, 0x57, 0x95, 0x3F, 0x96, 0xA3, 0x35, 0xB5, 0x50, 0x12, 0x63, 0x98, 0x67, 0x49, 0x02, 0x11, 0x88, 0x62, 0xF0, 0x86, 0x3F, 0x93, 0x13, 0xA3, 0x6A, -+ 0xD0, 0x57, 0x34, 0xE5, 0x1F, 0x54, 0x98, 0x62, 0x17, 0x0E, 0xC3, 0x69, 0x5A, 0x67, 0xE0, 0xC1, 0x6C, 0xDC, 0xDE, 0xA7, 0x7B, 0x39, 0x5D, 0x1F, 0xC4, 0xF8, 0xF1, 0x3A, 0x08, 0xBA, 0x8D, 0x4C, -+ 0xC4, 0x09, 0xCA, 0xBC, 0x9B, 0x15, 0xF1, 0x00, 0x7A, 0x4E, 0x3E, 0x4A, 0x71, 0x37, 0xB7, 0x00, 0xBE, 0xF5, 0xC3, 0x32, 0x97, 0x73, 0x5B, 0xE4, 0xC0, 0xAD, 0xB5, 0x4A, 0xA2, 0xDB, 0xE0, 0x96, -+ 0x2D, 0x16, 0x83, 0x55, 0x5C, 0xFC, 0xB8, 0x84, 0x17, 0xD7, 0x19, 0x4B, 0x7A, 0xDF, 0x09, 0xB3, 0xD2, 0xD5, 0xBA, 0xDE, 0xB1, 0xE8, 0x47, 0xAF, 0x62, 0x11, 0x65, 0x45, 0x4C, 0x4D, 0xA0, 0x0D, -+ 0x11, 0x85, 0x06, 0xE8, 0x25, 0xBD, 0x8F, 0x90, 0xDE, 0x0C, 0xC1, 0x1A, 0xFA, 0xD8, 0x5E, 0x08, 0xE9, 0x0E, 0xB5, 0xC4, 0x42, 0xD5, 0xB8, 0x5C, 0x9A, 0x9B, 0x86, 0xF2, 0x75, 0x8F, 0x4B, 0xB9, -+ 0xDA, 0x95, 0xA7, 0xB5, 0xB5, 0x85, 0xD6, 0x1A, 0x5C, 0x0E, 0x6E, 0x92, 0x0B, 0xBC, 0x43, 0x64, 0x97, 0xBB, 0x6C, 0x9A, 0xB8, 0x18, 0xAF, 0xCB, 0x5C, 0xE8, 0x14, 0x81, 0x09, 0xED, 0x99, 0x94, -+ 0x2E, 0x07, 0x90, 0xC5, 0xE2, 0x71, 0x4F, 0x4A, 0x88, 0x06, 0x74, 0xF4, 0xC6, 0x86, 0xF0, 0x7B, 0x48, 0xF5, 0xB8, 0x35, 0x9F, 0x9A, 0xF6, 0x3E, 0xB2, 0x05, 0xA3, 0x7B, 0xC0, 0xC6, 0x39, 0xDF, -+ 0x09, 0x3F, 0x88, 0xBB, 0x45, 0xCA, 0x1B, 0xA0, 0xDD, 0xD7, 0x1D, 0xB7, 0x4A, 0x22, 0xCE, 0x88, 0x4B, 0x39, 0x83, 0xD4, 0x54, 0xD5, 0x69, 0x56, 0x66, 0xED, 0x88, 0xDB, 0xB1, 0x66, 0xE9, 0x98, -+ 0x96, 0xEA, 0xBF, 0x67, 0x6B, 0xB8, 0x6D, 0x0E, 0xF3, 0xBD, 0xCF, 0x24, 0x1F, 0x50, 0xF2, 0x67, 0x2E, 0x3C, 0xD3, 0xBD, 0xAE, 0x60, 0xE6, 0xEC, 0xCD, 0xEF, 0x96, 0xDF, 0x63, 0x90, 0x88, 0xE4, -+ 0x45, 0x7A, 0xEE, 0xE7, 0x74, 0x6C, 0x24, 0xBD, 0x67, 0x6F, 0x3E, 0xFE, 0xA2, 0x7D, 0xDC, 0xDA, 0xC8, 0xA4, 0x1C, 0xA5, 0xBF, 0x9E, 0x03, 0xC8, 0xF5, 0xAF, 0xBB, 0xC8, 0x9B, 0x6D, 0x96, 0xBF, -+ 0x90, 0xD9, 0x4C, 0xFF, 0xD9, 0x1E, 0x3A, 0x8A, 0x07, 0xCC, 0xF0, 0x44, 0x93, 0xA5, 0xCB, 0x44, 0x1A, 0x9F, 0x59, 0x61, 0xEA, 0xC7, 0x1C, 0xEA, 0xB0, 0x4A, 0x78, 0xF7, 0x0B, 0x4F, 0x52, 0xF4, -+ 0x63, 0x09, 0x45, 0xAC, 0xC4, 0x5F, 0x4F, 0x83, 0xEE, 0x96, 0x7C, 0xF2, 0xB2, 0x37, 0x5D, 0x0F, 0xCE, 0x3A, 0x3F, 0x6E, 0x43, 0x96, 0x36, 0x14, 0xCC, 0xE0, 0x36, 0x03, 0xF0, 0x59, 0x7D, 0x30, -+ 0xE1, 0xD6, 0x75, 0xC0, 0x0F, 0x3C, 0xCA, 0xC4, 0x49, 0x21, 0xD2, 0x92, 0x28, 0xFF, 0x52, 0x96, 0xD4, 0x35, 0x25, 0x2F, 0x9C, 0xB3, 0x26, 0xA4, 0xD6, 0xFC, 0x34, 0xF0, 0x79, 0x89, 0xC1, 0x84, -+ 0x28, 0x86, 0x74, 0x59, 0xD1, 0x82, 0x95, 0xD2, 0xD6, 0x12, 0x10, 0x7F, 0x75, 0x35, 0xED, 0x27, 0xF6, 0x84, 0x6C, 0xA8, 0xD3, 0xB1, 0x73, 0x9D, 0x23, 0x45, 0xD2, 0x8B, 0xCC, 0xC4, 0xFD, 0x1A, -+ 0x63, 0x14, 0xFD, 0x47, 0x88, 0x9B, 0x53, 0xA1, 0xA7, 0x34, 0x63, 0x4B, 0xEC, 0x0C, 0x0A, 0x1C, 0x8A, 0x0A, 0x89, 0xAC, 0x66, 0xB0, 0xF4, 0xE5, 0x32, 0x8F, 0x76, 0x39, 0x2D, 0x01, 0x73, 0xE1, -+ 0x74, 0xEB, 0x8F, 0xA6, 0x0F, 0x86, 0xC9, 0x7F, 0x00, 0x20, 0xDC, 0xFA, 0x4E, 0x69, 0x94, 0xFC, 0x08, 0xFD, 0xCF, 0x40, 0x5A, 0x44, 0xB1, 0xC4, 0x8C, 0xC2, 0x1C, 0x51, 0xA0, 0x92, 0x81, 0x73, -+ 0x71, 0xF9, 0x6E, 0x64, 0xBD, 0x2B, 0x69, 0xBA, 0x79, 0xD7, 0xE4, 0xDD, 0x2C, 0x1F, 0x71, 0x8B, 0xF4, 0x56, 0x39, 0xCB, 0x45, 0x39, 0xE1, 0xF8, 0x9C, 0xF0, 0xE5, 0xEF, 0x25, 0x88, 0xE2, 0x5D, -+ 0xEB, 0x44, 0x10, 0x1D, 0x3C, 0x12, 0xE1, 0x4B, 0x99, 0x3C, 0x0A, 0xB3, 0x55, 0x61, 0x13, 0x82, 0x19, 0x59, 0xC6, 0xE9, 0xFC, 0x9A, 0xCC, 0x95, 0xBA, 0x17, 0x31, 0x4A, 0xC5, 0x6D, 0x2B, 0x26, -+ 0xA0, 0x39, 0x10, 0x69, 0x2A, 0xA4, 0xE1, 0x58, 0xF6, 0x81, 0xCB, 0xAA, 0x7C, 0x0F, 0xF8, 0x03, 0xD6, 0x66, 0x4B, 0x60, 0x9E, 0x5A, 0x4A, 0x25, 0x73, 0x58, 0x9F, 0xCD, 0x16, 0x8D, 0x17, 0x90, -+ 0x13, 0x32, 0x3E, 0x4B, 0x4F, 0x51, 0x53, 0x68, 0x6B, 0x74, 0x75, 0x78, 0x7C, 0xA2, 0xAF, 0xB6, 0xC4, 0xC5, 0xF4, 0xF8, 0x0D, 0x1D, 0x37, 0x46, 0x4D, 0x55, 0x57, 0x6A, 0x7B, 0x8C, 0xAC, 0xB2, -+ 0xC6, 0xC7, 0xC8, 0xD2, 0xEA, 0xF4, 0xF9, 0xFC, 0x18, 0x19, 0x20, 0x25, 0x27, 0x39, 0x5A, 0x5E, 0x90, 0xA4, 0xAF, 0xE8, 0xEF, 0xF2, 0xF8, 0xF9, 0x11, 0x29, 0x38, 0x68, 0x76, 0xAC, 0xAD, 0xBD, -+ 0xD6, 0xDA, 0xE1, 0xEB, 0xF3, 0x1B, 0x38, 0x5D, 0x67, 0x76, 0x81, 0x87, 0x8A, 0x91, 0x94, 0xAE, 0xC2, 0xD6, 0xD9, 0xDF, 0xFF, 0x01, 0x02, 0x1B, 0x2F, 0x34, 0x3B, 0x3F, 0x40, 0x58, 0x94, 0xAE, -+ 0xB1, 0xBD, 0xC5, 0xD5, 0xD7, 0x0A, 0x20, 0x23, 0x2D, 0x30, 0x3C, 0x65, 0x6C, 0x75, 0x76, 0x7E, 0x83, 0x90, 0xC2, 0xE7, 0xEB, 0x0C, 0x51, 0x64, 0x77, 0x88, 0xA4, 0xBB, 0xC1, 0xC7, 0xDB, 0xDC, -+ 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x28, 0x38, 0x45, 0x55, 0x65, 0x75, 0x81, 0x02, 0x10, 0x1C, 0x20, 0x18, 0x40, 0x08, 0x09, 0x06, 0x4C, 0x04, 0x04, -+ 0x02, 0x85, 0x00, 0x1D, 0xA0, 0x42, 0x9C, 0x48, 0x00, 0x81, 0x8C, 0x40, 0xC1, 0x42, 0x00, 0xC1, 0x0D, 0x09, 0x01, 0x94, 0xE8, 0x78, 0x5E, 0x1F, 0xF5, 0x65, 0x11, 0x03, -+ }, -+ }, -+ { -+ .name = "Dilithium Round 2, Level 5 (8-7) KAT 1", -+ .version = 0, -+ .keyform = CK_IBM_DILITHIUM_KEYFORM_ROUND2_87, -+ .rho_len = 32, -+ .rho = { -+ 0x4B, 0x62, 0x2D, 0xE1, 0x35, 0x01, 0x19, 0xC4, 0x5A, 0x9F, 0x2E, 0x2E, 0xF3, 0xDC, 0x5D, 0xF5, 0x0A, 0x75, 0x9D, 0x13, 0x8C, 0xDF, 0xBD, 0x64, 0xC8, 0x1C, 0xC7, 0xCC, 0x2F, 0x51, 0x33, 0x45, -+ }, -+ .seed_len = 32, -+ .seed = { -+ 0x13, 0x77, 0x46, 0xE7, 0x45, 0x56, 0x52, 0xAF, 0x6F, 0xB7, 0x64, 0x83, 0x32, 0x42, 0xF0, 0x64, 0xFA, 0xAA, 0xDD, 0x99, 0x3B, 0x49, 0xFE, 0x63, 0xBC, 0xDF, 0xA2, 0xC5, 0x5E, 0xD3, 0xEC, 0xD4, -+ }, -+ .tr_len = 48, -+ .tr = { -+ 0x83, 0x21, 0xD1, 0x46, 0x16, 0x74, 0x43, 0x38, 0x73, 0xC0, 0xDB, 0x53, 0x59, 0x75, 0xEA, 0xD8, 0x1F, 0x18, 0xBD, 0x73, 0x99, 0xE7, 0xAE, 0xC5, 0x4C, 0xA2, 0xF3, 0x61, 0x91, 0x83, 0xD0, 0xA9, -+ 0x89, 0x77, 0xFA, 0x2D, 0x99, 0x1C, 0x2C, 0x01, 0x8D, 0xBE, 0xDE, 0xBF, 0xBC, 0x8C, 0xAE, 0x66, -+ }, -+ .s1_len = 672, -+ .s1 = { -+ 0x1B, 0x86, 0x4D, 0x02, 0xB0, 0x0D, 0x92, 0x34, 0x12, 0x4C, 0xC8, 0x71, 0x93, 0xB0, 0x65, 0x8B, 0x16, 0x4C, 0xC0, 0xA4, 0x89, 0xC9, 0x46, 0x0C, 0x5C, 0x34, 0x44, 0x4A, 0x24, 0x10, 0xD4, 0xB4, -+ 0x81, 0x8C, 0x04, 0x32, 0xD3, 0x84, 0x00, 0x04, 0xC0, 0x91, 0x8C, 0x04, 0x29, 0xD1, 0x46, 0x91, 0x10, 0x91, 0x20, 0x19, 0x06, 0x24, 0x94, 0x14, 0x2E, 0x64, 0x48, 0x82, 0x0B, 0xA9, 0x90, 0x20, -+ 0x24, 0x0D, 0x11, 0xC2, 0x05, 0x20, 0xA7, 0x20, 0x98, 0x28, 0x91, 0x60, 0x48, 0x86, 0xD1, 0xA0, 0x44, 0x5B, 0x86, 0x0C, 0x21, 0x89, 0x4D, 0x04, 0x99, 0x08, 0xA4, 0xA4, 0x2C, 0xD0, 0x08, 0x52, -+ 0x42, 0x42, 0x26, 0x00, 0x31, 0x85, 0x50, 0x12, 0x92, 0x12, 0x91, 0x91, 0x02, 0x14, 0x6E, 0xE3, 0xB2, 0x0D, 0x41, 0x40, 0x68, 0xD8, 0x98, 0x10, 0x9B, 0x84, 0x69, 0x21, 0xB3, 0x05, 0x62, 0x16, -+ 0x68, 0x22, 0x19, 0x41, 0x44, 0x10, 0x4C, 0x49, 0x94, 0x41, 0x58, 0x46, 0x52, 0x0B, 0x09, 0x04, 0x10, 0x98, 0x29, 0x61, 0xB8, 0x01, 0x01, 0x19, 0x50, 0x23, 0x12, 0x49, 0xDB, 0x02, 0x41, 0x88, -+ 0x38, 0x66, 0xE4, 0x92, 0x65, 0x9A, 0xA0, 0x08, 0x62, 0x48, 0x2D, 0xC4, 0x94, 0x01, 0xD9, 0xA8, 0x69, 0x18, 0x10, 0x08, 0x4B, 0x14, 0x10, 0x24, 0x08, 0x8C, 0xC8, 0x36, 0x4D, 0x99, 0x20, 0x61, -+ 0x43, 0x32, 0x68, 0x11, 0x86, 0x48, 0xCB, 0x82, 0x88, 0xC8, 0x16, 0x71, 0x9C, 0xC6, 0x29, 0x63, 0x00, 0x6A, 0x4B, 0x14, 0x84, 0x23, 0xC3, 0x49, 0x1B, 0x11, 0x64, 0xDC, 0x92, 0x05, 0x60, 0x80, -+ 0x60, 0x22, 0xB3, 0x8C, 0x43, 0x08, 0x11, 0x8C, 0x22, 0x25, 0x41, 0x86, 0x08, 0x20, 0x40, 0x31, 0x8B, 0x12, 0x90, 0x18, 0xB2, 0x28, 0xC3, 0x08, 0x0C, 0x93, 0x00, 0x82, 0x13, 0x00, 0x80, 0x22, -+ 0x05, 0x8C, 0x12, 0x15, 0x08, 0x22, 0xA2, 0x25, 0xD1, 0x12, 0x68, 0x48, 0x14, 0x6D, 0x93, 0x26, 0x60, 0xDC, 0x02, 0x89, 0x1C, 0x35, 0x8D, 0x8C, 0x22, 0x82, 0x80, 0x98, 0x64, 0xC1, 0x30, 0x30, -+ 0x02, 0xB5, 0x21, 0x1C, 0x10, 0x30, 0x00, 0x82, 0x24, 0xCA, 0x88, 0x70, 0x4C, 0x08, 0x4E, 0x18, 0x16, 0x46, 0x90, 0x14, 0x62, 0xE3, 0xC6, 0x69, 0xD0, 0x30, 0x42, 0x62, 0x96, 0x91, 0xD3, 0xC4, -+ 0x8C, 0x41, 0x06, 0x92, 0xCA, 0xA0, 0x11, 0x21, 0x36, 0x81, 0x20, 0xA6, 0x2D, 0x20, 0x14, 0x89, 0xC1, 0x00, 0x42, 0x12, 0x43, 0x2C, 0xD3, 0xA0, 0x85, 0x64, 0x30, 0x8A, 0x59, 0x10, 0x28, 0xE3, -+ 0x98, 0x11, 0x24, 0xC9, 0x4D, 0x5C, 0x42, 0x00, 0x5C, 0xB0, 0x4C, 0x02, 0xB8, 0x2C, 0x60, 0xA6, 0x01, 0xA3, 0x14, 0x62, 0x83, 0x88, 0x50, 0x24, 0x08, 0x85, 0x92, 0x00, 0x2A, 0x1A, 0xA3, 0x21, -+ 0x04, 0xC9, 0x89, 0xA3, 0x14, 0x8D, 0xC1, 0x18, 0x0E, 0xCA, 0x48, 0x24, 0x90, 0xA0, 0x8C, 0x13, 0x09, 0x90, 0xA3, 0x48, 0x12, 0x61, 0x30, 0x71, 0x50, 0x86, 0x41, 0x13, 0x11, 0x80, 0xC8, 0x88, -+ 0x24, 0x1C, 0x99, 0x61, 0x0A, 0x83, 0x64, 0x12, 0xB8, 0x4D, 0xC0, 0x12, 0x80, 0x1B, 0x08, 0x0C, 0x84, 0x82, 0x01, 0xC0, 0x00, 0x0C, 0x03, 0x94, 0x01, 0x04, 0x44, 0x68, 0x00, 0x25, 0x71, 0x5B, -+ 0x38, 0x71, 0x0B, 0xB3, 0x4C, 0x04, 0xB4, 0x25, 0x83, 0x30, 0x44, 0x60, 0xA2, 0x51, 0x5C, 0xC0, 0x48, 0xA3, 0x30, 0x6A, 0x9B, 0x10, 0x4D, 0x24, 0x24, 0x82, 0xD9, 0x86, 0x44, 0x10, 0x00, 0x64, -+ 0x1B, 0x31, 0x6D, 0x0A, 0x20, 0x25, 0x41, 0xC0, 0x71, 0xA4, 0x12, 0x91, 0x0C, 0x21, 0x6C, 0xA2, 0x86, 0x61, 0x13, 0xB9, 0x28, 0xC2, 0x14, 0x52, 0x04, 0x29, 0x30, 0x1C, 0xB3, 0x04, 0x02, 0x10, -+ 0x8E, 0x44, 0x26, 0x65, 0x20, 0x48, 0x8E, 0x1A, 0xC0, 0x29, 0x02, 0xB9, 0x30, 0xE4, 0x22, 0x8E, 0x19, 0xC5, 0x4D, 0x04, 0xB2, 0x8D, 0xDC, 0xB0, 0x0D, 0x53, 0x16, 0x72, 0x42, 0xB6, 0x70, 0x60, -+ 0x32, 0x32, 0xCA, 0xC2, 0x0C, 0x1C, 0x19, 0x4D, 0x11, 0xA7, 0x2C, 0x23, 0x31, 0x46, 0xA1, 0x82, 0x0D, 0x04, 0x10, 0x64, 0xA1, 0x02, 0x31, 0xE3, 0x04, 0x44, 0x22, 0x37, 0x6A, 0x1C, 0x87, 0x2C, -+ 0x1A, 0x86, 0x49, 0x9A, 0x48, 0x8E, 0xA0, 0x96, 0x90, 0x0B, 0xB7, 0x64, 0xE2, 0x48, 0x8A, 0xE1, 0x80, 0x08, 0x22, 0x14, 0x11, 0x0A, 0x05, 0x86, 0x41, 0x34, 0x0D, 0x00, 0xB0, 0x40, 0xCC, 0x32, -+ 0x0A, 0x4C, 0x36, 0x4E, 0x22, 0xC5, 0x29, 0x84, 0x48, 0x70, 0x00, 0x84, 0x81, 0xE1, 0x10, 0x85, 0xDC, 0x30, 0x29, 0xE2, 0x38, 0x2E, 0x91, 0x40, 0x81, 0x04, 0x90, 0x64, 0x9A, 0xB0, 0x01, 0x12, -+ 0xB5, 0x04, 0x8C, 0x34, 0x31, 0x21, 0x00, 0x4E, 0xD3, 0x28, 0x68, 0x23, 0xC9, 0x4D, 0xD3, 0x16, 0x8E, 0x21, 0x91, 0x90, 0x12, 0x87, 0x29, 0x23, 0xA7, 0x48, 0x04, 0xC0, 0x81, 0x08, 0x26, 0x09, -+ }, -+ .s2_len = 768, -+ .s2 = { -+ 0x48, 0x32, 0x46, 0x09, 0x10, 0x4D, 0x04, 0x05, 0x70, 0x59, 0x92, 0x20, 0x59, 0x44, 0x0A, 0x58, 0x42, 0x65, 0x91, 0x34, 0x72, 0x14, 0x23, 0x6D, 0x8C, 0x38, 0x2D, 0x80, 0x92, 0x69, 0x21, 0x90, -+ 0x6D, 0x10, 0xC0, 0x50, 0x12, 0x86, 0x49, 0xC2, 0xB2, 0x40, 0x9B, 0x34, 0x90, 0x5B, 0x08, 0x8A, 0x98, 0x44, 0x68, 0xDB, 0x22, 0x71, 0xC3, 0x34, 0x51, 0x09, 0xC4, 0x71, 0x4A, 0x82, 0x04, 0x94, -+ 0x24, 0x02, 0x1A, 0x36, 0x88, 0x4A, 0x48, 0x02, 0x91, 0x02, 0x6E, 0x8A, 0x22, 0x2C, 0x61, 0xA2, 0x80, 0x20, 0x99, 0x28, 0x54, 0x14, 0x31, 0x22, 0x31, 0x6C, 0x0C, 0xB1, 0x21, 0xA3, 0x08, 0x71, -+ 0x88, 0x34, 0x22, 0xD3, 0x44, 0x6C, 0x02, 0x44, 0x0A, 0x8A, 0x80, 0x71, 0x80, 0x14, 0x6C, 0x9B, 0x42, 0x50, 0xC3, 0x34, 0x72, 0xC9, 0xA2, 0x90, 0x58, 0x44, 0x71, 0x43, 0x00, 0x00, 0x44, 0x34, -+ 0x0D, 0xD3, 0xC8, 0x8C, 0xA1, 0x26, 0x70, 0x41, 0xC2, 0x24, 0x03, 0x35, 0x52, 0x58, 0xB2, 0x71, 0x09, 0x43, 0x4C, 0x1A, 0xB4, 0x91, 0xDA, 0xC6, 0x85, 0x89, 0xC6, 0x91, 0x23, 0x24, 0x8A, 0x40, -+ 0x34, 0x4D, 0x19, 0x15, 0x84, 0x14, 0x48, 0x8D, 0xD3, 0x30, 0x20, 0x80, 0xC8, 0x61, 0x93, 0x38, 0x0D, 0x88, 0x26, 0x8E, 0x12, 0x47, 0x21, 0x21, 0x19, 0x26, 0x09, 0x42, 0x64, 0x19, 0xA0, 0x84, -+ 0x02, 0xC0, 0x70, 0x88, 0x98, 0x29, 0xC0, 0x00, 0x2A, 0x53, 0x22, 0x85, 0x90, 0x08, 0x8D, 0xD0, 0x30, 0x40, 0x1C, 0x13, 0x0C, 0x00, 0x86, 0x90, 0x62, 0x28, 0x32, 0x1C, 0x27, 0x20, 0x49, 0x42, -+ 0x22, 0x8A, 0x02, 0x29, 0xCB, 0xC0, 0x49, 0x44, 0x00, 0x4E, 0x11, 0x19, 0x8D, 0x13, 0x07, 0x72, 0x60, 0x86, 0x04, 0x5A, 0x28, 0x52, 0x88, 0xA4, 0x71, 0x0A, 0xB5, 0x31, 0x12, 0x21, 0x04, 0x9C, -+ 0x28, 0x81, 0x00, 0x35, 0x6C, 0x64, 0x34, 0x0A, 0x14, 0x92, 0x71, 0xE3, 0x10, 0x72, 0x00, 0x96, 0x4C, 0x24, 0x43, 0x45, 0xCA, 0x24, 0x2C, 0x5B, 0x34, 0x30, 0xA0, 0x96, 0x24, 0x14, 0x29, 0x89, -+ 0x1B, 0x08, 0x01, 0x80, 0xC6, 0x8C, 0x12, 0x15, 0x71, 0x13, 0x16, 0x44, 0x12, 0xB0, 0x49, 0x4A, 0x00, 0x91, 0x10, 0x80, 0x08, 0x93, 0xB0, 0x40, 0xCC, 0xB6, 0x01, 0x89, 0xC8, 0x20, 0xC9, 0xC2, -+ 0x84, 0x8B, 0xB8, 0x08, 0x18, 0x96, 0x2D, 0x1B, 0x11, 0x32, 0x83, 0xA6, 0x69, 0x11, 0x07, 0x45, 0x81, 0x14, 0x31, 0x0C, 0x36, 0x4A, 0x0A, 0x01, 0x82, 0x51, 0xA2, 0x10, 0xA3, 0x00, 0x52, 0x44, -+ 0x28, 0x45, 0x60, 0x12, 0x8D, 0x80, 0x06, 0x64, 0x18, 0xC2, 0x2D, 0x13, 0x93, 0x24, 0x1A, 0x20, 0x68, 0xCB, 0xB0, 0x0D, 0x58, 0xB0, 0x31, 0x94, 0x44, 0x8A, 0xC2, 0x36, 0x06, 0x90, 0x80, 0x64, -+ 0x61, 0x92, 0x81, 0x98, 0xB0, 0x04, 0x93, 0x12, 0x21, 0xA0, 0xB0, 0x25, 0x22, 0x19, 0x69, 0x1B, 0x29, 0x8D, 0xC2, 0x44, 0x4E, 0xD2, 0x14, 0x04, 0xA1, 0x90, 0x0D, 0x4C, 0x28, 0x26, 0x0C, 0x07, -+ 0x8C, 0x83, 0x30, 0x50, 0xE2, 0xC6, 0x29, 0x5A, 0x94, 0x00, 0x12, 0x15, 0x00, 0xC9, 0x04, 0x04, 0xC8, 0x42, 0x4A, 0xC4, 0x10, 0x61, 0xC9, 0xC0, 0x31, 0xCC, 0x00, 0x2E, 0xC0, 0x22, 0x8A, 0x18, -+ 0x05, 0x92, 0x50, 0x84, 0x41, 0x21, 0x81, 0x28, 0x13, 0x18, 0x70, 0xD1, 0x00, 0x11, 0x03, 0x22, 0x06, 0x04, 0x91, 0x65, 0x14, 0x84, 0x4D, 0x62, 0x28, 0x8E, 0x23, 0x96, 0x2C, 0xC3, 0x84, 0x30, -+ 0x0B, 0x21, 0x4E, 0x18, 0x27, 0x2A, 0x42, 0x16, 0x21, 0x62, 0xB8, 0x31, 0x22, 0x43, 0x40, 0x94, 0x22, 0x2D, 0x11, 0x06, 0x62, 0x80, 0x02, 0x85, 0x44, 0x86, 0x08, 0x41, 0x46, 0x41, 0x40, 0xC8, -+ 0x4C, 0x5C, 0xC6, 0x50, 0xE1, 0x08, 0x01, 0x0A, 0x21, 0x80, 0x9B, 0xA0, 0x49, 0x19, 0xB7, 0x24, 0x19, 0x18, 0x66, 0x01, 0x81, 0x6D, 0x40, 0xC0, 0x69, 0x52, 0x24, 0x6C, 0x02, 0xA4, 0x00, 0x40, -+ 0xB8, 0x50, 0x18, 0x37, 0x65, 0xD1, 0x90, 0x84, 0x21, 0x03, 0x25, 0x41, 0x34, 0x45, 0x60, 0x94, 0x41, 0xDA, 0xC0, 0x84, 0x81, 0x22, 0x6A, 0xC2, 0x48, 0x52, 0x1B, 0x36, 0x2A, 0xE3, 0x28, 0x8A, -+ 0x59, 0xA6, 0x25, 0x03, 0xB4, 0x90, 0x0B, 0xB5, 0x29, 0xC0, 0x44, 0x04, 0x89, 0xB0, 0x2C, 0x83, 0x18, 0x22, 0x20, 0xB9, 0x68, 0xD4, 0x42, 0x62, 0x4A, 0xA2, 0x2C, 0x01, 0x12, 0x4E, 0xCC, 0x48, -+ 0x80, 0xD3, 0x96, 0x09, 0x02, 0xC6, 0x64, 0x81, 0x32, 0x29, 0x02, 0x84, 0x0C, 0x1B, 0xA1, 0x2D, 0x24, 0x23, 0x09, 0x88, 0x90, 0x25, 0xC8, 0xB6, 0x69, 0x54, 0xB2, 0x25, 0xDC, 0xA6, 0x2C, 0x09, -+ 0x45, 0x46, 0x88, 0xB6, 0x91, 0x14, 0x87, 0x28, 0x18, 0xC7, 0x2D, 0x1A, 0x85, 0x05, 0x4C, 0x14, 0x82, 0xDB, 0x14, 0x01, 0x20, 0x44, 0x6D, 0x4B, 0x28, 0x2E, 0x8C, 0x00, 0x29, 0x13, 0x41, 0x84, -+ 0x19, 0x13, 0x8D, 0x00, 0x94, 0x8D, 0x98, 0x82, 0x29, 0x04, 0x23, 0x4E, 0xC1, 0xA2, 0x28, 0x12, 0xC4, 0x70, 0x8B, 0xA8, 0x09, 0xDA, 0x08, 0x65, 0x62, 0x10, 0x81, 0x20, 0x03, 0x8A, 0x80, 0x34, -+ 0x4A, 0x20, 0xC9, 0x88, 0x22, 0x94, 0x11, 0xC8, 0x92, 0x89, 0xD4, 0xC4, 0x41, 0xA1, 0xB4, 0x84, 0x93, 0x02, 0x89, 0x12, 0x23, 0x41, 0x13, 0xB7, 0x25, 0x49, 0x36, 0x2A, 0x0C, 0xB3, 0x40, 0x49, -+ 0x36, 0x70, 0x10, 0x41, 0x00, 0x19, 0xB7, 0x09, 0x22, 0x39, 0x8D, 0x63, 0x40, 0x80, 0xA3, 0x94, 0x28, 0x90, 0x04, 0x41, 0x40, 0x18, 0x89, 0x12, 0x47, 0x61, 0x83, 0x12, 0x4E, 0x1A, 0x48, 0x2E, -+ }, -+ .t0_len = 3584, -+ .t0 = { -+ 0x75, 0x48, 0xEF, 0x27, 0x75, 0xAA, 0x88, 0x5A, 0xB6, 0x93, 0x11, 0x4A, 0x06, 0x0F, 0x01, 0xDC, 0x38, 0x75, 0xEB, 0x2F, 0x16, 0x52, 0xD4, 0x2F, 0x8B, 0x5F, 0x3C, 0xC2, 0xBC, 0xAB, 0x20, 0x9A, -+ 0xD5, 0xFD, 0x34, 0x18, 0xAC, 0x20, 0x93, 0x0D, 0x7B, 0xA9, 0x80, 0xCB, 0xCC, 0xA8, 0x4C, 0x5F, 0x2F, 0xEE, 0x1F, 0x3F, 0x9B, 0x28, 0x19, 0x28, 0x74, 0x9C, 0x2E, 0x1B, 0xF1, 0x7C, 0x8A, 0x14, -+ 0x04, 0x6B, 0x24, 0xFA, 0x37, 0x08, 0x83, 0x9B, 0xB4, 0xEE, 0x75, 0x8C, 0xD2, 0xEA, 0x55, 0x64, 0xA2, 0x0F, 0x21, 0xA2, 0x3B, 0xAE, 0x26, 0xDE, 0x9F, 0x9B, 0xC0, 0x42, 0xF9, 0xD4, 0xF2, 0x59, -+ 0xBB, 0x1A, 0xDD, 0x41, 0x80, 0xF6, 0x73, 0x5D, 0xC5, 0xD3, 0x26, 0x1D, 0xF9, 0xD0, 0xA3, 0x1F, 0xAB, 0x24, 0xED, 0x65, 0x47, 0x32, 0x73, 0xF7, 0x63, 0xD7, 0xBC, 0x48, 0x30, 0xCE, 0xE9, 0xA1, -+ 0x5E, 0x8F, 0xAE, 0x6E, 0x06, 0x85, 0x34, 0x56, 0x3D, 0x34, 0x71, 0x88, 0xAA, 0xD7, 0xBC, 0x6B, 0xD6, 0x12, 0x68, 0x49, 0x00, 0x44, 0xEB, 0x30, 0x0B, 0x47, 0xA0, 0xCD, 0x78, 0xBC, 0x26, 0x31, -+ 0x41, 0xAA, 0xEB, 0x3B, 0x96, 0xF4, 0x08, 0x9B, 0x38, 0x5B, 0x46, 0x53, 0x37, 0x29, 0xDE, 0xAA, 0x68, 0x4E, 0x01, 0xAB, 0xD6, 0xE8, 0x9A, 0xFF, 0xF3, 0xBD, 0xAE, 0x91, 0xD4, 0x04, 0x5E, 0x0F, -+ 0x4A, 0xED, 0x84, 0xD3, 0x18, 0xC6, 0x83, 0x45, 0x7B, 0x88, 0xEA, 0x50, 0x1F, 0xAA, 0x75, 0x13, 0x23, 0x35, 0x07, 0xE3, 0xE7, 0x77, 0xD5, 0xFD, 0x43, 0x48, 0xA9, 0xAB, 0xBC, 0xB8, 0x41, 0x0A, -+ 0x47, 0x81, 0xD9, 0x45, 0x60, 0x83, 0x0E, 0x3A, 0x61, 0xE6, 0xB3, 0xE0, 0xB8, 0x09, 0xE9, 0x34, 0x47, 0xD3, 0x74, 0x08, 0xD3, 0x1B, 0x90, 0x7F, 0x72, 0xBE, 0xAE, 0x2F, 0x66, 0x3B, 0xE2, 0xC7, -+ 0xFF, 0xF3, 0xE0, 0x7E, 0xF3, 0xB8, 0x5D, 0x69, 0xA4, 0xF8, 0x7C, 0x4F, 0x2F, 0x07, 0xF7, 0xED, 0x77, 0x69, 0xF9, 0x19, 0xA2, 0xBD, 0xEE, 0xE1, 0x7E, 0x65, 0xA7, 0x30, 0x9D, 0xE5, 0x9D, 0x2B, -+ 0x0F, 0xA0, 0x5A, 0xB4, 0xAA, 0x92, 0xBA, 0xC3, 0x52, 0xD1, 0xE3, 0x97, 0x7E, 0xB8, 0xE4, 0x66, 0x22, 0x6D, 0x5A, 0xCE, 0x95, 0x51, 0x05, 0x8C, 0x8E, 0xC4, 0x67, 0x7D, 0x03, 0x95, 0xC2, 0x88, -+ 0xE2, 0xFE, 0xC4, 0xAA, 0x85, 0x46, 0x18, 0xED, 0x25, 0xFF, 0xA9, 0x2E, 0x59, 0xBD, 0xD0, 0xAB, 0x72, 0x50, 0x34, 0x58, 0xA8, 0x89, 0x79, 0x81, 0x68, 0x8A, 0xB5, 0x4E, 0x92, 0x8D, 0x11, 0x1E, -+ 0x7D, 0x62, 0x19, 0x27, 0x57, 0xA5, 0xA3, 0xFC, 0x5C, 0xB6, 0xBC, 0x2A, 0x89, 0xC2, 0x8D, 0x40, 0x41, 0x04, 0x4C, 0x0E, 0x75, 0x04, 0x07, 0xBB, 0x05, 0xFE, 0xF1, 0xF6, 0xF4, 0x59, 0xED, 0x35, -+ 0x72, 0xB2, 0x69, 0x70, 0xF8, 0x3C, 0xDF, 0x6D, 0x88, 0x62, 0x9D, 0x43, 0xEF, 0x95, 0x5E, 0x85, 0x13, 0x5C, 0x13, 0x8A, 0x67, 0x36, 0xAC, 0x4E, 0xB1, 0xD3, 0x48, 0x1F, 0xCD, 0x14, 0x06, 0x4B, -+ 0x03, 0x45, 0x81, 0x04, 0x6F, 0x47, 0x57, 0xA8, 0x4F, 0x6F, 0x36, 0x7C, 0x31, 0x58, 0xCE, 0x87, 0xD6, 0x59, 0x9B, 0xEB, 0x20, 0xA9, 0x20, 0xCD, 0xEE, 0xF8, 0xD6, 0xCC, 0x12, 0xB7, 0xD9, 0x50, -+ 0x15, 0xED, 0x10, 0xD4, 0xA9, 0xB2, 0x80, 0xEE, 0x82, 0x61, 0xC9, 0xD9, 0x58, 0x3E, 0xC3, 0xCF, 0xCB, 0x31, 0xAC, 0x4F, 0x6B, 0x99, 0x3B, 0xF7, 0xC3, 0xE4, 0x49, 0x2B, 0xF9, 0x82, 0xA2, 0x8D, -+ 0x54, 0x44, 0x5B, 0x76, 0x1B, 0xDD, 0x7B, 0x6D, 0x7E, 0x53, 0x78, 0x70, 0x9F, 0xCD, 0xDB, 0x00, 0x18, 0x1A, 0xC3, 0xE9, 0x54, 0xA5, 0x5C, 0xCA, 0x5F, 0xE5, 0x24, 0x4A, 0x7B, 0xD7, 0xDA, 0x86, -+ 0xC6, 0xA5, 0x09, 0x01, 0xEB, 0xC6, 0xBC, 0xBD, 0xF3, 0xC1, 0xBD, 0x5A, 0x8A, 0xB4, 0x86, 0xAF, 0x90, 0xC2, 0x35, 0xC8, 0xCF, 0xA1, 0xD7, 0x72, 0xD3, 0x15, 0xA2, 0xCA, 0x08, 0x3A, 0x9C, 0x58, -+ 0x28, 0xB6, 0x87, 0xC9, 0x86, 0x07, 0xAE, 0xD4, 0xFD, 0xE6, 0x4E, 0x17, 0x2C, 0x35, 0xC0, 0x5A, 0x8B, 0xF5, 0xB2, 0xF4, 0x84, 0xDD, 0x47, 0xD9, 0x6D, 0x9D, 0xC7, 0xB7, 0x76, 0x56, 0xFD, 0x9F, -+ 0x8B, 0xA3, 0x9A, 0xB5, 0xEB, 0x46, 0x28, 0x9A, 0x3E, 0x95, 0x30, 0x25, 0x6A, 0x2E, 0x05, 0x6A, 0xE0, 0x05, 0xA7, 0xCD, 0xEC, 0x89, 0x5D, 0xD3, 0x20, 0xDE, 0x82, 0xA1, 0xE1, 0x3A, 0x25, 0x07, -+ 0x8B, 0xCE, 0xA8, 0x38, 0x8F, 0x22, 0x04, 0xB5, 0x38, 0x1D, 0xB8, 0xC9, 0xB2, 0x4D, 0xAA, 0x79, 0x3D, 0x8B, 0x94, 0x84, 0x43, 0xDC, 0xF3, 0x32, 0x84, 0xA4, 0x37, 0x1E, 0x10, 0x1C, 0xF6, 0xE3, -+ 0x04, 0x1F, 0xC5, 0x41, 0xFF, 0x18, 0xD1, 0xE4, 0xC6, 0x72, 0x9E, 0x44, 0xB9, 0xBA, 0xCA, 0x61, 0xF4, 0x7E, 0xD5, 0x94, 0x93, 0x19, 0x6C, 0xFF, 0xEA, 0x45, 0x8C, 0xF2, 0x27, 0xCF, 0x84, 0x85, -+ 0x55, 0xCB, 0x92, 0x1C, 0xAB, 0x40, 0xEB, 0xF6, 0x66, 0xD7, 0xA9, 0xA7, 0x0A, 0xC7, 0x04, 0x6A, 0x60, 0x63, 0x45, 0x16, 0x1F, 0x36, 0x55, 0x87, 0xC1, 0xC0, 0x5F, 0x84, 0x5A, 0x8C, 0x39, 0x57, -+ 0xF1, 0xC8, 0x76, 0x4F, 0x29, 0xF7, 0xA8, 0xFC, 0x56, 0x03, 0xA0, 0x9E, 0x10, 0xF6, 0x82, 0xAF, 0xB3, 0x4E, 0xDE, 0xB3, 0xEA, 0xC5, 0x77, 0xDA, 0x3F, 0x94, 0xD0, 0xBF, 0x15, 0x3C, 0xB6, 0xC3, -+ 0xAF, 0xDD, 0x69, 0xA4, 0xCA, 0xF2, 0xC8, 0xD3, 0x1D, 0x09, 0x0B, 0xD3, 0x08, 0xD7, 0x12, 0x50, 0x90, 0x63, 0x27, 0x37, 0xC6, 0xAC, 0xE8, 0x6A, 0x3D, 0x8C, 0xAC, 0xBD, 0xCF, 0x8E, 0xAB, 0x94, -+ 0x5C, 0x07, 0xE6, 0x4E, 0x8E, 0x08, 0x42, 0xBA, 0xCE, 0xCA, 0xBA, 0x6B, 0x31, 0xF5, 0x8C, 0x96, 0xD2, 0x7A, 0x15, 0xF4, 0xDE, 0xAF, 0x85, 0x33, 0x5B, 0xB8, 0x3E, 0xFB, 0x83, 0x39, 0x02, 0x9D, -+ 0xDC, 0xF2, 0xC2, 0xD9, 0x3D, 0x93, 0x57, 0x02, 0xDA, 0x86, 0x65, 0xE4, 0xC0, 0xE1, 0xC3, 0xFD, 0x4F, 0xF0, 0x44, 0x2A, 0xD5, 0xE8, 0x92, 0xD8, 0x96, 0x95, 0x29, 0x37, 0xA2, 0xC2, 0xC7, 0x7C, -+ 0x50, 0x69, 0x8E, 0x13, 0x31, 0x4B, 0xAE, 0x4A, 0x12, 0x25, 0x97, 0x26, 0x7F, 0x8D, 0xCD, 0x92, 0x41, 0x0C, 0x5F, 0x7C, 0xFB, 0x3C, 0xA1, 0x97, 0xA2, 0x85, 0x38, 0xDF, 0x23, 0xAF, 0x8D, 0x92, -+ 0xFD, 0xF1, 0xD7, 0xEC, 0x65, 0xF7, 0xAB, 0x52, 0x8D, 0xEB, 0xD7, 0x69, 0x20, 0x34, 0x68, 0x11, 0x43, 0xE9, 0x42, 0x64, 0x04, 0x58, 0x6C, 0x7B, 0xF1, 0xBD, 0xC0, 0x6A, 0xEC, 0x6F, 0x6D, 0x5B, -+ 0x69, 0x91, 0x7A, 0x0A, 0x02, 0xE6, 0x15, 0xB9, 0xDB, 0x54, 0x6B, 0x6C, 0x7D, 0xB8, 0xFD, 0xA7, 0x2A, 0x70, 0x7F, 0x36, 0x4F, 0x3D, 0x8B, 0x78, 0x85, 0xE4, 0x04, 0x35, 0x35, 0xE1, 0x55, 0x82, -+ 0x3C, 0x12, 0xA4, 0xC6, 0x9D, 0x63, 0xDC, 0x82, 0xAC, 0x85, 0x03, 0x4C, 0x98, 0x41, 0x91, 0x8D, 0xA4, 0x8B, 0xDA, 0xA0, 0x9A, 0x80, 0x29, 0x55, 0x1C, 0xF4, 0x35, 0xD2, 0x2A, 0x07, 0xB0, 0x00, -+ 0x7F, 0xCC, 0x0F, 0x13, 0xC6, 0xFF, 0x1E, 0x19, 0xF9, 0xA9, 0xD6, 0x4B, 0x86, 0xE8, 0xFA, 0xD6, 0x3A, 0xAA, 0xDD, 0xCC, 0xFD, 0x14, 0x08, 0x54, 0x27, 0x43, 0x3F, 0x27, 0xE3, 0x3B, 0x54, 0x30, -+ 0x57, 0xEE, 0x79, 0x98, 0x18, 0x8B, 0xDD, 0x4D, 0xAF, 0x90, 0x47, 0xCC, 0x46, 0x1A, 0x3E, 0xDF, 0x45, 0x3D, 0x2F, 0xD4, 0xCD, 0x99, 0x26, 0xC6, 0x56, 0xB7, 0xC1, 0xB3, 0x8F, 0x5A, 0xEF, 0xC0, -+ 0x11, 0x84, 0x2D, 0x1E, 0x7D, 0xCD, 0x0B, 0xC2, 0x6D, 0xCC, 0xC6, 0x0B, 0x62, 0xEB, 0xEC, 0x8D, 0x0E, 0xD3, 0xAE, 0x69, 0x96, 0x59, 0xA4, 0xEB, 0xA4, 0xAF, 0x7A, 0xF4, 0x4D, 0x96, 0x99, 0x9E, -+ 0xE3, 0x55, 0x46, 0x9D, 0x75, 0x0C, 0x0B, 0xAF, 0xDD, 0xFA, 0x2E, 0xBD, 0xD2, 0x77, 0xF0, 0x2D, 0x3E, 0xBA, 0xB6, 0x8D, 0xA6, 0x52, 0xD3, 0x35, 0x99, 0xB6, 0xEC, 0x02, 0x34, 0x10, 0x37, 0x4B, -+ 0xCD, 0x33, 0x07, 0x06, 0xA7, 0x1B, 0xA6, 0x81, 0x35, 0x06, 0xD6, 0x08, 0x68, 0xA4, 0xC6, 0xFF, 0x7B, 0xA5, 0xA2, 0x36, 0x7E, 0x0E, 0x54, 0x79, 0x64, 0x36, 0x01, 0x2A, 0xD2, 0x27, 0x74, 0xFE, -+ 0x63, 0x82, 0x27, 0x9C, 0x32, 0x39, 0x61, 0xCC, 0xFD, 0x10, 0x87, 0xEF, 0x2B, 0xCC, 0xEB, 0x49, 0xC8, 0x71, 0xCE, 0x3C, 0x6A, 0x73, 0x7F, 0xA5, 0xEA, 0xB5, 0x35, 0x77, 0x3A, 0x60, 0x69, 0x42, -+ 0xFA, 0xA7, 0xF5, 0xE1, 0xE5, 0x88, 0x5D, 0x8F, 0xC1, 0x70, 0xD8, 0xC0, 0x1A, 0x44, 0x93, 0x9E, 0x76, 0x80, 0x06, 0xA1, 0xE0, 0x7C, 0xD4, 0x31, 0x61, 0xB7, 0x55, 0xB0, 0xB9, 0x18, 0x1B, 0x87, -+ 0x08, 0xDD, 0x50, 0x65, 0xD9, 0xE8, 0x81, 0xB2, 0xE7, 0xAE, 0xAE, 0x9F, 0x60, 0xBD, 0x6E, 0xE5, 0x9B, 0x5C, 0x62, 0x7C, 0x55, 0xEB, 0x5D, 0x6B, 0xF3, 0x3C, 0x27, 0xC3, 0xFA, 0xF3, 0x4C, 0xEE, -+ 0xC1, 0xF6, 0xAA, 0x96, 0x93, 0xF3, 0xB5, 0x11, 0x58, 0xCA, 0x91, 0x91, 0x7B, 0xD0, 0x63, 0x02, 0x96, 0xB8, 0x5F, 0x08, 0x2E, 0xBC, 0x6F, 0x3F, 0x09, 0x28, 0x07, 0x49, 0x26, 0xD0, 0xAD, 0x77, -+ 0xBA, 0xA3, 0x62, 0x4C, 0xD5, 0xFC, 0xB2, 0xB8, 0x1A, 0xFC, 0x35, 0xE6, 0x55, 0x2E, 0x4F, 0xF4, 0xA7, 0xEB, 0xE0, 0x02, 0x51, 0x66, 0x16, 0xE9, 0xDB, 0x33, 0x11, 0x80, 0x8C, 0x38, 0xEE, 0xD2, -+ 0x42, 0xBC, 0x62, 0x8F, 0x93, 0x7F, 0xD8, 0x01, 0xC5, 0x54, 0x7D, 0xB2, 0xAE, 0xF9, 0x67, 0xE4, 0x85, 0x85, 0x03, 0x3D, 0xCC, 0x40, 0x71, 0x6D, 0xB4, 0x56, 0x11, 0xCA, 0x2E, 0xDF, 0xCB, 0xAC, -+ 0x20, 0x2D, 0xD7, 0xA4, 0x71, 0xFF, 0xF7, 0xB5, 0xE1, 0x56, 0x18, 0xB0, 0x53, 0x24, 0x63, 0xBC, 0x9C, 0xBD, 0x36, 0x25, 0xE5, 0x9B, 0x43, 0x65, 0x7F, 0x5E, 0x97, 0x5B, 0x07, 0x32, 0x4A, 0x86, -+ 0x21, 0x68, 0xCF, 0x26, 0x83, 0xC6, 0x75, 0x33, 0x91, 0xE6, 0xC0, 0xF9, 0xC0, 0xEA, 0xD9, 0x37, 0x32, 0x08, 0x44, 0xBE, 0xF4, 0xF6, 0xDE, 0xC9, 0x6F, 0x73, 0x6C, 0x3E, 0xDE, 0x48, 0x66, 0x60, -+ 0xE5, 0x46, 0xF8, 0xF9, 0xBD, 0xBD, 0xB8, 0x85, 0x34, 0x3C, 0x46, 0xC7, 0x29, 0xFA, 0x8D, 0x9A, 0x4D, 0x8B, 0xE2, 0x2C, 0xC0, 0x5D, 0xDE, 0x83, 0xF8, 0xC1, 0x87, 0xC6, 0xF6, 0xC5, 0xE5, 0xB8, -+ 0x5B, 0x1D, 0x0B, 0xB7, 0xEB, 0x2C, 0xB1, 0xAD, 0x93, 0xB9, 0xEF, 0xC9, 0x26, 0xAE, 0xDB, 0xF8, 0x8A, 0x8F, 0x6E, 0x42, 0x1D, 0x41, 0xAD, 0x9A, 0x1F, 0x57, 0x5D, 0x08, 0xE7, 0x1A, 0x07, 0xFF, -+ 0x54, 0xFE, 0x6B, 0xCC, 0xDA, 0xDA, 0xCA, 0xE3, 0x62, 0x95, 0x88, 0xF6, 0xAC, 0xEE, 0xCF, 0x99, 0x27, 0xE0, 0xC8, 0xA8, 0xE3, 0x50, 0xFB, 0x2B, 0xF0, 0x71, 0xBF, 0x62, 0xC6, 0x76, 0xEC, 0xA8, -+ 0x00, 0xC6, 0xAC, 0x69, 0x00, 0xF0, 0x10, 0xCC, 0x17, 0x10, 0xCD, 0x43, 0x7A, 0x11, 0xC9, 0x93, 0xB9, 0x3F, 0xD9, 0xCE, 0x9A, 0x7C, 0xB5, 0x63, 0x13, 0x4F, 0x8C, 0xF0, 0x7A, 0x88, 0x2A, 0xC1, -+ 0x20, 0x92, 0xFC, 0x45, 0x71, 0x5F, 0x74, 0xEF, 0x9C, 0xBA, 0x1F, 0x52, 0xD3, 0x5E, 0x3E, 0xA4, 0x48, 0x78, 0xC4, 0x56, 0x35, 0xEF, 0xA3, 0xD7, 0xFA, 0xB5, 0xED, 0xE9, 0x74, 0xFB, 0xFA, 0xF4, -+ 0x36, 0x61, 0x93, 0x3A, 0x01, 0x40, 0xCF, 0xA5, 0x87, 0x1A, 0xEB, 0x27, 0xD7, 0x5D, 0x05, 0x07, 0xFF, 0xD4, 0x41, 0x09, 0x3D, 0x9F, 0x71, 0x32, 0x49, 0x73, 0x90, 0x64, 0x6E, 0x67, 0xDA, 0x55, -+ 0x6C, 0xD7, 0x9C, 0xAB, 0x31, 0xC1, 0x6B, 0x86, 0x9B, 0x14, 0xAF, 0x9F, 0xD9, 0xF6, 0x0E, 0xB7, 0x71, 0x73, 0x96, 0x28, 0x0D, 0x98, 0x52, 0x68, 0x18, 0x51, 0xE2, 0x7B, 0x88, 0xD4, 0x46, 0xF6, -+ 0x05, 0x7C, 0x04, 0x1F, 0x1B, 0xAB, 0xD7, 0x5F, 0xDE, 0xCA, 0x14, 0x51, 0x91, 0x61, 0x4E, 0x9B, 0xCD, 0x98, 0x52, 0xE2, 0xF2, 0x7B, 0x5C, 0xAF, 0x0B, 0x7D, 0x85, 0x1B, 0x8B, 0x75, 0xFF, 0xB4, -+ 0x24, 0x40, 0x22, 0x0C, 0xD4, 0x91, 0xCE, 0x8C, 0x9E, 0xFE, 0xA8, 0x36, 0x5B, 0xA7, 0xCF, 0x05, 0x05, 0xD2, 0x07, 0xA8, 0xD9, 0x35, 0x67, 0x52, 0x95, 0xBC, 0x82, 0x55, 0xDB, 0xB8, 0x22, 0xD0, -+ 0xCB, 0x29, 0x7D, 0x36, 0xEB, 0x50, 0xE8, 0x33, 0x07, 0x66, 0xF3, 0x53, 0x83, 0xAE, 0x91, 0xF5, 0x79, 0x7D, 0x70, 0x2A, 0x1D, 0x45, 0x16, 0xDE, 0x66, 0x35, 0x92, 0x7A, 0xEC, 0x0F, 0x66, 0xA1, -+ 0xC1, 0x0B, 0x1C, 0xDB, 0xF8, 0x23, 0x89, 0xDA, 0xE9, 0xAD, 0x73, 0x4D, 0x53, 0x2C, 0x83, 0x2C, 0xA6, 0xDB, 0xAF, 0x4B, 0xD0, 0x57, 0xDB, 0x6A, 0x92, 0xE2, 0x8D, 0x41, 0x11, 0x35, 0xA2, 0x92, -+ 0x50, 0x80, 0xE9, 0x2F, 0x8F, 0x2C, 0xD1, 0xEC, 0xD7, 0x00, 0xFB, 0xF4, 0xE2, 0x4F, 0x00, 0xAE, 0xA8, 0xBF, 0x37, 0x15, 0xE7, 0xE0, 0x43, 0xD1, 0x43, 0x0F, 0xDC, 0x8F, 0x08, 0x61, 0x63, 0x8A, -+ 0x91, 0xA0, 0xA1, 0x4A, 0xDB, 0x38, 0x7A, 0x07, 0x9F, 0x78, 0xBA, 0x85, 0x25, 0x77, 0x1A, 0x54, 0x97, 0x7D, 0x35, 0x7F, 0x4C, 0x98, 0x90, 0xE5, 0xAE, 0xD7, 0xB4, 0x88, 0xE9, 0x3D, 0x55, 0x6B, -+ 0x1B, 0x12, 0x12, 0xA1, 0x81, 0xBC, 0x0B, 0xFC, 0x47, 0xEA, 0x47, 0x2B, 0x02, 0x9A, 0xF5, 0x54, 0x2A, 0x2C, 0x87, 0x7D, 0xA2, 0x84, 0x6B, 0x60, 0x5D, 0x40, 0x6B, 0x3A, 0xF6, 0xE9, 0xDD, 0x9C, -+ 0xE5, 0xC1, 0x80, 0x13, 0xE1, 0x52, 0xE6, 0x54, 0xBF, 0x31, 0x0E, 0xE9, 0x81, 0xAD, 0x99, 0x1F, 0x4A, 0xDD, 0x6E, 0xFB, 0xC1, 0x68, 0x82, 0x8A, 0x17, 0x64, 0xB1, 0x80, 0xE4, 0x1F, 0x77, 0xFD, -+ 0xE5, 0xF8, 0x29, 0x7D, 0x76, 0xEB, 0xD5, 0xC1, 0xBE, 0x90, 0x3C, 0xA6, 0xF6, 0x7C, 0x3A, 0xD4, 0xF4, 0x8B, 0xC8, 0x25, 0xF5, 0x9E, 0x22, 0x8C, 0xBC, 0xAA, 0x8F, 0xC8, 0xEA, 0x24, 0x6C, 0xB8, -+ 0x1A, 0xC5, 0x08, 0xBD, 0x99, 0x3E, 0x2B, 0x3E, 0xC0, 0xAE, 0xF7, 0x88, 0x0B, 0x68, 0xE6, 0xB9, 0xC9, 0x2D, 0x6A, 0x86, 0x39, 0x09, 0xF1, 0x48, 0x79, 0x02, 0x03, 0x37, 0x21, 0xB4, 0xE2, 0x5E, -+ 0xF8, 0x90, 0x99, 0xE5, 0x37, 0x6B, 0xE2, 0x0A, 0x98, 0x6E, 0x15, 0x28, 0xD8, 0xF0, 0xC1, 0x1E, 0xC4, 0xF3, 0x9D, 0x42, 0xA4, 0x56, 0xE8, 0x74, 0x1E, 0x2B, 0x00, 0x02, 0xFA, 0xC3, 0x67, 0xAC, -+ 0x9D, 0xC0, 0xE5, 0x52, 0x4C, 0xBC, 0x43, 0x6F, 0xE6, 0x22, 0x62, 0xCB, 0x46, 0x34, 0xAA, 0x3E, 0xC7, 0x3A, 0xF8, 0xC4, 0x88, 0x95, 0x90, 0xBF, 0x48, 0xDF, 0x21, 0xE4, 0x2B, 0x14, 0x02, 0x1A, -+ 0x41, 0xA3, 0xCC, 0x11, 0xEE, 0xBC, 0x91, 0xBA, 0x2F, 0xFB, 0xB5, 0xEE, 0x3C, 0x24, 0x0D, 0xB2, 0xA0, 0xE7, 0x04, 0x58, 0x85, 0x73, 0x6F, 0xDA, 0x1B, 0x1F, 0x7A, 0x02, 0x7C, 0x67, 0x2E, 0x12, -+ 0x4D, 0x1E, 0x6F, 0x89, 0x39, 0xDE, 0x75, 0xC0, 0xD0, 0x97, 0x37, 0x11, 0xDD, 0xBC, 0x93, 0x90, 0xE1, 0xC8, 0x5B, 0x4A, 0x22, 0xCB, 0xE0, 0x03, 0x74, 0xBA, 0xB4, 0xE4, 0xDF, 0xA5, 0xAA, 0x37, -+ 0x26, 0x75, 0x6B, 0xDD, 0x00, 0xFF, 0x42, 0x9E, 0x4F, 0xB8, 0x0D, 0x77, 0x4E, 0xB2, 0xC6, 0x4B, 0xC6, 0x6E, 0x04, 0x2E, 0xC3, 0x62, 0x1A, 0xDB, 0x4C, 0xE2, 0x00, 0xBF, 0x88, 0x5B, 0x7B, 0x75, -+ 0x6F, 0x25, 0x0E, 0x73, 0x32, 0x3A, 0xB5, 0x17, 0x5E, 0x83, 0xA7, 0xB7, 0x31, 0xD5, 0xAE, 0x85, 0xB5, 0xC9, 0x8E, 0xC2, 0xF7, 0x0D, 0x30, 0x26, 0x47, 0x9E, 0x0B, 0x68, 0xEA, 0x67, 0xF5, 0xB8, -+ 0xFF, 0x1D, 0xFB, 0x63, 0xE9, 0x40, 0xB7, 0x86, 0xD9, 0x3E, 0x35, 0x1F, 0x8C, 0xDC, 0x94, 0x79, 0x19, 0x6A, 0xA8, 0xD7, 0x84, 0x26, 0xAB, 0x0E, 0x65, 0x03, 0x19, 0x90, 0xD0, 0xFE, 0xF6, 0xF6, -+ 0x41, 0xFF, 0xE6, 0x87, 0x7F, 0x31, 0x0D, 0xD4, 0xFA, 0x50, 0xD4, 0xB4, 0x18, 0xB4, 0x96, 0x36, 0x2F, 0x30, 0xED, 0x54, 0x7B, 0xBD, 0x70, 0x1C, 0x67, 0xB4, 0xB7, 0x6A, 0xBA, 0x94, 0xAD, 0x52, -+ 0x9E, 0xF3, 0x72, 0x38, 0xA1, 0x3D, 0xB9, 0x1D, 0xBC, 0x97, 0xDA, 0xD3, 0x40, 0x6D, 0x3B, 0xB4, 0x33, 0x0F, 0xA5, 0xE4, 0x6F, 0x19, 0x37, 0xF3, 0xFE, 0x70, 0xEB, 0xB1, 0x6A, 0x7D, 0x53, 0x28, -+ 0x93, 0x22, 0x13, 0xBE, 0x26, 0xE3, 0x06, 0x0F, 0x5D, 0x6D, 0xA2, 0xB7, 0x23, 0x60, 0xC3, 0x6C, 0x1A, 0x06, 0xC3, 0x85, 0x67, 0x48, 0xE3, 0x04, 0xC4, 0xAC, 0x1F, 0xA6, 0x01, 0xBA, 0xB9, 0xD7, -+ 0x5A, 0x18, 0x02, 0x62, 0x63, 0xB0, 0xCE, 0x54, 0xEF, 0xA3, 0x10, 0xF6, 0x65, 0xE9, 0xC0, 0xB0, 0xF5, 0x8D, 0xE2, 0x60, 0xBF, 0x20, 0xC9, 0x82, 0xCC, 0x67, 0xFC, 0x45, 0xF5, 0x9F, 0x88, 0x1E, -+ 0x1F, 0xE2, 0xF1, 0x01, 0x9D, 0x6F, 0xC0, 0xE7, 0x3B, 0x7B, 0x6B, 0x31, 0xA3, 0xFB, 0x1A, 0x99, 0x10, 0x5E, 0x2F, 0xF7, 0xDC, 0x97, 0x91, 0xE9, 0xA3, 0xB9, 0x72, 0xDA, 0xC1, 0xE8, 0x58, 0x94, -+ 0xDE, 0x9D, 0xEC, 0x2B, 0x76, 0xEB, 0xF2, 0xEC, 0xD9, 0x0D, 0x22, 0x9D, 0xA4, 0xB1, 0x80, 0x3F, 0x67, 0xDC, 0x36, 0x34, 0x73, 0x7A, 0x03, 0xA3, 0x58, 0x8B, 0xFC, 0x03, 0x5C, 0x85, 0x0D, 0x22, -+ 0x97, 0x78, 0xB5, 0xC1, 0x57, 0x36, 0x2C, 0x6B, 0x8A, 0xAA, 0xD4, 0x6B, 0x49, 0xD5, 0xF0, 0xB6, 0x53, 0xC8, 0x9B, 0xFE, 0x01, 0xFA, 0xF3, 0x38, 0x55, 0xFC, 0xA3, 0xD3, 0x8B, 0x00, 0x98, 0xA7, -+ 0x66, 0x81, 0xCF, 0x99, 0x51, 0xC4, 0x3E, 0x6C, 0xEC, 0x60, 0x93, 0x82, 0x1E, 0x38, 0xB0, 0x64, 0x14, 0x07, 0x8A, 0xB9, 0x5F, 0x83, 0xED, 0x8B, 0x1F, 0x1A, 0xDB, 0x90, 0xDF, 0xEE, 0x9E, 0x52, -+ 0xA8, 0x56, 0xB9, 0x71, 0xE6, 0xE4, 0x34, 0x72, 0x71, 0x5A, 0xA6, 0xA5, 0x8C, 0x11, 0x20, 0x45, 0x1A, 0xBC, 0x52, 0xBB, 0x65, 0x44, 0xD3, 0x86, 0x9F, 0x5F, 0x4A, 0x18, 0x09, 0x1D, 0xF1, 0xCC, -+ 0x2C, 0x02, 0x1F, 0xBE, 0x0A, 0x80, 0x8B, 0xE8, 0x6E, 0x70, 0x6C, 0x32, 0x69, 0x1E, 0xBD, 0x0E, 0xFD, 0x32, 0x2E, 0x5A, 0x29, 0xE0, 0xA1, 0x79, 0xB2, 0x77, 0xAD, 0xAA, 0xC5, 0x50, 0x60, 0x35, -+ 0xD4, 0xD2, 0x3C, 0x31, 0x66, 0xD8, 0x69, 0x27, 0x1A, 0xAD, 0x66, 0x4A, 0xCA, 0x50, 0xEB, 0x62, 0x2E, 0x8D, 0x8A, 0x2D, 0x09, 0xA3, 0x47, 0x72, 0x00, 0x80, 0x0E, 0xF8, 0xDF, 0xDC, 0x01, 0xC3, -+ 0x06, 0x2F, 0xC9, 0x8E, 0x53, 0x9F, 0x4F, 0x6F, 0xE1, 0x59, 0x4E, 0x92, 0xA2, 0xCF, 0x66, 0xD2, 0x84, 0x97, 0xC1, 0xB4, 0xDD, 0xF5, 0x4A, 0x32, 0x40, 0xC4, 0x06, 0x88, 0xA3, 0xFF, 0x30, 0xBB, -+ 0x10, 0xFD, 0x97, 0x82, 0xE9, 0xD1, 0x96, 0x6B, 0xD2, 0x2A, 0x23, 0xEA, 0x12, 0xB3, 0xFE, 0xD0, 0xE1, 0xD3, 0x2F, 0x61, 0xEE, 0xFA, 0xEA, 0x7B, 0xB5, 0xEF, 0xBE, 0xE4, 0x10, 0xA8, 0x7A, 0xB0, -+ 0x79, 0x16, 0x1B, 0x2A, 0xF6, 0xD8, 0x16, 0x47, 0x0E, 0xB8, 0x50, 0xF7, 0x24, 0x70, 0x54, 0xE0, 0xED, 0xB1, 0xD6, 0x56, 0x4D, 0x15, 0xA2, 0x3B, 0xC2, 0xDF, 0x89, 0x6B, 0xEB, 0x07, 0xDE, 0xE2, -+ 0xE0, 0x2E, 0xC6, 0xC2, 0x4F, 0x12, 0xEE, 0x96, 0x95, 0x75, 0xCA, 0xF3, 0xDD, 0x72, 0x23, 0x52, 0xC9, 0x81, 0x46, 0x4A, 0x9F, 0x5D, 0xED, 0x7E, 0xF3, 0x71, 0x16, 0x1A, 0x8A, 0x62, 0x0C, 0xB4, -+ 0x29, 0xDE, 0x55, 0x48, 0xE5, 0xC0, 0xE3, 0xBC, 0x2C, 0x3D, 0xBA, 0xB7, 0x93, 0x28, 0xD5, 0xFA, 0x70, 0xA4, 0xF6, 0x99, 0xE5, 0x4D, 0x3C, 0x22, 0x4C, 0xF3, 0xCB, 0xA4, 0x1E, 0x7D, 0xE7, 0xE3, -+ 0xAF, 0xC3, 0x20, 0xDE, 0xCA, 0x7C, 0x36, 0x2F, 0xAC, 0x7C, 0xC9, 0x26, 0x78, 0x46, 0x4D, 0x41, 0x3D, 0xD4, 0x22, 0x9E, 0x76, 0xAA, 0x90, 0x93, 0x80, 0x9C, 0x0F, 0x5E, 0xDE, 0x53, 0x0A, 0xCB, -+ 0xFE, 0xCF, 0x08, 0x2B, 0xC5, 0xD2, 0x18, 0xD0, 0xB8, 0xF3, 0xF1, 0x76, 0x89, 0x7A, 0xCF, 0xF3, 0x59, 0xF1, 0xA6, 0xA8, 0x06, 0xB7, 0xA8, 0x66, 0x9C, 0x72, 0xC2, 0x26, 0xF2, 0xB8, 0x45, 0x2E, -+ 0xC8, 0xD3, 0x5F, 0xA6, 0x6B, 0xFE, 0x93, 0x63, 0xAE, 0x9E, 0x84, 0x42, 0xD1, 0x85, 0x50, 0x80, 0x1B, 0x00, 0x62, 0x24, 0x68, 0x57, 0x3C, 0xAD, 0x37, 0xBD, 0x18, 0x99, 0xC2, 0xAB, 0x37, 0x5F, -+ 0x98, 0xB0, 0xEF, 0x9C, 0x51, 0x84, 0xD4, 0x0F, 0x23, 0x93, 0x05, 0x4E, 0xCE, 0x1E, 0xAB, 0x24, 0xDE, 0x05, 0x22, 0xFE, 0x0F, 0xDF, 0xF7, 0x01, 0x6E, 0xAF, 0x4F, 0x88, 0xBB, 0x28, 0xF3, 0x64, -+ 0xAE, 0x4A, 0xD3, 0xDA, 0x4B, 0x70, 0xAC, 0x0E, 0x47, 0xD2, 0xB6, 0x7B, 0x9A, 0x60, 0x37, 0x68, 0x61, 0xC6, 0x7C, 0x6B, 0x85, 0x74, 0xCC, 0x07, 0x83, 0x88, 0x92, 0xC3, 0xC8, 0x55, 0x68, 0x0A, -+ 0xF6, 0x97, 0x18, 0x9C, 0xFF, 0xD3, 0x7C, 0xA8, 0x3A, 0x33, 0x71, 0x0F, 0x7A, 0xE9, 0xB0, 0xA8, 0x57, 0x95, 0xFC, 0x6E, 0x4A, 0x57, 0x79, 0x1D, 0x93, 0x2D, 0xD1, 0x10, 0x8B, 0x90, 0x86, 0xBB, -+ 0x3E, 0x29, 0x65, 0x24, 0xE2, 0x91, 0x07, 0xE3, 0x35, 0x4B, 0x4C, 0x40, 0xAD, 0xDB, 0x8C, 0x16, 0x5D, 0xBB, 0xA9, 0x50, 0xFD, 0xCC, 0x0B, 0x3D, 0x92, 0x88, 0x83, 0x9D, 0x9B, 0xA6, 0x35, 0x37, -+ 0x23, 0x17, 0x73, 0xC6, 0x61, 0xDA, 0xD4, 0x0C, 0xC3, 0xA5, 0xD7, 0xAB, 0x1C, 0x59, 0x43, 0xEA, 0xB0, 0x3C, 0x81, 0xFB, 0x39, 0xB5, 0xA6, 0x7B, 0x04, 0xD3, 0x34, 0x82, 0x88, 0x55, 0x6A, 0xB8, -+ 0xDA, 0xD4, 0x5E, 0x1D, 0xFF, 0x68, 0x6C, 0x07, 0x12, 0x83, 0x5D, 0xB6, 0x16, 0x6B, 0x2A, 0xDD, 0xA6, 0x2D, 0x95, 0x08, 0x66, 0xCC, 0xE4, 0x9E, 0xD3, 0x71, 0xE8, 0x76, 0x8C, 0x8E, 0x6E, 0x49, -+ 0xB9, 0x00, 0x0E, 0xA2, 0x93, 0xBD, 0x56, 0x96, 0x87, 0x8F, 0x8C, 0xB1, 0x7C, 0xF8, 0x79, 0xA8, 0x89, 0x7E, 0xD9, 0xDE, 0xD7, 0x74, 0x26, 0x3A, 0x83, 0x0E, 0x4D, 0xEE, 0x2E, 0xD7, 0x52, 0x0B, -+ 0x4C, 0x59, 0xFF, 0x69, 0x71, 0x1F, 0xB3, 0x5F, 0x67, 0x0D, 0x48, 0x77, 0xC7, 0xD3, 0x12, 0x24, 0xA3, 0xAD, 0xD1, 0x43, 0xAA, 0xB9, 0x65, 0x30, 0xB1, 0x80, 0xE5, 0xFB, 0x5E, 0xC9, 0xD8, 0x3F, -+ 0x57, 0x1A, 0xB7, 0x94, 0x77, 0xAD, 0xEA, 0x40, 0x9C, 0x2B, 0xA9, 0x86, 0xC7, 0xA0, 0x54, 0xE6, 0x14, 0x8F, 0x03, 0x7D, 0xB9, 0x71, 0x07, 0x92, 0xF6, 0x12, 0x15, 0xA3, 0xFD, 0xF1, 0x28, 0xFF, -+ 0xA7, 0x15, 0x4F, 0xB0, 0x1C, 0xF4, 0xEF, 0x18, 0xFB, 0xC2, 0xA2, 0x03, 0xBD, 0x37, 0x6D, 0x68, 0x6C, 0x36, 0x70, 0x6F, 0x13, 0x2E, 0x20, 0x81, 0xB9, 0x10, 0xFD, 0x15, 0x46, 0x0C, 0x5A, 0x05, -+ 0x09, 0x9C, 0x84, 0x23, 0x6F, 0x98, 0x2F, 0xBE, 0xBC, 0x62, 0x51, 0xEB, 0x07, 0x68, 0x88, 0xF9, 0x64, 0xE5, 0x79, 0x94, 0x42, 0x16, 0x0D, 0xA2, 0x60, 0x80, 0x29, 0xD6, 0x1B, 0xE9, 0xAD, 0x99, -+ 0xB4, 0x5B, 0x7B, 0xEC, 0x36, 0xD7, 0xFA, 0x12, 0xBA, 0x3F, 0x50, 0x28, 0xFD, 0x5B, 0x90, 0xE4, 0x26, 0xB9, 0x04, 0x88, 0x49, 0x92, 0x18, 0x27, 0x9E, 0xCB, 0xDC, 0x33, 0xF1, 0xE7, 0x17, 0xBD, -+ 0x44, 0x0F, 0x5C, 0x85, 0x80, 0x8D, 0x72, 0x91, 0xF6, 0x36, 0xE8, 0xF5, 0xDE, 0xA6, 0xEA, 0x59, 0x18, 0x6F, 0xFC, 0x6C, 0xF8, 0x59, 0x2A, 0x09, 0x72, 0x46, 0x34, 0xA3, 0x01, 0x8C, 0xA8, 0xE5, -+ 0x52, 0x5E, 0x3E, 0xC7, 0xAE, 0x6F, 0x01, 0x5E, 0x28, 0x7E, 0xA0, 0x6A, 0x6F, 0x19, 0x3E, 0xB6, 0x50, 0xEC, 0x00, 0x95, 0xAF, 0x8F, 0x43, 0xFE, 0x12, 0x2A, 0xC3, 0xF4, 0x7D, 0xEC, 0xDB, 0x72, -+ 0xDD, 0x4F, 0x68, 0x69, 0x86, 0x64, 0x5D, 0x61, 0xD9, 0x7D, 0xD6, 0x97, 0x64, 0x9F, 0x1E, 0x7B, 0xE0, 0x17, 0x30, 0xD1, 0xBD, 0xBD, 0xF7, 0x62, 0x71, 0x40, 0xDC, 0x0E, 0x18, 0xE6, 0xB3, 0x55, -+ 0x7B, 0xA3, 0x67, 0xF0, 0x90, 0xFB, 0xD7, 0xC5, 0x47, 0x5E, 0xD3, 0xFA, 0x05, 0x5B, 0x32, 0x5D, 0x4B, 0x61, 0x35, 0x9F, 0x45, 0xBC, 0xFE, 0xF1, 0xA6, 0x06, 0xC7, 0x2E, 0xF3, 0x62, 0x62, 0xA0, -+ 0x45, 0x51, 0xBC, 0x8C, 0x24, 0xFA, 0xB3, 0x53, 0x21, 0xFC, 0xE8, 0xBC, 0xE5, 0x56, 0x06, 0x27, 0x9A, 0x29, 0x15, 0x69, 0x76, 0xFB, 0x45, 0xEE, 0x76, 0x1D, 0x92, 0x50, 0x14, 0xCB, 0x69, 0x1F, -+ 0xF7, 0x6B, 0x5F, 0xEF, 0xE1, 0xB8, 0x39, 0x5B, 0x81, 0x10, 0x6A, 0x24, 0x5C, 0x93, 0x0E, 0x2D, 0x99, 0x54, 0xF1, 0xCC, 0x5A, 0x3A, 0xAA, 0x2C, 0x9C, 0xD5, 0x62, 0xA7, 0xB5, 0xC7, 0x4D, 0x84, -+ 0xC0, 0xC2, 0xFE, 0xE6, 0x2E, 0x0E, 0xDB, 0xE1, 0xE8, 0xFB, 0x96, 0x90, 0xA2, 0xF4, 0x0B, 0x8D, 0xFD, 0xE1, 0x34, 0xC8, 0xBE, 0xDA, 0x37, 0x0A, 0x7B, 0x17, 0x0D, 0xAA, 0xBC, 0xA6, 0xB9, 0xFE, -+ 0x48, 0x9E, 0xF4, 0xEA, 0x66, 0x29, 0xF0, 0x3E, 0x5E, 0x44, 0x30, 0xC2, 0xFA, 0x57, 0x31, 0xEB, 0xC7, 0x47, 0x6A, 0xE6, 0x3F, 0xF8, 0x9B, 0x39, 0x49, 0xC9, 0x93, 0x71, 0x77, 0xD3, 0x63, 0x1E, -+ 0x14, 0xC1, 0x26, 0x57, 0x9F, 0x79, 0x74, 0xD9, 0x6C, 0x37, 0xCD, 0x73, 0x0A, 0x09, 0x8D, 0xFE, 0xCB, 0x6A, 0xFC, 0x86, 0x41, 0x65, 0x66, 0x8F, 0x03, 0xD5, 0x12, 0xA4, 0xCA, 0xDC, 0x49, 0xA4, -+ 0xEB, 0xEE, 0x2E, 0x1A, 0x26, 0x7E, 0xE2, 0xE2, 0xA7, 0x6B, 0xBB, 0x2C, 0x77, 0x6A, 0x44, 0x87, 0xBC, 0xC0, 0xFC, 0x00, 0xAF, 0xD7, 0xC1, 0x81, 0x7F, 0x7E, 0x89, 0x00, 0x26, 0xD5, 0xD4, 0x25, -+ 0x4C, 0x9C, 0xCC, 0xBA, 0x2B, 0xB3, 0x01, 0xBA, 0x57, 0xCE, 0x7C, 0xD4, 0x7A, 0xE1, 0x8D, 0x65, 0x3F, 0x9A, 0x92, 0x05, 0x3A, 0xF9, 0x0B, 0xEE, 0xC3, 0xA8, 0x29, 0xB8, 0x52, 0xC2, 0x3D, 0x0D, -+ 0xF7, 0x52, 0x07, 0x70, 0x1E, 0x67, 0x49, 0x74, 0xED, 0x56, 0x2F, 0xF5, 0x9A, 0x81, 0x1B, 0xB8, 0x5C, 0xCF, 0x62, 0x13, 0x64, 0xCD, 0x9F, 0x87, 0xC9, 0xE7, 0x8B, 0x9D, 0x2F, 0x2E, 0xB2, 0x6F, -+ 0x00, 0x41, 0xAF, 0x1A, 0x47, 0xA4, 0x37, 0xC4, 0x0C, 0x02, 0x93, 0x9B, 0x62, 0xC8, 0x90, 0x52, 0x13, 0x5A, 0x06, 0x63, 0x2E, 0x43, 0xDE, 0x35, 0x34, 0x8E, 0xEA, 0x91, 0x75, 0x03, 0x47, 0xB8, -+ 0x6A, 0xC2, 0xFA, 0xB5, 0x55, 0x53, 0x24, 0x9F, 0xC2, 0x5D, 0x2B, 0x57, 0x49, 0x69, 0x92, 0x91, 0x38, 0xA4, 0x83, 0x71, 0xDC, 0x74, 0x6E, 0xAC, 0x5F, 0xA1, 0x08, 0xE2, 0x6C, 0xBC, 0xC5, 0xB6, -+ }, -+ .t1_len = 2304, -+ .t1 = { -+ 0x1B, 0xEA, 0x94, 0x79, 0x6B, 0xBA, 0xD0, 0x5D, 0xA6, 0xD7, 0xD2, 0x58, 0x1A, 0x10, 0xE9, 0x7C, 0xF1, 0xF8, 0x9D, 0x66, 0xED, 0x7A, 0x7A, 0xE2, 0x3B, 0xBE, 0xB6, 0x8B, 0x87, 0xF5, 0x1E, 0xE2, -+ 0x69, 0xDA, 0x47, 0x6D, 0x3F, 0xCA, 0x1C, 0xA5, 0x4D, 0x27, 0x26, 0x72, 0xB3, 0x7A, 0x61, 0x11, 0x25, 0x5E, 0x37, 0xA6, 0xF7, 0x71, 0x9B, 0xC2, 0xDD, 0x38, 0x97, 0xC2, 0xA7, 0x74, 0x89, 0x4C, -+ 0x4B, 0xD8, 0xE6, 0xF5, 0xE7, 0xE1, 0x10, 0xA6, 0xDF, 0x0E, 0x58, 0x44, 0x20, 0x8D, 0x94, 0x11, 0x53, 0xCC, 0xDD, 0x77, 0xA3, 0x4B, 0xBC, 0x37, 0x26, 0xA0, 0x87, 0x85, 0xD7, 0x28, 0x02, 0xE2, -+ 0xF1, 0x52, 0xB3, 0x30, 0x67, 0x89, 0xB1, 0xEA, 0x50, 0x2D, 0x42, 0x22, 0x71, 0x24, 0x9A, 0xC5, 0x57, 0x11, 0x39, 0xE1, 0x7F, 0x62, 0x9A, 0xF3, 0x5C, 0x9D, 0x7F, 0x43, 0x49, 0x1D, 0x83, 0xCC, -+ 0x01, 0x07, 0x7C, 0x58, 0x84, 0xC6, 0x2A, 0x1A, 0x87, 0xE7, 0x5E, 0x68, 0x48, 0xE6, 0xD1, 0x2D, 0xC1, 0x3A, 0xE8, 0x43, 0x1A, 0x93, 0xAB, 0xCA, 0xB7, 0x9E, 0x05, 0x2E, 0xFC, 0xAE, 0x5E, 0x02, -+ 0xF4, 0x49, 0xE8, 0x11, 0x8E, 0x6D, 0x9F, 0x36, 0x9F, 0xDD, 0x0A, 0x59, 0x33, 0x37, 0xE4, 0xC0, 0xC7, 0x50, 0xFE, 0x4A, 0x4F, 0xAE, 0x5F, 0x83, 0xC0, 0x17, 0x93, 0xBF, 0xD7, 0x6E, 0xA0, 0x81, -+ 0x77, 0xBC, 0xA3, 0x78, 0x71, 0xD9, 0x14, 0x51, 0xC5, 0xA8, 0x19, 0x5A, 0xBB, 0x3C, 0x5B, 0x46, 0xCC, 0x66, 0x08, 0xBE, 0xD7, 0x7E, 0x92, 0x3C, 0xE1, 0x51, 0x64, 0x25, 0x06, 0x54, 0x16, 0x95, -+ 0xA4, 0xE2, 0x96, 0xCB, 0xC6, 0x4D, 0x3B, 0x32, 0x3F, 0x77, 0xBE, 0x7B, 0x72, 0x4C, 0xC4, 0x38, 0xF0, 0xF7, 0xB6, 0xAC, 0xA6, 0xE1, 0xC9, 0x90, 0x8A, 0xA0, 0x86, 0xF3, 0x0B, 0x3D, 0x3C, 0x0C, -+ 0x1D, 0xB6, 0x44, 0x90, 0x37, 0xB4, 0x9D, 0x10, 0x67, 0x40, 0xC9, 0xDB, 0x8D, 0x99, 0xC5, 0x7B, 0x49, 0xA7, 0xBC, 0x14, 0xB1, 0x71, 0x07, 0x35, 0xAF, 0x96, 0x1B, 0x77, 0x60, 0xA8, 0x2D, 0xFB, -+ 0xB1, 0xD8, 0x9C, 0x72, 0xD7, 0x09, 0x4F, 0xC8, 0x95, 0x1B, 0xB0, 0xE9, 0x83, 0x97, 0xD3, 0x25, 0xBF, 0x12, 0x00, 0x1B, 0x04, 0xAC, 0xC6, 0x64, 0x79, 0x28, 0x2C, 0x30, 0x57, 0x47, 0x6D, 0xA0, -+ 0x5A, 0x3B, 0x76, 0xD7, 0x59, 0x2F, 0xBE, 0xF9, 0xDA, 0x06, 0x0E, 0xBA, 0xF4, 0xF7, 0x33, 0xAE, 0x63, 0x63, 0x76, 0xB7, 0x60, 0x5D, 0x9B, 0xBE, 0x60, 0x52, 0x2E, 0x3E, 0xF0, 0xE8, 0x6A, 0x83, -+ 0x4F, 0x36, 0xA0, 0xCE, 0xC9, 0x6F, 0xBB, 0x4A, 0x8B, 0xF3, 0x1E, 0xAC, 0x2D, 0x5A, 0x52, 0x3B, 0xF4, 0x84, 0x5D, 0xB6, 0xD4, 0xD8, 0x7C, 0x3D, 0x50, 0xC9, 0xE0, 0x27, 0x52, 0xB6, 0x4F, 0x42, -+ 0x06, 0x2F, 0x62, 0x5A, 0x19, 0x12, 0x53, 0xFA, 0x7A, 0xA4, 0xA3, 0x6E, 0xED, 0x8E, 0xE9, 0xD9, 0x86, 0xFA, 0x86, 0xC1, 0x3B, 0xB3, 0xF1, 0x7D, 0x64, 0x1B, 0x8B, 0x26, 0x7F, 0x01, 0x36, 0x9A, -+ 0xD1, 0x27, 0x0D, 0xD5, 0x41, 0x3C, 0x94, 0xEF, 0x0B, 0x77, 0x2D, 0x28, 0x9E, 0x7A, 0xCD, 0xAF, 0x20, 0x75, 0x57, 0x6C, 0xF2, 0x15, 0x7B, 0x5C, 0xFA, 0x48, 0x79, 0x68, 0x66, 0x15, 0xFA, 0xBA, -+ 0xF3, 0x85, 0x74, 0x35, 0x87, 0x41, 0xB9, 0x02, 0xE1, 0x82, 0x7A, 0xC7, 0x1B, 0x9A, 0xED, 0x0B, 0xBC, 0xEE, 0x5F, 0x85, 0x43, 0xD4, 0x5A, 0xB9, 0xCF, 0x4F, 0xF9, 0xA9, 0x5A, 0x5B, 0xF2, 0x86, -+ 0x9A, 0x64, 0xBC, 0x68, 0x10, 0xB7, 0x57, 0x46, 0x15, 0x4A, 0x4D, 0xA6, 0x49, 0xD6, 0x9B, 0x3E, 0xA9, 0x53, 0xFF, 0xC9, 0x4F, 0xD2, 0x01, 0x27, 0x22, 0xF9, 0x33, 0x4B, 0x8F, 0xCD, 0x4C, 0x12, -+ 0x65, 0xEA, 0x60, 0x8B, 0xF5, 0x5B, 0x57, 0xAB, 0x08, 0xBE, 0x22, 0x53, 0xE1, 0x57, 0x40, 0x81, 0xC3, 0xC4, 0xD2, 0xB7, 0x41, 0xC8, 0x80, 0x3E, 0x88, 0x8D, 0xEC, 0x54, 0x85, 0x2B, 0xEF, 0xE9, -+ 0x35, 0x2C, 0x4C, 0x97, 0xC7, 0x6A, 0xFF, 0xC3, 0x64, 0x98, 0x57, 0x8F, 0xCE, 0x72, 0xE5, 0x82, 0x6A, 0xB4, 0xFC, 0x52, 0xFC, 0x26, 0xF1, 0x1C, 0xF1, 0x23, 0x69, 0xCE, 0xD7, 0x04, 0x63, 0xB0, -+ 0x84, 0x04, 0x93, 0xDD, 0x67, 0x56, 0x04, 0xB0, 0xAE, 0x0D, 0x22, 0x14, 0xC7, 0x8B, 0x34, 0xEE, 0x32, 0x46, 0x9F, 0x68, 0x37, 0x01, 0x12, 0x4A, 0xC4, 0xF9, 0xB7, 0xF4, 0xFA, 0xE7, 0x6E, 0xDD, -+ 0xFF, 0x67, 0x81, 0xCB, 0xE1, 0x1B, 0x87, 0x61, 0x32, 0x29, 0x95, 0x0C, 0x77, 0xC1, 0x4E, 0xAA, 0x0D, 0xB1, 0xE3, 0x21, 0xF0, 0x1A, 0x59, 0x3B, 0x60, 0xDE, 0xE0, 0x31, 0x88, 0xB2, 0x07, 0xB2, -+ 0x41, 0x32, 0x11, 0xF5, 0x95, 0xDB, 0x92, 0x8D, 0xA0, 0x94, 0x4F, 0x45, 0x4F, 0x08, 0xBA, 0xCA, 0xE4, 0x14, 0xD8, 0xBF, 0x25, 0x9E, 0xAF, 0xBE, 0x3F, 0x74, 0x26, 0xD2, 0xBF, 0x94, 0x9D, 0xB2, -+ 0xCB, 0x67, 0xD5, 0x83, 0x2D, 0xFA, 0x3F, 0xF9, 0xD8, 0x23, 0x72, 0xDE, 0x65, 0x7E, 0x61, 0x7F, 0x67, 0xEE, 0x95, 0xDA, 0xC7, 0xEC, 0xE1, 0x60, 0xBA, 0x14, 0x5C, 0xBA, 0x8E, 0x98, 0xBC, 0x5E, -+ 0x98, 0x9C, 0x41, 0xD4, 0x87, 0x5A, 0x65, 0x95, 0x9B, 0xBE, 0x28, 0x1C, 0xB6, 0xDA, 0x72, 0x1F, 0xCC, 0x90, 0x29, 0xDA, 0x97, 0xDD, 0xE8, 0x3F, 0x7B, 0x1B, 0x95, 0x9A, 0x1A, 0xD4, 0x04, 0x19, -+ 0x49, 0x55, 0x12, 0x66, 0xFE, 0xED, 0x89, 0x6E, 0x98, 0x89, 0xE0, 0xAC, 0xF4, 0xF7, 0x61, 0x4D, 0x27, 0xCA, 0x7D, 0x05, 0x2C, 0xDB, 0x7A, 0x22, 0xE4, 0x4B, 0x40, 0x92, 0x4A, 0xF7, 0x27, 0xE9, -+ 0x16, 0xB9, 0x23, 0x7E, 0xD2, 0x01, 0x7C, 0x61, 0xD0, 0x0E, 0x30, 0x16, 0xD3, 0xBD, 0xFD, 0x8B, 0xFC, 0x4E, 0x73, 0xC6, 0xEC, 0x77, 0x7F, 0x8B, 0x06, 0x87, 0xF4, 0x1F, 0x0F, 0x21, 0xE7, 0xFE, -+ 0xFC, 0x1A, 0x79, 0x6A, 0xB5, 0x02, 0x63, 0x79, 0x03, 0xE8, 0xA1, 0x8C, 0x6B, 0x9A, 0x1A, 0xF9, 0xDC, 0x30, 0x68, 0x22, 0x41, 0xB5, 0x81, 0x41, 0xC5, 0x82, 0xE9, 0xE8, 0xD6, 0x91, 0x4D, 0xD1, -+ 0xF4, 0x01, 0xBC, 0x05, 0x18, 0xBE, 0x7F, 0x01, 0x47, 0xB3, 0xA1, 0x35, 0xAB, 0x6D, 0x45, 0x89, 0x3B, 0x07, 0x51, 0xC7, 0xED, 0x8C, 0xA6, 0xE5, 0xA6, 0xF1, 0xAE, 0xFB, 0xD5, 0x52, 0x49, 0x24, -+ 0x3A, 0x20, 0x77, 0x26, 0x93, 0xCA, 0xEB, 0x7F, 0xA1, 0xE4, 0x86, 0xF4, 0x63, 0x1E, 0xD4, 0x9D, 0x7D, 0xA0, 0x23, 0x18, 0x3B, 0xC2, 0x14, 0xEE, 0x22, 0xD8, 0x94, 0x83, 0xD2, 0xC9, 0xD2, 0x17, -+ 0x63, 0x79, 0xD8, 0x29, 0x55, 0xE9, 0x2D, 0x93, 0xC0, 0xD4, 0x12, 0x05, 0xAB, 0xAA, 0x72, 0x5E, 0x4D, 0x89, 0x97, 0xCA, 0xB1, 0x4B, 0x45, 0xF0, 0x94, 0xD0, 0xAA, 0xA6, 0x4D, 0x37, 0xBD, 0x82, -+ 0xA7, 0x4B, 0x3D, 0xFA, 0xA4, 0x04, 0xD9, 0x43, 0x1C, 0x1A, 0x49, 0xDB, 0x8A, 0x29, 0x77, 0xF1, 0xCE, 0x24, 0x5A, 0xB2, 0xB1, 0x23, 0x69, 0xB3, 0x4E, 0xE8, 0xEB, 0x01, 0x7A, 0xE2, 0xF0, 0x7F, -+ 0xB4, 0xA5, 0x56, 0xF6, 0xE9, 0x44, 0x16, 0xE1, 0xA5, 0x4C, 0x08, 0x50, 0x28, 0x8D, 0x24, 0xBA, 0x57, 0x9F, 0x59, 0xA4, 0xDF, 0xAF, 0xAC, 0xA8, 0xF9, 0x87, 0xD4, 0x29, 0x5F, 0x2F, 0xF6, 0xEC, -+ 0x31, 0x6A, 0x7E, 0x65, 0xD1, 0xC6, 0x67, 0x79, 0x5B, 0x9E, 0xF9, 0x87, 0x05, 0x25, 0x5A, 0x4B, 0xC3, 0x40, 0x97, 0xBC, 0xDD, 0x99, 0x3B, 0xAE, 0x4D, 0x86, 0x79, 0x6A, 0x79, 0x93, 0x52, 0xB7, -+ 0xBF, 0xC0, 0xD2, 0x2A, 0xD1, 0x7C, 0x6B, 0x68, 0xA3, 0x5A, 0x2B, 0x1C, 0x6B, 0xA1, 0x70, 0x6B, 0x0F, 0x37, 0xC7, 0xED, 0x09, 0x76, 0xBA, 0x2A, 0xFB, 0xFC, 0xF1, 0x93, 0x0B, 0x77, 0x3C, 0xEB, -+ 0x06, 0x44, 0x80, 0x18, 0xBD, 0x43, 0x14, 0xBE, 0x3E, 0xF1, 0x35, 0x4F, 0xC2, 0xD1, 0xAA, 0x05, 0xEF, 0xFA, 0x54, 0x46, 0x20, 0x21, 0xC5, 0x20, 0x74, 0xC6, 0xE4, 0xA6, 0x34, 0x65, 0xE4, 0x4F, -+ 0xBC, 0x53, 0xBC, 0x64, 0x3E, 0x48, 0x5E, 0xD0, 0xAD, 0xE0, 0x76, 0xFB, 0xB4, 0x9F, 0x0F, 0x64, 0xA3, 0xE2, 0x2E, 0xD1, 0xF8, 0xCD, 0x91, 0xC1, 0x18, 0xFB, 0x30, 0x61, 0x12, 0x0F, 0x20, 0x3F, -+ 0xC9, 0x25, 0x7C, 0xE3, 0x06, 0xA5, 0x63, 0x78, 0x73, 0xD5, 0x4B, 0x68, 0x13, 0xD5, 0xA6, 0xFF, 0x60, 0x4A, 0x8B, 0xA2, 0x5F, 0xEB, 0x1E, 0xD1, 0xF8, 0x07, 0xEB, 0x93, 0x9D, 0xA4, 0x5D, 0xBD, -+ 0xE0, 0xE6, 0xE3, 0x1B, 0x57, 0xC7, 0x6E, 0xF0, 0xD3, 0x3D, 0x93, 0x61, 0x20, 0xA6, 0x43, 0x3D, 0xE5, 0xA4, 0x03, 0x97, 0xF5, 0x01, 0x8A, 0x49, 0x21, 0x34, 0x57, 0x23, 0xA1, 0xB5, 0xEF, 0x49, -+ 0x06, 0xB7, 0x15, 0x10, 0x1A, 0x01, 0x72, 0x8E, 0x00, 0x1A, 0x1A, 0x95, 0xE4, 0x36, 0x66, 0xFF, 0xE4, 0x39, 0x3F, 0xC9, 0xB8, 0x72, 0xE7, 0x72, 0x9E, 0x9F, 0x4B, 0x50, 0x82, 0xF3, 0xB8, 0x41, -+ 0x82, 0x58, 0xBB, 0x97, 0xE7, 0x36, 0x0A, 0xE5, 0x8A, 0xAC, 0x97, 0x6A, 0xE9, 0x20, 0xCD, 0xA1, 0x59, 0x2B, 0xF4, 0x2B, 0x06, 0x9E, 0x70, 0x10, 0x5D, 0x08, 0x18, 0x2A, 0x32, 0x57, 0xED, 0xAF, -+ 0x75, 0x5D, 0x98, 0xF0, 0xFF, 0x20, 0xD1, 0x39, 0xD1, 0x9C, 0x1D, 0x3E, 0x8F, 0xD4, 0x24, 0x60, 0x94, 0x20, 0xAC, 0x86, 0x00, 0x31, 0x76, 0x18, 0xF5, 0x1F, 0xEB, 0x55, 0xBA, 0x8C, 0xD0, 0x2C, -+ 0x2F, 0x8F, 0x0C, 0x54, 0xB2, 0x0D, 0x4A, 0xA2, 0xC3, 0xBB, 0x82, 0x65, 0xA7, 0x37, 0x51, 0x27, 0xBD, 0x11, 0x84, 0xBE, 0x38, 0xC1, 0xD4, 0x71, 0x2A, 0x58, 0x95, 0x63, 0x82, 0x35, 0x08, 0xC6, -+ 0x9B, 0x3C, 0xDF, 0x66, 0x0E, 0x4F, 0x7E, 0x4B, 0x45, 0xBA, 0xAA, 0x30, 0x90, 0xE3, 0x75, 0xCE, 0x59, 0xB8, 0x44, 0xE4, 0x37, 0x7B, 0x4B, 0x46, 0xD9, 0x4B, 0x5A, 0x22, 0x7C, 0x20, 0x7A, 0xB9, -+ 0x4B, 0x55, 0xE0, 0x67, 0xFF, 0x5B, 0xF3, 0xEB, 0xCE, 0x81, 0x0A, 0x7B, 0x92, 0xB9, 0xF4, 0xD3, 0xB5, 0xAC, 0x98, 0xEF, 0x1A, 0x17, 0x5A, 0xD2, 0xC4, 0x39, 0x1B, 0xAC, 0x9A, 0x70, 0xE1, 0xA6, -+ 0x25, 0x56, 0x3A, 0x9D, 0x5B, 0x59, 0x44, 0x80, 0x1D, 0xD2, 0xDB, 0xCC, 0xFC, 0xDB, 0xE2, 0xD7, 0xA5, 0x17, 0x4F, 0xF3, 0xD1, 0xFC, 0x61, 0xED, 0x47, 0x87, 0xEA, 0x99, 0x17, 0xDC, 0x27, 0x23, -+ 0x6F, 0x7B, 0x38, 0x30, 0x65, 0xD7, 0xB3, 0x8E, 0x28, 0xC1, 0x03, 0xF6, 0xDD, 0x72, 0x8E, 0xB2, 0x88, 0x23, 0x58, 0xB0, 0x36, 0xA6, 0xB1, 0xE7, 0xFD, 0xC3, 0x77, 0x1F, 0xD1, 0xFE, 0xD5, 0xFF, -+ 0xA2, 0x59, 0x6D, 0x2B, 0x9F, 0xD8, 0xDA, 0x08, 0x92, 0xE2, 0x42, 0x7C, 0xA0, 0x87, 0xE9, 0xFE, 0x17, 0x4A, 0x66, 0x57, 0xA1, 0x8D, 0xC6, 0x69, 0x4C, 0x7D, 0x73, 0x7E, 0x49, 0xD2, 0xC6, 0x8D, -+ 0x07, 0xA2, 0x3B, 0x51, 0xC7, 0x67, 0xF4, 0x66, 0x5F, 0xCB, 0x85, 0x5A, 0x9B, 0x8C, 0x84, 0xC4, 0xD7, 0x08, 0x2E, 0x3C, 0x5A, 0x73, 0x4B, 0xBA, 0xF8, 0x45, 0x76, 0x64, 0x74, 0x0A, 0x51, 0x73, -+ 0xEE, 0xB6, 0x8A, 0xC4, 0xFB, 0x83, 0x4B, 0x16, 0x14, 0x8A, 0xAE, 0x1E, 0xAA, 0xFE, 0xC3, 0x42, 0x73, 0x0C, 0xB8, 0x7B, 0xDD, 0x1F, 0xAB, 0xAE, 0xAC, 0xA9, 0xA0, 0x55, 0x0D, 0xCD, 0x92, 0x4F, -+ 0xCD, 0x70, 0x0A, 0xCF, 0x2B, 0xB8, 0x30, 0x5B, 0xD9, 0x90, 0xDE, 0x98, 0x89, 0xE7, 0xDF, 0x95, 0x7A, 0x70, 0xEF, 0x25, 0xEA, 0xFF, 0x34, 0x52, 0xFE, 0xFA, 0xEC, 0xFB, 0x1C, 0x20, 0x9E, 0xD6, -+ 0x98, 0xB9, 0x29, 0x5D, 0x24, 0xCA, 0x18, 0xF6, 0xEF, 0xFC, 0x1F, 0x38, 0xD4, 0xED, 0x7E, 0x9E, 0x2E, 0x60, 0x6D, 0x94, 0x7D, 0xF2, 0x6C, 0x5E, 0xEA, 0x72, 0xDD, 0x3A, 0xED, 0x4D, 0xDB, 0x17, -+ 0xA6, 0x9E, 0x96, 0xAE, 0xE7, 0x3C, 0x7A, 0xFD, 0xA6, 0xD5, 0x52, 0x8C, 0xE8, 0x50, 0xF6, 0x4A, 0x0F, 0xDF, 0x91, 0x13, 0xA4, 0x04, 0xE8, 0xB7, 0x89, 0x72, 0xD1, 0x1A, 0x5E, 0x05, 0x6C, 0x14, -+ 0xA8, 0x8E, 0x64, 0x72, 0x58, 0x47, 0xC8, 0x23, 0x80, 0x3A, 0xEE, 0xC9, 0x7E, 0x51, 0x4E, 0x21, 0xCC, 0x6F, 0xDA, 0x9B, 0xF8, 0x04, 0x9B, 0xEA, 0x60, 0x23, 0xAF, 0x26, 0xBD, 0xCD, 0xA4, 0x35, -+ 0x33, 0xD2, 0x72, 0xE6, 0xF8, 0x34, 0x53, 0x85, 0xBA, 0x73, 0x96, 0x40, 0x26, 0x53, 0x6C, 0x87, 0x65, 0xE5, 0xD3, 0x27, 0x45, 0x64, 0x4E, 0xE3, 0x86, 0x4B, 0xD1, 0xE3, 0x24, 0x85, 0xA3, 0x16, -+ 0x42, 0xBE, 0xDF, 0x6B, 0x18, 0xD9, 0x41, 0xF3, 0x77, 0x79, 0x11, 0xB5, 0x97, 0xB3, 0x3E, 0xD0, 0x70, 0xA1, 0x8F, 0x5E, 0xD1, 0x29, 0x69, 0xD5, 0xF2, 0xAD, 0x3B, 0xDF, 0x30, 0xD4, 0xDB, 0xE1, -+ 0x14, 0x48, 0x90, 0x12, 0xEE, 0xB7, 0x77, 0x6C, 0x81, 0x5D, 0x79, 0x9B, 0xBC, 0xDA, 0x08, 0xC8, 0xB1, 0xD6, 0x92, 0xBC, 0x7E, 0x50, 0x1A, 0x79, 0x24, 0x91, 0x98, 0x29, 0xD1, 0x8E, 0x24, 0x07, -+ 0xDB, 0x13, 0xDC, 0x7C, 0xB2, 0x4E, 0xB1, 0x50, 0xC4, 0x3C, 0x69, 0x5C, 0xC9, 0xD6, 0xBA, 0x71, 0x4E, 0xB2, 0x3F, 0xF7, 0xE5, 0x37, 0x7B, 0x9D, 0xE1, 0x88, 0x95, 0xB4, 0xF9, 0x29, 0x7D, 0x9F, -+ 0x60, 0xDD, 0xA9, 0x76, 0x3B, 0x93, 0xAB, 0xB9, 0xBD, 0x3B, 0x8A, 0x0D, 0x82, 0xB2, 0xF1, 0x97, 0xAC, 0x68, 0xA1, 0xA2, 0xC1, 0xFE, 0x93, 0xF9, 0x7F, 0xCD, 0x03, 0x5D, 0x97, 0x3A, 0x9C, 0x8E, -+ 0xD4, 0xD5, 0x48, 0x71, 0x1E, 0x24, 0xE8, 0x59, 0x46, 0x75, 0xDE, 0x0C, 0xD3, 0x51, 0x76, 0x69, 0x49, 0xE6, 0x91, 0x78, 0x57, 0x0B, 0xEE, 0x83, 0xF9, 0xB4, 0x51, 0x0E, 0x39, 0x14, 0xD2, 0x7D, -+ 0x4E, 0xEF, 0xF2, 0x79, 0xC3, 0x08, 0x3F, 0x65, 0x2B, 0x87, 0x17, 0x24, 0x16, 0xB1, 0x70, 0x4C, 0x75, 0xA6, 0x9D, 0x05, 0x14, 0x91, 0xD6, 0x2A, 0x36, 0x11, 0x8D, 0x5F, 0x3B, 0x76, 0x1E, 0x32, -+ 0xBA, 0x0E, 0x5C, 0x65, 0xEE, 0x2C, 0x81, 0xA9, 0xF5, 0xB5, 0x55, 0xC8, 0x50, 0x89, 0x18, 0xBB, 0xC0, 0x02, 0x09, 0xCD, 0xBD, 0x6C, 0x54, 0x06, 0xA8, 0xCC, 0x1C, 0x00, 0x29, 0x24, 0x0D, 0x10, -+ 0x76, 0xE7, 0x22, 0x3E, 0x26, 0x89, 0x8C, 0x27, 0xC9, 0x75, 0x07, 0x97, 0xD6, 0x41, 0xF6, 0x5F, 0x2C, 0x92, 0x4A, 0x07, 0xCF, 0xCD, 0x02, 0x46, 0x1C, 0x7A, 0x27, 0x51, 0x91, 0xDA, 0x37, 0x2E, -+ 0x33, 0x9A, 0xCD, 0xDA, 0x38, 0xFA, 0x3B, 0x01, 0x4F, 0x06, 0x7E, 0xBD, 0x22, 0x31, 0xE1, 0x87, 0xD6, 0x0B, 0xB7, 0x37, 0xB7, 0x5D, 0x3E, 0xEA, 0x8C, 0x88, 0xB6, 0xA1, 0xEB, 0xCF, 0x8B, 0x25, -+ 0xAF, 0xCB, 0xB0, 0x71, 0x23, 0x6F, 0x64, 0x40, 0xE5, 0x65, 0xCB, 0xF3, 0xAF, 0x26, 0x32, 0xA2, 0xC9, 0xF6, 0x2F, 0xF3, 0x8B, 0xD8, 0x82, 0x08, 0x08, 0xE8, 0xAB, 0x59, 0x29, 0xED, 0x2B, 0x16, -+ 0x9A, 0x7F, 0xE8, 0xB8, 0x3C, 0x92, 0x59, 0x19, 0xC9, 0xBC, 0xAA, 0x4B, 0x2F, 0xE6, 0x4F, 0x4D, 0x4C, 0xED, 0x8F, 0x0F, 0xC9, 0xAA, 0xD8, 0x54, 0xC3, 0xE7, 0x5D, 0xF0, 0x51, 0x3C, 0x5E, 0x24, -+ 0x76, 0x4E, 0xAD, 0xEE, 0x40, 0xA1, 0xCA, 0xE8, 0x9C, 0x42, 0x56, 0xF4, 0x44, 0x54, 0x1A, 0x51, 0x54, 0x5A, 0xCE, 0xEC, 0x09, 0xA9, 0xA0, 0xD8, 0xF4, 0x81, 0xC5, 0xE1, 0x56, 0x90, 0xE7, 0x49, -+ 0x67, 0x40, 0x98, 0x13, 0x99, 0x5D, 0x02, 0x6F, 0x02, 0x02, 0x38, 0x5F, 0xBF, 0x7D, 0xDA, 0x81, 0x74, 0x79, 0x1E, 0x9E, 0x28, 0xA9, 0x01, 0x04, 0x76, 0x54, 0xE0, 0xAE, 0x54, 0x5A, 0x90, 0xAC, -+ 0x56, 0xA1, 0x92, 0x3A, 0x8D, 0x83, 0xAB, 0x8D, 0x08, 0x5B, 0x49, 0xC5, 0xBA, 0x0A, 0xBB, 0x68, 0x3E, 0x72, 0xBA, 0x9F, 0x03, 0xFC, 0xC7, 0x20, 0x01, 0x24, 0x40, 0x87, 0xF4, 0xF9, 0xB7, 0xE2, -+ 0xE9, 0xD0, 0xE8, 0x20, 0x66, 0x44, 0xC1, 0x36, 0x60, 0xD2, 0x81, 0xBD, 0x7B, 0xB1, 0x65, 0x32, 0x86, 0x38, 0xFF, 0xA3, 0x13, 0x60, 0x0B, 0x30, 0x85, 0xDE, 0x3B, 0x9A, 0xA2, 0x20, 0xBA, 0xD0, -+ 0x3C, 0x08, 0x90, 0xFA, 0x3C, 0x90, 0x0E, 0x49, 0x16, 0x21, 0x87, 0xC0, 0x2E, 0x7E, 0xD7, 0x3D, 0xCF, 0x50, 0xF5, 0xB0, 0x8C, 0xA5, 0xEB, 0x8E, 0xDE, 0x36, 0x7A, 0x28, 0xAE, 0x94, 0xFF, 0x29, -+ 0xB3, 0x62, 0x98, 0x72, 0xAD, 0x99, 0xEA, 0x2B, 0x22, 0x67, 0x37, 0x4D, 0xDB, 0x56, 0x41, 0x29, 0x80, 0x3A, 0x78, 0xDA, 0xBE, 0xC9, 0x07, 0x16, 0xC3, 0x13, 0xF7, 0xAB, 0xCE, 0xC4, 0xD3, 0x43, -+ 0x0E, 0x2E, 0xC3, 0x80, 0x3F, 0x91, 0x9C, 0x85, 0x65, 0x94, 0x0A, 0x3A, 0xCC, 0x80, 0x89, 0x9E, 0xDB, 0xB4, 0x86, 0xED, 0x52, 0xBF, 0xC1, 0x9D, 0x0E, 0xA3, 0xC5, 0x82, 0x77, 0x5E, 0x29, 0x15, -+ 0x4E, 0x99, 0xF4, 0x41, 0x89, 0x7F, 0x09, 0x96, 0xAA, 0xC5, 0xC5, 0xCA, 0x5B, 0xBB, 0xF4, 0x97, 0x23, 0x48, 0x32, 0xC8, 0xB5, 0x79, 0x1C, 0xB8, 0xC8, 0xAC, 0xEA, 0x8D, 0xB3, 0xE0, 0x06, 0x50, -+ }, -+ .pkcs8_len = 0, -+ .spki_len = 0, -+ .msg_len = 66, -+ .msg = { -+ 0x22, 0x5D, 0x5C, 0xE2, 0xCE, 0xAC, 0x61, 0x93, 0x0A, 0x07, 0x50, 0x3F, 0xB5, 0x9F, 0x7C, 0x2F, 0x93, 0x6A, 0x3E, 0x07, 0x54, 0x81, 0xDA, 0x3C, 0xA2, 0x99, 0xA8, 0x0F, 0x8C, 0x5D, 0xF9, 0x22, -+ 0x3A, 0x07, 0x3E, 0x7B, 0x90, 0xE0, 0x2E, 0xBF, 0x98, 0xCA, 0x22, 0x27, 0xEB, 0xA3, 0x8C, 0x1A, 0xB2, 0x56, 0x82, 0x09, 0xE4, 0x6D, 0xBA, 0x96, 0x18, 0x69, 0xC6, 0xF8, 0x39, 0x83, 0xB1, 0x7D, -+ 0xCD, 0x49, -+ }, -+ .sig_len = 4668, -+ .sig = { -+ 0x8B, 0xCE, 0xDB, 0xF2, 0xD6, 0x06, 0x90, 0x0B, 0x70, 0xFD, 0xF9, 0x1F, 0x0F, 0x93, 0xE8, 0x36, 0x56, 0x40, 0x89, 0x72, 0xBB, 0x47, 0xE0, 0x17, 0x95, 0x13, 0x74, 0x62, 0x46, 0x38, 0x0C, 0xAE, -+ 0x70, 0x9A, 0x59, 0x62, 0x2B, 0x9B, 0x23, 0x2D, 0x5B, 0x0D, 0x2D, 0xF5, 0x11, 0x71, 0xCE, 0x64, 0x42, 0x5B, 0x04, 0x38, 0x93, 0x24, 0xA0, 0xA0, 0x03, 0x84, 0x17, 0x00, 0x28, 0x74, 0x50, 0xF7, -+ 0x5A, 0x81, 0x7B, 0x1C, 0x1D, 0x63, 0xCF, 0xB5, 0x0A, 0xF6, 0x1D, 0x8A, 0xF1, 0x9C, 0xC0, 0xFC, 0xB1, 0xA6, 0x3D, 0x53, 0x72, 0xB8, 0xE7, 0xFF, 0xD0, 0xAF, 0xCB, 0xAC, 0x05, 0xF6, 0x3A, 0xC0, -+ 0x55, 0xDE, 0x27, 0x8F, 0x46, 0x25, 0x22, 0x34, 0x1C, 0x3E, 0xD6, 0xA1, 0xEE, 0x74, 0x6E, 0x3A, 0xCA, 0x17, 0x4E, 0xA5, 0x1E, 0x0D, 0xCD, 0xEC, 0x02, 0xBB, 0x5C, 0x68, 0x46, 0x88, 0x64, 0x54, -+ 0x75, 0x90, 0xE0, 0xDE, 0xF0, 0x76, 0x11, 0x1C, 0x3B, 0x45, 0xD1, 0xFA, 0xA7, 0xF3, 0xF3, 0x4C, 0x2E, 0x63, 0x6D, 0x68, 0xB4, 0xF7, 0xD2, 0xBC, 0x04, 0xB7, 0x38, 0x39, 0x59, 0xE0, 0x9E, 0xF7, -+ 0xB8, 0x4B, 0x04, 0x5C, 0x29, 0xEB, 0xD5, 0x0A, 0xE8, 0x87, 0x42, 0x71, 0xAC, 0x3A, 0x7C, 0xB1, 0xEE, 0x94, 0xC5, 0x53, 0x9A, 0xD0, 0x7E, 0x7E, 0xF9, 0xF6, 0x4D, 0x30, 0x16, 0xDA, 0xF9, 0x66, -+ 0x1F, 0xEE, 0x09, 0xB9, 0xBF, 0x27, 0xB0, 0xFF, 0x9B, 0xEA, 0x68, 0x90, 0x98, 0x04, 0x13, 0xAC, 0x23, 0x42, 0xC0, 0x9B, 0x4A, 0x65, 0xA8, 0x3B, 0x58, 0x3F, 0x3A, 0x33, 0x23, 0x04, 0x88, 0xCC, -+ 0x43, 0xAE, 0x30, 0x0D, 0x12, 0xE9, 0xB0, 0x55, 0xC6, 0x5B, 0xD9, 0xC3, 0xA5, 0x1A, 0xA2, 0x7E, 0xF8, 0xBD, 0x04, 0x76, 0x4E, 0x78, 0xDD, 0x8F, 0x1C, 0x62, 0xC6, 0x5C, 0x7F, 0x7E, 0x86, 0x30, -+ 0xD0, 0xC8, 0x6B, 0xEA, 0x6A, 0x87, 0xFF, 0x8D, 0x2D, 0x6E, 0x16, 0x70, 0x24, 0x8C, 0x89, 0xE1, 0x8E, 0x77, 0x5D, 0xC7, 0x93, 0x1E, 0xC5, 0xAA, 0x3B, 0xAB, 0x0F, 0xFC, 0xC4, 0x49, 0xE1, 0xB2, -+ 0x0F, 0x42, 0x2C, 0xA4, 0xDD, 0x2F, 0xD2, 0x9B, 0x40, 0x51, 0x0B, 0xB4, 0x1D, 0x63, 0x6B, 0x37, 0x22, 0x2D, 0xE4, 0xA0, 0x85, 0x55, 0xC0, 0x4F, 0xBA, 0x4B, 0x3C, 0x0F, 0x89, 0x7C, 0x99, 0x8A, -+ 0x2C, 0xE2, 0x16, 0x1B, 0xD1, 0xB3, 0x5D, 0x20, 0xBF, 0x93, 0xA9, 0xD4, 0xFF, 0x8C, 0x28, 0xD2, 0x95, 0xB8, 0x4F, 0x41, 0xF7, 0xF2, 0x74, 0x04, 0x71, 0xF2, 0x76, 0xEE, 0xA4, 0x66, 0xF5, 0xE3, -+ 0xAC, 0xF8, 0x1B, 0xD5, 0xB6, 0xE9, 0x3B, 0xE4, 0x5F, 0x81, 0x15, 0x85, 0x64, 0xF9, 0x0D, 0x3B, 0xAD, 0x75, 0x52, 0xF5, 0x77, 0x72, 0x51, 0x60, 0xE9, 0x46, 0x7C, 0xBA, 0xEC, 0x5C, 0x8D, 0x86, -+ 0x2B, 0xEA, 0x9D, 0x83, 0xE1, 0xC1, 0x83, 0x97, 0xC4, 0x1D, 0x68, 0x68, 0x17, 0x74, 0x2E, 0xF5, 0x7E, 0x74, 0x33, 0xC8, 0xEB, 0x9B, 0xA1, 0x56, 0x9B, 0xB7, 0xF4, 0x1A, 0x8E, 0xD8, 0x89, 0xE2, -+ 0x23, 0xBB, 0xCA, 0x15, 0x3E, 0xBC, 0x02, 0xC0, 0x46, 0x9C, 0x71, 0xD6, 0x63, 0xC4, 0xD2, 0x85, 0x00, 0x8B, 0xF1, 0x85, 0x49, 0x24, 0x3D, 0x0E, 0x46, 0xC8, 0x16, 0xD0, 0xBE, 0x77, 0x50, 0x2C, -+ 0x79, 0x5C, 0x16, 0x8E, 0x07, 0x53, 0x52, 0xFA, 0x7D, 0xDB, 0xF9, 0xD0, 0xF2, 0xBE, 0xB4, 0x52, 0x8B, 0x48, 0xB5, 0xAB, 0xB2, 0x81, 0x0E, 0x37, 0x7F, 0x53, 0x30, 0xB3, 0xE2, 0xE6, 0x1B, 0xFF, -+ 0x7B, 0xE9, 0x6B, 0xDC, 0xAB, 0xA5, 0xB5, 0x6B, 0x6C, 0xA5, 0x7C, 0x66, 0x0E, 0x54, 0xE4, 0x49, 0xEC, 0x3B, 0x4C, 0xA2, 0x66, 0x4F, 0xD3, 0xB7, 0xC4, 0xA8, 0x91, 0x97, 0x3E, 0x2A, 0x31, 0xCC, -+ 0xF8, 0x27, 0x89, 0x2A, 0x1F, 0x75, 0x7F, 0x68, 0x0B, 0x36, 0xF4, 0x0B, 0x08, 0x2C, 0x6A, 0xD5, 0x06, 0x02, 0x1B, 0xAB, 0x7F, 0xE2, 0x2D, 0x46, 0xF6, 0x83, 0x93, 0x34, 0x18, 0x58, 0x67, 0xC0, -+ 0x16, 0x26, 0xAC, 0x63, 0xA4, 0x16, 0x28, 0x58, 0xA9, 0xDA, 0xC3, 0x25, 0x81, 0x68, 0xDF, 0x61, 0xCB, 0x66, 0xA3, 0xFF, 0x9F, 0xD4, 0x38, 0x76, 0x59, 0x06, 0x19, 0xDB, 0xB3, 0xE5, 0xBE, 0x1E, -+ 0xBA, 0x5D, 0x67, 0x59, 0x85, 0xE3, 0xBA, 0x6E, 0xC9, 0x84, 0x01, 0x1F, 0x3E, 0x23, 0xCB, 0xFC, 0xDD, 0x7A, 0xB5, 0xE5, 0x50, 0xC6, 0x1A, 0x0B, 0xAA, 0xBA, 0xBC, 0xBF, 0x16, 0xFA, 0xBC, 0x41, -+ 0x4F, 0xCF, 0x4B, 0xC1, 0x43, 0x4B, 0xAA, 0x03, 0xAE, 0xDD, 0xB8, 0x15, 0x6D, 0xA3, 0x58, 0x71, 0xD4, 0x83, 0xF1, 0x94, 0xAC, 0x3B, 0xF9, 0x18, 0xC9, 0xB7, 0x7B, 0xBA, 0x65, 0x95, 0x97, 0xAD, -+ 0x5B, 0xA2, 0xB8, 0x95, 0x4E, 0xF4, 0x12, 0x1F, 0xDA, 0xDF, 0x0A, 0xE5, 0xA1, 0x2D, 0x5B, 0xDF, 0x3C, 0xBB, 0xD8, 0xEA, 0x5C, 0x76, 0xBE, 0x81, 0x6E, 0x7E, 0x9A, 0x79, 0x92, 0x70, 0x16, 0x5E, -+ 0x7E, 0x9F, 0xD7, 0xCB, 0x70, 0x18, 0x80, 0x81, 0x1E, 0xDE, 0x73, 0xF6, 0x12, 0x1E, 0xEC, 0xEE, 0x27, 0x1A, 0xE4, 0xF1, 0x8D, 0xF1, 0x9F, 0x28, 0xA8, 0x10, 0xAB, 0x43, 0x23, 0x2A, 0xA8, 0x40, -+ 0xF6, 0xDD, 0xCC, 0xB8, 0x6A, 0xE3, 0x96, 0xFE, 0x54, 0xA5, 0x79, 0x77, 0x8F, 0x96, 0xC2, 0xFA, 0x85, 0x70, 0x62, 0x04, 0x7F, 0xF5, 0x3C, 0xA5, 0x42, 0xC4, 0xBA, 0xC1, 0x42, 0x0D, 0x0B, 0x2C, -+ 0x52, 0xA4, 0x2E, 0xAD, 0xBA, 0xAA, 0x58, 0x5A, 0x44, 0x02, 0x73, 0x17, 0xA7, 0x66, 0x6E, 0x47, 0x4C, 0x55, 0xBF, 0x6F, 0xE0, 0x54, 0xE4, 0x22, 0x92, 0x61, 0x79, 0x88, 0xEE, 0x0A, 0xBF, 0xE2, -+ 0x28, 0xC7, 0x1B, 0xA4, 0x74, 0x93, 0x26, 0x8C, 0x32, 0x83, 0xBB, 0x62, 0xE4, 0x0A, 0xA0, 0x5D, 0xEF, 0x2C, 0x10, 0xC6, 0x12, 0x1F, 0x76, 0x7F, 0x33, 0xB1, 0x48, 0x9A, 0x1D, 0x20, 0x48, 0x2A, -+ 0x3D, 0x8D, 0xF8, 0x89, 0x1D, 0xDD, 0x2A, 0x9B, 0xE4, 0xBD, 0x2B, 0x00, 0x73, 0xC5, 0x92, 0x92, 0x34, 0x4A, 0x69, 0x92, 0x79, 0x73, 0x8C, 0xB6, 0xDB, 0x24, 0xA8, 0x97, 0x63, 0x88, 0x7F, 0x2D, -+ 0x78, 0xE7, 0xE2, 0x6A, 0x04, 0x0E, 0xC2, 0x77, 0x7A, 0xAD, 0xED, 0xCA, 0xE5, 0xB2, 0x62, 0x72, 0xAE, 0x40, 0xCB, 0x65, 0x67, 0xC4, 0x16, 0x72, 0x1D, 0xD4, 0x5C, 0x7B, 0x8F, 0x75, 0x1B, 0x82, -+ 0x13, 0x11, 0x80, 0xEA, 0x9E, 0x80, 0xEA, 0x97, 0x26, 0x8A, 0x2C, 0x2E, 0x00, 0x9A, 0xD7, 0xBE, 0x1F, 0xDD, 0x4F, 0xD2, 0xA6, 0x17, 0xF7, 0xA8, 0xD7, 0xE2, 0x6B, 0x6D, 0x94, 0x37, 0x30, 0x99, -+ 0x81, 0xB5, 0x01, 0x3F, 0xC0, 0x72, 0xBE, 0x94, 0xEB, 0x2F, 0x03, 0x6D, 0xD9, 0x0A, 0x78, 0x8D, 0xC5, 0xC1, 0x42, 0xDF, 0x50, 0x5A, 0xCD, 0x26, 0xA0, 0x0D, 0xAF, 0xDC, 0x30, 0xF5, 0x19, 0x0B, -+ 0x0A, 0x91, 0xBC, 0xBE, 0x49, 0x58, 0x7F, 0x89, 0xB1, 0xD9, 0x99, 0xDE, 0x49, 0x00, 0x9C, 0x0B, 0xD7, 0xEB, 0x95, 0x5E, 0xB3, 0x08, 0x86, 0x73, 0x6B, 0x6D, 0xD4, 0xDC, 0x1D, 0x8D, 0x1D, 0xA6, -+ 0x80, 0x69, 0x02, 0x39, 0x87, 0x9B, 0x3D, 0x6D, 0xD7, 0x64, 0x72, 0xF3, 0xD6, 0xE3, 0x3B, 0xC8, 0xFD, 0x90, 0xE4, 0x47, 0xE7, 0x0F, 0xD7, 0xE9, 0xF5, 0x0B, 0xF9, 0xA1, 0xA0, 0xAC, 0x9D, 0x88, -+ 0x32, 0xA4, 0x36, 0xE8, 0x9E, 0x36, 0x44, 0x03, 0x75, 0xF5, 0xDE, 0x88, 0xDC, 0x70, 0xD9, 0x17, 0xCE, 0x13, 0x22, 0x35, 0xB9, 0x1B, 0x20, 0xAE, 0x41, 0x1B, 0x86, 0xC2, 0x19, 0xB5, 0xA3, 0x4D, -+ 0xB0, 0x29, 0x16, 0x80, 0xE6, 0x15, 0x54, 0xDD, 0x50, 0xF3, 0x26, 0x1F, 0xEA, 0x06, 0xB5, 0xF1, 0x74, 0xEA, 0x6B, 0x13, 0x65, 0x0C, 0x97, 0x9C, 0x5A, 0x72, 0x8F, 0x13, 0xF8, 0xDA, 0x45, 0x57, -+ 0xEF, 0x8D, 0x9A, 0xF6, 0x41, 0x22, 0x8F, 0xE5, 0xDD, 0x7D, 0x92, 0x28, 0xD7, 0x8C, 0x9A, 0xE8, 0x7E, 0xFE, 0xEA, 0x22, 0x4C, 0x02, 0x12, 0x5E, 0xC2, 0x86, 0xBB, 0x85, 0xC8, 0xB1, 0x2A, 0xCB, -+ 0x40, 0xF7, 0xEA, 0x12, 0xB0, 0x26, 0xC1, 0xE6, 0x11, 0xEF, 0x99, 0xE0, 0x07, 0x7E, 0xF8, 0x04, 0xD6, 0x56, 0xD0, 0x6B, 0xB4, 0x0C, 0x50, 0xDC, 0xCF, 0xC5, 0x98, 0xC9, 0xD4, 0x04, 0xBF, 0x6B, -+ 0x56, 0x4F, 0x02, 0xE1, 0x8B, 0x48, 0x2C, 0x7F, 0xB7, 0x4C, 0x68, 0x13, 0xA8, 0xE9, 0x75, 0x8E, 0x6F, 0xCB, 0xF2, 0x28, 0x9C, 0x8F, 0x24, 0x5D, 0xD2, 0x41, 0x67, 0x21, 0x89, 0x9D, 0x7A, 0xD4, -+ 0xC7, 0x90, 0xD0, 0x0E, 0x47, 0xF5, 0x14, 0x8C, 0xAC, 0x29, 0x0C, 0x66, 0x07, 0x21, 0x6B, 0xD6, 0x6F, 0x2A, 0x6C, 0xA1, 0xC4, 0xE7, 0x6F, 0x9C, 0xC0, 0x15, 0x08, 0x9D, 0x08, 0xF8, 0x39, 0xA0, -+ 0x95, 0x2F, 0x3B, 0x3C, 0xA8, 0x23, 0x58, 0x16, 0x44, 0xAD, 0x7D, 0xDA, 0x18, 0xC0, 0xBC, 0xC6, 0xE7, 0x46, 0xA7, 0x31, 0xCA, 0xE4, 0x28, 0xCE, 0x7A, 0xD4, 0xCC, 0x81, 0x3B, 0xA9, 0x5D, 0x83, -+ 0xDC, 0x7D, 0x6E, 0xE0, 0xA3, 0xCD, 0xDC, 0xAB, 0x94, 0x35, 0x00, 0x03, 0x45, 0xC7, 0x1A, 0x09, 0x16, 0x28, 0x2F, 0xD5, 0x3C, 0x4A, 0x86, 0x99, 0xD5, 0x6E, 0x55, 0x20, 0x74, 0x2F, 0x5D, 0xA8, -+ 0x1C, 0xAA, 0xFA, 0x16, 0x78, 0x26, 0xCF, 0x38, 0x6E, 0xB7, 0x2C, 0xD5, 0x12, 0x6A, 0x59, 0xE2, 0x4F, 0x74, 0x00, 0x9B, 0xB0, 0x45, 0x6C, 0x8D, 0x58, 0x51, 0x9C, 0xD6, 0x7A, 0x9C, 0xE0, 0x9B, -+ 0xA8, 0x7F, 0x1C, 0xF0, 0x36, 0xEA, 0x9C, 0x7E, 0xDA, 0xD3, 0xBC, 0xD6, 0xDA, 0x32, 0x76, 0x51, 0x8A, 0xFB, 0xB0, 0x4D, 0xF9, 0xA7, 0xE7, 0x73, 0x32, 0x0E, 0xA4, 0x41, 0xA6, 0x2C, 0x64, 0xEA, -+ 0xEA, 0x8D, 0x42, 0xFC, 0x30, 0x80, 0x4B, 0xFF, 0xEC, 0xC9, 0xBC, 0x2D, 0x2F, 0x46, 0x19, 0x67, 0x56, 0x2D, 0x8D, 0x60, 0x84, 0xC9, 0xFE, 0xD5, 0x21, 0x34, 0xD4, 0xE0, 0x46, 0x90, 0x1E, 0xC0, -+ 0x31, 0x86, 0x83, 0x32, 0x6D, 0xD0, 0xC8, 0xBE, 0x19, 0xB9, 0xAE, 0x3F, 0x38, 0xFA, 0x2E, 0xE9, 0x46, 0x54, 0x02, 0x98, 0x5E, 0x8E, 0x27, 0x40, 0x67, 0x28, 0x9A, 0x79, 0xEB, 0x55, 0x91, 0x83, -+ 0x2D, 0x6E, 0xA6, 0x57, 0x8D, 0xF4, 0x77, 0xDF, 0x52, 0xE1, 0x26, 0x45, 0xD1, 0x86, 0x11, 0x24, 0x52, 0x99, 0x0E, 0xA7, 0x53, 0xE4, 0xFF, 0x3F, 0x0C, 0x3D, 0x0A, 0x14, 0x0F, 0xF7, 0x0F, 0x9B, -+ 0xBE, 0x9A, 0x75, 0x5B, 0xF2, 0x79, 0x50, 0x8A, 0x3C, 0x89, 0x8E, 0x40, 0x85, 0xFC, 0xFC, 0x39, 0x9C, 0x46, 0xC6, 0x82, 0x6D, 0x46, 0xF7, 0xF0, 0x06, 0x3E, 0xA5, 0xA4, 0xC7, 0xE6, 0x6D, 0xC5, -+ 0x60, 0x8E, 0x37, 0xAF, 0xAF, 0xF8, 0xFC, 0x43, 0xAE, 0x82, 0xC3, 0x36, 0x1C, 0xA8, 0xB2, 0xC6, 0xFB, 0xDE, 0xF1, 0x98, 0xFE, 0xFE, 0x74, 0x50, 0xE4, 0xDA, 0x66, 0x2F, 0x32, 0x42, 0xD5, 0x2C, -+ 0x0C, 0xE0, 0x2D, 0xBC, 0xAF, 0xF9, 0x44, 0x5A, 0x63, 0x0F, 0x85, 0x74, 0xEA, 0x0E, 0xE0, 0x97, 0x05, 0xC9, 0x1D, 0x39, 0xB8, 0xFA, 0xD7, 0x8C, 0x35, 0xEF, 0xDF, 0x54, 0x7F, 0xB1, 0x01, 0x8C, -+ 0xDC, 0x89, 0x2A, 0x0C, 0x81, 0x62, 0xFA, 0x7E, 0x07, 0x34, 0xC1, 0xEE, 0x07, 0xFA, 0xD9, 0x47, 0x52, 0x0A, 0xE9, 0x5B, 0x30, 0x22, 0x30, 0x3D, 0xDB, 0x32, 0xF3, 0xD8, 0xDC, 0x4D, 0x68, 0x21, -+ 0x21, 0x15, 0x13, 0xC6, 0x4E, 0x78, 0x5E, 0x4E, 0xE4, 0x38, 0x5C, 0xD3, 0x75, 0x7D, 0x68, 0x0A, 0xAE, 0xD5, 0x4E, 0x15, 0xFA, 0xE5, 0x27, 0xB4, 0x5A, 0xAE, 0x14, 0xD5, 0x63, 0x82, 0x57, 0x8C, -+ 0xA2, 0xE1, 0x16, 0xFD, 0x95, 0x4B, 0x56, 0xAC, 0x37, 0x8C, 0x70, 0x44, 0xDA, 0xCC, 0xB8, 0x86, 0xF3, 0x2B, 0xC3, 0xA5, 0x22, 0xBD, 0xEB, 0xEC, 0xBC, 0xAE, 0x5B, 0x77, 0x4B, 0x8E, 0x60, 0x34, -+ 0xFB, 0xB1, 0x15, 0x6D, 0xE5, 0xC5, 0xF2, 0x16, 0x51, 0x4B, 0xFA, 0x0D, 0x1B, 0x17, 0xD4, 0x73, 0xCD, 0xD2, 0xA0, 0x1D, 0x42, 0x2E, 0xD4, 0x41, 0xAD, 0xC7, 0x17, 0x79, 0x5E, 0x07, 0x82, 0xE4, -+ 0x43, 0xA2, 0xF7, 0x4B, 0x01, 0x36, 0x53, 0x65, 0x9C, 0xA3, 0x9F, 0x5C, 0x74, 0xC5, 0xDC, 0x98, 0x71, 0x5D, 0x3E, 0xA2, 0x2A, 0x0D, 0x0D, 0xD8, 0x26, 0xCF, 0xB3, 0xBA, 0x7F, 0xB0, 0x09, 0x3B, -+ 0x9C, 0x80, 0x76, 0x3A, 0x30, 0x8C, 0x22, 0x87, 0x15, 0x3E, 0x21, 0xFB, 0xDE, 0x26, 0xD2, 0xB7, 0x2A, 0x39, 0x32, 0xD7, 0xB5, 0x3B, 0x88, 0xA4, 0xE1, 0xAE, 0xCF, 0x37, 0x49, 0x21, 0xAD, 0x6F, -+ 0x44, 0x47, 0xA6, 0x31, 0x57, 0xCF, 0x7E, 0x05, 0x8E, 0xF9, 0xBA, 0x1D, 0x72, 0x0B, 0x43, 0xF2, 0x18, 0x0D, 0x2F, 0x55, 0x7F, 0xA2, 0x0E, 0x22, 0xA3, 0xEF, 0x78, 0x5A, 0x08, 0xB5, 0x93, 0x11, -+ 0x1A, 0xBB, 0x4B, 0x00, 0xDF, 0x39, 0x88, 0x34, 0xC7, 0xE4, 0x80, 0xF0, 0x40, 0x45, 0x3E, 0x9E, 0x92, 0x5C, 0x8D, 0x77, 0x85, 0xD5, 0x98, 0x43, 0x04, 0xB7, 0xE9, 0x9B, 0x20, 0x89, 0x51, 0x9D, -+ 0x3F, 0x59, 0x14, 0x31, 0x3C, 0xE1, 0x2D, 0x26, 0xE1, 0x90, 0xA4, 0x36, 0xA5, 0x9F, 0x79, 0xB0, 0xB1, 0x25, 0x19, 0x1D, 0x85, 0x43, 0x49, 0x54, 0x78, 0x18, 0x08, 0x16, 0xC9, 0xE6, 0x50, 0x57, -+ 0x99, 0x32, 0x80, 0x4D, 0xCA, 0x0E, 0x02, 0xE4, 0x69, 0xDD, 0x68, 0x78, 0xFC, 0xE9, 0x2D, 0xFB, 0x49, 0x31, 0xBE, 0xC0, 0xAA, 0x8D, 0x3F, 0x89, 0x7F, 0x2B, 0x9B, 0x91, 0x29, 0xAC, 0x59, 0xF4, -+ 0x76, 0x51, 0xC1, 0xC8, 0xBE, 0xD8, 0x94, 0x9E, 0xF4, 0x37, 0xA6, 0x74, 0xCB, 0x0D, 0xD1, 0xD2, 0xFC, 0xDB, 0x15, 0x82, 0x14, 0xB6, 0x71, 0xBA, 0xCA, 0x72, 0xDB, 0xD3, 0xBF, 0xCD, 0x34, 0x51, -+ 0xC9, 0x26, 0x20, 0xDE, 0xE4, 0xDA, 0xC4, 0x06, 0x98, 0x79, 0xE5, 0x0B, 0x3D, 0xD0, 0x22, 0x74, 0xC5, 0x0D, 0x68, 0x37, 0x2E, 0x22, 0x30, 0xAA, 0x56, 0x26, 0xB0, 0x3B, 0x04, 0xBB, 0x4D, 0x2C, -+ 0xF9, 0x99, 0x97, 0xE0, 0x83, 0x7C, 0xB8, 0xD5, 0xB3, 0x07, 0xCB, 0x35, 0xA1, 0x7D, 0x5A, 0x23, 0xC7, 0xA1, 0x79, 0x76, 0x26, 0x7E, 0xB5, 0x2D, 0x12, 0x31, 0x78, 0xC0, 0x88, 0xFF, 0xE7, 0x2E, -+ 0x88, 0x4B, 0x38, 0x79, 0xFD, 0x9F, 0xF6, 0x8D, 0xBE, 0xE5, 0x68, 0x7E, 0x89, 0x3F, 0xAA, 0xB7, 0xF4, 0x5A, 0x17, 0xFC, 0x45, 0x59, 0x4B, 0xAF, 0x56, 0x92, 0xAA, 0xDD, 0xF4, 0x3F, 0xC0, 0x4E, -+ 0xE1, 0x4B, 0x44, 0xE3, 0xA4, 0x6E, 0xA9, 0xEE, 0x53, 0x54, 0x60, 0x49, 0xA3, 0xB1, 0x50, 0x0C, 0x28, 0xEB, 0x86, 0xA7, 0xF4, 0xEF, 0x5F, 0x87, 0x91, 0xF6, 0x44, 0x55, 0x14, 0x14, 0x58, 0x1A, -+ 0x00, 0x3C, 0x8D, 0x48, 0x49, 0x57, 0xAF, 0x27, 0xC4, 0x7B, 0x65, 0x3B, 0x48, 0xF1, 0xC0, 0xC3, 0x7D, 0xD0, 0x09, 0x99, 0x69, 0xDC, 0x22, 0xF3, 0xB6, 0x6B, 0xB3, 0x91, 0x03, 0xEF, 0xE7, 0x53, -+ 0xC6, 0xCA, 0x52, 0x8F, 0x64, 0x47, 0x73, 0xDF, 0x5A, 0xCF, 0xCA, 0xE5, 0x53, 0x4D, 0x52, 0x75, 0xDF, 0x3A, 0xF0, 0xAE, 0x87, 0xBF, 0x90, 0x57, 0xD7, 0x15, 0xBA, 0x0E, 0x26, 0xF6, 0xBE, 0x7A, -+ 0xB9, 0x02, 0xBD, 0xAD, 0xE9, 0x98, 0x3E, 0x1F, 0xE1, 0xA5, 0xBC, 0xF6, 0x7A, 0x21, 0xB3, 0x5D, 0x00, 0xF3, 0x28, 0x48, 0x28, 0x37, 0x99, 0x83, 0x91, 0x3E, 0x86, 0xA1, 0xBF, 0x1E, 0x8F, 0x29, -+ 0x80, 0xFF, 0x17, 0x48, 0x1E, 0x0B, 0x80, 0x3E, 0x4B, 0xAE, 0xD1, 0x7A, 0x5C, 0x46, 0xB2, 0x61, 0x76, 0xF6, 0x2B, 0xA5, 0x4E, 0x8C, 0x7D, 0xCA, 0x90, 0xD8, 0xA9, 0x82, 0xA9, 0xE6, 0xC6, 0xAC, -+ 0x70, 0x81, 0x23, 0x4A, 0xC3, 0xF4, 0x01, 0xA4, 0x31, 0x03, 0xA2, 0x17, 0xE4, 0x15, 0xE3, 0x08, 0x83, 0x74, 0x9F, 0x30, 0xA3, 0x97, 0x49, 0x93, 0x40, 0x6D, 0x90, 0xB2, 0x07, 0x22, 0xD5, 0xD1, -+ 0xB7, 0x26, 0x52, 0xFF, 0x6C, 0x0B, 0x43, 0x2C, 0xA1, 0x90, 0x10, 0xDF, 0x98, 0x4F, 0x78, 0x5D, 0xBB, 0xBE, 0xBE, 0x8B, 0xD6, 0x94, 0x76, 0xD5, 0xCA, 0xAF, 0xE7, 0x10, 0x5A, 0x12, 0x05, 0xCA, -+ 0x28, 0x41, 0x44, 0x4C, 0x82, 0xF4, 0x4B, 0x3A, 0x1D, 0xC6, 0xAD, 0x47, 0xF9, 0x2C, 0x95, 0x2A, 0x43, 0xBF, 0x25, 0x24, 0xBD, 0x14, 0x93, 0x0E, 0xAF, 0xEA, 0x65, 0xFB, 0xEA, 0x4F, 0x40, 0x28, -+ 0x98, 0x7C, 0x9D, 0x07, 0x51, 0xC5, 0x5C, 0x4D, 0x63, 0xDE, 0x04, 0x50, 0xF6, 0x26, 0x3A, 0x42, 0x8A, 0xA7, 0x9B, 0xD4, 0xDC, 0xFC, 0x64, 0x7E, 0xDD, 0xC4, 0x13, 0x66, 0x4E, 0xCF, 0x20, 0x72, -+ 0xCA, 0xB2, 0x1D, 0x57, 0xB2, 0x44, 0x7E, 0xDF, 0xA7, 0x19, 0x4C, 0x4B, 0xCE, 0xDC, 0xAE, 0x28, 0x93, 0xD3, 0xDE, 0x6B, 0xD1, 0xD6, 0xB2, 0xFA, 0xF2, 0x1C, 0xBC, 0x02, 0x12, 0xC6, 0x36, 0xF6, -+ 0x1B, 0x7A, 0x22, 0x31, 0x28, 0xA3, 0x13, 0xC0, 0x09, 0x9B, 0xF3, 0xAB, 0x1D, 0x28, 0x8A, 0x5C, 0xFD, 0x89, 0x30, 0x25, 0x75, 0x33, 0x1E, 0x00, 0xB6, 0x53, 0xD5, 0x26, 0xB7, 0xB8, 0x74, 0x20, -+ 0x9B, 0x63, 0x14, 0xFE, 0x15, 0xE7, 0x70, 0x7C, 0x90, 0x9C, 0x97, 0x31, 0xA9, 0xC4, 0xB7, 0xF0, 0xE3, 0xD0, 0x2D, 0xA0, 0x53, 0x1D, 0x22, 0x67, 0xDF, 0xBA, 0x35, 0x5E, 0x85, 0x32, 0x1F, 0x8C, -+ 0x0C, 0xA9, 0x7A, 0x98, 0x66, 0x66, 0xCA, 0x84, 0xCA, 0xBF, 0x3F, 0xDB, 0xBC, 0x0F, 0xCD, 0x50, 0xB0, 0x60, 0xF8, 0x74, 0x4F, 0x83, 0xD3, 0x93, 0xC1, 0xF9, 0x60, 0x22, 0x1F, 0x14, 0xB3, 0xAF, -+ 0x44, 0xF3, 0x03, 0x99, 0xB8, 0xA8, 0xF8, 0x34, 0x6C, 0x44, 0x66, 0xA2, 0xBD, 0x4F, 0x01, 0x02, 0x9C, 0x4E, 0x38, 0xA4, 0x54, 0xC9, 0xA9, 0x8D, 0xF2, 0xCD, 0x92, 0xAE, 0x9F, 0x68, 0x6C, 0x1B, -+ 0x21, 0x62, 0xFE, 0xF3, 0x5F, 0x82, 0xA4, 0xF6, 0x87, 0x68, 0x41, 0x50, 0x31, 0xCD, 0xE2, 0x12, 0x02, 0x78, 0x55, 0x7C, 0x30, 0xAD, 0xFC, 0x51, 0xAA, 0xA6, 0xD9, 0xD6, 0x5D, 0x7B, 0x3B, 0x58, -+ 0xB1, 0xD1, 0xAF, 0x6B, 0xF1, 0x0B, 0x61, 0x25, 0xAC, 0xDE, 0xB0, 0x53, 0xAA, 0xEE, 0xBC, 0x2A, 0x26, 0x4E, 0x2E, 0x06, 0x55, 0xA3, 0xDE, 0x02, 0x61, 0x13, 0x13, 0x37, 0xF8, 0x42, 0x73, 0x3E, -+ 0x92, 0x64, 0x4F, 0x0B, 0x38, 0x89, 0x5D, 0xEC, 0xDB, 0xB3, 0xA9, 0x7B, 0x74, 0xDD, 0xCE, 0x55, 0xA3, 0x38, 0x24, 0x8F, 0x74, 0xF8, 0x0B, 0x8A, 0x13, 0x35, 0x1F, 0xD4, 0x33, 0x32, 0xFB, 0x36, -+ 0xC7, 0xAD, 0xE7, 0xD8, 0x20, 0xD5, 0xE5, 0x50, 0x44, 0xF7, 0x42, 0x31, 0xEE, 0x6A, 0xFF, 0x8A, 0x9D, 0xC2, 0xFC, 0xE0, 0x12, 0xCB, 0x40, 0x69, 0xD0, 0x3D, 0xE1, 0xB7, 0x50, 0x67, 0x15, 0xDD, -+ 0x36, 0x98, 0x05, 0xC6, 0xCE, 0x3B, 0x16, 0x0C, 0x6C, 0x7D, 0xE3, 0x50, 0x49, 0xC1, 0x65, 0x53, 0x47, 0x98, 0x27, 0x2B, 0x68, 0x0F, 0xA0, 0x20, 0xDD, 0x32, 0x8B, 0xBE, 0xB9, 0x1A, 0x0D, 0x46, -+ 0x6E, 0x3A, 0x57, 0xFA, 0x2E, 0x66, 0x5D, 0xE4, 0x21, 0x2F, 0xDB, 0x7E, 0xE9, 0x14, 0xA8, 0xB0, 0xD6, 0xFD, 0x5C, 0xE2, 0x03, 0x27, 0x89, 0xE4, 0x8A, 0x35, 0xD0, 0x29, 0x3B, 0x57, 0x42, 0x4C, -+ 0xAA, 0x60, 0xF4, 0xA6, 0x70, 0x40, 0x7F, 0x48, 0x48, 0xD7, 0xA2, 0x4A, 0x5E, 0xC2, 0xC2, 0x0F, 0x83, 0x96, 0x42, 0x5A, 0x2B, 0x1A, 0xCC, 0x57, 0xB0, 0x8D, 0x96, 0x68, 0xC3, 0x99, 0x16, 0x7B, -+ 0x46, 0x8E, 0x07, 0x36, 0xB3, 0x3D, 0x46, 0x97, 0xB2, 0x22, 0x55, 0x24, 0x34, 0x82, 0x2A, 0xB6, 0x5B, 0x06, 0x5F, 0x8C, 0x18, 0x57, 0x58, 0xAC, 0xBC, 0x98, 0xA8, 0xB6, 0x47, 0xDA, 0x05, 0x27, -+ 0x96, 0x61, 0xC4, 0xEF, 0x63, 0xD8, 0xB9, 0x91, 0x2B, 0x0D, 0x29, 0xF3, 0x32, 0x45, 0xD0, 0x5E, 0x8D, 0xFD, 0x79, 0x5C, 0x6C, 0x89, 0x7F, 0x3C, 0xEF, 0xF4, 0x23, 0x8C, 0x1E, 0xFA, 0x1D, 0xEF, -+ 0xD4, 0xA5, 0x49, 0x98, 0xD4, 0x77, 0x5D, 0x08, 0xA9, 0xD1, 0xF5, 0xE7, 0x11, 0x54, 0x14, 0x6F, 0xCC, 0xE7, 0x59, 0x0B, 0x1F, 0x7E, 0xEE, 0x85, 0x15, 0x55, 0xC0, 0x63, 0xB7, 0xC7, 0xCC, 0xCD, -+ 0x01, 0xD1, 0x43, 0x3E, 0x07, 0x3E, 0x3E, 0x13, 0xDA, 0x20, 0x44, 0x28, 0x93, 0xDF, 0xBB, 0x37, 0xAF, 0xBA, 0xCD, 0x27, 0x14, 0xEB, 0x43, 0xB4, 0xAD, 0xAC, 0xA2, 0x62, 0x16, 0xF1, 0x4B, 0xFC, -+ 0xDD, 0x71, 0xCF, 0x0A, 0xA3, 0x43, 0xA6, 0x91, 0xF9, 0x91, 0x69, 0xF3, 0x01, 0x5D, 0x01, 0x96, 0x72, 0x67, 0x84, 0x12, 0x12, 0x8A, 0x71, 0x6F, 0x93, 0xA7, 0x38, 0xD7, 0x20, 0x43, 0x72, 0xF1, -+ 0x64, 0xD6, 0xC8, 0x05, 0x6D, 0xDF, 0x11, 0x88, 0x8A, 0x3E, 0xFA, 0x15, 0xFE, 0xD6, 0x61, 0x2A, 0x1F, 0xFA, 0xBF, 0x06, 0x81, 0x3F, 0x74, 0x33, 0x04, 0xB9, 0xDD, 0x41, 0xD6, 0x75, 0x2D, 0x43, -+ 0x3C, 0xAC, 0xA9, 0xE5, 0x42, 0xD1, 0x8B, 0x47, 0x6B, 0x80, 0x4F, 0x73, 0xB9, 0x0A, 0x2A, 0x4E, 0x7B, 0x50, 0x3F, 0xC2, 0xD0, 0x41, 0x8D, 0xC8, 0x19, 0x21, 0x60, 0x10, 0xA8, 0x6E, 0x8F, 0x45, -+ 0x15, 0x3C, 0xC5, 0xAE, 0xD1, 0xE2, 0x3A, 0xF6, 0x84, 0x89, 0xFA, 0x37, 0x5C, 0x7F, 0x51, 0x81, 0x49, 0xA6, 0xB7, 0x07, 0xCD, 0x6E, 0x52, 0xF6, 0x99, 0xF8, 0x3F, 0x01, 0xEC, 0xFF, 0x69, 0x21, -+ 0x2B, 0x85, 0x30, 0xC8, 0xBE, 0x5E, 0x25, 0x29, 0x6E, 0x24, 0xE0, 0x98, 0xAB, 0xD9, 0x45, 0x5F, 0x34, 0x0B, 0xD5, 0x75, 0x54, 0x72, 0x5E, 0x23, 0x71, 0x7D, 0x53, 0xA0, 0xA2, 0xC5, 0x0A, 0x84, -+ 0x78, 0x00, 0xE3, 0x82, 0x29, 0x49, 0xDD, 0x52, 0xC1, 0x70, 0x00, 0x50, 0xE3, 0xB7, 0xE4, 0xE0, 0xF0, 0x84, 0x63, 0xBF, 0x15, 0xAD, 0xC3, 0x21, 0xE9, 0x51, 0xDE, 0xA6, 0x7E, 0x87, 0x04, 0x9B, -+ 0x98, 0x0D, 0x54, 0x50, 0x33, 0x71, 0x42, 0x89, 0x47, 0x6F, 0xF3, 0x4D, 0x42, 0xD0, 0x61, 0xF8, 0x4A, 0x68, 0x47, 0xFD, 0x5C, 0xA2, 0xC4, 0x4C, 0x3A, 0x3F, 0xDB, 0xEA, 0x68, 0x99, 0x95, 0x7C, -+ 0xBA, 0x96, 0x0B, 0xA9, 0x12, 0x5A, 0x03, 0x26, 0xA6, 0x04, 0xC2, 0x57, 0xAC, 0xFE, 0xE8, 0x29, 0xD9, 0x66, 0x0D, 0xDE, 0x12, 0x53, 0x9C, 0xD6, 0x72, 0x9D, 0x33, 0xA0, 0x5C, 0x83, 0x57, 0x75, -+ 0xDD, 0x6C, 0xD7, 0x32, 0x6E, 0x07, 0xD5, 0x2F, 0xE2, 0xDF, 0xED, 0xF6, 0xBB, 0xF9, 0xA8, 0x02, 0x72, 0xC2, 0x5A, 0x90, 0x5A, 0xD9, 0x2B, 0x5D, 0x75, 0x27, 0xD5, 0xA2, 0x22, 0xBA, 0x82, 0xC9, -+ 0xCD, 0x28, 0xE4, 0xDF, 0xE8, 0x99, 0xAC, 0x17, 0x9F, 0x1F, 0x63, 0xFE, 0x08, 0xA9, 0x86, 0x65, 0x15, 0x41, 0x02, 0xA0, 0xFC, 0xD0, 0xCF, 0xB6, 0x16, 0x62, 0xDB, 0x95, 0x56, 0x52, 0x34, 0xBB, -+ 0xE1, 0xAB, 0x3A, 0xF9, 0x45, 0xE3, 0x78, 0x23, 0x30, 0xAC, 0x78, 0xD8, 0x4F, 0x8C, 0x85, 0x0B, 0xA3, 0x60, 0xA2, 0xFB, 0xB8, 0x06, 0x2C, 0xB5, 0xBA, 0xA8, 0xCA, 0xF5, 0x0F, 0x8C, 0xF8, 0x04, -+ 0x24, 0x66, 0x42, 0x0B, 0x4E, 0x56, 0xD5, 0xD1, 0x5C, 0x49, 0xBA, 0xE5, 0x24, 0xA4, 0x5C, 0x04, 0x45, 0x60, 0x64, 0xC2, 0xF4, 0x54, 0x35, 0xDD, 0x1A, 0xBB, 0xA2, 0x49, 0x45, 0x34, 0xE4, 0xD1, -+ 0xEF, 0xCD, 0x39, 0x8D, 0xE0, 0xC4, 0xA7, 0x77, 0xD1, 0x61, 0xE2, 0x3E, 0xB6, 0xC9, 0x74, 0xED, 0xED, 0xDF, 0x08, 0xF0, 0xA9, 0xC7, 0x58, 0x04, 0xCC, 0xD7, 0x3A, 0x0D, 0xD3, 0x2C, 0xF4, 0x6A, -+ 0xBD, 0x5F, 0x9E, 0xF1, 0x22, 0x63, 0x27, 0xB7, 0x35, 0x5C, 0xF3, 0x45, 0xAD, 0x09, 0xF8, 0x57, 0xB9, 0x65, 0x3C, 0xDC, 0x1A, 0x4B, 0xF0, 0xF4, 0xC7, 0xAA, 0xC1, 0xF3, 0xDF, 0xB0, 0xA9, 0xE1, -+ 0x04, 0x8E, 0xBE, 0x0C, 0xBA, 0xB1, 0x72, 0xA3, 0xB0, 0x29, 0x89, 0xCD, 0x6E, 0x63, 0x06, 0x22, 0xE8, 0x74, 0x4C, 0x2F, 0x98, 0x96, 0xB4, 0x40, 0x4D, 0x3A, 0x0B, 0xC2, 0x7C, 0x05, 0x09, 0xE3, -+ 0xAA, 0x9A, 0x3B, 0x5D, 0x17, 0x1E, 0x91, 0x85, 0x45, 0xAF, 0xB2, 0xE9, 0xC0, 0xB6, 0xEC, 0x5D, 0x3E, 0x50, 0x07, 0x5B, 0x0D, 0x4C, 0x4E, 0x71, 0xD7, 0x8D, 0x85, 0x3E, 0xAE, 0xFA, 0xA5, 0x9B, -+ 0xED, 0x8C, 0xB9, 0x0D, 0x2B, 0xD6, 0x2A, 0x04, 0x22, 0xB3, 0x6A, 0x88, 0x80, 0x7B, 0x65, 0x21, 0xF4, 0xCB, 0xA0, 0xC3, 0x66, 0x70, 0x5B, 0x11, 0x8E, 0x14, 0x83, 0x1E, 0xD6, 0xCD, 0x78, 0xE3, -+ 0xB2, 0x72, 0x16, 0xDD, 0xE4, 0x05, 0xAE, 0xEE, 0x96, 0xA0, 0x1A, 0xF1, 0x1D, 0x72, 0x40, 0x03, 0x95, 0x72, 0x7E, 0x7A, 0x93, 0x0C, 0xC7, 0x72, 0x88, 0x18, 0x68, 0xC7, 0xFA, 0xBD, 0x34, 0xF5, -+ 0xB5, 0x39, 0x2C, 0x76, 0xA0, 0x24, 0x00, 0xDC, 0xCC, 0xEF, 0xED, 0xF2, 0x7B, 0xD9, 0x8C, 0xAD, 0xA7, 0x5E, 0x0E, 0x2E, 0x1E, 0xDE, 0x18, 0x99, 0x29, 0x08, 0xE4, 0x6D, 0x81, 0x93, 0x81, 0x04, -+ 0xB7, 0xD8, 0xE3, 0x19, 0x13, 0x29, 0x55, 0xA3, 0xC8, 0x0C, 0x93, 0x8E, 0x87, 0x73, 0xD5, 0x93, 0x27, 0x75, 0x99, 0xF8, 0xC9, 0x57, 0xBD, 0x72, 0xE6, 0xC3, 0x3C, 0xF5, 0x2D, 0xEB, 0x84, 0xA1, -+ 0x36, 0x2D, 0xAC, 0x0A, 0x49, 0xED, 0xE1, 0x80, 0x23, 0x49, 0x5C, 0x50, 0x8C, 0x79, 0x31, 0x93, 0x79, 0xAF, 0xC2, 0xD8, 0x23, 0x2A, 0x8F, 0x6C, 0x19, 0xAD, 0x0E, 0x35, 0x7E, 0xE1, 0xD7, 0x10, -+ 0x66, 0x48, 0x76, 0xFC, 0x90, 0x2D, 0xB9, 0x3B, 0x1A, 0x0C, 0x1E, 0x25, 0xBB, 0xF1, 0x02, 0x27, 0xC1, 0x53, 0xC6, 0xF9, 0x8C, 0x14, 0xDA, 0xB8, 0x6C, 0x7A, 0x90, 0x53, 0xFC, 0x81, 0xC7, 0x32, -+ 0xB0, 0x5D, 0x9F, 0x1F, 0x9F, 0x69, 0xB6, 0xE0, 0x86, 0xAB, 0xFF, 0xB8, 0xD9, 0x0D, 0xA2, 0x72, 0xFA, 0x6C, 0x2B, 0x9D, 0x5C, 0x90, 0xFA, 0xCD, 0x34, 0xDD, 0x8F, 0x96, 0xCC, 0x81, 0x60, 0xB6, -+ 0x8D, 0x5C, 0xB2, 0x7C, 0xCB, 0xD3, 0x5B, 0x48, 0xBF, 0xE6, 0x83, 0xCB, 0x7C, 0x12, 0x6C, 0xF4, 0x97, 0x68, 0x72, 0xAA, 0x46, 0x9D, 0x77, 0xB4, 0x1D, 0x43, 0x23, 0x90, 0x68, 0xDC, 0x37, 0x56, -+ 0x31, 0x84, 0x17, 0x7E, 0xD5, 0x73, 0xA4, 0x78, 0x3E, 0x0B, 0xB8, 0xCF, 0xE4, 0x50, 0x68, 0x44, 0x6C, 0xCD, 0xBC, 0x39, 0xEA, 0x8A, 0x6D, 0x52, 0x25, 0xF4, 0x69, 0x7C, 0x28, 0x47, 0x21, 0xE8, -+ 0xEC, 0xA8, 0x26, 0x13, 0x56, 0x87, 0xDC, 0x28, 0x58, 0xE6, 0xCC, 0x73, 0x85, 0xBF, 0xD7, 0x43, 0xA4, 0x62, 0xEC, 0x80, 0xA6, 0x8F, 0x3A, 0xB2, 0xA8, 0xAE, 0x47, 0x32, 0x25, 0x52, 0x15, 0x60, -+ 0xFB, 0x27, 0x0E, 0xEE, 0xBA, 0x33, 0x4B, 0x4E, 0x48, 0x00, 0x47, 0xDA, 0x1E, 0x40, 0x98, 0xE6, 0x94, 0x7A, 0xB1, 0x2B, 0xE9, 0x53, 0xB3, 0x95, 0x90, 0xFF, 0x82, 0x57, 0x73, 0xC8, 0xCE, 0x23, -+ 0x18, 0x5E, 0x15, 0x7D, 0xA9, 0x27, 0x13, 0x0E, 0xCD, 0x74, 0x8E, 0x47, 0xB6, 0x2C, 0xA9, 0x80, 0x0A, 0x8D, 0x5F, 0x67, 0x29, 0xCE, 0x3B, 0x8E, 0x94, 0xF5, 0x55, 0xFB, 0xE3, 0x44, 0x6A, 0xA6, -+ 0xE6, 0xCB, 0x0F, 0xC6, 0xCF, 0xDD, 0xA1, 0x8E, 0x61, 0x7B, 0xBB, 0x86, 0xE0, 0xBE, 0xD6, 0x36, 0xD9, 0x04, 0xAC, 0x41, 0xB2, 0xB2, 0x03, 0x66, 0x3E, 0x44, 0x57, 0x2D, 0x7C, 0x8B, 0x88, 0x4D, -+ 0x37, 0x4B, 0xA6, 0x65, 0x18, 0x12, 0xB4, 0x62, 0xB5, 0xEF, 0x40, 0xB8, 0xBB, 0x0B, 0xCE, 0xFC, 0x51, 0xEE, 0x4D, 0xE4, 0xC5, 0x73, 0x35, 0xF3, 0xE1, 0xB6, 0x5B, 0xE1, 0x36, 0xF7, 0x18, 0x7C, -+ 0x34, 0xD7, 0x08, 0xA5, 0xEF, 0x4B, 0xCC, 0x83, 0x3C, 0x6E, 0x57, 0xD7, 0xF6, 0xC2, 0xBD, 0x8C, 0x40, 0x48, 0xA9, 0xC9, 0x97, 0x35, 0xBE, 0x30, 0x13, 0x7C, 0xCB, 0xEF, 0xFE, 0x31, 0x92, 0x4B, -+ 0x52, 0x06, 0x18, 0xD0, 0x8F, 0x43, 0xE5, 0x6F, 0xB5, 0xAF, 0x1A, 0x5C, 0xDD, 0x81, 0xC4, 0xCF, 0x6F, 0x74, 0x41, 0x8F, 0xA2, 0xB4, 0x22, 0xDA, 0x65, 0x53, 0x3D, 0x8B, 0xF5, 0xF8, 0xE6, 0x42, -+ 0x4C, 0x55, 0x3C, 0x99, 0x49, 0x45, 0xEE, 0xF2, 0x5F, 0x51, 0x2E, 0x98, 0x26, 0xF7, 0xB0, 0x82, 0xEF, 0xC0, 0x55, 0x48, 0x9A, 0xF4, 0xFC, 0x78, 0x9D, 0x93, 0x6F, 0x6F, 0x9A, 0x7A, 0x53, 0x29, -+ 0x76, 0x25, 0x87, 0x86, 0xE3, 0xDE, 0x00, 0xF3, 0x4E, 0x75, 0x08, 0xA0, 0x49, 0x51, 0xC8, 0x0D, 0xCA, 0x14, 0xBC, 0xEE, 0x0F, 0x79, 0x42, 0x8D, 0x52, 0xB9, 0xAF, 0x57, 0x84, 0x6D, 0xC9, 0xD4, -+ 0x85, 0x38, 0xF8, 0xDB, 0x52, 0x60, 0x74, 0x7C, 0xA2, 0x93, 0xBB, 0xFB, 0x2B, 0x43, 0x90, 0xD3, 0x31, 0x73, 0xD9, 0x56, 0x05, 0x37, 0x89, 0x81, 0xD0, 0x39, 0xE2, 0xB4, 0x89, 0xE3, 0xB5, 0xF2, -+ 0x30, 0xB6, 0xB9, 0x8F, 0x3B, 0x8E, 0x4C, 0x67, 0x26, 0x2B, 0x60, 0xFF, 0xD4, 0x30, 0xEE, 0xFE, 0xB0, 0xB1, 0xCF, 0x43, 0x57, 0xFC, 0x65, 0x8D, 0xA2, 0x3C, 0xC4, 0x82, 0x81, 0x7A, 0x68, 0xAB, -+ 0x4B, 0x2F, 0xC9, 0x73, 0xA4, 0xE6, 0xE2, 0xDF, 0x59, 0x35, 0x62, 0x24, 0x8F, 0xBD, 0xBA, 0xAD, 0x2F, 0xB5, 0x4B, 0xE0, 0xBE, 0xFA, 0x6E, 0x64, 0x7E, 0x9F, 0x9B, 0x1E, 0x34, 0x7D, 0x1A, 0x61, -+ 0x4D, 0xE4, 0xC5, 0x87, 0x0C, 0xC9, 0x81, 0x30, 0x9B, 0x87, 0x06, 0xBD, 0xF1, 0xDB, 0x02, 0x8D, 0x04, 0xC0, 0xD5, 0xAD, 0x67, 0xE1, 0x8E, 0x6F, 0x80, 0x6B, 0xE3, 0xD8, 0x61, 0xEB, 0xA9, 0x72, -+ 0x08, 0xDC, 0xAA, 0xF9, 0x32, 0xC9, 0x79, 0xBC, 0xA1, 0xA6, 0xD1, 0xC9, 0x8C, 0x8A, 0xE4, 0x4E, 0xE7, 0xE3, 0xF8, 0x22, 0xBD, 0x31, 0x7D, 0xEB, 0x6B, 0xB3, 0x7A, 0xCF, 0x83, 0x19, 0x29, 0x14, -+ 0x83, 0xD5, 0x1D, 0x74, 0xE0, 0xA9, 0x95, 0x30, 0xEE, 0xC7, 0xBB, 0x30, 0x21, 0x62, 0x88, 0xB2, 0x8F, 0x89, 0x19, 0x64, 0x0C, 0xA6, 0x71, 0x8A, 0x6F, 0x81, 0x89, 0xCF, 0xAC, 0x6D, 0xD9, 0x0A, -+ 0x4A, 0xF3, 0xC0, 0xCE, 0x07, 0x08, 0x63, 0x71, 0xF8, 0xCC, 0x98, 0x0F, 0xC2, 0xA7, 0x0B, 0x2B, 0xF6, 0x4B, 0xA4, 0xC6, 0xE2, 0xE4, 0xC3, 0x5A, 0x46, 0xBE, 0x9E, 0xCC, 0x75, 0x1A, 0xFB, 0x11, -+ 0x7D, 0x98, 0x35, 0xA7, 0xB8, 0x27, 0xFD, 0x04, 0xEE, 0xF4, 0x4E, 0x5A, 0xEF, 0x2F, 0xE8, 0xFA, 0xD6, 0x70, 0xA9, 0x6C, 0xEE, 0x19, 0x97, 0x21, 0x22, 0x77, 0xAC, 0x1A, 0x5F, 0x45, 0x51, 0xA3, -+ 0x23, 0x62, 0xC1, 0xB2, 0xF7, 0xC5, 0x43, 0x7B, 0x5F, 0x2E, 0x21, 0xA8, 0xD8, 0xEA, 0x30, 0x8C, 0x7D, 0xF5, 0x75, 0x4D, 0x48, 0xCF, 0x0B, 0xB2, 0xC4, 0x64, 0x6C, 0x51, 0x2E, 0x50, 0x44, 0x07, -+ 0x5E, 0xD3, 0x85, 0x2B, 0x13, 0x16, 0xDD, 0xE1, 0x54, 0x90, 0x55, 0x54, 0x74, 0x77, 0x3F, 0x9D, 0x62, 0xB3, 0xC5, 0xCC, 0xCC, 0xBE, 0x51, 0x35, 0xB5, 0x31, 0x47, 0x2D, 0xA5, 0xF2, 0x5E, 0x64, -+ 0x7D, 0x84, 0xE0, 0xD2, 0x19, 0x3A, 0xF3, 0x69, 0x3F, 0xEB, 0x10, 0xE9, 0xBA, 0xE8, 0x22, 0x3B, 0x5F, 0x4A, 0xE3, 0x53, 0x60, 0x18, 0x1E, 0xCB, 0x84, 0xF6, 0xE7, 0x90, 0x98, 0x35, 0x8F, 0xD5, -+ 0x4D, 0x28, 0x39, 0x75, 0x2F, 0xBC, 0x34, 0x04, 0x8B, 0xC4, 0x3C, 0x1F, 0xE9, 0xC0, 0xB4, 0xD9, 0x9A, 0x36, 0x47, 0x09, 0xA6, 0x8C, 0x1E, 0x1E, 0x9D, 0xBE, 0x00, 0x8A, 0x2F, 0x49, 0x13, 0x61, -+ 0x7B, 0x41, 0x6B, 0x13, 0x87, 0xE9, 0x3C, 0x9A, 0xA8, 0xAA, 0x63, 0x3B, 0x9C, 0x3E, 0xD6, 0xC7, 0x6A, 0xB5, 0xB0, 0xD3, 0x06, 0xAD, 0x73, 0x65, 0x92, 0xF6, 0x7C, 0xD1, 0x84, 0x65, 0x4D, 0x89, -+ 0x41, 0x85, 0x5A, 0x02, 0x85, 0xD0, 0xEE, 0xF2, 0x97, 0x8C, 0xC5, 0xD6, 0xA3, 0x04, 0x5A, 0x2C, 0xEB, 0x4D, 0x5C, 0xEE, 0xCF, 0xC9, 0x13, 0x38, 0xD5, 0xB9, 0x18, 0x0B, 0x0B, 0xE7, 0xCE, 0xBC, -+ 0x82, 0xFA, 0x0C, 0xAA, 0x28, 0x31, 0x90, 0x2A, 0x5B, 0x36, 0x58, 0x89, 0x64, 0x65, 0x28, 0x23, 0xD2, 0x5C, 0xB2, 0xC8, 0x1C, 0x3C, 0xBF, 0xFB, 0xB6, 0x91, 0x70, 0xD6, 0x67, 0xF5, 0xE5, 0x24, -+ 0xC6, 0xED, 0xCD, 0x0C, 0x09, 0x91, 0x85, 0xE9, 0xC1, 0xCB, 0xFF, 0x57, 0xF8, 0x75, 0x56, 0x0C, 0xBD, 0xD4, 0x68, 0xE7, 0x78, 0xD9, 0x37, 0x2B, 0xDC, 0x61, 0xC1, 0xAD, 0xD1, 0x53, 0x21, 0xBD, -+ 0xA9, 0xCC, 0xF4, 0xAF, 0xD4, 0xE1, 0xCE, 0x80, 0x10, 0x06, 0xC1, 0xED, 0xE8, 0x0E, 0xA2, 0xE2, 0x11, 0xBE, 0x68, 0x24, 0x62, 0xBC, 0xFA, 0x72, 0xDA, 0x1B, 0x58, 0x3C, 0xD7, 0x57, 0xD5, 0xC7, -+ 0x38, 0xA7, 0x5E, 0x07, 0xC9, 0x00, 0xDB, 0x5C, 0xEE, 0xFF, 0xDF, 0xF2, 0x95, 0xD0, 0xD5, 0xA8, 0x1C, 0x46, 0x0D, 0x8B, 0xB5, 0x50, 0x9A, 0x06, 0x9D, 0x50, 0x43, 0x84, 0x2A, 0x48, 0x33, 0xDA, -+ 0x80, 0xE1, 0x4A, 0xC7, 0xAB, 0xBD, 0x5B, 0xE2, 0x48, 0xFC, 0x1E, 0x4D, 0x96, 0x8E, 0xE3, 0x8E, 0x48, 0xCE, 0xFA, 0x79, 0x05, 0x20, 0xA7, 0x40, 0x72, 0x93, 0x33, 0xF4, 0x33, 0xDA, 0xC9, 0x28, -+ 0x38, 0x0C, 0xDF, 0x83, 0x11, 0x32, 0x80, 0x71, 0xFA, 0x95, 0x75, 0x7F, 0xA6, 0x2A, 0x93, 0x55, 0x1A, 0x58, 0x06, 0x2D, 0x14, 0x27, 0x09, 0x1A, 0x59, 0x20, 0xF7, 0x57, 0x6E, 0x2F, 0x4D, 0x6B, -+ 0x07, 0x0B, 0x0E, 0x16, 0x3A, 0x4E, 0x58, 0x70, 0x88, 0x97, 0x9B, 0xB6, 0xC4, 0xDA, 0xDD, 0xFC, 0x09, 0x0E, 0x24, 0x27, 0x2B, 0x3B, 0x52, 0x57, 0x5E, 0x63, 0x66, 0x71, 0x7F, 0xA0, 0xF0, 0x07, -+ 0x16, 0x37, 0x43, 0x4A, 0x4C, 0x6F, 0x78, 0x7C, 0xAC, 0xB4, 0xBF, 0xC7, 0xE4, 0xFA, 0x17, 0x2F, 0x4C, 0x83, 0x87, 0xAA, 0xB7, 0xD0, 0xF5, 0x02, 0x35, 0x3E, 0x56, 0x5F, 0x6A, 0x89, 0x91, 0xB2, -+ 0xC2, 0xC5, 0xCF, 0xDF, 0xEE, 0x1F, 0x31, 0x52, 0x5B, 0x90, 0xA8, 0xB9, 0xC6, 0xE0, 0xEB, 0xED, 0x03, 0x45, 0x56, 0x5E, 0x6D, 0x70, 0x8F, 0x97, 0xD0, 0xD7, 0xDE, 0x04, 0x11, 0x2D, 0x30, 0x47, -+ 0x71, 0x72, 0x8F, 0x97, 0xAE, 0xB1, 0xB6, 0xC2, 0xC8, 0xE1, 0xE4, 0xE7, 0xF1, 0xFB, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x1F, 0x2E, 0x37, 0x45, 0x50, 0x5B, 0x6F, 0x00, 0x85, 0x0C, 0x10, 0x38, 0x0E, 0x88, 0x00, 0xB4, 0x00, 0x61, 0x84, -+ 0x02, 0x26, 0x00, 0x02, 0x90, 0x80, 0x0E, 0x88, 0x88, 0x63, 0x82, 0x0B, 0x00, 0x02, 0x04, 0x21, 0x80, 0x18, 0x33, 0x60, 0x7D, 0xAE, 0xCB, 0x4F, 0xC3, 0xB6, 0xD6, 0x0E, -+ }, -+ }, -+ { -+ .name = "Dilithium Round 3, Level 3 (4-4) KAT 0 (PKCS#8/SPKI)", -+ .version = 0, -+ .keyform = 0, -+ .rho_len = 0, -+ .seed_len = 0, -+ .tr_len = 0, -+ .s1_len = 0, -+ .s2_len = 0, -+ .t0_len = 0, -+ .t1_len = 0, -+ .pkcs8_len = 3876, -+ .pkcs8 = { -+ 0x30, 0x82, 0x0F, 0x20, 0x02, 0x01, 0x00, 0x30, 0x0F, 0x06, 0x0B, 0x2B, 0x06, 0x01, 0x04, 0x01, 0x02, 0x82, 0x0B, 0x07, 0x04, 0x04, 0x05, 0x00, 0x04, 0x82, 0x0F, 0x08, 0x30, 0x82, 0x0F, 0x04, -+ 0x02, 0x01, 0x00, 0x03, 0x21, 0x00, 0x1C, 0x0E, 0xE1, 0x11, 0x1B, 0x08, 0x00, 0x3F, 0x28, 0xE6, 0x5E, 0x8B, 0x3B, 0xDE, 0xB0, 0x37, 0xCF, 0x8F, 0x22, 0x1D, 0xFC, 0xDA, 0xF5, 0x95, 0x0E, 0xDB, -+ 0x38, 0xD5, 0x06, 0xD8, 0x5B, 0xEF, 0x03, 0x21, 0x00, 0x39, 0x4D, 0x16, 0x95, 0x05, 0x9D, 0xFF, 0x40, 0xAE, 0x25, 0x6C, 0x5D, 0x5E, 0xDA, 0xBF, 0xB6, 0x9F, 0x5F, 0x40, 0xF3, 0x7A, 0x58, 0x8F, -+ 0x50, 0x53, 0x2C, 0xA4, 0x08, 0xA8, 0x16, 0x8A, 0xB1, 0x03, 0x21, 0x00, 0x87, 0xD0, 0xAD, 0x11, 0x52, 0x21, 0x10, 0x93, 0x14, 0x94, 0xBF, 0x2C, 0xAE, 0xAE, 0x36, 0x97, 0x97, 0x11, 0xBC, 0x58, -+ 0x5B, 0x32, 0xF0, 0x8C, 0x78, 0x49, 0x6F, 0x37, 0x9D, 0x60, 0x4D, 0x53, 0x03, 0x82, 0x01, 0x81, 0x00, 0xC0, 0xA6, 0x71, 0x1A, 0x96, 0x6C, 0x11, 0x31, 0x2A, 0xD9, 0xA8, 0x21, 0xD8, 0x08, 0x65, -+ 0x42, 0xA6, 0x00, 0xA4, 0xB4, 0x2C, 0x19, 0x40, 0x72, 0x02, 0x42, 0x62, 0x81, 0x06, 0x21, 0x0A, 0x43, 0x85, 0x23, 0x31, 0x70, 0x93, 0x08, 0x10, 0x8B, 0x18, 0x8C, 0x02, 0x24, 0x92, 0xC1, 0xB2, -+ 0x84, 0x12, 0xC4, 0x21, 0x8B, 0x04, 0x21, 0x81, 0xC8, 0x61, 0x02, 0x48, 0x05, 0x9C, 0x92, 0x01, 0xC0, 0x34, 0x88, 0x19, 0x32, 0x6C, 0x58, 0x20, 0x46, 0x89, 0x18, 0x68, 0xA2, 0xC2, 0x8D, 0x82, -+ 0x34, 0x6A, 0x1C, 0x09, 0x42, 0x00, 0xA2, 0x8C, 0xE3, 0xA6, 0x49, 0x1C, 0x11, 0x2C, 0xC2, 0x48, 0x12, 0xE0, 0x90, 0x21, 0x91, 0x98, 0x50, 0x62, 0xC0, 0x84, 0x62, 0x24, 0x51, 0xCA, 0x06, 0x2C, -+ 0x64, 0x24, 0x0E, 0x1B, 0xB3, 0x31, 0x24, 0x96, 0x85, 0x4B, 0x46, 0x06, 0xDB, 0x26, 0x68, 0xC3, 0x82, 0x68, 0x44, 0x10, 0x46, 0xC9, 0xB6, 0x21, 0x14, 0x04, 0x81, 0x14, 0x45, 0x50, 0x24, 0x42, -+ 0x08, 0x44, 0x22, 0x71, 0x0B, 0x92, 0x45, 0x9A, 0xA0, 0x81, 0x1A, 0x91, 0x70, 0x9C, 0x24, 0x10, 0x03, 0x95, 0x70, 0x04, 0xC5, 0x04, 0xC8, 0x26, 0x92, 0xD2, 0x92, 0x00, 0xC0, 0xB2, 0x60, 0xC0, -+ 0xA2, 0x68, 0x09, 0x19, 0x0A, 0xA2, 0x30, 0x0E, 0x18, 0x89, 0x69, 0xE0, 0x00, 0x8D, 0xD8, 0x48, 0x62, 0xDA, 0x14, 0x71, 0x20, 0x18, 0x05, 0x19, 0x07, 0x44, 0x04, 0x12, 0x40, 0x9B, 0x12, 0x40, -+ 0x11, 0x80, 0x10, 0xD1, 0x42, 0x81, 0x99, 0x28, 0x50, 0x8B, 0x10, 0x91, 0x02, 0x24, 0x64, 0xA0, 0x20, 0x6D, 0x12, 0x46, 0x21, 0x1C, 0x83, 0x8C, 0x1B, 0x47, 0x69, 0x01, 0x06, 0x90, 0xCC, 0x06, -+ 0x24, 0x81, 0x84, 0x69, 0x20, 0x98, 0x2C, 0x24, 0x12, 0x05, 0x21, 0xB1, 0x50, 0x41, 0x36, 0x02, 0x98, 0x44, 0x6E, 0xD1, 0xA6, 0x31, 0x11, 0x05, 0x6A, 0xD3, 0xA8, 0x40, 0xCA, 0xA8, 0x4C, 0x62, -+ 0xB0, 0x00, 0x03, 0x13, 0x4A, 0x53, 0x34, 0x46, 0x14, 0x19, 0x40, 0x04, 0xC5, 0x4C, 0xE3, 0x06, 0x69, 0x5A, 0xB0, 0x89, 0x61, 0x16, 0x8E, 0xCB, 0x10, 0x80, 0x8B, 0x16, 0x8E, 0xD9, 0x90, 0x64, -+ 0x0B, 0x94, 0x60, 0x24, 0x83, 0x85, 0x1A, 0xB3, 0x04, 0x54, 0x26, 0x22, 0x51, 0xB8, 0x25, 0x1C, 0x42, 0x4A, 0x0B, 0x81, 0x48, 0x42, 0xC4, 0x44, 0x5A, 0x10, 0x20, 0x23, 0x80, 0x84, 0x09, 0xB7, -+ 0x25, 0x4C, 0xC6, 0x48, 0x14, 0x85, 0x4D, 0x19, 0x38, 0x0E, 0x60, 0x16, 0x51, 0xD8, 0x32, 0x6A, 0x0A, 0x91, 0x89, 0x08, 0xC1, 0x70, 0xE0, 0x96, 0x4D, 0x18, 0x46, 0x8C, 0x01, 0x32, 0x8D, 0x91, -+ 0xC4, 0x05, 0x4A, 0x00, 0x61, 0x23, 0x08, 0x68, 0xA2, 0x10, 0x42, 0x10, 0xA8, 0x61, 0x13, 0x06, 0x21, 0x03, 0x82, 0x01, 0x81, 0x00, 0x8A, 0x24, 0x8E, 0x62, 0x06, 0x89, 0xC9, 0xB2, 0x45, 0x08, -+ 0x27, 0x84, 0x51, 0x20, 0x0D, 0x98, 0x04, 0x66, 0xDC, 0x42, 0x05, 0x44, 0x24, 0x85, 0x24, 0x26, 0x28, 0x22, 0x21, 0x61, 0x20, 0x16, 0x09, 0x0B, 0xA6, 0x2C, 0x0A, 0x11, 0x44, 0xE0, 0x92, 0x81, -+ 0x58, 0x48, 0x0D, 0x42, 0x22, 0x10, 0xA0, 0x06, 0x09, 0x8B, 0x24, 0x6E, 0x81, 0x28, 0x8C, 0xC0, 0x24, 0x80, 0x90, 0x30, 0x8D, 0x84, 0x36, 0x40, 0x4C, 0xA6, 0x84, 0x50, 0x04, 0x24, 0x94, 0xB6, -+ 0x8D, 0xA2, 0x92, 0x6D, 0x18, 0xB3, 0x44, 0xA0, 0x00, 0x85, 0xE3, 0xB8, 0x05, 0x14, 0x05, 0x04, 0xA4, 0xC2, 0x90, 0x84, 0x22, 0x81, 0xC3, 0x26, 0x2D, 0x0B, 0x20, 0x66, 0xCC, 0x90, 0x31, 0x98, -+ 0x38, 0x28, 0x10, 0x16, 0x6C, 0xC1, 0x34, 0x45, 0xC0, 0x10, 0x22, 0x24, 0xC6, 0x88, 0x03, 0x46, 0x32, 0xD8, 0x40, 0x90, 0x1C, 0x20, 0x68, 0x04, 0x15, 0x28, 0x9A, 0x18, 0x81, 0x44, 0x98, 0x8D, -+ 0x9C, 0x20, 0x6E, 0x9C, 0x30, 0x2C, 0xC1, 0xB8, 0x20, 0x61, 0x42, 0x21, 0x08, 0x03, 0x10, 0xA0, 0xC2, 0x8C, 0x58, 0x12, 0x85, 0x53, 0x20, 0x4C, 0x03, 0x30, 0x81, 0x4C, 0xA4, 0x8D, 0x44, 0xC0, -+ 0x8D, 0x51, 0x40, 0x4C, 0x1C, 0xA7, 0x2C, 0x44, 0x08, 0x65, 0xA0, 0x38, 0x40, 0xDA, 0x20, 0x80, 0x81, 0x06, 0x85, 0x8C, 0x26, 0x0D, 0xE2, 0xA8, 0x8C, 0x9C, 0x44, 0x11, 0x59, 0x42, 0x28, 0xC4, -+ 0x26, 0x04, 0x44, 0x14, 0x26, 0xA1, 0x42, 0x64, 0x08, 0xC0, 0x85, 0x11, 0x01, 0x86, 0x9B, 0x48, 0x31, 0x99, 0xB2, 0x0C, 0x80, 0x46, 0x44, 0x59, 0xA8, 0x8C, 0x00, 0x42, 0x08, 0x98, 0x82, 0x90, -+ 0x0A, 0xB5, 0x45, 0x62, 0x24, 0x48, 0x12, 0x96, 0x05, 0x44, 0x12, 0x46, 0x00, 0xC8, 0x88, 0x13, 0xA0, 0x61, 0xE1, 0x28, 0x4D, 0x0A, 0xB9, 0x91, 0x4B, 0x96, 0x20, 0x99, 0xB8, 0x44, 0x00, 0x31, -+ 0x4E, 0x98, 0x12, 0x85, 0x00, 0xB6, 0x01, 0x83, 0xA0, 0x0D, 0x14, 0x15, 0x0E, 0x18, 0x81, 0x10, 0x19, 0x01, 0x22, 0x4A, 0x06, 0x68, 0x1A, 0x49, 0x8D, 0xE1, 0xA2, 0x84, 0x11, 0xC6, 0x31, 0x21, -+ 0x26, 0x25, 0x91, 0xA0, 0x6D, 0x03, 0x05, 0x24, 0xA1, 0xB6, 0x08, 0x94, 0x44, 0x72, 0x43, 0x34, 0x12, 0x5B, 0xB4, 0x20, 0x41, 0xB6, 0x50, 0xD0, 0x88, 0x8D, 0x0B, 0x07, 0x4D, 0x1C, 0x94, 0x64, -+ 0x4C, 0x20, 0x8E, 0x8B, 0x88, 0x08, 0xE0, 0x30, 0x09, 0x44, 0x20, 0x05, 0x49, 0x86, 0x4D, 0x03, 0x13, 0x4E, 0x19, 0xC9, 0x84, 0x09, 0x37, 0x61, 0x1A, 0x43, 0x68, 0x4A, 0x80, 0x90, 0x02, 0x04, -+ 0x31, 0x1C, 0x17, 0x42, 0x18, 0x40, 0x80, 0xC8, 0x30, 0x8E, 0xE1, 0xA2, 0x41, 0xC3, 0x34, 0x04, 0xA3, 0x28, 0x22, 0x51, 0x24, 0x71, 0x03, 0x82, 0x06, 0x81, 0x00, 0x88, 0xD6, 0xFE, 0xF4, 0x67, -+ 0x12, 0xCA, 0x18, 0x28, 0x72, 0xAB, 0x29, 0x19, 0x67, 0x8A, 0xFF, 0x9D, 0x94, 0xE7, 0x43, 0xE0, 0x63, 0xA3, 0x9E, 0x0C, 0x35, 0xCA, 0xF7, 0x2A, 0x7F, 0x2E, 0xDA, 0x28, 0xE6, 0x58, 0x58, 0x52, -+ 0x0D, 0x5D, 0x84, 0x67, 0xDE, 0x74, 0x7C, 0xF3, 0x40, 0x65, 0x3B, 0x52, 0xC2, 0x68, 0xF5, 0x54, 0x13, 0xF5, 0xAD, 0xDC, 0x7D, 0x49, 0x01, 0x1E, 0xC3, 0x3E, 0xDD, 0x53, 0x74, 0x23, 0xA8, 0x42, -+ 0x88, 0x86, 0x93, 0x37, 0xAE, 0xA0, 0x78, 0x1A, 0x12, 0x42, 0x69, 0x07, 0x14, 0x51, 0x72, 0x2D, 0xB3, 0xBB, 0x8F, 0x2C, 0xE5, 0xB1, 0x55, 0x2F, 0x83, 0xD2, 0xAF, 0x07, 0xF2, 0x56, 0x13, 0x91, -+ 0x8A, 0x9F, 0x4E, 0x6F, 0x12, 0x57, 0x60, 0x38, 0x88, 0xE5, 0x89, 0x30, 0x8C, 0xA5, 0xF9, 0x5F, 0x07, 0x14, 0x3D, 0x23, 0xBA, 0xAE, 0x17, 0x52, 0x0B, 0x36, 0xB6, 0xE0, 0xE9, 0x4F, 0xAF, 0x68, -+ 0x45, 0xEB, 0x21, 0x31, 0xAE, 0xC3, 0x83, 0xE6, 0x3B, 0xC8, 0x64, 0x4E, 0xE5, 0xF1, 0xAC, 0xCB, 0xA8, 0x2F, 0x92, 0x11, 0xE5, 0x7A, 0xFC, 0xBF, 0x50, 0x9C, 0x11, 0x31, 0xA3, 0x74, 0x66, 0xBC, -+ 0x91, 0xB3, 0x57, 0xDC, 0xBB, 0xBC, 0x14, 0xCC, 0xC3, 0x19, 0xC4, 0xCC, 0x6A, 0xC7, 0x5F, 0xCD, 0xC8, 0x2C, 0x65, 0x96, 0xD0, 0x77, 0x70, 0xC8, 0x27, 0x7A, 0xD3, 0x70, 0xB1, 0x92, 0xA0, 0xB4, -+ 0xE0, 0x5F, 0x81, 0x2E, 0x0E, 0x26, 0x5D, 0x29, 0x12, 0xAA, 0x29, 0xF0, 0x3F, 0xC9, 0xF7, 0x2D, 0xFA, 0x69, 0xC9, 0xB1, 0x29, 0x1A, 0x3F, 0xC5, 0x83, 0x64, 0x2B, 0x23, 0x5F, 0x69, 0x91, 0xA9, -+ 0x54, 0x78, 0x83, 0x47, 0xF6, 0x0A, 0x03, 0x28, 0xC4, 0x8E, 0xCE, 0xE5, 0x1B, 0xA0, 0x2D, 0xFF, 0x32, 0x3A, 0xBD, 0x91, 0x16, 0x67, 0xCB, 0x14, 0x54, 0x9B, 0x61, 0x8F, 0x1C, 0x5D, 0x25, 0x0C, -+ 0xAC, 0x9E, 0x35, 0xE0, 0x71, 0x60, 0x19, 0x92, 0xFB, 0xEC, 0x0B, 0xAE, 0x6F, 0x74, 0x21, 0x30, 0x81, 0x40, 0x47, 0x44, 0xD1, 0x2F, 0x2A, 0x0E, 0x04, 0xBD, 0xB2, 0x65, 0xE0, 0x92, 0x4C, 0xAD, -+ 0xA4, 0x0D, 0x1F, 0xA1, 0xF3, 0x8A, 0xCA, 0x46, 0x06, 0xBF, 0xD4, 0x57, 0x57, 0x12, 0xB8, 0x26, 0x0A, 0x45, 0x6F, 0xDD, 0xEE, 0xEF, 0xE7, 0xCA, 0x25, 0x9B, 0xCD, 0xA9, 0x7B, 0x9B, 0x93, 0x9A, -+ 0x5F, 0xD2, 0x88, 0x9C, 0x9B, 0x49, 0xFB, 0x7D, 0x4E, 0x35, 0x53, 0xDE, 0xA6, 0x1B, 0x33, 0x39, 0xBD, 0x0E, 0x6B, 0x16, 0xBF, 0x3B, 0xB2, 0x27, 0x10, 0x3B, 0xF9, 0x20, 0x2E, 0x72, 0xDC, 0x50, -+ 0x2E, 0x28, 0xF7, 0xCE, 0x15, 0x59, 0xA4, 0x63, 0x1F, 0x37, 0x25, 0x20, 0x32, 0x4E, 0x4E, 0xBA, 0x07, 0x54, 0x5F, 0x78, 0xBF, 0x4D, 0x94, 0xB0, 0xE5, 0xB8, 0xBF, 0x51, 0xB8, 0xF1, 0x76, 0x53, -+ 0x3D, 0x5C, 0xFE, 0xA5, 0x23, 0x2F, 0x28, 0x3A, 0x47, 0x60, 0x5F, 0xA6, 0x5D, 0xDB, 0x17, 0xC8, 0x91, 0xC2, 0x51, 0x01, 0x1C, 0x4E, 0x98, 0xEE, 0xB6, 0xEB, 0x00, 0xCB, 0x65, 0xBA, 0x31, 0xC8, -+ 0xF0, 0x25, 0xC8, 0x7A, 0x9F, 0xE0, 0x2D, 0xBC, 0x10, 0xC5, 0xD8, 0x3A, 0x06, 0x5E, 0xBA, 0x5D, 0x7B, 0x2A, 0x19, 0xD5, 0xA1, 0xCB, 0x2C, 0x16, 0x0A, 0xE1, 0x66, 0xE8, 0x67, 0xF2, 0xAF, 0x8C, -+ 0x7D, 0x49, 0xD6, 0x3F, 0xB8, 0x3A, 0x61, 0x49, 0x57, 0xFC, 0x0A, 0x3B, 0x5A, 0x5C, 0x74, 0x99, 0x0E, 0x9A, 0x2B, 0x02, 0x12, 0x0C, 0x7E, 0x6D, 0xE3, 0x7E, 0x15, 0x5F, 0xB4, 0x72, 0xF5, 0x0F, -+ 0x0A, 0x45, 0xE4, 0x7C, 0xF5, 0xF9, 0xD7, 0xA4, 0xC8, 0x29, 0x82, 0xC9, 0xDC, 0x86, 0xAE, 0x87, 0x7C, 0x3F, 0xD1, 0x88, 0x59, 0x43, 0xE4, 0x39, 0xFB, 0x00, 0x3C, 0x7A, 0x9A, 0x42, 0xF7, 0x1B, -+ 0x4F, 0xF6, 0xF0, 0xA2, 0x8B, 0x14, 0x0C, 0xBD, 0xBA, 0x6E, 0x71, 0xB1, 0x3A, 0xC3, 0x1B, 0x23, 0xDE, 0x9E, 0xAB, 0x78, 0x37, 0xE1, 0x5A, 0x69, 0xF8, 0x33, 0xEB, 0x7B, 0x56, 0xA7, 0x1D, 0x8B, -+ 0xC2, 0xCA, 0xF1, 0xF2, 0xA3, 0x1C, 0x34, 0x5B, 0xD5, 0xF4, 0x6E, 0xE0, 0x13, 0xA7, 0xC6, 0x89, 0x37, 0x23, 0x37, 0x19, 0x1D, 0xAA, 0x80, 0x0C, 0x0A, 0xC6, 0xC4, 0x6C, 0x9F, 0xF6, 0x88, 0xB1, -+ 0xA0, 0x13, 0x47, 0xF2, 0x57, 0xC4, 0x74, 0xAA, 0x3D, 0x97, 0xC1, 0xD6, 0x3A, 0x8C, 0x00, 0xE0, 0xA3, 0x7B, 0x68, 0x16, 0x73, 0xF5, 0x7C, 0x1C, 0x9C, 0x8F, 0xCC, 0xD4, 0x6F, 0x17, 0x4C, 0x74, -+ 0xA2, 0x9D, 0x84, 0xCE, 0xB7, 0x1F, 0x7E, 0x6B, 0x2F, 0x8C, 0xD2, 0xB0, 0x89, 0xED, 0x43, 0xF7, 0xC9, 0x6D, 0xAE, 0x81, 0xA2, 0x23, 0x41, 0x8C, 0x20, 0xB1, 0x6F, 0x1D, 0xF3, 0xD1, 0xA9, 0x78, -+ 0xAE, 0x28, 0xF6, 0xDF, 0x35, 0xEC, 0x55, 0x9D, 0x04, 0xD2, 0x0E, 0xC7, 0x4B, 0x22, 0x4A, 0xEA, 0x31, 0xA2, 0x89, 0xB0, 0x15, 0xB0, 0x69, 0xE9, 0xCB, 0xBB, 0xF7, 0xCF, 0x6D, 0xE9, 0x4C, 0xFB, -+ 0x2A, 0x96, 0xE4, 0xAE, 0x34, 0x62, 0xC9, 0x60, 0x03, 0xCD, 0xDA, 0x87, 0xDB, 0x56, 0x1A, 0xF2, 0xCE, 0x3C, 0x0B, 0xA1, 0xD9, 0x04, 0x13, 0xFD, 0xCE, 0x3C, 0xCF, 0x43, 0x90, 0xC0, 0x2C, 0x1C, -+ 0xB9, 0xF6, 0x54, 0xF4, 0x82, 0x0E, 0xC3, 0x30, 0x15, 0x45, 0x7D, 0x4A, 0x62, 0x9F, 0xBF, 0x39, 0x41, 0x9C, 0xAB, 0x76, 0x42, 0xD6, 0x88, 0x5E, 0x10, 0x3F, 0xCE, 0x0D, 0x42, 0x06, 0xCC, 0xE7, -+ 0xC1, 0x2C, 0x6F, 0xC4, 0x4F, 0xA3, 0x3A, 0xD0, 0x86, 0x4C, 0x33, 0x71, 0xA7, 0xCB, 0xE8, 0x20, 0xE3, 0xB3, 0x71, 0xB6, 0x56, 0xA3, 0x8F, 0x2E, 0x7F, 0xF1, 0x8F, 0xE4, 0xA5, 0x0C, 0x8A, 0xB3, -+ 0xF8, 0x5D, 0x78, 0x3F, 0xB5, 0x78, 0x35, 0xCE, 0xD8, 0x49, 0x0B, 0x84, 0xEE, 0x0D, 0x99, 0xAF, 0x0D, 0x64, 0xC4, 0x83, 0xCE, 0xB6, 0x36, 0x6F, 0xF5, 0x4F, 0x8A, 0xC8, 0xA4, 0x0D, 0xB1, 0xAF, -+ 0xA5, 0x73, 0xA4, 0xFB, 0x32, 0x6C, 0x74, 0xF0, 0x23, 0x6E, 0xCE, 0xF3, 0xDA, 0x71, 0x20, 0x66, 0x5C, 0xCE, 0x05, 0xDD, 0x65, 0x4B, 0x50, 0x71, 0x72, 0x3A, 0x83, 0x48, 0xE7, 0xCD, 0x77, 0x93, -+ 0x51, 0x38, 0x19, 0xB6, 0x1C, 0xB6, 0x4E, 0x13, 0x28, 0xE8, 0xB2, 0x2E, 0x76, 0x64, 0xBD, 0x6B, 0x41, 0xB5, 0x71, 0x0D, 0x19, 0xEA, 0x88, 0x09, 0xD4, 0x45, 0x08, 0x50, 0xE9, 0x07, 0xDF, 0xC4, -+ 0xD0, 0xB7, 0x5F, 0x58, 0x8C, 0xEC, 0xE9, 0x62, 0xE9, 0xE0, 0x93, 0x7C, 0xE1, 0x40, 0x24, 0x46, 0xA4, 0xD2, 0x89, 0x1A, 0x46, 0xE6, 0x61, 0x7F, 0xB2, 0x9D, 0x4F, 0xCD, 0x71, 0x26, 0x06, 0xF7, -+ 0x81, 0x9E, 0xCA, 0x60, 0xF7, 0xE0, 0xD5, 0xB1, 0x9E, 0x7F, 0xFB, 0x57, 0xC7, 0x3C, 0x16, 0xFF, 0xEE, 0xB9, 0x00, 0x38, 0x41, 0x0C, 0xB9, 0xFC, 0xBB, 0x5E, 0x9D, 0x51, 0xEB, 0x3E, 0xB6, 0x29, -+ 0x7E, 0x9F, 0xF6, 0xAB, 0x70, 0x88, 0xFE, 0x2D, 0x9B, 0x23, 0x7B, 0xC2, 0x4C, 0xF7, 0xF8, 0x29, 0x01, 0x18, 0xA5, 0xE0, 0xE0, 0x0A, 0x0B, 0x90, 0x3F, 0xB6, 0x37, 0x5C, 0x84, 0x81, 0x76, 0xCD, -+ 0x0A, 0x8C, 0x88, 0x75, 0xCC, 0x59, 0x19, 0x9C, 0xDA, 0x11, 0xA8, 0x7A, 0x78, 0xF6, 0x5C, 0xC4, 0x04, 0x33, 0x0B, 0x08, 0x75, 0x71, 0xFD, 0x06, 0x33, 0xE2, 0x71, 0x29, 0xFD, 0xAB, 0x5A, 0x8A, -+ 0x1F, 0x79, 0x3E, 0x52, 0x41, 0x2B, 0x00, 0x83, 0xFD, 0x5C, 0x74, 0xDB, 0x3C, 0xF6, 0x0C, 0x25, 0x43, 0xCE, 0x7C, 0x91, 0xB2, 0x80, 0x0E, 0x40, 0x20, 0x3F, 0x8D, 0x99, 0xFE, 0x5F, 0xDE, 0x5B, -+ 0x10, 0x8E, 0x7E, 0xDC, 0x80, 0xEB, 0xB9, 0xBB, 0x34, 0x98, 0x6E, 0xC5, 0xC5, 0xA8, 0xF5, 0x80, 0xE7, 0x57, 0x52, 0x90, 0x7F, 0xF0, 0xF2, 0x94, 0xC8, 0x66, 0xC2, 0xCF, 0x1F, 0x36, 0x2E, 0x84, -+ 0x0B, 0x68, 0x81, 0xBD, 0x43, 0x21, 0x92, 0x01, 0x78, 0x1C, 0x63, 0xB0, 0x03, 0x9A, 0x95, 0xBC, 0xFB, 0x4A, 0x0F, 0xEC, 0xE5, 0x69, 0xDF, 0x00, 0x52, 0x3C, 0xE9, 0xC0, 0x84, 0xB0, 0x22, 0xB3, -+ 0xB0, 0x22, 0x24, 0x2E, 0x28, 0x41, 0x97, 0x96, 0xAC, 0xF0, 0xA0, 0xC9, 0x95, 0xF9, 0x48, 0xDB, 0xFF, 0xFD, 0x30, 0xD7, 0x7E, 0xD1, 0x05, 0xA3, 0xC9, 0x94, 0x3C, 0x40, 0x6B, 0x30, 0x5B, 0xC8, -+ 0x1A, 0x6A, 0x24, 0x8A, 0x29, 0x15, 0x48, 0xF2, 0xA6, 0x7F, 0x43, 0x8D, 0x96, 0x6A, 0x57, 0xD5, 0x3F, 0x4B, 0x7B, 0xE1, 0x53, 0x54, 0xE5, 0x81, 0xBE, 0x16, 0xF7, 0xAD, 0x64, 0xD1, 0x64, 0xE8, -+ 0x57, 0x87, 0xDF, 0x58, 0x49, 0xC8, 0x10, 0xAF, 0xC2, 0x8D, 0x06, 0x48, 0x2F, 0x44, 0x1B, 0x5F, 0xDE, 0x3D, 0xB2, 0xED, 0x36, 0xDD, 0x25, 0xAA, 0x66, 0x64, 0xD4, 0xD4, 0x3F, 0xFA, 0x32, 0xED, -+ 0xA2, 0x56, 0x89, 0xC9, 0xF4, 0xA5, 0xD5, 0x14, 0xFC, 0x66, 0x23, 0x1C, 0x54, 0x01, 0x52, 0x09, 0x22, 0x52, 0x44, 0x38, 0xEF, 0x1D, 0xC7, 0x8D, 0x69, 0x3C, 0x97, 0x18, 0xDE, 0xBB, 0xD2, 0x43, -+ 0x31, 0x26, 0x74, 0xC8, 0x99, 0xF1, 0x89, 0x10, 0xE3, 0x89, 0xC8, 0xEB, 0xE5, 0x05, 0x82, 0x4B, 0xCC, 0x42, 0xCD, 0x4A, 0x9A, 0xCE, 0x19, 0x37, 0x68, 0x22, 0x02, 0x19, 0x01, 0x1F, 0x3B, 0x1F, -+ 0x33, 0x54, 0x27, 0xBF, 0xF9, 0xE8, 0xBD, 0xED, 0x5C, 0x08, 0x71, 0x1A, 0x09, 0xC2, 0xB7, 0x1C, 0xB9, 0x64, 0xC5, 0x6A, 0x83, 0x93, 0xBF, 0xD2, 0xB5, 0x6E, 0x9B, 0x6B, 0x2F, 0x51, 0x3E, 0x68, -+ 0x25, 0x87, 0xDC, 0x1B, 0x8E, 0xD1, 0x96, 0x06, 0x63, 0x26, 0x87, 0x10, 0x25, 0x62, 0x80, 0x36, 0x70, 0x00, 0x63, 0x17, 0x6D, 0x34, 0x5D, 0xE3, 0x84, 0xE1, 0x82, 0xD6, 0xC4, 0x17, 0xA3, 0x2A, -+ 0xB1, 0x10, 0x95, 0xEF, 0x59, 0xBB, 0x4D, 0x17, 0x1B, 0x9C, 0xF8, 0x1D, 0x17, 0xAC, 0x42, 0x66, 0x4D, 0xED, 0x93, 0x3C, 0xCB, 0x72, 0x2C, 0x69, 0x85, 0x7F, 0xFC, 0x53, 0xC8, 0xE7, 0xF2, 0x47, -+ 0x4B, 0x0C, 0xB2, 0xDF, 0xF2, 0xDD, 0xC8, 0xA5, 0xC6, 0x01, 0xC8, 0x4A, 0x70, 0x19, 0x81, 0x19, 0x9B, 0xCC, 0xF7, 0x41, 0x12, 0xA6, 0xEC, 0x06, 0x2C, 0x4F, 0xEB, 0x60, 0x1A, 0x02, 0x8A, 0xF0, -+ 0x10, 0x32, 0xAD, 0xB6, 0xBD, 0x15, 0xD4, 0xC2, 0xB9, 0x55, 0x0A, 0xA8, 0x50, 0xAD, 0x62, 0xCC, 0xC3, 0xA3, 0x66, 0x5D, 0x52, 0x12, 0xB1, 0x2E, 0x0F, 0xD5, 0xC5, 0x32, 0x6A, 0x1E, 0x5E, 0xB1, -+ 0xF1, 0x0D, 0x55, 0x7D, 0x94, 0x60, 0x5E, 0x8E, 0x3F, 0x35, 0x6E, 0x08, 0xFF, 0x7F, 0xD8, 0x84, 0xED, 0x3C, 0x42, 0x05, 0x46, 0x35, 0x94, 0xC9, 0xAF, 0x2F, 0x39, 0xE4, 0xB1, 0x27, 0x46, 0x95, -+ 0x23, 0x4B, 0x54, 0xEE, 0xCE, 0xD9, 0x3F, 0x46, 0x0E, 0xDF, 0x1A, 0x13, 0xC2, 0xCB, 0x4B, 0x17, 0xD3, 0x22, 0xF6, 0xF7, 0x9F, 0xE1, 0x6F, 0x03, 0x57, 0xC1, 0xC4, 0x73, 0x98, 0x63, 0xE7, 0x96, -+ 0x79, 0x1F, 0x86, 0x47, 0xFA, 0xBF, 0x73, 0x0A, 0xB0, 0x0E, 0x0D, 0xA5, 0x09, 0x70, 0x6D, 0x94, 0x57, 0x17, 0x40, 0xF6, 0x1F, 0x7B, 0xAF, 0x36, 0x6D, 0x27, 0x74, 0xC9, 0xB5, 0xB8, 0xC6, 0x1D, -+ 0xD6, 0xBE, 0x98, 0x19, 0xA6, 0x02, 0x8B, 0x26, 0x4B, 0xB2, 0xE4, 0xAE, 0xA5, 0x4B, 0x56, 0xD4, 0xEC, 0xAB, 0x5B, 0x52, 0x8C, 0xE0, 0xC0, 0xC0, 0xCC, 0xDB, 0x73, 0x02, 0x33, 0x52, 0xCB, 0x00, -+ 0x44, 0x5B, 0xAB, 0x6F, 0x74, 0x67, 0xB4, 0x64, 0x4D, 0x43, 0x61, 0xC4, 0x64, 0xFA, 0xC6, 0xB5, 0xB1, 0x37, 0xD3, 0x23, 0x91, 0x02, 0x1B, 0x47, 0x5F, 0xCB, 0x5F, 0x31, 0x77, 0x4F, 0xD8, 0xEC, -+ 0xAB, 0xDF, 0x65, 0x47, 0x5F, 0x25, 0x57, 0x4C, 0x65, 0x55, 0x9C, 0xB3, 0x31, 0xF4, 0x1C, 0x0F, 0x49, 0x8B, 0x74, 0xDD, 0x94, 0x1C, 0x34, 0x4C, 0x50, 0xD8, 0xE6, 0x4F, 0x95, 0x78, 0x71, 0x4A, -+ 0x32, 0x56, 0x1F, 0xAA, 0xCE, 0xAF, 0x78, 0x14, 0x8E, 0x6D, 0xA4, 0xB5, 0x66, 0x82, 0x69, 0x25, 0x71, 0x4B, 0x17, 0x10, 0x8A, 0xFD, 0xD5, 0x46, 0x38, 0x5A, 0x3C, 0xD4, 0x54, 0xD5, 0xCA, 0xA1, -+ 0x69, 0x60, 0x91, 0x62, 0x82, 0xA4, 0x7C, 0x43, 0x15, 0xCE, 0x23, 0x6B, 0xD9, 0xE3, 0x25, 0x5C, 0x60, 0x4E, 0xBD, 0xC3, 0x97, 0x72, 0xDB, 0x5C, 0xE0, 0xB2, 0x36, 0xA0, 0x82, 0x05, 0x05, 0x03, -+ 0x82, 0x05, 0x01, 0x00, 0x61, 0x77, 0xE3, 0xDE, 0x0D, 0x4F, 0x1E, 0xF5, 0x84, 0x77, 0x35, 0x94, 0x7B, 0x56, 0xD0, 0x8E, 0x84, 0x1D, 0xB2, 0x44, 0x4F, 0xA2, 0xB7, 0x29, 0xAD, 0xEB, 0x14, 0x17, -+ 0xCA, 0x7A, 0xDF, 0x42, 0xA1, 0x49, 0x0C, 0x5A, 0x09, 0x7F, 0x00, 0x27, 0x60, 0xC1, 0xFC, 0x41, 0x9B, 0xE8, 0x32, 0x5A, 0xAD, 0x01, 0x97, 0xC5, 0x2C, 0xED, 0x80, 0xD3, 0xDF, 0x18, 0xE7, 0x77, -+ 0x42, 0x65, 0xB2, 0x89, 0x91, 0x2C, 0xEC, 0xA1, 0xBE, 0x3A, 0x90, 0xD8, 0xA4, 0xFD, 0xE6, 0x5C, 0x84, 0xC6, 0x10, 0x86, 0x4E, 0x47, 0xDE, 0xEC, 0xAE, 0x3E, 0xEA, 0x44, 0x30, 0xB9, 0x90, 0x95, -+ 0x59, 0x40, 0x8D, 0x11, 0xA6, 0xAB, 0xDB, 0x7D, 0xB9, 0x33, 0x6D, 0xF7, 0xF9, 0x6E, 0xAB, 0x48, 0x64, 0xA6, 0x57, 0x97, 0x91, 0x26, 0x5F, 0xA5, 0x6C, 0x34, 0x8C, 0xB7, 0xD2, 0xDD, 0xC9, 0x0E, -+ 0x13, 0x3A, 0x95, 0xC3, 0xF6, 0xB1, 0x36, 0x01, 0x42, 0x9F, 0x54, 0x08, 0xBD, 0x99, 0x9A, 0xA4, 0x79, 0xC1, 0x01, 0x81, 0x59, 0x55, 0x0E, 0xC5, 0x5A, 0x11, 0x3C, 0x49, 0x3B, 0xE6, 0x48, 0xF4, -+ 0xE0, 0x36, 0xDD, 0x4F, 0x8C, 0x80, 0x9E, 0x03, 0x6B, 0x4F, 0xBB, 0x91, 0x8C, 0x2C, 0x48, 0x4A, 0xD8, 0xE1, 0x74, 0x7A, 0xE0, 0x55, 0x85, 0xAB, 0x43, 0x3F, 0xDF, 0x46, 0x1A, 0xF0, 0x3C, 0x25, -+ 0xA7, 0x73, 0x70, 0x07, 0x21, 0xAA, 0x05, 0xF7, 0x37, 0x9F, 0xE7, 0xF5, 0xED, 0x96, 0x17, 0x5D, 0x40, 0x21, 0x07, 0x6E, 0x7F, 0x52, 0xB6, 0x03, 0x08, 0xEF, 0xF5, 0xD4, 0x2B, 0xA6, 0xE0, 0x93, -+ 0xB3, 0xD0, 0x81, 0x5E, 0xB3, 0x49, 0x66, 0x46, 0xE4, 0x92, 0x30, 0xA9, 0xB3, 0x5C, 0x8D, 0x41, 0x90, 0x0C, 0x2B, 0xB8, 0xD3, 0xB4, 0x46, 0xA2, 0x31, 0x27, 0xF7, 0xE0, 0x96, 0xD8, 0x5A, 0x1C, -+ 0x79, 0x4A, 0xD4, 0xC8, 0x92, 0x77, 0x90, 0x4F, 0xC6, 0xBF, 0xEC, 0x57, 0xB1, 0xCD, 0xD8, 0x0D, 0xF9, 0x95, 0x50, 0x30, 0xFD, 0xCA, 0x74, 0x1A, 0xFB, 0xDA, 0xC8, 0x27, 0xB1, 0x3C, 0xCD, 0x54, -+ 0x03, 0x58, 0x8A, 0xF4, 0x64, 0x40, 0x03, 0xC2, 0x26, 0x5D, 0xFA, 0x4D, 0x41, 0x9D, 0xBC, 0xCD, 0x20, 0x64, 0x89, 0x23, 0x86, 0x51, 0x8B, 0xE9, 0xD5, 0x1C, 0x16, 0x49, 0x82, 0x75, 0xEB, 0xEC, -+ 0xF5, 0xCD, 0xC7, 0xA8, 0x20, 0xF2, 0xC2, 0x93, 0x14, 0xAC, 0x4A, 0x6F, 0x08, 0xB2, 0x25, 0x2A, 0xD3, 0xCF, 0xB1, 0x99, 0xAA, 0x42, 0xFE, 0x0B, 0x4F, 0xB5, 0x71, 0x97, 0x5C, 0x10, 0x20, 0xD9, -+ 0x49, 0xE1, 0x94, 0xEE, 0x1E, 0xAD, 0x93, 0x7B, 0xFB, 0x55, 0x0B, 0xB3, 0xBA, 0x8E, 0x35, 0x7A, 0x02, 0x9C, 0x29, 0xF0, 0x77, 0x55, 0x46, 0x02, 0xE1, 0xCA, 0x2F, 0x22, 0x89, 0xCB, 0x91, 0x69, -+ 0x94, 0x1C, 0x3A, 0xAF, 0xDB, 0x8E, 0x58, 0xC7, 0xF2, 0xAC, 0x77, 0x29, 0x1F, 0xB4, 0x14, 0x7C, 0x65, 0xF6, 0xB0, 0x31, 0xD3, 0xEB, 0xA4, 0x2F, 0x2A, 0xCF, 0xD9, 0x44, 0x8A, 0x5B, 0xC2, 0x2B, -+ 0x47, 0x6E, 0x07, 0xCC, 0xCE, 0xDA, 0x23, 0x06, 0xC5, 0x54, 0xEC, 0x9B, 0x7A, 0xB6, 0x55, 0xF1, 0xD7, 0x31, 0x8C, 0x2B, 0x7E, 0x67, 0xD5, 0xF6, 0x9B, 0xED, 0xF5, 0x60, 0x00, 0xFD, 0xA9, 0x89, -+ 0x86, 0xB5, 0xAB, 0x1B, 0x3A, 0x22, 0xD8, 0xDF, 0xD6, 0x68, 0x16, 0x97, 0xB2, 0x3A, 0x55, 0xC9, 0x6E, 0x87, 0x10, 0xF3, 0xF9, 0x8C, 0x04, 0x4F, 0xB1, 0x5F, 0x60, 0x63, 0x13, 0xEE, 0x56, 0xC0, -+ 0xF1, 0xF5, 0xCA, 0x0F, 0x51, 0x2E, 0x08, 0x48, 0x4F, 0xCB, 0x35, 0x8E, 0x6E, 0x52, 0x8F, 0xFA, 0x89, 0xF8, 0xA8, 0x66, 0xCC, 0xFF, 0x3C, 0x0C, 0x58, 0x13, 0x14, 0x7E, 0xC5, 0x9A, 0xF0, 0x47, -+ 0x0C, 0x4A, 0xAD, 0x01, 0x41, 0xD3, 0x4F, 0x10, 0x1D, 0xA2, 0xE5, 0xE1, 0xBD, 0x52, 0xD0, 0xD4, 0xC9, 0xB1, 0x3B, 0x3E, 0x3D, 0x87, 0xD1, 0x58, 0x61, 0x05, 0x79, 0x67, 0x54, 0xE7, 0x97, 0x8C, -+ 0xA1, 0xC6, 0x8A, 0x7D, 0x85, 0xDF, 0x11, 0x2B, 0x7A, 0xB9, 0x21, 0xB3, 0x59, 0xA9, 0xF0, 0x3C, 0xBD, 0x27, 0xA7, 0xEA, 0xC8, 0x7A, 0x9A, 0x80, 0xB0, 0xB2, 0x6B, 0x4C, 0x96, 0x57, 0xED, 0x85, -+ 0xAD, 0x7F, 0xA2, 0x61, 0x6A, 0xB3, 0x45, 0xEB, 0x82, 0x26, 0xF6, 0x9F, 0xC0, 0xF4, 0x81, 0x83, 0xFF, 0x57, 0x4B, 0xCD, 0x76, 0x7B, 0x56, 0x76, 0x41, 0x3A, 0xDB, 0x12, 0xEA, 0x21, 0x50, 0xA0, -+ 0xE9, 0x76, 0x83, 0xEE, 0x54, 0x24, 0x3C, 0x25, 0xB7, 0xEA, 0x8A, 0x71, 0x86, 0x06, 0xF8, 0x69, 0x93, 0xD8, 0xD0, 0xDA, 0xCE, 0x83, 0x4E, 0xD3, 0x41, 0xEE, 0xB7, 0x24, 0xFE, 0x3D, 0x5F, 0xF0, -+ 0xBC, 0x8B, 0x8A, 0x7B, 0x81, 0x04, 0xBA, 0x26, 0x9D, 0x34, 0x13, 0x3A, 0x4C, 0xF8, 0x30, 0x0A, 0x2D, 0x68, 0x84, 0x96, 0xB5, 0x9B, 0x6F, 0xCB, 0xC6, 0x1A, 0xE9, 0x60, 0x62, 0xEA, 0x1D, 0x8E, -+ 0x5B, 0x41, 0x0C, 0x56, 0x71, 0xF4, 0x24, 0x41, 0x7E, 0xD6, 0x93, 0x32, 0x9C, 0xD9, 0x83, 0x00, 0x1F, 0xFC, 0xD1, 0x00, 0x23, 0xD5, 0x98, 0x85, 0x9F, 0xB7, 0xAD, 0x5F, 0xD2, 0x63, 0x54, 0x71, -+ 0x17, 0x10, 0x06, 0x90, 0xC6, 0xCE, 0x74, 0x38, 0x95, 0x6E, 0x6C, 0xC5, 0x7F, 0x1B, 0x5D, 0xE5, 0x3B, 0xB0, 0xDC, 0x72, 0xCE, 0x9B, 0x6D, 0xEA, 0xA8, 0x57, 0x89, 0x59, 0x9A, 0x70, 0xF0, 0x05, -+ 0x1F, 0x1A, 0x0E, 0x25, 0xE8, 0x6D, 0x88, 0x8B, 0x00, 0xDF, 0x36, 0xBD, 0xBC, 0x93, 0xEF, 0x72, 0x17, 0xC4, 0x5A, 0xCE, 0x11, 0xC0, 0x79, 0x0D, 0x70, 0xE9, 0x95, 0x3E, 0x5B, 0x41, 0x7B, 0xA2, -+ 0xFD, 0x9A, 0x4C, 0xAF, 0x82, 0xF1, 0xFC, 0xE6, 0xF4, 0x5F, 0x53, 0xE2, 0x15, 0xB8, 0x35, 0x5E, 0xF6, 0x1D, 0x89, 0x1D, 0xF1, 0xC7, 0x94, 0x23, 0x1C, 0x16, 0x2D, 0xD2, 0x41, 0x64, 0xB5, 0x34, -+ 0xA9, 0xD4, 0x84, 0x67, 0xCD, 0xC3, 0x23, 0x62, 0x4C, 0x2F, 0x95, 0xD4, 0x40, 0x2F, 0xF9, 0xD6, 0x6A, 0xB1, 0x19, 0x1A, 0x81, 0x24, 0x14, 0x4A, 0xFA, 0x35, 0xD4, 0xE3, 0x1D, 0xC8, 0x6C, 0xAA, -+ 0x79, 0x7C, 0x31, 0xF6, 0x8B, 0x85, 0x85, 0x4C, 0xD9, 0x59, 0xC4, 0xFA, 0xC5, 0xEC, 0x53, 0xB3, 0xB5, 0x6D, 0x37, 0x4B, 0x88, 0x8A, 0x9E, 0x97, 0x9A, 0x65, 0x76, 0xB6, 0x34, 0x5E, 0xC8, 0x52, -+ 0x2C, 0x96, 0x06, 0x99, 0x02, 0x81, 0xBF, 0x3E, 0xF7, 0xC5, 0x94, 0x5D, 0x10, 0xFD, 0x21, 0xA2, 0xA1, 0xD2, 0xE5, 0x40, 0x4C, 0x5C, 0xF2, 0x12, 0x20, 0x64, 0x13, 0x91, 0xB9, 0x8B, 0xCF, 0x82, -+ 0x53, 0x98, 0x30, 0x5B, 0x56, 0xE5, 0x8B, 0x61, 0x1F, 0xE5, 0x25, 0x32, 0x03, 0xE3, 0xDF, 0x0D, 0x22, 0x46, 0x6A, 0x73, 0xB3, 0xF0, 0xFB, 0xE4, 0x3B, 0x9A, 0x62, 0x92, 0x80, 0x91, 0x89, 0x8B, -+ 0x8A, 0x0E, 0x5B, 0x26, 0x9D, 0xB5, 0x86, 0xB0, 0xE4, 0xDD, 0xEF, 0x50, 0xD6, 0x82, 0xA1, 0x2D, 0x2C, 0x1B, 0xE8, 0x24, 0x14, 0x9A, 0xA2, 0x54, 0xC6, 0x38, 0x1B, 0xB4, 0x12, 0xD7, 0x7C, 0x3F, -+ 0x9A, 0xA9, 0x02, 0xB6, 0x88, 0xC8, 0x17, 0x15, 0xA5, 0x9C, 0x83, 0x95, 0x58, 0x55, 0x6D, 0x35, 0xED, 0x4F, 0xC8, 0x3B, 0x4A, 0xB1, 0x81, 0x81, 0xF4, 0x0F, 0x73, 0xDC, 0xD7, 0x68, 0x60, 0xD8, -+ 0xD8, 0xBF, 0x94, 0x52, 0x02, 0x37, 0xC2, 0xAC, 0x0E, 0x46, 0x3B, 0xA0, 0x9E, 0x3C, 0x97, 0x82, 0x38, 0x0D, 0xC0, 0x7F, 0xE4, 0xFC, 0xBA, 0x34, 0x0C, 0xC2, 0x00, 0x34, 0x39, 0xFD, 0x23, 0x14, -+ 0x61, 0x06, 0x38, 0x07, 0x0D, 0x6C, 0x9E, 0xEA, 0x0A, 0x70, 0xBA, 0xE8, 0x3B, 0x5D, 0x5D, 0x3C, 0x5D, 0x3F, 0xDE, 0x26, 0xDD, 0x01, 0x60, 0x6C, 0x8C, 0x52, 0x01, 0x58, 0xE7, 0xE5, 0x10, 0x40, -+ 0x20, 0xF2, 0x48, 0xCE, 0xAA, 0x66, 0x64, 0x57, 0xC1, 0x0A, 0xEB, 0xF0, 0x68, 0xF8, 0xA3, 0xBD, 0x5C, 0xE7, 0xB5, 0x2C, 0x6A, 0xF0, 0xAB, 0xD5, 0x94, 0x4A, 0xF1, 0xAD, 0x47, 0x52, 0xC9, 0x11, -+ 0x39, 0x76, 0x08, 0x3C, 0x03, 0xB6, 0xC3, 0x4E, 0x1D, 0x47, 0xED, 0x69, 0x64, 0x4C, 0xAD, 0x78, 0x2C, 0x2F, 0x7D, 0x05, 0xF8, 0xA1, 0x48, 0x96, 0x1D, 0x96, 0x5F, 0xA2, 0xE1, 0x72, 0x3A, 0x8D, -+ 0xDE, 0xBC, 0x22, 0xA9, 0x0C, 0xD7, 0x83, 0xDD, 0x1F, 0x4D, 0xB3, 0x8F, 0xB9, 0xAE, 0x5A, 0x67, 0x14, 0xB3, 0xD9, 0x46, 0x78, 0x16, 0x43, 0xD3, 0x17, 0xB7, 0xDD, 0x79, 0x38, 0x1C, 0xF7, 0x89, -+ 0xA9, 0x58, 0x8B, 0xB3, 0xE1, 0x93, 0xB9, 0x2A, 0x0B, 0x60, 0xD6, 0xB0, 0x7D, 0x04, 0x7F, 0x69, 0x84, 0xB0, 0x60, 0x9E, 0xC5, 0x75, 0x43, 0xC3, 0x94, 0xCA, 0x8D, 0x5E, 0x5B, 0xCC, 0x2A, 0x73, -+ 0x1A, 0x79, 0x61, 0x8B, 0xD1, 0xE2, 0xE0, 0xDA, 0x87, 0x04, 0xAF, 0x98, 0xF2, 0x0F, 0x5F, 0x8F, 0x54, 0x52, 0xDD, 0xF6, 0x46, 0xB9, 0x5B, 0x34, 0x1D, 0xD7, 0xF0, 0xD2, 0xCC, 0x1F, 0xA1, 0x5B, -+ 0xD9, 0x89, 0x5C, 0xD5, 0xB6, 0x5A, 0xA1, 0xCB, 0x94, 0xB5, 0xE2, 0xE7, 0x88, 0xFD, 0xA9, 0x82, 0x5B, 0x65, 0x66, 0x39, 0x19, 0x3D, 0x98, 0x32, 0x81, 0x54, 0xA4, 0xF2, 0xC3, 0x54, 0x95, 0xA3, -+ 0x8B, 0x6E, 0xA0, 0xD2, 0xFF, 0xAA, 0xA3, 0x5D, 0xF9, 0x2C, 0x20, 0x3C, 0x7F, 0x31, 0xCB, 0xBC, 0xA7, 0xBD, 0x03, 0xC3, 0xC2, 0x30, 0x21, 0x90, 0xCE, 0xCD, 0x16, 0x1F, 0xD4, 0x92, 0x37, 0xE4, -+ 0xF8, 0x39, 0xE3, 0xF3, -+ }, -+ .spki_len = 1350, -+ .spki = { -+ 0x30, 0x82, 0x05, 0x42, 0x30, 0x0F, 0x06, 0x0B, 0x2B, 0x06, 0x01, 0x04, 0x01, 0x02, 0x82, 0x0B, 0x07, 0x04, 0x04, 0x05, 0x00, 0x03, 0x82, 0x05, 0x2D, 0x00, 0x30, 0x82, 0x05, 0x28, 0x03, 0x21, -+ 0x00, 0x1C, 0x0E, 0xE1, 0x11, 0x1B, 0x08, 0x00, 0x3F, 0x28, 0xE6, 0x5E, 0x8B, 0x3B, 0xDE, 0xB0, 0x37, 0xCF, 0x8F, 0x22, 0x1D, 0xFC, 0xDA, 0xF5, 0x95, 0x0E, 0xDB, 0x38, 0xD5, 0x06, 0xD8, 0x5B, -+ 0xEF, 0x03, 0x82, 0x05, 0x01, 0x00, 0x61, 0x77, 0xE3, 0xDE, 0x0D, 0x4F, 0x1E, 0xF5, 0x84, 0x77, 0x35, 0x94, 0x7B, 0x56, 0xD0, 0x8E, 0x84, 0x1D, 0xB2, 0x44, 0x4F, 0xA2, 0xB7, 0x29, 0xAD, 0xEB, -+ 0x14, 0x17, 0xCA, 0x7A, 0xDF, 0x42, 0xA1, 0x49, 0x0C, 0x5A, 0x09, 0x7F, 0x00, 0x27, 0x60, 0xC1, 0xFC, 0x41, 0x9B, 0xE8, 0x32, 0x5A, 0xAD, 0x01, 0x97, 0xC5, 0x2C, 0xED, 0x80, 0xD3, 0xDF, 0x18, -+ 0xE7, 0x77, 0x42, 0x65, 0xB2, 0x89, 0x91, 0x2C, 0xEC, 0xA1, 0xBE, 0x3A, 0x90, 0xD8, 0xA4, 0xFD, 0xE6, 0x5C, 0x84, 0xC6, 0x10, 0x86, 0x4E, 0x47, 0xDE, 0xEC, 0xAE, 0x3E, 0xEA, 0x44, 0x30, 0xB9, -+ 0x90, 0x95, 0x59, 0x40, 0x8D, 0x11, 0xA6, 0xAB, 0xDB, 0x7D, 0xB9, 0x33, 0x6D, 0xF7, 0xF9, 0x6E, 0xAB, 0x48, 0x64, 0xA6, 0x57, 0x97, 0x91, 0x26, 0x5F, 0xA5, 0x6C, 0x34, 0x8C, 0xB7, 0xD2, 0xDD, -+ 0xC9, 0x0E, 0x13, 0x3A, 0x95, 0xC3, 0xF6, 0xB1, 0x36, 0x01, 0x42, 0x9F, 0x54, 0x08, 0xBD, 0x99, 0x9A, 0xA4, 0x79, 0xC1, 0x01, 0x81, 0x59, 0x55, 0x0E, 0xC5, 0x5A, 0x11, 0x3C, 0x49, 0x3B, 0xE6, -+ 0x48, 0xF4, 0xE0, 0x36, 0xDD, 0x4F, 0x8C, 0x80, 0x9E, 0x03, 0x6B, 0x4F, 0xBB, 0x91, 0x8C, 0x2C, 0x48, 0x4A, 0xD8, 0xE1, 0x74, 0x7A, 0xE0, 0x55, 0x85, 0xAB, 0x43, 0x3F, 0xDF, 0x46, 0x1A, 0xF0, -+ 0x3C, 0x25, 0xA7, 0x73, 0x70, 0x07, 0x21, 0xAA, 0x05, 0xF7, 0x37, 0x9F, 0xE7, 0xF5, 0xED, 0x96, 0x17, 0x5D, 0x40, 0x21, 0x07, 0x6E, 0x7F, 0x52, 0xB6, 0x03, 0x08, 0xEF, 0xF5, 0xD4, 0x2B, 0xA6, -+ 0xE0, 0x93, 0xB3, 0xD0, 0x81, 0x5E, 0xB3, 0x49, 0x66, 0x46, 0xE4, 0x92, 0x30, 0xA9, 0xB3, 0x5C, 0x8D, 0x41, 0x90, 0x0C, 0x2B, 0xB8, 0xD3, 0xB4, 0x46, 0xA2, 0x31, 0x27, 0xF7, 0xE0, 0x96, 0xD8, -+ 0x5A, 0x1C, 0x79, 0x4A, 0xD4, 0xC8, 0x92, 0x77, 0x90, 0x4F, 0xC6, 0xBF, 0xEC, 0x57, 0xB1, 0xCD, 0xD8, 0x0D, 0xF9, 0x95, 0x50, 0x30, 0xFD, 0xCA, 0x74, 0x1A, 0xFB, 0xDA, 0xC8, 0x27, 0xB1, 0x3C, -+ 0xCD, 0x54, 0x03, 0x58, 0x8A, 0xF4, 0x64, 0x40, 0x03, 0xC2, 0x26, 0x5D, 0xFA, 0x4D, 0x41, 0x9D, 0xBC, 0xCD, 0x20, 0x64, 0x89, 0x23, 0x86, 0x51, 0x8B, 0xE9, 0xD5, 0x1C, 0x16, 0x49, 0x82, 0x75, -+ 0xEB, 0xEC, 0xF5, 0xCD, 0xC7, 0xA8, 0x20, 0xF2, 0xC2, 0x93, 0x14, 0xAC, 0x4A, 0x6F, 0x08, 0xB2, 0x25, 0x2A, 0xD3, 0xCF, 0xB1, 0x99, 0xAA, 0x42, 0xFE, 0x0B, 0x4F, 0xB5, 0x71, 0x97, 0x5C, 0x10, -+ 0x20, 0xD9, 0x49, 0xE1, 0x94, 0xEE, 0x1E, 0xAD, 0x93, 0x7B, 0xFB, 0x55, 0x0B, 0xB3, 0xBA, 0x8E, 0x35, 0x7A, 0x02, 0x9C, 0x29, 0xF0, 0x77, 0x55, 0x46, 0x02, 0xE1, 0xCA, 0x2F, 0x22, 0x89, 0xCB, -+ 0x91, 0x69, 0x94, 0x1C, 0x3A, 0xAF, 0xDB, 0x8E, 0x58, 0xC7, 0xF2, 0xAC, 0x77, 0x29, 0x1F, 0xB4, 0x14, 0x7C, 0x65, 0xF6, 0xB0, 0x31, 0xD3, 0xEB, 0xA4, 0x2F, 0x2A, 0xCF, 0xD9, 0x44, 0x8A, 0x5B, -+ 0xC2, 0x2B, 0x47, 0x6E, 0x07, 0xCC, 0xCE, 0xDA, 0x23, 0x06, 0xC5, 0x54, 0xEC, 0x9B, 0x7A, 0xB6, 0x55, 0xF1, 0xD7, 0x31, 0x8C, 0x2B, 0x7E, 0x67, 0xD5, 0xF6, 0x9B, 0xED, 0xF5, 0x60, 0x00, 0xFD, -+ 0xA9, 0x89, 0x86, 0xB5, 0xAB, 0x1B, 0x3A, 0x22, 0xD8, 0xDF, 0xD6, 0x68, 0x16, 0x97, 0xB2, 0x3A, 0x55, 0xC9, 0x6E, 0x87, 0x10, 0xF3, 0xF9, 0x8C, 0x04, 0x4F, 0xB1, 0x5F, 0x60, 0x63, 0x13, 0xEE, -+ 0x56, 0xC0, 0xF1, 0xF5, 0xCA, 0x0F, 0x51, 0x2E, 0x08, 0x48, 0x4F, 0xCB, 0x35, 0x8E, 0x6E, 0x52, 0x8F, 0xFA, 0x89, 0xF8, 0xA8, 0x66, 0xCC, 0xFF, 0x3C, 0x0C, 0x58, 0x13, 0x14, 0x7E, 0xC5, 0x9A, -+ 0xF0, 0x47, 0x0C, 0x4A, 0xAD, 0x01, 0x41, 0xD3, 0x4F, 0x10, 0x1D, 0xA2, 0xE5, 0xE1, 0xBD, 0x52, 0xD0, 0xD4, 0xC9, 0xB1, 0x3B, 0x3E, 0x3D, 0x87, 0xD1, 0x58, 0x61, 0x05, 0x79, 0x67, 0x54, 0xE7, -+ 0x97, 0x8C, 0xA1, 0xC6, 0x8A, 0x7D, 0x85, 0xDF, 0x11, 0x2B, 0x7A, 0xB9, 0x21, 0xB3, 0x59, 0xA9, 0xF0, 0x3C, 0xBD, 0x27, 0xA7, 0xEA, 0xC8, 0x7A, 0x9A, 0x80, 0xB0, 0xB2, 0x6B, 0x4C, 0x96, 0x57, -+ 0xED, 0x85, 0xAD, 0x7F, 0xA2, 0x61, 0x6A, 0xB3, 0x45, 0xEB, 0x82, 0x26, 0xF6, 0x9F, 0xC0, 0xF4, 0x81, 0x83, 0xFF, 0x57, 0x4B, 0xCD, 0x76, 0x7B, 0x56, 0x76, 0x41, 0x3A, 0xDB, 0x12, 0xEA, 0x21, -+ 0x50, 0xA0, 0xE9, 0x76, 0x83, 0xEE, 0x54, 0x24, 0x3C, 0x25, 0xB7, 0xEA, 0x8A, 0x71, 0x86, 0x06, 0xF8, 0x69, 0x93, 0xD8, 0xD0, 0xDA, 0xCE, 0x83, 0x4E, 0xD3, 0x41, 0xEE, 0xB7, 0x24, 0xFE, 0x3D, -+ 0x5F, 0xF0, 0xBC, 0x8B, 0x8A, 0x7B, 0x81, 0x04, 0xBA, 0x26, 0x9D, 0x34, 0x13, 0x3A, 0x4C, 0xF8, 0x30, 0x0A, 0x2D, 0x68, 0x84, 0x96, 0xB5, 0x9B, 0x6F, 0xCB, 0xC6, 0x1A, 0xE9, 0x60, 0x62, 0xEA, -+ 0x1D, 0x8E, 0x5B, 0x41, 0x0C, 0x56, 0x71, 0xF4, 0x24, 0x41, 0x7E, 0xD6, 0x93, 0x32, 0x9C, 0xD9, 0x83, 0x00, 0x1F, 0xFC, 0xD1, 0x00, 0x23, 0xD5, 0x98, 0x85, 0x9F, 0xB7, 0xAD, 0x5F, 0xD2, 0x63, -+ 0x54, 0x71, 0x17, 0x10, 0x06, 0x90, 0xC6, 0xCE, 0x74, 0x38, 0x95, 0x6E, 0x6C, 0xC5, 0x7F, 0x1B, 0x5D, 0xE5, 0x3B, 0xB0, 0xDC, 0x72, 0xCE, 0x9B, 0x6D, 0xEA, 0xA8, 0x57, 0x89, 0x59, 0x9A, 0x70, -+ 0xF0, 0x05, 0x1F, 0x1A, 0x0E, 0x25, 0xE8, 0x6D, 0x88, 0x8B, 0x00, 0xDF, 0x36, 0xBD, 0xBC, 0x93, 0xEF, 0x72, 0x17, 0xC4, 0x5A, 0xCE, 0x11, 0xC0, 0x79, 0x0D, 0x70, 0xE9, 0x95, 0x3E, 0x5B, 0x41, -+ 0x7B, 0xA2, 0xFD, 0x9A, 0x4C, 0xAF, 0x82, 0xF1, 0xFC, 0xE6, 0xF4, 0x5F, 0x53, 0xE2, 0x15, 0xB8, 0x35, 0x5E, 0xF6, 0x1D, 0x89, 0x1D, 0xF1, 0xC7, 0x94, 0x23, 0x1C, 0x16, 0x2D, 0xD2, 0x41, 0x64, -+ 0xB5, 0x34, 0xA9, 0xD4, 0x84, 0x67, 0xCD, 0xC3, 0x23, 0x62, 0x4C, 0x2F, 0x95, 0xD4, 0x40, 0x2F, 0xF9, 0xD6, 0x6A, 0xB1, 0x19, 0x1A, 0x81, 0x24, 0x14, 0x4A, 0xFA, 0x35, 0xD4, 0xE3, 0x1D, 0xC8, -+ 0x6C, 0xAA, 0x79, 0x7C, 0x31, 0xF6, 0x8B, 0x85, 0x85, 0x4C, 0xD9, 0x59, 0xC4, 0xFA, 0xC5, 0xEC, 0x53, 0xB3, 0xB5, 0x6D, 0x37, 0x4B, 0x88, 0x8A, 0x9E, 0x97, 0x9A, 0x65, 0x76, 0xB6, 0x34, 0x5E, -+ 0xC8, 0x52, 0x2C, 0x96, 0x06, 0x99, 0x02, 0x81, 0xBF, 0x3E, 0xF7, 0xC5, 0x94, 0x5D, 0x10, 0xFD, 0x21, 0xA2, 0xA1, 0xD2, 0xE5, 0x40, 0x4C, 0x5C, 0xF2, 0x12, 0x20, 0x64, 0x13, 0x91, 0xB9, 0x8B, -+ 0xCF, 0x82, 0x53, 0x98, 0x30, 0x5B, 0x56, 0xE5, 0x8B, 0x61, 0x1F, 0xE5, 0x25, 0x32, 0x03, 0xE3, 0xDF, 0x0D, 0x22, 0x46, 0x6A, 0x73, 0xB3, 0xF0, 0xFB, 0xE4, 0x3B, 0x9A, 0x62, 0x92, 0x80, 0x91, -+ 0x89, 0x8B, 0x8A, 0x0E, 0x5B, 0x26, 0x9D, 0xB5, 0x86, 0xB0, 0xE4, 0xDD, 0xEF, 0x50, 0xD6, 0x82, 0xA1, 0x2D, 0x2C, 0x1B, 0xE8, 0x24, 0x14, 0x9A, 0xA2, 0x54, 0xC6, 0x38, 0x1B, 0xB4, 0x12, 0xD7, -+ 0x7C, 0x3F, 0x9A, 0xA9, 0x02, 0xB6, 0x88, 0xC8, 0x17, 0x15, 0xA5, 0x9C, 0x83, 0x95, 0x58, 0x55, 0x6D, 0x35, 0xED, 0x4F, 0xC8, 0x3B, 0x4A, 0xB1, 0x81, 0x81, 0xF4, 0x0F, 0x73, 0xDC, 0xD7, 0x68, -+ 0x60, 0xD8, 0xD8, 0xBF, 0x94, 0x52, 0x02, 0x37, 0xC2, 0xAC, 0x0E, 0x46, 0x3B, 0xA0, 0x9E, 0x3C, 0x97, 0x82, 0x38, 0x0D, 0xC0, 0x7F, 0xE4, 0xFC, 0xBA, 0x34, 0x0C, 0xC2, 0x00, 0x34, 0x39, 0xFD, -+ 0x23, 0x14, 0x61, 0x06, 0x38, 0x07, 0x0D, 0x6C, 0x9E, 0xEA, 0x0A, 0x70, 0xBA, 0xE8, 0x3B, 0x5D, 0x5D, 0x3C, 0x5D, 0x3F, 0xDE, 0x26, 0xDD, 0x01, 0x60, 0x6C, 0x8C, 0x52, 0x01, 0x58, 0xE7, 0xE5, -+ 0x10, 0x40, 0x20, 0xF2, 0x48, 0xCE, 0xAA, 0x66, 0x64, 0x57, 0xC1, 0x0A, 0xEB, 0xF0, 0x68, 0xF8, 0xA3, 0xBD, 0x5C, 0xE7, 0xB5, 0x2C, 0x6A, 0xF0, 0xAB, 0xD5, 0x94, 0x4A, 0xF1, 0xAD, 0x47, 0x52, -+ 0xC9, 0x11, 0x39, 0x76, 0x08, 0x3C, 0x03, 0xB6, 0xC3, 0x4E, 0x1D, 0x47, 0xED, 0x69, 0x64, 0x4C, 0xAD, 0x78, 0x2C, 0x2F, 0x7D, 0x05, 0xF8, 0xA1, 0x48, 0x96, 0x1D, 0x96, 0x5F, 0xA2, 0xE1, 0x72, -+ 0x3A, 0x8D, 0xDE, 0xBC, 0x22, 0xA9, 0x0C, 0xD7, 0x83, 0xDD, 0x1F, 0x4D, 0xB3, 0x8F, 0xB9, 0xAE, 0x5A, 0x67, 0x14, 0xB3, 0xD9, 0x46, 0x78, 0x16, 0x43, 0xD3, 0x17, 0xB7, 0xDD, 0x79, 0x38, 0x1C, -+ 0xF7, 0x89, 0xA9, 0x58, 0x8B, 0xB3, 0xE1, 0x93, 0xB9, 0x2A, 0x0B, 0x60, 0xD6, 0xB0, 0x7D, 0x04, 0x7F, 0x69, 0x84, 0xB0, 0x60, 0x9E, 0xC5, 0x75, 0x43, 0xC3, 0x94, 0xCA, 0x8D, 0x5E, 0x5B, 0xCC, -+ 0x2A, 0x73, 0x1A, 0x79, 0x61, 0x8B, 0xD1, 0xE2, 0xE0, 0xDA, 0x87, 0x04, 0xAF, 0x98, 0xF2, 0x0F, 0x5F, 0x8F, 0x54, 0x52, 0xDD, 0xF6, 0x46, 0xB9, 0x5B, 0x34, 0x1D, 0xD7, 0xF0, 0xD2, 0xCC, 0x1F, -+ 0xA1, 0x5B, 0xD9, 0x89, 0x5C, 0xD5, 0xB6, 0x5A, 0xA1, 0xCB, 0x94, 0xB5, 0xE2, 0xE7, 0x88, 0xFD, 0xA9, 0x82, 0x5B, 0x65, 0x66, 0x39, 0x19, 0x3D, 0x98, 0x32, 0x81, 0x54, 0xA4, 0xF2, 0xC3, 0x54, -+ 0x95, 0xA3, 0x8B, 0x6E, 0xA0, 0xD2, 0xFF, 0xAA, 0xA3, 0x5D, 0xF9, 0x2C, 0x20, 0x3C, 0x7F, 0x31, 0xCB, 0xBC, 0xA7, 0xBD, 0x03, 0xC3, 0xC2, 0x30, 0x21, 0x90, 0xCE, 0xCD, 0x16, 0x1F, 0xD4, 0x92, -+ 0x37, 0xE4, 0xF8, 0x39, 0xE3, 0xF3, -+ }, -+ .msg_len = 33, -+ .msg = { 0xD8, 0x1C, 0x4D, 0x8D, 0x73, 0x4F, 0xCB, 0xFB, 0xEA, 0xDE, 0x3D, 0x3F, 0x8A, 0x03, 0x9F, 0xAA, 0x2A, 0x2C, 0x99, 0x57, 0xE8, 0x35, 0xAD, 0x55, 0xB2, 0x2E, 0x75, 0xBF, 0x57, 0xBB, 0x55, 0x6A, -+ 0xC8 }, -+ .sig_len = 2420, -+ .sig = { -+ 0xAF, 0x59, 0x20, 0x77, 0x46, 0x03, 0xD2, 0x0E, 0x98, 0xA7, 0x9A, 0xA3, 0xAB, 0xFA, 0x32, 0xB6, 0xE2, 0x25, 0x19, 0xE6, 0x73, 0xE3, 0x7A, 0xC4, 0xAC, 0x73, 0xFE, 0x85, 0x34, 0x1E, 0x2C, 0x29, -+ 0x23, 0xC1, 0x99, 0x2E, 0x1B, 0x0B, 0xBE, 0x38, 0x73, 0xD7, 0xC8, 0xFC, 0x56, 0x62, 0xF2, 0x07, 0xBF, 0x58, 0xEA, 0x38, 0x1C, 0xD4, 0xA3, 0xA0, 0xC0, 0x62, 0xDE, 0xC4, 0x5B, 0xDA, 0xF8, 0xBA, -+ 0x0A, 0xA5, 0x2B, 0xEF, 0x6F, 0xA1, 0x4F, 0x3F, 0x6C, 0xF2, 0x8F, 0x76, 0x20, 0xBF, 0x94, 0xA9, 0x2C, 0xC2, 0x7D, 0x04, 0x54, 0x14, 0xA6, 0x4D, 0x65, 0xC0, 0x14, 0x96, 0x30, 0x52, 0x80, 0x24, -+ 0x28, 0xBF, 0x39, 0x87, 0xA2, 0xD4, 0x75, 0x16, 0xCA, 0x5C, 0x78, 0xAA, 0xB9, 0x6B, 0x7B, 0xE1, 0x1B, 0xCA, 0x5F, 0x2C, 0x5A, 0x26, 0xF3, 0xFC, 0xE3, 0xA2, 0x6E, 0x8E, 0x09, 0xA2, 0x73, 0x8F, -+ 0x38, 0x6F, 0x75, 0xD4, 0x48, 0xF9, 0x37, 0xEF, 0x19, 0xA8, 0x46, 0xBD, 0x4D, 0xD9, 0x49, 0xCA, 0xAF, 0x36, 0xDB, 0x56, 0x29, 0x88, 0x4A, 0xF5, 0x3A, 0x02, 0x3E, 0x3F, 0x18, 0x0F, 0xE4, 0xC0, -+ 0xFA, 0xFF, 0x7B, 0xE5, 0xDF, 0xE4, 0xE8, 0x9A, 0xDE, 0x30, 0x95, 0xA6, 0x56, 0x00, 0x42, 0x14, 0x61, 0xAD, 0x08, 0xC1, 0x29, 0xD6, 0xCE, 0xA8, 0x51, 0xBB, 0x39, 0xC0, 0xD7, 0xA7, 0xD1, 0x51, -+ 0x40, 0x56, 0x89, 0xA0, 0x91, 0xFA, 0x4D, 0xEB, 0xAC, 0x37, 0x3C, 0xF5, 0x4A, 0xE0, 0x78, 0xF0, 0xAF, 0x75, 0x57, 0xBB, 0xC6, 0xF0, 0x6A, 0x53, 0x5A, 0xE8, 0x94, 0x9E, 0x0C, 0x65, 0x30, 0x8A, -+ 0x59, 0x84, 0x00, 0x72, 0x37, 0x52, 0x95, 0x80, 0x2D, 0x0E, 0x2C, 0xE9, 0xA3, 0xDA, 0x98, 0x42, 0x6A, 0x00, 0xFF, 0x03, 0xFE, 0x80, 0x21, 0x8C, 0x0E, 0xEC, 0x8E, 0xFE, 0x58, 0x1C, 0xB9, 0xCC, -+ 0x9A, 0x7D, 0x66, 0xB2, 0x06, 0x45, 0xA8, 0xCD, 0x04, 0x90, 0xD3, 0xCE, 0x4F, 0x7E, 0x6F, 0xEA, 0xE9, 0xC9, 0xEB, 0x7A, 0x57, 0xF9, 0x64, 0xD0, 0xEB, 0xC7, 0xC9, 0x0B, 0x7A, 0x9F, 0x86, 0x30, -+ 0x0B, 0x3E, 0x80, 0x95, 0xE6, 0x4D, 0x12, 0x94, 0xCF, 0xC4, 0xB4, 0xD9, 0xE2, 0x72, 0xE8, 0xFA, 0x8D, 0xB5, 0x70, 0x7D, 0x70, 0x04, 0xAF, 0x22, 0xDB, 0xFF, 0x9C, 0xFD, 0x48, 0x63, 0xDF, 0x57, -+ 0x3F, 0xE0, 0x04, 0x34, 0x1D, 0xA3, 0xCD, 0x4A, 0x30, 0x82, 0x53, 0x2C, 0x26, 0x20, 0x45, 0x5F, 0xA3, 0x7C, 0x56, 0x2B, 0xAF, 0xD5, 0x68, 0x4E, 0xA1, 0x28, 0xAF, 0xC7, 0x9E, 0x01, 0xFC, 0x9B, -+ 0x31, 0xE8, 0x43, 0x3B, 0xAD, 0x7C, 0x02, 0x9F, 0x2F, 0x13, 0xCC, 0x10, 0x59, 0x2D, 0x23, 0x32, 0xE3, 0xE0, 0x8B, 0x80, 0xD3, 0x50, 0x46, 0x3D, 0xE7, 0x27, 0x50, 0xB1, 0xF8, 0x06, 0xF4, 0x93, -+ 0xE1, 0x43, 0xBD, 0x5F, 0xCA, 0x7D, 0x16, 0x98, 0x08, 0x1B, 0x31, 0xBF, 0x87, 0x6B, 0x2A, 0x1B, 0xC9, 0xDF, 0x50, 0x95, 0x2D, 0x13, 0xB6, 0xC1, 0x32, 0x1B, 0x11, 0x11, 0x17, 0x21, 0x45, 0xA6, -+ 0x27, 0xAE, 0x0B, 0x44, 0x27, 0xB9, 0x89, 0x75, 0xCB, 0xFF, 0xF7, 0xD6, 0x82, 0x75, 0x75, 0x4B, 0x45, 0xB6, 0x82, 0xD7, 0x09, 0xE1, 0x68, 0x52, 0x2E, 0x84, 0xFE, 0xA7, 0xDD, 0x3B, 0xB0, 0xF4, -+ 0x15, 0x05, 0xFF, 0x71, 0x92, 0x64, 0x31, 0xD1, 0xA9, 0x0D, 0x4C, 0xBF, 0x9A, 0x52, 0x7A, 0xD4, 0xE2, 0x84, 0x97, 0x6F, 0xFF, 0x8B, 0xD9, 0xD6, 0x22, 0x4A, 0x4F, 0x26, 0x03, 0x91, 0xA9, 0x87, -+ 0xFB, 0x6D, 0xA6, 0xEE, 0x42, 0xC2, 0xA4, 0x90, 0x0F, 0x40, 0x7C, 0xE1, 0xF0, 0x2E, 0x32, 0x24, 0x75, 0xD3, 0x13, 0xFB, 0xEB, 0xB6, 0x8C, 0x2E, 0x05, 0x73, 0x08, 0x09, 0x44, 0x8A, 0x74, 0x28, -+ 0xA5, 0x94, 0x01, 0x39, 0xEB, 0xDF, 0x1B, 0x55, 0x56, 0xFC, 0xC5, 0xD4, 0x2E, 0x1A, 0x13, 0xF3, 0x22, 0x30, 0xCB, 0x6F, 0x07, 0x24, 0x83, 0x1D, 0x0D, 0x07, 0x1B, 0xBA, 0x5A, 0x67, 0x04, 0x80, -+ 0x6F, 0x47, 0x5B, 0x74, 0xBA, 0x91, 0xB6, 0xE3, 0x85, 0xD4, 0x86, 0x20, 0x95, 0x8D, 0x0A, 0xB1, 0xBF, 0x2B, 0x18, 0x4E, 0x10, 0xF3, 0xE7, 0x53, 0xB7, 0x13, 0x37, 0xBE, 0x9E, 0xB6, 0x53, 0x78, -+ 0x67, 0x85, 0xB4, 0x3A, 0xC7, 0xE5, 0xC4, 0x94, 0xAC, 0x1B, 0xCB, 0x04, 0x3D, 0x46, 0x14, 0x25, 0xB3, 0x60, 0x98, 0xAC, 0x93, 0x05, 0x5A, 0x01, 0x05, 0xAB, 0x85, 0x23, 0xB6, 0x1D, 0x02, 0x4A, -+ 0x6E, 0x9B, 0x56, 0xA4, 0x2D, 0x3C, 0x04, 0x72, 0x65, 0x12, 0xAE, 0x4C, 0xFE, 0x05, 0x71, 0x04, 0x46, 0xB0, 0x6F, 0x69, 0x42, 0x34, 0xEE, 0x4F, 0xA8, 0xFE, 0xED, 0xDD, 0xC5, 0xF2, 0x8A, 0x65, -+ 0xED, 0xE2, 0xEB, 0x58, 0xE9, 0x65, 0xFE, 0x36, 0x27, 0xA5, 0x71, 0xBC, 0x45, 0xB3, 0x97, 0xED, 0x09, 0x2A, 0xB4, 0xBE, 0x00, 0x04, 0x17, 0x29, 0xC4, 0xD1, 0x92, 0xFE, 0x30, 0x67, 0x82, 0x79, -+ 0xD2, 0x23, 0xA8, 0x48, 0xCF, 0x43, 0x66, 0xE9, 0x2B, 0x3F, 0x68, 0xDE, 0xE9, 0x7C, 0x9B, 0x4A, 0x7F, 0xF2, 0x2F, 0x93, 0x7B, 0xE6, 0xC5, 0x66, 0x39, 0x96, 0x1D, 0xB2, 0x9F, 0xA3, 0xCF, 0xEC, -+ 0xFF, 0xF2, 0x93, 0x14, 0x08, 0x86, 0xFF, 0xB9, 0x2E, 0xBC, 0x79, 0xDA, 0xB5, 0x9C, 0xEA, 0xF8, 0x69, 0xC6, 0x4F, 0x8E, 0xAF, 0x58, 0x5C, 0xE9, 0x7D, 0xD6, 0xB7, 0x8F, 0x89, 0x27, 0x72, 0xDB, -+ 0x88, 0xA9, 0x58, 0xCF, 0x0A, 0xB5, 0x57, 0xA7, 0xFA, 0xA8, 0x3F, 0xE6, 0x21, 0x47, 0x7E, 0x2B, 0x84, 0x49, 0x7A, 0xB5, 0xA8, 0xEC, 0xF4, 0xA7, 0xBD, 0x32, 0xDF, 0xB9, 0x02, 0xF0, 0x5D, 0x2C, -+ 0xA3, 0x10, 0x47, 0xD0, 0xF1, 0x91, 0x9A, 0xDD, 0xE1, 0xEE, 0x6D, 0xFD, 0x58, 0xE5, 0x9B, 0xC4, 0xDA, 0xB3, 0xCC, 0xBB, 0xA3, 0x6A, 0xAA, 0xF6, 0xAF, 0xCC, 0xC7, 0xB0, 0x95, 0xCA, 0x94, 0xA1, -+ 0x95, 0xBE, 0x9A, 0x28, 0x95, 0x26, 0xB5, 0x88, 0xC3, 0xA9, 0xC5, 0x68, 0x76, 0xFC, 0x41, 0x5D, 0x52, 0x1D, 0x44, 0x2B, 0xAC, 0x02, 0x98, 0xD3, 0x02, 0x41, 0x9A, 0xD5, 0x27, 0xDA, 0x24, 0x9C, -+ 0x2A, 0x66, 0x0C, 0xD0, 0x64, 0x21, 0x3F, 0xFA, 0xD5, 0x63, 0x18, 0x3F, 0x37, 0x97, 0x25, 0x78, 0xEE, 0xB9, 0xF7, 0x0A, 0xC6, 0x7A, 0xEE, 0x6C, 0xC2, 0xB7, 0x1F, 0x28, 0x3A, 0x95, 0x93, 0x0B, -+ 0x55, 0x47, 0x38, 0x55, 0x57, 0x91, 0xC2, 0x5E, 0x7A, 0x39, 0x9E, 0x68, 0x56, 0x36, 0xD5, 0x8D, 0x69, 0xCB, 0x6B, 0xE7, 0x93, 0xB4, 0x5C, 0x19, 0x69, 0xE7, 0xD5, 0x61, 0x56, 0x27, 0xEB, 0xC3, -+ 0x2E, 0xED, 0x45, 0x44, 0x0F, 0x87, 0x88, 0x0D, 0x28, 0x29, 0xFA, 0x4F, 0xC8, 0x71, 0x86, 0x61, 0x64, 0xD2, 0x59, 0xED, 0x95, 0xD2, 0x73, 0x18, 0x71, 0x01, 0x7F, 0xF5, 0x18, 0x94, 0x06, 0x6F, -+ 0xAE, 0x1F, 0xFA, 0x6F, 0x4B, 0x4A, 0x6F, 0x84, 0xFC, 0xFF, 0xDA, 0x09, 0xE7, 0x18, 0xFA, 0x17, 0x13, 0x5E, 0xDB, 0x3F, 0x48, 0x55, 0x8D, 0x5B, 0xA6, 0x7F, 0x9E, 0x6F, 0x09, 0x00, 0x34, 0x0B, -+ 0xD0, 0x4D, 0xFE, 0x59, 0xB7, 0xBD, 0x67, 0x74, 0x58, 0x84, 0xFB, 0x84, 0xAE, 0x3F, 0x8E, 0xE7, 0x63, 0xD2, 0x02, 0x74, 0x36, 0x52, 0xD4, 0xF7, 0x33, 0x34, 0x50, 0x58, 0x04, 0x90, 0xB9, 0xC7, -+ 0x44, 0x93, 0x5B, 0x19, 0xC1, 0xD5, 0xFB, 0x0D, 0xB5, 0xFB, 0xB4, 0x61, 0x41, 0x13, 0x62, 0x83, 0x80, 0x37, 0xEB, 0x7E, 0xC3, 0xF6, 0x3F, 0x26, 0xC8, 0x93, 0xE7, 0xCC, 0x1C, 0x3B, 0x3F, 0x47, -+ 0x67, 0xAB, 0xAE, 0x00, 0xFE, 0xB7, 0xBB, 0x99, 0xB1, 0x42, 0x0B, 0xB2, 0x9E, 0xA6, 0x14, 0x74, 0x78, 0x96, 0xD9, 0xED, 0xCF, 0x81, 0x07, 0xFE, 0x50, 0x4C, 0x9C, 0x30, 0x8A, 0x82, 0x64, 0xDA, -+ 0xCE, 0x31, 0x8D, 0x87, 0xCF, 0xE4, 0x76, 0x18, 0x03, 0xE9, 0xA6, 0x0D, 0xEF, 0xA6, 0x14, 0x4A, 0xAB, 0xC1, 0xF1, 0x0A, 0x45, 0xB1, 0x40, 0xDE, 0xD7, 0x54, 0xE7, 0x35, 0x86, 0xC4, 0x67, 0xBB, -+ 0x7B, 0xF1, 0x9E, 0xDE, 0xF2, 0x5B, 0xE0, 0xC6, 0x5E, 0x93, 0xC5, 0xE5, 0xEB, 0x8F, 0x88, 0x0C, 0xCE, 0x4A, 0x85, 0x87, 0x57, 0xF8, 0xFF, 0x56, 0x06, 0x2B, 0x10, 0x67, 0xF4, 0x10, 0x6F, 0x76, -+ 0xB7, 0x00, 0x7F, 0x6E, 0xA6, 0xF9, 0x45, 0x04, 0x7E, 0x85, 0xBD, 0x0F, 0xAD, 0x9D, 0x26, 0x99, 0x4F, 0x67, 0x8A, 0x06, 0x12, 0xB8, 0x7C, 0xCF, 0x9C, 0x0C, 0xF9, 0xA4, 0x33, 0xD8, 0x89, 0xC9, -+ 0x6E, 0x4C, 0x12, 0xBE, 0x37, 0x22, 0x77, 0x00, 0x5B, 0x06, 0xAD, 0x12, 0x71, 0x05, 0xD1, 0x6D, 0x8F, 0xB1, 0x42, 0xAE, 0xAE, 0x53, 0x73, 0xAB, 0xD6, 0x1D, 0x9A, 0xDC, 0xFC, 0x55, 0x50, 0xD6, -+ 0x23, 0xCA, 0x3B, 0x88, 0x24, 0xB0, 0xE2, 0xE0, 0x8C, 0x2B, 0xF4, 0xE2, 0x84, 0x1E, 0xAC, 0x4C, 0x5D, 0xC5, 0x6C, 0xF8, 0x95, 0x4C, 0xF2, 0x07, 0xC2, 0x63, 0xF2, 0x7C, 0x9F, 0x30, 0x9F, 0x10, -+ 0x30, 0x7C, 0x0D, 0x84, 0xA6, 0x58, 0x78, 0x42, 0x50, 0x31, 0x37, 0x5D, 0xD8, 0x10, 0xD2, 0xD7, 0xE5, 0x10, 0x98, 0xA3, 0x81, 0x43, 0x50, 0x79, 0x5C, 0x4A, 0x07, 0x7F, 0xA4, 0x0D, 0xD4, 0x4F, -+ 0x0F, 0xA7, 0x51, 0x0F, 0x7C, 0x3F, 0x63, 0x14, 0x07, 0xCF, 0x34, 0xF6, 0x04, 0xC7, 0xB3, 0x35, 0x63, 0x2A, 0x20, 0xD2, 0xAD, 0x41, 0x9B, 0xD7, 0xCC, 0x6D, 0x42, 0x42, 0xB1, 0xC6, 0x6C, 0x35, -+ 0xE5, 0xA5, 0xED, 0xCC, 0xB1, 0x3C, 0xA3, 0x7D, 0x3B, 0x50, 0x46, 0x5F, 0x3B, 0x4A, 0xAF, 0xF7, 0xE3, 0x16, 0x1E, 0x79, 0x36, 0x08, 0x8A, 0xE0, 0x84, 0x01, 0xFD, 0x2C, 0x37, 0xD6, 0x7A, 0x2F, -+ 0xF9, 0x1D, 0x3E, 0x6F, 0x08, 0x68, 0x6D, 0x64, 0xBC, 0x2F, 0xC6, 0xC5, 0x71, 0x06, 0xE4, 0x9F, 0xA3, 0x84, 0xAC, 0x22, 0x21, 0x9F, 0x07, 0xEE, 0x89, 0x96, 0xCA, 0x3D, 0xFF, 0x59, 0xDC, 0xC5, -+ 0x09, 0x2A, 0x4B, 0xAD, 0xBE, 0x87, 0xAE, 0xDE, 0x7F, 0x69, 0xA0, 0x4C, 0x79, 0xB3, 0x3B, 0xDF, 0x35, 0xD4, 0xA0, 0xE4, 0xCB, 0x4B, 0x55, 0x01, 0x9C, 0xB0, 0xBF, 0x27, 0x52, 0x95, 0xB9, 0x3B, -+ 0xDA, 0xBE, 0xA5, 0x16, 0xCA, 0x2B, 0x61, 0x6A, 0x56, 0x91, 0x86, 0x00, 0xB7, 0x24, 0xBE, 0x7A, 0x01, 0xEC, 0x4E, 0xF5, 0x43, 0x12, 0xB3, 0x0D, 0x66, 0xF5, 0x07, 0x81, 0x5F, 0x27, 0x80, 0xFF, -+ 0xEE, 0x7C, 0x30, 0xF8, 0x42, 0x5A, 0x92, 0x25, 0x2C, 0xE5, 0x50, 0xFA, 0xB4, 0xE9, 0x02, 0xE7, 0xB3, 0x82, 0xD4, 0x6D, 0xBD, 0x20, 0xEF, 0xE1, 0xBB, 0x0E, 0xF8, 0xA4, 0x96, 0x87, 0x3C, 0x09, -+ 0xC4, 0xCE, 0xB0, 0x30, 0x3C, 0x7F, 0x1D, 0xAB, 0xA0, 0x10, 0x2D, 0xE9, 0x41, 0x90, 0xB6, 0xAC, 0x6D, 0xC8, 0x10, 0xF7, 0x2B, 0xCA, 0x3A, 0xA2, 0x92, 0xFF, 0x38, 0xBD, 0x51, 0xA7, 0xFA, 0xB8, -+ 0x50, 0x9E, 0xC4, 0xFB, 0xE0, 0xEA, 0xA3, 0xC9, 0x86, 0x16, 0x6A, 0x67, 0x4B, 0x78, 0x71, 0x15, 0x5C, 0x34, 0x8C, 0x47, 0x7E, 0xF8, 0xCE, 0xDC, 0x83, 0x2B, 0x5A, 0xBE, 0xE7, 0x1A, 0x8D, 0x18, -+ 0xD0, 0x6D, 0xD0, 0xF5, 0x22, 0x11, 0x60, 0xAB, 0xEB, 0x71, 0xE6, 0xE8, 0x2C, 0xFA, 0xBF, 0x73, 0x1E, 0xA3, 0x51, 0x5A, 0x76, 0xEF, 0x07, 0xB2, 0xC1, 0x6C, 0x63, 0xB3, 0x7F, 0x7A, 0xB7, 0x3B, -+ 0x67, 0xF0, 0x05, 0x92, 0x9A, 0x75, 0x3E, 0x45, 0x3B, 0x93, 0x0C, 0x0A, 0xF4, 0x32, 0x27, 0x7F, 0xD7, 0x7D, 0x8A, 0x1E, 0xB8, 0x02, 0x2C, 0xDE, 0x96, 0x65, 0x76, 0x3B, 0x01, 0x4F, 0x0A, 0x67, -+ 0x2A, 0x04, 0x16, 0x0B, 0x0A, 0x06, 0xF5, 0x54, 0x0F, 0x4C, 0x26, 0x4B, 0x7F, 0x22, 0x74, 0x06, 0x90, 0xA2, 0x35, 0x2D, 0xC8, 0x63, 0xB5, 0x88, 0x30, 0x3A, 0xD5, 0x1F, 0x0A, 0xE1, 0x62, 0xBF, -+ 0x79, 0x79, 0x7F, 0x07, 0xB5, 0x34, 0x50, 0x1C, 0xBB, 0xFD, 0xB7, 0x13, 0xA7, 0x24, 0xAA, 0x98, 0xE1, 0x95, 0x32, 0x18, 0x71, 0x80, 0xCC, 0xFA, 0xDC, 0x6E, 0xBE, 0x31, 0x42, 0xFA, 0x7D, 0xB6, -+ 0x6C, 0xD4, 0xDE, 0x7B, 0x9F, 0xBD, 0x4C, 0x82, 0x35, 0x68, 0x6D, 0xB6, 0x8C, 0xAF, 0x48, 0x9A, 0xFA, 0x4E, 0x1E, 0x87, 0xAE, 0xF0, 0xCE, 0xFD, 0x80, 0x37, 0xE3, 0xA5, 0x78, 0xEE, 0x62, 0xEB, -+ 0x7F, 0x94, 0xED, 0x5B, 0xC0, 0xB5, 0x8E, 0xEA, 0x4B, 0x4C, 0x45, 0xFC, 0x56, 0xD3, 0x1D, 0x29, 0x94, 0x4D, 0x09, 0x5A, 0xC9, 0x6C, 0x29, 0x08, 0x3D, 0xA2, 0xC7, 0x71, 0x81, 0xD9, 0x7A, 0x55, -+ 0xFE, 0x6E, 0x90, 0x3A, 0x2F, 0x27, 0x83, 0xDE, 0x0B, 0xAA, 0x5F, 0x47, 0xD7, 0x04, 0x78, 0x5C, 0x33, 0xE8, 0xD5, 0xC8, 0x7E, 0xD6, 0x1E, 0x65, 0x45, 0x91, 0x67, 0x31, 0x0E, 0xB7, 0xA9, 0x95, -+ 0x74, 0xEF, 0x81, 0x9A, 0xE9, 0x16, 0x1A, 0x3B, 0xD0, 0x96, 0x34, 0x80, 0x3D, 0x9E, 0x1E, 0x4E, 0xC7, 0x38, 0x6D, 0x79, 0x46, 0x98, 0x45, 0x17, 0x21, 0x3A, 0xB9, 0xCF, 0x66, 0xAE, 0xA5, 0x51, -+ 0xCC, 0x45, 0x7C, 0x39, 0xF8, 0x6A, 0xF2, 0x94, 0xCF, 0x7B, 0x07, 0x3F, 0x56, 0x3E, 0xD4, 0xDA, 0xB9, 0x41, 0x9B, 0xDF, 0x00, 0x4B, 0xD0, 0x5C, 0x92, 0xB4, 0xE8, 0x0E, 0xC3, 0xCF, 0xEA, 0xC9, -+ 0x7E, 0x1D, 0xDA, 0x55, 0x4F, 0xDA, 0x62, 0x5C, 0x4B, 0x9B, 0x03, 0x9B, 0xAA, 0x7C, 0x5A, 0x2F, 0x6F, 0x97, 0x05, 0x77, 0x92, 0x48, 0x3C, 0xF5, 0xF8, 0x52, 0xD4, 0xC3, 0xAC, 0x71, 0xAD, 0x50, -+ 0xF7, 0x79, 0x95, 0x3D, 0xCF, 0xE2, 0xF6, 0x3E, 0xD2, 0x35, 0xD8, 0xE1, 0xD5, 0x34, 0x5D, 0x6C, 0x6D, 0xF0, 0x55, 0x5C, 0xC2, 0x63, 0x1D, 0xEA, 0xD9, 0xB7, 0x14, 0xBC, 0x4C, 0x16, 0x50, 0x1E, -+ 0x01, 0x26, 0x13, 0x81, 0xF3, 0x67, 0x97, 0x15, 0x34, 0x51, 0x23, 0x38, 0x8C, 0x85, 0x2D, 0x57, 0xDC, 0xF1, 0x94, 0x1D, 0x09, 0x11, 0xD4, 0x9F, 0xEA, 0x71, 0x43, 0xFD, 0x2F, 0xC3, 0x43, 0xA5, -+ 0x07, 0x5B, 0x64, 0xCC, 0xA4, 0x82, 0x91, 0xDC, 0x28, 0xB8, 0x3F, 0x76, 0x07, 0x45, 0x89, 0xEA, 0xB2, 0x17, 0xC7, 0x84, 0x78, 0x40, 0x65, 0x2C, 0x0E, 0x3A, 0xE2, 0x78, 0xB3, 0xB6, 0xFB, 0x0D, -+ 0x80, 0x0C, 0x5E, 0x7D, 0xB7, 0x9D, 0x5C, 0xB9, 0xCC, 0x1A, 0x87, 0x45, 0x0C, 0x00, 0xB7, 0x67, 0x78, 0x12, 0xD2, 0x2E, 0xE2, 0x0F, 0xDE, 0x8C, 0x17, 0x53, 0xA7, 0xFB, 0x93, 0xBA, 0x8B, 0xBB, -+ 0x85, 0x95, 0xA6, 0x39, 0x3D, 0xF5, 0x4A, 0xA9, 0xCD, 0xB6, 0xE0, 0x87, 0x9A, 0x26, 0xE4, 0x9B, 0xD3, 0xB0, 0x15, 0x13, 0xC6, 0x05, 0x3A, 0x07, 0x46, 0xC8, 0x59, 0x6C, 0xE5, 0xE5, 0xB2, 0x25, -+ 0xCF, 0xCA, 0x26, 0xAB, 0x8B, 0xF1, 0x2F, 0x1F, 0xE0, 0xA6, 0x47, 0xA9, 0xE4, 0x45, 0x30, 0x39, 0xA1, 0x22, 0x61, 0x94, 0xC4, 0x6E, 0x8B, 0x98, 0xAC, 0xD7, 0x10, 0xF1, 0x8F, 0xB7, 0xEC, 0x05, -+ 0x47, 0x6C, 0x1C, 0xD8, 0xFC, 0x31, 0x12, 0xCC, 0xDD, 0xB1, 0x58, 0x2B, 0x88, 0x17, 0xC1, 0x8F, 0xE3, 0x15, 0x35, 0x3E, 0x7A, 0x47, 0xC8, 0x21, 0xE9, 0xEE, 0x3A, 0x43, 0xCA, 0xDE, 0x1B, 0x80, -+ 0xD9, 0x2A, 0x0A, 0xE8, 0xDC, 0xEB, 0x4D, 0xFF, 0x76, 0x6A, 0x54, 0xDF, 0x36, 0x65, 0xFE, 0xFE, 0x3C, 0x25, 0x2B, 0x72, 0xDA, 0xD7, 0xB1, 0xE3, 0x35, 0x9E, 0x7F, 0xA2, 0x55, 0x62, 0xC3, 0xE3, -+ 0x9D, 0xB5, 0x21, 0xCE, 0x18, 0x74, 0x11, 0x1F, 0xB0, 0x90, 0xDB, 0xD3, 0x8B, 0x31, 0x80, 0xAD, 0x03, 0x4B, 0x57, 0xB0, 0x31, 0xDC, 0x4D, 0xD6, 0xAF, 0x7C, 0x1A, 0x8A, 0xF3, 0xF6, 0xCE, 0x7E, -+ 0xDB, 0x1A, 0x9E, 0x4B, 0x6D, 0x4A, 0x59, 0x20, 0xE3, 0x62, 0x08, 0x18, 0x82, 0x06, 0x59, 0x76, 0x2E, 0xF7, 0xA4, 0x24, 0x3F, 0x51, 0xDF, 0x2D, 0x8A, 0x90, 0x07, 0x37, 0xD5, 0x81, 0x05, 0x69, -+ 0x9B, 0x4E, 0x10, 0xCB, 0xCB, 0x35, 0x9C, 0x7F, 0x3A, 0x40, 0x07, 0x69, 0x7C, 0x48, 0x20, 0x50, 0xEC, 0x33, 0xCF, 0x80, 0x41, 0x91, 0x6A, 0x3B, 0x91, 0x9A, 0x50, 0xD9, 0x6E, 0xF0, 0xF5, 0x89, -+ 0xFD, 0x45, 0x56, 0xF3, 0x0D, 0xBD, 0xD9, 0x42, 0xEA, 0xB7, 0x9D, 0xFA, 0x97, 0xC0, 0x7E, 0x30, 0x24, 0x70, 0x74, 0x35, 0x2E, 0x1B, 0xF9, 0x8E, 0x34, 0x9C, 0xC7, 0xEF, 0xA5, 0xA1, 0xB8, 0xFC, -+ 0xE4, 0xF1, 0x8F, 0x1F, 0xAF, 0x6F, 0x07, 0xC9, 0x9C, 0x32, 0x14, 0x48, 0xB0, 0x39, 0x5C, 0x8A, 0x9C, 0xBC, 0x46, 0x64, 0x12, 0xF8, 0x9C, 0x1A, 0x98, 0xBF, 0x57, 0x15, 0x84, 0x28, 0x44, 0xF0, -+ 0xE8, 0x23, 0x6F, 0xA4, 0x69, 0x6C, 0x46, 0x58, 0xB8, 0xFD, 0xE4, 0x42, 0x5D, 0x09, 0xD6, 0x7A, 0x38, 0xAC, 0x72, 0x58, 0xE5, 0xD5, 0x96, 0x6F, 0x2D, 0x3F, 0xF6, 0x6A, 0x0C, 0x0C, 0xE7, 0x6E, -+ 0x7F, 0x6B, 0x81, 0xA1, 0xBC, 0xD0, 0x47, 0xFD, 0x3A, 0x20, 0x5B, 0xF0, 0xCC, 0xAE, 0xA3, 0xB1, 0x10, 0x79, 0x90, 0x9C, 0x6C, 0xE5, 0x69, 0x8F, 0x32, 0xE1, 0xF3, 0x40, 0x96, 0x58, 0xFF, 0xA0, -+ 0x1E, 0xAE, 0xCB, 0x4A, 0xE2, 0xB0, 0x92, 0xB7, 0x89, 0x89, 0xDA, 0xAD, 0x66, 0x23, 0xBB, 0x11, 0xF4, 0x9F, 0x0F, 0x8F, 0x86, 0x99, 0xEC, 0x05, 0x66, 0x15, 0x02, 0xFF, 0xCA, 0xD0, 0x3C, 0xF4, -+ 0x15, 0x19, 0x1A, 0x22, 0x2D, 0x3C, 0x4C, 0x7B, 0x8A, 0xB0, 0xB5, 0xB9, 0xBB, 0xC2, 0xD9, 0xDC, 0xEF, 0xF7, 0x20, 0x2D, 0x3F, 0x42, 0x44, 0x49, 0x4F, 0x52, 0x53, 0x64, 0x66, 0x69, 0x74, 0xC4, -+ 0xD9, 0xE6, 0xF5, 0xFA, 0x00, 0x01, 0x04, 0x19, 0x27, 0x37, 0x3D, 0x5A, 0x76, 0x80, 0xB8, 0xC1, 0xC9, 0xFE, 0x20, 0x29, 0x38, 0x3B, 0x3C, 0x48, 0x4D, 0x56, 0x5F, 0x65, 0x79, 0x9D, 0x9E, 0xA6, -+ 0xA9, 0xAD, 0xD2, 0xDE, 0xE5, 0xE7, 0xF7, 0xF9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x24, 0x32, 0x48, -+ }, -+ }, -+ { -+ .name = "Dilithium Round 3, Level 3 (4-4) KAT 0", -+ .version = 0, -+ .keyform = CK_IBM_DILITHIUM_KEYFORM_ROUND3_44, -+ .rho_len = 32, -+ .rho = { -+ 0x1C, 0x0E, 0xE1, 0x11, 0x1B, 0x08, 0x00, 0x3F, 0x28, 0xE6, 0x5E, 0x8B, 0x3B, 0xDE, 0xB0, 0x37, 0xCF, 0x8F, 0x22, 0x1D, 0xFC, 0xDA, 0xF5, 0x95, 0x0E, 0xDB, 0x38, 0xD5, 0x06, 0xD8, 0x5B, 0xEF, -+ }, -+ .seed_len = 32, -+ .seed = { -+ 0x39, 0x4D, 0x16, 0x95, 0x05, 0x9D, 0xFF, 0x40, 0xAE, 0x25, 0x6C, 0x5D, 0x5E, 0xDA, 0xBF, 0xB6, 0x9F, 0x5F, 0x40, 0xF3, 0x7A, 0x58, 0x8F, 0x50, 0x53, 0x2C, 0xA4, 0x08, 0xA8, 0x16, 0x8A, 0xB1, -+ }, -+ .tr_len = 32, -+ .tr = { -+ 0x87, 0xD0, 0xAD, 0x11, 0x52, 0x21, 0x10, 0x93, 0x14, 0x94, 0xBF, 0x2C, 0xAE, 0xAE, 0x36, 0x97, 0x97, 0x11, 0xBC, 0x58, 0x5B, 0x32, 0xF0, 0x8C, 0x78, 0x49, 0x6F, 0x37, 0x9D, 0x60, 0x4D, 0x53, -+ }, -+ .s1_len = 384, -+ .s1 = { -+ 0xC0, 0xA6, 0x71, 0x1A, 0x96, 0x6C, 0x11, 0x31, 0x2A, 0xD9, 0xA8, 0x21, 0xD8, 0x08, 0x65, 0x42, 0xA6, 0x00, 0xA4, 0xB4, 0x2C, 0x19, 0x40, 0x72, 0x02, 0x42, 0x62, 0x81, 0x06, 0x21, 0x0A, 0x43, -+ 0x85, 0x23, 0x31, 0x70, 0x93, 0x08, 0x10, 0x8B, 0x18, 0x8C, 0x02, 0x24, 0x92, 0xC1, 0xB2, 0x84, 0x12, 0xC4, 0x21, 0x8B, 0x04, 0x21, 0x81, 0xC8, 0x61, 0x02, 0x48, 0x05, 0x9C, 0x92, 0x01, 0xC0, -+ 0x34, 0x88, 0x19, 0x32, 0x6C, 0x58, 0x20, 0x46, 0x89, 0x18, 0x68, 0xA2, 0xC2, 0x8D, 0x82, 0x34, 0x6A, 0x1C, 0x09, 0x42, 0x00, 0xA2, 0x8C, 0xE3, 0xA6, 0x49, 0x1C, 0x11, 0x2C, 0xC2, 0x48, 0x12, -+ 0xE0, 0x90, 0x21, 0x91, 0x98, 0x50, 0x62, 0xC0, 0x84, 0x62, 0x24, 0x51, 0xCA, 0x06, 0x2C, 0x64, 0x24, 0x0E, 0x1B, 0xB3, 0x31, 0x24, 0x96, 0x85, 0x4B, 0x46, 0x06, 0xDB, 0x26, 0x68, 0xC3, 0x82, -+ 0x68, 0x44, 0x10, 0x46, 0xC9, 0xB6, 0x21, 0x14, 0x04, 0x81, 0x14, 0x45, 0x50, 0x24, 0x42, 0x08, 0x44, 0x22, 0x71, 0x0B, 0x92, 0x45, 0x9A, 0xA0, 0x81, 0x1A, 0x91, 0x70, 0x9C, 0x24, 0x10, 0x03, -+ 0x95, 0x70, 0x04, 0xC5, 0x04, 0xC8, 0x26, 0x92, 0xD2, 0x92, 0x00, 0xC0, 0xB2, 0x60, 0xC0, 0xA2, 0x68, 0x09, 0x19, 0x0A, 0xA2, 0x30, 0x0E, 0x18, 0x89, 0x69, 0xE0, 0x00, 0x8D, 0xD8, 0x48, 0x62, -+ 0xDA, 0x14, 0x71, 0x20, 0x18, 0x05, 0x19, 0x07, 0x44, 0x04, 0x12, 0x40, 0x9B, 0x12, 0x40, 0x11, 0x80, 0x10, 0xD1, 0x42, 0x81, 0x99, 0x28, 0x50, 0x8B, 0x10, 0x91, 0x02, 0x24, 0x64, 0xA0, 0x20, -+ 0x6D, 0x12, 0x46, 0x21, 0x1C, 0x83, 0x8C, 0x1B, 0x47, 0x69, 0x01, 0x06, 0x90, 0xCC, 0x06, 0x24, 0x81, 0x84, 0x69, 0x20, 0x98, 0x2C, 0x24, 0x12, 0x05, 0x21, 0xB1, 0x50, 0x41, 0x36, 0x02, 0x98, -+ 0x44, 0x6E, 0xD1, 0xA6, 0x31, 0x11, 0x05, 0x6A, 0xD3, 0xA8, 0x40, 0xCA, 0xA8, 0x4C, 0x62, 0xB0, 0x00, 0x03, 0x13, 0x4A, 0x53, 0x34, 0x46, 0x14, 0x19, 0x40, 0x04, 0xC5, 0x4C, 0xE3, 0x06, 0x69, -+ 0x5A, 0xB0, 0x89, 0x61, 0x16, 0x8E, 0xCB, 0x10, 0x80, 0x8B, 0x16, 0x8E, 0xD9, 0x90, 0x64, 0x0B, 0x94, 0x60, 0x24, 0x83, 0x85, 0x1A, 0xB3, 0x04, 0x54, 0x26, 0x22, 0x51, 0xB8, 0x25, 0x1C, 0x42, -+ 0x4A, 0x0B, 0x81, 0x48, 0x42, 0xC4, 0x44, 0x5A, 0x10, 0x20, 0x23, 0x80, 0x84, 0x09, 0xB7, 0x25, 0x4C, 0xC6, 0x48, 0x14, 0x85, 0x4D, 0x19, 0x38, 0x0E, 0x60, 0x16, 0x51, 0xD8, 0x32, 0x6A, 0x0A, -+ 0x91, 0x89, 0x08, 0xC1, 0x70, 0xE0, 0x96, 0x4D, 0x18, 0x46, 0x8C, 0x01, 0x32, 0x8D, 0x91, 0xC4, 0x05, 0x4A, 0x00, 0x61, 0x23, 0x08, 0x68, 0xA2, 0x10, 0x42, 0x10, 0xA8, 0x61, 0x13, 0x06, 0x21, -+ }, -+ .s2_len = 384, -+ .s2 = { -+ 0x8A, 0x24, 0x8E, 0x62, 0x06, 0x89, 0xC9, 0xB2, 0x45, 0x08, 0x27, 0x84, 0x51, 0x20, 0x0D, 0x98, 0x04, 0x66, 0xDC, 0x42, 0x05, 0x44, 0x24, 0x85, 0x24, 0x26, 0x28, 0x22, 0x21, 0x61, 0x20, 0x16, -+ 0x09, 0x0B, 0xA6, 0x2C, 0x0A, 0x11, 0x44, 0xE0, 0x92, 0x81, 0x58, 0x48, 0x0D, 0x42, 0x22, 0x10, 0xA0, 0x06, 0x09, 0x8B, 0x24, 0x6E, 0x81, 0x28, 0x8C, 0xC0, 0x24, 0x80, 0x90, 0x30, 0x8D, 0x84, -+ 0x36, 0x40, 0x4C, 0xA6, 0x84, 0x50, 0x04, 0x24, 0x94, 0xB6, 0x8D, 0xA2, 0x92, 0x6D, 0x18, 0xB3, 0x44, 0xA0, 0x00, 0x85, 0xE3, 0xB8, 0x05, 0x14, 0x05, 0x04, 0xA4, 0xC2, 0x90, 0x84, 0x22, 0x81, -+ 0xC3, 0x26, 0x2D, 0x0B, 0x20, 0x66, 0xCC, 0x90, 0x31, 0x98, 0x38, 0x28, 0x10, 0x16, 0x6C, 0xC1, 0x34, 0x45, 0xC0, 0x10, 0x22, 0x24, 0xC6, 0x88, 0x03, 0x46, 0x32, 0xD8, 0x40, 0x90, 0x1C, 0x20, -+ 0x68, 0x04, 0x15, 0x28, 0x9A, 0x18, 0x81, 0x44, 0x98, 0x8D, 0x9C, 0x20, 0x6E, 0x9C, 0x30, 0x2C, 0xC1, 0xB8, 0x20, 0x61, 0x42, 0x21, 0x08, 0x03, 0x10, 0xA0, 0xC2, 0x8C, 0x58, 0x12, 0x85, 0x53, -+ 0x20, 0x4C, 0x03, 0x30, 0x81, 0x4C, 0xA4, 0x8D, 0x44, 0xC0, 0x8D, 0x51, 0x40, 0x4C, 0x1C, 0xA7, 0x2C, 0x44, 0x08, 0x65, 0xA0, 0x38, 0x40, 0xDA, 0x20, 0x80, 0x81, 0x06, 0x85, 0x8C, 0x26, 0x0D, -+ 0xE2, 0xA8, 0x8C, 0x9C, 0x44, 0x11, 0x59, 0x42, 0x28, 0xC4, 0x26, 0x04, 0x44, 0x14, 0x26, 0xA1, 0x42, 0x64, 0x08, 0xC0, 0x85, 0x11, 0x01, 0x86, 0x9B, 0x48, 0x31, 0x99, 0xB2, 0x0C, 0x80, 0x46, -+ 0x44, 0x59, 0xA8, 0x8C, 0x00, 0x42, 0x08, 0x98, 0x82, 0x90, 0x0A, 0xB5, 0x45, 0x62, 0x24, 0x48, 0x12, 0x96, 0x05, 0x44, 0x12, 0x46, 0x00, 0xC8, 0x88, 0x13, 0xA0, 0x61, 0xE1, 0x28, 0x4D, 0x0A, -+ 0xB9, 0x91, 0x4B, 0x96, 0x20, 0x99, 0xB8, 0x44, 0x00, 0x31, 0x4E, 0x98, 0x12, 0x85, 0x00, 0xB6, 0x01, 0x83, 0xA0, 0x0D, 0x14, 0x15, 0x0E, 0x18, 0x81, 0x10, 0x19, 0x01, 0x22, 0x4A, 0x06, 0x68, -+ 0x1A, 0x49, 0x8D, 0xE1, 0xA2, 0x84, 0x11, 0xC6, 0x31, 0x21, 0x26, 0x25, 0x91, 0xA0, 0x6D, 0x03, 0x05, 0x24, 0xA1, 0xB6, 0x08, 0x94, 0x44, 0x72, 0x43, 0x34, 0x12, 0x5B, 0xB4, 0x20, 0x41, 0xB6, -+ 0x50, 0xD0, 0x88, 0x8D, 0x0B, 0x07, 0x4D, 0x1C, 0x94, 0x64, 0x4C, 0x20, 0x8E, 0x8B, 0x88, 0x08, 0xE0, 0x30, 0x09, 0x44, 0x20, 0x05, 0x49, 0x86, 0x4D, 0x03, 0x13, 0x4E, 0x19, 0xC9, 0x84, 0x09, -+ 0x37, 0x61, 0x1A, 0x43, 0x68, 0x4A, 0x80, 0x90, 0x02, 0x04, 0x31, 0x1C, 0x17, 0x42, 0x18, 0x40, 0x80, 0xC8, 0x30, 0x8E, 0xE1, 0xA2, 0x41, 0xC3, 0x34, 0x04, 0xA3, 0x28, 0x22, 0x51, 0x24, 0x71, -+ }, -+ .t0_len = 1664, -+ .t0 = { -+ 0x88, 0xD6, 0xFE, 0xF4, 0x67, 0x12, 0xCA, 0x18, 0x28, 0x72, 0xAB, 0x29, 0x19, 0x67, 0x8A, 0xFF, 0x9D, 0x94, 0xE7, 0x43, 0xE0, 0x63, 0xA3, 0x9E, 0x0C, 0x35, 0xCA, 0xF7, 0x2A, 0x7F, 0x2E, 0xDA, -+ 0x28, 0xE6, 0x58, 0x58, 0x52, 0x0D, 0x5D, 0x84, 0x67, 0xDE, 0x74, 0x7C, 0xF3, 0x40, 0x65, 0x3B, 0x52, 0xC2, 0x68, 0xF5, 0x54, 0x13, 0xF5, 0xAD, 0xDC, 0x7D, 0x49, 0x01, 0x1E, 0xC3, 0x3E, 0xDD, -+ 0x53, 0x74, 0x23, 0xA8, 0x42, 0x88, 0x86, 0x93, 0x37, 0xAE, 0xA0, 0x78, 0x1A, 0x12, 0x42, 0x69, 0x07, 0x14, 0x51, 0x72, 0x2D, 0xB3, 0xBB, 0x8F, 0x2C, 0xE5, 0xB1, 0x55, 0x2F, 0x83, 0xD2, 0xAF, -+ 0x07, 0xF2, 0x56, 0x13, 0x91, 0x8A, 0x9F, 0x4E, 0x6F, 0x12, 0x57, 0x60, 0x38, 0x88, 0xE5, 0x89, 0x30, 0x8C, 0xA5, 0xF9, 0x5F, 0x07, 0x14, 0x3D, 0x23, 0xBA, 0xAE, 0x17, 0x52, 0x0B, 0x36, 0xB6, -+ 0xE0, 0xE9, 0x4F, 0xAF, 0x68, 0x45, 0xEB, 0x21, 0x31, 0xAE, 0xC3, 0x83, 0xE6, 0x3B, 0xC8, 0x64, 0x4E, 0xE5, 0xF1, 0xAC, 0xCB, 0xA8, 0x2F, 0x92, 0x11, 0xE5, 0x7A, 0xFC, 0xBF, 0x50, 0x9C, 0x11, -+ 0x31, 0xA3, 0x74, 0x66, 0xBC, 0x91, 0xB3, 0x57, 0xDC, 0xBB, 0xBC, 0x14, 0xCC, 0xC3, 0x19, 0xC4, 0xCC, 0x6A, 0xC7, 0x5F, 0xCD, 0xC8, 0x2C, 0x65, 0x96, 0xD0, 0x77, 0x70, 0xC8, 0x27, 0x7A, 0xD3, -+ 0x70, 0xB1, 0x92, 0xA0, 0xB4, 0xE0, 0x5F, 0x81, 0x2E, 0x0E, 0x26, 0x5D, 0x29, 0x12, 0xAA, 0x29, 0xF0, 0x3F, 0xC9, 0xF7, 0x2D, 0xFA, 0x69, 0xC9, 0xB1, 0x29, 0x1A, 0x3F, 0xC5, 0x83, 0x64, 0x2B, -+ 0x23, 0x5F, 0x69, 0x91, 0xA9, 0x54, 0x78, 0x83, 0x47, 0xF6, 0x0A, 0x03, 0x28, 0xC4, 0x8E, 0xCE, 0xE5, 0x1B, 0xA0, 0x2D, 0xFF, 0x32, 0x3A, 0xBD, 0x91, 0x16, 0x67, 0xCB, 0x14, 0x54, 0x9B, 0x61, -+ 0x8F, 0x1C, 0x5D, 0x25, 0x0C, 0xAC, 0x9E, 0x35, 0xE0, 0x71, 0x60, 0x19, 0x92, 0xFB, 0xEC, 0x0B, 0xAE, 0x6F, 0x74, 0x21, 0x30, 0x81, 0x40, 0x47, 0x44, 0xD1, 0x2F, 0x2A, 0x0E, 0x04, 0xBD, 0xB2, -+ 0x65, 0xE0, 0x92, 0x4C, 0xAD, 0xA4, 0x0D, 0x1F, 0xA1, 0xF3, 0x8A, 0xCA, 0x46, 0x06, 0xBF, 0xD4, 0x57, 0x57, 0x12, 0xB8, 0x26, 0x0A, 0x45, 0x6F, 0xDD, 0xEE, 0xEF, 0xE7, 0xCA, 0x25, 0x9B, 0xCD, -+ 0xA9, 0x7B, 0x9B, 0x93, 0x9A, 0x5F, 0xD2, 0x88, 0x9C, 0x9B, 0x49, 0xFB, 0x7D, 0x4E, 0x35, 0x53, 0xDE, 0xA6, 0x1B, 0x33, 0x39, 0xBD, 0x0E, 0x6B, 0x16, 0xBF, 0x3B, 0xB2, 0x27, 0x10, 0x3B, 0xF9, -+ 0x20, 0x2E, 0x72, 0xDC, 0x50, 0x2E, 0x28, 0xF7, 0xCE, 0x15, 0x59, 0xA4, 0x63, 0x1F, 0x37, 0x25, 0x20, 0x32, 0x4E, 0x4E, 0xBA, 0x07, 0x54, 0x5F, 0x78, 0xBF, 0x4D, 0x94, 0xB0, 0xE5, 0xB8, 0xBF, -+ 0x51, 0xB8, 0xF1, 0x76, 0x53, 0x3D, 0x5C, 0xFE, 0xA5, 0x23, 0x2F, 0x28, 0x3A, 0x47, 0x60, 0x5F, 0xA6, 0x5D, 0xDB, 0x17, 0xC8, 0x91, 0xC2, 0x51, 0x01, 0x1C, 0x4E, 0x98, 0xEE, 0xB6, 0xEB, 0x00, -+ 0xCB, 0x65, 0xBA, 0x31, 0xC8, 0xF0, 0x25, 0xC8, 0x7A, 0x9F, 0xE0, 0x2D, 0xBC, 0x10, 0xC5, 0xD8, 0x3A, 0x06, 0x5E, 0xBA, 0x5D, 0x7B, 0x2A, 0x19, 0xD5, 0xA1, 0xCB, 0x2C, 0x16, 0x0A, 0xE1, 0x66, -+ 0xE8, 0x67, 0xF2, 0xAF, 0x8C, 0x7D, 0x49, 0xD6, 0x3F, 0xB8, 0x3A, 0x61, 0x49, 0x57, 0xFC, 0x0A, 0x3B, 0x5A, 0x5C, 0x74, 0x99, 0x0E, 0x9A, 0x2B, 0x02, 0x12, 0x0C, 0x7E, 0x6D, 0xE3, 0x7E, 0x15, -+ 0x5F, 0xB4, 0x72, 0xF5, 0x0F, 0x0A, 0x45, 0xE4, 0x7C, 0xF5, 0xF9, 0xD7, 0xA4, 0xC8, 0x29, 0x82, 0xC9, 0xDC, 0x86, 0xAE, 0x87, 0x7C, 0x3F, 0xD1, 0x88, 0x59, 0x43, 0xE4, 0x39, 0xFB, 0x00, 0x3C, -+ 0x7A, 0x9A, 0x42, 0xF7, 0x1B, 0x4F, 0xF6, 0xF0, 0xA2, 0x8B, 0x14, 0x0C, 0xBD, 0xBA, 0x6E, 0x71, 0xB1, 0x3A, 0xC3, 0x1B, 0x23, 0xDE, 0x9E, 0xAB, 0x78, 0x37, 0xE1, 0x5A, 0x69, 0xF8, 0x33, 0xEB, -+ 0x7B, 0x56, 0xA7, 0x1D, 0x8B, 0xC2, 0xCA, 0xF1, 0xF2, 0xA3, 0x1C, 0x34, 0x5B, 0xD5, 0xF4, 0x6E, 0xE0, 0x13, 0xA7, 0xC6, 0x89, 0x37, 0x23, 0x37, 0x19, 0x1D, 0xAA, 0x80, 0x0C, 0x0A, 0xC6, 0xC4, -+ 0x6C, 0x9F, 0xF6, 0x88, 0xB1, 0xA0, 0x13, 0x47, 0xF2, 0x57, 0xC4, 0x74, 0xAA, 0x3D, 0x97, 0xC1, 0xD6, 0x3A, 0x8C, 0x00, 0xE0, 0xA3, 0x7B, 0x68, 0x16, 0x73, 0xF5, 0x7C, 0x1C, 0x9C, 0x8F, 0xCC, -+ 0xD4, 0x6F, 0x17, 0x4C, 0x74, 0xA2, 0x9D, 0x84, 0xCE, 0xB7, 0x1F, 0x7E, 0x6B, 0x2F, 0x8C, 0xD2, 0xB0, 0x89, 0xED, 0x43, 0xF7, 0xC9, 0x6D, 0xAE, 0x81, 0xA2, 0x23, 0x41, 0x8C, 0x20, 0xB1, 0x6F, -+ 0x1D, 0xF3, 0xD1, 0xA9, 0x78, 0xAE, 0x28, 0xF6, 0xDF, 0x35, 0xEC, 0x55, 0x9D, 0x04, 0xD2, 0x0E, 0xC7, 0x4B, 0x22, 0x4A, 0xEA, 0x31, 0xA2, 0x89, 0xB0, 0x15, 0xB0, 0x69, 0xE9, 0xCB, 0xBB, 0xF7, -+ 0xCF, 0x6D, 0xE9, 0x4C, 0xFB, 0x2A, 0x96, 0xE4, 0xAE, 0x34, 0x62, 0xC9, 0x60, 0x03, 0xCD, 0xDA, 0x87, 0xDB, 0x56, 0x1A, 0xF2, 0xCE, 0x3C, 0x0B, 0xA1, 0xD9, 0x04, 0x13, 0xFD, 0xCE, 0x3C, 0xCF, -+ 0x43, 0x90, 0xC0, 0x2C, 0x1C, 0xB9, 0xF6, 0x54, 0xF4, 0x82, 0x0E, 0xC3, 0x30, 0x15, 0x45, 0x7D, 0x4A, 0x62, 0x9F, 0xBF, 0x39, 0x41, 0x9C, 0xAB, 0x76, 0x42, 0xD6, 0x88, 0x5E, 0x10, 0x3F, 0xCE, -+ 0x0D, 0x42, 0x06, 0xCC, 0xE7, 0xC1, 0x2C, 0x6F, 0xC4, 0x4F, 0xA3, 0x3A, 0xD0, 0x86, 0x4C, 0x33, 0x71, 0xA7, 0xCB, 0xE8, 0x20, 0xE3, 0xB3, 0x71, 0xB6, 0x56, 0xA3, 0x8F, 0x2E, 0x7F, 0xF1, 0x8F, -+ 0xE4, 0xA5, 0x0C, 0x8A, 0xB3, 0xF8, 0x5D, 0x78, 0x3F, 0xB5, 0x78, 0x35, 0xCE, 0xD8, 0x49, 0x0B, 0x84, 0xEE, 0x0D, 0x99, 0xAF, 0x0D, 0x64, 0xC4, 0x83, 0xCE, 0xB6, 0x36, 0x6F, 0xF5, 0x4F, 0x8A, -+ 0xC8, 0xA4, 0x0D, 0xB1, 0xAF, 0xA5, 0x73, 0xA4, 0xFB, 0x32, 0x6C, 0x74, 0xF0, 0x23, 0x6E, 0xCE, 0xF3, 0xDA, 0x71, 0x20, 0x66, 0x5C, 0xCE, 0x05, 0xDD, 0x65, 0x4B, 0x50, 0x71, 0x72, 0x3A, 0x83, -+ 0x48, 0xE7, 0xCD, 0x77, 0x93, 0x51, 0x38, 0x19, 0xB6, 0x1C, 0xB6, 0x4E, 0x13, 0x28, 0xE8, 0xB2, 0x2E, 0x76, 0x64, 0xBD, 0x6B, 0x41, 0xB5, 0x71, 0x0D, 0x19, 0xEA, 0x88, 0x09, 0xD4, 0x45, 0x08, -+ 0x50, 0xE9, 0x07, 0xDF, 0xC4, 0xD0, 0xB7, 0x5F, 0x58, 0x8C, 0xEC, 0xE9, 0x62, 0xE9, 0xE0, 0x93, 0x7C, 0xE1, 0x40, 0x24, 0x46, 0xA4, 0xD2, 0x89, 0x1A, 0x46, 0xE6, 0x61, 0x7F, 0xB2, 0x9D, 0x4F, -+ 0xCD, 0x71, 0x26, 0x06, 0xF7, 0x81, 0x9E, 0xCA, 0x60, 0xF7, 0xE0, 0xD5, 0xB1, 0x9E, 0x7F, 0xFB, 0x57, 0xC7, 0x3C, 0x16, 0xFF, 0xEE, 0xB9, 0x00, 0x38, 0x41, 0x0C, 0xB9, 0xFC, 0xBB, 0x5E, 0x9D, -+ 0x51, 0xEB, 0x3E, 0xB6, 0x29, 0x7E, 0x9F, 0xF6, 0xAB, 0x70, 0x88, 0xFE, 0x2D, 0x9B, 0x23, 0x7B, 0xC2, 0x4C, 0xF7, 0xF8, 0x29, 0x01, 0x18, 0xA5, 0xE0, 0xE0, 0x0A, 0x0B, 0x90, 0x3F, 0xB6, 0x37, -+ 0x5C, 0x84, 0x81, 0x76, 0xCD, 0x0A, 0x8C, 0x88, 0x75, 0xCC, 0x59, 0x19, 0x9C, 0xDA, 0x11, 0xA8, 0x7A, 0x78, 0xF6, 0x5C, 0xC4, 0x04, 0x33, 0x0B, 0x08, 0x75, 0x71, 0xFD, 0x06, 0x33, 0xE2, 0x71, -+ 0x29, 0xFD, 0xAB, 0x5A, 0x8A, 0x1F, 0x79, 0x3E, 0x52, 0x41, 0x2B, 0x00, 0x83, 0xFD, 0x5C, 0x74, 0xDB, 0x3C, 0xF6, 0x0C, 0x25, 0x43, 0xCE, 0x7C, 0x91, 0xB2, 0x80, 0x0E, 0x40, 0x20, 0x3F, 0x8D, -+ 0x99, 0xFE, 0x5F, 0xDE, 0x5B, 0x10, 0x8E, 0x7E, 0xDC, 0x80, 0xEB, 0xB9, 0xBB, 0x34, 0x98, 0x6E, 0xC5, 0xC5, 0xA8, 0xF5, 0x80, 0xE7, 0x57, 0x52, 0x90, 0x7F, 0xF0, 0xF2, 0x94, 0xC8, 0x66, 0xC2, -+ 0xCF, 0x1F, 0x36, 0x2E, 0x84, 0x0B, 0x68, 0x81, 0xBD, 0x43, 0x21, 0x92, 0x01, 0x78, 0x1C, 0x63, 0xB0, 0x03, 0x9A, 0x95, 0xBC, 0xFB, 0x4A, 0x0F, 0xEC, 0xE5, 0x69, 0xDF, 0x00, 0x52, 0x3C, 0xE9, -+ 0xC0, 0x84, 0xB0, 0x22, 0xB3, 0xB0, 0x22, 0x24, 0x2E, 0x28, 0x41, 0x97, 0x96, 0xAC, 0xF0, 0xA0, 0xC9, 0x95, 0xF9, 0x48, 0xDB, 0xFF, 0xFD, 0x30, 0xD7, 0x7E, 0xD1, 0x05, 0xA3, 0xC9, 0x94, 0x3C, -+ 0x40, 0x6B, 0x30, 0x5B, 0xC8, 0x1A, 0x6A, 0x24, 0x8A, 0x29, 0x15, 0x48, 0xF2, 0xA6, 0x7F, 0x43, 0x8D, 0x96, 0x6A, 0x57, 0xD5, 0x3F, 0x4B, 0x7B, 0xE1, 0x53, 0x54, 0xE5, 0x81, 0xBE, 0x16, 0xF7, -+ 0xAD, 0x64, 0xD1, 0x64, 0xE8, 0x57, 0x87, 0xDF, 0x58, 0x49, 0xC8, 0x10, 0xAF, 0xC2, 0x8D, 0x06, 0x48, 0x2F, 0x44, 0x1B, 0x5F, 0xDE, 0x3D, 0xB2, 0xED, 0x36, 0xDD, 0x25, 0xAA, 0x66, 0x64, 0xD4, -+ 0xD4, 0x3F, 0xFA, 0x32, 0xED, 0xA2, 0x56, 0x89, 0xC9, 0xF4, 0xA5, 0xD5, 0x14, 0xFC, 0x66, 0x23, 0x1C, 0x54, 0x01, 0x52, 0x09, 0x22, 0x52, 0x44, 0x38, 0xEF, 0x1D, 0xC7, 0x8D, 0x69, 0x3C, 0x97, -+ 0x18, 0xDE, 0xBB, 0xD2, 0x43, 0x31, 0x26, 0x74, 0xC8, 0x99, 0xF1, 0x89, 0x10, 0xE3, 0x89, 0xC8, 0xEB, 0xE5, 0x05, 0x82, 0x4B, 0xCC, 0x42, 0xCD, 0x4A, 0x9A, 0xCE, 0x19, 0x37, 0x68, 0x22, 0x02, -+ 0x19, 0x01, 0x1F, 0x3B, 0x1F, 0x33, 0x54, 0x27, 0xBF, 0xF9, 0xE8, 0xBD, 0xED, 0x5C, 0x08, 0x71, 0x1A, 0x09, 0xC2, 0xB7, 0x1C, 0xB9, 0x64, 0xC5, 0x6A, 0x83, 0x93, 0xBF, 0xD2, 0xB5, 0x6E, 0x9B, -+ 0x6B, 0x2F, 0x51, 0x3E, 0x68, 0x25, 0x87, 0xDC, 0x1B, 0x8E, 0xD1, 0x96, 0x06, 0x63, 0x26, 0x87, 0x10, 0x25, 0x62, 0x80, 0x36, 0x70, 0x00, 0x63, 0x17, 0x6D, 0x34, 0x5D, 0xE3, 0x84, 0xE1, 0x82, -+ 0xD6, 0xC4, 0x17, 0xA3, 0x2A, 0xB1, 0x10, 0x95, 0xEF, 0x59, 0xBB, 0x4D, 0x17, 0x1B, 0x9C, 0xF8, 0x1D, 0x17, 0xAC, 0x42, 0x66, 0x4D, 0xED, 0x93, 0x3C, 0xCB, 0x72, 0x2C, 0x69, 0x85, 0x7F, 0xFC, -+ 0x53, 0xC8, 0xE7, 0xF2, 0x47, 0x4B, 0x0C, 0xB2, 0xDF, 0xF2, 0xDD, 0xC8, 0xA5, 0xC6, 0x01, 0xC8, 0x4A, 0x70, 0x19, 0x81, 0x19, 0x9B, 0xCC, 0xF7, 0x41, 0x12, 0xA6, 0xEC, 0x06, 0x2C, 0x4F, 0xEB, -+ 0x60, 0x1A, 0x02, 0x8A, 0xF0, 0x10, 0x32, 0xAD, 0xB6, 0xBD, 0x15, 0xD4, 0xC2, 0xB9, 0x55, 0x0A, 0xA8, 0x50, 0xAD, 0x62, 0xCC, 0xC3, 0xA3, 0x66, 0x5D, 0x52, 0x12, 0xB1, 0x2E, 0x0F, 0xD5, 0xC5, -+ 0x32, 0x6A, 0x1E, 0x5E, 0xB1, 0xF1, 0x0D, 0x55, 0x7D, 0x94, 0x60, 0x5E, 0x8E, 0x3F, 0x35, 0x6E, 0x08, 0xFF, 0x7F, 0xD8, 0x84, 0xED, 0x3C, 0x42, 0x05, 0x46, 0x35, 0x94, 0xC9, 0xAF, 0x2F, 0x39, -+ 0xE4, 0xB1, 0x27, 0x46, 0x95, 0x23, 0x4B, 0x54, 0xEE, 0xCE, 0xD9, 0x3F, 0x46, 0x0E, 0xDF, 0x1A, 0x13, 0xC2, 0xCB, 0x4B, 0x17, 0xD3, 0x22, 0xF6, 0xF7, 0x9F, 0xE1, 0x6F, 0x03, 0x57, 0xC1, 0xC4, -+ 0x73, 0x98, 0x63, 0xE7, 0x96, 0x79, 0x1F, 0x86, 0x47, 0xFA, 0xBF, 0x73, 0x0A, 0xB0, 0x0E, 0x0D, 0xA5, 0x09, 0x70, 0x6D, 0x94, 0x57, 0x17, 0x40, 0xF6, 0x1F, 0x7B, 0xAF, 0x36, 0x6D, 0x27, 0x74, -+ 0xC9, 0xB5, 0xB8, 0xC6, 0x1D, 0xD6, 0xBE, 0x98, 0x19, 0xA6, 0x02, 0x8B, 0x26, 0x4B, 0xB2, 0xE4, 0xAE, 0xA5, 0x4B, 0x56, 0xD4, 0xEC, 0xAB, 0x5B, 0x52, 0x8C, 0xE0, 0xC0, 0xC0, 0xCC, 0xDB, 0x73, -+ 0x02, 0x33, 0x52, 0xCB, 0x00, 0x44, 0x5B, 0xAB, 0x6F, 0x74, 0x67, 0xB4, 0x64, 0x4D, 0x43, 0x61, 0xC4, 0x64, 0xFA, 0xC6, 0xB5, 0xB1, 0x37, 0xD3, 0x23, 0x91, 0x02, 0x1B, 0x47, 0x5F, 0xCB, 0x5F, -+ 0x31, 0x77, 0x4F, 0xD8, 0xEC, 0xAB, 0xDF, 0x65, 0x47, 0x5F, 0x25, 0x57, 0x4C, 0x65, 0x55, 0x9C, 0xB3, 0x31, 0xF4, 0x1C, 0x0F, 0x49, 0x8B, 0x74, 0xDD, 0x94, 0x1C, 0x34, 0x4C, 0x50, 0xD8, 0xE6, -+ 0x4F, 0x95, 0x78, 0x71, 0x4A, 0x32, 0x56, 0x1F, 0xAA, 0xCE, 0xAF, 0x78, 0x14, 0x8E, 0x6D, 0xA4, 0xB5, 0x66, 0x82, 0x69, 0x25, 0x71, 0x4B, 0x17, 0x10, 0x8A, 0xFD, 0xD5, 0x46, 0x38, 0x5A, 0x3C, -+ 0xD4, 0x54, 0xD5, 0xCA, 0xA1, 0x69, 0x60, 0x91, 0x62, 0x82, 0xA4, 0x7C, 0x43, 0x15, 0xCE, 0x23, 0x6B, 0xD9, 0xE3, 0x25, 0x5C, 0x60, 0x4E, 0xBD, 0xC3, 0x97, 0x72, 0xDB, 0x5C, 0xE0, 0xB2, 0x36, -+ }, -+ .t1_len = 1280, -+ .t1 = { -+ 0x61, 0x77, 0xE3, 0xDE, 0x0D, 0x4F, 0x1E, 0xF5, 0x84, 0x77, 0x35, 0x94, 0x7B, 0x56, 0xD0, 0x8E, 0x84, 0x1D, 0xB2, 0x44, 0x4F, 0xA2, 0xB7, 0x29, 0xAD, 0xEB, 0x14, 0x17, 0xCA, 0x7A, 0xDF, 0x42, -+ 0xA1, 0x49, 0x0C, 0x5A, 0x09, 0x7F, 0x00, 0x27, 0x60, 0xC1, 0xFC, 0x41, 0x9B, 0xE8, 0x32, 0x5A, 0xAD, 0x01, 0x97, 0xC5, 0x2C, 0xED, 0x80, 0xD3, 0xDF, 0x18, 0xE7, 0x77, 0x42, 0x65, 0xB2, 0x89, -+ 0x91, 0x2C, 0xEC, 0xA1, 0xBE, 0x3A, 0x90, 0xD8, 0xA4, 0xFD, 0xE6, 0x5C, 0x84, 0xC6, 0x10, 0x86, 0x4E, 0x47, 0xDE, 0xEC, 0xAE, 0x3E, 0xEA, 0x44, 0x30, 0xB9, 0x90, 0x95, 0x59, 0x40, 0x8D, 0x11, -+ 0xA6, 0xAB, 0xDB, 0x7D, 0xB9, 0x33, 0x6D, 0xF7, 0xF9, 0x6E, 0xAB, 0x48, 0x64, 0xA6, 0x57, 0x97, 0x91, 0x26, 0x5F, 0xA5, 0x6C, 0x34, 0x8C, 0xB7, 0xD2, 0xDD, 0xC9, 0x0E, 0x13, 0x3A, 0x95, 0xC3, -+ 0xF6, 0xB1, 0x36, 0x01, 0x42, 0x9F, 0x54, 0x08, 0xBD, 0x99, 0x9A, 0xA4, 0x79, 0xC1, 0x01, 0x81, 0x59, 0x55, 0x0E, 0xC5, 0x5A, 0x11, 0x3C, 0x49, 0x3B, 0xE6, 0x48, 0xF4, 0xE0, 0x36, 0xDD, 0x4F, -+ 0x8C, 0x80, 0x9E, 0x03, 0x6B, 0x4F, 0xBB, 0x91, 0x8C, 0x2C, 0x48, 0x4A, 0xD8, 0xE1, 0x74, 0x7A, 0xE0, 0x55, 0x85, 0xAB, 0x43, 0x3F, 0xDF, 0x46, 0x1A, 0xF0, 0x3C, 0x25, 0xA7, 0x73, 0x70, 0x07, -+ 0x21, 0xAA, 0x05, 0xF7, 0x37, 0x9F, 0xE7, 0xF5, 0xED, 0x96, 0x17, 0x5D, 0x40, 0x21, 0x07, 0x6E, 0x7F, 0x52, 0xB6, 0x03, 0x08, 0xEF, 0xF5, 0xD4, 0x2B, 0xA6, 0xE0, 0x93, 0xB3, 0xD0, 0x81, 0x5E, -+ 0xB3, 0x49, 0x66, 0x46, 0xE4, 0x92, 0x30, 0xA9, 0xB3, 0x5C, 0x8D, 0x41, 0x90, 0x0C, 0x2B, 0xB8, 0xD3, 0xB4, 0x46, 0xA2, 0x31, 0x27, 0xF7, 0xE0, 0x96, 0xD8, 0x5A, 0x1C, 0x79, 0x4A, 0xD4, 0xC8, -+ 0x92, 0x77, 0x90, 0x4F, 0xC6, 0xBF, 0xEC, 0x57, 0xB1, 0xCD, 0xD8, 0x0D, 0xF9, 0x95, 0x50, 0x30, 0xFD, 0xCA, 0x74, 0x1A, 0xFB, 0xDA, 0xC8, 0x27, 0xB1, 0x3C, 0xCD, 0x54, 0x03, 0x58, 0x8A, 0xF4, -+ 0x64, 0x40, 0x03, 0xC2, 0x26, 0x5D, 0xFA, 0x4D, 0x41, 0x9D, 0xBC, 0xCD, 0x20, 0x64, 0x89, 0x23, 0x86, 0x51, 0x8B, 0xE9, 0xD5, 0x1C, 0x16, 0x49, 0x82, 0x75, 0xEB, 0xEC, 0xF5, 0xCD, 0xC7, 0xA8, -+ 0x20, 0xF2, 0xC2, 0x93, 0x14, 0xAC, 0x4A, 0x6F, 0x08, 0xB2, 0x25, 0x2A, 0xD3, 0xCF, 0xB1, 0x99, 0xAA, 0x42, 0xFE, 0x0B, 0x4F, 0xB5, 0x71, 0x97, 0x5C, 0x10, 0x20, 0xD9, 0x49, 0xE1, 0x94, 0xEE, -+ 0x1E, 0xAD, 0x93, 0x7B, 0xFB, 0x55, 0x0B, 0xB3, 0xBA, 0x8E, 0x35, 0x7A, 0x02, 0x9C, 0x29, 0xF0, 0x77, 0x55, 0x46, 0x02, 0xE1, 0xCA, 0x2F, 0x22, 0x89, 0xCB, 0x91, 0x69, 0x94, 0x1C, 0x3A, 0xAF, -+ 0xDB, 0x8E, 0x58, 0xC7, 0xF2, 0xAC, 0x77, 0x29, 0x1F, 0xB4, 0x14, 0x7C, 0x65, 0xF6, 0xB0, 0x31, 0xD3, 0xEB, 0xA4, 0x2F, 0x2A, 0xCF, 0xD9, 0x44, 0x8A, 0x5B, 0xC2, 0x2B, 0x47, 0x6E, 0x07, 0xCC, -+ 0xCE, 0xDA, 0x23, 0x06, 0xC5, 0x54, 0xEC, 0x9B, 0x7A, 0xB6, 0x55, 0xF1, 0xD7, 0x31, 0x8C, 0x2B, 0x7E, 0x67, 0xD5, 0xF6, 0x9B, 0xED, 0xF5, 0x60, 0x00, 0xFD, 0xA9, 0x89, 0x86, 0xB5, 0xAB, 0x1B, -+ 0x3A, 0x22, 0xD8, 0xDF, 0xD6, 0x68, 0x16, 0x97, 0xB2, 0x3A, 0x55, 0xC9, 0x6E, 0x87, 0x10, 0xF3, 0xF9, 0x8C, 0x04, 0x4F, 0xB1, 0x5F, 0x60, 0x63, 0x13, 0xEE, 0x56, 0xC0, 0xF1, 0xF5, 0xCA, 0x0F, -+ 0x51, 0x2E, 0x08, 0x48, 0x4F, 0xCB, 0x35, 0x8E, 0x6E, 0x52, 0x8F, 0xFA, 0x89, 0xF8, 0xA8, 0x66, 0xCC, 0xFF, 0x3C, 0x0C, 0x58, 0x13, 0x14, 0x7E, 0xC5, 0x9A, 0xF0, 0x47, 0x0C, 0x4A, 0xAD, 0x01, -+ 0x41, 0xD3, 0x4F, 0x10, 0x1D, 0xA2, 0xE5, 0xE1, 0xBD, 0x52, 0xD0, 0xD4, 0xC9, 0xB1, 0x3B, 0x3E, 0x3D, 0x87, 0xD1, 0x58, 0x61, 0x05, 0x79, 0x67, 0x54, 0xE7, 0x97, 0x8C, 0xA1, 0xC6, 0x8A, 0x7D, -+ 0x85, 0xDF, 0x11, 0x2B, 0x7A, 0xB9, 0x21, 0xB3, 0x59, 0xA9, 0xF0, 0x3C, 0xBD, 0x27, 0xA7, 0xEA, 0xC8, 0x7A, 0x9A, 0x80, 0xB0, 0xB2, 0x6B, 0x4C, 0x96, 0x57, 0xED, 0x85, 0xAD, 0x7F, 0xA2, 0x61, -+ 0x6A, 0xB3, 0x45, 0xEB, 0x82, 0x26, 0xF6, 0x9F, 0xC0, 0xF4, 0x81, 0x83, 0xFF, 0x57, 0x4B, 0xCD, 0x76, 0x7B, 0x56, 0x76, 0x41, 0x3A, 0xDB, 0x12, 0xEA, 0x21, 0x50, 0xA0, 0xE9, 0x76, 0x83, 0xEE, -+ 0x54, 0x24, 0x3C, 0x25, 0xB7, 0xEA, 0x8A, 0x71, 0x86, 0x06, 0xF8, 0x69, 0x93, 0xD8, 0xD0, 0xDA, 0xCE, 0x83, 0x4E, 0xD3, 0x41, 0xEE, 0xB7, 0x24, 0xFE, 0x3D, 0x5F, 0xF0, 0xBC, 0x8B, 0x8A, 0x7B, -+ 0x81, 0x04, 0xBA, 0x26, 0x9D, 0x34, 0x13, 0x3A, 0x4C, 0xF8, 0x30, 0x0A, 0x2D, 0x68, 0x84, 0x96, 0xB5, 0x9B, 0x6F, 0xCB, 0xC6, 0x1A, 0xE9, 0x60, 0x62, 0xEA, 0x1D, 0x8E, 0x5B, 0x41, 0x0C, 0x56, -+ 0x71, 0xF4, 0x24, 0x41, 0x7E, 0xD6, 0x93, 0x32, 0x9C, 0xD9, 0x83, 0x00, 0x1F, 0xFC, 0xD1, 0x00, 0x23, 0xD5, 0x98, 0x85, 0x9F, 0xB7, 0xAD, 0x5F, 0xD2, 0x63, 0x54, 0x71, 0x17, 0x10, 0x06, 0x90, -+ 0xC6, 0xCE, 0x74, 0x38, 0x95, 0x6E, 0x6C, 0xC5, 0x7F, 0x1B, 0x5D, 0xE5, 0x3B, 0xB0, 0xDC, 0x72, 0xCE, 0x9B, 0x6D, 0xEA, 0xA8, 0x57, 0x89, 0x59, 0x9A, 0x70, 0xF0, 0x05, 0x1F, 0x1A, 0x0E, 0x25, -+ 0xE8, 0x6D, 0x88, 0x8B, 0x00, 0xDF, 0x36, 0xBD, 0xBC, 0x93, 0xEF, 0x72, 0x17, 0xC4, 0x5A, 0xCE, 0x11, 0xC0, 0x79, 0x0D, 0x70, 0xE9, 0x95, 0x3E, 0x5B, 0x41, 0x7B, 0xA2, 0xFD, 0x9A, 0x4C, 0xAF, -+ 0x82, 0xF1, 0xFC, 0xE6, 0xF4, 0x5F, 0x53, 0xE2, 0x15, 0xB8, 0x35, 0x5E, 0xF6, 0x1D, 0x89, 0x1D, 0xF1, 0xC7, 0x94, 0x23, 0x1C, 0x16, 0x2D, 0xD2, 0x41, 0x64, 0xB5, 0x34, 0xA9, 0xD4, 0x84, 0x67, -+ 0xCD, 0xC3, 0x23, 0x62, 0x4C, 0x2F, 0x95, 0xD4, 0x40, 0x2F, 0xF9, 0xD6, 0x6A, 0xB1, 0x19, 0x1A, 0x81, 0x24, 0x14, 0x4A, 0xFA, 0x35, 0xD4, 0xE3, 0x1D, 0xC8, 0x6C, 0xAA, 0x79, 0x7C, 0x31, 0xF6, -+ 0x8B, 0x85, 0x85, 0x4C, 0xD9, 0x59, 0xC4, 0xFA, 0xC5, 0xEC, 0x53, 0xB3, 0xB5, 0x6D, 0x37, 0x4B, 0x88, 0x8A, 0x9E, 0x97, 0x9A, 0x65, 0x76, 0xB6, 0x34, 0x5E, 0xC8, 0x52, 0x2C, 0x96, 0x06, 0x99, -+ 0x02, 0x81, 0xBF, 0x3E, 0xF7, 0xC5, 0x94, 0x5D, 0x10, 0xFD, 0x21, 0xA2, 0xA1, 0xD2, 0xE5, 0x40, 0x4C, 0x5C, 0xF2, 0x12, 0x20, 0x64, 0x13, 0x91, 0xB9, 0x8B, 0xCF, 0x82, 0x53, 0x98, 0x30, 0x5B, -+ 0x56, 0xE5, 0x8B, 0x61, 0x1F, 0xE5, 0x25, 0x32, 0x03, 0xE3, 0xDF, 0x0D, 0x22, 0x46, 0x6A, 0x73, 0xB3, 0xF0, 0xFB, 0xE4, 0x3B, 0x9A, 0x62, 0x92, 0x80, 0x91, 0x89, 0x8B, 0x8A, 0x0E, 0x5B, 0x26, -+ 0x9D, 0xB5, 0x86, 0xB0, 0xE4, 0xDD, 0xEF, 0x50, 0xD6, 0x82, 0xA1, 0x2D, 0x2C, 0x1B, 0xE8, 0x24, 0x14, 0x9A, 0xA2, 0x54, 0xC6, 0x38, 0x1B, 0xB4, 0x12, 0xD7, 0x7C, 0x3F, 0x9A, 0xA9, 0x02, 0xB6, -+ 0x88, 0xC8, 0x17, 0x15, 0xA5, 0x9C, 0x83, 0x95, 0x58, 0x55, 0x6D, 0x35, 0xED, 0x4F, 0xC8, 0x3B, 0x4A, 0xB1, 0x81, 0x81, 0xF4, 0x0F, 0x73, 0xDC, 0xD7, 0x68, 0x60, 0xD8, 0xD8, 0xBF, 0x94, 0x52, -+ 0x02, 0x37, 0xC2, 0xAC, 0x0E, 0x46, 0x3B, 0xA0, 0x9E, 0x3C, 0x97, 0x82, 0x38, 0x0D, 0xC0, 0x7F, 0xE4, 0xFC, 0xBA, 0x34, 0x0C, 0xC2, 0x00, 0x34, 0x39, 0xFD, 0x23, 0x14, 0x61, 0x06, 0x38, 0x07, -+ 0x0D, 0x6C, 0x9E, 0xEA, 0x0A, 0x70, 0xBA, 0xE8, 0x3B, 0x5D, 0x5D, 0x3C, 0x5D, 0x3F, 0xDE, 0x26, 0xDD, 0x01, 0x60, 0x6C, 0x8C, 0x52, 0x01, 0x58, 0xE7, 0xE5, 0x10, 0x40, 0x20, 0xF2, 0x48, 0xCE, -+ 0xAA, 0x66, 0x64, 0x57, 0xC1, 0x0A, 0xEB, 0xF0, 0x68, 0xF8, 0xA3, 0xBD, 0x5C, 0xE7, 0xB5, 0x2C, 0x6A, 0xF0, 0xAB, 0xD5, 0x94, 0x4A, 0xF1, 0xAD, 0x47, 0x52, 0xC9, 0x11, 0x39, 0x76, 0x08, 0x3C, -+ 0x03, 0xB6, 0xC3, 0x4E, 0x1D, 0x47, 0xED, 0x69, 0x64, 0x4C, 0xAD, 0x78, 0x2C, 0x2F, 0x7D, 0x05, 0xF8, 0xA1, 0x48, 0x96, 0x1D, 0x96, 0x5F, 0xA2, 0xE1, 0x72, 0x3A, 0x8D, 0xDE, 0xBC, 0x22, 0xA9, -+ 0x0C, 0xD7, 0x83, 0xDD, 0x1F, 0x4D, 0xB3, 0x8F, 0xB9, 0xAE, 0x5A, 0x67, 0x14, 0xB3, 0xD9, 0x46, 0x78, 0x16, 0x43, 0xD3, 0x17, 0xB7, 0xDD, 0x79, 0x38, 0x1C, 0xF7, 0x89, 0xA9, 0x58, 0x8B, 0xB3, -+ 0xE1, 0x93, 0xB9, 0x2A, 0x0B, 0x60, 0xD6, 0xB0, 0x7D, 0x04, 0x7F, 0x69, 0x84, 0xB0, 0x60, 0x9E, 0xC5, 0x75, 0x43, 0xC3, 0x94, 0xCA, 0x8D, 0x5E, 0x5B, 0xCC, 0x2A, 0x73, 0x1A, 0x79, 0x61, 0x8B, -+ 0xD1, 0xE2, 0xE0, 0xDA, 0x87, 0x04, 0xAF, 0x98, 0xF2, 0x0F, 0x5F, 0x8F, 0x54, 0x52, 0xDD, 0xF6, 0x46, 0xB9, 0x5B, 0x34, 0x1D, 0xD7, 0xF0, 0xD2, 0xCC, 0x1F, 0xA1, 0x5B, 0xD9, 0x89, 0x5C, 0xD5, -+ 0xB6, 0x5A, 0xA1, 0xCB, 0x94, 0xB5, 0xE2, 0xE7, 0x88, 0xFD, 0xA9, 0x82, 0x5B, 0x65, 0x66, 0x39, 0x19, 0x3D, 0x98, 0x32, 0x81, 0x54, 0xA4, 0xF2, 0xC3, 0x54, 0x95, 0xA3, 0x8B, 0x6E, 0xA0, 0xD2, -+ 0xFF, 0xAA, 0xA3, 0x5D, 0xF9, 0x2C, 0x20, 0x3C, 0x7F, 0x31, 0xCB, 0xBC, 0xA7, 0xBD, 0x03, 0xC3, 0xC2, 0x30, 0x21, 0x90, 0xCE, 0xCD, 0x16, 0x1F, 0xD4, 0x92, 0x37, 0xE4, 0xF8, 0x39, 0xE3, 0xF3, -+ }, -+ .pkcs8_len = 0, -+ .spki_len = 0, -+ .msg_len = 33, -+ .msg = { 0xD8, 0x1C, 0x4D, 0x8D, 0x73, 0x4F, 0xCB, 0xFB, 0xEA, 0xDE, 0x3D, 0x3F, 0x8A, 0x03, 0x9F, 0xAA, 0x2A, 0x2C, 0x99, 0x57, 0xE8, 0x35, 0xAD, 0x55, 0xB2, 0x2E, 0x75, 0xBF, 0x57, 0xBB, 0x55, 0x6A, -+ 0xC8 }, -+ .sig_len = 2420, -+ .sig = { -+ 0xAF, 0x59, 0x20, 0x77, 0x46, 0x03, 0xD2, 0x0E, 0x98, 0xA7, 0x9A, 0xA3, 0xAB, 0xFA, 0x32, 0xB6, 0xE2, 0x25, 0x19, 0xE6, 0x73, 0xE3, 0x7A, 0xC4, 0xAC, 0x73, 0xFE, 0x85, 0x34, 0x1E, 0x2C, 0x29, -+ 0x23, 0xC1, 0x99, 0x2E, 0x1B, 0x0B, 0xBE, 0x38, 0x73, 0xD7, 0xC8, 0xFC, 0x56, 0x62, 0xF2, 0x07, 0xBF, 0x58, 0xEA, 0x38, 0x1C, 0xD4, 0xA3, 0xA0, 0xC0, 0x62, 0xDE, 0xC4, 0x5B, 0xDA, 0xF8, 0xBA, -+ 0x0A, 0xA5, 0x2B, 0xEF, 0x6F, 0xA1, 0x4F, 0x3F, 0x6C, 0xF2, 0x8F, 0x76, 0x20, 0xBF, 0x94, 0xA9, 0x2C, 0xC2, 0x7D, 0x04, 0x54, 0x14, 0xA6, 0x4D, 0x65, 0xC0, 0x14, 0x96, 0x30, 0x52, 0x80, 0x24, -+ 0x28, 0xBF, 0x39, 0x87, 0xA2, 0xD4, 0x75, 0x16, 0xCA, 0x5C, 0x78, 0xAA, 0xB9, 0x6B, 0x7B, 0xE1, 0x1B, 0xCA, 0x5F, 0x2C, 0x5A, 0x26, 0xF3, 0xFC, 0xE3, 0xA2, 0x6E, 0x8E, 0x09, 0xA2, 0x73, 0x8F, -+ 0x38, 0x6F, 0x75, 0xD4, 0x48, 0xF9, 0x37, 0xEF, 0x19, 0xA8, 0x46, 0xBD, 0x4D, 0xD9, 0x49, 0xCA, 0xAF, 0x36, 0xDB, 0x56, 0x29, 0x88, 0x4A, 0xF5, 0x3A, 0x02, 0x3E, 0x3F, 0x18, 0x0F, 0xE4, 0xC0, -+ 0xFA, 0xFF, 0x7B, 0xE5, 0xDF, 0xE4, 0xE8, 0x9A, 0xDE, 0x30, 0x95, 0xA6, 0x56, 0x00, 0x42, 0x14, 0x61, 0xAD, 0x08, 0xC1, 0x29, 0xD6, 0xCE, 0xA8, 0x51, 0xBB, 0x39, 0xC0, 0xD7, 0xA7, 0xD1, 0x51, -+ 0x40, 0x56, 0x89, 0xA0, 0x91, 0xFA, 0x4D, 0xEB, 0xAC, 0x37, 0x3C, 0xF5, 0x4A, 0xE0, 0x78, 0xF0, 0xAF, 0x75, 0x57, 0xBB, 0xC6, 0xF0, 0x6A, 0x53, 0x5A, 0xE8, 0x94, 0x9E, 0x0C, 0x65, 0x30, 0x8A, -+ 0x59, 0x84, 0x00, 0x72, 0x37, 0x52, 0x95, 0x80, 0x2D, 0x0E, 0x2C, 0xE9, 0xA3, 0xDA, 0x98, 0x42, 0x6A, 0x00, 0xFF, 0x03, 0xFE, 0x80, 0x21, 0x8C, 0x0E, 0xEC, 0x8E, 0xFE, 0x58, 0x1C, 0xB9, 0xCC, -+ 0x9A, 0x7D, 0x66, 0xB2, 0x06, 0x45, 0xA8, 0xCD, 0x04, 0x90, 0xD3, 0xCE, 0x4F, 0x7E, 0x6F, 0xEA, 0xE9, 0xC9, 0xEB, 0x7A, 0x57, 0xF9, 0x64, 0xD0, 0xEB, 0xC7, 0xC9, 0x0B, 0x7A, 0x9F, 0x86, 0x30, -+ 0x0B, 0x3E, 0x80, 0x95, 0xE6, 0x4D, 0x12, 0x94, 0xCF, 0xC4, 0xB4, 0xD9, 0xE2, 0x72, 0xE8, 0xFA, 0x8D, 0xB5, 0x70, 0x7D, 0x70, 0x04, 0xAF, 0x22, 0xDB, 0xFF, 0x9C, 0xFD, 0x48, 0x63, 0xDF, 0x57, -+ 0x3F, 0xE0, 0x04, 0x34, 0x1D, 0xA3, 0xCD, 0x4A, 0x30, 0x82, 0x53, 0x2C, 0x26, 0x20, 0x45, 0x5F, 0xA3, 0x7C, 0x56, 0x2B, 0xAF, 0xD5, 0x68, 0x4E, 0xA1, 0x28, 0xAF, 0xC7, 0x9E, 0x01, 0xFC, 0x9B, -+ 0x31, 0xE8, 0x43, 0x3B, 0xAD, 0x7C, 0x02, 0x9F, 0x2F, 0x13, 0xCC, 0x10, 0x59, 0x2D, 0x23, 0x32, 0xE3, 0xE0, 0x8B, 0x80, 0xD3, 0x50, 0x46, 0x3D, 0xE7, 0x27, 0x50, 0xB1, 0xF8, 0x06, 0xF4, 0x93, -+ 0xE1, 0x43, 0xBD, 0x5F, 0xCA, 0x7D, 0x16, 0x98, 0x08, 0x1B, 0x31, 0xBF, 0x87, 0x6B, 0x2A, 0x1B, 0xC9, 0xDF, 0x50, 0x95, 0x2D, 0x13, 0xB6, 0xC1, 0x32, 0x1B, 0x11, 0x11, 0x17, 0x21, 0x45, 0xA6, -+ 0x27, 0xAE, 0x0B, 0x44, 0x27, 0xB9, 0x89, 0x75, 0xCB, 0xFF, 0xF7, 0xD6, 0x82, 0x75, 0x75, 0x4B, 0x45, 0xB6, 0x82, 0xD7, 0x09, 0xE1, 0x68, 0x52, 0x2E, 0x84, 0xFE, 0xA7, 0xDD, 0x3B, 0xB0, 0xF4, -+ 0x15, 0x05, 0xFF, 0x71, 0x92, 0x64, 0x31, 0xD1, 0xA9, 0x0D, 0x4C, 0xBF, 0x9A, 0x52, 0x7A, 0xD4, 0xE2, 0x84, 0x97, 0x6F, 0xFF, 0x8B, 0xD9, 0xD6, 0x22, 0x4A, 0x4F, 0x26, 0x03, 0x91, 0xA9, 0x87, -+ 0xFB, 0x6D, 0xA6, 0xEE, 0x42, 0xC2, 0xA4, 0x90, 0x0F, 0x40, 0x7C, 0xE1, 0xF0, 0x2E, 0x32, 0x24, 0x75, 0xD3, 0x13, 0xFB, 0xEB, 0xB6, 0x8C, 0x2E, 0x05, 0x73, 0x08, 0x09, 0x44, 0x8A, 0x74, 0x28, -+ 0xA5, 0x94, 0x01, 0x39, 0xEB, 0xDF, 0x1B, 0x55, 0x56, 0xFC, 0xC5, 0xD4, 0x2E, 0x1A, 0x13, 0xF3, 0x22, 0x30, 0xCB, 0x6F, 0x07, 0x24, 0x83, 0x1D, 0x0D, 0x07, 0x1B, 0xBA, 0x5A, 0x67, 0x04, 0x80, -+ 0x6F, 0x47, 0x5B, 0x74, 0xBA, 0x91, 0xB6, 0xE3, 0x85, 0xD4, 0x86, 0x20, 0x95, 0x8D, 0x0A, 0xB1, 0xBF, 0x2B, 0x18, 0x4E, 0x10, 0xF3, 0xE7, 0x53, 0xB7, 0x13, 0x37, 0xBE, 0x9E, 0xB6, 0x53, 0x78, -+ 0x67, 0x85, 0xB4, 0x3A, 0xC7, 0xE5, 0xC4, 0x94, 0xAC, 0x1B, 0xCB, 0x04, 0x3D, 0x46, 0x14, 0x25, 0xB3, 0x60, 0x98, 0xAC, 0x93, 0x05, 0x5A, 0x01, 0x05, 0xAB, 0x85, 0x23, 0xB6, 0x1D, 0x02, 0x4A, -+ 0x6E, 0x9B, 0x56, 0xA4, 0x2D, 0x3C, 0x04, 0x72, 0x65, 0x12, 0xAE, 0x4C, 0xFE, 0x05, 0x71, 0x04, 0x46, 0xB0, 0x6F, 0x69, 0x42, 0x34, 0xEE, 0x4F, 0xA8, 0xFE, 0xED, 0xDD, 0xC5, 0xF2, 0x8A, 0x65, -+ 0xED, 0xE2, 0xEB, 0x58, 0xE9, 0x65, 0xFE, 0x36, 0x27, 0xA5, 0x71, 0xBC, 0x45, 0xB3, 0x97, 0xED, 0x09, 0x2A, 0xB4, 0xBE, 0x00, 0x04, 0x17, 0x29, 0xC4, 0xD1, 0x92, 0xFE, 0x30, 0x67, 0x82, 0x79, -+ 0xD2, 0x23, 0xA8, 0x48, 0xCF, 0x43, 0x66, 0xE9, 0x2B, 0x3F, 0x68, 0xDE, 0xE9, 0x7C, 0x9B, 0x4A, 0x7F, 0xF2, 0x2F, 0x93, 0x7B, 0xE6, 0xC5, 0x66, 0x39, 0x96, 0x1D, 0xB2, 0x9F, 0xA3, 0xCF, 0xEC, -+ 0xFF, 0xF2, 0x93, 0x14, 0x08, 0x86, 0xFF, 0xB9, 0x2E, 0xBC, 0x79, 0xDA, 0xB5, 0x9C, 0xEA, 0xF8, 0x69, 0xC6, 0x4F, 0x8E, 0xAF, 0x58, 0x5C, 0xE9, 0x7D, 0xD6, 0xB7, 0x8F, 0x89, 0x27, 0x72, 0xDB, -+ 0x88, 0xA9, 0x58, 0xCF, 0x0A, 0xB5, 0x57, 0xA7, 0xFA, 0xA8, 0x3F, 0xE6, 0x21, 0x47, 0x7E, 0x2B, 0x84, 0x49, 0x7A, 0xB5, 0xA8, 0xEC, 0xF4, 0xA7, 0xBD, 0x32, 0xDF, 0xB9, 0x02, 0xF0, 0x5D, 0x2C, -+ 0xA3, 0x10, 0x47, 0xD0, 0xF1, 0x91, 0x9A, 0xDD, 0xE1, 0xEE, 0x6D, 0xFD, 0x58, 0xE5, 0x9B, 0xC4, 0xDA, 0xB3, 0xCC, 0xBB, 0xA3, 0x6A, 0xAA, 0xF6, 0xAF, 0xCC, 0xC7, 0xB0, 0x95, 0xCA, 0x94, 0xA1, -+ 0x95, 0xBE, 0x9A, 0x28, 0x95, 0x26, 0xB5, 0x88, 0xC3, 0xA9, 0xC5, 0x68, 0x76, 0xFC, 0x41, 0x5D, 0x52, 0x1D, 0x44, 0x2B, 0xAC, 0x02, 0x98, 0xD3, 0x02, 0x41, 0x9A, 0xD5, 0x27, 0xDA, 0x24, 0x9C, -+ 0x2A, 0x66, 0x0C, 0xD0, 0x64, 0x21, 0x3F, 0xFA, 0xD5, 0x63, 0x18, 0x3F, 0x37, 0x97, 0x25, 0x78, 0xEE, 0xB9, 0xF7, 0x0A, 0xC6, 0x7A, 0xEE, 0x6C, 0xC2, 0xB7, 0x1F, 0x28, 0x3A, 0x95, 0x93, 0x0B, -+ 0x55, 0x47, 0x38, 0x55, 0x57, 0x91, 0xC2, 0x5E, 0x7A, 0x39, 0x9E, 0x68, 0x56, 0x36, 0xD5, 0x8D, 0x69, 0xCB, 0x6B, 0xE7, 0x93, 0xB4, 0x5C, 0x19, 0x69, 0xE7, 0xD5, 0x61, 0x56, 0x27, 0xEB, 0xC3, -+ 0x2E, 0xED, 0x45, 0x44, 0x0F, 0x87, 0x88, 0x0D, 0x28, 0x29, 0xFA, 0x4F, 0xC8, 0x71, 0x86, 0x61, 0x64, 0xD2, 0x59, 0xED, 0x95, 0xD2, 0x73, 0x18, 0x71, 0x01, 0x7F, 0xF5, 0x18, 0x94, 0x06, 0x6F, -+ 0xAE, 0x1F, 0xFA, 0x6F, 0x4B, 0x4A, 0x6F, 0x84, 0xFC, 0xFF, 0xDA, 0x09, 0xE7, 0x18, 0xFA, 0x17, 0x13, 0x5E, 0xDB, 0x3F, 0x48, 0x55, 0x8D, 0x5B, 0xA6, 0x7F, 0x9E, 0x6F, 0x09, 0x00, 0x34, 0x0B, -+ 0xD0, 0x4D, 0xFE, 0x59, 0xB7, 0xBD, 0x67, 0x74, 0x58, 0x84, 0xFB, 0x84, 0xAE, 0x3F, 0x8E, 0xE7, 0x63, 0xD2, 0x02, 0x74, 0x36, 0x52, 0xD4, 0xF7, 0x33, 0x34, 0x50, 0x58, 0x04, 0x90, 0xB9, 0xC7, -+ 0x44, 0x93, 0x5B, 0x19, 0xC1, 0xD5, 0xFB, 0x0D, 0xB5, 0xFB, 0xB4, 0x61, 0x41, 0x13, 0x62, 0x83, 0x80, 0x37, 0xEB, 0x7E, 0xC3, 0xF6, 0x3F, 0x26, 0xC8, 0x93, 0xE7, 0xCC, 0x1C, 0x3B, 0x3F, 0x47, -+ 0x67, 0xAB, 0xAE, 0x00, 0xFE, 0xB7, 0xBB, 0x99, 0xB1, 0x42, 0x0B, 0xB2, 0x9E, 0xA6, 0x14, 0x74, 0x78, 0x96, 0xD9, 0xED, 0xCF, 0x81, 0x07, 0xFE, 0x50, 0x4C, 0x9C, 0x30, 0x8A, 0x82, 0x64, 0xDA, -+ 0xCE, 0x31, 0x8D, 0x87, 0xCF, 0xE4, 0x76, 0x18, 0x03, 0xE9, 0xA6, 0x0D, 0xEF, 0xA6, 0x14, 0x4A, 0xAB, 0xC1, 0xF1, 0x0A, 0x45, 0xB1, 0x40, 0xDE, 0xD7, 0x54, 0xE7, 0x35, 0x86, 0xC4, 0x67, 0xBB, -+ 0x7B, 0xF1, 0x9E, 0xDE, 0xF2, 0x5B, 0xE0, 0xC6, 0x5E, 0x93, 0xC5, 0xE5, 0xEB, 0x8F, 0x88, 0x0C, 0xCE, 0x4A, 0x85, 0x87, 0x57, 0xF8, 0xFF, 0x56, 0x06, 0x2B, 0x10, 0x67, 0xF4, 0x10, 0x6F, 0x76, -+ 0xB7, 0x00, 0x7F, 0x6E, 0xA6, 0xF9, 0x45, 0x04, 0x7E, 0x85, 0xBD, 0x0F, 0xAD, 0x9D, 0x26, 0x99, 0x4F, 0x67, 0x8A, 0x06, 0x12, 0xB8, 0x7C, 0xCF, 0x9C, 0x0C, 0xF9, 0xA4, 0x33, 0xD8, 0x89, 0xC9, -+ 0x6E, 0x4C, 0x12, 0xBE, 0x37, 0x22, 0x77, 0x00, 0x5B, 0x06, 0xAD, 0x12, 0x71, 0x05, 0xD1, 0x6D, 0x8F, 0xB1, 0x42, 0xAE, 0xAE, 0x53, 0x73, 0xAB, 0xD6, 0x1D, 0x9A, 0xDC, 0xFC, 0x55, 0x50, 0xD6, -+ 0x23, 0xCA, 0x3B, 0x88, 0x24, 0xB0, 0xE2, 0xE0, 0x8C, 0x2B, 0xF4, 0xE2, 0x84, 0x1E, 0xAC, 0x4C, 0x5D, 0xC5, 0x6C, 0xF8, 0x95, 0x4C, 0xF2, 0x07, 0xC2, 0x63, 0xF2, 0x7C, 0x9F, 0x30, 0x9F, 0x10, -+ 0x30, 0x7C, 0x0D, 0x84, 0xA6, 0x58, 0x78, 0x42, 0x50, 0x31, 0x37, 0x5D, 0xD8, 0x10, 0xD2, 0xD7, 0xE5, 0x10, 0x98, 0xA3, 0x81, 0x43, 0x50, 0x79, 0x5C, 0x4A, 0x07, 0x7F, 0xA4, 0x0D, 0xD4, 0x4F, -+ 0x0F, 0xA7, 0x51, 0x0F, 0x7C, 0x3F, 0x63, 0x14, 0x07, 0xCF, 0x34, 0xF6, 0x04, 0xC7, 0xB3, 0x35, 0x63, 0x2A, 0x20, 0xD2, 0xAD, 0x41, 0x9B, 0xD7, 0xCC, 0x6D, 0x42, 0x42, 0xB1, 0xC6, 0x6C, 0x35, -+ 0xE5, 0xA5, 0xED, 0xCC, 0xB1, 0x3C, 0xA3, 0x7D, 0x3B, 0x50, 0x46, 0x5F, 0x3B, 0x4A, 0xAF, 0xF7, 0xE3, 0x16, 0x1E, 0x79, 0x36, 0x08, 0x8A, 0xE0, 0x84, 0x01, 0xFD, 0x2C, 0x37, 0xD6, 0x7A, 0x2F, -+ 0xF9, 0x1D, 0x3E, 0x6F, 0x08, 0x68, 0x6D, 0x64, 0xBC, 0x2F, 0xC6, 0xC5, 0x71, 0x06, 0xE4, 0x9F, 0xA3, 0x84, 0xAC, 0x22, 0x21, 0x9F, 0x07, 0xEE, 0x89, 0x96, 0xCA, 0x3D, 0xFF, 0x59, 0xDC, 0xC5, -+ 0x09, 0x2A, 0x4B, 0xAD, 0xBE, 0x87, 0xAE, 0xDE, 0x7F, 0x69, 0xA0, 0x4C, 0x79, 0xB3, 0x3B, 0xDF, 0x35, 0xD4, 0xA0, 0xE4, 0xCB, 0x4B, 0x55, 0x01, 0x9C, 0xB0, 0xBF, 0x27, 0x52, 0x95, 0xB9, 0x3B, -+ 0xDA, 0xBE, 0xA5, 0x16, 0xCA, 0x2B, 0x61, 0x6A, 0x56, 0x91, 0x86, 0x00, 0xB7, 0x24, 0xBE, 0x7A, 0x01, 0xEC, 0x4E, 0xF5, 0x43, 0x12, 0xB3, 0x0D, 0x66, 0xF5, 0x07, 0x81, 0x5F, 0x27, 0x80, 0xFF, -+ 0xEE, 0x7C, 0x30, 0xF8, 0x42, 0x5A, 0x92, 0x25, 0x2C, 0xE5, 0x50, 0xFA, 0xB4, 0xE9, 0x02, 0xE7, 0xB3, 0x82, 0xD4, 0x6D, 0xBD, 0x20, 0xEF, 0xE1, 0xBB, 0x0E, 0xF8, 0xA4, 0x96, 0x87, 0x3C, 0x09, -+ 0xC4, 0xCE, 0xB0, 0x30, 0x3C, 0x7F, 0x1D, 0xAB, 0xA0, 0x10, 0x2D, 0xE9, 0x41, 0x90, 0xB6, 0xAC, 0x6D, 0xC8, 0x10, 0xF7, 0x2B, 0xCA, 0x3A, 0xA2, 0x92, 0xFF, 0x38, 0xBD, 0x51, 0xA7, 0xFA, 0xB8, -+ 0x50, 0x9E, 0xC4, 0xFB, 0xE0, 0xEA, 0xA3, 0xC9, 0x86, 0x16, 0x6A, 0x67, 0x4B, 0x78, 0x71, 0x15, 0x5C, 0x34, 0x8C, 0x47, 0x7E, 0xF8, 0xCE, 0xDC, 0x83, 0x2B, 0x5A, 0xBE, 0xE7, 0x1A, 0x8D, 0x18, -+ 0xD0, 0x6D, 0xD0, 0xF5, 0x22, 0x11, 0x60, 0xAB, 0xEB, 0x71, 0xE6, 0xE8, 0x2C, 0xFA, 0xBF, 0x73, 0x1E, 0xA3, 0x51, 0x5A, 0x76, 0xEF, 0x07, 0xB2, 0xC1, 0x6C, 0x63, 0xB3, 0x7F, 0x7A, 0xB7, 0x3B, -+ 0x67, 0xF0, 0x05, 0x92, 0x9A, 0x75, 0x3E, 0x45, 0x3B, 0x93, 0x0C, 0x0A, 0xF4, 0x32, 0x27, 0x7F, 0xD7, 0x7D, 0x8A, 0x1E, 0xB8, 0x02, 0x2C, 0xDE, 0x96, 0x65, 0x76, 0x3B, 0x01, 0x4F, 0x0A, 0x67, -+ 0x2A, 0x04, 0x16, 0x0B, 0x0A, 0x06, 0xF5, 0x54, 0x0F, 0x4C, 0x26, 0x4B, 0x7F, 0x22, 0x74, 0x06, 0x90, 0xA2, 0x35, 0x2D, 0xC8, 0x63, 0xB5, 0x88, 0x30, 0x3A, 0xD5, 0x1F, 0x0A, 0xE1, 0x62, 0xBF, -+ 0x79, 0x79, 0x7F, 0x07, 0xB5, 0x34, 0x50, 0x1C, 0xBB, 0xFD, 0xB7, 0x13, 0xA7, 0x24, 0xAA, 0x98, 0xE1, 0x95, 0x32, 0x18, 0x71, 0x80, 0xCC, 0xFA, 0xDC, 0x6E, 0xBE, 0x31, 0x42, 0xFA, 0x7D, 0xB6, -+ 0x6C, 0xD4, 0xDE, 0x7B, 0x9F, 0xBD, 0x4C, 0x82, 0x35, 0x68, 0x6D, 0xB6, 0x8C, 0xAF, 0x48, 0x9A, 0xFA, 0x4E, 0x1E, 0x87, 0xAE, 0xF0, 0xCE, 0xFD, 0x80, 0x37, 0xE3, 0xA5, 0x78, 0xEE, 0x62, 0xEB, -+ 0x7F, 0x94, 0xED, 0x5B, 0xC0, 0xB5, 0x8E, 0xEA, 0x4B, 0x4C, 0x45, 0xFC, 0x56, 0xD3, 0x1D, 0x29, 0x94, 0x4D, 0x09, 0x5A, 0xC9, 0x6C, 0x29, 0x08, 0x3D, 0xA2, 0xC7, 0x71, 0x81, 0xD9, 0x7A, 0x55, -+ 0xFE, 0x6E, 0x90, 0x3A, 0x2F, 0x27, 0x83, 0xDE, 0x0B, 0xAA, 0x5F, 0x47, 0xD7, 0x04, 0x78, 0x5C, 0x33, 0xE8, 0xD5, 0xC8, 0x7E, 0xD6, 0x1E, 0x65, 0x45, 0x91, 0x67, 0x31, 0x0E, 0xB7, 0xA9, 0x95, -+ 0x74, 0xEF, 0x81, 0x9A, 0xE9, 0x16, 0x1A, 0x3B, 0xD0, 0x96, 0x34, 0x80, 0x3D, 0x9E, 0x1E, 0x4E, 0xC7, 0x38, 0x6D, 0x79, 0x46, 0x98, 0x45, 0x17, 0x21, 0x3A, 0xB9, 0xCF, 0x66, 0xAE, 0xA5, 0x51, -+ 0xCC, 0x45, 0x7C, 0x39, 0xF8, 0x6A, 0xF2, 0x94, 0xCF, 0x7B, 0x07, 0x3F, 0x56, 0x3E, 0xD4, 0xDA, 0xB9, 0x41, 0x9B, 0xDF, 0x00, 0x4B, 0xD0, 0x5C, 0x92, 0xB4, 0xE8, 0x0E, 0xC3, 0xCF, 0xEA, 0xC9, -+ 0x7E, 0x1D, 0xDA, 0x55, 0x4F, 0xDA, 0x62, 0x5C, 0x4B, 0x9B, 0x03, 0x9B, 0xAA, 0x7C, 0x5A, 0x2F, 0x6F, 0x97, 0x05, 0x77, 0x92, 0x48, 0x3C, 0xF5, 0xF8, 0x52, 0xD4, 0xC3, 0xAC, 0x71, 0xAD, 0x50, -+ 0xF7, 0x79, 0x95, 0x3D, 0xCF, 0xE2, 0xF6, 0x3E, 0xD2, 0x35, 0xD8, 0xE1, 0xD5, 0x34, 0x5D, 0x6C, 0x6D, 0xF0, 0x55, 0x5C, 0xC2, 0x63, 0x1D, 0xEA, 0xD9, 0xB7, 0x14, 0xBC, 0x4C, 0x16, 0x50, 0x1E, -+ 0x01, 0x26, 0x13, 0x81, 0xF3, 0x67, 0x97, 0x15, 0x34, 0x51, 0x23, 0x38, 0x8C, 0x85, 0x2D, 0x57, 0xDC, 0xF1, 0x94, 0x1D, 0x09, 0x11, 0xD4, 0x9F, 0xEA, 0x71, 0x43, 0xFD, 0x2F, 0xC3, 0x43, 0xA5, -+ 0x07, 0x5B, 0x64, 0xCC, 0xA4, 0x82, 0x91, 0xDC, 0x28, 0xB8, 0x3F, 0x76, 0x07, 0x45, 0x89, 0xEA, 0xB2, 0x17, 0xC7, 0x84, 0x78, 0x40, 0x65, 0x2C, 0x0E, 0x3A, 0xE2, 0x78, 0xB3, 0xB6, 0xFB, 0x0D, -+ 0x80, 0x0C, 0x5E, 0x7D, 0xB7, 0x9D, 0x5C, 0xB9, 0xCC, 0x1A, 0x87, 0x45, 0x0C, 0x00, 0xB7, 0x67, 0x78, 0x12, 0xD2, 0x2E, 0xE2, 0x0F, 0xDE, 0x8C, 0x17, 0x53, 0xA7, 0xFB, 0x93, 0xBA, 0x8B, 0xBB, -+ 0x85, 0x95, 0xA6, 0x39, 0x3D, 0xF5, 0x4A, 0xA9, 0xCD, 0xB6, 0xE0, 0x87, 0x9A, 0x26, 0xE4, 0x9B, 0xD3, 0xB0, 0x15, 0x13, 0xC6, 0x05, 0x3A, 0x07, 0x46, 0xC8, 0x59, 0x6C, 0xE5, 0xE5, 0xB2, 0x25, -+ 0xCF, 0xCA, 0x26, 0xAB, 0x8B, 0xF1, 0x2F, 0x1F, 0xE0, 0xA6, 0x47, 0xA9, 0xE4, 0x45, 0x30, 0x39, 0xA1, 0x22, 0x61, 0x94, 0xC4, 0x6E, 0x8B, 0x98, 0xAC, 0xD7, 0x10, 0xF1, 0x8F, 0xB7, 0xEC, 0x05, -+ 0x47, 0x6C, 0x1C, 0xD8, 0xFC, 0x31, 0x12, 0xCC, 0xDD, 0xB1, 0x58, 0x2B, 0x88, 0x17, 0xC1, 0x8F, 0xE3, 0x15, 0x35, 0x3E, 0x7A, 0x47, 0xC8, 0x21, 0xE9, 0xEE, 0x3A, 0x43, 0xCA, 0xDE, 0x1B, 0x80, -+ 0xD9, 0x2A, 0x0A, 0xE8, 0xDC, 0xEB, 0x4D, 0xFF, 0x76, 0x6A, 0x54, 0xDF, 0x36, 0x65, 0xFE, 0xFE, 0x3C, 0x25, 0x2B, 0x72, 0xDA, 0xD7, 0xB1, 0xE3, 0x35, 0x9E, 0x7F, 0xA2, 0x55, 0x62, 0xC3, 0xE3, -+ 0x9D, 0xB5, 0x21, 0xCE, 0x18, 0x74, 0x11, 0x1F, 0xB0, 0x90, 0xDB, 0xD3, 0x8B, 0x31, 0x80, 0xAD, 0x03, 0x4B, 0x57, 0xB0, 0x31, 0xDC, 0x4D, 0xD6, 0xAF, 0x7C, 0x1A, 0x8A, 0xF3, 0xF6, 0xCE, 0x7E, -+ 0xDB, 0x1A, 0x9E, 0x4B, 0x6D, 0x4A, 0x59, 0x20, 0xE3, 0x62, 0x08, 0x18, 0x82, 0x06, 0x59, 0x76, 0x2E, 0xF7, 0xA4, 0x24, 0x3F, 0x51, 0xDF, 0x2D, 0x8A, 0x90, 0x07, 0x37, 0xD5, 0x81, 0x05, 0x69, -+ 0x9B, 0x4E, 0x10, 0xCB, 0xCB, 0x35, 0x9C, 0x7F, 0x3A, 0x40, 0x07, 0x69, 0x7C, 0x48, 0x20, 0x50, 0xEC, 0x33, 0xCF, 0x80, 0x41, 0x91, 0x6A, 0x3B, 0x91, 0x9A, 0x50, 0xD9, 0x6E, 0xF0, 0xF5, 0x89, -+ 0xFD, 0x45, 0x56, 0xF3, 0x0D, 0xBD, 0xD9, 0x42, 0xEA, 0xB7, 0x9D, 0xFA, 0x97, 0xC0, 0x7E, 0x30, 0x24, 0x70, 0x74, 0x35, 0x2E, 0x1B, 0xF9, 0x8E, 0x34, 0x9C, 0xC7, 0xEF, 0xA5, 0xA1, 0xB8, 0xFC, -+ 0xE4, 0xF1, 0x8F, 0x1F, 0xAF, 0x6F, 0x07, 0xC9, 0x9C, 0x32, 0x14, 0x48, 0xB0, 0x39, 0x5C, 0x8A, 0x9C, 0xBC, 0x46, 0x64, 0x12, 0xF8, 0x9C, 0x1A, 0x98, 0xBF, 0x57, 0x15, 0x84, 0x28, 0x44, 0xF0, -+ 0xE8, 0x23, 0x6F, 0xA4, 0x69, 0x6C, 0x46, 0x58, 0xB8, 0xFD, 0xE4, 0x42, 0x5D, 0x09, 0xD6, 0x7A, 0x38, 0xAC, 0x72, 0x58, 0xE5, 0xD5, 0x96, 0x6F, 0x2D, 0x3F, 0xF6, 0x6A, 0x0C, 0x0C, 0xE7, 0x6E, -+ 0x7F, 0x6B, 0x81, 0xA1, 0xBC, 0xD0, 0x47, 0xFD, 0x3A, 0x20, 0x5B, 0xF0, 0xCC, 0xAE, 0xA3, 0xB1, 0x10, 0x79, 0x90, 0x9C, 0x6C, 0xE5, 0x69, 0x8F, 0x32, 0xE1, 0xF3, 0x40, 0x96, 0x58, 0xFF, 0xA0, -+ 0x1E, 0xAE, 0xCB, 0x4A, 0xE2, 0xB0, 0x92, 0xB7, 0x89, 0x89, 0xDA, 0xAD, 0x66, 0x23, 0xBB, 0x11, 0xF4, 0x9F, 0x0F, 0x8F, 0x86, 0x99, 0xEC, 0x05, 0x66, 0x15, 0x02, 0xFF, 0xCA, 0xD0, 0x3C, 0xF4, -+ 0x15, 0x19, 0x1A, 0x22, 0x2D, 0x3C, 0x4C, 0x7B, 0x8A, 0xB0, 0xB5, 0xB9, 0xBB, 0xC2, 0xD9, 0xDC, 0xEF, 0xF7, 0x20, 0x2D, 0x3F, 0x42, 0x44, 0x49, 0x4F, 0x52, 0x53, 0x64, 0x66, 0x69, 0x74, 0xC4, -+ 0xD9, 0xE6, 0xF5, 0xFA, 0x00, 0x01, 0x04, 0x19, 0x27, 0x37, 0x3D, 0x5A, 0x76, 0x80, 0xB8, 0xC1, 0xC9, 0xFE, 0x20, 0x29, 0x38, 0x3B, 0x3C, 0x48, 0x4D, 0x56, 0x5F, 0x65, 0x79, 0x9D, 0x9E, 0xA6, -+ 0xA9, 0xAD, 0xD2, 0xDE, 0xE5, 0xE7, 0xF7, 0xF9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x24, 0x32, 0x48, -+ }, -+ }, -+ { -+ .name = "Dilithium Round 3, Level 3 (4-4) KAT 1", -+ .version = 0, -+ .keyform = CK_IBM_DILITHIUM_KEYFORM_ROUND3_44, -+ .rho_len = 32, -+ .rho = { -+ 0xB5, 0x41, 0xC1, 0xE9, 0x2C, 0xEA, 0xDD, 0x90, 0x4A, 0x09, 0xEC, 0x08, 0xAD, 0x30, 0x6D, 0x97, 0x47, 0x34, 0xA0, 0x77, 0x86, 0x84, 0x71, 0xE5, 0x8D, 0x07, 0x71, 0x87, 0xC4, 0x66, 0x04, 0xCF, -+ }, -+ .seed_len = 32, -+ .seed = { -+ 0x95, 0x2D, 0x21, 0x81, 0xAC, 0x1F, 0x62, 0x59, 0x6F, 0x76, 0x7E, 0xFC, 0xA0, 0xB5, 0x5D, 0xB0, 0x92, 0xEF, 0x81, 0xDB, 0x66, 0xF9, 0xFF, 0xF1, 0x5F, 0x13, 0xD7, 0xAE, 0xEA, 0xCD, 0x8B, 0x3A, -+ }, -+ .tr_len = 32, -+ .tr = { -+ 0x57, 0x96, 0xFB, 0xFE, 0x5B, 0x4E, 0x2E, 0xDE, 0xC5, 0xDB, 0xC9, 0x52, 0xF6, 0x0E, 0xB1, 0x22, 0x90, 0x18, 0x93, 0xCA, 0x25, 0x2D, 0xD7, 0x30, 0x41, 0x2A, 0xC4, 0xB6, 0xE0, 0x20, 0x09, 0x71, -+ }, -+ .s1_len = 384, -+ .s1 = { -+ 0x03, 0x40, 0x28, 0x8C, 0x88, 0x60, 0x21, 0xB1, 0x90, 0x0C, 0x12, 0x0D, 0x58, 0x18, 0x09, 0x23, 0x44, 0x86, 0x03, 0x02, 0x84, 0x89, 0xB2, 0x28, 0x0C, 0x97, 0x2C, 0x11, 0xC2, 0x09, 0x18, 0x32, -+ 0x08, 0x09, 0x10, 0x91, 0x14, 0x82, 0x8C, 0x13, 0x03, 0x05, 0x11, 0x01, 0x4C, 0x62, 0x18, 0x8A, 0xDB, 0x08, 0x8A, 0x93, 0x38, 0x12, 0x09, 0xA9, 0x20, 0xE4, 0xA8, 0x41, 0x1A, 0xA1, 0x40, 0xD1, -+ 0x42, 0x2E, 0x59, 0x92, 0x24, 0xD0, 0x26, 0x00, 0x19, 0x93, 0x84, 0xE2, 0x28, 0x92, 0x1B, 0x19, 0x50, 0xA3, 0x10, 0x8E, 0xA2, 0x28, 0x20, 0x93, 0x34, 0x70, 0x94, 0xC0, 0x4D, 0x24, 0x35, 0x41, -+ 0x14, 0x05, 0x62, 0xC2, 0x22, 0x31, 0x1A, 0x38, 0x4E, 0xCC, 0x42, 0x44, 0x13, 0x20, 0x82, 0x08, 0x18, 0x6D, 0xE0, 0x14, 0x0D, 0x01, 0x36, 0x61, 0x08, 0x22, 0x29, 0x14, 0xB5, 0x11, 0x49, 0x22, -+ 0x32, 0xE2, 0x42, 0x26, 0xE4, 0x04, 0x01, 0x5B, 0x48, 0x2A, 0x11, 0x02, 0x60, 0x63, 0x02, 0x48, 0x4A, 0x24, 0x2C, 0x62, 0x40, 0x90, 0x03, 0x41, 0x8D, 0x18, 0xC8, 0x30, 0x82, 0x02, 0x82, 0x51, -+ 0x98, 0x69, 0xA2, 0x24, 0x50, 0x0A, 0x39, 0x4D, 0x84, 0x00, 0x8E, 0x84, 0x08, 0x21, 0xD9, 0x30, 0x6C, 0xE3, 0x18, 0x29, 0x23, 0x45, 0x6E, 0xCA, 0x24, 0x66, 0x08, 0x21, 0x49, 0x14, 0x16, 0x52, -+ 0xDA, 0xA0, 0x0C, 0x22, 0x19, 0x62, 0xC1, 0xB8, 0x08, 0x8A, 0x88, 0x8C, 0x22, 0xB1, 0x0C, 0x23, 0xB8, 0x0D, 0x00, 0x93, 0x64, 0x93, 0x16, 0x82, 0x63, 0x32, 0x30, 0xDC, 0xA2, 0x41, 0xD1, 0x48, -+ 0x42, 0x82, 0xA2, 0x64, 0xD4, 0x24, 0x48, 0x94, 0x48, 0x25, 0x02, 0x82, 0x65, 0xD9, 0x08, 0x69, 0x12, 0x44, 0x21, 0x54, 0x24, 0x70, 0x04, 0x80, 0x84, 0xDA, 0x44, 0x25, 0xA0, 0x24, 0x8A, 0x13, -+ 0x35, 0x60, 0x84, 0xA0, 0x4C, 0x93, 0x90, 0x48, 0x13, 0x47, 0x02, 0x83, 0x20, 0x05, 0x64, 0xB4, 0x0C, 0x5C, 0x12, 0x72, 0x42, 0x14, 0x86, 0x60, 0x02, 0x12, 0x50, 0x44, 0x04, 0x0B, 0x82, 0x11, -+ 0x91, 0x18, 0x72, 0x48, 0x88, 0x10, 0xD0, 0x40, 0x4D, 0xCB, 0x98, 0x51, 0x49, 0xA4, 0x8D, 0x18, 0x25, 0x89, 0xD4, 0x32, 0x8E, 0x52, 0xA4, 0x10, 0x11, 0x40, 0x12, 0x88, 0x26, 0x88, 0x21, 0x17, -+ 0x6A, 0xA2, 0xB2, 0x41, 0xE4, 0x02, 0x89, 0xA1, 0xA0, 0x30, 0x94, 0xC8, 0x41, 0x1B, 0x83, 0x64, 0x12, 0x05, 0x0A, 0x1C, 0x43, 0x8C, 0x84, 0x06, 0x31, 0x0A, 0xA2, 0x6D, 0x24, 0x17, 0x31, 0xC3, -+ 0x98, 0x28, 0x42, 0x88, 0x25, 0x8C, 0x30, 0x52, 0xA0, 0x02, 0x0E, 0x98, 0x36, 0x88, 0x03, 0x81, 0x31, 0x64, 0x18, 0x6C, 0x09, 0x82, 0x69, 0x19, 0x41, 0x4C, 0xA0, 0x26, 0x11, 0x23, 0x35, 0x60, -+ }, -+ .s2_len = 384, -+ .s2 = { -+ 0x01, 0x04, 0x85, 0x64, 0x86, 0x30, 0xD9, 0x20, 0x84, 0xD9, 0x08, 0x2A, 0xDC, 0x32, 0x61, 0x1C, 0xC2, 0x80, 0x89, 0x82, 0x51, 0x14, 0x10, 0x40, 0x19, 0x05, 0x80, 0x58, 0x04, 0x06, 0x99, 0x08, -+ 0x84, 0x09, 0x27, 0x41, 0xCA, 0x20, 0x8A, 0x93, 0x00, 0x91, 0x03, 0xC6, 0x81, 0xC2, 0xC8, 0x09, 0xC3, 0x30, 0x4D, 0x23, 0x12, 0x0A, 0x9B, 0x42, 0x8D, 0x20, 0x23, 0x6A, 0x54, 0x30, 0x22, 0xCC, -+ 0xA4, 0x29, 0xA2, 0x18, 0x31, 0x40, 0x20, 0x6E, 0x92, 0x90, 0x48, 0x41, 0xB8, 0x45, 0x83, 0x38, 0x08, 0x5C, 0x46, 0x80, 0x59, 0x36, 0x45, 0xE3, 0xB0, 0x31, 0x18, 0x06, 0x6A, 0x53, 0x16, 0x6D, -+ 0x21, 0x99, 0x81, 0x00, 0x30, 0x4E, 0xC8, 0x26, 0x48, 0x18, 0xC0, 0x88, 0x19, 0x14, 0x92, 0xC1, 0x98, 0x45, 0x98, 0x08, 0x84, 0x9B, 0x10, 0x4D, 0x0C, 0x96, 0x90, 0x08, 0x91, 0x69, 0x0C, 0xB1, -+ 0x4D, 0x91, 0x28, 0x6E, 0xC9, 0x06, 0x8C, 0x58, 0x00, 0x0A, 0x0C, 0x96, 0x05, 0x8A, 0x46, 0x06, 0xD4, 0x98, 0x29, 0x83, 0x26, 0x50, 0xE1, 0x10, 0x61, 0xD0, 0x96, 0x50, 0x23, 0x12, 0x24, 0x52, -+ 0x20, 0x80, 0xE4, 0x04, 0x48, 0x0C, 0x23, 0x92, 0x0B, 0xB7, 0x0D, 0x0C, 0x82, 0x90, 0xD1, 0x10, 0x90, 0x21, 0x22, 0x11, 0x0A, 0x12, 0x64, 0x53, 0xB6, 0x71, 0x99, 0x28, 0x69, 0xC1, 0xC4, 0x4D, -+ 0x04, 0xA0, 0x8D, 0xCB, 0x96, 0x41, 0x58, 0x14, 0x06, 0x0C, 0x21, 0x70, 0x8B, 0x30, 0x25, 0x52, 0xA2, 0x25, 0x21, 0x19, 0x30, 0x00, 0xA3, 0x28, 0xD0, 0xB8, 0x09, 0xCC, 0x16, 0x12, 0xDC, 0x94, -+ 0x6D, 0x01, 0x20, 0x81, 0xDC, 0x42, 0x42, 0xE1, 0x28, 0x01, 0x0C, 0x87, 0x89, 0x02, 0x84, 0x09, 0x02, 0x17, 0x88, 0xD8, 0x34, 0x30, 0x1C, 0x33, 0x64, 0x44, 0xA0, 0x09, 0xA0, 0xA0, 0x0D, 0xE3, -+ 0x90, 0x4D, 0x01, 0x08, 0x65, 0xE2, 0x42, 0x69, 0xA2, 0xC0, 0x91, 0x99, 0x16, 0x62, 0x9B, 0x02, 0x60, 0x40, 0x88, 0x50, 0x40, 0x86, 0x71, 0xA4, 0xC4, 0x61, 0x62, 0x22, 0x20, 0x10, 0x12, 0x11, -+ 0x4B, 0x26, 0x22, 0x09, 0x07, 0x88, 0x1A, 0x26, 0x85, 0x58, 0x86, 0x80, 0xDA, 0xA0, 0x8C, 0x0B, 0x85, 0x68, 0x42, 0x22, 0x82, 0x88, 0x24, 0x61, 0x8C, 0x98, 0x8C, 0x23, 0x30, 0x25, 0x24, 0x40, -+ 0x45, 0x08, 0xC8, 0x6C, 0x23, 0x14, 0x28, 0x4A, 0x28, 0x10, 0x81, 0x20, 0x72, 0x88, 0x32, 0x26, 0x93, 0xA6, 0x6D, 0x5B, 0xB6, 0x29, 0xC1, 0x24, 0x0D, 0x49, 0x20, 0x70, 0x59, 0x48, 0x26, 0x20, -+ 0x26, 0x65, 0xCB, 0xA4, 0x88, 0x4A, 0xA6, 0x30, 0x08, 0x45, 0x8E, 0x00, 0x32, 0x88, 0x24, 0x33, 0x0D, 0xA1, 0x46, 0x72, 0x9B, 0x12, 0x00, 0x14, 0xB5, 0x21, 0xE3, 0x02, 0x09, 0x23, 0x42, 0x28, -+ }, -+ .t0_len = 1664, -+ .t0 = { -+ 0x2A, 0xD8, 0xD7, 0x4C, 0xE8, 0x1B, 0x82, 0x66, 0x32, 0x1C, 0x15, 0xEA, 0x97, 0x8C, 0xCC, 0x75, 0xCC, 0x04, 0x3E, 0x18, 0xFA, 0x5B, 0x8E, 0x92, 0x21, 0x9E, 0x47, 0x6F, 0x1F, 0x36, 0xA1, 0x92, -+ 0x43, 0x5C, 0x3F, 0x9B, 0x0A, 0xD4, 0xA6, 0x80, 0x32, 0x18, 0xAA, 0xA1, 0x48, 0x1E, 0x6D, 0x8A, 0x89, 0x48, 0xF1, 0xF6, 0xE0, 0x40, 0x54, 0xBC, 0x30, 0x7F, 0x5B, 0x19, 0xC4, 0x2E, 0x66, 0x90, -+ 0x2C, 0x8C, 0x44, 0xF2, 0xDC, 0xA9, 0xAC, 0x1B, 0xC0, 0x1E, 0x57, 0x6D, 0x59, 0xCA, 0xDC, 0x5C, 0x69, 0x09, 0x02, 0x35, 0xB0, 0x3D, 0x49, 0xA1, 0x09, 0xD9, 0x97, 0xD6, 0x25, 0x68, 0x26, 0xAE, -+ 0xCC, 0x7E, 0xD0, 0xC1, 0x7D, 0xB4, 0xEB, 0x50, 0xCB, 0x82, 0xE6, 0xF1, 0x79, 0xFC, 0x67, 0xAF, 0x16, 0x8F, 0xF5, 0x3E, 0xDA, 0x67, 0x44, 0xBB, 0xF0, 0x92, 0xCE, 0x8A, 0x1F, 0x01, 0xFE, 0xEA, -+ 0x71, 0xB4, 0xD1, 0xA9, 0xB2, 0x7D, 0x6E, 0x21, 0x68, 0x98, 0x38, 0xAB, 0x07, 0x69, 0xFF, 0xD7, 0x59, 0x3A, 0x2B, 0x06, 0x29, 0x72, 0xB3, 0x80, 0xD9, 0xB2, 0x9C, 0x98, 0x7D, 0xC7, 0x60, 0x39, -+ 0x10, 0xC1, 0x5F, 0x4B, 0xD1, 0x98, 0xCE, 0xB6, 0x57, 0xBD, 0x10, 0x3C, 0x2A, 0x43, 0xC7, 0x6D, 0x89, 0xB9, 0x77, 0x90, 0x1F, 0x4E, 0x0E, 0x9C, 0xD8, 0xAC, 0x60, 0x22, 0x8F, 0x96, 0x27, 0x86, -+ 0x49, 0x0A, 0x65, 0xFF, 0xE9, 0x10, 0x4B, 0x9A, 0x6C, 0x32, 0xCF, 0xDE, 0xA6, 0xD0, 0x77, 0x79, 0x17, 0x56, 0x5F, 0xF3, 0x25, 0xD1, 0x19, 0x37, 0x32, 0x32, 0xF9, 0x14, 0xCD, 0xD1, 0xBB, 0xBA, -+ 0xF9, 0x34, 0x45, 0x4D, 0x79, 0x5C, 0xE6, 0xDB, 0xE4, 0xD1, 0x5D, 0x67, 0x27, 0x31, 0xA7, 0x1A, 0x5B, 0xB8, 0x30, 0x43, 0xEB, 0x76, 0x8F, 0x8A, 0x91, 0x85, 0x0A, 0xF4, 0x7C, 0xF5, 0x33, 0xBF, -+ 0x95, 0xEA, 0x40, 0xDB, 0xDD, 0x4F, 0x37, 0xAC, 0x84, 0x93, 0x43, 0x86, 0x06, 0x1E, 0xD5, 0xB5, 0x41, 0xC5, 0x61, 0x6C, 0x68, 0xCA, 0x55, 0xE2, 0xE7, 0xB8, 0x7A, 0x16, 0x28, 0xFA, 0x55, 0x52, -+ 0xA0, 0x48, 0xC0, 0x93, 0x29, 0x6E, 0x22, 0xCE, 0x02, 0x88, 0xC7, 0x6E, 0x7A, 0x13, 0x03, 0xD4, 0xE7, 0x01, 0x23, 0xDD, 0xCF, 0xCF, 0x43, 0xA0, 0x15, 0xDE, 0xE8, 0x39, 0x95, 0x9E, 0x04, 0x4F, -+ 0x7C, 0xBF, 0x57, 0x84, 0xE4, 0x9F, 0x1E, 0xA3, 0x54, 0x00, 0x08, 0x60, 0xB9, 0x56, 0x1B, 0xC4, 0xED, 0xBD, 0xF9, 0x68, 0x20, 0x97, 0xEA, 0xFB, 0xEB, 0xE5, 0x21, 0x5C, 0x8B, 0x4E, 0x8B, 0x03, -+ 0xD1, 0x3A, 0x29, 0x76, 0x5E, 0xE3, 0xF0, 0x53, 0x3F, 0x79, 0x34, 0x28, 0xE2, 0x62, 0xF3, 0x38, 0x54, 0xA6, 0xFE, 0x00, 0x3C, 0x28, 0x4B, 0xDC, 0xB6, 0x6C, 0xD6, 0x8F, 0x98, 0xFB, 0xAA, 0x02, -+ 0x02, 0xCD, 0x1B, 0x85, 0x42, 0x32, 0x5A, 0x15, 0xAA, 0xA2, 0xD2, 0xE7, 0xF8, 0x38, 0xB6, 0x2D, 0x7C, 0x03, 0x64, 0x01, 0x6A, 0xFD, 0xC0, 0x6F, 0xA3, 0xFA, 0x85, 0xAE, 0x8F, 0x8B, 0x1B, 0xEA, -+ 0x4E, 0x62, 0xAA, 0xDF, 0x96, 0x61, 0x82, 0x56, 0x18, 0x5E, 0x6E, 0xF3, 0x1B, 0xF3, 0x0C, 0xAD, 0x1F, 0x72, 0x7F, 0x67, 0x98, 0x0D, 0x03, 0xF7, 0x52, 0xE1, 0x93, 0x64, 0xE5, 0x92, 0xA6, 0xF8, -+ 0xF9, 0x84, 0x95, 0x3E, 0x29, 0x31, 0xA1, 0xA2, 0xF6, 0xEA, 0x01, 0x11, 0xE5, 0x5B, 0xDA, 0x28, 0xA9, 0xFA, 0x6C, 0x05, 0xBB, 0x00, 0x0F, 0x6A, 0x32, 0x03, 0x93, 0x97, 0xA2, 0xA1, 0x97, 0x67, -+ 0x17, 0x26, 0x4B, 0x54, 0xF4, 0x76, 0xE7, 0x09, 0xF6, 0x5B, 0xBA, 0x59, 0x20, 0x33, 0x49, 0x93, 0x0B, 0x18, 0x69, 0x8F, 0x6F, 0xA8, 0x64, 0xE1, 0x47, 0x6B, 0xAD, 0xB4, 0x2E, 0x41, 0xC6, 0xD9, -+ 0xF6, 0xA7, 0xA6, 0x8B, 0x31, 0x6E, 0xA0, 0xC6, 0x2D, 0x3F, 0x01, 0x31, 0x93, 0x4E, 0xD8, 0xD2, 0x90, 0x22, 0xE6, 0x7D, 0x87, 0x12, 0x2C, 0x62, 0x48, 0x68, 0x86, 0x10, 0x7E, 0x8D, 0x45, 0x9D, -+ 0x68, 0x65, 0xE8, 0xA4, 0x3B, 0x3F, 0xCF, 0xFA, 0x27, 0xAE, 0xF2, 0x2C, 0x04, 0x8A, 0x31, 0x35, 0xEE, 0x8A, 0x85, 0x7E, 0x81, 0x3C, 0x24, 0x72, 0x5B, 0x43, 0xF4, 0x26, 0x57, 0xBE, 0xDE, 0xDD, -+ 0x37, 0x3E, 0xD8, 0x5E, 0x39, 0x07, 0x0C, 0x58, 0x5F, 0x1D, 0x78, 0xD7, 0xAD, 0xE4, 0xC4, 0x4A, 0x20, 0x82, 0x27, 0x0A, 0xA6, 0x32, 0x29, 0xA1, 0x64, 0xFC, 0x04, 0x6A, 0x34, 0x41, 0x90, 0x83, -+ 0x57, 0x4E, 0x66, 0xC2, 0xB4, 0x4B, 0x13, 0xDF, 0x71, 0x70, 0x4A, 0xE3, 0x89, 0x05, 0x18, 0x66, 0x61, 0x5B, 0xF1, 0xB2, 0x11, 0x97, 0x0E, 0x40, 0x33, 0x06, 0xBD, 0xF1, 0x51, 0x02, 0xB8, 0x31, -+ 0x44, 0x8B, 0x23, 0xAE, 0xB1, 0x9F, 0x48, 0x69, 0xE9, 0x37, 0x33, 0x3F, 0x67, 0x88, 0xE4, 0xC2, 0x94, 0x31, 0x27, 0xC6, 0x4E, 0x21, 0xCF, 0xC2, 0x99, 0xAD, 0xD8, 0x48, 0xFD, 0x4E, 0xE4, 0x0B, -+ 0x89, 0x1A, 0x8A, 0x5F, 0x51, 0xD1, 0x7A, 0x51, 0x0F, 0x57, 0xA5, 0x4C, 0xD3, 0xD8, 0x3E, 0x86, 0xD0, 0x7B, 0x50, 0x4E, 0xDF, 0x33, 0xE0, 0xDE, 0xED, 0xAC, 0xF7, 0x66, 0xE9, 0x6F, 0x87, 0x05, -+ 0x39, 0x3F, 0xDA, 0xCF, 0xB8, 0x31, 0xBD, 0x42, 0x52, 0xA1, 0x52, 0xF1, 0x49, 0x8D, 0xE3, 0x59, 0xA8, 0xA6, 0x3B, 0x71, 0x61, 0x4E, 0x9A, 0xB3, 0x73, 0x52, 0x61, 0xC8, 0xA6, 0xA9, 0xB3, 0x5E, -+ 0x13, 0x6A, 0x66, 0x04, 0x97, 0x52, 0x02, 0x95, 0x0E, 0x97, 0xFF, 0x52, 0xC7, 0x58, 0xC1, 0x9E, 0x5A, 0x3B, 0x7A, 0xAB, 0x9C, 0xCA, 0xC7, 0x95, 0xDA, 0xE7, 0x19, 0x9D, 0xC0, 0x39, 0xD6, 0x56, -+ 0x67, 0xDB, 0xC6, 0xFD, 0x54, 0xA4, 0xF7, 0x84, 0xFB, 0xD7, 0x24, 0xF1, 0x0D, 0x17, 0x93, 0x4B, 0x81, 0x29, 0xA7, 0xFB, 0xF9, 0xA2, 0x57, 0x73, 0x53, 0xF4, 0x9F, 0xE5, 0x34, 0x7C, 0x66, 0x99, -+ 0x05, 0x23, 0xAD, 0x4F, 0x42, 0x95, 0x35, 0x2F, 0xAE, 0x6C, 0x08, 0x55, 0xE5, 0x40, 0xBB, 0x0E, 0xA6, 0x16, 0xE3, 0x04, 0xEB, 0x26, 0x0C, 0x80, 0xB8, 0x79, 0x20, 0xB9, 0x24, 0xF5, 0xAB, 0x8C, -+ 0x9C, 0x74, 0x5D, 0x45, 0xEE, 0x0E, 0xC0, 0xD1, 0x9B, 0xBB, 0x9E, 0x4D, 0x94, 0xEA, 0x4D, 0xCF, 0x31, 0xC1, 0x67, 0xA4, 0x8D, 0x14, 0xA7, 0x0D, 0xB0, 0x24, 0x9B, 0xCB, 0xAE, 0x69, 0xA0, 0x79, -+ 0xC9, 0x50, 0xAB, 0x2C, 0xF0, 0x53, 0x59, 0x5F, 0xBC, 0xB6, 0x1C, 0x1A, 0xFE, 0x13, 0xE7, 0x4C, 0xE1, 0xA9, 0x73, 0xCA, 0x55, 0xC7, 0x49, 0x77, 0x21, 0xE3, 0xFA, 0xD9, 0xF5, 0x57, 0xD6, 0x71, -+ 0xB3, 0x0B, 0x6C, 0x49, 0xA6, 0x38, 0xA1, 0xEB, 0x2C, 0x4A, 0xC9, 0xBD, 0x6C, 0x68, 0xBF, 0xB5, 0x33, 0xD4, 0xDE, 0xDE, 0xAD, 0xC8, 0xEA, 0xB6, 0x48, 0xA1, 0x1A, 0x97, 0xAF, 0x9C, 0x76, 0x15, -+ 0xE4, 0x15, 0x7C, 0xD0, 0x74, 0x97, 0xE8, 0xBA, 0x6E, 0xBB, 0x8A, 0xA3, 0x4C, 0x89, 0xFF, 0x42, 0xF7, 0x66, 0x04, 0x38, 0x00, 0xBA, 0xC8, 0xD0, 0x7C, 0x94, 0x7B, 0xD0, 0x0D, 0xAF, 0xA4, 0x25, -+ 0x39, 0xBD, 0x78, 0x81, 0x31, 0x71, 0x7D, 0x1D, 0x1D, 0xE3, 0x54, 0xFD, 0xDF, 0x30, 0xDC, 0xCC, 0xFD, 0x62, 0x2F, 0x6C, 0xDD, 0xF0, 0x34, 0xC8, 0x9D, 0x19, 0xC0, 0x15, 0xF3, 0x7E, 0xC3, 0x26, -+ 0x25, 0x7F, 0xB6, 0x1C, 0xA6, 0x67, 0x73, 0x6D, 0x9C, 0x72, 0x39, 0xA8, 0x1F, 0x84, 0xEF, 0x76, 0x16, 0xA1, 0x45, 0x85, 0x6B, 0xB9, 0x79, 0x29, 0x04, 0xE8, 0xD5, 0x0E, 0x93, 0x8F, 0x2B, 0x87, -+ 0x62, 0x3D, 0x56, 0xE4, 0xFB, 0x91, 0xB5, 0x34, 0xF5, 0x7F, 0x3D, 0xB4, 0x44, 0xC6, 0x83, 0x7B, 0x4C, 0xDC, 0xA3, 0xA6, 0x47, 0x97, 0xFD, 0xC5, 0x2E, 0xC6, 0x70, 0xD6, 0xA1, 0x7B, 0x3F, 0xA1, -+ 0x97, 0x93, 0x02, 0x66, 0xD0, 0x3B, 0x4C, 0x0B, 0xEE, 0xE6, 0xEE, 0x27, 0xC1, 0xC4, 0x86, 0xFD, 0x22, 0xC3, 0xB2, 0x0E, 0xE1, 0x81, 0xE4, 0x2C, 0x71, 0x34, 0x70, 0x32, 0x8C, 0x14, 0x36, 0x23, -+ 0xA2, 0x53, 0xAA, 0xE0, 0xB1, 0x45, 0x3D, 0xA0, 0x09, 0xD8, 0xD4, 0xF2, 0x15, 0xD2, 0xF5, 0x77, 0xDD, 0xC9, 0xF8, 0x2D, 0xCB, 0x66, 0x9C, 0x9D, 0x99, 0xF1, 0x74, 0x48, 0x6C, 0x8A, 0x4D, 0x08, -+ 0x04, 0xD3, 0x42, 0xE8, 0xD3, 0x64, 0xF3, 0xB7, 0x36, 0x89, 0x94, 0x96, 0x31, 0xB2, 0x99, 0xD8, 0x73, 0x50, 0x15, 0xDB, 0x99, 0x70, 0x42, 0x07, 0xF0, 0x91, 0x4E, 0x6F, 0xCB, 0xF9, 0x21, 0xA1, -+ 0x8D, 0xF0, 0xC8, 0x08, 0x40, 0x45, 0x09, 0x28, 0x39, 0xCC, 0x96, 0xEA, 0xA5, 0xD2, 0xF6, 0xB6, 0x60, 0x00, 0x61, 0x6B, 0x7D, 0x2D, 0xED, 0x28, 0x5F, 0xF9, 0xA9, 0x24, 0x06, 0x81, 0x4A, 0x57, -+ 0xC2, 0x64, 0x68, 0xCC, 0x1D, 0x6C, 0x69, 0x47, 0x97, 0x63, 0x7B, 0x5B, 0xA5, 0x36, 0x4F, 0xD4, 0x60, 0x68, 0xCF, 0xE5, 0xC8, 0x22, 0xD2, 0xBB, 0xBD, 0xB3, 0x57, 0xC7, 0x6A, 0x36, 0x39, 0xAB, -+ 0x99, 0x96, 0x85, 0xED, 0x6D, 0x6D, 0x3A, 0xFE, 0x6B, 0x48, 0xB8, 0x0C, 0x87, 0x01, 0x26, 0x60, 0xD9, 0x6F, 0x75, 0x1C, 0x11, 0x1C, 0x9F, 0x4A, 0x0D, 0x30, 0xA0, 0x60, 0xAF, 0x55, 0x43, 0x5D, -+ 0xB3, 0x38, 0x97, 0xE6, 0x09, 0x1E, 0x6E, 0x02, 0xD0, 0x85, 0x66, 0xF0, 0x90, 0xE6, 0xEE, 0xA4, 0x31, 0x04, 0x8D, 0x8D, 0xB9, 0xC9, 0xC4, 0x98, 0x5A, 0x2A, 0x81, 0x14, 0xC9, 0xFF, 0x35, 0xCA, -+ 0x39, 0x72, 0x33, 0x14, 0x98, 0x5D, 0x93, 0x96, 0x15, 0x4D, 0xE5, 0xC2, 0x95, 0xC9, 0xE6, 0x35, 0xB3, 0x1A, 0x4D, 0x23, 0x4B, 0x79, 0xE0, 0xE8, 0x04, 0xB3, 0xFE, 0x11, 0xCD, 0xD2, 0x99, 0xEE, -+ 0x77, 0xE7, 0x2E, 0x16, 0xD4, 0x26, 0x3B, 0xFC, 0x4C, 0xF8, 0x97, 0x21, 0xAB, 0x5E, 0x9B, 0xBC, 0x64, 0xFF, 0xA8, 0xDE, 0xC4, 0x52, 0x0D, 0xCB, 0x5E, 0x88, 0x81, 0xF3, 0x61, 0xCD, 0x18, 0xF2, -+ 0x13, 0x9C, 0x8C, 0xB4, 0x2A, 0x4D, 0x67, 0xFD, 0x7F, 0xA4, 0x27, 0x63, 0x56, 0xB4, 0xC3, 0x9B, 0xC2, 0x63, 0x23, 0x4E, 0xA6, 0xA9, 0xCA, 0xBC, 0xE7, 0x2D, 0x86, 0xF4, 0xEF, 0x36, 0x44, 0x82, -+ 0x05, 0x02, 0x3F, 0x62, 0xCC, 0x4D, 0xE6, 0x19, 0xF5, 0x57, 0x26, 0x87, 0x13, 0x89, 0xB3, 0x05, 0xEE, 0x54, 0x5E, 0x69, 0x29, 0xDF, 0x24, 0x2F, 0xDF, 0xA8, 0xF9, 0x9B, 0x3F, 0x9C, 0xBF, 0x86, -+ 0x21, 0x0A, 0xD1, 0x15, 0x4A, 0x64, 0xF2, 0x79, 0x99, 0x51, 0x52, 0xCC, 0x39, 0xB0, 0x17, 0xE4, 0x58, 0x95, 0xE7, 0xC0, 0xF8, 0xBC, 0xA0, 0xE1, 0xD9, 0xF2, 0x94, 0xE1, 0xE0, 0x63, 0xCF, 0xDC, -+ 0x9A, 0xE0, 0xC7, 0x37, 0x57, 0x90, 0x48, 0x2E, 0x5B, 0xB0, 0xFD, 0x67, 0xB7, 0xA1, 0xAC, 0xA1, 0x6A, 0xB1, 0xDD, 0xB3, 0xE3, 0x8B, 0xE9, 0x2C, 0x9D, 0x76, 0xA7, 0x99, 0xC7, 0x94, 0x7C, 0xB6, -+ 0xD7, 0x75, 0xBD, 0xFD, 0x85, 0x93, 0x50, 0xBF, 0x85, 0x89, 0x0A, 0x37, 0xD8, 0x8E, 0xA1, 0x60, 0x6A, 0xDE, 0x48, 0x03, 0xF0, 0x75, 0xEB, 0x1A, 0x13, 0x04, 0xF0, 0xF7, 0xBA, 0xDA, 0xFF, 0xF4, -+ 0x4D, 0xA2, 0xC7, 0xF9, 0x32, 0xB2, 0x5F, 0x2D, 0xAA, 0x9B, 0xCD, 0xCF, 0x0C, 0xB8, 0x42, 0x77, 0xAB, 0xC2, 0xCB, 0xF6, 0xA7, 0x1C, 0x1C, 0xED, 0xE8, 0x79, 0xAA, 0x0D, 0x0C, 0x56, 0xE0, 0xE0, -+ 0x40, 0x91, 0xBE, 0xD2, 0x3F, 0x22, 0x3D, 0x66, 0xF7, 0x3C, 0x77, 0x10, 0x49, 0x64, 0x44, 0xBE, 0x4E, 0x39, 0x5F, 0x46, 0xCA, 0xA8, 0x34, 0x79, 0x51, 0xB2, 0xB1, 0xF0, 0xD1, 0x87, 0x4F, 0x31, -+ 0x78, 0xE1, 0xE3, 0x20, 0xA9, 0x18, 0x17, 0xBD, 0xCE, 0x17, 0x8F, 0x64, 0x9D, 0x68, 0xB1, 0x4D, 0x55, 0x9F, 0x06, 0x74, 0x3F, 0xA7, 0xCC, 0x74, 0x35, 0x2E, 0xF2, 0x27, 0x50, 0x34, 0x34, 0x8D, -+ 0x75, 0x55, 0x6E, 0x49, 0xEA, 0xA2, 0xF9, 0xC7, 0xDA, 0xA9, 0xBC, 0x3F, 0x32, 0x8D, 0x2F, 0x4E, 0x65, 0x78, 0xA6, 0xE4, 0xC4, 0xA4, 0x73, 0x2F, 0xB0, 0x04, 0x25, 0x22, 0x9E, 0xEC, 0x97, 0xD1, -+ 0x40, 0xB7, 0xEC, 0x1E, 0x4A, 0x1C, 0xED, 0x27, 0xB7, 0x72, 0xD9, 0x99, 0x10, 0xFE, 0x1E, 0x28, 0xD2, 0x5B, 0xA9, 0x9F, 0xC2, 0x56, 0xF3, 0xAA, 0xD1, 0x9C, 0x1D, 0x55, 0x9A, 0x4B, 0xD8, 0xA4, -+ }, -+ .t1_len = 1280, -+ .t1 = { -+ 0x2D, 0xD6, 0x04, 0xD5, 0x36, 0x57, 0x11, 0xDA, 0xA1, 0xAF, 0xD0, 0x6E, 0x8E, 0xAF, 0x68, 0x7C, 0x39, 0x99, 0x62, 0x4D, 0x3C, 0x18, 0x10, 0x84, 0xA0, 0x72, 0x73, 0xB5, 0x5E, 0xF3, 0xA8, 0x4C, -+ 0x60, 0x98, 0x70, 0x3E, 0xCF, 0x97, 0xF7, 0xD4, 0x64, 0xC6, 0x52, 0x17, 0xAB, 0x2D, 0x5D, 0x34, 0x89, 0x35, 0x3C, 0x3E, 0x2B, 0x17, 0x27, 0x24, 0x55, 0xB0, 0x8A, 0x92, 0x18, 0x0B, 0xBC, 0x9E, -+ 0xCB, 0x88, 0x16, 0xC5, 0x4D, 0x98, 0x80, 0x01, 0x34, 0xB2, 0x38, 0xE0, 0x15, 0x84, 0xC1, 0x07, 0x7C, 0xAB, 0x47, 0x12, 0x83, 0x80, 0xD9, 0x26, 0x34, 0xCB, 0x29, 0x1E, 0x95, 0x8A, 0x62, 0xAC, -+ 0x22, 0xF0, 0x50, 0x1C, 0xFF, 0x04, 0x7A, 0xB9, 0x75, 0x6D, 0x58, 0xE2, 0xC4, 0x6C, 0xA1, 0xCB, 0xED, 0xC6, 0x11, 0x85, 0x72, 0x1F, 0xE0, 0x0D, 0xAF, 0xFC, 0x5E, 0xFD, 0xFD, 0x40, 0xE2, 0xD4, -+ 0x5F, 0x06, 0x8A, 0xD1, 0x8C, 0x42, 0xCD, 0xDC, 0x6C, 0x26, 0xF0, 0x42, 0xFB, 0xBA, 0xF8, 0xDE, 0x52, 0x4B, 0xF1, 0x0C, 0x5E, 0x56, 0xA6, 0x36, 0x9F, 0xCB, 0xF7, 0x41, 0x4B, 0xA8, 0x51, 0xD7, -+ 0x54, 0x6C, 0x0A, 0xDB, 0xA0, 0xDD, 0xDE, 0x66, 0xA9, 0x85, 0x2F, 0x05, 0xB8, 0x12, 0xFC, 0xCB, 0x66, 0xCA, 0x7A, 0x0E, 0xD2, 0xC5, 0xBD, 0x36, 0x55, 0xBF, 0xD8, 0xAA, 0x4B, 0xEF, 0xB8, 0x63, -+ 0xFC, 0xEE, 0xE2, 0xEB, 0x4F, 0x66, 0x81, 0xC7, 0x5A, 0x75, 0xD4, 0x2C, 0xA4, 0x60, 0x01, 0x6B, 0x98, 0xA7, 0x75, 0x11, 0x4C, 0xC8, 0x37, 0x6C, 0x74, 0x2B, 0xD7, 0x20, 0x2F, 0x81, 0xE3, 0x7E, -+ 0xAB, 0xA9, 0xE4, 0x37, 0x8B, 0x7B, 0xD3, 0xF0, 0xED, 0xBA, 0x40, 0xAA, 0xB7, 0x15, 0xD4, 0x5E, 0x66, 0x63, 0xC9, 0x9B, 0xE6, 0x34, 0x38, 0xB9, 0x58, 0x36, 0x8C, 0xB2, 0x3F, 0x42, 0xF5, 0x4E, -+ 0xBC, 0xDC, 0xDA, 0x4F, 0x85, 0x70, 0xCA, 0xFE, 0x2E, 0xA1, 0x72, 0x8C, 0x0B, 0x23, 0xD9, 0xBB, 0x22, 0xFA, 0xB6, 0x92, 0x2E, 0xA6, 0x69, 0x4D, 0x7F, 0xDF, 0xCA, 0x08, 0xC7, 0x7E, 0xD4, 0x88, -+ 0xAC, 0x5F, 0xEF, 0xDC, 0xA7, 0x88, 0x9E, 0xE4, 0xED, 0x5F, 0xDA, 0xA7, 0xA1, 0x26, 0xDC, 0xA6, 0xD5, 0xEF, 0x6C, 0x43, 0xBF, 0x35, 0xB6, 0x12, 0x2E, 0x6E, 0xF0, 0xE5, 0x81, 0xAC, 0x33, 0x82, -+ 0x38, 0xE5, 0x14, 0xAA, 0x3A, 0xA9, 0x62, 0x48, 0xEB, 0x6D, 0x58, 0x38, 0xD3, 0x41, 0x74, 0x12, 0x75, 0x82, 0x33, 0xA0, 0x5C, 0x56, 0xEC, 0x4B, 0x5C, 0x5F, 0x1B, 0x59, 0x22, 0x5E, 0x53, 0xEE, -+ 0x2D, 0xA1, 0xF8, 0x32, 0x6C, 0x50, 0xE6, 0x98, 0x8B, 0xF6, 0x14, 0x58, 0x7F, 0x37, 0xBE, 0xA8, 0x7B, 0xF4, 0x57, 0x15, 0x46, 0x34, 0xCC, 0xF3, 0xE7, 0xE9, 0xA6, 0xD1, 0x59, 0x04, 0x92, 0x51, -+ 0x80, 0xDB, 0xE0, 0xEA, 0x7B, 0x2B, 0xDA, 0x61, 0x5A, 0x4D, 0xE6, 0xE8, 0x3A, 0x48, 0x47, 0xD6, 0x0A, 0xC4, 0xAC, 0x7F, 0x80, 0xA9, 0x3D, 0xC6, 0xBE, 0x06, 0xA4, 0x80, 0x10, 0x21, 0xFE, 0x7C, -+ 0x71, 0x78, 0x58, 0xF5, 0x64, 0x8A, 0x5E, 0x53, 0x87, 0x0C, 0x6D, 0x42, 0xB7, 0x7D, 0x29, 0x89, 0x0E, 0xB5, 0x45, 0x65, 0x7B, 0x7A, 0xF6, 0xE1, 0x40, 0xA7, 0xE1, 0x4B, 0x88, 0xD3, 0x1D, 0xC0, -+ 0x72, 0xCD, 0x9A, 0x41, 0xC6, 0x6B, 0xB2, 0xC7, 0x08, 0x9F, 0x4F, 0x16, 0x7B, 0xA0, 0xDD, 0xF9, 0x08, 0xAD, 0x7A, 0x2A, 0xB0, 0xCE, 0x19, 0xCC, 0x4A, 0x17, 0x7E, 0x0C, 0xF1, 0x2C, 0x8A, 0xFE, -+ 0xC9, 0x85, 0x8C, 0x39, 0x24, 0x73, 0x8F, 0x04, 0xDD, 0xDF, 0xDA, 0xF8, 0x53, 0xF7, 0xED, 0xCB, 0xE5, 0x2F, 0xCA, 0xF3, 0xE3, 0x82, 0xC7, 0x12, 0xC4, 0xE8, 0x21, 0xC2, 0x4D, 0xF9, 0x1D, 0x15, -+ 0x73, 0xA7, 0x4C, 0xE2, 0x1E, 0x44, 0xEF, 0xBA, 0x8A, 0x8E, 0xC6, 0xE6, 0xD5, 0xEE, 0x0B, 0xD8, 0xEB, 0xE0, 0x24, 0x36, 0x62, 0x35, 0x72, 0x35, 0x3E, 0x42, 0x10, 0xCB, 0x84, 0xD1, 0x28, 0x3E, -+ 0x1F, 0x6B, 0xA7, 0x26, 0xB2, 0x74, 0x6E, 0xB4, 0x36, 0x2D, 0x46, 0x4C, 0xF2, 0xE2, 0x78, 0xB2, 0xC4, 0x35, 0x68, 0xC9, 0xD7, 0x76, 0x14, 0xDD, 0xCA, 0x1B, 0x19, 0x3D, 0x3C, 0xCA, 0x67, 0xFC, -+ 0x7B, 0x4B, 0x41, 0x17, 0xD1, 0xFE, 0x2D, 0x17, 0x80, 0xEF, 0x90, 0x53, 0x8A, 0xFA, 0xEA, 0xDF, 0xB3, 0x76, 0xE3, 0x18, 0x33, 0x0E, 0x78, 0x5A, 0xF1, 0x03, 0x75, 0x3F, 0xD5, 0x99, 0x17, 0xBA, -+ 0xBB, 0xC0, 0xC8, 0xD7, 0x53, 0x2E, 0x0A, 0x54, 0xBF, 0x8E, 0x91, 0xF4, 0xAA, 0xAA, 0xDC, 0x9D, 0x53, 0x51, 0x3A, 0x04, 0xA1, 0xB5, 0x30, 0xD7, 0x11, 0xC4, 0x04, 0x69, 0x06, 0x3A, 0xB2, 0xFB, -+ 0xF5, 0xEA, 0xEB, 0x2A, 0x94, 0x1A, 0x58, 0x12, 0x6E, 0xB5, 0x80, 0x2D, 0x1A, 0x97, 0xD4, 0x4B, 0xF3, 0x40, 0x82, 0xB0, 0x26, 0x41, 0x0A, 0x83, 0xD4, 0x2D, 0xFB, 0x4C, 0x5D, 0xD1, 0xDB, 0xA8, -+ 0xC1, 0x9D, 0x33, 0xDD, 0x53, 0xB6, 0x1A, 0x7B, 0x58, 0x6A, 0xA0, 0x6D, 0xC4, 0x41, 0x4B, 0xB4, 0xC5, 0x3F, 0x26, 0xE0, 0x5A, 0x69, 0xCB, 0x71, 0x9C, 0xFD, 0xCE, 0x1E, 0x27, 0x29, 0x77, 0xC5, -+ 0x26, 0xCF, 0xC1, 0xB3, 0xA7, 0x24, 0x82, 0xAA, 0x24, 0x61, 0xF1, 0xC4, 0x67, 0x24, 0xF2, 0xD9, 0xCA, 0x9D, 0x31, 0xF9, 0x3E, 0x9D, 0x3C, 0x55, 0xD9, 0x44, 0xA5, 0x6D, 0xB9, 0x47, 0x0E, 0x45, -+ 0x41, 0xE2, 0x17, 0xC8, 0x02, 0xC1, 0x9A, 0x2F, 0x93, 0x23, 0xEF, 0xB5, 0x8F, 0x62, 0xCA, 0xF6, 0xFA, 0x86, 0x06, 0x1D, 0xD8, 0x8A, 0x89, 0xF0, 0x82, 0x71, 0x31, 0x8D, 0xE8, 0xA8, 0x1A, 0x56, -+ 0x65, 0x64, 0x33, 0x20, 0x10, 0xFF, 0xE4, 0xC8, 0x8A, 0x2A, 0x02, 0x26, 0x51, 0xAA, 0x32, 0xF5, 0x73, 0xB3, 0xB1, 0x54, 0xAA, 0x8C, 0xF1, 0x0D, 0xFB, 0xDC, 0xC0, 0xC5, 0x7B, 0x23, 0x41, 0xCF, -+ 0x9D, 0x6E, 0x5F, 0xDA, 0x17, 0xA7, 0xA3, 0x61, 0x6D, 0x24, 0x24, 0xCA, 0x2B, 0x9F, 0xE0, 0x8D, 0xC6, 0xC2, 0x96, 0xDF, 0xA2, 0xBE, 0x9D, 0xE8, 0xE5, 0x3C, 0x32, 0x8B, 0x8D, 0x66, 0x14, 0x2A, -+ 0xE2, 0x33, 0xEF, 0xA3, 0x0D, 0x90, 0xE9, 0x1A, 0x75, 0x78, 0x67, 0x56, 0xB8, 0xAB, 0x25, 0xC1, 0x5B, 0x91, 0xCF, 0x34, 0xA0, 0xE1, 0x2D, 0xAC, 0x9D, 0x5E, 0x52, 0x5A, 0xA5, 0x8D, 0x22, 0x9D, -+ 0x4E, 0x60, 0xDC, 0x2A, 0xB2, 0x7C, 0x61, 0x79, 0x0F, 0xAE, 0x21, 0x5C, 0x20, 0x05, 0x20, 0x21, 0x6C, 0xBB, 0x39, 0x8A, 0x20, 0x9B, 0x78, 0x4E, 0x31, 0xAF, 0x7E, 0x15, 0xF0, 0xA0, 0x07, 0x31, -+ 0x95, 0x74, 0x88, 0x7E, 0x6C, 0x27, 0x66, 0xA0, 0x40, 0x96, 0xAF, 0x1E, 0xDC, 0x45, 0x93, 0xF2, 0xFA, 0x91, 0x8F, 0x1A, 0x48, 0x51, 0xEF, 0x4C, 0xDB, 0x7A, 0xDD, 0xC4, 0x08, 0xDC, 0x3C, 0x57, -+ 0x91, 0x5C, 0x8B, 0xD9, 0x90, 0xC1, 0x00, 0x06, 0x16, 0x9D, 0x84, 0xFB, 0xDF, 0x13, 0xC7, 0x09, 0x7B, 0xEC, 0x77, 0xE3, 0xF1, 0x47, 0x57, 0x60, 0x23, 0x23, 0x2A, 0x74, 0x50, 0xF7, 0x86, 0x4F, -+ 0x21, 0xB3, 0x28, 0xAC, 0xBA, 0x0A, 0x4B, 0x21, 0x25, 0x6B, 0x1B, 0x08, 0xD4, 0xA4, 0xCD, 0x7A, 0xA5, 0x3A, 0x30, 0x7B, 0xC1, 0xAE, 0x36, 0x0D, 0x78, 0xE9, 0x3D, 0x43, 0x82, 0xBC, 0xD5, 0x83, -+ 0x6E, 0x30, 0x19, 0xF6, 0x7A, 0x1F, 0x5C, 0x39, 0xA3, 0x0E, 0x8E, 0x9F, 0xA7, 0xB9, 0x62, 0x2C, 0xFA, 0xD1, 0x1A, 0x50, 0xF2, 0xE4, 0xF1, 0x7D, 0xBE, 0x8F, 0xF2, 0x49, 0x8B, 0xEF, 0xCE, 0x52, -+ 0x8F, 0x24, 0x13, 0x14, 0x26, 0x38, 0xED, 0x76, 0x59, 0x5E, 0xA2, 0x5D, 0xDD, 0x6F, 0xA9, 0xAC, 0x4D, 0xF3, 0x62, 0xFD, 0xC1, 0xAA, 0x83, 0x64, 0x0A, 0x03, 0x39, 0x19, 0x4D, 0xDE, 0x83, 0x03, -+ 0x61, 0xA1, 0x2D, 0xD3, 0xF1, 0xBB, 0x83, 0xAA, 0x7B, 0x22, 0xC4, 0xD5, 0xFC, 0x7A, 0x69, 0xFA, 0xEB, 0xEB, 0xC4, 0x80, 0xEE, 0x83, 0xE8, 0x0B, 0x62, 0xD7, 0xBB, 0x68, 0xFF, 0xAC, 0xBC, 0xAA, -+ 0xB2, 0xE4, 0x8F, 0xE8, 0x1F, 0x20, 0x9B, 0xD9, 0x24, 0x91, 0x51, 0xB2, 0x55, 0x2F, 0xFA, 0x3E, 0x5D, 0x79, 0xFF, 0x54, 0x13, 0xC9, 0x4E, 0x6F, 0xF7, 0x69, 0xDE, 0xB9, 0x7B, 0x29, 0x08, 0xDC, -+ 0xDC, 0x83, 0x6E, 0xC7, 0x0B, 0xFF, 0xE8, 0xF7, 0x07, 0x8E, 0xEB, 0x14, 0x44, 0x0E, 0x01, 0x40, 0xFB, 0x22, 0xE0, 0x25, 0xBC, 0x1A, 0x10, 0x32, 0x67, 0xF9, 0xEA, 0x89, 0x71, 0x06, 0x34, 0x72, -+ 0xB3, 0x39, 0x49, 0xAD, 0x2A, 0x15, 0xC1, 0x74, 0x02, 0x51, 0x31, 0x00, 0x20, 0x8D, 0x72, 0x60, 0x97, 0x18, 0x2F, 0xA1, 0x01, 0xFC, 0x38, 0xC5, 0xC4, 0x81, 0x6A, 0x3A, 0xBC, 0xCF, 0x9E, 0x44, -+ 0xBF, 0x3F, 0x2D, 0x63, 0x4D, 0xA9, 0xBE, 0xC7, 0x67, 0x97, 0x71, 0x49, 0x14, 0x85, 0x21, 0x3D, 0xD6, 0x25, 0xB3, 0x27, 0xD5, 0x3F, 0xF4, 0xED, 0x21, 0xE1, 0xFF, 0x19, 0xE5, 0xD6, 0xC0, 0x44, -+ 0x7F, 0x77, 0xBB, 0xED, 0xF3, 0xF3, 0x7C, 0x63, 0x7A, 0x18, 0x5F, 0xFC, 0x18, 0xA5, 0xEF, 0xCA, 0x43, 0x77, 0xE3, 0x48, 0x6C, 0xED, 0xF5, 0x8A, 0x03, 0xDB, 0x4B, 0x02, 0x3C, 0xF5, 0x17, 0xE1, -+ 0x1D, 0x80, 0xE8, 0xE2, 0x93, 0x54, 0x40, 0x20, 0xA4, 0xFA, 0xB7, 0x80, 0x9D, 0x32, 0xCB, 0xF0, 0x15, 0x1F, 0xF2, 0x3C, 0xC1, 0xB2, 0xC4, 0xBD, 0x0E, 0x41, 0x07, 0xC5, 0xC0, 0xD2, 0x72, 0x2E, -+ }, -+ .pkcs8_len = 0, -+ .spki_len = 0, -+ .msg_len = 66, -+ .msg = { -+ 0x22, 0x5D, 0x5C, 0xE2, 0xCE, 0xAC, 0x61, 0x93, 0x0A, 0x07, 0x50, 0x3F, 0xB5, 0x9F, 0x7C, 0x2F, 0x93, 0x6A, 0x3E, 0x07, 0x54, 0x81, 0xDA, 0x3C, 0xA2, 0x99, 0xA8, 0x0F, 0x8C, 0x5D, 0xF9, 0x22, -+ 0x3A, 0x07, 0x3E, 0x7B, 0x90, 0xE0, 0x2E, 0xBF, 0x98, 0xCA, 0x22, 0x27, 0xEB, 0xA3, 0x8C, 0x1A, 0xB2, 0x56, 0x82, 0x09, 0xE4, 0x6D, 0xBA, 0x96, 0x18, 0x69, 0xC6, 0xF8, 0x39, 0x83, 0xB1, 0x7D, -+ 0xCD, 0x49, -+ }, -+ .sig_len = 2420, -+ .sig = { -+ 0xB5, 0xF8, 0x9A, 0xE9, 0x07, 0x73, 0xF4, 0x9F, 0xB0, 0xAE, 0xFA, 0xFA, 0x2E, 0x5A, 0xC9, 0x5D, 0xB6, 0x5E, 0x53, 0x4A, 0x43, 0x1E, 0x7B, 0x64, 0x1F, 0xEE, 0x75, 0x1F, 0x89, 0x96, 0xC3, 0x67, -+ 0x17, 0xF3, 0xA8, 0x44, 0x7C, 0x99, 0x5D, 0x47, 0x5B, 0xC1, 0xC3, 0x40, 0x4A, 0xDF, 0x42, 0xE9, 0xFD, 0x89, 0x8B, 0x54, 0xED, 0x09, 0x9A, 0xB5, 0x4C, 0x5F, 0x47, 0x1B, 0xC7, 0xC4, 0xBB, 0x39, -+ 0x25, 0x30, 0xF8, 0x21, 0x05, 0x8D, 0xE4, 0xB2, 0xF4, 0x0E, 0xA7, 0xEF, 0x2A, 0x29, 0x7E, 0xC4, 0x0D, 0x65, 0x44, 0x67, 0x95, 0x48, 0x88, 0x55, 0x7D, 0x89, 0xC2, 0x2F, 0x79, 0xCB, 0x44, 0xCC, -+ 0x93, 0x11, 0xFF, 0x98, 0x7A, 0x9E, 0xE2, 0x61, 0x91, 0xE4, 0x27, 0xE9, 0xAF, 0x8F, 0xC8, 0x0F, 0xE7, 0x58, 0xFD, 0x4B, 0xB1, 0x88, 0x6D, 0x83, 0xB2, 0x30, 0x63, 0x4F, 0xD6, 0x5C, 0xE5, 0x3A, -+ 0x03, 0x69, 0x9E, 0xAB, 0xF3, 0x29, 0x20, 0x15, 0x78, 0x14, 0xC9, 0x7D, 0xEE, 0x6C, 0x48, 0x5C, 0x7E, 0x98, 0xA4, 0x31, 0x73, 0x26, 0xF5, 0xD6, 0x39, 0x9D, 0x73, 0xB3, 0x85, 0x5C, 0xEB, 0x17, -+ 0x77, 0x91, 0xE3, 0x39, 0x09, 0x3D, 0x62, 0xE6, 0x7D, 0x2C, 0x5B, 0x2E, 0x16, 0xAC, 0x2D, 0xCC, 0x0C, 0x54, 0x7D, 0x78, 0x19, 0xF1, 0xC0, 0xCF, 0x3F, 0xE7, 0x34, 0x61, 0x44, 0xA8, 0x9E, 0x87, -+ 0x5B, 0xA1, 0xCB, 0xC0, 0x75, 0x28, 0xFF, 0x75, 0xE5, 0x7C, 0x7E, 0x06, 0xDB, 0xE9, 0x96, 0x58, 0xB6, 0xAF, 0x15, 0xD9, 0x17, 0x37, 0x16, 0xBE, 0xD3, 0xFD, 0xEF, 0x7C, 0xEA, 0x4D, 0x33, 0x0C, -+ 0x31, 0xF6, 0x73, 0x37, 0x32, 0x53, 0xC5, 0x5A, 0x75, 0xA1, 0x14, 0xBC, 0xD0, 0x7F, 0x0C, 0xF5, 0x23, 0xDA, 0x09, 0xDC, 0x23, 0xAD, 0xCF, 0x8F, 0x82, 0x8A, 0xEB, 0xE8, 0x20, 0x79, 0x39, 0x41, -+ 0x5D, 0x0B, 0x0D, 0xCE, 0xDF, 0xFF, 0x1A, 0x04, 0xA4, 0xC2, 0x3B, 0xD5, 0x62, 0x13, 0x29, 0x20, 0xD6, 0xD3, 0xEA, 0x9F, 0x63, 0x3D, 0xBF, 0x48, 0x5C, 0x24, 0x6C, 0x0D, 0xC7, 0x6C, 0xF4, 0x09, -+ 0x80, 0xE3, 0x51, 0xA8, 0x8B, 0x19, 0xE9, 0x38, 0x5D, 0x98, 0x7A, 0xD9, 0xC5, 0x84, 0xC4, 0x25, 0xD3, 0x5D, 0xDB, 0x4D, 0xE7, 0x95, 0x6B, 0x8B, 0x12, 0xEF, 0x2B, 0xC1, 0x1A, 0x5C, 0xDA, 0x22, -+ 0xA7, 0xD3, 0x38, 0xD8, 0x10, 0x7C, 0x63, 0x79, 0x16, 0xCD, 0x9F, 0x8F, 0xB4, 0x04, 0xEB, 0x18, 0xB1, 0xB6, 0xCA, 0x08, 0xB5, 0xE9, 0xD3, 0x9C, 0xD4, 0x1F, 0xA8, 0xF0, 0xE1, 0x66, 0xE8, 0x12, -+ 0xD2, 0x34, 0x9F, 0x6A, 0x15, 0x65, 0x4A, 0xB7, 0x13, 0xC3, 0xEB, 0x19, 0x05, 0x6E, 0x02, 0xF9, 0x5B, 0x71, 0xB9, 0x18, 0xC6, 0x10, 0x9A, 0x39, 0x79, 0xC4, 0x66, 0x29, 0x0B, 0x0B, 0xCD, 0x4E, -+ 0xD5, 0x79, 0xC5, 0x08, 0x4F, 0x70, 0x5E, 0xF1, 0xA0, 0x21, 0x07, 0x59, 0x96, 0x89, 0xBE, 0xB4, 0xB3, 0xE0, 0x63, 0x0E, 0xC5, 0xCD, 0x7F, 0x3C, 0xE5, 0x8D, 0xF5, 0xEA, 0x60, 0x12, 0xE0, 0x9E, -+ 0x30, 0xB9, 0xDF, 0xF6, 0x5D, 0x0C, 0xD5, 0x5B, 0xCA, 0x59, 0xBE, 0xDB, 0xB2, 0xA4, 0x53, 0x68, 0x3D, 0x71, 0xA1, 0xD6, 0x99, 0x92, 0x76, 0x1D, 0xA4, 0xF6, 0xC2, 0xB3, 0x76, 0xA8, 0x7D, 0x7E, -+ 0x78, 0x03, 0xF7, 0xC2, 0xA9, 0x92, 0x7E, 0x4A, 0x56, 0x0B, 0xE5, 0xF8, 0x0A, 0xCA, 0x92, 0xF8, 0x28, 0xC9, 0x9A, 0x63, 0xD8, 0x2A, 0x3A, 0xAA, 0xCC, 0xC6, 0xD9, 0xBC, 0x7B, 0xC8, 0xC5, 0xF6, -+ 0x70, 0x6C, 0x05, 0x48, 0xF5, 0x11, 0x0A, 0xDF, 0x48, 0x64, 0xEC, 0x62, 0x01, 0xE7, 0xB2, 0x2A, 0x6C, 0x13, 0xB6, 0x7F, 0x12, 0xB7, 0xA0, 0x59, 0x8C, 0x98, 0xD6, 0xC2, 0x7E, 0x60, 0xD4, 0x81, -+ 0x0F, 0xD5, 0x16, 0x79, 0x95, 0xE6, 0x6E, 0x30, 0x77, 0x3B, 0xF7, 0xCB, 0x03, 0xF3, 0x53, 0x9E, 0xB8, 0xE7, 0x2B, 0x83, 0x84, 0x53, 0x4D, 0xEB, 0x7D, 0xB7, 0x2B, 0x84, 0x7D, 0xD5, 0xC6, 0x6D, -+ 0x02, 0xFB, 0x4E, 0x95, 0x05, 0xB0, 0x08, 0x41, 0x9C, 0x72, 0x23, 0x02, 0xA1, 0x55, 0x95, 0x7B, 0x79, 0x6B, 0xE8, 0x77, 0xCF, 0xDB, 0x17, 0xCB, 0x68, 0xEC, 0xFC, 0x59, 0x0C, 0x6F, 0x12, 0x58, -+ 0x34, 0x68, 0xCB, 0x45, 0x4C, 0x67, 0xBE, 0x3F, 0x2E, 0x86, 0x1A, 0x38, 0x9E, 0x6F, 0x20, 0x65, 0xDD, 0x2E, 0x4F, 0xBC, 0x1D, 0x4C, 0xDD, 0xC3, 0xAD, 0x1C, 0x9A, 0x31, 0x16, 0xEF, 0x31, 0xF6, -+ 0x0E, 0xD8, 0x55, 0x77, 0xAA, 0x2E, 0xE2, 0xEF, 0xF7, 0x21, 0x7D, 0xC0, 0xA1, 0x73, 0x4E, 0x01, 0x43, 0xCC, 0xDB, 0x34, 0x64, 0x23, 0x4E, 0xDE, 0xFE, 0xFA, 0x8D, 0x05, 0x61, 0xD1, 0xB2, 0xEC, -+ 0x9A, 0xA9, 0xE7, 0x8E, 0xC8, 0x2F, 0xB0, 0x59, 0xB3, 0xEE, 0xD3, 0x29, 0xD4, 0x00, 0x26, 0xAB, 0x73, 0x95, 0xC4, 0x2C, 0xA5, 0x98, 0xD3, 0x7E, 0x69, 0x72, 0x9C, 0x37, 0x3A, 0x07, 0xFE, 0x48, -+ 0xA1, 0x91, 0xB9, 0x1F, 0xF3, 0xC9, 0x62, 0xE2, 0x9D, 0x0C, 0x9C, 0x40, 0x53, 0x6B, 0xA7, 0xB6, 0x52, 0x20, 0x12, 0xA2, 0xEE, 0x48, 0x95, 0x64, 0x0F, 0x07, 0x42, 0xA6, 0xF2, 0x02, 0x89, 0xAB, -+ 0x8E, 0x6C, 0x60, 0x4C, 0x1C, 0x56, 0x9B, 0xBE, 0x1F, 0x6B, 0xC3, 0x44, 0x9F, 0x44, 0xFD, 0x1C, 0xA2, 0x51, 0xD2, 0xFF, 0x2C, 0xA4, 0x69, 0x23, 0x0F, 0x79, 0x12, 0x97, 0x75, 0xBF, 0xC7, 0x2D, -+ 0xBA, 0x91, 0x2F, 0xB7, 0xE9, 0x6A, 0x7F, 0x87, 0x5C, 0x90, 0xC6, 0x5C, 0xA6, 0xB9, 0x9D, 0x17, 0x28, 0xB7, 0x92, 0xE2, 0x71, 0x95, 0x16, 0x26, 0x5D, 0xCF, 0x90, 0x63, 0xCD, 0x70, 0x99, 0xC7, -+ 0x29, 0xF0, 0x42, 0x5A, 0xE7, 0x47, 0xF7, 0xE0, 0x26, 0xBF, 0x41, 0xFF, 0xCB, 0x32, 0xEC, 0x89, 0xEF, 0xAD, 0x91, 0x44, 0x88, 0x00, 0x38, 0xC5, 0x72, 0x0E, 0x54, 0xFE, 0xBD, 0x97, 0x33, 0x37, -+ 0xC0, 0x5D, 0x55, 0x7B, 0x74, 0x11, 0x2B, 0xF2, 0x31, 0x87, 0xCE, 0x41, 0xDE, 0x9C, 0xED, 0x15, 0x6F, 0x08, 0x43, 0x93, 0x81, 0x3A, 0xFB, 0x43, 0x3C, 0x29, 0x2E, 0xFB, 0x37, 0xF1, 0x37, 0xE6, -+ 0x00, 0x6A, 0x95, 0xAD, 0xCD, 0x58, 0x0E, 0x36, 0x72, 0x18, 0x1B, 0xE8, 0xD3, 0x09, 0x13, 0xCA, 0x87, 0xE0, 0x08, 0x06, 0xBF, 0x82, 0xA7, 0x50, 0x9F, 0xD2, 0x57, 0xA7, 0x75, 0x91, 0xF6, 0x7A, -+ 0x78, 0x0F, 0x26, 0x49, 0x9C, 0xC0, 0xE9, 0x3C, 0xB0, 0x42, 0x60, 0x00, 0x1D, 0xA3, 0x43, 0xC7, 0x89, 0x75, 0x2C, 0xC1, 0xA4, 0x38, 0x39, 0x8F, 0xE0, 0x48, 0xF1, 0x9B, 0x0D, 0x83, 0xD1, 0xAF, -+ 0x95, 0x60, 0xB9, 0x09, 0xCF, 0xFE, 0x13, 0x64, 0x15, 0x6F, 0x4B, 0x45, 0x62, 0xD1, 0x57, 0x5E, 0x32, 0xC7, 0x7F, 0x8F, 0x0A, 0x26, 0x7B, 0xE4, 0x3E, 0x83, 0x72, 0xEB, 0x4A, 0x59, 0x69, 0x5A, -+ 0x62, 0x5B, 0x84, 0xC2, 0x79, 0x5C, 0x72, 0x4A, 0xC2, 0x40, 0xFC, 0x81, 0xCC, 0x1F, 0x03, 0xE0, 0x10, 0x04, 0xF9, 0x82, 0x20, 0xF3, 0xB4, 0x9E, 0x1B, 0x89, 0x6B, 0x42, 0x20, 0x49, 0xD1, 0x5C, -+ 0x4E, 0x54, 0x80, 0xD2, 0xE6, 0xDA, 0xE9, 0xA7, 0xAD, 0x5E, 0x5B, 0xB4, 0xF3, 0x06, 0xEA, 0xFB, 0x6A, 0xA5, 0x16, 0x6D, 0xFB, 0x5A, 0xCF, 0x5E, 0x7F, 0xF0, 0x57, 0x3E, 0x35, 0x42, 0xCF, 0xEA, -+ 0xFE, 0x1E, 0xDB, 0x4F, 0x1E, 0x40, 0x5D, 0xD3, 0x16, 0x7A, 0x92, 0x8E, 0x30, 0xDC, 0xC6, 0x0E, 0xF8, 0x62, 0xB5, 0xA0, 0xDB, 0xCF, 0x00, 0x27, 0x8B, 0x03, 0x23, 0xEC, 0x6C, 0xBA, 0xE1, 0x4C, -+ 0x8D, 0x79, 0x9B, 0xCC, 0x31, 0x10, 0x89, 0x30, 0x12, 0xEA, 0x81, 0x7E, 0xA0, 0x6F, 0x85, 0x32, 0x87, 0x48, 0xDF, 0x00, 0x9B, 0x7D, 0xD3, 0x6C, 0x46, 0x65, 0x52, 0xC6, 0x3F, 0x55, 0x0A, 0xF2, -+ 0xD2, 0x36, 0x7A, 0x3C, 0x17, 0xF7, 0x86, 0x6F, 0xA2, 0x2F, 0x1C, 0x8F, 0x16, 0xD2, 0xCB, 0x9F, 0x9A, 0xD7, 0x9F, 0xAE, 0xD0, 0x1E, 0x61, 0xEB, 0x31, 0xB0, 0x0A, 0xFD, 0x17, 0xA9, 0x84, 0x43, -+ 0x5B, 0x1C, 0xA2, 0x7A, 0xE4, 0xBB, 0xC3, 0x42, 0x48, 0x2F, 0x24, 0x72, 0x45, 0x11, 0x18, 0xB2, 0x89, 0x7E, 0x6C, 0xF7, 0x50, 0xFC, 0x1F, 0x53, 0xAC, 0x80, 0x81, 0xA6, 0x98, 0x66, 0x28, 0x4E, -+ 0xEF, 0x08, 0x72, 0xAC, 0x3E, 0xB3, 0x42, 0x7A, 0x51, 0x55, 0xA1, 0x66, 0x06, 0xBC, 0x5D, 0x6D, 0x05, 0x06, 0xDC, 0x48, 0xF1, 0xEB, 0x3E, 0x85, 0xF7, 0x1F, 0xCA, 0x62, 0xD5, 0xD9, 0xD3, 0xAB, -+ 0xE3, 0xBB, 0x3E, 0x9B, 0x03, 0xC4, 0xEE, 0xF7, 0xB2, 0x69, 0xB5, 0xA8, 0x5E, 0xD3, 0xCB, 0x14, 0xCD, 0xED, 0x13, 0xC1, 0xAB, 0x92, 0x69, 0x41, 0x52, 0x2A, 0x5B, 0xED, 0x34, 0xB2, 0xBC, 0x33, -+ 0xC1, 0x17, 0x33, 0x14, 0x22, 0x23, 0xC4, 0x5D, 0x50, 0x55, 0x46, 0x27, 0x84, 0x00, 0xEA, 0x96, 0x96, 0xA4, 0xF4, 0x19, 0xCC, 0x80, 0xB1, 0x3F, 0xFC, 0x3D, 0xF5, 0xE0, 0xE6, 0x35, 0x41, 0x29, -+ 0x3B, 0x51, 0xCE, 0x00, 0x6A, 0xD0, 0xA5, 0x1C, 0xE9, 0x56, 0xFA, 0x3C, 0xF9, 0x05, 0xFF, 0x13, 0x19, 0x93, 0x76, 0x78, 0x18, 0x27, 0x8F, 0x21, 0x23, 0xF0, 0x9F, 0x42, 0x21, 0x21, 0x21, 0x46, -+ 0xFD, 0x06, 0xB7, 0x1D, 0xC1, 0x3D, 0xC2, 0x64, 0xCC, 0xC9, 0xE3, 0xDD, 0x94, 0x6E, 0xBE, 0xB9, 0xB4, 0x06, 0x56, 0x83, 0x81, 0x87, 0x33, 0xA9, 0x77, 0x54, 0xCC, 0x85, 0xBC, 0x86, 0x9B, 0x69, -+ 0x7B, 0x1B, 0x99, 0x01, 0x1C, 0x32, 0xEB, 0x6E, 0xC4, 0xFF, 0x8A, 0xE3, 0xF6, 0xFC, 0x4E, 0xEA, 0xED, 0x42, 0x84, 0x09, 0xC5, 0xB0, 0x34, 0x25, 0x7A, 0x0B, 0x96, 0xF0, 0x05, 0x73, 0x7D, 0x47, -+ 0x56, 0xE7, 0x7C, 0xA5, 0x44, 0xB9, 0x0E, 0x84, 0x1F, 0x8B, 0x47, 0xEE, 0x82, 0x04, 0xEA, 0x85, 0xE3, 0xCB, 0xA9, 0x14, 0xA0, 0x39, 0xCC, 0xD9, 0xCC, 0xD0, 0x60, 0x4F, 0x13, 0x78, 0x95, 0xB0, -+ 0x35, 0x29, 0x17, 0xDA, 0x69, 0x90, 0xB0, 0x1A, 0x87, 0xAB, 0x5B, 0xBE, 0xBD, 0x41, 0x20, 0x7C, 0x8E, 0x9A, 0x43, 0xCA, 0x10, 0x27, 0x9D, 0x7C, 0xA7, 0x09, 0xD6, 0x4D, 0x36, 0xCF, 0xA2, 0x2E, -+ 0xD5, 0x01, 0x34, 0xDE, 0x4B, 0xA3, 0x83, 0x49, 0x11, 0x64, 0x92, 0xD7, 0x4B, 0x23, 0x92, 0x08, 0xDF, 0xD1, 0x94, 0x84, 0xEA, 0xBC, 0xFE, 0x39, 0x9C, 0x98, 0x5C, 0xD0, 0xCB, 0xCF, 0xE4, 0x50, -+ 0x25, 0xD3, 0x55, 0x8E, 0xC9, 0xD3, 0x80, 0xAA, 0x29, 0xB1, 0xBE, 0x2E, 0x65, 0x46, 0x20, 0x93, 0xB7, 0x3A, 0xF6, 0x45, 0x77, 0x7A, 0x19, 0x2C, 0x0B, 0x47, 0x12, 0x06, 0xC1, 0x4F, 0xE2, 0xE4, -+ 0xDC, 0xD6, 0x11, 0x5B, 0x4C, 0x97, 0xEC, 0xB1, 0x28, 0x86, 0x4D, 0x2B, 0xA0, 0x31, 0xF1, 0x2B, 0x44, 0xF3, 0x86, 0x1B, 0x4D, 0xA5, 0x71, 0x4E, 0x78, 0xB4, 0xF7, 0xCC, 0x31, 0xB5, 0xC8, 0xB5, -+ 0x04, 0xD1, 0x91, 0x5E, 0x5D, 0xB8, 0x96, 0x60, 0xF4, 0xCD, 0x7A, 0x54, 0x57, 0x68, 0x36, 0x74, 0xBE, 0xB3, 0x1C, 0x09, 0x67, 0x9F, 0x30, 0xAE, 0xD2, 0x29, 0xCF, 0xE5, 0xEA, 0xC8, 0xF2, 0xF6, -+ 0x18, 0x41, 0x6B, 0x00, 0x9B, 0x17, 0xED, 0x3E, 0x95, 0x36, 0x9E, 0xD1, 0xFB, 0xC8, 0x4F, 0xD8, 0x11, 0xB9, 0x3B, 0xE7, 0x65, 0xC4, 0x3A, 0xD7, 0xE1, 0x31, 0x3F, 0x7C, 0x23, 0x36, 0x4C, 0xC5, -+ 0xA5, 0xCE, 0xD5, 0x25, 0x9A, 0x16, 0xD6, 0x99, 0xB7, 0xDC, 0x93, 0x8A, 0xF8, 0xAB, 0xF2, 0xB7, 0xF7, 0x22, 0x67, 0x76, 0xCD, 0xF8, 0x77, 0xD5, 0xA8, 0x3B, 0x22, 0x24, 0xCE, 0xDD, 0x49, 0x4A, -+ 0x40, 0x79, 0x15, 0x74, 0x7F, 0x9A, 0x26, 0x80, 0x41, 0xB7, 0x43, 0x9F, 0x1C, 0x49, 0xB8, 0x80, 0x51, 0xB1, 0x2D, 0x1F, 0x03, 0x9D, 0xBF, 0xA7, 0xBD, 0x0D, 0x4B, 0x83, 0xA6, 0x66, 0xA5, 0xD9, -+ 0xA3, 0x41, 0x86, 0x61, 0x36, 0xA6, 0xF6, 0xFE, 0xCF, 0xDD, 0xFA, 0x37, 0x94, 0xC5, 0x2B, 0xE1, 0x38, 0xC6, 0xAB, 0x66, 0x27, 0x0E, 0x37, 0xF0, 0x49, 0x0F, 0x39, 0x7C, 0x80, 0x61, 0xBD, 0x05, -+ 0xBC, 0x57, 0x55, 0x69, 0x78, 0xC0, 0x3E, 0x9A, 0x34, 0x60, 0xB4, 0xBC, 0x82, 0x4D, 0x3D, 0xB7, 0xF5, 0x1E, 0x37, 0x08, 0xF5, 0x06, 0x2B, 0x42, 0xF1, 0x61, 0x7A, 0x33, 0x39, 0xD7, 0x7B, 0x03, -+ 0x3A, 0xB6, 0x3A, 0xD0, 0x0E, 0xC0, 0xC7, 0xD1, 0xF0, 0x76, 0x50, 0xBD, 0x1E, 0x26, 0xB4, 0xDB, 0x37, 0x5E, 0xEB, 0x35, 0xAF, 0x5D, 0xC2, 0x26, 0xA7, 0x42, 0x4C, 0xF1, 0x19, 0x15, 0x32, 0x4A, -+ 0x96, 0x29, 0x5B, 0xA9, 0xCE, 0x3E, 0x94, 0xCA, 0x41, 0x16, 0x9D, 0x7F, 0x93, 0xE6, 0x50, 0xE1, 0x00, 0xE8, 0x63, 0xD2, 0x59, 0x2B, 0xDB, 0x0D, 0xC0, 0x3C, 0x3B, 0x12, 0x50, 0x69, 0xFB, 0x24, -+ 0x80, 0x9A, 0x27, 0x9A, 0xC6, 0xCE, 0x58, 0x1A, 0x7C, 0x8C, 0x94, 0xB6, 0x2B, 0x2E, 0x5F, 0x9A, 0x92, 0x00, 0x33, 0x4E, 0x07, 0x92, 0x4A, 0xE3, 0x8D, 0xF3, 0xF4, 0x0D, 0xB3, 0x91, 0x0C, 0x35, -+ 0xE6, 0xD5, 0xE7, 0xE9, 0x54, 0xC4, 0x4A, 0xC8, 0xE3, 0xBE, 0x20, 0xDB, 0x46, 0x99, 0x05, 0x74, 0x13, 0x02, 0x43, 0x1F, 0xB9, 0x75, 0xED, 0x1E, 0xDB, 0x26, 0x15, 0x26, 0x33, 0x28, 0xFF, 0x51, -+ 0xBA, 0xAC, 0x89, 0xFD, 0xAC, 0xAD, 0xAB, 0x5E, 0x79, 0xE5, 0xDE, 0x54, 0xCA, 0x24, 0xC1, 0xE3, 0x94, 0x32, 0x5A, 0xD8, 0x02, 0x34, 0x67, 0xB2, 0x3A, 0x8F, 0xF7, 0xEC, 0x22, 0x7E, 0x88, 0x32, -+ 0x7B, 0x97, 0x40, 0x8F, 0x8A, 0xD2, 0x3A, 0xFE, 0xA5, 0xF9, 0xA8, 0x1E, 0x39, 0x9B, 0x92, 0x79, 0xC2, 0xDE, 0x78, 0x77, 0x37, 0xAD, 0xF3, 0x83, 0xB4, 0x83, 0x58, 0x56, 0x8B, 0xA0, 0x4B, 0x41, -+ 0x24, 0x89, 0xBF, 0x78, 0xD6, 0x35, 0xC0, 0xA5, 0xDA, 0x0F, 0xED, 0xCD, 0xC0, 0xB7, 0xAF, 0xCB, 0x88, 0xF3, 0xB8, 0x35, 0x89, 0x4B, 0xD0, 0x38, 0x57, 0x32, 0x51, 0x37, 0xA4, 0x26, 0x4D, 0xBD, -+ 0x40, 0x12, 0x92, 0x6F, 0x9E, 0x8C, 0x3E, 0xC6, 0x21, 0x66, 0x99, 0x57, 0x41, 0x3E, 0xC5, 0x11, 0xCD, 0xCB, 0xB4, 0xA3, 0x1F, 0x3F, 0x60, 0x7D, 0x28, 0x9E, 0xEB, 0xEC, 0xCD, 0x86, 0xE9, 0x92, -+ 0x30, 0x31, 0x66, 0xE6, 0x0B, 0x8A, 0x12, 0x6C, 0xEF, 0x13, 0x90, 0x2D, 0x4A, 0xB1, 0x77, 0xFA, 0x23, 0xB0, 0xEC, 0x0D, 0x72, 0x6C, 0x59, 0x57, 0x67, 0x04, 0x58, 0xE3, 0x22, 0x53, 0x9B, 0xF0, -+ 0xFC, 0x19, 0x3E, 0xE5, 0x24, 0xDA, 0xBC, 0xEA, 0x6C, 0x74, 0x33, 0xFE, 0xDD, 0x56, 0x37, 0x87, 0x23, 0x76, 0xD9, 0xE4, 0x91, 0x8F, 0xF5, 0x51, 0xA6, 0xE0, 0xF4, 0x0C, 0x1A, 0xB7, 0x54, 0xDF, -+ 0x60, 0x6D, 0xE6, 0x45, 0xE3, 0xE7, 0x82, 0x0C, 0x85, 0x3F, 0xEE, 0xC0, 0x6A, 0x7D, 0x45, 0xCF, 0x87, 0x9F, 0x79, 0x07, 0x2C, 0x30, 0x59, 0x51, 0x52, 0xF2, 0x9E, 0xE3, 0xB3, 0xBA, 0x04, 0xAE, -+ 0x33, 0xA2, 0x87, 0x29, 0x80, 0xFC, 0x6D, 0xD7, 0xC2, 0x31, 0xC7, 0xFA, 0x34, 0x7C, 0xBD, 0x68, 0xD9, 0xB2, 0xEE, 0xF5, 0x78, 0x6E, 0x48, 0xF7, 0x8A, 0x8A, 0x28, 0x02, 0x50, 0x60, 0x90, 0x28, -+ 0x49, 0xCA, 0xC6, 0x70, 0x25, 0x83, 0xB1, 0x1D, 0x37, 0x67, 0x78, 0x68, 0x08, 0x1E, 0x06, 0xFC, 0x6A, 0x7E, 0xDF, 0xBE, 0x6B, 0x9C, 0xBB, 0xD2, 0xC7, 0x37, 0x0B, 0x29, 0x61, 0x70, 0x4B, 0x05, -+ 0xF3, 0x57, 0xFB, 0x46, 0x33, 0xA9, 0xEF, 0x6B, 0x2E, 0xFE, 0xB2, 0xD8, 0xFF, 0xA3, 0x1C, 0xC9, 0x0F, 0xC4, 0x51, 0x5A, 0x95, 0x3F, 0x8F, 0x7F, 0x68, 0x81, 0x93, 0x18, 0x71, 0x2E, 0x06, 0x44, -+ 0x09, 0x3A, 0x0A, 0x18, 0xE4, 0x31, 0xE4, 0x64, 0x28, 0x76, 0x31, 0x6C, 0xFC, 0x12, 0x7D, 0x67, 0x4B, 0x67, 0x6F, 0x29, 0xC9, 0x0C, 0x9D, 0x25, 0x14, 0x21, 0x49, 0x54, 0x17, 0xC0, 0xC1, 0xF0, -+ 0x96, 0xBC, 0x1C, 0xC8, 0xD6, 0xBF, 0xF1, 0x7F, 0x95, 0x3B, 0xF2, 0x48, 0x5D, 0x19, 0x50, 0xA0, 0x9D, 0x3C, 0x3A, 0x92, 0x88, 0xE6, 0xCE, 0xE2, 0x30, 0xCF, 0x41, 0xC3, 0x4B, 0x1F, 0x3B, 0xB8, -+ 0x33, 0x0A, 0x96, 0x07, 0xCB, 0x62, 0xA9, 0x51, 0x0F, 0xC2, 0x5A, 0x0E, 0x5F, 0x67, 0x0B, 0x48, 0x69, 0x3C, 0x06, 0xF8, 0xA0, 0x2C, 0x29, 0x7D, 0xBB, 0xAF, 0xE5, 0x67, 0x61, 0x86, 0x08, 0x29, -+ 0xE4, 0xB5, 0x5D, 0xF0, 0xC7, 0xE0, 0x06, 0x91, 0xB5, 0xE0, 0x88, 0xCE, 0xC8, 0x06, 0x78, 0x0B, 0xB3, 0xAB, 0x6C, 0x2C, 0x06, 0x8C, 0x4E, 0xD8, 0xFC, 0x47, 0xFE, 0x39, 0x76, 0xD1, 0x65, 0x1E, -+ 0x63, 0x0E, 0xCE, 0x0F, 0xA7, 0x7B, 0x5F, 0x05, 0xA6, 0xFE, 0x70, 0x20, 0x9D, 0x31, 0x86, 0x0C, 0xEB, 0x98, 0xFA, 0x49, 0xB7, 0xEC, 0x55, 0x25, 0x1A, 0xEB, 0x7C, 0x7C, 0x90, 0x16, 0xD1, 0x80, -+ 0x40, 0x5A, 0x1E, 0x5A, 0x24, 0x69, 0x15, 0x51, 0xCF, 0xE6, 0xFD, 0x8E, 0x8F, 0x36, 0x17, 0x90, 0x2B, 0xE0, 0xF6, 0x33, 0x53, 0xE7, 0x3F, 0x05, 0x46, 0x01, 0xF0, 0xCD, 0x2B, 0x1C, 0xE8, 0xBF, -+ 0xB2, 0x0B, 0x7C, 0x64, 0x9D, 0x31, 0xCE, 0x52, 0xC1, 0xB7, 0xEF, 0xDD, 0xE9, 0xD9, 0xD8, 0x6B, 0x39, 0x52, 0x18, 0x6C, 0xAF, 0x0C, 0x3C, 0xCE, 0x1F, 0xDD, 0x13, 0x04, 0x26, 0xE4, 0x2E, 0x02, -+ 0x09, 0x0F, 0x5B, 0x5D, 0x5E, 0x74, 0x75, 0x7B, 0x82, 0xA7, 0xB4, 0xC2, 0xCF, 0xDB, 0xE4, 0x10, 0x40, 0x43, 0x4E, 0x62, 0x66, 0x67, 0x69, 0x8B, 0x98, 0x9B, 0xA4, 0xB2, 0xD2, 0xE0, 0xE9, 0xF7, -+ 0x09, 0x21, 0x2A, 0x3B, 0x46, 0x52, 0x58, 0x71, 0x8E, 0xC0, 0xD7, 0xE1, 0xE6, 0xED, 0xF5, 0x10, 0x28, 0x32, 0x39, 0x4F, 0x56, 0x57, 0x78, 0x80, 0x8F, 0x9B, 0xAE, 0xB2, 0xDE, 0xEF, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x20, 0x2F, 0x3E, -+ }, -+ }, -+ { -+ .name = "Dilithium Round 3, Level 3 (6-5) KAT 0 (PKCS#8/SPKI)", -+ .version = 0, -+ .keyform = 0, -+ .rho_len = 0, -+ .seed_len = 0, -+ .tr_len = 0, -+ .s1_len = 0, -+ .s2_len = 0, -+ .t0_len = 0, -+ .t1_len = 0, -+ .pkcs8_len = 5988, -+ .pkcs8 = { -+ 0x30, 0x82, 0x17, 0x60, 0x02, 0x01, 0x00, 0x30, 0x0F, 0x06, 0x0B, 0x2B, 0x06, 0x01, 0x04, 0x01, 0x02, 0x82, 0x0B, 0x07, 0x06, 0x05, 0x05, 0x00, 0x04, 0x82, 0x17, 0x48, 0x30, 0x82, 0x17, 0x44, -+ 0x02, 0x01, 0x00, 0x03, 0x21, 0x00, 0x1C, 0x0E, 0xE1, 0x11, 0x1B, 0x08, 0x00, 0x3F, 0x28, 0xE6, 0x5E, 0x8B, 0x3B, 0xDE, 0xB0, 0x37, 0xCF, 0x8F, 0x22, 0x1D, 0xFC, 0xDA, 0xF5, 0x95, 0x0E, 0xDB, -+ 0x38, 0xD5, 0x06, 0xD8, 0x5B, 0xEF, 0x03, 0x21, 0x00, 0x39, 0x4D, 0x16, 0x95, 0x05, 0x9D, 0xFF, 0x40, 0xAE, 0x25, 0x6C, 0x5D, 0x5E, 0xDA, 0xBF, 0xB6, 0x9F, 0x5F, 0x40, 0xF3, 0x7A, 0x58, 0x8F, -+ 0x50, 0x53, 0x2C, 0xA4, 0x08, 0xA8, 0x16, 0x8A, 0xB1, 0x03, 0x21, 0x00, 0xE6, 0x4F, 0x14, 0x64, 0x27, 0x54, 0x3D, 0x8C, 0x36, 0xB3, 0xB6, 0x52, 0x26, 0x76, 0x9A, 0x22, 0x91, 0x1A, 0x5A, 0x31, -+ 0x3E, 0xAC, 0x17, 0xC4, 0xAB, 0xA2, 0x52, 0x84, 0x51, 0x4F, 0xC6, 0x13, 0x03, 0x82, 0x02, 0x81, 0x00, 0x35, 0x78, 0x08, 0x33, 0x02, 0x23, 0x16, 0x43, 0x37, 0x65, 0x80, 0x75, 0x78, 0x71, 0x45, -+ 0x24, 0x81, 0x01, 0x73, 0x15, 0x44, 0x83, 0x65, 0x26, 0x41, 0x33, 0x30, 0x22, 0x30, 0x26, 0x14, 0x73, 0x70, 0x52, 0x21, 0x07, 0x81, 0x26, 0x50, 0x61, 0x85, 0x85, 0x07, 0x75, 0x46, 0x18, 0x58, -+ 0x05, 0x48, 0x53, 0x30, 0x18, 0x70, 0x66, 0x47, 0x51, 0x82, 0x67, 0x73, 0x77, 0x33, 0x50, 0x02, 0x70, 0x31, 0x28, 0x78, 0x82, 0x15, 0x80, 0x71, 0x40, 0x26, 0x73, 0x43, 0x20, 0x61, 0x62, 0x50, -+ 0x61, 0x73, 0x71, 0x01, 0x03, 0x11, 0x45, 0x36, 0x81, 0x52, 0x30, 0x24, 0x65, 0x03, 0x48, 0x14, 0x37, 0x08, 0x37, 0x18, 0x25, 0x50, 0x84, 0x06, 0x08, 0x60, 0x17, 0x62, 0x58, 0x31, 0x31, 0x28, -+ 0x27, 0x00, 0x17, 0x18, 0x48, 0x16, 0x67, 0x31, 0x78, 0x61, 0x07, 0x37, 0x23, 0x55, 0x74, 0x47, 0x15, 0x10, 0x10, 0x11, 0x21, 0x10, 0x66, 0x27, 0x42, 0x12, 0x08, 0x35, 0x46, 0x22, 0x85, 0x13, -+ 0x13, 0x88, 0x16, 0x48, 0x86, 0x83, 0x35, 0x10, 0x47, 0x60, 0x26, 0x11, 0x83, 0x15, 0x74, 0x25, 0x00, 0x74, 0x24, 0x40, 0x64, 0x25, 0x15, 0x86, 0x13, 0x65, 0x61, 0x37, 0x77, 0x11, 0x84, 0x78, -+ 0x05, 0x08, 0x62, 0x43, 0x70, 0x64, 0x06, 0x85, 0x27, 0x63, 0x11, 0x50, 0x13, 0x56, 0x23, 0x21, 0x68, 0x41, 0x41, 0x77, 0x24, 0x08, 0x48, 0x30, 0x87, 0x85, 0x75, 0x43, 0x85, 0x08, 0x63, 0x68, -+ 0x54, 0x26, 0x84, 0x50, 0x56, 0x84, 0x37, 0x02, 0x40, 0x07, 0x16, 0x17, 0x84, 0x54, 0x38, 0x00, 0x61, 0x27, 0x05, 0x82, 0x62, 0x06, 0x76, 0x52, 0x11, 0x12, 0x14, 0x83, 0x88, 0x06, 0x78, 0x14, -+ 0x75, 0x55, 0x02, 0x12, 0x22, 0x85, 0x52, 0x31, 0x08, 0x45, 0x03, 0x70, 0x13, 0x64, 0x31, 0x80, 0x05, 0x37, 0x68, 0x37, 0x65, 0x02, 0x46, 0x53, 0x15, 0x07, 0x60, 0x06, 0x25, 0x33, 0x12, 0x51, -+ 0x20, 0x05, 0x41, 0x60, 0x63, 0x24, 0x23, 0x52, 0x41, 0x50, 0x77, 0x31, 0x45, 0x70, 0x33, 0x47, 0x65, 0x64, 0x31, 0x23, 0x18, 0x03, 0x33, 0x65, 0x16, 0x75, 0x87, 0x14, 0x13, 0x04, 0x11, 0x17, -+ 0x15, 0x54, 0x68, 0x12, 0x60, 0x53, 0x73, 0x42, 0x38, 0x82, 0x43, 0x27, 0x83, 0x37, 0x12, 0x22, 0x81, 0x74, 0x81, 0x81, 0x20, 0x13, 0x63, 0x27, 0x64, 0x75, 0x10, 0x28, 0x03, 0x22, 0x68, 0x65, -+ 0x08, 0x76, 0x55, 0x35, 0x63, 0x33, 0x81, 0x04, 0x47, 0x48, 0x58, 0x54, 0x30, 0x12, 0x43, 0x18, 0x08, 0x38, 0x64, 0x38, 0x53, 0x83, 0x08, 0x41, 0x27, 0x04, 0x64, 0x64, 0x63, 0x34, 0x64, 0x61, -+ 0x06, 0x80, 0x70, 0x60, 0x23, 0x75, 0x51, 0x68, 0x25, 0x74, 0x11, 0x52, 0x88, 0x22, 0x01, 0x57, 0x78, 0x58, 0x33, 0x31, 0x34, 0x31, 0x55, 0x82, 0x84, 0x03, 0x16, 0x36, 0x01, 0x06, 0x48, 0x14, -+ 0x80, 0x46, 0x43, 0x68, 0x46, 0x17, 0x57, 0x21, 0x36, 0x31, 0x65, 0x74, 0x65, 0x22, 0x15, 0x17, 0x71, 0x32, 0x05, 0x10, 0x66, 0x46, 0x83, 0x16, 0x46, 0x71, 0x47, 0x28, 0x31, 0x35, 0x55, 0x14, -+ 0x73, 0x32, 0x81, 0x82, 0x60, 0x73, 0x15, 0x54, 0x36, 0x87, 0x08, 0x03, 0x28, 0x43, 0x26, 0x24, 0x16, 0x05, 0x32, 0x05, 0x20, 0x23, 0x67, 0x72, 0x58, 0x28, 0x18, 0x10, 0x85, 0x42, 0x67, 0x85, -+ 0x15, 0x52, 0x80, 0x00, 0x72, 0x82, 0x27, 0x18, 0x31, 0x12, 0x08, 0x68, 0x37, 0x72, 0x44, 0x42, 0x05, 0x48, 0x64, 0x72, 0x05, 0x35, 0x08, 0x61, 0x73, 0x86, 0x27, 0x12, 0x46, 0x77, 0x51, 0x08, -+ 0x52, 0x76, 0x33, 0x40, 0x37, 0x34, 0x32, 0x11, 0x54, 0x24, 0x06, 0x54, 0x02, 0x34, 0x50, 0x80, 0x04, 0x17, 0x72, 0x84, 0x62, 0x73, 0x61, 0x68, 0x68, 0x07, 0x81, 0x52, 0x46, 0x71, 0x06, 0x82, -+ 0x55, 0x45, 0x81, 0x63, 0x62, 0x76, 0x41, 0x80, 0x57, 0x12, 0x44, 0x25, 0x57, 0x08, 0x04, 0x51, 0x06, 0x63, 0x61, 0x15, 0x85, 0x86, 0x30, 0x46, 0x52, 0x07, 0x05, 0x32, 0x75, 0x02, 0x18, 0x22, -+ 0x42, 0x83, 0x71, 0x02, 0x38, 0x52, 0x75, 0x28, 0x44, 0x20, 0x33, 0x00, 0x17, 0x23, 0x11, 0x14, 0x02, 0x15, 0x76, 0x88, 0x38, 0x47, 0x62, 0x31, 0x85, 0x13, 0x52, 0x52, 0x10, 0x84, 0x38, 0x25, -+ 0x55, 0x56, 0x74, 0x11, 0x44, 0x54, 0x67, 0x27, 0x85, 0x46, 0x58, 0x61, 0x70, 0x43, 0x07, 0x58, 0x80, 0x06, 0x84, 0x55, 0x13, 0x53, 0x47, 0x81, 0x38, 0x12, 0x08, 0x00, 0x84, 0x31, 0x56, 0x22, -+ 0x14, 0x66, 0x03, 0x15, 0x60, 0x01, 0x63, 0x68, 0x56, 0x36, 0x73, 0x61, 0x80, 0x80, 0x04, 0x55, 0x54, 0x03, 0x82, 0x03, 0x01, 0x00, 0x33, 0x73, 0x12, 0x58, 0x40, 0x31, 0x14, 0x80, 0x42, 0x03, -+ 0x67, 0x33, 0x01, 0x82, 0x71, 0x55, 0x60, 0x65, 0x60, 0x34, 0x40, 0x51, 0x44, 0x34, 0x55, 0x48, 0x51, 0x12, 0x23, 0x76, 0x45, 0x10, 0x64, 0x33, 0x73, 0x25, 0x38, 0x23, 0x38, 0x06, 0x24, 0x51, -+ 0x61, 0x70, 0x81, 0x54, 0x11, 0x67, 0x17, 0x32, 0x00, 0x85, 0x32, 0x60, 0x40, 0x43, 0x71, 0x06, 0x80, 0x37, 0x37, 0x60, 0x70, 0x86, 0x40, 0x87, 0x00, 0x03, 0x52, 0x45, 0x71, 0x48, 0x26, 0x22, -+ 0x03, 0x50, 0x53, 0x56, 0x66, 0x03, 0x72, 0x18, 0x01, 0x37, 0x10, 0x37, 0x10, 0x36, 0x52, 0x78, 0x43, 0x28, 0x24, 0x64, 0x23, 0x20, 0x47, 0x64, 0x23, 0x84, 0x00, 0x00, 0x67, 0x43, 0x64, 0x56, -+ 0x52, 0x26, 0x21, 0x76, 0x65, 0x21, 0x24, 0x13, 0x88, 0x73, 0x47, 0x65, 0x08, 0x43, 0x12, 0x17, 0x01, 0x64, 0x71, 0x46, 0x54, 0x03, 0x87, 0x24, 0x41, 0x77, 0x74, 0x13, 0x76, 0x78, 0x55, 0x21, -+ 0x64, 0x11, 0x17, 0x31, 0x60, 0x50, 0x48, 0x26, 0x04, 0x14, 0x84, 0x74, 0x66, 0x38, 0x03, 0x35, 0x15, 0x58, 0x01, 0x73, 0x51, 0x26, 0x21, 0x33, 0x62, 0x22, 0x27, 0x10, 0x63, 0x45, 0x60, 0x16, -+ 0x57, 0x20, 0x77, 0x85, 0x48, 0x32, 0x72, 0x48, 0x31, 0x56, 0x16, 0x78, 0x34, 0x56, 0x40, 0x57, 0x68, 0x67, 0x34, 0x58, 0x35, 0x25, 0x35, 0x20, 0x81, 0x55, 0x65, 0x48, 0x10, 0x32, 0x05, 0x33, -+ 0x40, 0x16, 0x60, 0x74, 0x23, 0x71, 0x50, 0x16, 0x32, 0x53, 0x34, 0x66, 0x72, 0x70, 0x81, 0x11, 0x18, 0x24, 0x37, 0x32, 0x13, 0x11, 0x54, 0x42, 0x40, 0x82, 0x61, 0x37, 0x75, 0x04, 0x67, 0x10, -+ 0x08, 0x02, 0x61, 0x38, 0x68, 0x50, 0x71, 0x28, 0x37, 0x52, 0x66, 0x72, 0x24, 0x23, 0x08, 0x02, 0x10, 0x05, 0x01, 0x55, 0x20, 0x48, 0x37, 0x44, 0x37, 0x71, 0x16, 0x42, 0x01, 0x23, 0x16, 0x71, -+ 0x07, 0x82, 0x38, 0x08, 0x07, 0x10, 0x11, 0x24, 0x68, 0x25, 0x82, 0x40, 0x18, 0x15, 0x85, 0x18, 0x74, 0x20, 0x85, 0x38, 0x25, 0x83, 0x10, 0x66, 0x75, 0x13, 0x12, 0x52, 0x85, 0x27, 0x65, 0x25, -+ 0x60, 0x31, 0x47, 0x81, 0x62, 0x13, 0x81, 0x53, 0x47, 0x04, 0x22, 0x61, 0x05, 0x71, 0x55, 0x67, 0x44, 0x68, 0x20, 0x05, 0x45, 0x50, 0x51, 0x48, 0x41, 0x13, 0x03, 0x83, 0x02, 0x41, 0x47, 0x47, -+ 0x15, 0x62, 0x72, 0x02, 0x16, 0x53, 0x21, 0x03, 0x03, 0x87, 0x36, 0x03, 0x48, 0x67, 0x51, 0x76, 0x65, 0x27, 0x21, 0x42, 0x17, 0x26, 0x25, 0x76, 0x65, 0x36, 0x12, 0x11, 0x12, 0x16, 0x87, 0x48, -+ 0x45, 0x40, 0x33, 0x42, 0x68, 0x35, 0x44, 0x40, 0x68, 0x13, 0x60, 0x50, 0x31, 0x08, 0x17, 0x43, 0x56, 0x75, 0x06, 0x34, 0x61, 0x84, 0x75, 0x57, 0x58, 0x58, 0x65, 0x44, 0x84, 0x07, 0x62, 0x31, -+ 0x86, 0x70, 0x34, 0x33, 0x67, 0x58, 0x66, 0x67, 0x73, 0x20, 0x75, 0x17, 0x10, 0x36, 0x05, 0x27, 0x37, 0x24, 0x12, 0x20, 0x17, 0x38, 0x87, 0x54, 0x40, 0x32, 0x26, 0x30, 0x62, 0x13, 0x54, 0x18, -+ 0x36, 0x81, 0x55, 0x77, 0x32, 0x00, 0x10, 0x03, 0x65, 0x18, 0x57, 0x41, 0x86, 0x02, 0x14, 0x44, 0x33, 0x41, 0x02, 0x37, 0x55, 0x63, 0x58, 0x75, 0x02, 0x61, 0x88, 0x64, 0x18, 0x51, 0x76, 0x24, -+ 0x15, 0x85, 0x07, 0x11, 0x80, 0x35, 0x41, 0x51, 0x57, 0x42, 0x42, 0x58, 0x54, 0x56, 0x35, 0x45, 0x15, 0x57, 0x07, 0x63, 0x86, 0x77, 0x24, 0x00, 0x17, 0x67, 0x83, 0x86, 0x86, 0x25, 0x88, 0x17, -+ 0x75, 0x08, 0x61, 0x23, 0x60, 0x60, 0x65, 0x07, 0x33, 0x35, 0x06, 0x60, 0x52, 0x75, 0x02, 0x47, 0x24, 0x33, 0x64, 0x51, 0x35, 0x45, 0x52, 0x55, 0x41, 0x48, 0x60, 0x42, 0x16, 0x43, 0x15, 0x63, -+ 0x33, 0x16, 0x55, 0x67, 0x60, 0x70, 0x34, 0x26, 0x77, 0x08, 0x07, 0x60, 0x55, 0x30, 0x63, 0x50, 0x13, 0x37, 0x70, 0x77, 0x01, 0x37, 0x45, 0x72, 0x74, 0x51, 0x28, 0x72, 0x83, 0x64, 0x74, 0x77, -+ 0x80, 0x27, 0x30, 0x36, 0x44, 0x23, 0x10, 0x55, 0x24, 0x15, 0x43, 0x11, 0x63, 0x14, 0x65, 0x33, 0x63, 0x12, 0x11, 0x84, 0x63, 0x12, 0x63, 0x88, 0x37, 0x62, 0x67, 0x48, 0x35, 0x13, 0x86, 0x35, -+ 0x17, 0x83, 0x12, 0x58, 0x14, 0x47, 0x88, 0x56, 0x08, 0x48, 0x01, 0x42, 0x71, 0x64, 0x77, 0x53, 0x64, 0x73, 0x54, 0x66, 0x05, 0x56, 0x60, 0x52, 0x37, 0x00, 0x46, 0x40, 0x31, 0x10, 0x55, 0x50, -+ 0x45, 0x36, 0x48, 0x42, 0x34, 0x06, 0x61, 0x11, 0x75, 0x52, 0x61, 0x58, 0x52, 0x15, 0x73, 0x57, 0x31, 0x56, 0x15, 0x87, 0x78, 0x74, 0x45, 0x03, 0x87, 0x20, 0x54, 0x56, 0x11, 0x66, 0x22, 0x04, -+ 0x46, 0x14, 0x14, 0x61, 0x83, 0x00, 0x06, 0x86, 0x64, 0x06, 0x00, 0x47, 0x37, 0x44, 0x22, 0x50, 0x56, 0x01, 0x04, 0x57, 0x73, 0x50, 0x74, 0x87, 0x02, 0x66, 0x37, 0x48, 0x68, 0x48, 0x02, 0x63, -+ 0x28, 0x52, 0x63, 0x58, 0x11, 0x30, 0x44, 0x28, 0x68, 0x32, 0x61, 0x10, 0x61, 0x88, 0x26, 0x07, 0x00, 0x73, 0x38, 0x62, 0x55, 0x27, 0x15, 0x53, 0x45, 0x32, 0x14, 0x25, 0x73, 0x23, 0x12, 0x21, -+ 0x87, 0x86, 0x55, 0x67, 0x25, 0x67, 0x46, 0x74, 0x72, 0x81, 0x44, 0x54, 0x64, 0x15, 0x77, 0x41, 0x07, 0x80, 0x60, 0x56, 0x13, 0x16, 0x15, 0x40, 0x44, 0x63, 0x47, 0x53, 0x30, 0x77, 0x61, 0x62, -+ 0x50, 0x13, 0x38, 0x41, 0x47, 0x42, 0x66, 0x70, 0x52, 0x06, 0x70, 0x81, 0x25, 0x43, 0x17, 0x77, 0x70, 0x15, 0x22, 0x21, 0x82, 0x50, 0x03, 0x82, 0x09, 0xC1, 0x00, 0x01, 0x31, 0x73, 0x16, 0x9D, -+ 0xB8, 0x08, 0x6B, 0x12, 0x27, 0x01, 0x70, 0x6A, 0xE4, 0x9B, 0x99, 0x30, 0x5E, 0xE6, 0xD0, 0x16, 0xF1, 0x6F, 0x9F, 0xAC, 0xC1, 0xF8, 0x35, 0x29, 0x8B, 0x41, 0xE2, 0x16, 0x64, 0x20, 0x60, 0x05, -+ 0xCE, 0xB9, 0x81, 0xA3, 0x5F, 0x18, 0x65, 0x1C, 0xDB, 0x90, 0xE6, 0x8C, 0x1F, 0x95, 0x0B, 0x05, 0x9F, 0x73, 0xD6, 0xD3, 0x14, 0x3A, 0x1F, 0x47, 0xAA, 0x21, 0xD8, 0x0A, 0x05, 0xFA, 0xF5, 0xD3, -+ 0xA4, 0x0F, 0x67, 0x14, 0x8D, 0x3A, 0x89, 0xA9, 0xFD, 0xA8, 0x03, 0x64, 0xD5, 0x7C, 0x7B, 0x8F, 0x68, 0x05, 0x8A, 0x25, 0xD0, 0x84, 0x98, 0xD9, 0xA9, 0xC3, 0x78, 0xC9, 0x81, 0x85, 0xDB, 0x13, -+ 0x25, 0x91, 0x59, 0xCA, 0xC4, 0x76, 0x9C, 0x34, 0xA0, 0x80, 0x23, 0xA3, 0x38, 0x8C, 0x35, 0x05, 0x40, 0x6F, 0xB2, 0x1C, 0x69, 0xEE, 0xC1, 0x2D, 0xAC, 0x95, 0xA3, 0xC9, 0xBA, 0x61, 0x18, 0x52, -+ 0x37, 0xF0, 0xFF, 0x1E, 0x0E, 0x05, 0xF1, 0xA6, 0xF5, 0xA0, 0xC0, 0x90, 0x90, 0x10, 0x06, 0x65, 0xA1, 0xAD, 0x3A, 0xFB, 0x10, 0x76, 0x84, 0x7B, 0x23, 0x2E, 0xEE, 0xA7, 0x84, 0x09, 0xBD, 0x90, -+ 0x55, 0xDB, 0x57, 0xC1, 0xB3, 0x1E, 0x28, 0xA0, 0x1D, 0x09, 0x99, 0x90, 0x35, 0xBD, 0xFC, 0x65, 0x7A, 0x61, 0x04, 0x01, 0x03, 0xEC, 0xEB, 0xDC, 0x79, 0x34, 0x09, 0x73, 0x37, 0x34, 0xD9, 0x34, -+ 0x2C, 0xC5, 0xA0, 0x69, 0xE0, 0x70, 0xC2, 0x42, 0x1D, 0xDE, 0x11, 0xC4, 0x9E, 0x17, 0x2D, 0xBE, 0x7F, 0xEA, 0xF9, 0xDE, 0xDD, 0xFB, 0x3D, 0xA5, 0xDA, 0xA6, 0xB3, 0xDD, 0x13, 0x20, 0x0B, 0x09, -+ 0x04, 0x2E, 0x14, 0x4E, 0xEA, 0x95, 0x1B, 0x43, 0xDA, 0x48, 0x15, 0x3C, 0x1F, 0x1D, 0x5C, 0x07, 0xFC, 0xF4, 0x73, 0xFA, 0x7F, 0x32, 0x1E, 0x72, 0x53, 0x45, 0x77, 0xC8, 0x95, 0x15, 0x1B, 0x46, -+ 0xE4, 0x83, 0x31, 0xDD, 0xE6, 0x1D, 0xA4, 0x5F, 0x86, 0x09, 0xAC, 0x59, 0x58, 0x18, 0x14, 0x66, 0x6E, 0x16, 0x58, 0xB4, 0x91, 0x14, 0x52, 0x4B, 0xA3, 0x84, 0x0C, 0x6B, 0xC5, 0x59, 0x65, 0x51, -+ 0xAE, 0xF4, 0x24, 0x12, 0xC8, 0xAA, 0xCC, 0xDD, 0x8E, 0xF6, 0x9E, 0x46, 0x38, 0x0E, 0x6D, 0xEF, 0x60, 0xFD, 0x91, 0x22, 0x8B, 0x99, 0xCB, 0x51, 0x1D, 0x68, 0xEF, 0x66, 0x31, 0x74, 0x8A, 0x05, -+ 0x48, 0x08, 0x3A, 0x21, 0x54, 0x45, 0xEC, 0x54, 0x69, 0x34, 0x71, 0xA8, 0x31, 0x04, 0x2C, 0xF4, 0x1D, 0x09, 0xAF, 0x89, 0x81, 0x19, 0xB0, 0xFC, 0x64, 0x6E, 0x48, 0x45, 0x39, 0xC8, 0xC3, 0x2D, -+ 0x5D, 0xC2, 0x4F, 0x94, 0x39, 0xD3, 0x3E, 0xEE, 0xA0, 0x33, 0xA4, 0x08, 0x15, 0x50, 0xFD, 0xB0, 0xB0, 0x89, 0x23, 0xDB, 0xA5, 0xD4, 0x4A, 0x1A, 0x87, 0x6F, 0xE7, 0xEE, 0x43, 0x20, 0xBF, 0x02, -+ 0xF9, 0xBE, 0x26, 0xF4, 0x18, 0xF3, 0x09, 0xFA, 0x11, 0xFC, 0xD0, 0xC8, 0x64, 0xA7, 0xAA, 0x34, 0x11, 0x50, 0x83, 0xC1, 0xEA, 0x77, 0x53, 0x45, 0xAC, 0x05, 0x48, 0xC8, 0x77, 0xC6, 0x85, 0xEA, -+ 0x8C, 0x91, 0xB9, 0x24, 0xAF, 0x4F, 0x60, 0x7E, 0xF3, 0x7A, 0x02, 0x08, 0xE2, 0x13, 0x09, 0xAB, 0x6D, 0x0F, 0x2F, 0x8A, 0x4E, 0xAA, 0x04, 0x51, 0xFF, 0x4A, 0x47, 0xE6, 0xF4, 0x82, 0x95, 0x8D, -+ 0x81, 0xA1, 0x66, 0xA6, 0xA0, 0x8A, 0x6A, 0x10, 0xFC, 0x8F, 0x9A, 0xDA, 0x42, 0xB6, 0x4A, 0x12, 0xB9, 0x35, 0x7D, 0x59, 0x8A, 0x36, 0x64, 0xE9, 0xDF, 0x13, 0x75, 0x5C, 0x10, 0xFF, 0xD7, 0x17, -+ 0x7E, 0x59, 0x4D, 0xFC, 0xBC, 0xFB, 0x5D, 0x11, 0xB6, 0xAD, 0xB1, 0x60, 0x74, 0x45, 0x47, 0x9A, 0x5D, 0xB1, 0xAD, 0x8C, 0xA6, 0xD9, 0x15, 0xF8, 0x97, 0x95, 0xD2, 0x40, 0xCB, 0xED, 0xFA, 0xD2, -+ 0x53, 0x9D, 0x10, 0x51, 0x8E, 0x53, 0xCC, 0x45, 0x0D, 0x6F, 0xC5, 0x38, 0x5A, 0xD6, 0xD7, 0x6B, 0x78, 0x30, 0xF1, 0x38, 0x28, 0x12, 0x06, 0x45, 0xE3, 0xA0, 0xA5, 0xDC, 0xDE, 0xAF, 0x15, 0xF1, -+ 0x96, 0x8E, 0x64, 0xB3, 0xB1, 0xCE, 0xAF, 0x53, 0x6C, 0xAA, 0x29, 0x53, 0xD1, 0x61, 0xC7, 0x55, 0x28, 0xC3, 0xFA, 0x84, 0x93, 0xE0, 0xC1, 0x77, 0xAE, 0x80, 0x7C, 0xED, 0x37, 0x64, 0x8A, 0x82, -+ 0xC9, 0xBE, 0x8B, 0xA9, 0x70, 0x29, 0x6D, 0x54, 0x3F, 0x6F, 0xBD, 0x67, 0x24, 0xA9, 0x9A, 0x68, 0xD2, 0xF6, 0x8C, 0x1F, 0xD3, 0x33, 0xF9, 0xDE, 0xF8, 0x52, 0x6D, 0xB7, 0x83, 0x64, 0x55, 0xB3, -+ 0x13, 0xE6, 0xBC, 0x36, 0x61, 0x78, 0xC9, 0xC5, 0x77, 0x21, 0x60, 0x1E, 0xC0, 0x33, 0x50, 0x54, 0xF0, 0x67, 0xB7, 0x8E, 0x66, 0x3A, 0x05, 0x8D, 0xBD, 0xA1, 0xC1, 0x2D, 0x80, 0xA3, 0x92, 0xF8, -+ 0x9C, 0x0A, 0xD9, 0xE2, 0xA3, 0xB2, 0xEA, 0x17, 0xE9, 0xC9, 0xA3, 0xB1, 0x4D, 0x17, 0x68, 0x22, 0xEE, 0xAC, 0x5F, 0xB5, 0xFF, 0x7D, 0x4C, 0x87, 0xD7, 0x60, 0x80, 0xD2, 0xD4, 0x2D, 0x9A, 0xA4, -+ 0xC9, 0x51, 0xF4, 0xCA, 0xF1, 0x1A, 0x24, 0x4E, 0xDA, 0x71, 0x1D, 0x12, 0x0A, 0x2E, 0xA3, 0x21, 0xD1, 0x55, 0x1D, 0x86, 0xCA, 0x92, 0x65, 0xE9, 0xCD, 0x5F, 0xA9, 0x59, 0x1D, 0x88, 0x0E, 0x40, -+ 0x3B, 0x68, 0x44, 0xF0, 0x51, 0xDC, 0x04, 0x87, 0x99, 0x72, 0xC8, 0x63, 0xB9, 0x7C, 0x72, 0xB4, 0x09, 0xC1, 0x9D, 0x5E, 0xBE, 0xE8, 0xAB, 0x58, 0xC6, 0xE7, 0xB3, 0x93, 0x8A, 0x68, 0xA9, 0xCA, -+ 0xD7, 0x5D, 0x80, 0xC6, 0xFF, 0xC4, 0xF2, 0x22, 0x54, 0xFF, 0x44, 0x20, 0xC6, 0x06, 0xAD, 0x12, 0x0C, 0xC2, 0x03, 0x46, 0xA7, 0xE7, 0x32, 0x4E, 0x78, 0xC8, 0x62, 0xE0, 0xDE, 0xE1, 0x61, 0xA6, -+ 0x4F, 0x44, 0x91, 0x7D, 0xB0, 0xC3, 0x8C, 0x1F, 0x79, 0xC9, 0x69, 0x22, 0x0D, 0x20, 0x2F, 0x88, 0x02, 0xD0, 0xF9, 0xD7, 0xAB, 0xFB, 0x2D, 0xE4, 0x34, 0xB1, 0xC5, 0x3D, 0xAB, 0xB5, 0x75, 0x75, -+ 0xEE, 0xBB, 0xBF, 0x31, 0xCF, 0xB2, 0x92, 0x48, 0x72, 0xFA, 0x01, 0x47, 0x3B, 0x39, 0x76, 0xAE, 0xAD, 0xC9, 0x96, 0x99, 0xB1, 0x38, 0x20, 0xFA, 0x08, 0x68, 0xF2, 0xC9, 0xFD, 0x0D, 0x35, 0x2E, -+ 0x25, 0x93, 0x27, 0x3C, 0xD6, 0x21, 0xB1, 0x97, 0x4F, 0xFA, 0x61, 0x87, 0xFA, 0x05, 0xC4, 0x11, 0x8D, 0x45, 0x17, 0xC9, 0x34, 0x15, 0x1C, 0x1F, 0xA3, 0x4B, 0xEC, 0x3E, 0xD3, 0x63, 0x95, 0x98, -+ 0xCB, 0xA2, 0x4E, 0x28, 0x22, 0x9C, 0xE9, 0xFD, 0x3B, 0x1D, 0xB4, 0x96, 0x9C, 0x12, 0xEE, 0x49, 0xE1, 0x8B, 0x36, 0xCE, 0x2B, 0x91, 0x45, 0xAA, 0xC7, 0x54, 0x28, 0xDF, 0xFA, 0x14, 0x53, 0x02, -+ 0xF4, 0x1D, 0x9E, 0x33, 0x94, 0xF3, 0x8D, 0x3F, 0x3C, 0x03, 0x34, 0xC4, 0x77, 0x4F, 0x1E, 0x94, 0x29, 0x6D, 0xE3, 0x6D, 0xC6, 0xE4, 0x30, 0xE4, 0xC0, 0xA5, 0x37, 0xE6, 0x8B, 0xDD, 0x41, 0xAF, -+ 0x04, 0x21, 0x19, 0x3B, 0x16, 0xAB, 0x18, 0x91, 0xFA, 0x83, 0x6C, 0xBC, 0x36, 0x7B, 0x40, 0x37, 0x05, 0xAB, 0xA5, 0xD2, 0xF9, 0xF2, 0xA4, 0xC2, 0xF2, 0x75, 0xEC, 0x01, 0x0B, 0x2E, 0xAB, 0x84, -+ 0x09, 0x5A, 0x56, 0x9D, 0xBA, 0xE4, 0x45, 0x7C, 0xC2, 0xAC, 0x1C, 0xFE, 0xB1, 0xED, 0xA4, 0x3C, 0x3E, 0x28, 0x19, 0x27, 0x3C, 0x48, 0x7A, 0xCB, 0xEB, 0xFA, 0x0A, 0x0E, 0xD1, 0xCC, 0x46, 0x67, -+ 0xA6, 0xF5, 0x77, 0xF6, 0x2D, 0xFB, 0x1B, 0xC8, 0xFE, 0xAF, 0xD8, 0x6D, 0x90, 0x10, 0x8E, 0x16, 0xB8, 0xB0, 0xE6, 0xC2, 0x67, 0x86, 0x86, 0xC9, 0x28, 0xA6, 0x68, 0xBB, 0x98, 0x57, 0xFF, 0xB2, -+ 0x8D, 0xE9, 0x05, 0x45, 0xCD, 0x44, 0x37, 0xDD, 0x32, 0xCC, 0xCC, 0xC6, 0xED, 0x58, 0xFB, 0x46, 0xFB, 0xF8, 0x5E, 0x0A, 0xEC, 0x0C, 0x81, 0x4E, 0x53, 0x62, 0x45, 0x25, 0x2B, 0x80, 0x29, 0xF0, -+ 0xA2, 0xAB, 0x44, 0xB9, 0x02, 0x7A, 0x7E, 0x35, 0xA9, 0x41, 0xFA, 0x11, 0x3C, 0x8D, 0x82, 0x97, 0x4E, 0xA2, 0x2D, 0xF0, 0x2D, 0x84, 0xE5, 0x32, 0x8C, 0xEA, 0x83, 0xD1, 0x2D, 0x39, 0x9C, 0x7F, -+ 0x02, 0x59, 0x05, 0x5F, 0x4B, 0x3A, 0xD7, 0x07, 0xE7, 0xB3, 0xE5, 0x37, 0xB9, 0x3D, 0xEA, 0x1A, 0x06, 0x6B, 0xDC, 0x77, 0x5F, 0xC7, 0xD1, 0xA6, 0xF0, 0xFE, 0x29, 0xDD, 0xAF, 0xA9, 0xA7, 0xDA, -+ 0x63, 0x0A, 0x46, 0x7E, 0xF6, 0xCB, 0xF5, 0xCC, 0xDF, 0xFD, 0x79, 0xF1, 0xC8, 0xBB, 0x6B, 0xB3, 0x88, 0x20, 0x35, 0xC7, 0x3C, 0xDF, 0x7E, 0xCF, 0xFB, 0x53, 0xC7, 0x12, 0xA7, 0xC7, 0xEA, 0xA5, -+ 0x97, 0x65, 0xEF, 0xA9, 0x60, 0xBF, 0x21, 0xE2, 0x5A, 0x67, 0x03, 0xFB, 0x30, 0x4F, 0x07, 0x73, 0x9F, 0xEB, 0xC6, 0x3F, 0x49, 0x6B, 0x13, 0xCC, 0xAA, 0x07, 0x73, 0x38, 0xA0, 0xB9, 0xA9, 0x76, -+ 0xA9, 0xF0, 0xFC, 0x57, 0x42, 0xD8, 0x5C, 0x4A, 0xF4, 0x01, 0xA4, 0xCE, 0x34, 0x1B, 0x47, 0xBE, 0x25, 0x94, 0xFF, 0x7E, 0x30, 0x19, 0xA0, 0xE0, 0x64, 0x53, 0x5F, 0x9D, 0x93, 0x95, 0xCC, 0x74, -+ 0xA6, 0xA6, 0xF0, 0x0E, 0x0C, 0x4E, 0x35, 0x30, 0xA7, 0xFE, 0x93, 0x10, 0xCE, 0x30, 0xB6, 0x92, 0x2D, 0x04, 0xFD, 0xE0, 0xAA, 0x74, 0x9C, 0xC3, 0xFD, 0xED, 0xB4, 0xD8, 0x70, 0x8C, 0x1F, 0x69, -+ 0x68, 0xBB, 0xED, 0xDD, 0xD5, 0x83, 0x3B, 0x29, 0x9D, 0x79, 0xD6, 0x14, 0x28, 0x18, 0x00, 0x99, 0xB0, 0xA9, 0x46, 0xA5, 0xD7, 0x90, 0x85, 0xDF, 0x7F, 0x87, 0x2C, 0xBD, 0xD2, 0x19, 0xE6, 0xB8, -+ 0xEF, 0x8B, 0x8A, 0xB5, 0xC1, 0xA1, 0x49, 0xE6, 0xE1, 0x5E, 0xF2, 0x82, 0x86, 0x54, 0xFA, 0xBE, 0xC2, 0x49, 0xAF, 0xAA, 0xC4, 0xDC, 0x0B, 0x3B, 0x54, 0x23, 0x34, 0x16, 0x2F, 0xB0, 0x98, 0x00, -+ 0xB6, 0xC3, 0x6C, 0xC9, 0x0F, 0x2A, 0x10, 0x65, 0x58, 0xBA, 0xE2, 0x19, 0x8F, 0xA7, 0xD1, 0xE2, 0xD7, 0x30, 0xDE, 0x46, 0xE3, 0x55, 0xAE, 0xA9, 0x32, 0x48, 0xE5, 0x3A, 0xB2, 0x1B, 0x51, 0x8E, -+ 0xC9, 0x9D, 0x5F, 0x3B, 0x02, 0x11, 0x96, 0xA0, 0xF6, 0x14, 0xA4, 0x6B, 0x94, 0x75, 0x62, 0x12, 0x34, 0x73, 0x3A, 0x28, 0xA4, 0x65, 0xCC, 0x5A, 0x7F, 0xD4, 0x32, 0xC3, 0x62, 0x58, 0x12, 0xAA, -+ 0xBB, 0xB4, 0x2D, 0x2D, 0x9C, 0xBE, 0xF1, 0x6C, 0xBE, 0xD9, 0x36, 0x72, 0x02, 0xB0, 0x28, 0x94, 0xD0, 0x6B, 0xB8, 0x01, 0xBD, 0xA8, 0x47, 0x2B, 0x99, 0x18, 0xB7, 0xD7, 0x24, 0xE3, 0x65, 0x57, -+ 0xDB, 0xE6, 0xB7, 0x63, 0x3A, 0x5F, 0xD2, 0x2D, 0x0E, 0x33, 0x6E, 0x55, 0x57, 0xAF, 0xC0, 0x18, 0xC8, 0x12, 0xE9, 0xE6, 0xA3, 0x5B, 0xFD, 0x8C, 0x60, 0xAB, 0x38, 0x2E, 0x14, 0xFF, 0x51, 0x14, -+ 0x2B, 0x2D, 0x2C, 0x75, 0xA7, 0x67, 0xF3, 0x24, 0x13, 0xBA, 0x38, 0x48, 0x75, 0x58, 0xF9, 0x34, 0x5C, 0xBE, 0x6F, 0xD1, 0xD6, 0xB7, 0x8C, 0x2E, 0x62, 0x2F, 0x3B, 0x97, 0x62, 0x30, 0xF9, 0x9D, -+ 0x6C, 0xBA, 0xF0, 0xBB, 0xD1, 0x49, 0x49, 0x51, 0x0A, 0x52, 0x64, 0x4E, 0xF3, 0xF3, 0x07, 0x88, 0x65, 0x03, 0x7A, 0x1C, 0x10, 0xF4, 0x7B, 0x59, 0x54, 0x66, 0x99, 0xE1, 0xBD, 0x53, 0x9C, 0x7D, -+ 0xDC, 0xC0, 0x3F, 0x71, 0xA0, 0x15, 0x8E, 0xA9, 0xF0, 0x17, 0x8E, 0x18, 0x7B, 0xB6, 0xD4, 0x94, 0x40, 0xDF, 0x2B, 0x10, 0x63, 0x0F, 0xBE, 0x2F, 0xEB, 0x50, 0x97, 0xE4, 0x7F, 0x28, 0x57, 0x11, -+ 0xCA, 0x6F, 0x83, 0x5A, 0x10, 0xD3, 0xAA, 0x75, 0xC0, 0x3C, 0x41, 0x84, 0xC0, 0x3E, 0xF3, 0x07, 0x5D, 0x49, 0xDC, 0xB2, 0x17, 0x7A, 0xBD, 0x53, 0xAD, 0x73, 0x99, 0xD2, 0x90, 0xEA, 0x69, 0x1D, -+ 0x64, 0x73, 0x29, 0x05, 0x63, 0x40, 0xE8, 0xC8, 0x36, 0xE9, 0x75, 0x0F, 0xD8, 0x81, 0xDC, 0xE3, 0x09, 0xD3, 0x09, 0xA9, 0x5B, 0x82, 0x49, 0x2D, 0x4B, 0xDC, 0x15, 0xEC, 0xF8, 0xC7, 0xF5, 0xD3, -+ 0xB9, 0xDD, 0x27, 0x55, 0x48, 0x51, 0x2D, 0xB5, 0xEF, 0x80, 0xCD, 0x40, 0x9E, 0xD3, 0x2B, 0x51, 0x48, 0xB8, 0x2B, 0xF2, 0x40, 0xA7, 0xDC, 0x72, 0xA1, 0x85, 0x23, 0xD8, 0x08, 0xB7, 0xA4, 0xF9, -+ 0xE2, 0x54, 0x79, 0x9E, 0x17, 0x27, 0x8F, 0xA8, 0x8D, 0xAE, 0xBC, 0x94, 0x46, 0x32, 0xE8, 0x3F, 0x86, 0x09, 0xD6, 0x81, 0xAB, 0x46, 0x35, 0x13, 0x02, 0x3D, 0x67, 0xCD, 0x51, 0xB1, 0x53, 0xF0, -+ 0x96, 0x29, 0x12, 0xDD, 0x64, 0xAB, 0x8F, 0x65, 0x29, 0xDC, 0x22, 0xAA, 0x89, 0xE5, 0x72, 0xA7, 0xF8, 0x9C, 0xB9, 0x7A, 0x8F, 0x45, 0x09, 0x31, 0x9D, 0x22, 0x3B, 0xB2, 0x99, 0x74, 0x95, 0x17, -+ 0x16, 0xFD, 0x31, 0x77, 0x14, 0x0A, 0x31, 0xEA, 0x20, 0x04, 0x8B, 0xAF, 0x0F, 0xCA, 0x23, 0x0C, 0xEF, 0x21, 0x96, 0x7A, 0xBD, 0x83, 0x30, 0x9A, 0x4F, 0xF7, 0xE3, 0x5E, 0x88, 0x78, 0x4D, 0xCA, -+ 0x77, 0xAC, 0x07, 0x90, 0x20, 0xEC, 0x0C, 0xA6, 0xDD, 0xEF, 0xBC, 0xBB, 0x7E, 0x31, 0x73, 0x29, 0x31, 0x46, 0x65, 0xD7, 0xC5, 0x1F, 0x63, 0x1F, 0x68, 0x1B, 0x60, 0x03, 0x64, 0xE4, 0x75, 0x74, -+ 0xF2, 0x52, 0xBA, 0xD6, 0x39, 0x6B, 0x3F, 0x5B, 0x17, 0xAD, 0xC2, 0x20, 0x96, 0x6A, 0x93, 0xCE, 0x8F, 0x31, 0x5A, 0x2F, 0x83, 0x06, 0x8D, 0x2E, 0xA0, 0x69, 0x52, 0xE6, 0xEB, 0xD8, 0x02, 0x47, -+ 0x3A, 0x22, 0x64, 0xEF, 0xA4, 0x05, 0xB3, 0xE4, 0x91, 0xBE, 0x77, 0x6C, 0x50, 0x40, 0x6E, 0x11, 0x50, 0xC5, 0x6B, 0x89, 0x4C, 0xF8, 0x64, 0x54, 0x6B, 0x0C, 0x7A, 0x65, 0xE3, 0xF1, 0xA2, 0xBE, -+ 0xFE, 0xF2, 0xA9, 0x99, 0x0B, 0xAF, 0xE7, 0x0B, 0x6C, 0xA9, 0xF9, 0x1A, 0x8F, 0x3D, 0xD2, 0x13, 0x07, 0xA3, 0x9A, 0x2A, 0xFB, 0xDF, 0xBD, 0xE9, 0xB7, 0xCA, 0x3D, 0x78, 0x28, 0xB1, 0x3F, 0x49, -+ 0xDE, 0xCD, 0x72, 0x9C, 0x00, 0x39, 0xE9, 0x4E, 0xBB, 0x7B, 0x4B, 0xDA, 0x09, 0xB3, 0x50, 0x55, 0x29, 0xA1, 0x2C, 0xB1, 0xE2, 0xFD, 0x79, 0xB9, 0xE5, 0x08, 0x7C, 0xD7, 0xC3, 0xBC, 0x05, 0xF7, -+ 0xCF, 0xFB, 0xBA, 0x93, 0x2A, 0x7B, 0xFF, 0x8E, 0x67, 0x55, 0x5F, 0xEE, 0x03, 0x04, 0xD8, 0x90, 0x31, 0x3F, 0x86, 0xE1, 0x89, 0x25, 0x69, 0xE2, 0xD6, 0xF1, 0x4A, 0x89, 0x93, 0x87, 0x17, 0xAA, -+ 0xA3, 0xA3, 0x2A, 0xD1, 0x16, 0x71, 0x50, 0x29, 0x9C, 0x21, 0x82, 0x0A, 0xBD, 0x70, 0xFF, 0x90, 0x2B, 0x00, 0x4C, 0x6D, 0xE9, 0x1C, 0x1C, 0x0B, 0x40, 0x70, 0x64, 0x42, 0xAF, 0x53, 0x1E, 0xC4, -+ 0x90, 0xB0, 0x12, 0x75, 0x0B, 0xCB, 0x48, 0x77, 0x93, 0x5A, 0x7E, 0x54, 0x03, 0x17, 0x02, 0xBB, 0x98, 0x8E, 0xB3, 0xF9, 0x29, 0x14, 0xCD, 0xBD, 0x42, 0x97, 0x9A, 0xD7, 0xD2, 0x7B, 0x22, 0x33, -+ 0xEC, 0x12, 0x79, 0xD0, 0x54, 0x93, 0xB1, 0x2D, 0x3F, 0x5F, 0xBB, 0x77, 0x57, 0x53, 0x60, 0x21, 0xB5, 0xF4, 0xCD, 0x93, 0x2B, 0x48, 0x0E, 0x40, 0xCB, 0xAE, 0x50, 0xD2, 0x32, 0xE0, 0xA2, 0xEF, -+ 0xFE, 0x0E, 0x8C, 0xB5, 0x88, 0x08, 0x66, 0x91, 0x99, 0xF0, 0x83, 0x08, 0x72, 0xF3, 0x69, 0x73, 0x86, 0x82, 0xF8, 0x46, 0xF6, 0xDE, 0xAD, 0x09, 0x5B, 0xFF, 0xCD, 0x67, 0x0A, 0x4A, 0x9C, 0xD1, -+ 0x42, 0x39, 0x6C, 0x58, 0x50, 0x6E, 0xA7, 0xA6, 0x8B, 0x21, 0xAB, 0xDC, 0xC1, 0x9C, 0xCC, 0x06, 0xF6, 0xDA, 0x55, 0xC8, 0x85, 0xA8, 0x55, 0xC4, 0x56, 0x68, 0x0C, 0xD4, 0x47, 0x7B, 0xCA, 0x2B, -+ 0xBA, 0x91, 0x53, 0xDC, 0xAE, 0xE6, 0x82, 0x65, 0x5B, 0x74, 0xEC, 0xA6, 0xF7, 0xE4, 0x4C, 0x3B, 0xFE, 0x1E, 0x2D, 0x45, 0x74, 0x91, 0xED, 0x1B, 0xC6, 0x4E, 0x1C, 0xF6, 0xCE, 0x18, 0xCF, 0x44, -+ 0xA0, 0x16, 0x6D, 0x1B, 0x24, 0x44, 0x80, 0x88, 0x2C, 0x1B, 0x35, 0xCE, 0xA7, 0x03, 0x15, 0x8E, 0x18, 0xC7, 0xEC, 0x6E, 0x0C, 0xF8, 0x27, 0xD5, 0x50, 0x4A, 0x45, 0xAE, 0x61, 0x15, 0x23, 0x09, -+ 0xBC, 0x8A, 0x18, 0xA5, 0x2C, 0x0E, 0x76, 0x99, 0xA8, 0x7C, 0x4E, 0x31, 0xC6, 0x91, 0x1A, 0x83, 0x05, 0x35, 0x15, 0x55, 0xB2, 0x97, 0x1C, 0x94, 0x60, 0x2B, 0x70, 0xE6, 0x70, 0xAA, 0x30, 0xB9, -+ 0x07, 0x34, 0xEC, 0x1D, 0xAA, 0xD0, 0x3A, 0x30, 0xA9, 0x6F, 0x58, 0x47, 0xC5, 0xC3, 0xF7, 0x97, 0x3C, 0xF4, 0x57, 0x2D, 0x16, 0x6C, 0x51, 0xD1, 0xE9, 0x4A, 0x50, 0xA4, 0xC1, 0xC8, 0x94, 0xA2, -+ 0x05, 0xF8, 0xEC, 0xB3, 0x4E, 0x80, 0xF8, 0x4C, 0xA8, 0xDC, 0x31, 0xA4, 0x29, 0xD5, 0x60, 0x05, 0x96, 0x17, 0x9D, 0x10, 0x93, 0xE2, 0xA3, 0x89, 0xCC, 0xFE, 0x9C, 0x04, 0x02, 0xEE, 0x49, 0x55, -+ 0x17, 0x10, 0xFF, 0xC2, 0x5B, 0xDB, 0xE4, 0x78, 0xF3, 0x9F, 0x20, 0x63, 0xF3, 0x1F, 0x75, 0xD7, 0x43, 0x2E, 0xCA, 0x1C, 0x59, 0xEB, 0xD8, 0xF4, 0x6D, 0x86, 0xA0, 0x92, 0xDB, 0x12, 0xF8, 0x10, -+ 0xFA, 0x91, 0x1C, 0x20, 0xD4, 0xCC, 0x1E, 0x42, 0x5C, 0x54, 0x3D, 0xC6, 0x45, 0x77, 0xE4, 0x4D, 0x84, 0xF4, 0x22, 0xD9, 0x66, 0x1E, 0x3D, 0x35, 0x92, 0x13, 0x50, 0xD6, 0xF7, 0x09, 0x9C, 0x54, -+ 0x25, 0xE5, 0x09, 0xE1, 0x45, 0x8A, 0x05, 0x00, 0xAE, 0x5E, 0xB4, 0xCC, 0x6B, 0xB5, 0x06, 0x26, 0xD0, 0x13, 0x0F, 0x09, 0x36, 0x17, 0x17, 0xA9, 0x59, 0x19, 0xAE, 0xD3, 0x55, 0x92, 0xFA, 0x4A, -+ 0xBE, 0x7B, 0x2B, 0xD4, 0xF9, 0x99, 0x42, 0x21, 0x51, 0xE6, 0x3D, 0x4E, 0xD0, 0x0C, 0xC7, 0x51, 0xA5, 0x86, 0x79, 0x77, 0xF1, 0x5E, 0x48, 0x2E, 0xFA, 0x01, 0xE5, 0xCC, 0xC4, 0x40, 0x64, 0xF5, -+ 0xB9, 0xFF, 0xE2, 0x9A, 0xFF, 0xE6, 0x26, 0xC4, 0xD5, 0x17, 0x0A, 0xDA, 0x1D, 0xF0, 0x27, 0xAB, 0x41, 0x79, 0x60, 0x8C, 0x40, 0x93, 0xCC, 0xE2, 0xC4, 0x09, 0x30, 0x8C, 0xD8, 0x98, 0x37, 0x1A, -+ 0x49, 0xFB, 0xEA, 0x2A, 0x2F, 0x2B, 0xA1, 0x3B, 0xDE, 0xBA, 0xC1, 0xF4, 0x15, 0x9F, 0x4B, 0x03, 0x68, 0xFB, 0x21, 0xD7, 0x0A, 0x9D, 0x79, 0x31, 0xD7, 0xEF, 0xF9, 0x34, 0xE6, 0xC5, 0x44, 0xE1, -+ 0x3B, 0x7B, 0x73, 0xD4, 0x65, 0x57, 0x6C, 0x6E, 0x81, 0xFD, 0x6D, 0x5F, 0xD9, 0x43, 0x93, 0xE8, 0x02, 0x42, 0xF9, 0x42, 0x0A, 0xCC, 0x0E, 0xD3, 0x53, 0xEF, 0x18, 0xCA, 0x07, 0x0F, 0x5E, 0x9A, -+ 0x28, 0x5A, 0xC4, 0xBC, 0xBA, 0xB1, 0x9A, 0x38, 0x35, 0x6F, 0x55, 0x7B, 0x07, 0x0E, 0x17, 0xAE, 0x5C, 0xF1, 0xF1, 0xBE, 0xD4, 0x26, 0x01, 0xE8, 0x9C, 0x8C, 0x4C, 0xA0, 0x82, 0x07, 0x85, 0x03, -+ 0x82, 0x07, 0x81, 0x00, 0xD9, 0xFD, 0xE3, 0xA4, 0x96, 0xF7, 0x58, 0x19, 0xF0, 0xA2, 0x0D, 0x04, 0x41, 0xDC, 0x78, 0x30, 0xB4, 0xAA, 0x1C, 0xB8, 0xEC, 0xFC, 0x91, 0xBA, 0x0E, 0xEC, 0x3A, 0xFB, -+ 0x67, 0x44, 0xE4, 0x77, 0xB4, 0xE6, 0xEC, 0x3F, 0xDA, 0xE7, 0x50, 0x48, 0xFF, 0xEB, 0xAA, 0xBE, 0xA8, 0xE8, 0x22, 0x11, 0x7D, 0x57, 0x87, 0xF7, 0x90, 0x70, 0xEA, 0x88, 0x28, 0x7C, 0xE3, 0xCD, -+ 0x50, 0x11, 0xFD, 0x8D, 0x93, 0xAB, 0x7E, 0x8B, 0x51, 0xF2, 0x61, 0x16, 0xBF, 0x9B, 0x6D, 0x21, 0xC0, 0x3F, 0x88, 0xBF, 0xEC, 0x48, 0x88, 0x76, 0xF4, 0xD0, 0x75, 0xA1, 0x42, 0xD4, 0xE7, 0x84, -+ 0xD7, 0x34, 0x40, 0x75, 0x11, 0xF9, 0x92, 0x06, 0x93, 0x53, 0xF1, 0xDB, 0x67, 0xAC, 0xF7, 0x30, 0x34, 0xA4, 0x68, 0xA1, 0x18, 0x58, 0x80, 0x62, 0x11, 0x1D, 0x32, 0x0E, 0x00, 0xBC, 0xFF, 0x6D, -+ 0xC6, 0x35, 0x73, 0xFC, 0xED, 0x1E, 0x96, 0xAA, 0xEB, 0xA6, 0x45, 0x2E, 0x3C, 0x7A, 0xCD, 0x19, 0x18, 0x1F, 0x9B, 0x81, 0x4B, 0xA1, 0x9D, 0x39, 0xB4, 0xBA, 0xB5, 0x49, 0x6D, 0xC0, 0x55, 0x42, -+ 0x6E, 0x7E, 0xA4, 0x61, 0xAF, 0x55, 0xD5, 0xB9, 0xFE, 0x97, 0xF9, 0xDF, 0x7E, 0x25, 0x32, 0x03, 0xC1, 0xF9, 0xE1, 0x52, 0xE9, 0x6D, 0x75, 0xF9, 0xD9, 0xA8, 0x4F, 0x5C, 0x26, 0x3E, 0xC8, 0xC2, -+ 0x50, 0x44, 0x0A, 0xDC, 0x98, 0x6F, 0x4E, 0x36, 0x41, 0x4C, 0x70, 0x3B, 0x3E, 0x05, 0x42, 0x6B, 0x28, 0xB7, 0x06, 0x59, 0x50, 0xDA, 0x6D, 0x0E, 0x0B, 0x2C, 0x60, 0xAC, 0x36, 0x72, 0xDB, 0x6F, -+ 0x3C, 0x78, 0x44, 0x7D, 0xB7, 0xC2, 0x09, 0x15, 0x77, 0x0E, 0xA6, 0xFC, 0xE8, 0x1D, 0xAB, 0x53, 0x39, 0xC1, 0xD5, 0xAF, 0x82, 0xA5, 0xD3, 0x32, 0x40, 0x99, 0xDF, 0x56, 0x51, 0x6A, 0x07, 0xDB, -+ 0x7C, 0x0F, 0xC6, 0x43, 0x83, 0x80, 0x5C, 0x65, 0xF2, 0xB0, 0x2F, 0xBC, 0xFC, 0xE6, 0x3E, 0x93, 0xC4, 0xBF, 0x09, 0x40, 0x9F, 0x9F, 0x0F, 0x77, 0xE7, 0x3D, 0xA3, 0xB0, 0x01, 0x9F, 0x20, 0x57, -+ 0xE4, 0xCD, 0x7C, 0xFF, 0x0E, 0x57, 0x45, 0xEF, 0x18, 0xC3, 0xFD, 0x76, 0x6E, 0x01, 0x74, 0x7A, 0x64, 0xD4, 0x15, 0xFC, 0x97, 0x89, 0xAB, 0xFA, 0x62, 0x28, 0x4E, 0x11, 0xC7, 0xFF, 0x05, 0xD0, -+ 0x54, 0x8D, 0x97, 0x3F, 0x67, 0x95, 0x59, 0xA6, 0xA3, 0xAA, 0xD7, 0x7E, 0xD5, 0x13, 0x2D, 0x01, 0x50, 0xC0, 0x14, 0xC3, 0xEC, 0x3A, 0x39, 0x5F, 0x01, 0x7E, 0x7A, 0xCF, 0xE3, 0xEA, 0xBF, 0xCA, -+ 0x44, 0x91, 0x0C, 0xA0, 0x6F, 0xF3, 0x35, 0x42, 0xEC, 0xCE, 0x62, 0x41, 0x97, 0x47, 0x42, 0x35, 0x7D, 0x37, 0xF5, 0xC2, 0x84, 0xBF, 0x0F, 0xE1, 0xA7, 0x4B, 0x50, 0xC0, 0x73, 0x55, 0x13, 0x72, -+ 0x13, 0x3A, 0xF2, 0xDD, 0x41, 0xE2, 0x1B, 0xAF, 0xC9, 0xC5, 0x90, 0xEE, 0x6E, 0xBC, 0x4A, 0xCE, 0x73, 0x1E, 0xF5, 0x66, 0x15, 0x6C, 0xA0, 0x37, 0x55, 0xDC, 0x49, 0x3C, 0x13, 0x70, 0x28, 0xAF, -+ 0x3B, 0x3D, 0xE5, 0xB0, 0x0B, 0xD6, 0xCB, 0x3D, 0x9A, 0x87, 0xD0, 0x15, 0x1F, 0x88, 0x7C, 0x67, 0x68, 0xBC, 0x6C, 0xA0, 0x2A, 0x94, 0xFB, 0x20, 0x86, 0x55, 0x1A, 0x0F, 0x89, 0xBA, 0x26, 0x15, -+ 0x4E, 0x9D, 0x45, 0x06, 0xAD, 0x9F, 0xAF, 0x39, 0xF5, 0x72, 0x3E, 0x23, 0x4E, 0x06, 0xCF, 0xDE, 0xD6, 0x9D, 0x4E, 0xE4, 0x14, 0x6B, 0x73, 0xE5, 0xDC, 0x1E, 0x41, 0x52, 0xA2, 0xA3, 0x15, 0x9D, -+ 0x73, 0xDB, 0xC8, 0x33, 0xD3, 0xD4, 0x17, 0xCD, 0x5C, 0xF7, 0xFB, 0x3D, 0xC7, 0x74, 0x5C, 0xEE, 0xD4, 0xDC, 0x0F, 0x5B, 0x1C, 0x6D, 0x6B, 0x69, 0xC1, 0x76, 0x41, 0x57, 0xEA, 0x43, 0xDF, 0x9D, -+ 0xBB, 0x44, 0x2E, 0xFA, 0x39, 0xD1, 0xD0, 0x16, 0x2E, 0x87, 0xC2, 0xD3, 0x0C, 0x50, 0x12, 0xFD, 0x16, 0xD8, 0x69, 0xC8, 0xA1, 0xFC, 0xBB, 0x45, 0xED, 0xCC, 0x8E, 0x18, 0x13, 0xB2, 0xB1, 0x90, -+ 0xA9, 0x61, 0xF9, 0xFC, 0x86, 0x59, 0x1D, 0x3A, 0xBC, 0x53, 0x88, 0xAF, 0x67, 0x8F, 0xF0, 0x3D, 0xA7, 0x8B, 0x7C, 0xC0, 0xF6, 0x18, 0x57, 0x21, 0xC0, 0xDF, 0x33, 0xCC, 0x90, 0x64, 0x35, 0x22, -+ 0x5D, 0xF2, 0x61, 0x10, 0x02, 0xDF, 0x12, 0x0E, 0x83, 0x56, 0x65, 0x32, 0x29, 0x2D, 0xEA, 0x3D, 0x8A, 0xCD, 0x10, 0x9A, 0x0D, 0xFF, 0xAB, 0x3B, 0x0B, 0x43, 0x01, 0x27, 0x96, 0xDB, 0x5B, 0x50, -+ 0x68, 0x3F, 0xB4, 0xC2, 0xD2, 0x50, 0xDA, 0xB7, 0x6A, 0xAE, 0x35, 0xA4, 0x8E, 0x8C, 0x8D, 0x4A, 0x5C, 0xC1, 0x54, 0x75, 0x97, 0x45, 0xF0, 0xA1, 0x23, 0x0F, 0x6C, 0xA9, 0xDD, 0x9C, 0x99, 0xE2, -+ 0xF8, 0x0E, 0xDC, 0x83, 0x30, 0x4C, 0xE0, 0x1E, 0x98, 0xF6, 0xC9, 0x48, 0x95, 0x29, 0xA8, 0x22, 0xF9, 0x00, 0x33, 0xC2, 0x28, 0x31, 0x5E, 0xB2, 0xFC, 0xC8, 0xDB, 0xA3, 0x82, 0xED, 0x43, 0x01, -+ 0xE0, 0x76, 0x07, 0xA5, 0xB0, 0x76, 0xC7, 0x25, 0xF1, 0x24, 0x99, 0x4F, 0x18, 0xA9, 0x97, 0xD2, 0xC5, 0xBB, 0xF9, 0xA3, 0x24, 0x60, 0x52, 0x65, 0x10, 0x8A, 0xCB, 0xF4, 0x61, 0x0F, 0xA1, 0xC3, -+ 0x37, 0x44, 0x08, 0x85, 0x0A, 0x08, 0x64, 0xE2, 0xB6, 0x10, 0x17, 0xEB, 0xEC, 0x1F, 0xBA, 0xB8, 0x9D, 0xE3, 0xAB, 0x1B, 0x93, 0xCE, 0x49, 0x18, 0xB9, 0xE2, 0xC9, 0xE3, 0xFE, 0x45, 0x67, 0x58, -+ 0x06, 0x2A, 0x9F, 0x88, 0x2B, 0x28, 0x33, 0x18, 0x27, 0x1F, 0x4B, 0x95, 0x52, 0xFC, 0xF3, 0x26, 0x24, 0xA9, 0xFD, 0xAA, 0x44, 0xC6, 0x5C, 0x60, 0xE2, 0xB3, 0x64, 0x8B, 0xEF, 0x1F, 0x17, 0xD0, -+ 0xB7, 0xC7, 0x48, 0x69, 0xEE, 0x0B, 0x53, 0xC4, 0xA6, 0x2A, 0x24, 0x84, 0x5D, 0xCE, 0xA5, 0xBC, 0xBF, 0x93, 0xB9, 0x2E, 0x4C, 0x26, 0x64, 0x85, 0x84, 0xE3, 0x34, 0x79, 0x28, 0x2E, 0x6C, 0x8B, -+ 0x1D, 0x8F, 0xE2, 0x11, 0x81, 0xBD, 0x9C, 0xF7, 0x5F, 0x8A, 0x96, 0x17, 0x24, 0xD4, 0xC4, 0x30, 0x97, 0x79, 0xF1, 0xF1, 0xB7, 0x75, 0xD2, 0x54, 0xF7, 0x0B, 0xD1, 0x76, 0x9C, 0xC7, 0xC0, 0xED, -+ 0xD2, 0xA9, 0x5F, 0xE5, 0xC9, 0xD8, 0x4B, 0x16, 0xF7, 0xC5, 0x4D, 0x85, 0xCC, 0xE4, 0xC8, 0xA1, 0x82, 0x81, 0x08, 0x09, 0xED, 0x81, 0xE9, 0x7D, 0x07, 0x48, 0x84, 0xEE, 0xDF, 0x40, 0x1C, 0xCA, -+ 0xCD, 0xAE, 0xAD, 0x82, 0xC1, 0x4D, 0x06, 0xB6, 0x8A, 0xEA, 0x6C, 0xE1, 0x4B, 0x86, 0x1B, 0x0C, 0xFD, 0x16, 0x09, 0x0C, 0xBB, 0xF4, 0x69, 0xC5, 0xE0, 0x84, 0x31, 0x4C, 0x0D, 0x8D, 0x39, 0x60, -+ 0xEA, 0x06, 0xA3, 0x42, 0x6D, 0x8B, 0x3F, 0xE7, 0x62, 0xE0, 0x0D, 0x09, 0xBD, 0xA3, 0x74, 0xF3, 0xAE, 0x2C, 0xBE, 0xDE, 0x28, 0x38, 0xFF, 0x89, 0xD8, 0x1D, 0xEB, 0x30, 0x13, 0x09, 0x0E, 0x44, -+ 0x19, 0x9A, 0xED, 0x60, 0x49, 0x63, 0xEA, 0xF9, 0x19, 0x91, 0x4C, 0xE0, 0x4F, 0x20, 0x7A, 0xC8, 0x2C, 0xD4, 0x35, 0x1F, 0xEF, 0x7B, 0x2D, 0x94, 0x39, 0x30, 0x66, 0xFE, 0x4D, 0x44, 0xE3, 0xCC, -+ 0x59, 0x52, 0xE7, 0x5E, 0xB6, 0xF3, 0x71, 0x40, 0x58, 0x91, 0x5D, 0xE0, 0xEE, 0x18, 0x4D, 0x8C, 0x55, 0x30, 0x0F, 0x57, 0x6A, 0x8B, 0x82, 0xA8, 0x63, 0xE8, 0x1A, 0xF3, 0x34, 0x17, 0xBD, 0x4C, -+ 0xFC, 0x94, 0xE7, 0xA6, 0x12, 0x63, 0xB3, 0x9F, 0x01, 0xF6, 0xE2, 0xE7, 0x07, 0x48, 0xB6, 0xE5, 0xE5, 0x9C, 0xF6, 0xCA, 0x01, 0xB0, 0x02, 0x8C, 0x93, 0xBB, 0xBC, 0xEB, 0xC5, 0x48, 0xF9, 0x87, -+ 0xF1, 0x07, 0x55, 0xBF, 0x33, 0xCA, 0x58, 0x5C, 0xB4, 0x1C, 0xF5, 0x78, 0xDF, 0x5F, 0xFE, 0x37, 0x92, 0x4E, 0x3C, 0x2C, 0x07, 0x2E, 0xD1, 0xDA, 0xC9, 0x16, 0x21, 0x76, 0x97, 0x29, 0x71, 0xE7, -+ 0x9B, 0x62, 0xFB, 0x20, 0x8F, 0x1A, 0x73, 0xBF, 0x03, 0x61, 0xE2, 0x99, 0x3D, 0xCC, 0xCD, 0x31, 0x10, 0xC3, 0x4D, 0x83, 0x9D, 0x18, 0xDD, 0x43, 0xA5, 0xE8, 0xF0, 0xD9, 0x41, 0xE9, 0x9A, 0xDC, -+ 0xF4, 0x41, 0x40, 0x5F, 0x32, 0x10, 0x76, 0x71, 0xB2, 0xD8, 0xB2, 0x24, 0x4F, 0x7B, 0xA9, 0x2D, 0xCE, 0xD5, 0x87, 0xA2, 0x10, 0xFE, 0x8F, 0xF4, 0x3C, 0x61, 0x6A, 0xCB, 0x5E, 0x76, 0x6E, 0x6A, -+ 0xF2, 0xCE, 0xB0, 0x35, 0x99, 0xBA, 0x3D, 0xE3, 0x76, 0xEB, 0x57, 0x35, 0xEF, 0x16, 0x14, 0x39, 0x53, 0xD1, 0xFD, 0xDB, 0x7E, 0x9F, 0x28, 0x74, 0xB0, 0xD6, 0x08, 0x3D, 0xD7, 0xEC, 0x43, 0x86, -+ 0xAE, 0x00, 0x3F, 0x51, 0xCC, 0xF2, 0xD2, 0x1E, 0xF6, 0x05, 0x91, 0x63, 0xC5, 0x15, 0x21, 0x74, 0x42, 0x3F, 0x57, 0x11, 0x9D, 0x0F, 0xCE, 0x62, 0x7D, 0x76, 0x3D, 0x81, 0xC1, 0x0A, 0xA1, 0x32, -+ 0x9F, 0x74, 0xC8, 0xD4, 0x45, 0x43, 0x7B, 0xA6, 0x71, 0x8A, 0x33, 0xDB, 0x6E, 0x79, 0x37, 0x51, 0x72, 0xB2, 0xAE, 0x35, 0x91, 0x82, 0x19, 0x78, 0xD5, 0x20, 0x82, 0x4E, 0x2D, 0x2F, 0xF8, 0x98, -+ 0xB7, 0xF4, 0xC8, 0x67, 0xFF, 0x46, 0x27, 0x22, 0xBC, 0x07, 0xEA, 0xDA, 0xD3, 0x89, 0xA9, 0x10, 0xB6, 0xF6, 0x54, 0x29, 0xDA, 0x12, 0x97, 0x35, 0xFE, 0x04, 0x9E, 0x3E, 0xCB, 0x38, 0x89, 0xF6, -+ 0x04, 0x7C, 0xF2, 0xBD, 0x2A, 0x88, 0xD5, 0x0A, 0x65, 0x1B, 0x32, 0x35, 0xD2, 0x48, 0x0E, 0x1D, 0xA5, 0xA3, 0x52, 0x47, 0xFA, 0x76, 0xC8, 0x31, 0x73, 0x63, 0x99, 0xD3, 0x7E, 0x8D, 0x03, 0x3C, -+ 0x1D, 0x05, 0x1C, 0x9B, 0x6A, 0x99, 0xAB, 0x80, 0xB1, 0x31, 0x3F, 0xA2, 0x4C, 0x5C, 0x59, 0x76, 0x6E, 0x6C, 0x51, 0xA3, 0x8F, 0xE9, 0xF1, 0x18, 0x6A, 0x76, 0x7E, 0xEB, 0xD0, 0xD8, 0x80, 0x01, -+ 0xAE, 0x02, 0x46, 0xCD, 0x4E, 0xBE, 0x2C, 0x97, 0x9D, 0xE8, 0x2C, 0x30, 0xBB, 0xDB, 0x98, 0xB4, 0x74, 0x4F, 0x11, 0xF9, 0xE6, 0x39, 0xED, 0xDD, 0x8C, 0x19, 0x4D, 0x79, 0x11, 0x20, 0x1A, 0x8F, -+ 0xA7, 0x45, 0x99, 0x1B, 0x4D, 0x8A, 0x57, 0x09, 0xB6, 0x2A, 0x21, 0xB6, 0x3B, 0x97, 0x62, 0x91, 0x3D, 0x36, 0xCE, 0x99, 0x5C, 0x2D, 0x6B, 0x79, 0x15, 0x1E, 0x8D, 0x83, 0x83, 0x8C, 0xD1, 0xF3, -+ 0x88, 0x40, 0xA9, 0x41, 0x72, 0x55, 0xDD, 0x16, 0x6B, 0x7A, 0x35, 0x84, 0x49, 0x90, 0x03, 0xFB, 0x62, 0x56, 0x11, 0x40, 0x4C, 0x95, 0xB9, 0x60, 0xDF, 0x0D, 0xB1, 0xBC, 0xF1, 0x57, 0x4B, 0x09, -+ 0x65, 0xDB, 0xD8, 0x34, 0xEE, 0x14, 0x81, 0x17, 0xD5, 0xE0, 0x5A, 0x7C, 0xC7, 0xCC, 0x1A, 0x86, 0x56, 0x18, 0xA2, 0xBE, 0x48, 0x54, 0xDB, 0x89, 0x35, 0xCD, 0xA1, 0xE6, 0x8B, 0xD8, 0xD0, 0x9E, -+ 0x72, 0xF0, 0xAC, 0x90, 0x53, 0xC8, 0x82, 0xC4, 0xAB, 0xA4, 0x00, 0x4A, 0x61, 0x4D, 0x10, 0x50, 0x53, 0x00, 0xB6, 0x17, 0x6C, 0xA1, 0xF3, 0x24, 0xE2, 0x2E, 0x78, 0x24, 0x29, 0x9F, 0x9C, 0x40, -+ 0x75, 0x5B, 0x71, 0xD8, 0x2B, 0x67, 0x95, 0x47, 0xF0, 0x6A, 0xD4, 0x8B, 0xE6, 0x6D, 0x68, 0x07, 0x2C, 0x93, 0x90, 0x23, 0x3C, 0x93, 0x3F, 0x80, 0xA1, 0x4F, 0x8D, 0x4A, 0x6B, 0x0B, 0x4E, 0x19, -+ 0x70, 0xE1, 0xAC, 0xC1, 0xBE, 0xA7, 0xF5, 0xD3, 0xBE, 0x22, 0x44, 0x48, 0xF8, 0x57, 0xBA, 0xB6, 0x8A, 0xEF, 0xA6, 0xD8, 0xCB, 0x81, 0x9B, 0x64, 0x29, 0x4A, 0x12, 0x99, 0x79, 0x16, 0xCD, 0xBF, -+ 0x56, 0xE9, 0xA8, 0xD0, 0x02, 0xDD, 0x06, 0x5F, 0x12, 0xC6, 0x18, 0x23, 0xF4, 0xFC, 0x21, 0x45, 0x08, 0x23, 0x2E, 0x43, 0x1F, 0x0B, 0x68, 0x98, 0x47, 0x5B, 0xB5, 0xDD, 0x0D, 0x7D, 0x52, 0x8E, -+ 0x84, 0x0C, 0x22, 0x80, 0x9A, 0xF7, 0xE1, 0x53, 0x63, 0x72, 0x4A, 0x61, 0x3A, 0xCC, 0xFB, 0xE2, 0xB3, 0x74, 0x38, 0xC1, 0x59, 0xCE, 0x14, 0xCB, 0x0C, 0x98, 0xBF, 0xD4, 0x99, 0xC0, 0x8D, 0xAC, -+ 0x0C, 0xF4, 0x5D, 0x82, 0x1C, 0xC2, 0xFA, 0x47, 0x31, 0x9B, 0x6F, 0xB4, 0xCE, 0xD7, 0xE5, 0x98, 0x5E, 0xC8, 0x27, 0x4D, 0xE0, 0x90, 0x71, 0xD3, 0xC1, 0x0D, 0xA5, 0xBF, 0x9E, 0x52, 0x2B, 0x01, -+ 0xCE, 0x91, 0xD6, 0x6B, 0x91, 0x79, 0x5D, 0x3D, 0x22, 0xC0, 0x04, 0x83, 0x45, 0x42, 0x75, 0xDD, 0x2B, 0xBD, 0xD7, 0xC2, 0xDC, 0xC4, 0xA1, 0x67, 0xE5, 0xD7, 0xFC, 0xDB, 0xB9, 0xF6, 0x20, 0x8C, -+ 0xD4, 0xC9, 0xA4, 0x85, 0xFA, 0xAE, 0xB8, 0x09, 0xA7, 0x71, 0x1D, 0xAC, 0x28, 0x65, 0xCE, 0xD4, 0x30, 0x64, 0x74, 0xB2, 0x2B, 0x44, 0x48, 0xF8, 0x5D, 0xF3, 0x34, 0x17, 0xF3, 0xFA, 0xCE, 0x1C, -+ 0x05, 0xD4, 0x27, 0x03, 0xED, 0x31, 0x30, 0x42, 0xA0, 0x5D, 0xE0, 0x36, 0x27, 0x40, 0x13, 0x01, 0x88, 0xEC, 0xB4, 0x45, 0xBB, 0x25, 0x5D, 0xC7, 0x6E, 0xE8, 0x44, 0x3F, 0x73, 0x31, 0x17, 0xF8, -+ 0x35, 0x1F, 0x17, 0x60, 0x31, 0x75, 0x55, 0x4F, 0xEB, 0x00, 0xB7, 0xFF, 0x54, 0xD8, 0x07, 0x86, 0xF3, 0x05, 0xCD, 0xE1, 0x8C, 0xD5, 0xEC, 0x56, 0xEC, 0x09, 0x62, 0xA3, 0xE0, 0x44, 0x82, 0xDC, -+ 0xE3, 0x62, 0x2D, 0x04, 0x0D, 0x24, 0xC4, 0x0F, 0x2E, 0x8A, 0x14, 0xA4, 0x47, 0x65, 0x9D, 0x6C, 0x56, 0x1F, 0x2F, 0xFE, 0xE6, 0x8F, 0x8D, 0x3D, 0xE5, 0x11, 0xB2, 0x3E, 0x8B, 0x17, 0x2A, 0x01, -+ 0xA3, 0xED, 0xA4, 0xD3, 0x78, 0x0E, 0x74, 0xC6, 0x77, 0x24, 0x43, 0x30, 0xE9, 0xAE, 0xFF, 0x01, 0x9F, 0xE0, 0x7B, 0xE3, 0xD3, 0x3F, 0x32, 0x2F, 0x9C, 0xE2, 0x21, 0x4B, 0x9D, 0x9C, 0xFF, 0x99, -+ 0xD0, 0x5A, 0x59, 0xE4, 0x75, 0x51, 0x43, 0x2A, 0xE7, 0x6F, 0x4C, 0xD4, 0xF8, 0xDD, 0x51, 0x52, 0x0F, 0xFE, 0x81, 0x1B, 0x4B, 0x93, 0xCD, 0x62, 0x19, 0xC8, 0x1B, 0x63, 0xB1, 0xD6, 0x27, 0x78, -+ 0x5C, 0x2A, 0x0F, 0xC2, 0x2E, 0x3A, 0xEA, 0x86, 0xCE, 0xEE, 0x1F, 0x7F, 0xBC, 0x4E, 0xFC, 0xB4, 0x6D, 0xDF, 0xBC, 0xD8, 0x8A, 0x02, 0xF3, 0xB4, 0xE6, 0x7C, 0x5F, 0xF2, 0xE8, 0xDC, 0x68, 0xBF, -+ 0x16, 0xC7, 0x46, 0x99, 0xBB, 0xB6, 0x28, 0x90, 0x2F, 0x72, 0xC3, 0xDE, 0xBC, 0x8B, 0xF5, 0xDF, 0x70, 0x6D, 0x47, 0xA6, 0x05, 0xA1, 0x07, 0xDA, 0xA0, 0x01, 0x41, 0x39, 0xCE, 0x40, 0xF0, 0xD4, -+ 0x6D, 0x8D, 0x6D, 0xC7, -+ }, -+ .spki_len = 1990, -+ .spki = { -+ 0x30, 0x82, 0x07, 0xC2, 0x30, 0x0F, 0x06, 0x0B, 0x2B, 0x06, 0x01, 0x04, 0x01, 0x02, 0x82, 0x0B, 0x07, 0x06, 0x05, 0x05, 0x00, 0x03, 0x82, 0x07, 0xAD, 0x00, 0x30, 0x82, 0x07, 0xA8, 0x03, 0x21, -+ 0x00, 0x1C, 0x0E, 0xE1, 0x11, 0x1B, 0x08, 0x00, 0x3F, 0x28, 0xE6, 0x5E, 0x8B, 0x3B, 0xDE, 0xB0, 0x37, 0xCF, 0x8F, 0x22, 0x1D, 0xFC, 0xDA, 0xF5, 0x95, 0x0E, 0xDB, 0x38, 0xD5, 0x06, 0xD8, 0x5B, -+ 0xEF, 0x03, 0x82, 0x07, 0x81, 0x00, 0xD9, 0xFD, 0xE3, 0xA4, 0x96, 0xF7, 0x58, 0x19, 0xF0, 0xA2, 0x0D, 0x04, 0x41, 0xDC, 0x78, 0x30, 0xB4, 0xAA, 0x1C, 0xB8, 0xEC, 0xFC, 0x91, 0xBA, 0x0E, 0xEC, -+ 0x3A, 0xFB, 0x67, 0x44, 0xE4, 0x77, 0xB4, 0xE6, 0xEC, 0x3F, 0xDA, 0xE7, 0x50, 0x48, 0xFF, 0xEB, 0xAA, 0xBE, 0xA8, 0xE8, 0x22, 0x11, 0x7D, 0x57, 0x87, 0xF7, 0x90, 0x70, 0xEA, 0x88, 0x28, 0x7C, -+ 0xE3, 0xCD, 0x50, 0x11, 0xFD, 0x8D, 0x93, 0xAB, 0x7E, 0x8B, 0x51, 0xF2, 0x61, 0x16, 0xBF, 0x9B, 0x6D, 0x21, 0xC0, 0x3F, 0x88, 0xBF, 0xEC, 0x48, 0x88, 0x76, 0xF4, 0xD0, 0x75, 0xA1, 0x42, 0xD4, -+ 0xE7, 0x84, 0xD7, 0x34, 0x40, 0x75, 0x11, 0xF9, 0x92, 0x06, 0x93, 0x53, 0xF1, 0xDB, 0x67, 0xAC, 0xF7, 0x30, 0x34, 0xA4, 0x68, 0xA1, 0x18, 0x58, 0x80, 0x62, 0x11, 0x1D, 0x32, 0x0E, 0x00, 0xBC, -+ 0xFF, 0x6D, 0xC6, 0x35, 0x73, 0xFC, 0xED, 0x1E, 0x96, 0xAA, 0xEB, 0xA6, 0x45, 0x2E, 0x3C, 0x7A, 0xCD, 0x19, 0x18, 0x1F, 0x9B, 0x81, 0x4B, 0xA1, 0x9D, 0x39, 0xB4, 0xBA, 0xB5, 0x49, 0x6D, 0xC0, -+ 0x55, 0x42, 0x6E, 0x7E, 0xA4, 0x61, 0xAF, 0x55, 0xD5, 0xB9, 0xFE, 0x97, 0xF9, 0xDF, 0x7E, 0x25, 0x32, 0x03, 0xC1, 0xF9, 0xE1, 0x52, 0xE9, 0x6D, 0x75, 0xF9, 0xD9, 0xA8, 0x4F, 0x5C, 0x26, 0x3E, -+ 0xC8, 0xC2, 0x50, 0x44, 0x0A, 0xDC, 0x98, 0x6F, 0x4E, 0x36, 0x41, 0x4C, 0x70, 0x3B, 0x3E, 0x05, 0x42, 0x6B, 0x28, 0xB7, 0x06, 0x59, 0x50, 0xDA, 0x6D, 0x0E, 0x0B, 0x2C, 0x60, 0xAC, 0x36, 0x72, -+ 0xDB, 0x6F, 0x3C, 0x78, 0x44, 0x7D, 0xB7, 0xC2, 0x09, 0x15, 0x77, 0x0E, 0xA6, 0xFC, 0xE8, 0x1D, 0xAB, 0x53, 0x39, 0xC1, 0xD5, 0xAF, 0x82, 0xA5, 0xD3, 0x32, 0x40, 0x99, 0xDF, 0x56, 0x51, 0x6A, -+ 0x07, 0xDB, 0x7C, 0x0F, 0xC6, 0x43, 0x83, 0x80, 0x5C, 0x65, 0xF2, 0xB0, 0x2F, 0xBC, 0xFC, 0xE6, 0x3E, 0x93, 0xC4, 0xBF, 0x09, 0x40, 0x9F, 0x9F, 0x0F, 0x77, 0xE7, 0x3D, 0xA3, 0xB0, 0x01, 0x9F, -+ 0x20, 0x57, 0xE4, 0xCD, 0x7C, 0xFF, 0x0E, 0x57, 0x45, 0xEF, 0x18, 0xC3, 0xFD, 0x76, 0x6E, 0x01, 0x74, 0x7A, 0x64, 0xD4, 0x15, 0xFC, 0x97, 0x89, 0xAB, 0xFA, 0x62, 0x28, 0x4E, 0x11, 0xC7, 0xFF, -+ 0x05, 0xD0, 0x54, 0x8D, 0x97, 0x3F, 0x67, 0x95, 0x59, 0xA6, 0xA3, 0xAA, 0xD7, 0x7E, 0xD5, 0x13, 0x2D, 0x01, 0x50, 0xC0, 0x14, 0xC3, 0xEC, 0x3A, 0x39, 0x5F, 0x01, 0x7E, 0x7A, 0xCF, 0xE3, 0xEA, -+ 0xBF, 0xCA, 0x44, 0x91, 0x0C, 0xA0, 0x6F, 0xF3, 0x35, 0x42, 0xEC, 0xCE, 0x62, 0x41, 0x97, 0x47, 0x42, 0x35, 0x7D, 0x37, 0xF5, 0xC2, 0x84, 0xBF, 0x0F, 0xE1, 0xA7, 0x4B, 0x50, 0xC0, 0x73, 0x55, -+ 0x13, 0x72, 0x13, 0x3A, 0xF2, 0xDD, 0x41, 0xE2, 0x1B, 0xAF, 0xC9, 0xC5, 0x90, 0xEE, 0x6E, 0xBC, 0x4A, 0xCE, 0x73, 0x1E, 0xF5, 0x66, 0x15, 0x6C, 0xA0, 0x37, 0x55, 0xDC, 0x49, 0x3C, 0x13, 0x70, -+ 0x28, 0xAF, 0x3B, 0x3D, 0xE5, 0xB0, 0x0B, 0xD6, 0xCB, 0x3D, 0x9A, 0x87, 0xD0, 0x15, 0x1F, 0x88, 0x7C, 0x67, 0x68, 0xBC, 0x6C, 0xA0, 0x2A, 0x94, 0xFB, 0x20, 0x86, 0x55, 0x1A, 0x0F, 0x89, 0xBA, -+ 0x26, 0x15, 0x4E, 0x9D, 0x45, 0x06, 0xAD, 0x9F, 0xAF, 0x39, 0xF5, 0x72, 0x3E, 0x23, 0x4E, 0x06, 0xCF, 0xDE, 0xD6, 0x9D, 0x4E, 0xE4, 0x14, 0x6B, 0x73, 0xE5, 0xDC, 0x1E, 0x41, 0x52, 0xA2, 0xA3, -+ 0x15, 0x9D, 0x73, 0xDB, 0xC8, 0x33, 0xD3, 0xD4, 0x17, 0xCD, 0x5C, 0xF7, 0xFB, 0x3D, 0xC7, 0x74, 0x5C, 0xEE, 0xD4, 0xDC, 0x0F, 0x5B, 0x1C, 0x6D, 0x6B, 0x69, 0xC1, 0x76, 0x41, 0x57, 0xEA, 0x43, -+ 0xDF, 0x9D, 0xBB, 0x44, 0x2E, 0xFA, 0x39, 0xD1, 0xD0, 0x16, 0x2E, 0x87, 0xC2, 0xD3, 0x0C, 0x50, 0x12, 0xFD, 0x16, 0xD8, 0x69, 0xC8, 0xA1, 0xFC, 0xBB, 0x45, 0xED, 0xCC, 0x8E, 0x18, 0x13, 0xB2, -+ 0xB1, 0x90, 0xA9, 0x61, 0xF9, 0xFC, 0x86, 0x59, 0x1D, 0x3A, 0xBC, 0x53, 0x88, 0xAF, 0x67, 0x8F, 0xF0, 0x3D, 0xA7, 0x8B, 0x7C, 0xC0, 0xF6, 0x18, 0x57, 0x21, 0xC0, 0xDF, 0x33, 0xCC, 0x90, 0x64, -+ 0x35, 0x22, 0x5D, 0xF2, 0x61, 0x10, 0x02, 0xDF, 0x12, 0x0E, 0x83, 0x56, 0x65, 0x32, 0x29, 0x2D, 0xEA, 0x3D, 0x8A, 0xCD, 0x10, 0x9A, 0x0D, 0xFF, 0xAB, 0x3B, 0x0B, 0x43, 0x01, 0x27, 0x96, 0xDB, -+ 0x5B, 0x50, 0x68, 0x3F, 0xB4, 0xC2, 0xD2, 0x50, 0xDA, 0xB7, 0x6A, 0xAE, 0x35, 0xA4, 0x8E, 0x8C, 0x8D, 0x4A, 0x5C, 0xC1, 0x54, 0x75, 0x97, 0x45, 0xF0, 0xA1, 0x23, 0x0F, 0x6C, 0xA9, 0xDD, 0x9C, -+ 0x99, 0xE2, 0xF8, 0x0E, 0xDC, 0x83, 0x30, 0x4C, 0xE0, 0x1E, 0x98, 0xF6, 0xC9, 0x48, 0x95, 0x29, 0xA8, 0x22, 0xF9, 0x00, 0x33, 0xC2, 0x28, 0x31, 0x5E, 0xB2, 0xFC, 0xC8, 0xDB, 0xA3, 0x82, 0xED, -+ 0x43, 0x01, 0xE0, 0x76, 0x07, 0xA5, 0xB0, 0x76, 0xC7, 0x25, 0xF1, 0x24, 0x99, 0x4F, 0x18, 0xA9, 0x97, 0xD2, 0xC5, 0xBB, 0xF9, 0xA3, 0x24, 0x60, 0x52, 0x65, 0x10, 0x8A, 0xCB, 0xF4, 0x61, 0x0F, -+ 0xA1, 0xC3, 0x37, 0x44, 0x08, 0x85, 0x0A, 0x08, 0x64, 0xE2, 0xB6, 0x10, 0x17, 0xEB, 0xEC, 0x1F, 0xBA, 0xB8, 0x9D, 0xE3, 0xAB, 0x1B, 0x93, 0xCE, 0x49, 0x18, 0xB9, 0xE2, 0xC9, 0xE3, 0xFE, 0x45, -+ 0x67, 0x58, 0x06, 0x2A, 0x9F, 0x88, 0x2B, 0x28, 0x33, 0x18, 0x27, 0x1F, 0x4B, 0x95, 0x52, 0xFC, 0xF3, 0x26, 0x24, 0xA9, 0xFD, 0xAA, 0x44, 0xC6, 0x5C, 0x60, 0xE2, 0xB3, 0x64, 0x8B, 0xEF, 0x1F, -+ 0x17, 0xD0, 0xB7, 0xC7, 0x48, 0x69, 0xEE, 0x0B, 0x53, 0xC4, 0xA6, 0x2A, 0x24, 0x84, 0x5D, 0xCE, 0xA5, 0xBC, 0xBF, 0x93, 0xB9, 0x2E, 0x4C, 0x26, 0x64, 0x85, 0x84, 0xE3, 0x34, 0x79, 0x28, 0x2E, -+ 0x6C, 0x8B, 0x1D, 0x8F, 0xE2, 0x11, 0x81, 0xBD, 0x9C, 0xF7, 0x5F, 0x8A, 0x96, 0x17, 0x24, 0xD4, 0xC4, 0x30, 0x97, 0x79, 0xF1, 0xF1, 0xB7, 0x75, 0xD2, 0x54, 0xF7, 0x0B, 0xD1, 0x76, 0x9C, 0xC7, -+ 0xC0, 0xED, 0xD2, 0xA9, 0x5F, 0xE5, 0xC9, 0xD8, 0x4B, 0x16, 0xF7, 0xC5, 0x4D, 0x85, 0xCC, 0xE4, 0xC8, 0xA1, 0x82, 0x81, 0x08, 0x09, 0xED, 0x81, 0xE9, 0x7D, 0x07, 0x48, 0x84, 0xEE, 0xDF, 0x40, -+ 0x1C, 0xCA, 0xCD, 0xAE, 0xAD, 0x82, 0xC1, 0x4D, 0x06, 0xB6, 0x8A, 0xEA, 0x6C, 0xE1, 0x4B, 0x86, 0x1B, 0x0C, 0xFD, 0x16, 0x09, 0x0C, 0xBB, 0xF4, 0x69, 0xC5, 0xE0, 0x84, 0x31, 0x4C, 0x0D, 0x8D, -+ 0x39, 0x60, 0xEA, 0x06, 0xA3, 0x42, 0x6D, 0x8B, 0x3F, 0xE7, 0x62, 0xE0, 0x0D, 0x09, 0xBD, 0xA3, 0x74, 0xF3, 0xAE, 0x2C, 0xBE, 0xDE, 0x28, 0x38, 0xFF, 0x89, 0xD8, 0x1D, 0xEB, 0x30, 0x13, 0x09, -+ 0x0E, 0x44, 0x19, 0x9A, 0xED, 0x60, 0x49, 0x63, 0xEA, 0xF9, 0x19, 0x91, 0x4C, 0xE0, 0x4F, 0x20, 0x7A, 0xC8, 0x2C, 0xD4, 0x35, 0x1F, 0xEF, 0x7B, 0x2D, 0x94, 0x39, 0x30, 0x66, 0xFE, 0x4D, 0x44, -+ 0xE3, 0xCC, 0x59, 0x52, 0xE7, 0x5E, 0xB6, 0xF3, 0x71, 0x40, 0x58, 0x91, 0x5D, 0xE0, 0xEE, 0x18, 0x4D, 0x8C, 0x55, 0x30, 0x0F, 0x57, 0x6A, 0x8B, 0x82, 0xA8, 0x63, 0xE8, 0x1A, 0xF3, 0x34, 0x17, -+ 0xBD, 0x4C, 0xFC, 0x94, 0xE7, 0xA6, 0x12, 0x63, 0xB3, 0x9F, 0x01, 0xF6, 0xE2, 0xE7, 0x07, 0x48, 0xB6, 0xE5, 0xE5, 0x9C, 0xF6, 0xCA, 0x01, 0xB0, 0x02, 0x8C, 0x93, 0xBB, 0xBC, 0xEB, 0xC5, 0x48, -+ 0xF9, 0x87, 0xF1, 0x07, 0x55, 0xBF, 0x33, 0xCA, 0x58, 0x5C, 0xB4, 0x1C, 0xF5, 0x78, 0xDF, 0x5F, 0xFE, 0x37, 0x92, 0x4E, 0x3C, 0x2C, 0x07, 0x2E, 0xD1, 0xDA, 0xC9, 0x16, 0x21, 0x76, 0x97, 0x29, -+ 0x71, 0xE7, 0x9B, 0x62, 0xFB, 0x20, 0x8F, 0x1A, 0x73, 0xBF, 0x03, 0x61, 0xE2, 0x99, 0x3D, 0xCC, 0xCD, 0x31, 0x10, 0xC3, 0x4D, 0x83, 0x9D, 0x18, 0xDD, 0x43, 0xA5, 0xE8, 0xF0, 0xD9, 0x41, 0xE9, -+ 0x9A, 0xDC, 0xF4, 0x41, 0x40, 0x5F, 0x32, 0x10, 0x76, 0x71, 0xB2, 0xD8, 0xB2, 0x24, 0x4F, 0x7B, 0xA9, 0x2D, 0xCE, 0xD5, 0x87, 0xA2, 0x10, 0xFE, 0x8F, 0xF4, 0x3C, 0x61, 0x6A, 0xCB, 0x5E, 0x76, -+ 0x6E, 0x6A, 0xF2, 0xCE, 0xB0, 0x35, 0x99, 0xBA, 0x3D, 0xE3, 0x76, 0xEB, 0x57, 0x35, 0xEF, 0x16, 0x14, 0x39, 0x53, 0xD1, 0xFD, 0xDB, 0x7E, 0x9F, 0x28, 0x74, 0xB0, 0xD6, 0x08, 0x3D, 0xD7, 0xEC, -+ 0x43, 0x86, 0xAE, 0x00, 0x3F, 0x51, 0xCC, 0xF2, 0xD2, 0x1E, 0xF6, 0x05, 0x91, 0x63, 0xC5, 0x15, 0x21, 0x74, 0x42, 0x3F, 0x57, 0x11, 0x9D, 0x0F, 0xCE, 0x62, 0x7D, 0x76, 0x3D, 0x81, 0xC1, 0x0A, -+ 0xA1, 0x32, 0x9F, 0x74, 0xC8, 0xD4, 0x45, 0x43, 0x7B, 0xA6, 0x71, 0x8A, 0x33, 0xDB, 0x6E, 0x79, 0x37, 0x51, 0x72, 0xB2, 0xAE, 0x35, 0x91, 0x82, 0x19, 0x78, 0xD5, 0x20, 0x82, 0x4E, 0x2D, 0x2F, -+ 0xF8, 0x98, 0xB7, 0xF4, 0xC8, 0x67, 0xFF, 0x46, 0x27, 0x22, 0xBC, 0x07, 0xEA, 0xDA, 0xD3, 0x89, 0xA9, 0x10, 0xB6, 0xF6, 0x54, 0x29, 0xDA, 0x12, 0x97, 0x35, 0xFE, 0x04, 0x9E, 0x3E, 0xCB, 0x38, -+ 0x89, 0xF6, 0x04, 0x7C, 0xF2, 0xBD, 0x2A, 0x88, 0xD5, 0x0A, 0x65, 0x1B, 0x32, 0x35, 0xD2, 0x48, 0x0E, 0x1D, 0xA5, 0xA3, 0x52, 0x47, 0xFA, 0x76, 0xC8, 0x31, 0x73, 0x63, 0x99, 0xD3, 0x7E, 0x8D, -+ 0x03, 0x3C, 0x1D, 0x05, 0x1C, 0x9B, 0x6A, 0x99, 0xAB, 0x80, 0xB1, 0x31, 0x3F, 0xA2, 0x4C, 0x5C, 0x59, 0x76, 0x6E, 0x6C, 0x51, 0xA3, 0x8F, 0xE9, 0xF1, 0x18, 0x6A, 0x76, 0x7E, 0xEB, 0xD0, 0xD8, -+ 0x80, 0x01, 0xAE, 0x02, 0x46, 0xCD, 0x4E, 0xBE, 0x2C, 0x97, 0x9D, 0xE8, 0x2C, 0x30, 0xBB, 0xDB, 0x98, 0xB4, 0x74, 0x4F, 0x11, 0xF9, 0xE6, 0x39, 0xED, 0xDD, 0x8C, 0x19, 0x4D, 0x79, 0x11, 0x20, -+ 0x1A, 0x8F, 0xA7, 0x45, 0x99, 0x1B, 0x4D, 0x8A, 0x57, 0x09, 0xB6, 0x2A, 0x21, 0xB6, 0x3B, 0x97, 0x62, 0x91, 0x3D, 0x36, 0xCE, 0x99, 0x5C, 0x2D, 0x6B, 0x79, 0x15, 0x1E, 0x8D, 0x83, 0x83, 0x8C, -+ 0xD1, 0xF3, 0x88, 0x40, 0xA9, 0x41, 0x72, 0x55, 0xDD, 0x16, 0x6B, 0x7A, 0x35, 0x84, 0x49, 0x90, 0x03, 0xFB, 0x62, 0x56, 0x11, 0x40, 0x4C, 0x95, 0xB9, 0x60, 0xDF, 0x0D, 0xB1, 0xBC, 0xF1, 0x57, -+ 0x4B, 0x09, 0x65, 0xDB, 0xD8, 0x34, 0xEE, 0x14, 0x81, 0x17, 0xD5, 0xE0, 0x5A, 0x7C, 0xC7, 0xCC, 0x1A, 0x86, 0x56, 0x18, 0xA2, 0xBE, 0x48, 0x54, 0xDB, 0x89, 0x35, 0xCD, 0xA1, 0xE6, 0x8B, 0xD8, -+ 0xD0, 0x9E, 0x72, 0xF0, 0xAC, 0x90, 0x53, 0xC8, 0x82, 0xC4, 0xAB, 0xA4, 0x00, 0x4A, 0x61, 0x4D, 0x10, 0x50, 0x53, 0x00, 0xB6, 0x17, 0x6C, 0xA1, 0xF3, 0x24, 0xE2, 0x2E, 0x78, 0x24, 0x29, 0x9F, -+ 0x9C, 0x40, 0x75, 0x5B, 0x71, 0xD8, 0x2B, 0x67, 0x95, 0x47, 0xF0, 0x6A, 0xD4, 0x8B, 0xE6, 0x6D, 0x68, 0x07, 0x2C, 0x93, 0x90, 0x23, 0x3C, 0x93, 0x3F, 0x80, 0xA1, 0x4F, 0x8D, 0x4A, 0x6B, 0x0B, -+ 0x4E, 0x19, 0x70, 0xE1, 0xAC, 0xC1, 0xBE, 0xA7, 0xF5, 0xD3, 0xBE, 0x22, 0x44, 0x48, 0xF8, 0x57, 0xBA, 0xB6, 0x8A, 0xEF, 0xA6, 0xD8, 0xCB, 0x81, 0x9B, 0x64, 0x29, 0x4A, 0x12, 0x99, 0x79, 0x16, -+ 0xCD, 0xBF, 0x56, 0xE9, 0xA8, 0xD0, 0x02, 0xDD, 0x06, 0x5F, 0x12, 0xC6, 0x18, 0x23, 0xF4, 0xFC, 0x21, 0x45, 0x08, 0x23, 0x2E, 0x43, 0x1F, 0x0B, 0x68, 0x98, 0x47, 0x5B, 0xB5, 0xDD, 0x0D, 0x7D, -+ 0x52, 0x8E, 0x84, 0x0C, 0x22, 0x80, 0x9A, 0xF7, 0xE1, 0x53, 0x63, 0x72, 0x4A, 0x61, 0x3A, 0xCC, 0xFB, 0xE2, 0xB3, 0x74, 0x38, 0xC1, 0x59, 0xCE, 0x14, 0xCB, 0x0C, 0x98, 0xBF, 0xD4, 0x99, 0xC0, -+ 0x8D, 0xAC, 0x0C, 0xF4, 0x5D, 0x82, 0x1C, 0xC2, 0xFA, 0x47, 0x31, 0x9B, 0x6F, 0xB4, 0xCE, 0xD7, 0xE5, 0x98, 0x5E, 0xC8, 0x27, 0x4D, 0xE0, 0x90, 0x71, 0xD3, 0xC1, 0x0D, 0xA5, 0xBF, 0x9E, 0x52, -+ 0x2B, 0x01, 0xCE, 0x91, 0xD6, 0x6B, 0x91, 0x79, 0x5D, 0x3D, 0x22, 0xC0, 0x04, 0x83, 0x45, 0x42, 0x75, 0xDD, 0x2B, 0xBD, 0xD7, 0xC2, 0xDC, 0xC4, 0xA1, 0x67, 0xE5, 0xD7, 0xFC, 0xDB, 0xB9, 0xF6, -+ 0x20, 0x8C, 0xD4, 0xC9, 0xA4, 0x85, 0xFA, 0xAE, 0xB8, 0x09, 0xA7, 0x71, 0x1D, 0xAC, 0x28, 0x65, 0xCE, 0xD4, 0x30, 0x64, 0x74, 0xB2, 0x2B, 0x44, 0x48, 0xF8, 0x5D, 0xF3, 0x34, 0x17, 0xF3, 0xFA, -+ 0xCE, 0x1C, 0x05, 0xD4, 0x27, 0x03, 0xED, 0x31, 0x30, 0x42, 0xA0, 0x5D, 0xE0, 0x36, 0x27, 0x40, 0x13, 0x01, 0x88, 0xEC, 0xB4, 0x45, 0xBB, 0x25, 0x5D, 0xC7, 0x6E, 0xE8, 0x44, 0x3F, 0x73, 0x31, -+ 0x17, 0xF8, 0x35, 0x1F, 0x17, 0x60, 0x31, 0x75, 0x55, 0x4F, 0xEB, 0x00, 0xB7, 0xFF, 0x54, 0xD8, 0x07, 0x86, 0xF3, 0x05, 0xCD, 0xE1, 0x8C, 0xD5, 0xEC, 0x56, 0xEC, 0x09, 0x62, 0xA3, 0xE0, 0x44, -+ 0x82, 0xDC, 0xE3, 0x62, 0x2D, 0x04, 0x0D, 0x24, 0xC4, 0x0F, 0x2E, 0x8A, 0x14, 0xA4, 0x47, 0x65, 0x9D, 0x6C, 0x56, 0x1F, 0x2F, 0xFE, 0xE6, 0x8F, 0x8D, 0x3D, 0xE5, 0x11, 0xB2, 0x3E, 0x8B, 0x17, -+ 0x2A, 0x01, 0xA3, 0xED, 0xA4, 0xD3, 0x78, 0x0E, 0x74, 0xC6, 0x77, 0x24, 0x43, 0x30, 0xE9, 0xAE, 0xFF, 0x01, 0x9F, 0xE0, 0x7B, 0xE3, 0xD3, 0x3F, 0x32, 0x2F, 0x9C, 0xE2, 0x21, 0x4B, 0x9D, 0x9C, -+ 0xFF, 0x99, 0xD0, 0x5A, 0x59, 0xE4, 0x75, 0x51, 0x43, 0x2A, 0xE7, 0x6F, 0x4C, 0xD4, 0xF8, 0xDD, 0x51, 0x52, 0x0F, 0xFE, 0x81, 0x1B, 0x4B, 0x93, 0xCD, 0x62, 0x19, 0xC8, 0x1B, 0x63, 0xB1, 0xD6, -+ 0x27, 0x78, 0x5C, 0x2A, 0x0F, 0xC2, 0x2E, 0x3A, 0xEA, 0x86, 0xCE, 0xEE, 0x1F, 0x7F, 0xBC, 0x4E, 0xFC, 0xB4, 0x6D, 0xDF, 0xBC, 0xD8, 0x8A, 0x02, 0xF3, 0xB4, 0xE6, 0x7C, 0x5F, 0xF2, 0xE8, 0xDC, -+ 0x68, 0xBF, 0x16, 0xC7, 0x46, 0x99, 0xBB, 0xB6, 0x28, 0x90, 0x2F, 0x72, 0xC3, 0xDE, 0xBC, 0x8B, 0xF5, 0xDF, 0x70, 0x6D, 0x47, 0xA6, 0x05, 0xA1, 0x07, 0xDA, 0xA0, 0x01, 0x41, 0x39, 0xCE, 0x40, -+ 0xF0, 0xD4, 0x6D, 0x8D, 0x6D, 0xC7, -+ }, -+ .msg_len = 33, -+ .msg = { 0xD8, 0x1C, 0x4D, 0x8D, 0x73, 0x4F, 0xCB, 0xFB, 0xEA, 0xDE, 0x3D, 0x3F, 0x8A, 0x03, 0x9F, 0xAA, 0x2A, 0x2C, 0x99, 0x57, 0xE8, 0x35, 0xAD, 0x55, 0xB2, 0x2E, 0x75, 0xBF, 0x57, 0xBB, 0x55, 0x6A, -+ 0xC8 }, -+ .sig_len = 3293, -+ .sig = { -+ 0xB0, 0x55, 0xB0, 0xE1, 0x76, 0x10, 0xBF, 0x54, 0xB3, 0x3B, 0x96, 0x09, 0x8D, 0x79, 0x6E, 0x98, 0xF7, 0x89, 0x9F, 0x48, 0x56, 0xCB, 0xC8, 0xD7, 0x04, 0xF9, 0xD7, 0x77, 0x8C, 0x18, 0x77, 0xF1, -+ 0xE1, 0x24, 0xBF, 0x62, 0xA0, 0xD1, 0x7F, 0x01, 0x3B, 0xE4, 0x34, 0x0F, 0xD5, 0x7B, 0x4F, 0xA6, 0x22, 0x2D, 0x9C, 0xDB, 0x90, 0x28, 0xE8, 0xB0, 0x2B, 0x92, 0x6E, 0x15, 0x54, 0xD1, 0x45, 0xF4, -+ 0x47, 0x98, 0xAA, 0xC2, 0xFA, 0xA2, 0x03, 0x3C, 0x4A, 0xEF, 0xB6, 0xCC, 0xB6, 0xCF, 0xE5, 0xC2, 0xA6, 0x23, 0x8E, 0xE7, 0x9C, 0x5C, 0xC2, 0xF0, 0xE8, 0x04, 0xBE, 0xD1, 0x7F, 0x75, 0xC1, 0xF3, -+ 0x99, 0x4D, 0xD7, 0xE7, 0xA0, 0xF2, 0xA7, 0x03, 0x4C, 0x0C, 0x8C, 0x98, 0x64, 0x80, 0x40, 0x57, 0xE2, 0xE5, 0x57, 0x67, 0x3F, 0xDF, 0xD6, 0x64, 0x35, 0x6F, 0xAB, 0xD0, 0x51, 0xF9, 0x07, 0x5B, -+ 0x34, 0x00, 0xA0, 0xC7, 0xE8, 0x45, 0x59, 0x55, 0x3E, 0xDF, 0x98, 0x9B, 0xFF, 0xD2, 0x11, 0x2B, 0x29, 0x60, 0x22, 0x03, 0x06, 0x6B, 0xDE, 0xA7, 0x84, 0x35, 0xEB, 0xC6, 0xE3, 0x81, 0x8C, 0xC9, -+ 0x2D, 0x61, 0xBC, 0xC1, 0x25, 0xA8, 0x57, 0x5B, 0x5A, 0x8A, 0xEE, 0x42, 0x25, 0xFB, 0x9C, 0x62, 0x48, 0x3F, 0x3E, 0xD1, 0x18, 0x5A, 0x6A, 0x96, 0x82, 0x2E, 0x5E, 0xFC, 0x1B, 0xA7, 0xCD, 0x8D, -+ 0x5F, 0xD8, 0xCC, 0x18, 0x7D, 0x2A, 0x26, 0x69, 0xCA, 0xDF, 0x58, 0xFA, 0xD6, 0x62, 0x89, 0x79, 0x4C, 0x96, 0x48, 0x5B, 0x2C, 0x46, 0x45, 0xC7, 0xD3, 0xD3, 0x56, 0x84, 0xB7, 0x42, 0x9B, 0x5E, -+ 0xF3, 0x15, 0x45, 0x76, 0x99, 0xBE, 0x80, 0x30, 0xBC, 0x3D, 0xEB, 0x81, 0x66, 0x60, 0x2A, 0xC5, 0x48, 0x19, 0x82, 0x48, 0x83, 0xA2, 0x46, 0xC8, 0xA1, 0xA3, 0x4F, 0xC8, 0x9B, 0x2F, 0xE0, 0x32, -+ 0x9B, 0x5C, 0xA0, 0x5D, 0x4E, 0x14, 0xB6, 0xDF, 0xFC, 0x21, 0x44, 0x60, 0x6A, 0xB3, 0x60, 0xBB, 0x3B, 0x8A, 0xC5, 0xA1, 0x78, 0x99, 0x8B, 0x46, 0x21, 0x81, 0x81, 0xCA, 0xC8, 0xDE, 0x4C, 0x29, -+ 0x48, 0x30, 0xD4, 0x9D, 0x8F, 0x00, 0xEC, 0x12, 0xC3, 0xD3, 0xAC, 0x7B, 0x4A, 0x2C, 0x30, 0x17, 0x58, 0xE6, 0x8A, 0x56, 0x81, 0x17, 0x7F, 0xF2, 0xA7, 0x5D, 0x1D, 0x4B, 0xF1, 0xC9, 0x26, 0x88, -+ 0x0B, 0x34, 0xB7, 0x28, 0xF7, 0xC3, 0x2E, 0x40, 0x60, 0x99, 0xD9, 0x5A, 0xB4, 0x48, 0x92, 0xF7, 0x48, 0xAA, 0xFE, 0xB5, 0x5B, 0x26, 0xBE, 0x31, 0x75, 0x12, 0xB0, 0x37, 0x7D, 0xBE, 0x89, 0x1A, -+ 0xC5, 0x45, 0x6A, 0x92, 0x4C, 0x36, 0x83, 0x9B, 0xC8, 0x01, 0xDB, 0x2A, 0xC5, 0xB7, 0x11, 0x0A, 0x9B, 0xAF, 0x4C, 0x3C, 0x49, 0xD0, 0x05, 0x39, 0x3C, 0xDF, 0xFA, 0xD4, 0xF9, 0x68, 0x61, 0x20, -+ 0xF4, 0xFD, 0xE0, 0x16, 0x8A, 0x9E, 0x45, 0x8E, 0x72, 0x9F, 0x4B, 0x0A, 0xE1, 0xA4, 0xC4, 0x12, 0x4C, 0xA3, 0x4D, 0xF5, 0xB6, 0x3B, 0xC2, 0xE7, 0xCB, 0xEE, 0x01, 0xA3, 0x8D, 0x31, 0xA0, 0xED, -+ 0x8D, 0x3C, 0x4C, 0x38, 0x03, 0xC3, 0xC2, 0x4C, 0x5C, 0xAD, 0xEB, 0xE3, 0xE9, 0x1A, 0x8D, 0x2E, 0x1B, 0xFC, 0xF0, 0x50, 0x8A, 0x27, 0x88, 0xD8, 0x9D, 0xFE, 0xA2, 0x0F, 0xD6, 0x38, 0x18, 0xB8, -+ 0x39, 0x60, 0xA6, 0xCF, 0x93, 0x08, 0x72, 0xB9, 0x57, 0x85, 0x57, 0x50, 0x88, 0xCF, 0x7E, 0x8B, 0x63, 0xA1, 0x89, 0x5A, 0x8C, 0x1C, 0x77, 0xA8, 0x4C, 0xB9, 0xCC, 0x6B, 0xD1, 0xD5, 0xFA, 0x93, -+ 0x96, 0x77, 0xAF, 0x17, 0xEE, 0xBE, 0x2D, 0x2E, 0xE6, 0x84, 0xC6, 0x60, 0x15, 0xF1, 0xBB, 0x14, 0x2A, 0x72, 0x77, 0x79, 0x58, 0x0D, 0xA1, 0xBC, 0x5E, 0x97, 0x5A, 0xA5, 0x6E, 0xF5, 0xD7, 0x7A, -+ 0x84, 0x07, 0xE5, 0x06, 0xA5, 0xDE, 0xEE, 0xA5, 0xE8, 0xB0, 0x79, 0x7F, 0x10, 0x64, 0x60, 0x05, 0x64, 0x80, 0x22, 0x21, 0x3C, 0xCB, 0x86, 0xA7, 0x7D, 0xF5, 0xD7, 0xB3, 0x16, 0xE8, 0x5D, 0x55, -+ 0xB9, 0xDA, 0x0F, 0xDF, 0xD5, 0xF2, 0x35, 0x52, 0xDD, 0x47, 0xCC, 0xFA, 0x96, 0x4A, 0xC3, 0x9E, 0xE6, 0x84, 0xBD, 0x63, 0x79, 0x3B, 0xB7, 0xDC, 0xAB, 0x69, 0xBE, 0x7E, 0xD9, 0x4D, 0x8D, 0xDB, -+ 0xA1, 0x85, 0xE8, 0x0A, 0x7A, 0xAE, 0xE7, 0x4E, 0x87, 0x8F, 0x50, 0xA2, 0x13, 0xF3, 0xB4, 0xFF, 0xB6, 0x6E, 0x6D, 0x34, 0xA3, 0x9C, 0x0A, 0xAE, 0x2B, 0x1D, 0x61, 0x36, 0x6F, 0xE4, 0x03, 0x53, -+ 0x9C, 0x69, 0xA0, 0x88, 0x75, 0x1F, 0x56, 0x90, 0x1A, 0x10, 0xBC, 0x44, 0x23, 0x13, 0xA3, 0x5C, 0x2D, 0x83, 0x54, 0x76, 0xD0, 0xFA, 0xD4, 0x47, 0xC7, 0x70, 0x08, 0x0F, 0xA4, 0x1B, 0xF3, 0x8D, -+ 0x68, 0x5F, 0xB3, 0x1B, 0x11, 0xA7, 0xD2, 0xE6, 0xFB, 0x52, 0x67, 0x3D, 0x16, 0x87, 0x23, 0xE6, 0x89, 0x08, 0xC0, 0x67, 0x2A, 0x0F, 0x36, 0xE2, 0x5A, 0x19, 0x9E, 0x17, 0xA6, 0xFE, 0x5B, 0x8B, -+ 0x82, 0x5B, 0x96, 0xEA, 0xB7, 0xAB, 0x4B, 0x7D, 0x83, 0x81, 0xDB, 0xC5, 0x00, 0x31, 0xA5, 0xF2, 0xE0, 0x9E, 0x4B, 0xE8, 0x71, 0x53, 0x3A, 0xDC, 0x5D, 0x08, 0xD0, 0x09, 0x42, 0x9B, 0xBF, 0x5C, -+ 0x86, 0xF8, 0x12, 0x0D, 0x09, 0x5C, 0x8E, 0xEC, 0xBE, 0xF3, 0xE0, 0x99, 0xDE, 0x61, 0x8D, 0x43, 0x77, 0x24, 0x1B, 0x50, 0x36, 0x9E, 0xDE, 0x51, 0xAA, 0x74, 0xAB, 0x96, 0x65, 0x89, 0xE2, 0xC6, -+ 0x87, 0xD6, 0xC0, 0x9F, 0xAC, 0x9C, 0x6D, 0x6C, 0x54, 0x61, 0xF5, 0xA6, 0x30, 0x08, 0xE9, 0x83, 0x5F, 0xF4, 0xB5, 0xBD, 0x42, 0x65, 0xF1, 0x12, 0x8C, 0x09, 0x2C, 0x27, 0xD4, 0xDA, 0x50, 0x8F, -+ 0xD4, 0xF5, 0x0E, 0xFA, 0x74, 0xA7, 0x31, 0x57, 0x05, 0x9A, 0x4B, 0x2F, 0x41, 0xFE, 0x8B, 0xF9, 0x67, 0x16, 0x79, 0x69, 0xB9, 0x3B, 0xF5, 0x20, 0x45, 0x84, 0x26, 0x90, 0x32, 0x42, 0x9E, 0x35, -+ 0x77, 0x70, 0x4B, 0xDF, 0x68, 0x98, 0x00, 0xDD, 0x8B, 0xDE, 0x82, 0x6B, 0x74, 0xCE, 0xF5, 0x10, 0xA1, 0xE0, 0x87, 0x02, 0x3F, 0x09, 0x26, 0xE9, 0x7F, 0x37, 0x92, 0x6B, 0x16, 0xEF, 0x78, 0x6C, -+ 0x37, 0xEC, 0x21, 0xF2, 0x40, 0x71, 0x04, 0xD3, 0x95, 0x4A, 0x7A, 0x07, 0xC3, 0x0D, 0xE2, 0xD6, 0x78, 0x84, 0x02, 0xD7, 0x1A, 0x56, 0x2E, 0xA5, 0x4C, 0x79, 0xB4, 0x19, 0x7D, 0x20, 0x2C, 0x97, -+ 0x72, 0x5D, 0x2D, 0x8B, 0x7E, 0x73, 0x32, 0xF3, 0xFF, 0x1A, 0x6F, 0xAD, 0x49, 0xA4, 0xC0, 0x0C, 0xD1, 0xA4, 0x47, 0x65, 0x1B, 0x8E, 0x08, 0xD8, 0x50, 0x6B, 0xCA, 0x82, 0x3E, 0x10, 0xEF, 0x41, -+ 0x16, 0xE6, 0xCF, 0x49, 0x67, 0x5C, 0x43, 0x30, 0xA1, 0xDE, 0x19, 0x08, 0xDD, 0xB5, 0x9F, 0x7E, 0xA5, 0xF8, 0x9C, 0x94, 0xCE, 0x50, 0x0F, 0x82, 0xB4, 0x3C, 0xE7, 0x89, 0x15, 0x84, 0x73, 0xB9, -+ 0xE0, 0x79, 0x05, 0xD8, 0xE8, 0x61, 0x5E, 0xDE, 0xF0, 0x21, 0x38, 0x3F, 0xC3, 0x1D, 0x61, 0x8C, 0x5C, 0xE6, 0x25, 0x65, 0x3B, 0x40, 0xC2, 0x1B, 0xD7, 0xE0, 0xBC, 0x78, 0x3D, 0x93, 0xBE, 0xC1, -+ 0xB7, 0xA5, 0xB4, 0xBB, 0xC6, 0xC2, 0x81, 0xB7, 0x77, 0x55, 0x47, 0x39, 0x0E, 0xF3, 0xD3, 0x0E, 0x27, 0x73, 0x99, 0x36, 0x93, 0x08, 0xD8, 0xA1, 0xCD, 0xC2, 0xE1, 0xDB, 0xD6, 0xF1, 0x58, 0x97, -+ 0x0A, 0xC2, 0xAC, 0x5C, 0x2C, 0x94, 0x81, 0x97, 0x5B, 0x80, 0x95, 0x80, 0xC0, 0xEA, 0x89, 0x91, 0x2C, 0x07, 0x66, 0xF4, 0x58, 0x30, 0xA8, 0x96, 0x3F, 0xBB, 0x7E, 0x17, 0xD8, 0x43, 0x85, 0x17, -+ 0x5A, 0x6E, 0x07, 0x54, 0x68, 0x3C, 0xBF, 0xBB, 0xA6, 0x36, 0x45, 0x94, 0xF6, 0xB5, 0x00, 0x5C, 0x15, 0xBD, 0x5F, 0x85, 0x73, 0x2B, 0x5A, 0x63, 0xF2, 0x62, 0x67, 0xAB, 0x17, 0x04, 0x8C, 0x61, -+ 0x99, 0x20, 0x00, 0x19, 0xAD, 0xD6, 0xA4, 0xD1, 0xAC, 0xD0, 0x40, 0x5C, 0x38, 0x76, 0x66, 0xE8, 0x71, 0x11, 0xB9, 0x82, 0x5A, 0xFB, 0x97, 0x51, 0xCD, 0x3F, 0x9D, 0x8A, 0x45, 0xC6, 0xB2, 0x08, -+ 0xD2, 0xD3, 0x33, 0xB6, 0xC5, 0x9F, 0x98, 0xBC, 0xF2, 0x84, 0xC8, 0x54, 0xCF, 0x7D, 0x4F, 0x67, 0x54, 0xFD, 0x75, 0xEE, 0x06, 0x8C, 0x88, 0x67, 0x8E, 0xE7, 0x56, 0x5B, 0x47, 0xB3, 0x6E, 0x68, -+ 0xA1, 0xFD, 0x7B, 0xB6, 0x0E, 0x2A, 0x8E, 0x0D, 0xF7, 0x12, 0x70, 0x20, 0xF5, 0xC6, 0x27, 0x7B, 0x3E, 0xE0, 0x58, 0x77, 0x3F, 0x9B, 0xBF, 0x1D, 0xC2, 0xE3, 0x98, 0xBC, 0x30, 0x12, 0x02, 0x12, -+ 0x1C, 0x69, 0x9C, 0x00, 0x37, 0x9D, 0x83, 0x50, 0x09, 0x96, 0x26, 0xF9, 0x09, 0x23, 0x65, 0x92, 0x40, 0x08, 0xB1, 0xA9, 0xCD, 0x9F, 0x87, 0x87, 0x82, 0x2B, 0xEE, 0x96, 0x1A, 0xBA, 0x23, 0x9C, -+ 0xDC, 0xB4, 0x18, 0xE9, 0x38, 0x60, 0xEF, 0x34, 0x8A, 0x5E, 0x96, 0x45, 0x38, 0x9A, 0x0A, 0x87, 0x8D, 0x39, 0x4F, 0x36, 0x5A, 0xEB, 0xFE, 0x28, 0x0B, 0xEE, 0x68, 0x74, 0xA3, 0x05, 0x4C, 0xD9, -+ 0x8C, 0xBD, 0x87, 0x16, 0x66, 0x28, 0x04, 0x72, 0x9F, 0xD4, 0x6F, 0xCE, 0xA9, 0xC4, 0xCF, 0x92, 0x9F, 0x2F, 0x12, 0x00, 0x06, 0xCE, 0xBC, 0xC0, 0xBF, 0x75, 0x69, 0x2D, 0x63, 0xC0, 0x44, 0x63, -+ 0x5D, 0x1A, 0x1D, 0xB6, 0x1A, 0xD1, 0x78, 0x94, 0x15, 0xE5, 0xF2, 0x24, 0x2B, 0x74, 0x00, 0xA8, 0xA7, 0x93, 0x68, 0xED, 0x60, 0x2C, 0x33, 0x64, 0x92, 0xF2, 0x70, 0x34, 0x5B, 0xE9, 0x8B, 0x2D, -+ 0xD6, 0xEA, 0x8E, 0x4C, 0x53, 0xAC, 0xA3, 0x6E, 0x3C, 0x9B, 0xA2, 0x88, 0xF2, 0x75, 0x86, 0x13, 0x4C, 0xF0, 0xB5, 0xCA, 0x9B, 0xA1, 0xEE, 0xDF, 0x20, 0xD1, 0xAB, 0x4F, 0x2D, 0x08, 0xF3, 0xB0, -+ 0x42, 0xDB, 0x89, 0xDE, 0xCF, 0xFD, 0xD2, 0x38, 0x54, 0xF3, 0x51, 0x20, 0xAD, 0xDE, 0x16, 0x03, 0x33, 0x5D, 0x56, 0x8D, 0xA9, 0x58, 0x91, 0xCF, 0x3A, 0xB2, 0x1D, 0x9A, 0xFA, 0xF6, 0x6C, 0x28, -+ 0x6C, 0x13, 0x00, 0x01, 0x9C, 0xA9, 0xBA, 0xF2, 0xFF, 0x3F, 0x67, 0x25, 0x23, 0x0C, 0x4B, 0x26, 0x98, 0x92, 0xF7, 0xA3, 0xDF, 0xD6, 0xEA, 0xB7, 0x4C, 0x31, 0x4A, 0x86, 0xF8, 0xB4, 0x7E, 0xAE, -+ 0x49, 0xF4, 0x19, 0xE4, 0xA2, 0x91, 0x7B, 0x98, 0x4F, 0xE9, 0xA0, 0x03, 0x32, 0xAF, 0xB7, 0xA5, 0x6E, 0x5E, 0x67, 0x52, 0x23, 0xAE, 0xCC, 0x50, 0x34, 0x20, 0xAF, 0x8B, 0x39, 0xFA, 0xA9, 0x20, -+ 0xE3, 0xAD, 0xA1, 0xA4, 0x3C, 0xE7, 0xBD, 0x1F, 0x7D, 0xF2, 0x30, 0x1C, 0x90, 0x27, 0xCC, 0x1C, 0xE5, 0x66, 0x6E, 0xB0, 0x93, 0x62, 0x10, 0xAF, 0xA5, 0x9E, 0x10, 0xF3, 0x07, 0xCA, 0x1F, 0x78, -+ 0x63, 0xED, 0xD6, 0xC3, 0xBB, 0x8F, 0x5D, 0x63, 0xC0, 0xCF, 0x0E, 0xA8, 0xF0, 0x6E, 0xF0, 0x8C, 0xCC, 0x24, 0xC1, 0x4F, 0x29, 0x5D, 0xD2, 0x86, 0xFD, 0x9F, 0x4E, 0x71, 0x02, 0x10, 0x9D, 0x53, -+ 0xFF, 0x5E, 0xFF, 0x4A, 0x01, 0xDC, 0xAA, 0xD5, 0xFB, 0x60, 0x55, 0xA0, 0x70, 0x3C, 0xD4, 0x71, 0xB2, 0x0B, 0x5F, 0xA4, 0x56, 0x0B, 0xDE, 0xAA, 0x13, 0x13, 0xC7, 0x64, 0x7A, 0xE7, 0x56, 0xAE, -+ 0x85, 0x91, 0x57, 0x9E, 0xA5, 0x12, 0x0E, 0x09, 0xD6, 0x79, 0x48, 0x40, 0x62, 0x9B, 0x9F, 0xEF, 0xEF, 0xC2, 0x0D, 0xB5, 0x94, 0xBA, 0xDC, 0xD1, 0x29, 0xEC, 0x49, 0x1C, 0x3C, 0xF7, 0x5A, 0xB4, -+ 0x0C, 0x47, 0x2A, 0xD2, 0x2C, 0x2D, 0xED, 0xBC, 0x77, 0xBA, 0x26, 0x71, 0xC8, 0x43, 0x48, 0x65, 0x60, 0xDC, 0x76, 0x52, 0x31, 0xBF, 0x5F, 0xDC, 0xDB, 0xCC, 0x77, 0xC8, 0x30, 0x0F, 0x9D, 0x2B, -+ 0x53, 0xEC, 0x34, 0x46, 0xD8, 0x2F, 0x08, 0x7B, 0x89, 0xBD, 0x99, 0x2F, 0x7A, 0xB0, 0xA7, 0x80, 0xB5, 0x38, 0x81, 0x18, 0xBB, 0xF1, 0x7C, 0xCB, 0xEC, 0x2D, 0x19, 0x6F, 0x3E, 0xDC, 0x47, 0x8F, -+ 0xB9, 0x47, 0xD8, 0x30, 0x2B, 0x04, 0x0A, 0x60, 0xD0, 0xBA, 0xB8, 0x5C, 0x1C, 0x5C, 0x47, 0x4E, 0xAB, 0x41, 0xE0, 0x64, 0x41, 0x06, 0x95, 0xC6, 0x0E, 0x1A, 0xCE, 0xE7, 0x9E, 0x13, 0x7D, 0x70, -+ 0x2E, 0x4A, 0x31, 0x39, 0x68, 0xA5, 0x57, 0xB9, 0x7C, 0xE6, 0x43, 0x31, 0x88, 0x8B, 0x52, 0x89, 0xCC, 0xB3, 0x7A, 0x66, 0x25, 0xE5, 0x22, 0x73, 0x71, 0x1B, 0x84, 0x64, 0x58, 0xD5, 0xD8, 0xBA, -+ 0x1A, 0xE4, 0x96, 0x53, 0x78, 0xCB, 0xE9, 0x18, 0xBF, 0x0F, 0x4B, 0xEE, 0xE1, 0xBD, 0x08, 0xFE, 0xCC, 0x66, 0x06, 0xD2, 0xF3, 0x97, 0x0C, 0x87, 0x4B, 0x0A, 0x09, 0xC4, 0x10, 0xE0, 0xC7, 0xD3, -+ 0xD6, 0x00, 0x4D, 0x93, 0xF0, 0x6F, 0xBC, 0x25, 0x8F, 0x96, 0x4A, 0x96, 0x19, 0xB2, 0xC6, 0xCA, 0x28, 0xA3, 0xA2, 0x52, 0x9B, 0xF4, 0x4F, 0xB9, 0xF2, 0x44, 0x38, 0x2C, 0xBE, 0xF9, 0x93, 0xC4, -+ 0x18, 0xA3, 0x88, 0x0F, 0x8D, 0x5F, 0xBA, 0x41, 0xF0, 0x58, 0x24, 0xF4, 0xF3, 0x3B, 0x24, 0xB8, 0x86, 0xD1, 0x15, 0xB8, 0x19, 0x81, 0x6C, 0x9B, 0x7D, 0xB5, 0x1F, 0x2A, 0xA0, 0xCC, 0x6B, 0x01, -+ 0xB6, 0xAB, 0x21, 0x1F, 0xAD, 0x55, 0x28, 0x4C, 0xDC, 0x04, 0x52, 0x47, 0x85, 0x90, 0x59, 0xBD, 0x36, 0x88, 0x7F, 0x3A, 0xE2, 0xB6, 0xCF, 0x7F, 0x87, 0xEC, 0x2D, 0xF3, 0xC8, 0x9D, 0x43, 0xD2, -+ 0x7E, 0x5E, 0x48, 0x88, 0xBA, 0xE6, 0x5B, 0x69, 0x24, 0xFA, 0x5D, 0xF0, 0xB2, 0xED, 0x44, 0xE3, 0xE3, 0x79, 0x4B, 0x68, 0x90, 0xF9, 0x33, 0xF9, 0xFB, 0xA7, 0xA7, 0x89, 0xFC, 0x63, 0xCE, 0xB7, -+ 0x43, 0x60, 0xD4, 0xAC, 0x9C, 0x64, 0xF1, 0x0C, 0xFC, 0x0A, 0xB3, 0x74, 0xC7, 0x12, 0xA3, 0xCC, 0x6C, 0x87, 0x6B, 0x22, 0xF6, 0xD9, 0xFE, 0xF1, 0xC3, 0x87, 0xBF, 0x6B, 0xDE, 0x75, 0x79, 0x2A, -+ 0xF9, 0x09, 0x4E, 0xC1, 0x7E, 0xB8, 0xB5, 0x5D, 0x35, 0x5F, 0xF0, 0xAE, 0x9D, 0x62, 0x11, 0x1A, 0xD8, 0xA3, 0xCB, 0xA4, 0xF5, 0x66, 0x3D, 0x94, 0xA3, 0x8A, 0x43, 0xE3, 0x52, 0x97, 0x9D, 0xB3, -+ 0xDF, 0xDF, 0x32, 0x98, 0x85, 0x34, 0xCD, 0x45, 0xFD, 0x43, 0x6E, 0x69, 0x9C, 0x46, 0x7F, 0x6D, 0xDD, 0x50, 0x76, 0xB4, 0xE5, 0xF7, 0xF3, 0x82, 0xAF, 0x45, 0xD3, 0x17, 0x0F, 0x25, 0xB5, 0x41, -+ 0x50, 0xD6, 0x4D, 0x35, 0xA8, 0x18, 0x55, 0xF4, 0xB2, 0x2B, 0xAC, 0x9F, 0xA1, 0x7D, 0xEF, 0xAD, 0x73, 0xB1, 0x4B, 0x15, 0x84, 0x0E, 0x08, 0x70, 0xDA, 0xF5, 0xB9, 0x2A, 0x30, 0xD2, 0x37, 0xBF, -+ 0x0C, 0x08, 0xCB, 0x8C, 0x9E, 0xBD, 0x41, 0x59, 0xD3, 0xBB, 0x2D, 0x47, 0x4E, 0x3E, 0x10, 0x6C, 0xC4, 0x68, 0xE6, 0xA2, 0x43, 0x35, 0x12, 0x48, 0x10, 0xF4, 0x86, 0xA6, 0x47, 0x3C, 0x26, 0xA5, -+ 0xD7, 0x83, 0x26, 0x4F, 0xD8, 0xA3, 0x68, 0x5C, 0x09, 0xD4, 0xEF, 0x77, 0xBD, 0x9A, 0x9A, 0x5C, 0x0B, 0x57, 0x8C, 0x95, 0xE7, 0xCA, 0xA3, 0x4E, 0xCE, 0x46, 0xF8, 0x48, 0x37, 0x47, 0xEE, 0x58, -+ 0x4D, 0xBB, 0x2D, 0x97, 0x20, 0x76, 0xD7, 0x63, 0xB0, 0xB5, 0x50, 0xE2, 0xCA, 0xE8, 0x34, 0x9E, 0x06, 0x09, 0xF1, 0x4F, 0x0A, 0x8F, 0x51, 0x10, 0xCA, 0xA4, 0xCD, 0xAB, 0xDD, 0x44, 0x40, 0xAD, -+ 0x16, 0x9C, 0x2A, 0xBE, 0x86, 0xEE, 0x1C, 0x68, 0x0D, 0x6E, 0x94, 0x88, 0x29, 0x64, 0xD8, 0x70, 0xCF, 0xEF, 0x70, 0xA4, 0xF4, 0xC0, 0x4B, 0x49, 0xCC, 0x4A, 0x4F, 0xF6, 0xD4, 0xB9, 0xE3, 0x69, -+ 0x18, 0xC1, 0x8A, 0x6D, 0x5C, 0x4A, 0xF4, 0x7C, 0xCF, 0x09, 0xFF, 0x64, 0xC7, 0x7A, 0xE3, 0xBF, 0xBC, 0xFA, 0x50, 0x4E, 0x16, 0x9E, 0xAB, 0xB3, 0x06, 0x95, 0x1A, 0x28, 0xAF, 0xF2, 0xFA, 0xB7, -+ 0xA5, 0xBA, 0x47, 0x6F, 0x56, 0x50, 0xBC, 0x7D, 0xA1, 0x92, 0xD4, 0xB0, 0xEB, 0xFA, 0xAB, 0xAB, 0xE7, 0x72, 0xED, 0xE2, 0xA1, 0x07, 0x1D, 0x5C, 0x4F, 0xC3, 0x3C, 0x25, 0x25, 0xE4, 0x0D, 0x08, -+ 0x2F, 0xA9, 0x35, 0xBD, 0x32, 0xFF, 0x25, 0x06, 0xB3, 0xA1, 0x31, 0xE3, 0x15, 0x81, 0xB6, 0xC9, 0x44, 0xC2, 0x5F, 0x2D, 0x81, 0x75, 0x5C, 0x39, 0xD3, 0xBF, 0xC0, 0xC6, 0xDE, 0x93, 0xE3, 0x55, -+ 0x57, 0xAB, 0x1C, 0xF3, 0x47, 0x2B, 0x4A, 0x32, 0x98, 0x09, 0x86, 0xA3, 0x1F, 0x88, 0x28, 0x73, 0x52, 0x19, 0x38, 0xD8, 0xBF, 0xFE, 0x97, 0x36, 0x9F, 0xE2, 0x97, 0x46, 0xAC, 0xFC, 0x8F, 0x12, -+ 0xDE, 0xEE, 0x0E, 0x9A, 0xC3, 0xE1, 0x67, 0x60, 0x20, 0x22, 0x43, 0x43, 0x58, 0xF9, 0xDC, 0x33, 0xB2, 0xD4, 0x40, 0x8F, 0xD0, 0x89, 0x54, 0xF9, 0x74, 0x5A, 0x0B, 0xD6, 0x5B, 0xC7, 0x7E, 0xE8, -+ 0xBE, 0xA7, 0x1B, 0xFA, 0x76, 0x40, 0xC1, 0x35, 0xED, 0x19, 0xCC, 0x2F, 0x1C, 0x22, 0xE0, 0xD6, 0xB0, 0x2D, 0xA6, 0xDF, 0x24, 0xDB, 0x05, 0xA6, 0x48, 0x0D, 0xB4, 0x52, 0x27, 0xDC, 0xC9, 0x7A, -+ 0xDC, 0xEC, 0xB3, 0x91, 0x7F, 0x08, 0x6C, 0x6E, 0x98, 0x08, 0x3A, 0x21, 0x2D, 0x54, 0xDC, 0x4B, 0x81, 0x0F, 0x68, 0x9C, 0x4F, 0x98, 0x43, 0xD2, 0xFB, 0x9F, 0x57, 0x26, 0xB8, 0x76, 0x64, 0xCD, -+ 0x32, 0x2C, 0x28, 0xB6, 0xF1, 0xE0, 0x1F, 0xA9, 0x1A, 0xB3, 0x50, 0x2F, 0xAC, 0x01, 0xAF, 0xCF, 0x52, 0xC9, 0xB3, 0xD2, 0xAA, 0x20, 0xE1, 0xB3, 0x85, 0xEF, 0x47, 0x0C, 0xB3, 0x30, 0x78, 0x19, -+ 0x8B, 0x5C, 0x43, 0x95, 0xA0, 0x32, 0x9C, 0xB1, 0x0F, 0x9A, 0x4E, 0x96, 0xF4, 0x3E, 0x51, 0x16, 0x1F, 0xAA, 0xE1, 0x90, 0xEB, 0x8C, 0x39, 0x69, 0xCE, 0xC2, 0x97, 0x7B, 0x08, 0xF6, 0x8D, 0x24, -+ 0xEF, 0xCE, 0x56, 0x65, 0x11, 0xFE, 0xB6, 0x54, 0xCC, 0x5F, 0xA1, 0xFE, 0x67, 0x57, 0x1F, 0x58, 0xD8, 0x48, 0xBE, 0x7C, 0x56, 0x4A, 0xF5, 0x66, 0x39, 0x06, 0x39, 0xF8, 0x16, 0x92, 0xA7, 0xB7, -+ 0xC0, 0xF9, 0xF5, 0xAD, 0x85, 0xB8, 0x2F, 0x6A, 0x83, 0x2C, 0x9D, 0xA5, 0x2B, 0x6A, 0x47, 0xD2, 0x3F, 0x9E, 0xCF, 0xAD, 0x44, 0x99, 0x83, 0xC9, 0x39, 0x65, 0x46, 0x58, 0xB1, 0x0A, 0xDD, 0xC0, -+ 0xB4, 0xAA, 0xDB, 0xB7, 0xB8, 0x5E, 0xA6, 0x02, 0xDA, 0x76, 0x17, 0xD1, 0xB4, 0xA4, 0x5D, 0x86, 0xB8, 0xD0, 0x9D, 0x2C, 0x5A, 0x40, 0x2A, 0x67, 0x58, 0xE0, 0x6A, 0xAA, 0x15, 0x4A, 0xD0, 0x96, -+ 0x67, 0x8C, 0xBD, 0xD9, 0xCA, 0x6F, 0x5D, 0x92, 0xB0, 0xD7, 0x38, 0x50, 0x1E, 0x18, 0xC1, 0xDC, 0xD2, 0x68, 0xDE, 0x01, 0x12, 0x00, 0x59, 0x48, 0x2D, 0xFC, 0xD1, 0x2B, 0x9B, 0xF2, 0x6E, 0x1C, -+ 0xF3, 0xB0, 0x99, 0x70, 0xC4, 0x3C, 0xF5, 0x62, 0x0C, 0xA8, 0xD4, 0xE2, 0xFD, 0x31, 0xE5, 0xA8, 0x9E, 0xF8, 0xDD, 0x93, 0x17, 0xE6, 0xCF, 0x55, 0xB3, 0xFB, 0x19, 0xC0, 0x72, 0xE9, 0xD5, 0xDD, -+ 0xB9, 0x74, 0xEF, 0x60, 0x82, 0x71, 0x1E, 0x99, 0x15, 0xD3, 0x43, 0x4E, 0x7D, 0x34, 0xE7, 0xC3, 0x25, 0xA8, 0xD9, 0x2B, 0x66, 0xB0, 0x83, 0xDF, 0xD6, 0xCF, 0xD1, 0x62, 0xFD, 0x66, 0x65, 0xDF, -+ 0x9A, 0xBF, 0x18, 0x8F, 0x2D, 0xC5, 0x83, 0xFD, 0xFA, 0xBC, 0x99, 0x7D, 0x78, 0x70, 0xE9, 0x11, 0xD3, 0xC5, 0xEB, 0x5B, 0xDF, 0x80, 0xBA, 0x8D, 0xE6, 0xC4, 0x6C, 0x88, 0xE0, 0x49, 0xD3, 0x9E, -+ 0x2F, 0xA2, 0x96, 0xCB, 0xE0, 0x69, 0xCA, 0x69, 0x49, 0x4F, 0x89, 0x08, 0x87, 0x67, 0x9C, 0xB3, 0xB0, 0xE6, 0x04, 0x3D, 0x02, 0xB8, 0xF2, 0x4A, 0x3F, 0x14, 0x83, 0xC9, 0x47, 0x81, 0xB6, 0xB0, -+ 0x1A, 0xF8, 0x01, 0x60, 0x63, 0x99, 0xC3, 0xAC, 0x62, 0x60, 0x3D, 0x86, 0xF7, 0xD5, 0x29, 0x55, 0xC3, 0x12, 0x59, 0x58, 0xC0, 0x4D, 0x57, 0x2A, 0x34, 0x63, 0x4C, 0xD2, 0x36, 0x73, 0x58, 0xA8, -+ 0x6A, 0xD2, 0xB4, 0x81, 0xB3, 0x26, 0xF2, 0xF8, 0x9D, 0x4B, 0x4D, 0xC0, 0x94, 0xE9, 0x89, 0x18, 0xB5, 0xAE, 0xD8, 0xF4, 0xEB, 0xA4, 0x9C, 0x56, 0x17, 0x2B, 0x16, 0x51, 0xB6, 0x60, 0xB8, 0x70, -+ 0x47, 0xBA, 0x65, 0x2A, 0x64, 0x0C, 0xA7, 0xB0, 0x69, 0x97, 0x1F, 0xA2, 0xA6, 0x6C, 0x01, 0x95, 0x67, 0xC3, 0x8B, 0x7F, 0x5D, 0x26, 0x21, 0xE7, 0xCB, 0x4B, 0xAA, 0x41, 0x40, 0xEF, 0x5B, 0xB4, -+ 0x91, 0x96, 0x0D, 0x80, 0xF5, 0x01, 0x01, 0xA0, 0x04, 0xE0, 0x79, 0xF5, 0xB5, 0x1F, 0x39, 0x4B, 0x02, 0x9E, 0x3E, 0xBF, 0xBD, 0xFC, 0x33, 0x59, 0x4E, 0x95, 0xF6, 0xA3, 0x7B, 0xC4, 0xF6, 0xA3, -+ 0x29, 0xB5, 0xC1, 0xD8, 0xE0, 0x41, 0x45, 0x40, 0x3D, 0x33, 0xA5, 0xC7, 0x04, 0xB3, 0x43, 0x51, 0x82, 0x31, 0xB0, 0x86, 0x46, 0xE4, 0xDA, 0x9D, 0x5A, 0x4E, 0xCA, 0xBC, 0xF5, 0x0F, 0x2B, 0x39, -+ 0x21, 0xE8, 0x5A, 0x84, 0xC4, 0x09, 0xA1, 0xF6, 0x27, 0xEE, 0x0F, 0x6E, 0xB1, 0xB1, 0xB9, 0xA9, 0xFC, 0xCA, 0x9C, 0xBD, 0x65, 0xCE, 0xA9, 0x00, 0x88, 0x79, 0x7D, 0xF7, 0x51, 0x0B, 0x86, 0x1B, -+ 0x86, 0xCA, 0x4E, 0x99, 0x8A, 0xF0, 0x75, 0x94, 0x9B, 0x16, 0x7C, 0xBD, 0x66, 0xBC, 0xBE, 0x4C, 0x51, 0x30, 0x34, 0x7D, 0x87, 0x7C, 0xE5, 0xA8, 0x47, 0x9F, 0x4D, 0x56, 0xD3, 0x98, 0x14, 0x6C, -+ 0xE2, 0xF1, 0xA7, 0x85, 0x42, 0x8D, 0xDD, 0xED, 0xAD, 0x66, 0xAA, 0xB2, 0x87, 0xCA, 0xAE, 0x59, 0x14, 0x24, 0x35, 0x56, 0x1A, 0x40, 0x1B, 0x50, 0x93, 0x43, 0x92, 0xD4, 0x32, 0x9C, 0x3C, 0x21, -+ 0xAE, 0x48, 0x32, 0x86, 0x53, 0xE3, 0xAE, 0x57, 0x5E, 0x18, 0x1D, 0xB3, 0x89, 0xBE, 0x43, 0x97, 0x16, 0xF6, 0xE3, 0xF3, 0xE2, 0xDC, 0x61, 0xE4, 0xEC, 0xCF, 0xE5, 0x48, 0xAB, 0x7D, 0x71, 0x5E, -+ 0xAB, 0x49, 0xCF, 0xD7, 0x64, 0x1D, 0xC3, 0x7F, 0x5C, 0x0C, 0x0C, 0x34, 0x96, 0x5C, 0x06, 0xA1, 0x56, 0x70, 0x5F, 0x98, 0x69, 0x58, 0x79, 0x1A, 0x59, 0xCD, 0x5B, 0x48, 0x90, 0xD9, 0xA1, 0xB1, -+ 0xCF, 0x08, 0x54, 0x1A, 0x7A, 0x93, 0xD0, 0x65, 0xDC, 0xF3, 0xB9, 0xF6, 0xC5, 0x13, 0xC0, 0x27, 0x94, 0x37, 0xD4, 0xBD, 0xBE, 0x62, 0x71, 0x40, 0xD2, 0x94, 0x63, 0x26, 0x39, 0xB7, 0x46, 0x89, -+ 0x1C, 0xA9, 0x70, 0xDF, 0x6D, 0x73, 0x21, 0xF1, 0xA9, 0x13, 0xAD, 0x9B, 0xED, 0x3F, 0xE0, 0xBC, 0x02, 0xAF, 0xBB, 0x87, 0x20, 0xB7, 0x42, 0xEB, 0x40, 0x9E, 0xB8, 0x2C, 0x66, 0x96, 0x7F, 0x60, -+ 0xEB, 0xF4, 0xCE, 0xE2, 0x50, 0x8E, 0xF7, 0xF7, 0x03, 0x5B, 0x7F, 0xC7, 0xD9, 0x17, 0x8E, 0x73, 0xED, 0xA0, 0x52, 0x9B, 0xCC, 0x9E, 0xB2, 0x0B, 0x9C, 0xD7, 0x74, 0xC5, 0x64, 0x88, 0x2D, 0xD5, -+ 0x7C, 0xCF, 0xB5, 0x46, 0x63, 0xCF, 0xA8, 0x1B, 0x91, 0x4E, 0x14, 0xC4, 0xD7, 0xD7, 0x4B, 0xCE, 0x13, 0x9B, 0x7E, 0xC5, 0x3E, 0xA6, 0x1B, 0x0B, 0xF0, 0xDB, 0x61, 0xC7, 0x3A, 0x7A, 0x95, 0xF5, -+ 0x96, 0xE1, 0x28, 0xEC, 0xA7, 0xA8, 0xC9, 0xEB, 0x92, 0xC2, 0x94, 0x4E, 0xF5, 0x64, 0x94, 0x3E, 0xDA, 0xCF, 0xD4, 0x8A, 0x5A, 0x8B, 0xDC, 0x7D, 0x0F, 0xAB, 0xFA, 0xB6, 0xDA, 0xD3, 0xC5, 0xFE, -+ 0xEE, 0xB1, 0x39, 0x81, 0x8C, 0x85, 0x73, 0xA7, 0xBD, 0x75, 0x06, 0xB1, 0x8B, 0xFC, 0xE2, 0xBA, 0x15, 0x10, 0x5B, 0x7C, 0xEC, 0x83, 0x09, 0x6C, 0x8C, 0xAE, 0x99, 0xFB, 0xE5, 0xEA, 0x2C, 0x10, -+ 0xF1, 0xBC, 0xF3, 0xF1, 0x58, 0x26, 0xA0, 0xD8, 0xEC, 0xA9, 0x7C, 0x42, 0xBB, 0x17, 0xCB, 0x9B, 0xED, 0x21, 0x9A, 0x8C, 0xDA, 0x9A, 0x57, 0x62, 0x85, 0x7E, 0xFB, 0xA4, 0x3B, 0x7F, 0x34, 0x15, -+ 0x7A, 0xEB, 0x49, 0x2F, 0x81, 0xD2, 0xEA, 0x15, 0x6F, 0xF4, 0x99, 0x12, 0xA4, 0x04, 0x9B, 0xE9, 0x3E, 0x12, 0xA2, 0x26, 0x29, 0x5D, 0x8F, 0x68, 0x5C, 0x89, 0xBD, 0xA3, 0x83, 0x1E, 0xB7, 0x3B, -+ 0xE4, 0x65, 0x7D, 0xBE, 0x3B, 0x09, 0xC0, 0x9D, 0x1D, 0xAF, 0x94, 0x4C, 0x26, 0x64, 0xE9, 0xBD, 0xE9, 0x17, 0x41, 0x98, 0xFE, 0x3D, 0xBA, 0xE4, 0xDE, 0x09, 0x45, 0x22, 0x9E, 0xDD, 0xF5, 0x96, -+ 0x1B, 0x2F, 0x3D, 0x71, 0x9F, 0xAB, 0xAE, 0xB9, 0xBB, 0xD0, 0xD6, 0x3F, 0x6B, 0x74, 0xF1, 0x47, 0x70, 0x9C, 0xB2, 0xC5, 0xCD, 0xDD, 0x25, 0x35, 0x41, 0xA2, 0xD4, 0xDB, 0xFE, 0x2F, 0x61, 0x9F, -+ 0xB6, 0xC0, 0xD8, 0x0D, 0x1D, 0x3D, 0x84, 0x93, 0x98, 0xBD, 0xF1, 0xFB, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x0F, 0x16, 0x1D, 0x23, 0x2D, -+ }, -+ }, -+ { -+ .name = "Dilithium Round 3, Level 3 (6-5) KAT 0", -+ .version = 0, -+ .keyform = CK_IBM_DILITHIUM_KEYFORM_ROUND3_65, -+ .rho_len = 32, -+ .rho = { -+ 0x1C, 0x0E, 0xE1, 0x11, 0x1B, 0x08, 0x00, 0x3F, 0x28, 0xE6, 0x5E, 0x8B, 0x3B, 0xDE, 0xB0, 0x37, 0xCF, 0x8F, 0x22, 0x1D, 0xFC, 0xDA, 0xF5, 0x95, 0x0E, 0xDB, 0x38, 0xD5, 0x06, 0xD8, 0x5B, 0xEF, -+ }, -+ .seed_len = 32, -+ .seed = { -+ 0x39, 0x4D, 0x16, 0x95, 0x05, 0x9D, 0xFF, 0x40, 0xAE, 0x25, 0x6C, 0x5D, 0x5E, 0xDA, 0xBF, 0xB6, 0x9F, 0x5F, 0x40, 0xF3, 0x7A, 0x58, 0x8F, 0x50, 0x53, 0x2C, 0xA4, 0x08, 0xA8, 0x16, 0x8A, 0xB1, -+ }, -+ .tr_len = 32, -+ .tr = { -+ 0xE6, 0x4F, 0x14, 0x64, 0x27, 0x54, 0x3D, 0x8C, 0x36, 0xB3, 0xB6, 0x52, 0x26, 0x76, 0x9A, 0x22, 0x91, 0x1A, 0x5A, 0x31, 0x3E, 0xAC, 0x17, 0xC4, 0xAB, 0xA2, 0x52, 0x84, 0x51, 0x4F, 0xC6, 0x13, -+ }, -+ .s1_len = 640, -+ .s1 = { -+ 0x35, 0x78, 0x08, 0x33, 0x02, 0x23, 0x16, 0x43, 0x37, 0x65, 0x80, 0x75, 0x78, 0x71, 0x45, 0x24, 0x81, 0x01, 0x73, 0x15, 0x44, 0x83, 0x65, 0x26, 0x41, 0x33, 0x30, 0x22, 0x30, 0x26, 0x14, 0x73, -+ 0x70, 0x52, 0x21, 0x07, 0x81, 0x26, 0x50, 0x61, 0x85, 0x85, 0x07, 0x75, 0x46, 0x18, 0x58, 0x05, 0x48, 0x53, 0x30, 0x18, 0x70, 0x66, 0x47, 0x51, 0x82, 0x67, 0x73, 0x77, 0x33, 0x50, 0x02, 0x70, -+ 0x31, 0x28, 0x78, 0x82, 0x15, 0x80, 0x71, 0x40, 0x26, 0x73, 0x43, 0x20, 0x61, 0x62, 0x50, 0x61, 0x73, 0x71, 0x01, 0x03, 0x11, 0x45, 0x36, 0x81, 0x52, 0x30, 0x24, 0x65, 0x03, 0x48, 0x14, 0x37, -+ 0x08, 0x37, 0x18, 0x25, 0x50, 0x84, 0x06, 0x08, 0x60, 0x17, 0x62, 0x58, 0x31, 0x31, 0x28, 0x27, 0x00, 0x17, 0x18, 0x48, 0x16, 0x67, 0x31, 0x78, 0x61, 0x07, 0x37, 0x23, 0x55, 0x74, 0x47, 0x15, -+ 0x10, 0x10, 0x11, 0x21, 0x10, 0x66, 0x27, 0x42, 0x12, 0x08, 0x35, 0x46, 0x22, 0x85, 0x13, 0x13, 0x88, 0x16, 0x48, 0x86, 0x83, 0x35, 0x10, 0x47, 0x60, 0x26, 0x11, 0x83, 0x15, 0x74, 0x25, 0x00, -+ 0x74, 0x24, 0x40, 0x64, 0x25, 0x15, 0x86, 0x13, 0x65, 0x61, 0x37, 0x77, 0x11, 0x84, 0x78, 0x05, 0x08, 0x62, 0x43, 0x70, 0x64, 0x06, 0x85, 0x27, 0x63, 0x11, 0x50, 0x13, 0x56, 0x23, 0x21, 0x68, -+ 0x41, 0x41, 0x77, 0x24, 0x08, 0x48, 0x30, 0x87, 0x85, 0x75, 0x43, 0x85, 0x08, 0x63, 0x68, 0x54, 0x26, 0x84, 0x50, 0x56, 0x84, 0x37, 0x02, 0x40, 0x07, 0x16, 0x17, 0x84, 0x54, 0x38, 0x00, 0x61, -+ 0x27, 0x05, 0x82, 0x62, 0x06, 0x76, 0x52, 0x11, 0x12, 0x14, 0x83, 0x88, 0x06, 0x78, 0x14, 0x75, 0x55, 0x02, 0x12, 0x22, 0x85, 0x52, 0x31, 0x08, 0x45, 0x03, 0x70, 0x13, 0x64, 0x31, 0x80, 0x05, -+ 0x37, 0x68, 0x37, 0x65, 0x02, 0x46, 0x53, 0x15, 0x07, 0x60, 0x06, 0x25, 0x33, 0x12, 0x51, 0x20, 0x05, 0x41, 0x60, 0x63, 0x24, 0x23, 0x52, 0x41, 0x50, 0x77, 0x31, 0x45, 0x70, 0x33, 0x47, 0x65, -+ 0x64, 0x31, 0x23, 0x18, 0x03, 0x33, 0x65, 0x16, 0x75, 0x87, 0x14, 0x13, 0x04, 0x11, 0x17, 0x15, 0x54, 0x68, 0x12, 0x60, 0x53, 0x73, 0x42, 0x38, 0x82, 0x43, 0x27, 0x83, 0x37, 0x12, 0x22, 0x81, -+ 0x74, 0x81, 0x81, 0x20, 0x13, 0x63, 0x27, 0x64, 0x75, 0x10, 0x28, 0x03, 0x22, 0x68, 0x65, 0x08, 0x76, 0x55, 0x35, 0x63, 0x33, 0x81, 0x04, 0x47, 0x48, 0x58, 0x54, 0x30, 0x12, 0x43, 0x18, 0x08, -+ 0x38, 0x64, 0x38, 0x53, 0x83, 0x08, 0x41, 0x27, 0x04, 0x64, 0x64, 0x63, 0x34, 0x64, 0x61, 0x06, 0x80, 0x70, 0x60, 0x23, 0x75, 0x51, 0x68, 0x25, 0x74, 0x11, 0x52, 0x88, 0x22, 0x01, 0x57, 0x78, -+ 0x58, 0x33, 0x31, 0x34, 0x31, 0x55, 0x82, 0x84, 0x03, 0x16, 0x36, 0x01, 0x06, 0x48, 0x14, 0x80, 0x46, 0x43, 0x68, 0x46, 0x17, 0x57, 0x21, 0x36, 0x31, 0x65, 0x74, 0x65, 0x22, 0x15, 0x17, 0x71, -+ 0x32, 0x05, 0x10, 0x66, 0x46, 0x83, 0x16, 0x46, 0x71, 0x47, 0x28, 0x31, 0x35, 0x55, 0x14, 0x73, 0x32, 0x81, 0x82, 0x60, 0x73, 0x15, 0x54, 0x36, 0x87, 0x08, 0x03, 0x28, 0x43, 0x26, 0x24, 0x16, -+ 0x05, 0x32, 0x05, 0x20, 0x23, 0x67, 0x72, 0x58, 0x28, 0x18, 0x10, 0x85, 0x42, 0x67, 0x85, 0x15, 0x52, 0x80, 0x00, 0x72, 0x82, 0x27, 0x18, 0x31, 0x12, 0x08, 0x68, 0x37, 0x72, 0x44, 0x42, 0x05, -+ 0x48, 0x64, 0x72, 0x05, 0x35, 0x08, 0x61, 0x73, 0x86, 0x27, 0x12, 0x46, 0x77, 0x51, 0x08, 0x52, 0x76, 0x33, 0x40, 0x37, 0x34, 0x32, 0x11, 0x54, 0x24, 0x06, 0x54, 0x02, 0x34, 0x50, 0x80, 0x04, -+ 0x17, 0x72, 0x84, 0x62, 0x73, 0x61, 0x68, 0x68, 0x07, 0x81, 0x52, 0x46, 0x71, 0x06, 0x82, 0x55, 0x45, 0x81, 0x63, 0x62, 0x76, 0x41, 0x80, 0x57, 0x12, 0x44, 0x25, 0x57, 0x08, 0x04, 0x51, 0x06, -+ 0x63, 0x61, 0x15, 0x85, 0x86, 0x30, 0x46, 0x52, 0x07, 0x05, 0x32, 0x75, 0x02, 0x18, 0x22, 0x42, 0x83, 0x71, 0x02, 0x38, 0x52, 0x75, 0x28, 0x44, 0x20, 0x33, 0x00, 0x17, 0x23, 0x11, 0x14, 0x02, -+ 0x15, 0x76, 0x88, 0x38, 0x47, 0x62, 0x31, 0x85, 0x13, 0x52, 0x52, 0x10, 0x84, 0x38, 0x25, 0x55, 0x56, 0x74, 0x11, 0x44, 0x54, 0x67, 0x27, 0x85, 0x46, 0x58, 0x61, 0x70, 0x43, 0x07, 0x58, 0x80, -+ 0x06, 0x84, 0x55, 0x13, 0x53, 0x47, 0x81, 0x38, 0x12, 0x08, 0x00, 0x84, 0x31, 0x56, 0x22, 0x14, 0x66, 0x03, 0x15, 0x60, 0x01, 0x63, 0x68, 0x56, 0x36, 0x73, 0x61, 0x80, 0x80, 0x04, 0x55, 0x54, -+ }, -+ .s2_len = 768, -+ .s2 = { -+ 0x33, 0x73, 0x12, 0x58, 0x40, 0x31, 0x14, 0x80, 0x42, 0x03, 0x67, 0x33, 0x01, 0x82, 0x71, 0x55, 0x60, 0x65, 0x60, 0x34, 0x40, 0x51, 0x44, 0x34, 0x55, 0x48, 0x51, 0x12, 0x23, 0x76, 0x45, 0x10, -+ 0x64, 0x33, 0x73, 0x25, 0x38, 0x23, 0x38, 0x06, 0x24, 0x51, 0x61, 0x70, 0x81, 0x54, 0x11, 0x67, 0x17, 0x32, 0x00, 0x85, 0x32, 0x60, 0x40, 0x43, 0x71, 0x06, 0x80, 0x37, 0x37, 0x60, 0x70, 0x86, -+ 0x40, 0x87, 0x00, 0x03, 0x52, 0x45, 0x71, 0x48, 0x26, 0x22, 0x03, 0x50, 0x53, 0x56, 0x66, 0x03, 0x72, 0x18, 0x01, 0x37, 0x10, 0x37, 0x10, 0x36, 0x52, 0x78, 0x43, 0x28, 0x24, 0x64, 0x23, 0x20, -+ 0x47, 0x64, 0x23, 0x84, 0x00, 0x00, 0x67, 0x43, 0x64, 0x56, 0x52, 0x26, 0x21, 0x76, 0x65, 0x21, 0x24, 0x13, 0x88, 0x73, 0x47, 0x65, 0x08, 0x43, 0x12, 0x17, 0x01, 0x64, 0x71, 0x46, 0x54, 0x03, -+ 0x87, 0x24, 0x41, 0x77, 0x74, 0x13, 0x76, 0x78, 0x55, 0x21, 0x64, 0x11, 0x17, 0x31, 0x60, 0x50, 0x48, 0x26, 0x04, 0x14, 0x84, 0x74, 0x66, 0x38, 0x03, 0x35, 0x15, 0x58, 0x01, 0x73, 0x51, 0x26, -+ 0x21, 0x33, 0x62, 0x22, 0x27, 0x10, 0x63, 0x45, 0x60, 0x16, 0x57, 0x20, 0x77, 0x85, 0x48, 0x32, 0x72, 0x48, 0x31, 0x56, 0x16, 0x78, 0x34, 0x56, 0x40, 0x57, 0x68, 0x67, 0x34, 0x58, 0x35, 0x25, -+ 0x35, 0x20, 0x81, 0x55, 0x65, 0x48, 0x10, 0x32, 0x05, 0x33, 0x40, 0x16, 0x60, 0x74, 0x23, 0x71, 0x50, 0x16, 0x32, 0x53, 0x34, 0x66, 0x72, 0x70, 0x81, 0x11, 0x18, 0x24, 0x37, 0x32, 0x13, 0x11, -+ 0x54, 0x42, 0x40, 0x82, 0x61, 0x37, 0x75, 0x04, 0x67, 0x10, 0x08, 0x02, 0x61, 0x38, 0x68, 0x50, 0x71, 0x28, 0x37, 0x52, 0x66, 0x72, 0x24, 0x23, 0x08, 0x02, 0x10, 0x05, 0x01, 0x55, 0x20, 0x48, -+ 0x37, 0x44, 0x37, 0x71, 0x16, 0x42, 0x01, 0x23, 0x16, 0x71, 0x07, 0x82, 0x38, 0x08, 0x07, 0x10, 0x11, 0x24, 0x68, 0x25, 0x82, 0x40, 0x18, 0x15, 0x85, 0x18, 0x74, 0x20, 0x85, 0x38, 0x25, 0x83, -+ 0x10, 0x66, 0x75, 0x13, 0x12, 0x52, 0x85, 0x27, 0x65, 0x25, 0x60, 0x31, 0x47, 0x81, 0x62, 0x13, 0x81, 0x53, 0x47, 0x04, 0x22, 0x61, 0x05, 0x71, 0x55, 0x67, 0x44, 0x68, 0x20, 0x05, 0x45, 0x50, -+ 0x51, 0x48, 0x41, 0x13, 0x03, 0x83, 0x02, 0x41, 0x47, 0x47, 0x15, 0x62, 0x72, 0x02, 0x16, 0x53, 0x21, 0x03, 0x03, 0x87, 0x36, 0x03, 0x48, 0x67, 0x51, 0x76, 0x65, 0x27, 0x21, 0x42, 0x17, 0x26, -+ 0x25, 0x76, 0x65, 0x36, 0x12, 0x11, 0x12, 0x16, 0x87, 0x48, 0x45, 0x40, 0x33, 0x42, 0x68, 0x35, 0x44, 0x40, 0x68, 0x13, 0x60, 0x50, 0x31, 0x08, 0x17, 0x43, 0x56, 0x75, 0x06, 0x34, 0x61, 0x84, -+ 0x75, 0x57, 0x58, 0x58, 0x65, 0x44, 0x84, 0x07, 0x62, 0x31, 0x86, 0x70, 0x34, 0x33, 0x67, 0x58, 0x66, 0x67, 0x73, 0x20, 0x75, 0x17, 0x10, 0x36, 0x05, 0x27, 0x37, 0x24, 0x12, 0x20, 0x17, 0x38, -+ 0x87, 0x54, 0x40, 0x32, 0x26, 0x30, 0x62, 0x13, 0x54, 0x18, 0x36, 0x81, 0x55, 0x77, 0x32, 0x00, 0x10, 0x03, 0x65, 0x18, 0x57, 0x41, 0x86, 0x02, 0x14, 0x44, 0x33, 0x41, 0x02, 0x37, 0x55, 0x63, -+ 0x58, 0x75, 0x02, 0x61, 0x88, 0x64, 0x18, 0x51, 0x76, 0x24, 0x15, 0x85, 0x07, 0x11, 0x80, 0x35, 0x41, 0x51, 0x57, 0x42, 0x42, 0x58, 0x54, 0x56, 0x35, 0x45, 0x15, 0x57, 0x07, 0x63, 0x86, 0x77, -+ 0x24, 0x00, 0x17, 0x67, 0x83, 0x86, 0x86, 0x25, 0x88, 0x17, 0x75, 0x08, 0x61, 0x23, 0x60, 0x60, 0x65, 0x07, 0x33, 0x35, 0x06, 0x60, 0x52, 0x75, 0x02, 0x47, 0x24, 0x33, 0x64, 0x51, 0x35, 0x45, -+ 0x52, 0x55, 0x41, 0x48, 0x60, 0x42, 0x16, 0x43, 0x15, 0x63, 0x33, 0x16, 0x55, 0x67, 0x60, 0x70, 0x34, 0x26, 0x77, 0x08, 0x07, 0x60, 0x55, 0x30, 0x63, 0x50, 0x13, 0x37, 0x70, 0x77, 0x01, 0x37, -+ 0x45, 0x72, 0x74, 0x51, 0x28, 0x72, 0x83, 0x64, 0x74, 0x77, 0x80, 0x27, 0x30, 0x36, 0x44, 0x23, 0x10, 0x55, 0x24, 0x15, 0x43, 0x11, 0x63, 0x14, 0x65, 0x33, 0x63, 0x12, 0x11, 0x84, 0x63, 0x12, -+ 0x63, 0x88, 0x37, 0x62, 0x67, 0x48, 0x35, 0x13, 0x86, 0x35, 0x17, 0x83, 0x12, 0x58, 0x14, 0x47, 0x88, 0x56, 0x08, 0x48, 0x01, 0x42, 0x71, 0x64, 0x77, 0x53, 0x64, 0x73, 0x54, 0x66, 0x05, 0x56, -+ 0x60, 0x52, 0x37, 0x00, 0x46, 0x40, 0x31, 0x10, 0x55, 0x50, 0x45, 0x36, 0x48, 0x42, 0x34, 0x06, 0x61, 0x11, 0x75, 0x52, 0x61, 0x58, 0x52, 0x15, 0x73, 0x57, 0x31, 0x56, 0x15, 0x87, 0x78, 0x74, -+ 0x45, 0x03, 0x87, 0x20, 0x54, 0x56, 0x11, 0x66, 0x22, 0x04, 0x46, 0x14, 0x14, 0x61, 0x83, 0x00, 0x06, 0x86, 0x64, 0x06, 0x00, 0x47, 0x37, 0x44, 0x22, 0x50, 0x56, 0x01, 0x04, 0x57, 0x73, 0x50, -+ 0x74, 0x87, 0x02, 0x66, 0x37, 0x48, 0x68, 0x48, 0x02, 0x63, 0x28, 0x52, 0x63, 0x58, 0x11, 0x30, 0x44, 0x28, 0x68, 0x32, 0x61, 0x10, 0x61, 0x88, 0x26, 0x07, 0x00, 0x73, 0x38, 0x62, 0x55, 0x27, -+ 0x15, 0x53, 0x45, 0x32, 0x14, 0x25, 0x73, 0x23, 0x12, 0x21, 0x87, 0x86, 0x55, 0x67, 0x25, 0x67, 0x46, 0x74, 0x72, 0x81, 0x44, 0x54, 0x64, 0x15, 0x77, 0x41, 0x07, 0x80, 0x60, 0x56, 0x13, 0x16, -+ 0x15, 0x40, 0x44, 0x63, 0x47, 0x53, 0x30, 0x77, 0x61, 0x62, 0x50, 0x13, 0x38, 0x41, 0x47, 0x42, 0x66, 0x70, 0x52, 0x06, 0x70, 0x81, 0x25, 0x43, 0x17, 0x77, 0x70, 0x15, 0x22, 0x21, 0x82, 0x50, -+ }, -+ .t0_len = 2496, -+ .t0 = { -+ 0x01, 0x31, 0x73, 0x16, 0x9D, 0xB8, 0x08, 0x6B, 0x12, 0x27, 0x01, 0x70, 0x6A, 0xE4, 0x9B, 0x99, 0x30, 0x5E, 0xE6, 0xD0, 0x16, 0xF1, 0x6F, 0x9F, 0xAC, 0xC1, 0xF8, 0x35, 0x29, 0x8B, 0x41, 0xE2, -+ 0x16, 0x64, 0x20, 0x60, 0x05, 0xCE, 0xB9, 0x81, 0xA3, 0x5F, 0x18, 0x65, 0x1C, 0xDB, 0x90, 0xE6, 0x8C, 0x1F, 0x95, 0x0B, 0x05, 0x9F, 0x73, 0xD6, 0xD3, 0x14, 0x3A, 0x1F, 0x47, 0xAA, 0x21, 0xD8, -+ 0x0A, 0x05, 0xFA, 0xF5, 0xD3, 0xA4, 0x0F, 0x67, 0x14, 0x8D, 0x3A, 0x89, 0xA9, 0xFD, 0xA8, 0x03, 0x64, 0xD5, 0x7C, 0x7B, 0x8F, 0x68, 0x05, 0x8A, 0x25, 0xD0, 0x84, 0x98, 0xD9, 0xA9, 0xC3, 0x78, -+ 0xC9, 0x81, 0x85, 0xDB, 0x13, 0x25, 0x91, 0x59, 0xCA, 0xC4, 0x76, 0x9C, 0x34, 0xA0, 0x80, 0x23, 0xA3, 0x38, 0x8C, 0x35, 0x05, 0x40, 0x6F, 0xB2, 0x1C, 0x69, 0xEE, 0xC1, 0x2D, 0xAC, 0x95, 0xA3, -+ 0xC9, 0xBA, 0x61, 0x18, 0x52, 0x37, 0xF0, 0xFF, 0x1E, 0x0E, 0x05, 0xF1, 0xA6, 0xF5, 0xA0, 0xC0, 0x90, 0x90, 0x10, 0x06, 0x65, 0xA1, 0xAD, 0x3A, 0xFB, 0x10, 0x76, 0x84, 0x7B, 0x23, 0x2E, 0xEE, -+ 0xA7, 0x84, 0x09, 0xBD, 0x90, 0x55, 0xDB, 0x57, 0xC1, 0xB3, 0x1E, 0x28, 0xA0, 0x1D, 0x09, 0x99, 0x90, 0x35, 0xBD, 0xFC, 0x65, 0x7A, 0x61, 0x04, 0x01, 0x03, 0xEC, 0xEB, 0xDC, 0x79, 0x34, 0x09, -+ 0x73, 0x37, 0x34, 0xD9, 0x34, 0x2C, 0xC5, 0xA0, 0x69, 0xE0, 0x70, 0xC2, 0x42, 0x1D, 0xDE, 0x11, 0xC4, 0x9E, 0x17, 0x2D, 0xBE, 0x7F, 0xEA, 0xF9, 0xDE, 0xDD, 0xFB, 0x3D, 0xA5, 0xDA, 0xA6, 0xB3, -+ 0xDD, 0x13, 0x20, 0x0B, 0x09, 0x04, 0x2E, 0x14, 0x4E, 0xEA, 0x95, 0x1B, 0x43, 0xDA, 0x48, 0x15, 0x3C, 0x1F, 0x1D, 0x5C, 0x07, 0xFC, 0xF4, 0x73, 0xFA, 0x7F, 0x32, 0x1E, 0x72, 0x53, 0x45, 0x77, -+ 0xC8, 0x95, 0x15, 0x1B, 0x46, 0xE4, 0x83, 0x31, 0xDD, 0xE6, 0x1D, 0xA4, 0x5F, 0x86, 0x09, 0xAC, 0x59, 0x58, 0x18, 0x14, 0x66, 0x6E, 0x16, 0x58, 0xB4, 0x91, 0x14, 0x52, 0x4B, 0xA3, 0x84, 0x0C, -+ 0x6B, 0xC5, 0x59, 0x65, 0x51, 0xAE, 0xF4, 0x24, 0x12, 0xC8, 0xAA, 0xCC, 0xDD, 0x8E, 0xF6, 0x9E, 0x46, 0x38, 0x0E, 0x6D, 0xEF, 0x60, 0xFD, 0x91, 0x22, 0x8B, 0x99, 0xCB, 0x51, 0x1D, 0x68, 0xEF, -+ 0x66, 0x31, 0x74, 0x8A, 0x05, 0x48, 0x08, 0x3A, 0x21, 0x54, 0x45, 0xEC, 0x54, 0x69, 0x34, 0x71, 0xA8, 0x31, 0x04, 0x2C, 0xF4, 0x1D, 0x09, 0xAF, 0x89, 0x81, 0x19, 0xB0, 0xFC, 0x64, 0x6E, 0x48, -+ 0x45, 0x39, 0xC8, 0xC3, 0x2D, 0x5D, 0xC2, 0x4F, 0x94, 0x39, 0xD3, 0x3E, 0xEE, 0xA0, 0x33, 0xA4, 0x08, 0x15, 0x50, 0xFD, 0xB0, 0xB0, 0x89, 0x23, 0xDB, 0xA5, 0xD4, 0x4A, 0x1A, 0x87, 0x6F, 0xE7, -+ 0xEE, 0x43, 0x20, 0xBF, 0x02, 0xF9, 0xBE, 0x26, 0xF4, 0x18, 0xF3, 0x09, 0xFA, 0x11, 0xFC, 0xD0, 0xC8, 0x64, 0xA7, 0xAA, 0x34, 0x11, 0x50, 0x83, 0xC1, 0xEA, 0x77, 0x53, 0x45, 0xAC, 0x05, 0x48, -+ 0xC8, 0x77, 0xC6, 0x85, 0xEA, 0x8C, 0x91, 0xB9, 0x24, 0xAF, 0x4F, 0x60, 0x7E, 0xF3, 0x7A, 0x02, 0x08, 0xE2, 0x13, 0x09, 0xAB, 0x6D, 0x0F, 0x2F, 0x8A, 0x4E, 0xAA, 0x04, 0x51, 0xFF, 0x4A, 0x47, -+ 0xE6, 0xF4, 0x82, 0x95, 0x8D, 0x81, 0xA1, 0x66, 0xA6, 0xA0, 0x8A, 0x6A, 0x10, 0xFC, 0x8F, 0x9A, 0xDA, 0x42, 0xB6, 0x4A, 0x12, 0xB9, 0x35, 0x7D, 0x59, 0x8A, 0x36, 0x64, 0xE9, 0xDF, 0x13, 0x75, -+ 0x5C, 0x10, 0xFF, 0xD7, 0x17, 0x7E, 0x59, 0x4D, 0xFC, 0xBC, 0xFB, 0x5D, 0x11, 0xB6, 0xAD, 0xB1, 0x60, 0x74, 0x45, 0x47, 0x9A, 0x5D, 0xB1, 0xAD, 0x8C, 0xA6, 0xD9, 0x15, 0xF8, 0x97, 0x95, 0xD2, -+ 0x40, 0xCB, 0xED, 0xFA, 0xD2, 0x53, 0x9D, 0x10, 0x51, 0x8E, 0x53, 0xCC, 0x45, 0x0D, 0x6F, 0xC5, 0x38, 0x5A, 0xD6, 0xD7, 0x6B, 0x78, 0x30, 0xF1, 0x38, 0x28, 0x12, 0x06, 0x45, 0xE3, 0xA0, 0xA5, -+ 0xDC, 0xDE, 0xAF, 0x15, 0xF1, 0x96, 0x8E, 0x64, 0xB3, 0xB1, 0xCE, 0xAF, 0x53, 0x6C, 0xAA, 0x29, 0x53, 0xD1, 0x61, 0xC7, 0x55, 0x28, 0xC3, 0xFA, 0x84, 0x93, 0xE0, 0xC1, 0x77, 0xAE, 0x80, 0x7C, -+ 0xED, 0x37, 0x64, 0x8A, 0x82, 0xC9, 0xBE, 0x8B, 0xA9, 0x70, 0x29, 0x6D, 0x54, 0x3F, 0x6F, 0xBD, 0x67, 0x24, 0xA9, 0x9A, 0x68, 0xD2, 0xF6, 0x8C, 0x1F, 0xD3, 0x33, 0xF9, 0xDE, 0xF8, 0x52, 0x6D, -+ 0xB7, 0x83, 0x64, 0x55, 0xB3, 0x13, 0xE6, 0xBC, 0x36, 0x61, 0x78, 0xC9, 0xC5, 0x77, 0x21, 0x60, 0x1E, 0xC0, 0x33, 0x50, 0x54, 0xF0, 0x67, 0xB7, 0x8E, 0x66, 0x3A, 0x05, 0x8D, 0xBD, 0xA1, 0xC1, -+ 0x2D, 0x80, 0xA3, 0x92, 0xF8, 0x9C, 0x0A, 0xD9, 0xE2, 0xA3, 0xB2, 0xEA, 0x17, 0xE9, 0xC9, 0xA3, 0xB1, 0x4D, 0x17, 0x68, 0x22, 0xEE, 0xAC, 0x5F, 0xB5, 0xFF, 0x7D, 0x4C, 0x87, 0xD7, 0x60, 0x80, -+ 0xD2, 0xD4, 0x2D, 0x9A, 0xA4, 0xC9, 0x51, 0xF4, 0xCA, 0xF1, 0x1A, 0x24, 0x4E, 0xDA, 0x71, 0x1D, 0x12, 0x0A, 0x2E, 0xA3, 0x21, 0xD1, 0x55, 0x1D, 0x86, 0xCA, 0x92, 0x65, 0xE9, 0xCD, 0x5F, 0xA9, -+ 0x59, 0x1D, 0x88, 0x0E, 0x40, 0x3B, 0x68, 0x44, 0xF0, 0x51, 0xDC, 0x04, 0x87, 0x99, 0x72, 0xC8, 0x63, 0xB9, 0x7C, 0x72, 0xB4, 0x09, 0xC1, 0x9D, 0x5E, 0xBE, 0xE8, 0xAB, 0x58, 0xC6, 0xE7, 0xB3, -+ 0x93, 0x8A, 0x68, 0xA9, 0xCA, 0xD7, 0x5D, 0x80, 0xC6, 0xFF, 0xC4, 0xF2, 0x22, 0x54, 0xFF, 0x44, 0x20, 0xC6, 0x06, 0xAD, 0x12, 0x0C, 0xC2, 0x03, 0x46, 0xA7, 0xE7, 0x32, 0x4E, 0x78, 0xC8, 0x62, -+ 0xE0, 0xDE, 0xE1, 0x61, 0xA6, 0x4F, 0x44, 0x91, 0x7D, 0xB0, 0xC3, 0x8C, 0x1F, 0x79, 0xC9, 0x69, 0x22, 0x0D, 0x20, 0x2F, 0x88, 0x02, 0xD0, 0xF9, 0xD7, 0xAB, 0xFB, 0x2D, 0xE4, 0x34, 0xB1, 0xC5, -+ 0x3D, 0xAB, 0xB5, 0x75, 0x75, 0xEE, 0xBB, 0xBF, 0x31, 0xCF, 0xB2, 0x92, 0x48, 0x72, 0xFA, 0x01, 0x47, 0x3B, 0x39, 0x76, 0xAE, 0xAD, 0xC9, 0x96, 0x99, 0xB1, 0x38, 0x20, 0xFA, 0x08, 0x68, 0xF2, -+ 0xC9, 0xFD, 0x0D, 0x35, 0x2E, 0x25, 0x93, 0x27, 0x3C, 0xD6, 0x21, 0xB1, 0x97, 0x4F, 0xFA, 0x61, 0x87, 0xFA, 0x05, 0xC4, 0x11, 0x8D, 0x45, 0x17, 0xC9, 0x34, 0x15, 0x1C, 0x1F, 0xA3, 0x4B, 0xEC, -+ 0x3E, 0xD3, 0x63, 0x95, 0x98, 0xCB, 0xA2, 0x4E, 0x28, 0x22, 0x9C, 0xE9, 0xFD, 0x3B, 0x1D, 0xB4, 0x96, 0x9C, 0x12, 0xEE, 0x49, 0xE1, 0x8B, 0x36, 0xCE, 0x2B, 0x91, 0x45, 0xAA, 0xC7, 0x54, 0x28, -+ 0xDF, 0xFA, 0x14, 0x53, 0x02, 0xF4, 0x1D, 0x9E, 0x33, 0x94, 0xF3, 0x8D, 0x3F, 0x3C, 0x03, 0x34, 0xC4, 0x77, 0x4F, 0x1E, 0x94, 0x29, 0x6D, 0xE3, 0x6D, 0xC6, 0xE4, 0x30, 0xE4, 0xC0, 0xA5, 0x37, -+ 0xE6, 0x8B, 0xDD, 0x41, 0xAF, 0x04, 0x21, 0x19, 0x3B, 0x16, 0xAB, 0x18, 0x91, 0xFA, 0x83, 0x6C, 0xBC, 0x36, 0x7B, 0x40, 0x37, 0x05, 0xAB, 0xA5, 0xD2, 0xF9, 0xF2, 0xA4, 0xC2, 0xF2, 0x75, 0xEC, -+ 0x01, 0x0B, 0x2E, 0xAB, 0x84, 0x09, 0x5A, 0x56, 0x9D, 0xBA, 0xE4, 0x45, 0x7C, 0xC2, 0xAC, 0x1C, 0xFE, 0xB1, 0xED, 0xA4, 0x3C, 0x3E, 0x28, 0x19, 0x27, 0x3C, 0x48, 0x7A, 0xCB, 0xEB, 0xFA, 0x0A, -+ 0x0E, 0xD1, 0xCC, 0x46, 0x67, 0xA6, 0xF5, 0x77, 0xF6, 0x2D, 0xFB, 0x1B, 0xC8, 0xFE, 0xAF, 0xD8, 0x6D, 0x90, 0x10, 0x8E, 0x16, 0xB8, 0xB0, 0xE6, 0xC2, 0x67, 0x86, 0x86, 0xC9, 0x28, 0xA6, 0x68, -+ 0xBB, 0x98, 0x57, 0xFF, 0xB2, 0x8D, 0xE9, 0x05, 0x45, 0xCD, 0x44, 0x37, 0xDD, 0x32, 0xCC, 0xCC, 0xC6, 0xED, 0x58, 0xFB, 0x46, 0xFB, 0xF8, 0x5E, 0x0A, 0xEC, 0x0C, 0x81, 0x4E, 0x53, 0x62, 0x45, -+ 0x25, 0x2B, 0x80, 0x29, 0xF0, 0xA2, 0xAB, 0x44, 0xB9, 0x02, 0x7A, 0x7E, 0x35, 0xA9, 0x41, 0xFA, 0x11, 0x3C, 0x8D, 0x82, 0x97, 0x4E, 0xA2, 0x2D, 0xF0, 0x2D, 0x84, 0xE5, 0x32, 0x8C, 0xEA, 0x83, -+ 0xD1, 0x2D, 0x39, 0x9C, 0x7F, 0x02, 0x59, 0x05, 0x5F, 0x4B, 0x3A, 0xD7, 0x07, 0xE7, 0xB3, 0xE5, 0x37, 0xB9, 0x3D, 0xEA, 0x1A, 0x06, 0x6B, 0xDC, 0x77, 0x5F, 0xC7, 0xD1, 0xA6, 0xF0, 0xFE, 0x29, -+ 0xDD, 0xAF, 0xA9, 0xA7, 0xDA, 0x63, 0x0A, 0x46, 0x7E, 0xF6, 0xCB, 0xF5, 0xCC, 0xDF, 0xFD, 0x79, 0xF1, 0xC8, 0xBB, 0x6B, 0xB3, 0x88, 0x20, 0x35, 0xC7, 0x3C, 0xDF, 0x7E, 0xCF, 0xFB, 0x53, 0xC7, -+ 0x12, 0xA7, 0xC7, 0xEA, 0xA5, 0x97, 0x65, 0xEF, 0xA9, 0x60, 0xBF, 0x21, 0xE2, 0x5A, 0x67, 0x03, 0xFB, 0x30, 0x4F, 0x07, 0x73, 0x9F, 0xEB, 0xC6, 0x3F, 0x49, 0x6B, 0x13, 0xCC, 0xAA, 0x07, 0x73, -+ 0x38, 0xA0, 0xB9, 0xA9, 0x76, 0xA9, 0xF0, 0xFC, 0x57, 0x42, 0xD8, 0x5C, 0x4A, 0xF4, 0x01, 0xA4, 0xCE, 0x34, 0x1B, 0x47, 0xBE, 0x25, 0x94, 0xFF, 0x7E, 0x30, 0x19, 0xA0, 0xE0, 0x64, 0x53, 0x5F, -+ 0x9D, 0x93, 0x95, 0xCC, 0x74, 0xA6, 0xA6, 0xF0, 0x0E, 0x0C, 0x4E, 0x35, 0x30, 0xA7, 0xFE, 0x93, 0x10, 0xCE, 0x30, 0xB6, 0x92, 0x2D, 0x04, 0xFD, 0xE0, 0xAA, 0x74, 0x9C, 0xC3, 0xFD, 0xED, 0xB4, -+ 0xD8, 0x70, 0x8C, 0x1F, 0x69, 0x68, 0xBB, 0xED, 0xDD, 0xD5, 0x83, 0x3B, 0x29, 0x9D, 0x79, 0xD6, 0x14, 0x28, 0x18, 0x00, 0x99, 0xB0, 0xA9, 0x46, 0xA5, 0xD7, 0x90, 0x85, 0xDF, 0x7F, 0x87, 0x2C, -+ 0xBD, 0xD2, 0x19, 0xE6, 0xB8, 0xEF, 0x8B, 0x8A, 0xB5, 0xC1, 0xA1, 0x49, 0xE6, 0xE1, 0x5E, 0xF2, 0x82, 0x86, 0x54, 0xFA, 0xBE, 0xC2, 0x49, 0xAF, 0xAA, 0xC4, 0xDC, 0x0B, 0x3B, 0x54, 0x23, 0x34, -+ 0x16, 0x2F, 0xB0, 0x98, 0x00, 0xB6, 0xC3, 0x6C, 0xC9, 0x0F, 0x2A, 0x10, 0x65, 0x58, 0xBA, 0xE2, 0x19, 0x8F, 0xA7, 0xD1, 0xE2, 0xD7, 0x30, 0xDE, 0x46, 0xE3, 0x55, 0xAE, 0xA9, 0x32, 0x48, 0xE5, -+ 0x3A, 0xB2, 0x1B, 0x51, 0x8E, 0xC9, 0x9D, 0x5F, 0x3B, 0x02, 0x11, 0x96, 0xA0, 0xF6, 0x14, 0xA4, 0x6B, 0x94, 0x75, 0x62, 0x12, 0x34, 0x73, 0x3A, 0x28, 0xA4, 0x65, 0xCC, 0x5A, 0x7F, 0xD4, 0x32, -+ 0xC3, 0x62, 0x58, 0x12, 0xAA, 0xBB, 0xB4, 0x2D, 0x2D, 0x9C, 0xBE, 0xF1, 0x6C, 0xBE, 0xD9, 0x36, 0x72, 0x02, 0xB0, 0x28, 0x94, 0xD0, 0x6B, 0xB8, 0x01, 0xBD, 0xA8, 0x47, 0x2B, 0x99, 0x18, 0xB7, -+ 0xD7, 0x24, 0xE3, 0x65, 0x57, 0xDB, 0xE6, 0xB7, 0x63, 0x3A, 0x5F, 0xD2, 0x2D, 0x0E, 0x33, 0x6E, 0x55, 0x57, 0xAF, 0xC0, 0x18, 0xC8, 0x12, 0xE9, 0xE6, 0xA3, 0x5B, 0xFD, 0x8C, 0x60, 0xAB, 0x38, -+ 0x2E, 0x14, 0xFF, 0x51, 0x14, 0x2B, 0x2D, 0x2C, 0x75, 0xA7, 0x67, 0xF3, 0x24, 0x13, 0xBA, 0x38, 0x48, 0x75, 0x58, 0xF9, 0x34, 0x5C, 0xBE, 0x6F, 0xD1, 0xD6, 0xB7, 0x8C, 0x2E, 0x62, 0x2F, 0x3B, -+ 0x97, 0x62, 0x30, 0xF9, 0x9D, 0x6C, 0xBA, 0xF0, 0xBB, 0xD1, 0x49, 0x49, 0x51, 0x0A, 0x52, 0x64, 0x4E, 0xF3, 0xF3, 0x07, 0x88, 0x65, 0x03, 0x7A, 0x1C, 0x10, 0xF4, 0x7B, 0x59, 0x54, 0x66, 0x99, -+ 0xE1, 0xBD, 0x53, 0x9C, 0x7D, 0xDC, 0xC0, 0x3F, 0x71, 0xA0, 0x15, 0x8E, 0xA9, 0xF0, 0x17, 0x8E, 0x18, 0x7B, 0xB6, 0xD4, 0x94, 0x40, 0xDF, 0x2B, 0x10, 0x63, 0x0F, 0xBE, 0x2F, 0xEB, 0x50, 0x97, -+ 0xE4, 0x7F, 0x28, 0x57, 0x11, 0xCA, 0x6F, 0x83, 0x5A, 0x10, 0xD3, 0xAA, 0x75, 0xC0, 0x3C, 0x41, 0x84, 0xC0, 0x3E, 0xF3, 0x07, 0x5D, 0x49, 0xDC, 0xB2, 0x17, 0x7A, 0xBD, 0x53, 0xAD, 0x73, 0x99, -+ 0xD2, 0x90, 0xEA, 0x69, 0x1D, 0x64, 0x73, 0x29, 0x05, 0x63, 0x40, 0xE8, 0xC8, 0x36, 0xE9, 0x75, 0x0F, 0xD8, 0x81, 0xDC, 0xE3, 0x09, 0xD3, 0x09, 0xA9, 0x5B, 0x82, 0x49, 0x2D, 0x4B, 0xDC, 0x15, -+ 0xEC, 0xF8, 0xC7, 0xF5, 0xD3, 0xB9, 0xDD, 0x27, 0x55, 0x48, 0x51, 0x2D, 0xB5, 0xEF, 0x80, 0xCD, 0x40, 0x9E, 0xD3, 0x2B, 0x51, 0x48, 0xB8, 0x2B, 0xF2, 0x40, 0xA7, 0xDC, 0x72, 0xA1, 0x85, 0x23, -+ 0xD8, 0x08, 0xB7, 0xA4, 0xF9, 0xE2, 0x54, 0x79, 0x9E, 0x17, 0x27, 0x8F, 0xA8, 0x8D, 0xAE, 0xBC, 0x94, 0x46, 0x32, 0xE8, 0x3F, 0x86, 0x09, 0xD6, 0x81, 0xAB, 0x46, 0x35, 0x13, 0x02, 0x3D, 0x67, -+ 0xCD, 0x51, 0xB1, 0x53, 0xF0, 0x96, 0x29, 0x12, 0xDD, 0x64, 0xAB, 0x8F, 0x65, 0x29, 0xDC, 0x22, 0xAA, 0x89, 0xE5, 0x72, 0xA7, 0xF8, 0x9C, 0xB9, 0x7A, 0x8F, 0x45, 0x09, 0x31, 0x9D, 0x22, 0x3B, -+ 0xB2, 0x99, 0x74, 0x95, 0x17, 0x16, 0xFD, 0x31, 0x77, 0x14, 0x0A, 0x31, 0xEA, 0x20, 0x04, 0x8B, 0xAF, 0x0F, 0xCA, 0x23, 0x0C, 0xEF, 0x21, 0x96, 0x7A, 0xBD, 0x83, 0x30, 0x9A, 0x4F, 0xF7, 0xE3, -+ 0x5E, 0x88, 0x78, 0x4D, 0xCA, 0x77, 0xAC, 0x07, 0x90, 0x20, 0xEC, 0x0C, 0xA6, 0xDD, 0xEF, 0xBC, 0xBB, 0x7E, 0x31, 0x73, 0x29, 0x31, 0x46, 0x65, 0xD7, 0xC5, 0x1F, 0x63, 0x1F, 0x68, 0x1B, 0x60, -+ 0x03, 0x64, 0xE4, 0x75, 0x74, 0xF2, 0x52, 0xBA, 0xD6, 0x39, 0x6B, 0x3F, 0x5B, 0x17, 0xAD, 0xC2, 0x20, 0x96, 0x6A, 0x93, 0xCE, 0x8F, 0x31, 0x5A, 0x2F, 0x83, 0x06, 0x8D, 0x2E, 0xA0, 0x69, 0x52, -+ 0xE6, 0xEB, 0xD8, 0x02, 0x47, 0x3A, 0x22, 0x64, 0xEF, 0xA4, 0x05, 0xB3, 0xE4, 0x91, 0xBE, 0x77, 0x6C, 0x50, 0x40, 0x6E, 0x11, 0x50, 0xC5, 0x6B, 0x89, 0x4C, 0xF8, 0x64, 0x54, 0x6B, 0x0C, 0x7A, -+ 0x65, 0xE3, 0xF1, 0xA2, 0xBE, 0xFE, 0xF2, 0xA9, 0x99, 0x0B, 0xAF, 0xE7, 0x0B, 0x6C, 0xA9, 0xF9, 0x1A, 0x8F, 0x3D, 0xD2, 0x13, 0x07, 0xA3, 0x9A, 0x2A, 0xFB, 0xDF, 0xBD, 0xE9, 0xB7, 0xCA, 0x3D, -+ 0x78, 0x28, 0xB1, 0x3F, 0x49, 0xDE, 0xCD, 0x72, 0x9C, 0x00, 0x39, 0xE9, 0x4E, 0xBB, 0x7B, 0x4B, 0xDA, 0x09, 0xB3, 0x50, 0x55, 0x29, 0xA1, 0x2C, 0xB1, 0xE2, 0xFD, 0x79, 0xB9, 0xE5, 0x08, 0x7C, -+ 0xD7, 0xC3, 0xBC, 0x05, 0xF7, 0xCF, 0xFB, 0xBA, 0x93, 0x2A, 0x7B, 0xFF, 0x8E, 0x67, 0x55, 0x5F, 0xEE, 0x03, 0x04, 0xD8, 0x90, 0x31, 0x3F, 0x86, 0xE1, 0x89, 0x25, 0x69, 0xE2, 0xD6, 0xF1, 0x4A, -+ 0x89, 0x93, 0x87, 0x17, 0xAA, 0xA3, 0xA3, 0x2A, 0xD1, 0x16, 0x71, 0x50, 0x29, 0x9C, 0x21, 0x82, 0x0A, 0xBD, 0x70, 0xFF, 0x90, 0x2B, 0x00, 0x4C, 0x6D, 0xE9, 0x1C, 0x1C, 0x0B, 0x40, 0x70, 0x64, -+ 0x42, 0xAF, 0x53, 0x1E, 0xC4, 0x90, 0xB0, 0x12, 0x75, 0x0B, 0xCB, 0x48, 0x77, 0x93, 0x5A, 0x7E, 0x54, 0x03, 0x17, 0x02, 0xBB, 0x98, 0x8E, 0xB3, 0xF9, 0x29, 0x14, 0xCD, 0xBD, 0x42, 0x97, 0x9A, -+ 0xD7, 0xD2, 0x7B, 0x22, 0x33, 0xEC, 0x12, 0x79, 0xD0, 0x54, 0x93, 0xB1, 0x2D, 0x3F, 0x5F, 0xBB, 0x77, 0x57, 0x53, 0x60, 0x21, 0xB5, 0xF4, 0xCD, 0x93, 0x2B, 0x48, 0x0E, 0x40, 0xCB, 0xAE, 0x50, -+ 0xD2, 0x32, 0xE0, 0xA2, 0xEF, 0xFE, 0x0E, 0x8C, 0xB5, 0x88, 0x08, 0x66, 0x91, 0x99, 0xF0, 0x83, 0x08, 0x72, 0xF3, 0x69, 0x73, 0x86, 0x82, 0xF8, 0x46, 0xF6, 0xDE, 0xAD, 0x09, 0x5B, 0xFF, 0xCD, -+ 0x67, 0x0A, 0x4A, 0x9C, 0xD1, 0x42, 0x39, 0x6C, 0x58, 0x50, 0x6E, 0xA7, 0xA6, 0x8B, 0x21, 0xAB, 0xDC, 0xC1, 0x9C, 0xCC, 0x06, 0xF6, 0xDA, 0x55, 0xC8, 0x85, 0xA8, 0x55, 0xC4, 0x56, 0x68, 0x0C, -+ 0xD4, 0x47, 0x7B, 0xCA, 0x2B, 0xBA, 0x91, 0x53, 0xDC, 0xAE, 0xE6, 0x82, 0x65, 0x5B, 0x74, 0xEC, 0xA6, 0xF7, 0xE4, 0x4C, 0x3B, 0xFE, 0x1E, 0x2D, 0x45, 0x74, 0x91, 0xED, 0x1B, 0xC6, 0x4E, 0x1C, -+ 0xF6, 0xCE, 0x18, 0xCF, 0x44, 0xA0, 0x16, 0x6D, 0x1B, 0x24, 0x44, 0x80, 0x88, 0x2C, 0x1B, 0x35, 0xCE, 0xA7, 0x03, 0x15, 0x8E, 0x18, 0xC7, 0xEC, 0x6E, 0x0C, 0xF8, 0x27, 0xD5, 0x50, 0x4A, 0x45, -+ 0xAE, 0x61, 0x15, 0x23, 0x09, 0xBC, 0x8A, 0x18, 0xA5, 0x2C, 0x0E, 0x76, 0x99, 0xA8, 0x7C, 0x4E, 0x31, 0xC6, 0x91, 0x1A, 0x83, 0x05, 0x35, 0x15, 0x55, 0xB2, 0x97, 0x1C, 0x94, 0x60, 0x2B, 0x70, -+ 0xE6, 0x70, 0xAA, 0x30, 0xB9, 0x07, 0x34, 0xEC, 0x1D, 0xAA, 0xD0, 0x3A, 0x30, 0xA9, 0x6F, 0x58, 0x47, 0xC5, 0xC3, 0xF7, 0x97, 0x3C, 0xF4, 0x57, 0x2D, 0x16, 0x6C, 0x51, 0xD1, 0xE9, 0x4A, 0x50, -+ 0xA4, 0xC1, 0xC8, 0x94, 0xA2, 0x05, 0xF8, 0xEC, 0xB3, 0x4E, 0x80, 0xF8, 0x4C, 0xA8, 0xDC, 0x31, 0xA4, 0x29, 0xD5, 0x60, 0x05, 0x96, 0x17, 0x9D, 0x10, 0x93, 0xE2, 0xA3, 0x89, 0xCC, 0xFE, 0x9C, -+ 0x04, 0x02, 0xEE, 0x49, 0x55, 0x17, 0x10, 0xFF, 0xC2, 0x5B, 0xDB, 0xE4, 0x78, 0xF3, 0x9F, 0x20, 0x63, 0xF3, 0x1F, 0x75, 0xD7, 0x43, 0x2E, 0xCA, 0x1C, 0x59, 0xEB, 0xD8, 0xF4, 0x6D, 0x86, 0xA0, -+ 0x92, 0xDB, 0x12, 0xF8, 0x10, 0xFA, 0x91, 0x1C, 0x20, 0xD4, 0xCC, 0x1E, 0x42, 0x5C, 0x54, 0x3D, 0xC6, 0x45, 0x77, 0xE4, 0x4D, 0x84, 0xF4, 0x22, 0xD9, 0x66, 0x1E, 0x3D, 0x35, 0x92, 0x13, 0x50, -+ 0xD6, 0xF7, 0x09, 0x9C, 0x54, 0x25, 0xE5, 0x09, 0xE1, 0x45, 0x8A, 0x05, 0x00, 0xAE, 0x5E, 0xB4, 0xCC, 0x6B, 0xB5, 0x06, 0x26, 0xD0, 0x13, 0x0F, 0x09, 0x36, 0x17, 0x17, 0xA9, 0x59, 0x19, 0xAE, -+ 0xD3, 0x55, 0x92, 0xFA, 0x4A, 0xBE, 0x7B, 0x2B, 0xD4, 0xF9, 0x99, 0x42, 0x21, 0x51, 0xE6, 0x3D, 0x4E, 0xD0, 0x0C, 0xC7, 0x51, 0xA5, 0x86, 0x79, 0x77, 0xF1, 0x5E, 0x48, 0x2E, 0xFA, 0x01, 0xE5, -+ 0xCC, 0xC4, 0x40, 0x64, 0xF5, 0xB9, 0xFF, 0xE2, 0x9A, 0xFF, 0xE6, 0x26, 0xC4, 0xD5, 0x17, 0x0A, 0xDA, 0x1D, 0xF0, 0x27, 0xAB, 0x41, 0x79, 0x60, 0x8C, 0x40, 0x93, 0xCC, 0xE2, 0xC4, 0x09, 0x30, -+ 0x8C, 0xD8, 0x98, 0x37, 0x1A, 0x49, 0xFB, 0xEA, 0x2A, 0x2F, 0x2B, 0xA1, 0x3B, 0xDE, 0xBA, 0xC1, 0xF4, 0x15, 0x9F, 0x4B, 0x03, 0x68, 0xFB, 0x21, 0xD7, 0x0A, 0x9D, 0x79, 0x31, 0xD7, 0xEF, 0xF9, -+ 0x34, 0xE6, 0xC5, 0x44, 0xE1, 0x3B, 0x7B, 0x73, 0xD4, 0x65, 0x57, 0x6C, 0x6E, 0x81, 0xFD, 0x6D, 0x5F, 0xD9, 0x43, 0x93, 0xE8, 0x02, 0x42, 0xF9, 0x42, 0x0A, 0xCC, 0x0E, 0xD3, 0x53, 0xEF, 0x18, -+ 0xCA, 0x07, 0x0F, 0x5E, 0x9A, 0x28, 0x5A, 0xC4, 0xBC, 0xBA, 0xB1, 0x9A, 0x38, 0x35, 0x6F, 0x55, 0x7B, 0x07, 0x0E, 0x17, 0xAE, 0x5C, 0xF1, 0xF1, 0xBE, 0xD4, 0x26, 0x01, 0xE8, 0x9C, 0x8C, 0x4C, -+ }, -+ .t1_len = 1920, -+ .t1 = { -+ 0xD9, 0xFD, 0xE3, 0xA4, 0x96, 0xF7, 0x58, 0x19, 0xF0, 0xA2, 0x0D, 0x04, 0x41, 0xDC, 0x78, 0x30, 0xB4, 0xAA, 0x1C, 0xB8, 0xEC, 0xFC, 0x91, 0xBA, 0x0E, 0xEC, 0x3A, 0xFB, 0x67, 0x44, 0xE4, 0x77, -+ 0xB4, 0xE6, 0xEC, 0x3F, 0xDA, 0xE7, 0x50, 0x48, 0xFF, 0xEB, 0xAA, 0xBE, 0xA8, 0xE8, 0x22, 0x11, 0x7D, 0x57, 0x87, 0xF7, 0x90, 0x70, 0xEA, 0x88, 0x28, 0x7C, 0xE3, 0xCD, 0x50, 0x11, 0xFD, 0x8D, -+ 0x93, 0xAB, 0x7E, 0x8B, 0x51, 0xF2, 0x61, 0x16, 0xBF, 0x9B, 0x6D, 0x21, 0xC0, 0x3F, 0x88, 0xBF, 0xEC, 0x48, 0x88, 0x76, 0xF4, 0xD0, 0x75, 0xA1, 0x42, 0xD4, 0xE7, 0x84, 0xD7, 0x34, 0x40, 0x75, -+ 0x11, 0xF9, 0x92, 0x06, 0x93, 0x53, 0xF1, 0xDB, 0x67, 0xAC, 0xF7, 0x30, 0x34, 0xA4, 0x68, 0xA1, 0x18, 0x58, 0x80, 0x62, 0x11, 0x1D, 0x32, 0x0E, 0x00, 0xBC, 0xFF, 0x6D, 0xC6, 0x35, 0x73, 0xFC, -+ 0xED, 0x1E, 0x96, 0xAA, 0xEB, 0xA6, 0x45, 0x2E, 0x3C, 0x7A, 0xCD, 0x19, 0x18, 0x1F, 0x9B, 0x81, 0x4B, 0xA1, 0x9D, 0x39, 0xB4, 0xBA, 0xB5, 0x49, 0x6D, 0xC0, 0x55, 0x42, 0x6E, 0x7E, 0xA4, 0x61, -+ 0xAF, 0x55, 0xD5, 0xB9, 0xFE, 0x97, 0xF9, 0xDF, 0x7E, 0x25, 0x32, 0x03, 0xC1, 0xF9, 0xE1, 0x52, 0xE9, 0x6D, 0x75, 0xF9, 0xD9, 0xA8, 0x4F, 0x5C, 0x26, 0x3E, 0xC8, 0xC2, 0x50, 0x44, 0x0A, 0xDC, -+ 0x98, 0x6F, 0x4E, 0x36, 0x41, 0x4C, 0x70, 0x3B, 0x3E, 0x05, 0x42, 0x6B, 0x28, 0xB7, 0x06, 0x59, 0x50, 0xDA, 0x6D, 0x0E, 0x0B, 0x2C, 0x60, 0xAC, 0x36, 0x72, 0xDB, 0x6F, 0x3C, 0x78, 0x44, 0x7D, -+ 0xB7, 0xC2, 0x09, 0x15, 0x77, 0x0E, 0xA6, 0xFC, 0xE8, 0x1D, 0xAB, 0x53, 0x39, 0xC1, 0xD5, 0xAF, 0x82, 0xA5, 0xD3, 0x32, 0x40, 0x99, 0xDF, 0x56, 0x51, 0x6A, 0x07, 0xDB, 0x7C, 0x0F, 0xC6, 0x43, -+ 0x83, 0x80, 0x5C, 0x65, 0xF2, 0xB0, 0x2F, 0xBC, 0xFC, 0xE6, 0x3E, 0x93, 0xC4, 0xBF, 0x09, 0x40, 0x9F, 0x9F, 0x0F, 0x77, 0xE7, 0x3D, 0xA3, 0xB0, 0x01, 0x9F, 0x20, 0x57, 0xE4, 0xCD, 0x7C, 0xFF, -+ 0x0E, 0x57, 0x45, 0xEF, 0x18, 0xC3, 0xFD, 0x76, 0x6E, 0x01, 0x74, 0x7A, 0x64, 0xD4, 0x15, 0xFC, 0x97, 0x89, 0xAB, 0xFA, 0x62, 0x28, 0x4E, 0x11, 0xC7, 0xFF, 0x05, 0xD0, 0x54, 0x8D, 0x97, 0x3F, -+ 0x67, 0x95, 0x59, 0xA6, 0xA3, 0xAA, 0xD7, 0x7E, 0xD5, 0x13, 0x2D, 0x01, 0x50, 0xC0, 0x14, 0xC3, 0xEC, 0x3A, 0x39, 0x5F, 0x01, 0x7E, 0x7A, 0xCF, 0xE3, 0xEA, 0xBF, 0xCA, 0x44, 0x91, 0x0C, 0xA0, -+ 0x6F, 0xF3, 0x35, 0x42, 0xEC, 0xCE, 0x62, 0x41, 0x97, 0x47, 0x42, 0x35, 0x7D, 0x37, 0xF5, 0xC2, 0x84, 0xBF, 0x0F, 0xE1, 0xA7, 0x4B, 0x50, 0xC0, 0x73, 0x55, 0x13, 0x72, 0x13, 0x3A, 0xF2, 0xDD, -+ 0x41, 0xE2, 0x1B, 0xAF, 0xC9, 0xC5, 0x90, 0xEE, 0x6E, 0xBC, 0x4A, 0xCE, 0x73, 0x1E, 0xF5, 0x66, 0x15, 0x6C, 0xA0, 0x37, 0x55, 0xDC, 0x49, 0x3C, 0x13, 0x70, 0x28, 0xAF, 0x3B, 0x3D, 0xE5, 0xB0, -+ 0x0B, 0xD6, 0xCB, 0x3D, 0x9A, 0x87, 0xD0, 0x15, 0x1F, 0x88, 0x7C, 0x67, 0x68, 0xBC, 0x6C, 0xA0, 0x2A, 0x94, 0xFB, 0x20, 0x86, 0x55, 0x1A, 0x0F, 0x89, 0xBA, 0x26, 0x15, 0x4E, 0x9D, 0x45, 0x06, -+ 0xAD, 0x9F, 0xAF, 0x39, 0xF5, 0x72, 0x3E, 0x23, 0x4E, 0x06, 0xCF, 0xDE, 0xD6, 0x9D, 0x4E, 0xE4, 0x14, 0x6B, 0x73, 0xE5, 0xDC, 0x1E, 0x41, 0x52, 0xA2, 0xA3, 0x15, 0x9D, 0x73, 0xDB, 0xC8, 0x33, -+ 0xD3, 0xD4, 0x17, 0xCD, 0x5C, 0xF7, 0xFB, 0x3D, 0xC7, 0x74, 0x5C, 0xEE, 0xD4, 0xDC, 0x0F, 0x5B, 0x1C, 0x6D, 0x6B, 0x69, 0xC1, 0x76, 0x41, 0x57, 0xEA, 0x43, 0xDF, 0x9D, 0xBB, 0x44, 0x2E, 0xFA, -+ 0x39, 0xD1, 0xD0, 0x16, 0x2E, 0x87, 0xC2, 0xD3, 0x0C, 0x50, 0x12, 0xFD, 0x16, 0xD8, 0x69, 0xC8, 0xA1, 0xFC, 0xBB, 0x45, 0xED, 0xCC, 0x8E, 0x18, 0x13, 0xB2, 0xB1, 0x90, 0xA9, 0x61, 0xF9, 0xFC, -+ 0x86, 0x59, 0x1D, 0x3A, 0xBC, 0x53, 0x88, 0xAF, 0x67, 0x8F, 0xF0, 0x3D, 0xA7, 0x8B, 0x7C, 0xC0, 0xF6, 0x18, 0x57, 0x21, 0xC0, 0xDF, 0x33, 0xCC, 0x90, 0x64, 0x35, 0x22, 0x5D, 0xF2, 0x61, 0x10, -+ 0x02, 0xDF, 0x12, 0x0E, 0x83, 0x56, 0x65, 0x32, 0x29, 0x2D, 0xEA, 0x3D, 0x8A, 0xCD, 0x10, 0x9A, 0x0D, 0xFF, 0xAB, 0x3B, 0x0B, 0x43, 0x01, 0x27, 0x96, 0xDB, 0x5B, 0x50, 0x68, 0x3F, 0xB4, 0xC2, -+ 0xD2, 0x50, 0xDA, 0xB7, 0x6A, 0xAE, 0x35, 0xA4, 0x8E, 0x8C, 0x8D, 0x4A, 0x5C, 0xC1, 0x54, 0x75, 0x97, 0x45, 0xF0, 0xA1, 0x23, 0x0F, 0x6C, 0xA9, 0xDD, 0x9C, 0x99, 0xE2, 0xF8, 0x0E, 0xDC, 0x83, -+ 0x30, 0x4C, 0xE0, 0x1E, 0x98, 0xF6, 0xC9, 0x48, 0x95, 0x29, 0xA8, 0x22, 0xF9, 0x00, 0x33, 0xC2, 0x28, 0x31, 0x5E, 0xB2, 0xFC, 0xC8, 0xDB, 0xA3, 0x82, 0xED, 0x43, 0x01, 0xE0, 0x76, 0x07, 0xA5, -+ 0xB0, 0x76, 0xC7, 0x25, 0xF1, 0x24, 0x99, 0x4F, 0x18, 0xA9, 0x97, 0xD2, 0xC5, 0xBB, 0xF9, 0xA3, 0x24, 0x60, 0x52, 0x65, 0x10, 0x8A, 0xCB, 0xF4, 0x61, 0x0F, 0xA1, 0xC3, 0x37, 0x44, 0x08, 0x85, -+ 0x0A, 0x08, 0x64, 0xE2, 0xB6, 0x10, 0x17, 0xEB, 0xEC, 0x1F, 0xBA, 0xB8, 0x9D, 0xE3, 0xAB, 0x1B, 0x93, 0xCE, 0x49, 0x18, 0xB9, 0xE2, 0xC9, 0xE3, 0xFE, 0x45, 0x67, 0x58, 0x06, 0x2A, 0x9F, 0x88, -+ 0x2B, 0x28, 0x33, 0x18, 0x27, 0x1F, 0x4B, 0x95, 0x52, 0xFC, 0xF3, 0x26, 0x24, 0xA9, 0xFD, 0xAA, 0x44, 0xC6, 0x5C, 0x60, 0xE2, 0xB3, 0x64, 0x8B, 0xEF, 0x1F, 0x17, 0xD0, 0xB7, 0xC7, 0x48, 0x69, -+ 0xEE, 0x0B, 0x53, 0xC4, 0xA6, 0x2A, 0x24, 0x84, 0x5D, 0xCE, 0xA5, 0xBC, 0xBF, 0x93, 0xB9, 0x2E, 0x4C, 0x26, 0x64, 0x85, 0x84, 0xE3, 0x34, 0x79, 0x28, 0x2E, 0x6C, 0x8B, 0x1D, 0x8F, 0xE2, 0x11, -+ 0x81, 0xBD, 0x9C, 0xF7, 0x5F, 0x8A, 0x96, 0x17, 0x24, 0xD4, 0xC4, 0x30, 0x97, 0x79, 0xF1, 0xF1, 0xB7, 0x75, 0xD2, 0x54, 0xF7, 0x0B, 0xD1, 0x76, 0x9C, 0xC7, 0xC0, 0xED, 0xD2, 0xA9, 0x5F, 0xE5, -+ 0xC9, 0xD8, 0x4B, 0x16, 0xF7, 0xC5, 0x4D, 0x85, 0xCC, 0xE4, 0xC8, 0xA1, 0x82, 0x81, 0x08, 0x09, 0xED, 0x81, 0xE9, 0x7D, 0x07, 0x48, 0x84, 0xEE, 0xDF, 0x40, 0x1C, 0xCA, 0xCD, 0xAE, 0xAD, 0x82, -+ 0xC1, 0x4D, 0x06, 0xB6, 0x8A, 0xEA, 0x6C, 0xE1, 0x4B, 0x86, 0x1B, 0x0C, 0xFD, 0x16, 0x09, 0x0C, 0xBB, 0xF4, 0x69, 0xC5, 0xE0, 0x84, 0x31, 0x4C, 0x0D, 0x8D, 0x39, 0x60, 0xEA, 0x06, 0xA3, 0x42, -+ 0x6D, 0x8B, 0x3F, 0xE7, 0x62, 0xE0, 0x0D, 0x09, 0xBD, 0xA3, 0x74, 0xF3, 0xAE, 0x2C, 0xBE, 0xDE, 0x28, 0x38, 0xFF, 0x89, 0xD8, 0x1D, 0xEB, 0x30, 0x13, 0x09, 0x0E, 0x44, 0x19, 0x9A, 0xED, 0x60, -+ 0x49, 0x63, 0xEA, 0xF9, 0x19, 0x91, 0x4C, 0xE0, 0x4F, 0x20, 0x7A, 0xC8, 0x2C, 0xD4, 0x35, 0x1F, 0xEF, 0x7B, 0x2D, 0x94, 0x39, 0x30, 0x66, 0xFE, 0x4D, 0x44, 0xE3, 0xCC, 0x59, 0x52, 0xE7, 0x5E, -+ 0xB6, 0xF3, 0x71, 0x40, 0x58, 0x91, 0x5D, 0xE0, 0xEE, 0x18, 0x4D, 0x8C, 0x55, 0x30, 0x0F, 0x57, 0x6A, 0x8B, 0x82, 0xA8, 0x63, 0xE8, 0x1A, 0xF3, 0x34, 0x17, 0xBD, 0x4C, 0xFC, 0x94, 0xE7, 0xA6, -+ 0x12, 0x63, 0xB3, 0x9F, 0x01, 0xF6, 0xE2, 0xE7, 0x07, 0x48, 0xB6, 0xE5, 0xE5, 0x9C, 0xF6, 0xCA, 0x01, 0xB0, 0x02, 0x8C, 0x93, 0xBB, 0xBC, 0xEB, 0xC5, 0x48, 0xF9, 0x87, 0xF1, 0x07, 0x55, 0xBF, -+ 0x33, 0xCA, 0x58, 0x5C, 0xB4, 0x1C, 0xF5, 0x78, 0xDF, 0x5F, 0xFE, 0x37, 0x92, 0x4E, 0x3C, 0x2C, 0x07, 0x2E, 0xD1, 0xDA, 0xC9, 0x16, 0x21, 0x76, 0x97, 0x29, 0x71, 0xE7, 0x9B, 0x62, 0xFB, 0x20, -+ 0x8F, 0x1A, 0x73, 0xBF, 0x03, 0x61, 0xE2, 0x99, 0x3D, 0xCC, 0xCD, 0x31, 0x10, 0xC3, 0x4D, 0x83, 0x9D, 0x18, 0xDD, 0x43, 0xA5, 0xE8, 0xF0, 0xD9, 0x41, 0xE9, 0x9A, 0xDC, 0xF4, 0x41, 0x40, 0x5F, -+ 0x32, 0x10, 0x76, 0x71, 0xB2, 0xD8, 0xB2, 0x24, 0x4F, 0x7B, 0xA9, 0x2D, 0xCE, 0xD5, 0x87, 0xA2, 0x10, 0xFE, 0x8F, 0xF4, 0x3C, 0x61, 0x6A, 0xCB, 0x5E, 0x76, 0x6E, 0x6A, 0xF2, 0xCE, 0xB0, 0x35, -+ 0x99, 0xBA, 0x3D, 0xE3, 0x76, 0xEB, 0x57, 0x35, 0xEF, 0x16, 0x14, 0x39, 0x53, 0xD1, 0xFD, 0xDB, 0x7E, 0x9F, 0x28, 0x74, 0xB0, 0xD6, 0x08, 0x3D, 0xD7, 0xEC, 0x43, 0x86, 0xAE, 0x00, 0x3F, 0x51, -+ 0xCC, 0xF2, 0xD2, 0x1E, 0xF6, 0x05, 0x91, 0x63, 0xC5, 0x15, 0x21, 0x74, 0x42, 0x3F, 0x57, 0x11, 0x9D, 0x0F, 0xCE, 0x62, 0x7D, 0x76, 0x3D, 0x81, 0xC1, 0x0A, 0xA1, 0x32, 0x9F, 0x74, 0xC8, 0xD4, -+ 0x45, 0x43, 0x7B, 0xA6, 0x71, 0x8A, 0x33, 0xDB, 0x6E, 0x79, 0x37, 0x51, 0x72, 0xB2, 0xAE, 0x35, 0x91, 0x82, 0x19, 0x78, 0xD5, 0x20, 0x82, 0x4E, 0x2D, 0x2F, 0xF8, 0x98, 0xB7, 0xF4, 0xC8, 0x67, -+ 0xFF, 0x46, 0x27, 0x22, 0xBC, 0x07, 0xEA, 0xDA, 0xD3, 0x89, 0xA9, 0x10, 0xB6, 0xF6, 0x54, 0x29, 0xDA, 0x12, 0x97, 0x35, 0xFE, 0x04, 0x9E, 0x3E, 0xCB, 0x38, 0x89, 0xF6, 0x04, 0x7C, 0xF2, 0xBD, -+ 0x2A, 0x88, 0xD5, 0x0A, 0x65, 0x1B, 0x32, 0x35, 0xD2, 0x48, 0x0E, 0x1D, 0xA5, 0xA3, 0x52, 0x47, 0xFA, 0x76, 0xC8, 0x31, 0x73, 0x63, 0x99, 0xD3, 0x7E, 0x8D, 0x03, 0x3C, 0x1D, 0x05, 0x1C, 0x9B, -+ 0x6A, 0x99, 0xAB, 0x80, 0xB1, 0x31, 0x3F, 0xA2, 0x4C, 0x5C, 0x59, 0x76, 0x6E, 0x6C, 0x51, 0xA3, 0x8F, 0xE9, 0xF1, 0x18, 0x6A, 0x76, 0x7E, 0xEB, 0xD0, 0xD8, 0x80, 0x01, 0xAE, 0x02, 0x46, 0xCD, -+ 0x4E, 0xBE, 0x2C, 0x97, 0x9D, 0xE8, 0x2C, 0x30, 0xBB, 0xDB, 0x98, 0xB4, 0x74, 0x4F, 0x11, 0xF9, 0xE6, 0x39, 0xED, 0xDD, 0x8C, 0x19, 0x4D, 0x79, 0x11, 0x20, 0x1A, 0x8F, 0xA7, 0x45, 0x99, 0x1B, -+ 0x4D, 0x8A, 0x57, 0x09, 0xB6, 0x2A, 0x21, 0xB6, 0x3B, 0x97, 0x62, 0x91, 0x3D, 0x36, 0xCE, 0x99, 0x5C, 0x2D, 0x6B, 0x79, 0x15, 0x1E, 0x8D, 0x83, 0x83, 0x8C, 0xD1, 0xF3, 0x88, 0x40, 0xA9, 0x41, -+ 0x72, 0x55, 0xDD, 0x16, 0x6B, 0x7A, 0x35, 0x84, 0x49, 0x90, 0x03, 0xFB, 0x62, 0x56, 0x11, 0x40, 0x4C, 0x95, 0xB9, 0x60, 0xDF, 0x0D, 0xB1, 0xBC, 0xF1, 0x57, 0x4B, 0x09, 0x65, 0xDB, 0xD8, 0x34, -+ 0xEE, 0x14, 0x81, 0x17, 0xD5, 0xE0, 0x5A, 0x7C, 0xC7, 0xCC, 0x1A, 0x86, 0x56, 0x18, 0xA2, 0xBE, 0x48, 0x54, 0xDB, 0x89, 0x35, 0xCD, 0xA1, 0xE6, 0x8B, 0xD8, 0xD0, 0x9E, 0x72, 0xF0, 0xAC, 0x90, -+ 0x53, 0xC8, 0x82, 0xC4, 0xAB, 0xA4, 0x00, 0x4A, 0x61, 0x4D, 0x10, 0x50, 0x53, 0x00, 0xB6, 0x17, 0x6C, 0xA1, 0xF3, 0x24, 0xE2, 0x2E, 0x78, 0x24, 0x29, 0x9F, 0x9C, 0x40, 0x75, 0x5B, 0x71, 0xD8, -+ 0x2B, 0x67, 0x95, 0x47, 0xF0, 0x6A, 0xD4, 0x8B, 0xE6, 0x6D, 0x68, 0x07, 0x2C, 0x93, 0x90, 0x23, 0x3C, 0x93, 0x3F, 0x80, 0xA1, 0x4F, 0x8D, 0x4A, 0x6B, 0x0B, 0x4E, 0x19, 0x70, 0xE1, 0xAC, 0xC1, -+ 0xBE, 0xA7, 0xF5, 0xD3, 0xBE, 0x22, 0x44, 0x48, 0xF8, 0x57, 0xBA, 0xB6, 0x8A, 0xEF, 0xA6, 0xD8, 0xCB, 0x81, 0x9B, 0x64, 0x29, 0x4A, 0x12, 0x99, 0x79, 0x16, 0xCD, 0xBF, 0x56, 0xE9, 0xA8, 0xD0, -+ 0x02, 0xDD, 0x06, 0x5F, 0x12, 0xC6, 0x18, 0x23, 0xF4, 0xFC, 0x21, 0x45, 0x08, 0x23, 0x2E, 0x43, 0x1F, 0x0B, 0x68, 0x98, 0x47, 0x5B, 0xB5, 0xDD, 0x0D, 0x7D, 0x52, 0x8E, 0x84, 0x0C, 0x22, 0x80, -+ 0x9A, 0xF7, 0xE1, 0x53, 0x63, 0x72, 0x4A, 0x61, 0x3A, 0xCC, 0xFB, 0xE2, 0xB3, 0x74, 0x38, 0xC1, 0x59, 0xCE, 0x14, 0xCB, 0x0C, 0x98, 0xBF, 0xD4, 0x99, 0xC0, 0x8D, 0xAC, 0x0C, 0xF4, 0x5D, 0x82, -+ 0x1C, 0xC2, 0xFA, 0x47, 0x31, 0x9B, 0x6F, 0xB4, 0xCE, 0xD7, 0xE5, 0x98, 0x5E, 0xC8, 0x27, 0x4D, 0xE0, 0x90, 0x71, 0xD3, 0xC1, 0x0D, 0xA5, 0xBF, 0x9E, 0x52, 0x2B, 0x01, 0xCE, 0x91, 0xD6, 0x6B, -+ 0x91, 0x79, 0x5D, 0x3D, 0x22, 0xC0, 0x04, 0x83, 0x45, 0x42, 0x75, 0xDD, 0x2B, 0xBD, 0xD7, 0xC2, 0xDC, 0xC4, 0xA1, 0x67, 0xE5, 0xD7, 0xFC, 0xDB, 0xB9, 0xF6, 0x20, 0x8C, 0xD4, 0xC9, 0xA4, 0x85, -+ 0xFA, 0xAE, 0xB8, 0x09, 0xA7, 0x71, 0x1D, 0xAC, 0x28, 0x65, 0xCE, 0xD4, 0x30, 0x64, 0x74, 0xB2, 0x2B, 0x44, 0x48, 0xF8, 0x5D, 0xF3, 0x34, 0x17, 0xF3, 0xFA, 0xCE, 0x1C, 0x05, 0xD4, 0x27, 0x03, -+ 0xED, 0x31, 0x30, 0x42, 0xA0, 0x5D, 0xE0, 0x36, 0x27, 0x40, 0x13, 0x01, 0x88, 0xEC, 0xB4, 0x45, 0xBB, 0x25, 0x5D, 0xC7, 0x6E, 0xE8, 0x44, 0x3F, 0x73, 0x31, 0x17, 0xF8, 0x35, 0x1F, 0x17, 0x60, -+ 0x31, 0x75, 0x55, 0x4F, 0xEB, 0x00, 0xB7, 0xFF, 0x54, 0xD8, 0x07, 0x86, 0xF3, 0x05, 0xCD, 0xE1, 0x8C, 0xD5, 0xEC, 0x56, 0xEC, 0x09, 0x62, 0xA3, 0xE0, 0x44, 0x82, 0xDC, 0xE3, 0x62, 0x2D, 0x04, -+ 0x0D, 0x24, 0xC4, 0x0F, 0x2E, 0x8A, 0x14, 0xA4, 0x47, 0x65, 0x9D, 0x6C, 0x56, 0x1F, 0x2F, 0xFE, 0xE6, 0x8F, 0x8D, 0x3D, 0xE5, 0x11, 0xB2, 0x3E, 0x8B, 0x17, 0x2A, 0x01, 0xA3, 0xED, 0xA4, 0xD3, -+ 0x78, 0x0E, 0x74, 0xC6, 0x77, 0x24, 0x43, 0x30, 0xE9, 0xAE, 0xFF, 0x01, 0x9F, 0xE0, 0x7B, 0xE3, 0xD3, 0x3F, 0x32, 0x2F, 0x9C, 0xE2, 0x21, 0x4B, 0x9D, 0x9C, 0xFF, 0x99, 0xD0, 0x5A, 0x59, 0xE4, -+ 0x75, 0x51, 0x43, 0x2A, 0xE7, 0x6F, 0x4C, 0xD4, 0xF8, 0xDD, 0x51, 0x52, 0x0F, 0xFE, 0x81, 0x1B, 0x4B, 0x93, 0xCD, 0x62, 0x19, 0xC8, 0x1B, 0x63, 0xB1, 0xD6, 0x27, 0x78, 0x5C, 0x2A, 0x0F, 0xC2, -+ 0x2E, 0x3A, 0xEA, 0x86, 0xCE, 0xEE, 0x1F, 0x7F, 0xBC, 0x4E, 0xFC, 0xB4, 0x6D, 0xDF, 0xBC, 0xD8, 0x8A, 0x02, 0xF3, 0xB4, 0xE6, 0x7C, 0x5F, 0xF2, 0xE8, 0xDC, 0x68, 0xBF, 0x16, 0xC7, 0x46, 0x99, -+ 0xBB, 0xB6, 0x28, 0x90, 0x2F, 0x72, 0xC3, 0xDE, 0xBC, 0x8B, 0xF5, 0xDF, 0x70, 0x6D, 0x47, 0xA6, 0x05, 0xA1, 0x07, 0xDA, 0xA0, 0x01, 0x41, 0x39, 0xCE, 0x40, 0xF0, 0xD4, 0x6D, 0x8D, 0x6D, 0xC7, -+ }, -+ .pkcs8_len = 0, -+ .spki_len = 0, -+ .msg_len = 33, -+ .msg = { 0xD8, 0x1C, 0x4D, 0x8D, 0x73, 0x4F, 0xCB, 0xFB, 0xEA, 0xDE, 0x3D, 0x3F, 0x8A, 0x03, 0x9F, 0xAA, 0x2A, 0x2C, 0x99, 0x57, 0xE8, 0x35, 0xAD, 0x55, 0xB2, 0x2E, 0x75, 0xBF, 0x57, 0xBB, 0x55, 0x6A, -+ 0xC8 }, -+ .sig_len = 3293, -+ .sig = { -+ 0xB0, 0x55, 0xB0, 0xE1, 0x76, 0x10, 0xBF, 0x54, 0xB3, 0x3B, 0x96, 0x09, 0x8D, 0x79, 0x6E, 0x98, 0xF7, 0x89, 0x9F, 0x48, 0x56, 0xCB, 0xC8, 0xD7, 0x04, 0xF9, 0xD7, 0x77, 0x8C, 0x18, 0x77, 0xF1, -+ 0xE1, 0x24, 0xBF, 0x62, 0xA0, 0xD1, 0x7F, 0x01, 0x3B, 0xE4, 0x34, 0x0F, 0xD5, 0x7B, 0x4F, 0xA6, 0x22, 0x2D, 0x9C, 0xDB, 0x90, 0x28, 0xE8, 0xB0, 0x2B, 0x92, 0x6E, 0x15, 0x54, 0xD1, 0x45, 0xF4, -+ 0x47, 0x98, 0xAA, 0xC2, 0xFA, 0xA2, 0x03, 0x3C, 0x4A, 0xEF, 0xB6, 0xCC, 0xB6, 0xCF, 0xE5, 0xC2, 0xA6, 0x23, 0x8E, 0xE7, 0x9C, 0x5C, 0xC2, 0xF0, 0xE8, 0x04, 0xBE, 0xD1, 0x7F, 0x75, 0xC1, 0xF3, -+ 0x99, 0x4D, 0xD7, 0xE7, 0xA0, 0xF2, 0xA7, 0x03, 0x4C, 0x0C, 0x8C, 0x98, 0x64, 0x80, 0x40, 0x57, 0xE2, 0xE5, 0x57, 0x67, 0x3F, 0xDF, 0xD6, 0x64, 0x35, 0x6F, 0xAB, 0xD0, 0x51, 0xF9, 0x07, 0x5B, -+ 0x34, 0x00, 0xA0, 0xC7, 0xE8, 0x45, 0x59, 0x55, 0x3E, 0xDF, 0x98, 0x9B, 0xFF, 0xD2, 0x11, 0x2B, 0x29, 0x60, 0x22, 0x03, 0x06, 0x6B, 0xDE, 0xA7, 0x84, 0x35, 0xEB, 0xC6, 0xE3, 0x81, 0x8C, 0xC9, -+ 0x2D, 0x61, 0xBC, 0xC1, 0x25, 0xA8, 0x57, 0x5B, 0x5A, 0x8A, 0xEE, 0x42, 0x25, 0xFB, 0x9C, 0x62, 0x48, 0x3F, 0x3E, 0xD1, 0x18, 0x5A, 0x6A, 0x96, 0x82, 0x2E, 0x5E, 0xFC, 0x1B, 0xA7, 0xCD, 0x8D, -+ 0x5F, 0xD8, 0xCC, 0x18, 0x7D, 0x2A, 0x26, 0x69, 0xCA, 0xDF, 0x58, 0xFA, 0xD6, 0x62, 0x89, 0x79, 0x4C, 0x96, 0x48, 0x5B, 0x2C, 0x46, 0x45, 0xC7, 0xD3, 0xD3, 0x56, 0x84, 0xB7, 0x42, 0x9B, 0x5E, -+ 0xF3, 0x15, 0x45, 0x76, 0x99, 0xBE, 0x80, 0x30, 0xBC, 0x3D, 0xEB, 0x81, 0x66, 0x60, 0x2A, 0xC5, 0x48, 0x19, 0x82, 0x48, 0x83, 0xA2, 0x46, 0xC8, 0xA1, 0xA3, 0x4F, 0xC8, 0x9B, 0x2F, 0xE0, 0x32, -+ 0x9B, 0x5C, 0xA0, 0x5D, 0x4E, 0x14, 0xB6, 0xDF, 0xFC, 0x21, 0x44, 0x60, 0x6A, 0xB3, 0x60, 0xBB, 0x3B, 0x8A, 0xC5, 0xA1, 0x78, 0x99, 0x8B, 0x46, 0x21, 0x81, 0x81, 0xCA, 0xC8, 0xDE, 0x4C, 0x29, -+ 0x48, 0x30, 0xD4, 0x9D, 0x8F, 0x00, 0xEC, 0x12, 0xC3, 0xD3, 0xAC, 0x7B, 0x4A, 0x2C, 0x30, 0x17, 0x58, 0xE6, 0x8A, 0x56, 0x81, 0x17, 0x7F, 0xF2, 0xA7, 0x5D, 0x1D, 0x4B, 0xF1, 0xC9, 0x26, 0x88, -+ 0x0B, 0x34, 0xB7, 0x28, 0xF7, 0xC3, 0x2E, 0x40, 0x60, 0x99, 0xD9, 0x5A, 0xB4, 0x48, 0x92, 0xF7, 0x48, 0xAA, 0xFE, 0xB5, 0x5B, 0x26, 0xBE, 0x31, 0x75, 0x12, 0xB0, 0x37, 0x7D, 0xBE, 0x89, 0x1A, -+ 0xC5, 0x45, 0x6A, 0x92, 0x4C, 0x36, 0x83, 0x9B, 0xC8, 0x01, 0xDB, 0x2A, 0xC5, 0xB7, 0x11, 0x0A, 0x9B, 0xAF, 0x4C, 0x3C, 0x49, 0xD0, 0x05, 0x39, 0x3C, 0xDF, 0xFA, 0xD4, 0xF9, 0x68, 0x61, 0x20, -+ 0xF4, 0xFD, 0xE0, 0x16, 0x8A, 0x9E, 0x45, 0x8E, 0x72, 0x9F, 0x4B, 0x0A, 0xE1, 0xA4, 0xC4, 0x12, 0x4C, 0xA3, 0x4D, 0xF5, 0xB6, 0x3B, 0xC2, 0xE7, 0xCB, 0xEE, 0x01, 0xA3, 0x8D, 0x31, 0xA0, 0xED, -+ 0x8D, 0x3C, 0x4C, 0x38, 0x03, 0xC3, 0xC2, 0x4C, 0x5C, 0xAD, 0xEB, 0xE3, 0xE9, 0x1A, 0x8D, 0x2E, 0x1B, 0xFC, 0xF0, 0x50, 0x8A, 0x27, 0x88, 0xD8, 0x9D, 0xFE, 0xA2, 0x0F, 0xD6, 0x38, 0x18, 0xB8, -+ 0x39, 0x60, 0xA6, 0xCF, 0x93, 0x08, 0x72, 0xB9, 0x57, 0x85, 0x57, 0x50, 0x88, 0xCF, 0x7E, 0x8B, 0x63, 0xA1, 0x89, 0x5A, 0x8C, 0x1C, 0x77, 0xA8, 0x4C, 0xB9, 0xCC, 0x6B, 0xD1, 0xD5, 0xFA, 0x93, -+ 0x96, 0x77, 0xAF, 0x17, 0xEE, 0xBE, 0x2D, 0x2E, 0xE6, 0x84, 0xC6, 0x60, 0x15, 0xF1, 0xBB, 0x14, 0x2A, 0x72, 0x77, 0x79, 0x58, 0x0D, 0xA1, 0xBC, 0x5E, 0x97, 0x5A, 0xA5, 0x6E, 0xF5, 0xD7, 0x7A, -+ 0x84, 0x07, 0xE5, 0x06, 0xA5, 0xDE, 0xEE, 0xA5, 0xE8, 0xB0, 0x79, 0x7F, 0x10, 0x64, 0x60, 0x05, 0x64, 0x80, 0x22, 0x21, 0x3C, 0xCB, 0x86, 0xA7, 0x7D, 0xF5, 0xD7, 0xB3, 0x16, 0xE8, 0x5D, 0x55, -+ 0xB9, 0xDA, 0x0F, 0xDF, 0xD5, 0xF2, 0x35, 0x52, 0xDD, 0x47, 0xCC, 0xFA, 0x96, 0x4A, 0xC3, 0x9E, 0xE6, 0x84, 0xBD, 0x63, 0x79, 0x3B, 0xB7, 0xDC, 0xAB, 0x69, 0xBE, 0x7E, 0xD9, 0x4D, 0x8D, 0xDB, -+ 0xA1, 0x85, 0xE8, 0x0A, 0x7A, 0xAE, 0xE7, 0x4E, 0x87, 0x8F, 0x50, 0xA2, 0x13, 0xF3, 0xB4, 0xFF, 0xB6, 0x6E, 0x6D, 0x34, 0xA3, 0x9C, 0x0A, 0xAE, 0x2B, 0x1D, 0x61, 0x36, 0x6F, 0xE4, 0x03, 0x53, -+ 0x9C, 0x69, 0xA0, 0x88, 0x75, 0x1F, 0x56, 0x90, 0x1A, 0x10, 0xBC, 0x44, 0x23, 0x13, 0xA3, 0x5C, 0x2D, 0x83, 0x54, 0x76, 0xD0, 0xFA, 0xD4, 0x47, 0xC7, 0x70, 0x08, 0x0F, 0xA4, 0x1B, 0xF3, 0x8D, -+ 0x68, 0x5F, 0xB3, 0x1B, 0x11, 0xA7, 0xD2, 0xE6, 0xFB, 0x52, 0x67, 0x3D, 0x16, 0x87, 0x23, 0xE6, 0x89, 0x08, 0xC0, 0x67, 0x2A, 0x0F, 0x36, 0xE2, 0x5A, 0x19, 0x9E, 0x17, 0xA6, 0xFE, 0x5B, 0x8B, -+ 0x82, 0x5B, 0x96, 0xEA, 0xB7, 0xAB, 0x4B, 0x7D, 0x83, 0x81, 0xDB, 0xC5, 0x00, 0x31, 0xA5, 0xF2, 0xE0, 0x9E, 0x4B, 0xE8, 0x71, 0x53, 0x3A, 0xDC, 0x5D, 0x08, 0xD0, 0x09, 0x42, 0x9B, 0xBF, 0x5C, -+ 0x86, 0xF8, 0x12, 0x0D, 0x09, 0x5C, 0x8E, 0xEC, 0xBE, 0xF3, 0xE0, 0x99, 0xDE, 0x61, 0x8D, 0x43, 0x77, 0x24, 0x1B, 0x50, 0x36, 0x9E, 0xDE, 0x51, 0xAA, 0x74, 0xAB, 0x96, 0x65, 0x89, 0xE2, 0xC6, -+ 0x87, 0xD6, 0xC0, 0x9F, 0xAC, 0x9C, 0x6D, 0x6C, 0x54, 0x61, 0xF5, 0xA6, 0x30, 0x08, 0xE9, 0x83, 0x5F, 0xF4, 0xB5, 0xBD, 0x42, 0x65, 0xF1, 0x12, 0x8C, 0x09, 0x2C, 0x27, 0xD4, 0xDA, 0x50, 0x8F, -+ 0xD4, 0xF5, 0x0E, 0xFA, 0x74, 0xA7, 0x31, 0x57, 0x05, 0x9A, 0x4B, 0x2F, 0x41, 0xFE, 0x8B, 0xF9, 0x67, 0x16, 0x79, 0x69, 0xB9, 0x3B, 0xF5, 0x20, 0x45, 0x84, 0x26, 0x90, 0x32, 0x42, 0x9E, 0x35, -+ 0x77, 0x70, 0x4B, 0xDF, 0x68, 0x98, 0x00, 0xDD, 0x8B, 0xDE, 0x82, 0x6B, 0x74, 0xCE, 0xF5, 0x10, 0xA1, 0xE0, 0x87, 0x02, 0x3F, 0x09, 0x26, 0xE9, 0x7F, 0x37, 0x92, 0x6B, 0x16, 0xEF, 0x78, 0x6C, -+ 0x37, 0xEC, 0x21, 0xF2, 0x40, 0x71, 0x04, 0xD3, 0x95, 0x4A, 0x7A, 0x07, 0xC3, 0x0D, 0xE2, 0xD6, 0x78, 0x84, 0x02, 0xD7, 0x1A, 0x56, 0x2E, 0xA5, 0x4C, 0x79, 0xB4, 0x19, 0x7D, 0x20, 0x2C, 0x97, -+ 0x72, 0x5D, 0x2D, 0x8B, 0x7E, 0x73, 0x32, 0xF3, 0xFF, 0x1A, 0x6F, 0xAD, 0x49, 0xA4, 0xC0, 0x0C, 0xD1, 0xA4, 0x47, 0x65, 0x1B, 0x8E, 0x08, 0xD8, 0x50, 0x6B, 0xCA, 0x82, 0x3E, 0x10, 0xEF, 0x41, -+ 0x16, 0xE6, 0xCF, 0x49, 0x67, 0x5C, 0x43, 0x30, 0xA1, 0xDE, 0x19, 0x08, 0xDD, 0xB5, 0x9F, 0x7E, 0xA5, 0xF8, 0x9C, 0x94, 0xCE, 0x50, 0x0F, 0x82, 0xB4, 0x3C, 0xE7, 0x89, 0x15, 0x84, 0x73, 0xB9, -+ 0xE0, 0x79, 0x05, 0xD8, 0xE8, 0x61, 0x5E, 0xDE, 0xF0, 0x21, 0x38, 0x3F, 0xC3, 0x1D, 0x61, 0x8C, 0x5C, 0xE6, 0x25, 0x65, 0x3B, 0x40, 0xC2, 0x1B, 0xD7, 0xE0, 0xBC, 0x78, 0x3D, 0x93, 0xBE, 0xC1, -+ 0xB7, 0xA5, 0xB4, 0xBB, 0xC6, 0xC2, 0x81, 0xB7, 0x77, 0x55, 0x47, 0x39, 0x0E, 0xF3, 0xD3, 0x0E, 0x27, 0x73, 0x99, 0x36, 0x93, 0x08, 0xD8, 0xA1, 0xCD, 0xC2, 0xE1, 0xDB, 0xD6, 0xF1, 0x58, 0x97, -+ 0x0A, 0xC2, 0xAC, 0x5C, 0x2C, 0x94, 0x81, 0x97, 0x5B, 0x80, 0x95, 0x80, 0xC0, 0xEA, 0x89, 0x91, 0x2C, 0x07, 0x66, 0xF4, 0x58, 0x30, 0xA8, 0x96, 0x3F, 0xBB, 0x7E, 0x17, 0xD8, 0x43, 0x85, 0x17, -+ 0x5A, 0x6E, 0x07, 0x54, 0x68, 0x3C, 0xBF, 0xBB, 0xA6, 0x36, 0x45, 0x94, 0xF6, 0xB5, 0x00, 0x5C, 0x15, 0xBD, 0x5F, 0x85, 0x73, 0x2B, 0x5A, 0x63, 0xF2, 0x62, 0x67, 0xAB, 0x17, 0x04, 0x8C, 0x61, -+ 0x99, 0x20, 0x00, 0x19, 0xAD, 0xD6, 0xA4, 0xD1, 0xAC, 0xD0, 0x40, 0x5C, 0x38, 0x76, 0x66, 0xE8, 0x71, 0x11, 0xB9, 0x82, 0x5A, 0xFB, 0x97, 0x51, 0xCD, 0x3F, 0x9D, 0x8A, 0x45, 0xC6, 0xB2, 0x08, -+ 0xD2, 0xD3, 0x33, 0xB6, 0xC5, 0x9F, 0x98, 0xBC, 0xF2, 0x84, 0xC8, 0x54, 0xCF, 0x7D, 0x4F, 0x67, 0x54, 0xFD, 0x75, 0xEE, 0x06, 0x8C, 0x88, 0x67, 0x8E, 0xE7, 0x56, 0x5B, 0x47, 0xB3, 0x6E, 0x68, -+ 0xA1, 0xFD, 0x7B, 0xB6, 0x0E, 0x2A, 0x8E, 0x0D, 0xF7, 0x12, 0x70, 0x20, 0xF5, 0xC6, 0x27, 0x7B, 0x3E, 0xE0, 0x58, 0x77, 0x3F, 0x9B, 0xBF, 0x1D, 0xC2, 0xE3, 0x98, 0xBC, 0x30, 0x12, 0x02, 0x12, -+ 0x1C, 0x69, 0x9C, 0x00, 0x37, 0x9D, 0x83, 0x50, 0x09, 0x96, 0x26, 0xF9, 0x09, 0x23, 0x65, 0x92, 0x40, 0x08, 0xB1, 0xA9, 0xCD, 0x9F, 0x87, 0x87, 0x82, 0x2B, 0xEE, 0x96, 0x1A, 0xBA, 0x23, 0x9C, -+ 0xDC, 0xB4, 0x18, 0xE9, 0x38, 0x60, 0xEF, 0x34, 0x8A, 0x5E, 0x96, 0x45, 0x38, 0x9A, 0x0A, 0x87, 0x8D, 0x39, 0x4F, 0x36, 0x5A, 0xEB, 0xFE, 0x28, 0x0B, 0xEE, 0x68, 0x74, 0xA3, 0x05, 0x4C, 0xD9, -+ 0x8C, 0xBD, 0x87, 0x16, 0x66, 0x28, 0x04, 0x72, 0x9F, 0xD4, 0x6F, 0xCE, 0xA9, 0xC4, 0xCF, 0x92, 0x9F, 0x2F, 0x12, 0x00, 0x06, 0xCE, 0xBC, 0xC0, 0xBF, 0x75, 0x69, 0x2D, 0x63, 0xC0, 0x44, 0x63, -+ 0x5D, 0x1A, 0x1D, 0xB6, 0x1A, 0xD1, 0x78, 0x94, 0x15, 0xE5, 0xF2, 0x24, 0x2B, 0x74, 0x00, 0xA8, 0xA7, 0x93, 0x68, 0xED, 0x60, 0x2C, 0x33, 0x64, 0x92, 0xF2, 0x70, 0x34, 0x5B, 0xE9, 0x8B, 0x2D, -+ 0xD6, 0xEA, 0x8E, 0x4C, 0x53, 0xAC, 0xA3, 0x6E, 0x3C, 0x9B, 0xA2, 0x88, 0xF2, 0x75, 0x86, 0x13, 0x4C, 0xF0, 0xB5, 0xCA, 0x9B, 0xA1, 0xEE, 0xDF, 0x20, 0xD1, 0xAB, 0x4F, 0x2D, 0x08, 0xF3, 0xB0, -+ 0x42, 0xDB, 0x89, 0xDE, 0xCF, 0xFD, 0xD2, 0x38, 0x54, 0xF3, 0x51, 0x20, 0xAD, 0xDE, 0x16, 0x03, 0x33, 0x5D, 0x56, 0x8D, 0xA9, 0x58, 0x91, 0xCF, 0x3A, 0xB2, 0x1D, 0x9A, 0xFA, 0xF6, 0x6C, 0x28, -+ 0x6C, 0x13, 0x00, 0x01, 0x9C, 0xA9, 0xBA, 0xF2, 0xFF, 0x3F, 0x67, 0x25, 0x23, 0x0C, 0x4B, 0x26, 0x98, 0x92, 0xF7, 0xA3, 0xDF, 0xD6, 0xEA, 0xB7, 0x4C, 0x31, 0x4A, 0x86, 0xF8, 0xB4, 0x7E, 0xAE, -+ 0x49, 0xF4, 0x19, 0xE4, 0xA2, 0x91, 0x7B, 0x98, 0x4F, 0xE9, 0xA0, 0x03, 0x32, 0xAF, 0xB7, 0xA5, 0x6E, 0x5E, 0x67, 0x52, 0x23, 0xAE, 0xCC, 0x50, 0x34, 0x20, 0xAF, 0x8B, 0x39, 0xFA, 0xA9, 0x20, -+ 0xE3, 0xAD, 0xA1, 0xA4, 0x3C, 0xE7, 0xBD, 0x1F, 0x7D, 0xF2, 0x30, 0x1C, 0x90, 0x27, 0xCC, 0x1C, 0xE5, 0x66, 0x6E, 0xB0, 0x93, 0x62, 0x10, 0xAF, 0xA5, 0x9E, 0x10, 0xF3, 0x07, 0xCA, 0x1F, 0x78, -+ 0x63, 0xED, 0xD6, 0xC3, 0xBB, 0x8F, 0x5D, 0x63, 0xC0, 0xCF, 0x0E, 0xA8, 0xF0, 0x6E, 0xF0, 0x8C, 0xCC, 0x24, 0xC1, 0x4F, 0x29, 0x5D, 0xD2, 0x86, 0xFD, 0x9F, 0x4E, 0x71, 0x02, 0x10, 0x9D, 0x53, -+ 0xFF, 0x5E, 0xFF, 0x4A, 0x01, 0xDC, 0xAA, 0xD5, 0xFB, 0x60, 0x55, 0xA0, 0x70, 0x3C, 0xD4, 0x71, 0xB2, 0x0B, 0x5F, 0xA4, 0x56, 0x0B, 0xDE, 0xAA, 0x13, 0x13, 0xC7, 0x64, 0x7A, 0xE7, 0x56, 0xAE, -+ 0x85, 0x91, 0x57, 0x9E, 0xA5, 0x12, 0x0E, 0x09, 0xD6, 0x79, 0x48, 0x40, 0x62, 0x9B, 0x9F, 0xEF, 0xEF, 0xC2, 0x0D, 0xB5, 0x94, 0xBA, 0xDC, 0xD1, 0x29, 0xEC, 0x49, 0x1C, 0x3C, 0xF7, 0x5A, 0xB4, -+ 0x0C, 0x47, 0x2A, 0xD2, 0x2C, 0x2D, 0xED, 0xBC, 0x77, 0xBA, 0x26, 0x71, 0xC8, 0x43, 0x48, 0x65, 0x60, 0xDC, 0x76, 0x52, 0x31, 0xBF, 0x5F, 0xDC, 0xDB, 0xCC, 0x77, 0xC8, 0x30, 0x0F, 0x9D, 0x2B, -+ 0x53, 0xEC, 0x34, 0x46, 0xD8, 0x2F, 0x08, 0x7B, 0x89, 0xBD, 0x99, 0x2F, 0x7A, 0xB0, 0xA7, 0x80, 0xB5, 0x38, 0x81, 0x18, 0xBB, 0xF1, 0x7C, 0xCB, 0xEC, 0x2D, 0x19, 0x6F, 0x3E, 0xDC, 0x47, 0x8F, -+ 0xB9, 0x47, 0xD8, 0x30, 0x2B, 0x04, 0x0A, 0x60, 0xD0, 0xBA, 0xB8, 0x5C, 0x1C, 0x5C, 0x47, 0x4E, 0xAB, 0x41, 0xE0, 0x64, 0x41, 0x06, 0x95, 0xC6, 0x0E, 0x1A, 0xCE, 0xE7, 0x9E, 0x13, 0x7D, 0x70, -+ 0x2E, 0x4A, 0x31, 0x39, 0x68, 0xA5, 0x57, 0xB9, 0x7C, 0xE6, 0x43, 0x31, 0x88, 0x8B, 0x52, 0x89, 0xCC, 0xB3, 0x7A, 0x66, 0x25, 0xE5, 0x22, 0x73, 0x71, 0x1B, 0x84, 0x64, 0x58, 0xD5, 0xD8, 0xBA, -+ 0x1A, 0xE4, 0x96, 0x53, 0x78, 0xCB, 0xE9, 0x18, 0xBF, 0x0F, 0x4B, 0xEE, 0xE1, 0xBD, 0x08, 0xFE, 0xCC, 0x66, 0x06, 0xD2, 0xF3, 0x97, 0x0C, 0x87, 0x4B, 0x0A, 0x09, 0xC4, 0x10, 0xE0, 0xC7, 0xD3, -+ 0xD6, 0x00, 0x4D, 0x93, 0xF0, 0x6F, 0xBC, 0x25, 0x8F, 0x96, 0x4A, 0x96, 0x19, 0xB2, 0xC6, 0xCA, 0x28, 0xA3, 0xA2, 0x52, 0x9B, 0xF4, 0x4F, 0xB9, 0xF2, 0x44, 0x38, 0x2C, 0xBE, 0xF9, 0x93, 0xC4, -+ 0x18, 0xA3, 0x88, 0x0F, 0x8D, 0x5F, 0xBA, 0x41, 0xF0, 0x58, 0x24, 0xF4, 0xF3, 0x3B, 0x24, 0xB8, 0x86, 0xD1, 0x15, 0xB8, 0x19, 0x81, 0x6C, 0x9B, 0x7D, 0xB5, 0x1F, 0x2A, 0xA0, 0xCC, 0x6B, 0x01, -+ 0xB6, 0xAB, 0x21, 0x1F, 0xAD, 0x55, 0x28, 0x4C, 0xDC, 0x04, 0x52, 0x47, 0x85, 0x90, 0x59, 0xBD, 0x36, 0x88, 0x7F, 0x3A, 0xE2, 0xB6, 0xCF, 0x7F, 0x87, 0xEC, 0x2D, 0xF3, 0xC8, 0x9D, 0x43, 0xD2, -+ 0x7E, 0x5E, 0x48, 0x88, 0xBA, 0xE6, 0x5B, 0x69, 0x24, 0xFA, 0x5D, 0xF0, 0xB2, 0xED, 0x44, 0xE3, 0xE3, 0x79, 0x4B, 0x68, 0x90, 0xF9, 0x33, 0xF9, 0xFB, 0xA7, 0xA7, 0x89, 0xFC, 0x63, 0xCE, 0xB7, -+ 0x43, 0x60, 0xD4, 0xAC, 0x9C, 0x64, 0xF1, 0x0C, 0xFC, 0x0A, 0xB3, 0x74, 0xC7, 0x12, 0xA3, 0xCC, 0x6C, 0x87, 0x6B, 0x22, 0xF6, 0xD9, 0xFE, 0xF1, 0xC3, 0x87, 0xBF, 0x6B, 0xDE, 0x75, 0x79, 0x2A, -+ 0xF9, 0x09, 0x4E, 0xC1, 0x7E, 0xB8, 0xB5, 0x5D, 0x35, 0x5F, 0xF0, 0xAE, 0x9D, 0x62, 0x11, 0x1A, 0xD8, 0xA3, 0xCB, 0xA4, 0xF5, 0x66, 0x3D, 0x94, 0xA3, 0x8A, 0x43, 0xE3, 0x52, 0x97, 0x9D, 0xB3, -+ 0xDF, 0xDF, 0x32, 0x98, 0x85, 0x34, 0xCD, 0x45, 0xFD, 0x43, 0x6E, 0x69, 0x9C, 0x46, 0x7F, 0x6D, 0xDD, 0x50, 0x76, 0xB4, 0xE5, 0xF7, 0xF3, 0x82, 0xAF, 0x45, 0xD3, 0x17, 0x0F, 0x25, 0xB5, 0x41, -+ 0x50, 0xD6, 0x4D, 0x35, 0xA8, 0x18, 0x55, 0xF4, 0xB2, 0x2B, 0xAC, 0x9F, 0xA1, 0x7D, 0xEF, 0xAD, 0x73, 0xB1, 0x4B, 0x15, 0x84, 0x0E, 0x08, 0x70, 0xDA, 0xF5, 0xB9, 0x2A, 0x30, 0xD2, 0x37, 0xBF, -+ 0x0C, 0x08, 0xCB, 0x8C, 0x9E, 0xBD, 0x41, 0x59, 0xD3, 0xBB, 0x2D, 0x47, 0x4E, 0x3E, 0x10, 0x6C, 0xC4, 0x68, 0xE6, 0xA2, 0x43, 0x35, 0x12, 0x48, 0x10, 0xF4, 0x86, 0xA6, 0x47, 0x3C, 0x26, 0xA5, -+ 0xD7, 0x83, 0x26, 0x4F, 0xD8, 0xA3, 0x68, 0x5C, 0x09, 0xD4, 0xEF, 0x77, 0xBD, 0x9A, 0x9A, 0x5C, 0x0B, 0x57, 0x8C, 0x95, 0xE7, 0xCA, 0xA3, 0x4E, 0xCE, 0x46, 0xF8, 0x48, 0x37, 0x47, 0xEE, 0x58, -+ 0x4D, 0xBB, 0x2D, 0x97, 0x20, 0x76, 0xD7, 0x63, 0xB0, 0xB5, 0x50, 0xE2, 0xCA, 0xE8, 0x34, 0x9E, 0x06, 0x09, 0xF1, 0x4F, 0x0A, 0x8F, 0x51, 0x10, 0xCA, 0xA4, 0xCD, 0xAB, 0xDD, 0x44, 0x40, 0xAD, -+ 0x16, 0x9C, 0x2A, 0xBE, 0x86, 0xEE, 0x1C, 0x68, 0x0D, 0x6E, 0x94, 0x88, 0x29, 0x64, 0xD8, 0x70, 0xCF, 0xEF, 0x70, 0xA4, 0xF4, 0xC0, 0x4B, 0x49, 0xCC, 0x4A, 0x4F, 0xF6, 0xD4, 0xB9, 0xE3, 0x69, -+ 0x18, 0xC1, 0x8A, 0x6D, 0x5C, 0x4A, 0xF4, 0x7C, 0xCF, 0x09, 0xFF, 0x64, 0xC7, 0x7A, 0xE3, 0xBF, 0xBC, 0xFA, 0x50, 0x4E, 0x16, 0x9E, 0xAB, 0xB3, 0x06, 0x95, 0x1A, 0x28, 0xAF, 0xF2, 0xFA, 0xB7, -+ 0xA5, 0xBA, 0x47, 0x6F, 0x56, 0x50, 0xBC, 0x7D, 0xA1, 0x92, 0xD4, 0xB0, 0xEB, 0xFA, 0xAB, 0xAB, 0xE7, 0x72, 0xED, 0xE2, 0xA1, 0x07, 0x1D, 0x5C, 0x4F, 0xC3, 0x3C, 0x25, 0x25, 0xE4, 0x0D, 0x08, -+ 0x2F, 0xA9, 0x35, 0xBD, 0x32, 0xFF, 0x25, 0x06, 0xB3, 0xA1, 0x31, 0xE3, 0x15, 0x81, 0xB6, 0xC9, 0x44, 0xC2, 0x5F, 0x2D, 0x81, 0x75, 0x5C, 0x39, 0xD3, 0xBF, 0xC0, 0xC6, 0xDE, 0x93, 0xE3, 0x55, -+ 0x57, 0xAB, 0x1C, 0xF3, 0x47, 0x2B, 0x4A, 0x32, 0x98, 0x09, 0x86, 0xA3, 0x1F, 0x88, 0x28, 0x73, 0x52, 0x19, 0x38, 0xD8, 0xBF, 0xFE, 0x97, 0x36, 0x9F, 0xE2, 0x97, 0x46, 0xAC, 0xFC, 0x8F, 0x12, -+ 0xDE, 0xEE, 0x0E, 0x9A, 0xC3, 0xE1, 0x67, 0x60, 0x20, 0x22, 0x43, 0x43, 0x58, 0xF9, 0xDC, 0x33, 0xB2, 0xD4, 0x40, 0x8F, 0xD0, 0x89, 0x54, 0xF9, 0x74, 0x5A, 0x0B, 0xD6, 0x5B, 0xC7, 0x7E, 0xE8, -+ 0xBE, 0xA7, 0x1B, 0xFA, 0x76, 0x40, 0xC1, 0x35, 0xED, 0x19, 0xCC, 0x2F, 0x1C, 0x22, 0xE0, 0xD6, 0xB0, 0x2D, 0xA6, 0xDF, 0x24, 0xDB, 0x05, 0xA6, 0x48, 0x0D, 0xB4, 0x52, 0x27, 0xDC, 0xC9, 0x7A, -+ 0xDC, 0xEC, 0xB3, 0x91, 0x7F, 0x08, 0x6C, 0x6E, 0x98, 0x08, 0x3A, 0x21, 0x2D, 0x54, 0xDC, 0x4B, 0x81, 0x0F, 0x68, 0x9C, 0x4F, 0x98, 0x43, 0xD2, 0xFB, 0x9F, 0x57, 0x26, 0xB8, 0x76, 0x64, 0xCD, -+ 0x32, 0x2C, 0x28, 0xB6, 0xF1, 0xE0, 0x1F, 0xA9, 0x1A, 0xB3, 0x50, 0x2F, 0xAC, 0x01, 0xAF, 0xCF, 0x52, 0xC9, 0xB3, 0xD2, 0xAA, 0x20, 0xE1, 0xB3, 0x85, 0xEF, 0x47, 0x0C, 0xB3, 0x30, 0x78, 0x19, -+ 0x8B, 0x5C, 0x43, 0x95, 0xA0, 0x32, 0x9C, 0xB1, 0x0F, 0x9A, 0x4E, 0x96, 0xF4, 0x3E, 0x51, 0x16, 0x1F, 0xAA, 0xE1, 0x90, 0xEB, 0x8C, 0x39, 0x69, 0xCE, 0xC2, 0x97, 0x7B, 0x08, 0xF6, 0x8D, 0x24, -+ 0xEF, 0xCE, 0x56, 0x65, 0x11, 0xFE, 0xB6, 0x54, 0xCC, 0x5F, 0xA1, 0xFE, 0x67, 0x57, 0x1F, 0x58, 0xD8, 0x48, 0xBE, 0x7C, 0x56, 0x4A, 0xF5, 0x66, 0x39, 0x06, 0x39, 0xF8, 0x16, 0x92, 0xA7, 0xB7, -+ 0xC0, 0xF9, 0xF5, 0xAD, 0x85, 0xB8, 0x2F, 0x6A, 0x83, 0x2C, 0x9D, 0xA5, 0x2B, 0x6A, 0x47, 0xD2, 0x3F, 0x9E, 0xCF, 0xAD, 0x44, 0x99, 0x83, 0xC9, 0x39, 0x65, 0x46, 0x58, 0xB1, 0x0A, 0xDD, 0xC0, -+ 0xB4, 0xAA, 0xDB, 0xB7, 0xB8, 0x5E, 0xA6, 0x02, 0xDA, 0x76, 0x17, 0xD1, 0xB4, 0xA4, 0x5D, 0x86, 0xB8, 0xD0, 0x9D, 0x2C, 0x5A, 0x40, 0x2A, 0x67, 0x58, 0xE0, 0x6A, 0xAA, 0x15, 0x4A, 0xD0, 0x96, -+ 0x67, 0x8C, 0xBD, 0xD9, 0xCA, 0x6F, 0x5D, 0x92, 0xB0, 0xD7, 0x38, 0x50, 0x1E, 0x18, 0xC1, 0xDC, 0xD2, 0x68, 0xDE, 0x01, 0x12, 0x00, 0x59, 0x48, 0x2D, 0xFC, 0xD1, 0x2B, 0x9B, 0xF2, 0x6E, 0x1C, -+ 0xF3, 0xB0, 0x99, 0x70, 0xC4, 0x3C, 0xF5, 0x62, 0x0C, 0xA8, 0xD4, 0xE2, 0xFD, 0x31, 0xE5, 0xA8, 0x9E, 0xF8, 0xDD, 0x93, 0x17, 0xE6, 0xCF, 0x55, 0xB3, 0xFB, 0x19, 0xC0, 0x72, 0xE9, 0xD5, 0xDD, -+ 0xB9, 0x74, 0xEF, 0x60, 0x82, 0x71, 0x1E, 0x99, 0x15, 0xD3, 0x43, 0x4E, 0x7D, 0x34, 0xE7, 0xC3, 0x25, 0xA8, 0xD9, 0x2B, 0x66, 0xB0, 0x83, 0xDF, 0xD6, 0xCF, 0xD1, 0x62, 0xFD, 0x66, 0x65, 0xDF, -+ 0x9A, 0xBF, 0x18, 0x8F, 0x2D, 0xC5, 0x83, 0xFD, 0xFA, 0xBC, 0x99, 0x7D, 0x78, 0x70, 0xE9, 0x11, 0xD3, 0xC5, 0xEB, 0x5B, 0xDF, 0x80, 0xBA, 0x8D, 0xE6, 0xC4, 0x6C, 0x88, 0xE0, 0x49, 0xD3, 0x9E, -+ 0x2F, 0xA2, 0x96, 0xCB, 0xE0, 0x69, 0xCA, 0x69, 0x49, 0x4F, 0x89, 0x08, 0x87, 0x67, 0x9C, 0xB3, 0xB0, 0xE6, 0x04, 0x3D, 0x02, 0xB8, 0xF2, 0x4A, 0x3F, 0x14, 0x83, 0xC9, 0x47, 0x81, 0xB6, 0xB0, -+ 0x1A, 0xF8, 0x01, 0x60, 0x63, 0x99, 0xC3, 0xAC, 0x62, 0x60, 0x3D, 0x86, 0xF7, 0xD5, 0x29, 0x55, 0xC3, 0x12, 0x59, 0x58, 0xC0, 0x4D, 0x57, 0x2A, 0x34, 0x63, 0x4C, 0xD2, 0x36, 0x73, 0x58, 0xA8, -+ 0x6A, 0xD2, 0xB4, 0x81, 0xB3, 0x26, 0xF2, 0xF8, 0x9D, 0x4B, 0x4D, 0xC0, 0x94, 0xE9, 0x89, 0x18, 0xB5, 0xAE, 0xD8, 0xF4, 0xEB, 0xA4, 0x9C, 0x56, 0x17, 0x2B, 0x16, 0x51, 0xB6, 0x60, 0xB8, 0x70, -+ 0x47, 0xBA, 0x65, 0x2A, 0x64, 0x0C, 0xA7, 0xB0, 0x69, 0x97, 0x1F, 0xA2, 0xA6, 0x6C, 0x01, 0x95, 0x67, 0xC3, 0x8B, 0x7F, 0x5D, 0x26, 0x21, 0xE7, 0xCB, 0x4B, 0xAA, 0x41, 0x40, 0xEF, 0x5B, 0xB4, -+ 0x91, 0x96, 0x0D, 0x80, 0xF5, 0x01, 0x01, 0xA0, 0x04, 0xE0, 0x79, 0xF5, 0xB5, 0x1F, 0x39, 0x4B, 0x02, 0x9E, 0x3E, 0xBF, 0xBD, 0xFC, 0x33, 0x59, 0x4E, 0x95, 0xF6, 0xA3, 0x7B, 0xC4, 0xF6, 0xA3, -+ 0x29, 0xB5, 0xC1, 0xD8, 0xE0, 0x41, 0x45, 0x40, 0x3D, 0x33, 0xA5, 0xC7, 0x04, 0xB3, 0x43, 0x51, 0x82, 0x31, 0xB0, 0x86, 0x46, 0xE4, 0xDA, 0x9D, 0x5A, 0x4E, 0xCA, 0xBC, 0xF5, 0x0F, 0x2B, 0x39, -+ 0x21, 0xE8, 0x5A, 0x84, 0xC4, 0x09, 0xA1, 0xF6, 0x27, 0xEE, 0x0F, 0x6E, 0xB1, 0xB1, 0xB9, 0xA9, 0xFC, 0xCA, 0x9C, 0xBD, 0x65, 0xCE, 0xA9, 0x00, 0x88, 0x79, 0x7D, 0xF7, 0x51, 0x0B, 0x86, 0x1B, -+ 0x86, 0xCA, 0x4E, 0x99, 0x8A, 0xF0, 0x75, 0x94, 0x9B, 0x16, 0x7C, 0xBD, 0x66, 0xBC, 0xBE, 0x4C, 0x51, 0x30, 0x34, 0x7D, 0x87, 0x7C, 0xE5, 0xA8, 0x47, 0x9F, 0x4D, 0x56, 0xD3, 0x98, 0x14, 0x6C, -+ 0xE2, 0xF1, 0xA7, 0x85, 0x42, 0x8D, 0xDD, 0xED, 0xAD, 0x66, 0xAA, 0xB2, 0x87, 0xCA, 0xAE, 0x59, 0x14, 0x24, 0x35, 0x56, 0x1A, 0x40, 0x1B, 0x50, 0x93, 0x43, 0x92, 0xD4, 0x32, 0x9C, 0x3C, 0x21, -+ 0xAE, 0x48, 0x32, 0x86, 0x53, 0xE3, 0xAE, 0x57, 0x5E, 0x18, 0x1D, 0xB3, 0x89, 0xBE, 0x43, 0x97, 0x16, 0xF6, 0xE3, 0xF3, 0xE2, 0xDC, 0x61, 0xE4, 0xEC, 0xCF, 0xE5, 0x48, 0xAB, 0x7D, 0x71, 0x5E, -+ 0xAB, 0x49, 0xCF, 0xD7, 0x64, 0x1D, 0xC3, 0x7F, 0x5C, 0x0C, 0x0C, 0x34, 0x96, 0x5C, 0x06, 0xA1, 0x56, 0x70, 0x5F, 0x98, 0x69, 0x58, 0x79, 0x1A, 0x59, 0xCD, 0x5B, 0x48, 0x90, 0xD9, 0xA1, 0xB1, -+ 0xCF, 0x08, 0x54, 0x1A, 0x7A, 0x93, 0xD0, 0x65, 0xDC, 0xF3, 0xB9, 0xF6, 0xC5, 0x13, 0xC0, 0x27, 0x94, 0x37, 0xD4, 0xBD, 0xBE, 0x62, 0x71, 0x40, 0xD2, 0x94, 0x63, 0x26, 0x39, 0xB7, 0x46, 0x89, -+ 0x1C, 0xA9, 0x70, 0xDF, 0x6D, 0x73, 0x21, 0xF1, 0xA9, 0x13, 0xAD, 0x9B, 0xED, 0x3F, 0xE0, 0xBC, 0x02, 0xAF, 0xBB, 0x87, 0x20, 0xB7, 0x42, 0xEB, 0x40, 0x9E, 0xB8, 0x2C, 0x66, 0x96, 0x7F, 0x60, -+ 0xEB, 0xF4, 0xCE, 0xE2, 0x50, 0x8E, 0xF7, 0xF7, 0x03, 0x5B, 0x7F, 0xC7, 0xD9, 0x17, 0x8E, 0x73, 0xED, 0xA0, 0x52, 0x9B, 0xCC, 0x9E, 0xB2, 0x0B, 0x9C, 0xD7, 0x74, 0xC5, 0x64, 0x88, 0x2D, 0xD5, -+ 0x7C, 0xCF, 0xB5, 0x46, 0x63, 0xCF, 0xA8, 0x1B, 0x91, 0x4E, 0x14, 0xC4, 0xD7, 0xD7, 0x4B, 0xCE, 0x13, 0x9B, 0x7E, 0xC5, 0x3E, 0xA6, 0x1B, 0x0B, 0xF0, 0xDB, 0x61, 0xC7, 0x3A, 0x7A, 0x95, 0xF5, -+ 0x96, 0xE1, 0x28, 0xEC, 0xA7, 0xA8, 0xC9, 0xEB, 0x92, 0xC2, 0x94, 0x4E, 0xF5, 0x64, 0x94, 0x3E, 0xDA, 0xCF, 0xD4, 0x8A, 0x5A, 0x8B, 0xDC, 0x7D, 0x0F, 0xAB, 0xFA, 0xB6, 0xDA, 0xD3, 0xC5, 0xFE, -+ 0xEE, 0xB1, 0x39, 0x81, 0x8C, 0x85, 0x73, 0xA7, 0xBD, 0x75, 0x06, 0xB1, 0x8B, 0xFC, 0xE2, 0xBA, 0x15, 0x10, 0x5B, 0x7C, 0xEC, 0x83, 0x09, 0x6C, 0x8C, 0xAE, 0x99, 0xFB, 0xE5, 0xEA, 0x2C, 0x10, -+ 0xF1, 0xBC, 0xF3, 0xF1, 0x58, 0x26, 0xA0, 0xD8, 0xEC, 0xA9, 0x7C, 0x42, 0xBB, 0x17, 0xCB, 0x9B, 0xED, 0x21, 0x9A, 0x8C, 0xDA, 0x9A, 0x57, 0x62, 0x85, 0x7E, 0xFB, 0xA4, 0x3B, 0x7F, 0x34, 0x15, -+ 0x7A, 0xEB, 0x49, 0x2F, 0x81, 0xD2, 0xEA, 0x15, 0x6F, 0xF4, 0x99, 0x12, 0xA4, 0x04, 0x9B, 0xE9, 0x3E, 0x12, 0xA2, 0x26, 0x29, 0x5D, 0x8F, 0x68, 0x5C, 0x89, 0xBD, 0xA3, 0x83, 0x1E, 0xB7, 0x3B, -+ 0xE4, 0x65, 0x7D, 0xBE, 0x3B, 0x09, 0xC0, 0x9D, 0x1D, 0xAF, 0x94, 0x4C, 0x26, 0x64, 0xE9, 0xBD, 0xE9, 0x17, 0x41, 0x98, 0xFE, 0x3D, 0xBA, 0xE4, 0xDE, 0x09, 0x45, 0x22, 0x9E, 0xDD, 0xF5, 0x96, -+ 0x1B, 0x2F, 0x3D, 0x71, 0x9F, 0xAB, 0xAE, 0xB9, 0xBB, 0xD0, 0xD6, 0x3F, 0x6B, 0x74, 0xF1, 0x47, 0x70, 0x9C, 0xB2, 0xC5, 0xCD, 0xDD, 0x25, 0x35, 0x41, 0xA2, 0xD4, 0xDB, 0xFE, 0x2F, 0x61, 0x9F, -+ 0xB6, 0xC0, 0xD8, 0x0D, 0x1D, 0x3D, 0x84, 0x93, 0x98, 0xBD, 0xF1, 0xFB, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x0F, 0x16, 0x1D, 0x23, 0x2D, -+ }, -+ }, -+ { -+ .name = "Dilithium Round 3, Level 3 (6-5) KAT 1", -+ .version = 0, -+ .keyform = CK_IBM_DILITHIUM_KEYFORM_ROUND3_65, -+ .rho_len = 32, -+ .rho = { -+ 0xB5, 0x41, 0xC1, 0xE9, 0x2C, 0xEA, 0xDD, 0x90, 0x4A, 0x09, 0xEC, 0x08, 0xAD, 0x30, 0x6D, 0x97, 0x47, 0x34, 0xA0, 0x77, 0x86, 0x84, 0x71, 0xE5, 0x8D, 0x07, 0x71, 0x87, 0xC4, 0x66, 0x04, 0xCF, -+ }, -+ .seed_len = 32, -+ .seed = { -+ 0x95, 0x2D, 0x21, 0x81, 0xAC, 0x1F, 0x62, 0x59, 0x6F, 0x76, 0x7E, 0xFC, 0xA0, 0xB5, 0x5D, 0xB0, 0x92, 0xEF, 0x81, 0xDB, 0x66, 0xF9, 0xFF, 0xF1, 0x5F, 0x13, 0xD7, 0xAE, 0xEA, 0xCD, 0x8B, 0x3A, -+ }, -+ .tr_len = 32, -+ .tr = { -+ 0x2F, 0x2C, 0xFF, 0x6F, 0x47, 0xA6, 0x66, 0xF4, 0xAA, 0xE3, 0x22, 0xC8, 0xEC, 0xA7, 0x34, 0x32, 0x87, 0x99, 0xBC, 0xD5, 0x1D, 0x74, 0x93, 0x9F, 0x63, 0x5B, 0xEA, 0x9C, 0x37, 0x6A, 0x1F, 0xD5, -+ }, -+ .s1_len = 640, -+ .s1 = { -+ 0x05, 0x62, 0x52, 0x31, 0x01, 0x18, 0x65, 0x21, 0x53, 0x35, 0x41, 0x52, 0x03, 0x67, 0x04, 0x15, 0x60, 0x14, 0x16, 0x76, 0x16, 0x34, 0x61, 0x06, 0x86, 0x87, 0x65, 0x58, 0x02, 0x61, 0x00, 0x71, -+ 0x02, 0x84, 0x17, 0x70, 0x51, 0x51, 0x55, 0x73, 0x86, 0x43, 0x28, 0x18, 0x46, 0x24, 0x36, 0x82, 0x54, 0x27, 0x68, 0x81, 0x11, 0x56, 0x32, 0x02, 0x40, 0x16, 0x87, 0x63, 0x20, 0x07, 0x36, 0x72, -+ 0x02, 0x31, 0x72, 0x22, 0x40, 0x43, 0x20, 0x52, 0x01, 0x33, 0x64, 0x34, 0x75, 0x88, 0x30, 0x25, 0x81, 0x06, 0x63, 0x44, 0x35, 0x54, 0x48, 0x71, 0x30, 0x15, 0x82, 0x47, 0x53, 0x74, 0x18, 0x43, -+ 0x11, 0x88, 0x46, 0x14, 0x31, 0x55, 0x87, 0x03, 0x70, 0x50, 0x04, 0x64, 0x73, 0x43, 0x81, 0x38, 0x37, 0x33, 0x78, 0x65, 0x66, 0x25, 0x75, 0x20, 0x81, 0x45, 0x68, 0x75, 0x11, 0x56, 0x88, 0x43, -+ 0x22, 0x40, 0x73, 0x80, 0x21, 0x42, 0x80, 0x73, 0x86, 0x60, 0x08, 0x47, 0x10, 0x10, 0x83, 0x40, 0x67, 0x57, 0x38, 0x07, 0x63, 0x10, 0x77, 0x42, 0x27, 0x58, 0x61, 0x46, 0x47, 0x68, 0x31, 0x72, -+ 0x65, 0x24, 0x11, 0x07, 0x05, 0x35, 0x66, 0x70, 0x67, 0x68, 0x62, 0x80, 0x40, 0x37, 0x85, 0x64, 0x10, 0x40, 0x76, 0x26, 0x28, 0x42, 0x32, 0x02, 0x48, 0x70, 0x17, 0x38, 0x80, 0x88, 0x72, 0x36, -+ 0x24, 0x17, 0x22, 0x36, 0x71, 0x77, 0x82, 0x46, 0x64, 0x40, 0x16, 0x27, 0x78, 0x81, 0x81, 0x15, 0x11, 0x01, 0x54, 0x45, 0x38, 0x12, 0x81, 0x28, 0x11, 0x74, 0x42, 0x67, 0x15, 0x16, 0x57, 0x08, -+ 0x02, 0x86, 0x44, 0x83, 0x58, 0x88, 0x17, 0x36, 0x73, 0x61, 0x04, 0x42, 0x32, 0x37, 0x70, 0x50, 0x82, 0x45, 0x17, 0x63, 0x48, 0x72, 0x27, 0x17, 0x70, 0x74, 0x03, 0x85, 0x53, 0x12, 0x11, 0x85, -+ 0x32, 0x08, 0x01, 0x14, 0x85, 0x56, 0x38, 0x01, 0x27, 0x04, 0x86, 0x07, 0x88, 0x35, 0x04, 0x08, 0x05, 0x66, 0x86, 0x23, 0x01, 0x43, 0x61, 0x43, 0x68, 0x67, 0x42, 0x75, 0x52, 0x72, 0x48, 0x37, -+ 0x27, 0x47, 0x77, 0x26, 0x55, 0x30, 0x71, 0x82, 0x57, 0x72, 0x71, 0x31, 0x05, 0x65, 0x26, 0x42, 0x12, 0x25, 0x72, 0x78, 0x02, 0x35, 0x54, 0x10, 0x78, 0x28, 0x52, 0x66, 0x72, 0x54, 0x85, 0x77, -+ 0x47, 0x64, 0x68, 0x43, 0x68, 0x41, 0x57, 0x61, 0x44, 0x40, 0x46, 0x21, 0x15, 0x85, 0x01, 0x44, 0x02, 0x76, 0x66, 0x58, 0x41, 0x55, 0x26, 0x08, 0x48, 0x22, 0x15, 0x04, 0x48, 0x74, 0x43, 0x04, -+ 0x26, 0x67, 0x66, 0x68, 0x18, 0x67, 0x07, 0x01, 0x02, 0x08, 0x66, 0x76, 0x56, 0x22, 0x26, 0x42, 0x28, 0x81, 0x12, 0x36, 0x61, 0x64, 0x78, 0x01, 0x41, 0x51, 0x04, 0x40, 0x43, 0x13, 0x53, 0x70, -+ 0x22, 0x44, 0x60, 0x10, 0x75, 0x53, 0x28, 0x68, 0x68, 0x48, 0x17, 0x86, 0x08, 0x24, 0x27, 0x43, 0x23, 0x71, 0x67, 0x04, 0x21, 0x50, 0x21, 0x08, 0x46, 0x84, 0x74, 0x12, 0x88, 0x75, 0x64, 0x67, -+ 0x14, 0x27, 0x37, 0x18, 0x36, 0x47, 0x52, 0x34, 0x30, 0x24, 0x03, 0x64, 0x67, 0x15, 0x33, 0x43, 0x16, 0x33, 0x76, 0x07, 0x51, 0x11, 0x64, 0x57, 0x28, 0x75, 0x51, 0x58, 0x78, 0x38, 0x70, 0x05, -+ 0x85, 0x41, 0x81, 0x68, 0x15, 0x82, 0x86, 0x40, 0x35, 0x57, 0x32, 0x27, 0x23, 0x03, 0x13, 0x16, 0x52, 0x05, 0x34, 0x16, 0x76, 0x25, 0x18, 0x57, 0x61, 0x06, 0x01, 0x44, 0x41, 0x71, 0x04, 0x43, -+ 0x32, 0x01, 0x24, 0x71, 0x88, 0x88, 0x58, 0x58, 0x34, 0x35, 0x86, 0x20, 0x88, 0x72, 0x18, 0x88, 0x44, 0x50, 0x24, 0x77, 0x34, 0x42, 0x64, 0x61, 0x30, 0x61, 0x43, 0x32, 0x31, 0x54, 0x31, 0x45, -+ 0x56, 0x62, 0x64, 0x08, 0x11, 0x81, 0x50, 0x41, 0x56, 0x14, 0x63, 0x58, 0x33, 0x45, 0x37, 0x57, 0x65, 0x05, 0x12, 0x53, 0x40, 0x65, 0x57, 0x80, 0x57, 0x46, 0x11, 0x57, 0x12, 0x83, 0x07, 0x42, -+ 0x58, 0x38, 0x87, 0x34, 0x30, 0x05, 0x73, 0x88, 0x46, 0x28, 0x74, 0x43, 0x17, 0x65, 0x81, 0x77, 0x28, 0x74, 0x14, 0x42, 0x06, 0x06, 0x34, 0x73, 0x62, 0x26, 0x61, 0x84, 0x76, 0x20, 0x25, 0x68, -+ 0x08, 0x65, 0x13, 0x77, 0x83, 0x68, 0x85, 0x55, 0x74, 0x68, 0x32, 0x43, 0x86, 0x70, 0x63, 0x05, 0x30, 0x88, 0x82, 0x44, 0x84, 0x26, 0x86, 0x17, 0x87, 0x31, 0x28, 0x87, 0x33, 0x53, 0x02, 0x81, -+ 0x88, 0x30, 0x03, 0x51, 0x74, 0x80, 0x53, 0x65, 0x78, 0x17, 0x77, 0x02, 0x61, 0x37, 0x38, 0x36, 0x23, 0x42, 0x35, 0x86, 0x13, 0x00, 0x38, 0x47, 0x58, 0x24, 0x81, 0x84, 0x78, 0x87, 0x77, 0x11, -+ }, -+ .s2_len = 768, -+ .s2 = { -+ 0x41, 0x51, 0x50, 0x83, 0x02, 0x36, 0x55, 0x53, 0x14, 0x86, 0x41, 0x14, 0x18, 0x51, 0x73, 0x54, 0x86, 0x58, 0x16, 0x74, 0x14, 0x70, 0x76, 0x32, 0x16, 0x38, 0x05, 0x48, 0x85, 0x00, 0x17, 0x23, -+ 0x87, 0x64, 0x44, 0x86, 0x32, 0x72, 0x45, 0x37, 0x02, 0x58, 0x32, 0x13, 0x44, 0x15, 0x56, 0x02, 0x45, 0x78, 0x70, 0x14, 0x76, 0x84, 0x33, 0x88, 0x04, 0x56, 0x16, 0x57, 0x06, 0x64, 0x01, 0x67, -+ 0x66, 0x35, 0x37, 0x48, 0x13, 0x43, 0x77, 0x37, 0x01, 0x23, 0x03, 0x82, 0x21, 0x02, 0x00, 0x30, 0x36, 0x47, 0x22, 0x74, 0x67, 0x47, 0x57, 0x42, 0x87, 0x64, 0x03, 0x55, 0x01, 0x05, 0x73, 0x40, -+ 0x62, 0x78, 0x37, 0x70, 0x16, 0x65, 0x80, 0x22, 0x10, 0x38, 0x48, 0x44, 0x78, 0x04, 0x15, 0x28, 0x27, 0x12, 0x86, 0x53, 0x12, 0x13, 0x46, 0x47, 0x53, 0x82, 0x35, 0x14, 0x33, 0x50, 0x41, 0x77, -+ 0x05, 0x25, 0x38, 0x31, 0x75, 0x35, 0x02, 0x01, 0x83, 0x86, 0x22, 0x31, 0x16, 0x41, 0x64, 0x55, 0x71, 0x06, 0x32, 0x38, 0x42, 0x81, 0x06, 0x23, 0x86, 0x53, 0x02, 0x84, 0x51, 0x12, 0x74, 0x55, -+ 0x64, 0x34, 0x28, 0x02, 0x35, 0x30, 0x50, 0x38, 0x58, 0x56, 0x81, 0x54, 0x01, 0x23, 0x50, 0x75, 0x53, 0x53, 0x31, 0x52, 0x55, 0x32, 0x17, 0x74, 0x78, 0x07, 0x84, 0x14, 0x12, 0x30, 0x23, 0x51, -+ 0x55, 0x10, 0x60, 0x52, 0x15, 0x03, 0x43, 0x72, 0x35, 0x01, 0x17, 0x76, 0x25, 0x10, 0x83, 0x35, 0x84, 0x23, 0x13, 0x63, 0x48, 0x31, 0x54, 0x33, 0x78, 0x64, 0x35, 0x64, 0x58, 0x80, 0x73, 0x12, -+ 0x55, 0x00, 0x71, 0x15, 0x64, 0x71, 0x34, 0x66, 0x64, 0x66, 0x15, 0x80, 0x50, 0x32, 0x87, 0x05, 0x56, 0x80, 0x74, 0x85, 0x88, 0x46, 0x68, 0x40, 0x36, 0x78, 0x61, 0x22, 0x18, 0x66, 0x20, 0x78, -+ 0x18, 0x43, 0x60, 0x53, 0x75, 0x70, 0x47, 0x15, 0x58, 0x06, 0x75, 0x73, 0x76, 0x52, 0x11, 0x42, 0x40, 0x10, 0x77, 0x27, 0x16, 0x43, 0x23, 0x46, 0x70, 0x76, 0x05, 0x81, 0x58, 0x27, 0x21, 0x26, -+ 0x55, 0x02, 0x47, 0x75, 0x41, 0x31, 0x87, 0x37, 0x83, 0x33, 0x28, 0x71, 0x27, 0x68, 0x11, 0x70, 0x34, 0x46, 0x04, 0x62, 0x86, 0x27, 0x12, 0x23, 0x76, 0x44, 0x00, 0x03, 0x44, 0x14, 0x23, 0x03, -+ 0x34, 0x44, 0x34, 0x38, 0x16, 0x75, 0x32, 0x40, 0x25, 0x52, 0x68, 0x04, 0x45, 0x55, 0x55, 0x04, 0x85, 0x57, 0x05, 0x04, 0x85, 0x80, 0x37, 0x86, 0x40, 0x14, 0x60, 0x80, 0x70, 0x63, 0x28, 0x60, -+ 0x44, 0x85, 0x21, 0x80, 0x03, 0x00, 0x16, 0x36, 0x23, 0x64, 0x00, 0x32, 0x58, 0x64, 0x67, 0x35, 0x23, 0x15, 0x04, 0x15, 0x26, 0x04, 0x68, 0x52, 0x01, 0x41, 0x02, 0x87, 0x68, 0x21, 0x81, 0x81, -+ 0x65, 0x83, 0x26, 0x22, 0x16, 0x05, 0x25, 0x76, 0x04, 0x30, 0x14, 0x34, 0x51, 0x74, 0x47, 0x07, 0x31, 0x27, 0x76, 0x64, 0x73, 0x22, 0x64, 0x84, 0x72, 0x77, 0x85, 0x05, 0x73, 0x73, 0x81, 0x22, -+ 0x34, 0x25, 0x43, 0x00, 0x66, 0x12, 0x58, 0x41, 0x52, 0x36, 0x82, 0x24, 0x33, 0x37, 0x11, 0x65, 0x26, 0x04, 0x83, 0x28, 0x76, 0x27, 0x26, 0x56, 0x87, 0x40, 0x05, 0x08, 0x42, 0x68, 0x48, 0x33, -+ 0x02, 0x58, 0x53, 0x45, 0x71, 0x20, 0x75, 0x16, 0x14, 0x00, 0x28, 0x54, 0x80, 0x12, 0x66, 0x21, 0x40, 0x53, 0x25, 0x78, 0x67, 0x56, 0x12, 0x25, 0x41, 0x60, 0x21, 0x07, 0x87, 0x74, 0x41, 0x38, -+ 0x70, 0x63, 0x72, 0x78, 0x75, 0x25, 0x85, 0x83, 0x63, 0x12, 0x65, 0x00, 0x20, 0x74, 0x02, 0x43, 0x18, 0x30, 0x27, 0x14, 0x38, 0x15, 0x42, 0x81, 0x87, 0x34, 0x55, 0x48, 0x78, 0x48, 0x17, 0x68, -+ 0x01, 0x22, 0x43, 0x70, 0x86, 0x55, 0x04, 0x21, 0x60, 0x24, 0x56, 0x51, 0x50, 0x45, 0x40, 0x44, 0x88, 0x23, 0x73, 0x60, 0x37, 0x56, 0x66, 0x41, 0x11, 0x40, 0x04, 0x55, 0x75, 0x32, 0x07, 0x38, -+ 0x65, 0x26, 0x65, 0x33, 0x80, 0x30, 0x24, 0x42, 0x32, 0x64, 0x43, 0x08, 0x07, 0x56, 0x05, 0x08, 0x03, 0x58, 0x10, 0x17, 0x63, 0x18, 0x84, 0x48, 0x70, 0x35, 0x16, 0x75, 0x06, 0x40, 0x52, 0x57, -+ 0x88, 0x43, 0x10, 0x05, 0x65, 0x36, 0x75, 0x40, 0x30, 0x41, 0x26, 0x18, 0x75, 0x34, 0x66, 0x08, 0x54, 0x55, 0x23, 0x61, 0x58, 0x28, 0x82, 0x18, 0x20, 0x84, 0x20, 0x08, 0x75, 0x14, 0x16, 0x66, -+ 0x11, 0x51, 0x23, 0x36, 0x44, 0x17, 0x42, 0x28, 0x31, 0x12, 0x71, 0x45, 0x66, 0x13, 0x12, 0x67, 0x76, 0x06, 0x83, 0x00, 0x02, 0x82, 0x41, 0x62, 0x05, 0x64, 0x58, 0x22, 0x75, 0x15, 0x74, 0x10, -+ 0x20, 0x41, 0x83, 0x18, 0x26, 0x05, 0x86, 0x50, 0x11, 0x13, 0x42, 0x47, 0x14, 0x48, 0x84, 0x42, 0x44, 0x83, 0x30, 0x75, 0x21, 0x67, 0x44, 0x13, 0x00, 0x14, 0x53, 0x66, 0x42, 0x54, 0x20, 0x28, -+ 0x17, 0x88, 0x37, 0x50, 0x45, 0x55, 0x66, 0x34, 0x44, 0x32, 0x14, 0x26, 0x37, 0x75, 0x42, 0x24, 0x84, 0x46, 0x52, 0x18, 0x86, 0x74, 0x58, 0x64, 0x48, 0x16, 0x84, 0x26, 0x62, 0x72, 0x03, 0x70, -+ 0x27, 0x54, 0x85, 0x17, 0x07, 0x67, 0x22, 0x63, 0x60, 0x35, 0x38, 0x41, 0x15, 0x20, 0x07, 0x52, 0x70, 0x48, 0x25, 0x81, 0x71, 0x17, 0x68, 0x84, 0x16, 0x41, 0x76, 0x20, 0x80, 0x02, 0x84, 0x34, -+ 0x33, 0x63, 0x77, 0x44, 0x07, 0x70, 0x66, 0x51, 0x75, 0x11, 0x17, 0x55, 0x22, 0x65, 0x03, 0x82, 0x28, 0x13, 0x65, 0x55, 0x78, 0x22, 0x75, 0x26, 0x66, 0x33, 0x18, 0x84, 0x35, 0x75, 0x87, 0x58, -+ }, -+ .t0_len = 2496, -+ .t0 = { -+ 0xD0, 0xC2, 0x55, 0xD5, 0x1F, 0x82, 0x80, 0xDF, 0x43, 0x10, 0x6E, 0xB1, 0x51, 0xD4, 0x44, 0xAD, 0x6E, 0x4C, 0xAB, 0x4B, 0xAC, 0xC5, 0x85, 0xAA, 0x37, 0xD7, 0x44, 0xB2, 0x45, 0x13, 0x20, 0x40, -+ 0xDC, 0x3D, 0x76, 0xAB, 0xCE, 0xA9, 0xCD, 0x44, 0x72, 0xC1, 0xCC, 0xA1, 0xF0, 0x7A, 0x49, 0x92, 0xDB, 0xD4, 0xD0, 0x52, 0x4A, 0x48, 0x2B, 0x50, 0x95, 0x71, 0x10, 0x96, 0x2A, 0xEB, 0x75, 0xFE, -+ 0x2A, 0xCD, 0x2C, 0xA3, 0x84, 0xB2, 0x06, 0xAE, 0x68, 0x98, 0xAE, 0xE2, 0x58, 0x22, 0x18, 0xC0, 0x30, 0x05, 0x9C, 0xF0, 0x61, 0x0D, 0xF2, 0x3F, 0x62, 0xFA, 0x94, 0xCE, 0x63, 0xF5, 0x05, 0x41, -+ 0x6E, 0xE5, 0x6F, 0x21, 0x3B, 0x1B, 0x04, 0xA3, 0xED, 0x78, 0x6E, 0xDE, 0x5A, 0x02, 0x74, 0xDF, 0xB8, 0x62, 0xB7, 0x64, 0x84, 0x7B, 0x48, 0x2B, 0x73, 0xD1, 0xA3, 0xE4, 0x36, 0x74, 0x43, 0x40, -+ 0xCC, 0xA3, 0x97, 0x20, 0xC7, 0xDB, 0x10, 0x16, 0x3D, 0x6B, 0x95, 0x2C, 0xDC, 0x3D, 0x8A, 0x19, 0x46, 0x7F, 0xAB, 0xB0, 0x74, 0x89, 0xDE, 0x13, 0x9D, 0x57, 0x2C, 0x8B, 0x74, 0xAB, 0x10, 0x28, -+ 0x7B, 0xCD, 0x40, 0x20, 0x5D, 0xF4, 0x8A, 0xD5, 0x43, 0x4E, 0xE1, 0x7E, 0xA0, 0x16, 0x99, 0x35, 0x36, 0x38, 0xB7, 0xBE, 0x07, 0x23, 0xE6, 0xC5, 0xF2, 0x76, 0xC9, 0xA5, 0x71, 0x82, 0xB0, 0x99, -+ 0xEC, 0xE8, 0xE9, 0x2C, 0xF0, 0xF1, 0xD1, 0xCC, 0xAC, 0xAD, 0x71, 0xBC, 0x0C, 0x7C, 0xBC, 0x0E, 0xFE, 0x26, 0x43, 0x31, 0xC2, 0xB4, 0x6F, 0x00, 0x1A, 0x3C, 0x7E, 0x3A, 0xE8, 0x35, 0xA8, 0xD1, -+ 0x00, 0xF7, 0xF4, 0xD7, 0x1C, 0x18, 0xBA, 0x1E, 0x66, 0x5C, 0xBB, 0xA8, 0xBE, 0x55, 0x9B, 0x8E, 0xD9, 0x55, 0x13, 0x67, 0xE9, 0x50, 0x05, 0x74, 0xEA, 0xDD, 0x85, 0x6E, 0x77, 0x02, 0x43, 0xD0, -+ 0x7A, 0x30, 0x61, 0xEA, 0xDD, 0x87, 0x97, 0xC5, 0xBA, 0x13, 0x83, 0xC1, 0x39, 0x1E, 0x31, 0x6F, 0xCA, 0x75, 0x2A, 0x9D, 0xD2, 0xD5, 0x30, 0xA8, 0x59, 0xEA, 0xCC, 0x06, 0x06, 0xEC, 0xD0, 0x19, -+ 0xD8, 0x75, 0xAD, 0xF0, 0x6D, 0x81, 0xC2, 0x5C, 0xE0, 0x7B, 0x30, 0x49, 0x21, 0xC8, 0x22, 0x24, 0xF6, 0x83, 0x95, 0x72, 0x47, 0xA6, 0x62, 0xDD, 0xB7, 0xBA, 0xF0, 0x49, 0x07, 0xCD, 0x17, 0x43, -+ 0x19, 0x37, 0xA2, 0x6D, 0x62, 0xE1, 0x87, 0xCB, 0xB9, 0xDF, 0x11, 0x35, 0xA0, 0xF0, 0x34, 0x8F, 0xE7, 0xA9, 0x25, 0xF8, 0x6F, 0xCA, 0x96, 0xB2, 0xED, 0x92, 0xE6, 0x9F, 0x45, 0xAD, 0x55, 0xF9, -+ 0x45, 0xD0, 0xFE, 0x8A, 0xA7, 0xA4, 0x71, 0x91, 0x5B, 0x5F, 0x0F, 0xE9, 0x65, 0x75, 0xCB, 0x2D, 0xEF, 0x41, 0xD5, 0x0D, 0x11, 0x3B, 0xA1, 0xBE, 0x2D, 0x0B, 0x5D, 0x47, 0xDE, 0x93, 0xA1, 0x97, -+ 0x86, 0xBE, 0xAB, 0x57, 0xEE, 0x1A, 0x03, 0x60, 0xFC, 0xD5, 0xE6, 0x9F, 0x25, 0x6B, 0x12, 0x8D, 0x17, 0xD1, 0xC3, 0x91, 0x63, 0xF1, 0x34, 0x5A, 0xD0, 0xFC, 0xC8, 0x5F, 0xD1, 0x48, 0x8D, 0x78, -+ 0x78, 0x14, 0xBC, 0x6E, 0x3E, 0x93, 0xD7, 0x1D, 0x24, 0x6F, 0x60, 0xA5, 0x0C, 0xEE, 0x91, 0x13, 0xB3, 0xA8, 0x5E, 0xED, 0x84, 0x28, 0x69, 0x31, 0xB6, 0xCF, 0x66, 0x98, 0x21, 0x5B, 0x29, 0x62, -+ 0xFD, 0xCB, 0x9E, 0x95, 0x68, 0xCB, 0xC3, 0x84, 0xBE, 0x82, 0x65, 0x58, 0xFF, 0x8D, 0xFF, 0x68, 0xA3, 0xE0, 0x1B, 0x24, 0x70, 0xB7, 0x19, 0x2B, 0x94, 0x92, 0xDF, 0xDE, 0x2C, 0x9F, 0xE0, 0x91, -+ 0xE8, 0xA6, 0x38, 0xDD, 0x1B, 0xC8, 0x79, 0x4B, 0xA3, 0xB2, 0x77, 0x95, 0xB2, 0x20, 0x69, 0x7B, 0x05, 0xCF, 0x1D, 0x68, 0x59, 0x06, 0xF1, 0x4C, 0xDD, 0x9E, 0x43, 0xE1, 0x11, 0x4B, 0x0A, 0x88, -+ 0xC0, 0x74, 0x38, 0xEE, 0x1E, 0x69, 0x01, 0xBE, 0x4F, 0x57, 0x7C, 0x78, 0x66, 0x3B, 0x0D, 0x34, 0x39, 0xFB, 0x39, 0x00, 0x95, 0x9A, 0x10, 0x7B, 0xCA, 0xD3, 0x61, 0x10, 0xB4, 0xCD, 0x2B, 0x61, -+ 0xBE, 0x46, 0xEF, 0x4F, 0x68, 0x00, 0x0D, 0xBC, 0x64, 0xCC, 0xF4, 0x0E, 0x6B, 0x6E, 0xDE, 0x65, 0x77, 0xF8, 0xEA, 0x36, 0x3B, 0x5A, 0x0B, 0xEA, 0x0A, 0x81, 0x91, 0x9B, 0xCF, 0xC1, 0xEC, 0x98, -+ 0x82, 0xAC, 0x51, 0x40, 0x93, 0x17, 0xEB, 0x24, 0x89, 0x23, 0x34, 0xF4, 0x61, 0xBD, 0xF0, 0x4D, 0x4D, 0x6B, 0x16, 0x91, 0xA7, 0xD4, 0x86, 0x56, 0x25, 0xC7, 0x4E, 0xA7, 0xBB, 0xE2, 0x6B, 0x28, -+ 0x4B, 0xC4, 0x46, 0x8E, 0x39, 0x5C, 0xE5, 0x62, 0xF8, 0x24, 0xD9, 0x02, 0x9B, 0x83, 0xE7, 0x61, 0x48, 0xDF, 0x2E, 0xE9, 0x62, 0x5C, 0xCF, 0xBB, 0x88, 0x03, 0x94, 0x11, 0xB0, 0x81, 0x67, 0x41, -+ 0x96, 0xF4, 0xEB, 0xFB, 0xBF, 0x9E, 0x51, 0xD0, 0x47, 0xD0, 0x86, 0xEB, 0xCB, 0xA7, 0xBB, 0xDF, 0x1C, 0xF3, 0x60, 0xC4, 0x03, 0x19, 0xFB, 0x7B, 0x5C, 0xE6, 0xF6, 0xCE, 0x04, 0xE6, 0xAC, 0xB9, -+ 0xA0, 0xEC, 0x0F, 0x15, 0x15, 0x5E, 0xD5, 0x9D, 0xC1, 0xCC, 0x46, 0x8E, 0xB2, 0x5F, 0x9F, 0x62, 0xC9, 0xD9, 0x24, 0xCB, 0x0B, 0x01, 0x99, 0xA5, 0x27, 0x6D, 0x59, 0xE4, 0x48, 0x38, 0x53, 0x4B, -+ 0x62, 0xE8, 0x6E, 0x5F, 0xAD, 0x68, 0xC8, 0x1B, 0x2F, 0x0F, 0xC9, 0xAB, 0xE2, 0x4D, 0xAC, 0x0F, 0xF2, 0x65, 0x24, 0x9C, 0x41, 0x0D, 0x96, 0xAA, 0x8E, 0x98, 0x35, 0x4A, 0x6E, 0x23, 0x88, 0x4D, -+ 0xB4, 0xB5, 0xB0, 0x90, 0xA8, 0xEA, 0x5A, 0x7D, 0xBF, 0x4E, 0x68, 0x12, 0x5B, 0xFD, 0xF7, 0xD2, 0xD6, 0xB3, 0x20, 0xE6, 0x9F, 0x8E, 0x61, 0x72, 0x5B, 0xD5, 0x7F, 0xF4, 0xB9, 0x05, 0xC4, 0xD1, -+ 0x4F, 0xA1, 0x7D, 0xDB, 0xE9, 0xF2, 0x26, 0x28, 0x3B, 0xC4, 0x62, 0xC1, 0x3E, 0xB7, 0x51, 0x12, 0x1D, 0xBB, 0xE6, 0xC0, 0x2C, 0xBA, 0xCF, 0x43, 0x14, 0x0E, 0x51, 0xBF, 0x9C, 0xFD, 0x39, 0x38, -+ 0x3E, 0x24, 0x7E, 0xB9, 0x76, 0x0F, 0x8F, 0x40, 0x43, 0xA0, 0x46, 0xF9, 0xDB, 0x54, 0x0D, 0x84, 0x5C, 0x15, 0x73, 0x86, 0x43, 0xBC, 0xFA, 0x3B, 0x8E, 0x27, 0x8B, 0x07, 0x34, 0xBB, 0xEE, 0x3E, -+ 0xBD, 0xE2, 0x81, 0x09, 0x2E, 0xA3, 0xAE, 0xCB, 0x56, 0xB9, 0x87, 0x4E, 0x4B, 0x9D, 0x3E, 0x2A, 0xCD, 0xC8, 0x04, 0xB2, 0xAE, 0xCE, 0xB9, 0x92, 0xEE, 0x99, 0xAB, 0x11, 0xA3, 0x7C, 0x51, 0x5E, -+ 0x07, 0xF5, 0xAA, 0xE3, 0x2E, 0x36, 0x70, 0x8B, 0x1C, 0xC0, 0xF4, 0xE2, 0xA6, 0x4D, 0xE5, 0x9A, 0x94, 0xFD, 0x3D, 0xCC, 0x08, 0x9B, 0xD2, 0x94, 0x19, 0x61, 0x42, 0x5F, 0xE9, 0x65, 0xB7, 0x15, -+ 0xF1, 0x9B, 0x4E, 0xBA, 0xD8, 0xD7, 0x4B, 0x1B, 0x06, 0x01, 0x76, 0x76, 0x0D, 0x7A, 0xD7, 0x3E, 0x45, 0x3E, 0xBF, 0xEB, 0xC7, 0x87, 0x6F, 0xFF, 0xFE, 0x6B, 0xDB, 0x77, 0xFA, 0xB2, 0x0F, 0x0A, -+ 0x2C, 0x04, 0x31, 0x57, 0xA8, 0xEA, 0x4A, 0xC8, 0x0F, 0x98, 0xA3, 0xC7, 0xB8, 0x24, 0xC1, 0x59, 0xF1, 0x23, 0x6D, 0xA5, 0x2C, 0xE5, 0xA1, 0x0F, 0x0B, 0xC0, 0x25, 0x74, 0x18, 0x61, 0x4D, 0x52, -+ 0x37, 0xFB, 0x4C, 0x65, 0x3E, 0xC6, 0x65, 0x97, 0xFB, 0x8B, 0xB8, 0x1E, 0xC7, 0xD6, 0xA2, 0x09, 0x9A, 0x9D, 0xD8, 0x37, 0xC4, 0x99, 0xC9, 0x92, 0x77, 0x99, 0xC2, 0xB3, 0xE2, 0xD8, 0xAE, 0x18, -+ 0xAF, 0xB3, 0xE2, 0x3C, 0x7E, 0x5D, 0x24, 0xDF, 0xA5, 0x79, 0x6D, 0xB5, 0x15, 0x6C, 0x45, 0x82, 0x93, 0xF7, 0xA0, 0xEF, 0x2F, 0xE8, 0xB9, 0x93, 0x74, 0xD3, 0x34, 0x9C, 0x60, 0x73, 0x49, 0xE3, -+ 0x39, 0x7E, 0x2A, 0x9E, 0x17, 0x45, 0x6E, 0x42, 0xFB, 0x5B, 0xF0, 0x6C, 0x61, 0xB4, 0x41, 0xF5, 0x77, 0xCC, 0x8A, 0xB9, 0x3E, 0xFD, 0x7D, 0xCD, 0x6B, 0x84, 0xDB, 0xAB, 0x85, 0xA0, 0x36, 0x35, -+ 0x78, 0x47, 0xBC, 0xF5, 0x39, 0xEA, 0x74, 0xA5, 0x7E, 0x7D, 0xF5, 0x04, 0x84, 0x24, 0xBE, 0xAC, 0x6E, 0xD1, 0x1A, 0xE1, 0xCF, 0x05, 0xB8, 0x95, 0x1F, 0x3A, 0xE5, 0x52, 0x5B, 0x1A, 0xAF, 0x22, -+ 0x3C, 0xAC, 0x2D, 0xF8, 0x0E, 0x5C, 0x74, 0x7E, 0x3D, 0x9C, 0x21, 0x2B, 0xB6, 0x6D, 0x17, 0xD5, 0x12, 0x65, 0x51, 0xA8, 0x61, 0x9E, 0x3F, 0x24, 0xF5, 0x79, 0x88, 0xC4, 0xC3, 0xEB, 0x78, 0x11, -+ 0x80, 0xBF, 0xA1, 0x37, 0x79, 0x93, 0xCD, 0xA6, 0xD5, 0x74, 0x0D, 0x0A, 0x84, 0xDC, 0xD1, 0x87, 0x93, 0x46, 0xD4, 0xA9, 0x73, 0x5E, 0x22, 0xAB, 0x56, 0xF0, 0x14, 0x96, 0xCD, 0x4E, 0xEF, 0xE6, -+ 0xF8, 0xE0, 0x10, 0xD4, 0xB3, 0xF3, 0x50, 0x33, 0x89, 0xE4, 0xA8, 0x52, 0x48, 0xB3, 0x0F, 0xC4, 0x75, 0x9C, 0x38, 0x07, 0x3B, 0x1E, 0x73, 0x1A, 0x24, 0xB4, 0x91, 0xE6, 0xA7, 0xC2, 0xA8, 0x77, -+ 0x35, 0x0A, 0x3D, 0xBD, 0x8D, 0xDD, 0x6C, 0x0F, 0x55, 0xFC, 0x81, 0x2D, 0x5B, 0x2D, 0x54, 0xD3, 0x23, 0x7B, 0x21, 0x37, 0x10, 0xB2, 0x71, 0xB4, 0x70, 0xF2, 0x53, 0xE0, 0x85, 0x2D, 0xDA, 0x5D, -+ 0x84, 0xED, 0xE1, 0xEF, 0xAB, 0xAF, 0xFA, 0x6D, 0xA8, 0x63, 0xD6, 0xEE, 0x11, 0x3A, 0xBB, 0xA1, 0x48, 0xA9, 0x01, 0x8A, 0x4E, 0x5C, 0x3D, 0x8F, 0x57, 0xCA, 0x9D, 0xF0, 0x05, 0xB5, 0x9A, 0x0D, -+ 0x3E, 0x47, 0x40, 0x6D, 0x97, 0xE3, 0x37, 0xBB, 0x20, 0x1D, 0x78, 0x8B, 0x83, 0x29, 0xFF, 0x50, 0x66, 0x26, 0x8F, 0x4E, 0xFD, 0x51, 0x0D, 0x91, 0xB0, 0x94, 0xC0, 0xEE, 0x3D, 0x05, 0x3F, 0x2C, -+ 0xCB, 0x39, 0x13, 0x86, 0x34, 0xB1, 0x22, 0xD5, 0x37, 0x59, 0x14, 0x13, 0x2B, 0x31, 0x55, 0x08, 0x84, 0xFE, 0x2E, 0x9A, 0x31, 0xE5, 0x12, 0x7B, 0x2E, 0x03, 0x42, 0x7D, 0xBC, 0xF7, 0xD2, 0x55, -+ 0x7C, 0x5B, 0x71, 0x81, 0xBD, 0xA6, 0x83, 0x4B, 0xB9, 0x30, 0xCD, 0x3A, 0x0E, 0x0E, 0x0E, 0xAD, 0x09, 0x12, 0x0A, 0x57, 0x2B, 0xEE, 0xF7, 0x51, 0x86, 0x3A, 0xFA, 0xB3, 0x38, 0xBA, 0xC3, 0xE9, -+ 0xA8, 0x17, 0x9F, 0x2B, 0x5C, 0x90, 0xF0, 0xBB, 0xA6, 0xB7, 0x5F, 0xDC, 0x2A, 0xB5, 0xF7, 0x20, 0x0F, 0xEF, 0x3A, 0x65, 0xBB, 0x77, 0x64, 0x3D, 0xA0, 0xD6, 0xFE, 0xB1, 0x2D, 0x75, 0x3D, 0xF7, -+ 0x75, 0xEA, 0x71, 0x4E, 0x28, 0x3E, 0x0E, 0x99, 0x62, 0xA2, 0x39, 0xA0, 0x44, 0x90, 0xE7, 0xD2, 0xF9, 0x81, 0x93, 0xBB, 0xEB, 0xD6, 0xE2, 0xF5, 0x26, 0xAB, 0x0B, 0x27, 0x7E, 0x49, 0xDB, 0xC3, -+ 0xFA, 0x52, 0x04, 0x92, 0xD3, 0x24, 0x17, 0x28, 0x3B, 0xAB, 0xF3, 0xCE, 0xEE, 0xE0, 0xBE, 0xED, 0xBE, 0x66, 0x0C, 0x04, 0x3B, 0x19, 0x28, 0xAC, 0xDE, 0x60, 0x2F, 0x98, 0x61, 0xA5, 0x3A, 0x9E, -+ 0xFA, 0x9A, 0x0D, 0x9D, 0x31, 0xBB, 0xE6, 0x2B, 0xCE, 0xDE, 0x01, 0x33, 0x32, 0xF9, 0xF3, 0x3B, 0xE6, 0xA7, 0x43, 0x13, 0xFD, 0x17, 0x09, 0xAA, 0x72, 0x9B, 0xBE, 0xB7, 0xEE, 0x47, 0x91, 0xAB, -+ 0xA7, 0x23, 0xC2, 0x5C, 0xB3, 0xB0, 0xC6, 0x48, 0x7C, 0x62, 0x64, 0x29, 0x1E, 0xDA, 0x8F, 0x9E, 0xFF, 0x54, 0xDA, 0x37, 0x48, 0x97, 0xF9, 0x49, 0x0B, 0xF7, 0xD2, 0x05, 0x33, 0xBC, 0x29, 0x3B, -+ 0x9A, 0x06, 0xC4, 0x30, 0xA3, 0x37, 0x04, 0x70, 0x6C, 0x0E, 0xF0, 0x9C, 0x36, 0x95, 0xD3, 0xC0, 0x81, 0x1C, 0x05, 0xCD, 0x85, 0x5E, 0x51, 0xE9, 0xD7, 0x4E, 0x7E, 0x3C, 0xFE, 0xEB, 0x7C, 0xDA, -+ 0xAA, 0x89, 0x3C, 0xB9, 0x73, 0x21, 0xB2, 0x4B, 0x5B, 0xE6, 0x33, 0x3B, 0x6A, 0xBE, 0xC8, 0x11, 0xE3, 0xBC, 0xC2, 0x9C, 0xA0, 0xFA, 0xF9, 0x3B, 0x2B, 0xBD, 0x43, 0x32, 0xD9, 0xB2, 0xE7, 0xC7, -+ 0x89, 0xCB, 0xDE, 0x03, 0xD4, 0xFC, 0xBB, 0x47, 0x5F, 0xAD, 0x05, 0x35, 0xFE, 0xF2, 0xDD, 0xC1, 0xE2, 0x86, 0x26, 0x84, 0x19, 0x89, 0x6C, 0x41, 0x7F, 0x66, 0x5E, 0x7A, 0x02, 0x4F, 0x2C, 0xE0, -+ 0xAB, 0x15, 0x47, 0x57, 0x28, 0xF4, 0xE3, 0x9C, 0xAD, 0x47, 0xFE, 0x33, 0xD9, 0x10, 0x74, 0xC7, 0xB3, 0x46, 0x4E, 0xB0, 0x5E, 0x6A, 0x32, 0x3D, 0x17, 0xD7, 0x43, 0xC0, 0xE7, 0x9C, 0x9E, 0x62, -+ 0xA2, 0x31, 0xED, 0xF4, 0x0E, 0x75, 0x34, 0x0A, 0x23, 0x93, 0x12, 0xC4, 0xB4, 0xE5, 0xBB, 0xAC, 0x6F, 0x51, 0x1C, 0xF2, 0x54, 0x8C, 0xF8, 0x22, 0x4C, 0xCB, 0xC7, 0x3A, 0x21, 0xF8, 0xEB, 0xD3, -+ 0xA6, 0x64, 0x50, 0x61, 0x8D, 0x1F, 0x5B, 0x26, 0x49, 0x5F, 0xF6, 0xE8, 0x4F, 0xA1, 0xC8, 0x97, 0x82, 0xEB, 0x21, 0x1E, 0x2F, 0xB7, 0xFA, 0xD4, 0x56, 0x91, 0xBF, 0x67, 0x9E, 0x83, 0x7F, 0x88, -+ 0xFE, 0x5C, 0x62, 0x08, 0xAA, 0xAF, 0xAB, 0x7A, 0x42, 0x38, 0x7B, 0x0A, 0x1A, 0x48, 0xCB, 0xD5, 0x3B, 0x13, 0x81, 0x78, 0x09, 0x44, 0x5E, 0x00, 0x91, 0xBC, 0xBC, 0xEE, 0x8E, 0x9D, 0xDB, 0x41, -+ 0x3D, 0x13, 0x28, 0x8F, 0x53, 0xFF, 0xE6, 0xDC, 0x03, 0x9C, 0xEA, 0xE2, 0x4C, 0xE5, 0x69, 0x1E, 0xC6, 0x36, 0xBE, 0x10, 0x52, 0xEA, 0x72, 0xCD, 0x81, 0x9F, 0x5F, 0xF2, 0xF2, 0x79, 0x11, 0x5E, -+ 0x07, 0x82, 0x12, 0x46, 0x12, 0x2E, 0xF2, 0xAE, 0xF1, 0xC3, 0xC8, 0x49, 0x5C, 0xEA, 0xBF, 0x2B, 0x6D, 0xC3, 0xD6, 0x5C, 0x60, 0xEB, 0x2F, 0xD5, 0x69, 0x14, 0x5A, 0x63, 0xD9, 0xAB, 0xC5, 0xD4, -+ 0x37, 0xF7, 0xC7, 0xFC, 0x5A, 0xE2, 0x2D, 0x87, 0x87, 0x4A, 0x78, 0xDA, 0x40, 0xD5, 0x72, 0x72, 0xF7, 0xED, 0x93, 0xE0, 0xA1, 0xB4, 0x8C, 0x8B, 0xD6, 0x1A, 0x92, 0xF0, 0x8A, 0x16, 0xD0, 0x14, -+ 0x42, 0xF0, 0x20, 0xFB, 0xDB, 0xFF, 0xBD, 0xB1, 0x8F, 0xC5, 0xBB, 0xAD, 0x8A, 0x14, 0x21, 0x84, 0xEF, 0x9A, 0x32, 0x86, 0x13, 0xC0, 0x3D, 0x67, 0xF8, 0xBB, 0x74, 0x0F, 0x6F, 0x08, 0x3C, 0x39, -+ 0x3C, 0x88, 0xE8, 0x08, 0xBC, 0xC9, 0xA4, 0xCF, 0x4B, 0xEA, 0x75, 0xA1, 0x6C, 0x7A, 0x81, 0xF5, 0x1F, 0x6D, 0x9E, 0x00, 0x3E, 0xBC, 0xB8, 0xE3, 0x28, 0xA8, 0x6D, 0x7B, 0x73, 0x13, 0x3E, 0x59, -+ 0x66, 0x09, 0x6A, 0xFC, 0x1D, 0x1B, 0xCC, 0xCB, 0x7C, 0x84, 0xF1, 0x12, 0x35, 0x89, 0x2D, 0xEC, 0x5C, 0xFC, 0xCD, 0xF6, 0x47, 0x22, 0x49, 0x94, 0x3F, 0xB3, 0x9C, 0x7B, 0x85, 0x86, 0xC4, 0xA2, -+ 0xE5, 0xE8, 0x11, 0xE3, 0xFA, 0xF0, 0x68, 0xA1, 0xBC, 0xA6, 0x1F, 0x50, 0xB7, 0x59, 0xF7, 0x04, 0x2D, 0xE3, 0x4D, 0x73, 0x8F, 0x2D, 0x7C, 0x3D, 0xAB, 0x26, 0xA7, 0x39, 0x70, 0xE5, 0x08, 0x15, -+ 0xC5, 0x1A, 0xD7, 0x3C, 0xFC, 0xD3, 0x53, 0x0B, 0xDA, 0x1C, 0x2E, 0x91, 0x2E, 0x69, 0x4E, 0x9E, 0xE7, 0x9C, 0x09, 0x33, 0x4E, 0x4C, 0x29, 0x33, 0x9F, 0x75, 0x82, 0x30, 0x3B, 0x2E, 0x28, 0x5C, -+ 0x7A, 0xE8, 0x4B, 0xFF, 0x01, 0xDE, 0x1D, 0x90, 0xCA, 0xAD, 0xA4, 0x2A, 0xA4, 0xA6, 0x52, 0xC7, 0x78, 0x20, 0x75, 0xB5, 0x15, 0x14, 0xB1, 0x0C, 0x95, 0x92, 0xD3, 0x0B, 0x5A, 0x73, 0x62, 0xD9, -+ 0xA3, 0x2A, 0xCD, 0x26, 0x6B, 0x62, 0x86, 0x8F, 0x50, 0x73, 0x8D, 0xCA, 0xB7, 0x80, 0xCF, 0x83, 0x19, 0x83, 0x89, 0x34, 0x0F, 0x3E, 0x7A, 0x86, 0x39, 0xFE, 0x94, 0xAE, 0x0F, 0x45, 0x67, 0x29, -+ 0x17, 0x01, 0xEE, 0x62, 0x04, 0x58, 0x7E, 0x29, 0x53, 0x19, 0xA0, 0x05, 0x6B, 0x30, 0x4C, 0x79, 0x01, 0x19, 0x71, 0x92, 0xA8, 0xA6, 0xF4, 0xA3, 0xEA, 0x8C, 0xA3, 0x94, 0x18, 0x61, 0xE7, 0x60, -+ 0x1F, 0x3A, 0x89, 0xFE, 0x6F, 0x9D, 0x8C, 0x49, 0xF9, 0xBB, 0x3D, 0x95, 0xC1, 0xA0, 0x23, 0x35, 0x75, 0x98, 0x3C, 0xD7, 0xD8, 0x8F, 0x9D, 0x31, 0x5C, 0xAA, 0x9F, 0x39, 0x54, 0xB6, 0x3C, 0x6D, -+ 0xF2, 0x92, 0x0E, 0x16, 0xF0, 0x07, 0x6B, 0x72, 0x98, 0x35, 0x2E, 0xEF, 0x1A, 0x7E, 0x13, 0x41, 0xA3, 0x72, 0xD0, 0x76, 0x23, 0x3D, 0x01, 0x0A, 0xD4, 0xDE, 0x4C, 0x28, 0x45, 0xA6, 0xEB, 0xB6, -+ 0x43, 0x74, 0x5D, 0xB2, 0xDE, 0x2A, 0x02, 0xF2, 0x41, 0xD5, 0x2F, 0x16, 0xAA, 0xA8, 0x7F, 0x75, 0xC3, 0x39, 0x5C, 0x40, 0xAD, 0x3B, 0x71, 0xD3, 0x12, 0x39, 0xAD, 0x31, 0x87, 0xAF, 0xFE, 0x18, -+ 0xF0, 0x37, 0x0A, 0xE0, 0x83, 0x10, 0x93, 0xD9, 0x99, 0x06, 0x71, 0xE5, 0xC2, 0xAD, 0x4D, 0x99, 0xA4, 0x9C, 0x07, 0x83, 0x90, 0x7D, 0x1E, 0x1B, 0x8B, 0xF6, 0x15, 0x23, 0xFD, 0x6F, 0xC2, 0x5C, -+ 0x1A, 0x5C, 0xB0, 0xF1, 0xF6, 0x63, 0x16, 0x8F, 0xEA, 0x17, 0xEA, 0x6B, 0x71, 0xE0, 0xE7, 0x61, 0x83, 0x0A, 0xD7, 0xB4, 0x9F, 0xF1, 0xE7, 0x1E, 0x6D, 0xC4, 0x9D, 0xDC, 0x86, 0x5E, 0x62, 0xDF, -+ 0x12, 0xCE, 0x5F, 0x13, 0x84, 0x16, 0xBE, 0x79, 0x44, 0x0C, 0x72, 0x13, 0xFC, 0x2E, 0x49, 0xB5, 0x0E, 0x60, 0xA5, 0x3D, 0x50, 0xDB, 0xEA, 0xD4, 0xAD, 0x36, 0x79, 0xB0, 0xE5, 0x85, 0x45, 0xEE, -+ 0xA9, 0xE5, 0xE8, 0xD5, 0xDE, 0xD9, 0xC3, 0x90, 0x16, 0xE8, 0x88, 0x96, 0xDA, 0xB5, 0x9A, 0x84, 0xEB, 0xC7, 0xCC, 0xA2, 0x86, 0x67, 0xF4, 0x62, 0x20, 0x09, 0x74, 0x8F, 0x6B, 0x58, 0x54, 0xA5, -+ 0xE0, 0xCF, 0x07, 0x0A, 0xB6, 0x1C, 0xAC, 0xCD, 0xBF, 0x1A, 0x7E, 0xCA, 0x53, 0x1A, 0x5B, 0x5F, 0xEF, 0xDC, 0x3F, 0xF6, 0x60, 0xDD, 0xBD, 0xF0, 0x44, 0x7B, 0x70, 0x35, 0x98, 0xB7, 0x6A, 0xCD, -+ 0xBB, 0xE8, 0x62, 0x1E, 0x7F, 0xFC, 0xDA, 0x81, 0x08, 0xA3, 0xA1, 0x18, 0x07, 0xAC, 0x99, 0x92, 0xEC, 0x30, 0x1F, 0xDC, 0x3F, 0x65, 0x67, 0xA9, 0x99, 0x85, 0xC1, 0xA1, 0x6D, 0x9A, 0xA9, 0x28, -+ 0x6E, 0xAB, 0x8C, 0x65, 0xE8, 0xD1, 0x9D, 0xB0, 0x4F, 0x01, 0xD9, 0x18, 0xCA, 0x04, 0xCD, 0xA3, 0x77, 0x55, 0x95, 0x49, 0x4A, 0x4C, 0x2D, 0x53, 0x63, 0x57, 0xE5, 0x0A, 0x3C, 0x3C, 0xEC, 0x15, -+ 0x3F, 0xB3, 0x78, 0xDD, 0x9D, 0x2C, 0x05, 0xC1, 0xEC, 0xF8, 0x9E, 0x89, 0xA8, 0xBC, 0xC4, 0xBD, 0x27, 0x76, 0xC7, 0x9F, 0x34, 0xFA, 0x92, 0x10, 0xE9, 0xE9, 0x68, 0x1A, 0x2B, 0x37, 0x3C, 0x85, -+ 0x7E, 0x88, 0x30, 0xAF, 0x24, 0x60, 0x5A, 0x93, 0xA3, 0x95, 0xEB, 0xA1, 0x74, 0x4C, 0xC2, 0xF5, 0xEA, 0xA1, 0x7A, 0x42, 0x33, 0x6F, 0xE2, 0x7F, 0xDC, 0xCE, 0x42, 0xDE, 0x68, 0x92, 0xF2, 0x23, -+ 0x4B, 0x9E, 0x11, 0x15, 0x35, 0xF4, 0x24, 0xF0, 0xF6, 0x8D, 0xDB, 0x22, 0x0C, 0x13, 0x76, 0x24, 0x66, 0x36, 0x1E, 0x5C, 0xC9, 0xD8, 0xBE, 0x3A, 0xB7, 0xA4, 0x59, 0x76, 0xAD, 0xEF, 0x07, 0x6E, -+ }, -+ .t1_len = 1920, -+ .t1 = { -+ 0xA7, 0x2C, 0x15, 0x0F, 0xCC, 0xC9, 0xD1, 0x65, 0xCC, 0x64, 0x12, 0x64, 0xAD, 0x38, 0xCB, 0x41, 0x9B, 0xFA, 0x5E, 0x48, 0xB1, 0x9E, 0xFB, 0xA6, 0x46, 0xA1, 0x85, 0x9B, 0xB4, 0x00, 0x63, 0xA5, -+ 0x21, 0x2E, 0xD8, 0xFB, 0x5A, 0x60, 0x27, 0x07, 0x93, 0xBE, 0x84, 0xC6, 0xD8, 0x65, 0xA8, 0x67, 0x12, 0x76, 0xE0, 0x8E, 0xE7, 0x71, 0xD7, 0x4A, 0x35, 0xCC, 0xDE, 0x95, 0xC6, 0x1D, 0x6B, 0x19, -+ 0x29, 0x21, 0x0E, 0xAE, 0x6E, 0xA1, 0x03, 0xCE, 0x2A, 0x04, 0x1E, 0xAE, 0x6A, 0xA0, 0xBA, 0xED, 0x9F, 0x73, 0x6C, 0x54, 0x23, 0x8D, 0xA9, 0xFB, 0x05, 0x73, 0x6C, 0x0A, 0x79, 0x2D, 0x31, 0x06, -+ 0x41, 0xA0, 0xCF, 0x46, 0xC5, 0x02, 0xDA, 0x44, 0x98, 0x1C, 0x7C, 0x85, 0xDA, 0x6B, 0xC4, 0x4A, 0x39, 0xD6, 0x0F, 0xCC, 0x79, 0xAA, 0xE5, 0x2B, 0x79, 0x43, 0xBC, 0x34, 0x91, 0x58, 0x07, 0xA9, -+ 0x61, 0x13, 0x40, 0x9A, 0xF8, 0x4C, 0x95, 0x6C, 0xBF, 0x7E, 0x8F, 0x1E, 0x44, 0xCF, 0x8E, 0x37, 0x51, 0x4A, 0x1C, 0xC7, 0x78, 0x01, 0xA2, 0x07, 0x0A, 0x3B, 0xBE, 0xC6, 0xA6, 0x7F, 0xD5, 0xBF, -+ 0xB6, 0x67, 0x68, 0x16, 0x76, 0x44, 0xE5, 0x7C, 0x03, 0x69, 0x0C, 0x12, 0xA4, 0xA1, 0x8B, 0xBD, 0xEA, 0x35, 0xFB, 0x3A, 0x2D, 0x61, 0x9A, 0x55, 0xBE, 0x10, 0xCB, 0x9B, 0x79, 0xA8, 0x4B, 0x10, -+ 0xD8, 0xE6, 0xD3, 0x85, 0x56, 0x46, 0x5B, 0x5A, 0x10, 0x57, 0x69, 0x66, 0xF1, 0xD4, 0xCC, 0x4A, 0x1F, 0x4E, 0x36, 0x2A, 0xD5, 0x84, 0x36, 0x3F, 0xDA, 0xF0, 0xAD, 0x0B, 0xF1, 0x79, 0x29, 0x0D, -+ 0x57, 0xC3, 0xD8, 0xD2, 0x74, 0x01, 0xB0, 0xF2, 0x14, 0x18, 0x3A, 0x7C, 0x36, 0x9A, 0x06, 0x53, 0xF5, 0x10, 0x57, 0xE7, 0x6F, 0x6E, 0x8B, 0x68, 0x34, 0x2D, 0x59, 0x2E, 0x2B, 0xA1, 0xA1, 0xDB, -+ 0x44, 0x40, 0x98, 0x0C, 0x1D, 0x61, 0x6E, 0x8B, 0xF5, 0xF1, 0x5A, 0x18, 0xC3, 0x1E, 0xDD, 0xAC, 0xC2, 0x9A, 0xC5, 0x80, 0x43, 0x8E, 0x5A, 0x64, 0x52, 0x68, 0x89, 0x19, 0x1F, 0x01, 0x99, 0xE1, -+ 0x98, 0x84, 0xC4, 0xA6, 0xDA, 0xE8, 0x92, 0x10, 0x10, 0xAE, 0x79, 0xC0, 0xA4, 0x19, 0xBC, 0x3B, 0x0E, 0x62, 0x2E, 0xE0, 0xAD, 0xC0, 0xFE, 0xF4, 0xFD, 0x43, 0xB7, 0xBD, 0x4B, 0x80, 0x0D, 0xE3, -+ 0x00, 0xA3, 0xD7, 0xD2, 0xDD, 0x26, 0xF3, 0x34, 0xFE, 0x9C, 0x5B, 0x14, 0xF8, 0xBC, 0xA4, 0x09, 0x9E, 0x6F, 0x9D, 0xAE, 0x55, 0xB8, 0xF6, 0xC4, 0xB1, 0x17, 0x45, 0x9E, 0xE6, 0xD7, 0xEE, 0xEF, -+ 0xB1, 0x03, 0x95, 0x69, 0x29, 0x7C, 0x14, 0x7B, 0xF0, 0x12, 0xC5, 0x0C, 0xFA, 0xBC, 0x34, 0x13, 0x48, 0x39, 0xEF, 0x54, 0x57, 0xBF, 0xFB, 0x88, 0x3F, 0x3C, 0x01, 0xC7, 0x5B, 0xA9, 0x4A, 0x47, -+ 0xE2, 0xDC, 0xAE, 0x22, 0xC5, 0xB7, 0xF3, 0x9C, 0x16, 0xA2, 0x1A, 0x9D, 0x27, 0xF6, 0x88, 0x84, 0x30, 0xCC, 0x25, 0x50, 0xF8, 0x6D, 0xA8, 0x04, 0xAA, 0x1E, 0x29, 0xF1, 0x55, 0x0A, 0xD8, 0x8F, -+ 0xC4, 0x99, 0xE2, 0x07, 0x0D, 0xCB, 0xD9, 0xAB, 0xFA, 0x39, 0x10, 0x4D, 0x76, 0x65, 0xA9, 0xB8, 0xC5, 0x8B, 0xE9, 0x8B, 0x41, 0x83, 0xC7, 0xF1, 0xA6, 0x6E, 0x55, 0x7C, 0x60, 0x91, 0x83, 0xE5, -+ 0xF2, 0x02, 0x09, 0x05, 0x16, 0xAA, 0xBF, 0x8D, 0x31, 0x07, 0xE2, 0x49, 0x9B, 0x29, 0xD3, 0x59, 0x3D, 0xE2, 0xBA, 0x9D, 0x16, 0xB5, 0x39, 0xD0, 0xC1, 0x51, 0xF7, 0xF0, 0xE1, 0x96, 0xFD, 0xF5, -+ 0x7A, 0xE6, 0xF3, 0xB4, 0xE5, 0x8A, 0xE9, 0xB9, 0xA0, 0x3A, 0xEC, 0x96, 0x70, 0x0B, 0xE5, 0xBF, 0x52, 0x4E, 0xA4, 0x48, 0xEC, 0xAE, 0x16, 0x82, 0x5C, 0x29, 0xA9, 0xE1, 0x6E, 0x38, 0xC3, 0x79, -+ 0x24, 0xEB, 0x7E, 0xD5, 0xE8, 0x33, 0x87, 0x2E, 0x0D, 0x09, 0x9C, 0x96, 0x15, 0x4C, 0xBC, 0x53, 0xF0, 0xF1, 0x9C, 0x50, 0xB6, 0x70, 0xDD, 0xE7, 0xC9, 0x72, 0x23, 0x35, 0x74, 0xC6, 0x5A, 0xA0, -+ 0x00, 0x67, 0x32, 0x99, 0x36, 0x5B, 0x43, 0x70, 0x56, 0xCB, 0xDE, 0x78, 0xF6, 0x88, 0x78, 0x6E, 0xB9, 0xDD, 0x75, 0x32, 0x54, 0xA2, 0x30, 0x15, 0xA5, 0xE5, 0x4B, 0xE0, 0x4F, 0xB7, 0xA6, 0x08, -+ 0xB6, 0xE6, 0x89, 0xBB, 0x4F, 0x2C, 0x72, 0xF0, 0x99, 0x37, 0x87, 0x9E, 0xA7, 0x9B, 0x0E, 0x0E, 0xC0, 0x0A, 0xB8, 0xD6, 0x6C, 0xC7, 0x87, 0xE4, 0xD9, 0x67, 0x59, 0x1D, 0x6B, 0xE1, 0xEB, 0x98, -+ 0x44, 0x11, 0x2A, 0x52, 0x7E, 0x9D, 0x1F, 0xA5, 0xEE, 0x7F, 0x95, 0x38, 0xB7, 0x54, 0xFD, 0xF2, 0x19, 0x96, 0xB1, 0x45, 0xBA, 0xD0, 0x1C, 0xD7, 0x3D, 0x04, 0x2D, 0x2B, 0xE3, 0x70, 0x15, 0x3D, -+ 0x5E, 0xD5, 0x3E, 0x5E, 0xD4, 0x33, 0x32, 0x3A, 0x8D, 0xB0, 0xBF, 0x83, 0xF0, 0x3F, 0x8B, 0x96, 0xC4, 0x2C, 0xD9, 0xC9, 0xA3, 0x81, 0x20, 0x8F, 0xFD, 0xA0, 0x58, 0xA4, 0xA0, 0xC2, 0xF4, 0xA3, -+ 0x7E, 0x98, 0x53, 0x09, 0xE8, 0xD0, 0x80, 0xB7, 0x35, 0x32, 0x62, 0xE0, 0x6B, 0xF6, 0x3F, 0x82, 0xE7, 0xAD, 0x07, 0xBF, 0x06, 0x8B, 0xC0, 0x93, 0xB6, 0x85, 0x04, 0x4C, 0x4F, 0x41, 0xF9, 0x64, -+ 0xCA, 0x1B, 0xED, 0x2F, 0x1F, 0xD8, 0x54, 0xD6, 0x13, 0x13, 0x9B, 0x1F, 0xBD, 0xE1, 0x6B, 0xAD, 0x79, 0x93, 0x0A, 0xEE, 0xEE, 0x86, 0x58, 0xAE, 0x71, 0xD1, 0xB4, 0xB9, 0x65, 0x95, 0xE4, 0xFC, -+ 0xED, 0x1A, 0x2C, 0x29, 0x1E, 0xC7, 0x26, 0x10, 0x70, 0x0C, 0xA0, 0xE3, 0x69, 0x24, 0x84, 0xEA, 0x07, 0xCE, 0xE7, 0x2C, 0x9B, 0x8A, 0x2E, 0x5A, 0x97, 0x12, 0x93, 0xBE, 0x38, 0x2D, 0x2A, 0xB0, -+ 0xFE, 0x1F, 0x3F, 0x36, 0x54, 0x19, 0x22, 0xE1, 0x03, 0x0A, 0xB0, 0x65, 0xD0, 0x76, 0x64, 0x53, 0x96, 0xD7, 0x12, 0x9F, 0xE7, 0xEF, 0xBB, 0x73, 0x75, 0x39, 0x02, 0x27, 0x18, 0x9B, 0xED, 0xBD, -+ 0x3C, 0x83, 0xB1, 0x61, 0x7E, 0x5A, 0x2A, 0x0B, 0x06, 0xFA, 0xEA, 0x43, 0x9A, 0x1D, 0xE1, 0xCD, 0x7E, 0x9C, 0xB4, 0x0A, 0xD8, 0xB2, 0x97, 0x68, 0x8C, 0x0C, 0xF8, 0x25, 0x47, 0xD0, 0xB6, 0x5C, -+ 0x6A, 0x9D, 0x2A, 0x7F, 0xE3, 0x96, 0x78, 0xB3, 0xC9, 0x6B, 0xE4, 0xD0, 0xE6, 0xD0, 0x1A, 0x51, 0xF6, 0xA2, 0x19, 0x80, 0xB0, 0x0E, 0x43, 0x16, 0x7F, 0xCD, 0x36, 0x6F, 0x00, 0x6D, 0x90, 0x53, -+ 0xA6, 0x1A, 0x9A, 0xA1, 0xFE, 0x19, 0x6B, 0xAC, 0x97, 0xA4, 0xF5, 0xD4, 0x3F, 0x5A, 0x99, 0xF2, 0xB5, 0x72, 0x18, 0xA1, 0x9C, 0x07, 0xAF, 0xE6, 0x31, 0xC0, 0x55, 0xD3, 0x6F, 0x8F, 0x23, 0x58, -+ 0xD0, 0x69, 0xC7, 0x9C, 0xC6, 0x46, 0xAE, 0x4E, 0x30, 0x41, 0x4F, 0xC6, 0x0A, 0x8D, 0x0E, 0xC0, 0x45, 0xED, 0x10, 0xC2, 0x74, 0x41, 0xB4, 0x45, 0x78, 0x58, 0x40, 0x63, 0xE7, 0x26, 0xA9, 0x38, -+ 0xB1, 0xB0, 0x9F, 0x22, 0x09, 0xC8, 0x10, 0x5C, 0xCC, 0xF9, 0xA1, 0x90, 0x82, 0x9F, 0xE4, 0x7F, 0xED, 0x26, 0x4A, 0xCF, 0xBE, 0xC7, 0x8F, 0x8E, 0x8B, 0x1A, 0x8E, 0x10, 0x28, 0xB0, 0xDD, 0x2C, -+ 0x59, 0xBF, 0xEF, 0xE2, 0x47, 0xDC, 0xCD, 0x85, 0x98, 0x54, 0x42, 0x13, 0xA3, 0x6A, 0x5F, 0x19, 0x05, 0xC8, 0x7D, 0x96, 0xAC, 0x8C, 0xC1, 0x2D, 0x37, 0xAC, 0xE5, 0x96, 0x97, 0xA1, 0x39, 0xD3, -+ 0x53, 0x69, 0x7E, 0x1E, 0xEA, 0xB1, 0x24, 0x1C, 0x6D, 0xFA, 0x70, 0x76, 0x21, 0xEC, 0x47, 0x51, 0x13, 0xA5, 0x26, 0xD9, 0x11, 0x1F, 0xC9, 0xB5, 0x95, 0x7A, 0xA5, 0x44, 0xD6, 0x1D, 0x9F, 0xB7, -+ 0x60, 0xAD, 0xE4, 0xA2, 0x86, 0xDF, 0x28, 0x5B, 0xBD, 0x1A, 0xE6, 0x48, 0x63, 0xF7, 0x04, 0xEA, 0x46, 0x44, 0xD9, 0xCB, 0x2E, 0x77, 0xD2, 0x23, 0x80, 0x01, 0xE7, 0xC8, 0x96, 0x1E, 0xFA, 0x19, -+ 0x54, 0xEC, 0xE6, 0xEC, 0x59, 0xA4, 0x75, 0x8B, 0x87, 0xC3, 0x18, 0x81, 0x9F, 0x86, 0x5D, 0x73, 0x54, 0xC1, 0xD5, 0xDF, 0xCF, 0xDE, 0x5B, 0x41, 0xF4, 0xEE, 0xA9, 0x30, 0xA7, 0xFE, 0x40, 0x80, -+ 0x8D, 0xE9, 0x50, 0xBD, 0x88, 0x19, 0x96, 0xC6, 0xA3, 0x33, 0xAF, 0x6F, 0xB0, 0x90, 0xDD, 0x2E, 0xF3, 0x94, 0x5F, 0x9C, 0xCC, 0x0A, 0x60, 0x17, 0xA3, 0x6C, 0xE4, 0x84, 0x47, 0xFD, 0xD9, 0x61, -+ 0xE4, 0xB1, 0x7D, 0xD0, 0x2B, 0x4A, 0x3A, 0xA7, 0xB5, 0xE9, 0x8A, 0x86, 0xEA, 0x97, 0x3E, 0x66, 0x97, 0xCA, 0x03, 0x44, 0xCB, 0xFC, 0xB5, 0xF2, 0xD9, 0xAE, 0xE9, 0xEF, 0x6E, 0xF6, 0xF5, 0x7F, -+ 0x62, 0x72, 0x88, 0x6D, 0x67, 0x11, 0x23, 0x46, 0xB2, 0x56, 0xBF, 0xF7, 0xA5, 0xA1, 0x5B, 0x6E, 0x31, 0x07, 0x5D, 0x68, 0xA9, 0xBD, 0x73, 0x8B, 0x16, 0x0D, 0x9D, 0x2B, 0x06, 0x9B, 0x45, 0xB2, -+ 0xC5, 0x8C, 0xA7, 0x01, 0x65, 0xF6, 0x00, 0x9F, 0xEF, 0xE9, 0xFB, 0xE6, 0xB7, 0xD2, 0x51, 0x95, 0x1C, 0xF8, 0x16, 0x23, 0x3D, 0x0C, 0x0B, 0xE5, 0x99, 0xE6, 0xA6, 0x9D, 0xDD, 0xAD, 0x52, 0xD2, -+ 0x15, 0xE1, 0xBA, 0xB1, 0xF7, 0xF8, 0x54, 0x45, 0x38, 0x39, 0xA0, 0x07, 0x0A, 0xC4, 0x28, 0x2A, 0x48, 0x75, 0xF3, 0x85, 0xF7, 0x2C, 0x7A, 0x9D, 0xE6, 0x92, 0x1B, 0xCA, 0xD9, 0xE1, 0x73, 0xE1, -+ 0x3D, 0x33, 0xB6, 0xA0, 0x94, 0xF0, 0xE4, 0x66, 0xA0, 0xE4, 0xC9, 0x49, 0x5E, 0xA0, 0x75, 0x43, 0xE1, 0x2D, 0x9F, 0x95, 0x20, 0x96, 0xDB, 0xCD, 0xA1, 0x57, 0x5B, 0xC1, 0x0C, 0xCC, 0xF0, 0xAF, -+ 0x60, 0xCD, 0x4A, 0x75, 0x7A, 0xF9, 0x0E, 0x4E, 0xCD, 0x08, 0x32, 0x26, 0xE8, 0x31, 0x87, 0x09, 0x68, 0x5D, 0x3C, 0x26, 0xB6, 0xF9, 0x51, 0x5B, 0x0E, 0x08, 0xFC, 0x51, 0xF0, 0x90, 0x6D, 0x73, -+ 0x30, 0x50, 0x4C, 0xD4, 0x13, 0x6F, 0xF6, 0x2D, 0xC5, 0x6A, 0xB2, 0x3B, 0xB5, 0xAB, 0x4B, 0x4D, 0x71, 0x3F, 0xCD, 0x4C, 0xB6, 0x84, 0x03, 0x6A, 0x74, 0x36, 0x6B, 0xBC, 0x67, 0x46, 0x52, 0xAC, -+ 0x6E, 0xDD, 0x0B, 0x7B, 0xB2, 0xF1, 0x5D, 0x70, 0xF0, 0x86, 0x85, 0x1B, 0x94, 0x65, 0x24, 0x71, 0x52, 0x7C, 0xA2, 0x7F, 0x06, 0x74, 0x45, 0x9A, 0x7B, 0x00, 0x8B, 0x35, 0x53, 0x9E, 0xC2, 0x4F, -+ 0x65, 0x16, 0x03, 0x4F, 0xCF, 0x6F, 0x84, 0xCD, 0x65, 0xD2, 0xA5, 0x06, 0x26, 0xE0, 0xD6, 0x62, 0xBC, 0x02, 0x9F, 0x52, 0x54, 0xFB, 0x20, 0xAD, 0x8C, 0x92, 0xB2, 0xBB, 0xE2, 0x75, 0xBB, 0x69, -+ 0x67, 0xF4, 0x18, 0x22, 0xA9, 0x21, 0x6C, 0x30, 0x6C, 0x2A, 0x32, 0x7E, 0x13, 0xEF, 0x14, 0xC4, 0x65, 0x1D, 0x0F, 0x42, 0x5B, 0xDD, 0xD3, 0x07, 0x08, 0x1C, 0xDB, 0x6D, 0xC7, 0xB4, 0x0C, 0xF6, -+ 0xB2, 0x73, 0xFC, 0xEE, 0x1D, 0x78, 0x19, 0x6C, 0xE7, 0xAF, 0x83, 0xEB, 0x85, 0x03, 0x9A, 0x00, 0x17, 0x86, 0x2F, 0xF3, 0x04, 0x8B, 0xB6, 0x5B, 0xBD, 0xCF, 0x5B, 0x4D, 0x3E, 0x25, 0x3C, 0x1B, -+ 0x3F, 0x52, 0x2E, 0x33, 0x74, 0x74, 0x5E, 0x35, 0xFB, 0x32, 0x20, 0x8D, 0xCC, 0x5C, 0x25, 0x6A, 0x5C, 0x87, 0xF4, 0x03, 0x34, 0x41, 0xB7, 0x6F, 0x6B, 0x4C, 0x11, 0xE2, 0x84, 0xB0, 0xD5, 0x3B, -+ 0xB5, 0x03, 0x64, 0x1D, 0x8B, 0x4C, 0x41, 0xBE, 0x7B, 0xE2, 0x17, 0xDD, 0xCC, 0xCA, 0xBE, 0xBB, 0xDE, 0x2C, 0x48, 0xCE, 0x37, 0x55, 0x0F, 0x8A, 0xA1, 0x7F, 0x41, 0x7E, 0x8F, 0x6D, 0x76, 0x58, -+ 0x0C, 0x69, 0x03, 0x0F, 0xE1, 0x7E, 0x5C, 0x16, 0x6B, 0xC5, 0x11, 0x32, 0xBB, 0xC5, 0x26, 0x4C, 0x87, 0x64, 0x9E, 0x2F, 0xA3, 0x56, 0xD6, 0xF8, 0x95, 0x78, 0x5F, 0x2D, 0xFC, 0x46, 0x77, 0xA6, -+ 0xEA, 0xF7, 0xBA, 0xE8, 0x68, 0xB0, 0x90, 0xD9, 0x0C, 0xCF, 0x11, 0xEA, 0x20, 0x97, 0x93, 0x3D, 0x5F, 0x19, 0x9A, 0x9A, 0x32, 0x4B, 0xF9, 0x7A, 0xDE, 0xE6, 0x8A, 0x04, 0x07, 0x13, 0x41, 0x66, -+ 0xB1, 0x0C, 0x5E, 0x52, 0x31, 0x32, 0xBB, 0x93, 0xDE, 0x89, 0xB3, 0x86, 0xE4, 0xB2, 0x70, 0x98, 0x0C, 0x35, 0x13, 0x2B, 0x67, 0x7C, 0xE9, 0xD9, 0xF2, 0x50, 0x80, 0x2E, 0x4C, 0x77, 0x9C, 0x44, -+ 0x15, 0x3A, 0x3A, 0x4F, 0xD0, 0x86, 0x64, 0x10, 0x2F, 0x5A, 0xE9, 0x9C, 0xE9, 0xF0, 0x40, 0x38, 0x35, 0x00, 0xE9, 0x99, 0x65, 0x54, 0x04, 0x7A, 0x90, 0xDC, 0x24, 0xB2, 0x2F, 0x77, 0xD1, 0x99, -+ 0xCB, 0xAD, 0xD9, 0xC4, 0xA5, 0xC4, 0xF0, 0x10, 0x60, 0x80, 0xDE, 0xE3, 0x6F, 0xBE, 0x4A, 0x1F, 0xBE, 0x3E, 0x71, 0x68, 0xB5, 0x4F, 0x88, 0xD5, 0xEF, 0xE7, 0x5E, 0x07, 0x05, 0xE7, 0xF2, 0xBB, -+ 0xD5, 0xF0, 0x1C, 0xA8, 0x8A, 0x3A, 0x5C, 0xAD, 0x44, 0x16, 0x26, 0x34, 0x8B, 0xE4, 0xF6, 0x5B, 0xED, 0xC6, 0x5D, 0xA4, 0xF9, 0x21, 0x8A, 0xCE, 0xBF, 0x93, 0x9D, 0x48, 0xD5, 0x3D, 0x54, 0x01, -+ 0xF4, 0x60, 0x91, 0x77, 0xCE, 0xF8, 0x3B, 0x1D, 0xBD, 0xCF, 0x5E, 0xE2, 0x6B, 0xB5, 0x47, 0x62, 0x37, 0x1D, 0xBA, 0xCA, 0x8E, 0x4D, 0x17, 0xF9, 0xE0, 0xBE, 0x96, 0x11, 0x15, 0xA7, 0x15, 0x15, -+ 0x36, 0x8B, 0xDC, 0x16, 0xF5, 0xB8, 0x57, 0xF7, 0xCD, 0xDE, 0xB5, 0xE7, 0x8A, 0xFB, 0x58, 0x6F, 0x19, 0x72, 0x5B, 0xD6, 0xEC, 0xA4, 0xA7, 0x76, 0xB2, 0xE7, 0x13, 0x1F, 0x66, 0x19, 0x9E, 0xD5, -+ 0x5A, 0x68, 0x91, 0xA6, 0x32, 0x6A, 0xC9, 0x3C, 0xBF, 0x2C, 0xA2, 0x24, 0xB4, 0xB8, 0x04, 0xC4, 0x89, 0x3C, 0x97, 0x7C, 0xFB, 0x75, 0xBA, 0xDC, 0xCF, 0x56, 0x7B, 0x49, 0x05, 0x8C, 0x60, 0xF5, -+ 0x49, 0x52, 0x22, 0x64, 0xDC, 0x5E, 0xF9, 0xCA, 0x9D, 0xA5, 0x30, 0x0D, 0x10, 0xC5, 0x5A, 0x3E, 0x0B, 0x91, 0x68, 0x1C, 0x35, 0xB8, 0x44, 0xEC, 0x78, 0xAC, 0x03, 0x42, 0x95, 0x71, 0x61, 0x36, -+ 0x9F, 0x19, 0x2F, 0xC6, 0xB6, 0xE6, 0x25, 0xF1, 0xF8, 0xC0, 0x59, 0x73, 0x0A, 0x99, 0xD1, 0xA4, 0x73, 0xD3, 0x89, 0x2B, 0x95, 0x5F, 0xAC, 0xCF, 0x92, 0x66, 0x02, 0x32, 0xB0, 0x29, 0x6F, 0xA6, -+ 0xE9, 0xCA, 0xC5, 0x6C, 0xCB, 0xB2, 0xE9, 0xD9, 0xC6, 0x55, 0x30, 0x14, 0x5A, 0xFB, 0x13, 0x41, 0xB8, 0x73, 0x75, 0xB5, 0x15, 0x88, 0x93, 0xB9, 0x3A, 0xE9, 0x9E, 0x39, 0x2B, 0xFE, 0x69, 0x40, -+ }, -+ .pkcs8_len = 0, -+ .spki_len = 0, -+ .msg_len = 66, -+ .msg = { -+ 0x22, 0x5D, 0x5C, 0xE2, 0xCE, 0xAC, 0x61, 0x93, 0x0A, 0x07, 0x50, 0x3F, 0xB5, 0x9F, 0x7C, 0x2F, 0x93, 0x6A, 0x3E, 0x07, 0x54, 0x81, 0xDA, 0x3C, 0xA2, 0x99, 0xA8, 0x0F, 0x8C, 0x5D, 0xF9, 0x22, -+ 0x3A, 0x07, 0x3E, 0x7B, 0x90, 0xE0, 0x2E, 0xBF, 0x98, 0xCA, 0x22, 0x27, 0xEB, 0xA3, 0x8C, 0x1A, 0xB2, 0x56, 0x82, 0x09, 0xE4, 0x6D, 0xBA, 0x96, 0x18, 0x69, 0xC6, 0xF8, 0x39, 0x83, 0xB1, 0x7D, -+ 0xCD, 0x49, -+ }, -+ .sig_len = 3293, -+ .sig = { -+ 0xBE, 0xE5, 0x9E, 0x79, 0x09, 0xC2, 0xA0, 0xAB, 0xBD, 0xC3, 0xF9, 0xD0, 0x7D, 0x40, 0x5A, 0x96, 0x2E, 0x64, 0x2A, 0x1F, 0x1C, 0x1F, 0xD0, 0xB7, 0xAD, 0x6D, 0x99, 0x99, 0x0C, 0xE6, 0x9D, 0x5D, -+ 0x8D, 0x2D, 0xF8, 0x9B, 0xB9, 0x6F, 0xF9, 0xB5, 0xB6, 0xFC, 0xA6, 0x48, 0xDF, 0x08, 0x56, 0x45, 0x7B, 0x91, 0x9B, 0x38, 0x13, 0x16, 0x35, 0xDD, 0x81, 0x4A, 0x7A, 0xA8, 0xB0, 0xB9, 0x47, 0xDD, -+ 0x70, 0xA6, 0x7E, 0x49, 0x73, 0xFE, 0x33, 0xE1, 0xE0, 0x02, 0x22, 0x59, 0x7C, 0x2B, 0xE8, 0xF8, 0x67, 0x80, 0x12, 0x26, 0x41, 0x53, 0xAA, 0xCA, 0x64, 0x80, 0xC5, 0xF1, 0x8C, 0xA3, 0xC0, 0x50, -+ 0x45, 0x0D, 0x42, 0xD9, 0xE5, 0x6B, 0x9B, 0x5E, 0x76, 0xF3, 0xAE, 0x3B, 0xDB, 0x58, 0x95, 0x81, 0xC4, 0xAC, 0xF8, 0x10, 0x75, 0x35, 0xB1, 0xFE, 0x7D, 0x49, 0x42, 0xCB, 0xBC, 0xDF, 0xBA, 0x4E, -+ 0xC1, 0xAF, 0xBA, 0xA4, 0x60, 0x95, 0x61, 0x95, 0xB1, 0x72, 0x93, 0xDC, 0x18, 0xCF, 0x0A, 0x3B, 0x43, 0x6E, 0xC4, 0x74, 0x60, 0x0B, 0xE1, 0xB6, 0xE6, 0x1A, 0xE6, 0x1C, 0x4F, 0x9B, 0x2F, 0xB1, -+ 0x22, 0x98, 0x36, 0x2D, 0x9E, 0xF0, 0x1E, 0xC6, 0x8A, 0x46, 0x22, 0x95, 0x7B, 0x96, 0x4C, 0x30, 0x56, 0x29, 0xC4, 0x26, 0x34, 0xCF, 0x88, 0x47, 0xA7, 0x58, 0x12, 0x09, 0x41, 0x8E, 0x24, 0x58, -+ 0x90, 0x6E, 0x15, 0xC8, 0xE3, 0x0E, 0x74, 0xD8, 0xC8, 0x74, 0xD8, 0x5D, 0xC6, 0x3E, 0xB1, 0x1A, 0x96, 0x07, 0x57, 0xAD, 0xD9, 0xED, 0xAA, 0x6D, 0x9A, 0xF8, 0xB2, 0xE3, 0x55, 0x10, 0x22, 0xB2, -+ 0x34, 0x26, 0x31, 0x9D, 0x37, 0xAD, 0xF1, 0x92, 0xC2, 0x4E, 0xFD, 0xCF, 0x8D, 0x95, 0xEF, 0xE8, 0x6C, 0x16, 0x45, 0x9A, 0xAC, 0xA0, 0xDF, 0x6A, 0xE4, 0x14, 0xCD, 0x93, 0xB7, 0x0D, 0x57, 0xE7, -+ 0xA7, 0x64, 0x4C, 0x48, 0x91, 0xC0, 0x87, 0x96, 0xB3, 0xFD, 0x59, 0x2E, 0x51, 0xB1, 0xFA, 0x59, 0x1F, 0xD7, 0x1B, 0xC4, 0xFE, 0xC3, 0xB9, 0xA8, 0xDF, 0x5A, 0x92, 0x53, 0x57, 0xDF, 0x46, 0x82, -+ 0xA4, 0x58, 0x3F, 0x78, 0x8B, 0x61, 0x9D, 0x6D, 0xEC, 0x6A, 0xCD, 0x4A, 0x5A, 0x17, 0xE8, 0xF4, 0x16, 0x53, 0x96, 0x2A, 0x83, 0xB4, 0x5D, 0xA6, 0xC0, 0x87, 0xC8, 0xBE, 0xF1, 0x6E, 0x95, 0xD2, -+ 0xD4, 0x34, 0x38, 0x52, 0x7E, 0x92, 0x73, 0x64, 0x5E, 0x22, 0x58, 0x4E, 0xE6, 0xAD, 0xCE, 0xA4, 0xE2, 0x51, 0xCD, 0x79, 0xA0, 0x78, 0xEF, 0xF9, 0xC2, 0x9C, 0xE4, 0x52, 0xEA, 0xBA, 0x9C, 0xE3, -+ 0x21, 0x25, 0x71, 0x9F, 0xBE, 0xE5, 0xF9, 0xA9, 0x01, 0x31, 0xDF, 0x0C, 0xFD, 0xCA, 0x49, 0x49, 0x6A, 0xDC, 0x48, 0x5E, 0x8B, 0x08, 0xF3, 0x0F, 0xC3, 0xED, 0x0A, 0x29, 0x2A, 0x15, 0x4E, 0x3E, -+ 0x3C, 0x89, 0x34, 0x4A, 0xB9, 0xBA, 0x4E, 0x33, 0x23, 0xDD, 0x16, 0xC6, 0xEE, 0xD1, 0x84, 0xFE, 0x25, 0xE5, 0x62, 0xAC, 0x6B, 0xF7, 0xD0, 0x44, 0x15, 0xEA, 0x37, 0x0B, 0x72, 0xE5, 0x1A, 0x44, -+ 0x9E, 0xE6, 0xB5, 0x81, 0x83, 0x25, 0x0C, 0xDC, 0xB2, 0x27, 0x20, 0x5E, 0xCE, 0x5E, 0x9F, 0x63, 0x1D, 0xFE, 0xDE, 0x70, 0x2C, 0xE4, 0xEC, 0x66, 0xF8, 0x3B, 0xA7, 0x9D, 0x3F, 0xB4, 0x42, 0x2A, -+ 0xD6, 0xF4, 0x3B, 0x64, 0x41, 0x18, 0x95, 0x3E, 0x56, 0x47, 0x5D, 0x2D, 0x0C, 0x3A, 0x92, 0x51, 0xD9, 0x6A, 0x98, 0x67, 0xD8, 0x04, 0x9D, 0xF2, 0x17, 0x72, 0x4B, 0x42, 0x0F, 0xC3, 0xA4, 0xDF, -+ 0x2B, 0x86, 0x78, 0xD2, 0x90, 0x2B, 0x32, 0xD4, 0x4D, 0x93, 0x3F, 0xC5, 0x6C, 0x3F, 0x80, 0x22, 0xF8, 0x7A, 0xFD, 0xA3, 0x76, 0x89, 0x10, 0x5C, 0xAC, 0x8E, 0xCB, 0x2C, 0x8C, 0x2A, 0x92, 0x8B, -+ 0xDB, 0xAE, 0x81, 0x01, 0xE3, 0x44, 0x9F, 0x61, 0x36, 0xB0, 0x53, 0xAA, 0xA2, 0x0C, 0x14, 0x0B, 0xD9, 0x20, 0xB9, 0xBB, 0x67, 0x65, 0x5E, 0xE7, 0x9B, 0xC4, 0xE2, 0x63, 0x6C, 0xB0, 0xCA, 0x4A, -+ 0x7E, 0xFE, 0x39, 0x72, 0xF9, 0xA0, 0xC6, 0xCF, 0x16, 0xAD, 0x16, 0x33, 0xCE, 0x51, 0xF2, 0xC5, 0x4A, 0x77, 0x12, 0xE6, 0x9D, 0x57, 0x7A, 0x20, 0x83, 0x4C, 0x4A, 0xD1, 0xCC, 0xE4, 0xE3, 0xF8, -+ 0xC1, 0xAB, 0x65, 0xC1, 0x54, 0x8B, 0x00, 0x02, 0x67, 0x28, 0xE5, 0x7D, 0x42, 0xA2, 0x94, 0x28, 0x82, 0xB2, 0x4B, 0x45, 0x94, 0x44, 0xEB, 0x43, 0x2B, 0x89, 0x5A, 0xCA, 0x2A, 0x71, 0xA6, 0x2A, -+ 0x34, 0x92, 0x7E, 0x56, 0x75, 0x81, 0xD8, 0xBA, 0x2A, 0x1E, 0x52, 0xF0, 0xAE, 0xEE, 0xE1, 0xB0, 0x86, 0x4B, 0xF3, 0x7D, 0x7A, 0xE5, 0xCA, 0x2D, 0x2F, 0x15, 0x2E, 0x73, 0x89, 0x22, 0x4C, 0xA7, -+ 0xF9, 0x13, 0x2B, 0x89, 0x39, 0xE1, 0xB1, 0xCC, 0xBF, 0xC0, 0x3B, 0x2B, 0xE9, 0xA4, 0x60, 0xCF, 0xC7, 0xDC, 0x5A, 0xA5, 0x04, 0xF7, 0xFC, 0xD9, 0x46, 0xDC, 0xE5, 0xC6, 0x39, 0x9D, 0xA6, 0xC0, -+ 0xC8, 0xD8, 0xCC, 0x8B, 0x0C, 0x0B, 0x30, 0x73, 0x6C, 0x63, 0x10, 0x25, 0xA6, 0xA3, 0xA9, 0xE2, 0xD9, 0x4C, 0xDC, 0xBD, 0x3C, 0xE7, 0xA6, 0x8D, 0x7F, 0xFD, 0xEE, 0xAA, 0x45, 0x9B, 0x10, 0x4B, -+ 0xB7, 0x30, 0xED, 0x7C, 0x9E, 0x87, 0xBB, 0x02, 0xE8, 0x9D, 0xEE, 0x4F, 0x91, 0x5F, 0xD2, 0xE3, 0x1B, 0xF4, 0x18, 0xA1, 0x55, 0x02, 0xA4, 0xB2, 0xE4, 0x26, 0xED, 0xEA, 0x8A, 0x14, 0x26, 0x90, -+ 0xA4, 0x5E, 0xDA, 0xB3, 0xE6, 0x37, 0xF7, 0x97, 0xE7, 0xA7, 0x86, 0xB8, 0xA8, 0xE9, 0x0E, 0x9E, 0xE0, 0xD5, 0x78, 0x1E, 0xCD, 0x16, 0x91, 0x1F, 0xB0, 0xF4, 0xEB, 0x5B, 0x0C, 0x70, 0x74, 0x98, -+ 0xFE, 0x7D, 0x8C, 0x2A, 0xE6, 0x73, 0xA3, 0x33, 0x4A, 0xFB, 0x95, 0xAC, 0x6B, 0x18, 0x5A, 0xF3, 0x6F, 0xA1, 0x87, 0x74, 0x93, 0x8B, 0xA6, 0x56, 0xB2, 0x2F, 0xDC, 0x9A, 0xCB, 0xCF, 0xBF, 0x95, -+ 0xD1, 0xBF, 0x5E, 0xDF, 0x7D, 0x90, 0x5C, 0xF1, 0xB5, 0x40, 0xE1, 0x7B, 0xAB, 0x93, 0x7B, 0x4B, 0xD3, 0x62, 0x0D, 0x59, 0x4C, 0x0D, 0x9B, 0xDB, 0xC7, 0x15, 0x99, 0xCE, 0x69, 0xE5, 0x70, 0x6F, -+ 0xA3, 0x33, 0x20, 0xFE, 0xE0, 0x63, 0x96, 0xCB, 0x97, 0x37, 0xDB, 0x17, 0xA6, 0x2C, 0x96, 0x5F, 0x77, 0xE3, 0x5A, 0xF9, 0xF7, 0x85, 0xBB, 0x0E, 0x50, 0xAB, 0xB8, 0x10, 0x6F, 0xE8, 0xB9, 0x04, -+ 0xD0, 0xCD, 0x1E, 0x15, 0xB9, 0x25, 0x55, 0xF0, 0x5C, 0x24, 0xE7, 0x6E, 0x94, 0xEC, 0x41, 0xEC, 0x90, 0xE9, 0x60, 0x39, 0xB4, 0xA7, 0xCA, 0x9F, 0x8E, 0xD1, 0x3F, 0x1B, 0xE6, 0xFA, 0x85, 0x03, -+ 0x44, 0xD4, 0x46, 0xB1, 0x68, 0x3B, 0x04, 0xB7, 0x5B, 0xBA, 0x0C, 0x08, 0xF7, 0x40, 0x25, 0x67, 0x8E, 0x75, 0x40, 0x35, 0x32, 0x21, 0x9F, 0x37, 0x48, 0xF3, 0xC7, 0x3A, 0xA2, 0x0E, 0x34, 0xD5, -+ 0xEB, 0x1B, 0x0C, 0xBB, 0x58, 0xDA, 0x9A, 0x01, 0xF3, 0x7E, 0x74, 0xC0, 0x63, 0xD0, 0x3A, 0xF3, 0xBA, 0x8F, 0xBA, 0x28, 0x59, 0x2E, 0x41, 0x93, 0x27, 0x0A, 0x00, 0xCD, 0x15, 0x86, 0xF8, 0x33, -+ 0xDF, 0xA8, 0xDB, 0xF4, 0x0C, 0x15, 0xE7, 0x04, 0xD2, 0x53, 0x65, 0x8C, 0xC0, 0x6C, 0x6A, 0x48, 0x88, 0x1B, 0xAE, 0x68, 0xBD, 0x4C, 0xBE, 0x38, 0xE7, 0xC8, 0x94, 0x87, 0x3E, 0x86, 0x3A, 0x2C, -+ 0x4C, 0xA2, 0x24, 0xB7, 0x6E, 0xD6, 0x2B, 0xDC, 0x06, 0xD9, 0x0D, 0x7A, 0x7E, 0xC6, 0x8B, 0x62, 0x2E, 0xB3, 0x8A, 0x42, 0x63, 0x93, 0xA4, 0x6E, 0xCA, 0x77, 0xF2, 0x88, 0x11, 0x5A, 0x2A, 0xEF, -+ 0xAC, 0xC1, 0x5F, 0x44, 0xD9, 0x28, 0x08, 0x8C, 0x5B, 0xC1, 0x9E, 0x08, 0x95, 0xF9, 0x61, 0x9A, 0x08, 0x92, 0x65, 0xB7, 0x6E, 0xEE, 0x26, 0x61, 0xD2, 0x0D, 0x1B, 0xFB, 0x84, 0x79, 0xC2, 0x1C, -+ 0x15, 0x3E, 0x1D, 0xCA, 0xB0, 0xF0, 0x04, 0xF8, 0x0A, 0x07, 0x2D, 0xE3, 0xE4, 0xAB, 0xB6, 0xF6, 0x99, 0xAE, 0xB8, 0x52, 0xF3, 0x5E, 0x3A, 0xFE, 0x0F, 0xA7, 0x99, 0x35, 0x5E, 0x6B, 0x7E, 0xC6, -+ 0xD6, 0x59, 0x20, 0xDC, 0xA5, 0x24, 0x8B, 0x45, 0x5B, 0x90, 0xE7, 0xD2, 0xE9, 0x85, 0x9B, 0x18, 0x30, 0x18, 0x65, 0x74, 0xA9, 0x5C, 0xB6, 0x2A, 0x0F, 0x07, 0x3C, 0xAB, 0x4A, 0xCF, 0x1A, 0x9D, -+ 0x52, 0xA0, 0xD1, 0xF1, 0x76, 0xFE, 0x50, 0x48, 0x77, 0x42, 0xC4, 0x7D, 0x7D, 0x9A, 0x82, 0xC7, 0xEB, 0xCF, 0x67, 0xAE, 0xBC, 0x8C, 0x77, 0xDF, 0xD0, 0x0E, 0x7C, 0xDC, 0xBD, 0xB6, 0x9D, 0x82, -+ 0x12, 0xD5, 0xD4, 0x56, 0x1E, 0x83, 0x1C, 0x1C, 0xEE, 0xC7, 0x57, 0x14, 0x91, 0x1B, 0xFE, 0xDA, 0xBB, 0x71, 0x4E, 0xDB, 0xEC, 0xD8, 0x6D, 0x3B, 0x5B, 0x65, 0xD1, 0x54, 0x28, 0x83, 0x33, 0xEC, -+ 0x57, 0x32, 0x7E, 0x2A, 0x27, 0xF2, 0xCD, 0xF1, 0x93, 0xA4, 0x6F, 0xF1, 0x1B, 0x6A, 0x19, 0xD3, 0xDC, 0x71, 0x12, 0x95, 0xB5, 0x08, 0xBF, 0x44, 0x3F, 0x02, 0xAC, 0x9E, 0xB0, 0x4F, 0x37, 0xB6, -+ 0x7A, 0x8E, 0xD5, 0x49, 0x3F, 0x41, 0xE9, 0x24, 0xF8, 0x48, 0x9F, 0xE2, 0x6A, 0xCA, 0xE5, 0xF6, 0xB0, 0x7B, 0x67, 0x68, 0x31, 0xE2, 0x71, 0xBC, 0xDE, 0x12, 0xC8, 0x0F, 0x65, 0xE8, 0xD0, 0x30, -+ 0x0D, 0x8F, 0xDE, 0xD5, 0xE9, 0xBF, 0x1A, 0x59, 0xC8, 0x8E, 0xD3, 0x89, 0x45, 0x37, 0x14, 0x51, 0xE1, 0x13, 0x54, 0xB3, 0x07, 0x40, 0x47, 0x61, 0x9B, 0x3A, 0x27, 0x66, 0x58, 0x41, 0x7A, 0xA1, -+ 0x75, 0x02, 0x67, 0x49, 0xA4, 0xE4, 0x61, 0xF0, 0x59, 0xAF, 0x85, 0xE2, 0x07, 0xF4, 0xD0, 0x21, 0xBB, 0x9C, 0x12, 0xFD, 0xF3, 0x02, 0x90, 0x79, 0x59, 0x72, 0x17, 0xAA, 0x39, 0x15, 0x20, 0x78, -+ 0x0A, 0x7C, 0x90, 0xC2, 0x32, 0x65, 0x91, 0x14, 0x39, 0x31, 0x84, 0x4F, 0x85, 0x6B, 0x08, 0x4A, 0xC1, 0x7A, 0xEB, 0xC5, 0x93, 0xAC, 0xE9, 0x32, 0xF0, 0xAD, 0x36, 0xE2, 0x13, 0x57, 0xCE, 0xFF, -+ 0xF3, 0x75, 0xCC, 0xC8, 0x43, 0x42, 0xB8, 0x61, 0x94, 0xA2, 0xBC, 0x77, 0x16, 0x5E, 0xDB, 0x9E, 0xFE, 0x35, 0x93, 0x51, 0xAD, 0x8E, 0x4B, 0xDD, 0x4C, 0xA6, 0xEC, 0xFA, 0x05, 0x20, 0xCC, 0x2F, -+ 0x46, 0xCF, 0x8A, 0xA1, 0x10, 0x9E, 0x62, 0x68, 0x2B, 0x37, 0xC7, 0x01, 0x42, 0x1F, 0xEE, 0x8F, 0xB5, 0x0A, 0x7D, 0x11, 0xB2, 0xF5, 0xA0, 0x50, 0x14, 0xED, 0x63, 0xBF, 0x91, 0x0C, 0xBB, 0x06, -+ 0xFA, 0x47, 0xF1, 0xD8, 0x49, 0xAF, 0x11, 0x86, 0xF9, 0x77, 0xD8, 0x07, 0x3D, 0x72, 0x78, 0x3C, 0x4E, 0xE3, 0xC1, 0x9F, 0xF9, 0x5F, 0x23, 0xFC, 0xBD, 0x98, 0x87, 0x9A, 0x46, 0x82, 0xA8, 0xCF, -+ 0xA7, 0x68, 0x7E, 0xA5, 0x20, 0xCE, 0x58, 0x7E, 0x9A, 0x3E, 0x8F, 0x68, 0x4E, 0x00, 0x09, 0x6A, 0xFE, 0x61, 0x7C, 0xEC, 0xFE, 0x0A, 0x6F, 0xDE, 0xB4, 0x5D, 0x49, 0x3E, 0x7E, 0x35, 0xCC, 0x25, -+ 0xB6, 0x44, 0xF9, 0xBD, 0xF4, 0xED, 0x10, 0x41, 0x76, 0xCB, 0x96, 0x1B, 0x0C, 0x95, 0x7F, 0x8F, 0x3C, 0xB4, 0x29, 0xFA, 0x14, 0x4D, 0x60, 0x6D, 0x2D, 0xFE, 0x27, 0xC0, 0x90, 0xA3, 0xC2, 0x26, -+ 0x9C, 0x84, 0xB5, 0xF4, 0x95, 0xC1, 0xC6, 0x6D, 0xD0, 0x79, 0x49, 0x27, 0x4D, 0x99, 0x49, 0x9B, 0x63, 0x3B, 0xFE, 0xA8, 0xF0, 0x44, 0x52, 0x1A, 0xB2, 0x56, 0xF6, 0xF6, 0x24, 0x6A, 0x0C, 0x0A, -+ 0xEA, 0x3A, 0xDE, 0xFD, 0x14, 0xC8, 0xB1, 0xBE, 0x92, 0xA2, 0x34, 0x7C, 0xD1, 0xFB, 0xEE, 0xAD, 0x71, 0x2C, 0xC0, 0xA8, 0xBE, 0x4C, 0xE0, 0xF4, 0x77, 0x9E, 0xAB, 0x56, 0xF7, 0x1D, 0x9A, 0x7B, -+ 0x3F, 0x4B, 0xA7, 0x25, 0x24, 0x34, 0xB9, 0x84, 0xDF, 0xE9, 0xD7, 0x59, 0x65, 0x45, 0x66, 0x5F, 0x2F, 0x1E, 0x51, 0x61, 0xC9, 0xDC, 0x9E, 0xA5, 0x89, 0xE3, 0x01, 0xC7, 0x50, 0xB7, 0x3E, 0x55, -+ 0x26, 0xEF, 0xE6, 0x5F, 0xA0, 0x79, 0x2A, 0xF2, 0xF6, 0x4C, 0xEF, 0xDA, 0x89, 0x1F, 0xB0, 0x81, 0x20, 0x37, 0xFD, 0x0A, 0x31, 0xE7, 0x60, 0x22, 0x83, 0xBE, 0x2B, 0x8D, 0xF6, 0xA7, 0xDB, 0x90, -+ 0xF3, 0x0F, 0x8B, 0x3B, 0x2D, 0x30, 0xC0, 0x9B, 0x90, 0x0F, 0xA4, 0x00, 0xFD, 0x1C, 0x4B, 0x42, 0x56, 0x3D, 0xF1, 0xEB, 0x8E, 0x39, 0xF9, 0x46, 0x85, 0x95, 0x11, 0x2C, 0x92, 0xD4, 0xA8, 0x43, -+ 0xEE, 0xE8, 0x70, 0x34, 0x3F, 0xC8, 0x9E, 0x57, 0xC6, 0xBA, 0xCC, 0x37, 0x0D, 0x01, 0x4A, 0x5E, 0x2A, 0xFE, 0xEF, 0x1C, 0x25, 0xEB, 0xA0, 0x80, 0xEC, 0x13, 0x4E, 0x85, 0x8C, 0xFD, 0x65, 0x4D, -+ 0x0E, 0x96, 0x14, 0x02, 0xD9, 0xA8, 0x07, 0xA9, 0x71, 0xCF, 0x59, 0x2F, 0x33, 0xD1, 0x8E, 0xB2, 0x21, 0x0A, 0x59, 0xE0, 0xFE, 0x94, 0x83, 0x18, 0xE6, 0x0E, 0x6D, 0x61, 0x8D, 0x2D, 0x04, 0x0C, -+ 0x77, 0x3C, 0xE3, 0x0F, 0x91, 0x64, 0xCC, 0xD4, 0x19, 0xF3, 0x25, 0xF2, 0xFA, 0x3D, 0xDE, 0x63, 0xF5, 0xDF, 0x54, 0x76, 0x42, 0x41, 0x25, 0xE4, 0xA9, 0x23, 0x7F, 0x18, 0xEC, 0x9B, 0x41, 0x09, -+ 0x9E, 0x89, 0x05, 0xC1, 0x73, 0xDC, 0x60, 0xDD, 0xB3, 0x6D, 0x18, 0x09, 0xC0, 0xF2, 0x2B, 0x3F, 0xA8, 0xB3, 0x9D, 0x84, 0x2E, 0x44, 0xFD, 0xEC, 0x4D, 0xAB, 0x65, 0x0E, 0x9E, 0x60, 0xE3, 0x1C, -+ 0x05, 0x8E, 0x8C, 0x86, 0x2F, 0x06, 0x9E, 0xD7, 0x00, 0x13, 0x15, 0x77, 0x3A, 0x51, 0x90, 0xC8, 0x64, 0xDC, 0x01, 0xAE, 0x44, 0x5C, 0x59, 0x03, 0xB1, 0x40, 0x07, 0x1A, 0xD7, 0x16, 0xD9, 0x34, -+ 0x3D, 0x78, 0x8A, 0x0D, 0x36, 0x4A, 0x8F, 0x64, 0x46, 0x5E, 0x68, 0x74, 0x86, 0x12, 0xE9, 0x41, 0xC2, 0xE1, 0xC8, 0xC2, 0x77, 0xCE, 0xF0, 0xF6, 0xCC, 0x08, 0xED, 0xFA, 0xA3, 0xCC, 0x4C, 0x0F, -+ 0x26, 0x21, 0x59, 0x9C, 0x3A, 0xF4, 0x06, 0xBC, 0x4C, 0xEA, 0x92, 0x33, 0x1B, 0xC6, 0x85, 0x32, 0x12, 0xB2, 0xB3, 0xB1, 0x52, 0x60, 0xFC, 0x54, 0x71, 0x95, 0xBE, 0xCB, 0x95, 0xB0, 0xA5, 0x47, -+ 0x8E, 0x0F, 0xE5, 0x50, 0xAC, 0xE0, 0xBC, 0x24, 0xE7, 0x2A, 0xC9, 0x83, 0x0F, 0xC7, 0xB4, 0x94, 0xFF, 0x40, 0x9B, 0x49, 0xF9, 0xB3, 0xCC, 0x00, 0x0B, 0x1B, 0x22, 0xE9, 0xFD, 0xDA, 0xBE, 0x17, -+ 0x68, 0xB8, 0xB1, 0x72, 0x53, 0xE1, 0xC1, 0x6D, 0x44, 0x3F, 0x51, 0xC5, 0xE3, 0x6B, 0xA2, 0x1D, 0xC0, 0x99, 0x62, 0xF8, 0x3F, 0xAF, 0xE8, 0x33, 0x9E, 0xD0, 0xAD, 0x32, 0x37, 0x88, 0xDB, 0xFA, -+ 0xCE, 0x7B, 0xBA, 0xD5, 0xE8, 0xEA, 0x20, 0x7D, 0x9C, 0x49, 0x5E, 0x57, 0x9A, 0xD7, 0xA7, 0xCB, 0xD3, 0x29, 0xA2, 0x5E, 0xCD, 0x11, 0xE0, 0x98, 0x21, 0x1D, 0x60, 0xEF, 0xB9, 0x01, 0x37, 0x3B, -+ 0x87, 0xDA, 0xBD, 0x64, 0xA0, 0xAF, 0xE0, 0xDC, 0x2C, 0xA6, 0x15, 0x98, 0xB7, 0xAD, 0x36, 0x70, 0x8B, 0x53, 0x80, 0x0B, 0xE4, 0x57, 0x47, 0x69, 0x82, 0xA3, 0xB9, 0x31, 0x57, 0x14, 0x90, 0x0C, -+ 0x93, 0x3A, 0x34, 0xB2, 0xAD, 0x9C, 0xBF, 0x16, 0x92, 0xBB, 0xDF, 0x3A, 0x6D, 0xC8, 0x72, 0x03, 0x42, 0x22, 0x89, 0xCD, 0xFD, 0xBC, 0x7D, 0xB7, 0x60, 0x93, 0x69, 0xF0, 0xF2, 0x6B, 0xEB, 0x7F, -+ 0x12, 0x8E, 0x64, 0x37, 0x13, 0x5C, 0x53, 0x58, 0x26, 0xFF, 0xCC, 0xFA, 0x65, 0xF4, 0xC9, 0xC2, 0x0D, 0xB3, 0xFC, 0xA3, 0x0B, 0xC5, 0xD3, 0xEA, 0x17, 0xA6, 0x93, 0xE5, 0x13, 0x54, 0x3F, 0x9C, -+ 0xEC, 0x71, 0x51, 0x2B, 0xB8, 0x75, 0x54, 0x9E, 0x3B, 0x5C, 0xB9, 0xF2, 0xF7, 0x7D, 0x2A, 0x80, 0xBF, 0xAC, 0xFC, 0xC4, 0x53, 0x50, 0x8D, 0xDB, 0x91, 0xAE, 0xF1, 0xEA, 0x69, 0xAD, 0x8A, 0x00, -+ 0x43, 0x99, 0xF5, 0xF6, 0x69, 0x4E, 0x6F, 0x8A, 0x96, 0xE7, 0x3D, 0x4B, 0xE5, 0x02, 0x70, 0x61, 0x73, 0x4F, 0x13, 0x2C, 0x9E, 0xD5, 0x27, 0xF3, 0xB3, 0xC3, 0xC5, 0xC8, 0x48, 0x94, 0x1C, 0x79, -+ 0xC7, 0x58, 0xCA, 0x48, 0x5E, 0xAD, 0x8F, 0x99, 0x4F, 0x9C, 0x31, 0x31, 0xA2, 0x7B, 0x1E, 0x1E, 0x93, 0xB6, 0xE0, 0x1C, 0xAA, 0x85, 0x04, 0xA0, 0x48, 0xEB, 0xC3, 0xE2, 0x7C, 0x3C, 0xF1, 0xFF, -+ 0x94, 0xA0, 0x58, 0x60, 0x76, 0x2D, 0x07, 0xE7, 0x90, 0x5E, 0x13, 0x17, 0x53, 0xF5, 0xBA, 0x4D, 0xA6, 0xE7, 0x94, 0xE4, 0x25, 0xEF, 0x41, 0x94, 0xA7, 0x60, 0xBA, 0xBA, 0xA5, 0xBE, 0xED, 0x8D, -+ 0x39, 0x9C, 0xB3, 0x80, 0x1C, 0x87, 0x27, 0xBC, 0x84, 0x7D, 0x2A, 0x77, 0x1E, 0x02, 0x6F, 0xF6, 0x13, 0x25, 0x5D, 0xD1, 0xA1, 0xF8, 0x8A, 0x1A, 0xA2, 0xC4, 0xA4, 0xBA, 0x48, 0xAE, 0x71, 0xEE, -+ 0xC2, 0x2B, 0x38, 0xE6, 0x84, 0x2F, 0xD3, 0x18, 0x41, 0x60, 0x06, 0xE8, 0xBA, 0x1A, 0x96, 0x73, 0xD1, 0x43, 0xEB, 0x80, 0x49, 0x1F, 0x98, 0xD6, 0x34, 0xB4, 0x6C, 0xAB, 0x31, 0x0E, 0xCC, 0x1F, -+ 0x70, 0x22, 0x97, 0xF6, 0xF0, 0xA8, 0x4A, 0x2B, 0xC2, 0xB7, 0x90, 0xAF, 0xEA, 0xAF, 0xE7, 0x3F, 0x06, 0x3B, 0x3A, 0xA4, 0xFF, 0xAE, 0xD3, 0x52, 0x67, 0xFD, 0x2B, 0x52, 0x69, 0x50, 0x3C, 0x88, -+ 0x83, 0xAD, 0x7D, 0x9E, 0x77, 0xD4, 0x67, 0xB3, 0xB3, 0x5B, 0xDC, 0xD5, 0xDD, 0xFC, 0x58, 0x02, 0x41, 0x78, 0x24, 0x6D, 0xF1, 0x24, 0x66, 0x23, 0x8F, 0x28, 0x6D, 0x85, 0xD9, 0x2A, 0x23, 0x55, -+ 0xC6, 0x3A, 0xF9, 0xA4, 0x59, 0x07, 0x7E, 0xAF, 0x28, 0xCD, 0xAD, 0x26, 0xCC, 0x71, 0xC6, 0xFF, 0x60, 0x7B, 0x50, 0xBC, 0xAB, 0x69, 0x3E, 0x09, 0x1F, 0x25, 0x09, 0x39, 0xC5, 0x23, 0x5C, 0x61, -+ 0x6B, 0x84, 0x01, 0x2C, 0x12, 0xFA, 0xAB, 0xE4, 0x0A, 0x66, 0x16, 0x84, 0x24, 0x01, 0x99, 0xB2, 0xDD, 0x9C, 0x86, 0x17, 0x9A, 0xBF, 0x8D, 0x3B, 0x96, 0xDE, 0xD1, 0x67, 0x50, 0x24, 0x6A, 0x8F, -+ 0x03, 0x30, 0x5E, 0xE0, 0x67, 0xAD, 0xF2, 0x2C, 0x39, 0xEC, 0xB1, 0xFA, 0xF8, 0x57, 0x8D, 0xED, 0x3A, 0x25, 0xE5, 0x44, 0x85, 0xA1, 0x0B, 0xC9, 0x8A, 0x82, 0x4D, 0xBD, 0xFC, 0x2F, 0x6B, 0x14, -+ 0x5F, 0x42, 0x16, 0xA2, 0x9D, 0xB5, 0xFA, 0x7A, 0x9C, 0x2B, 0x6D, 0x51, 0xCB, 0x37, 0x59, 0xC3, 0xC5, 0x89, 0x46, 0xDD, 0x2E, 0x64, 0x8A, 0x1F, 0x36, 0xD2, 0x0C, 0x09, 0xBC, 0x58, 0xBA, 0x91, -+ 0xE2, 0x57, 0x03, 0x63, 0x98, 0xB7, 0xD5, 0xDA, 0x10, 0x6E, 0x5C, 0x6B, 0xDE, 0x1F, 0xF1, 0x98, 0xB9, 0x5D, 0x12, 0xDE, 0xFD, 0xC5, 0x4A, 0x5B, 0x3D, 0xD5, 0x5A, 0xFF, 0x42, 0x00, 0xAA, 0x27, -+ 0xED, 0x5B, 0xCB, 0xD7, 0xFD, 0x6D, 0x6A, 0xD9, 0x1E, 0x15, 0x96, 0x53, 0x35, 0x2E, 0xDE, 0xE8, 0xF9, 0x60, 0xE4, 0xEB, 0x6F, 0x09, 0x42, 0xAF, 0x52, 0x51, 0xEF, 0x39, 0xC1, 0xAB, 0xBD, 0xC4, -+ 0x2D, 0x8B, 0xE0, 0xB8, 0x80, 0x06, 0x7A, 0x79, 0xCE, 0xB1, 0x69, 0x90, 0x1E, 0xA8, 0x14, 0x71, 0xC4, 0xDC, 0x78, 0x23, 0x32, 0xBA, 0xC6, 0x26, 0x40, 0xA2, 0x80, 0xDD, 0x9B, 0x32, 0x3C, 0xC5, -+ 0xC3, 0x93, 0xB2, 0xB3, 0x7F, 0xE8, 0x21, 0xBA, 0x45, 0xD5, 0xC0, 0x5B, 0xCF, 0xEB, 0x11, 0x75, 0xF7, 0xE5, 0xAE, 0x12, 0xE7, 0x7D, 0xCF, 0x92, 0xB5, 0xDC, 0xB7, 0xF4, 0x87, 0x52, 0xA7, 0x2E, -+ 0x6F, 0x6E, 0x25, 0x0A, 0x65, 0x27, 0xF5, 0xA6, 0xF3, 0x59, 0xEB, 0x4D, 0x1C, 0x69, 0xDD, 0x65, 0x1D, 0x89, 0xF3, 0xF2, 0x22, 0x9C, 0xEF, 0x12, 0xF5, 0x01, 0x2A, 0x96, 0x68, 0xD2, 0x60, 0xF7, -+ 0x79, 0x3C, 0x91, 0xA7, 0x62, 0x2E, 0x5E, 0xCC, 0x3B, 0x58, 0x21, 0xBA, 0x43, 0x9E, 0xCC, 0x75, 0x33, 0xDF, 0xB5, 0x32, 0xA2, 0xB6, 0x4A, 0x96, 0x0C, 0x4C, 0xA0, 0x43, 0x1B, 0x3D, 0x09, 0x57, -+ 0x3B, 0x0B, 0x63, 0x75, 0x74, 0x8A, 0x47, 0x5D, 0xD0, 0xDC, 0x92, 0x90, 0xCE, 0xCA, 0xFD, 0x05, 0x9D, 0xC0, 0x03, 0x8C, 0xD1, 0x29, 0x54, 0x68, 0xA4, 0xCE, 0x11, 0x8E, 0x8B, 0x5B, 0x03, 0x70, -+ 0x7C, 0x56, 0xB1, 0x4E, 0xDF, 0x9A, 0xF6, 0x21, 0x9E, 0xF7, 0x68, 0xDF, 0xCF, 0x3D, 0x45, 0x52, 0x84, 0x4C, 0x58, 0x54, 0x1C, 0xFA, 0x0D, 0x17, 0x5C, 0xF7, 0xEF, 0xBB, 0x5F, 0xA2, 0x81, 0x30, -+ 0xCB, 0x78, 0xD8, 0x21, 0x20, 0xAC, 0xB7, 0xB4, 0x03, 0xCC, 0x75, 0xB8, 0x1C, 0x3F, 0xF1, 0x24, 0x0D, 0xBE, 0xF6, 0xE7, 0xF1, 0xCB, 0xA8, 0x80, 0x7A, 0x5A, 0x21, 0x31, 0x0C, 0x29, 0x79, 0x5B, -+ 0x4E, 0x32, 0xCC, 0x4A, 0x49, 0xC4, 0x7F, 0xB5, 0x1B, 0xAC, 0xDD, 0x14, 0x3C, 0xD4, 0x95, 0xC0, 0xF5, 0xC1, 0x0D, 0xF9, 0xFE, 0x06, 0xBF, 0x22, 0x41, 0xBC, 0xEC, 0xEA, 0x21, 0x29, 0xD3, 0xDB, -+ 0xC5, 0x7B, 0xA1, 0x06, 0x8F, 0x43, 0x2D, 0xDF, 0x57, 0x24, 0x14, 0xAD, 0x6F, 0x12, 0xD6, 0x37, 0x10, 0x64, 0xFD, 0xEE, 0x0D, 0x5C, 0xCF, 0x97, 0x30, 0xBA, 0xD1, 0xBB, 0xB4, 0x74, 0x9C, 0x87, -+ 0x00, 0x7E, 0xB0, 0xBD, 0x66, 0x60, 0xC9, 0x94, 0xFF, 0xCC, 0x7F, 0xC7, 0xD7, 0x69, 0xAB, 0xF0, 0x16, 0x0B, 0xA6, 0xDF, 0x93, 0xB7, 0x19, 0xC7, 0x3B, 0x6D, 0xA6, 0xB5, 0xB1, 0x51, 0xDC, 0x44, -+ 0xA3, 0x9D, 0x54, 0x3A, 0xF0, 0x73, 0xD3, 0x74, 0xE0, 0x4B, 0x03, 0x3D, 0x1A, 0xFA, 0xB9, 0x59, 0x08, 0x2E, 0x5E, 0x02, 0xB2, 0x07, 0xA2, 0x55, 0x10, 0x5B, 0xB4, 0xD4, 0xC7, 0xE6, 0xB2, 0x5A, -+ 0x62, 0x65, 0x8C, 0x13, 0xCF, 0x91, 0x35, 0x1F, 0x50, 0xCC, 0x23, 0x74, 0x16, 0x41, 0x06, 0x67, 0xFA, 0xA8, 0x9D, 0xEC, 0x53, 0x8E, 0xB1, 0xAE, 0x2C, 0xBE, 0x55, 0x8D, 0xCC, 0xEE, 0xB5, 0xAA, -+ 0xE9, 0x08, 0xBD, 0x1E, 0xE7, 0x90, 0xA8, 0x43, 0xDB, 0x06, 0x73, 0x29, 0xC7, 0x05, 0x04, 0x5B, 0xBC, 0x0A, 0x7A, 0xCB, 0xA0, 0xA5, 0x1D, 0xB8, 0x39, 0xAA, 0xAF, 0xB6, 0xA3, 0x6F, 0x4E, 0xC1, -+ 0xC2, 0xD4, 0x3F, 0x5B, 0xF1, 0xAC, 0x55, 0xAA, 0x6E, 0x82, 0x0B, 0x26, 0xC4, 0x7C, 0x38, 0x06, 0x0C, 0x61, 0xB1, 0xE3, 0xA7, 0xB2, 0xCC, 0x26, 0x1D, 0x54, 0xC0, 0xB3, 0x4F, 0x5A, 0x25, 0x74, -+ 0xF5, 0x24, 0x3B, 0x2A, 0x08, 0x29, 0xBE, 0xBB, 0xA9, 0x93, 0x30, 0x11, 0x89, 0x7E, 0x98, 0x08, 0x69, 0xD6, 0xDD, 0x5A, 0xC7, 0xB3, 0x1A, 0x9B, 0xA9, 0xAA, 0x98, 0xA3, 0xEC, 0x20, 0x14, 0x5A, -+ 0x81, 0xB2, 0x7B, 0x33, 0xAB, 0x66, 0x62, 0xDB, 0x34, 0x87, 0xFC, 0xAA, 0x32, 0xBA, 0xFA, 0x6E, 0x1B, 0x28, 0x55, 0x02, 0x5D, 0x5F, 0xB5, 0xC8, 0x69, 0x67, 0x75, 0x20, 0x03, 0xBE, 0x2F, 0xD8, -+ 0xE2, 0x98, 0xB3, 0x73, 0xD1, 0x01, 0x7E, 0xD7, 0xD1, 0xAC, 0xCB, 0x6D, 0x31, 0x6F, 0x19, 0x40, 0x19, 0x76, 0xF2, 0x13, 0x38, 0x62, 0xAA, 0x3C, 0xC4, 0x82, 0x39, 0x0C, 0xE5, 0x5D, 0x1E, 0x63, -+ 0xEC, 0x4A, 0x40, 0xFE, 0x82, 0x6E, 0x62, 0x8D, 0x3E, 0x81, 0x1C, 0xDF, 0x57, 0x27, 0x70, 0x48, 0x0F, 0x20, 0x3A, 0x36, 0xA6, 0xFD, 0xAB, 0xD1, 0xD2, 0xCB, 0x6D, 0xE5, 0xD7, 0xC2, 0xA3, 0x2A, -+ 0xD4, 0x5B, 0xF3, 0x72, 0x5F, 0x59, 0x9D, 0x29, 0xD0, 0xF1, 0x34, 0x2E, 0x3B, 0x57, 0x98, 0x63, 0x3B, 0x6E, 0x72, 0xA4, 0x3F, 0x48, 0x33, 0xF2, 0x21, 0xEA, 0x9D, 0x90, 0x4B, 0x00, 0x2D, 0x8D, -+ 0x13, 0xF6, 0xE7, 0x44, 0x10, 0x05, 0xBD, 0x3D, 0xA8, 0x8B, 0x64, 0x9B, 0xEE, 0x65, 0xAC, 0x9F, 0xF6, 0xDB, 0x40, 0x7E, 0xED, 0x65, 0x3E, 0x18, 0x87, 0x35, 0xF5, 0xFF, 0xDB, 0xBC, 0x4A, 0x1E, -+ 0x2E, 0x08, 0x9C, 0x7B, 0xC4, 0x60, 0x6B, 0xCA, 0x32, 0x34, 0xF2, 0xD8, 0x9D, 0x40, 0x39, 0x55, 0xF4, 0x4A, 0x44, 0x4A, 0x42, 0xA2, 0x0D, 0xFE, 0xE5, 0xC4, 0x9C, 0x84, 0x42, 0x5E, 0x1A, 0x17, -+ 0x2C, 0xA4, 0x44, 0x82, 0xFE, 0xBB, 0x45, 0x16, 0xDD, 0x4B, 0x64, 0x9C, 0x6F, 0x31, 0x5A, 0x7E, 0x2D, 0xDB, 0xE1, 0x94, 0xFE, 0xA2, 0xA9, 0x17, 0x28, 0xE1, 0xDF, 0x45, 0x11, 0x08, 0xE2, 0x10, -+ 0x56, 0xA7, 0xBD, 0x3D, 0x45, 0x5B, 0x8A, 0xA8, 0xB7, 0x11, 0x1C, 0x26, 0x79, 0x7C, 0xB7, 0xBA, 0x0C, 0x24, 0x60, 0x8E, 0x93, 0xDC, 0xFC, 0x31, 0x41, 0x5D, 0x98, 0xCB, 0xD1, 0xFE, 0x1A, 0x20, -+ 0x7C, 0x81, 0xCD, 0xEB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x09, 0x10, 0x17, 0x1E, 0x24, -+ }, -+ }, -+ { -+ .name = "Dilithium Round 3, Level 5 (8-7) KAT 0 (PKCS#8/SPKI)", -+ .version = 0, -+ .keyform = 0, -+ .rho_len = 0, -+ .seed_len = 0, -+ .tr_len = 0, -+ .s1_len = 0, -+ .s2_len = 0, -+ .t0_len = 0, -+ .t1_len = 0, -+ .pkcs8_len = 7492, -+ .pkcs8 = { -+ 0x30, 0x82, 0x1D, 0x40, 0x02, 0x01, 0x00, 0x30, 0x0F, 0x06, 0x0B, 0x2B, 0x06, 0x01, 0x04, 0x01, 0x02, 0x82, 0x0B, 0x07, 0x08, 0x07, 0x05, 0x00, 0x04, 0x82, 0x1D, 0x28, 0x30, 0x82, 0x1D, 0x24, -+ 0x02, 0x01, 0x00, 0x03, 0x21, 0x00, 0x1C, 0x0E, 0xE1, 0x11, 0x1B, 0x08, 0x00, 0x3F, 0x28, 0xE6, 0x5E, 0x8B, 0x3B, 0xDE, 0xB0, 0x37, 0xCF, 0x8F, 0x22, 0x1D, 0xFC, 0xDA, 0xF5, 0x95, 0x0E, 0xDB, -+ 0x38, 0xD5, 0x06, 0xD8, 0x5B, 0xEF, 0x03, 0x21, 0x00, 0x39, 0x4D, 0x16, 0x95, 0x05, 0x9D, 0xFF, 0x40, 0xAE, 0x25, 0x6C, 0x5D, 0x5E, 0xDA, 0xBF, 0xB6, 0x9F, 0x5F, 0x40, 0xF3, 0x7A, 0x58, 0x8F, -+ 0x50, 0x53, 0x2C, 0xA4, 0x08, 0xA8, 0x16, 0x8A, 0xB1, 0x03, 0x21, 0x00, 0x85, 0xF6, 0x84, 0xAE, 0xB4, 0x01, 0xB9, 0xAA, 0xAF, 0x81, 0x2A, 0x00, 0xE1, 0x24, 0xFF, 0x56, 0xFE, 0xE5, 0x1B, 0xA7, -+ 0xC1, 0x12, 0x82, 0x61, 0x7F, 0x05, 0x72, 0xCC, 0x79, 0x1D, 0xC8, 0x1C, 0x03, 0x82, 0x02, 0xA1, 0x00, 0xC0, 0xA6, 0x71, 0x1A, 0x96, 0x6C, 0x11, 0x31, 0x2A, 0xD9, 0xA8, 0x21, 0xD8, 0x08, 0x65, -+ 0x42, 0xA6, 0x00, 0xA4, 0xB4, 0x2C, 0x19, 0x40, 0x72, 0x02, 0x42, 0x62, 0x81, 0x06, 0x21, 0x0A, 0x43, 0x85, 0x23, 0x31, 0x70, 0x93, 0x08, 0x10, 0x8B, 0x18, 0x8C, 0x02, 0x24, 0x92, 0xC1, 0xB2, -+ 0x84, 0x12, 0xC4, 0x21, 0x8B, 0x04, 0x21, 0x81, 0xC8, 0x61, 0x02, 0x48, 0x05, 0x9C, 0x92, 0x01, 0xC0, 0x34, 0x88, 0x19, 0x32, 0x6C, 0x58, 0x20, 0x46, 0x89, 0x18, 0x68, 0xA2, 0xC2, 0x8D, 0x82, -+ 0x34, 0x6A, 0x1C, 0x09, 0x42, 0x00, 0xA2, 0x8C, 0xE3, 0xA6, 0x49, 0x1C, 0x11, 0x2C, 0xC2, 0x48, 0x12, 0xE0, 0x90, 0x21, 0x91, 0x98, 0x50, 0x62, 0xC0, 0x84, 0x62, 0x24, 0x51, 0xCA, 0x06, 0x2C, -+ 0x64, 0x24, 0x0E, 0x1B, 0xB3, 0x31, 0x24, 0x96, 0x85, 0x4B, 0x46, 0x06, 0xDB, 0x26, 0x68, 0xC3, 0x82, 0x68, 0x44, 0x10, 0x46, 0xC9, 0xB6, 0x21, 0x14, 0x04, 0x81, 0x14, 0x45, 0x50, 0x24, 0x42, -+ 0x08, 0x44, 0x22, 0x71, 0x0B, 0x92, 0x45, 0x9A, 0xA0, 0x81, 0x1A, 0x91, 0x70, 0x9C, 0x24, 0x10, 0x03, 0x95, 0x70, 0x04, 0xC5, 0x04, 0xC8, 0x26, 0x92, 0xD2, 0x92, 0x00, 0xC0, 0xB2, 0x60, 0xC0, -+ 0xA2, 0x68, 0x09, 0x19, 0x0A, 0xA2, 0x30, 0x0E, 0x18, 0x89, 0x69, 0xE0, 0x00, 0x8D, 0xD8, 0x48, 0x62, 0xDA, 0x14, 0x71, 0x20, 0x18, 0x05, 0x19, 0x07, 0x44, 0x04, 0x12, 0x40, 0x9B, 0x12, 0x40, -+ 0x11, 0x80, 0x10, 0xD1, 0x42, 0x81, 0x99, 0x28, 0x50, 0x8B, 0x10, 0x91, 0x02, 0x24, 0x64, 0xA0, 0x20, 0x6D, 0x12, 0x46, 0x21, 0x1C, 0x83, 0x8C, 0x1B, 0x47, 0x69, 0x01, 0x06, 0x90, 0xCC, 0x06, -+ 0x24, 0x81, 0x84, 0x69, 0x20, 0x98, 0x2C, 0x24, 0x12, 0x05, 0x21, 0xB1, 0x50, 0x41, 0x36, 0x02, 0x98, 0x44, 0x6E, 0xD1, 0xA6, 0x31, 0x11, 0x05, 0x6A, 0xD3, 0xA8, 0x40, 0xCA, 0xA8, 0x4C, 0x62, -+ 0xB0, 0x00, 0x03, 0x13, 0x4A, 0x53, 0x34, 0x46, 0x14, 0x19, 0x40, 0x04, 0xC5, 0x4C, 0xE3, 0x06, 0x69, 0x5A, 0xB0, 0x89, 0x61, 0x16, 0x8E, 0xCB, 0x10, 0x80, 0x8B, 0x16, 0x8E, 0xD9, 0x90, 0x64, -+ 0x0B, 0x94, 0x60, 0x24, 0x83, 0x85, 0x1A, 0xB3, 0x04, 0x54, 0x26, 0x22, 0x51, 0xB8, 0x25, 0x1C, 0x42, 0x4A, 0x0B, 0x81, 0x48, 0x42, 0xC4, 0x44, 0x5A, 0x10, 0x20, 0x23, 0x80, 0x84, 0x09, 0xB7, -+ 0x25, 0x4C, 0xC6, 0x48, 0x14, 0x85, 0x4D, 0x19, 0x38, 0x0E, 0x60, 0x16, 0x51, 0xD8, 0x32, 0x6A, 0x0A, 0x91, 0x89, 0x08, 0xC1, 0x70, 0xE0, 0x96, 0x4D, 0x18, 0x46, 0x8C, 0x01, 0x32, 0x8D, 0x91, -+ 0xC4, 0x05, 0x4A, 0x00, 0x61, 0x23, 0x08, 0x68, 0xA2, 0x10, 0x42, 0x10, 0xA8, 0x61, 0x13, 0x06, 0x21, 0x8A, 0x24, 0x8E, 0x62, 0x06, 0x89, 0xC9, 0xB2, 0x45, 0x08, 0x27, 0x84, 0x51, 0x20, 0x0D, -+ 0x98, 0x04, 0x66, 0xDC, 0x42, 0x05, 0x44, 0x24, 0x85, 0x24, 0x26, 0x28, 0x22, 0x21, 0x61, 0x20, 0x16, 0x09, 0x0B, 0xA6, 0x2C, 0x0A, 0x11, 0x44, 0xE0, 0x92, 0x81, 0x58, 0x48, 0x0D, 0x42, 0x22, -+ 0x10, 0xA0, 0x06, 0x09, 0x8B, 0x24, 0x6E, 0x81, 0x28, 0x8C, 0xC0, 0x24, 0x80, 0x90, 0x30, 0x8D, 0x84, 0x36, 0x40, 0x4C, 0xA6, 0x84, 0x50, 0x04, 0x24, 0x94, 0xB6, 0x8D, 0xA2, 0x92, 0x6D, 0x18, -+ 0xB3, 0x44, 0xA0, 0x00, 0x85, 0xE3, 0xB8, 0x05, 0x14, 0x05, 0x04, 0xA4, 0xC2, 0x90, 0x84, 0x22, 0x81, 0xC3, 0x26, 0x2D, 0x0B, 0x20, 0x66, 0xCC, 0x90, 0x31, 0x98, 0x38, 0x28, 0x10, 0x16, 0x6C, -+ 0xC1, 0x34, 0x45, 0xC0, 0x10, 0x22, 0x24, 0xC6, 0x88, 0x03, 0x46, 0x32, 0xD8, 0x40, 0x90, 0x1C, 0x20, 0x68, 0x04, 0x15, 0x28, 0x9A, 0x18, 0x81, 0x44, 0x98, 0x8D, 0x9C, 0x20, 0x6E, 0x9C, 0x30, -+ 0x2C, 0xC1, 0xB8, 0x20, 0x61, 0x42, 0x21, 0x08, 0x03, 0x10, 0xA0, 0xC2, 0x8C, 0x58, 0x12, 0x85, 0x53, 0x20, 0x4C, 0x03, 0x30, 0x81, 0x4C, 0xA4, 0x8D, 0x44, 0xC0, 0x8D, 0x51, 0x40, 0x4C, 0x1C, -+ 0xA7, 0x2C, 0x44, 0x08, 0x65, 0xA0, 0x38, 0x40, 0xDA, 0x20, 0x80, 0x81, 0x06, 0x85, 0x8C, 0x26, 0x0D, 0xE2, 0xA8, 0x8C, 0x9C, 0x44, 0x11, 0x59, 0x42, 0x28, 0xC4, 0x26, 0x04, 0x44, 0x14, 0x26, -+ 0xA1, 0x42, 0x64, 0x08, 0xC0, 0x85, 0x11, 0x01, 0x86, 0x9B, 0x48, 0x31, 0x99, 0xB2, 0x0C, 0x80, 0x46, 0x44, 0x59, 0xA8, 0x8C, 0x00, 0x42, 0x08, 0x98, 0x82, 0x90, 0x0A, 0xB5, 0x45, 0x62, 0x24, -+ 0x48, 0x12, 0x96, 0x05, 0x44, 0x12, 0x46, 0x00, 0xC8, 0x88, 0x13, 0xA0, 0x61, 0xE1, 0x28, 0x4D, 0x0A, 0xB9, 0x91, 0x4B, 0x96, 0x20, 0x99, 0xB8, 0x44, 0x00, 0x31, 0x4E, 0x98, 0x12, 0x85, 0x00, -+ 0xB6, 0x01, 0x83, 0xA0, 0x0D, 0x14, 0x15, 0x0E, 0x18, 0x81, 0x10, 0x19, 0x01, 0x22, 0x4A, 0x06, 0x68, 0x03, 0x82, 0x03, 0x01, 0x00, 0x1A, 0x49, 0x8D, 0xE1, 0xA2, 0x84, 0x11, 0xC6, 0x31, 0x21, -+ 0x26, 0x25, 0x91, 0xA0, 0x6D, 0x03, 0x05, 0x24, 0xA1, 0xB6, 0x08, 0x94, 0x44, 0x72, 0x43, 0x34, 0x12, 0x5B, 0xB4, 0x20, 0x41, 0xB6, 0x50, 0xD0, 0x88, 0x8D, 0x0B, 0x07, 0x4D, 0x1C, 0x94, 0x64, -+ 0x4C, 0x20, 0x8E, 0x8B, 0x88, 0x08, 0xE0, 0x30, 0x09, 0x44, 0x20, 0x05, 0x49, 0x86, 0x4D, 0x03, 0x13, 0x4E, 0x19, 0xC9, 0x84, 0x09, 0x37, 0x61, 0x1A, 0x43, 0x68, 0x4A, 0x80, 0x90, 0x02, 0x04, -+ 0x31, 0x1C, 0x17, 0x42, 0x18, 0x40, 0x80, 0xC8, 0x30, 0x8E, 0xE1, 0xA2, 0x41, 0xC3, 0x34, 0x04, 0xA3, 0x28, 0x22, 0x51, 0x24, 0x71, 0x82, 0x84, 0x01, 0x1B, 0xC0, 0x64, 0x23, 0x47, 0x72, 0x82, -+ 0x14, 0x66, 0x5B, 0x38, 0x68, 0xE1, 0xC6, 0x29, 0x9B, 0x90, 0x40, 0x60, 0x38, 0x86, 0x83, 0xA0, 0x40, 0x84, 0x20, 0x04, 0x4C, 0x94, 0x01, 0x10, 0x25, 0x8D, 0x82, 0x02, 0x4D, 0x9A, 0xB2, 0x69, -+ 0x20, 0x15, 0x10, 0x60, 0x46, 0x2D, 0xC2, 0x14, 0x2E, 0x0C, 0xA8, 0x2C, 0x54, 0x16, 0x22, 0x03, 0x46, 0x89, 0x92, 0x06, 0x60, 0x08, 0x07, 0x82, 0x0B, 0x47, 0x44, 0x48, 0x98, 0x09, 0x09, 0x43, -+ 0x0E, 0xE4, 0x32, 0x0A, 0x1A, 0xC0, 0x65, 0xC0, 0xA4, 0x21, 0x44, 0xB2, 0x91, 0x58, 0xC6, 0x04, 0x11, 0x45, 0x20, 0xC4, 0xA4, 0x21, 0x02, 0xA0, 0x70, 0x21, 0x22, 0x26, 0x23, 0xB2, 0x68, 0x4B, -+ 0x08, 0x40, 0x01, 0x03, 0x91, 0x8B, 0x34, 0x81, 0x1A, 0x04, 0x04, 0x0C, 0xB0, 0x05, 0xC2, 0x92, 0x69, 0x90, 0x14, 0x68, 0x04, 0x46, 0x49, 0x14, 0x83, 0x49, 0xA2, 0x34, 0x89, 0x19, 0xC7, 0x28, -+ 0x94, 0x44, 0x71, 0x00, 0xC9, 0x49, 0x58, 0x38, 0x72, 0x02, 0x02, 0x90, 0x42, 0xC6, 0x4C, 0x0C, 0x17, 0x32, 0x48, 0xC6, 0x8C, 0x59, 0x28, 0x31, 0x09, 0xB7, 0x28, 0xCB, 0x48, 0x0E, 0x9A, 0x22, -+ 0x85, 0x1C, 0xB9, 0x11, 0xE3, 0xC6, 0x30, 0xC3, 0x48, 0x28, 0xCC, 0xB8, 0x28, 0x03, 0xC8, 0x08, 0xA4, 0xB6, 0x04, 0xD0, 0x18, 0x8C, 0x60, 0x18, 0x72, 0xD0, 0x20, 0x92, 0x82, 0x02, 0x2E, 0x59, -+ 0x18, 0x89, 0x08, 0x19, 0x32, 0xC9, 0x06, 0x52, 0x60, 0x90, 0x8C, 0x09, 0x80, 0x29, 0xA4, 0xB4, 0x8C, 0x8C, 0x34, 0x82, 0x08, 0x42, 0x10, 0x02, 0x00, 0x08, 0x13, 0x01, 0x50, 0x83, 0xB6, 0x08, -+ 0x41, 0x94, 0x4D, 0x1B, 0x49, 0x6C, 0x19, 0x39, 0x11, 0xCB, 0x32, 0x41, 0x02, 0xC0, 0x65, 0x48, 0x88, 0x91, 0x9B, 0x98, 0x61, 0x08, 0xB5, 0x04, 0x49, 0xB4, 0x45, 0xD3, 0x30, 0x01, 0x98, 0x04, -+ 0x6D, 0x53, 0x00, 0x89, 0x42, 0x32, 0x60, 0x8C, 0xB0, 0x90, 0x64, 0x88, 0x68, 0xD4, 0x32, 0x45, 0x48, 0x14, 0x71, 0x14, 0x98, 0x05, 0x81, 0x00, 0x22, 0xDB, 0x44, 0x69, 0xD9, 0x24, 0x89, 0x11, -+ 0x41, 0x12, 0x09, 0x19, 0x50, 0x92, 0xA0, 0x84, 0xC0, 0x34, 0x22, 0x4A, 0x24, 0x10, 0xDA, 0xC8, 0x09, 0xD2, 0xA8, 0x0D, 0x22, 0x85, 0x21, 0x8B, 0xC8, 0x90, 0xC1, 0x00, 0x66, 0x5C, 0xC0, 0x25, -+ 0x99, 0xA4, 0x61, 0x1A, 0xA4, 0x11, 0x0A, 0x24, 0x28, 0x5B, 0xC4, 0x48, 0x13, 0x14, 0x89, 0x63, 0x92, 0x61, 0x20, 0x30, 0x0C, 0x40, 0x02, 0x25, 0x21, 0x88, 0x28, 0x24, 0x01, 0x8C, 0x10, 0x81, -+ 0x6D, 0x4C, 0x42, 0x49, 0x01, 0x22, 0x2D, 0xC1, 0x96, 0x0C, 0x08, 0x48, 0x90, 0x01, 0xC1, 0x30, 0x23, 0xC1, 0x89, 0xA1, 0xC4, 0x64, 0x12, 0x97, 0x09, 0xCC, 0x90, 0x91, 0x60, 0x20, 0x66, 0x1B, -+ 0x96, 0x48, 0x82, 0xA8, 0x71, 0x91, 0xC0, 0x65, 0xDB, 0xC2, 0x01, 0x84, 0x36, 0x0A, 0x09, 0x24, 0x29, 0x52, 0x10, 0x4E, 0xDB, 0x24, 0x0A, 0x61, 0x02, 0x10, 0x20, 0x38, 0x25, 0x98, 0x34, 0x60, -+ 0x82, 0x24, 0x30, 0xC4, 0x12, 0x49, 0xC0, 0xA2, 0x05, 0x0C, 0x08, 0x85, 0x93, 0x28, 0x09, 0x63, 0xB2, 0x05, 0x23, 0x96, 0x20, 0x42, 0x12, 0x0D, 0xD1, 0xC0, 0x10, 0x08, 0xC5, 0x40, 0xC1, 0x82, -+ 0x65, 0x1B, 0x15, 0x92, 0xA4, 0x14, 0x51, 0x84, 0x04, 0x26, 0x53, 0x42, 0x52, 0x24, 0x23, 0x6D, 0x9C, 0x28, 0x4E, 0x50, 0x14, 0x05, 0x8C, 0x20, 0x80, 0x24, 0x26, 0x65, 0x61, 0x44, 0x4C, 0x02, -+ 0x11, 0x20, 0xC8, 0xC0, 0x4C, 0x18, 0xA0, 0x0D, 0x00, 0x38, 0x70, 0x99, 0x16, 0x12, 0xA1, 0x16, 0x40, 0xC4, 0x18, 0x45, 0x09, 0x93, 0x88, 0x4C, 0x82, 0x21, 0xCB, 0xB2, 0x81, 0x21, 0x26, 0x61, -+ 0xD1, 0xA8, 0x24, 0x41, 0x30, 0x84, 0x08, 0x80, 0x71, 0x00, 0xC6, 0x20, 0x52, 0x42, 0x92, 0x89, 0x24, 0x12, 0xA4, 0x26, 0x89, 0xE3, 0xB0, 0x88, 0x21, 0x98, 0x8C, 0x11, 0x96, 0x2C, 0xE1, 0x96, -+ 0x20, 0x51, 0xC2, 0x81, 0x20, 0x91, 0x80, 0x94, 0x16, 0x6E, 0x14, 0x94, 0x60, 0x20, 0xC9, 0x45, 0x9B, 0x22, 0x45, 0xA2, 0x38, 0x20, 0xC0, 0x36, 0x08, 0x60, 0x90, 0x8D, 0x41, 0x06, 0x02, 0x5B, -+ 0x06, 0x6E, 0xE1, 0x40, 0x0A, 0x89, 0x34, 0x6C, 0x1A, 0xB2, 0x69, 0xA4, 0x16, 0x10, 0x03, 0x33, 0x0E, 0x1A, 0x42, 0x28, 0x03, 0x19, 0x6E, 0x11, 0x44, 0x84, 0x0B, 0x24, 0x4A, 0x1C, 0x16, 0x6A, -+ 0x19, 0x98, 0x40, 0x03, 0xA2, 0x85, 0x41, 0xC0, 0x8C, 0xD2, 0x22, 0x61, 0x0C, 0x82, 0x10, 0x5A, 0xB0, 0x0D, 0x21, 0x14, 0x72, 0x5A, 0x82, 0x80, 0x02, 0x86, 0x10, 0x0C, 0x27, 0x26, 0x5C, 0x48, -+ 0x6E, 0xC9, 0x40, 0x6C, 0x1B, 0x49, 0x04, 0xE4, 0xB8, 0x49, 0xDB, 0x32, 0x8A, 0x9C, 0x24, 0x2C, 0x40, 0x38, 0x80, 0x22, 0xA9, 0x45, 0x03, 0x82, 0x0D, 0x01, 0x00, 0x12, 0x29, 0xA4, 0xE6, 0x5E, -+ 0xD3, 0x1C, 0x79, 0x3E, 0xCB, 0x5B, 0x89, 0xC5, 0x5D, 0xC3, 0x33, 0xA2, 0x77, 0xBF, 0x5C, 0x41, 0x28, 0xA2, 0x14, 0x01, 0xAF, 0xA8, 0xD4, 0x28, 0xC8, 0x21, 0xE9, 0x7A, 0xEA, 0x05, 0xB3, 0xAD, -+ 0x29, 0x23, 0xBD, 0x97, 0x10, 0x87, 0x1C, 0xE8, 0xB3, 0xB1, 0x1A, 0x71, 0x1C, 0x9A, 0xAC, 0xBA, 0x10, 0x8C, 0xAF, 0x43, 0xA1, 0x72, 0xD6, 0x59, 0x94, 0x01, 0xDB, 0x89, 0x68, 0x1D, 0x0B, 0x87, -+ 0x4E, 0xC3, 0x57, 0xA5, 0x29, 0x5C, 0x0A, 0x08, 0xD5, 0x89, 0xC4, 0x53, 0x9F, 0x9C, 0x59, 0xF3, 0x3F, 0x06, 0x44, 0x64, 0x41, 0x20, 0x49, 0x84, 0xE1, 0xF9, 0x87, 0x3C, 0x1F, 0x97, 0x75, 0xB9, -+ 0x7E, 0xD4, 0x00, 0xC9, 0x98, 0xB0, 0x51, 0x62, 0xB6, 0x18, 0x98, 0x61, 0xF2, 0x8D, 0xAE, 0x36, 0xC2, 0x13, 0x37, 0x65, 0x71, 0x11, 0x76, 0xCA, 0xAF, 0x5A, 0x1D, 0xCB, 0x2A, 0x0E, 0x22, 0x3A, -+ 0x5F, 0x07, 0x9B, 0x07, 0x41, 0xA5, 0xE6, 0xD5, 0x10, 0xE5, 0x87, 0x32, 0xDC, 0x03, 0x59, 0xD7, 0x9A, 0x77, 0x41, 0xA3, 0x79, 0x1C, 0xA6, 0x50, 0x4F, 0x07, 0xCA, 0x8A, 0x2C, 0x03, 0x12, 0x71, -+ 0x18, 0x45, 0x20, 0xEB, 0x76, 0xA0, 0x0B, 0x9B, 0x46, 0x26, 0xDB, 0x37, 0x34, 0x1C, 0x71, 0x80, 0x65, 0xED, 0x95, 0xFE, 0x4C, 0xB0, 0x54, 0xBF, 0xE7, 0x1E, 0x80, 0x26, 0x0D, 0x21, 0x90, 0x7B, -+ 0x9B, 0xFA, 0xEC, 0x86, 0xAC, 0x83, 0xA4, 0x85, 0x63, 0xC0, 0xB9, 0xB2, 0xEF, 0x4B, 0x9B, 0x4E, 0xCB, 0xCB, 0x2F, 0x12, 0x91, 0x98, 0x4E, 0x89, 0xE8, 0x4C, 0x55, 0x69, 0x06, 0x47, 0xE2, 0x65, -+ 0x47, 0xD7, 0x3E, 0x4C, 0xB7, 0xF0, 0xE0, 0x6E, 0xFF, 0xC3, 0xC4, 0x79, 0xE2, 0x56, 0x8E, 0x74, 0x64, 0xEA, 0xBF, 0x1D, 0x1C, 0x4E, 0xFE, 0x21, 0x11, 0x12, 0xE6, 0x2B, 0xEA, 0x8B, 0x85, 0x5F, -+ 0x50, 0xD7, 0x16, 0x51, 0x32, 0x9C, 0x00, 0xEF, 0x61, 0x9F, 0x53, 0x7E, 0x45, 0x4B, 0x09, 0x5A, 0x9D, 0xF6, 0xA8, 0x59, 0x0E, 0x5B, 0xBA, 0xA1, 0x5C, 0x9E, 0x64, 0xE7, 0x01, 0xE3, 0x74, 0x69, -+ 0x74, 0x94, 0x62, 0xA2, 0x11, 0x95, 0x41, 0xE7, 0x55, 0x49, 0xD0, 0x56, 0xA2, 0x5B, 0xBC, 0xEE, 0x11, 0xCD, 0x9F, 0xC6, 0x72, 0x42, 0x2A, 0xD2, 0xAE, 0x97, 0x91, 0x3D, 0x30, 0xBE, 0x3C, 0xD8, -+ 0x5F, 0x58, 0xCF, 0xA9, 0x04, 0xF4, 0x43, 0xAC, 0x3A, 0x8D, 0xFD, 0xBC, 0x2C, 0xC9, 0xC8, 0xC3, 0x9B, 0x24, 0x4E, 0xE7, 0xE0, 0xD9, 0x5B, 0xEC, 0x69, 0x27, 0xA2, 0xB0, 0xB9, 0x4E, 0x97, 0x3F, -+ 0x98, 0x12, 0x24, 0x46, 0x43, 0x14, 0x6E, 0x19, 0x01, 0x3B, 0x7F, 0xE1, 0x71, 0x14, 0xA0, 0xF3, 0x9F, 0x92, 0x28, 0x6B, 0xE0, 0xF0, 0xEE, 0x39, 0x6F, 0xB7, 0x4C, 0x76, 0xC9, 0x10, 0x04, 0xB8, -+ 0x27, 0xD2, 0x18, 0x95, 0x1C, 0x77, 0xBD, 0xB8, 0x15, 0x90, 0xAE, 0xDF, 0xEA, 0x9E, 0x62, 0xBE, 0x0F, 0x22, 0xAF, 0xF5, 0x5E, 0x36, 0xAB, 0x57, 0x2D, 0xF1, 0x3A, 0xB9, 0xF5, 0xEA, 0xFC, 0xBC, -+ 0x34, 0xDF, 0x26, 0x6F, 0xE1, 0x60, 0xC6, 0xB6, 0x35, 0xB0, 0xC3, 0xB6, 0x3C, 0x89, 0x29, 0x20, 0x18, 0x5F, 0x11, 0x2B, 0x96, 0x99, 0x8B, 0x5B, 0x5B, 0xB9, 0x73, 0xB3, 0x90, 0x08, 0xB2, 0xF0, -+ 0x43, 0x40, 0x35, 0xD4, 0x3B, 0xD2, 0xE4, 0x9F, 0x2C, 0x17, 0x45, 0x20, 0xD3, 0xA8, 0x98, 0x54, 0xCD, 0x82, 0x50, 0xD6, 0x20, 0x0A, 0x1E, 0xB5, 0x10, 0x79, 0x22, 0x46, 0x56, 0xD0, 0xB3, 0x34, -+ 0xCE, 0xE3, 0x43, 0x0B, 0x87, 0xE1, 0xFF, 0x90, 0x4D, 0x10, 0x34, 0xC2, 0xD8, 0xA7, 0x04, 0x7B, 0x2D, 0x22, 0x56, 0x33, 0x19, 0x04, 0x10, 0x01, 0x2C, 0x16, 0x1C, 0x76, 0x8C, 0x1F, 0xF8, 0xFC, -+ 0x17, 0x9A, 0x44, 0x68, 0x64, 0xDF, 0x93, 0xE0, 0x9D, 0x1E, 0x6C, 0x29, 0x48, 0x7C, 0xAB, 0x04, 0x4E, 0xF8, 0x68, 0xD4, 0x31, 0xB1, 0x76, 0x31, 0x84, 0xAD, 0xCB, 0x39, 0x51, 0x6D, 0xD1, 0x27, -+ 0x6B, 0xD8, 0x41, 0xEC, 0x49, 0x2A, 0x84, 0x51, 0x77, 0x4E, 0xDA, 0x10, 0x6E, 0x73, 0x21, 0xED, 0x5A, 0x62, 0x25, 0xC3, 0x53, 0x24, 0xC5, 0x10, 0x66, 0x3B, 0x9B, 0xEA, 0x05, 0xF1, 0xDB, 0xC8, -+ 0xD5, 0xDB, 0x69, 0xA7, 0x7E, 0xCE, 0x3E, 0x42, 0x65, 0xC5, 0xE8, 0x10, 0x69, 0x86, 0x45, 0x80, 0xB5, 0x28, 0xCC, 0x2C, 0xBB, 0xFB, 0xDE, 0x62, 0x5A, 0xF2, 0xC1, 0xC5, 0xCB, 0x06, 0xDD, 0x80, -+ 0x58, 0x54, 0x04, 0x96, 0x4D, 0x21, 0x11, 0x4B, 0x8B, 0x13, 0xCA, 0xFB, 0x6D, 0xBE, 0x1B, 0x42, 0x8E, 0xBC, 0x87, 0x17, 0xCC, 0xD1, 0x1B, 0xFB, 0x34, 0x72, 0x60, 0xAA, 0x70, 0x1B, 0xF2, 0x28, -+ 0x35, 0xB3, 0xF1, 0x06, 0x2E, 0xAD, 0x36, 0xAC, 0xB9, 0x6D, 0x74, 0x96, 0xF7, 0x2A, 0xA5, 0xFF, 0x1A, 0x13, 0x04, 0xBC, 0x02, 0xE3, 0x58, 0xE6, 0x0B, 0x1C, 0x82, 0x30, 0xBF, 0x8F, 0xFA, 0xFD, -+ 0x36, 0xE0, 0xF6, 0xB2, 0xE3, 0xD8, 0x58, 0x2F, 0xD3, 0xA4, 0x38, 0x11, 0xAC, 0x24, 0xD0, 0x60, 0x08, 0x10, 0x35, 0x42, 0x87, 0x8C, 0xB5, 0xCE, 0x99, 0xF8, 0x92, 0x0C, 0xC8, 0x02, 0xDA, 0x4E, -+ 0xD2, 0x18, 0x39, 0x56, 0x83, 0x4D, 0xA4, 0xC7, 0x19, 0x55, 0x0D, 0xB2, 0x47, 0x95, 0xAC, 0xE0, 0x9D, 0x88, 0xCA, 0x30, 0x43, 0xAF, 0xCC, 0xC9, 0xAB, 0x0F, 0x03, 0x06, 0x67, 0x1F, 0xD1, 0xF2, -+ 0x50, 0x95, 0x7C, 0xC6, 0x24, 0x64, 0xC9, 0xEA, 0x5E, 0x44, 0x4C, 0x6E, 0xB4, 0x76, 0xD0, 0x92, 0x46, 0x56, 0x08, 0xFE, 0xB6, 0xB7, 0xD5, 0x39, 0x8A, 0x02, 0x9E, 0x1E, 0xEA, 0xE5, 0x0D, 0xB5, -+ 0xF9, 0xF9, 0x95, 0x50, 0xA9, 0x66, 0x83, 0x43, 0xEF, 0x29, 0x70, 0xF2, 0x25, 0x31, 0x67, 0x8E, 0x36, 0x71, 0x3B, 0x81, 0xCB, 0x36, 0x33, 0xF1, 0xDD, 0xD4, 0x67, 0x69, 0x82, 0x6E, 0x43, 0x60, -+ 0xDE, 0x19, 0xA5, 0x63, 0x18, 0xD9, 0xEB, 0x59, 0xF9, 0x7A, 0x9B, 0x3E, 0xD2, 0x2B, 0xFD, 0x89, 0x50, 0x11, 0x26, 0x29, 0x5E, 0x89, 0xFC, 0x73, 0x5C, 0x36, 0x19, 0xD7, 0x7F, 0x6F, 0xB9, 0x35, -+ 0xC2, 0xFB, 0x46, 0xED, 0xD0, 0xA4, 0xD2, 0x92, 0x17, 0x77, 0xB0, 0xEF, 0xCD, 0x58, 0xBE, 0xDC, 0xEB, 0x9E, 0xA5, 0x66, 0x6B, 0x18, 0xDF, 0xAC, 0xF9, 0xBF, 0x76, 0x33, 0x3C, 0x5E, 0xDA, 0xC7, -+ 0x2B, 0x04, 0xE6, 0x57, 0xE4, 0xE0, 0x86, 0x5E, 0x04, 0x3A, 0x64, 0x68, 0xC5, 0xE6, 0x9D, 0x5B, 0xCB, 0xE5, 0x84, 0x2B, 0xF4, 0x5B, 0xEE, 0x77, 0x91, 0x5F, 0x05, 0x71, 0xD1, 0x50, 0xD6, 0x06, -+ 0xA6, 0xF2, 0xAC, 0x37, 0x37, 0x92, 0x90, 0x88, 0x91, 0xBA, 0x85, 0xF4, 0x5C, 0xB4, 0x09, 0xD9, 0x63, 0xE4, 0x9B, 0x5B, 0x96, 0x97, 0x8A, 0x19, 0x39, 0x16, 0x0A, 0x8D, 0xB9, 0xD6, 0x3C, 0x4E, -+ 0xA0, 0xD6, 0xA7, 0xD0, 0x93, 0x70, 0xAC, 0x1C, 0x24, 0x49, 0x8D, 0x21, 0xA8, 0xD5, 0xB7, 0x64, 0xA3, 0x9A, 0x41, 0x2E, 0x5B, 0x54, 0xBD, 0x1C, 0x96, 0x4D, 0x24, 0x4A, 0x45, 0x55, 0x64, 0x5F, -+ 0x1F, 0x90, 0x53, 0xF8, 0xBB, 0x33, 0xF6, 0xF7, 0x51, 0x46, 0x80, 0x7B, 0x4E, 0x9E, 0x07, 0xB2, 0x3C, 0x98, 0x06, 0xFF, 0x75, 0x72, 0x46, 0x9C, 0x09, 0x43, 0x99, 0xBA, 0x97, 0x79, 0xB9, 0x62, -+ 0xB4, 0xC8, 0xA9, 0x57, 0xF8, 0x69, 0x91, 0x1E, 0xB1, 0x3F, 0x14, 0x02, 0x24, 0xAC, 0x4E, 0xE7, 0x62, 0x01, 0xC0, 0x2F, 0x24, 0xC7, 0xED, 0xC3, 0xA9, 0x80, 0x89, 0x9A, 0x30, 0xBA, 0xD2, 0xB1, -+ 0x2D, 0x57, 0x28, 0xF0, 0x97, 0x17, 0x6D, 0x00, 0x17, 0xF3, 0x47, 0x3D, 0x2F, 0xBB, 0xD4, 0x3C, 0xC2, 0x3A, 0x50, 0x1E, 0x81, 0xE3, 0x81, 0xBE, 0x01, 0x79, 0xBF, 0x68, 0xCA, 0x50, 0xFD, 0x23, -+ 0x55, 0xCA, 0x7B, 0x64, 0xF5, 0x3E, 0x0C, 0x7D, 0x5B, 0xCA, 0x4E, 0x7B, 0xE6, 0x91, 0x63, 0xE3, 0x16, 0xFE, 0xBB, 0x49, 0xA9, 0x34, 0x0F, 0x15, 0x7B, 0xAC, 0x3B, 0x0B, 0xD8, 0x4A, 0x3B, 0x02, -+ 0x7A, 0x2F, 0xE4, 0x4E, 0xC2, 0x66, 0xA8, 0xCE, 0x4A, 0x17, 0x1B, 0x91, 0x82, 0x8F, 0x45, 0x43, 0x02, 0xAA, 0x9B, 0x66, 0x49, 0x67, 0xE6, 0x7D, 0xB3, 0x8A, 0xA4, 0xE3, 0xBC, 0x35, 0x3D, 0x15, -+ 0x18, 0xA7, 0xFE, 0xC1, 0x18, 0x8B, 0x7D, 0x5B, 0x7E, 0x19, 0x52, 0x1F, 0x1A, 0x28, 0x77, 0x00, 0x69, 0x89, 0xB0, 0xFE, 0x91, 0x89, 0x46, 0xB7, 0x59, 0x3E, 0xD1, 0x51, 0x20, 0xBF, 0x7D, 0x23, -+ 0xF9, 0x92, 0x10, 0xDD, 0xB7, 0x6D, 0xAF, 0x86, 0xE2, 0x37, 0xB2, 0x37, 0x9C, 0xA1, 0x2E, 0x55, 0x63, 0x6C, 0x83, 0x40, 0x8E, 0x6D, 0x2B, 0x35, 0x85, 0xFA, 0xBC, 0xBC, 0x0F, 0x6C, 0x48, 0x76, -+ 0x7E, 0x36, 0x3A, 0xC8, 0x47, 0xCC, 0xC6, 0x7E, 0xB7, 0xC9, 0x37, 0xBB, 0xD9, 0x41, 0x10, 0x0D, 0x78, 0x77, 0x4A, 0xE1, 0xF4, 0x43, 0x39, 0xDC, 0xDC, 0xB0, 0xE7, 0x00, 0xAC, 0x10, 0x8D, 0xAA, -+ 0x92, 0xCD, 0x9E, 0xA1, 0x9F, 0x82, 0x38, 0xF2, 0x86, 0x76, 0xFE, 0xE7, 0xBD, 0x1B, 0x9F, 0x37, 0xA6, 0xCA, 0x17, 0xD7, 0xCF, 0x40, 0x42, 0xFE, 0x39, 0xDD, 0x93, 0x77, 0x82, 0x6C, 0x4C, 0xAB, -+ 0x29, 0x32, 0xE1, 0x2D, 0xE5, 0x3B, 0x08, 0x1A, 0x6C, 0x25, 0xC0, 0xF4, 0x7D, 0xA3, 0xD9, 0x16, 0x83, 0x1E, 0x42, 0x47, 0xD0, 0x97, 0x81, 0x1E, 0x1A, 0x08, 0x70, 0xCB, 0x61, 0xF4, 0xAC, 0xA1, -+ 0x27, 0xEA, 0xF8, 0x5A, 0x9C, 0xA6, 0x66, 0xFA, 0x6C, 0x36, 0x39, 0x8F, 0x0E, 0x74, 0x20, 0xCA, 0x98, 0x95, 0xC6, 0x3A, 0x1A, 0xC4, 0xDB, 0x49, 0xA1, 0xD7, 0x5F, 0x56, 0x46, 0x4C, 0x1E, 0x0C, -+ 0xF9, 0x28, 0x3A, 0x45, 0x44, 0x56, 0x50, 0xF9, 0x5F, 0xAD, 0xF6, 0xC8, 0x8D, 0xB3, 0xCE, 0x7C, 0x0E, 0x5D, 0x0E, 0x72, 0x61, 0xE8, 0x04, 0xC0, 0x3A, 0x41, 0x9E, 0x4C, 0xC2, 0x50, 0x10, 0x99, -+ 0xCA, 0x53, 0x63, 0x44, 0x60, 0x7B, 0x07, 0xE8, 0x25, 0x32, 0x3A, 0xD3, 0x0B, 0xE7, 0x5F, 0x84, 0xE6, 0xC5, 0xBE, 0x23, 0x8E, 0xC7, 0x86, 0x17, 0xA0, 0xA2, 0x34, 0x14, 0xC7, 0xF8, 0xCD, 0x60, -+ 0x91, 0x30, 0x31, 0xBC, 0x93, 0x01, 0x78, 0x6D, 0x5C, 0x19, 0xD9, 0x30, 0xB5, 0x06, 0xC4, 0x95, 0x98, 0x32, 0x23, 0xEC, 0x1B, 0xF7, 0x87, 0xC3, 0x3D, 0x22, 0x8A, 0x11, 0x0E, 0x57, 0x42, 0x87, -+ 0x73, 0xE3, 0x4F, 0x12, 0x66, 0x3D, 0x11, 0xC1, 0x55, 0xDF, 0xCE, 0x38, 0x0D, 0x65, 0x76, 0x4C, 0x26, 0x59, 0xEA, 0xA0, 0xA1, 0xA2, 0xE7, 0x64, 0xEB, 0xB5, 0xA9, 0xE5, 0xA7, 0x19, 0x2E, 0x90, -+ 0x86, 0xA6, 0xDE, 0x4A, 0x38, 0xFC, 0xFD, 0x04, 0x12, 0x42, 0x42, 0x60, 0x62, 0x0C, 0x1E, 0x56, 0x7A, 0x2D, 0x8B, 0x1A, 0xF3, 0x55, 0x48, 0x19, 0xA0, 0x0D, 0x5C, 0x7E, 0x56, 0x66, 0xD0, 0xE6, -+ 0x56, 0xF8, 0xD4, 0x5C, 0x67, 0xC5, 0x44, 0x8D, 0xAB, 0x5E, 0xB6, 0xE6, 0x02, 0x93, 0x79, 0xC4, 0x7A, 0x24, 0xD0, 0x11, 0xF5, 0x6E, 0x5F, 0xAA, 0x49, 0xFC, 0x6B, 0xB2, 0xD7, 0x50, 0xED, 0x4C, -+ 0x95, 0xF8, 0x35, 0x38, 0x4F, 0x2F, 0xAA, 0xB1, 0x3C, 0x1C, 0xCA, 0x71, 0xA1, 0xEB, 0xD2, 0x29, 0x9E, 0x96, 0x32, 0xE5, 0x29, 0xCE, 0x77, 0x14, 0x9F, 0x5F, 0xAC, 0x31, 0xAB, 0x28, 0xDC, 0xC7, -+ 0x06, 0x70, 0xBB, 0xAB, 0x9F, 0x7B, 0x6F, 0xFE, 0xAA, 0xBC, 0x7D, 0xC4, 0x51, 0x3D, 0x8F, 0xAC, 0x4B, 0xCF, 0x7E, 0x5E, 0x72, 0x97, 0xDB, 0x69, 0xE4, 0xB6, 0x25, 0x38, 0xF9, 0xCA, 0xBD, 0x90, -+ 0x2B, 0x10, 0x07, 0xE3, 0xBA, 0xF6, 0x7F, 0x94, 0x3D, 0xFD, 0xC6, 0xAA, 0x75, 0x62, 0xFA, 0xBB, 0x1E, 0x8F, 0xAC, 0xF8, 0x11, 0xC7, 0x63, 0x35, 0x79, 0x0A, 0x16, 0xF2, 0x1E, 0xCB, 0x72, 0xFC, -+ 0x1B, 0xA9, 0x42, 0x76, 0xB2, 0x09, 0x80, 0x7E, 0xA5, 0x2E, 0x74, 0xF2, 0xB6, 0xCA, 0x0B, 0x3F, 0xDC, 0x30, 0x50, 0x1F, 0x63, 0x10, 0xEC, 0x99, 0x55, 0xB0, 0x51, 0x81, 0x8D, 0xAE, 0x10, 0x80, -+ 0xFD, 0x4D, 0xD2, 0x4C, 0x72, 0x2D, 0x68, 0xDE, 0x33, 0xEA, 0x76, 0x9B, 0x4E, 0x63, 0x70, 0x07, 0xCF, 0xDC, 0xE1, 0x80, 0x4A, 0xC2, 0xA7, 0x71, 0xF8, 0x8F, 0x59, 0xBA, 0xCE, 0xDB, 0x4D, 0xFB, -+ 0x79, 0xA4, 0x1E, 0xA7, 0x0F, 0x14, 0xAC, 0xCE, 0x6A, 0x5A, 0x8A, 0x88, 0x43, 0xB5, 0x95, 0x89, 0xE4, 0x52, 0x8B, 0xA8, 0x52, 0x10, 0x42, 0x1D, 0x1E, 0x59, 0x5F, 0x84, 0xC2, 0x75, 0x90, 0x47, -+ 0xDB, 0x47, 0x22, 0x26, 0x73, 0x86, 0x8C, 0x00, 0x27, 0xEE, 0xFD, 0x99, 0x6E, 0xF8, 0xC8, 0xC4, 0xF3, 0x67, 0xA9, 0x1D, 0xEC, 0xF1, 0x79, 0x43, 0x22, 0x7D, 0x4D, 0x00, 0x44, 0x7F, 0xFC, 0x6C, -+ 0xC8, 0x66, 0x5E, 0x08, 0xD2, 0x93, 0xA4, 0xDE, 0x4E, 0xE1, 0x15, 0x69, 0xB9, 0x5B, 0xB4, 0xDA, 0xE7, 0x58, 0x15, 0x0E, 0x55, 0x78, 0x32, 0x55, 0xE2, 0xF3, 0x22, 0x27, 0xB4, 0x5A, 0x9D, 0x26, -+ 0x19, 0x77, 0x1C, 0xED, 0x51, 0x2D, 0x5C, 0xD8, 0x90, 0x18, 0xC9, 0x9E, 0x2F, 0x05, 0x23, 0x3E, 0xF5, 0x86, 0x0F, 0xEC, 0xB3, 0x79, 0x1B, 0x53, 0xAD, 0x2C, 0x22, 0x8A, 0xBA, 0xBB, 0x9F, 0xD1, -+ 0xF5, 0x04, 0x38, 0xE9, 0xB0, 0xC6, 0xEA, 0x61, 0xE2, 0x0B, 0xB5, 0xAC, 0x0A, 0xAD, 0x30, 0x50, 0x9F, 0xEA, 0x9A, 0x44, 0x1D, 0x55, 0x5C, 0xDD, 0x34, 0x50, 0x9C, 0xFC, 0x60, 0x62, 0xE6, 0xB8, -+ 0x1D, 0xCA, 0xCF, 0xD5, 0xF5, 0xC9, 0xC5, 0x26, 0xB3, 0x8D, 0x70, 0x4C, 0x1F, 0x0F, 0x28, 0xB4, 0xFB, 0x7C, 0x1A, 0xC6, 0x9A, 0xA1, 0x96, 0xCF, 0x81, 0x2E, 0x44, 0x46, 0xEF, 0x68, 0x02, 0x87, -+ 0x44, 0xD2, 0xA5, 0x40, 0xFA, 0x7A, 0x69, 0xCF, 0x87, 0xA1, 0xF9, 0x68, 0x24, 0xE4, 0xC6, 0x87, 0x82, 0x35, 0xF0, 0xCC, 0xA3, 0xE9, 0x7B, 0x2B, 0x22, 0xB0, 0x93, 0xD9, 0x5E, 0xE1, 0x8D, 0xBF, -+ 0xE6, 0x76, 0x1D, 0xFA, 0xF8, 0x34, 0x47, 0x51, 0x86, 0x07, 0x56, 0x02, 0x31, 0x3E, 0xE2, 0xA2, 0x99, 0xBC, 0xCC, 0xC6, 0x53, 0x1E, 0xDA, 0x54, 0x10, 0xCC, 0xFA, 0x09, 0xEC, 0xB8, 0xA6, 0x0D, -+ 0x28, 0x33, 0x7A, 0xA5, 0x56, 0x58, 0x6D, 0x78, 0x48, 0x49, 0x38, 0x0F, 0x02, 0xEB, 0xB8, 0x37, 0xCB, 0x0B, 0xDE, 0x57, 0xBB, 0xA9, 0x07, 0xB6, 0x7C, 0x7A, 0xD8, 0x66, 0xE1, 0xDD, 0xB1, 0xC7, -+ 0x9D, 0x96, 0x1D, 0x70, 0xF5, 0x5D, 0x05, 0x9A, 0xCF, 0xD3, 0x9F, 0x5B, 0xD3, 0x03, 0x74, 0xB4, 0x84, 0x5E, 0x04, 0xEC, 0x26, 0xE8, 0xB5, 0xB9, 0x3F, 0xC4, 0x54, 0x4F, 0x24, 0xAE, 0x99, 0xC9, -+ 0xE5, 0x1E, 0x43, 0x57, 0x75, 0xD2, 0x20, 0x80, 0xE1, 0x9E, 0x3A, 0xC2, 0x25, 0xC7, 0xE1, 0xEE, 0x0A, 0x56, 0xB9, 0x52, 0x30, 0x7F, 0x44, 0xBA, 0xCF, 0x4C, 0x87, 0x85, 0x35, 0x5C, 0x09, 0xDB, -+ 0xD0, 0xD8, 0x60, 0x57, 0xF0, 0xA6, 0xA9, 0x88, 0xC3, 0x65, 0x74, 0x20, 0x25, 0x19, 0xDE, 0xBA, 0x04, 0x56, 0x98, 0xD7, 0x24, 0x27, 0x77, 0x0C, 0x37, 0x31, 0xC9, 0xB7, 0x53, 0x5F, 0xAA, 0xF0, -+ 0xCC, 0xA9, 0xD1, 0x3C, 0x42, 0x12, 0xB7, 0x62, 0x94, 0x57, 0x52, 0xE7, 0xA6, 0x53, 0x9B, 0x47, 0xBE, 0xA9, 0x66, 0x48, 0x23, 0x18, 0xA9, 0xCF, 0xE3, 0xBA, 0xEC, 0x6A, 0x83, 0xFB, 0x34, 0xF0, -+ 0xB6, 0x8E, 0xE9, 0x77, 0x97, 0x42, 0x0F, 0xAD, 0xC3, 0xF0, 0x25, 0xEE, 0x9F, 0x18, 0xBE, 0xA3, 0x8F, 0xBE, 0xC0, 0xC5, 0xDE, 0xAA, 0xC7, 0xA5, 0x2F, 0x7E, 0xB8, 0xD9, 0x4F, 0xE4, 0xC6, 0x62, -+ 0x54, 0x14, 0x57, 0xA1, 0x53, 0x82, 0x4B, 0xE6, 0x0D, 0x7D, 0xB8, 0x33, 0x89, 0x0F, 0x3A, 0xC3, 0xF7, 0xBD, 0x6D, 0x73, 0xF8, 0x0C, 0x67, 0x2B, 0x76, 0xA5, 0x26, 0x7D, 0xF2, 0x2C, 0xFB, 0x5E, -+ 0x1B, 0x92, 0xB0, 0xCD, 0x68, 0xE9, 0xA9, 0x20, 0x92, 0x43, 0xA4, 0x2A, 0x30, 0xF7, 0xAA, 0x1F, 0x03, 0xD0, 0xD9, 0x11, 0x3F, 0x04, 0xB7, 0x6E, 0xB5, 0xAA, 0x69, 0xBC, 0x9B, 0x8F, 0xE7, 0x98, -+ 0xE7, 0x75, 0x01, 0xB0, 0x56, 0x30, 0x29, 0xF5, 0x02, 0xF7, 0x79, 0x4D, 0xD3, 0x90, 0x74, 0x7A, 0xED, 0x08, 0x5C, 0x22, 0xB2, 0x16, 0x11, 0xA9, 0xC7, 0x62, 0x38, 0xEF, 0x65, 0x84, 0xAE, 0xFB, -+ 0xB3, 0x57, 0xF8, 0x36, 0x25, 0x86, 0xC5, 0x9F, 0xCA, 0x8E, 0x09, 0x26, 0x10, 0x11, 0x5F, 0x4D, 0xC2, 0x93, 0x0D, 0x72, 0x24, 0x28, 0x5E, 0xB8, 0xFD, 0x99, 0x2F, 0x82, 0x17, 0xAE, 0x94, 0x70, -+ 0xA7, 0x4A, 0xE3, 0xE8, 0x06, 0x01, 0x0C, 0x8D, 0x02, 0x19, 0x48, 0xBE, 0x57, 0xAB, 0x1D, 0x62, 0xC0, 0x41, 0x2E, 0xA5, 0xC9, 0x69, 0xD0, 0x56, 0x68, 0x41, 0xF2, 0xE2, 0x56, 0x8E, 0x01, 0x33, -+ 0x64, 0xD8, 0x7C, 0xAF, 0x33, 0x22, 0x9D, 0x2A, 0xA6, 0xC5, 0x6B, 0x9F, 0xB4, 0xC1, 0x36, 0xA1, 0x3F, 0x5E, 0x73, 0x3A, 0x91, 0xEF, 0xF2, 0x1D, 0xCB, 0x29, 0x0D, 0x8E, 0xC6, 0xDC, 0x0A, 0x50, -+ 0xE5, 0x7C, 0x1F, 0x65, 0xEB, 0x2B, 0xA1, 0xC3, 0x9D, 0xDB, 0x1C, 0x09, 0x54, 0x24, 0xE6, 0xF4, 0x1F, 0x9E, 0x86, 0x56, 0x7F, 0x91, 0x14, 0x00, 0xD8, 0x5C, 0x90, 0xD6, 0x4F, 0xC7, 0xE6, 0xEC, -+ 0xC2, 0x88, 0x04, 0xF2, 0x70, 0x42, 0x40, 0x24, 0x9E, 0xFC, 0x8F, 0xEC, 0x69, 0xE3, 0x66, 0xF3, 0x68, 0x7A, 0x76, 0x20, 0x5C, 0x0D, 0x1D, 0xD6, 0x48, 0x39, 0x12, 0xA8, 0xF6, 0x8E, 0xAE, 0x2C, -+ 0xB3, 0x52, 0x0A, 0x8B, 0x17, 0x2C, 0xF2, 0xCD, 0x2B, 0x03, 0x80, 0x2E, 0x5F, 0xA7, 0xB1, 0xF1, 0xEF, 0x8C, 0xA0, 0xA6, 0x08, 0x0B, 0xF9, 0xDA, 0x37, 0x82, 0xD2, 0xBD, 0xE4, 0xB3, 0xA3, 0xC6, -+ 0x5C, 0xFB, 0x9F, 0x1B, 0x39, 0x05, 0xB9, 0x36, 0x1D, 0x1E, 0x0C, 0x8F, 0xEB, 0x5A, 0xB4, 0x0A, 0x3F, 0xFE, 0xB3, 0xAE, 0x95, 0xF5, 0x75, 0x62, 0xA0, 0x7C, 0xD2, 0x43, 0x18, 0xC0, 0xE7, 0xEE, -+ 0x6E, 0xBE, 0x57, 0x0C, 0xB7, 0xDC, 0x1C, 0x62, 0x1A, 0x84, 0x92, 0x13, 0xE7, 0x13, 0x92, 0x42, 0x75, 0x81, 0x28, 0xC1, 0x6C, 0xFE, 0x52, 0xF8, 0xE2, 0xED, 0xA5, 0xBA, 0x23, 0x23, 0x15, 0x6F, -+ 0x85, 0x3A, 0xBC, 0x61, 0xB1, 0x39, 0x04, 0x1A, 0x4B, 0x83, 0x40, 0x37, 0xAA, 0x19, 0xDC, 0xEE, 0x76, 0x06, 0xAE, 0x84, 0xC1, 0xA7, 0x4D, 0x0E, 0xEB, 0x6A, 0x4D, 0xAB, 0xD5, 0x90, 0x8D, 0xAE, -+ 0x2C, 0x23, 0xA6, 0x38, 0x76, 0xE7, 0xE9, 0xF8, 0xE9, 0x03, 0x66, 0xA1, 0xFD, 0x89, 0xF2, 0x28, 0x3D, 0x75, 0x30, 0x09, 0xE0, 0x56, 0xDD, 0x5A, 0xB9, 0x53, 0xDB, 0x3D, 0x8F, 0x48, 0x30, 0xA4, -+ 0xD0, 0x93, 0x79, 0x39, 0x5F, 0x21, 0xED, 0x03, 0xB6, 0xCC, 0xD5, 0xD7, 0xF8, 0xF8, 0x1F, 0x40, 0x0B, 0x3E, 0x3B, 0xC6, 0x96, 0x08, 0x8D, 0x58, 0x17, 0x75, 0x21, 0x11, 0x0B, 0x6C, 0x84, 0x74, -+ 0xF3, 0xE4, 0x49, 0xD8, 0xEC, 0x7F, 0x46, 0x6C, 0x2E, 0xB3, 0x43, 0x65, 0x9F, 0xF5, 0x33, 0x97, 0x58, 0x7B, 0xC6, 0x30, 0x0D, 0xEE, 0xBD, 0xC2, 0xBE, 0x67, 0x4B, 0x78, 0x30, 0x90, 0xEA, 0xCC, -+ 0xB9, 0x3B, 0x6A, 0xE9, 0x49, 0x56, 0xA3, 0x33, 0xE8, 0x58, 0x37, 0x64, 0x73, 0xCA, 0x67, 0xAF, 0x05, 0x43, 0xE5, 0x99, 0x94, 0x1E, 0xB4, 0xE8, 0xC6, 0xD9, 0x5D, 0x47, 0x9F, 0xEE, 0xE0, 0x5E, -+ 0x3E, 0x8B, 0xF5, 0xF0, 0xAA, 0xCD, 0x34, 0x51, 0xC0, 0xED, 0x48, 0x1F, 0x52, 0x6D, 0x38, 0xEB, 0x3B, 0x26, 0xA4, 0xFD, 0x98, 0xE1, 0x1B, 0xAF, 0x67, 0xED, 0xEA, 0xB2, 0xEC, 0xC7, 0xD3, 0x97, -+ 0xE9, 0x68, 0xF8, 0xD1, 0x03, 0xE8, 0x01, 0x44, 0xA4, 0xCD, 0xB7, 0x00, 0xC4, 0x1A, 0x42, 0x83, 0x4B, 0x07, 0xFD, 0x7E, 0x91, 0xF3, 0xC5, 0x24, 0x09, 0xC6, 0x88, 0x2C, 0xF4, 0x15, 0xA4, 0x2F, -+ 0x71, 0xE2, 0x1F, 0xE7, 0x00, 0x17, 0xD6, 0x2B, 0x1F, 0xE4, 0x3A, 0x2A, 0x32, 0xD8, 0x15, 0xE3, 0xF1, 0xA4, 0x4E, 0x72, 0x67, 0xB1, 0xBB, 0xF5, 0x52, 0xF3, 0x8E, 0x88, 0x97, 0x75, 0xEC, 0xD8, -+ 0x5C, 0x4B, 0xF4, 0x65, 0x02, 0x22, 0xF3, 0x30, 0xFA, 0xE4, 0xB6, 0x17, 0x65, 0x52, 0x54, 0x03, 0xFB, 0xDE, 0x0A, 0x18, 0xF9, 0x73, 0x65, 0x7C, 0xAB, 0xEB, 0x05, 0xFE, 0x6B, 0x97, 0x29, 0xD3, -+ 0xB3, 0x73, 0x0A, 0xEF, 0xDF, 0x3C, 0x18, 0x96, 0x99, 0x7A, 0x94, 0x9B, 0x60, 0x3C, 0x43, 0xFE, 0xCC, 0x3E, 0xAC, 0xCB, 0xF0, 0x0C, 0x03, 0x76, 0x59, 0x41, 0x80, 0x0C, 0xE4, 0x2F, 0xD0, 0x38, -+ 0x4E, 0x1C, 0x1C, 0x61, 0x17, 0x31, 0x6C, 0xBA, 0x1A, 0x81, 0xA2, 0x09, 0x03, 0x3C, 0x5B, 0x53, 0xAE, 0x3B, 0x60, 0xBC, 0x1A, 0xFC, 0x6E, 0x7C, 0x95, 0xC5, 0xCB, 0x99, 0xC2, 0x6A, 0x4C, 0x88, -+ 0x1F, 0x62, 0x6A, 0x21, 0x9A, 0x61, 0x9B, 0xC3, 0x5C, 0xF4, 0xEF, 0x0A, 0x3B, 0x67, 0x25, 0x34, 0x9D, 0x2C, 0x13, 0xD8, 0x9D, 0xE6, 0x5D, 0x9F, 0x7A, 0x35, 0x51, 0xCC, 0xCF, 0xC5, 0x61, 0x1D, -+ 0xC9, 0xC8, 0x73, 0x7B, 0x0E, 0xF0, 0xFA, 0xDF, 0x86, 0x5A, 0x65, 0x33, 0x9F, 0x46, 0x4C, 0xB0, 0x65, 0xBA, 0x8F, 0xE4, 0x81, 0x06, 0x46, 0xA3, 0x44, 0x5B, 0x70, 0x2F, 0x51, 0xD6, 0xA9, 0x13, -+ 0x49, 0xFD, 0x70, 0xA3, 0x56, 0x49, 0xFD, 0x4D, 0xAE, 0xE6, 0x13, 0x10, 0xA3, 0xCC, 0xA5, 0xED, 0x3A, 0xBD, 0xBF, 0xF8, 0x35, 0x5B, 0x51, 0x14, 0x83, 0x5F, 0xDE, 0x73, 0xC9, 0xF5, 0x2A, 0xC2, -+ 0x29, 0xB1, 0x5E, 0x84, 0xD3, 0xF5, 0x9D, 0xCB, 0x13, 0x02, 0x55, 0x1E, 0xA4, 0xDD, 0x6F, 0x41, 0x5D, 0x01, 0x39, 0x11, 0xD6, 0x53, 0x15, 0xC8, 0xE5, 0x9B, 0x12, 0x20, 0x4A, 0xAA, 0xF5, 0x25, -+ 0x75, 0x4E, 0x96, 0xEC, 0x3C, 0xB1, 0x3E, 0x19, 0x72, 0x62, 0x1F, 0x9C, 0x86, 0xF5, 0xDE, 0x4A, 0xDA, 0xB9, 0x80, 0xCF, 0x83, 0x69, 0x12, 0x7C, 0x2B, 0x3E, 0x4E, 0xF1, 0xA8, 0x2B, 0x7A, 0xC9, -+ 0x59, 0xAB, 0x45, 0xD9, 0x7E, 0xEE, 0x7A, 0x14, 0xE4, 0x14, 0x5B, 0x34, 0x9B, 0x53, 0x3D, 0xD9, 0x2D, 0xD2, 0xC1, 0x77, 0xC7, 0x7A, 0xBA, 0x32, 0x5D, 0xD7, 0x5C, 0x77, 0xB3, 0x1A, 0x6A, 0xB3, -+ 0xAA, 0xBE, 0x54, 0xA6, 0xCF, 0xA2, 0xDC, 0xA3, 0x5E, 0x20, 0x99, 0x35, 0xEF, 0x9D, 0x94, 0x7A, 0x37, 0xE8, 0x35, 0x97, 0xB9, 0x4F, 0xCA, 0xF5, 0x8A, 0x56, 0xD1, 0x4A, 0x05, 0x69, 0x12, 0xC2, -+ 0x2A, 0x54, 0xA6, 0xFF, 0x2F, 0xE8, 0x25, 0xBA, 0xAD, 0x8A, 0xBF, 0x1D, 0xD8, 0x7F, 0xB0, 0xFA, 0x15, 0x19, 0xA5, 0xB7, 0xB4, 0x2F, 0x4B, 0xB2, 0xF7, 0x57, 0xEF, 0xF7, 0xC1, 0x2A, 0x2C, 0xD1, -+ 0xB9, 0x1F, 0xAE, 0xBF, 0x80, 0x86, 0x51, 0x6D, 0xCD, 0xD5, 0x5F, 0x63, 0x84, 0x18, 0x8F, 0x53, 0xC6, 0xA7, 0x81, 0x86, 0x2F, 0xB5, 0xCC, 0x3C, 0xC6, 0x1A, 0xDE, 0x2F, 0x11, 0x08, 0xD1, 0x51, -+ 0x63, 0xC3, 0x8C, 0x4C, 0xA0, 0x1B, 0xF7, 0xF2, 0xC8, 0x1B, 0x8C, 0x79, 0xAD, 0x69, 0x4A, 0x01, 0x61, 0x7B, 0xC0, 0x4F, 0x84, 0x70, 0xC2, 0xC7, 0x71, 0xBE, 0xE2, 0x9A, 0x66, 0x6B, 0xE8, 0x51, -+ 0x42, 0xCB, 0x96, 0x7E, 0xC5, 0x69, 0xA4, 0x02, 0x2A, 0x64, 0xFC, 0x5D, 0x95, 0xA5, 0x57, 0x76, 0xAC, 0x73, 0x27, 0x55, 0xB2, 0x39, 0x29, 0xF2, 0x59, 0x86, 0xD9, 0x3C, 0x01, 0x9B, 0xBB, 0xFB, -+ 0x15, 0x4C, 0x26, 0xBB, 0x47, 0xA2, 0xBA, 0x4B, 0x32, 0x97, 0xDC, 0xE4, 0x47, 0xC5, 0x61, 0xA1, 0xC4, 0x9F, 0x75, 0x35, 0xA7, 0xA1, 0x4C, 0x98, 0x30, 0x18, 0x6A, 0xA0, 0xDD, 0xFA, 0x00, 0x1A, -+ 0xEA, 0x0D, 0x94, 0xC4, 0x0A, 0xC8, 0xA8, 0x41, 0x8E, 0x8D, 0x57, 0x8D, 0x84, 0x21, 0x41, 0x3F, 0xB7, 0xE8, 0x20, 0x23, 0x7E, 0xF3, 0xB5, 0xCB, 0xF6, 0x08, 0x1C, 0x44, 0x2C, 0x13, 0xB4, 0x98, -+ 0x5E, 0xE6, 0x39, 0xE8, 0xF8, 0x6D, 0xB2, 0x87, 0x3B, 0xC2, 0xC9, 0xD3, 0xA9, 0xE5, 0x17, 0xAD, 0x70, 0x31, 0xDA, 0x3C, 0xC9, 0x2F, 0xC1, 0x5F, 0x50, 0x2F, 0xAD, 0x3F, 0xC5, 0xFD, 0xBB, 0xCD, -+ 0x2C, 0x95, 0x50, 0xA8, 0x95, 0x25, 0xF0, 0x06, 0x7C, 0xC3, 0xEA, 0x22, 0xD8, 0xD5, 0xB6, 0x1A, 0xFA, 0xA4, 0xB5, 0x53, 0xAC, 0x30, 0x39, 0x20, 0xF2, 0x5D, 0x6D, 0x58, 0xF6, 0x1F, 0x63, 0x56, -+ 0x68, 0x5E, 0x43, 0x50, 0x9A, 0x00, 0x62, 0xF8, 0x37, 0xBC, 0xB9, 0xA1, 0xA2, 0x2C, 0xFF, 0x08, 0x10, 0x80, 0x18, 0xD6, 0xD2, 0x4B, 0xDC, 0x2B, 0x09, 0x6D, 0x2E, 0xA0, 0x82, 0x0A, 0x05, 0x03, -+ 0x82, 0x0A, 0x01, 0x00, 0x03, 0x23, 0x69, 0xA2, 0xCE, 0x57, 0x2F, 0xD0, 0x8B, 0xFC, 0x30, 0x4B, 0x48, 0x48, 0xE7, 0x8D, 0x75, 0x2D, 0x77, 0xE9, 0x7A, 0x28, 0xB9, 0x9B, 0x9B, 0xB6, 0xFB, 0x5C, -+ 0x7C, 0x63, 0x37, 0x51, 0x4B, 0x32, 0x1E, 0xCD, 0xC1, 0xFB, 0x66, 0x9F, 0x26, 0xD4, 0x17, 0x1A, 0xB4, 0x2B, 0x72, 0x72, 0x0E, 0xE7, 0x0E, 0x05, 0x19, 0xA6, 0xE1, 0xD3, 0xD6, 0xD9, 0x91, 0x4E, -+ 0xC1, 0xB2, 0x1C, 0xDE, 0x38, 0xB4, 0x1A, 0xAC, 0x1D, 0x3A, 0xBE, 0xE6, 0xF2, 0xB7, 0x49, 0x5C, 0x4C, 0x82, 0x0C, 0x1F, 0xC0, 0xCC, 0x9E, 0x71, 0xE2, 0x4C, 0xFB, 0x5C, 0x9C, 0x0D, 0x8E, 0xEF, -+ 0x42, 0x64, 0xAF, 0x48, 0x4F, 0xAE, 0x4D, 0x6E, 0x5D, 0xDE, 0x65, 0xD4, 0xDF, 0x72, 0xB6, 0x1C, 0x6D, 0xBD, 0x26, 0xF8, 0x61, 0xA5, 0xE0, 0xB8, 0x53, 0xAC, 0x54, 0x13, 0x22, 0x6F, 0xEB, 0xBA, -+ 0xBA, 0x5E, 0xB4, 0x74, 0xC6, 0xFB, 0x25, 0xA8, 0x26, 0x78, 0xEA, 0x16, 0x06, 0xB4, 0x52, 0xA2, 0x31, 0x12, 0x22, 0x10, 0x17, 0xB8, 0xC0, 0x73, 0xC1, 0x03, 0x78, 0xF9, 0x14, 0x56, 0x41, 0xA8, -+ 0xC0, 0x78, 0xC0, 0xED, 0x9E, 0x42, 0x16, 0x50, 0xF7, 0x48, 0x89, 0x25, 0x22, 0xAB, 0x9F, 0xB7, 0xD1, 0xFF, 0x8C, 0xF1, 0xCC, 0x71, 0xB8, 0x56, 0x6E, 0x8D, 0xA3, 0x3C, 0xD7, 0x36, 0x17, 0x70, -+ 0xC0, 0x44, 0x34, 0x9A, 0xC4, 0x40, 0xCC, 0xCD, 0xC6, 0xBB, 0xE3, 0x5E, 0x6C, 0x55, 0x78, 0x27, 0x66, 0xF3, 0x8E, 0x68, 0x8B, 0xF4, 0x78, 0x21, 0x03, 0x72, 0x99, 0xE3, 0x44, 0xEC, 0xDE, 0xCA, -+ 0x17, 0xAD, 0x5D, 0x15, 0xCD, 0x27, 0xA4, 0xF7, 0xB0, 0x70, 0x66, 0x11, 0x38, 0xED, 0xE8, 0xED, 0x72, 0xA8, 0x95, 0x9C, 0x5A, 0xE3, 0x6B, 0x1C, 0x46, 0x09, 0x4A, 0x53, 0xCB, 0x21, 0xA7, 0xA4, -+ 0x26, 0x73, 0xF1, 0x40, 0x1C, 0x2B, 0x25, 0x94, 0x94, 0x09, 0x0E, 0x2F, 0x53, 0xD7, 0xEE, 0x70, 0x63, 0x43, 0x1E, 0xE5, 0x85, 0x80, 0x02, 0xD8, 0x50, 0xAF, 0x90, 0x9C, 0x37, 0x83, 0x43, 0x60, -+ 0x10, 0xF7, 0xEA, 0x88, 0x62, 0x5A, 0x36, 0xA0, 0xF0, 0x18, 0x9F, 0xDE, 0x75, 0xB7, 0xE8, 0xC7, 0xE4, 0xB1, 0x9D, 0x85, 0x27, 0x00, 0x83, 0x28, 0xAD, 0xBC, 0x92, 0x9B, 0xBC, 0x86, 0xE9, 0x64, -+ 0xCF, 0xC4, 0x8B, 0x8C, 0xF1, 0xDA, 0x5D, 0x7E, 0xD3, 0x33, 0x3A, 0xB5, 0x5C, 0x15, 0x07, 0x28, 0x32, 0x21, 0x4A, 0x77, 0x9A, 0x5F, 0xD1, 0x0C, 0xC0, 0x40, 0x05, 0xF4, 0x6C, 0x1A, 0xA8, 0x88, -+ 0x4A, 0x16, 0x19, 0x92, 0x47, 0x2F, 0xD5, 0x35, 0xB9, 0x5E, 0xD1, 0x8B, 0xDE, 0x1C, 0x6D, 0x8C, 0xE6, 0x78, 0xD2, 0x81, 0x7D, 0x69, 0xF9, 0x05, 0x71, 0x10, 0x3E, 0x85, 0x20, 0xE7, 0x31, 0x3C, -+ 0xE7, 0xB9, 0x30, 0xC5, 0xEB, 0xFA, 0xF2, 0xF4, 0xEC, 0x75, 0x8B, 0x62, 0x6B, 0x55, 0x43, 0xA0, 0x68, 0xCD, 0xE0, 0xFD, 0x0E, 0x94, 0xE6, 0xA6, 0x44, 0x75, 0xB2, 0x32, 0x68, 0xBF, 0x03, 0x80, -+ 0xD0, 0x75, 0x50, 0x8F, 0x85, 0x12, 0x8C, 0xA2, 0x6F, 0x31, 0xA9, 0x0C, 0x4A, 0x7D, 0x28, 0x44, 0x0D, 0x54, 0xD4, 0x06, 0x6B, 0x40, 0x45, 0x88, 0x58, 0x8B, 0x4C, 0xCF, 0x85, 0x0B, 0x97, 0x5C, -+ 0x73, 0xAF, 0xE6, 0x8C, 0xBC, 0xD1, 0x02, 0x75, 0x5F, 0x61, 0xEB, 0x3E, 0x60, 0x32, 0x3C, 0x57, 0x6E, 0x52, 0x9E, 0xC0, 0xBF, 0x23, 0xBF, 0xA5, 0xBE, 0xA3, 0x9C, 0xB7, 0x3C, 0x37, 0xE8, 0x39, -+ 0x5D, 0x8D, 0xBD, 0x4C, 0x8D, 0xC8, 0xAB, 0x2F, 0x70, 0xA0, 0xBF, 0xC3, 0xA7, 0x8C, 0x0D, 0x41, 0x3F, 0x08, 0xD1, 0x4D, 0x63, 0x2B, 0xC0, 0x40, 0x3B, 0x03, 0x83, 0xDB, 0xBB, 0x22, 0xBD, 0x9B, -+ 0x11, 0x3C, 0x89, 0x45, 0x2A, 0xEA, 0xB1, 0x12, 0x10, 0x09, 0x79, 0x47, 0xFE, 0xAA, 0xA3, 0xC9, 0xF0, 0x5D, 0x1D, 0x30, 0x0C, 0x33, 0xA5, 0x5E, 0x3F, 0xBC, 0x81, 0x25, 0x9E, 0x86, 0x27, 0x05, -+ 0xC3, 0xA1, 0x3B, 0x9E, 0xE3, 0x5F, 0x6B, 0x23, 0xED, 0x10, 0xF4, 0xED, 0xEA, 0x95, 0x19, 0xFA, 0x91, 0xB7, 0xBC, 0xD0, 0xD5, 0x01, 0xB5, 0xED, 0x57, 0xD9, 0x04, 0x9F, 0xAB, 0x91, 0xAA, 0x77, -+ 0x9C, 0x72, 0x5F, 0xF8, 0xE9, 0xF7, 0x80, 0x17, 0xEA, 0x78, 0x07, 0xFA, 0x25, 0x4B, 0x71, 0x05, 0xE8, 0x26, 0xD0, 0x96, 0xC0, 0x1A, 0xDA, 0xE2, 0xC5, 0xD1, 0x38, 0x25, 0x1A, 0x92, 0xA4, 0x78, -+ 0xA3, 0x33, 0x73, 0xF4, 0xDE, 0x91, 0x2B, 0x83, 0xB6, 0xFB, 0x4B, 0x0D, 0x0D, 0xE6, 0xBC, 0x11, 0x18, 0xBB, 0x2F, 0xCF, 0xB0, 0x7B, 0xD2, 0x27, 0xA5, 0xF7, 0xF9, 0x91, 0x43, 0x9A, 0x13, 0xDE, -+ 0x12, 0x38, 0x18, 0x0C, 0xDC, 0x55, 0x11, 0x9E, 0x65, 0xC4, 0x18, 0x58, 0x4D, 0x80, 0x7A, 0x92, 0x6E, 0x4A, 0x9C, 0x0F, 0x70, 0x15, 0x5E, 0xE1, 0x96, 0xFB, 0x07, 0x65, 0x6D, 0x9A, 0xA7, 0x98, -+ 0x2B, 0x87, 0x95, 0xDB, 0xAD, 0x43, 0xD1, 0x05, 0x9C, 0xA7, 0xF5, 0x80, 0xD3, 0x32, 0x0C, 0x04, 0x38, 0xA5, 0xED, 0x5A, 0x70, 0x32, 0xB2, 0xE9, 0x59, 0x67, 0x84, 0x10, 0xF1, 0x1A, 0xD9, 0x8B, -+ 0xE8, 0x82, 0x6A, 0x44, 0x26, 0x26, 0x15, 0x64, 0x5D, 0x75, 0x9A, 0x86, 0x2B, 0x2A, 0xC5, 0x2D, 0x3B, 0x01, 0x4A, 0x25, 0xE8, 0x47, 0x3F, 0x1F, 0x1E, 0xA4, 0xCF, 0xA8, 0x19, 0x93, 0x0A, 0xB3, -+ 0xA3, 0x4D, 0x71, 0x0D, 0xEE, 0xE7, 0x0C, 0xA1, 0x3E, 0x88, 0xFD, 0x71, 0xAA, 0x06, 0x4E, 0x6C, 0xB4, 0x69, 0x7D, 0xE0, 0xE4, 0x63, 0xB1, 0x37, 0x0A, 0x6A, 0x3B, 0xFE, 0x98, 0xFD, 0xFE, 0x7B, -+ 0x54, 0x71, 0xFF, 0x8D, 0xF6, 0xA6, 0x87, 0x9F, 0xBE, 0xF9, 0xAF, 0xB3, 0x51, 0x9D, 0x78, 0x07, 0x57, 0xD6, 0x74, 0x40, 0xAC, 0x36, 0xE8, 0x37, 0xBA, 0xC3, 0x83, 0x3E, 0xEA, 0xA9, 0x80, 0xBD, -+ 0x82, 0xB7, 0x93, 0x64, 0x36, 0xA0, 0x30, 0x7D, 0x16, 0x4B, 0x64, 0x38, 0x86, 0x9A, 0xE6, 0x06, 0xE9, 0x80, 0x51, 0x8E, 0x91, 0x3D, 0x0E, 0xE3, 0x02, 0x39, 0x6E, 0xF4, 0xEB, 0x25, 0xD9, 0x86, -+ 0x6E, 0x4B, 0xAF, 0xA1, 0x01, 0xE5, 0x99, 0x29, 0x31, 0x36, 0x1C, 0x4A, 0x98, 0x22, 0x53, 0xD5, 0x8A, 0xBE, 0x3B, 0xD5, 0x71, 0x07, 0x63, 0x5A, 0x46, 0xF0, 0x95, 0x12, 0x08, 0x5F, 0x4A, 0xDA, -+ 0x08, 0xEC, 0x8B, 0x1B, 0x39, 0x10, 0xB0, 0x15, 0x3B, 0x2A, 0xAF, 0xCA, 0xE5, 0x03, 0x3E, 0xDD, 0x41, 0x53, 0x24, 0x8D, 0xCD, 0x85, 0xB0, 0x2C, 0x9A, 0x25, 0xD8, 0xBD, 0xC4, 0x06, 0x8B, 0xB8, -+ 0x57, 0x41, 0x72, 0x62, 0x97, 0xA2, 0x5A, 0xEC, 0x55, 0xC4, 0x4A, 0xA2, 0x80, 0x59, 0xB7, 0x1B, 0xB9, 0xF3, 0x40, 0x67, 0x88, 0x7A, 0xDE, 0x4C, 0x1C, 0xA4, 0x90, 0x8B, 0x19, 0xB3, 0xD7, 0x81, -+ 0x23, 0x45, 0x38, 0x76, 0xDB, 0x4D, 0xCE, 0xB4, 0x27, 0x73, 0x06, 0x95, 0x72, 0xCD, 0x87, 0x77, 0xE6, 0x2C, 0xFB, 0xAF, 0x72, 0x03, 0xF0, 0x20, 0xF2, 0x81, 0xA6, 0x67, 0x8F, 0x79, 0x07, 0x20, -+ 0xEA, 0xA2, 0x0E, 0x34, 0x32, 0x7D, 0x7A, 0x63, 0x68, 0x8B, 0x09, 0xA0, 0x1F, 0x4D, 0x70, 0x88, 0xF7, 0xB5, 0x05, 0x9E, 0xDD, 0xEB, 0x45, 0xC0, 0xCE, 0x39, 0x32, 0x1C, 0x79, 0x52, 0x1D, 0x79, -+ 0xA5, 0x9E, 0xCD, 0xD4, 0x68, 0xCE, 0xD0, 0xEA, 0x82, 0xCA, 0x48, 0x49, 0x28, 0x70, 0x2F, 0x57, 0xD6, 0xFC, 0x18, 0xD3, 0x47, 0xAF, 0x3E, 0xD2, 0x2A, 0xAF, 0x45, 0xAB, 0xB0, 0xF2, 0x0B, 0xAB, -+ 0x9E, 0x01, 0x55, 0x76, 0x07, 0xAE, 0x3E, 0xD9, 0xCF, 0x0E, 0x26, 0xD3, 0x4D, 0x30, 0x54, 0x49, 0x66, 0x9E, 0xC6, 0xFC, 0x1B, 0xEC, 0xEA, 0xDC, 0xE1, 0x83, 0xF7, 0xA5, 0x94, 0xCE, 0xA1, 0x96, -+ 0xD0, 0x59, 0xA1, 0xE5, 0x50, 0xE5, 0x47, 0x86, 0x6C, 0xC0, 0x87, 0x33, 0x3F, 0x03, 0x0E, 0x62, 0x8F, 0x2C, 0xF1, 0x14, 0x79, 0x25, 0x41, 0x0E, 0xD0, 0x42, 0x1D, 0xC7, 0x50, 0x61, 0x38, 0xB1, -+ 0xD1, 0x90, 0x99, 0xC6, 0x95, 0xE1, 0xAF, 0xDA, 0xCE, 0x41, 0x53, 0x82, 0x5B, 0x66, 0xA8, 0xEC, 0xF5, 0x5A, 0x02, 0x1D, 0x21, 0xEB, 0x9F, 0x84, 0x8F, 0xE5, 0x5C, 0x21, 0x76, 0x9A, 0x75, 0x5F, -+ 0xA9, 0x80, 0x7E, 0xF7, 0x3A, 0x6C, 0x5B, 0xA1, 0x5A, 0x06, 0x34, 0x7D, 0x3F, 0x1C, 0x5C, 0x61, 0x9A, 0x31, 0x55, 0x98, 0x62, 0x91, 0x06, 0xAC, 0x0B, 0x86, 0xAE, 0x0D, 0x8E, 0x55, 0x57, 0x82, -+ 0x92, 0x51, 0x72, 0x58, 0xAE, 0x85, 0xF7, 0x2E, 0x73, 0x7A, 0xF5, 0x63, 0x8D, 0x09, 0x6B, 0x76, 0xA3, 0xC5, 0x7F, 0x1B, 0x9C, 0x80, 0xE7, 0x70, 0xA2, 0xD4, 0xEA, 0x4E, 0x42, 0xFE, 0x46, 0x9A, -+ 0xD4, 0x21, 0x28, 0x52, 0x41, 0x96, 0x0A, 0x8A, 0x86, 0x35, 0x5E, 0xF2, 0x2F, 0x58, 0x3F, 0xE3, 0xBA, 0xCA, 0xDF, 0x8D, 0xA3, 0x1D, 0x5C, 0x2D, 0xE2, 0x54, 0x16, 0x1B, 0xC6, 0xD1, 0x0F, 0x98, -+ 0x41, 0xDD, 0x27, 0xED, 0x46, 0x2A, 0x6B, 0x94, 0xB6, 0xDE, 0xEA, 0x90, 0xCB, 0xAB, 0x68, 0x7F, 0xB8, 0x4B, 0x56, 0x39, 0x5D, 0xA7, 0x63, 0xAB, 0x4B, 0x7F, 0xE3, 0x09, 0x5D, 0x57, 0x2D, 0x77, -+ 0xEF, 0xF3, 0xFF, 0x0D, 0x8F, 0x9D, 0x19, 0xAA, 0x5A, 0xF7, 0xB6, 0x76, 0x05, 0x3D, 0xBE, 0xF6, 0x4E, 0x61, 0xDD, 0x0A, 0x41, 0xD4, 0x02, 0x31, 0x8E, 0x33, 0x08, 0x66, 0x91, 0x06, 0x25, 0x9B, -+ 0xF7, 0xA4, 0xCE, 0x31, 0xB3, 0x46, 0xA9, 0xE9, 0x83, 0xED, 0xAB, 0xA0, 0x51, 0x80, 0x14, 0x9A, 0xB0, 0x57, 0xF9, 0x97, 0x29, 0x77, 0xDA, 0x7C, 0x6F, 0x46, 0xE0, 0xCD, 0xF8, 0x6F, 0x30, 0x91, -+ 0xF0, 0x4F, 0xD4, 0xE8, 0x3C, 0x60, 0x22, 0xE1, 0x8C, 0xE4, 0x38, 0x2B, 0x54, 0xD5, 0xDA, 0xBA, 0x82, 0xE4, 0xDF, 0x1E, 0x53, 0xBF, 0x31, 0xFE, 0x4B, 0xB6, 0x5A, 0x85, 0x24, 0xED, 0xA8, 0x3F, -+ 0xD2, 0x9D, 0x07, 0xE4, 0x97, 0x47, 0xB7, 0x52, 0x91, 0xCB, 0xC8, 0xF8, 0xEE, 0x14, 0x15, 0xEC, 0x92, 0x1E, 0x19, 0x02, 0x2A, 0xDE, 0x2C, 0x04, 0x7E, 0x4D, 0xF3, 0x50, 0x72, 0x89, 0xE9, 0xD7, -+ 0x9A, 0x8E, 0x69, 0x92, 0xB4, 0x8B, 0x88, 0x64, 0x20, 0x4A, 0x41, 0x6B, 0x76, 0x9C, 0xC7, 0x87, 0xD6, 0xDF, 0x44, 0x07, 0xE9, 0x3D, 0x12, 0x1F, 0x7F, 0xBE, 0xE0, 0xE4, 0x08, 0x96, 0x3E, 0x06, -+ 0x09, 0xA9, 0xC7, 0x5C, 0xB3, 0x11, 0x7C, 0xA5, 0x83, 0xDF, 0x6E, 0x79, 0xF3, 0x1C, 0x63, 0x5B, 0xF0, 0xF1, 0xBE, 0x98, 0xDF, 0x55, 0x07, 0x27, 0xA4, 0x5D, 0x3C, 0xA3, 0x37, 0xD7, 0x9D, 0xE5, -+ 0xDC, 0xDB, 0x0B, 0x91, 0xCA, 0xBB, 0xC3, 0x0D, 0x7E, 0xF0, 0xAE, 0x1C, 0xA1, 0xE9, 0x49, 0x04, 0xF7, 0x8C, 0x1F, 0xD8, 0xFB, 0xA8, 0x75, 0x45, 0xFD, 0xC1, 0x74, 0xAD, 0x81, 0x90, 0xF9, 0xB5, -+ 0xED, 0x7B, 0x58, 0x69, 0x49, 0x4F, 0xFA, 0x91, 0x03, 0x3F, 0xDC, 0x61, 0x17, 0xBF, 0x66, 0x2E, 0xC5, 0xF2, 0xAF, 0x26, 0x34, 0xBA, 0x3F, 0x8C, 0x02, 0x21, 0x0F, 0x1C, 0x9B, 0xCD, 0xDA, 0x9B, -+ 0xB3, 0x97, 0x60, 0xE0, 0x0F, 0x25, 0xA7, 0x27, 0x0C, 0x34, 0x56, 0x66, 0xFB, 0x6D, 0xF8, 0x5C, 0x91, 0x9A, 0xA1, 0x50, 0xCA, 0x7F, 0xC8, 0x0F, 0xC0, 0xEA, 0xCF, 0xE2, 0x42, 0xEF, 0x55, 0xF4, -+ 0x29, 0x80, 0x63, 0x62, 0x8E, 0x61, 0x05, 0x6C, 0x96, 0x6D, 0xB9, 0x96, 0x44, 0x28, 0xD9, 0xCE, 0x99, 0x10, 0x82, 0x71, 0xE2, 0x9A, 0x12, 0x32, 0x8E, 0x23, 0x99, 0x97, 0x34, 0xE0, 0x36, 0xF1, -+ 0x8A, 0x0E, 0xB8, 0xF0, 0x30, 0xE8, 0x80, 0x62, 0xC5, 0x67, 0x17, 0xE7, 0xA3, 0x63, 0x14, 0xE4, 0x4E, 0xCF, 0x35, 0x7F, 0xF5, 0x6E, 0xED, 0xF9, 0x0D, 0x3F, 0xB1, 0x1B, 0x22, 0xA1, 0xB2, 0x59, -+ 0x05, 0xB3, 0x79, 0xFC, 0xCA, 0x5C, 0xA1, 0xAC, 0xB9, 0x56, 0xE1, 0x78, 0xAD, 0x3F, 0x51, 0xD5, 0x35, 0xAD, 0x11, 0x98, 0x13, 0xB1, 0xE7, 0x0F, 0x73, 0x17, 0x65, 0x1B, 0xC7, 0x5C, 0xAC, 0x64, -+ 0x27, 0x6B, 0xB9, 0x81, 0x10, 0xB5, 0x4E, 0xA0, 0xEF, 0x34, 0x54, 0x1D, 0x73, 0x91, 0x07, 0x21, 0xD6, 0x57, 0x38, 0x76, 0x77, 0xE3, 0x32, 0xE9, 0xC8, 0x81, 0x1C, 0x3F, 0xC1, 0xB9, 0x23, 0xB2, -+ 0xEE, 0x9C, 0x51, 0x2F, 0x6D, 0x09, 0xDF, 0x37, 0x2A, 0x5F, 0x97, 0xFA, 0xD7, 0x12, 0x33, 0x89, 0xCE, 0xE1, 0x97, 0xB5, 0xC2, 0x69, 0xE2, 0x21, 0xD7, 0xEE, 0xD3, 0x16, 0x0A, 0x52, 0x1E, 0x56, -+ 0xFF, 0x8A, 0xAF, 0xAB, 0x68, 0x61, 0x79, 0xD0, 0x9D, 0x78, 0xFC, 0x38, 0x7B, 0x3E, 0xA6, 0xA6, 0x72, 0x03, 0x4D, 0x24, 0xAC, 0x79, 0x99, 0xD1, 0x96, 0xB2, 0x31, 0x64, 0x75, 0xF3, 0x7D, 0xB8, -+ 0xE9, 0xED, 0x43, 0x1D, 0xF5, 0x83, 0x41, 0xFA, 0x88, 0x00, 0x3D, 0x3C, 0x64, 0x89, 0xE7, 0x80, 0x53, 0xD8, 0xE4, 0x4C, 0xE7, 0xE1, 0x6A, 0xEF, 0x41, 0x68, 0x59, 0xB3, 0xD2, 0xAE, 0xCE, 0x09, -+ 0x08, 0x6A, 0x74, 0x8B, 0x7B, 0xCF, 0xD1, 0x0F, 0x73, 0xE3, 0xCF, 0x8B, 0x31, 0xF0, 0xCC, 0x44, 0xDA, 0x05, 0x9C, 0x69, 0xAB, 0xA5, 0xBC, 0x8E, 0xFA, 0xD4, 0x5D, 0x3F, 0x37, 0x6A, 0xF3, 0xA0, -+ 0xDE, 0x6E, 0x16, 0x98, 0x78, 0xBD, 0x84, 0x2E, 0x28, 0x79, 0x8E, 0x47, 0x43, 0xF8, 0x43, 0x84, 0x4B, 0xCD, 0xF8, 0x50, 0x6F, 0x13, 0x63, 0x91, 0xEC, 0x8E, 0x72, 0x1D, 0xC2, 0xB6, 0x28, 0x2D, -+ 0x9C, 0x50, 0xFA, 0xB6, 0x53, 0xA6, 0xAB, 0xF2, 0x89, 0x47, 0x42, 0x0E, 0x8C, 0x22, 0xA9, 0xA4, 0x87, 0xD7, 0x6A, 0x93, 0x89, 0x33, 0xB3, 0x4E, 0x49, 0x7D, 0xA9, 0x53, 0x94, 0x17, 0x6B, 0x27, -+ 0x74, 0xC0, 0x9E, 0xF0, 0xBB, 0x1E, 0xD8, 0xC3, 0xB1, 0x31, 0xA2, 0x19, 0x57, 0xB3, 0x1A, 0x0B, 0x47, 0xCB, 0xFB, 0xFF, 0x05, 0x33, 0xCA, 0xF3, 0x31, 0x25, 0x22, 0x1D, 0xB6, 0xBA, 0x4A, 0x51, -+ 0x88, 0x64, 0x89, 0x2C, 0xF2, 0x1D, 0x3D, 0x4D, 0x58, 0xB5, 0x99, 0xA3, 0x7A, 0x08, 0xF3, 0x44, 0xAA, 0x7E, 0xF9, 0x8E, 0x7D, 0x7D, 0x9D, 0x33, 0x16, 0xA6, 0xB1, 0x15, 0xD9, 0xB8, 0xF2, 0x0F, -+ 0x93, 0xBC, 0x68, 0x65, 0x73, 0x46, 0x99, 0xEB, 0x54, 0xC8, 0x88, 0xD7, 0xE5, 0xA0, 0xAC, 0xAF, 0xD1, 0x91, 0x53, 0x52, 0xB2, 0x94, 0x24, 0x37, 0x12, 0xCF, 0xE8, 0x2F, 0x85, 0x24, 0x8B, 0x00, -+ 0x04, 0x5C, 0xF3, 0xD0, 0x90, 0xC0, 0xC0, 0x0D, 0x7C, 0xA0, 0xE3, 0xA1, 0xF1, 0x47, 0x70, 0x3F, 0xD9, 0x4F, 0x71, 0x7E, 0x49, 0xC8, 0x1A, 0x7C, 0x3A, 0x76, 0x94, 0x6E, 0x20, 0xA6, 0x3F, 0x3B, -+ 0x7C, 0x3E, 0xAB, 0xA9, 0x22, 0x5A, 0xBE, 0x0B, 0x34, 0xCB, 0x0C, 0xF2, 0x35, 0x06, 0x39, 0x67, 0xD1, 0x6B, 0xC8, 0xA6, 0x9C, 0x13, 0x0C, 0xCE, 0x28, 0x76, 0x15, 0xCC, 0x05, 0x31, 0x14, 0x16, -+ 0x7E, 0xAC, 0x4E, 0x95, 0xBB, 0xAB, 0xDF, 0xBB, 0xCF, 0x96, 0xBC, 0x0C, 0x0D, 0x65, 0xEA, 0x00, 0x0A, 0xEA, 0xF4, 0x90, 0xD7, 0x23, 0x95, 0x5B, 0xD1, 0xB4, 0xD6, 0x91, 0x54, 0xD2, 0x62, 0xF6, -+ 0xA6, 0xD3, 0x53, 0x4B, 0xB0, 0xBC, 0x39, 0x7C, 0x29, 0xEC, 0xC6, 0xB1, 0x44, 0x7B, 0x75, 0xC9, 0x53, 0xAF, 0x44, 0x1D, 0xE2, 0xE7, 0x13, 0x3A, 0x7A, 0xC9, 0x89, 0x88, 0xA7, 0xEF, 0x9E, 0x6E, -+ 0xE6, 0x35, 0x58, 0xAA, 0xAD, 0xA0, 0x60, 0x3B, 0xD5, 0x29, 0x77, 0x6F, 0x05, 0x55, 0x8D, 0x2D, 0xF5, 0x64, 0x1C, 0x41, 0x2E, 0x73, 0x47, 0x44, 0x0F, 0x65, 0xEB, 0x82, 0x3A, 0xFC, 0x7C, 0xCA, -+ 0xE6, 0xB9, 0x71, 0x08, 0xB8, 0x57, 0x28, 0x7A, 0x04, 0x86, 0xDB, 0xBE, 0x68, 0x9D, 0x77, 0x0C, 0xA9, 0x24, 0x71, 0x30, 0x9E, 0x73, 0xAD, 0x39, 0x0A, 0xBF, 0x56, 0x91, 0x2B, 0x2B, 0x7C, 0x49, -+ 0x24, 0x2C, 0xEC, 0x15, 0x7B, 0xDB, 0xBD, 0x49, 0x35, 0x53, 0x73, 0x5C, 0xB1, 0xD9, 0xB4, 0x0A, 0xFC, 0x21, 0x4D, 0xA1, 0x53, 0x35, 0x9C, 0x9D, 0xF5, 0x76, 0x13, 0x59, 0x01, 0xC2, 0xFD, 0xA5, -+ 0x8C, 0x00, 0x95, 0xB6, 0xFC, 0xE3, 0xFD, 0x07, 0x31, 0xDF, 0x34, 0x86, 0x3A, 0xF2, 0x88, 0x2D, 0x53, 0x77, 0x3C, 0xE7, 0xC1, 0x82, 0x47, 0x37, 0x22, 0xAA, 0x79, 0xA6, 0xB3, 0x7D, 0x3E, 0xDD, -+ 0xDE, 0x38, 0xFA, 0x71, 0xDF, 0x8C, 0x0E, 0xDC, 0x08, 0x1E, 0xFE, 0xD8, 0xCE, 0x60, 0x6E, 0x48, 0x29, 0x91, 0x80, 0xEC, 0x6F, 0xE3, 0x5F, 0xAB, 0x64, 0x99, 0x10, 0xC4, 0x8A, 0x6A, 0x29, 0xF9, -+ 0xD0, 0xF8, 0x55, 0x57, 0xE1, 0x0B, 0xC5, 0xAE, 0x2E, 0xCF, 0x02, 0x8A, 0xE3, 0x99, 0xF5, 0x5C, 0xD7, 0x97, 0x60, 0x28, 0x93, 0x5C, 0xC0, 0x3C, 0x0C, 0xAF, 0xD5, 0x00, 0x3C, 0x9E, 0xAE, 0xD2, -+ 0x47, 0xFB, 0xE3, 0x0A, 0x28, 0x4C, 0xC4, 0x47, 0x0A, 0x55, 0x25, 0xA6, 0x49, 0x8E, 0x1D, 0xBB, 0xD3, 0x08, 0x5C, 0x3F, 0x9D, 0x77, 0xC6, 0x06, 0x4D, 0x01, 0x81, 0xBC, 0x5A, 0x82, 0x95, 0x61, -+ 0x56, 0x0A, 0xA9, 0xA4, 0xEA, 0x81, 0x73, 0xD7, 0x93, 0x7A, 0x94, 0x28, 0x10, 0x9C, 0xB3, 0xA6, 0x6B, 0x2B, 0x3D, 0xE1, 0x1F, 0x88, 0xF5, 0x5A, 0xB2, 0x1E, 0xB4, 0x9B, 0x77, 0xA3, 0x97, 0x62, -+ 0xCA, 0x92, 0x64, 0xE0, 0x15, 0x65, 0x66, 0x76, 0x5E, 0x2D, 0x36, 0x26, 0xB7, 0x2B, 0x80, 0xBD, 0x14, 0x11, 0xE4, 0xEC, 0x53, 0x55, 0x28, 0x28, 0xA2, 0x4B, 0xC8, 0xCD, 0xC4, 0x7F, 0x46, 0x5F, -+ 0xDD, 0xF4, 0x77, 0x2C, 0x7B, 0xC0, 0x20, 0x66, 0x85, 0x40, 0x11, 0x28, 0x7F, 0x73, 0x9A, 0xBA, 0x60, 0x47, 0x59, 0x67, 0x47, 0xF4, 0x23, 0x4A, 0xE2, 0x27, 0xDB, 0xFF, 0xAB, 0xF0, 0xE1, 0x31, -+ 0x53, 0xE2, 0xE0, 0x69, 0xF0, 0xB7, 0x90, 0x25, 0x1B, 0xE8, 0x77, 0xFE, 0x5A, 0x19, 0x8E, 0x80, 0x82, 0x58, 0x63, 0x9F, 0x5E, 0x79, 0xD3, 0xD5, 0xCD, 0x16, 0xF1, 0xA5, 0x73, 0x72, 0x4D, 0xD6, -+ 0xA9, 0xF6, 0x99, 0x0C, 0x45, 0x02, 0x33, 0x4D, 0xC6, 0x6F, 0x65, 0x49, 0x34, 0x90, 0x67, 0x3A, 0xB3, 0x0D, 0xCA, 0x7C, 0x03, 0x1F, 0x0C, 0x21, 0x2C, 0x0D, 0x8B, 0xC9, 0xD0, 0xC8, 0x74, 0xB3, -+ 0x19, 0xA9, 0x7A, 0xD1, 0xCE, 0x93, 0x95, 0xD3, 0xD1, 0x54, 0x20, 0x31, 0x56, 0xC5, 0x1C, 0xC3, 0xB9, 0xCB, 0x13, 0xD0, 0xBA, 0x1B, 0xDF, 0x61, 0x8B, 0xC8, 0xEE, 0xCA, 0x9D, 0xDD, 0x94, 0x12, -+ 0x05, 0x0C, 0xFA, 0x09, 0x23, 0x57, 0x27, 0xAA, 0x50, 0xD4, 0x6F, 0x79, 0xAD, 0x6F, 0x3C, 0x5A, 0x1B, 0xB6, 0xB2, 0x84, 0xC8, 0x31, 0x1D, 0xCF, 0x93, 0x75, 0x68, 0x59, 0x70, 0x4D, 0xF8, 0xFC, -+ 0x3B, 0xB8, 0xD2, 0xF5, 0xE0, 0x94, 0xE0, 0x45, 0x02, 0x35, 0x49, 0x42, 0xE9, 0xC8, 0x52, 0xB2, 0x08, 0xD4, 0x90, 0x18, 0x34, 0x33, 0x2E, 0xBC, 0x60, 0x32, 0x70, 0xCB, 0x57, 0xED, 0x41, 0x8C, -+ 0x34, 0xCE, 0x48, 0xAA, -+ }, -+ .spki_len = 2630, -+ .spki = { -+ 0x30, 0x82, 0x0A, 0x42, 0x30, 0x0F, 0x06, 0x0B, 0x2B, 0x06, 0x01, 0x04, 0x01, 0x02, 0x82, 0x0B, 0x07, 0x08, 0x07, 0x05, 0x00, 0x03, 0x82, 0x0A, 0x2D, 0x00, 0x30, 0x82, 0x0A, 0x28, 0x03, 0x21, -+ 0x00, 0x1C, 0x0E, 0xE1, 0x11, 0x1B, 0x08, 0x00, 0x3F, 0x28, 0xE6, 0x5E, 0x8B, 0x3B, 0xDE, 0xB0, 0x37, 0xCF, 0x8F, 0x22, 0x1D, 0xFC, 0xDA, 0xF5, 0x95, 0x0E, 0xDB, 0x38, 0xD5, 0x06, 0xD8, 0x5B, -+ 0xEF, 0x03, 0x82, 0x0A, 0x01, 0x00, 0x03, 0x23, 0x69, 0xA2, 0xCE, 0x57, 0x2F, 0xD0, 0x8B, 0xFC, 0x30, 0x4B, 0x48, 0x48, 0xE7, 0x8D, 0x75, 0x2D, 0x77, 0xE9, 0x7A, 0x28, 0xB9, 0x9B, 0x9B, 0xB6, -+ 0xFB, 0x5C, 0x7C, 0x63, 0x37, 0x51, 0x4B, 0x32, 0x1E, 0xCD, 0xC1, 0xFB, 0x66, 0x9F, 0x26, 0xD4, 0x17, 0x1A, 0xB4, 0x2B, 0x72, 0x72, 0x0E, 0xE7, 0x0E, 0x05, 0x19, 0xA6, 0xE1, 0xD3, 0xD6, 0xD9, -+ 0x91, 0x4E, 0xC1, 0xB2, 0x1C, 0xDE, 0x38, 0xB4, 0x1A, 0xAC, 0x1D, 0x3A, 0xBE, 0xE6, 0xF2, 0xB7, 0x49, 0x5C, 0x4C, 0x82, 0x0C, 0x1F, 0xC0, 0xCC, 0x9E, 0x71, 0xE2, 0x4C, 0xFB, 0x5C, 0x9C, 0x0D, -+ 0x8E, 0xEF, 0x42, 0x64, 0xAF, 0x48, 0x4F, 0xAE, 0x4D, 0x6E, 0x5D, 0xDE, 0x65, 0xD4, 0xDF, 0x72, 0xB6, 0x1C, 0x6D, 0xBD, 0x26, 0xF8, 0x61, 0xA5, 0xE0, 0xB8, 0x53, 0xAC, 0x54, 0x13, 0x22, 0x6F, -+ 0xEB, 0xBA, 0xBA, 0x5E, 0xB4, 0x74, 0xC6, 0xFB, 0x25, 0xA8, 0x26, 0x78, 0xEA, 0x16, 0x06, 0xB4, 0x52, 0xA2, 0x31, 0x12, 0x22, 0x10, 0x17, 0xB8, 0xC0, 0x73, 0xC1, 0x03, 0x78, 0xF9, 0x14, 0x56, -+ 0x41, 0xA8, 0xC0, 0x78, 0xC0, 0xED, 0x9E, 0x42, 0x16, 0x50, 0xF7, 0x48, 0x89, 0x25, 0x22, 0xAB, 0x9F, 0xB7, 0xD1, 0xFF, 0x8C, 0xF1, 0xCC, 0x71, 0xB8, 0x56, 0x6E, 0x8D, 0xA3, 0x3C, 0xD7, 0x36, -+ 0x17, 0x70, 0xC0, 0x44, 0x34, 0x9A, 0xC4, 0x40, 0xCC, 0xCD, 0xC6, 0xBB, 0xE3, 0x5E, 0x6C, 0x55, 0x78, 0x27, 0x66, 0xF3, 0x8E, 0x68, 0x8B, 0xF4, 0x78, 0x21, 0x03, 0x72, 0x99, 0xE3, 0x44, 0xEC, -+ 0xDE, 0xCA, 0x17, 0xAD, 0x5D, 0x15, 0xCD, 0x27, 0xA4, 0xF7, 0xB0, 0x70, 0x66, 0x11, 0x38, 0xED, 0xE8, 0xED, 0x72, 0xA8, 0x95, 0x9C, 0x5A, 0xE3, 0x6B, 0x1C, 0x46, 0x09, 0x4A, 0x53, 0xCB, 0x21, -+ 0xA7, 0xA4, 0x26, 0x73, 0xF1, 0x40, 0x1C, 0x2B, 0x25, 0x94, 0x94, 0x09, 0x0E, 0x2F, 0x53, 0xD7, 0xEE, 0x70, 0x63, 0x43, 0x1E, 0xE5, 0x85, 0x80, 0x02, 0xD8, 0x50, 0xAF, 0x90, 0x9C, 0x37, 0x83, -+ 0x43, 0x60, 0x10, 0xF7, 0xEA, 0x88, 0x62, 0x5A, 0x36, 0xA0, 0xF0, 0x18, 0x9F, 0xDE, 0x75, 0xB7, 0xE8, 0xC7, 0xE4, 0xB1, 0x9D, 0x85, 0x27, 0x00, 0x83, 0x28, 0xAD, 0xBC, 0x92, 0x9B, 0xBC, 0x86, -+ 0xE9, 0x64, 0xCF, 0xC4, 0x8B, 0x8C, 0xF1, 0xDA, 0x5D, 0x7E, 0xD3, 0x33, 0x3A, 0xB5, 0x5C, 0x15, 0x07, 0x28, 0x32, 0x21, 0x4A, 0x77, 0x9A, 0x5F, 0xD1, 0x0C, 0xC0, 0x40, 0x05, 0xF4, 0x6C, 0x1A, -+ 0xA8, 0x88, 0x4A, 0x16, 0x19, 0x92, 0x47, 0x2F, 0xD5, 0x35, 0xB9, 0x5E, 0xD1, 0x8B, 0xDE, 0x1C, 0x6D, 0x8C, 0xE6, 0x78, 0xD2, 0x81, 0x7D, 0x69, 0xF9, 0x05, 0x71, 0x10, 0x3E, 0x85, 0x20, 0xE7, -+ 0x31, 0x3C, 0xE7, 0xB9, 0x30, 0xC5, 0xEB, 0xFA, 0xF2, 0xF4, 0xEC, 0x75, 0x8B, 0x62, 0x6B, 0x55, 0x43, 0xA0, 0x68, 0xCD, 0xE0, 0xFD, 0x0E, 0x94, 0xE6, 0xA6, 0x44, 0x75, 0xB2, 0x32, 0x68, 0xBF, -+ 0x03, 0x80, 0xD0, 0x75, 0x50, 0x8F, 0x85, 0x12, 0x8C, 0xA2, 0x6F, 0x31, 0xA9, 0x0C, 0x4A, 0x7D, 0x28, 0x44, 0x0D, 0x54, 0xD4, 0x06, 0x6B, 0x40, 0x45, 0x88, 0x58, 0x8B, 0x4C, 0xCF, 0x85, 0x0B, -+ 0x97, 0x5C, 0x73, 0xAF, 0xE6, 0x8C, 0xBC, 0xD1, 0x02, 0x75, 0x5F, 0x61, 0xEB, 0x3E, 0x60, 0x32, 0x3C, 0x57, 0x6E, 0x52, 0x9E, 0xC0, 0xBF, 0x23, 0xBF, 0xA5, 0xBE, 0xA3, 0x9C, 0xB7, 0x3C, 0x37, -+ 0xE8, 0x39, 0x5D, 0x8D, 0xBD, 0x4C, 0x8D, 0xC8, 0xAB, 0x2F, 0x70, 0xA0, 0xBF, 0xC3, 0xA7, 0x8C, 0x0D, 0x41, 0x3F, 0x08, 0xD1, 0x4D, 0x63, 0x2B, 0xC0, 0x40, 0x3B, 0x03, 0x83, 0xDB, 0xBB, 0x22, -+ 0xBD, 0x9B, 0x11, 0x3C, 0x89, 0x45, 0x2A, 0xEA, 0xB1, 0x12, 0x10, 0x09, 0x79, 0x47, 0xFE, 0xAA, 0xA3, 0xC9, 0xF0, 0x5D, 0x1D, 0x30, 0x0C, 0x33, 0xA5, 0x5E, 0x3F, 0xBC, 0x81, 0x25, 0x9E, 0x86, -+ 0x27, 0x05, 0xC3, 0xA1, 0x3B, 0x9E, 0xE3, 0x5F, 0x6B, 0x23, 0xED, 0x10, 0xF4, 0xED, 0xEA, 0x95, 0x19, 0xFA, 0x91, 0xB7, 0xBC, 0xD0, 0xD5, 0x01, 0xB5, 0xED, 0x57, 0xD9, 0x04, 0x9F, 0xAB, 0x91, -+ 0xAA, 0x77, 0x9C, 0x72, 0x5F, 0xF8, 0xE9, 0xF7, 0x80, 0x17, 0xEA, 0x78, 0x07, 0xFA, 0x25, 0x4B, 0x71, 0x05, 0xE8, 0x26, 0xD0, 0x96, 0xC0, 0x1A, 0xDA, 0xE2, 0xC5, 0xD1, 0x38, 0x25, 0x1A, 0x92, -+ 0xA4, 0x78, 0xA3, 0x33, 0x73, 0xF4, 0xDE, 0x91, 0x2B, 0x83, 0xB6, 0xFB, 0x4B, 0x0D, 0x0D, 0xE6, 0xBC, 0x11, 0x18, 0xBB, 0x2F, 0xCF, 0xB0, 0x7B, 0xD2, 0x27, 0xA5, 0xF7, 0xF9, 0x91, 0x43, 0x9A, -+ 0x13, 0xDE, 0x12, 0x38, 0x18, 0x0C, 0xDC, 0x55, 0x11, 0x9E, 0x65, 0xC4, 0x18, 0x58, 0x4D, 0x80, 0x7A, 0x92, 0x6E, 0x4A, 0x9C, 0x0F, 0x70, 0x15, 0x5E, 0xE1, 0x96, 0xFB, 0x07, 0x65, 0x6D, 0x9A, -+ 0xA7, 0x98, 0x2B, 0x87, 0x95, 0xDB, 0xAD, 0x43, 0xD1, 0x05, 0x9C, 0xA7, 0xF5, 0x80, 0xD3, 0x32, 0x0C, 0x04, 0x38, 0xA5, 0xED, 0x5A, 0x70, 0x32, 0xB2, 0xE9, 0x59, 0x67, 0x84, 0x10, 0xF1, 0x1A, -+ 0xD9, 0x8B, 0xE8, 0x82, 0x6A, 0x44, 0x26, 0x26, 0x15, 0x64, 0x5D, 0x75, 0x9A, 0x86, 0x2B, 0x2A, 0xC5, 0x2D, 0x3B, 0x01, 0x4A, 0x25, 0xE8, 0x47, 0x3F, 0x1F, 0x1E, 0xA4, 0xCF, 0xA8, 0x19, 0x93, -+ 0x0A, 0xB3, 0xA3, 0x4D, 0x71, 0x0D, 0xEE, 0xE7, 0x0C, 0xA1, 0x3E, 0x88, 0xFD, 0x71, 0xAA, 0x06, 0x4E, 0x6C, 0xB4, 0x69, 0x7D, 0xE0, 0xE4, 0x63, 0xB1, 0x37, 0x0A, 0x6A, 0x3B, 0xFE, 0x98, 0xFD, -+ 0xFE, 0x7B, 0x54, 0x71, 0xFF, 0x8D, 0xF6, 0xA6, 0x87, 0x9F, 0xBE, 0xF9, 0xAF, 0xB3, 0x51, 0x9D, 0x78, 0x07, 0x57, 0xD6, 0x74, 0x40, 0xAC, 0x36, 0xE8, 0x37, 0xBA, 0xC3, 0x83, 0x3E, 0xEA, 0xA9, -+ 0x80, 0xBD, 0x82, 0xB7, 0x93, 0x64, 0x36, 0xA0, 0x30, 0x7D, 0x16, 0x4B, 0x64, 0x38, 0x86, 0x9A, 0xE6, 0x06, 0xE9, 0x80, 0x51, 0x8E, 0x91, 0x3D, 0x0E, 0xE3, 0x02, 0x39, 0x6E, 0xF4, 0xEB, 0x25, -+ 0xD9, 0x86, 0x6E, 0x4B, 0xAF, 0xA1, 0x01, 0xE5, 0x99, 0x29, 0x31, 0x36, 0x1C, 0x4A, 0x98, 0x22, 0x53, 0xD5, 0x8A, 0xBE, 0x3B, 0xD5, 0x71, 0x07, 0x63, 0x5A, 0x46, 0xF0, 0x95, 0x12, 0x08, 0x5F, -+ 0x4A, 0xDA, 0x08, 0xEC, 0x8B, 0x1B, 0x39, 0x10, 0xB0, 0x15, 0x3B, 0x2A, 0xAF, 0xCA, 0xE5, 0x03, 0x3E, 0xDD, 0x41, 0x53, 0x24, 0x8D, 0xCD, 0x85, 0xB0, 0x2C, 0x9A, 0x25, 0xD8, 0xBD, 0xC4, 0x06, -+ 0x8B, 0xB8, 0x57, 0x41, 0x72, 0x62, 0x97, 0xA2, 0x5A, 0xEC, 0x55, 0xC4, 0x4A, 0xA2, 0x80, 0x59, 0xB7, 0x1B, 0xB9, 0xF3, 0x40, 0x67, 0x88, 0x7A, 0xDE, 0x4C, 0x1C, 0xA4, 0x90, 0x8B, 0x19, 0xB3, -+ 0xD7, 0x81, 0x23, 0x45, 0x38, 0x76, 0xDB, 0x4D, 0xCE, 0xB4, 0x27, 0x73, 0x06, 0x95, 0x72, 0xCD, 0x87, 0x77, 0xE6, 0x2C, 0xFB, 0xAF, 0x72, 0x03, 0xF0, 0x20, 0xF2, 0x81, 0xA6, 0x67, 0x8F, 0x79, -+ 0x07, 0x20, 0xEA, 0xA2, 0x0E, 0x34, 0x32, 0x7D, 0x7A, 0x63, 0x68, 0x8B, 0x09, 0xA0, 0x1F, 0x4D, 0x70, 0x88, 0xF7, 0xB5, 0x05, 0x9E, 0xDD, 0xEB, 0x45, 0xC0, 0xCE, 0x39, 0x32, 0x1C, 0x79, 0x52, -+ 0x1D, 0x79, 0xA5, 0x9E, 0xCD, 0xD4, 0x68, 0xCE, 0xD0, 0xEA, 0x82, 0xCA, 0x48, 0x49, 0x28, 0x70, 0x2F, 0x57, 0xD6, 0xFC, 0x18, 0xD3, 0x47, 0xAF, 0x3E, 0xD2, 0x2A, 0xAF, 0x45, 0xAB, 0xB0, 0xF2, -+ 0x0B, 0xAB, 0x9E, 0x01, 0x55, 0x76, 0x07, 0xAE, 0x3E, 0xD9, 0xCF, 0x0E, 0x26, 0xD3, 0x4D, 0x30, 0x54, 0x49, 0x66, 0x9E, 0xC6, 0xFC, 0x1B, 0xEC, 0xEA, 0xDC, 0xE1, 0x83, 0xF7, 0xA5, 0x94, 0xCE, -+ 0xA1, 0x96, 0xD0, 0x59, 0xA1, 0xE5, 0x50, 0xE5, 0x47, 0x86, 0x6C, 0xC0, 0x87, 0x33, 0x3F, 0x03, 0x0E, 0x62, 0x8F, 0x2C, 0xF1, 0x14, 0x79, 0x25, 0x41, 0x0E, 0xD0, 0x42, 0x1D, 0xC7, 0x50, 0x61, -+ 0x38, 0xB1, 0xD1, 0x90, 0x99, 0xC6, 0x95, 0xE1, 0xAF, 0xDA, 0xCE, 0x41, 0x53, 0x82, 0x5B, 0x66, 0xA8, 0xEC, 0xF5, 0x5A, 0x02, 0x1D, 0x21, 0xEB, 0x9F, 0x84, 0x8F, 0xE5, 0x5C, 0x21, 0x76, 0x9A, -+ 0x75, 0x5F, 0xA9, 0x80, 0x7E, 0xF7, 0x3A, 0x6C, 0x5B, 0xA1, 0x5A, 0x06, 0x34, 0x7D, 0x3F, 0x1C, 0x5C, 0x61, 0x9A, 0x31, 0x55, 0x98, 0x62, 0x91, 0x06, 0xAC, 0x0B, 0x86, 0xAE, 0x0D, 0x8E, 0x55, -+ 0x57, 0x82, 0x92, 0x51, 0x72, 0x58, 0xAE, 0x85, 0xF7, 0x2E, 0x73, 0x7A, 0xF5, 0x63, 0x8D, 0x09, 0x6B, 0x76, 0xA3, 0xC5, 0x7F, 0x1B, 0x9C, 0x80, 0xE7, 0x70, 0xA2, 0xD4, 0xEA, 0x4E, 0x42, 0xFE, -+ 0x46, 0x9A, 0xD4, 0x21, 0x28, 0x52, 0x41, 0x96, 0x0A, 0x8A, 0x86, 0x35, 0x5E, 0xF2, 0x2F, 0x58, 0x3F, 0xE3, 0xBA, 0xCA, 0xDF, 0x8D, 0xA3, 0x1D, 0x5C, 0x2D, 0xE2, 0x54, 0x16, 0x1B, 0xC6, 0xD1, -+ 0x0F, 0x98, 0x41, 0xDD, 0x27, 0xED, 0x46, 0x2A, 0x6B, 0x94, 0xB6, 0xDE, 0xEA, 0x90, 0xCB, 0xAB, 0x68, 0x7F, 0xB8, 0x4B, 0x56, 0x39, 0x5D, 0xA7, 0x63, 0xAB, 0x4B, 0x7F, 0xE3, 0x09, 0x5D, 0x57, -+ 0x2D, 0x77, 0xEF, 0xF3, 0xFF, 0x0D, 0x8F, 0x9D, 0x19, 0xAA, 0x5A, 0xF7, 0xB6, 0x76, 0x05, 0x3D, 0xBE, 0xF6, 0x4E, 0x61, 0xDD, 0x0A, 0x41, 0xD4, 0x02, 0x31, 0x8E, 0x33, 0x08, 0x66, 0x91, 0x06, -+ 0x25, 0x9B, 0xF7, 0xA4, 0xCE, 0x31, 0xB3, 0x46, 0xA9, 0xE9, 0x83, 0xED, 0xAB, 0xA0, 0x51, 0x80, 0x14, 0x9A, 0xB0, 0x57, 0xF9, 0x97, 0x29, 0x77, 0xDA, 0x7C, 0x6F, 0x46, 0xE0, 0xCD, 0xF8, 0x6F, -+ 0x30, 0x91, 0xF0, 0x4F, 0xD4, 0xE8, 0x3C, 0x60, 0x22, 0xE1, 0x8C, 0xE4, 0x38, 0x2B, 0x54, 0xD5, 0xDA, 0xBA, 0x82, 0xE4, 0xDF, 0x1E, 0x53, 0xBF, 0x31, 0xFE, 0x4B, 0xB6, 0x5A, 0x85, 0x24, 0xED, -+ 0xA8, 0x3F, 0xD2, 0x9D, 0x07, 0xE4, 0x97, 0x47, 0xB7, 0x52, 0x91, 0xCB, 0xC8, 0xF8, 0xEE, 0x14, 0x15, 0xEC, 0x92, 0x1E, 0x19, 0x02, 0x2A, 0xDE, 0x2C, 0x04, 0x7E, 0x4D, 0xF3, 0x50, 0x72, 0x89, -+ 0xE9, 0xD7, 0x9A, 0x8E, 0x69, 0x92, 0xB4, 0x8B, 0x88, 0x64, 0x20, 0x4A, 0x41, 0x6B, 0x76, 0x9C, 0xC7, 0x87, 0xD6, 0xDF, 0x44, 0x07, 0xE9, 0x3D, 0x12, 0x1F, 0x7F, 0xBE, 0xE0, 0xE4, 0x08, 0x96, -+ 0x3E, 0x06, 0x09, 0xA9, 0xC7, 0x5C, 0xB3, 0x11, 0x7C, 0xA5, 0x83, 0xDF, 0x6E, 0x79, 0xF3, 0x1C, 0x63, 0x5B, 0xF0, 0xF1, 0xBE, 0x98, 0xDF, 0x55, 0x07, 0x27, 0xA4, 0x5D, 0x3C, 0xA3, 0x37, 0xD7, -+ 0x9D, 0xE5, 0xDC, 0xDB, 0x0B, 0x91, 0xCA, 0xBB, 0xC3, 0x0D, 0x7E, 0xF0, 0xAE, 0x1C, 0xA1, 0xE9, 0x49, 0x04, 0xF7, 0x8C, 0x1F, 0xD8, 0xFB, 0xA8, 0x75, 0x45, 0xFD, 0xC1, 0x74, 0xAD, 0x81, 0x90, -+ 0xF9, 0xB5, 0xED, 0x7B, 0x58, 0x69, 0x49, 0x4F, 0xFA, 0x91, 0x03, 0x3F, 0xDC, 0x61, 0x17, 0xBF, 0x66, 0x2E, 0xC5, 0xF2, 0xAF, 0x26, 0x34, 0xBA, 0x3F, 0x8C, 0x02, 0x21, 0x0F, 0x1C, 0x9B, 0xCD, -+ 0xDA, 0x9B, 0xB3, 0x97, 0x60, 0xE0, 0x0F, 0x25, 0xA7, 0x27, 0x0C, 0x34, 0x56, 0x66, 0xFB, 0x6D, 0xF8, 0x5C, 0x91, 0x9A, 0xA1, 0x50, 0xCA, 0x7F, 0xC8, 0x0F, 0xC0, 0xEA, 0xCF, 0xE2, 0x42, 0xEF, -+ 0x55, 0xF4, 0x29, 0x80, 0x63, 0x62, 0x8E, 0x61, 0x05, 0x6C, 0x96, 0x6D, 0xB9, 0x96, 0x44, 0x28, 0xD9, 0xCE, 0x99, 0x10, 0x82, 0x71, 0xE2, 0x9A, 0x12, 0x32, 0x8E, 0x23, 0x99, 0x97, 0x34, 0xE0, -+ 0x36, 0xF1, 0x8A, 0x0E, 0xB8, 0xF0, 0x30, 0xE8, 0x80, 0x62, 0xC5, 0x67, 0x17, 0xE7, 0xA3, 0x63, 0x14, 0xE4, 0x4E, 0xCF, 0x35, 0x7F, 0xF5, 0x6E, 0xED, 0xF9, 0x0D, 0x3F, 0xB1, 0x1B, 0x22, 0xA1, -+ 0xB2, 0x59, 0x05, 0xB3, 0x79, 0xFC, 0xCA, 0x5C, 0xA1, 0xAC, 0xB9, 0x56, 0xE1, 0x78, 0xAD, 0x3F, 0x51, 0xD5, 0x35, 0xAD, 0x11, 0x98, 0x13, 0xB1, 0xE7, 0x0F, 0x73, 0x17, 0x65, 0x1B, 0xC7, 0x5C, -+ 0xAC, 0x64, 0x27, 0x6B, 0xB9, 0x81, 0x10, 0xB5, 0x4E, 0xA0, 0xEF, 0x34, 0x54, 0x1D, 0x73, 0x91, 0x07, 0x21, 0xD6, 0x57, 0x38, 0x76, 0x77, 0xE3, 0x32, 0xE9, 0xC8, 0x81, 0x1C, 0x3F, 0xC1, 0xB9, -+ 0x23, 0xB2, 0xEE, 0x9C, 0x51, 0x2F, 0x6D, 0x09, 0xDF, 0x37, 0x2A, 0x5F, 0x97, 0xFA, 0xD7, 0x12, 0x33, 0x89, 0xCE, 0xE1, 0x97, 0xB5, 0xC2, 0x69, 0xE2, 0x21, 0xD7, 0xEE, 0xD3, 0x16, 0x0A, 0x52, -+ 0x1E, 0x56, 0xFF, 0x8A, 0xAF, 0xAB, 0x68, 0x61, 0x79, 0xD0, 0x9D, 0x78, 0xFC, 0x38, 0x7B, 0x3E, 0xA6, 0xA6, 0x72, 0x03, 0x4D, 0x24, 0xAC, 0x79, 0x99, 0xD1, 0x96, 0xB2, 0x31, 0x64, 0x75, 0xF3, -+ 0x7D, 0xB8, 0xE9, 0xED, 0x43, 0x1D, 0xF5, 0x83, 0x41, 0xFA, 0x88, 0x00, 0x3D, 0x3C, 0x64, 0x89, 0xE7, 0x80, 0x53, 0xD8, 0xE4, 0x4C, 0xE7, 0xE1, 0x6A, 0xEF, 0x41, 0x68, 0x59, 0xB3, 0xD2, 0xAE, -+ 0xCE, 0x09, 0x08, 0x6A, 0x74, 0x8B, 0x7B, 0xCF, 0xD1, 0x0F, 0x73, 0xE3, 0xCF, 0x8B, 0x31, 0xF0, 0xCC, 0x44, 0xDA, 0x05, 0x9C, 0x69, 0xAB, 0xA5, 0xBC, 0x8E, 0xFA, 0xD4, 0x5D, 0x3F, 0x37, 0x6A, -+ 0xF3, 0xA0, 0xDE, 0x6E, 0x16, 0x98, 0x78, 0xBD, 0x84, 0x2E, 0x28, 0x79, 0x8E, 0x47, 0x43, 0xF8, 0x43, 0x84, 0x4B, 0xCD, 0xF8, 0x50, 0x6F, 0x13, 0x63, 0x91, 0xEC, 0x8E, 0x72, 0x1D, 0xC2, 0xB6, -+ 0x28, 0x2D, 0x9C, 0x50, 0xFA, 0xB6, 0x53, 0xA6, 0xAB, 0xF2, 0x89, 0x47, 0x42, 0x0E, 0x8C, 0x22, 0xA9, 0xA4, 0x87, 0xD7, 0x6A, 0x93, 0x89, 0x33, 0xB3, 0x4E, 0x49, 0x7D, 0xA9, 0x53, 0x94, 0x17, -+ 0x6B, 0x27, 0x74, 0xC0, 0x9E, 0xF0, 0xBB, 0x1E, 0xD8, 0xC3, 0xB1, 0x31, 0xA2, 0x19, 0x57, 0xB3, 0x1A, 0x0B, 0x47, 0xCB, 0xFB, 0xFF, 0x05, 0x33, 0xCA, 0xF3, 0x31, 0x25, 0x22, 0x1D, 0xB6, 0xBA, -+ 0x4A, 0x51, 0x88, 0x64, 0x89, 0x2C, 0xF2, 0x1D, 0x3D, 0x4D, 0x58, 0xB5, 0x99, 0xA3, 0x7A, 0x08, 0xF3, 0x44, 0xAA, 0x7E, 0xF9, 0x8E, 0x7D, 0x7D, 0x9D, 0x33, 0x16, 0xA6, 0xB1, 0x15, 0xD9, 0xB8, -+ 0xF2, 0x0F, 0x93, 0xBC, 0x68, 0x65, 0x73, 0x46, 0x99, 0xEB, 0x54, 0xC8, 0x88, 0xD7, 0xE5, 0xA0, 0xAC, 0xAF, 0xD1, 0x91, 0x53, 0x52, 0xB2, 0x94, 0x24, 0x37, 0x12, 0xCF, 0xE8, 0x2F, 0x85, 0x24, -+ 0x8B, 0x00, 0x04, 0x5C, 0xF3, 0xD0, 0x90, 0xC0, 0xC0, 0x0D, 0x7C, 0xA0, 0xE3, 0xA1, 0xF1, 0x47, 0x70, 0x3F, 0xD9, 0x4F, 0x71, 0x7E, 0x49, 0xC8, 0x1A, 0x7C, 0x3A, 0x76, 0x94, 0x6E, 0x20, 0xA6, -+ 0x3F, 0x3B, 0x7C, 0x3E, 0xAB, 0xA9, 0x22, 0x5A, 0xBE, 0x0B, 0x34, 0xCB, 0x0C, 0xF2, 0x35, 0x06, 0x39, 0x67, 0xD1, 0x6B, 0xC8, 0xA6, 0x9C, 0x13, 0x0C, 0xCE, 0x28, 0x76, 0x15, 0xCC, 0x05, 0x31, -+ 0x14, 0x16, 0x7E, 0xAC, 0x4E, 0x95, 0xBB, 0xAB, 0xDF, 0xBB, 0xCF, 0x96, 0xBC, 0x0C, 0x0D, 0x65, 0xEA, 0x00, 0x0A, 0xEA, 0xF4, 0x90, 0xD7, 0x23, 0x95, 0x5B, 0xD1, 0xB4, 0xD6, 0x91, 0x54, 0xD2, -+ 0x62, 0xF6, 0xA6, 0xD3, 0x53, 0x4B, 0xB0, 0xBC, 0x39, 0x7C, 0x29, 0xEC, 0xC6, 0xB1, 0x44, 0x7B, 0x75, 0xC9, 0x53, 0xAF, 0x44, 0x1D, 0xE2, 0xE7, 0x13, 0x3A, 0x7A, 0xC9, 0x89, 0x88, 0xA7, 0xEF, -+ 0x9E, 0x6E, 0xE6, 0x35, 0x58, 0xAA, 0xAD, 0xA0, 0x60, 0x3B, 0xD5, 0x29, 0x77, 0x6F, 0x05, 0x55, 0x8D, 0x2D, 0xF5, 0x64, 0x1C, 0x41, 0x2E, 0x73, 0x47, 0x44, 0x0F, 0x65, 0xEB, 0x82, 0x3A, 0xFC, -+ 0x7C, 0xCA, 0xE6, 0xB9, 0x71, 0x08, 0xB8, 0x57, 0x28, 0x7A, 0x04, 0x86, 0xDB, 0xBE, 0x68, 0x9D, 0x77, 0x0C, 0xA9, 0x24, 0x71, 0x30, 0x9E, 0x73, 0xAD, 0x39, 0x0A, 0xBF, 0x56, 0x91, 0x2B, 0x2B, -+ 0x7C, 0x49, 0x24, 0x2C, 0xEC, 0x15, 0x7B, 0xDB, 0xBD, 0x49, 0x35, 0x53, 0x73, 0x5C, 0xB1, 0xD9, 0xB4, 0x0A, 0xFC, 0x21, 0x4D, 0xA1, 0x53, 0x35, 0x9C, 0x9D, 0xF5, 0x76, 0x13, 0x59, 0x01, 0xC2, -+ 0xFD, 0xA5, 0x8C, 0x00, 0x95, 0xB6, 0xFC, 0xE3, 0xFD, 0x07, 0x31, 0xDF, 0x34, 0x86, 0x3A, 0xF2, 0x88, 0x2D, 0x53, 0x77, 0x3C, 0xE7, 0xC1, 0x82, 0x47, 0x37, 0x22, 0xAA, 0x79, 0xA6, 0xB3, 0x7D, -+ 0x3E, 0xDD, 0xDE, 0x38, 0xFA, 0x71, 0xDF, 0x8C, 0x0E, 0xDC, 0x08, 0x1E, 0xFE, 0xD8, 0xCE, 0x60, 0x6E, 0x48, 0x29, 0x91, 0x80, 0xEC, 0x6F, 0xE3, 0x5F, 0xAB, 0x64, 0x99, 0x10, 0xC4, 0x8A, 0x6A, -+ 0x29, 0xF9, 0xD0, 0xF8, 0x55, 0x57, 0xE1, 0x0B, 0xC5, 0xAE, 0x2E, 0xCF, 0x02, 0x8A, 0xE3, 0x99, 0xF5, 0x5C, 0xD7, 0x97, 0x60, 0x28, 0x93, 0x5C, 0xC0, 0x3C, 0x0C, 0xAF, 0xD5, 0x00, 0x3C, 0x9E, -+ 0xAE, 0xD2, 0x47, 0xFB, 0xE3, 0x0A, 0x28, 0x4C, 0xC4, 0x47, 0x0A, 0x55, 0x25, 0xA6, 0x49, 0x8E, 0x1D, 0xBB, 0xD3, 0x08, 0x5C, 0x3F, 0x9D, 0x77, 0xC6, 0x06, 0x4D, 0x01, 0x81, 0xBC, 0x5A, 0x82, -+ 0x95, 0x61, 0x56, 0x0A, 0xA9, 0xA4, 0xEA, 0x81, 0x73, 0xD7, 0x93, 0x7A, 0x94, 0x28, 0x10, 0x9C, 0xB3, 0xA6, 0x6B, 0x2B, 0x3D, 0xE1, 0x1F, 0x88, 0xF5, 0x5A, 0xB2, 0x1E, 0xB4, 0x9B, 0x77, 0xA3, -+ 0x97, 0x62, 0xCA, 0x92, 0x64, 0xE0, 0x15, 0x65, 0x66, 0x76, 0x5E, 0x2D, 0x36, 0x26, 0xB7, 0x2B, 0x80, 0xBD, 0x14, 0x11, 0xE4, 0xEC, 0x53, 0x55, 0x28, 0x28, 0xA2, 0x4B, 0xC8, 0xCD, 0xC4, 0x7F, -+ 0x46, 0x5F, 0xDD, 0xF4, 0x77, 0x2C, 0x7B, 0xC0, 0x20, 0x66, 0x85, 0x40, 0x11, 0x28, 0x7F, 0x73, 0x9A, 0xBA, 0x60, 0x47, 0x59, 0x67, 0x47, 0xF4, 0x23, 0x4A, 0xE2, 0x27, 0xDB, 0xFF, 0xAB, 0xF0, -+ 0xE1, 0x31, 0x53, 0xE2, 0xE0, 0x69, 0xF0, 0xB7, 0x90, 0x25, 0x1B, 0xE8, 0x77, 0xFE, 0x5A, 0x19, 0x8E, 0x80, 0x82, 0x58, 0x63, 0x9F, 0x5E, 0x79, 0xD3, 0xD5, 0xCD, 0x16, 0xF1, 0xA5, 0x73, 0x72, -+ 0x4D, 0xD6, 0xA9, 0xF6, 0x99, 0x0C, 0x45, 0x02, 0x33, 0x4D, 0xC6, 0x6F, 0x65, 0x49, 0x34, 0x90, 0x67, 0x3A, 0xB3, 0x0D, 0xCA, 0x7C, 0x03, 0x1F, 0x0C, 0x21, 0x2C, 0x0D, 0x8B, 0xC9, 0xD0, 0xC8, -+ 0x74, 0xB3, 0x19, 0xA9, 0x7A, 0xD1, 0xCE, 0x93, 0x95, 0xD3, 0xD1, 0x54, 0x20, 0x31, 0x56, 0xC5, 0x1C, 0xC3, 0xB9, 0xCB, 0x13, 0xD0, 0xBA, 0x1B, 0xDF, 0x61, 0x8B, 0xC8, 0xEE, 0xCA, 0x9D, 0xDD, -+ 0x94, 0x12, 0x05, 0x0C, 0xFA, 0x09, 0x23, 0x57, 0x27, 0xAA, 0x50, 0xD4, 0x6F, 0x79, 0xAD, 0x6F, 0x3C, 0x5A, 0x1B, 0xB6, 0xB2, 0x84, 0xC8, 0x31, 0x1D, 0xCF, 0x93, 0x75, 0x68, 0x59, 0x70, 0x4D, -+ 0xF8, 0xFC, 0x3B, 0xB8, 0xD2, 0xF5, 0xE0, 0x94, 0xE0, 0x45, 0x02, 0x35, 0x49, 0x42, 0xE9, 0xC8, 0x52, 0xB2, 0x08, 0xD4, 0x90, 0x18, 0x34, 0x33, 0x2E, 0xBC, 0x60, 0x32, 0x70, 0xCB, 0x57, 0xED, -+ 0x41, 0x8C, 0x34, 0xCE, 0x48, 0xAA, -+ }, -+ .msg_len = 33, -+ .msg = { 0xD8, 0x1C, 0x4D, 0x8D, 0x73, 0x4F, 0xCB, 0xFB, 0xEA, 0xDE, 0x3D, 0x3F, 0x8A, 0x03, 0x9F, 0xAA, 0x2A, 0x2C, 0x99, 0x57, 0xE8, 0x35, 0xAD, 0x55, 0xB2, 0x2E, 0x75, 0xBF, 0x57, 0xBB, 0x55, 0x6A, -+ 0xC8 }, -+ .sig_len = 4595, -+ .sig = { -+ 0xBB, 0xF8, 0x5F, 0xFD, 0x0E, 0x01, 0xC8, 0x0C, 0x8C, 0x1C, 0x19, 0x31, 0xCD, 0x64, 0x0B, 0xF2, 0x73, 0xD4, 0x96, 0x93, 0xC4, 0xC4, 0xBF, 0xF5, 0xDD, 0x20, 0xD9, 0x4C, 0xF3, 0x75, 0x7A, 0xBD, -+ 0x45, 0x47, 0x3B, 0x9D, 0x01, 0xB1, 0x87, 0x13, 0x05, 0xDA, 0x90, 0xED, 0xC6, 0x70, 0x7D, 0x54, 0x17, 0x12, 0x94, 0x67, 0xF6, 0x1F, 0x72, 0x39, 0x50, 0xC1, 0xAE, 0xDF, 0x70, 0x55, 0xEC, 0x1D, -+ 0x47, 0x77, 0xAD, 0x88, 0x08, 0xE8, 0xB3, 0x47, 0xD1, 0xD0, 0x92, 0x1E, 0xBA, 0xB8, 0x90, 0xCC, 0xA8, 0xE3, 0xA0, 0xDF, 0xD3, 0x00, 0x3D, 0xE9, 0xF9, 0xCB, 0x4A, 0x97, 0xD8, 0x84, 0xE1, 0xDD, -+ 0x04, 0x2C, 0x95, 0x8B, 0x81, 0x6F, 0x72, 0x37, 0x03, 0x2B, 0x20, 0xF8, 0x39, 0x9A, 0x51, 0x82, 0xF4, 0x65, 0x25, 0xEC, 0x35, 0x7D, 0x2F, 0x03, 0x43, 0x74, 0x03, 0xE0, 0xCB, 0x5D, 0xCA, 0x4A, -+ 0x13, 0xFD, 0x2F, 0x1B, 0x09, 0x20, 0x5B, 0x98, 0x90, 0xF0, 0x2E, 0xE5, 0xAF, 0x54, 0x29, 0x43, 0xE6, 0xF9, 0x37, 0x5E, 0xD0, 0x8A, 0x38, 0x53, 0x30, 0x42, 0xD6, 0xBB, 0xD5, 0x0F, 0x37, 0x25, -+ 0x1B, 0x15, 0x90, 0xF6, 0x3B, 0x4B, 0x58, 0xA7, 0xD1, 0xE1, 0xF3, 0x1C, 0xE6, 0x2E, 0x3D, 0x2A, 0xA9, 0x1E, 0x1C, 0x76, 0x7B, 0x9C, 0x3F, 0x5C, 0xB2, 0x68, 0x23, 0xF9, 0x7A, 0xD1, 0xD9, 0xFF, -+ 0xAB, 0x28, 0x75, 0xEB, 0x68, 0xFF, 0xA9, 0xB0, 0x99, 0x46, 0xEF, 0x1D, 0x70, 0x12, 0xC0, 0x29, 0x19, 0xEF, 0x13, 0xCB, 0x10, 0x0C, 0x2E, 0x2C, 0x79, 0x87, 0xA0, 0xA5, 0x78, 0x5B, 0x5F, 0x3F, -+ 0x3B, 0x94, 0x8B, 0x7F, 0xD6, 0x4B, 0x85, 0xB1, 0x65, 0xAE, 0x2F, 0xBF, 0x3C, 0x47, 0xE0, 0x39, 0xC3, 0x07, 0x3C, 0xA7, 0x8F, 0xC9, 0x00, 0xBB, 0xCD, 0xC0, 0x69, 0xFE, 0x90, 0x68, 0x85, 0xD5, -+ 0xB1, 0x37, 0x40, 0xA2, 0x23, 0xAF, 0x52, 0x54, 0xF9, 0x8C, 0x1D, 0x58, 0xE2, 0xFC, 0x92, 0xB0, 0x37, 0x3E, 0x2A, 0x93, 0x33, 0x53, 0xCC, 0x3E, 0xEC, 0xD3, 0x9F, 0x71, 0xD5, 0x9C, 0xFA, 0x09, -+ 0x29, 0x4E, 0x38, 0x26, 0x2A, 0x44, 0x89, 0x40, 0x0D, 0x22, 0x29, 0x82, 0xF9, 0xC7, 0x80, 0xCD, 0x07, 0x31, 0xD4, 0xEE, 0xD9, 0x16, 0xC5, 0xA3, 0x1A, 0xBC, 0xD0, 0x2A, 0x59, 0x0E, 0xD8, 0xC6, -+ 0xFF, 0xE1, 0x8B, 0x5F, 0xC7, 0xB6, 0x88, 0x8E, 0x74, 0x72, 0x69, 0x40, 0xD0, 0x2C, 0xCC, 0x62, 0xD7, 0x8B, 0xCA, 0xED, 0xDA, 0x2E, 0x02, 0x8E, 0x53, 0x5C, 0xDA, 0xFC, 0x0E, 0x09, 0x1B, 0xEF, -+ 0x50, 0xDE, 0x2D, 0xFD, 0x12, 0x4F, 0x1E, 0x85, 0x4F, 0x56, 0x85, 0x27, 0xAE, 0xF4, 0xDC, 0x84, 0x55, 0xFD, 0xA0, 0x1B, 0x6D, 0x0D, 0x43, 0x04, 0x8E, 0xD5, 0xAB, 0x42, 0xB1, 0xD4, 0x08, 0x13, -+ 0x99, 0x4B, 0x9F, 0x6A, 0xA0, 0xC0, 0x36, 0xC0, 0xDC, 0xF0, 0x8F, 0x46, 0xB0, 0x0F, 0xDA, 0x01, 0x44, 0x77, 0xCF, 0x87, 0x9B, 0x8F, 0xE5, 0xEA, 0xC4, 0x54, 0x1B, 0x82, 0xDA, 0x00, 0xB4, 0x34, -+ 0x60, 0x46, 0x86, 0x5B, 0x09, 0x2E, 0xD6, 0xAE, 0x01, 0x15, 0xFC, 0x83, 0x4B, 0x58, 0xF7, 0x5F, 0xF9, 0x28, 0xD7, 0xD9, 0x9A, 0xC8, 0x69, 0x1F, 0xF7, 0x00, 0x20, 0xAB, 0xA2, 0x54, 0x80, 0xAB, -+ 0xBC, 0xC7, 0x09, 0xE4, 0x6E, 0xC5, 0x10, 0xF4, 0xB8, 0xCA, 0xDD, 0x60, 0x04, 0x59, 0x54, 0xD3, 0xED, 0xDA, 0x7C, 0x23, 0xE0, 0x3D, 0x91, 0x69, 0x4D, 0x3C, 0x3E, 0xA2, 0x92, 0xC9, 0x25, 0x35, -+ 0xE6, 0xB5, 0xFE, 0x17, 0x1C, 0x56, 0x7D, 0xF3, 0x72, 0x94, 0x06, 0xCD, 0xBA, 0x2A, 0x5E, 0xFA, 0x59, 0xF1, 0x56, 0xE9, 0xCC, 0xD0, 0x30, 0x2F, 0xDC, 0x0F, 0x8B, 0xB7, 0x59, 0xB0, 0x5D, 0xFF, -+ 0x5D, 0xD8, 0x02, 0xCE, 0x4D, 0x55, 0x06, 0xA1, 0x9A, 0x69, 0xD7, 0x0B, 0x3A, 0xB4, 0x8A, 0xB1, 0x7A, 0x2F, 0xE5, 0x95, 0x89, 0xF7, 0x30, 0x83, 0xCC, 0xA5, 0x47, 0xFF, 0xB3, 0xF1, 0x46, 0x83, -+ 0xC9, 0x14, 0xBC, 0x13, 0x45, 0xE7, 0x38, 0x7E, 0x83, 0x1E, 0xE6, 0x03, 0x75, 0x01, 0x49, 0x5C, 0x92, 0xC3, 0x57, 0x70, 0x5A, 0x69, 0xF9, 0x52, 0xA2, 0xF7, 0xCD, 0x30, 0xE0, 0x33, 0x36, 0xAF, -+ 0xAA, 0xFC, 0x9C, 0x56, 0x60, 0x4C, 0xD5, 0x45, 0xE8, 0x2A, 0xA1, 0x2A, 0xF0, 0x58, 0xDA, 0xBA, 0x97, 0x43, 0x87, 0xFE, 0x8D, 0xCD, 0xEC, 0x69, 0x9A, 0x1E, 0x38, 0x53, 0xE2, 0x6D, 0x29, 0xE1, -+ 0x57, 0x81, 0x89, 0xAA, 0x8C, 0x2B, 0xBA, 0x15, 0x50, 0xDF, 0xBE, 0xDD, 0x1E, 0x4F, 0x22, 0x4E, 0xFC, 0xD6, 0x54, 0x91, 0xE5, 0x4E, 0x56, 0x12, 0x8A, 0xE7, 0xC2, 0xDC, 0x85, 0x66, 0x79, 0x7A, -+ 0xBF, 0x2D, 0x94, 0x55, 0x91, 0x52, 0x03, 0xA5, 0xC8, 0x9E, 0x55, 0xDD, 0x23, 0xDF, 0x82, 0x74, 0x36, 0xA8, 0xD6, 0xDC, 0xC5, 0xAC, 0xA8, 0x2F, 0x9B, 0x18, 0x36, 0x92, 0x15, 0x9E, 0xC0, 0x3F, -+ 0x2B, 0x79, 0x8E, 0x55, 0x7D, 0x14, 0x73, 0x46, 0xD8, 0x35, 0xA8, 0xD8, 0x1B, 0x2E, 0x3D, 0x40, 0x86, 0x39, 0x66, 0x86, 0x3A, 0x54, 0xD9, 0xC8, 0x7B, 0x5A, 0xAC, 0xE9, 0x63, 0xCD, 0x52, 0x9A, -+ 0xDB, 0xAE, 0x07, 0x07, 0x0C, 0xEA, 0x00, 0xB7, 0x80, 0xE1, 0x81, 0x31, 0xE6, 0x4F, 0x0A, 0xD7, 0x0E, 0x91, 0x58, 0xF5, 0x90, 0xD0, 0x0A, 0xD9, 0x17, 0x79, 0x08, 0xB9, 0x03, 0x45, 0xFD, 0x79, -+ 0xD0, 0x25, 0x57, 0x71, 0xC6, 0x08, 0xAF, 0x65, 0xEE, 0x5A, 0xC3, 0xC5, 0x01, 0x66, 0xBA, 0xD0, 0x57, 0x38, 0x02, 0x58, 0x68, 0x19, 0x41, 0x56, 0x0F, 0x11, 0x33, 0x40, 0x5F, 0xC2, 0xD7, 0x61, -+ 0x13, 0x14, 0xB4, 0x38, 0x1D, 0x54, 0x59, 0xDC, 0xDE, 0xDE, 0x4D, 0x39, 0xF3, 0x82, 0x3B, 0xC4, 0x42, 0x2B, 0xB1, 0xD7, 0x36, 0xE7, 0x47, 0x4A, 0x80, 0x89, 0xF0, 0xEC, 0xFA, 0x3C, 0x30, 0xAA, -+ 0xC1, 0x19, 0xFF, 0xA4, 0x2B, 0xF7, 0x43, 0xF4, 0x8E, 0x0F, 0xDD, 0x96, 0x02, 0x92, 0xD3, 0xE4, 0x9A, 0x14, 0xEB, 0x05, 0x90, 0xC8, 0xE0, 0x2E, 0x42, 0x1D, 0x54, 0xAE, 0x8A, 0x52, 0x19, 0x51, -+ 0x5E, 0x21, 0x89, 0x59, 0x89, 0xA0, 0xD7, 0x1D, 0x4F, 0x45, 0x16, 0x69, 0xCD, 0x65, 0x2D, 0xA3, 0x48, 0x9E, 0x5C, 0xDB, 0xC0, 0x87, 0x6B, 0xA0, 0xA0, 0x89, 0x9E, 0x7D, 0x87, 0x73, 0xB2, 0x4A, -+ 0xFC, 0x2C, 0xD6, 0xD3, 0x7C, 0xA3, 0x80, 0xA5, 0xD0, 0xDD, 0x43, 0x63, 0x04, 0xD6, 0xE1, 0xA4, 0xDC, 0xD6, 0x38, 0xE8, 0xB9, 0x5E, 0x6C, 0x95, 0x46, 0x5C, 0x66, 0x90, 0xD4, 0xEF, 0xE8, 0xF4, -+ 0x46, 0x91, 0xE4, 0x8D, 0xE2, 0x2C, 0xFC, 0x69, 0x1C, 0x75, 0x61, 0xAD, 0x8C, 0xC1, 0xA2, 0xC3, 0xCC, 0x9F, 0xB8, 0x6F, 0xF6, 0xF4, 0x70, 0x5A, 0x57, 0x3A, 0x72, 0x04, 0x71, 0xED, 0x33, 0xA0, -+ 0x0E, 0x8A, 0x60, 0x20, 0x38, 0x18, 0xA3, 0x96, 0x1E, 0x4D, 0x21, 0x3A, 0x78, 0xB8, 0x62, 0x63, 0x94, 0xF7, 0x5C, 0x28, 0x23, 0x15, 0x57, 0x4C, 0xCD, 0x72, 0x5A, 0x67, 0xE2, 0x0F, 0x0B, 0xF2, -+ 0x24, 0xBF, 0xFC, 0xAB, 0xD7, 0x02, 0xBF, 0xD4, 0xE1, 0xCC, 0x5F, 0x78, 0xBE, 0xC0, 0xE0, 0x42, 0xE1, 0x2E, 0xD4, 0xC9, 0x47, 0x4B, 0xDD, 0x5E, 0xED, 0x2A, 0xEB, 0x53, 0xF4, 0xA9, 0x58, 0xD7, -+ 0xF8, 0x4E, 0xFD, 0x56, 0xEC, 0x03, 0x0A, 0x94, 0xD2, 0x00, 0xA5, 0x39, 0xDE, 0x16, 0x4E, 0x53, 0xC8, 0x2A, 0xFE, 0x8C, 0x5F, 0x71, 0xBB, 0x99, 0xA0, 0x1F, 0x72, 0x30, 0xB7, 0xAE, 0xBC, 0x21, -+ 0x3E, 0xCD, 0xDB, 0xEF, 0x5B, 0x9E, 0x90, 0x64, 0x87, 0x43, 0x96, 0xF8, 0xA9, 0x1B, 0x05, 0x75, 0xF6, 0x8A, 0x45, 0x15, 0xDD, 0x15, 0x81, 0x78, 0xBF, 0x27, 0x7A, 0x90, 0xA3, 0xFE, 0xA2, 0x00, -+ 0x92, 0x00, 0xDA, 0x2E, 0xDA, 0x2C, 0x8B, 0x3A, 0x47, 0xC1, 0x04, 0xD3, 0x50, 0xDF, 0x68, 0xE9, 0x4C, 0x8A, 0x40, 0x23, 0xD3, 0xAE, 0xFB, 0xB7, 0x07, 0x18, 0xFA, 0x2E, 0x27, 0xE6, 0xA5, 0xC3, -+ 0xF9, 0x92, 0x7E, 0xC5, 0x96, 0xAB, 0x54, 0x0F, 0x46, 0x3A, 0xE0, 0x10, 0xEF, 0x71, 0xB8, 0x9B, 0x49, 0x49, 0x7F, 0x0C, 0xFD, 0x29, 0x39, 0xFF, 0xAB, 0x2A, 0x7D, 0xD1, 0x24, 0x7D, 0xC4, 0xA5, -+ 0x9D, 0x84, 0x11, 0xA8, 0x43, 0xBD, 0x84, 0xF1, 0xEA, 0x8D, 0xA3, 0x3C, 0x07, 0x01, 0xD7, 0x0A, 0xC2, 0x7C, 0x4B, 0xDB, 0xD0, 0xD9, 0xA0, 0xCA, 0xB8, 0x6B, 0x1F, 0xC5, 0xBE, 0x12, 0x45, 0x8A, -+ 0x25, 0x80, 0xA6, 0xCA, 0xB4, 0xB7, 0x65, 0xB8, 0x42, 0xC6, 0x7A, 0xD5, 0x4C, 0xA5, 0xD4, 0x0A, 0x24, 0xE2, 0xDD, 0xBC, 0xF0, 0x1E, 0x46, 0x6E, 0x08, 0xD9, 0xB3, 0x44, 0x9F, 0x13, 0xE8, 0x2E, -+ 0x16, 0xD6, 0x1C, 0x72, 0x3F, 0xB9, 0x46, 0x2E, 0x97, 0xB7, 0xAB, 0xC7, 0x0B, 0x22, 0x10, 0xEC, 0xA1, 0x6B, 0x16, 0x0D, 0x5B, 0x8F, 0x98, 0xA1, 0x79, 0x4D, 0xCA, 0x92, 0xCD, 0x4F, 0x02, 0x7F, -+ 0x3E, 0x41, 0x52, 0xEA, 0x87, 0x95, 0x07, 0xDD, 0xFE, 0x7F, 0x1F, 0x21, 0x51, 0x41, 0x53, 0xF0, 0x36, 0xAA, 0xBC, 0x33, 0xF1, 0x72, 0xC9, 0x5A, 0x9B, 0x77, 0x47, 0x22, 0x80, 0x0F, 0x2E, 0x08, -+ 0xCC, 0x44, 0xF9, 0x23, 0x54, 0x0D, 0x8A, 0xF6, 0x4B, 0x42, 0x99, 0x68, 0xB2, 0x80, 0x36, 0x4C, 0x1B, 0x7B, 0x4B, 0x3E, 0x9B, 0xEE, 0x40, 0xC5, 0x00, 0x02, 0x65, 0x7D, 0x99, 0x46, 0x31, 0xF3, -+ 0x3A, 0x8F, 0x8F, 0x13, 0x4A, 0x27, 0xEB, 0x69, 0xBA, 0x43, 0x95, 0x90, 0x8B, 0xA4, 0x06, 0x34, 0xB8, 0xF2, 0x70, 0x31, 0x49, 0x27, 0x5F, 0xFB, 0xBE, 0x8B, 0x48, 0x3E, 0xA1, 0xBB, 0xA9, 0x1C, -+ 0x28, 0x10, 0x51, 0x36, 0xD9, 0x7C, 0x47, 0x0E, 0xE8, 0x3C, 0xD2, 0x1C, 0xEB, 0x2B, 0x21, 0xAA, 0xED, 0x98, 0xDB, 0x8A, 0xB1, 0x65, 0xA7, 0xB4, 0xBE, 0x55, 0x9E, 0x7E, 0xAC, 0xA6, 0x84, 0x60, -+ 0x30, 0x15, 0xBC, 0x34, 0x9B, 0x0A, 0x51, 0x21, 0x4E, 0x4E, 0x8F, 0xBE, 0x1D, 0x2D, 0x88, 0x3F, 0x79, 0xFD, 0x3F, 0x1E, 0xDC, 0xDD, 0x3F, 0xA6, 0xD4, 0xB5, 0xBB, 0xD2, 0xA5, 0xB3, 0x00, 0x3A, -+ 0x80, 0xF1, 0xDA, 0xDE, 0x97, 0x5B, 0x50, 0x2C, 0x7F, 0x72, 0x03, 0x73, 0x16, 0xBC, 0x55, 0xC1, 0xE5, 0x7E, 0x50, 0x06, 0x27, 0xD6, 0x0E, 0x31, 0x08, 0x74, 0x31, 0xD2, 0xC9, 0xD0, 0x2C, 0xA9, -+ 0xF0, 0xEB, 0xCC, 0xD4, 0xBF, 0xE3, 0xC4, 0xBB, 0x53, 0x6D, 0x4C, 0xFE, 0xF7, 0x51, 0x07, 0x50, 0x45, 0x2D, 0x44, 0x4B, 0xE2, 0xC3, 0xD6, 0x4D, 0x84, 0xA8, 0x32, 0x96, 0x53, 0x05, 0x26, 0x4A, -+ 0xBB, 0x53, 0xE3, 0x61, 0x49, 0x40, 0xF9, 0xB2, 0xF1, 0xEA, 0x6F, 0x41, 0xCA, 0x8F, 0x69, 0xE7, 0x26, 0x69, 0x0B, 0xA6, 0x30, 0x63, 0x0F, 0x8A, 0x91, 0x6E, 0xE8, 0x56, 0x26, 0x82, 0x51, 0xB7, -+ 0x73, 0xDC, 0x2A, 0x5D, 0xB4, 0x5D, 0x22, 0xDF, 0xB2, 0x43, 0x9C, 0xA4, 0xB7, 0xAB, 0x70, 0x21, 0x5D, 0x23, 0xE1, 0xF2, 0xE2, 0x61, 0x73, 0x94, 0xFF, 0x78, 0x3B, 0x0B, 0xFF, 0x6D, 0xF0, 0x34, -+ 0x5C, 0xC9, 0x27, 0x05, 0x3D, 0x02, 0xC6, 0x5F, 0xE2, 0xA8, 0x6D, 0xEF, 0xBE, 0xBF, 0x52, 0x43, 0xA2, 0xEF, 0x6A, 0x63, 0x12, 0xBA, 0xED, 0xB6, 0xE6, 0x0D, 0xBB, 0x0C, 0x67, 0xCC, 0x9A, 0x65, -+ 0x55, 0x85, 0xCB, 0x45, 0x8D, 0x6A, 0x04, 0x18, 0x11, 0x94, 0x81, 0x5F, 0x03, 0xBE, 0x87, 0xF6, 0xE8, 0x00, 0x49, 0x2A, 0x24, 0xC5, 0xD5, 0x02, 0xD5, 0xEC, 0xD5, 0x3D, 0xD6, 0xDA, 0x36, 0x79, -+ 0x95, 0xD3, 0x2E, 0x8B, 0xBA, 0xA3, 0xEF, 0x62, 0x72, 0x7E, 0x8A, 0x61, 0x0E, 0x8D, 0x6B, 0x5C, 0x8F, 0xAB, 0xCB, 0xE8, 0x89, 0x3B, 0xDB, 0x5E, 0x03, 0x86, 0x27, 0xF7, 0x07, 0xE8, 0x46, 0x4C, -+ 0x55, 0xDC, 0xBB, 0x76, 0xF0, 0x83, 0x6A, 0xDD, 0x29, 0x8A, 0x96, 0x7C, 0x45, 0x95, 0x08, 0xBC, 0x4E, 0x88, 0xBA, 0x5C, 0xA3, 0x8F, 0x5A, 0x56, 0x1A, 0x6D, 0x2D, 0x6C, 0xB2, 0x17, 0x8D, 0x90, -+ 0xAC, 0x85, 0x0C, 0xA2, 0x73, 0x4B, 0x45, 0xC4, 0xA8, 0x9A, 0xA0, 0xF1, 0x52, 0xA3, 0xB5, 0x3B, 0xCF, 0x1E, 0x13, 0x53, 0x2B, 0x2B, 0x5B, 0x38, 0x78, 0xB2, 0x05, 0xBD, 0x2B, 0x32, 0x7D, 0xC4, -+ 0x9E, 0xB6, 0x66, 0x0B, 0x95, 0x11, 0xBF, 0xAE, 0x90, 0xC1, 0xDE, 0xA5, 0xBD, 0xEB, 0x6D, 0xC5, 0xDA, 0x06, 0x8B, 0xCB, 0xDC, 0x6C, 0x09, 0x3E, 0x57, 0x27, 0xE3, 0x87, 0x37, 0x4F, 0x45, 0x2F, -+ 0x96, 0x3C, 0x30, 0x7D, 0xEE, 0x86, 0x5D, 0x41, 0xAA, 0x12, 0x4C, 0xA8, 0x03, 0xC1, 0x2F, 0x9A, 0xE9, 0x29, 0x9C, 0x3C, 0xB1, 0x34, 0x5F, 0xCC, 0x56, 0x8C, 0x6E, 0x71, 0xBE, 0x33, 0x66, 0xBF, -+ 0x30, 0xEF, 0xEE, 0xEF, 0xC7, 0x69, 0x3C, 0x36, 0xAC, 0xE5, 0x76, 0xB0, 0xD1, 0x0F, 0x40, 0x2F, 0x38, 0x00, 0x09, 0xFD, 0x0E, 0xC0, 0x68, 0xCB, 0x2D, 0x45, 0x98, 0x48, 0x84, 0xED, 0xF1, 0x6B, -+ 0xC9, 0x0B, 0x0F, 0xF6, 0xDC, 0x96, 0x30, 0x9E, 0xA3, 0x77, 0xA3, 0xCE, 0xC0, 0x43, 0xCB, 0x76, 0xB6, 0xC8, 0x85, 0xBB, 0xB8, 0x48, 0xC4, 0x74, 0x5B, 0x71, 0xE1, 0x8C, 0x58, 0xE7, 0x80, 0x50, -+ 0xE1, 0x9B, 0xD7, 0xBE, 0x08, 0x31, 0xEF, 0xE9, 0x05, 0x2A, 0x6A, 0x7D, 0xF8, 0xD4, 0xE8, 0xB9, 0xFC, 0x3E, 0x08, 0x2A, 0x4D, 0x40, 0xAD, 0x73, 0xE4, 0xB3, 0x18, 0x5E, 0x2F, 0x6D, 0xED, 0xE7, -+ 0xEE, 0x51, 0xA4, 0x06, 0x8F, 0xF2, 0xDA, 0x57, 0x37, 0x3F, 0xD7, 0xE7, 0xBD, 0x46, 0xE0, 0x08, 0x0F, 0x4C, 0x2C, 0x1F, 0x41, 0xBC, 0x25, 0x0E, 0x6D, 0xA4, 0x5A, 0x34, 0x1F, 0x21, 0x47, 0x71, -+ 0xF5, 0x53, 0x1A, 0x67, 0xB0, 0xFD, 0x97, 0xB5, 0x3C, 0xD7, 0x2C, 0xFA, 0xC7, 0x21, 0x5B, 0xC4, 0x11, 0x1F, 0x09, 0x40, 0x30, 0xA9, 0x13, 0x83, 0xD2, 0x01, 0x82, 0x21, 0x0F, 0xCE, 0xCD, 0x75, -+ 0xE5, 0x9C, 0x4B, 0x0B, 0x33, 0xA3, 0xF9, 0x3D, 0x86, 0x5D, 0x84, 0x7E, 0xC2, 0x41, 0xE1, 0xB9, 0x84, 0x81, 0xC5, 0xD9, 0xD2, 0x7F, 0x0A, 0xE2, 0x62, 0xB3, 0x28, 0x65, 0x0C, 0xDC, 0x13, 0xCD, -+ 0x99, 0x86, 0x6B, 0xE9, 0xA5, 0xA0, 0x30, 0xE8, 0x3D, 0x84, 0xE3, 0x2B, 0xD2, 0x13, 0xC9, 0x4B, 0xD6, 0xAF, 0x95, 0x04, 0x33, 0xA4, 0xF0, 0x0C, 0x61, 0x49, 0x78, 0x3B, 0x00, 0x75, 0x0C, 0xDF, -+ 0xD4, 0xF4, 0x7A, 0xE7, 0x52, 0x17, 0xEE, 0xD1, 0xF6, 0x0C, 0x36, 0x6F, 0xA0, 0x2C, 0xDB, 0x20, 0x6F, 0xEB, 0x2A, 0x68, 0x5D, 0x6B, 0x7D, 0x6A, 0x4C, 0x13, 0x55, 0x3E, 0x2B, 0xE2, 0x77, 0x94, -+ 0xF5, 0x3B, 0x0E, 0xF5, 0x73, 0x15, 0x20, 0x32, 0x63, 0xEB, 0x02, 0x6E, 0xA5, 0xE6, 0x70, 0x67, 0xD2, 0x2F, 0x92, 0xE2, 0x6E, 0x98, 0xDF, 0x9A, 0xB3, 0x86, 0xC2, 0x70, 0x5B, 0x43, 0x16, 0xA6, -+ 0x98, 0x92, 0x68, 0x8E, 0x60, 0x1E, 0x74, 0x27, 0x59, 0x5A, 0xCE, 0xE6, 0xE4, 0x7F, 0x5E, 0xC5, 0x98, 0xCC, 0x48, 0xC2, 0xF2, 0xDA, 0x1C, 0x32, 0xE0, 0x62, 0xA3, 0x49, 0xD8, 0x9D, 0xCC, 0x8C, -+ 0x05, 0xC6, 0x2E, 0x7B, 0x0C, 0xED, 0x6F, 0x2E, 0x93, 0xA7, 0xBD, 0x48, 0xA8, 0x00, 0x4A, 0x8C, 0x5C, 0x60, 0x5D, 0xFF, 0xC8, 0x05, 0xDE, 0x07, 0x9E, 0xDE, 0xE7, 0xCE, 0xD9, 0x86, 0x39, 0xA9, -+ 0x2F, 0x6C, 0xBA, 0x92, 0xF2, 0x08, 0x9B, 0x14, 0x5D, 0x2D, 0x61, 0xD9, 0x63, 0x8C, 0x07, 0x34, 0x7A, 0x2E, 0xF6, 0xB3, 0x0F, 0xD9, 0x0E, 0x11, 0x1A, 0x7F, 0x59, 0x13, 0xF6, 0xE1, 0x87, 0x95, -+ 0xC1, 0x9E, 0x0B, 0x9F, 0x60, 0xF8, 0x5B, 0xD8, 0xF5, 0xC9, 0xA9, 0x63, 0x33, 0x94, 0x41, 0xE4, 0xA5, 0xB7, 0x9E, 0xB2, 0xE8, 0x67, 0x96, 0x1B, 0x18, 0xA1, 0x88, 0x4A, 0x01, 0xA7, 0x44, 0x83, -+ 0xD8, 0x0B, 0x40, 0x3E, 0xFB, 0xDB, 0xD4, 0xED, 0xDD, 0xC1, 0x92, 0x2D, 0xA3, 0xFB, 0xB3, 0x7B, 0xEA, 0x97, 0xE0, 0xA5, 0xB6, 0x34, 0x3E, 0x43, 0x67, 0x60, 0x1B, 0xD2, 0x1D, 0xB6, 0x69, 0x41, -+ 0xC2, 0x69, 0x8B, 0xF5, 0x06, 0xB0, 0x48, 0x61, 0xB5, 0xF3, 0xD3, 0xD8, 0x0A, 0xC6, 0xDC, 0xB6, 0x84, 0xD9, 0xC4, 0x36, 0x9A, 0xBD, 0x04, 0xBC, 0x4B, 0xDB, 0xEF, 0x49, 0xC6, 0x6E, 0x38, 0x44, -+ 0x51, 0x3A, 0x3F, 0x3B, 0xDD, 0x40, 0x0C, 0x08, 0x0A, 0xC6, 0xEA, 0xD8, 0x1E, 0x8B, 0xB0, 0xE7, 0xCB, 0x36, 0xDB, 0x7B, 0x7E, 0xAB, 0x47, 0x28, 0x39, 0x18, 0x57, 0xF5, 0x97, 0xA3, 0x46, 0x48, -+ 0x63, 0xC3, 0x12, 0x64, 0x5B, 0x20, 0xAF, 0x02, 0xF7, 0xD0, 0xBD, 0x9A, 0x74, 0xDE, 0x23, 0x61, 0xA0, 0xD2, 0xD9, 0x8A, 0x69, 0x89, 0x75, 0xB3, 0x0F, 0x10, 0x10, 0xD9, 0x0A, 0x12, 0x60, 0x78, -+ 0x58, 0x4A, 0x45, 0xFF, 0xBC, 0xC6, 0x5B, 0x47, 0x97, 0x6A, 0xF6, 0x57, 0xEA, 0x84, 0xE9, 0x73, 0x0D, 0x9E, 0x36, 0x37, 0x33, 0x73, 0x6A, 0xC8, 0x01, 0x03, 0xDC, 0x1C, 0x75, 0x73, 0xC4, 0xDE, -+ 0xE2, 0x8A, 0x7B, 0xAC, 0x9E, 0xF7, 0x2C, 0xB8, 0x29, 0x45, 0x0B, 0x53, 0xEA, 0xF9, 0x84, 0xCD, 0x01, 0xAA, 0x31, 0x41, 0x6C, 0xE8, 0x91, 0x4B, 0x7D, 0x7E, 0xF8, 0x49, 0xEB, 0x9C, 0xC1, 0x72, -+ 0xD7, 0x09, 0x6D, 0xEF, 0xDA, 0xCF, 0x59, 0x6B, 0x9B, 0x21, 0xA5, 0x73, 0xE3, 0x46, 0xA4, 0x7A, 0x5A, 0x46, 0x9E, 0x1D, 0x79, 0x39, 0xBE, 0x19, 0x82, 0xCB, 0x39, 0x54, 0xC2, 0x14, 0xED, 0x3A, -+ 0x37, 0x07, 0xD7, 0x40, 0xC0, 0x33, 0xE3, 0xEF, 0x78, 0x0F, 0x4C, 0x48, 0xBA, 0xDD, 0x86, 0x38, 0x48, 0xBB, 0xFC, 0x9D, 0xAA, 0x8E, 0x38, 0x06, 0xA8, 0x4B, 0x2C, 0xAC, 0x0C, 0xA2, 0x32, 0x00, -+ 0x0C, 0xAF, 0x02, 0x03, 0xE9, 0x08, 0xFC, 0xE1, 0x8B, 0x5D, 0x62, 0x77, 0x72, 0x25, 0xD2, 0xD7, 0xD5, 0x84, 0xF2, 0xED, 0x71, 0x88, 0x5D, 0xFA, 0xF5, 0xA4, 0xDB, 0xEE, 0x02, 0xF2, 0x85, 0xBC, -+ 0x34, 0x55, 0x9B, 0x88, 0xEA, 0x9C, 0xE1, 0x5B, 0x47, 0xA3, 0xB9, 0x2A, 0x8D, 0x6F, 0x91, 0x59, 0x1C, 0x32, 0x9A, 0x5A, 0xA2, 0x1A, 0x1B, 0xC4, 0x24, 0xBA, 0x2B, 0xDB, 0xD1, 0x64, 0xCE, 0x1A, -+ 0x8B, 0x78, 0xB3, 0x8B, 0xEF, 0x2B, 0x47, 0xF2, 0x1F, 0x7F, 0xB7, 0xA3, 0xC5, 0x4E, 0x3E, 0xA4, 0x53, 0x6E, 0x81, 0x6E, 0x01, 0x65, 0x6C, 0x8E, 0x26, 0xAD, 0x42, 0xF3, 0xCB, 0x90, 0x61, 0x69, -+ 0x67, 0xC0, 0xDD, 0x07, 0x9F, 0x95, 0x6C, 0x9F, 0x3C, 0x84, 0x4D, 0x5F, 0x33, 0x9C, 0x62, 0xEE, 0x8A, 0x35, 0x8C, 0x4B, 0xEC, 0x2D, 0x27, 0x8A, 0xF7, 0x18, 0xAD, 0x50, 0x9C, 0x6B, 0x66, 0x61, -+ 0x3B, 0x58, 0x04, 0x43, 0xFA, 0x6F, 0x11, 0xCD, 0x8D, 0x10, 0x76, 0x93, 0xB5, 0xD7, 0xB7, 0x38, 0xAA, 0x7E, 0x2F, 0xE6, 0x62, 0x50, 0x2D, 0x75, 0x04, 0xA9, 0xF5, 0x96, 0x19, 0x41, 0x80, 0xF8, -+ 0x70, 0x0D, 0xC4, 0xE6, 0xF7, 0xE8, 0xE7, 0xD2, 0x30, 0x72, 0x34, 0x49, 0x4B, 0x8D, 0xF1, 0xD5, 0x7E, 0xE1, 0x4D, 0x6C, 0x97, 0x92, 0x6E, 0xB1, 0xD8, 0x90, 0x4D, 0x80, 0x89, 0xBE, 0x7D, 0x13, -+ 0x5B, 0x13, 0xD6, 0xDE, 0x30, 0xAA, 0x87, 0x20, 0xD6, 0x71, 0x59, 0xBB, 0x50, 0xA8, 0x34, 0xDE, 0x90, 0x79, 0x92, 0x2B, 0x88, 0x93, 0x1D, 0x45, 0x85, 0x00, 0x62, 0x68, 0x34, 0xDA, 0x04, 0x0D, -+ 0xB7, 0x68, 0xDD, 0xDB, 0xE6, 0x7A, 0x75, 0x8A, 0x02, 0xB4, 0x48, 0xE3, 0x6B, 0xA4, 0x55, 0x03, 0x4A, 0xDE, 0x36, 0x80, 0x2A, 0xA4, 0x2A, 0x7F, 0x2F, 0x23, 0x4A, 0x5E, 0x1C, 0xC2, 0x41, 0xE5, -+ 0x66, 0x1C, 0x63, 0xAF, 0xCE, 0x59, 0xDF, 0xDC, 0xC0, 0x89, 0x83, 0x47, 0xD2, 0x83, 0x4D, 0x72, 0x64, 0xF5, 0xB2, 0x1A, 0x47, 0xC5, 0x21, 0x4A, 0xDC, 0x57, 0xAF, 0x76, 0xCE, 0x9E, 0xBD, 0xB6, -+ 0x8C, 0x71, 0x02, 0x9B, 0xCF, 0x0C, 0x4C, 0x74, 0x5A, 0x33, 0x45, 0x4A, 0xCF, 0x0C, 0xF6, 0xD5, 0xC6, 0x8D, 0xEA, 0x06, 0xC4, 0x5E, 0x7D, 0x4D, 0x17, 0x55, 0xC5, 0xAC, 0xDC, 0x37, 0xFC, 0x24, -+ 0x34, 0x14, 0x0E, 0xF7, 0x07, 0xFD, 0x55, 0xFA, 0xF0, 0x6C, 0xBB, 0x17, 0x07, 0xC2, 0x7C, 0xE9, 0xD9, 0x05, 0x90, 0x5E, 0x37, 0xE2, 0xF1, 0x47, 0xC9, 0xCB, 0x88, 0x08, 0xEC, 0xD0, 0x5D, 0xF7, -+ 0x1F, 0xC5, 0xF1, 0xDA, 0xF9, 0x10, 0xD7, 0xBD, 0x68, 0xB6, 0x91, 0x49, 0x38, 0xBF, 0x0C, 0xAB, 0xCF, 0x66, 0xC9, 0x05, 0xC4, 0x95, 0x63, 0xD7, 0xD7, 0x0F, 0x2C, 0x3D, 0x3A, 0x4A, 0x4F, 0x62, -+ 0x9E, 0x3A, 0xFD, 0xE5, 0x3B, 0xD1, 0x4C, 0xD6, 0xE5, 0x27, 0xE4, 0xF0, 0x38, 0xD6, 0xA3, 0x31, 0xD0, 0x14, 0x68, 0xE2, 0x2D, 0xFE, 0x93, 0xA3, 0x79, 0xB3, 0xEC, 0x6D, 0xA6, 0xD1, 0xC2, 0xF6, -+ 0xD5, 0xEA, 0xB1, 0x41, 0xE5, 0x75, 0xF9, 0x3C, 0x8C, 0xC5, 0x58, 0x0D, 0xF4, 0xA3, 0xDB, 0x5C, 0x4C, 0x87, 0xD8, 0x54, 0x8E, 0x9A, 0x85, 0x19, 0x46, 0xD1, 0xB9, 0x0D, 0x75, 0x27, 0x40, 0x7F, -+ 0x1B, 0xA1, 0x12, 0x1E, 0xAC, 0x54, 0xA1, 0x1E, 0x6E, 0xDA, 0x45, 0xAB, 0xB0, 0x8A, 0x7A, 0x78, 0xAB, 0x36, 0xA7, 0x6E, 0xAD, 0x7F, 0xAC, 0x46, 0x78, 0xE5, 0x24, 0x64, 0xEF, 0xF3, 0x98, 0xE9, -+ 0x02, 0x15, 0xAC, 0x31, 0x6D, 0xE5, 0xA6, 0xEF, 0xE5, 0xA7, 0xB4, 0xA9, 0x5D, 0xF9, 0x2E, 0x41, 0x29, 0xF3, 0xF9, 0x1B, 0x31, 0x6F, 0x75, 0x67, 0x08, 0xBD, 0xF3, 0x7C, 0x01, 0xC1, 0x2B, 0xBA, -+ 0xA0, 0x91, 0xF9, 0x48, 0x84, 0xE3, 0x8A, 0xFF, 0x3C, 0x7B, 0x81, 0x40, 0x88, 0x8C, 0xAB, 0x4F, 0x7F, 0x86, 0x7E, 0xAD, 0xB0, 0x41, 0x85, 0x84, 0xB6, 0xF7, 0x70, 0x74, 0x02, 0x50, 0x93, 0x6A, -+ 0x13, 0x8A, 0xFF, 0x52, 0x88, 0x88, 0x40, 0x67, 0x7D, 0x81, 0x21, 0xC5, 0x83, 0x80, 0x6F, 0xE2, 0x71, 0x04, 0xDE, 0x52, 0x88, 0x13, 0xE5, 0x62, 0x26, 0xB6, 0x52, 0xC5, 0x86, 0x9B, 0xB5, 0x00, -+ 0x30, 0x38, 0x34, 0xD9, 0xC9, 0xD1, 0x97, 0xDB, 0xA1, 0xDD, 0x5C, 0x47, 0x34, 0x30, 0x7A, 0xB8, 0xBD, 0x00, 0x6B, 0x66, 0xEF, 0x45, 0xAB, 0xED, 0x2E, 0x31, 0x37, 0x7B, 0xEA, 0xA1, 0x9D, 0xAE, -+ 0x6E, 0xC8, 0x2A, 0xD7, 0x7C, 0x4C, 0x07, 0x74, 0x4F, 0x9B, 0x93, 0xA8, 0xDD, 0x4C, 0xEE, 0x1A, 0x62, 0xA5, 0x52, 0xED, 0xF4, 0xE2, 0x77, 0xCA, 0xCF, 0xF1, 0xF9, 0x64, 0xDA, 0x7A, 0xF8, 0xFA, -+ 0xFF, 0x6B, 0x56, 0xE3, 0xEB, 0xC0, 0x68, 0x50, 0xA9, 0xF7, 0x6E, 0xCF, 0xB2, 0xC2, 0xBA, 0xA6, 0x60, 0x95, 0x8C, 0x6D, 0x1B, 0xA9, 0x6B, 0xA8, 0x57, 0x8D, 0x06, 0x6D, 0x6A, 0xFE, 0x6E, 0x8F, -+ 0xB2, 0x05, 0x2B, 0x74, 0x21, 0xD5, 0x7D, 0xE5, 0xAB, 0x4C, 0x1F, 0xD5, 0x51, 0x70, 0xE9, 0xEE, 0x33, 0xEB, 0x32, 0xFB, 0x3D, 0x2C, 0x88, 0x61, 0x42, 0x05, 0x5E, 0xE8, 0x42, 0x8B, 0xD7, 0x45, -+ 0xAA, 0xBE, 0x1D, 0x15, 0x19, 0x1F, 0xFC, 0x93, 0xA3, 0xFA, 0x7A, 0x86, 0xB4, 0x27, 0xEB, 0x23, 0x70, 0xB7, 0x8A, 0x67, 0xA4, 0x85, 0xAF, 0x96, 0x3B, 0xBE, 0x1F, 0x22, 0x46, 0x11, 0x9F, 0xB4, -+ 0x69, 0xA0, 0x02, 0xD7, 0x02, 0x9F, 0xC4, 0xF5, 0xF7, 0xE0, 0x12, 0x5F, 0xDA, 0x73, 0x05, 0xAC, 0xF6, 0xC8, 0x0C, 0x7B, 0xD3, 0xF6, 0x68, 0x89, 0x7B, 0xA8, 0x14, 0x35, 0xF4, 0x26, 0xB8, 0x42, -+ 0x5C, 0x98, 0x55, 0xCD, 0x46, 0xC3, 0x44, 0x8B, 0xBA, 0xD0, 0x73, 0x9B, 0xA8, 0x8A, 0xBC, 0x27, 0x3B, 0xCD, 0x0F, 0xA1, 0xFD, 0xA7, 0xF4, 0xF8, 0x18, 0x3B, 0x5D, 0x73, 0xD1, 0x6C, 0x40, 0x7C, -+ 0x45, 0x2A, 0xEF, 0xA2, 0xE3, 0xCA, 0x9F, 0x2D, 0x9D, 0x63, 0x8D, 0x96, 0x6A, 0x58, 0x78, 0x8B, 0x48, 0xBF, 0xC5, 0x7D, 0x3F, 0xC2, 0x08, 0x5F, 0xE8, 0x5A, 0x7F, 0x7A, 0xDD, 0xD9, 0x1E, 0xFD, -+ 0x1B, 0xA0, 0x22, 0x60, 0x46, 0xB1, 0x27, 0xA9, 0x7B, 0xC4, 0x80, 0x47, 0x9B, 0x92, 0x88, 0x1A, 0x58, 0xA0, 0xBC, 0x04, 0xD8, 0xDD, 0x9E, 0x68, 0xB6, 0xD2, 0xBC, 0x50, 0x34, 0xCF, 0x23, 0x43, -+ 0x0D, 0x1F, 0xE5, 0x49, 0x91, 0xA6, 0x90, 0x8B, 0x01, 0x9E, 0xE0, 0x18, 0xC8, 0x43, 0xB9, 0xFA, 0x53, 0xEC, 0x7E, 0xE5, 0xF1, 0x14, 0xAB, 0xE2, 0xB7, 0x50, 0xD4, 0xE1, 0xE7, 0x2E, 0xAF, 0xB4, -+ 0xFB, 0xB3, 0x3A, 0x1E, 0x2C, 0x4D, 0x62, 0x72, 0xCE, 0xE2, 0x7B, 0xBB, 0x13, 0xB5, 0xD2, 0x3E, 0x24, 0xF6, 0x12, 0x9C, 0xF5, 0x82, 0x5F, 0x34, 0xAF, 0xC0, 0x56, 0xF9, 0x5F, 0x53, 0xA0, 0x9F, -+ 0x6F, 0xCA, 0x94, 0x35, 0xCD, 0x5F, 0xB6, 0xC0, 0x5F, 0x88, 0xB4, 0xDC, 0xE8, 0x6C, 0xEA, 0xBD, 0x7E, 0x0C, 0x78, 0x53, 0x61, 0xD2, 0x53, 0xBB, 0x9C, 0xDB, 0x3A, 0x0C, 0x6B, 0xC8, 0x51, 0x83, -+ 0x01, 0xFF, 0x44, 0xF9, 0xE8, 0x7F, 0x7A, 0x97, 0xEC, 0x9F, 0x02, 0xFA, 0xB5, 0x13, 0x4F, 0x3B, 0xBF, 0xA1, 0xCB, 0xE4, 0x4F, 0xA8, 0x3F, 0x1C, 0x54, 0x3E, 0xD9, 0xB8, 0x70, 0x65, 0x75, 0x43, -+ 0x5A, 0xC6, 0xA1, 0x5F, 0x7B, 0x0D, 0xEB, 0xA9, 0xD4, 0x5A, 0xF5, 0x54, 0xBB, 0x0C, 0xCB, 0xCA, 0x12, 0xA6, 0xC1, 0x6E, 0x5E, 0xE6, 0xFA, 0xD6, 0x37, 0x21, 0xE4, 0xC3, 0xCC, 0x8D, 0x9E, 0xA6, -+ 0x8C, 0x61, 0x49, 0x99, 0x30, 0x80, 0x95, 0x24, 0x07, 0xAF, 0xA2, 0x03, 0xF5, 0x04, 0xA8, 0x87, 0xB3, 0xBF, 0x84, 0xD2, 0xBB, 0x6E, 0x45, 0xE7, 0xCC, 0x53, 0x26, 0x53, 0x3D, 0x63, 0x96, 0x3F, -+ 0xFB, 0x72, 0xA9, 0x27, 0x2C, 0x8F, 0xF6, 0x37, 0xBE, 0x6E, 0x24, 0x73, 0xE9, 0xFC, 0xAB, 0x6B, 0x5E, 0x5E, 0x7C, 0xF3, 0xED, 0xBD, 0xDA, 0xEF, 0x51, 0xC9, 0x8D, 0x53, 0x17, 0x0F, 0x9B, 0x64, -+ 0xBC, 0xA5, 0xD4, 0x9F, 0x76, 0xAF, 0x17, 0x6D, 0x01, 0xA6, 0xF2, 0xEC, 0xB3, 0x39, 0x15, 0x1F, 0x49, 0xE4, 0x9A, 0x8F, 0x6E, 0x28, 0x6C, 0x6D, 0x41, 0x22, 0xD6, 0x50, 0xD5, 0x01, 0x59, 0x10, -+ 0xFF, 0x7F, 0x28, 0x02, 0x46, 0x93, 0x89, 0x5C, 0x58, 0x03, 0xDD, 0xFF, 0xCB, 0x1E, 0xDC, 0x46, 0x79, 0xC8, 0xF5, 0x35, 0xAC, 0x15, 0x97, 0xD9, 0xB2, 0x8A, 0xC4, 0x6E, 0x62, 0x88, 0x81, 0x01, -+ 0x29, 0xC1, 0x79, 0x55, 0x6A, 0xF7, 0x88, 0x2D, 0xEE, 0x17, 0xD5, 0x8A, 0x97, 0xF4, 0x34, 0xDF, 0x83, 0x64, 0x6B, 0x33, 0xCF, 0xBA, 0xB9, 0x0A, 0x62, 0x50, 0x85, 0x1C, 0xF5, 0x3D, 0x4B, 0xDB, -+ 0x45, 0x26, 0x33, 0x7D, 0xCC, 0xB9, 0xD9, 0x8A, 0x92, 0x16, 0x76, 0xB5, 0x13, 0x65, 0xDD, 0x08, 0xA5, 0x30, 0x4D, 0x2A, 0x93, 0x53, 0x4C, 0x52, 0x42, 0x7E, 0x9A, 0xE5, 0xC1, 0x44, 0x05, 0x92, -+ 0xC5, 0x53, 0x6E, 0x17, 0x1C, 0xF4, 0xFD, 0x1F, 0x43, 0x57, 0x8F, 0xEA, 0xFB, 0x32, 0xFF, 0x01, 0xD4, 0xFE, 0xD6, 0x35, 0xD7, 0x52, 0x56, 0x8F, 0x90, 0xEC, 0xFB, 0xB1, 0x64, 0xA5, 0xB1, 0x76, -+ 0x3F, 0x70, 0xC7, 0x2F, 0xD5, 0xBC, 0xDF, 0x61, 0xD0, 0x1F, 0xF3, 0x23, 0x66, 0x39, 0xC9, 0x1C, 0x06, 0x3C, 0x0B, 0x7A, 0x56, 0xAD, 0x03, 0xF4, 0x02, 0x0E, 0x80, 0xBD, 0x9A, 0x5E, 0x2F, 0x16, -+ 0x1E, 0x05, 0x78, 0x46, 0x9B, 0x99, 0x50, 0x26, 0x6B, 0xA9, 0x6B, 0xBB, 0x73, 0xC0, 0x8E, 0x7F, 0xAE, 0x85, 0x6E, 0x17, 0x03, 0xCF, 0x3C, 0xBD, 0x21, 0x41, 0x80, 0x89, 0x14, 0x8F, 0x7A, 0x9F, -+ 0x40, 0xD4, 0xD9, 0x11, 0x51, 0xDB, 0xC4, 0xBA, 0xE8, 0x54, 0x23, 0x59, 0xE8, 0x82, 0xA1, 0x9A, 0x99, 0x49, 0xCE, 0xD5, 0xB7, 0x5F, 0xF7, 0xB1, 0x92, 0xDC, 0x27, 0x9B, 0x3E, 0xD1, 0x00, 0x76, -+ 0x05, 0x3F, 0x58, 0xDE, 0x43, 0x5F, 0xC5, 0x87, 0x56, 0x54, 0xE9, 0x86, 0x33, 0xA3, 0x97, 0x14, 0x11, 0x42, 0x22, 0x9D, 0x8C, 0xD6, 0x13, 0xC6, 0x63, 0x44, 0x32, 0x6D, 0x83, 0x99, 0x2B, 0x3C, -+ 0x08, 0xF1, 0x7B, 0xE0, 0xEC, 0x28, 0xFB, 0xDB, 0xAB, 0xA1, 0x2C, 0xB0, 0x00, 0xB2, 0xA2, 0xB0, 0x4E, 0x24, 0xD0, 0xC4, 0x1B, 0xD6, 0xB5, 0x80, 0xE9, 0x99, 0xB2, 0x57, 0xC0, 0x07, 0x96, 0x5C, -+ 0x44, 0x75, 0xA9, 0xD5, 0x31, 0x4C, 0xD6, 0xC1, 0xFB, 0x9F, 0xED, 0xD5, 0x16, 0xE6, 0xB3, 0xC0, 0xDD, 0xD4, 0x04, 0xD6, 0x8D, 0x78, 0xFD, 0x4D, 0xE4, 0x09, 0x31, 0xB1, 0xB8, 0x72, 0xD4, 0xD0, -+ 0x1A, 0x2D, 0x46, 0xC9, 0xB2, 0x93, 0x90, 0x0D, 0x34, 0xEC, 0x91, 0xD3, 0xB6, 0x93, 0xF4, 0xE7, 0x2C, 0x22, 0x8E, 0xD0, 0x29, 0x4F, 0x6D, 0xC9, 0xB7, 0x17, 0x26, 0x0E, 0xBE, 0x75, 0xA4, 0x71, -+ 0xEA, 0x4D, 0x78, 0x00, 0xA3, 0xE7, 0xB7, 0xB4, 0x76, 0xD6, 0x4D, 0xEA, 0x6F, 0x4D, 0xA7, 0x26, 0xB3, 0x76, 0xF0, 0x78, 0x00, 0xDB, 0x5F, 0x83, 0xC0, 0xA3, 0xDC, 0xC2, 0xC7, 0x02, 0x6A, 0x4C, -+ 0x37, 0x8E, 0x88, 0x09, 0x94, 0x88, 0x5D, 0x6F, 0x7A, 0x88, 0x19, 0xD9, 0x1A, 0x2D, 0x50, 0xD1, 0x6D, 0x22, 0xBE, 0x59, 0x2B, 0xED, 0x38, 0x33, 0x04, 0x10, 0xE1, 0x4C, 0xDD, 0xD4, 0xCE, 0x0C, -+ 0x48, 0xD6, 0x2B, 0x77, 0x97, 0xDE, 0x44, 0xC0, 0x7F, 0x26, 0xA7, 0x9E, 0xF3, 0xA5, 0x83, 0x0F, 0x32, 0x1A, 0x35, 0xAC, 0x50, 0x7E, 0x94, 0x3C, 0x6D, 0xE6, 0x3F, 0xE1, 0x36, 0x82, 0x32, 0x25, -+ 0xD6, 0xFC, 0x73, 0xD8, 0x6D, 0x4C, 0x84, 0x39, 0x90, 0x13, 0xE0, 0x64, 0xE6, 0x68, 0x34, 0x92, 0x90, 0x7C, 0x7B, 0x78, 0xAE, 0xF2, 0xAA, 0xB1, 0x80, 0xDC, 0x33, 0xE5, 0xE6, 0xBD, 0xBD, 0x6D, -+ 0x49, 0x0E, 0x3A, 0xA8, 0xBE, 0x8E, 0x82, 0xFA, 0x6C, 0xB1, 0x3B, 0xEA, 0x36, 0x0C, 0x51, 0x0F, 0x9B, 0x4B, 0x5B, 0xA6, 0x64, 0x04, 0x27, 0xAD, 0xDD, 0xF3, 0xD6, 0x6D, 0xED, 0x41, 0xD1, 0xE2, -+ 0xA0, 0x61, 0x31, 0xE9, 0x50, 0x13, 0x68, 0x42, 0x73, 0x2C, 0x27, 0x34, 0x98, 0xD6, 0xA4, 0x7C, 0xED, 0x4E, 0xD1, 0x89, 0xB6, 0xE7, 0x39, 0x36, 0x1F, 0x68, 0xCC, 0xA0, 0xA9, 0x9D, 0x56, 0x02, -+ 0xB9, 0x76, 0x55, 0xAB, 0x26, 0x82, 0xE8, 0x37, 0xDB, 0xD6, 0x88, 0xC1, 0x73, 0xDD, 0x49, 0x50, 0xDD, 0x4C, 0xD4, 0xD3, 0xA3, 0x38, 0xF3, 0xFC, 0xFF, 0x8C, 0x71, 0x16, 0xEB, 0xC6, 0x30, 0xD0, -+ 0x5A, 0xFA, 0xB8, 0xDF, 0x7C, 0x75, 0x60, 0xF4, 0xDE, 0x9A, 0xD9, 0x22, 0x16, 0x26, 0x8E, 0xE1, 0x43, 0xA7, 0x22, 0xC0, 0x34, 0x97, 0xCE, 0x17, 0xEF, 0xE9, 0x8F, 0x67, 0x58, 0x0F, 0x0D, 0xDE, -+ 0xF5, 0x7F, 0x15, 0x25, 0x5E, 0x68, 0x85, 0x6D, 0x39, 0xA4, 0xEB, 0x33, 0x8A, 0x65, 0x33, 0x46, 0xFE, 0xDE, 0x46, 0x66, 0x3A, 0x62, 0x30, 0x7F, 0x65, 0x90, 0xE2, 0xEE, 0x7A, 0xB9, 0x28, 0xAC, -+ 0x5E, 0x8F, 0xA1, 0x63, 0xAA, 0x74, 0xE4, 0x02, 0x55, 0xD8, 0xD2, 0x41, 0x66, 0x8A, 0x1C, 0x71, 0x7E, 0x3F, 0x28, 0x99, 0x43, 0x50, 0xF4, 0x99, 0x08, 0xA3, 0x2E, 0x6F, 0xEC, 0x62, 0x06, 0xBD, -+ 0xF7, 0x93, 0x6D, 0xD2, 0xCF, 0x6A, 0x87, 0xB9, 0x99, 0x40, 0x45, 0x55, 0x2A, 0xCC, 0xE6, 0xEA, 0xF1, 0x29, 0x4E, 0x73, 0x27, 0xA1, 0x3E, 0x6E, 0xAC, 0x16, 0x22, 0x1A, 0x67, 0x6F, 0x60, 0x5D, -+ 0x6D, 0xA6, 0x36, 0x5D, 0x0D, 0xB0, 0x11, 0x35, 0x40, 0x50, 0x13, 0xF8, 0x74, 0x48, 0x1A, 0x68, 0x33, 0x04, 0x55, 0x28, 0x1A, 0x41, 0xE8, 0x3D, 0xF7, 0x6D, 0x20, 0xD1, 0xDF, 0x75, 0xDF, 0xEC, -+ 0xA0, 0x91, 0x7F, 0x3E, 0x94, 0xBE, 0xD2, 0x2D, 0x1E, 0xCE, 0xD8, 0xA9, 0xFC, 0x7B, 0x2A, 0x2E, 0x4A, 0x5B, 0x74, 0xD0, 0xB0, 0xC9, 0x28, 0x2B, 0xD6, 0x12, 0xA4, 0x86, 0x48, 0x99, 0x3F, 0x9F, -+ 0x01, 0x2B, 0xD7, 0x0A, 0x0E, 0x43, 0xDC, 0x3D, 0x1C, 0x0A, 0x16, 0x71, 0x1E, 0xBF, 0x6E, 0xA4, 0x79, 0xDB, 0x94, 0x1F, 0x68, 0xA6, 0x70, 0x1B, 0x57, 0xF7, 0xB8, 0x37, 0xB3, 0x0C, 0x0A, 0x6D, -+ 0x77, 0x11, 0x23, 0xD6, 0xFC, 0x70, 0xBD, 0xBE, 0x24, 0x44, 0x0C, 0xE4, 0xE2, 0x54, 0xA0, 0x70, 0x53, 0x4F, 0x1C, 0x18, 0x13, 0xC5, 0x16, 0x79, 0x12, 0x60, 0xA7, 0x36, 0x89, 0xDF, 0xE1, 0xBE, -+ 0xAD, 0x6E, 0xBF, 0x6A, 0xFF, 0x7E, 0xE4, 0x8D, 0xE1, 0xD5, 0x9C, 0x62, 0x22, 0x8B, 0x38, 0x3E, 0x0A, 0xCA, 0x06, 0x90, 0xF8, 0x05, 0xFE, 0xFD, 0xC5, 0x4F, 0xC4, 0xF9, 0x74, 0xBF, 0xAC, 0xCD, -+ 0xFE, 0x33, 0x21, 0x6C, 0xD2, 0xBC, 0x06, 0xBA, 0x7C, 0x2F, 0x55, 0xD7, 0xA0, 0x70, 0x8C, 0x48, 0x01, 0x4F, 0xF0, 0xC5, 0x35, 0xCD, 0x83, 0xD5, 0x47, 0x08, 0xFD, 0x70, 0x3E, 0x8E, 0xF5, 0x10, -+ 0xFA, 0x60, 0x72, 0xE2, 0x5F, 0xDA, 0xEB, 0x95, 0x33, 0xD4, 0x80, 0x60, 0x53, 0x07, 0x6C, 0xB8, 0xE4, 0xFE, 0x69, 0x46, 0xFD, 0x1A, 0x67, 0x0D, 0x1B, 0xDA, 0x92, 0x31, 0x1D, 0x5E, 0xD5, 0xFA, -+ 0x24, 0x5F, 0xA7, 0x4A, 0x6F, 0x04, 0xAE, 0x66, 0xE3, 0xC9, 0xE0, 0xA7, 0x18, 0x2C, 0xFD, 0xB2, 0x10, 0xE5, 0xA2, 0xF2, 0x8C, 0x95, 0x43, 0x99, 0x64, 0x74, 0x2A, 0x98, 0x7A, 0x16, 0x29, 0x85, -+ 0xDB, 0x91, 0xDF, 0x91, 0xD9, 0x52, 0x9D, 0x8B, 0x85, 0x0B, 0x86, 0x28, 0xA9, 0xC5, 0xC8, 0x45, 0x5B, 0xDB, 0x41, 0x7C, 0x92, 0x72, 0x24, 0xA9, 0xA8, 0xFF, 0xCD, 0xFE, 0x00, 0xC2, 0x28, 0xFA, -+ 0x28, 0x4C, 0x50, 0x52, 0x57, 0x70, 0x98, 0x15, 0x1E, 0x33, 0x78, 0x7F, 0x82, 0x87, 0xCB, 0x0D, 0x24, 0x31, 0x32, 0x45, 0x55, 0x84, 0x8A, 0x8D, 0x9C, 0xDF, 0xE3, 0xE4, 0xF0, 0xF1, 0x42, 0x61, -+ 0xD0, 0xFB, 0xFC, 0x02, 0x3C, 0x59, 0x6C, 0x74, 0x9E, 0xAE, 0xFB, 0x0A, 0x17, 0x84, 0xC8, 0xCF, 0xE5, 0xE7, 0x44, 0x8A, 0x98, 0x9F, 0xD8, 0xD9, 0x43, 0x66, 0xB4, 0xC7, 0xD6, 0xFF, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0F, 0x1E, 0x23, 0x2B, 0x32, 0x38, 0x3E, -+ }, -+ }, -+ { -+ .name = "Dilithium Round 3, Level 5 (8-7) KAT 0", -+ .version = 0, -+ .keyform = CK_IBM_DILITHIUM_KEYFORM_ROUND3_87, -+ .rho_len = 32, -+ .rho = { -+ 0x1C, 0x0E, 0xE1, 0x11, 0x1B, 0x08, 0x00, 0x3F, 0x28, 0xE6, 0x5E, 0x8B, 0x3B, 0xDE, 0xB0, 0x37, 0xCF, 0x8F, 0x22, 0x1D, 0xFC, 0xDA, 0xF5, 0x95, 0x0E, 0xDB, 0x38, 0xD5, 0x06, 0xD8, 0x5B, 0xEF, -+ }, -+ .seed_len = 32, -+ .seed = { -+ 0x39, 0x4D, 0x16, 0x95, 0x05, 0x9D, 0xFF, 0x40, 0xAE, 0x25, 0x6C, 0x5D, 0x5E, 0xDA, 0xBF, 0xB6, 0x9F, 0x5F, 0x40, 0xF3, 0x7A, 0x58, 0x8F, 0x50, 0x53, 0x2C, 0xA4, 0x08, 0xA8, 0x16, 0x8A, 0xB1, -+ }, -+ .tr_len = 32, -+ .tr = { -+ 0x85, 0xF6, 0x84, 0xAE, 0xB4, 0x01, 0xB9, 0xAA, 0xAF, 0x81, 0x2A, 0x00, 0xE1, 0x24, 0xFF, 0x56, 0xFE, 0xE5, 0x1B, 0xA7, 0xC1, 0x12, 0x82, 0x61, 0x7F, 0x05, 0x72, 0xCC, 0x79, 0x1D, 0xC8, 0x1C, -+ }, -+ .s1_len = 672, -+ .s1 = { -+ 0xC0, 0xA6, 0x71, 0x1A, 0x96, 0x6C, 0x11, 0x31, 0x2A, 0xD9, 0xA8, 0x21, 0xD8, 0x08, 0x65, 0x42, 0xA6, 0x00, 0xA4, 0xB4, 0x2C, 0x19, 0x40, 0x72, 0x02, 0x42, 0x62, 0x81, 0x06, 0x21, 0x0A, 0x43, -+ 0x85, 0x23, 0x31, 0x70, 0x93, 0x08, 0x10, 0x8B, 0x18, 0x8C, 0x02, 0x24, 0x92, 0xC1, 0xB2, 0x84, 0x12, 0xC4, 0x21, 0x8B, 0x04, 0x21, 0x81, 0xC8, 0x61, 0x02, 0x48, 0x05, 0x9C, 0x92, 0x01, 0xC0, -+ 0x34, 0x88, 0x19, 0x32, 0x6C, 0x58, 0x20, 0x46, 0x89, 0x18, 0x68, 0xA2, 0xC2, 0x8D, 0x82, 0x34, 0x6A, 0x1C, 0x09, 0x42, 0x00, 0xA2, 0x8C, 0xE3, 0xA6, 0x49, 0x1C, 0x11, 0x2C, 0xC2, 0x48, 0x12, -+ 0xE0, 0x90, 0x21, 0x91, 0x98, 0x50, 0x62, 0xC0, 0x84, 0x62, 0x24, 0x51, 0xCA, 0x06, 0x2C, 0x64, 0x24, 0x0E, 0x1B, 0xB3, 0x31, 0x24, 0x96, 0x85, 0x4B, 0x46, 0x06, 0xDB, 0x26, 0x68, 0xC3, 0x82, -+ 0x68, 0x44, 0x10, 0x46, 0xC9, 0xB6, 0x21, 0x14, 0x04, 0x81, 0x14, 0x45, 0x50, 0x24, 0x42, 0x08, 0x44, 0x22, 0x71, 0x0B, 0x92, 0x45, 0x9A, 0xA0, 0x81, 0x1A, 0x91, 0x70, 0x9C, 0x24, 0x10, 0x03, -+ 0x95, 0x70, 0x04, 0xC5, 0x04, 0xC8, 0x26, 0x92, 0xD2, 0x92, 0x00, 0xC0, 0xB2, 0x60, 0xC0, 0xA2, 0x68, 0x09, 0x19, 0x0A, 0xA2, 0x30, 0x0E, 0x18, 0x89, 0x69, 0xE0, 0x00, 0x8D, 0xD8, 0x48, 0x62, -+ 0xDA, 0x14, 0x71, 0x20, 0x18, 0x05, 0x19, 0x07, 0x44, 0x04, 0x12, 0x40, 0x9B, 0x12, 0x40, 0x11, 0x80, 0x10, 0xD1, 0x42, 0x81, 0x99, 0x28, 0x50, 0x8B, 0x10, 0x91, 0x02, 0x24, 0x64, 0xA0, 0x20, -+ 0x6D, 0x12, 0x46, 0x21, 0x1C, 0x83, 0x8C, 0x1B, 0x47, 0x69, 0x01, 0x06, 0x90, 0xCC, 0x06, 0x24, 0x81, 0x84, 0x69, 0x20, 0x98, 0x2C, 0x24, 0x12, 0x05, 0x21, 0xB1, 0x50, 0x41, 0x36, 0x02, 0x98, -+ 0x44, 0x6E, 0xD1, 0xA6, 0x31, 0x11, 0x05, 0x6A, 0xD3, 0xA8, 0x40, 0xCA, 0xA8, 0x4C, 0x62, 0xB0, 0x00, 0x03, 0x13, 0x4A, 0x53, 0x34, 0x46, 0x14, 0x19, 0x40, 0x04, 0xC5, 0x4C, 0xE3, 0x06, 0x69, -+ 0x5A, 0xB0, 0x89, 0x61, 0x16, 0x8E, 0xCB, 0x10, 0x80, 0x8B, 0x16, 0x8E, 0xD9, 0x90, 0x64, 0x0B, 0x94, 0x60, 0x24, 0x83, 0x85, 0x1A, 0xB3, 0x04, 0x54, 0x26, 0x22, 0x51, 0xB8, 0x25, 0x1C, 0x42, -+ 0x4A, 0x0B, 0x81, 0x48, 0x42, 0xC4, 0x44, 0x5A, 0x10, 0x20, 0x23, 0x80, 0x84, 0x09, 0xB7, 0x25, 0x4C, 0xC6, 0x48, 0x14, 0x85, 0x4D, 0x19, 0x38, 0x0E, 0x60, 0x16, 0x51, 0xD8, 0x32, 0x6A, 0x0A, -+ 0x91, 0x89, 0x08, 0xC1, 0x70, 0xE0, 0x96, 0x4D, 0x18, 0x46, 0x8C, 0x01, 0x32, 0x8D, 0x91, 0xC4, 0x05, 0x4A, 0x00, 0x61, 0x23, 0x08, 0x68, 0xA2, 0x10, 0x42, 0x10, 0xA8, 0x61, 0x13, 0x06, 0x21, -+ 0x8A, 0x24, 0x8E, 0x62, 0x06, 0x89, 0xC9, 0xB2, 0x45, 0x08, 0x27, 0x84, 0x51, 0x20, 0x0D, 0x98, 0x04, 0x66, 0xDC, 0x42, 0x05, 0x44, 0x24, 0x85, 0x24, 0x26, 0x28, 0x22, 0x21, 0x61, 0x20, 0x16, -+ 0x09, 0x0B, 0xA6, 0x2C, 0x0A, 0x11, 0x44, 0xE0, 0x92, 0x81, 0x58, 0x48, 0x0D, 0x42, 0x22, 0x10, 0xA0, 0x06, 0x09, 0x8B, 0x24, 0x6E, 0x81, 0x28, 0x8C, 0xC0, 0x24, 0x80, 0x90, 0x30, 0x8D, 0x84, -+ 0x36, 0x40, 0x4C, 0xA6, 0x84, 0x50, 0x04, 0x24, 0x94, 0xB6, 0x8D, 0xA2, 0x92, 0x6D, 0x18, 0xB3, 0x44, 0xA0, 0x00, 0x85, 0xE3, 0xB8, 0x05, 0x14, 0x05, 0x04, 0xA4, 0xC2, 0x90, 0x84, 0x22, 0x81, -+ 0xC3, 0x26, 0x2D, 0x0B, 0x20, 0x66, 0xCC, 0x90, 0x31, 0x98, 0x38, 0x28, 0x10, 0x16, 0x6C, 0xC1, 0x34, 0x45, 0xC0, 0x10, 0x22, 0x24, 0xC6, 0x88, 0x03, 0x46, 0x32, 0xD8, 0x40, 0x90, 0x1C, 0x20, -+ 0x68, 0x04, 0x15, 0x28, 0x9A, 0x18, 0x81, 0x44, 0x98, 0x8D, 0x9C, 0x20, 0x6E, 0x9C, 0x30, 0x2C, 0xC1, 0xB8, 0x20, 0x61, 0x42, 0x21, 0x08, 0x03, 0x10, 0xA0, 0xC2, 0x8C, 0x58, 0x12, 0x85, 0x53, -+ 0x20, 0x4C, 0x03, 0x30, 0x81, 0x4C, 0xA4, 0x8D, 0x44, 0xC0, 0x8D, 0x51, 0x40, 0x4C, 0x1C, 0xA7, 0x2C, 0x44, 0x08, 0x65, 0xA0, 0x38, 0x40, 0xDA, 0x20, 0x80, 0x81, 0x06, 0x85, 0x8C, 0x26, 0x0D, -+ 0xE2, 0xA8, 0x8C, 0x9C, 0x44, 0x11, 0x59, 0x42, 0x28, 0xC4, 0x26, 0x04, 0x44, 0x14, 0x26, 0xA1, 0x42, 0x64, 0x08, 0xC0, 0x85, 0x11, 0x01, 0x86, 0x9B, 0x48, 0x31, 0x99, 0xB2, 0x0C, 0x80, 0x46, -+ 0x44, 0x59, 0xA8, 0x8C, 0x00, 0x42, 0x08, 0x98, 0x82, 0x90, 0x0A, 0xB5, 0x45, 0x62, 0x24, 0x48, 0x12, 0x96, 0x05, 0x44, 0x12, 0x46, 0x00, 0xC8, 0x88, 0x13, 0xA0, 0x61, 0xE1, 0x28, 0x4D, 0x0A, -+ 0xB9, 0x91, 0x4B, 0x96, 0x20, 0x99, 0xB8, 0x44, 0x00, 0x31, 0x4E, 0x98, 0x12, 0x85, 0x00, 0xB6, 0x01, 0x83, 0xA0, 0x0D, 0x14, 0x15, 0x0E, 0x18, 0x81, 0x10, 0x19, 0x01, 0x22, 0x4A, 0x06, 0x68, -+ }, -+ .s2_len = 768, -+ .s2 = { -+ 0x1A, 0x49, 0x8D, 0xE1, 0xA2, 0x84, 0x11, 0xC6, 0x31, 0x21, 0x26, 0x25, 0x91, 0xA0, 0x6D, 0x03, 0x05, 0x24, 0xA1, 0xB6, 0x08, 0x94, 0x44, 0x72, 0x43, 0x34, 0x12, 0x5B, 0xB4, 0x20, 0x41, 0xB6, -+ 0x50, 0xD0, 0x88, 0x8D, 0x0B, 0x07, 0x4D, 0x1C, 0x94, 0x64, 0x4C, 0x20, 0x8E, 0x8B, 0x88, 0x08, 0xE0, 0x30, 0x09, 0x44, 0x20, 0x05, 0x49, 0x86, 0x4D, 0x03, 0x13, 0x4E, 0x19, 0xC9, 0x84, 0x09, -+ 0x37, 0x61, 0x1A, 0x43, 0x68, 0x4A, 0x80, 0x90, 0x02, 0x04, 0x31, 0x1C, 0x17, 0x42, 0x18, 0x40, 0x80, 0xC8, 0x30, 0x8E, 0xE1, 0xA2, 0x41, 0xC3, 0x34, 0x04, 0xA3, 0x28, 0x22, 0x51, 0x24, 0x71, -+ 0x82, 0x84, 0x01, 0x1B, 0xC0, 0x64, 0x23, 0x47, 0x72, 0x82, 0x14, 0x66, 0x5B, 0x38, 0x68, 0xE1, 0xC6, 0x29, 0x9B, 0x90, 0x40, 0x60, 0x38, 0x86, 0x83, 0xA0, 0x40, 0x84, 0x20, 0x04, 0x4C, 0x94, -+ 0x01, 0x10, 0x25, 0x8D, 0x82, 0x02, 0x4D, 0x9A, 0xB2, 0x69, 0x20, 0x15, 0x10, 0x60, 0x46, 0x2D, 0xC2, 0x14, 0x2E, 0x0C, 0xA8, 0x2C, 0x54, 0x16, 0x22, 0x03, 0x46, 0x89, 0x92, 0x06, 0x60, 0x08, -+ 0x07, 0x82, 0x0B, 0x47, 0x44, 0x48, 0x98, 0x09, 0x09, 0x43, 0x0E, 0xE4, 0x32, 0x0A, 0x1A, 0xC0, 0x65, 0xC0, 0xA4, 0x21, 0x44, 0xB2, 0x91, 0x58, 0xC6, 0x04, 0x11, 0x45, 0x20, 0xC4, 0xA4, 0x21, -+ 0x02, 0xA0, 0x70, 0x21, 0x22, 0x26, 0x23, 0xB2, 0x68, 0x4B, 0x08, 0x40, 0x01, 0x03, 0x91, 0x8B, 0x34, 0x81, 0x1A, 0x04, 0x04, 0x0C, 0xB0, 0x05, 0xC2, 0x92, 0x69, 0x90, 0x14, 0x68, 0x04, 0x46, -+ 0x49, 0x14, 0x83, 0x49, 0xA2, 0x34, 0x89, 0x19, 0xC7, 0x28, 0x94, 0x44, 0x71, 0x00, 0xC9, 0x49, 0x58, 0x38, 0x72, 0x02, 0x02, 0x90, 0x42, 0xC6, 0x4C, 0x0C, 0x17, 0x32, 0x48, 0xC6, 0x8C, 0x59, -+ 0x28, 0x31, 0x09, 0xB7, 0x28, 0xCB, 0x48, 0x0E, 0x9A, 0x22, 0x85, 0x1C, 0xB9, 0x11, 0xE3, 0xC6, 0x30, 0xC3, 0x48, 0x28, 0xCC, 0xB8, 0x28, 0x03, 0xC8, 0x08, 0xA4, 0xB6, 0x04, 0xD0, 0x18, 0x8C, -+ 0x60, 0x18, 0x72, 0xD0, 0x20, 0x92, 0x82, 0x02, 0x2E, 0x59, 0x18, 0x89, 0x08, 0x19, 0x32, 0xC9, 0x06, 0x52, 0x60, 0x90, 0x8C, 0x09, 0x80, 0x29, 0xA4, 0xB4, 0x8C, 0x8C, 0x34, 0x82, 0x08, 0x42, -+ 0x10, 0x02, 0x00, 0x08, 0x13, 0x01, 0x50, 0x83, 0xB6, 0x08, 0x41, 0x94, 0x4D, 0x1B, 0x49, 0x6C, 0x19, 0x39, 0x11, 0xCB, 0x32, 0x41, 0x02, 0xC0, 0x65, 0x48, 0x88, 0x91, 0x9B, 0x98, 0x61, 0x08, -+ 0xB5, 0x04, 0x49, 0xB4, 0x45, 0xD3, 0x30, 0x01, 0x98, 0x04, 0x6D, 0x53, 0x00, 0x89, 0x42, 0x32, 0x60, 0x8C, 0xB0, 0x90, 0x64, 0x88, 0x68, 0xD4, 0x32, 0x45, 0x48, 0x14, 0x71, 0x14, 0x98, 0x05, -+ 0x81, 0x00, 0x22, 0xDB, 0x44, 0x69, 0xD9, 0x24, 0x89, 0x11, 0x41, 0x12, 0x09, 0x19, 0x50, 0x92, 0xA0, 0x84, 0xC0, 0x34, 0x22, 0x4A, 0x24, 0x10, 0xDA, 0xC8, 0x09, 0xD2, 0xA8, 0x0D, 0x22, 0x85, -+ 0x21, 0x8B, 0xC8, 0x90, 0xC1, 0x00, 0x66, 0x5C, 0xC0, 0x25, 0x99, 0xA4, 0x61, 0x1A, 0xA4, 0x11, 0x0A, 0x24, 0x28, 0x5B, 0xC4, 0x48, 0x13, 0x14, 0x89, 0x63, 0x92, 0x61, 0x20, 0x30, 0x0C, 0x40, -+ 0x02, 0x25, 0x21, 0x88, 0x28, 0x24, 0x01, 0x8C, 0x10, 0x81, 0x6D, 0x4C, 0x42, 0x49, 0x01, 0x22, 0x2D, 0xC1, 0x96, 0x0C, 0x08, 0x48, 0x90, 0x01, 0xC1, 0x30, 0x23, 0xC1, 0x89, 0xA1, 0xC4, 0x64, -+ 0x12, 0x97, 0x09, 0xCC, 0x90, 0x91, 0x60, 0x20, 0x66, 0x1B, 0x96, 0x48, 0x82, 0xA8, 0x71, 0x91, 0xC0, 0x65, 0xDB, 0xC2, 0x01, 0x84, 0x36, 0x0A, 0x09, 0x24, 0x29, 0x52, 0x10, 0x4E, 0xDB, 0x24, -+ 0x0A, 0x61, 0x02, 0x10, 0x20, 0x38, 0x25, 0x98, 0x34, 0x60, 0x82, 0x24, 0x30, 0xC4, 0x12, 0x49, 0xC0, 0xA2, 0x05, 0x0C, 0x08, 0x85, 0x93, 0x28, 0x09, 0x63, 0xB2, 0x05, 0x23, 0x96, 0x20, 0x42, -+ 0x12, 0x0D, 0xD1, 0xC0, 0x10, 0x08, 0xC5, 0x40, 0xC1, 0x82, 0x65, 0x1B, 0x15, 0x92, 0xA4, 0x14, 0x51, 0x84, 0x04, 0x26, 0x53, 0x42, 0x52, 0x24, 0x23, 0x6D, 0x9C, 0x28, 0x4E, 0x50, 0x14, 0x05, -+ 0x8C, 0x20, 0x80, 0x24, 0x26, 0x65, 0x61, 0x44, 0x4C, 0x02, 0x11, 0x20, 0xC8, 0xC0, 0x4C, 0x18, 0xA0, 0x0D, 0x00, 0x38, 0x70, 0x99, 0x16, 0x12, 0xA1, 0x16, 0x40, 0xC4, 0x18, 0x45, 0x09, 0x93, -+ 0x88, 0x4C, 0x82, 0x21, 0xCB, 0xB2, 0x81, 0x21, 0x26, 0x61, 0xD1, 0xA8, 0x24, 0x41, 0x30, 0x84, 0x08, 0x80, 0x71, 0x00, 0xC6, 0x20, 0x52, 0x42, 0x92, 0x89, 0x24, 0x12, 0xA4, 0x26, 0x89, 0xE3, -+ 0xB0, 0x88, 0x21, 0x98, 0x8C, 0x11, 0x96, 0x2C, 0xE1, 0x96, 0x20, 0x51, 0xC2, 0x81, 0x20, 0x91, 0x80, 0x94, 0x16, 0x6E, 0x14, 0x94, 0x60, 0x20, 0xC9, 0x45, 0x9B, 0x22, 0x45, 0xA2, 0x38, 0x20, -+ 0xC0, 0x36, 0x08, 0x60, 0x90, 0x8D, 0x41, 0x06, 0x02, 0x5B, 0x06, 0x6E, 0xE1, 0x40, 0x0A, 0x89, 0x34, 0x6C, 0x1A, 0xB2, 0x69, 0xA4, 0x16, 0x10, 0x03, 0x33, 0x0E, 0x1A, 0x42, 0x28, 0x03, 0x19, -+ 0x6E, 0x11, 0x44, 0x84, 0x0B, 0x24, 0x4A, 0x1C, 0x16, 0x6A, 0x19, 0x98, 0x40, 0x03, 0xA2, 0x85, 0x41, 0xC0, 0x8C, 0xD2, 0x22, 0x61, 0x0C, 0x82, 0x10, 0x5A, 0xB0, 0x0D, 0x21, 0x14, 0x72, 0x5A, -+ 0x82, 0x80, 0x02, 0x86, 0x10, 0x0C, 0x27, 0x26, 0x5C, 0x48, 0x6E, 0xC9, 0x40, 0x6C, 0x1B, 0x49, 0x04, 0xE4, 0xB8, 0x49, 0xDB, 0x32, 0x8A, 0x9C, 0x24, 0x2C, 0x40, 0x38, 0x80, 0x22, 0xA9, 0x45, -+ }, -+ .t0_len = 3328, -+ .t0 = { -+ 0x12, 0x29, 0xA4, 0xE6, 0x5E, 0xD3, 0x1C, 0x79, 0x3E, 0xCB, 0x5B, 0x89, 0xC5, 0x5D, 0xC3, 0x33, 0xA2, 0x77, 0xBF, 0x5C, 0x41, 0x28, 0xA2, 0x14, 0x01, 0xAF, 0xA8, 0xD4, 0x28, 0xC8, 0x21, 0xE9, -+ 0x7A, 0xEA, 0x05, 0xB3, 0xAD, 0x29, 0x23, 0xBD, 0x97, 0x10, 0x87, 0x1C, 0xE8, 0xB3, 0xB1, 0x1A, 0x71, 0x1C, 0x9A, 0xAC, 0xBA, 0x10, 0x8C, 0xAF, 0x43, 0xA1, 0x72, 0xD6, 0x59, 0x94, 0x01, 0xDB, -+ 0x89, 0x68, 0x1D, 0x0B, 0x87, 0x4E, 0xC3, 0x57, 0xA5, 0x29, 0x5C, 0x0A, 0x08, 0xD5, 0x89, 0xC4, 0x53, 0x9F, 0x9C, 0x59, 0xF3, 0x3F, 0x06, 0x44, 0x64, 0x41, 0x20, 0x49, 0x84, 0xE1, 0xF9, 0x87, -+ 0x3C, 0x1F, 0x97, 0x75, 0xB9, 0x7E, 0xD4, 0x00, 0xC9, 0x98, 0xB0, 0x51, 0x62, 0xB6, 0x18, 0x98, 0x61, 0xF2, 0x8D, 0xAE, 0x36, 0xC2, 0x13, 0x37, 0x65, 0x71, 0x11, 0x76, 0xCA, 0xAF, 0x5A, 0x1D, -+ 0xCB, 0x2A, 0x0E, 0x22, 0x3A, 0x5F, 0x07, 0x9B, 0x07, 0x41, 0xA5, 0xE6, 0xD5, 0x10, 0xE5, 0x87, 0x32, 0xDC, 0x03, 0x59, 0xD7, 0x9A, 0x77, 0x41, 0xA3, 0x79, 0x1C, 0xA6, 0x50, 0x4F, 0x07, 0xCA, -+ 0x8A, 0x2C, 0x03, 0x12, 0x71, 0x18, 0x45, 0x20, 0xEB, 0x76, 0xA0, 0x0B, 0x9B, 0x46, 0x26, 0xDB, 0x37, 0x34, 0x1C, 0x71, 0x80, 0x65, 0xED, 0x95, 0xFE, 0x4C, 0xB0, 0x54, 0xBF, 0xE7, 0x1E, 0x80, -+ 0x26, 0x0D, 0x21, 0x90, 0x7B, 0x9B, 0xFA, 0xEC, 0x86, 0xAC, 0x83, 0xA4, 0x85, 0x63, 0xC0, 0xB9, 0xB2, 0xEF, 0x4B, 0x9B, 0x4E, 0xCB, 0xCB, 0x2F, 0x12, 0x91, 0x98, 0x4E, 0x89, 0xE8, 0x4C, 0x55, -+ 0x69, 0x06, 0x47, 0xE2, 0x65, 0x47, 0xD7, 0x3E, 0x4C, 0xB7, 0xF0, 0xE0, 0x6E, 0xFF, 0xC3, 0xC4, 0x79, 0xE2, 0x56, 0x8E, 0x74, 0x64, 0xEA, 0xBF, 0x1D, 0x1C, 0x4E, 0xFE, 0x21, 0x11, 0x12, 0xE6, -+ 0x2B, 0xEA, 0x8B, 0x85, 0x5F, 0x50, 0xD7, 0x16, 0x51, 0x32, 0x9C, 0x00, 0xEF, 0x61, 0x9F, 0x53, 0x7E, 0x45, 0x4B, 0x09, 0x5A, 0x9D, 0xF6, 0xA8, 0x59, 0x0E, 0x5B, 0xBA, 0xA1, 0x5C, 0x9E, 0x64, -+ 0xE7, 0x01, 0xE3, 0x74, 0x69, 0x74, 0x94, 0x62, 0xA2, 0x11, 0x95, 0x41, 0xE7, 0x55, 0x49, 0xD0, 0x56, 0xA2, 0x5B, 0xBC, 0xEE, 0x11, 0xCD, 0x9F, 0xC6, 0x72, 0x42, 0x2A, 0xD2, 0xAE, 0x97, 0x91, -+ 0x3D, 0x30, 0xBE, 0x3C, 0xD8, 0x5F, 0x58, 0xCF, 0xA9, 0x04, 0xF4, 0x43, 0xAC, 0x3A, 0x8D, 0xFD, 0xBC, 0x2C, 0xC9, 0xC8, 0xC3, 0x9B, 0x24, 0x4E, 0xE7, 0xE0, 0xD9, 0x5B, 0xEC, 0x69, 0x27, 0xA2, -+ 0xB0, 0xB9, 0x4E, 0x97, 0x3F, 0x98, 0x12, 0x24, 0x46, 0x43, 0x14, 0x6E, 0x19, 0x01, 0x3B, 0x7F, 0xE1, 0x71, 0x14, 0xA0, 0xF3, 0x9F, 0x92, 0x28, 0x6B, 0xE0, 0xF0, 0xEE, 0x39, 0x6F, 0xB7, 0x4C, -+ 0x76, 0xC9, 0x10, 0x04, 0xB8, 0x27, 0xD2, 0x18, 0x95, 0x1C, 0x77, 0xBD, 0xB8, 0x15, 0x90, 0xAE, 0xDF, 0xEA, 0x9E, 0x62, 0xBE, 0x0F, 0x22, 0xAF, 0xF5, 0x5E, 0x36, 0xAB, 0x57, 0x2D, 0xF1, 0x3A, -+ 0xB9, 0xF5, 0xEA, 0xFC, 0xBC, 0x34, 0xDF, 0x26, 0x6F, 0xE1, 0x60, 0xC6, 0xB6, 0x35, 0xB0, 0xC3, 0xB6, 0x3C, 0x89, 0x29, 0x20, 0x18, 0x5F, 0x11, 0x2B, 0x96, 0x99, 0x8B, 0x5B, 0x5B, 0xB9, 0x73, -+ 0xB3, 0x90, 0x08, 0xB2, 0xF0, 0x43, 0x40, 0x35, 0xD4, 0x3B, 0xD2, 0xE4, 0x9F, 0x2C, 0x17, 0x45, 0x20, 0xD3, 0xA8, 0x98, 0x54, 0xCD, 0x82, 0x50, 0xD6, 0x20, 0x0A, 0x1E, 0xB5, 0x10, 0x79, 0x22, -+ 0x46, 0x56, 0xD0, 0xB3, 0x34, 0xCE, 0xE3, 0x43, 0x0B, 0x87, 0xE1, 0xFF, 0x90, 0x4D, 0x10, 0x34, 0xC2, 0xD8, 0xA7, 0x04, 0x7B, 0x2D, 0x22, 0x56, 0x33, 0x19, 0x04, 0x10, 0x01, 0x2C, 0x16, 0x1C, -+ 0x76, 0x8C, 0x1F, 0xF8, 0xFC, 0x17, 0x9A, 0x44, 0x68, 0x64, 0xDF, 0x93, 0xE0, 0x9D, 0x1E, 0x6C, 0x29, 0x48, 0x7C, 0xAB, 0x04, 0x4E, 0xF8, 0x68, 0xD4, 0x31, 0xB1, 0x76, 0x31, 0x84, 0xAD, 0xCB, -+ 0x39, 0x51, 0x6D, 0xD1, 0x27, 0x6B, 0xD8, 0x41, 0xEC, 0x49, 0x2A, 0x84, 0x51, 0x77, 0x4E, 0xDA, 0x10, 0x6E, 0x73, 0x21, 0xED, 0x5A, 0x62, 0x25, 0xC3, 0x53, 0x24, 0xC5, 0x10, 0x66, 0x3B, 0x9B, -+ 0xEA, 0x05, 0xF1, 0xDB, 0xC8, 0xD5, 0xDB, 0x69, 0xA7, 0x7E, 0xCE, 0x3E, 0x42, 0x65, 0xC5, 0xE8, 0x10, 0x69, 0x86, 0x45, 0x80, 0xB5, 0x28, 0xCC, 0x2C, 0xBB, 0xFB, 0xDE, 0x62, 0x5A, 0xF2, 0xC1, -+ 0xC5, 0xCB, 0x06, 0xDD, 0x80, 0x58, 0x54, 0x04, 0x96, 0x4D, 0x21, 0x11, 0x4B, 0x8B, 0x13, 0xCA, 0xFB, 0x6D, 0xBE, 0x1B, 0x42, 0x8E, 0xBC, 0x87, 0x17, 0xCC, 0xD1, 0x1B, 0xFB, 0x34, 0x72, 0x60, -+ 0xAA, 0x70, 0x1B, 0xF2, 0x28, 0x35, 0xB3, 0xF1, 0x06, 0x2E, 0xAD, 0x36, 0xAC, 0xB9, 0x6D, 0x74, 0x96, 0xF7, 0x2A, 0xA5, 0xFF, 0x1A, 0x13, 0x04, 0xBC, 0x02, 0xE3, 0x58, 0xE6, 0x0B, 0x1C, 0x82, -+ 0x30, 0xBF, 0x8F, 0xFA, 0xFD, 0x36, 0xE0, 0xF6, 0xB2, 0xE3, 0xD8, 0x58, 0x2F, 0xD3, 0xA4, 0x38, 0x11, 0xAC, 0x24, 0xD0, 0x60, 0x08, 0x10, 0x35, 0x42, 0x87, 0x8C, 0xB5, 0xCE, 0x99, 0xF8, 0x92, -+ 0x0C, 0xC8, 0x02, 0xDA, 0x4E, 0xD2, 0x18, 0x39, 0x56, 0x83, 0x4D, 0xA4, 0xC7, 0x19, 0x55, 0x0D, 0xB2, 0x47, 0x95, 0xAC, 0xE0, 0x9D, 0x88, 0xCA, 0x30, 0x43, 0xAF, 0xCC, 0xC9, 0xAB, 0x0F, 0x03, -+ 0x06, 0x67, 0x1F, 0xD1, 0xF2, 0x50, 0x95, 0x7C, 0xC6, 0x24, 0x64, 0xC9, 0xEA, 0x5E, 0x44, 0x4C, 0x6E, 0xB4, 0x76, 0xD0, 0x92, 0x46, 0x56, 0x08, 0xFE, 0xB6, 0xB7, 0xD5, 0x39, 0x8A, 0x02, 0x9E, -+ 0x1E, 0xEA, 0xE5, 0x0D, 0xB5, 0xF9, 0xF9, 0x95, 0x50, 0xA9, 0x66, 0x83, 0x43, 0xEF, 0x29, 0x70, 0xF2, 0x25, 0x31, 0x67, 0x8E, 0x36, 0x71, 0x3B, 0x81, 0xCB, 0x36, 0x33, 0xF1, 0xDD, 0xD4, 0x67, -+ 0x69, 0x82, 0x6E, 0x43, 0x60, 0xDE, 0x19, 0xA5, 0x63, 0x18, 0xD9, 0xEB, 0x59, 0xF9, 0x7A, 0x9B, 0x3E, 0xD2, 0x2B, 0xFD, 0x89, 0x50, 0x11, 0x26, 0x29, 0x5E, 0x89, 0xFC, 0x73, 0x5C, 0x36, 0x19, -+ 0xD7, 0x7F, 0x6F, 0xB9, 0x35, 0xC2, 0xFB, 0x46, 0xED, 0xD0, 0xA4, 0xD2, 0x92, 0x17, 0x77, 0xB0, 0xEF, 0xCD, 0x58, 0xBE, 0xDC, 0xEB, 0x9E, 0xA5, 0x66, 0x6B, 0x18, 0xDF, 0xAC, 0xF9, 0xBF, 0x76, -+ 0x33, 0x3C, 0x5E, 0xDA, 0xC7, 0x2B, 0x04, 0xE6, 0x57, 0xE4, 0xE0, 0x86, 0x5E, 0x04, 0x3A, 0x64, 0x68, 0xC5, 0xE6, 0x9D, 0x5B, 0xCB, 0xE5, 0x84, 0x2B, 0xF4, 0x5B, 0xEE, 0x77, 0x91, 0x5F, 0x05, -+ 0x71, 0xD1, 0x50, 0xD6, 0x06, 0xA6, 0xF2, 0xAC, 0x37, 0x37, 0x92, 0x90, 0x88, 0x91, 0xBA, 0x85, 0xF4, 0x5C, 0xB4, 0x09, 0xD9, 0x63, 0xE4, 0x9B, 0x5B, 0x96, 0x97, 0x8A, 0x19, 0x39, 0x16, 0x0A, -+ 0x8D, 0xB9, 0xD6, 0x3C, 0x4E, 0xA0, 0xD6, 0xA7, 0xD0, 0x93, 0x70, 0xAC, 0x1C, 0x24, 0x49, 0x8D, 0x21, 0xA8, 0xD5, 0xB7, 0x64, 0xA3, 0x9A, 0x41, 0x2E, 0x5B, 0x54, 0xBD, 0x1C, 0x96, 0x4D, 0x24, -+ 0x4A, 0x45, 0x55, 0x64, 0x5F, 0x1F, 0x90, 0x53, 0xF8, 0xBB, 0x33, 0xF6, 0xF7, 0x51, 0x46, 0x80, 0x7B, 0x4E, 0x9E, 0x07, 0xB2, 0x3C, 0x98, 0x06, 0xFF, 0x75, 0x72, 0x46, 0x9C, 0x09, 0x43, 0x99, -+ 0xBA, 0x97, 0x79, 0xB9, 0x62, 0xB4, 0xC8, 0xA9, 0x57, 0xF8, 0x69, 0x91, 0x1E, 0xB1, 0x3F, 0x14, 0x02, 0x24, 0xAC, 0x4E, 0xE7, 0x62, 0x01, 0xC0, 0x2F, 0x24, 0xC7, 0xED, 0xC3, 0xA9, 0x80, 0x89, -+ 0x9A, 0x30, 0xBA, 0xD2, 0xB1, 0x2D, 0x57, 0x28, 0xF0, 0x97, 0x17, 0x6D, 0x00, 0x17, 0xF3, 0x47, 0x3D, 0x2F, 0xBB, 0xD4, 0x3C, 0xC2, 0x3A, 0x50, 0x1E, 0x81, 0xE3, 0x81, 0xBE, 0x01, 0x79, 0xBF, -+ 0x68, 0xCA, 0x50, 0xFD, 0x23, 0x55, 0xCA, 0x7B, 0x64, 0xF5, 0x3E, 0x0C, 0x7D, 0x5B, 0xCA, 0x4E, 0x7B, 0xE6, 0x91, 0x63, 0xE3, 0x16, 0xFE, 0xBB, 0x49, 0xA9, 0x34, 0x0F, 0x15, 0x7B, 0xAC, 0x3B, -+ 0x0B, 0xD8, 0x4A, 0x3B, 0x02, 0x7A, 0x2F, 0xE4, 0x4E, 0xC2, 0x66, 0xA8, 0xCE, 0x4A, 0x17, 0x1B, 0x91, 0x82, 0x8F, 0x45, 0x43, 0x02, 0xAA, 0x9B, 0x66, 0x49, 0x67, 0xE6, 0x7D, 0xB3, 0x8A, 0xA4, -+ 0xE3, 0xBC, 0x35, 0x3D, 0x15, 0x18, 0xA7, 0xFE, 0xC1, 0x18, 0x8B, 0x7D, 0x5B, 0x7E, 0x19, 0x52, 0x1F, 0x1A, 0x28, 0x77, 0x00, 0x69, 0x89, 0xB0, 0xFE, 0x91, 0x89, 0x46, 0xB7, 0x59, 0x3E, 0xD1, -+ 0x51, 0x20, 0xBF, 0x7D, 0x23, 0xF9, 0x92, 0x10, 0xDD, 0xB7, 0x6D, 0xAF, 0x86, 0xE2, 0x37, 0xB2, 0x37, 0x9C, 0xA1, 0x2E, 0x55, 0x63, 0x6C, 0x83, 0x40, 0x8E, 0x6D, 0x2B, 0x35, 0x85, 0xFA, 0xBC, -+ 0xBC, 0x0F, 0x6C, 0x48, 0x76, 0x7E, 0x36, 0x3A, 0xC8, 0x47, 0xCC, 0xC6, 0x7E, 0xB7, 0xC9, 0x37, 0xBB, 0xD9, 0x41, 0x10, 0x0D, 0x78, 0x77, 0x4A, 0xE1, 0xF4, 0x43, 0x39, 0xDC, 0xDC, 0xB0, 0xE7, -+ 0x00, 0xAC, 0x10, 0x8D, 0xAA, 0x92, 0xCD, 0x9E, 0xA1, 0x9F, 0x82, 0x38, 0xF2, 0x86, 0x76, 0xFE, 0xE7, 0xBD, 0x1B, 0x9F, 0x37, 0xA6, 0xCA, 0x17, 0xD7, 0xCF, 0x40, 0x42, 0xFE, 0x39, 0xDD, 0x93, -+ 0x77, 0x82, 0x6C, 0x4C, 0xAB, 0x29, 0x32, 0xE1, 0x2D, 0xE5, 0x3B, 0x08, 0x1A, 0x6C, 0x25, 0xC0, 0xF4, 0x7D, 0xA3, 0xD9, 0x16, 0x83, 0x1E, 0x42, 0x47, 0xD0, 0x97, 0x81, 0x1E, 0x1A, 0x08, 0x70, -+ 0xCB, 0x61, 0xF4, 0xAC, 0xA1, 0x27, 0xEA, 0xF8, 0x5A, 0x9C, 0xA6, 0x66, 0xFA, 0x6C, 0x36, 0x39, 0x8F, 0x0E, 0x74, 0x20, 0xCA, 0x98, 0x95, 0xC6, 0x3A, 0x1A, 0xC4, 0xDB, 0x49, 0xA1, 0xD7, 0x5F, -+ 0x56, 0x46, 0x4C, 0x1E, 0x0C, 0xF9, 0x28, 0x3A, 0x45, 0x44, 0x56, 0x50, 0xF9, 0x5F, 0xAD, 0xF6, 0xC8, 0x8D, 0xB3, 0xCE, 0x7C, 0x0E, 0x5D, 0x0E, 0x72, 0x61, 0xE8, 0x04, 0xC0, 0x3A, 0x41, 0x9E, -+ 0x4C, 0xC2, 0x50, 0x10, 0x99, 0xCA, 0x53, 0x63, 0x44, 0x60, 0x7B, 0x07, 0xE8, 0x25, 0x32, 0x3A, 0xD3, 0x0B, 0xE7, 0x5F, 0x84, 0xE6, 0xC5, 0xBE, 0x23, 0x8E, 0xC7, 0x86, 0x17, 0xA0, 0xA2, 0x34, -+ 0x14, 0xC7, 0xF8, 0xCD, 0x60, 0x91, 0x30, 0x31, 0xBC, 0x93, 0x01, 0x78, 0x6D, 0x5C, 0x19, 0xD9, 0x30, 0xB5, 0x06, 0xC4, 0x95, 0x98, 0x32, 0x23, 0xEC, 0x1B, 0xF7, 0x87, 0xC3, 0x3D, 0x22, 0x8A, -+ 0x11, 0x0E, 0x57, 0x42, 0x87, 0x73, 0xE3, 0x4F, 0x12, 0x66, 0x3D, 0x11, 0xC1, 0x55, 0xDF, 0xCE, 0x38, 0x0D, 0x65, 0x76, 0x4C, 0x26, 0x59, 0xEA, 0xA0, 0xA1, 0xA2, 0xE7, 0x64, 0xEB, 0xB5, 0xA9, -+ 0xE5, 0xA7, 0x19, 0x2E, 0x90, 0x86, 0xA6, 0xDE, 0x4A, 0x38, 0xFC, 0xFD, 0x04, 0x12, 0x42, 0x42, 0x60, 0x62, 0x0C, 0x1E, 0x56, 0x7A, 0x2D, 0x8B, 0x1A, 0xF3, 0x55, 0x48, 0x19, 0xA0, 0x0D, 0x5C, -+ 0x7E, 0x56, 0x66, 0xD0, 0xE6, 0x56, 0xF8, 0xD4, 0x5C, 0x67, 0xC5, 0x44, 0x8D, 0xAB, 0x5E, 0xB6, 0xE6, 0x02, 0x93, 0x79, 0xC4, 0x7A, 0x24, 0xD0, 0x11, 0xF5, 0x6E, 0x5F, 0xAA, 0x49, 0xFC, 0x6B, -+ 0xB2, 0xD7, 0x50, 0xED, 0x4C, 0x95, 0xF8, 0x35, 0x38, 0x4F, 0x2F, 0xAA, 0xB1, 0x3C, 0x1C, 0xCA, 0x71, 0xA1, 0xEB, 0xD2, 0x29, 0x9E, 0x96, 0x32, 0xE5, 0x29, 0xCE, 0x77, 0x14, 0x9F, 0x5F, 0xAC, -+ 0x31, 0xAB, 0x28, 0xDC, 0xC7, 0x06, 0x70, 0xBB, 0xAB, 0x9F, 0x7B, 0x6F, 0xFE, 0xAA, 0xBC, 0x7D, 0xC4, 0x51, 0x3D, 0x8F, 0xAC, 0x4B, 0xCF, 0x7E, 0x5E, 0x72, 0x97, 0xDB, 0x69, 0xE4, 0xB6, 0x25, -+ 0x38, 0xF9, 0xCA, 0xBD, 0x90, 0x2B, 0x10, 0x07, 0xE3, 0xBA, 0xF6, 0x7F, 0x94, 0x3D, 0xFD, 0xC6, 0xAA, 0x75, 0x62, 0xFA, 0xBB, 0x1E, 0x8F, 0xAC, 0xF8, 0x11, 0xC7, 0x63, 0x35, 0x79, 0x0A, 0x16, -+ 0xF2, 0x1E, 0xCB, 0x72, 0xFC, 0x1B, 0xA9, 0x42, 0x76, 0xB2, 0x09, 0x80, 0x7E, 0xA5, 0x2E, 0x74, 0xF2, 0xB6, 0xCA, 0x0B, 0x3F, 0xDC, 0x30, 0x50, 0x1F, 0x63, 0x10, 0xEC, 0x99, 0x55, 0xB0, 0x51, -+ 0x81, 0x8D, 0xAE, 0x10, 0x80, 0xFD, 0x4D, 0xD2, 0x4C, 0x72, 0x2D, 0x68, 0xDE, 0x33, 0xEA, 0x76, 0x9B, 0x4E, 0x63, 0x70, 0x07, 0xCF, 0xDC, 0xE1, 0x80, 0x4A, 0xC2, 0xA7, 0x71, 0xF8, 0x8F, 0x59, -+ 0xBA, 0xCE, 0xDB, 0x4D, 0xFB, 0x79, 0xA4, 0x1E, 0xA7, 0x0F, 0x14, 0xAC, 0xCE, 0x6A, 0x5A, 0x8A, 0x88, 0x43, 0xB5, 0x95, 0x89, 0xE4, 0x52, 0x8B, 0xA8, 0x52, 0x10, 0x42, 0x1D, 0x1E, 0x59, 0x5F, -+ 0x84, 0xC2, 0x75, 0x90, 0x47, 0xDB, 0x47, 0x22, 0x26, 0x73, 0x86, 0x8C, 0x00, 0x27, 0xEE, 0xFD, 0x99, 0x6E, 0xF8, 0xC8, 0xC4, 0xF3, 0x67, 0xA9, 0x1D, 0xEC, 0xF1, 0x79, 0x43, 0x22, 0x7D, 0x4D, -+ 0x00, 0x44, 0x7F, 0xFC, 0x6C, 0xC8, 0x66, 0x5E, 0x08, 0xD2, 0x93, 0xA4, 0xDE, 0x4E, 0xE1, 0x15, 0x69, 0xB9, 0x5B, 0xB4, 0xDA, 0xE7, 0x58, 0x15, 0x0E, 0x55, 0x78, 0x32, 0x55, 0xE2, 0xF3, 0x22, -+ 0x27, 0xB4, 0x5A, 0x9D, 0x26, 0x19, 0x77, 0x1C, 0xED, 0x51, 0x2D, 0x5C, 0xD8, 0x90, 0x18, 0xC9, 0x9E, 0x2F, 0x05, 0x23, 0x3E, 0xF5, 0x86, 0x0F, 0xEC, 0xB3, 0x79, 0x1B, 0x53, 0xAD, 0x2C, 0x22, -+ 0x8A, 0xBA, 0xBB, 0x9F, 0xD1, 0xF5, 0x04, 0x38, 0xE9, 0xB0, 0xC6, 0xEA, 0x61, 0xE2, 0x0B, 0xB5, 0xAC, 0x0A, 0xAD, 0x30, 0x50, 0x9F, 0xEA, 0x9A, 0x44, 0x1D, 0x55, 0x5C, 0xDD, 0x34, 0x50, 0x9C, -+ 0xFC, 0x60, 0x62, 0xE6, 0xB8, 0x1D, 0xCA, 0xCF, 0xD5, 0xF5, 0xC9, 0xC5, 0x26, 0xB3, 0x8D, 0x70, 0x4C, 0x1F, 0x0F, 0x28, 0xB4, 0xFB, 0x7C, 0x1A, 0xC6, 0x9A, 0xA1, 0x96, 0xCF, 0x81, 0x2E, 0x44, -+ 0x46, 0xEF, 0x68, 0x02, 0x87, 0x44, 0xD2, 0xA5, 0x40, 0xFA, 0x7A, 0x69, 0xCF, 0x87, 0xA1, 0xF9, 0x68, 0x24, 0xE4, 0xC6, 0x87, 0x82, 0x35, 0xF0, 0xCC, 0xA3, 0xE9, 0x7B, 0x2B, 0x22, 0xB0, 0x93, -+ 0xD9, 0x5E, 0xE1, 0x8D, 0xBF, 0xE6, 0x76, 0x1D, 0xFA, 0xF8, 0x34, 0x47, 0x51, 0x86, 0x07, 0x56, 0x02, 0x31, 0x3E, 0xE2, 0xA2, 0x99, 0xBC, 0xCC, 0xC6, 0x53, 0x1E, 0xDA, 0x54, 0x10, 0xCC, 0xFA, -+ 0x09, 0xEC, 0xB8, 0xA6, 0x0D, 0x28, 0x33, 0x7A, 0xA5, 0x56, 0x58, 0x6D, 0x78, 0x48, 0x49, 0x38, 0x0F, 0x02, 0xEB, 0xB8, 0x37, 0xCB, 0x0B, 0xDE, 0x57, 0xBB, 0xA9, 0x07, 0xB6, 0x7C, 0x7A, 0xD8, -+ 0x66, 0xE1, 0xDD, 0xB1, 0xC7, 0x9D, 0x96, 0x1D, 0x70, 0xF5, 0x5D, 0x05, 0x9A, 0xCF, 0xD3, 0x9F, 0x5B, 0xD3, 0x03, 0x74, 0xB4, 0x84, 0x5E, 0x04, 0xEC, 0x26, 0xE8, 0xB5, 0xB9, 0x3F, 0xC4, 0x54, -+ 0x4F, 0x24, 0xAE, 0x99, 0xC9, 0xE5, 0x1E, 0x43, 0x57, 0x75, 0xD2, 0x20, 0x80, 0xE1, 0x9E, 0x3A, 0xC2, 0x25, 0xC7, 0xE1, 0xEE, 0x0A, 0x56, 0xB9, 0x52, 0x30, 0x7F, 0x44, 0xBA, 0xCF, 0x4C, 0x87, -+ 0x85, 0x35, 0x5C, 0x09, 0xDB, 0xD0, 0xD8, 0x60, 0x57, 0xF0, 0xA6, 0xA9, 0x88, 0xC3, 0x65, 0x74, 0x20, 0x25, 0x19, 0xDE, 0xBA, 0x04, 0x56, 0x98, 0xD7, 0x24, 0x27, 0x77, 0x0C, 0x37, 0x31, 0xC9, -+ 0xB7, 0x53, 0x5F, 0xAA, 0xF0, 0xCC, 0xA9, 0xD1, 0x3C, 0x42, 0x12, 0xB7, 0x62, 0x94, 0x57, 0x52, 0xE7, 0xA6, 0x53, 0x9B, 0x47, 0xBE, 0xA9, 0x66, 0x48, 0x23, 0x18, 0xA9, 0xCF, 0xE3, 0xBA, 0xEC, -+ 0x6A, 0x83, 0xFB, 0x34, 0xF0, 0xB6, 0x8E, 0xE9, 0x77, 0x97, 0x42, 0x0F, 0xAD, 0xC3, 0xF0, 0x25, 0xEE, 0x9F, 0x18, 0xBE, 0xA3, 0x8F, 0xBE, 0xC0, 0xC5, 0xDE, 0xAA, 0xC7, 0xA5, 0x2F, 0x7E, 0xB8, -+ 0xD9, 0x4F, 0xE4, 0xC6, 0x62, 0x54, 0x14, 0x57, 0xA1, 0x53, 0x82, 0x4B, 0xE6, 0x0D, 0x7D, 0xB8, 0x33, 0x89, 0x0F, 0x3A, 0xC3, 0xF7, 0xBD, 0x6D, 0x73, 0xF8, 0x0C, 0x67, 0x2B, 0x76, 0xA5, 0x26, -+ 0x7D, 0xF2, 0x2C, 0xFB, 0x5E, 0x1B, 0x92, 0xB0, 0xCD, 0x68, 0xE9, 0xA9, 0x20, 0x92, 0x43, 0xA4, 0x2A, 0x30, 0xF7, 0xAA, 0x1F, 0x03, 0xD0, 0xD9, 0x11, 0x3F, 0x04, 0xB7, 0x6E, 0xB5, 0xAA, 0x69, -+ 0xBC, 0x9B, 0x8F, 0xE7, 0x98, 0xE7, 0x75, 0x01, 0xB0, 0x56, 0x30, 0x29, 0xF5, 0x02, 0xF7, 0x79, 0x4D, 0xD3, 0x90, 0x74, 0x7A, 0xED, 0x08, 0x5C, 0x22, 0xB2, 0x16, 0x11, 0xA9, 0xC7, 0x62, 0x38, -+ 0xEF, 0x65, 0x84, 0xAE, 0xFB, 0xB3, 0x57, 0xF8, 0x36, 0x25, 0x86, 0xC5, 0x9F, 0xCA, 0x8E, 0x09, 0x26, 0x10, 0x11, 0x5F, 0x4D, 0xC2, 0x93, 0x0D, 0x72, 0x24, 0x28, 0x5E, 0xB8, 0xFD, 0x99, 0x2F, -+ 0x82, 0x17, 0xAE, 0x94, 0x70, 0xA7, 0x4A, 0xE3, 0xE8, 0x06, 0x01, 0x0C, 0x8D, 0x02, 0x19, 0x48, 0xBE, 0x57, 0xAB, 0x1D, 0x62, 0xC0, 0x41, 0x2E, 0xA5, 0xC9, 0x69, 0xD0, 0x56, 0x68, 0x41, 0xF2, -+ 0xE2, 0x56, 0x8E, 0x01, 0x33, 0x64, 0xD8, 0x7C, 0xAF, 0x33, 0x22, 0x9D, 0x2A, 0xA6, 0xC5, 0x6B, 0x9F, 0xB4, 0xC1, 0x36, 0xA1, 0x3F, 0x5E, 0x73, 0x3A, 0x91, 0xEF, 0xF2, 0x1D, 0xCB, 0x29, 0x0D, -+ 0x8E, 0xC6, 0xDC, 0x0A, 0x50, 0xE5, 0x7C, 0x1F, 0x65, 0xEB, 0x2B, 0xA1, 0xC3, 0x9D, 0xDB, 0x1C, 0x09, 0x54, 0x24, 0xE6, 0xF4, 0x1F, 0x9E, 0x86, 0x56, 0x7F, 0x91, 0x14, 0x00, 0xD8, 0x5C, 0x90, -+ 0xD6, 0x4F, 0xC7, 0xE6, 0xEC, 0xC2, 0x88, 0x04, 0xF2, 0x70, 0x42, 0x40, 0x24, 0x9E, 0xFC, 0x8F, 0xEC, 0x69, 0xE3, 0x66, 0xF3, 0x68, 0x7A, 0x76, 0x20, 0x5C, 0x0D, 0x1D, 0xD6, 0x48, 0x39, 0x12, -+ 0xA8, 0xF6, 0x8E, 0xAE, 0x2C, 0xB3, 0x52, 0x0A, 0x8B, 0x17, 0x2C, 0xF2, 0xCD, 0x2B, 0x03, 0x80, 0x2E, 0x5F, 0xA7, 0xB1, 0xF1, 0xEF, 0x8C, 0xA0, 0xA6, 0x08, 0x0B, 0xF9, 0xDA, 0x37, 0x82, 0xD2, -+ 0xBD, 0xE4, 0xB3, 0xA3, 0xC6, 0x5C, 0xFB, 0x9F, 0x1B, 0x39, 0x05, 0xB9, 0x36, 0x1D, 0x1E, 0x0C, 0x8F, 0xEB, 0x5A, 0xB4, 0x0A, 0x3F, 0xFE, 0xB3, 0xAE, 0x95, 0xF5, 0x75, 0x62, 0xA0, 0x7C, 0xD2, -+ 0x43, 0x18, 0xC0, 0xE7, 0xEE, 0x6E, 0xBE, 0x57, 0x0C, 0xB7, 0xDC, 0x1C, 0x62, 0x1A, 0x84, 0x92, 0x13, 0xE7, 0x13, 0x92, 0x42, 0x75, 0x81, 0x28, 0xC1, 0x6C, 0xFE, 0x52, 0xF8, 0xE2, 0xED, 0xA5, -+ 0xBA, 0x23, 0x23, 0x15, 0x6F, 0x85, 0x3A, 0xBC, 0x61, 0xB1, 0x39, 0x04, 0x1A, 0x4B, 0x83, 0x40, 0x37, 0xAA, 0x19, 0xDC, 0xEE, 0x76, 0x06, 0xAE, 0x84, 0xC1, 0xA7, 0x4D, 0x0E, 0xEB, 0x6A, 0x4D, -+ 0xAB, 0xD5, 0x90, 0x8D, 0xAE, 0x2C, 0x23, 0xA6, 0x38, 0x76, 0xE7, 0xE9, 0xF8, 0xE9, 0x03, 0x66, 0xA1, 0xFD, 0x89, 0xF2, 0x28, 0x3D, 0x75, 0x30, 0x09, 0xE0, 0x56, 0xDD, 0x5A, 0xB9, 0x53, 0xDB, -+ 0x3D, 0x8F, 0x48, 0x30, 0xA4, 0xD0, 0x93, 0x79, 0x39, 0x5F, 0x21, 0xED, 0x03, 0xB6, 0xCC, 0xD5, 0xD7, 0xF8, 0xF8, 0x1F, 0x40, 0x0B, 0x3E, 0x3B, 0xC6, 0x96, 0x08, 0x8D, 0x58, 0x17, 0x75, 0x21, -+ 0x11, 0x0B, 0x6C, 0x84, 0x74, 0xF3, 0xE4, 0x49, 0xD8, 0xEC, 0x7F, 0x46, 0x6C, 0x2E, 0xB3, 0x43, 0x65, 0x9F, 0xF5, 0x33, 0x97, 0x58, 0x7B, 0xC6, 0x30, 0x0D, 0xEE, 0xBD, 0xC2, 0xBE, 0x67, 0x4B, -+ 0x78, 0x30, 0x90, 0xEA, 0xCC, 0xB9, 0x3B, 0x6A, 0xE9, 0x49, 0x56, 0xA3, 0x33, 0xE8, 0x58, 0x37, 0x64, 0x73, 0xCA, 0x67, 0xAF, 0x05, 0x43, 0xE5, 0x99, 0x94, 0x1E, 0xB4, 0xE8, 0xC6, 0xD9, 0x5D, -+ 0x47, 0x9F, 0xEE, 0xE0, 0x5E, 0x3E, 0x8B, 0xF5, 0xF0, 0xAA, 0xCD, 0x34, 0x51, 0xC0, 0xED, 0x48, 0x1F, 0x52, 0x6D, 0x38, 0xEB, 0x3B, 0x26, 0xA4, 0xFD, 0x98, 0xE1, 0x1B, 0xAF, 0x67, 0xED, 0xEA, -+ 0xB2, 0xEC, 0xC7, 0xD3, 0x97, 0xE9, 0x68, 0xF8, 0xD1, 0x03, 0xE8, 0x01, 0x44, 0xA4, 0xCD, 0xB7, 0x00, 0xC4, 0x1A, 0x42, 0x83, 0x4B, 0x07, 0xFD, 0x7E, 0x91, 0xF3, 0xC5, 0x24, 0x09, 0xC6, 0x88, -+ 0x2C, 0xF4, 0x15, 0xA4, 0x2F, 0x71, 0xE2, 0x1F, 0xE7, 0x00, 0x17, 0xD6, 0x2B, 0x1F, 0xE4, 0x3A, 0x2A, 0x32, 0xD8, 0x15, 0xE3, 0xF1, 0xA4, 0x4E, 0x72, 0x67, 0xB1, 0xBB, 0xF5, 0x52, 0xF3, 0x8E, -+ 0x88, 0x97, 0x75, 0xEC, 0xD8, 0x5C, 0x4B, 0xF4, 0x65, 0x02, 0x22, 0xF3, 0x30, 0xFA, 0xE4, 0xB6, 0x17, 0x65, 0x52, 0x54, 0x03, 0xFB, 0xDE, 0x0A, 0x18, 0xF9, 0x73, 0x65, 0x7C, 0xAB, 0xEB, 0x05, -+ 0xFE, 0x6B, 0x97, 0x29, 0xD3, 0xB3, 0x73, 0x0A, 0xEF, 0xDF, 0x3C, 0x18, 0x96, 0x99, 0x7A, 0x94, 0x9B, 0x60, 0x3C, 0x43, 0xFE, 0xCC, 0x3E, 0xAC, 0xCB, 0xF0, 0x0C, 0x03, 0x76, 0x59, 0x41, 0x80, -+ 0x0C, 0xE4, 0x2F, 0xD0, 0x38, 0x4E, 0x1C, 0x1C, 0x61, 0x17, 0x31, 0x6C, 0xBA, 0x1A, 0x81, 0xA2, 0x09, 0x03, 0x3C, 0x5B, 0x53, 0xAE, 0x3B, 0x60, 0xBC, 0x1A, 0xFC, 0x6E, 0x7C, 0x95, 0xC5, 0xCB, -+ 0x99, 0xC2, 0x6A, 0x4C, 0x88, 0x1F, 0x62, 0x6A, 0x21, 0x9A, 0x61, 0x9B, 0xC3, 0x5C, 0xF4, 0xEF, 0x0A, 0x3B, 0x67, 0x25, 0x34, 0x9D, 0x2C, 0x13, 0xD8, 0x9D, 0xE6, 0x5D, 0x9F, 0x7A, 0x35, 0x51, -+ 0xCC, 0xCF, 0xC5, 0x61, 0x1D, 0xC9, 0xC8, 0x73, 0x7B, 0x0E, 0xF0, 0xFA, 0xDF, 0x86, 0x5A, 0x65, 0x33, 0x9F, 0x46, 0x4C, 0xB0, 0x65, 0xBA, 0x8F, 0xE4, 0x81, 0x06, 0x46, 0xA3, 0x44, 0x5B, 0x70, -+ 0x2F, 0x51, 0xD6, 0xA9, 0x13, 0x49, 0xFD, 0x70, 0xA3, 0x56, 0x49, 0xFD, 0x4D, 0xAE, 0xE6, 0x13, 0x10, 0xA3, 0xCC, 0xA5, 0xED, 0x3A, 0xBD, 0xBF, 0xF8, 0x35, 0x5B, 0x51, 0x14, 0x83, 0x5F, 0xDE, -+ 0x73, 0xC9, 0xF5, 0x2A, 0xC2, 0x29, 0xB1, 0x5E, 0x84, 0xD3, 0xF5, 0x9D, 0xCB, 0x13, 0x02, 0x55, 0x1E, 0xA4, 0xDD, 0x6F, 0x41, 0x5D, 0x01, 0x39, 0x11, 0xD6, 0x53, 0x15, 0xC8, 0xE5, 0x9B, 0x12, -+ 0x20, 0x4A, 0xAA, 0xF5, 0x25, 0x75, 0x4E, 0x96, 0xEC, 0x3C, 0xB1, 0x3E, 0x19, 0x72, 0x62, 0x1F, 0x9C, 0x86, 0xF5, 0xDE, 0x4A, 0xDA, 0xB9, 0x80, 0xCF, 0x83, 0x69, 0x12, 0x7C, 0x2B, 0x3E, 0x4E, -+ 0xF1, 0xA8, 0x2B, 0x7A, 0xC9, 0x59, 0xAB, 0x45, 0xD9, 0x7E, 0xEE, 0x7A, 0x14, 0xE4, 0x14, 0x5B, 0x34, 0x9B, 0x53, 0x3D, 0xD9, 0x2D, 0xD2, 0xC1, 0x77, 0xC7, 0x7A, 0xBA, 0x32, 0x5D, 0xD7, 0x5C, -+ 0x77, 0xB3, 0x1A, 0x6A, 0xB3, 0xAA, 0xBE, 0x54, 0xA6, 0xCF, 0xA2, 0xDC, 0xA3, 0x5E, 0x20, 0x99, 0x35, 0xEF, 0x9D, 0x94, 0x7A, 0x37, 0xE8, 0x35, 0x97, 0xB9, 0x4F, 0xCA, 0xF5, 0x8A, 0x56, 0xD1, -+ 0x4A, 0x05, 0x69, 0x12, 0xC2, 0x2A, 0x54, 0xA6, 0xFF, 0x2F, 0xE8, 0x25, 0xBA, 0xAD, 0x8A, 0xBF, 0x1D, 0xD8, 0x7F, 0xB0, 0xFA, 0x15, 0x19, 0xA5, 0xB7, 0xB4, 0x2F, 0x4B, 0xB2, 0xF7, 0x57, 0xEF, -+ 0xF7, 0xC1, 0x2A, 0x2C, 0xD1, 0xB9, 0x1F, 0xAE, 0xBF, 0x80, 0x86, 0x51, 0x6D, 0xCD, 0xD5, 0x5F, 0x63, 0x84, 0x18, 0x8F, 0x53, 0xC6, 0xA7, 0x81, 0x86, 0x2F, 0xB5, 0xCC, 0x3C, 0xC6, 0x1A, 0xDE, -+ 0x2F, 0x11, 0x08, 0xD1, 0x51, 0x63, 0xC3, 0x8C, 0x4C, 0xA0, 0x1B, 0xF7, 0xF2, 0xC8, 0x1B, 0x8C, 0x79, 0xAD, 0x69, 0x4A, 0x01, 0x61, 0x7B, 0xC0, 0x4F, 0x84, 0x70, 0xC2, 0xC7, 0x71, 0xBE, 0xE2, -+ 0x9A, 0x66, 0x6B, 0xE8, 0x51, 0x42, 0xCB, 0x96, 0x7E, 0xC5, 0x69, 0xA4, 0x02, 0x2A, 0x64, 0xFC, 0x5D, 0x95, 0xA5, 0x57, 0x76, 0xAC, 0x73, 0x27, 0x55, 0xB2, 0x39, 0x29, 0xF2, 0x59, 0x86, 0xD9, -+ 0x3C, 0x01, 0x9B, 0xBB, 0xFB, 0x15, 0x4C, 0x26, 0xBB, 0x47, 0xA2, 0xBA, 0x4B, 0x32, 0x97, 0xDC, 0xE4, 0x47, 0xC5, 0x61, 0xA1, 0xC4, 0x9F, 0x75, 0x35, 0xA7, 0xA1, 0x4C, 0x98, 0x30, 0x18, 0x6A, -+ 0xA0, 0xDD, 0xFA, 0x00, 0x1A, 0xEA, 0x0D, 0x94, 0xC4, 0x0A, 0xC8, 0xA8, 0x41, 0x8E, 0x8D, 0x57, 0x8D, 0x84, 0x21, 0x41, 0x3F, 0xB7, 0xE8, 0x20, 0x23, 0x7E, 0xF3, 0xB5, 0xCB, 0xF6, 0x08, 0x1C, -+ 0x44, 0x2C, 0x13, 0xB4, 0x98, 0x5E, 0xE6, 0x39, 0xE8, 0xF8, 0x6D, 0xB2, 0x87, 0x3B, 0xC2, 0xC9, 0xD3, 0xA9, 0xE5, 0x17, 0xAD, 0x70, 0x31, 0xDA, 0x3C, 0xC9, 0x2F, 0xC1, 0x5F, 0x50, 0x2F, 0xAD, -+ 0x3F, 0xC5, 0xFD, 0xBB, 0xCD, 0x2C, 0x95, 0x50, 0xA8, 0x95, 0x25, 0xF0, 0x06, 0x7C, 0xC3, 0xEA, 0x22, 0xD8, 0xD5, 0xB6, 0x1A, 0xFA, 0xA4, 0xB5, 0x53, 0xAC, 0x30, 0x39, 0x20, 0xF2, 0x5D, 0x6D, -+ 0x58, 0xF6, 0x1F, 0x63, 0x56, 0x68, 0x5E, 0x43, 0x50, 0x9A, 0x00, 0x62, 0xF8, 0x37, 0xBC, 0xB9, 0xA1, 0xA2, 0x2C, 0xFF, 0x08, 0x10, 0x80, 0x18, 0xD6, 0xD2, 0x4B, 0xDC, 0x2B, 0x09, 0x6D, 0x2E, -+ }, -+ .t1_len = 2560, -+ .t1 = { -+ 0x03, 0x23, 0x69, 0xA2, 0xCE, 0x57, 0x2F, 0xD0, 0x8B, 0xFC, 0x30, 0x4B, 0x48, 0x48, 0xE7, 0x8D, 0x75, 0x2D, 0x77, 0xE9, 0x7A, 0x28, 0xB9, 0x9B, 0x9B, 0xB6, 0xFB, 0x5C, 0x7C, 0x63, 0x37, 0x51, -+ 0x4B, 0x32, 0x1E, 0xCD, 0xC1, 0xFB, 0x66, 0x9F, 0x26, 0xD4, 0x17, 0x1A, 0xB4, 0x2B, 0x72, 0x72, 0x0E, 0xE7, 0x0E, 0x05, 0x19, 0xA6, 0xE1, 0xD3, 0xD6, 0xD9, 0x91, 0x4E, 0xC1, 0xB2, 0x1C, 0xDE, -+ 0x38, 0xB4, 0x1A, 0xAC, 0x1D, 0x3A, 0xBE, 0xE6, 0xF2, 0xB7, 0x49, 0x5C, 0x4C, 0x82, 0x0C, 0x1F, 0xC0, 0xCC, 0x9E, 0x71, 0xE2, 0x4C, 0xFB, 0x5C, 0x9C, 0x0D, 0x8E, 0xEF, 0x42, 0x64, 0xAF, 0x48, -+ 0x4F, 0xAE, 0x4D, 0x6E, 0x5D, 0xDE, 0x65, 0xD4, 0xDF, 0x72, 0xB6, 0x1C, 0x6D, 0xBD, 0x26, 0xF8, 0x61, 0xA5, 0xE0, 0xB8, 0x53, 0xAC, 0x54, 0x13, 0x22, 0x6F, 0xEB, 0xBA, 0xBA, 0x5E, 0xB4, 0x74, -+ 0xC6, 0xFB, 0x25, 0xA8, 0x26, 0x78, 0xEA, 0x16, 0x06, 0xB4, 0x52, 0xA2, 0x31, 0x12, 0x22, 0x10, 0x17, 0xB8, 0xC0, 0x73, 0xC1, 0x03, 0x78, 0xF9, 0x14, 0x56, 0x41, 0xA8, 0xC0, 0x78, 0xC0, 0xED, -+ 0x9E, 0x42, 0x16, 0x50, 0xF7, 0x48, 0x89, 0x25, 0x22, 0xAB, 0x9F, 0xB7, 0xD1, 0xFF, 0x8C, 0xF1, 0xCC, 0x71, 0xB8, 0x56, 0x6E, 0x8D, 0xA3, 0x3C, 0xD7, 0x36, 0x17, 0x70, 0xC0, 0x44, 0x34, 0x9A, -+ 0xC4, 0x40, 0xCC, 0xCD, 0xC6, 0xBB, 0xE3, 0x5E, 0x6C, 0x55, 0x78, 0x27, 0x66, 0xF3, 0x8E, 0x68, 0x8B, 0xF4, 0x78, 0x21, 0x03, 0x72, 0x99, 0xE3, 0x44, 0xEC, 0xDE, 0xCA, 0x17, 0xAD, 0x5D, 0x15, -+ 0xCD, 0x27, 0xA4, 0xF7, 0xB0, 0x70, 0x66, 0x11, 0x38, 0xED, 0xE8, 0xED, 0x72, 0xA8, 0x95, 0x9C, 0x5A, 0xE3, 0x6B, 0x1C, 0x46, 0x09, 0x4A, 0x53, 0xCB, 0x21, 0xA7, 0xA4, 0x26, 0x73, 0xF1, 0x40, -+ 0x1C, 0x2B, 0x25, 0x94, 0x94, 0x09, 0x0E, 0x2F, 0x53, 0xD7, 0xEE, 0x70, 0x63, 0x43, 0x1E, 0xE5, 0x85, 0x80, 0x02, 0xD8, 0x50, 0xAF, 0x90, 0x9C, 0x37, 0x83, 0x43, 0x60, 0x10, 0xF7, 0xEA, 0x88, -+ 0x62, 0x5A, 0x36, 0xA0, 0xF0, 0x18, 0x9F, 0xDE, 0x75, 0xB7, 0xE8, 0xC7, 0xE4, 0xB1, 0x9D, 0x85, 0x27, 0x00, 0x83, 0x28, 0xAD, 0xBC, 0x92, 0x9B, 0xBC, 0x86, 0xE9, 0x64, 0xCF, 0xC4, 0x8B, 0x8C, -+ 0xF1, 0xDA, 0x5D, 0x7E, 0xD3, 0x33, 0x3A, 0xB5, 0x5C, 0x15, 0x07, 0x28, 0x32, 0x21, 0x4A, 0x77, 0x9A, 0x5F, 0xD1, 0x0C, 0xC0, 0x40, 0x05, 0xF4, 0x6C, 0x1A, 0xA8, 0x88, 0x4A, 0x16, 0x19, 0x92, -+ 0x47, 0x2F, 0xD5, 0x35, 0xB9, 0x5E, 0xD1, 0x8B, 0xDE, 0x1C, 0x6D, 0x8C, 0xE6, 0x78, 0xD2, 0x81, 0x7D, 0x69, 0xF9, 0x05, 0x71, 0x10, 0x3E, 0x85, 0x20, 0xE7, 0x31, 0x3C, 0xE7, 0xB9, 0x30, 0xC5, -+ 0xEB, 0xFA, 0xF2, 0xF4, 0xEC, 0x75, 0x8B, 0x62, 0x6B, 0x55, 0x43, 0xA0, 0x68, 0xCD, 0xE0, 0xFD, 0x0E, 0x94, 0xE6, 0xA6, 0x44, 0x75, 0xB2, 0x32, 0x68, 0xBF, 0x03, 0x80, 0xD0, 0x75, 0x50, 0x8F, -+ 0x85, 0x12, 0x8C, 0xA2, 0x6F, 0x31, 0xA9, 0x0C, 0x4A, 0x7D, 0x28, 0x44, 0x0D, 0x54, 0xD4, 0x06, 0x6B, 0x40, 0x45, 0x88, 0x58, 0x8B, 0x4C, 0xCF, 0x85, 0x0B, 0x97, 0x5C, 0x73, 0xAF, 0xE6, 0x8C, -+ 0xBC, 0xD1, 0x02, 0x75, 0x5F, 0x61, 0xEB, 0x3E, 0x60, 0x32, 0x3C, 0x57, 0x6E, 0x52, 0x9E, 0xC0, 0xBF, 0x23, 0xBF, 0xA5, 0xBE, 0xA3, 0x9C, 0xB7, 0x3C, 0x37, 0xE8, 0x39, 0x5D, 0x8D, 0xBD, 0x4C, -+ 0x8D, 0xC8, 0xAB, 0x2F, 0x70, 0xA0, 0xBF, 0xC3, 0xA7, 0x8C, 0x0D, 0x41, 0x3F, 0x08, 0xD1, 0x4D, 0x63, 0x2B, 0xC0, 0x40, 0x3B, 0x03, 0x83, 0xDB, 0xBB, 0x22, 0xBD, 0x9B, 0x11, 0x3C, 0x89, 0x45, -+ 0x2A, 0xEA, 0xB1, 0x12, 0x10, 0x09, 0x79, 0x47, 0xFE, 0xAA, 0xA3, 0xC9, 0xF0, 0x5D, 0x1D, 0x30, 0x0C, 0x33, 0xA5, 0x5E, 0x3F, 0xBC, 0x81, 0x25, 0x9E, 0x86, 0x27, 0x05, 0xC3, 0xA1, 0x3B, 0x9E, -+ 0xE3, 0x5F, 0x6B, 0x23, 0xED, 0x10, 0xF4, 0xED, 0xEA, 0x95, 0x19, 0xFA, 0x91, 0xB7, 0xBC, 0xD0, 0xD5, 0x01, 0xB5, 0xED, 0x57, 0xD9, 0x04, 0x9F, 0xAB, 0x91, 0xAA, 0x77, 0x9C, 0x72, 0x5F, 0xF8, -+ 0xE9, 0xF7, 0x80, 0x17, 0xEA, 0x78, 0x07, 0xFA, 0x25, 0x4B, 0x71, 0x05, 0xE8, 0x26, 0xD0, 0x96, 0xC0, 0x1A, 0xDA, 0xE2, 0xC5, 0xD1, 0x38, 0x25, 0x1A, 0x92, 0xA4, 0x78, 0xA3, 0x33, 0x73, 0xF4, -+ 0xDE, 0x91, 0x2B, 0x83, 0xB6, 0xFB, 0x4B, 0x0D, 0x0D, 0xE6, 0xBC, 0x11, 0x18, 0xBB, 0x2F, 0xCF, 0xB0, 0x7B, 0xD2, 0x27, 0xA5, 0xF7, 0xF9, 0x91, 0x43, 0x9A, 0x13, 0xDE, 0x12, 0x38, 0x18, 0x0C, -+ 0xDC, 0x55, 0x11, 0x9E, 0x65, 0xC4, 0x18, 0x58, 0x4D, 0x80, 0x7A, 0x92, 0x6E, 0x4A, 0x9C, 0x0F, 0x70, 0x15, 0x5E, 0xE1, 0x96, 0xFB, 0x07, 0x65, 0x6D, 0x9A, 0xA7, 0x98, 0x2B, 0x87, 0x95, 0xDB, -+ 0xAD, 0x43, 0xD1, 0x05, 0x9C, 0xA7, 0xF5, 0x80, 0xD3, 0x32, 0x0C, 0x04, 0x38, 0xA5, 0xED, 0x5A, 0x70, 0x32, 0xB2, 0xE9, 0x59, 0x67, 0x84, 0x10, 0xF1, 0x1A, 0xD9, 0x8B, 0xE8, 0x82, 0x6A, 0x44, -+ 0x26, 0x26, 0x15, 0x64, 0x5D, 0x75, 0x9A, 0x86, 0x2B, 0x2A, 0xC5, 0x2D, 0x3B, 0x01, 0x4A, 0x25, 0xE8, 0x47, 0x3F, 0x1F, 0x1E, 0xA4, 0xCF, 0xA8, 0x19, 0x93, 0x0A, 0xB3, 0xA3, 0x4D, 0x71, 0x0D, -+ 0xEE, 0xE7, 0x0C, 0xA1, 0x3E, 0x88, 0xFD, 0x71, 0xAA, 0x06, 0x4E, 0x6C, 0xB4, 0x69, 0x7D, 0xE0, 0xE4, 0x63, 0xB1, 0x37, 0x0A, 0x6A, 0x3B, 0xFE, 0x98, 0xFD, 0xFE, 0x7B, 0x54, 0x71, 0xFF, 0x8D, -+ 0xF6, 0xA6, 0x87, 0x9F, 0xBE, 0xF9, 0xAF, 0xB3, 0x51, 0x9D, 0x78, 0x07, 0x57, 0xD6, 0x74, 0x40, 0xAC, 0x36, 0xE8, 0x37, 0xBA, 0xC3, 0x83, 0x3E, 0xEA, 0xA9, 0x80, 0xBD, 0x82, 0xB7, 0x93, 0x64, -+ 0x36, 0xA0, 0x30, 0x7D, 0x16, 0x4B, 0x64, 0x38, 0x86, 0x9A, 0xE6, 0x06, 0xE9, 0x80, 0x51, 0x8E, 0x91, 0x3D, 0x0E, 0xE3, 0x02, 0x39, 0x6E, 0xF4, 0xEB, 0x25, 0xD9, 0x86, 0x6E, 0x4B, 0xAF, 0xA1, -+ 0x01, 0xE5, 0x99, 0x29, 0x31, 0x36, 0x1C, 0x4A, 0x98, 0x22, 0x53, 0xD5, 0x8A, 0xBE, 0x3B, 0xD5, 0x71, 0x07, 0x63, 0x5A, 0x46, 0xF0, 0x95, 0x12, 0x08, 0x5F, 0x4A, 0xDA, 0x08, 0xEC, 0x8B, 0x1B, -+ 0x39, 0x10, 0xB0, 0x15, 0x3B, 0x2A, 0xAF, 0xCA, 0xE5, 0x03, 0x3E, 0xDD, 0x41, 0x53, 0x24, 0x8D, 0xCD, 0x85, 0xB0, 0x2C, 0x9A, 0x25, 0xD8, 0xBD, 0xC4, 0x06, 0x8B, 0xB8, 0x57, 0x41, 0x72, 0x62, -+ 0x97, 0xA2, 0x5A, 0xEC, 0x55, 0xC4, 0x4A, 0xA2, 0x80, 0x59, 0xB7, 0x1B, 0xB9, 0xF3, 0x40, 0x67, 0x88, 0x7A, 0xDE, 0x4C, 0x1C, 0xA4, 0x90, 0x8B, 0x19, 0xB3, 0xD7, 0x81, 0x23, 0x45, 0x38, 0x76, -+ 0xDB, 0x4D, 0xCE, 0xB4, 0x27, 0x73, 0x06, 0x95, 0x72, 0xCD, 0x87, 0x77, 0xE6, 0x2C, 0xFB, 0xAF, 0x72, 0x03, 0xF0, 0x20, 0xF2, 0x81, 0xA6, 0x67, 0x8F, 0x79, 0x07, 0x20, 0xEA, 0xA2, 0x0E, 0x34, -+ 0x32, 0x7D, 0x7A, 0x63, 0x68, 0x8B, 0x09, 0xA0, 0x1F, 0x4D, 0x70, 0x88, 0xF7, 0xB5, 0x05, 0x9E, 0xDD, 0xEB, 0x45, 0xC0, 0xCE, 0x39, 0x32, 0x1C, 0x79, 0x52, 0x1D, 0x79, 0xA5, 0x9E, 0xCD, 0xD4, -+ 0x68, 0xCE, 0xD0, 0xEA, 0x82, 0xCA, 0x48, 0x49, 0x28, 0x70, 0x2F, 0x57, 0xD6, 0xFC, 0x18, 0xD3, 0x47, 0xAF, 0x3E, 0xD2, 0x2A, 0xAF, 0x45, 0xAB, 0xB0, 0xF2, 0x0B, 0xAB, 0x9E, 0x01, 0x55, 0x76, -+ 0x07, 0xAE, 0x3E, 0xD9, 0xCF, 0x0E, 0x26, 0xD3, 0x4D, 0x30, 0x54, 0x49, 0x66, 0x9E, 0xC6, 0xFC, 0x1B, 0xEC, 0xEA, 0xDC, 0xE1, 0x83, 0xF7, 0xA5, 0x94, 0xCE, 0xA1, 0x96, 0xD0, 0x59, 0xA1, 0xE5, -+ 0x50, 0xE5, 0x47, 0x86, 0x6C, 0xC0, 0x87, 0x33, 0x3F, 0x03, 0x0E, 0x62, 0x8F, 0x2C, 0xF1, 0x14, 0x79, 0x25, 0x41, 0x0E, 0xD0, 0x42, 0x1D, 0xC7, 0x50, 0x61, 0x38, 0xB1, 0xD1, 0x90, 0x99, 0xC6, -+ 0x95, 0xE1, 0xAF, 0xDA, 0xCE, 0x41, 0x53, 0x82, 0x5B, 0x66, 0xA8, 0xEC, 0xF5, 0x5A, 0x02, 0x1D, 0x21, 0xEB, 0x9F, 0x84, 0x8F, 0xE5, 0x5C, 0x21, 0x76, 0x9A, 0x75, 0x5F, 0xA9, 0x80, 0x7E, 0xF7, -+ 0x3A, 0x6C, 0x5B, 0xA1, 0x5A, 0x06, 0x34, 0x7D, 0x3F, 0x1C, 0x5C, 0x61, 0x9A, 0x31, 0x55, 0x98, 0x62, 0x91, 0x06, 0xAC, 0x0B, 0x86, 0xAE, 0x0D, 0x8E, 0x55, 0x57, 0x82, 0x92, 0x51, 0x72, 0x58, -+ 0xAE, 0x85, 0xF7, 0x2E, 0x73, 0x7A, 0xF5, 0x63, 0x8D, 0x09, 0x6B, 0x76, 0xA3, 0xC5, 0x7F, 0x1B, 0x9C, 0x80, 0xE7, 0x70, 0xA2, 0xD4, 0xEA, 0x4E, 0x42, 0xFE, 0x46, 0x9A, 0xD4, 0x21, 0x28, 0x52, -+ 0x41, 0x96, 0x0A, 0x8A, 0x86, 0x35, 0x5E, 0xF2, 0x2F, 0x58, 0x3F, 0xE3, 0xBA, 0xCA, 0xDF, 0x8D, 0xA3, 0x1D, 0x5C, 0x2D, 0xE2, 0x54, 0x16, 0x1B, 0xC6, 0xD1, 0x0F, 0x98, 0x41, 0xDD, 0x27, 0xED, -+ 0x46, 0x2A, 0x6B, 0x94, 0xB6, 0xDE, 0xEA, 0x90, 0xCB, 0xAB, 0x68, 0x7F, 0xB8, 0x4B, 0x56, 0x39, 0x5D, 0xA7, 0x63, 0xAB, 0x4B, 0x7F, 0xE3, 0x09, 0x5D, 0x57, 0x2D, 0x77, 0xEF, 0xF3, 0xFF, 0x0D, -+ 0x8F, 0x9D, 0x19, 0xAA, 0x5A, 0xF7, 0xB6, 0x76, 0x05, 0x3D, 0xBE, 0xF6, 0x4E, 0x61, 0xDD, 0x0A, 0x41, 0xD4, 0x02, 0x31, 0x8E, 0x33, 0x08, 0x66, 0x91, 0x06, 0x25, 0x9B, 0xF7, 0xA4, 0xCE, 0x31, -+ 0xB3, 0x46, 0xA9, 0xE9, 0x83, 0xED, 0xAB, 0xA0, 0x51, 0x80, 0x14, 0x9A, 0xB0, 0x57, 0xF9, 0x97, 0x29, 0x77, 0xDA, 0x7C, 0x6F, 0x46, 0xE0, 0xCD, 0xF8, 0x6F, 0x30, 0x91, 0xF0, 0x4F, 0xD4, 0xE8, -+ 0x3C, 0x60, 0x22, 0xE1, 0x8C, 0xE4, 0x38, 0x2B, 0x54, 0xD5, 0xDA, 0xBA, 0x82, 0xE4, 0xDF, 0x1E, 0x53, 0xBF, 0x31, 0xFE, 0x4B, 0xB6, 0x5A, 0x85, 0x24, 0xED, 0xA8, 0x3F, 0xD2, 0x9D, 0x07, 0xE4, -+ 0x97, 0x47, 0xB7, 0x52, 0x91, 0xCB, 0xC8, 0xF8, 0xEE, 0x14, 0x15, 0xEC, 0x92, 0x1E, 0x19, 0x02, 0x2A, 0xDE, 0x2C, 0x04, 0x7E, 0x4D, 0xF3, 0x50, 0x72, 0x89, 0xE9, 0xD7, 0x9A, 0x8E, 0x69, 0x92, -+ 0xB4, 0x8B, 0x88, 0x64, 0x20, 0x4A, 0x41, 0x6B, 0x76, 0x9C, 0xC7, 0x87, 0xD6, 0xDF, 0x44, 0x07, 0xE9, 0x3D, 0x12, 0x1F, 0x7F, 0xBE, 0xE0, 0xE4, 0x08, 0x96, 0x3E, 0x06, 0x09, 0xA9, 0xC7, 0x5C, -+ 0xB3, 0x11, 0x7C, 0xA5, 0x83, 0xDF, 0x6E, 0x79, 0xF3, 0x1C, 0x63, 0x5B, 0xF0, 0xF1, 0xBE, 0x98, 0xDF, 0x55, 0x07, 0x27, 0xA4, 0x5D, 0x3C, 0xA3, 0x37, 0xD7, 0x9D, 0xE5, 0xDC, 0xDB, 0x0B, 0x91, -+ 0xCA, 0xBB, 0xC3, 0x0D, 0x7E, 0xF0, 0xAE, 0x1C, 0xA1, 0xE9, 0x49, 0x04, 0xF7, 0x8C, 0x1F, 0xD8, 0xFB, 0xA8, 0x75, 0x45, 0xFD, 0xC1, 0x74, 0xAD, 0x81, 0x90, 0xF9, 0xB5, 0xED, 0x7B, 0x58, 0x69, -+ 0x49, 0x4F, 0xFA, 0x91, 0x03, 0x3F, 0xDC, 0x61, 0x17, 0xBF, 0x66, 0x2E, 0xC5, 0xF2, 0xAF, 0x26, 0x34, 0xBA, 0x3F, 0x8C, 0x02, 0x21, 0x0F, 0x1C, 0x9B, 0xCD, 0xDA, 0x9B, 0xB3, 0x97, 0x60, 0xE0, -+ 0x0F, 0x25, 0xA7, 0x27, 0x0C, 0x34, 0x56, 0x66, 0xFB, 0x6D, 0xF8, 0x5C, 0x91, 0x9A, 0xA1, 0x50, 0xCA, 0x7F, 0xC8, 0x0F, 0xC0, 0xEA, 0xCF, 0xE2, 0x42, 0xEF, 0x55, 0xF4, 0x29, 0x80, 0x63, 0x62, -+ 0x8E, 0x61, 0x05, 0x6C, 0x96, 0x6D, 0xB9, 0x96, 0x44, 0x28, 0xD9, 0xCE, 0x99, 0x10, 0x82, 0x71, 0xE2, 0x9A, 0x12, 0x32, 0x8E, 0x23, 0x99, 0x97, 0x34, 0xE0, 0x36, 0xF1, 0x8A, 0x0E, 0xB8, 0xF0, -+ 0x30, 0xE8, 0x80, 0x62, 0xC5, 0x67, 0x17, 0xE7, 0xA3, 0x63, 0x14, 0xE4, 0x4E, 0xCF, 0x35, 0x7F, 0xF5, 0x6E, 0xED, 0xF9, 0x0D, 0x3F, 0xB1, 0x1B, 0x22, 0xA1, 0xB2, 0x59, 0x05, 0xB3, 0x79, 0xFC, -+ 0xCA, 0x5C, 0xA1, 0xAC, 0xB9, 0x56, 0xE1, 0x78, 0xAD, 0x3F, 0x51, 0xD5, 0x35, 0xAD, 0x11, 0x98, 0x13, 0xB1, 0xE7, 0x0F, 0x73, 0x17, 0x65, 0x1B, 0xC7, 0x5C, 0xAC, 0x64, 0x27, 0x6B, 0xB9, 0x81, -+ 0x10, 0xB5, 0x4E, 0xA0, 0xEF, 0x34, 0x54, 0x1D, 0x73, 0x91, 0x07, 0x21, 0xD6, 0x57, 0x38, 0x76, 0x77, 0xE3, 0x32, 0xE9, 0xC8, 0x81, 0x1C, 0x3F, 0xC1, 0xB9, 0x23, 0xB2, 0xEE, 0x9C, 0x51, 0x2F, -+ 0x6D, 0x09, 0xDF, 0x37, 0x2A, 0x5F, 0x97, 0xFA, 0xD7, 0x12, 0x33, 0x89, 0xCE, 0xE1, 0x97, 0xB5, 0xC2, 0x69, 0xE2, 0x21, 0xD7, 0xEE, 0xD3, 0x16, 0x0A, 0x52, 0x1E, 0x56, 0xFF, 0x8A, 0xAF, 0xAB, -+ 0x68, 0x61, 0x79, 0xD0, 0x9D, 0x78, 0xFC, 0x38, 0x7B, 0x3E, 0xA6, 0xA6, 0x72, 0x03, 0x4D, 0x24, 0xAC, 0x79, 0x99, 0xD1, 0x96, 0xB2, 0x31, 0x64, 0x75, 0xF3, 0x7D, 0xB8, 0xE9, 0xED, 0x43, 0x1D, -+ 0xF5, 0x83, 0x41, 0xFA, 0x88, 0x00, 0x3D, 0x3C, 0x64, 0x89, 0xE7, 0x80, 0x53, 0xD8, 0xE4, 0x4C, 0xE7, 0xE1, 0x6A, 0xEF, 0x41, 0x68, 0x59, 0xB3, 0xD2, 0xAE, 0xCE, 0x09, 0x08, 0x6A, 0x74, 0x8B, -+ 0x7B, 0xCF, 0xD1, 0x0F, 0x73, 0xE3, 0xCF, 0x8B, 0x31, 0xF0, 0xCC, 0x44, 0xDA, 0x05, 0x9C, 0x69, 0xAB, 0xA5, 0xBC, 0x8E, 0xFA, 0xD4, 0x5D, 0x3F, 0x37, 0x6A, 0xF3, 0xA0, 0xDE, 0x6E, 0x16, 0x98, -+ 0x78, 0xBD, 0x84, 0x2E, 0x28, 0x79, 0x8E, 0x47, 0x43, 0xF8, 0x43, 0x84, 0x4B, 0xCD, 0xF8, 0x50, 0x6F, 0x13, 0x63, 0x91, 0xEC, 0x8E, 0x72, 0x1D, 0xC2, 0xB6, 0x28, 0x2D, 0x9C, 0x50, 0xFA, 0xB6, -+ 0x53, 0xA6, 0xAB, 0xF2, 0x89, 0x47, 0x42, 0x0E, 0x8C, 0x22, 0xA9, 0xA4, 0x87, 0xD7, 0x6A, 0x93, 0x89, 0x33, 0xB3, 0x4E, 0x49, 0x7D, 0xA9, 0x53, 0x94, 0x17, 0x6B, 0x27, 0x74, 0xC0, 0x9E, 0xF0, -+ 0xBB, 0x1E, 0xD8, 0xC3, 0xB1, 0x31, 0xA2, 0x19, 0x57, 0xB3, 0x1A, 0x0B, 0x47, 0xCB, 0xFB, 0xFF, 0x05, 0x33, 0xCA, 0xF3, 0x31, 0x25, 0x22, 0x1D, 0xB6, 0xBA, 0x4A, 0x51, 0x88, 0x64, 0x89, 0x2C, -+ 0xF2, 0x1D, 0x3D, 0x4D, 0x58, 0xB5, 0x99, 0xA3, 0x7A, 0x08, 0xF3, 0x44, 0xAA, 0x7E, 0xF9, 0x8E, 0x7D, 0x7D, 0x9D, 0x33, 0x16, 0xA6, 0xB1, 0x15, 0xD9, 0xB8, 0xF2, 0x0F, 0x93, 0xBC, 0x68, 0x65, -+ 0x73, 0x46, 0x99, 0xEB, 0x54, 0xC8, 0x88, 0xD7, 0xE5, 0xA0, 0xAC, 0xAF, 0xD1, 0x91, 0x53, 0x52, 0xB2, 0x94, 0x24, 0x37, 0x12, 0xCF, 0xE8, 0x2F, 0x85, 0x24, 0x8B, 0x00, 0x04, 0x5C, 0xF3, 0xD0, -+ 0x90, 0xC0, 0xC0, 0x0D, 0x7C, 0xA0, 0xE3, 0xA1, 0xF1, 0x47, 0x70, 0x3F, 0xD9, 0x4F, 0x71, 0x7E, 0x49, 0xC8, 0x1A, 0x7C, 0x3A, 0x76, 0x94, 0x6E, 0x20, 0xA6, 0x3F, 0x3B, 0x7C, 0x3E, 0xAB, 0xA9, -+ 0x22, 0x5A, 0xBE, 0x0B, 0x34, 0xCB, 0x0C, 0xF2, 0x35, 0x06, 0x39, 0x67, 0xD1, 0x6B, 0xC8, 0xA6, 0x9C, 0x13, 0x0C, 0xCE, 0x28, 0x76, 0x15, 0xCC, 0x05, 0x31, 0x14, 0x16, 0x7E, 0xAC, 0x4E, 0x95, -+ 0xBB, 0xAB, 0xDF, 0xBB, 0xCF, 0x96, 0xBC, 0x0C, 0x0D, 0x65, 0xEA, 0x00, 0x0A, 0xEA, 0xF4, 0x90, 0xD7, 0x23, 0x95, 0x5B, 0xD1, 0xB4, 0xD6, 0x91, 0x54, 0xD2, 0x62, 0xF6, 0xA6, 0xD3, 0x53, 0x4B, -+ 0xB0, 0xBC, 0x39, 0x7C, 0x29, 0xEC, 0xC6, 0xB1, 0x44, 0x7B, 0x75, 0xC9, 0x53, 0xAF, 0x44, 0x1D, 0xE2, 0xE7, 0x13, 0x3A, 0x7A, 0xC9, 0x89, 0x88, 0xA7, 0xEF, 0x9E, 0x6E, 0xE6, 0x35, 0x58, 0xAA, -+ 0xAD, 0xA0, 0x60, 0x3B, 0xD5, 0x29, 0x77, 0x6F, 0x05, 0x55, 0x8D, 0x2D, 0xF5, 0x64, 0x1C, 0x41, 0x2E, 0x73, 0x47, 0x44, 0x0F, 0x65, 0xEB, 0x82, 0x3A, 0xFC, 0x7C, 0xCA, 0xE6, 0xB9, 0x71, 0x08, -+ 0xB8, 0x57, 0x28, 0x7A, 0x04, 0x86, 0xDB, 0xBE, 0x68, 0x9D, 0x77, 0x0C, 0xA9, 0x24, 0x71, 0x30, 0x9E, 0x73, 0xAD, 0x39, 0x0A, 0xBF, 0x56, 0x91, 0x2B, 0x2B, 0x7C, 0x49, 0x24, 0x2C, 0xEC, 0x15, -+ 0x7B, 0xDB, 0xBD, 0x49, 0x35, 0x53, 0x73, 0x5C, 0xB1, 0xD9, 0xB4, 0x0A, 0xFC, 0x21, 0x4D, 0xA1, 0x53, 0x35, 0x9C, 0x9D, 0xF5, 0x76, 0x13, 0x59, 0x01, 0xC2, 0xFD, 0xA5, 0x8C, 0x00, 0x95, 0xB6, -+ 0xFC, 0xE3, 0xFD, 0x07, 0x31, 0xDF, 0x34, 0x86, 0x3A, 0xF2, 0x88, 0x2D, 0x53, 0x77, 0x3C, 0xE7, 0xC1, 0x82, 0x47, 0x37, 0x22, 0xAA, 0x79, 0xA6, 0xB3, 0x7D, 0x3E, 0xDD, 0xDE, 0x38, 0xFA, 0x71, -+ 0xDF, 0x8C, 0x0E, 0xDC, 0x08, 0x1E, 0xFE, 0xD8, 0xCE, 0x60, 0x6E, 0x48, 0x29, 0x91, 0x80, 0xEC, 0x6F, 0xE3, 0x5F, 0xAB, 0x64, 0x99, 0x10, 0xC4, 0x8A, 0x6A, 0x29, 0xF9, 0xD0, 0xF8, 0x55, 0x57, -+ 0xE1, 0x0B, 0xC5, 0xAE, 0x2E, 0xCF, 0x02, 0x8A, 0xE3, 0x99, 0xF5, 0x5C, 0xD7, 0x97, 0x60, 0x28, 0x93, 0x5C, 0xC0, 0x3C, 0x0C, 0xAF, 0xD5, 0x00, 0x3C, 0x9E, 0xAE, 0xD2, 0x47, 0xFB, 0xE3, 0x0A, -+ 0x28, 0x4C, 0xC4, 0x47, 0x0A, 0x55, 0x25, 0xA6, 0x49, 0x8E, 0x1D, 0xBB, 0xD3, 0x08, 0x5C, 0x3F, 0x9D, 0x77, 0xC6, 0x06, 0x4D, 0x01, 0x81, 0xBC, 0x5A, 0x82, 0x95, 0x61, 0x56, 0x0A, 0xA9, 0xA4, -+ 0xEA, 0x81, 0x73, 0xD7, 0x93, 0x7A, 0x94, 0x28, 0x10, 0x9C, 0xB3, 0xA6, 0x6B, 0x2B, 0x3D, 0xE1, 0x1F, 0x88, 0xF5, 0x5A, 0xB2, 0x1E, 0xB4, 0x9B, 0x77, 0xA3, 0x97, 0x62, 0xCA, 0x92, 0x64, 0xE0, -+ 0x15, 0x65, 0x66, 0x76, 0x5E, 0x2D, 0x36, 0x26, 0xB7, 0x2B, 0x80, 0xBD, 0x14, 0x11, 0xE4, 0xEC, 0x53, 0x55, 0x28, 0x28, 0xA2, 0x4B, 0xC8, 0xCD, 0xC4, 0x7F, 0x46, 0x5F, 0xDD, 0xF4, 0x77, 0x2C, -+ 0x7B, 0xC0, 0x20, 0x66, 0x85, 0x40, 0x11, 0x28, 0x7F, 0x73, 0x9A, 0xBA, 0x60, 0x47, 0x59, 0x67, 0x47, 0xF4, 0x23, 0x4A, 0xE2, 0x27, 0xDB, 0xFF, 0xAB, 0xF0, 0xE1, 0x31, 0x53, 0xE2, 0xE0, 0x69, -+ 0xF0, 0xB7, 0x90, 0x25, 0x1B, 0xE8, 0x77, 0xFE, 0x5A, 0x19, 0x8E, 0x80, 0x82, 0x58, 0x63, 0x9F, 0x5E, 0x79, 0xD3, 0xD5, 0xCD, 0x16, 0xF1, 0xA5, 0x73, 0x72, 0x4D, 0xD6, 0xA9, 0xF6, 0x99, 0x0C, -+ 0x45, 0x02, 0x33, 0x4D, 0xC6, 0x6F, 0x65, 0x49, 0x34, 0x90, 0x67, 0x3A, 0xB3, 0x0D, 0xCA, 0x7C, 0x03, 0x1F, 0x0C, 0x21, 0x2C, 0x0D, 0x8B, 0xC9, 0xD0, 0xC8, 0x74, 0xB3, 0x19, 0xA9, 0x7A, 0xD1, -+ 0xCE, 0x93, 0x95, 0xD3, 0xD1, 0x54, 0x20, 0x31, 0x56, 0xC5, 0x1C, 0xC3, 0xB9, 0xCB, 0x13, 0xD0, 0xBA, 0x1B, 0xDF, 0x61, 0x8B, 0xC8, 0xEE, 0xCA, 0x9D, 0xDD, 0x94, 0x12, 0x05, 0x0C, 0xFA, 0x09, -+ 0x23, 0x57, 0x27, 0xAA, 0x50, 0xD4, 0x6F, 0x79, 0xAD, 0x6F, 0x3C, 0x5A, 0x1B, 0xB6, 0xB2, 0x84, 0xC8, 0x31, 0x1D, 0xCF, 0x93, 0x75, 0x68, 0x59, 0x70, 0x4D, 0xF8, 0xFC, 0x3B, 0xB8, 0xD2, 0xF5, -+ 0xE0, 0x94, 0xE0, 0x45, 0x02, 0x35, 0x49, 0x42, 0xE9, 0xC8, 0x52, 0xB2, 0x08, 0xD4, 0x90, 0x18, 0x34, 0x33, 0x2E, 0xBC, 0x60, 0x32, 0x70, 0xCB, 0x57, 0xED, 0x41, 0x8C, 0x34, 0xCE, 0x48, 0xAA, -+ }, -+ .pkcs8_len = 0, -+ .spki_len = 0, -+ .msg_len = 33, -+ .msg = { 0xD8, 0x1C, 0x4D, 0x8D, 0x73, 0x4F, 0xCB, 0xFB, 0xEA, 0xDE, 0x3D, 0x3F, 0x8A, 0x03, 0x9F, 0xAA, 0x2A, 0x2C, 0x99, 0x57, 0xE8, 0x35, 0xAD, 0x55, 0xB2, 0x2E, 0x75, 0xBF, 0x57, 0xBB, 0x55, 0x6A, -+ 0xC8 }, -+ .sig_len = 4595, -+ .sig = { -+ 0xBB, 0xF8, 0x5F, 0xFD, 0x0E, 0x01, 0xC8, 0x0C, 0x8C, 0x1C, 0x19, 0x31, 0xCD, 0x64, 0x0B, 0xF2, 0x73, 0xD4, 0x96, 0x93, 0xC4, 0xC4, 0xBF, 0xF5, 0xDD, 0x20, 0xD9, 0x4C, 0xF3, 0x75, 0x7A, 0xBD, -+ 0x45, 0x47, 0x3B, 0x9D, 0x01, 0xB1, 0x87, 0x13, 0x05, 0xDA, 0x90, 0xED, 0xC6, 0x70, 0x7D, 0x54, 0x17, 0x12, 0x94, 0x67, 0xF6, 0x1F, 0x72, 0x39, 0x50, 0xC1, 0xAE, 0xDF, 0x70, 0x55, 0xEC, 0x1D, -+ 0x47, 0x77, 0xAD, 0x88, 0x08, 0xE8, 0xB3, 0x47, 0xD1, 0xD0, 0x92, 0x1E, 0xBA, 0xB8, 0x90, 0xCC, 0xA8, 0xE3, 0xA0, 0xDF, 0xD3, 0x00, 0x3D, 0xE9, 0xF9, 0xCB, 0x4A, 0x97, 0xD8, 0x84, 0xE1, 0xDD, -+ 0x04, 0x2C, 0x95, 0x8B, 0x81, 0x6F, 0x72, 0x37, 0x03, 0x2B, 0x20, 0xF8, 0x39, 0x9A, 0x51, 0x82, 0xF4, 0x65, 0x25, 0xEC, 0x35, 0x7D, 0x2F, 0x03, 0x43, 0x74, 0x03, 0xE0, 0xCB, 0x5D, 0xCA, 0x4A, -+ 0x13, 0xFD, 0x2F, 0x1B, 0x09, 0x20, 0x5B, 0x98, 0x90, 0xF0, 0x2E, 0xE5, 0xAF, 0x54, 0x29, 0x43, 0xE6, 0xF9, 0x37, 0x5E, 0xD0, 0x8A, 0x38, 0x53, 0x30, 0x42, 0xD6, 0xBB, 0xD5, 0x0F, 0x37, 0x25, -+ 0x1B, 0x15, 0x90, 0xF6, 0x3B, 0x4B, 0x58, 0xA7, 0xD1, 0xE1, 0xF3, 0x1C, 0xE6, 0x2E, 0x3D, 0x2A, 0xA9, 0x1E, 0x1C, 0x76, 0x7B, 0x9C, 0x3F, 0x5C, 0xB2, 0x68, 0x23, 0xF9, 0x7A, 0xD1, 0xD9, 0xFF, -+ 0xAB, 0x28, 0x75, 0xEB, 0x68, 0xFF, 0xA9, 0xB0, 0x99, 0x46, 0xEF, 0x1D, 0x70, 0x12, 0xC0, 0x29, 0x19, 0xEF, 0x13, 0xCB, 0x10, 0x0C, 0x2E, 0x2C, 0x79, 0x87, 0xA0, 0xA5, 0x78, 0x5B, 0x5F, 0x3F, -+ 0x3B, 0x94, 0x8B, 0x7F, 0xD6, 0x4B, 0x85, 0xB1, 0x65, 0xAE, 0x2F, 0xBF, 0x3C, 0x47, 0xE0, 0x39, 0xC3, 0x07, 0x3C, 0xA7, 0x8F, 0xC9, 0x00, 0xBB, 0xCD, 0xC0, 0x69, 0xFE, 0x90, 0x68, 0x85, 0xD5, -+ 0xB1, 0x37, 0x40, 0xA2, 0x23, 0xAF, 0x52, 0x54, 0xF9, 0x8C, 0x1D, 0x58, 0xE2, 0xFC, 0x92, 0xB0, 0x37, 0x3E, 0x2A, 0x93, 0x33, 0x53, 0xCC, 0x3E, 0xEC, 0xD3, 0x9F, 0x71, 0xD5, 0x9C, 0xFA, 0x09, -+ 0x29, 0x4E, 0x38, 0x26, 0x2A, 0x44, 0x89, 0x40, 0x0D, 0x22, 0x29, 0x82, 0xF9, 0xC7, 0x80, 0xCD, 0x07, 0x31, 0xD4, 0xEE, 0xD9, 0x16, 0xC5, 0xA3, 0x1A, 0xBC, 0xD0, 0x2A, 0x59, 0x0E, 0xD8, 0xC6, -+ 0xFF, 0xE1, 0x8B, 0x5F, 0xC7, 0xB6, 0x88, 0x8E, 0x74, 0x72, 0x69, 0x40, 0xD0, 0x2C, 0xCC, 0x62, 0xD7, 0x8B, 0xCA, 0xED, 0xDA, 0x2E, 0x02, 0x8E, 0x53, 0x5C, 0xDA, 0xFC, 0x0E, 0x09, 0x1B, 0xEF, -+ 0x50, 0xDE, 0x2D, 0xFD, 0x12, 0x4F, 0x1E, 0x85, 0x4F, 0x56, 0x85, 0x27, 0xAE, 0xF4, 0xDC, 0x84, 0x55, 0xFD, 0xA0, 0x1B, 0x6D, 0x0D, 0x43, 0x04, 0x8E, 0xD5, 0xAB, 0x42, 0xB1, 0xD4, 0x08, 0x13, -+ 0x99, 0x4B, 0x9F, 0x6A, 0xA0, 0xC0, 0x36, 0xC0, 0xDC, 0xF0, 0x8F, 0x46, 0xB0, 0x0F, 0xDA, 0x01, 0x44, 0x77, 0xCF, 0x87, 0x9B, 0x8F, 0xE5, 0xEA, 0xC4, 0x54, 0x1B, 0x82, 0xDA, 0x00, 0xB4, 0x34, -+ 0x60, 0x46, 0x86, 0x5B, 0x09, 0x2E, 0xD6, 0xAE, 0x01, 0x15, 0xFC, 0x83, 0x4B, 0x58, 0xF7, 0x5F, 0xF9, 0x28, 0xD7, 0xD9, 0x9A, 0xC8, 0x69, 0x1F, 0xF7, 0x00, 0x20, 0xAB, 0xA2, 0x54, 0x80, 0xAB, -+ 0xBC, 0xC7, 0x09, 0xE4, 0x6E, 0xC5, 0x10, 0xF4, 0xB8, 0xCA, 0xDD, 0x60, 0x04, 0x59, 0x54, 0xD3, 0xED, 0xDA, 0x7C, 0x23, 0xE0, 0x3D, 0x91, 0x69, 0x4D, 0x3C, 0x3E, 0xA2, 0x92, 0xC9, 0x25, 0x35, -+ 0xE6, 0xB5, 0xFE, 0x17, 0x1C, 0x56, 0x7D, 0xF3, 0x72, 0x94, 0x06, 0xCD, 0xBA, 0x2A, 0x5E, 0xFA, 0x59, 0xF1, 0x56, 0xE9, 0xCC, 0xD0, 0x30, 0x2F, 0xDC, 0x0F, 0x8B, 0xB7, 0x59, 0xB0, 0x5D, 0xFF, -+ 0x5D, 0xD8, 0x02, 0xCE, 0x4D, 0x55, 0x06, 0xA1, 0x9A, 0x69, 0xD7, 0x0B, 0x3A, 0xB4, 0x8A, 0xB1, 0x7A, 0x2F, 0xE5, 0x95, 0x89, 0xF7, 0x30, 0x83, 0xCC, 0xA5, 0x47, 0xFF, 0xB3, 0xF1, 0x46, 0x83, -+ 0xC9, 0x14, 0xBC, 0x13, 0x45, 0xE7, 0x38, 0x7E, 0x83, 0x1E, 0xE6, 0x03, 0x75, 0x01, 0x49, 0x5C, 0x92, 0xC3, 0x57, 0x70, 0x5A, 0x69, 0xF9, 0x52, 0xA2, 0xF7, 0xCD, 0x30, 0xE0, 0x33, 0x36, 0xAF, -+ 0xAA, 0xFC, 0x9C, 0x56, 0x60, 0x4C, 0xD5, 0x45, 0xE8, 0x2A, 0xA1, 0x2A, 0xF0, 0x58, 0xDA, 0xBA, 0x97, 0x43, 0x87, 0xFE, 0x8D, 0xCD, 0xEC, 0x69, 0x9A, 0x1E, 0x38, 0x53, 0xE2, 0x6D, 0x29, 0xE1, -+ 0x57, 0x81, 0x89, 0xAA, 0x8C, 0x2B, 0xBA, 0x15, 0x50, 0xDF, 0xBE, 0xDD, 0x1E, 0x4F, 0x22, 0x4E, 0xFC, 0xD6, 0x54, 0x91, 0xE5, 0x4E, 0x56, 0x12, 0x8A, 0xE7, 0xC2, 0xDC, 0x85, 0x66, 0x79, 0x7A, -+ 0xBF, 0x2D, 0x94, 0x55, 0x91, 0x52, 0x03, 0xA5, 0xC8, 0x9E, 0x55, 0xDD, 0x23, 0xDF, 0x82, 0x74, 0x36, 0xA8, 0xD6, 0xDC, 0xC5, 0xAC, 0xA8, 0x2F, 0x9B, 0x18, 0x36, 0x92, 0x15, 0x9E, 0xC0, 0x3F, -+ 0x2B, 0x79, 0x8E, 0x55, 0x7D, 0x14, 0x73, 0x46, 0xD8, 0x35, 0xA8, 0xD8, 0x1B, 0x2E, 0x3D, 0x40, 0x86, 0x39, 0x66, 0x86, 0x3A, 0x54, 0xD9, 0xC8, 0x7B, 0x5A, 0xAC, 0xE9, 0x63, 0xCD, 0x52, 0x9A, -+ 0xDB, 0xAE, 0x07, 0x07, 0x0C, 0xEA, 0x00, 0xB7, 0x80, 0xE1, 0x81, 0x31, 0xE6, 0x4F, 0x0A, 0xD7, 0x0E, 0x91, 0x58, 0xF5, 0x90, 0xD0, 0x0A, 0xD9, 0x17, 0x79, 0x08, 0xB9, 0x03, 0x45, 0xFD, 0x79, -+ 0xD0, 0x25, 0x57, 0x71, 0xC6, 0x08, 0xAF, 0x65, 0xEE, 0x5A, 0xC3, 0xC5, 0x01, 0x66, 0xBA, 0xD0, 0x57, 0x38, 0x02, 0x58, 0x68, 0x19, 0x41, 0x56, 0x0F, 0x11, 0x33, 0x40, 0x5F, 0xC2, 0xD7, 0x61, -+ 0x13, 0x14, 0xB4, 0x38, 0x1D, 0x54, 0x59, 0xDC, 0xDE, 0xDE, 0x4D, 0x39, 0xF3, 0x82, 0x3B, 0xC4, 0x42, 0x2B, 0xB1, 0xD7, 0x36, 0xE7, 0x47, 0x4A, 0x80, 0x89, 0xF0, 0xEC, 0xFA, 0x3C, 0x30, 0xAA, -+ 0xC1, 0x19, 0xFF, 0xA4, 0x2B, 0xF7, 0x43, 0xF4, 0x8E, 0x0F, 0xDD, 0x96, 0x02, 0x92, 0xD3, 0xE4, 0x9A, 0x14, 0xEB, 0x05, 0x90, 0xC8, 0xE0, 0x2E, 0x42, 0x1D, 0x54, 0xAE, 0x8A, 0x52, 0x19, 0x51, -+ 0x5E, 0x21, 0x89, 0x59, 0x89, 0xA0, 0xD7, 0x1D, 0x4F, 0x45, 0x16, 0x69, 0xCD, 0x65, 0x2D, 0xA3, 0x48, 0x9E, 0x5C, 0xDB, 0xC0, 0x87, 0x6B, 0xA0, 0xA0, 0x89, 0x9E, 0x7D, 0x87, 0x73, 0xB2, 0x4A, -+ 0xFC, 0x2C, 0xD6, 0xD3, 0x7C, 0xA3, 0x80, 0xA5, 0xD0, 0xDD, 0x43, 0x63, 0x04, 0xD6, 0xE1, 0xA4, 0xDC, 0xD6, 0x38, 0xE8, 0xB9, 0x5E, 0x6C, 0x95, 0x46, 0x5C, 0x66, 0x90, 0xD4, 0xEF, 0xE8, 0xF4, -+ 0x46, 0x91, 0xE4, 0x8D, 0xE2, 0x2C, 0xFC, 0x69, 0x1C, 0x75, 0x61, 0xAD, 0x8C, 0xC1, 0xA2, 0xC3, 0xCC, 0x9F, 0xB8, 0x6F, 0xF6, 0xF4, 0x70, 0x5A, 0x57, 0x3A, 0x72, 0x04, 0x71, 0xED, 0x33, 0xA0, -+ 0x0E, 0x8A, 0x60, 0x20, 0x38, 0x18, 0xA3, 0x96, 0x1E, 0x4D, 0x21, 0x3A, 0x78, 0xB8, 0x62, 0x63, 0x94, 0xF7, 0x5C, 0x28, 0x23, 0x15, 0x57, 0x4C, 0xCD, 0x72, 0x5A, 0x67, 0xE2, 0x0F, 0x0B, 0xF2, -+ 0x24, 0xBF, 0xFC, 0xAB, 0xD7, 0x02, 0xBF, 0xD4, 0xE1, 0xCC, 0x5F, 0x78, 0xBE, 0xC0, 0xE0, 0x42, 0xE1, 0x2E, 0xD4, 0xC9, 0x47, 0x4B, 0xDD, 0x5E, 0xED, 0x2A, 0xEB, 0x53, 0xF4, 0xA9, 0x58, 0xD7, -+ 0xF8, 0x4E, 0xFD, 0x56, 0xEC, 0x03, 0x0A, 0x94, 0xD2, 0x00, 0xA5, 0x39, 0xDE, 0x16, 0x4E, 0x53, 0xC8, 0x2A, 0xFE, 0x8C, 0x5F, 0x71, 0xBB, 0x99, 0xA0, 0x1F, 0x72, 0x30, 0xB7, 0xAE, 0xBC, 0x21, -+ 0x3E, 0xCD, 0xDB, 0xEF, 0x5B, 0x9E, 0x90, 0x64, 0x87, 0x43, 0x96, 0xF8, 0xA9, 0x1B, 0x05, 0x75, 0xF6, 0x8A, 0x45, 0x15, 0xDD, 0x15, 0x81, 0x78, 0xBF, 0x27, 0x7A, 0x90, 0xA3, 0xFE, 0xA2, 0x00, -+ 0x92, 0x00, 0xDA, 0x2E, 0xDA, 0x2C, 0x8B, 0x3A, 0x47, 0xC1, 0x04, 0xD3, 0x50, 0xDF, 0x68, 0xE9, 0x4C, 0x8A, 0x40, 0x23, 0xD3, 0xAE, 0xFB, 0xB7, 0x07, 0x18, 0xFA, 0x2E, 0x27, 0xE6, 0xA5, 0xC3, -+ 0xF9, 0x92, 0x7E, 0xC5, 0x96, 0xAB, 0x54, 0x0F, 0x46, 0x3A, 0xE0, 0x10, 0xEF, 0x71, 0xB8, 0x9B, 0x49, 0x49, 0x7F, 0x0C, 0xFD, 0x29, 0x39, 0xFF, 0xAB, 0x2A, 0x7D, 0xD1, 0x24, 0x7D, 0xC4, 0xA5, -+ 0x9D, 0x84, 0x11, 0xA8, 0x43, 0xBD, 0x84, 0xF1, 0xEA, 0x8D, 0xA3, 0x3C, 0x07, 0x01, 0xD7, 0x0A, 0xC2, 0x7C, 0x4B, 0xDB, 0xD0, 0xD9, 0xA0, 0xCA, 0xB8, 0x6B, 0x1F, 0xC5, 0xBE, 0x12, 0x45, 0x8A, -+ 0x25, 0x80, 0xA6, 0xCA, 0xB4, 0xB7, 0x65, 0xB8, 0x42, 0xC6, 0x7A, 0xD5, 0x4C, 0xA5, 0xD4, 0x0A, 0x24, 0xE2, 0xDD, 0xBC, 0xF0, 0x1E, 0x46, 0x6E, 0x08, 0xD9, 0xB3, 0x44, 0x9F, 0x13, 0xE8, 0x2E, -+ 0x16, 0xD6, 0x1C, 0x72, 0x3F, 0xB9, 0x46, 0x2E, 0x97, 0xB7, 0xAB, 0xC7, 0x0B, 0x22, 0x10, 0xEC, 0xA1, 0x6B, 0x16, 0x0D, 0x5B, 0x8F, 0x98, 0xA1, 0x79, 0x4D, 0xCA, 0x92, 0xCD, 0x4F, 0x02, 0x7F, -+ 0x3E, 0x41, 0x52, 0xEA, 0x87, 0x95, 0x07, 0xDD, 0xFE, 0x7F, 0x1F, 0x21, 0x51, 0x41, 0x53, 0xF0, 0x36, 0xAA, 0xBC, 0x33, 0xF1, 0x72, 0xC9, 0x5A, 0x9B, 0x77, 0x47, 0x22, 0x80, 0x0F, 0x2E, 0x08, -+ 0xCC, 0x44, 0xF9, 0x23, 0x54, 0x0D, 0x8A, 0xF6, 0x4B, 0x42, 0x99, 0x68, 0xB2, 0x80, 0x36, 0x4C, 0x1B, 0x7B, 0x4B, 0x3E, 0x9B, 0xEE, 0x40, 0xC5, 0x00, 0x02, 0x65, 0x7D, 0x99, 0x46, 0x31, 0xF3, -+ 0x3A, 0x8F, 0x8F, 0x13, 0x4A, 0x27, 0xEB, 0x69, 0xBA, 0x43, 0x95, 0x90, 0x8B, 0xA4, 0x06, 0x34, 0xB8, 0xF2, 0x70, 0x31, 0x49, 0x27, 0x5F, 0xFB, 0xBE, 0x8B, 0x48, 0x3E, 0xA1, 0xBB, 0xA9, 0x1C, -+ 0x28, 0x10, 0x51, 0x36, 0xD9, 0x7C, 0x47, 0x0E, 0xE8, 0x3C, 0xD2, 0x1C, 0xEB, 0x2B, 0x21, 0xAA, 0xED, 0x98, 0xDB, 0x8A, 0xB1, 0x65, 0xA7, 0xB4, 0xBE, 0x55, 0x9E, 0x7E, 0xAC, 0xA6, 0x84, 0x60, -+ 0x30, 0x15, 0xBC, 0x34, 0x9B, 0x0A, 0x51, 0x21, 0x4E, 0x4E, 0x8F, 0xBE, 0x1D, 0x2D, 0x88, 0x3F, 0x79, 0xFD, 0x3F, 0x1E, 0xDC, 0xDD, 0x3F, 0xA6, 0xD4, 0xB5, 0xBB, 0xD2, 0xA5, 0xB3, 0x00, 0x3A, -+ 0x80, 0xF1, 0xDA, 0xDE, 0x97, 0x5B, 0x50, 0x2C, 0x7F, 0x72, 0x03, 0x73, 0x16, 0xBC, 0x55, 0xC1, 0xE5, 0x7E, 0x50, 0x06, 0x27, 0xD6, 0x0E, 0x31, 0x08, 0x74, 0x31, 0xD2, 0xC9, 0xD0, 0x2C, 0xA9, -+ 0xF0, 0xEB, 0xCC, 0xD4, 0xBF, 0xE3, 0xC4, 0xBB, 0x53, 0x6D, 0x4C, 0xFE, 0xF7, 0x51, 0x07, 0x50, 0x45, 0x2D, 0x44, 0x4B, 0xE2, 0xC3, 0xD6, 0x4D, 0x84, 0xA8, 0x32, 0x96, 0x53, 0x05, 0x26, 0x4A, -+ 0xBB, 0x53, 0xE3, 0x61, 0x49, 0x40, 0xF9, 0xB2, 0xF1, 0xEA, 0x6F, 0x41, 0xCA, 0x8F, 0x69, 0xE7, 0x26, 0x69, 0x0B, 0xA6, 0x30, 0x63, 0x0F, 0x8A, 0x91, 0x6E, 0xE8, 0x56, 0x26, 0x82, 0x51, 0xB7, -+ 0x73, 0xDC, 0x2A, 0x5D, 0xB4, 0x5D, 0x22, 0xDF, 0xB2, 0x43, 0x9C, 0xA4, 0xB7, 0xAB, 0x70, 0x21, 0x5D, 0x23, 0xE1, 0xF2, 0xE2, 0x61, 0x73, 0x94, 0xFF, 0x78, 0x3B, 0x0B, 0xFF, 0x6D, 0xF0, 0x34, -+ 0x5C, 0xC9, 0x27, 0x05, 0x3D, 0x02, 0xC6, 0x5F, 0xE2, 0xA8, 0x6D, 0xEF, 0xBE, 0xBF, 0x52, 0x43, 0xA2, 0xEF, 0x6A, 0x63, 0x12, 0xBA, 0xED, 0xB6, 0xE6, 0x0D, 0xBB, 0x0C, 0x67, 0xCC, 0x9A, 0x65, -+ 0x55, 0x85, 0xCB, 0x45, 0x8D, 0x6A, 0x04, 0x18, 0x11, 0x94, 0x81, 0x5F, 0x03, 0xBE, 0x87, 0xF6, 0xE8, 0x00, 0x49, 0x2A, 0x24, 0xC5, 0xD5, 0x02, 0xD5, 0xEC, 0xD5, 0x3D, 0xD6, 0xDA, 0x36, 0x79, -+ 0x95, 0xD3, 0x2E, 0x8B, 0xBA, 0xA3, 0xEF, 0x62, 0x72, 0x7E, 0x8A, 0x61, 0x0E, 0x8D, 0x6B, 0x5C, 0x8F, 0xAB, 0xCB, 0xE8, 0x89, 0x3B, 0xDB, 0x5E, 0x03, 0x86, 0x27, 0xF7, 0x07, 0xE8, 0x46, 0x4C, -+ 0x55, 0xDC, 0xBB, 0x76, 0xF0, 0x83, 0x6A, 0xDD, 0x29, 0x8A, 0x96, 0x7C, 0x45, 0x95, 0x08, 0xBC, 0x4E, 0x88, 0xBA, 0x5C, 0xA3, 0x8F, 0x5A, 0x56, 0x1A, 0x6D, 0x2D, 0x6C, 0xB2, 0x17, 0x8D, 0x90, -+ 0xAC, 0x85, 0x0C, 0xA2, 0x73, 0x4B, 0x45, 0xC4, 0xA8, 0x9A, 0xA0, 0xF1, 0x52, 0xA3, 0xB5, 0x3B, 0xCF, 0x1E, 0x13, 0x53, 0x2B, 0x2B, 0x5B, 0x38, 0x78, 0xB2, 0x05, 0xBD, 0x2B, 0x32, 0x7D, 0xC4, -+ 0x9E, 0xB6, 0x66, 0x0B, 0x95, 0x11, 0xBF, 0xAE, 0x90, 0xC1, 0xDE, 0xA5, 0xBD, 0xEB, 0x6D, 0xC5, 0xDA, 0x06, 0x8B, 0xCB, 0xDC, 0x6C, 0x09, 0x3E, 0x57, 0x27, 0xE3, 0x87, 0x37, 0x4F, 0x45, 0x2F, -+ 0x96, 0x3C, 0x30, 0x7D, 0xEE, 0x86, 0x5D, 0x41, 0xAA, 0x12, 0x4C, 0xA8, 0x03, 0xC1, 0x2F, 0x9A, 0xE9, 0x29, 0x9C, 0x3C, 0xB1, 0x34, 0x5F, 0xCC, 0x56, 0x8C, 0x6E, 0x71, 0xBE, 0x33, 0x66, 0xBF, -+ 0x30, 0xEF, 0xEE, 0xEF, 0xC7, 0x69, 0x3C, 0x36, 0xAC, 0xE5, 0x76, 0xB0, 0xD1, 0x0F, 0x40, 0x2F, 0x38, 0x00, 0x09, 0xFD, 0x0E, 0xC0, 0x68, 0xCB, 0x2D, 0x45, 0x98, 0x48, 0x84, 0xED, 0xF1, 0x6B, -+ 0xC9, 0x0B, 0x0F, 0xF6, 0xDC, 0x96, 0x30, 0x9E, 0xA3, 0x77, 0xA3, 0xCE, 0xC0, 0x43, 0xCB, 0x76, 0xB6, 0xC8, 0x85, 0xBB, 0xB8, 0x48, 0xC4, 0x74, 0x5B, 0x71, 0xE1, 0x8C, 0x58, 0xE7, 0x80, 0x50, -+ 0xE1, 0x9B, 0xD7, 0xBE, 0x08, 0x31, 0xEF, 0xE9, 0x05, 0x2A, 0x6A, 0x7D, 0xF8, 0xD4, 0xE8, 0xB9, 0xFC, 0x3E, 0x08, 0x2A, 0x4D, 0x40, 0xAD, 0x73, 0xE4, 0xB3, 0x18, 0x5E, 0x2F, 0x6D, 0xED, 0xE7, -+ 0xEE, 0x51, 0xA4, 0x06, 0x8F, 0xF2, 0xDA, 0x57, 0x37, 0x3F, 0xD7, 0xE7, 0xBD, 0x46, 0xE0, 0x08, 0x0F, 0x4C, 0x2C, 0x1F, 0x41, 0xBC, 0x25, 0x0E, 0x6D, 0xA4, 0x5A, 0x34, 0x1F, 0x21, 0x47, 0x71, -+ 0xF5, 0x53, 0x1A, 0x67, 0xB0, 0xFD, 0x97, 0xB5, 0x3C, 0xD7, 0x2C, 0xFA, 0xC7, 0x21, 0x5B, 0xC4, 0x11, 0x1F, 0x09, 0x40, 0x30, 0xA9, 0x13, 0x83, 0xD2, 0x01, 0x82, 0x21, 0x0F, 0xCE, 0xCD, 0x75, -+ 0xE5, 0x9C, 0x4B, 0x0B, 0x33, 0xA3, 0xF9, 0x3D, 0x86, 0x5D, 0x84, 0x7E, 0xC2, 0x41, 0xE1, 0xB9, 0x84, 0x81, 0xC5, 0xD9, 0xD2, 0x7F, 0x0A, 0xE2, 0x62, 0xB3, 0x28, 0x65, 0x0C, 0xDC, 0x13, 0xCD, -+ 0x99, 0x86, 0x6B, 0xE9, 0xA5, 0xA0, 0x30, 0xE8, 0x3D, 0x84, 0xE3, 0x2B, 0xD2, 0x13, 0xC9, 0x4B, 0xD6, 0xAF, 0x95, 0x04, 0x33, 0xA4, 0xF0, 0x0C, 0x61, 0x49, 0x78, 0x3B, 0x00, 0x75, 0x0C, 0xDF, -+ 0xD4, 0xF4, 0x7A, 0xE7, 0x52, 0x17, 0xEE, 0xD1, 0xF6, 0x0C, 0x36, 0x6F, 0xA0, 0x2C, 0xDB, 0x20, 0x6F, 0xEB, 0x2A, 0x68, 0x5D, 0x6B, 0x7D, 0x6A, 0x4C, 0x13, 0x55, 0x3E, 0x2B, 0xE2, 0x77, 0x94, -+ 0xF5, 0x3B, 0x0E, 0xF5, 0x73, 0x15, 0x20, 0x32, 0x63, 0xEB, 0x02, 0x6E, 0xA5, 0xE6, 0x70, 0x67, 0xD2, 0x2F, 0x92, 0xE2, 0x6E, 0x98, 0xDF, 0x9A, 0xB3, 0x86, 0xC2, 0x70, 0x5B, 0x43, 0x16, 0xA6, -+ 0x98, 0x92, 0x68, 0x8E, 0x60, 0x1E, 0x74, 0x27, 0x59, 0x5A, 0xCE, 0xE6, 0xE4, 0x7F, 0x5E, 0xC5, 0x98, 0xCC, 0x48, 0xC2, 0xF2, 0xDA, 0x1C, 0x32, 0xE0, 0x62, 0xA3, 0x49, 0xD8, 0x9D, 0xCC, 0x8C, -+ 0x05, 0xC6, 0x2E, 0x7B, 0x0C, 0xED, 0x6F, 0x2E, 0x93, 0xA7, 0xBD, 0x48, 0xA8, 0x00, 0x4A, 0x8C, 0x5C, 0x60, 0x5D, 0xFF, 0xC8, 0x05, 0xDE, 0x07, 0x9E, 0xDE, 0xE7, 0xCE, 0xD9, 0x86, 0x39, 0xA9, -+ 0x2F, 0x6C, 0xBA, 0x92, 0xF2, 0x08, 0x9B, 0x14, 0x5D, 0x2D, 0x61, 0xD9, 0x63, 0x8C, 0x07, 0x34, 0x7A, 0x2E, 0xF6, 0xB3, 0x0F, 0xD9, 0x0E, 0x11, 0x1A, 0x7F, 0x59, 0x13, 0xF6, 0xE1, 0x87, 0x95, -+ 0xC1, 0x9E, 0x0B, 0x9F, 0x60, 0xF8, 0x5B, 0xD8, 0xF5, 0xC9, 0xA9, 0x63, 0x33, 0x94, 0x41, 0xE4, 0xA5, 0xB7, 0x9E, 0xB2, 0xE8, 0x67, 0x96, 0x1B, 0x18, 0xA1, 0x88, 0x4A, 0x01, 0xA7, 0x44, 0x83, -+ 0xD8, 0x0B, 0x40, 0x3E, 0xFB, 0xDB, 0xD4, 0xED, 0xDD, 0xC1, 0x92, 0x2D, 0xA3, 0xFB, 0xB3, 0x7B, 0xEA, 0x97, 0xE0, 0xA5, 0xB6, 0x34, 0x3E, 0x43, 0x67, 0x60, 0x1B, 0xD2, 0x1D, 0xB6, 0x69, 0x41, -+ 0xC2, 0x69, 0x8B, 0xF5, 0x06, 0xB0, 0x48, 0x61, 0xB5, 0xF3, 0xD3, 0xD8, 0x0A, 0xC6, 0xDC, 0xB6, 0x84, 0xD9, 0xC4, 0x36, 0x9A, 0xBD, 0x04, 0xBC, 0x4B, 0xDB, 0xEF, 0x49, 0xC6, 0x6E, 0x38, 0x44, -+ 0x51, 0x3A, 0x3F, 0x3B, 0xDD, 0x40, 0x0C, 0x08, 0x0A, 0xC6, 0xEA, 0xD8, 0x1E, 0x8B, 0xB0, 0xE7, 0xCB, 0x36, 0xDB, 0x7B, 0x7E, 0xAB, 0x47, 0x28, 0x39, 0x18, 0x57, 0xF5, 0x97, 0xA3, 0x46, 0x48, -+ 0x63, 0xC3, 0x12, 0x64, 0x5B, 0x20, 0xAF, 0x02, 0xF7, 0xD0, 0xBD, 0x9A, 0x74, 0xDE, 0x23, 0x61, 0xA0, 0xD2, 0xD9, 0x8A, 0x69, 0x89, 0x75, 0xB3, 0x0F, 0x10, 0x10, 0xD9, 0x0A, 0x12, 0x60, 0x78, -+ 0x58, 0x4A, 0x45, 0xFF, 0xBC, 0xC6, 0x5B, 0x47, 0x97, 0x6A, 0xF6, 0x57, 0xEA, 0x84, 0xE9, 0x73, 0x0D, 0x9E, 0x36, 0x37, 0x33, 0x73, 0x6A, 0xC8, 0x01, 0x03, 0xDC, 0x1C, 0x75, 0x73, 0xC4, 0xDE, -+ 0xE2, 0x8A, 0x7B, 0xAC, 0x9E, 0xF7, 0x2C, 0xB8, 0x29, 0x45, 0x0B, 0x53, 0xEA, 0xF9, 0x84, 0xCD, 0x01, 0xAA, 0x31, 0x41, 0x6C, 0xE8, 0x91, 0x4B, 0x7D, 0x7E, 0xF8, 0x49, 0xEB, 0x9C, 0xC1, 0x72, -+ 0xD7, 0x09, 0x6D, 0xEF, 0xDA, 0xCF, 0x59, 0x6B, 0x9B, 0x21, 0xA5, 0x73, 0xE3, 0x46, 0xA4, 0x7A, 0x5A, 0x46, 0x9E, 0x1D, 0x79, 0x39, 0xBE, 0x19, 0x82, 0xCB, 0x39, 0x54, 0xC2, 0x14, 0xED, 0x3A, -+ 0x37, 0x07, 0xD7, 0x40, 0xC0, 0x33, 0xE3, 0xEF, 0x78, 0x0F, 0x4C, 0x48, 0xBA, 0xDD, 0x86, 0x38, 0x48, 0xBB, 0xFC, 0x9D, 0xAA, 0x8E, 0x38, 0x06, 0xA8, 0x4B, 0x2C, 0xAC, 0x0C, 0xA2, 0x32, 0x00, -+ 0x0C, 0xAF, 0x02, 0x03, 0xE9, 0x08, 0xFC, 0xE1, 0x8B, 0x5D, 0x62, 0x77, 0x72, 0x25, 0xD2, 0xD7, 0xD5, 0x84, 0xF2, 0xED, 0x71, 0x88, 0x5D, 0xFA, 0xF5, 0xA4, 0xDB, 0xEE, 0x02, 0xF2, 0x85, 0xBC, -+ 0x34, 0x55, 0x9B, 0x88, 0xEA, 0x9C, 0xE1, 0x5B, 0x47, 0xA3, 0xB9, 0x2A, 0x8D, 0x6F, 0x91, 0x59, 0x1C, 0x32, 0x9A, 0x5A, 0xA2, 0x1A, 0x1B, 0xC4, 0x24, 0xBA, 0x2B, 0xDB, 0xD1, 0x64, 0xCE, 0x1A, -+ 0x8B, 0x78, 0xB3, 0x8B, 0xEF, 0x2B, 0x47, 0xF2, 0x1F, 0x7F, 0xB7, 0xA3, 0xC5, 0x4E, 0x3E, 0xA4, 0x53, 0x6E, 0x81, 0x6E, 0x01, 0x65, 0x6C, 0x8E, 0x26, 0xAD, 0x42, 0xF3, 0xCB, 0x90, 0x61, 0x69, -+ 0x67, 0xC0, 0xDD, 0x07, 0x9F, 0x95, 0x6C, 0x9F, 0x3C, 0x84, 0x4D, 0x5F, 0x33, 0x9C, 0x62, 0xEE, 0x8A, 0x35, 0x8C, 0x4B, 0xEC, 0x2D, 0x27, 0x8A, 0xF7, 0x18, 0xAD, 0x50, 0x9C, 0x6B, 0x66, 0x61, -+ 0x3B, 0x58, 0x04, 0x43, 0xFA, 0x6F, 0x11, 0xCD, 0x8D, 0x10, 0x76, 0x93, 0xB5, 0xD7, 0xB7, 0x38, 0xAA, 0x7E, 0x2F, 0xE6, 0x62, 0x50, 0x2D, 0x75, 0x04, 0xA9, 0xF5, 0x96, 0x19, 0x41, 0x80, 0xF8, -+ 0x70, 0x0D, 0xC4, 0xE6, 0xF7, 0xE8, 0xE7, 0xD2, 0x30, 0x72, 0x34, 0x49, 0x4B, 0x8D, 0xF1, 0xD5, 0x7E, 0xE1, 0x4D, 0x6C, 0x97, 0x92, 0x6E, 0xB1, 0xD8, 0x90, 0x4D, 0x80, 0x89, 0xBE, 0x7D, 0x13, -+ 0x5B, 0x13, 0xD6, 0xDE, 0x30, 0xAA, 0x87, 0x20, 0xD6, 0x71, 0x59, 0xBB, 0x50, 0xA8, 0x34, 0xDE, 0x90, 0x79, 0x92, 0x2B, 0x88, 0x93, 0x1D, 0x45, 0x85, 0x00, 0x62, 0x68, 0x34, 0xDA, 0x04, 0x0D, -+ 0xB7, 0x68, 0xDD, 0xDB, 0xE6, 0x7A, 0x75, 0x8A, 0x02, 0xB4, 0x48, 0xE3, 0x6B, 0xA4, 0x55, 0x03, 0x4A, 0xDE, 0x36, 0x80, 0x2A, 0xA4, 0x2A, 0x7F, 0x2F, 0x23, 0x4A, 0x5E, 0x1C, 0xC2, 0x41, 0xE5, -+ 0x66, 0x1C, 0x63, 0xAF, 0xCE, 0x59, 0xDF, 0xDC, 0xC0, 0x89, 0x83, 0x47, 0xD2, 0x83, 0x4D, 0x72, 0x64, 0xF5, 0xB2, 0x1A, 0x47, 0xC5, 0x21, 0x4A, 0xDC, 0x57, 0xAF, 0x76, 0xCE, 0x9E, 0xBD, 0xB6, -+ 0x8C, 0x71, 0x02, 0x9B, 0xCF, 0x0C, 0x4C, 0x74, 0x5A, 0x33, 0x45, 0x4A, 0xCF, 0x0C, 0xF6, 0xD5, 0xC6, 0x8D, 0xEA, 0x06, 0xC4, 0x5E, 0x7D, 0x4D, 0x17, 0x55, 0xC5, 0xAC, 0xDC, 0x37, 0xFC, 0x24, -+ 0x34, 0x14, 0x0E, 0xF7, 0x07, 0xFD, 0x55, 0xFA, 0xF0, 0x6C, 0xBB, 0x17, 0x07, 0xC2, 0x7C, 0xE9, 0xD9, 0x05, 0x90, 0x5E, 0x37, 0xE2, 0xF1, 0x47, 0xC9, 0xCB, 0x88, 0x08, 0xEC, 0xD0, 0x5D, 0xF7, -+ 0x1F, 0xC5, 0xF1, 0xDA, 0xF9, 0x10, 0xD7, 0xBD, 0x68, 0xB6, 0x91, 0x49, 0x38, 0xBF, 0x0C, 0xAB, 0xCF, 0x66, 0xC9, 0x05, 0xC4, 0x95, 0x63, 0xD7, 0xD7, 0x0F, 0x2C, 0x3D, 0x3A, 0x4A, 0x4F, 0x62, -+ 0x9E, 0x3A, 0xFD, 0xE5, 0x3B, 0xD1, 0x4C, 0xD6, 0xE5, 0x27, 0xE4, 0xF0, 0x38, 0xD6, 0xA3, 0x31, 0xD0, 0x14, 0x68, 0xE2, 0x2D, 0xFE, 0x93, 0xA3, 0x79, 0xB3, 0xEC, 0x6D, 0xA6, 0xD1, 0xC2, 0xF6, -+ 0xD5, 0xEA, 0xB1, 0x41, 0xE5, 0x75, 0xF9, 0x3C, 0x8C, 0xC5, 0x58, 0x0D, 0xF4, 0xA3, 0xDB, 0x5C, 0x4C, 0x87, 0xD8, 0x54, 0x8E, 0x9A, 0x85, 0x19, 0x46, 0xD1, 0xB9, 0x0D, 0x75, 0x27, 0x40, 0x7F, -+ 0x1B, 0xA1, 0x12, 0x1E, 0xAC, 0x54, 0xA1, 0x1E, 0x6E, 0xDA, 0x45, 0xAB, 0xB0, 0x8A, 0x7A, 0x78, 0xAB, 0x36, 0xA7, 0x6E, 0xAD, 0x7F, 0xAC, 0x46, 0x78, 0xE5, 0x24, 0x64, 0xEF, 0xF3, 0x98, 0xE9, -+ 0x02, 0x15, 0xAC, 0x31, 0x6D, 0xE5, 0xA6, 0xEF, 0xE5, 0xA7, 0xB4, 0xA9, 0x5D, 0xF9, 0x2E, 0x41, 0x29, 0xF3, 0xF9, 0x1B, 0x31, 0x6F, 0x75, 0x67, 0x08, 0xBD, 0xF3, 0x7C, 0x01, 0xC1, 0x2B, 0xBA, -+ 0xA0, 0x91, 0xF9, 0x48, 0x84, 0xE3, 0x8A, 0xFF, 0x3C, 0x7B, 0x81, 0x40, 0x88, 0x8C, 0xAB, 0x4F, 0x7F, 0x86, 0x7E, 0xAD, 0xB0, 0x41, 0x85, 0x84, 0xB6, 0xF7, 0x70, 0x74, 0x02, 0x50, 0x93, 0x6A, -+ 0x13, 0x8A, 0xFF, 0x52, 0x88, 0x88, 0x40, 0x67, 0x7D, 0x81, 0x21, 0xC5, 0x83, 0x80, 0x6F, 0xE2, 0x71, 0x04, 0xDE, 0x52, 0x88, 0x13, 0xE5, 0x62, 0x26, 0xB6, 0x52, 0xC5, 0x86, 0x9B, 0xB5, 0x00, -+ 0x30, 0x38, 0x34, 0xD9, 0xC9, 0xD1, 0x97, 0xDB, 0xA1, 0xDD, 0x5C, 0x47, 0x34, 0x30, 0x7A, 0xB8, 0xBD, 0x00, 0x6B, 0x66, 0xEF, 0x45, 0xAB, 0xED, 0x2E, 0x31, 0x37, 0x7B, 0xEA, 0xA1, 0x9D, 0xAE, -+ 0x6E, 0xC8, 0x2A, 0xD7, 0x7C, 0x4C, 0x07, 0x74, 0x4F, 0x9B, 0x93, 0xA8, 0xDD, 0x4C, 0xEE, 0x1A, 0x62, 0xA5, 0x52, 0xED, 0xF4, 0xE2, 0x77, 0xCA, 0xCF, 0xF1, 0xF9, 0x64, 0xDA, 0x7A, 0xF8, 0xFA, -+ 0xFF, 0x6B, 0x56, 0xE3, 0xEB, 0xC0, 0x68, 0x50, 0xA9, 0xF7, 0x6E, 0xCF, 0xB2, 0xC2, 0xBA, 0xA6, 0x60, 0x95, 0x8C, 0x6D, 0x1B, 0xA9, 0x6B, 0xA8, 0x57, 0x8D, 0x06, 0x6D, 0x6A, 0xFE, 0x6E, 0x8F, -+ 0xB2, 0x05, 0x2B, 0x74, 0x21, 0xD5, 0x7D, 0xE5, 0xAB, 0x4C, 0x1F, 0xD5, 0x51, 0x70, 0xE9, 0xEE, 0x33, 0xEB, 0x32, 0xFB, 0x3D, 0x2C, 0x88, 0x61, 0x42, 0x05, 0x5E, 0xE8, 0x42, 0x8B, 0xD7, 0x45, -+ 0xAA, 0xBE, 0x1D, 0x15, 0x19, 0x1F, 0xFC, 0x93, 0xA3, 0xFA, 0x7A, 0x86, 0xB4, 0x27, 0xEB, 0x23, 0x70, 0xB7, 0x8A, 0x67, 0xA4, 0x85, 0xAF, 0x96, 0x3B, 0xBE, 0x1F, 0x22, 0x46, 0x11, 0x9F, 0xB4, -+ 0x69, 0xA0, 0x02, 0xD7, 0x02, 0x9F, 0xC4, 0xF5, 0xF7, 0xE0, 0x12, 0x5F, 0xDA, 0x73, 0x05, 0xAC, 0xF6, 0xC8, 0x0C, 0x7B, 0xD3, 0xF6, 0x68, 0x89, 0x7B, 0xA8, 0x14, 0x35, 0xF4, 0x26, 0xB8, 0x42, -+ 0x5C, 0x98, 0x55, 0xCD, 0x46, 0xC3, 0x44, 0x8B, 0xBA, 0xD0, 0x73, 0x9B, 0xA8, 0x8A, 0xBC, 0x27, 0x3B, 0xCD, 0x0F, 0xA1, 0xFD, 0xA7, 0xF4, 0xF8, 0x18, 0x3B, 0x5D, 0x73, 0xD1, 0x6C, 0x40, 0x7C, -+ 0x45, 0x2A, 0xEF, 0xA2, 0xE3, 0xCA, 0x9F, 0x2D, 0x9D, 0x63, 0x8D, 0x96, 0x6A, 0x58, 0x78, 0x8B, 0x48, 0xBF, 0xC5, 0x7D, 0x3F, 0xC2, 0x08, 0x5F, 0xE8, 0x5A, 0x7F, 0x7A, 0xDD, 0xD9, 0x1E, 0xFD, -+ 0x1B, 0xA0, 0x22, 0x60, 0x46, 0xB1, 0x27, 0xA9, 0x7B, 0xC4, 0x80, 0x47, 0x9B, 0x92, 0x88, 0x1A, 0x58, 0xA0, 0xBC, 0x04, 0xD8, 0xDD, 0x9E, 0x68, 0xB6, 0xD2, 0xBC, 0x50, 0x34, 0xCF, 0x23, 0x43, -+ 0x0D, 0x1F, 0xE5, 0x49, 0x91, 0xA6, 0x90, 0x8B, 0x01, 0x9E, 0xE0, 0x18, 0xC8, 0x43, 0xB9, 0xFA, 0x53, 0xEC, 0x7E, 0xE5, 0xF1, 0x14, 0xAB, 0xE2, 0xB7, 0x50, 0xD4, 0xE1, 0xE7, 0x2E, 0xAF, 0xB4, -+ 0xFB, 0xB3, 0x3A, 0x1E, 0x2C, 0x4D, 0x62, 0x72, 0xCE, 0xE2, 0x7B, 0xBB, 0x13, 0xB5, 0xD2, 0x3E, 0x24, 0xF6, 0x12, 0x9C, 0xF5, 0x82, 0x5F, 0x34, 0xAF, 0xC0, 0x56, 0xF9, 0x5F, 0x53, 0xA0, 0x9F, -+ 0x6F, 0xCA, 0x94, 0x35, 0xCD, 0x5F, 0xB6, 0xC0, 0x5F, 0x88, 0xB4, 0xDC, 0xE8, 0x6C, 0xEA, 0xBD, 0x7E, 0x0C, 0x78, 0x53, 0x61, 0xD2, 0x53, 0xBB, 0x9C, 0xDB, 0x3A, 0x0C, 0x6B, 0xC8, 0x51, 0x83, -+ 0x01, 0xFF, 0x44, 0xF9, 0xE8, 0x7F, 0x7A, 0x97, 0xEC, 0x9F, 0x02, 0xFA, 0xB5, 0x13, 0x4F, 0x3B, 0xBF, 0xA1, 0xCB, 0xE4, 0x4F, 0xA8, 0x3F, 0x1C, 0x54, 0x3E, 0xD9, 0xB8, 0x70, 0x65, 0x75, 0x43, -+ 0x5A, 0xC6, 0xA1, 0x5F, 0x7B, 0x0D, 0xEB, 0xA9, 0xD4, 0x5A, 0xF5, 0x54, 0xBB, 0x0C, 0xCB, 0xCA, 0x12, 0xA6, 0xC1, 0x6E, 0x5E, 0xE6, 0xFA, 0xD6, 0x37, 0x21, 0xE4, 0xC3, 0xCC, 0x8D, 0x9E, 0xA6, -+ 0x8C, 0x61, 0x49, 0x99, 0x30, 0x80, 0x95, 0x24, 0x07, 0xAF, 0xA2, 0x03, 0xF5, 0x04, 0xA8, 0x87, 0xB3, 0xBF, 0x84, 0xD2, 0xBB, 0x6E, 0x45, 0xE7, 0xCC, 0x53, 0x26, 0x53, 0x3D, 0x63, 0x96, 0x3F, -+ 0xFB, 0x72, 0xA9, 0x27, 0x2C, 0x8F, 0xF6, 0x37, 0xBE, 0x6E, 0x24, 0x73, 0xE9, 0xFC, 0xAB, 0x6B, 0x5E, 0x5E, 0x7C, 0xF3, 0xED, 0xBD, 0xDA, 0xEF, 0x51, 0xC9, 0x8D, 0x53, 0x17, 0x0F, 0x9B, 0x64, -+ 0xBC, 0xA5, 0xD4, 0x9F, 0x76, 0xAF, 0x17, 0x6D, 0x01, 0xA6, 0xF2, 0xEC, 0xB3, 0x39, 0x15, 0x1F, 0x49, 0xE4, 0x9A, 0x8F, 0x6E, 0x28, 0x6C, 0x6D, 0x41, 0x22, 0xD6, 0x50, 0xD5, 0x01, 0x59, 0x10, -+ 0xFF, 0x7F, 0x28, 0x02, 0x46, 0x93, 0x89, 0x5C, 0x58, 0x03, 0xDD, 0xFF, 0xCB, 0x1E, 0xDC, 0x46, 0x79, 0xC8, 0xF5, 0x35, 0xAC, 0x15, 0x97, 0xD9, 0xB2, 0x8A, 0xC4, 0x6E, 0x62, 0x88, 0x81, 0x01, -+ 0x29, 0xC1, 0x79, 0x55, 0x6A, 0xF7, 0x88, 0x2D, 0xEE, 0x17, 0xD5, 0x8A, 0x97, 0xF4, 0x34, 0xDF, 0x83, 0x64, 0x6B, 0x33, 0xCF, 0xBA, 0xB9, 0x0A, 0x62, 0x50, 0x85, 0x1C, 0xF5, 0x3D, 0x4B, 0xDB, -+ 0x45, 0x26, 0x33, 0x7D, 0xCC, 0xB9, 0xD9, 0x8A, 0x92, 0x16, 0x76, 0xB5, 0x13, 0x65, 0xDD, 0x08, 0xA5, 0x30, 0x4D, 0x2A, 0x93, 0x53, 0x4C, 0x52, 0x42, 0x7E, 0x9A, 0xE5, 0xC1, 0x44, 0x05, 0x92, -+ 0xC5, 0x53, 0x6E, 0x17, 0x1C, 0xF4, 0xFD, 0x1F, 0x43, 0x57, 0x8F, 0xEA, 0xFB, 0x32, 0xFF, 0x01, 0xD4, 0xFE, 0xD6, 0x35, 0xD7, 0x52, 0x56, 0x8F, 0x90, 0xEC, 0xFB, 0xB1, 0x64, 0xA5, 0xB1, 0x76, -+ 0x3F, 0x70, 0xC7, 0x2F, 0xD5, 0xBC, 0xDF, 0x61, 0xD0, 0x1F, 0xF3, 0x23, 0x66, 0x39, 0xC9, 0x1C, 0x06, 0x3C, 0x0B, 0x7A, 0x56, 0xAD, 0x03, 0xF4, 0x02, 0x0E, 0x80, 0xBD, 0x9A, 0x5E, 0x2F, 0x16, -+ 0x1E, 0x05, 0x78, 0x46, 0x9B, 0x99, 0x50, 0x26, 0x6B, 0xA9, 0x6B, 0xBB, 0x73, 0xC0, 0x8E, 0x7F, 0xAE, 0x85, 0x6E, 0x17, 0x03, 0xCF, 0x3C, 0xBD, 0x21, 0x41, 0x80, 0x89, 0x14, 0x8F, 0x7A, 0x9F, -+ 0x40, 0xD4, 0xD9, 0x11, 0x51, 0xDB, 0xC4, 0xBA, 0xE8, 0x54, 0x23, 0x59, 0xE8, 0x82, 0xA1, 0x9A, 0x99, 0x49, 0xCE, 0xD5, 0xB7, 0x5F, 0xF7, 0xB1, 0x92, 0xDC, 0x27, 0x9B, 0x3E, 0xD1, 0x00, 0x76, -+ 0x05, 0x3F, 0x58, 0xDE, 0x43, 0x5F, 0xC5, 0x87, 0x56, 0x54, 0xE9, 0x86, 0x33, 0xA3, 0x97, 0x14, 0x11, 0x42, 0x22, 0x9D, 0x8C, 0xD6, 0x13, 0xC6, 0x63, 0x44, 0x32, 0x6D, 0x83, 0x99, 0x2B, 0x3C, -+ 0x08, 0xF1, 0x7B, 0xE0, 0xEC, 0x28, 0xFB, 0xDB, 0xAB, 0xA1, 0x2C, 0xB0, 0x00, 0xB2, 0xA2, 0xB0, 0x4E, 0x24, 0xD0, 0xC4, 0x1B, 0xD6, 0xB5, 0x80, 0xE9, 0x99, 0xB2, 0x57, 0xC0, 0x07, 0x96, 0x5C, -+ 0x44, 0x75, 0xA9, 0xD5, 0x31, 0x4C, 0xD6, 0xC1, 0xFB, 0x9F, 0xED, 0xD5, 0x16, 0xE6, 0xB3, 0xC0, 0xDD, 0xD4, 0x04, 0xD6, 0x8D, 0x78, 0xFD, 0x4D, 0xE4, 0x09, 0x31, 0xB1, 0xB8, 0x72, 0xD4, 0xD0, -+ 0x1A, 0x2D, 0x46, 0xC9, 0xB2, 0x93, 0x90, 0x0D, 0x34, 0xEC, 0x91, 0xD3, 0xB6, 0x93, 0xF4, 0xE7, 0x2C, 0x22, 0x8E, 0xD0, 0x29, 0x4F, 0x6D, 0xC9, 0xB7, 0x17, 0x26, 0x0E, 0xBE, 0x75, 0xA4, 0x71, -+ 0xEA, 0x4D, 0x78, 0x00, 0xA3, 0xE7, 0xB7, 0xB4, 0x76, 0xD6, 0x4D, 0xEA, 0x6F, 0x4D, 0xA7, 0x26, 0xB3, 0x76, 0xF0, 0x78, 0x00, 0xDB, 0x5F, 0x83, 0xC0, 0xA3, 0xDC, 0xC2, 0xC7, 0x02, 0x6A, 0x4C, -+ 0x37, 0x8E, 0x88, 0x09, 0x94, 0x88, 0x5D, 0x6F, 0x7A, 0x88, 0x19, 0xD9, 0x1A, 0x2D, 0x50, 0xD1, 0x6D, 0x22, 0xBE, 0x59, 0x2B, 0xED, 0x38, 0x33, 0x04, 0x10, 0xE1, 0x4C, 0xDD, 0xD4, 0xCE, 0x0C, -+ 0x48, 0xD6, 0x2B, 0x77, 0x97, 0xDE, 0x44, 0xC0, 0x7F, 0x26, 0xA7, 0x9E, 0xF3, 0xA5, 0x83, 0x0F, 0x32, 0x1A, 0x35, 0xAC, 0x50, 0x7E, 0x94, 0x3C, 0x6D, 0xE6, 0x3F, 0xE1, 0x36, 0x82, 0x32, 0x25, -+ 0xD6, 0xFC, 0x73, 0xD8, 0x6D, 0x4C, 0x84, 0x39, 0x90, 0x13, 0xE0, 0x64, 0xE6, 0x68, 0x34, 0x92, 0x90, 0x7C, 0x7B, 0x78, 0xAE, 0xF2, 0xAA, 0xB1, 0x80, 0xDC, 0x33, 0xE5, 0xE6, 0xBD, 0xBD, 0x6D, -+ 0x49, 0x0E, 0x3A, 0xA8, 0xBE, 0x8E, 0x82, 0xFA, 0x6C, 0xB1, 0x3B, 0xEA, 0x36, 0x0C, 0x51, 0x0F, 0x9B, 0x4B, 0x5B, 0xA6, 0x64, 0x04, 0x27, 0xAD, 0xDD, 0xF3, 0xD6, 0x6D, 0xED, 0x41, 0xD1, 0xE2, -+ 0xA0, 0x61, 0x31, 0xE9, 0x50, 0x13, 0x68, 0x42, 0x73, 0x2C, 0x27, 0x34, 0x98, 0xD6, 0xA4, 0x7C, 0xED, 0x4E, 0xD1, 0x89, 0xB6, 0xE7, 0x39, 0x36, 0x1F, 0x68, 0xCC, 0xA0, 0xA9, 0x9D, 0x56, 0x02, -+ 0xB9, 0x76, 0x55, 0xAB, 0x26, 0x82, 0xE8, 0x37, 0xDB, 0xD6, 0x88, 0xC1, 0x73, 0xDD, 0x49, 0x50, 0xDD, 0x4C, 0xD4, 0xD3, 0xA3, 0x38, 0xF3, 0xFC, 0xFF, 0x8C, 0x71, 0x16, 0xEB, 0xC6, 0x30, 0xD0, -+ 0x5A, 0xFA, 0xB8, 0xDF, 0x7C, 0x75, 0x60, 0xF4, 0xDE, 0x9A, 0xD9, 0x22, 0x16, 0x26, 0x8E, 0xE1, 0x43, 0xA7, 0x22, 0xC0, 0x34, 0x97, 0xCE, 0x17, 0xEF, 0xE9, 0x8F, 0x67, 0x58, 0x0F, 0x0D, 0xDE, -+ 0xF5, 0x7F, 0x15, 0x25, 0x5E, 0x68, 0x85, 0x6D, 0x39, 0xA4, 0xEB, 0x33, 0x8A, 0x65, 0x33, 0x46, 0xFE, 0xDE, 0x46, 0x66, 0x3A, 0x62, 0x30, 0x7F, 0x65, 0x90, 0xE2, 0xEE, 0x7A, 0xB9, 0x28, 0xAC, -+ 0x5E, 0x8F, 0xA1, 0x63, 0xAA, 0x74, 0xE4, 0x02, 0x55, 0xD8, 0xD2, 0x41, 0x66, 0x8A, 0x1C, 0x71, 0x7E, 0x3F, 0x28, 0x99, 0x43, 0x50, 0xF4, 0x99, 0x08, 0xA3, 0x2E, 0x6F, 0xEC, 0x62, 0x06, 0xBD, -+ 0xF7, 0x93, 0x6D, 0xD2, 0xCF, 0x6A, 0x87, 0xB9, 0x99, 0x40, 0x45, 0x55, 0x2A, 0xCC, 0xE6, 0xEA, 0xF1, 0x29, 0x4E, 0x73, 0x27, 0xA1, 0x3E, 0x6E, 0xAC, 0x16, 0x22, 0x1A, 0x67, 0x6F, 0x60, 0x5D, -+ 0x6D, 0xA6, 0x36, 0x5D, 0x0D, 0xB0, 0x11, 0x35, 0x40, 0x50, 0x13, 0xF8, 0x74, 0x48, 0x1A, 0x68, 0x33, 0x04, 0x55, 0x28, 0x1A, 0x41, 0xE8, 0x3D, 0xF7, 0x6D, 0x20, 0xD1, 0xDF, 0x75, 0xDF, 0xEC, -+ 0xA0, 0x91, 0x7F, 0x3E, 0x94, 0xBE, 0xD2, 0x2D, 0x1E, 0xCE, 0xD8, 0xA9, 0xFC, 0x7B, 0x2A, 0x2E, 0x4A, 0x5B, 0x74, 0xD0, 0xB0, 0xC9, 0x28, 0x2B, 0xD6, 0x12, 0xA4, 0x86, 0x48, 0x99, 0x3F, 0x9F, -+ 0x01, 0x2B, 0xD7, 0x0A, 0x0E, 0x43, 0xDC, 0x3D, 0x1C, 0x0A, 0x16, 0x71, 0x1E, 0xBF, 0x6E, 0xA4, 0x79, 0xDB, 0x94, 0x1F, 0x68, 0xA6, 0x70, 0x1B, 0x57, 0xF7, 0xB8, 0x37, 0xB3, 0x0C, 0x0A, 0x6D, -+ 0x77, 0x11, 0x23, 0xD6, 0xFC, 0x70, 0xBD, 0xBE, 0x24, 0x44, 0x0C, 0xE4, 0xE2, 0x54, 0xA0, 0x70, 0x53, 0x4F, 0x1C, 0x18, 0x13, 0xC5, 0x16, 0x79, 0x12, 0x60, 0xA7, 0x36, 0x89, 0xDF, 0xE1, 0xBE, -+ 0xAD, 0x6E, 0xBF, 0x6A, 0xFF, 0x7E, 0xE4, 0x8D, 0xE1, 0xD5, 0x9C, 0x62, 0x22, 0x8B, 0x38, 0x3E, 0x0A, 0xCA, 0x06, 0x90, 0xF8, 0x05, 0xFE, 0xFD, 0xC5, 0x4F, 0xC4, 0xF9, 0x74, 0xBF, 0xAC, 0xCD, -+ 0xFE, 0x33, 0x21, 0x6C, 0xD2, 0xBC, 0x06, 0xBA, 0x7C, 0x2F, 0x55, 0xD7, 0xA0, 0x70, 0x8C, 0x48, 0x01, 0x4F, 0xF0, 0xC5, 0x35, 0xCD, 0x83, 0xD5, 0x47, 0x08, 0xFD, 0x70, 0x3E, 0x8E, 0xF5, 0x10, -+ 0xFA, 0x60, 0x72, 0xE2, 0x5F, 0xDA, 0xEB, 0x95, 0x33, 0xD4, 0x80, 0x60, 0x53, 0x07, 0x6C, 0xB8, 0xE4, 0xFE, 0x69, 0x46, 0xFD, 0x1A, 0x67, 0x0D, 0x1B, 0xDA, 0x92, 0x31, 0x1D, 0x5E, 0xD5, 0xFA, -+ 0x24, 0x5F, 0xA7, 0x4A, 0x6F, 0x04, 0xAE, 0x66, 0xE3, 0xC9, 0xE0, 0xA7, 0x18, 0x2C, 0xFD, 0xB2, 0x10, 0xE5, 0xA2, 0xF2, 0x8C, 0x95, 0x43, 0x99, 0x64, 0x74, 0x2A, 0x98, 0x7A, 0x16, 0x29, 0x85, -+ 0xDB, 0x91, 0xDF, 0x91, 0xD9, 0x52, 0x9D, 0x8B, 0x85, 0x0B, 0x86, 0x28, 0xA9, 0xC5, 0xC8, 0x45, 0x5B, 0xDB, 0x41, 0x7C, 0x92, 0x72, 0x24, 0xA9, 0xA8, 0xFF, 0xCD, 0xFE, 0x00, 0xC2, 0x28, 0xFA, -+ 0x28, 0x4C, 0x50, 0x52, 0x57, 0x70, 0x98, 0x15, 0x1E, 0x33, 0x78, 0x7F, 0x82, 0x87, 0xCB, 0x0D, 0x24, 0x31, 0x32, 0x45, 0x55, 0x84, 0x8A, 0x8D, 0x9C, 0xDF, 0xE3, 0xE4, 0xF0, 0xF1, 0x42, 0x61, -+ 0xD0, 0xFB, 0xFC, 0x02, 0x3C, 0x59, 0x6C, 0x74, 0x9E, 0xAE, 0xFB, 0x0A, 0x17, 0x84, 0xC8, 0xCF, 0xE5, 0xE7, 0x44, 0x8A, 0x98, 0x9F, 0xD8, 0xD9, 0x43, 0x66, 0xB4, 0xC7, 0xD6, 0xFF, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0F, 0x1E, 0x23, 0x2B, 0x32, 0x38, 0x3E, -+ }, -+ }, -+ { -+ .name = "Dilithium Round 3, Level 5 (8-7) KAT 1", -+ .version = 0, -+ .keyform = CK_IBM_DILITHIUM_KEYFORM_ROUND3_87, -+ .rho_len = 32, -+ .rho = { -+ 0xB5, 0x41, 0xC1, 0xE9, 0x2C, 0xEA, 0xDD, 0x90, 0x4A, 0x09, 0xEC, 0x08, 0xAD, 0x30, 0x6D, 0x97, 0x47, 0x34, 0xA0, 0x77, 0x86, 0x84, 0x71, 0xE5, 0x8D, 0x07, 0x71, 0x87, 0xC4, 0x66, 0x04, 0xCF, -+ }, -+ .seed_len = 32, -+ .seed = { -+ 0x95, 0x2D, 0x21, 0x81, 0xAC, 0x1F, 0x62, 0x59, 0x6F, 0x76, 0x7E, 0xFC, 0xA0, 0xB5, 0x5D, 0xB0, 0x92, 0xEF, 0x81, 0xDB, 0x66, 0xF9, 0xFF, 0xF1, 0x5F, 0x13, 0xD7, 0xAE, 0xEA, 0xCD, 0x8B, 0x3A, -+ }, -+ .tr_len = 32, -+ .tr = { -+ 0x6C, 0xA7, 0x8E, 0x25, 0x84, 0x0D, 0x7D, 0xA0, 0x3C, 0x92, 0xE0, 0x1B, 0x8D, 0xD2, 0xC6, 0xDB, 0x77, 0xFC, 0x68, 0x70, 0x64, 0x73, 0x6C, 0xA8, 0x44, 0x8D, 0x40, 0x3E, 0x6F, 0x18, 0xC0, 0x2C, -+ }, -+ .s1_len = 672, -+ .s1 = { -+ 0x03, 0x40, 0x28, 0x8C, 0x88, 0x60, 0x21, 0xB1, 0x90, 0x0C, 0x12, 0x0D, 0x58, 0x18, 0x09, 0x23, 0x44, 0x86, 0x03, 0x02, 0x84, 0x89, 0xB2, 0x28, 0x0C, 0x97, 0x2C, 0x11, 0xC2, 0x09, 0x18, 0x32, -+ 0x08, 0x09, 0x10, 0x91, 0x14, 0x82, 0x8C, 0x13, 0x03, 0x05, 0x11, 0x01, 0x4C, 0x62, 0x18, 0x8A, 0xDB, 0x08, 0x8A, 0x93, 0x38, 0x12, 0x09, 0xA9, 0x20, 0xE4, 0xA8, 0x41, 0x1A, 0xA1, 0x40, 0xD1, -+ 0x42, 0x2E, 0x59, 0x92, 0x24, 0xD0, 0x26, 0x00, 0x19, 0x93, 0x84, 0xE2, 0x28, 0x92, 0x1B, 0x19, 0x50, 0xA3, 0x10, 0x8E, 0xA2, 0x28, 0x20, 0x93, 0x34, 0x70, 0x94, 0xC0, 0x4D, 0x24, 0x35, 0x41, -+ 0x14, 0x05, 0x62, 0xC2, 0x22, 0x31, 0x1A, 0x38, 0x4E, 0xCC, 0x42, 0x44, 0x13, 0x20, 0x82, 0x08, 0x18, 0x6D, 0xE0, 0x14, 0x0D, 0x01, 0x36, 0x61, 0x08, 0x22, 0x29, 0x14, 0xB5, 0x11, 0x49, 0x22, -+ 0x32, 0xE2, 0x42, 0x26, 0xE4, 0x04, 0x01, 0x5B, 0x48, 0x2A, 0x11, 0x02, 0x60, 0x63, 0x02, 0x48, 0x4A, 0x24, 0x2C, 0x62, 0x40, 0x90, 0x03, 0x41, 0x8D, 0x18, 0xC8, 0x30, 0x82, 0x02, 0x82, 0x51, -+ 0x98, 0x69, 0xA2, 0x24, 0x50, 0x0A, 0x39, 0x4D, 0x84, 0x00, 0x8E, 0x84, 0x08, 0x21, 0xD9, 0x30, 0x6C, 0xE3, 0x18, 0x29, 0x23, 0x45, 0x6E, 0xCA, 0x24, 0x66, 0x08, 0x21, 0x49, 0x14, 0x16, 0x52, -+ 0xDA, 0xA0, 0x0C, 0x22, 0x19, 0x62, 0xC1, 0xB8, 0x08, 0x8A, 0x88, 0x8C, 0x22, 0xB1, 0x0C, 0x23, 0xB8, 0x0D, 0x00, 0x93, 0x64, 0x93, 0x16, 0x82, 0x63, 0x32, 0x30, 0xDC, 0xA2, 0x41, 0xD1, 0x48, -+ 0x42, 0x82, 0xA2, 0x64, 0xD4, 0x24, 0x48, 0x94, 0x48, 0x25, 0x02, 0x82, 0x65, 0xD9, 0x08, 0x69, 0x12, 0x44, 0x21, 0x54, 0x24, 0x70, 0x04, 0x80, 0x84, 0xDA, 0x44, 0x25, 0xA0, 0x24, 0x8A, 0x13, -+ 0x35, 0x60, 0x84, 0xA0, 0x4C, 0x93, 0x90, 0x48, 0x13, 0x47, 0x02, 0x83, 0x20, 0x05, 0x64, 0xB4, 0x0C, 0x5C, 0x12, 0x72, 0x42, 0x14, 0x86, 0x60, 0x02, 0x12, 0x50, 0x44, 0x04, 0x0B, 0x82, 0x11, -+ 0x91, 0x18, 0x72, 0x48, 0x88, 0x10, 0xD0, 0x40, 0x4D, 0xCB, 0x98, 0x51, 0x49, 0xA4, 0x8D, 0x18, 0x25, 0x89, 0xD4, 0x32, 0x8E, 0x52, 0xA4, 0x10, 0x11, 0x40, 0x12, 0x88, 0x26, 0x88, 0x21, 0x17, -+ 0x6A, 0xA2, 0xB2, 0x41, 0xE4, 0x02, 0x89, 0xA1, 0xA0, 0x30, 0x94, 0xC8, 0x41, 0x1B, 0x83, 0x64, 0x12, 0x05, 0x0A, 0x1C, 0x43, 0x8C, 0x84, 0x06, 0x31, 0x0A, 0xA2, 0x6D, 0x24, 0x17, 0x31, 0xC3, -+ 0x98, 0x28, 0x42, 0x88, 0x25, 0x8C, 0x30, 0x52, 0xA0, 0x02, 0x0E, 0x98, 0x36, 0x88, 0x03, 0x81, 0x31, 0x64, 0x18, 0x6C, 0x09, 0x82, 0x69, 0x19, 0x41, 0x4C, 0xA0, 0x26, 0x11, 0x23, 0x35, 0x60, -+ 0x01, 0x04, 0x85, 0x64, 0x86, 0x30, 0xD9, 0x20, 0x84, 0xD9, 0x08, 0x2A, 0xDC, 0x32, 0x61, 0x1C, 0xC2, 0x80, 0x89, 0x82, 0x51, 0x14, 0x10, 0x40, 0x19, 0x05, 0x80, 0x58, 0x04, 0x06, 0x99, 0x08, -+ 0x84, 0x09, 0x27, 0x41, 0xCA, 0x20, 0x8A, 0x93, 0x00, 0x91, 0x03, 0xC6, 0x81, 0xC2, 0xC8, 0x09, 0xC3, 0x30, 0x4D, 0x23, 0x12, 0x0A, 0x9B, 0x42, 0x8D, 0x20, 0x23, 0x6A, 0x54, 0x30, 0x22, 0xCC, -+ 0xA4, 0x29, 0xA2, 0x18, 0x31, 0x40, 0x20, 0x6E, 0x92, 0x90, 0x48, 0x41, 0xB8, 0x45, 0x83, 0x38, 0x08, 0x5C, 0x46, 0x80, 0x59, 0x36, 0x45, 0xE3, 0xB0, 0x31, 0x18, 0x06, 0x6A, 0x53, 0x16, 0x6D, -+ 0x21, 0x99, 0x81, 0x00, 0x30, 0x4E, 0xC8, 0x26, 0x48, 0x18, 0xC0, 0x88, 0x19, 0x14, 0x92, 0xC1, 0x98, 0x45, 0x98, 0x08, 0x84, 0x9B, 0x10, 0x4D, 0x0C, 0x96, 0x90, 0x08, 0x91, 0x69, 0x0C, 0xB1, -+ 0x4D, 0x91, 0x28, 0x6E, 0xC9, 0x06, 0x8C, 0x58, 0x00, 0x0A, 0x0C, 0x96, 0x05, 0x8A, 0x46, 0x06, 0xD4, 0x98, 0x29, 0x83, 0x26, 0x50, 0xE1, 0x10, 0x61, 0xD0, 0x96, 0x50, 0x23, 0x12, 0x24, 0x52, -+ 0x20, 0x80, 0xE4, 0x04, 0x48, 0x0C, 0x23, 0x92, 0x0B, 0xB7, 0x0D, 0x0C, 0x82, 0x90, 0xD1, 0x10, 0x90, 0x21, 0x22, 0x11, 0x0A, 0x12, 0x64, 0x53, 0xB6, 0x71, 0x99, 0x28, 0x69, 0xC1, 0xC4, 0x4D, -+ 0x04, 0xA0, 0x8D, 0xCB, 0x96, 0x41, 0x58, 0x14, 0x06, 0x0C, 0x21, 0x70, 0x8B, 0x30, 0x25, 0x52, 0xA2, 0x25, 0x21, 0x19, 0x30, 0x00, 0xA3, 0x28, 0xD0, 0xB8, 0x09, 0xCC, 0x16, 0x12, 0xDC, 0x94, -+ 0x6D, 0x01, 0x20, 0x81, 0xDC, 0x42, 0x42, 0xE1, 0x28, 0x01, 0x0C, 0x87, 0x89, 0x02, 0x84, 0x09, 0x02, 0x17, 0x88, 0xD8, 0x34, 0x30, 0x1C, 0x33, 0x64, 0x44, 0xA0, 0x09, 0xA0, 0xA0, 0x0D, 0xE3, -+ 0x90, 0x4D, 0x01, 0x08, 0x65, 0xE2, 0x42, 0x69, 0xA2, 0xC0, 0x91, 0x99, 0x16, 0x62, 0x9B, 0x02, 0x60, 0x40, 0x88, 0x50, 0x40, 0x86, 0x71, 0xA4, 0xC4, 0x61, 0x62, 0x22, 0x20, 0x10, 0x12, 0x11, -+ }, -+ .s2_len = 768, -+ .s2 = { -+ 0x4B, 0x26, 0x22, 0x09, 0x07, 0x88, 0x1A, 0x26, 0x85, 0x58, 0x86, 0x80, 0xDA, 0xA0, 0x8C, 0x0B, 0x85, 0x68, 0x42, 0x22, 0x82, 0x88, 0x24, 0x61, 0x8C, 0x98, 0x8C, 0x23, 0x30, 0x25, 0x24, 0x40, -+ 0x45, 0x08, 0xC8, 0x6C, 0x23, 0x14, 0x28, 0x4A, 0x28, 0x10, 0x81, 0x20, 0x72, 0x88, 0x32, 0x26, 0x93, 0xA6, 0x6D, 0x5B, 0xB6, 0x29, 0xC1, 0x24, 0x0D, 0x49, 0x20, 0x70, 0x59, 0x48, 0x26, 0x20, -+ 0x26, 0x65, 0xCB, 0xA4, 0x88, 0x4A, 0xA6, 0x30, 0x08, 0x45, 0x8E, 0x00, 0x32, 0x88, 0x24, 0x33, 0x0D, 0xA1, 0x46, 0x72, 0x9B, 0x12, 0x00, 0x14, 0xB5, 0x21, 0xE3, 0x02, 0x09, 0x23, 0x42, 0x28, -+ 0x19, 0xB2, 0x05, 0x92, 0xA4, 0x44, 0x00, 0x06, 0x45, 0x04, 0xC6, 0x29, 0x5C, 0x12, 0x50, 0xA2, 0x90, 0x45, 0x92, 0x22, 0x86, 0x9B, 0x24, 0x31, 0x9C, 0x12, 0x65, 0x94, 0xB0, 0x01, 0x98, 0x26, -+ 0x65, 0xD2, 0x48, 0x0E, 0x62, 0x46, 0x20, 0x89, 0x82, 0x61, 0x08, 0x45, 0x08, 0x64, 0xA6, 0x91, 0x9C, 0x42, 0x6D, 0x9A, 0x96, 0x0C, 0x49, 0x24, 0x32, 0x04, 0xB1, 0x65, 0x83, 0x16, 0x45, 0x8A, -+ 0x22, 0x22, 0x1A, 0x42, 0x02, 0x83, 0x46, 0x2C, 0x1C, 0x33, 0x72, 0x5A, 0x24, 0x00, 0xD4, 0x30, 0x80, 0x0A, 0x23, 0x08, 0x24, 0xA4, 0x84, 0x01, 0xC0, 0x41, 0x44, 0xC0, 0x09, 0x51, 0xA8, 0x2C, -+ 0x01, 0x20, 0x8D, 0x82, 0x14, 0x72, 0x23, 0x30, 0x12, 0x11, 0x12, 0x52, 0x0A, 0x11, 0x00, 0x00, 0x43, 0x90, 0xDC, 0x36, 0x4D, 0x88, 0x96, 0x05, 0xC9, 0xB8, 0x45, 0x64, 0x02, 0x4A, 0x61, 0x00, -+ 0x0C, 0x82, 0x18, 0x4E, 0x91, 0x00, 0x8E, 0x23, 0x12, 0x91, 0x41, 0xB8, 0x91, 0x1B, 0x18, 0x0C, 0x0B, 0x46, 0x89, 0xD2, 0x18, 0x8D, 0x19, 0x84, 0x10, 0xC0, 0x86, 0x0D, 0x03, 0x16, 0x25, 0xC3, -+ 0xC2, 0x70, 0x19, 0x87, 0x31, 0x1A, 0x24, 0x2C, 0x08, 0x14, 0x01, 0x14, 0x04, 0x6C, 0xC2, 0x46, 0x04, 0x13, 0x10, 0x06, 0xC9, 0x08, 0x49, 0x04, 0xB1, 0x70, 0x54, 0xA2, 0x0C, 0x01, 0x24, 0x6A, -+ 0x90, 0x18, 0x45, 0x24, 0x47, 0x49, 0x1B, 0xA2, 0x40, 0x02, 0x32, 0x80, 0x60, 0x98, 0x50, 0x8B, 0x48, 0x91, 0x5A, 0x46, 0x12, 0x13, 0x49, 0x71, 0x1C, 0x96, 0x01, 0x22, 0x15, 0x29, 0x20, 0xB5, -+ 0x00, 0x04, 0xC3, 0x05, 0x4C, 0x24, 0x12, 0x80, 0x40, 0x4E, 0x14, 0xA1, 0x4C, 0xDB, 0x16, 0x4D, 0x00, 0x08, 0x24, 0xE2, 0x48, 0x80, 0xD4, 0x98, 0x44, 0x89, 0xC2, 0x68, 0x84, 0x24, 0x52, 0x02, -+ 0x24, 0x61, 0x5C, 0x38, 0x11, 0x60, 0x96, 0x44, 0xA3, 0x02, 0x0E, 0x04, 0xB5, 0x81, 0xD1, 0x48, 0x24, 0xE0, 0x18, 0x49, 0x91, 0x06, 0x88, 0x93, 0x88, 0x61, 0x52, 0xA8, 0x20, 0x50, 0x22, 0x85, -+ 0x23, 0x28, 0x2C, 0xC3, 0x08, 0x12, 0x89, 0x22, 0x8D, 0x11, 0x22, 0x0D, 0xC2, 0x30, 0x12, 0x0A, 0x98, 0x2D, 0x22, 0x19, 0x86, 0x08, 0x89, 0x40, 0x0B, 0x21, 0x69, 0x04, 0xB3, 0x00, 0x61, 0x38, -+ 0x0D, 0x04, 0x10, 0x2D, 0x5A, 0x24, 0x65, 0x8C, 0x12, 0x0A, 0x5C, 0x42, 0x0E, 0x5A, 0x26, 0x90, 0xA1, 0x36, 0x88, 0xA1, 0x38, 0x4D, 0x1B, 0x04, 0x8E, 0xDC, 0x00, 0x0A, 0x0B, 0x35, 0x6A, 0xC2, -+ 0x02, 0x91, 0x83, 0x48, 0x20, 0x11, 0x02, 0x86, 0xD2, 0xA2, 0x2D, 0x1C, 0x00, 0x29, 0x0C, 0x30, 0x12, 0x20, 0x91, 0x6D, 0x02, 0x87, 0x91, 0x40, 0x82, 0x44, 0x09, 0x98, 0x4C, 0x24, 0x13, 0x52, -+ 0x09, 0x92, 0x4C, 0x4A, 0xB0, 0x01, 0x01, 0x46, 0x80, 0x10, 0x03, 0x44, 0x94, 0xB6, 0x49, 0xDC, 0xA0, 0x51, 0xA4, 0x04, 0x0C, 0x14, 0xC6, 0x68, 0x24, 0x09, 0x22, 0x9B, 0x20, 0x0E, 0x09, 0x28, -+ 0x69, 0xDA, 0x16, 0x69, 0x09, 0xA4, 0x80, 0x0C, 0x39, 0x60, 0xDC, 0xC0, 0x10, 0x23, 0x89, 0x0D, 0xDB, 0x10, 0x41, 0xCB, 0xB2, 0x6C, 0x12, 0xC2, 0x04, 0x08, 0x92, 0x68, 0xCA, 0x06, 0x20, 0xE0, -+ 0x36, 0x0E, 0x04, 0xC2, 0x49, 0x18, 0x27, 0x68, 0x24, 0xA8, 0x29, 0x42, 0x42, 0x6A, 0x8B, 0xB6, 0x25, 0x82, 0x26, 0x00, 0x1C, 0x07, 0x42, 0x1B, 0x02, 0x26, 0x94, 0x90, 0x85, 0x13, 0xA7, 0x30, -+ 0x09, 0x24, 0x40, 0x5A, 0xA8, 0x44, 0x49, 0x00, 0x8A, 0x59, 0x18, 0x24, 0x90, 0x28, 0x80, 0x88, 0x08, 0x71, 0x21, 0x47, 0x2D, 0x52, 0x34, 0x80, 0x0B, 0x96, 0x04, 0x9C, 0x38, 0x09, 0x8C, 0xA4, -+ 0x30, 0x19, 0xA9, 0x8C, 0x03, 0x45, 0x4C, 0x51, 0xA0, 0x68, 0x04, 0x22, 0x42, 0x11, 0x18, 0x82, 0xA2, 0x96, 0x48, 0xE4, 0x36, 0x72, 0xCB, 0x24, 0x28, 0x23, 0xA7, 0x2D, 0xDC, 0x38, 0x00, 0x89, -+ 0x36, 0x06, 0x4B, 0x92, 0x89, 0x03, 0x49, 0x71, 0xDA, 0x10, 0x06, 0x0A, 0x39, 0x0C, 0x40, 0x14, 0x82, 0xDA, 0x80, 0x48, 0x9A, 0x86, 0x88, 0x59, 0x44, 0x50, 0x89, 0xC4, 0x61, 0x59, 0x22, 0x42, -+ 0x10, 0xB0, 0x24, 0x8B, 0x40, 0x6C, 0x8C, 0x20, 0x46, 0x23, 0x09, 0x60, 0xC4, 0x98, 0x85, 0x5A, 0xA4, 0x01, 0x01, 0x39, 0x46, 0xC1, 0x94, 0x71, 0x8C, 0xC2, 0x40, 0x0C, 0x22, 0x25, 0x53, 0x00, -+ 0x66, 0x4C, 0x26, 0x30, 0x21, 0xC0, 0x2D, 0x98, 0x30, 0x6A, 0x94, 0x24, 0x50, 0x21, 0x12, 0x81, 0x0B, 0x12, 0x00, 0x9C, 0x94, 0x0C, 0x9B, 0x36, 0x6C, 0x94, 0x26, 0x85, 0x8A, 0x12, 0x30, 0xA3, -+ 0xA0, 0x89, 0x42, 0x08, 0x50, 0x44, 0x16, 0x2C, 0x20, 0x38, 0x29, 0x5C, 0x32, 0x61, 0x63, 0xA4, 0x6D, 0x58, 0x48, 0x72, 0xDA, 0x26, 0x22, 0x89, 0xA4, 0x8D, 0xD3, 0x32, 0x26, 0x0C, 0x32, 0x04, -+ }, -+ .t0_len = 3328, -+ .t0 = { -+ 0xDD, 0x9E, 0x51, 0x56, 0xEB, 0x0F, 0xB3, 0x78, 0x1A, 0x12, 0x27, 0x3B, 0xE3, 0x14, 0xE7, 0x1E, 0x56, 0x59, 0x60, 0x44, 0xDA, 0x83, 0xAB, 0xFB, 0x24, 0xC7, 0x79, 0x9A, 0x81, 0x46, 0x43, 0x4E, -+ 0x93, 0x49, 0x03, 0x49, 0x29, 0x00, 0x0A, 0xF0, 0x29, 0xBA, 0x14, 0x68, 0x07, 0x48, 0xA8, 0x99, 0xE8, 0x3D, 0xD9, 0x21, 0x1D, 0x3E, 0x8D, 0xE8, 0x41, 0x9C, 0xE1, 0x20, 0xCF, 0x5B, 0xCA, 0x55, -+ 0x29, 0x7A, 0x27, 0xD8, 0x35, 0x4F, 0x66, 0xFB, 0x83, 0x7B, 0x10, 0x8D, 0x7D, 0xC7, 0xE3, 0x2D, 0x14, 0x5B, 0xB4, 0x01, 0x65, 0x24, 0x42, 0xEB, 0xF5, 0x45, 0xC4, 0xA1, 0x2C, 0x70, 0x19, 0x18, -+ 0xD2, 0x49, 0x4C, 0x03, 0xA1, 0x12, 0xC0, 0xD9, 0x42, 0xDC, 0xB4, 0x4D, 0xFA, 0xEC, 0x31, 0xAE, 0xAA, 0xE3, 0x2A, 0x5B, 0xAD, 0xBB, 0x8C, 0x82, 0xC6, 0x21, 0x77, 0x1C, 0xEA, 0x9A, 0x1E, 0xDA, -+ 0xF7, 0x7B, 0x77, 0x7C, 0x52, 0x40, 0x28, 0x67, 0x04, 0xC0, 0x61, 0xC3, 0xAA, 0x6D, 0x68, 0x51, 0x22, 0xB4, 0xC9, 0x82, 0x46, 0x7C, 0x32, 0x9C, 0xDF, 0x89, 0x9D, 0x00, 0xF3, 0x01, 0xC5, 0x54, -+ 0xAF, 0x57, 0xE2, 0xF9, 0x93, 0x4C, 0x3A, 0x3F, 0x36, 0xEE, 0x2D, 0xD5, 0xCB, 0x35, 0x6C, 0x47, 0x52, 0x08, 0x30, 0x79, 0x81, 0x78, 0x00, 0xA0, 0x92, 0x84, 0x51, 0x27, 0x8A, 0x26, 0xCC, 0xD6, -+ 0x07, 0x17, 0xD4, 0x17, 0x59, 0xBC, 0x8C, 0x6F, 0x77, 0x9A, 0xFA, 0xBD, 0xFD, 0xFA, 0xFA, 0xA3, 0xA4, 0xD6, 0x2E, 0x9D, 0x1E, 0x9B, 0x3C, 0x8E, 0xDB, 0xAF, 0xBE, 0x29, 0xD7, 0x8E, 0x4D, 0x71, -+ 0xB0, 0xCE, 0x4C, 0xF4, 0xCF, 0x15, 0x1E, 0x3E, 0x54, 0x1C, 0x29, 0x9C, 0x6E, 0xAD, 0x63, 0xA7, 0x27, 0x15, 0xCD, 0xC9, 0x5F, 0x58, 0x4C, 0x6E, 0xB3, 0x75, 0x7C, 0x66, 0x0A, 0x27, 0x59, 0x63, -+ 0x19, 0x2B, 0xA8, 0xFD, 0xE8, 0xC2, 0xAC, 0xBD, 0x7E, 0xA9, 0xE5, 0x25, 0x92, 0x62, 0x42, 0x66, 0x59, 0xF7, 0xA5, 0x55, 0x5B, 0x80, 0xBD, 0x2C, 0xD5, 0xE7, 0xB5, 0xA6, 0xC9, 0x9B, 0x03, 0x0C, -+ 0x88, 0x70, 0x90, 0xEE, 0x9E, 0x64, 0x67, 0xA3, 0x75, 0x5A, 0x07, 0x58, 0xC9, 0xFF, 0xD7, 0xDB, 0x4D, 0x9D, 0x03, 0x1B, 0x7B, 0x6C, 0x77, 0xCC, 0x5D, 0xA2, 0x8A, 0xF2, 0xA6, 0xD3, 0x3A, 0x25, -+ 0x18, 0x7F, 0x7E, 0x2F, 0x5E, 0x45, 0xDD, 0x48, 0xE5, 0x1B, 0xBE, 0xAA, 0x9C, 0x06, 0xE5, 0xD2, 0xE8, 0xB0, 0x0D, 0x92, 0x58, 0x32, 0x31, 0xBB, 0xE0, 0x1F, 0x2A, 0x78, 0xA9, 0xFE, 0xB5, 0x10, -+ 0x72, 0xC2, 0xF1, 0x13, 0x8A, 0x5C, 0x68, 0x15, 0x78, 0x66, 0x6F, 0xE5, 0x46, 0x85, 0x00, 0xB6, 0x16, 0xAC, 0x60, 0x40, 0x22, 0x5F, 0xF0, 0xA8, 0xE9, 0xBF, 0x86, 0xD6, 0x45, 0x0F, 0xD2, 0xAC, -+ 0x8C, 0x2A, 0x3F, 0x0A, 0xE0, 0x67, 0x93, 0xBD, 0xE4, 0x34, 0x71, 0x4F, 0x1F, 0xCA, 0x30, 0xC7, 0xB1, 0x41, 0x34, 0xFF, 0xB5, 0xE7, 0x43, 0x72, 0x52, 0x17, 0x0C, 0xD4, 0x2E, 0x04, 0xBB, 0x76, -+ 0xF5, 0x36, 0x5A, 0x3C, 0x2F, 0x80, 0xF0, 0x2A, 0x86, 0xC4, 0x07, 0xB9, 0x84, 0x03, 0xBA, 0x84, 0x8C, 0xCD, 0xF5, 0x4B, 0x60, 0x09, 0x21, 0x77, 0x46, 0x85, 0x0A, 0x67, 0x03, 0x84, 0x4A, 0x49, -+ 0x6E, 0x1A, 0x09, 0x21, 0x9D, 0xA8, 0xA6, 0x40, 0xC9, 0x20, 0x67, 0xC0, 0xBB, 0x66, 0xA5, 0x70, 0x00, 0x78, 0x50, 0xF9, 0xB3, 0x03, 0x33, 0xA6, 0x68, 0x28, 0x3D, 0x5A, 0x15, 0xB0, 0xAF, 0x09, -+ 0x9D, 0xEA, 0x4F, 0x52, 0xDF, 0x86, 0x5B, 0xC3, 0x58, 0x6A, 0x8C, 0x04, 0x73, 0xE7, 0xDA, 0x12, 0xDA, 0xA1, 0xA5, 0x0B, 0xF7, 0xCA, 0x5E, 0x2B, 0xBD, 0x53, 0xCB, 0xAD, 0xDC, 0xBA, 0x09, 0x18, -+ 0x29, 0x44, 0xE8, 0x1B, 0xAE, 0xC6, 0x0D, 0xAE, 0xD7, 0x8A, 0xA8, 0xB6, 0xC3, 0xA2, 0xF4, 0x5B, 0x07, 0x16, 0xAA, 0x84, 0x29, 0xA1, 0x06, 0xDD, 0x71, 0x69, 0x40, 0x29, 0xFD, 0x1A, 0x02, 0xC5, -+ 0xCA, 0x2D, 0x3D, 0xFD, 0xE3, 0x2E, 0xCD, 0xC5, 0x78, 0x0F, 0x72, 0x3F, 0x1E, 0x2D, 0xB7, 0x68, 0xA5, 0xA3, 0xCD, 0xAE, 0x48, 0xF9, 0x39, 0xCA, 0x15, 0x86, 0xE2, 0x30, 0x83, 0xF7, 0x3C, 0x2F, -+ 0x62, 0x3A, 0x12, 0x1F, 0x54, 0x67, 0xAF, 0x24, 0xDA, 0xA8, 0x72, 0x63, 0x98, 0xEE, 0xED, 0x8B, 0xB1, 0xDF, 0xA4, 0x60, 0xA1, 0x12, 0xC5, 0x97, 0xAE, 0x2D, 0xD6, 0x4E, 0x90, 0x40, 0x02, 0xE0, -+ 0xF1, 0xA9, 0x0C, 0x00, 0xF9, 0x2C, 0xAF, 0xFA, 0x7F, 0xC4, 0x46, 0x74, 0x44, 0xA6, 0xFC, 0x40, 0x39, 0x18, 0x80, 0x3A, 0x92, 0xDC, 0x2A, 0xFC, 0x3A, 0x17, 0xBC, 0xAC, 0x18, 0x7A, 0xD8, 0xB3, -+ 0xDE, 0x0D, 0x87, 0x28, 0x30, 0xB8, 0xA7, 0xB5, 0xE5, 0x58, 0x0A, 0xBD, 0x1E, 0x27, 0xD5, 0x59, 0x4C, 0x1A, 0x6A, 0x00, 0x3D, 0x6C, 0x7C, 0x21, 0xB8, 0x71, 0xC7, 0xB6, 0x31, 0x49, 0x7A, 0x2E, -+ 0xFE, 0x0F, 0x86, 0x2B, 0x65, 0xF6, 0x65, 0x6B, 0x09, 0x4D, 0xDB, 0xA8, 0x20, 0xE9, 0xE6, 0x31, 0x4B, 0x4B, 0xD8, 0xF7, 0x81, 0x51, 0x8D, 0x17, 0x40, 0x54, 0x97, 0xBB, 0x39, 0x06, 0x3E, 0x68, -+ 0x33, 0xB0, 0x4D, 0xE0, 0xD3, 0x6B, 0xFC, 0x9F, 0x06, 0x14, 0xDC, 0xB7, 0xDE, 0x8D, 0x31, 0xF0, 0xE0, 0x1A, 0xB1, 0x50, 0xDE, 0x23, 0xC9, 0xD5, 0x2F, 0x80, 0x14, 0xE8, 0x85, 0x7E, 0x78, 0x6D, -+ 0xCA, 0xED, 0x8E, 0xA4, 0x1F, 0x78, 0x09, 0x97, 0x39, 0x4F, 0x87, 0x7F, 0x52, 0x8B, 0x59, 0x9F, 0xDB, 0x85, 0x7E, 0x8F, 0xCF, 0xCA, 0x77, 0x4F, 0x35, 0x08, 0x46, 0xD0, 0x5F, 0x97, 0x3C, 0x2A, -+ 0x1C, 0xF5, 0xFF, 0x0C, 0x58, 0xE3, 0x75, 0x90, 0xA6, 0x2F, 0x5B, 0x2A, 0x3B, 0x21, 0x26, 0x20, 0x63, 0x68, 0x2D, 0xBB, 0x0A, 0x20, 0x50, 0xBA, 0xD8, 0x44, 0x99, 0xEF, 0x5C, 0xAD, 0xCF, 0xFE, -+ 0x41, 0xB0, 0xE7, 0x1B, 0x3F, 0x4F, 0xC3, 0x5E, 0x1E, 0x37, 0x60, 0x48, 0xE3, 0xA3, 0x4B, 0xF6, 0xBC, 0xF4, 0xF6, 0x1D, 0x2D, 0x3C, 0x35, 0x39, 0x54, 0x24, 0x94, 0xFB, 0x04, 0x57, 0xBB, 0x76, -+ 0x2F, 0x03, 0x99, 0x63, 0x21, 0x35, 0x0B, 0x64, 0x87, 0x4B, 0xBD, 0xCE, 0x72, 0x04, 0xAB, 0x86, 0x06, 0x24, 0x58, 0x34, 0xE5, 0x99, 0x35, 0x2C, 0x36, 0x8D, 0x36, 0xC2, 0xC4, 0x63, 0x49, 0x76, -+ 0x11, 0x9B, 0xF9, 0x72, 0xC3, 0xA4, 0xAB, 0x28, 0x76, 0x67, 0x7B, 0xEE, 0x0E, 0xBC, 0xBE, 0x30, 0xF1, 0x31, 0x66, 0x2D, 0x68, 0x64, 0x7E, 0xD5, 0xD0, 0xA8, 0xF6, 0xC8, 0x9A, 0xFB, 0xBC, 0x8B, -+ 0xFA, 0xF1, 0xD1, 0x1B, 0x20, 0x6C, 0x33, 0x17, 0xAE, 0xD7, 0x88, 0x21, 0x35, 0x95, 0x72, 0x70, 0xEF, 0x87, 0x85, 0x2A, 0x32, 0x0A, 0x9B, 0x18, 0x4A, 0x60, 0x8C, 0xA6, 0xBC, 0x82, 0x58, 0x38, -+ 0x2E, 0x0B, 0x19, 0xBE, 0xAA, 0x38, 0x41, 0x62, 0x3F, 0xA3, 0x07, 0x93, 0xD8, 0xF4, 0x99, 0xB8, 0x37, 0xC4, 0x40, 0xCC, 0x11, 0x3C, 0x70, 0x35, 0x0C, 0x01, 0xC3, 0xE1, 0xAC, 0xE0, 0x53, 0xDB, -+ 0x30, 0xED, 0xFF, 0x7B, 0xA5, 0x26, 0x9D, 0x41, 0x8E, 0x8E, 0x48, 0xB9, 0x2A, 0xAC, 0x17, 0x09, 0x3D, 0x58, 0xE3, 0xAD, 0xDC, 0x78, 0xDA, 0x7B, 0xCF, 0xD9, 0xA8, 0xA8, 0xCA, 0xAB, 0x3D, 0xA2, -+ 0x5A, 0x46, 0x34, 0xC1, 0xBC, 0x95, 0xC6, 0x4E, 0xDF, 0x2F, 0x6F, 0xE7, 0xED, 0xFB, 0xAA, 0x1B, 0xAD, 0x2D, 0x23, 0x12, 0x98, 0x0B, 0xD6, 0x80, 0xB0, 0x68, 0x92, 0xB5, 0x55, 0xF3, 0x16, 0x74, -+ 0xA9, 0x52, 0xA1, 0x25, 0xE8, 0x87, 0x10, 0x4D, 0x1C, 0xF8, 0x3E, 0x97, 0xA0, 0x59, 0x0F, 0x47, 0x2B, 0xB3, 0xD1, 0xA2, 0xB9, 0x08, 0x32, 0x3B, 0x0E, 0xA9, 0x9F, 0x8F, 0x91, 0xFA, 0x30, 0xB9, -+ 0x09, 0x42, 0xD7, 0xB6, 0x90, 0xAF, 0xC6, 0x1A, 0x02, 0x77, 0x99, 0xD7, 0x70, 0x2D, 0x56, 0xB7, 0x68, 0x6A, 0x8F, 0x9B, 0xB0, 0x4E, 0xDE, 0xE3, 0xCF, 0xA3, 0x92, 0x7E, 0xF5, 0x16, 0xA7, 0xF5, -+ 0x20, 0x88, 0x59, 0x07, 0x31, 0x9B, 0x95, 0x84, 0xC8, 0x24, 0xFE, 0x97, 0xDC, 0xAF, 0xBA, 0xB5, 0xA3, 0xA7, 0x26, 0x71, 0xBA, 0x0C, 0x21, 0x88, 0x37, 0x91, 0x3B, 0x16, 0x1B, 0x42, 0x70, 0x6B, -+ 0x9B, 0x85, 0xCB, 0x42, 0x3B, 0x9D, 0xE5, 0xF2, 0x3C, 0x23, 0x80, 0x0B, 0x9C, 0x07, 0x11, 0x13, 0x2C, 0x40, 0x34, 0x75, 0x8D, 0x2E, 0xC8, 0x6D, 0xF5, 0x78, 0xE1, 0xB9, 0xF1, 0x78, 0x5F, 0x5C, -+ 0x79, 0x5C, 0x8B, 0xC2, 0x0F, 0xBC, 0xFF, 0xD9, 0xE4, 0xCA, 0x2E, 0x93, 0xC7, 0xCA, 0xE4, 0xDA, 0x91, 0xB9, 0xC0, 0x0E, 0x77, 0x8E, 0x3C, 0x42, 0x86, 0x53, 0x0C, 0x6C, 0x80, 0xC1, 0x02, 0x7C, -+ 0x8F, 0xA0, 0xDD, 0x78, 0xCF, 0x0A, 0x55, 0x4A, 0xD2, 0x7B, 0x19, 0xAF, 0x2B, 0x0C, 0x28, 0xE0, 0x50, 0xD0, 0x35, 0x5F, 0xE6, 0x1D, 0xE7, 0xF7, 0x02, 0xDC, 0x07, 0x3C, 0x90, 0x47, 0xC9, 0x7D, -+ 0x87, 0xC8, 0x15, 0x78, 0xD1, 0x98, 0xD9, 0x7B, 0x52, 0x3E, 0xBB, 0x15, 0x06, 0xD9, 0xA7, 0x52, 0x92, 0x46, 0x5E, 0x44, 0x0B, 0x20, 0x6F, 0xF9, 0x53, 0xE4, 0xA6, 0x8C, 0xBC, 0x57, 0x3E, 0x7C, -+ 0x36, 0x45, 0xE2, 0xF8, 0xC0, 0x8F, 0xDA, 0x3B, 0xD5, 0x8E, 0xD1, 0xC9, 0x0A, 0x4F, 0x63, 0xED, 0xFD, 0xF2, 0x0C, 0x8B, 0x25, 0x7E, 0xC9, 0x16, 0xCD, 0x6A, 0xEA, 0xB8, 0xEB, 0xA4, 0x77, 0xC1, -+ 0xF4, 0xC0, 0x9B, 0x8F, 0x69, 0xD6, 0xFE, 0xD9, 0x33, 0x19, 0xED, 0xA8, 0xEC, 0xF8, 0xC0, 0xEF, 0xE8, 0x4E, 0x5E, 0xC2, 0x71, 0x96, 0x66, 0x8E, 0x00, 0x71, 0xA0, 0x39, 0xDF, 0x3D, 0xBB, 0x87, -+ 0x2B, 0x88, 0xAC, 0xC8, 0x53, 0xA0, 0x82, 0x20, 0x6B, 0x95, 0xE0, 0x64, 0x34, 0xFC, 0xBF, 0x3F, 0xA3, 0x09, 0xDA, 0xE2, 0x5A, 0x25, 0x1D, 0xDB, 0x58, 0x40, 0x71, 0x81, 0x39, 0xCA, 0xDF, 0x13, -+ 0xF3, 0x92, 0xE0, 0xCE, 0x7B, 0x9C, 0x27, 0x17, 0x22, 0x26, 0xEE, 0x84, 0x71, 0xD0, 0x13, 0xB1, 0xFF, 0x45, 0x42, 0x97, 0xB7, 0x81, 0xAB, 0xAC, 0xEA, 0x43, 0x2D, 0x41, 0xFC, 0xF6, 0x9D, 0xB8, -+ 0x85, 0x6E, 0x37, 0x7B, 0x8B, 0x4E, 0x24, 0x00, 0x86, 0xD2, 0xFB, 0x73, 0x11, 0x88, 0x51, 0x45, 0x06, 0x9A, 0x72, 0x09, 0x86, 0x9D, 0xB0, 0x61, 0xA2, 0x45, 0xB9, 0x62, 0xE1, 0x86, 0x81, 0x0A, -+ 0x19, 0x23, 0x74, 0x70, 0x18, 0x85, 0x79, 0x31, 0x24, 0x69, 0x84, 0x7C, 0x53, 0x85, 0x66, 0x6E, 0xA0, 0xF3, 0xB5, 0x94, 0x22, 0xC0, 0xF6, 0x9B, 0x09, 0xB5, 0xB8, 0xBD, 0x08, 0x07, 0xCE, 0x99, -+ 0x92, 0x14, 0x2A, 0x34, 0xEE, 0x32, 0x7E, 0x8F, 0xDA, 0x2C, 0xBA, 0x0F, 0x40, 0x10, 0xF6, 0xD5, 0x24, 0xFF, 0x0C, 0x5B, 0xE4, 0x12, 0x9E, 0x98, 0xB2, 0x01, 0xAB, 0x91, 0x8A, 0x52, 0x76, 0xA7, -+ 0x35, 0x6B, 0x15, 0x2E, 0x60, 0x70, 0xCF, 0xDC, 0x27, 0x0C, 0x5D, 0x8D, 0x70, 0x8E, 0xE8, 0xCB, 0xB7, 0x01, 0x95, 0xCF, 0xA6, 0xA2, 0x9E, 0x8B, 0x07, 0x2F, 0x25, 0xF0, 0x3F, 0x25, 0x36, 0x2D, -+ 0x59, 0x0F, 0x5B, 0xB2, 0xB6, 0x7B, 0xD6, 0x3F, 0x3F, 0xA5, 0x2F, 0x2C, 0x61, 0x1D, 0x72, 0x57, 0x25, 0xF0, 0x42, 0xD5, 0x82, 0x4C, 0x77, 0x3C, 0xF8, 0xE6, 0x1F, 0xED, 0xBA, 0x92, 0xC5, 0x80, -+ 0xDC, 0xA7, 0x33, 0x48, 0xEC, 0x67, 0x60, 0x9D, 0x30, 0x1E, 0x74, 0x16, 0x44, 0xAA, 0x3A, 0x0B, 0x24, 0x41, 0xC5, 0x88, 0xED, 0x7F, 0x17, 0x1B, 0xC7, 0xB9, 0x54, 0x92, 0xEF, 0x14, 0xAE, 0xB5, -+ 0x44, 0x78, 0x6F, 0x23, 0x27, 0x35, 0x08, 0x56, 0x1C, 0xCB, 0x81, 0x03, 0xE2, 0xFA, 0x97, 0xD3, 0x5F, 0x29, 0xD7, 0xDE, 0x89, 0x08, 0x97, 0xF1, 0xEC, 0x97, 0x41, 0x81, 0xC7, 0x9B, 0xE3, 0x20, -+ 0x01, 0xFC, 0x0E, 0x91, 0xA0, 0xFB, 0xD7, 0xB0, 0xEF, 0xB8, 0xCC, 0x2D, 0xB6, 0x19, 0xD3, 0x64, 0x85, 0xCC, 0xCF, 0xD3, 0xB5, 0xDB, 0x94, 0xC0, 0x82, 0x0A, 0x53, 0x6C, 0xC8, 0xA2, 0xD7, 0x8F, -+ 0x5A, 0x9B, 0x95, 0xCE, 0xF4, 0xD3, 0x7B, 0xC8, 0x74, 0x14, 0x22, 0xBB, 0x61, 0xC3, 0xD0, 0xFE, 0x5B, 0xA4, 0x9D, 0x75, 0x42, 0x67, 0xA0, 0x10, 0x31, 0xF4, 0xDF, 0x52, 0xDE, 0xFF, 0xB5, 0xC8, -+ 0x98, 0xA0, 0x96, 0x47, 0xEF, 0x3F, 0x02, 0x4F, 0xCD, 0xD9, 0x0E, 0xFA, 0x94, 0x38, 0xC9, 0xDE, 0x93, 0xAA, 0xD9, 0x8E, 0xFF, 0x29, 0x49, 0xEE, 0xC8, 0xBC, 0x3A, 0x0F, 0x3E, 0x60, 0xE4, 0xB5, -+ 0x6B, 0xED, 0x02, 0x63, 0xE0, 0x4A, 0x5D, 0x3C, 0x68, 0x68, 0x76, 0x49, 0xA1, 0x00, 0x58, 0x34, 0x88, 0xF9, 0x83, 0xCD, 0x7F, 0x43, 0x41, 0x30, 0x90, 0xFC, 0x88, 0x0C, 0x11, 0xE8, 0x5E, 0xDC, -+ 0x24, 0x44, 0x6C, 0x35, 0x70, 0xAA, 0xB5, 0xDA, 0xEE, 0x3B, 0x7E, 0xD4, 0xD3, 0x53, 0x98, 0x8D, 0x02, 0xC7, 0x3D, 0x77, 0x7D, 0xCE, 0x26, 0xD1, 0x2A, 0x39, 0x5E, 0xB1, 0xB9, 0x5F, 0xFC, 0x7A, -+ 0xB5, 0x83, 0x43, 0xAE, 0xCD, 0x2D, 0xCE, 0xCA, 0xB0, 0x0A, 0x97, 0xF5, 0x78, 0xB9, 0x32, 0x7D, 0x0A, 0x9D, 0x1F, 0xDB, 0x65, 0x10, 0xF8, 0x60, 0x68, 0x5C, 0xC3, 0x03, 0x6F, 0xD8, 0x32, 0x6F, -+ 0x59, 0xA4, 0xE9, 0xA0, 0xDD, 0x7B, 0x02, 0xCE, 0x1D, 0x36, 0xBF, 0x46, 0xF4, 0xFA, 0x41, 0x15, 0x17, 0x2C, 0xBF, 0xDA, 0xDA, 0x6D, 0x59, 0x35, 0x26, 0xB7, 0x47, 0xE2, 0x36, 0x7B, 0x10, 0xA8, -+ 0x83, 0x92, 0x68, 0x7D, 0xE2, 0x23, 0xBF, 0x1D, 0x5A, 0xF1, 0xD7, 0x3D, 0x8A, 0x24, 0x84, 0x5C, 0x87, 0xFF, 0x76, 0x67, 0x5D, 0x73, 0xD5, 0x09, 0xF2, 0x83, 0xDA, 0x66, 0xB9, 0x43, 0xAD, 0x45, -+ 0x6A, 0xFE, 0x70, 0x92, 0x51, 0xB1, 0x7F, 0x9E, 0x43, 0x58, 0x7E, 0x52, 0x0C, 0xD6, 0xA1, 0xE9, 0xA2, 0x4B, 0x55, 0x8F, 0x4F, 0x6E, 0x46, 0x57, 0xF4, 0xC6, 0x35, 0x1D, 0xEA, 0x9B, 0xB9, 0x47, -+ 0xB3, 0x2D, 0xC4, 0x6E, 0x35, 0x20, 0xFC, 0xE3, 0xBD, 0x21, 0x97, 0x3C, 0x3B, 0x8B, 0x95, 0x15, 0x04, 0x58, 0xCB, 0x5E, 0x42, 0x48, 0xE2, 0x6D, 0x6E, 0x52, 0xE7, 0x6B, 0x8E, 0x6B, 0xF2, 0xBC, -+ 0xE3, 0xC8, 0xAC, 0x1C, 0x6C, 0xFD, 0x7F, 0x43, 0x51, 0x3A, 0x91, 0x8F, 0xEC, 0x31, 0xCE, 0xC0, 0xD4, 0x29, 0x66, 0x05, 0xAB, 0x21, 0xBC, 0xE4, 0x1E, 0x32, 0x9F, 0x47, 0xFB, 0x1B, 0xB6, 0x74, -+ 0x48, 0xD9, 0x1F, 0x41, 0x9B, 0x18, 0x26, 0xC8, 0xB7, 0x46, 0x65, 0x5F, 0xEB, 0x8F, 0x4A, 0x0D, 0x95, 0xE6, 0x99, 0x0D, 0xB8, 0xA4, 0xBE, 0x33, 0xC1, 0x36, 0x2F, 0xCC, 0x17, 0x1B, 0x08, 0x43, -+ 0x21, 0xE2, 0x2A, 0xCD, 0x06, 0x13, 0x1D, 0x2C, 0x34, 0xA0, 0x43, 0x48, 0xE4, 0x30, 0xDC, 0x78, 0x52, 0x78, 0x58, 0xBB, 0x38, 0x6B, 0xA2, 0xF4, 0xEC, 0xC0, 0xF3, 0xA0, 0x62, 0xCB, 0xDF, 0xF2, -+ 0xA4, 0x8F, 0x23, 0x71, 0x60, 0x58, 0x59, 0xEE, 0x81, 0xD6, 0xF8, 0xEA, 0x88, 0x6E, 0x00, 0x60, 0x66, 0x19, 0x34, 0x32, 0xAF, 0xCD, 0x97, 0x08, 0xE8, 0x38, 0x2B, 0x1C, 0xC2, 0xE8, 0x3C, 0x79, -+ 0x2D, 0xF4, 0xB4, 0xB9, 0xE0, 0xE0, 0x5D, 0x42, 0x34, 0x79, 0xE2, 0x54, 0xCC, 0xA4, 0xDF, 0x99, 0x90, 0x80, 0x26, 0x1D, 0x45, 0x0C, 0x3E, 0xD7, 0x33, 0x0E, 0x6F, 0xFF, 0xFF, 0x5E, 0x6D, 0x6C, -+ 0x89, 0x37, 0x20, 0xD3, 0x1B, 0x4E, 0x83, 0xB5, 0x14, 0x80, 0x5B, 0xFF, 0x76, 0x58, 0x6B, 0x63, 0x05, 0xD7, 0xBE, 0x0A, 0x96, 0xD7, 0x4F, 0x2B, 0x86, 0xC9, 0x74, 0xED, 0x21, 0x0F, 0x5C, 0xF7, -+ 0xFF, 0xAD, 0xE8, 0x54, 0x53, 0xA9, 0xFA, 0x1B, 0xF3, 0x40, 0xBD, 0x0B, 0xD8, 0xA5, 0xAC, 0x15, 0x2B, 0xE5, 0x59, 0x8D, 0x77, 0xB0, 0x08, 0x15, 0x22, 0x66, 0xA0, 0x1E, 0xFE, 0x20, 0x61, 0x5D, -+ 0xC2, 0x51, 0x48, 0x4D, 0xF4, 0xCF, 0xF5, 0xF5, 0x71, 0xA7, 0x32, 0xDA, 0x1A, 0x9E, 0xD8, 0x9F, 0x6C, 0x44, 0x61, 0x7F, 0x32, 0x72, 0xA0, 0xF4, 0xE7, 0x27, 0x58, 0x18, 0x6B, 0xD4, 0xDC, 0xA1, -+ 0xB4, 0xA4, 0x5D, 0xBA, 0x23, 0x2A, 0xE7, 0xF2, 0x21, 0x48, 0xA4, 0x95, 0xBC, 0xEA, 0x2E, 0xC3, 0x76, 0x1D, 0x1E, 0x06, 0x10, 0x3B, 0xCC, 0xE3, 0x6F, 0xAC, 0x74, 0xBD, 0x2F, 0x8E, 0x42, 0xAF, -+ 0xBB, 0xE8, 0x0B, 0x25, 0xDC, 0xB8, 0x09, 0xD4, 0x4E, 0xF9, 0x5D, 0xBF, 0x7F, 0x1A, 0x96, 0x5E, 0xDA, 0xF9, 0x89, 0xAF, 0xA3, 0xBB, 0xF4, 0x9C, 0x2F, 0xEA, 0x9E, 0xE2, 0x09, 0xE8, 0xF1, 0x17, -+ 0x8F, 0x5D, 0x01, 0x8B, 0xF9, 0xC0, 0x15, 0xC4, 0x51, 0x12, 0xEC, 0x17, 0xAE, 0x38, 0x0B, 0x09, 0xB2, 0x31, 0xE0, 0x15, 0xFF, 0xE2, 0xC3, 0x50, 0x48, 0x1A, 0xA8, 0xE1, 0x1B, 0x2B, 0xB5, 0x9A, -+ 0x25, 0x1B, 0x0D, 0xEA, 0x0D, 0x30, 0x79, 0xF0, 0x40, 0xF3, 0x3B, 0x6A, 0x6C, 0xCE, 0x48, 0xB6, 0xAB, 0x24, 0x00, 0x8A, 0xAB, 0xE1, 0x81, 0xE3, 0x1B, 0x55, 0x3A, 0xE4, 0x95, 0xB0, 0xFD, 0x76, -+ 0xA1, 0x3E, 0x07, 0x62, 0x0A, 0x72, 0x4B, 0x25, 0x6E, 0x34, 0x4F, 0x0B, 0x54, 0x1A, 0x57, 0x46, 0x0F, 0x6A, 0x75, 0x27, 0xC8, 0x26, 0xA4, 0x63, 0x67, 0x53, 0xB7, 0xDE, 0xD6, 0x28, 0x48, 0xDB, -+ 0x83, 0xDC, 0xE4, 0xBD, 0x08, 0x54, 0xD9, 0x98, 0x1D, 0x38, 0xA9, 0x63, 0xC6, 0xC7, 0x87, 0xF3, 0xE1, 0x82, 0x6B, 0xF6, 0xDA, 0x44, 0xD9, 0x5A, 0x31, 0x55, 0xB0, 0x3D, 0xA5, 0xC9, 0xA4, 0x27, -+ 0xCF, 0x6A, 0xD3, 0x6B, 0x6D, 0x67, 0x6F, 0x0D, 0xF8, 0x21, 0x10, 0x61, 0xFE, 0x33, 0x23, 0xF3, 0x20, 0x37, 0x74, 0x78, 0x70, 0x04, 0x36, 0xD9, 0xFE, 0xEC, 0x76, 0xF8, 0x10, 0xFE, 0x20, 0xBC, -+ 0xA5, 0xD0, 0xBA, 0xBB, 0xD0, 0x2E, 0xD8, 0xA3, 0x8B, 0xA4, 0x28, 0x04, 0x49, 0x20, 0xFE, 0x0C, 0x68, 0xDC, 0x6A, 0xDE, 0x9F, 0xA6, 0xE3, 0x97, 0x68, 0x0C, 0x03, 0xED, 0x81, 0x5F, 0x68, 0x48, -+ 0x59, 0xE6, 0x7C, 0xFA, 0x06, 0x37, 0xBE, 0x55, 0x56, 0xF9, 0x5F, 0x27, 0x0D, 0x5E, 0xC9, 0x1C, 0x64, 0x42, 0x94, 0xCB, 0xA9, 0x65, 0xDF, 0xD9, 0x61, 0x71, 0x3E, 0xCE, 0x53, 0x32, 0x8D, 0x99, -+ 0x17, 0xB1, 0xCE, 0xF8, 0x9C, 0xF1, 0x7B, 0x9F, 0x5B, 0x65, 0x57, 0x49, 0xD8, 0x6C, 0x10, 0x95, 0x63, 0x7B, 0xAD, 0x53, 0x2A, 0xFC, 0x5B, 0x39, 0xF3, 0xDA, 0xA0, 0x1F, 0x74, 0x0C, 0xBF, 0x49, -+ 0xF7, 0x57, 0x0F, 0x4B, 0xDC, 0xF1, 0x92, 0x41, 0xB6, 0x14, 0x9C, 0x8C, 0xF2, 0x49, 0x2B, 0x02, 0x57, 0xCA, 0x67, 0xC3, 0x95, 0xEC, 0xB1, 0x9C, 0x04, 0x95, 0x9A, 0x85, 0x93, 0x79, 0xB6, 0x54, -+ 0xDB, 0x7B, 0x67, 0xCC, 0xB7, 0xAE, 0x99, 0xDA, 0x88, 0xC1, 0x84, 0x1F, 0xD6, 0xEE, 0x6E, 0xA5, 0x21, 0xA6, 0x06, 0x9E, 0x64, 0x26, 0xD3, 0x82, 0xF8, 0x8C, 0xD2, 0x57, 0x17, 0xD8, 0x04, 0x51, -+ 0xD1, 0xA8, 0xF1, 0x09, 0x7D, 0xA5, 0xD7, 0x15, 0x28, 0xF4, 0x48, 0xF3, 0x72, 0xA2, 0x25, 0x53, 0x60, 0x62, 0x67, 0x85, 0x8E, 0x1C, 0x9D, 0xEF, 0x6F, 0x45, 0x66, 0x98, 0x5C, 0xDE, 0xC3, 0x17, -+ 0xCD, 0xCE, 0x2D, 0x59, 0x56, 0x08, 0x66, 0x86, 0xFA, 0x9E, 0xDC, 0x49, 0xDB, 0xEB, 0xF2, 0x60, 0xEB, 0x23, 0xB8, 0x57, 0x3B, 0x98, 0x07, 0x6E, 0x4B, 0x11, 0xA7, 0x13, 0xE7, 0x24, 0x78, 0xD2, -+ 0x0D, 0x10, 0xE9, 0xE9, 0x20, 0xB1, 0xFC, 0xC5, 0x62, 0xE0, 0x8F, 0x9A, 0xB7, 0xA6, 0xDB, 0x96, 0x00, 0x58, 0xD7, 0x99, 0x30, 0x31, 0x53, 0xB1, 0x3D, 0x2F, 0xC2, 0x54, 0x47, 0x07, 0x46, 0x92, -+ 0xD6, 0xD4, 0x6F, 0x8B, 0x5C, 0x7C, 0xE9, 0xF6, 0x17, 0xDC, 0x28, 0x13, 0x58, 0xF9, 0xF1, 0x0E, 0x26, 0x87, 0xDA, 0x06, 0x54, 0x1B, 0x50, 0xD1, 0x05, 0x06, 0xBA, 0x3A, 0xF2, 0x98, 0x75, 0x5A, -+ 0xA1, 0xB4, 0x7D, 0x8D, 0x56, 0x13, 0x5E, 0xCA, 0xFE, 0xD1, 0xD1, 0xCD, 0xE7, 0xD5, 0xBF, 0xD0, 0x9E, 0x37, 0xB4, 0x64, 0x9B, 0xFE, 0x06, 0x55, 0x7B, 0x4E, 0x86, 0xF9, 0x04, 0xD3, 0xA8, 0xCB, -+ 0x7F, 0x28, 0x21, 0x71, 0x57, 0xA8, 0x3C, 0x5E, 0x04, 0x2D, 0x19, 0xC1, 0x2D, 0x8E, 0xD0, 0x9D, 0x68, 0xB2, 0xAB, 0x73, 0x07, 0xBB, 0x6C, 0xAF, 0x63, 0x9B, 0x3A, 0xEE, 0xB5, 0x13, 0xD3, 0x3C, -+ 0xEE, 0x09, 0x8D, 0x6D, 0xD0, 0x36, 0x0C, 0x83, 0x2C, 0x3B, 0x7B, 0x18, 0x3D, 0xB5, 0xE7, 0xFD, 0xB4, 0x55, 0x8D, 0x93, 0x3E, 0x56, 0x10, 0xBC, 0x2A, 0x08, 0x2E, 0x16, 0x9E, 0x04, 0xFE, 0x34, -+ 0x1B, 0x07, 0x84, 0xAE, 0xB5, 0x29, 0x10, 0xE7, 0xA2, 0x01, 0x82, 0x0F, 0x6B, 0x3C, 0x57, 0x2B, 0x37, 0x74, 0xF2, 0x9A, 0x7B, 0xF1, 0x61, 0xAC, 0xBA, 0xBE, 0x5F, 0x0B, 0x14, 0xB3, 0xC1, 0xDE, -+ 0x8D, 0x8F, 0xBB, 0x20, 0x5E, 0xE7, 0x40, 0x0A, 0x06, 0x81, 0xF7, 0x98, 0x52, 0xE6, 0xBF, 0x1B, 0x5A, 0x50, 0x33, 0xD9, 0x04, 0x01, 0x47, 0xE0, 0x64, 0xDC, 0x10, 0xEA, 0xC0, 0x42, 0x11, 0x0C, -+ 0x43, 0x09, 0x2D, 0xD4, 0x40, 0x2B, 0x64, 0x58, 0x4A, 0x81, 0xD6, 0xD2, 0x11, 0xD4, 0x00, 0x8E, 0xE1, 0xF1, 0x9E, 0xB0, 0x0E, 0x84, 0xDC, 0x3A, 0x3D, 0xBE, 0x22, 0x1A, 0xE8, 0x6E, 0xAC, 0xAE, -+ 0xA6, 0x83, 0x24, 0xD2, 0xF1, 0xA5, 0x73, 0x0F, 0x03, 0x32, 0xEA, 0xD6, 0x4F, 0x02, 0xB9, 0xB5, 0x97, 0x09, 0xF1, 0x51, 0x03, 0xE2, 0x6D, 0x89, 0x71, 0xB7, 0xB6, 0xDB, 0xCF, 0xC8, 0x75, 0x04, -+ 0xFE, 0xB0, 0x0E, 0xD4, 0x1A, 0x02, 0x78, 0x9E, 0xB9, 0x79, 0xE2, 0xCB, 0xF7, 0x47, 0x26, 0x89, 0x64, 0xAB, 0xC8, 0x41, 0x2A, 0x53, 0x93, 0x70, 0xBF, 0x52, 0x0D, 0x9A, 0xAE, 0xF9, 0x29, 0xE8, -+ 0xBA, 0xFD, 0x8E, 0x18, 0x5B, 0xE2, 0xAA, 0xB0, 0x40, 0xA7, 0x7A, 0x7B, 0xF6, 0x80, 0x7F, 0x0A, 0x8A, 0x41, 0xAC, 0x61, 0x89, 0xBF, 0x00, 0xAB, 0xC7, 0x7C, 0x62, 0x05, 0x17, 0xBE, 0xAF, 0xBF, -+ 0x0A, 0x63, 0x05, 0x8D, 0x8D, 0x47, 0x8F, 0xCB, 0xC4, 0x2C, 0x6A, 0x77, 0x83, 0xC7, 0x69, 0x51, 0x6F, 0x24, 0x06, 0xD4, 0x4C, 0x23, 0x52, 0x99, 0xBF, 0x2E, 0x4E, 0x1C, 0xFF, 0xB7, 0xBE, 0xA0, -+ 0x04, 0x0C, 0x94, 0x58, 0xA1, 0xC7, 0x74, 0x18, 0x63, 0x66, 0xC1, 0x17, 0x4B, 0x04, 0xB5, 0x43, 0xF7, 0x2B, 0xD5, 0x4A, 0x30, 0xFF, 0x99, 0x47, 0xE8, 0x2E, 0x90, 0x47, 0x4C, 0xDD, 0xC6, 0xF0, -+ 0x69, 0xB4, 0x1F, 0xC7, 0x68, 0xB8, 0x0A, 0x02, 0xED, 0x29, 0xC8, 0x30, 0xAD, 0x27, 0xCD, 0xFC, 0x68, 0x6C, 0x64, 0x6A, 0xEA, 0x27, 0x9B, 0x22, 0xE6, 0x09, 0x2E, 0xD3, 0xA1, 0x72, 0x72, 0x19, -+ 0xB2, 0x81, 0xE9, 0x72, 0xF5, 0x0C, 0x88, 0x66, 0xF4, 0x4E, 0x19, 0x8B, 0x0F, 0x24, 0xFF, 0xA6, 0xA7, 0x39, 0x5D, 0x1E, 0x41, 0x05, 0x84, 0x2A, 0x60, 0xE0, 0x17, 0x35, 0x50, 0x48, 0x1C, 0x64, -+ 0x12, 0xF6, 0xB5, 0xAE, 0x7F, 0xF6, 0x54, 0xFD, 0x43, 0xC0, 0xD6, 0x7E, 0x8A, 0x65, 0xB6, 0x6D, 0x6D, 0x52, 0x47, 0xD6, 0xB1, 0xD5, 0xC6, 0x60, 0xCB, 0xAC, 0xF2, 0xCB, 0xDF, 0x0D, 0x81, 0xA1, -+ 0x68, 0xED, 0x6C, 0x82, 0x7D, 0xDC, 0xDB, 0xA0, 0xAF, 0x5B, 0xF2, 0x50, 0x42, 0x72, 0x85, 0xF3, 0x0F, 0x5C, 0x6D, 0x20, 0xED, 0x03, 0x47, 0x20, 0x33, 0x76, 0x4F, 0x2B, 0x19, 0x88, 0x4F, 0x66, -+ 0x2D, 0x45, 0x45, 0xBA, 0x21, 0x89, 0xD2, 0xA2, 0xA3, 0xC2, 0x9F, 0x4E, 0x89, 0xD5, 0xF5, 0x5E, 0xC6, 0xDC, 0x8E, 0x49, 0x7B, 0xA6, 0x75, 0xFE, 0x22, 0x42, 0xDA, 0x34, 0x80, 0x8C, 0x8D, 0xA5, -+ 0xD0, 0xE5, 0x68, 0xE7, 0x86, 0x91, 0x96, 0xCB, 0x45, 0x9D, 0x6B, 0x65, 0xA2, 0x77, 0x82, 0x0F, 0x7D, 0xD7, 0x8A, 0x31, 0xA5, 0x3B, 0x2F, 0xE7, 0x02, 0x1C, 0x9F, 0x51, 0xBB, 0x63, 0x41, 0xCB, -+ 0xE3, 0xCF, 0xA5, 0xF6, 0x89, 0xB8, 0xE5, 0x4F, 0x00, 0x28, 0x51, 0x71, 0x4B, 0xAA, 0x8D, 0x2D, 0x8E, 0xF9, 0x13, 0xDB, 0x9A, 0x14, 0x4B, 0x6F, 0xF6, 0x6A, 0xEC, 0x4C, 0xEF, 0x06, 0xE9, 0xD2, -+ 0x73, 0x49, 0x60, 0xD7, 0xFA, 0xEC, 0x0E, 0x64, 0x2D, 0xC5, 0x69, 0xCA, 0xFA, 0xB3, 0xA9, 0x32, 0x08, 0x81, 0xAE, 0xAF, 0xF8, 0x02, 0x72, 0x36, 0x18, 0xB5, 0x77, 0x69, 0x1C, 0x93, 0x72, 0x02, -+ 0x1D, 0x40, 0x92, 0xE0, 0xBD, 0x91, 0x3D, 0x38, 0xD7, 0x69, 0x55, 0xAA, 0x79, 0x2A, 0x85, 0x20, 0x2B, 0x5A, 0x90, 0x62, 0xD9, 0x7F, 0xE6, 0x57, 0x45, 0xD8, 0xC5, 0x50, 0xCF, 0xD0, 0xD4, 0x18, -+ }, -+ .t1_len = 2560, -+ .t1 = { -+ 0x2C, 0xAF, 0xB7, 0x2F, 0x71, 0x55, 0x72, 0xBF, 0x43, 0x28, 0x38, 0xE0, 0x80, 0xCA, 0x4A, 0x19, 0x8A, 0x28, 0x4B, 0xBD, 0xF0, 0xC4, 0x54, 0xF0, 0x94, 0x5E, 0x95, 0x3D, 0xD0, 0x71, 0x99, 0xD2, -+ 0xC6, 0x21, 0x0E, 0x59, 0xE6, 0xED, 0x17, 0x7D, 0xA8, 0xF0, 0xBB, 0x19, 0xEF, 0x02, 0x9E, 0x6F, 0xDB, 0x3B, 0xAC, 0x91, 0x00, 0x13, 0x11, 0x60, 0x51, 0x8B, 0xB2, 0xA8, 0x85, 0x56, 0xA8, 0xF4, -+ 0x8A, 0xA1, 0x97, 0x23, 0x6B, 0x4F, 0x00, 0x46, 0x78, 0x6C, 0xF0, 0xD2, 0x37, 0x4D, 0xA1, 0x9A, 0x5D, 0xF8, 0x0B, 0x19, 0xB1, 0x3D, 0xB3, 0x33, 0xB0, 0xD3, 0x0D, 0x7B, 0x1C, 0xE8, 0xD8, 0x1F, -+ 0x71, 0x66, 0xB0, 0x5E, 0x0E, 0x45, 0x67, 0x02, 0x92, 0x34, 0x83, 0x41, 0xCE, 0xF0, 0xCF, 0xEC, 0xB2, 0xC6, 0x1F, 0xAE, 0x5B, 0x5E, 0x8C, 0x05, 0x3E, 0xB2, 0x94, 0x71, 0xE1, 0x79, 0xA2, 0x1F, -+ 0x0D, 0xDF, 0x15, 0xB7, 0xA9, 0xF2, 0x8C, 0xF3, 0x58, 0x0F, 0x7D, 0x0E, 0xBA, 0x06, 0xE7, 0x22, 0x67, 0xEB, 0xBA, 0x35, 0xAB, 0xDC, 0xD3, 0x12, 0xBD, 0x3B, 0xBE, 0x6A, 0xC8, 0xEF, 0x24, 0x64, -+ 0xD0, 0xB4, 0xBC, 0xA5, 0x44, 0x16, 0x7A, 0xF7, 0x53, 0x19, 0x5B, 0x40, 0x57, 0x00, 0x27, 0x3A, 0xDB, 0xAF, 0x24, 0x5F, 0x73, 0x3B, 0x1F, 0xD7, 0x74, 0xBC, 0x5D, 0xE7, 0x7C, 0xE2, 0xD8, 0x27, -+ 0x2B, 0xCF, 0x6F, 0x99, 0xCC, 0x2C, 0xB2, 0x3E, 0x08, 0x27, 0xA0, 0x2F, 0x3F, 0x0F, 0xCA, 0x3B, 0xEC, 0x62, 0x22, 0xAE, 0xFC, 0x76, 0x22, 0x52, 0x5D, 0x86, 0xF7, 0x59, 0xF5, 0x19, 0xE4, 0xCE, -+ 0xD5, 0x5B, 0x93, 0xD5, 0x6E, 0xA1, 0x09, 0x18, 0x2F, 0x0A, 0x75, 0x65, 0xD9, 0xF8, 0x4D, 0x74, 0x6A, 0x9A, 0x32, 0xB4, 0x42, 0x7B, 0xF6, 0x92, 0x99, 0x53, 0x36, 0x63, 0x37, 0xAE, 0x46, 0xCF, -+ 0x78, 0xAB, 0xE2, 0x11, 0x92, 0xBD, 0x6A, 0x6C, 0x90, 0xAC, 0x8D, 0xAD, 0x66, 0xBF, 0x71, 0x37, 0x48, 0xC1, 0xA3, 0xE6, 0x73, 0x7D, 0xB3, 0x93, 0xB0, 0x18, 0x6C, 0xEA, 0x9D, 0x0E, 0xBA, 0x62, -+ 0x47, 0xB9, 0x0C, 0x94, 0x32, 0x86, 0xED, 0x0E, 0x13, 0x4C, 0xF2, 0x89, 0x27, 0xA3, 0x29, 0xD3, 0x56, 0x45, 0x5A, 0x6E, 0x56, 0x5D, 0x14, 0xDD, 0xDF, 0x5F, 0xA7, 0x0B, 0xF3, 0xAD, 0x13, 0xF4, -+ 0xEE, 0x51, 0x65, 0x8A, 0x92, 0x38, 0xCB, 0x97, 0x90, 0x24, 0xE5, 0x8D, 0x64, 0xF3, 0x79, 0x6F, 0x4C, 0xE3, 0x7C, 0x23, 0xF1, 0x0E, 0x44, 0x1F, 0x50, 0xD9, 0x76, 0x38, 0x8C, 0x6D, 0xEC, 0xED, -+ 0x8E, 0xD9, 0x35, 0xD2, 0xC6, 0xC6, 0xBB, 0x12, 0xC6, 0x12, 0xAF, 0xB7, 0xA0, 0x2D, 0x91, 0x34, 0x26, 0xB6, 0xAE, 0x22, 0x39, 0x00, 0x4E, 0xEC, 0x58, 0xAD, 0xA2, 0xFE, 0x3C, 0x67, 0xC4, 0xE2, -+ 0xA9, 0xF0, 0x3E, 0x49, 0x03, 0x50, 0xFC, 0x47, 0x18, 0xF3, 0x6A, 0x86, 0x1D, 0x93, 0xD2, 0x47, 0x3C, 0xCB, 0x31, 0xB7, 0xF1, 0xD7, 0xAD, 0xAE, 0xD5, 0xE0, 0xCE, 0x6A, 0xA9, 0x38, 0x18, 0x57, -+ 0x9E, 0x15, 0x71, 0x27, 0x19, 0x0A, 0xB4, 0x08, 0x40, 0x20, 0x40, 0x4C, 0x61, 0xC2, 0xE5, 0xC6, 0x78, 0xDC, 0x37, 0xCB, 0x53, 0x65, 0x40, 0xA4, 0x3F, 0x5C, 0xC6, 0x99, 0xDC, 0x40, 0x95, 0xFE, -+ 0x03, 0xFB, 0x7C, 0xEC, 0x5E, 0xFD, 0x3D, 0x9C, 0x87, 0x50, 0x32, 0xDF, 0x94, 0x57, 0x16, 0x46, 0x2B, 0xA3, 0xAE, 0x6D, 0xBF, 0x6C, 0x5B, 0xC8, 0x99, 0xAB, 0x8A, 0x7C, 0x59, 0xC5, 0xF6, 0x6B, -+ 0x74, 0x78, 0xB1, 0x61, 0xF4, 0x22, 0x98, 0x6C, 0xDA, 0x91, 0xD0, 0x8B, 0xE7, 0x58, 0x49, 0x4B, 0xA1, 0x75, 0x9B, 0x1E, 0x05, 0x7E, 0x31, 0xA4, 0x15, 0xD7, 0x0A, 0xCC, 0xC0, 0x80, 0xC7, 0x6D, -+ 0x6C, 0x32, 0x09, 0x9C, 0xF7, 0x45, 0xAC, 0x61, 0xCC, 0x42, 0xA9, 0x6E, 0x59, 0x4F, 0x3D, 0x78, 0x76, 0x98, 0x31, 0x3D, 0x62, 0xAD, 0x6C, 0xD4, 0x6A, 0xF5, 0x90, 0x66, 0xE1, 0xE5, 0xCA, 0x9F, -+ 0x83, 0xC7, 0xE5, 0xC6, 0x8C, 0xAE, 0x2D, 0x63, 0x2C, 0xF4, 0xF6, 0xA1, 0x7A, 0xA8, 0x0F, 0xF5, 0x34, 0x97, 0xB6, 0xFE, 0x50, 0xB3, 0xE6, 0x21, 0x5C, 0x2F, 0xE4, 0x65, 0x7B, 0xB1, 0xE2, 0x56, -+ 0x94, 0xE0, 0x79, 0x7E, 0xA4, 0x0E, 0x95, 0x75, 0x8B, 0xE6, 0x8E, 0xF3, 0x0E, 0xB9, 0xE3, 0xF5, 0xB6, 0xAF, 0xFF, 0x45, 0xA7, 0x7D, 0xAC, 0xD0, 0xEA, 0xB5, 0xC1, 0x03, 0x14, 0xE3, 0x1B, 0x6C, -+ 0xDF, 0x85, 0xF4, 0x74, 0x1B, 0xFF, 0xE6, 0xD0, 0x1C, 0xE2, 0xA2, 0xB9, 0xC3, 0xDF, 0x0A, 0xE8, 0x7A, 0x4A, 0x7A, 0x99, 0x02, 0xBC, 0xA1, 0x24, 0x90, 0xDC, 0x27, 0x9B, 0x81, 0xC0, 0x37, 0xA4, -+ 0xF9, 0xE8, 0xAF, 0xB9, 0xC9, 0xD8, 0x52, 0x4F, 0x84, 0x7D, 0xED, 0xF8, 0x0C, 0x41, 0xBB, 0xE2, 0x36, 0xCC, 0x0D, 0x1C, 0xD7, 0x9D, 0x46, 0x3B, 0xFF, 0x96, 0xCD, 0x7C, 0x31, 0x87, 0x95, 0x24, -+ 0x76, 0x32, 0xAB, 0x01, 0xA1, 0xF0, 0x52, 0xF4, 0xF7, 0x30, 0xDD, 0xD1, 0x7B, 0xD1, 0x0A, 0xBF, 0x36, 0x34, 0x41, 0x52, 0xD5, 0xB8, 0x41, 0x15, 0x5B, 0x71, 0x79, 0x2B, 0xB4, 0x1F, 0x5C, 0x9E, -+ 0x33, 0x16, 0x5D, 0x3D, 0xCE, 0x8E, 0xA5, 0xFE, 0xFE, 0xC6, 0x3F, 0xAD, 0x10, 0x8B, 0x26, 0xC0, 0xC3, 0x77, 0x33, 0x92, 0x57, 0x0D, 0x13, 0x6D, 0x67, 0xFC, 0xEF, 0xC7, 0x10, 0x8D, 0x1E, 0x9D, -+ 0x99, 0x30, 0x2B, 0xD5, 0x78, 0x45, 0x33, 0xD5, 0x62, 0x44, 0xE0, 0x12, 0x67, 0x54, 0x0F, 0x5D, 0x06, 0xC1, 0xD4, 0xCA, 0xF6, 0x5B, 0x4E, 0xAA, 0x67, 0x38, 0x51, 0x48, 0xCB, 0xD1, 0xC7, 0x3E, -+ 0xAD, 0x46, 0x74, 0x31, 0x9A, 0xBF, 0x03, 0x14, 0x03, 0x05, 0x4A, 0x39, 0x05, 0x49, 0x52, 0x48, 0x47, 0xE6, 0x9C, 0x93, 0x29, 0x40, 0x22, 0x0C, 0xB6, 0xFC, 0x18, 0xE0, 0x6F, 0x11, 0x29, 0x89, -+ 0xA2, 0x37, 0xAB, 0x7F, 0x3B, 0x65, 0x41, 0xF6, 0x99, 0xE0, 0x2F, 0x71, 0x43, 0x53, 0x99, 0x59, 0x15, 0xFF, 0xB7, 0x34, 0xC6, 0xC0, 0xB7, 0x15, 0x0D, 0x5D, 0xD4, 0xB1, 0x72, 0x83, 0x6F, 0x7A, -+ 0x75, 0xD1, 0x0C, 0x58, 0xCE, 0x5F, 0x68, 0x62, 0x1F, 0x2C, 0x6C, 0xB6, 0xDC, 0x49, 0xF1, 0x14, 0xCE, 0x55, 0x6C, 0xDB, 0xF5, 0xF4, 0x73, 0x91, 0x21, 0x2F, 0x1B, 0xCB, 0xFB, 0xB4, 0xAA, 0x7C, -+ 0x99, 0x27, 0x80, 0xFC, 0x51, 0x2D, 0x21, 0x5E, 0xCC, 0xB1, 0x60, 0x52, 0x4E, 0x4E, 0xAC, 0x73, 0x8A, 0x04, 0x83, 0x0A, 0xE4, 0x11, 0xA0, 0x9D, 0xFC, 0xEE, 0x5D, 0xEF, 0x02, 0xC9, 0x75, 0xD2, -+ 0xCD, 0x08, 0x88, 0xAD, 0x16, 0xA2, 0xDF, 0x46, 0x99, 0xD5, 0xE7, 0x10, 0xFF, 0xFC, 0x45, 0xF0, 0x2C, 0x4C, 0xC9, 0xD9, 0x64, 0x7F, 0x1A, 0xAC, 0x14, 0x06, 0x00, 0x12, 0x23, 0xFE, 0x56, 0x4D, -+ 0xD5, 0xA4, 0x3C, 0xBA, 0xAE, 0xFE, 0xD2, 0xBC, 0x94, 0x4F, 0x1C, 0x10, 0x8A, 0x8C, 0x2D, 0xA4, 0x48, 0x53, 0xFF, 0xE8, 0x38, 0x4A, 0x07, 0x4D, 0xD7, 0x26, 0x96, 0xDC, 0x68, 0x3F, 0x64, 0x48, -+ 0x17, 0x4B, 0xF0, 0x4B, 0x6A, 0x4F, 0x8A, 0x09, 0xE8, 0x21, 0xDC, 0xD4, 0xEF, 0x92, 0xB4, 0xDC, 0x54, 0x0C, 0x7C, 0x46, 0x54, 0x53, 0x67, 0x37, 0x33, 0x2B, 0xE9, 0x61, 0xC0, 0xD9, 0xBA, 0xC6, -+ 0xC4, 0x4C, 0xE8, 0x78, 0x92, 0x94, 0x2E, 0xA4, 0xE6, 0x81, 0xD7, 0xAB, 0x65, 0xAB, 0x2F, 0xCA, 0x41, 0x83, 0x7E, 0x0F, 0x45, 0x5F, 0x4E, 0x55, 0xC9, 0xE5, 0x11, 0xA7, 0xD9, 0xD7, 0x60, 0x25, -+ 0xA7, 0x9B, 0x43, 0x45, 0x6F, 0xEA, 0x7F, 0xB3, 0x49, 0x2E, 0xF8, 0xAA, 0x06, 0x9C, 0x46, 0x8C, 0xF7, 0x4D, 0x02, 0xA6, 0xB5, 0x52, 0xD1, 0xB8, 0xA1, 0x44, 0x18, 0x8C, 0xD6, 0x8A, 0x8A, 0x60, -+ 0x99, 0x85, 0xAB, 0x62, 0xD1, 0xCC, 0xBC, 0xCA, 0x7E, 0xFF, 0x91, 0xDE, 0x5C, 0xC6, 0xE0, 0x80, 0x1D, 0x04, 0xE3, 0x30, 0x93, 0xEB, 0x70, 0x49, 0x8E, 0xA8, 0xCB, 0x05, 0x06, 0x18, 0xB2, 0x72, -+ 0xAF, 0x06, 0x2D, 0xD4, 0xDC, 0x10, 0x9C, 0x19, 0xC8, 0x63, 0xAA, 0x59, 0xF5, 0xB8, 0xAF, 0x74, 0x42, 0xBD, 0xA3, 0xE4, 0x11, 0xCE, 0x36, 0xD1, 0x44, 0xD6, 0xCD, 0x3F, 0x57, 0x2F, 0x1C, 0xFE, -+ 0x67, 0x26, 0x98, 0xB0, 0xC0, 0x74, 0x3B, 0xCE, 0xD7, 0x32, 0x9A, 0xDB, 0x98, 0x45, 0xCA, 0xFF, 0x6C, 0x10, 0xB2, 0x6C, 0x32, 0x51, 0x6F, 0x9E, 0x53, 0x8C, 0x83, 0x0B, 0x61, 0x62, 0x7D, 0x68, -+ 0xEA, 0x76, 0x8D, 0xD0, 0x3E, 0x98, 0x0B, 0x40, 0x2B, 0x76, 0x59, 0xEA, 0x65, 0x66, 0xD7, 0x36, 0xF7, 0x88, 0x1A, 0x8D, 0x0E, 0x42, 0xA8, 0xCA, 0x24, 0x7E, 0x51, 0x29, 0xB0, 0x28, 0x92, 0x5B, -+ 0xE7, 0x53, 0xC3, 0x91, 0xD7, 0x75, 0x03, 0x5A, 0x44, 0x69, 0x6E, 0x26, 0xF8, 0xA6, 0x48, 0x7C, 0x7C, 0x8D, 0xE7, 0xD0, 0x49, 0x22, 0xB8, 0x75, 0xCC, 0xD3, 0xD2, 0x12, 0x11, 0x66, 0xC3, 0x34, -+ 0x6B, 0x51, 0xD5, 0xD5, 0x43, 0x76, 0x53, 0xCC, 0xDB, 0xDF, 0x49, 0x85, 0x65, 0xB1, 0xBF, 0x1B, 0xDF, 0x91, 0x82, 0xC4, 0x3B, 0x15, 0x4B, 0x00, 0xC0, 0x42, 0x48, 0x00, 0xB6, 0xA8, 0xE9, 0x64, -+ 0xF4, 0x37, 0xD3, 0xDF, 0xA6, 0xA6, 0x48, 0x20, 0x0D, 0xC0, 0xE0, 0x7D, 0xD2, 0xDA, 0x98, 0x19, 0xFC, 0xF2, 0xB2, 0x25, 0x8E, 0x07, 0xF0, 0xC5, 0x0A, 0xF4, 0x43, 0x30, 0x43, 0x5B, 0x23, 0x48, -+ 0xB7, 0x4C, 0xCC, 0x5F, 0x24, 0xE5, 0xDC, 0xCF, 0x67, 0xB0, 0x63, 0xDB, 0x59, 0x70, 0xBC, 0x7B, 0x59, 0x04, 0x99, 0xB2, 0xDB, 0x49, 0xFB, 0x2E, 0xB3, 0xF0, 0x88, 0x3E, 0x97, 0x04, 0x20, 0x9A, -+ 0xFF, 0x45, 0xBF, 0xB6, 0x12, 0x70, 0xEB, 0xB1, 0x3D, 0x89, 0x14, 0x60, 0xBD, 0x5E, 0x8B, 0x5F, 0xCE, 0x07, 0x3B, 0x50, 0x82, 0xC6, 0x5B, 0x0F, 0xE3, 0x7C, 0x7D, 0xC4, 0x14, 0xCC, 0xA3, 0xEF, -+ 0xD1, 0x08, 0x5F, 0x58, 0x16, 0xFC, 0x71, 0x0C, 0xF4, 0x5B, 0x45, 0x5B, 0x98, 0xAE, 0x53, 0xA2, 0x4A, 0x2D, 0x92, 0x40, 0x0B, 0xCD, 0x15, 0xA0, 0xFE, 0xA7, 0x94, 0xC4, 0x63, 0xBB, 0x59, 0x15, -+ 0x39, 0xD1, 0x17, 0x19, 0x50, 0xCA, 0xA3, 0x47, 0x61, 0x67, 0x90, 0xCF, 0x8D, 0x22, 0xC5, 0x46, 0xE7, 0x5A, 0x6E, 0xEB, 0x72, 0x68, 0x09, 0xD0, 0xC0, 0x72, 0xFF, 0x21, 0x61, 0xA2, 0xA4, 0x41, -+ 0xFD, 0xF3, 0x9C, 0xAD, 0x7A, 0x18, 0xF2, 0xB0, 0xB4, 0x26, 0x1D, 0xC2, 0xD3, 0xB4, 0x17, 0xB8, 0x44, 0xAD, 0xB7, 0x1E, 0xB7, 0xE7, 0x2F, 0xE2, 0x4F, 0x8D, 0xDE, 0x92, 0xD7, 0xC4, 0xF2, 0xDA, -+ 0x29, 0x3A, 0xCC, 0x92, 0x23, 0xA8, 0x73, 0x3A, 0x84, 0x99, 0x65, 0x63, 0x2D, 0x77, 0x10, 0xF7, 0xA7, 0xBB, 0x87, 0x04, 0x1A, 0x3D, 0x3A, 0x51, 0x66, 0xBA, 0x90, 0x65, 0x7E, 0x03, 0xAF, 0x26, -+ 0xA9, 0xD1, 0x0D, 0x66, 0x19, 0x9E, 0x60, 0xEE, 0x70, 0xD3, 0xFB, 0xF3, 0x9F, 0xE4, 0x6C, 0xFC, 0x8D, 0xDC, 0x73, 0x68, 0x34, 0xE4, 0xE4, 0x05, 0xF8, 0x3C, 0xDD, 0x0C, 0xAA, 0xF8, 0x16, 0x28, -+ 0xC7, 0x98, 0x99, 0xEA, 0xED, 0xBF, 0x25, 0x03, 0x18, 0x77, 0xE1, 0x62, 0x67, 0x5D, 0x9C, 0x57, 0xF6, 0xA4, 0xD9, 0xFF, 0xE0, 0xFD, 0x68, 0x40, 0xF9, 0x9B, 0xEC, 0xE9, 0x06, 0x2C, 0x98, 0xE0, -+ 0x74, 0xBB, 0x30, 0x71, 0x76, 0xA7, 0x8C, 0x4A, 0x4D, 0xCE, 0x9E, 0x40, 0x31, 0xBD, 0x10, 0x28, 0x55, 0x39, 0xC1, 0x80, 0xF4, 0xB8, 0xBD, 0x33, 0xE8, 0xCB, 0x11, 0xBC, 0x9C, 0x1D, 0xD9, 0x37, -+ 0x6D, 0x73, 0xD3, 0x1D, 0x6E, 0xFE, 0x1A, 0xCC, 0x61, 0x7E, 0xC9, 0x92, 0xE3, 0x9B, 0x49, 0x6B, 0x05, 0xB1, 0x1A, 0xCA, 0xFF, 0x35, 0x6D, 0x72, 0x53, 0x7C, 0x60, 0x11, 0x0C, 0x90, 0x51, 0xD6, -+ 0x91, 0x7C, 0x1F, 0xFB, 0x03, 0x1B, 0x69, 0xD3, 0x9B, 0x94, 0x28, 0x85, 0x8A, 0x4B, 0xF7, 0x28, 0x83, 0xB4, 0xC7, 0x87, 0x9F, 0xEF, 0x69, 0xBF, 0xCC, 0x31, 0xA1, 0xCF, 0xB3, 0x39, 0xC5, 0x79, -+ 0x47, 0xFC, 0x79, 0x1B, 0xDA, 0x3E, 0x81, 0x20, 0x5D, 0x04, 0x6E, 0x1B, 0xFA, 0xB8, 0xE0, 0x45, 0x19, 0xEA, 0x65, 0x24, 0xD5, 0xFF, 0x16, 0x6D, 0x56, 0xA8, 0xB3, 0xC2, 0x02, 0xCF, 0x32, 0x5D, -+ 0x29, 0x76, 0x60, 0xDD, 0x94, 0x14, 0xE9, 0xD2, 0xAF, 0x1F, 0xE0, 0x11, 0xC2, 0xA1, 0x6F, 0xCE, 0x6A, 0x5B, 0x75, 0x1E, 0x7B, 0xB0, 0x55, 0xDD, 0x40, 0x23, 0x72, 0xB8, 0xDB, 0xE6, 0x43, 0xDB, -+ 0xAA, 0x8B, 0xAD, 0x19, 0xEA, 0x47, 0xE1, 0x4D, 0xD6, 0xC0, 0x06, 0xC8, 0x82, 0xC0, 0xCE, 0x27, 0x51, 0x82, 0xD5, 0xC7, 0x93, 0xA7, 0x24, 0x6E, 0x35, 0xA7, 0x2F, 0xA9, 0x71, 0x89, 0x48, 0xD8, -+ 0x9D, 0x7C, 0x70, 0x07, 0xE4, 0x65, 0x09, 0x67, 0xF0, 0x1A, 0x6C, 0xCD, 0x2F, 0x9B, 0x23, 0xD8, 0x5C, 0xB7, 0x0E, 0xAB, 0x54, 0x05, 0x96, 0xD4, 0xE7, 0xEF, 0xD3, 0xC4, 0x64, 0x26, 0x69, 0x36, -+ 0xCE, 0x6B, 0xCB, 0x38, 0x86, 0x4A, 0xFC, 0xC9, 0x0C, 0xA7, 0x4D, 0xED, 0xD2, 0x45, 0xDE, 0x19, 0xD8, 0x62, 0x36, 0xD8, 0xB5, 0xF2, 0xAD, 0xD8, 0xEA, 0x9B, 0xA7, 0x4C, 0x3C, 0xC9, 0x7F, 0xC9, -+ 0xDD, 0xE8, 0x60, 0x6F, 0xB3, 0x43, 0xCC, 0xB1, 0x98, 0x37, 0x59, 0xDB, 0x7F, 0xCD, 0x2D, 0x18, 0x7E, 0xE6, 0x42, 0xC9, 0x8B, 0x05, 0x0E, 0xB1, 0x67, 0xF0, 0x19, 0xDB, 0x78, 0x8B, 0x7E, 0x56, -+ 0xD5, 0xD5, 0xB4, 0xC0, 0x77, 0x0B, 0xC0, 0x96, 0x97, 0xCF, 0xA3, 0xF0, 0xC7, 0xBC, 0x6F, 0x30, 0xCE, 0xEE, 0x06, 0xC6, 0x55, 0x84, 0x85, 0xB4, 0xB6, 0x2B, 0xE0, 0x18, 0x3D, 0x79, 0x86, 0x7C, -+ 0x2C, 0x91, 0x04, 0xD3, 0x85, 0xC0, 0xFC, 0xEE, 0xE9, 0x4C, 0x42, 0x49, 0x01, 0x1B, 0x6F, 0x72, 0xE3, 0x7F, 0xD5, 0xE6, 0x6D, 0xCC, 0x00, 0x4F, 0x37, 0xB6, 0x76, 0x1B, 0x6C, 0xE7, 0xC4, 0xD2, -+ 0x08, 0x98, 0xCB, 0xC1, 0x1E, 0x19, 0xD8, 0xCB, 0x88, 0x1A, 0xCE, 0xC8, 0x3C, 0x12, 0x70, 0x4F, 0x26, 0xC1, 0x29, 0x19, 0x14, 0x08, 0x8F, 0xCE, 0x3F, 0x88, 0x05, 0xDF, 0xE5, 0x73, 0x2A, 0xA4, -+ 0xAC, 0xD5, 0x69, 0xDD, 0x4F, 0x80, 0x9B, 0x3A, 0xEC, 0x3B, 0x0A, 0xE8, 0xF8, 0xA4, 0xBA, 0xC2, 0x21, 0x72, 0x96, 0x6C, 0x95, 0x39, 0x15, 0x29, 0x52, 0x43, 0x8F, 0xBD, 0x34, 0xD8, 0x67, 0xC3, -+ 0x28, 0xCD, 0xED, 0x82, 0xAE, 0xD9, 0x64, 0x46, 0x4B, 0xAE, 0x83, 0xBC, 0xE5, 0xCA, 0xF6, 0xE7, 0xE7, 0x19, 0x0F, 0x46, 0x4B, 0xBF, 0x7C, 0x8F, 0x51, 0x58, 0xDB, 0xFA, 0x9A, 0xF4, 0x20, 0xBC, -+ 0xA2, 0xB3, 0xD2, 0xFE, 0x6E, 0xC6, 0x0E, 0xAB, 0xDE, 0x95, 0x86, 0x9C, 0x8A, 0x74, 0xAE, 0x6C, 0x0A, 0x18, 0x6F, 0xBF, 0x75, 0xE3, 0x3C, 0x8E, 0x87, 0x6F, 0x57, 0xD1, 0x67, 0xD5, 0xB7, 0x43, -+ 0x34, 0x5E, 0x21, 0x1E, 0xF3, 0x73, 0x3D, 0x0F, 0xF6, 0x07, 0x98, 0x2E, 0x60, 0xFB, 0x3C, 0x2A, 0x59, 0xEA, 0xC1, 0x67, 0x60, 0x02, 0xED, 0x1E, 0xC8, 0xD1, 0xE2, 0xE6, 0x9E, 0xD0, 0x9B, 0xD4, -+ 0xAB, 0xD8, 0x4B, 0xEE, 0xFA, 0xAA, 0x06, 0xFD, 0x40, 0x09, 0xF6, 0x78, 0x77, 0x85, 0x2E, 0x9E, 0x7E, 0x38, 0xA0, 0x86, 0xEC, 0xBC, 0x42, 0x4E, 0xC7, 0xBA, 0x2C, 0x7E, 0x82, 0x56, 0x9F, 0xB1, -+ 0xD1, 0xDE, 0xF5, 0xD4, 0x47, 0x98, 0xB2, 0x48, 0x06, 0x55, 0x3D, 0xC6, 0x92, 0x33, 0x4D, 0xA0, 0xBC, 0x09, 0xC9, 0x19, 0x19, 0x31, 0x34, 0x0C, 0xAA, 0xA9, 0xD0, 0x9E, 0x45, 0xBA, 0xFD, 0x94, -+ 0x62, 0xA6, 0xDD, 0xE7, 0x62, 0xB4, 0x66, 0x79, 0x6C, 0xC4, 0xAA, 0x7C, 0xA0, 0x6A, 0x3E, 0x25, 0x0E, 0xC7, 0x04, 0x4C, 0xF0, 0x93, 0x2B, 0x45, 0xE1, 0xD7, 0x81, 0xF3, 0xE3, 0xE8, 0x10, 0x5D, -+ 0xFB, 0x56, 0x48, 0x35, 0x04, 0xAD, 0xBB, 0xE5, 0x2A, 0xBA, 0x41, 0xF3, 0xC7, 0x13, 0x88, 0x7A, 0x94, 0x53, 0x4B, 0x92, 0xF9, 0x9D, 0x5F, 0xF7, 0x00, 0xD9, 0x57, 0x8A, 0xF2, 0xBA, 0x61, 0xEF, -+ 0xA3, 0x5F, 0x7D, 0xF3, 0xF0, 0xA0, 0xAD, 0x15, 0x37, 0x2C, 0xBE, 0x39, 0x2C, 0xA3, 0x07, 0x88, 0x0C, 0x28, 0xD1, 0x9A, 0xC4, 0x1F, 0x8E, 0x9A, 0x41, 0x41, 0x63, 0x0F, 0xB6, 0x49, 0x6A, 0xBB, -+ 0x4F, 0xAF, 0x12, 0xB4, 0xC2, 0xF9, 0x8A, 0x34, 0x0A, 0x74, 0x48, 0x3C, 0x17, 0xEF, 0x9F, 0x14, 0x7C, 0x88, 0xBA, 0x65, 0x86, 0xDD, 0xCA, 0x75, 0xC2, 0x27, 0x96, 0xBA, 0xD2, 0xE5, 0x4A, 0x42, -+ 0x64, 0x7A, 0x39, 0x44, 0x4F, 0xDE, 0xA1, 0x81, 0x42, 0xF0, 0x27, 0xCD, 0xA7, 0x65, 0xAD, 0x63, 0x97, 0x12, 0x5F, 0x0A, 0x52, 0xF8, 0xB5, 0xF4, 0x24, 0x84, 0xD7, 0x27, 0x88, 0x76, 0x30, 0x81, -+ 0x4B, 0x20, 0x80, 0xD0, 0xC8, 0xF5, 0x17, 0xBD, 0x57, 0x77, 0xC2, 0x45, 0xAD, 0xDE, 0x98, 0x59, 0x05, 0x73, 0x7D, 0x79, 0x96, 0x1D, 0x81, 0xEE, 0xB0, 0xAF, 0xB4, 0x9A, 0xAC, 0x22, 0x9F, 0x65, -+ 0x79, 0xDE, 0xBC, 0x47, 0xC4, 0xDC, 0xFD, 0x68, 0x63, 0x1B, 0xE8, 0x27, 0x54, 0xFF, 0x8D, 0x84, 0xF0, 0xFE, 0xA3, 0xFB, 0x2B, 0x83, 0xD2, 0xFB, 0x38, 0x4D, 0x40, 0xCF, 0xB4, 0x2E, 0xA8, 0xFF, -+ 0x2B, 0xC0, 0xC5, 0x5C, 0x87, 0xE4, 0xF7, 0x0C, 0x76, 0x58, 0xA5, 0x4D, 0xD2, 0xF5, 0x34, 0x22, 0xAE, 0x1F, 0xE0, 0xFC, 0x28, 0x6E, 0x8B, 0x32, 0xE9, 0xD4, 0x5C, 0x96, 0x7A, 0xF0, 0x0D, 0xAA, -+ 0x9C, 0x68, 0x5F, 0x78, 0x10, 0x98, 0x36, 0x65, 0xE5, 0x94, 0xFD, 0x5B, 0x77, 0x25, 0x8A, 0x06, 0x41, 0x3D, 0x5B, 0x84, 0xC8, 0x01, 0x72, 0x7A, 0xA5, 0x34, 0x71, 0xE0, 0xE8, 0x71, 0x6A, 0xB4, -+ 0x11, 0x0A, 0x8A, 0x05, 0x74, 0x4D, 0xA2, 0x5E, 0xA4, 0x84, 0xBD, 0x11, 0x41, 0x25, 0x3E, 0xB8, 0x7B, 0xD8, 0x67, 0x36, 0xDD, 0xE8, 0x66, 0x2F, 0x77, 0x65, 0x5F, 0x83, 0x61, 0xD4, 0xB4, 0x3B, -+ 0x2B, 0x4F, 0xD3, 0xC5, 0x6C, 0xF7, 0x10, 0x11, 0xDC, 0x1E, 0xD9, 0x18, 0x13, 0x4F, 0x49, 0x74, 0xB4, 0xD5, 0x60, 0x83, 0x72, 0xF1, 0xDF, 0x37, 0x84, 0xBF, 0xF9, 0xAB, 0x1C, 0xB4, 0xAF, 0x5E, -+ 0x53, 0x33, 0xD0, 0x44, 0x51, 0x2D, 0x7C, 0xA5, 0xB3, 0xA8, 0x2F, 0xC2, 0x91, 0x5D, 0xD5, 0x0C, 0x82, 0xA2, 0xFE, 0x52, 0x1D, 0x04, 0x73, 0x8A, 0x76, 0xB8, 0x27, 0xC8, 0xB1, 0x32, 0x75, 0x99, -+ 0xDE, 0xFF, 0xD2, 0x24, 0x59, 0x02, 0x53, 0xB7, 0x56, 0x66, 0xEF, 0xE4, 0x8A, 0x9C, 0x29, 0x66, 0x1F, 0x55, 0xEC, 0x36, 0x8F, 0xE0, 0x36, 0x79, 0x44, 0x95, 0xC8, 0xF6, 0xA4, 0xEE, 0x7F, 0x92, -+ 0xB2, 0x0C, 0x4C, 0x38, 0xFB, 0x09, 0xF9, 0x48, 0x50, 0xBC, 0x0B, 0x97, 0xC2, 0x5C, 0x1E, 0x16, 0x36, 0xD5, 0xE5, 0xAD, 0x7E, 0xF7, 0x37, 0x53, 0xA9, 0x01, 0xD8, 0x38, 0x50, 0x3A, 0x94, 0x4A, -+ }, -+ .pkcs8_len = 0, -+ .spki_len = 0, -+ .msg_len = 66, -+ .msg = { -+ 0x22, 0x5D, 0x5C, 0xE2, 0xCE, 0xAC, 0x61, 0x93, 0x0A, 0x07, 0x50, 0x3F, 0xB5, 0x9F, 0x7C, 0x2F, 0x93, 0x6A, 0x3E, 0x07, 0x54, 0x81, 0xDA, 0x3C, 0xA2, 0x99, 0xA8, 0x0F, 0x8C, 0x5D, 0xF9, 0x22, -+ 0x3A, 0x07, 0x3E, 0x7B, 0x90, 0xE0, 0x2E, 0xBF, 0x98, 0xCA, 0x22, 0x27, 0xEB, 0xA3, 0x8C, 0x1A, 0xB2, 0x56, 0x82, 0x09, 0xE4, 0x6D, 0xBA, 0x96, 0x18, 0x69, 0xC6, 0xF8, 0x39, 0x83, 0xB1, 0x7D, -+ 0xCD, 0x49, -+ }, -+ .sig_len = 4595, -+ .sig = { -+ 0x5C, 0x04, 0x77, 0x77, 0xB8, 0xEB, 0x60, 0x8F, 0x9B, 0xD9, 0x11, 0xCD, 0xF6, 0x2B, 0x8B, 0xEB, 0x36, 0x61, 0xF9, 0x3F, 0xE4, 0xE6, 0x2E, 0x9A, 0x0C, 0x4E, 0x20, 0xA8, 0x88, 0x90, 0x81, 0x2C, -+ 0x2F, 0xC6, 0x4D, 0xEC, 0x6A, 0x3A, 0xDB, 0x78, 0x83, 0xFA, 0x86, 0xAD, 0x62, 0xC4, 0xF0, 0x72, 0x98, 0x89, 0xEC, 0xBD, 0x7B, 0x49, 0xAC, 0x68, 0x89, 0x3C, 0xD0, 0xEE, 0x56, 0x3E, 0x08, 0x41, -+ 0xE5, 0x3E, 0xF9, 0xC5, 0x23, 0x69, 0xA1, 0x70, 0x42, 0x82, 0x68, 0x4F, 0xDA, 0x5C, 0x61, 0x5F, 0x3B, 0x71, 0x24, 0x3B, 0x17, 0x09, 0x85, 0xD9, 0xEB, 0x28, 0x23, 0xB0, 0xAA, 0xDE, 0xAE, 0x32, -+ 0x05, 0xBA, 0x95, 0x63, 0xF3, 0xAD, 0xC9, 0x04, 0x71, 0x95, 0x77, 0x9B, 0x51, 0x72, 0x02, 0x83, 0xC1, 0x88, 0x30, 0x2E, 0x0D, 0xC4, 0xE6, 0x4D, 0xA8, 0xC8, 0xE2, 0x6D, 0x1A, 0x12, 0x6F, 0x1E, -+ 0x23, 0x6A, 0xDA, 0x99, 0x40, 0x3E, 0x4E, 0x29, 0xDF, 0x8D, 0x52, 0x21, 0xB5, 0x18, 0x57, 0x60, 0x80, 0x7E, 0x17, 0x8E, 0x46, 0xB7, 0x59, 0x5A, 0x1E, 0x31, 0x27, 0x30, 0xDA, 0x4C, 0x10, 0xE9, -+ 0x6D, 0x67, 0x45, 0x84, 0x89, 0x92, 0xFA, 0xFB, 0x10, 0x12, 0x58, 0xF8, 0xFE, 0xCE, 0xFA, 0x10, 0x1C, 0xC8, 0xC1, 0x92, 0x46, 0x84, 0xA4, 0x23, 0x4A, 0xB3, 0x47, 0x56, 0xAC, 0x49, 0x61, 0xC9, -+ 0xAB, 0x5D, 0xF0, 0xE1, 0xC8, 0x61, 0x38, 0x0A, 0x88, 0x1F, 0xDC, 0x18, 0xA8, 0x62, 0x45, 0x67, 0x23, 0xE9, 0x4C, 0xA9, 0x54, 0xAE, 0x50, 0xF5, 0x68, 0x83, 0x34, 0x28, 0x8A, 0x93, 0xD4, 0xB7, -+ 0x89, 0x67, 0x3A, 0xC0, 0xBC, 0x57, 0xD8, 0x3B, 0x71, 0x04, 0xF5, 0x6E, 0x40, 0x7D, 0x2A, 0x79, 0x38, 0x31, 0xAA, 0x69, 0x87, 0x19, 0xB2, 0xED, 0xE0, 0xDE, 0x3C, 0x8D, 0x70, 0xDE, 0xAB, 0x53, -+ 0x79, 0x6C, 0x98, 0xF1, 0x01, 0xA3, 0x76, 0xBC, 0x48, 0x88, 0xE7, 0xF8, 0x8D, 0x9D, 0xA1, 0xBD, 0x9C, 0x0A, 0x39, 0x75, 0x5F, 0xFC, 0xB4, 0xFA, 0x96, 0x99, 0x59, 0x60, 0x17, 0x62, 0x54, 0x2A, -+ 0x01, 0xE6, 0xD6, 0x07, 0x9B, 0x38, 0x2A, 0xCF, 0xFC, 0xEE, 0x1F, 0x17, 0x36, 0x91, 0x6B, 0xDC, 0x57, 0xD8, 0x61, 0xC0, 0x47, 0xFD, 0xF9, 0xAB, 0x49, 0x6C, 0x2B, 0x99, 0x97, 0x0C, 0x0F, 0x1D, -+ 0x10, 0x70, 0xFF, 0x37, 0xEB, 0x5A, 0x5C, 0x1A, 0xF6, 0x5B, 0x87, 0x75, 0xA9, 0x13, 0x83, 0x89, 0x9E, 0xBE, 0x44, 0xB3, 0xFC, 0x98, 0x11, 0xAB, 0xE5, 0x3D, 0x74, 0xDF, 0x1E, 0x58, 0xBC, 0x0A, -+ 0xFC, 0xEC, 0x6D, 0xEF, 0xB3, 0xC7, 0x4C, 0xF6, 0xED, 0x4C, 0xC2, 0x13, 0x05, 0xBC, 0xD5, 0x82, 0xF0, 0xD1, 0xD5, 0x5B, 0x81, 0xF3, 0x16, 0x6E, 0x90, 0x04, 0xFF, 0x1D, 0x98, 0x98, 0x21, 0x74, -+ 0xB7, 0x32, 0x57, 0x6C, 0x4F, 0x08, 0x00, 0x4A, 0xA1, 0x72, 0xB6, 0xED, 0xD3, 0x59, 0xEC, 0xAB, 0x95, 0xF9, 0x77, 0x5C, 0x23, 0x2B, 0x11, 0x12, 0xFD, 0xF6, 0x65, 0xB2, 0x45, 0x10, 0x8A, 0x3C, -+ 0xF9, 0x57, 0xD9, 0x08, 0xEB, 0xB1, 0xFA, 0x5E, 0x38, 0x5B, 0xED, 0x36, 0xDD, 0x4A, 0xE0, 0x9C, 0xB3, 0xB4, 0x94, 0x42, 0xC8, 0x1B, 0x49, 0xA0, 0x5C, 0xE7, 0xF3, 0xB8, 0xC7, 0x1F, 0x1A, 0xE2, -+ 0x8E, 0xC4, 0xCD, 0xE8, 0x51, 0xA2, 0x27, 0xB9, 0x9E, 0x4A, 0xDE, 0xB4, 0x7C, 0xBB, 0x12, 0xAF, 0x98, 0xBF, 0x8E, 0x1D, 0xDA, 0x9E, 0xCB, 0x09, 0x68, 0x3A, 0x74, 0xAB, 0x05, 0x3D, 0x62, 0x78, -+ 0xFD, 0xEF, 0xA2, 0x19, 0x83, 0xB3, 0xD3, 0xFE, 0x23, 0x96, 0x3F, 0x1C, 0x2A, 0xD9, 0x6F, 0x46, 0x64, 0xB9, 0xDF, 0x8A, 0x4A, 0xF0, 0x98, 0x5B, 0x73, 0x1E, 0xB3, 0x3C, 0xDB, 0x49, 0x5D, 0xB1, -+ 0x28, 0xE5, 0xDC, 0x5B, 0x36, 0x55, 0x9E, 0xFD, 0xA1, 0x17, 0x17, 0xDD, 0xBB, 0xEC, 0x43, 0x8B, 0xC8, 0x6A, 0xE7, 0x3D, 0x7D, 0x69, 0x66, 0x81, 0xF9, 0x0E, 0x6B, 0xBC, 0x24, 0x43, 0xB6, 0xA6, -+ 0x23, 0x21, 0xF9, 0x26, 0xC6, 0x48, 0xC3, 0x36, 0x05, 0xAB, 0x61, 0x9B, 0x02, 0xEF, 0xFD, 0x5B, 0x48, 0x4B, 0x00, 0x45, 0x15, 0x0A, 0x47, 0x53, 0xB9, 0x22, 0x52, 0x27, 0x9E, 0xA1, 0x20, 0x4F, -+ 0x42, 0xF3, 0x0B, 0xB0, 0xD8, 0x2D, 0x39, 0xD5, 0x58, 0x88, 0x1F, 0xFB, 0x4C, 0xD2, 0x96, 0x75, 0x6E, 0xF2, 0x8D, 0x08, 0x71, 0x20, 0xEB, 0xD5, 0xFC, 0x1D, 0x42, 0x72, 0xBC, 0x7C, 0x75, 0xB9, -+ 0xBB, 0x0F, 0xC3, 0x31, 0x09, 0x51, 0xCE, 0xA4, 0x5A, 0x7D, 0x06, 0xC8, 0xDC, 0xA5, 0x9E, 0xDB, 0x6F, 0x34, 0xEE, 0xEF, 0x55, 0x60, 0xF5, 0xCF, 0xD6, 0xC3, 0x44, 0xC2, 0xEF, 0x06, 0xED, 0x7B, -+ 0xBA, 0x25, 0x74, 0x9A, 0x2E, 0xF5, 0x62, 0xE2, 0x9F, 0xEF, 0x5C, 0xB4, 0x7C, 0x25, 0x50, 0xAB, 0x72, 0xF3, 0xA1, 0x0D, 0x15, 0x89, 0x34, 0xB1, 0xF2, 0x69, 0x51, 0x59, 0x30, 0xD1, 0x05, 0x3E, -+ 0x34, 0xF2, 0xB1, 0xA6, 0x8D, 0x36, 0x94, 0xEE, 0x4B, 0xC2, 0x06, 0xD8, 0x62, 0x66, 0x58, 0x68, 0x90, 0x4C, 0xAF, 0xCD, 0x9E, 0x2D, 0xAD, 0x4B, 0x26, 0x2B, 0x2A, 0x11, 0x18, 0xEE, 0xA1, 0xFA, -+ 0x5B, 0xF0, 0x21, 0x88, 0xE8, 0x5A, 0x8A, 0xFE, 0xA1, 0xF8, 0xBA, 0x8E, 0x36, 0x04, 0xED, 0x67, 0xC0, 0xA8, 0xC4, 0x4D, 0x61, 0x0E, 0xCE, 0x21, 0x03, 0x3D, 0x23, 0x03, 0x4A, 0x28, 0xB9, 0xBC, -+ 0x3F, 0x54, 0xCE, 0x7C, 0xA6, 0x3F, 0xD0, 0xC5, 0x4E, 0xC5, 0x9A, 0x3A, 0xE6, 0xF0, 0xF0, 0x15, 0x33, 0x86, 0xC2, 0xC0, 0x8B, 0x9F, 0x22, 0xC3, 0xC9, 0x21, 0xE9, 0xB6, 0xC5, 0xF6, 0x8C, 0x95, -+ 0x02, 0x58, 0x4B, 0x57, 0x58, 0x92, 0xE6, 0xC1, 0x00, 0xBA, 0x24, 0x38, 0x30, 0x15, 0x75, 0x22, 0x09, 0xCD, 0x36, 0x17, 0x1A, 0x86, 0x42, 0xE1, 0xAB, 0xC1, 0x77, 0xB3, 0x99, 0x58, 0x23, 0xAA, -+ 0x56, 0x2D, 0xC8, 0xCE, 0xD9, 0x22, 0x08, 0x68, 0xD0, 0x98, 0x71, 0x5C, 0x2B, 0xE9, 0x9C, 0x10, 0x14, 0x3B, 0x1C, 0x47, 0x6E, 0x60, 0x73, 0x1B, 0xA5, 0x7E, 0x29, 0x36, 0x4B, 0xDE, 0xC6, 0x38, -+ 0x4C, 0x4F, 0xC8, 0x6C, 0x72, 0x93, 0xEC, 0xBF, 0x24, 0xED, 0xE4, 0x23, 0x1F, 0x63, 0xF4, 0xD7, 0x43, 0x0C, 0x74, 0xB4, 0x5C, 0xBC, 0xD8, 0x8F, 0xA6, 0x3C, 0xA8, 0x19, 0xE3, 0xE9, 0x82, 0x26, -+ 0x3F, 0xAD, 0xDF, 0xEB, 0xA6, 0xFE, 0x21, 0xB3, 0xB2, 0x43, 0x7F, 0x34, 0xF8, 0x6E, 0xB3, 0x76, 0xA9, 0x3B, 0xAF, 0x4E, 0x55, 0x51, 0x99, 0xE1, 0x29, 0x91, 0x7F, 0x6A, 0x60, 0xF0, 0x8E, 0x7E, -+ 0x4F, 0x38, 0x73, 0x09, 0x76, 0x94, 0x6B, 0x73, 0x7E, 0xDF, 0x30, 0x2C, 0x11, 0x45, 0x95, 0x47, 0x42, 0xD1, 0x46, 0x85, 0x43, 0x09, 0x33, 0x53, 0xBF, 0xE6, 0x64, 0x94, 0xEC, 0x60, 0x02, 0x24, -+ 0xAA, 0x5E, 0x76, 0x62, 0x66, 0x04, 0x3F, 0x6B, 0x8E, 0x65, 0xFB, 0x89, 0xF0, 0x85, 0x23, 0x9A, 0xD8, 0xD6, 0x69, 0x3C, 0x23, 0xFD, 0x3A, 0x6F, 0x29, 0x8C, 0x3E, 0xA0, 0xF4, 0x8C, 0x6D, 0x56, -+ 0x3E, 0x62, 0xFD, 0x78, 0x57, 0xD6, 0xA1, 0x1D, 0x10, 0xAF, 0x8C, 0xF3, 0x6F, 0x8B, 0x34, 0xFC, 0x60, 0x66, 0x4E, 0xCE, 0x43, 0xC0, 0xA6, 0x50, 0x3F, 0x68, 0x57, 0x7C, 0x8A, 0x7B, 0xEF, 0xA1, -+ 0xFF, 0x91, 0xBC, 0x51, 0x0B, 0xD7, 0xB9, 0xDA, 0xCA, 0x4A, 0xB6, 0xD4, 0x00, 0xAC, 0x2D, 0x42, 0xD7, 0x07, 0x7A, 0x23, 0xD8, 0xE2, 0xF3, 0x04, 0xE8, 0x57, 0x68, 0xC1, 0x11, 0xDC, 0xAA, 0x8B, -+ 0x1E, 0x8D, 0x05, 0x9A, 0x3E, 0xB2, 0x38, 0x42, 0x88, 0xC9, 0x8C, 0x0F, 0x26, 0xF9, 0xB6, 0x0F, 0x61, 0x71, 0x37, 0x25, 0x4B, 0xA0, 0x77, 0x6C, 0x27, 0x2C, 0xA2, 0x3A, 0x26, 0x81, 0x0E, 0x00, -+ 0x6A, 0x25, 0x43, 0xE3, 0x7B, 0x78, 0x94, 0x57, 0xFE, 0xA7, 0x30, 0x41, 0xD6, 0x55, 0xEC, 0x6B, 0xA3, 0x1C, 0xAA, 0x2C, 0xDE, 0x59, 0xD4, 0x42, 0x09, 0x6A, 0xA7, 0x10, 0xF4, 0xF5, 0x03, 0x19, -+ 0xA2, 0xB6, 0x2D, 0x4C, 0x28, 0xD8, 0xC8, 0x8C, 0xC8, 0xFD, 0x80, 0x8F, 0x26, 0xB6, 0xF8, 0x7C, 0x9D, 0xF4, 0x85, 0xAF, 0xC9, 0xDF, 0xC3, 0x69, 0xDE, 0x7D, 0xB6, 0xFD, 0xE5, 0x12, 0x9A, 0x36, -+ 0xB0, 0xFF, 0xBC, 0x30, 0x13, 0x13, 0x24, 0xDD, 0x0F, 0x33, 0x27, 0xF7, 0x6F, 0x6E, 0xFB, 0x80, 0xD7, 0x84, 0x4A, 0x13, 0x3A, 0xA8, 0x48, 0x70, 0x80, 0x16, 0x59, 0x0B, 0xB3, 0xB5, 0xA4, 0x20, -+ 0x63, 0xD0, 0xC3, 0xCE, 0x9F, 0x7D, 0x23, 0xD6, 0x06, 0x15, 0xAC, 0xEC, 0x34, 0x71, 0x5B, 0x80, 0xEC, 0x4B, 0xFB, 0xBE, 0x78, 0xB4, 0xC1, 0x08, 0x0D, 0xCF, 0xED, 0x7F, 0xE9, 0x08, 0xE1, 0xC7, -+ 0x10, 0xD2, 0x50, 0xB5, 0xA0, 0xCB, 0xBB, 0x6A, 0xCC, 0x45, 0x06, 0x59, 0xB3, 0x47, 0xC6, 0xAD, 0x16, 0xDC, 0xED, 0x0F, 0x6B, 0x6A, 0x56, 0x71, 0x4B, 0x89, 0x9D, 0x4E, 0x25, 0xE1, 0x81, 0x13, -+ 0x89, 0xB9, 0x41, 0x26, 0x91, 0x8E, 0x11, 0x7E, 0x62, 0xB3, 0x3F, 0xE6, 0x63, 0x6C, 0xF8, 0xA2, 0x30, 0x23, 0x24, 0x92, 0xA5, 0x8A, 0x84, 0x6F, 0x7C, 0xCC, 0xF1, 0x65, 0x60, 0xE5, 0xB2, 0x51, -+ 0xB4, 0x2D, 0xD6, 0xCC, 0xEC, 0xED, 0x51, 0xB2, 0x83, 0x83, 0xA4, 0x18, 0x85, 0x11, 0x13, 0x21, 0x0B, 0x8D, 0x81, 0xF7, 0xA9, 0xE5, 0x10, 0xCB, 0xBD, 0x2B, 0xAA, 0xB9, 0x29, 0xC6, 0xBA, 0x85, -+ 0xA1, 0x4A, 0x93, 0xAC, 0xA2, 0x3E, 0xE7, 0x7B, 0xF8, 0x96, 0x52, 0xB3, 0x59, 0x24, 0x3F, 0xEA, 0xAF, 0x9E, 0x91, 0x0D, 0xB4, 0xB9, 0xBE, 0x57, 0x01, 0xCF, 0xD4, 0xDE, 0xDC, 0xF7, 0x99, 0x41, -+ 0xAD, 0xF7, 0x5C, 0xB9, 0xF3, 0x5B, 0x0E, 0xC4, 0xF4, 0x65, 0x80, 0x00, 0x99, 0xA5, 0xF0, 0x96, 0x27, 0x84, 0x6B, 0xE4, 0x67, 0x08, 0x3D, 0xDD, 0x93, 0xF9, 0x44, 0xA1, 0x6A, 0xD7, 0x4B, 0x80, -+ 0x28, 0x5D, 0xEF, 0x16, 0x08, 0x0B, 0x2E, 0xEB, 0xD9, 0xF8, 0xE2, 0x5A, 0x5C, 0x05, 0x26, 0xFC, 0xEB, 0xD9, 0x8E, 0xE7, 0xD0, 0x7F, 0x5E, 0xC7, 0x7B, 0x10, 0x71, 0x19, 0xC0, 0x4A, 0xBB, 0x2E, -+ 0x3F, 0xC3, 0x4D, 0xED, 0xDE, 0x18, 0x58, 0xB9, 0x20, 0x58, 0xF8, 0x26, 0xCC, 0x0B, 0xC9, 0xCA, 0x16, 0x1B, 0xF6, 0x24, 0xCF, 0x04, 0x30, 0xBC, 0x66, 0x11, 0xC8, 0xFB, 0x28, 0xC4, 0xD9, 0x4B, -+ 0x54, 0x25, 0x78, 0x7A, 0xDB, 0x82, 0xD9, 0x99, 0xD5, 0x36, 0xC8, 0xBF, 0xC5, 0xAE, 0xAD, 0x0F, 0xED, 0xB2, 0xDB, 0x1A, 0x84, 0x6D, 0x53, 0x4F, 0x25, 0x19, 0x73, 0x74, 0xC1, 0x0C, 0x99, 0x14, -+ 0xB5, 0xF4, 0x6D, 0xC8, 0x3F, 0x02, 0x26, 0x86, 0x28, 0xFC, 0x8A, 0xC1, 0x24, 0x6B, 0xD3, 0x52, 0x8B, 0x84, 0xBE, 0x0F, 0xA9, 0x41, 0x12, 0x7E, 0xBD, 0x45, 0x97, 0x0C, 0xA2, 0x15, 0x8B, 0xF7, -+ 0x9A, 0xA2, 0x14, 0x1B, 0x59, 0xCC, 0xE0, 0x98, 0x34, 0x17, 0x21, 0xAE, 0x4F, 0xAB, 0x6D, 0x2A, 0xAF, 0x10, 0x9F, 0x5E, 0xF6, 0xC0, 0x06, 0xB8, 0x5C, 0xCD, 0xF5, 0x0F, 0x8F, 0x79, 0xF5, 0x5B, -+ 0xAC, 0x2B, 0xC6, 0x8B, 0x7F, 0x9D, 0x81, 0x3A, 0xE9, 0xBE, 0xCA, 0xE6, 0x11, 0xC4, 0xC0, 0x08, 0xDC, 0xEC, 0x7D, 0xB4, 0xC2, 0xEA, 0x46, 0x37, 0x46, 0x3D, 0xC6, 0xBE, 0x33, 0xDB, 0x94, 0x40, -+ 0x69, 0x1D, 0x66, 0x84, 0x63, 0x6F, 0x14, 0x6A, 0x90, 0x3B, 0x18, 0x9F, 0x52, 0xB3, 0x46, 0x32, 0x29, 0x2C, 0x08, 0xE5, 0xAA, 0x28, 0xAA, 0xAB, 0x37, 0xE9, 0x12, 0x14, 0xFA, 0xFD, 0xB0, 0xDF, -+ 0xCF, 0x92, 0x92, 0x30, 0x2D, 0x6C, 0x97, 0xD0, 0x8E, 0x91, 0x8C, 0x7D, 0x94, 0x7B, 0x8A, 0xFD, 0xB6, 0xAB, 0xF9, 0x6B, 0xDE, 0x5B, 0x44, 0x13, 0xDC, 0xA9, 0xD2, 0x2C, 0xAD, 0xED, 0x06, 0xF8, -+ 0x5C, 0x1E, 0x9D, 0x7A, 0xCC, 0x12, 0xC8, 0x05, 0x53, 0xEC, 0xF5, 0x8C, 0xC6, 0xBC, 0xBB, 0x7C, 0xE3, 0xF7, 0xDB, 0x7C, 0xE9, 0xD9, 0x5B, 0x8C, 0x93, 0x77, 0xD0, 0x39, 0x3A, 0x1A, 0x5B, 0xAF, -+ 0x92, 0x01, 0x39, 0xCC, 0xF1, 0x1B, 0x14, 0xE9, 0xAA, 0x60, 0x3C, 0x41, 0x21, 0x54, 0xD6, 0xFA, 0x08, 0x40, 0x51, 0x08, 0x4C, 0x57, 0x85, 0x00, 0xDE, 0xCF, 0xF3, 0x1F, 0xB6, 0x1E, 0x93, 0x22, -+ 0xC6, 0xD6, 0x3A, 0xEE, 0x3A, 0x3A, 0xDB, 0xA7, 0x45, 0xA9, 0x1C, 0xFA, 0xC0, 0xCE, 0x21, 0x9E, 0x8C, 0x2F, 0xF9, 0x0C, 0x53, 0xE4, 0x23, 0xE2, 0x74, 0xC0, 0x41, 0xEC, 0x74, 0x12, 0xFA, 0xEE, -+ 0x4F, 0x4C, 0xC1, 0x11, 0x6C, 0xDC, 0x97, 0x2A, 0x90, 0xA1, 0xE0, 0x9B, 0x1F, 0x48, 0x5F, 0xDA, 0x1C, 0x17, 0xC6, 0x68, 0x2A, 0xB2, 0x6B, 0x0B, 0x23, 0x11, 0xB4, 0x53, 0x7D, 0x92, 0x39, 0x46, -+ 0x5B, 0x47, 0x00, 0x64, 0x25, 0xFC, 0x71, 0xB2, 0xB8, 0x55, 0x64, 0xE7, 0x37, 0xFD, 0x2B, 0x5C, 0x73, 0xAB, 0xB8, 0xFA, 0xD2, 0x0B, 0x83, 0xBF, 0x54, 0xE0, 0xBE, 0x2F, 0x6E, 0x2D, 0x71, 0xA5, -+ 0x16, 0x32, 0x61, 0x15, 0x31, 0x6E, 0x84, 0x5B, 0xC6, 0xCA, 0x82, 0xE1, 0x51, 0xBA, 0x4F, 0x90, 0xA7, 0x51, 0x93, 0x0E, 0x2B, 0xF3, 0x06, 0xB2, 0x5C, 0xDB, 0x38, 0xC2, 0xDA, 0x27, 0xF9, 0x1E, -+ 0xA1, 0xE9, 0x72, 0xB9, 0xB6, 0x61, 0x00, 0xD7, 0x52, 0x9D, 0x30, 0x2E, 0x88, 0xAF, 0x33, 0x15, 0xD6, 0xBB, 0xC8, 0x6D, 0x0E, 0x71, 0x98, 0xC1, 0x40, 0xD3, 0xFC, 0x41, 0xD5, 0x94, 0xFB, 0x5C, -+ 0x22, 0x02, 0x10, 0x7A, 0xC8, 0xC6, 0x5D, 0xDB, 0xCC, 0x94, 0x86, 0x14, 0xF2, 0x37, 0xA3, 0x3A, 0x87, 0x88, 0x04, 0x10, 0x41, 0xE8, 0x88, 0x8E, 0xB3, 0xEC, 0x65, 0x6F, 0x01, 0xC6, 0x95, 0x7A, -+ 0x87, 0x21, 0x54, 0xD3, 0x6A, 0xEF, 0x53, 0xC4, 0x39, 0xA8, 0x8F, 0x67, 0x5B, 0x5E, 0x4C, 0x12, 0x96, 0x30, 0xB2, 0x95, 0x4E, 0x7E, 0x53, 0x24, 0x72, 0x70, 0x07, 0x5D, 0x0D, 0x1E, 0xB6, 0xF0, -+ 0x8B, 0xEA, 0x6A, 0xA1, 0xD6, 0x13, 0x20, 0xC9, 0x83, 0x3B, 0x65, 0x37, 0xF3, 0x6D, 0x8E, 0x81, 0x99, 0xB5, 0x36, 0xA2, 0xDD, 0xDB, 0x53, 0xD8, 0x12, 0xC2, 0x21, 0x31, 0x49, 0xF2, 0x57, 0xD2, -+ 0x67, 0xCD, 0x6D, 0x07, 0xC0, 0xE6, 0xB1, 0x11, 0x88, 0x3B, 0xD8, 0x31, 0xB2, 0x5A, 0xAF, 0x7E, 0x39, 0xB8, 0x8B, 0x4F, 0xE9, 0x2D, 0x35, 0xE7, 0xC5, 0x3F, 0x65, 0xEE, 0xF9, 0x9C, 0xA7, 0x98, -+ 0x68, 0xF3, 0x50, 0x66, 0xC8, 0x8A, 0xC9, 0x6D, 0xF8, 0x3E, 0xDC, 0xC4, 0x1D, 0x90, 0x43, 0x38, 0xD8, 0xD1, 0x0D, 0x33, 0x16, 0x0F, 0xBD, 0x1B, 0xB5, 0xF6, 0xD4, 0xC6, 0xB6, 0x99, 0x85, 0x4D, -+ 0xDD, 0x50, 0x12, 0x89, 0x02, 0x8F, 0x68, 0xD6, 0xD1, 0xA0, 0xDB, 0x8E, 0xE6, 0x1F, 0xB1, 0x91, 0x12, 0xB3, 0x66, 0x98, 0x23, 0x82, 0x59, 0xB5, 0x2A, 0x32, 0xF4, 0x9E, 0xAD, 0x74, 0x50, 0x74, -+ 0xFA, 0x37, 0xF1, 0xF6, 0x8B, 0x43, 0xA3, 0x31, 0x14, 0xD7, 0xBF, 0xC6, 0x7D, 0xBD, 0xDF, 0xD4, 0x61, 0x1D, 0x41, 0xDC, 0x52, 0x49, 0x81, 0xD6, 0xFE, 0x40, 0x04, 0x01, 0x4D, 0xB9, 0x32, 0x25, -+ 0xA5, 0x38, 0xB5, 0xCB, 0xBA, 0x94, 0xA0, 0xFD, 0x79, 0xE9, 0x1D, 0x48, 0xBD, 0x90, 0xCC, 0x57, 0x28, 0x15, 0x20, 0xFE, 0xB6, 0x46, 0x32, 0x3C, 0x45, 0x27, 0x3B, 0xE9, 0xBD, 0xFB, 0xE9, 0xD9, -+ 0x9A, 0xCB, 0x70, 0x4D, 0xFB, 0x24, 0x36, 0x0F, 0x0C, 0x2E, 0xA0, 0xE8, 0x14, 0xB8, 0x05, 0x6F, 0x77, 0x61, 0xBD, 0x4D, 0x4C, 0x00, 0xC5, 0xE2, 0xBC, 0x1D, 0x1F, 0x8A, 0x4E, 0xC7, 0x79, 0x1F, -+ 0x6A, 0x23, 0xF2, 0xDA, 0xCB, 0x42, 0x3F, 0x29, 0xC8, 0x28, 0x02, 0xE0, 0xD1, 0xED, 0xBB, 0x6F, 0x98, 0x3B, 0x48, 0x99, 0x8B, 0xBB, 0xF4, 0xCF, 0x50, 0x5A, 0x17, 0x3D, 0x14, 0xA5, 0x85, 0xEB, -+ 0xFF, 0xC8, 0x97, 0x7D, 0xBE, 0xE5, 0x99, 0xEC, 0x73, 0x56, 0xE8, 0x3D, 0x65, 0xA0, 0x64, 0x53, 0xA1, 0x52, 0xF1, 0x14, 0xE6, 0x63, 0xE2, 0x73, 0x50, 0x39, 0x35, 0xAA, 0x81, 0x34, 0x2B, 0x67, -+ 0xC5, 0x52, 0x0B, 0x70, 0x84, 0x1B, 0xA1, 0xDF, 0x81, 0x10, 0x33, 0x0B, 0xE9, 0x21, 0x4A, 0x02, 0xCB, 0xB7, 0xAC, 0x17, 0x2F, 0x04, 0x07, 0x4F, 0x4B, 0x5C, 0x07, 0xCB, 0x8E, 0xB7, 0x2D, 0x50, -+ 0xAA, 0xE6, 0x3D, 0x81, 0x56, 0xFF, 0x0A, 0xF3, 0xCC, 0xD5, 0xE5, 0x14, 0x64, 0x39, 0xFE, 0xE0, 0x54, 0x11, 0x20, 0xFA, 0x15, 0xCC, 0x6B, 0xEC, 0xE6, 0xA3, 0xC2, 0xC3, 0xB0, 0x79, 0x55, 0xA7, -+ 0xF5, 0x4D, 0x08, 0x4C, 0x1E, 0x32, 0xA4, 0x55, 0x5E, 0x39, 0x7E, 0x44, 0x6D, 0x78, 0x99, 0x6E, 0xEB, 0xD9, 0x71, 0x15, 0xAF, 0x24, 0xEE, 0xEA, 0xCE, 0x15, 0x6B, 0x92, 0xF8, 0x66, 0xC4, 0xB1, -+ 0xA7, 0x2C, 0x11, 0xBE, 0x1C, 0x50, 0x77, 0x10, 0x5A, 0x19, 0x46, 0xF4, 0x79, 0xA4, 0x08, 0x46, 0x3F, 0xCF, 0x33, 0xAB, 0xDA, 0x84, 0x10, 0x94, 0xD1, 0x6D, 0xEA, 0xB9, 0x97, 0xCA, 0x6D, 0xD4, -+ 0x6E, 0x40, 0x94, 0x34, 0xBD, 0xE4, 0x73, 0x27, 0xA1, 0x35, 0x85, 0xB9, 0x74, 0xCF, 0xE9, 0x22, 0x8D, 0x8C, 0xBD, 0x73, 0x18, 0x5A, 0xDC, 0x02, 0xD0, 0x79, 0xCB, 0x41, 0x0F, 0x16, 0xB2, 0x32, -+ 0x24, 0x85, 0x48, 0x66, 0x92, 0x08, 0x8D, 0x9C, 0xCD, 0x26, 0xAC, 0x9C, 0x6F, 0x30, 0xE9, 0x36, 0xBF, 0x9C, 0xA7, 0x61, 0x59, 0x52, 0x13, 0x57, 0xA8, 0x7A, 0x5B, 0xAA, 0xB1, 0x87, 0x23, 0x7F, -+ 0x24, 0x05, 0x57, 0x2A, 0xD0, 0x06, 0x1A, 0xF6, 0xB6, 0xD8, 0xF8, 0xE3, 0xDD, 0x35, 0xBA, 0xB5, 0x8D, 0x92, 0xD1, 0xA1, 0xB1, 0x9A, 0xA2, 0xAB, 0xFE, 0x70, 0xEE, 0xB8, 0x49, 0xBA, 0xBE, 0x8B, -+ 0x64, 0x46, 0x36, 0x0A, 0xB8, 0x88, 0x5C, 0x26, 0x1D, 0xAC, 0xEB, 0xFB, 0xC4, 0xB8, 0x8C, 0x82, 0x94, 0xE6, 0xFC, 0xA1, 0x40, 0xEA, 0x7B, 0x89, 0x72, 0x36, 0x97, 0x66, 0x65, 0x00, 0xD6, 0xC7, -+ 0x67, 0x9D, 0x64, 0x54, 0x74, 0xC6, 0x77, 0x64, 0x2F, 0x39, 0x96, 0xB0, 0x93, 0xEB, 0xFB, 0xAD, 0xEB, 0x1E, 0x20, 0x06, 0xCA, 0x1B, 0x59, 0x3B, 0x03, 0xAC, 0x40, 0xF9, 0xC2, 0x6C, 0x6A, 0xEC, -+ 0xFB, 0xB9, 0xC9, 0x1A, 0xFB, 0x8B, 0x16, 0xDD, 0x49, 0x67, 0x5A, 0xC5, 0xCD, 0xEB, 0x79, 0x93, 0xC4, 0x19, 0x15, 0xB8, 0x3C, 0x64, 0x5B, 0x59, 0x60, 0xA3, 0xE7, 0x6C, 0x8E, 0x01, 0xAD, 0xE5, -+ 0xBA, 0xE9, 0xB7, 0xD8, 0x9E, 0x80, 0x53, 0x87, 0xF9, 0x39, 0x75, 0x86, 0x30, 0xC7, 0xC3, 0x99, 0xEC, 0xDE, 0x24, 0xF2, 0x15, 0xD1, 0x9D, 0xFE, 0xB3, 0xAC, 0xBA, 0xDB, 0x9E, 0x93, 0x00, 0x4B, -+ 0xCF, 0x2B, 0xE6, 0x2E, 0x4B, 0x39, 0xDF, 0xAA, 0x23, 0xCA, 0x0C, 0x4D, 0xDC, 0x17, 0x6F, 0x20, 0x29, 0xB8, 0xFE, 0x67, 0x6F, 0xAA, 0x1E, 0xCF, 0x2A, 0x0C, 0x05, 0xF1, 0x4A, 0xEF, 0x7F, 0xF2, -+ 0xE8, 0xC3, 0x48, 0xF3, 0xE2, 0x17, 0x91, 0xD1, 0xB5, 0x61, 0x69, 0xCF, 0x57, 0xC0, 0xFA, 0x20, 0x8A, 0xDA, 0x64, 0x2F, 0x9D, 0xCB, 0x69, 0x41, 0x2B, 0x70, 0x38, 0xAE, 0x59, 0x61, 0x5F, 0x49, -+ 0x57, 0x9A, 0xDF, 0x85, 0xF9, 0xD2, 0x14, 0x7A, 0x48, 0x0D, 0xEE, 0x5B, 0xD1, 0x59, 0xBB, 0x71, 0x02, 0x37, 0x83, 0x24, 0xF0, 0xAB, 0xB0, 0xEB, 0x47, 0xAF, 0x6C, 0x0C, 0xDE, 0x08, 0xD8, 0xB2, -+ 0x83, 0x58, 0x98, 0x05, 0x5F, 0x05, 0x3F, 0xD9, 0x93, 0x3E, 0x1D, 0x30, 0x67, 0x36, 0x45, 0xE7, 0x48, 0x8A, 0xEE, 0x87, 0x1B, 0xE3, 0x48, 0xC8, 0x51, 0xF0, 0x96, 0x9A, 0x15, 0x2B, 0xC7, 0x4D, -+ 0x74, 0x4B, 0x2A, 0x09, 0x9E, 0x27, 0x07, 0x0B, 0x8F, 0x56, 0x41, 0x1C, 0x81, 0x67, 0x35, 0x0B, 0x50, 0x88, 0x47, 0x55, 0xBE, 0x80, 0x61, 0xCD, 0xFF, 0x54, 0x0D, 0x35, 0x2C, 0x3D, 0x46, 0xA1, -+ 0x53, 0x45, 0x16, 0x8F, 0x37, 0xD4, 0x30, 0xD6, 0x86, 0x48, 0xF3, 0x27, 0xF2, 0x4B, 0x2B, 0xAD, 0xF5, 0xB4, 0x1C, 0x50, 0x10, 0xED, 0x2F, 0xC4, 0xA6, 0xC3, 0xCB, 0x72, 0x06, 0xF0, 0xDC, 0x2C, -+ 0xDB, 0x84, 0x35, 0xAC, 0x44, 0x1B, 0xFD, 0x57, 0x2B, 0xA2, 0x53, 0xB2, 0x82, 0xFF, 0xEC, 0xD6, 0xB6, 0xD0, 0x83, 0x67, 0x32, 0xB1, 0xFA, 0x19, 0xAD, 0xAA, 0x0D, 0xDB, 0x07, 0x00, 0x6C, 0x4F, -+ 0x2F, 0x6C, 0x12, 0x9B, 0xD9, 0x04, 0x1F, 0x0F, 0x38, 0xB0, 0xDC, 0x37, 0x60, 0x45, 0xAC, 0xD7, 0x96, 0x39, 0x0E, 0x52, 0xEA, 0x80, 0xDD, 0x19, 0x78, 0xC7, 0xD6, 0xD0, 0xD7, 0x9D, 0x53, 0x52, -+ 0xE7, 0x48, 0x4E, 0xEE, 0x97, 0xF2, 0x50, 0xF2, 0xAA, 0xB4, 0xEC, 0x14, 0x0F, 0xCB, 0xC0, 0xB2, 0x45, 0xF4, 0x11, 0x03, 0xEB, 0x39, 0xE5, 0x6C, 0x8C, 0x52, 0x62, 0x0F, 0x3F, 0x84, 0x9D, 0x29, -+ 0x03, 0x98, 0xB1, 0xF8, 0xBF, 0xBE, 0x4E, 0x42, 0xBB, 0x53, 0x71, 0x3C, 0x9F, 0x6E, 0x8D, 0xDA, 0x78, 0x9C, 0x53, 0x4F, 0xA2, 0x2A, 0xB3, 0xF3, 0xEC, 0x30, 0x70, 0x3D, 0x33, 0xB1, 0xDA, 0x70, -+ 0x94, 0x5B, 0x8A, 0x58, 0xD9, 0xAA, 0x49, 0xB1, 0x09, 0x4B, 0x5D, 0xE6, 0x33, 0x5F, 0xF4, 0xB3, 0x26, 0xDC, 0x80, 0xC1, 0x0F, 0x94, 0xA3, 0x03, 0x66, 0x68, 0xB5, 0x7F, 0xEC, 0xB4, 0xFF, 0x7D, -+ 0xC8, 0x53, 0xB3, 0x70, 0x10, 0xB0, 0xA2, 0x02, 0x61, 0x9E, 0x6A, 0x64, 0xDF, 0xFA, 0x17, 0x49, 0x82, 0x2D, 0x9D, 0xA5, 0x72, 0xC4, 0xC6, 0x0C, 0x3C, 0xB0, 0xAF, 0x34, 0xCC, 0x79, 0x13, 0xC5, -+ 0x33, 0xF7, 0x3B, 0x01, 0x82, 0xE3, 0x03, 0x0B, 0x32, 0x07, 0xFA, 0xD2, 0x9C, 0x68, 0xD8, 0xF3, 0xE4, 0x4C, 0xE6, 0xA0, 0x3D, 0xD5, 0x1C, 0x49, 0x1E, 0xD2, 0xC6, 0x90, 0x32, 0x22, 0x61, 0xBF, -+ 0xA8, 0xC5, 0x76, 0x88, 0xB8, 0x6A, 0xE8, 0x6E, 0xB0, 0xA2, 0x7C, 0x01, 0x7E, 0xCD, 0x67, 0xC5, 0xC0, 0x7B, 0xA3, 0x85, 0xDE, 0xDB, 0x8E, 0x5F, 0x3C, 0x80, 0x13, 0x7D, 0x2E, 0x5F, 0x29, 0xA5, -+ 0x99, 0xC6, 0xD2, 0x2B, 0x97, 0x07, 0x96, 0xD6, 0x01, 0x0A, 0x47, 0x27, 0xE4, 0xB3, 0xA4, 0x01, 0xD1, 0x5A, 0xA4, 0x91, 0xDF, 0x9D, 0x30, 0x21, 0xEB, 0xFC, 0xE8, 0xD2, 0xEE, 0xDA, 0x07, 0xD2, -+ 0xFC, 0xEF, 0x4B, 0x21, 0x48, 0x4F, 0x06, 0xB0, 0x6F, 0x4E, 0xC7, 0x9B, 0x7B, 0xFC, 0x05, 0x9E, 0xE7, 0x4E, 0x68, 0x1D, 0x01, 0x2D, 0xE3, 0xA7, 0x22, 0x85, 0x67, 0xCB, 0xA3, 0xF9, 0x7B, 0xCE, -+ 0x91, 0x0D, 0xB0, 0x7F, 0x7C, 0xC0, 0xBE, 0xAF, 0x59, 0x3C, 0x15, 0x3B, 0x2E, 0x2B, 0xFF, 0xA4, 0xF4, 0x21, 0x2E, 0x23, 0x48, 0x2B, 0x16, 0xE8, 0x6B, 0x14, 0xC6, 0x5C, 0xF4, 0x0A, 0xA9, 0xBE, -+ 0x23, 0xF3, 0xA2, 0x8E, 0x7D, 0x90, 0x83, 0xD5, 0x80, 0x41, 0x6C, 0x9B, 0xE5, 0x19, 0x73, 0xBE, 0x3D, 0x15, 0x86, 0xB7, 0x05, 0xCD, 0x1F, 0x1F, 0x9D, 0x1F, 0xF4, 0x1B, 0xEF, 0xDF, 0x1C, 0x0B, -+ 0x58, 0xF7, 0xFB, 0x73, 0x23, 0x50, 0x4C, 0x7E, 0xA6, 0xD0, 0xF9, 0x1F, 0xD4, 0x5B, 0x06, 0x57, 0x3B, 0x8C, 0x93, 0x02, 0x8B, 0xF7, 0xF3, 0xCC, 0xD1, 0xC8, 0xDA, 0xA6, 0x43, 0xE5, 0x97, 0xAE, -+ 0x21, 0x36, 0x0B, 0x97, 0x4D, 0x88, 0x9F, 0x84, 0x0E, 0x9E, 0xF7, 0x15, 0xDB, 0xD9, 0x16, 0x05, 0xE1, 0x81, 0xAE, 0x69, 0xEA, 0xBB, 0x46, 0x5F, 0xEA, 0x09, 0x55, 0xF7, 0xC6, 0x3E, 0xE3, 0x90, -+ 0x95, 0xC1, 0x24, 0x76, 0xE9, 0x69, 0x14, 0x41, 0xBD, 0x5B, 0xB9, 0x92, 0xC2, 0x14, 0xCA, 0x4F, 0x22, 0xBF, 0x9F, 0xC7, 0x31, 0x74, 0xD5, 0x91, 0xD0, 0xA3, 0x5D, 0x4A, 0xA4, 0x89, 0xE6, 0xCC, -+ 0x12, 0xEC, 0xFA, 0xBB, 0x8B, 0x21, 0xE7, 0x84, 0xB7, 0x8E, 0x97, 0x7B, 0xB8, 0x9D, 0x23, 0x80, 0x0A, 0x0F, 0x03, 0x1C, 0x5A, 0xFB, 0x23, 0x41, 0x75, 0xA5, 0xBB, 0x69, 0x8B, 0xA5, 0xD7, 0x98, -+ 0x55, 0x5D, 0x7E, 0xF0, 0xFF, 0xF1, 0x1E, 0x9F, 0x41, 0xE6, 0xF8, 0x2B, 0x93, 0x89, 0xFC, 0x62, 0x05, 0x03, 0xF1, 0x08, 0x1E, 0x74, 0xE0, 0xF1, 0xFD, 0xC8, 0x3D, 0x76, 0xC8, 0xDD, 0x5C, 0xFD, -+ 0x80, 0xD8, 0x2D, 0x29, 0x60, 0x38, 0x08, 0x4A, 0xBA, 0xA2, 0xAF, 0x68, 0xB4, 0xDE, 0xA3, 0xE7, 0x00, 0xED, 0x1A, 0x99, 0xD9, 0xEC, 0xB0, 0xFD, 0x11, 0x05, 0x26, 0x75, 0xBB, 0xDA, 0x90, 0x60, -+ 0x2C, 0xA9, 0xE3, 0x96, 0x69, 0x91, 0x69, 0xC6, 0x22, 0xAC, 0x52, 0x94, 0x9B, 0xFC, 0x98, 0x76, 0xEF, 0xF3, 0xFC, 0xD2, 0xD2, 0x78, 0xAE, 0xA3, 0x27, 0x9E, 0x1A, 0x01, 0x90, 0x0C, 0xA5, 0x55, -+ 0x0F, 0x95, 0x60, 0xD4, 0xE3, 0xD4, 0xFB, 0x5A, 0x7E, 0xF1, 0x16, 0xE0, 0xA0, 0x15, 0x68, 0x54, 0xE0, 0x05, 0xF7, 0x91, 0x35, 0x2F, 0xB6, 0x8D, 0xAC, 0x0D, 0xB0, 0x75, 0x3A, 0xA4, 0xE4, 0xB3, -+ 0xB0, 0x19, 0x11, 0x9E, 0x5C, 0xE2, 0xDE, 0x4E, 0x73, 0x14, 0x28, 0x7E, 0xF3, 0x84, 0xA9, 0x2C, 0x30, 0xBE, 0x01, 0x20, 0x2A, 0x6A, 0x9A, 0xDE, 0x42, 0x62, 0x4A, 0x50, 0xEE, 0x29, 0xA1, 0x8F, -+ 0xA2, 0x19, 0x92, 0xF1, 0x6C, 0xE0, 0x22, 0x66, 0x56, 0x9A, 0x6A, 0xE2, 0x56, 0x04, 0x1D, 0x05, 0x6A, 0xD8, 0xC7, 0x66, 0xA9, 0xA7, 0xCD, 0xF5, 0x1D, 0x90, 0x61, 0xC7, 0x46, 0x94, 0x72, 0xF2, -+ 0x1D, 0x6D, 0x1F, 0x0A, 0x34, 0x6E, 0xC2, 0x80, 0x02, 0x5C, 0x13, 0x87, 0x81, 0x76, 0xD7, 0xE8, 0xF4, 0x55, 0x92, 0x95, 0xBF, 0x63, 0x07, 0x94, 0x67, 0x7D, 0x18, 0x07, 0x6C, 0x55, 0x6D, 0x1C, -+ 0x9D, 0x51, 0x1F, 0xA6, 0xB6, 0xFC, 0x09, 0x2F, 0xC7, 0xA3, 0xEF, 0x8E, 0x0A, 0xE0, 0x2D, 0x65, 0xC9, 0x8C, 0x6D, 0xCE, 0x54, 0xFD, 0xC4, 0x52, 0x5C, 0xF0, 0xBC, 0xA4, 0xF9, 0xAA, 0x85, 0xF4, -+ 0xFE, 0xCC, 0x7A, 0xCD, 0x83, 0x2E, 0xAC, 0xDA, 0xFE, 0x62, 0x40, 0xE8, 0xC7, 0x88, 0xB6, 0x5D, 0xAF, 0x79, 0xAA, 0x70, 0x58, 0x3A, 0x0C, 0x34, 0x15, 0x52, 0x2E, 0x3B, 0xFE, 0xA6, 0x1A, 0x29, -+ 0x8D, 0xD3, 0x9E, 0x1D, 0x22, 0xCA, 0x61, 0xC5, 0x3E, 0xBF, 0x00, 0xDE, 0xC2, 0x73, 0x9B, 0x8E, 0x93, 0xAF, 0xF4, 0x21, 0x97, 0xDD, 0x43, 0x22, 0x7D, 0xEF, 0x25, 0x84, 0x64, 0x9A, 0xF7, 0xBC, -+ 0x7A, 0x0A, 0x60, 0xA5, 0xC4, 0xA7, 0x72, 0x18, 0xB0, 0xBE, 0x6A, 0xE5, 0xAD, 0x84, 0x19, 0x4A, 0x49, 0x01, 0xCD, 0x9F, 0x73, 0xAD, 0xB7, 0x0A, 0xF6, 0x19, 0xC3, 0x8B, 0x71, 0x62, 0x79, 0xBA, -+ 0x41, 0xEF, 0x99, 0xF4, 0x04, 0x40, 0xEE, 0x82, 0xEC, 0x45, 0xAC, 0xDE, 0xD3, 0x25, 0xC8, 0x36, 0xFE, 0x69, 0xB8, 0x65, 0xA5, 0xE5, 0xCD, 0x0F, 0xF8, 0x56, 0xA3, 0x0D, 0xE7, 0xF0, 0x27, 0xD8, -+ 0xC1, 0x3B, 0x40, 0x7D, 0x5B, 0x31, 0x62, 0x9A, 0xC1, 0xA1, 0x62, 0x08, 0xBD, 0x6A, 0xF2, 0xB7, 0xCA, 0x94, 0xB1, 0x88, 0x24, 0x9E, 0x89, 0xDA, 0x3C, 0x0F, 0xBF, 0x18, 0xA4, 0x12, 0xA8, 0x69, -+ 0xF5, 0xF4, 0x97, 0xAD, 0x6F, 0x72, 0xAC, 0xEE, 0xB4, 0xD0, 0x77, 0xA0, 0xB7, 0xEE, 0xDF, 0x30, 0x17, 0xD8, 0x6A, 0x79, 0x9E, 0x4A, 0x68, 0x9E, 0x43, 0x9E, 0xE5, 0x84, 0x17, 0x29, 0xE4, 0xD9, -+ 0x57, 0x2F, 0x8C, 0x6F, 0xE7, 0x67, 0x6E, 0xF7, 0x0A, 0x9D, 0xC0, 0x2E, 0x39, 0x37, 0xF4, 0xDF, 0xB7, 0x9B, 0x3F, 0x53, 0x52, 0x45, 0x79, 0x31, 0x18, 0x07, 0x40, 0xEA, 0xB3, 0xA3, 0x34, 0x18, -+ 0x23, 0x6A, 0x44, 0x29, 0x40, 0x36, 0x48, 0xA9, 0xAA, 0xD6, 0x70, 0x49, 0xE6, 0x33, 0xBD, 0x07, 0x2F, 0xFC, 0xC9, 0x71, 0xEF, 0x0F, 0xC9, 0xEE, 0x5F, 0xD2, 0xB5, 0xAE, 0xFD, 0xFE, 0xE6, 0xFC, -+ 0xBE, 0x0B, 0x64, 0x41, 0x80, 0x6F, 0x48, 0x55, 0x50, 0x70, 0x9B, 0x2B, 0xC4, 0xC3, 0x06, 0xAC, 0x0A, 0xD5, 0x94, 0x84, 0x91, 0xB6, 0x4C, 0xDD, 0x47, 0x32, 0x02, 0x3B, 0xE8, 0x84, 0xAB, 0xBF, -+ 0xBF, 0x57, 0xEA, 0xCF, 0xFF, 0x96, 0xE9, 0x35, 0x8B, 0xEE, 0x7D, 0xD6, 0x71, 0xFB, 0x15, 0xEB, 0xDF, 0x4E, 0xA6, 0x90, 0x2C, 0xB4, 0x91, 0xB5, 0x84, 0x74, 0xC3, 0x53, 0x3B, 0xA9, 0x61, 0x88, -+ 0xA6, 0x0B, 0x5A, 0xE3, 0xC8, 0x33, 0x81, 0xB0, 0x3A, 0x93, 0x1A, 0x65, 0xB7, 0xD7, 0x40, 0x62, 0x6D, 0xCD, 0x9F, 0xC1, 0x9C, 0x75, 0x28, 0x1C, 0x18, 0x31, 0xC9, 0x78, 0xA3, 0xA7, 0x52, 0xF0, -+ 0xE0, 0x0F, 0x0F, 0x90, 0xBB, 0x37, 0x0E, 0x49, 0xD4, 0xAD, 0xAE, 0xC9, 0xC6, 0x1A, 0x00, 0x8B, 0x39, 0x67, 0xC3, 0x5D, 0xE4, 0x7B, 0x27, 0x1C, 0x13, 0x4B, 0xD8, 0xFC, 0x7E, 0xF1, 0x81, 0x36, -+ 0xBD, 0xD4, 0x15, 0x6A, 0xA3, 0xB2, 0x50, 0x34, 0x11, 0xAD, 0x4E, 0x22, 0xE4, 0x42, 0x63, 0x1C, 0x12, 0xE1, 0x60, 0xE8, 0xDD, 0xE9, 0x2B, 0xC4, 0x97, 0xCB, 0xE2, 0x40, 0x6D, 0x6C, 0xA0, 0xC0, -+ 0x8F, 0x36, 0x9A, 0x04, 0x82, 0x6F, 0x27, 0x9E, 0xE2, 0x1C, 0x93, 0x7D, 0xED, 0xA2, 0xEC, 0x96, 0xF8, 0x8C, 0x34, 0x3C, 0xD4, 0xB6, 0xF9, 0x55, 0xA1, 0x4B, 0x27, 0xFF, 0x71, 0xF6, 0x91, 0xE2, -+ 0xBD, 0x41, 0x10, 0x13, 0x1C, 0x16, 0xDA, 0xCB, 0xB5, 0xE4, 0x25, 0xF3, 0x2A, 0xD2, 0x3C, 0x5B, 0x57, 0x7C, 0x95, 0x0F, 0xD6, 0x06, 0x1C, 0xDF, 0x64, 0x06, 0xAA, 0xAF, 0x61, 0x72, 0xA1, 0xFD, -+ 0xF1, 0x56, 0x29, 0x77, 0x8F, 0x7D, 0x0F, 0x8A, 0x2D, 0xF0, 0xE9, 0x79, 0x0E, 0x26, 0xD0, 0x2A, 0x4A, 0xFD, 0xB3, 0x84, 0xA1, 0xAA, 0x0B, 0x2A, 0xDC, 0x46, 0xDB, 0x6A, 0x90, 0xA3, 0xC7, 0x28, -+ 0x14, 0x73, 0xFA, 0x6C, 0x6A, 0x0D, 0x92, 0xA0, 0xCB, 0xDB, 0x4D, 0xCF, 0x7C, 0x36, 0x15, 0xDA, 0x68, 0xA7, 0xCD, 0x84, 0x5A, 0x7F, 0x61, 0xCF, 0xA4, 0x9D, 0x0A, 0x2E, 0x55, 0x62, 0x5C, 0xE0, -+ 0xE9, 0x8A, 0x6F, 0x2B, 0x0D, 0xC8, 0xED, 0xD8, 0xD2, 0xE9, 0x5B, 0x57, 0xDA, 0xCB, 0x4D, 0x6A, 0xFD, 0x17, 0xBA, 0x58, 0x32, 0x55, 0x51, 0x11, 0x50, 0x5A, 0x47, 0x4C, 0x69, 0x8E, 0xFE, 0xED, -+ 0x89, 0x76, 0x6D, 0x14, 0xEE, 0xFD, 0xC3, 0x56, 0xA6, 0x9F, 0xF2, 0x25, 0x58, 0x4F, 0xE3, 0xB1, 0xE2, 0x19, 0x0E, 0xF8, 0x08, 0x43, 0x07, 0x93, 0xC4, 0x8B, 0x8F, 0xEC, 0xE9, 0x02, 0x85, 0xE0, -+ 0x5B, 0xF3, 0x37, 0xAE, 0x0F, 0xF9, 0xF2, 0xA1, 0x91, 0x5C, 0x76, 0xB3, 0x06, 0x80, 0x95, 0xB3, 0x99, 0xFD, 0xA6, 0x2E, 0x11, 0x7D, 0x0B, 0xE9, 0xC3, 0xC8, 0xD5, 0x2C, 0xC1, 0x9D, 0x93, 0x91, -+ 0xA6, 0xA7, 0x5D, 0xDB, 0x8E, 0x04, 0xD1, 0xDB, 0xAE, 0x6E, 0x73, 0x05, 0x0B, 0x5B, 0x7E, 0x9F, 0x72, 0x5E, 0x08, 0x05, 0x5C, 0xCB, 0xE1, 0xD9, 0x10, 0xFD, 0x8E, 0x81, 0xBC, 0x79, 0x07, 0xF6, -+ 0x0B, 0xD1, 0x9F, 0x11, 0xEA, 0x79, 0x88, 0x87, 0xB3, 0xD8, 0x6A, 0x44, 0xC1, 0x57, 0x82, 0x5C, 0x81, 0xE4, 0x88, 0x38, 0xAC, 0x5D, 0x36, 0xB2, 0x5A, 0xBF, 0x6E, 0xB7, 0x2D, 0x3F, 0x32, 0x49, -+ 0xED, 0xED, 0xBB, 0x24, 0xD0, 0xB9, 0xEF, 0xE3, 0x4E, 0x49, 0x1F, 0x9D, 0xD8, 0xC5, 0x12, 0xC1, 0x72, 0x6F, 0x1C, 0x55, 0x61, 0x24, 0xE6, 0xF8, 0x43, 0x00, 0xD7, 0x15, 0xDB, 0xC9, 0x22, 0x90, -+ 0x99, 0x0D, 0x4A, 0xF4, 0x18, 0x22, 0xFE, 0xAD, 0xA6, 0x3B, 0x56, 0xA0, 0xD5, 0x0D, 0xAA, 0xB4, 0x1B, 0xFB, 0x5E, 0x21, 0xB9, 0x41, 0xD0, 0xCD, 0x33, 0x6D, 0xAC, 0xB4, 0xF5, 0x68, 0xE8, 0x2B, -+ 0xB0, 0x44, 0xB4, 0x75, 0xBD, 0xD5, 0x0E, 0x04, 0xD4, 0x3D, 0xC6, 0xB3, 0xA7, 0x33, 0x91, 0x50, 0x10, 0x39, 0x96, 0x42, 0x4E, 0xB7, 0xB0, 0x64, 0x89, 0x6C, 0xFE, 0x2C, 0xDB, 0x6F, 0xFE, 0xE7, -+ 0x30, 0x5F, 0xF5, 0x50, 0x50, 0x27, 0x94, 0xCE, 0x2C, 0x22, 0x4B, 0x6F, 0x1B, 0xD7, 0x3E, 0xD3, 0x79, 0x8B, 0xFC, 0xC0, 0xD7, 0xE5, 0x99, 0x23, 0x34, 0x17, 0x1F, 0x2D, 0xB9, 0xBC, 0x26, 0x79, -+ 0xA5, 0x10, 0x09, 0x19, 0x0E, 0x75, 0x12, 0xDE, 0x95, 0xE4, 0xB1, 0xAC, 0x46, 0xF0, 0x25, 0x2F, 0x0B, 0x34, 0x09, 0xE2, 0x4F, 0x24, 0x47, 0x94, 0x2E, 0x23, 0xA4, 0x2C, 0xCC, 0xC0, 0x79, 0x5C, -+ 0x06, 0x65, 0x1E, 0x18, 0xB3, 0x92, 0xC8, 0xB0, 0xCF, 0x07, 0x5C, 0x73, 0xB1, 0x29, 0xCC, 0x37, 0xDA, 0x9D, 0x81, 0x0A, 0xDE, 0x23, 0x7D, 0x62, 0x97, 0x19, 0xDC, 0x42, 0xAA, 0x7F, 0x33, 0x91, -+ 0x4E, 0x37, 0x9D, 0x30, 0x4F, 0x6A, 0xCE, 0x9F, 0xC0, 0x99, 0xEF, 0x87, 0xA0, 0x0B, 0x63, 0xC2, 0x71, 0x6D, 0x13, 0x35, 0x8D, 0xE6, 0xA6, 0x05, 0xE1, 0xF5, 0xF7, 0x0B, 0x82, 0x85, 0x53, 0x5E, -+ 0x7C, 0xDD, 0x3F, 0x5B, 0xBC, 0x87, 0xE1, 0x5B, 0x39, 0xB0, 0xEF, 0xAC, 0xC3, 0xB3, 0x73, 0xAD, 0x13, 0xD6, 0x9E, 0x0F, 0x56, 0xE5, 0xC1, 0x96, 0x07, 0x3E, 0x60, 0xBF, 0x9C, 0x72, 0xD7, 0x6F, -+ 0xD9, 0x39, 0x51, 0x1E, 0xA2, 0x27, 0x6A, 0xDC, 0x66, 0x03, 0x1B, 0xAF, 0x09, 0xF5, 0x75, 0xA5, 0x10, 0x51, 0x53, 0xAD, 0xC2, 0x55, 0x0C, 0xA3, 0x5A, 0x48, 0xDB, 0x2E, 0x2F, 0xD6, 0x9B, 0x01, -+ 0x3D, 0x20, 0x24, 0xDF, 0x16, 0x7A, 0xDF, 0xA1, 0x36, 0xA7, 0xDF, 0xD7, 0x3C, 0x01, 0xB4, 0x08, 0x7F, 0xEF, 0x30, 0x6F, 0x3C, 0x5B, 0xE5, 0x4A, 0x0F, 0x8A, 0xE9, 0xF1, 0xED, 0x8C, 0x71, 0x48, -+ 0x02, 0x09, 0x25, 0x33, 0x60, 0x6B, 0x9C, 0xA5, 0xAC, 0xBA, 0xC6, 0xE0, 0x31, 0x3F, 0xBC, 0xC7, 0xD5, 0xE2, 0xF1, 0x7E, 0xB2, 0xDC, 0x53, 0x99, 0xE6, 0xF1, 0x12, 0x19, 0x1A, 0x41, 0x7D, 0x99, -+ 0xA3, 0xA6, 0xAB, 0xEC, 0xF9, 0x1F, 0x33, 0xD9, 0xED, 0xFF, 0x05, 0x27, 0x93, 0xC1, 0xC6, 0xFC, 0xAF, 0xCE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x13, 0x16, 0x1A, 0x25, 0x2A, 0x30, 0x32, -+ }, -+ }, - }; - - #define DILITHIUM_TV_NUM sizeof(dilithium_tv)/sizeof(struct DILITHIUM_TEST_VECTOR) -diff --git a/testcases/crypto/dilithium_func.c b/testcases/crypto/dilithium_func.c -index 0d125e5d..338efc85 100644 ---- a/testcases/crypto/dilithium_func.c -+++ b/testcases/crypto/dilithium_func.c -@@ -21,10 +21,11 @@ - #include "defs.h" - #include "dilithium.h" - #include "mechtable.h" -+#include "pqc_oids.h" - - /** - * Experimental Support for Dilithium keys and signatures -- * with oid = 1.3.6.1.4.1.2.267.1.6.5 -+ * with oid = 1.3.6.1.4.1.2.267.xxx - * - * Only SignInit and Sign(Single) is supported with Dilithium. - * SignUpdate/SignFinal are not supported. Same with Verify. -@@ -34,14 +35,48 @@ typedef struct signVerifyParam { - CK_ULONG inputlen; - } _signVerifyParam; - --_signVerifyParam signVerifyInput[] = { -+const _signVerifyParam signVerifyInput[] = { - {CKM_IBM_DILITHIUM, 0}, - {CKM_IBM_DILITHIUM, 1}, - {CKM_IBM_DILITHIUM, 32}, - {CKM_IBM_DILITHIUM, 59}, -- {CKM_IBM_DILITHIUM, 5900}, -+ {CKM_IBM_DILITHIUM, 3000}, /* Not all variants support larger sizes */ - }; - -+const CK_BYTE dilithium_r2_65[] = OCK_DILITHIUM_R2_65; -+const CK_ULONG dilithium_r2_65_len = sizeof(dilithium_r2_65); -+const CK_BYTE dilithium_r2_87[] = OCK_DILITHIUM_R2_87; -+const CK_ULONG dilithium_r2_87_len = sizeof(dilithium_r2_87); -+const CK_BYTE dilithium_r3_44[] = OCK_DILITHIUM_R3_44; -+const CK_ULONG dilithium_r3_44_len = sizeof(dilithium_r3_44); -+const CK_BYTE dilithium_r3_65[] = OCK_DILITHIUM_R3_65; -+const CK_ULONG dilithium_r3_65_len = sizeof(dilithium_r3_65); -+const CK_BYTE dilithium_r3_87[] = OCK_DILITHIUM_R3_87; -+const CK_ULONG dilithium_r3_87_len = sizeof(dilithium_r3_87); -+ -+typedef struct variant_info { -+ const char *name; -+ CK_ULONG keyform; -+ const CK_BYTE *oid; -+ CK_ULONG oid_len; -+} _variant_info; -+ -+const _variant_info variants[] = { -+ { "DEFAULT (DILITHIUM_R2_65)", 0, NULL, 0 }, -+ { "DILITHIUM_R2_65", CK_IBM_DILITHIUM_KEYFORM_ROUND2_65, -+ dilithium_r2_65, dilithium_r2_65_len }, -+ { "DILITHIUM_R2_87", CK_IBM_DILITHIUM_KEYFORM_ROUND2_87, -+ dilithium_r2_87, dilithium_r2_87_len }, -+ { "DILITHIUM_R3_44", CK_IBM_DILITHIUM_KEYFORM_ROUND3_44, -+ dilithium_r3_44, dilithium_r3_44_len }, -+ { "DILITHIUM_R3_65", CK_IBM_DILITHIUM_KEYFORM_ROUND3_65, -+ dilithium_r3_65, dilithium_r3_65_len }, -+ { "DILITHIUM_R3_87", CK_IBM_DILITHIUM_KEYFORM_ROUND3_87, -+ dilithium_r3_87, dilithium_r3_87_len }, -+}; -+ -+const CK_ULONG num_variants = sizeof(variants) / sizeof(_variant_info); -+ - CK_RV run_SignVerifyDilithium(CK_SESSION_HANDLE session, - CK_MECHANISM_TYPE mechType, - CK_ULONG inputlen, -@@ -98,7 +133,6 @@ CK_RV run_SignVerifyDilithium(CK_SESSION_HANDLE session, - testcase_error("C_Sign rc=%s", p11_get_ckr(rc)); - goto testcase_cleanup; - } -- - signature = calloc(sizeof(CK_BYTE), signaturelen); - if (signature == NULL) { - testcase_error("Can't allocate memory for %lu bytes", -@@ -242,7 +276,7 @@ CK_RV run_GenerateDilithiumKeyPairSignVerify() - CK_OBJECT_HANDLE publ_key = CK_INVALID_HANDLE, priv_key = CK_INVALID_HANDLE; - CK_SESSION_HANDLE session; - CK_BYTE user_pin[PKCS11_MAX_PIN_LEN]; -- CK_ULONG user_pin_len, j; -+ CK_ULONG user_pin_len, j, i; - CK_FLAGS flags; - CK_MECHANISM_INFO mech_info; - CK_RV rc; -@@ -260,7 +294,7 @@ CK_RV run_GenerateDilithiumKeyPairSignVerify() - rc = funcs->C_GetMechanismInfo(SLOT_ID, mech.mechanism, &mech_info); - if (rc != CKR_OK) { - if (rc == CKR_MECHANISM_INVALID) { -- /* no support for EC key gen? skip */ -+ /* no support for Dilithium key gen? skip */ - testcase_skip("Slot %u doesn't support CKM_IBM_DILITHIUM ", - (unsigned int) SLOT_ID); - rc = CKR_OK; -@@ -271,42 +305,85 @@ CK_RV run_GenerateDilithiumKeyPairSignVerify() - } - } - -- /* Setup attributes for public/private Dilithium key */ -- CK_BBOOL attr_sign = TRUE; -- CK_BBOOL attr_verify = TRUE; -- CK_ATTRIBUTE dilithium_attr_private[] = { -- {CKA_SIGN, &attr_sign, sizeof(CK_BBOOL)}, -- }; -- CK_ATTRIBUTE dilithium_attr_public[] = { -- {CKA_VERIFY, &attr_verify, sizeof(CK_BBOOL)}, -- }; -- -- /* Generate Dilithium key pair */ -- rc = funcs->C_GenerateKeyPair(session, &mech, -- dilithium_attr_public, 1, -- dilithium_attr_private, 1, -- &publ_key, &priv_key); -- testcase_new_assertion(); -- if (rc != CKR_OK) { -- testcase_fail -- ("C_GenerateKeyPair with valid input failed, rc=%s", -- p11_get_ckr(rc)); -- goto testcase_cleanup; -- } -- testcase_pass("*Generate Dilithium key pair passed."); -- -- /* Sign/verify with this key pair */ -- for (j = 0; j < (sizeof(signVerifyInput) / sizeof(_signVerifyParam)); j++) { -+ for (i = 0; i < 2 * num_variants; i++) { -+ /* Setup attributes for public/private Dilithium key */ -+ CK_BBOOL attr_sign = TRUE; -+ CK_BBOOL attr_verify = TRUE; -+ CK_ATTRIBUTE dilithium_attr_private_keyform[] = { -+ {CKA_SIGN, &attr_sign, sizeof(CK_BBOOL)}, -+ {CKA_IBM_DILITHIUM_KEYFORM, -+ (CK_BYTE *)&variants[i % num_variants].keyform, sizeof(CK_ULONG)}, -+ }; -+ CK_ATTRIBUTE dilithium_attr_public_keyform[] = { -+ {CKA_VERIFY, &attr_verify, sizeof(CK_BBOOL)}, -+ {CKA_IBM_DILITHIUM_KEYFORM, -+ (CK_BYTE *)&variants[i % num_variants].keyform, sizeof(CK_ULONG)}, -+ }; -+ CK_ATTRIBUTE dilithium_attr_private_mode[] = { -+ {CKA_SIGN, &attr_sign, sizeof(CK_BBOOL)}, -+ {CKA_IBM_DILITHIUM_MODE, -+ (CK_BYTE *)variants[i % num_variants].oid, variants[i % num_variants].oid_len}, -+ }; -+ CK_ATTRIBUTE dilithium_attr_public_mode[] = { -+ {CKA_VERIFY, &attr_verify, sizeof(CK_BBOOL)}, -+ {CKA_IBM_DILITHIUM_MODE, -+ (CK_BYTE *)variants[i % num_variants].oid, variants[i % num_variants].oid_len}, -+ }; -+ CK_ATTRIBUTE *dilithium_attr_private = i < num_variants ? -+ dilithium_attr_private_keyform : -+ dilithium_attr_private_mode; -+ CK_ATTRIBUTE *dilithium_attr_public = i < num_variants ? -+ dilithium_attr_public_keyform : -+ dilithium_attr_public_mode; -+ CK_ULONG num_dilithium_attrs = -+ (variants[i % num_variants].oid == NULL) ? 1 : 2; -+ -+ /* Generate Dilithium key pair */ -+ rc = funcs->C_GenerateKeyPair(session, &mech, -+ dilithium_attr_public, num_dilithium_attrs, -+ dilithium_attr_private, num_dilithium_attrs, -+ &publ_key, &priv_key); - testcase_new_assertion(); -- rc = run_SignVerifyDilithium(session, -- signVerifyInput[j].mechtype, -- signVerifyInput[j].inputlen, -- priv_key, publ_key); -- if (rc != 0) { -- testcase_fail("run_SignVerifyDilithium failed index=%lu.", j); -- goto testcase_cleanup; -+ if (rc != CKR_OK) { -+ if (rc == CKR_KEY_SIZE_RANGE) { -+ testcase_skip("C_GenerateKeyPair with %s (%s) not supported", -+ variants[i % num_variants].name, -+ i < num_variants ? "KEYFORM" : "MODE"); -+ goto next; -+ } else { -+ testcase_fail("C_GenerateKeyPair with %s (%s) and valid input failed, rc=%s", -+ variants[i % num_variants].name, -+ i < num_variants ? "KEYFORM" : "MODE", p11_get_ckr(rc)); -+ goto testcase_cleanup; -+ } -+ } -+ testcase_pass("*Generate Dilithium key pair with %s (%s) passed.", -+ variants[i % num_variants].name, -+ i < num_variants ? "KEYFORM" : "MODE"); -+ -+ /* Sign/verify with this key pair */ -+ for (j = 0; j < (sizeof(signVerifyInput) / sizeof(_signVerifyParam)); j++) { -+ testcase_new_assertion(); -+ rc = run_SignVerifyDilithium(session, -+ signVerifyInput[j].mechtype, -+ signVerifyInput[j].inputlen, -+ priv_key, publ_key); -+ if (rc != 0) { -+ testcase_fail("run_SignVerifyDilithium with %s failed index=%lu.", -+ variants[i % num_variants].name, j); -+ goto next; -+ } -+ testcase_pass("*Sign & verify with %s j=%lu passed.", -+ variants[i % num_variants].name, j); - } -- testcase_pass("*Sign & verify j=%lu passed.", j); -+ -+next: -+ if (publ_key != CK_INVALID_HANDLE) -+ funcs->C_DestroyObject(session, publ_key); -+ publ_key = CK_INVALID_HANDLE; -+ if (priv_key != CK_INVALID_HANDLE) -+ funcs->C_DestroyObject(session, priv_key); -+ priv_key = CK_INVALID_HANDLE; - } - - rc = CKR_OK; -@@ -345,7 +422,7 @@ CK_RV run_ImportDilithiumKeyPairSignVerify() - rc = funcs->C_GetMechanismInfo(SLOT_ID, mech.mechanism, &mech_info); - if (rc != CKR_OK) { - if (rc == CKR_MECHANISM_INVALID) { -- /* no support for EC key gen? skip */ -+ /* no support for Dilithium key gen? skip */ - testcase_skip("Slot %u doesn't support CKM_IBM_DILITHIUM", - (unsigned int) SLOT_ID); - goto testcase_cleanup; -@@ -357,10 +434,13 @@ CK_RV run_ImportDilithiumKeyPairSignVerify() - - for (i = 0; i < DILITHIUM_TV_NUM; i++) { - -- testcase_begin("Starting Dilithium import key pair, Sign/Verify, KAT index=%lu", i); -+ testcase_begin("Starting Dilithium import key pair, Sign/Verify, %s index=%lu", -+ dilithium_tv[i].name, i); - - /* Create Dilithium private key */ - rc = create_DilithiumPrivateKey(session, -+ dilithium_tv[i].pkcs8, dilithium_tv[i].pkcs8_len, -+ dilithium_tv[i].keyform, - dilithium_tv[i].rho, dilithium_tv[i].rho_len, - dilithium_tv[i].seed, dilithium_tv[i].seed_len, - dilithium_tv[i].tr, dilithium_tv[i].tr_len, -@@ -371,7 +451,11 @@ CK_RV run_ImportDilithiumKeyPairSignVerify() - &priv_key); - testcase_new_assertion(); - if (rc != CKR_OK) { -- if (rc == CKR_POLICY_VIOLATION) { -+ if (rc == CKR_KEY_SIZE_RANGE) { -+ testcase_skip("C_CreateObject with %s not supported", -+ dilithium_tv[i].name); -+ continue; -+ } else if (rc == CKR_POLICY_VIOLATION) { - testcase_skip("Dilithium key import is not allowed by policy"); - continue; - } -@@ -384,12 +468,18 @@ CK_RV run_ImportDilithiumKeyPairSignVerify() - - /* Create Dilithium public key */ - rc = create_DilithiumPublicKey(session, -+ dilithium_tv[i].spki, dilithium_tv[i].spki_len, -+ dilithium_tv[i].keyform, - dilithium_tv[i].rho, dilithium_tv[i].rho_len, - dilithium_tv[i].t1, dilithium_tv[i].t1_len, - &publ_key); - testcase_new_assertion(); - if (rc != CKR_OK) { -- if (rc == CKR_POLICY_VIOLATION) { -+ if (rc == CKR_KEY_SIZE_RANGE) { -+ testcase_skip("C_CreateObject with %s not supported", -+ dilithium_tv[i].name); -+ goto testcase_cleanup; -+ } else if (rc == CKR_POLICY_VIOLATION) { - testcase_skip("Dilithium key import is not allowed by policy"); - goto testcase_cleanup; - } -@@ -553,7 +643,7 @@ CK_RV run_TransferDilithiumKeyPairSignVerify() - rc = funcs->C_GetMechanismInfo(SLOT_ID, mech.mechanism, &mech_info); - if (rc != CKR_OK) { - if (rc == CKR_MECHANISM_INVALID) { -- /* no support for EC key gen? skip */ -+ /* no support for Dilithium key gen? skip */ - testcase_skip("Slot %u doesn't support CKM_IBM_DILITHIUM", - (unsigned int) SLOT_ID); - goto testcase_cleanup; -@@ -569,6 +659,8 @@ CK_RV run_TransferDilithiumKeyPairSignVerify() - - /* Create Dilithium private key */ - rc = create_DilithiumPrivateKey(session, -+ dilithium_tv[i].pkcs8, dilithium_tv[i].pkcs8_len, -+ dilithium_tv[i].keyform, - dilithium_tv[i].rho, dilithium_tv[i].rho_len, - dilithium_tv[i].seed, dilithium_tv[i].seed_len, - dilithium_tv[i].tr, dilithium_tv[i].tr_len, -@@ -579,7 +671,11 @@ CK_RV run_TransferDilithiumKeyPairSignVerify() - &priv_key); - testcase_new_assertion(); - if (rc != CKR_OK) { -- if (rc == CKR_POLICY_VIOLATION) { -+ if (rc == CKR_KEY_SIZE_RANGE) { -+ testcase_skip("C_CreateObject with %s not supported", -+ dilithium_tv[i].name); -+ continue; -+ } else if (rc == CKR_POLICY_VIOLATION) { - testcase_skip("Dilithium key import is not allowed by policy"); - continue; - } -@@ -593,12 +689,18 @@ CK_RV run_TransferDilithiumKeyPairSignVerify() - - /* Create Dilithium public key */ - rc = create_DilithiumPublicKey(session, -+ dilithium_tv[i].spki, dilithium_tv[i].spki_len, -+ dilithium_tv[i].keyform, - dilithium_tv[i].rho, dilithium_tv[i].rho_len, - dilithium_tv[i].t1, dilithium_tv[i].t1_len, - &publ_key); - testcase_new_assertion(); - if (rc != CKR_OK) { -- if (rc == CKR_POLICY_VIOLATION) { -+ if (rc == CKR_KEY_SIZE_RANGE) { -+ testcase_skip("C_CreateObject with %s not supported", -+ dilithium_tv[i].name); -+ goto testcase_cleanup; -+ } else if (rc == CKR_POLICY_VIOLATION) { - testcase_skip("Dilithium key import is not allowed by policy"); - goto testcase_cleanup; - } --- -2.16.2.windows.1 - diff --git a/0025-COMMON-EP11-Add-Kyber-key-type-and-mechanism.patch b/0025-COMMON-EP11-Add-Kyber-key-type-and-mechanism.patch deleted file mode 100644 index f9a5d14..0000000 --- a/0025-COMMON-EP11-Add-Kyber-key-type-and-mechanism.patch +++ /dev/null @@ -1,1435 +0,0 @@ -From 49ce634ed6fa1fddc2bb34fd0f89c0ea0cc368ee Mon Sep 17 00:00:00 2001 -From: Ingo Franzki -Date: Tue, 1 Mar 2022 09:15:15 +0100 -Subject: [PATCH 25/34] COMMON/EP11: Add Kyber key type and mechanism - -Kyber requires an EP11 host library of version 4.0 or later, -and a CEX8P crypto card. - -Signed-off-by: Ingo Franzki ---- - usr/lib/api/mechtable.inc | 1 + - usr/lib/api/policy.c | 2 + - usr/lib/common/asn1.c | 563 +++++++++++++++++++++++++++++++++++ - usr/lib/common/h_extern.h | 59 ++++ - usr/lib/common/key.c | 476 +++++++++++++++++++++++++++++ - usr/lib/common/key_mgr.c | 10 + - usr/lib/common/mech_ec.c | 3 + - usr/lib/common/template.c | 12 + - usr/lib/ep11_stdll/ep11_specific.c | 42 ++- - usr/lib/ep11_stdll/ep11cpfilter.conf | 2 +- - 10 files changed, 1167 insertions(+), 3 deletions(-) - -diff --git a/usr/lib/api/mechtable.inc b/usr/lib/api/mechtable.inc -index e3d14e3e..7aa72fbf 100644 ---- a/usr/lib/api/mechtable.inc -+++ b/usr/lib/api/mechtable.inc -@@ -84,6 +84,7 @@ const struct mechrow mechtable_rows[] = - { "CKM_IBM_EC_X448", CKM_IBM_EC_X448, 0, MC_INFORMATION_UNAVAILABLE, MCF_DERIVE }, - { "CKM_IBM_ED25519_SHA512", CKM_IBM_ED25519_SHA512, 128, MC_KEY_DEPENDENT, MCF_SIGNVERIFY }, - { "CKM_IBM_ED448_SHA3", CKM_IBM_ED448_SHA3, 144, MC_KEY_DEPENDENT, MCF_SIGNVERIFY }, -+ { "CKM_IBM_KYBER", CKM_IBM_KYBER, 0, MC_KEY_DEPENDENT, MCF_KEYGEN | MCF_ENCRYPTDECRYPT | MCF_DERIVE | MCF_NEEDSPARAM}, - { "CKM_IBM_SHA3_224", CKM_IBM_SHA3_224, 144, 24, MCF_DIGEST }, - { "CKM_IBM_SHA3_224_HMAC", CKM_IBM_SHA3_224_HMAC, 144, 24, MCF_SIGNVERIFY }, - { "CKM_IBM_SHA3_256", CKM_IBM_SHA3_256, 136, 32, MCF_DIGEST }, -diff --git a/usr/lib/api/policy.c b/usr/lib/api/policy.c -index 4bee5180..b513a8a9 100644 ---- a/usr/lib/api/policy.c -+++ b/usr/lib/api/policy.c -@@ -333,6 +333,7 @@ static CK_RV policy_extract_key_data(get_attr_val_f getattr, void *d, - *comptarget = COMPARE_SYMMETRIC; - break; - case CKK_IBM_PQC_DILITHIUM: -+ case CKK_IBM_PQC_KYBER: - rv = policy_get_pqc_args(*(CK_ULONG *)keytype->pValue, getattr, d, - free_attr, size, siglen, oid, oidlen); - *comptarget = COMPARE_PQC; -@@ -1062,6 +1063,7 @@ static CK_RV policy_update_mech_info(policy_t p, CK_MECHANISM_TYPE mech, - } - break; - case CKM_IBM_DILITHIUM: -+ case CKM_IBM_KYBER: - break; - case CKM_IBM_SHA3_224: - case CKM_IBM_SHA3_256: -diff --git a/usr/lib/common/asn1.c b/usr/lib/common/asn1.c -index 85d3924c..87cc5dfc 100644 ---- a/usr/lib/common/asn1.c -+++ b/usr/lib/common/asn1.c -@@ -4384,3 +4384,566 @@ cleanup: - - return rc; - } -+ -+/** -+ * An IBM Kyber public key is given by: -+ * -+ * SEQUENCE (2 elem) -+ * SEQUENCE (2 elem) -+ * OBJECT IDENTIFIER 1.3.6.1.4.1.2.267.5.xxx -+ * NULL -+ * BIT STRING (1 elem) -+ * SEQUENCE (1 elem) -+ * pk BIT STRING -- public key -+ */ -+CK_RV ber_encode_IBM_KyberPublicKey(CK_BBOOL length_only, -+ CK_BYTE **data, CK_ULONG *data_len, -+ const CK_BYTE *oid, CK_ULONG oid_len, -+ CK_ATTRIBUTE *pk) -+{ -+ CK_BYTE *buf = NULL, *buf2 = NULL, *buf3 = NULL, *buf4 = NULL; -+ CK_BYTE *buf5 = NULL, *algid = NULL; -+ CK_ULONG len, len4, offset, total, total_len, algid_len; -+ CK_RV rc; -+ -+ UNUSED(length_only); -+ -+ offset = 0; -+ rc = 0; -+ total_len = 0; -+ total = 0; -+ -+ /* Calculate storage for AlgID sequence */ -+ rc |= ber_encode_SEQUENCE(TRUE, NULL, &total_len, NULL, -+ oid_len + ber_NULLLen); -+ -+ /* Calculate storage for inner sequence */ -+ rc |= ber_encode_INTEGER(TRUE, NULL, &len, NULL, pk->ulValueLen); -+ offset += len; -+ -+ if (rc != CKR_OK) { -+ TRACE_ERROR("%s ber_encode_Int failed with rc=0x%lx\n", __func__, rc); -+ return rc; -+ } -+ -+ /* Allocate storage for inner sequence */ -+ buf = (CK_BYTE *) malloc(offset); -+ if (!buf) { -+ TRACE_ERROR("%s Memory allocation failed\n", __func__); -+ return CKR_HOST_MEMORY; -+ } -+ -+ /** -+ * SEQUENCE (1 elem) -+ * BIT STRING -> pk -+ */ -+ offset = 0; -+ rc = ber_encode_BIT_STRING(FALSE, &buf2, &len, -+ pk->pValue, pk->ulValueLen, 0); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("%s ber_encode_Int failed with rc=0x%lx\n", __func__, rc); -+ goto error; -+ } -+ memcpy(buf + offset, buf2, len); -+ offset += len; -+ free(buf2); -+ -+ rc = ber_encode_SEQUENCE(FALSE, &buf2, &len, buf, offset); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("%s ber_encode_Seq failed with rc=0x%lx\n", __func__, rc); -+ goto error; -+ } -+ free(buf); -+ buf = NULL; -+ -+ /* Calculate length of outer sequence */ -+ rc = ber_encode_BIT_STRING(TRUE, NULL, &total, buf2, len, 0); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("%s ber_encode_Oct_Str failed with rc=0x%lx\n", __func__, rc); -+ goto error; -+ } else { -+ total_len += total; -+ } -+ -+ /* Allocate storage for outer sequence and bit string */ -+ buf3 = (CK_BYTE *) malloc(total_len); -+ if (!buf3) { -+ TRACE_ERROR("%s Memory allocation failed\n", __func__); -+ rc = CKR_HOST_MEMORY; -+ goto error; -+ } -+ -+ /* -+ * SEQUENCE (2 elem) -+ * OBJECT IDENTIFIER 1.3.6.1.4.1.2.267.5.xxx -+ * NULL <- no parms for this oid -+ */ -+ buf5 = (CK_BYTE *) malloc(oid_len + ber_NULLLen); -+ if (!buf5) { -+ TRACE_ERROR("%s Memory allocation failed\n", __func__); -+ rc = CKR_HOST_MEMORY; -+ goto error; -+ } -+ memcpy(buf5, oid, oid_len); -+ memcpy(buf5 + oid_len, ber_NULL, ber_NULLLen); -+ -+ rc = ber_encode_SEQUENCE(FALSE, &algid, &algid_len, buf5, -+ oid_len + ber_NULLLen); -+ free(buf5); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("%s ber_encode_SEQUENCE failed with rc=0x%lx\n", __func__, rc); -+ goto error; -+ } -+ -+ total_len = algid_len; -+ memcpy(buf3, algid, algid_len); -+ free(algid); -+ algid = NULL; -+ -+ /* -+ * BIT STRING (1 elem) -+ * SEQUENCE (1 elem) -+ * BIT STRING -> pk -+ */ -+ rc = ber_encode_BIT_STRING(FALSE, &buf4, &len4, buf2, len, 0); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("%s ber_encode_BIT_STRING failed with rc=0x%lx\n", __func__, rc); -+ goto error; -+ } -+ memcpy(buf3 + total_len, buf4, len4); -+ total_len += len4; -+ free(buf4); -+ buf4 = NULL; -+ -+ /** -+ * SEQUENCE (2 elem) -+ * SEQUENCE (2 elem) -+ * OBJECT IDENTIFIER 1.3.6.1.4.1.2.267.5.xxx -+ * NULL -> no parms for this oid -+ * BIT STRING (1 elem) -+ * SEQUENCE (2 elem) -+ * BIT STRING -> pk -+ */ -+ rc = ber_encode_SEQUENCE(FALSE, data, data_len, buf3, total_len); -+ if (rc != CKR_OK) -+ TRACE_ERROR("%s ber_encode_Seq failed with rc=0x%lx\n", __func__, rc); -+ -+error: -+ -+ if (buf) -+ free(buf); -+ if (buf2) -+ free(buf2); -+ if (buf3) -+ free(buf3); -+ -+ return rc; -+} -+ -+CK_RV ber_decode_IBM_KyberPublicKey(CK_BYTE *data, -+ CK_ULONG data_len, -+ CK_ATTRIBUTE **pk_attr, -+ CK_ATTRIBUTE **value_attr, -+ const struct pqc_oid **oid) -+{ -+ CK_ATTRIBUTE *pk_attr_temp = NULL; -+ CK_ATTRIBUTE *value_attr_temp = NULL; -+ -+ CK_BYTE *algoid = NULL; -+ CK_ULONG algoid_len; -+ CK_BYTE *param = NULL; -+ CK_ULONG param_len; -+ CK_BYTE *val = NULL; -+ CK_ULONG val_len; -+ CK_BYTE *seq; -+ CK_ULONG seq_len; -+ CK_BYTE *pk; -+ CK_ULONG pk_len; -+ CK_ULONG field_len, raw_spki_len; -+ CK_RV rc; -+ -+ UNUSED(data_len); // XXX can this parameter be removed ? -+ -+ rc = ber_decode_SPKI(data, &algoid, &algoid_len, ¶m, ¶m_len, -+ &val, &val_len); -+ if (rc != CKR_OK) { -+ TRACE_DEVEL("ber_decode_SPKI failed\n"); -+ return rc; -+ } -+ -+ *oid = find_pqc_by_oid(kyber_oids, algoid, algoid_len); -+ if (*oid == NULL) { -+ TRACE_ERROR("%s\n", ock_err(ERR_FUNCTION_FAILED)); -+ return CKR_FUNCTION_FAILED; -+ } -+ -+ /* Decode sequence: -+ * SEQUENCE (1 elem) -+ * BIT STRING = pk -+ */ -+ rc = ber_decode_SEQUENCE(val, &seq, &seq_len, &field_len); -+ if (rc != CKR_OK) { -+ TRACE_DEVEL("ber_decode_SEQUENCE failed\n"); -+ return rc; -+ } -+ -+ /* Decode pk */ -+ rc = ber_decode_BIT_STRING(seq, &pk, &pk_len, &field_len); -+ if (rc != CKR_OK) { -+ TRACE_DEVEL("ber_decode_INTEGER failed\n"); -+ return rc; -+ } -+ pk++; /* Remove unused-bits byte */ -+ pk_len--; -+ -+ /* Build pk attribute */ -+ rc = build_attribute(CKA_IBM_KYBER_PK, pk, pk_len, &pk_attr_temp); -+ if (rc != CKR_OK) { -+ TRACE_DEVEL("build_attribute failed\n"); -+ goto cleanup; -+ } -+ -+ /* Add raw SPKI as CKA_VALUE to public key (z/OS ICSF compatibility) */ -+ rc = ber_decode_SEQUENCE(data, &val, &val_len, &raw_spki_len); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("%s ber_decode_SEQUENCE failed with rc=0x%lx\n", __func__, rc); -+ goto cleanup; -+ } -+ rc = build_attribute(CKA_VALUE, data, raw_spki_len, &value_attr_temp); -+ if (rc != CKR_OK) { -+ TRACE_DEVEL("build_attribute failed\n"); -+ goto cleanup; -+ } -+ -+ *pk_attr = pk_attr_temp; -+ *value_attr = value_attr_temp; -+ -+ return CKR_OK; -+ -+cleanup: -+ if (pk_attr_temp) -+ free(pk_attr_temp); -+ if (value_attr_temp) -+ free(value_attr_temp); -+ -+ return rc; -+} -+ -+/** -+ * An IBM Kyber private key is given by: -+ * -+ * KyberPrivateKey ::= SEQUENCE { -+ * version INTEGER, -- v0, reserved 0 -+ * sk BIT STRING, -- private key -+ * pk [0] IMPLICIT OPTIONAL { -+ * pk||rs BIT STRING -- public key (pk) concatenated with 2x32 bytes rs -+ * } -+ * } -+ */ -+CK_RV ber_encode_IBM_KyberPrivateKey(CK_BBOOL length_only, -+ CK_BYTE **data, -+ CK_ULONG *data_len, -+ const CK_BYTE *oid, CK_ULONG oid_len, -+ CK_ATTRIBUTE *sk, -+ CK_ATTRIBUTE *pk) -+{ -+ CK_BYTE *buf = NULL, *buf2 = NULL, *buf3 = NULL; -+ CK_BYTE *algid = NULL, *algid_buf = NULL, *pk_rs = NULL; -+ CK_ULONG len, len2 = 0, offset, algid_len = 0; -+ CK_BYTE version[] = { 0 }; -+ CK_RV rc; -+ -+ /* Calculate storage for sequence */ -+ offset = 0; -+ rc = 0; -+ -+ rc |= ber_encode_SEQUENCE(TRUE, NULL, &algid_len, NULL, -+ oid_len + ber_NULLLen); -+ -+ rc |= ber_encode_INTEGER(TRUE, NULL, &len, NULL, sizeof(version)); -+ offset += len; -+ rc |= ber_encode_BIT_STRING(TRUE, NULL, &len, NULL, sk->ulValueLen, 0); -+ offset += len; -+ if (pk) { -+ rc |= ber_encode_BIT_STRING(TRUE, NULL, &len2, NULL, -+ pk->ulValueLen + 64, 0); -+ rc |= ber_encode_CHOICE(TRUE, 0, NULL, &len, NULL, len2); -+ offset += len; -+ } -+ -+ if (rc != CKR_OK) { -+ TRACE_DEVEL("Calculate storage for sequence failed\n"); -+ return CKR_FUNCTION_FAILED; -+ } -+ -+ if (length_only == TRUE) { -+ rc = ber_encode_SEQUENCE(TRUE, NULL, &len, NULL, offset); -+ if (rc != CKR_OK) { -+ TRACE_DEVEL("ber_encode_SEQUENCE failed\n"); -+ return rc; -+ } -+ rc = ber_encode_PrivateKeyInfo(TRUE, -+ NULL, data_len, -+ NULL, algid_len, -+ NULL, len); -+ if (rc != CKR_OK) { -+ TRACE_DEVEL("ber_encode_PrivateKeyInfo failed\n"); -+ return rc; -+ } -+ return rc; -+ } -+ -+ /* Allocate storage for sequence */ -+ buf = (CK_BYTE *) malloc(offset); -+ if (!buf) { -+ TRACE_ERROR("%s\n", ock_err(ERR_HOST_MEMORY)); -+ return CKR_HOST_MEMORY; -+ } -+ offset = 0; -+ -+ /* Version */ -+ rc = ber_encode_INTEGER(FALSE, &buf2, &len, version, sizeof(version)); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("ber_encode_INTEGER of version failed\n"); -+ goto error; -+ } -+ memcpy(buf + offset, buf2, len); -+ offset += len; -+ free(buf2); -+ buf2 = NULL; -+ -+ /* sk */ -+ rc = ber_encode_BIT_STRING(FALSE, &buf2, &len, -+ sk->pValue, sk->ulValueLen, 0); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("ber_encode_BIT_STRING of sk failed\n"); -+ goto error; -+ } -+ memcpy(buf + offset, buf2, len); -+ offset += len; -+ free(buf2); -+ buf2 = NULL; -+ -+ /* (pk) Optional bit-string of public key */ -+ if (pk && pk->pValue) { -+ /* append rs to public key */ -+ pk_rs = (CK_BYTE *)malloc(pk->ulValueLen + 64); -+ if (!pk_rs) { -+ TRACE_ERROR("%s\n", ock_err(ERR_HOST_MEMORY)); -+ rc = CKR_HOST_MEMORY; -+ goto error; -+ } -+ -+ memcpy(pk_rs, pk->pValue, pk->ulValueLen); -+ memset(pk_rs + pk->ulValueLen, 0x30, 64); -+ -+ rc = ber_encode_BIT_STRING(FALSE, &buf3, &len2, -+ pk_rs, pk->ulValueLen + 64, 0); -+ rc |= ber_encode_CHOICE(FALSE, 0, &buf2, &len, buf3, len2); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("encoding of pk value failed\n"); -+ goto error; -+ } -+ memcpy(buf + offset, buf2, len); -+ offset += len; -+ free(buf2); -+ buf2 = NULL; -+ } -+ -+ /* Encode sequence */ -+ rc = ber_encode_SEQUENCE(FALSE, &buf2, &len, buf, offset); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("ber_encode_SEQUENCE failed\n"); -+ goto error; -+ } -+ -+ algid_buf = (CK_BYTE *) malloc(oid_len + ber_NULLLen); -+ if (!algid_buf) { -+ TRACE_ERROR("%s Memory allocation failed\n", __func__); -+ rc = CKR_HOST_MEMORY; -+ goto error; -+ } -+ memcpy(algid_buf, oid, oid_len); -+ memcpy(algid_buf + oid_len, ber_NULL, ber_NULLLen); -+ -+ rc = ber_encode_SEQUENCE(FALSE, &algid, &algid_len, algid_buf, -+ oid_len + ber_NULLLen); -+ free(algid_buf); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("%s ber_encode_SEQUENCE failed with rc=0x%lx\n", __func__, rc); -+ goto error; -+ } -+ -+ rc = ber_encode_PrivateKeyInfo(FALSE, -+ data, data_len, -+ algid, algid_len, -+ buf2, len); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("ber_encode_PrivateKeyInfo failed\n"); -+ } -+ -+error: -+ if (buf3) -+ free(buf3); -+ if (buf2) -+ free(buf2); -+ if (buf) -+ free(buf); -+ if (algid) -+ free(algid); -+ if (pk_rs) -+ free(pk_rs); -+ -+ return rc; -+} -+ -+/** -+ * decode an IBM Kyber private key: -+ * -+ * KyberPrivateKey ::= SEQUENCE { -+ * version INTEGER, -- v0, reserved 0 -+ * sk BIT STRING, -- private key -+ * pk [0] IMPLICIT OPTIONAL { -+ * pk||rs BIT STRING -- public key (pk) concatenated with 2x32 bytes rs -+ * } -+ * } -+ */ -+CK_RV ber_decode_IBM_KyberPrivateKey(CK_BYTE *data, -+ CK_ULONG data_len, -+ CK_ATTRIBUTE **sk, -+ CK_ATTRIBUTE **pk, -+ CK_ATTRIBUTE **value, -+ const struct pqc_oid **oid) -+{ -+ CK_ATTRIBUTE *sk_attr = NULL, *pk_attr = NULL, *value_attr = NULL; -+ CK_BYTE *algoid = NULL; -+ CK_BYTE *kyber_priv_key = NULL; -+ CK_BYTE *buf = NULL; -+ CK_BYTE *tmp = NULL; -+ CK_ULONG offset, buf_len, field_len, len, option; -+ CK_RV rc; -+ -+ /* Check if this is a Kyber private key */ -+ rc = ber_decode_PrivateKeyInfo(data, data_len, &algoid, &len, -+ &kyber_priv_key); -+ if (rc != CKR_OK) { -+ TRACE_DEVEL("ber_decode_PrivateKeyInfo failed\n"); -+ return rc; -+ } -+ -+ if (len <= ber_NULLLen || -+ memcmp(algoid + len - ber_NULLLen, ber_NULL, ber_NULLLen) != 0) { -+ TRACE_ERROR("%s\n", ock_err(ERR_FUNCTION_FAILED)); -+ return CKR_FUNCTION_FAILED; -+ } -+ len -= ber_NULLLen; -+ *oid = find_pqc_by_oid(kyber_oids, algoid, len); -+ if (*oid == NULL) { -+ TRACE_ERROR("%s\n", ock_err(ERR_FUNCTION_FAILED)); -+ return CKR_FUNCTION_FAILED; -+ } -+ -+ /* Decode private Kyber key */ -+ rc = ber_decode_SEQUENCE(kyber_priv_key, &buf, &buf_len, &field_len); -+ if (rc != CKR_OK) -+ return rc; -+ -+ /* Now build the attributes */ -+ offset = 0; -+ -+ /* Skip the version */ -+ rc = ber_decode_INTEGER(buf + offset, &tmp, &len, &field_len); -+ if (rc != CKR_OK) { -+ TRACE_DEVEL("ber_decode_INTEGER failed\n"); -+ goto cleanup; -+ } -+ offset += field_len; -+ -+ /* sk */ -+ rc = ber_decode_BIT_STRING(buf + offset, &tmp, &len, &field_len); -+ if (rc != CKR_OK) { -+ TRACE_DEVEL("ber_decode_BIT_STRING of (sk) failed\n"); -+ goto cleanup; -+ } else { -+ tmp++; /* Remove unused-bits byte */ -+ len--; -+ rc = build_attribute(CKA_IBM_KYBER_SK, tmp, len, &sk_attr); -+ if (rc != CKR_OK) { -+ TRACE_DEVEL("build_attribute for (sk) failed\n"); -+ goto cleanup; -+ } -+ offset += field_len; -+ } -+ -+ /* pk (optional, within choice) */ -+ if (offset < buf_len) { -+ rc = ber_decode_CHOICE(buf + offset, &tmp, &len, &field_len, &option); -+ if (rc != CKR_OK) { -+ TRACE_DEVEL("ber_decode_BIT_STRING of (t1) failed\n"); -+ goto cleanup; -+ } -+ -+ if (option != 0x00) { -+ TRACE_DEVEL("ber_decode_CHOICE returned invalid option %ld\n", -+ option); -+ goto cleanup; -+ } -+ -+ offset += field_len - len; -+ -+ rc = ber_decode_BIT_STRING(buf + offset, &tmp, &len, &field_len); -+ if (rc != CKR_OK) { -+ TRACE_DEVEL("ber_decode_BIT_STRING of (pk) failed\n"); -+ goto cleanup; -+ } -+ tmp++; /* Remove unused-bits byte */ -+ len--; -+ -+ if (len > 64) -+ len -= 64; /* Remove 'rs' */ -+ -+ rc = build_attribute(CKA_IBM_KYBER_PK, tmp, len, &pk_attr); -+ if (rc != CKR_OK) { -+ TRACE_DEVEL("build_attribute for (pk) failed\n"); -+ goto cleanup; -+ } -+ offset += field_len; -+ } -+ -+ /* Check if buffer big enough */ -+ if (offset > buf_len) { -+ TRACE_ERROR("%s\n", ock_err(ERR_FUNCTION_FAILED)); -+ rc = CKR_FUNCTION_FAILED; -+ goto cleanup; -+ } -+ -+ /* Add private key as CKA_VALUE to public key (z/OS ICSF compatibility) */ -+ rc = ber_decode_SEQUENCE(data, &tmp, &len, &field_len); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("%s ber_decode_SEQUENCE failed with rc=0x%lx\n", __func__, rc); -+ goto cleanup; -+ } -+ rc = build_attribute(CKA_VALUE, data, field_len, &value_attr); -+ if (rc != CKR_OK) { -+ TRACE_DEVEL("build_attribute for (t1) failed\n"); -+ goto cleanup; -+ } -+ -+ *sk = sk_attr; -+ *pk = pk_attr; -+ *value = value_attr; -+ -+ return CKR_OK; -+ -+cleanup: -+ -+ if (sk_attr) -+ free(sk_attr); -+ if (pk_attr) -+ free(pk_attr); -+ if (value_attr) -+ free(value_attr); -+ -+ return rc; -+} -+ -diff --git a/usr/lib/common/h_extern.h b/usr/lib/common/h_extern.h -index fdbcacd9..ee1ae08d 100644 ---- a/usr/lib/common/h_extern.h -+++ b/usr/lib/common/h_extern.h -@@ -2505,6 +2505,40 @@ CK_RV ibm_dilithium_priv_unwrap(TEMPLATE *tmpl, CK_BYTE *data, - CK_RV ibm_dilithium_priv_unwrap_get_data(TEMPLATE *tmpl, - CK_BYTE *data, CK_ULONG total_length, - CK_BBOOL add_value); -+ -+// Kyber routines -+// -+CK_RV ibm_kyber_publ_check_required_attributes(TEMPLATE *tmpl, CK_ULONG mode); -+CK_RV ibm_kyber_publ_set_default_attributes(TEMPLATE *tmpl, CK_ULONG mode); -+CK_RV ibm_kyber_publ_validate_attribute(STDLL_TokData_t *tokdata, TEMPLATE *tmpl, -+ CK_ATTRIBUTE *attr, CK_ULONG mode); -+CK_RV ibm_kyber_publ_get_spki(TEMPLATE *tmpl, CK_BBOOL length_only, -+ CK_BYTE **data, CK_ULONG *data_len); -+CK_RV ibm_kyber_priv_check_required_attributes(TEMPLATE *tmpl, CK_ULONG mode); -+CK_RV ibm_kyber_priv_set_default_attributes(TEMPLATE *tmpl, CK_ULONG mode); -+CK_RV ibm_kyber_priv_validate_attribute(STDLL_TokData_t *tokdata, TEMPLATE *tmpl, -+ CK_ATTRIBUTE *attr, CK_ULONG mode); -+CK_RV ibm_kyber_priv_wrap_get_data(TEMPLATE *tmpl, CK_BBOOL length_only, -+ CK_BYTE **data, CK_ULONG *data_len); -+CK_RV ibm_kyber_priv_unwrap(TEMPLATE *tmpl, CK_BYTE *data, -+ CK_ULONG total_length, CK_BBOOL add_value); -+CK_RV ibm_kyber_priv_unwrap_get_data(TEMPLATE *tmpl, -+ CK_BYTE *data, CK_ULONG total_length, -+ CK_BBOOL add_value); -+ -+// PQC helper routines -+// -+CK_RV ibm_pqc_publ_get_spki(TEMPLATE *tmpl, CK_KEY_TYPE keytype, -+ CK_BBOOL length_only, -+ CK_BYTE **data, CK_ULONG *data_len); -+CK_RV ibm_pqc_priv_wrap_get_data(TEMPLATE *tmpl, CK_KEY_TYPE keytype, -+ CK_BBOOL length_only, -+ CK_BYTE **data, CK_ULONG *data_len); -+CK_RV ibm_pqc_priv_unwrap(TEMPLATE *tmpl, CK_KEY_TYPE keytype, CK_BYTE *data, -+ CK_ULONG total_length, CK_BBOOL add_value); -+CK_RV ibm_pqc_priv_unwrap_get_data(TEMPLATE *tmpl, CK_KEY_TYPE keytype, -+ CK_BYTE *data, CK_ULONG total_length, -+ CK_BBOOL add_value); - const struct pqc_oid *ibm_pqc_get_keyform_mode(TEMPLATE *tmpl, - CK_MECHANISM_TYPE mech); - CK_RV ibm_pqc_add_keyform_mode(TEMPLATE *tmpl, const struct pqc_oid *oid, -@@ -2782,6 +2816,31 @@ CK_RV ber_decode_IBM_DilithiumPrivateKey(CK_BYTE *data, - CK_ATTRIBUTE **value, - const struct pqc_oid **oid); - -+CK_RV ber_encode_IBM_KyberPublicKey(CK_BBOOL length_only, -+ CK_BYTE **data, CK_ULONG *data_len, -+ const CK_BYTE *oid, CK_ULONG oid_len, -+ CK_ATTRIBUTE *pk); -+ -+CK_RV ber_decode_IBM_KyberPublicKey(CK_BYTE *data, -+ CK_ULONG data_len, -+ CK_ATTRIBUTE **pk_attr, -+ CK_ATTRIBUTE **value_attr, -+ const struct pqc_oid **oid); -+ -+CK_RV ber_encode_IBM_KyberPrivateKey(CK_BBOOL length_only, -+ CK_BYTE **data, -+ CK_ULONG *data_len, -+ const CK_BYTE *oid, CK_ULONG oid_len, -+ CK_ATTRIBUTE *sk, -+ CK_ATTRIBUTE *pk); -+ -+CK_RV ber_decode_IBM_KyberPrivateKey(CK_BYTE *data, -+ CK_ULONG data_len, -+ CK_ATTRIBUTE **sk, -+ CK_ATTRIBUTE **pk, -+ CK_ATTRIBUTE **value, -+ const struct pqc_oid **oid); -+ - typedef CK_RV (*t_rsa_encrypt)(STDLL_TokData_t *, CK_BYTE *in_data, - CK_ULONG in_data_len, CK_BYTE *out_data, - OBJECT *key_obj); -diff --git a/usr/lib/common/key.c b/usr/lib/common/key.c -index ba40cefd..ef329452 100644 ---- a/usr/lib/common/key.c -+++ b/usr/lib/common/key.c -@@ -722,6 +722,9 @@ CK_RV publ_key_get_spki(TEMPLATE *tmpl, CK_ULONG keytype, CK_BBOOL length_only, - case CKK_IBM_PQC_DILITHIUM: - rc = ibm_dilithium_publ_get_spki(tmpl, length_only, data, data_len); - break; -+ case CKK_IBM_PQC_KYBER: -+ rc = ibm_kyber_publ_get_spki(tmpl, length_only, data, data_len); -+ break; - default: - TRACE_ERROR("%s\n", ock_err(ERR_KEY_TYPE_INCONSISTENT)); - return CKR_KEY_TYPE_INCONSISTENT; -@@ -1053,6 +1056,9 @@ CK_RV priv_key_unwrap(TEMPLATE *tmpl, - case CKK_IBM_PQC_DILITHIUM: - rc = ibm_dilithium_priv_unwrap(tmpl, data, data_len, TRUE); - break; -+ case CKK_IBM_PQC_KYBER: -+ rc = ibm_kyber_priv_unwrap(tmpl, data, data_len, TRUE); -+ break; - default: - TRACE_ERROR("%s\n", ock_err(ERR_WRAPPED_KEY_INVALID)); - return CKR_WRAPPED_KEY_INVALID; -@@ -3030,6 +3036,240 @@ error: - return rc; - } - -+/* -+ * Extract the SubjectPublicKeyInfo from the Kyber public key -+ */ -+CK_RV ibm_kyber_publ_get_spki(TEMPLATE *tmpl, CK_BBOOL length_only, -+ CK_BYTE **data, CK_ULONG *data_len) -+{ -+ CK_ATTRIBUTE *pk = NULL; -+ const struct pqc_oid *oid; -+ CK_RV rc; -+ -+ oid = ibm_pqc_get_keyform_mode(tmpl, CKM_IBM_KYBER); -+ if (oid == NULL) -+ return CKR_TEMPLATE_INCOMPLETE; -+ -+ rc = template_attribute_get_non_empty(tmpl, CKA_IBM_KYBER_PK, &pk); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("Could not find CKA_IBM_KYBER_PK for the key.\n"); -+ return rc; -+ } -+ -+ rc = ber_encode_IBM_KyberPublicKey(length_only, data, data_len, -+ oid->oid, oid->oid_len, pk); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("ber_encode_IBM_KyberPublicKey failed.\n"); -+ return rc; -+ } -+ -+ return CKR_OK; -+} -+ -+ -+CK_RV ibm_kyber_priv_wrap_get_data(TEMPLATE *tmpl, -+ CK_BBOOL length_only, -+ CK_BYTE **data, CK_ULONG *data_len) -+{ -+ CK_ATTRIBUTE *sk = NULL, *pk = NULL; -+ const struct pqc_oid *oid; -+ CK_RV rc; -+ -+ oid = ibm_pqc_get_keyform_mode(tmpl, CKM_IBM_KYBER); -+ if (oid == NULL) -+ return CKR_TEMPLATE_INCOMPLETE; -+ -+ rc = template_attribute_get_non_empty(tmpl, CKA_IBM_KYBER_SK, &sk); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("Could not find CKA_IBM_KYBER_SK for the key.\n"); -+ return rc; -+ } -+ -+ rc = template_attribute_get_non_empty(tmpl, CKA_IBM_KYBER_PK, &pk); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("Could not find CKA_IBM_KYBER_PK for the key.\n"); -+ return rc; -+ } -+ -+ rc = ber_encode_IBM_KyberPrivateKey(length_only, data, data_len, -+ oid->oid, oid->oid_len, sk, pk); -+ if (rc != CKR_OK) { -+ TRACE_DEVEL("ber_encode_IBM_KyberPrivateKey failed\n"); -+ } -+ -+ return rc; -+} -+ -+CK_RV ibm_kyber_priv_unwrap_get_data(TEMPLATE *tmpl, CK_BYTE *data, -+ CK_ULONG total_length, -+ CK_BBOOL add_value) -+{ -+ CK_ATTRIBUTE *pk = NULL; -+ CK_ATTRIBUTE *value = NULL; -+ const struct pqc_oid *oid; -+ CK_RV rc; -+ -+ rc = ber_decode_IBM_KyberPublicKey(data, total_length, &pk, -+ &value, &oid); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("ber_decode_IBM_KyberPublicKey failed\n"); -+ return rc; -+ } -+ -+ rc = ibm_pqc_add_keyform_mode(tmpl, oid, CKM_IBM_KYBER); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("ibm_pqc_add_keyform_mode failed\n"); -+ return rc; -+ } -+ -+ rc = template_update_attribute(tmpl, pk); -+ if (rc != CKR_OK) { -+ TRACE_DEVEL("template_update_attribute failed.\n"); -+ goto error; -+ } -+ pk = NULL; -+ if (add_value) { -+ rc = template_update_attribute(tmpl, value); -+ if (rc != CKR_OK) { -+ TRACE_DEVEL("template_update_attribute failed.\n"); -+ goto error; -+ } -+ } else { -+ free(value); -+ } -+ value = NULL; -+ -+ return CKR_OK; -+ -+error: -+ if (pk) -+ free(pk); -+ if (value) -+ free(value); -+ -+ return rc; -+} -+ -+// -+// -+CK_RV ibm_kyber_priv_unwrap(TEMPLATE *tmpl, CK_BYTE *data, -+ CK_ULONG total_length, CK_BBOOL add_value) -+{ -+ CK_ATTRIBUTE *sk = NULL, *pk = NULL, *value = NULL; -+ const struct pqc_oid *oid; -+ CK_RV rc; -+ -+ rc = ber_decode_IBM_KyberPrivateKey(data, total_length, -+ &sk, &pk, &value, &oid); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("ber_decode_IBM_KyberPrivateKey failed\n"); -+ return rc; -+ } -+ -+ rc = ibm_pqc_add_keyform_mode(tmpl, oid, CKM_IBM_KYBER); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("ibm_pqc_add_keyform_mode failed\n"); -+ return rc; -+ } -+ -+ rc = template_update_attribute(tmpl, sk); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("template_update_attribute failed\n"); -+ goto error; -+ } -+ sk = NULL; -+ rc = template_update_attribute(tmpl, pk); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("template_update_attribute failed\n"); -+ goto error; -+ } -+ pk = NULL; -+ if (add_value) { -+ rc = template_update_attribute(tmpl, value); -+ if (rc != CKR_OK) { -+ TRACE_DEVEL("template_update_attribute failed.\n"); -+ goto error; -+ } -+ } else { -+ free(value); -+ } -+ value = NULL; -+ -+ return CKR_OK; -+ -+error: -+ if (sk) -+ free(sk); -+ if (pk) -+ free(pk); -+ if (value) -+ free(value); -+ -+ return rc; -+} -+ -+CK_RV ibm_pqc_publ_get_spki(TEMPLATE *tmpl, CK_KEY_TYPE keytype, -+ CK_BBOOL length_only, -+ CK_BYTE **data, CK_ULONG *data_len) -+{ -+ switch (keytype) { -+ case CKK_IBM_PQC_DILITHIUM: -+ return ibm_dilithium_publ_get_spki(tmpl, length_only, data, data_len); -+ case CKK_IBM_PQC_KYBER: -+ return ibm_kyber_publ_get_spki(tmpl, length_only, data, data_len); -+ default: -+ TRACE_DEVEL("Key type 0x%lx not supported.\n", keytype); -+ return CKR_KEY_TYPE_INCONSISTENT; -+ } -+} -+ -+CK_RV ibm_pqc_priv_wrap_get_data(TEMPLATE *tmpl, CK_KEY_TYPE keytype, -+ CK_BBOOL length_only, -+ CK_BYTE **data, CK_ULONG *data_len) -+{ -+ switch (keytype) { -+ case CKK_IBM_PQC_DILITHIUM: -+ return ibm_dilithium_priv_wrap_get_data(tmpl, length_only, data, -+ data_len); -+ case CKK_IBM_PQC_KYBER: -+ return ibm_kyber_priv_wrap_get_data(tmpl, length_only, data, data_len); -+ default: -+ TRACE_DEVEL("Key type 0x%lx not supported.\n", keytype); -+ return CKR_KEY_TYPE_INCONSISTENT; -+ } -+} -+ -+CK_RV ibm_pqc_priv_unwrap(TEMPLATE *tmpl, CK_KEY_TYPE keytype, CK_BYTE *data, -+ CK_ULONG total_length, CK_BBOOL add_value) -+{ -+ switch (keytype) { -+ case CKK_IBM_PQC_DILITHIUM: -+ return ibm_dilithium_priv_unwrap(tmpl, data, total_length, add_value); -+ case CKK_IBM_PQC_KYBER: -+ return ibm_kyber_priv_unwrap(tmpl, data, total_length, add_value); -+ default: -+ TRACE_DEVEL("Key type 0x%lx not supported.\n", keytype); -+ return CKR_KEY_TYPE_INCONSISTENT; -+ } -+} -+ -+CK_RV ibm_pqc_priv_unwrap_get_data(TEMPLATE *tmpl, CK_KEY_TYPE keytype, -+ CK_BYTE *data, CK_ULONG total_length, -+ CK_BBOOL add_value) -+{ -+ switch (keytype) { -+ case CKK_IBM_PQC_DILITHIUM: -+ return ibm_dilithium_priv_unwrap_get_data(tmpl, data, total_length, -+ add_value); -+ case CKK_IBM_PQC_KYBER: -+ return ibm_kyber_priv_unwrap_get_data(tmpl, data, total_length, -+ add_value); -+ default: -+ TRACE_DEVEL("Key type 0x%lx not supported.\n", keytype); -+ return CKR_KEY_TYPE_INCONSISTENT; -+ } -+} -+ - // dsa_publ_check_required_attributes() - // - CK_RV dsa_publ_check_required_attributes(TEMPLATE *tmpl, CK_ULONG mode) -@@ -4987,6 +5227,152 @@ error: - return rc; - } - -+// ibm_dilithium_publ_set_default_attributes() -+// -+CK_RV ibm_kyber_publ_set_default_attributes(TEMPLATE *tmpl, CK_ULONG mode) -+{ -+ CK_ATTRIBUTE *type_attr = NULL; -+ CK_ATTRIBUTE *pk_attr = NULL; -+ CK_ATTRIBUTE *value_attr = NULL; -+ CK_RV rc; -+ -+ publ_key_set_default_attributes(tmpl, mode); -+ -+ type_attr = (CK_ATTRIBUTE *) malloc(sizeof(CK_ATTRIBUTE) + sizeof(CK_KEY_TYPE)); -+ pk_attr = (CK_ATTRIBUTE *) malloc(sizeof(CK_ATTRIBUTE)); -+ value_attr = (CK_ATTRIBUTE *) malloc(sizeof(CK_ATTRIBUTE)); -+ -+ if (!type_attr || !pk_attr ||!value_attr) { -+ TRACE_ERROR("%s\n", ock_err(ERR_HOST_MEMORY)); -+ rc = CKR_HOST_MEMORY; -+ goto error; -+ } -+ -+ type_attr->type = CKA_KEY_TYPE; -+ type_attr->ulValueLen = sizeof(CK_KEY_TYPE); -+ type_attr->pValue = (CK_BYTE *) type_attr + sizeof(CK_ATTRIBUTE); -+ *(CK_KEY_TYPE *) type_attr->pValue = CKK_IBM_PQC_KYBER; -+ -+ pk_attr->type = CKA_IBM_KYBER_PK; -+ pk_attr->ulValueLen = 0; -+ pk_attr->pValue = NULL; -+ -+ value_attr->type = CKA_VALUE; -+ value_attr->ulValueLen = 0; -+ value_attr->pValue = NULL; -+ -+ rc = template_update_attribute(tmpl, type_attr); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("template_update_attribute failed\n"); -+ goto error; -+ } -+ type_attr = NULL; -+ rc = template_update_attribute(tmpl, pk_attr); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("template_update_attribute failed\n"); -+ goto error; -+ } -+ pk_attr = NULL; -+ rc = template_update_attribute(tmpl, value_attr); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("template_update_attribute failed\n"); -+ goto error; -+ } -+ value_attr = NULL; -+ -+ return CKR_OK; -+ -+error: -+ if (type_attr) -+ free(type_attr); -+ if (pk_attr) -+ free(pk_attr); -+ if (value_attr) -+ free(value_attr); -+ -+ return rc; -+} -+ -+// ibm_dilithium_priv_set_default_attributes() -+// -+CK_RV ibm_kyber_priv_set_default_attributes(TEMPLATE *tmpl, CK_ULONG mode) -+{ -+ CK_ATTRIBUTE *type_attr = NULL; -+ CK_ATTRIBUTE *sk_attr = NULL; -+ CK_ATTRIBUTE *pk_attr = NULL; -+ CK_ATTRIBUTE *value_attr = NULL; -+ CK_RV rc; -+ -+ priv_key_set_default_attributes(tmpl, mode); -+ -+ type_attr = (CK_ATTRIBUTE *) malloc(sizeof(CK_ATTRIBUTE) + sizeof(CK_KEY_TYPE)); -+ sk_attr = (CK_ATTRIBUTE *) malloc(sizeof(CK_ATTRIBUTE)); -+ pk_attr = (CK_ATTRIBUTE *) malloc(sizeof(CK_ATTRIBUTE)); -+ value_attr = (CK_ATTRIBUTE *) malloc(sizeof(CK_ATTRIBUTE)); -+ -+ if (!type_attr || !sk_attr || !pk_attr || !value_attr) { -+ TRACE_ERROR("%s\n", ock_err(ERR_HOST_MEMORY)); -+ rc = CKR_HOST_MEMORY; -+ goto error; -+ } -+ -+ type_attr->type = CKA_KEY_TYPE; -+ type_attr->ulValueLen = sizeof(CK_KEY_TYPE); -+ type_attr->pValue = (CK_BYTE *) type_attr + sizeof(CK_ATTRIBUTE); -+ *(CK_KEY_TYPE *) type_attr->pValue = CKK_IBM_PQC_KYBER; -+ -+ sk_attr->type = CKA_IBM_KYBER_SK; -+ sk_attr->ulValueLen = 0; -+ sk_attr->pValue = NULL; -+ -+ pk_attr->type = CKA_IBM_KYBER_PK; -+ pk_attr->ulValueLen = 0; -+ pk_attr->pValue = NULL; -+ -+ value_attr->type = CKA_VALUE; -+ value_attr->ulValueLen = 0; -+ value_attr->pValue = NULL; -+ -+ rc = template_update_attribute(tmpl, type_attr); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("template_update_attribute failed\n"); -+ goto error; -+ } -+ type_attr = NULL; -+ rc = template_update_attribute(tmpl, sk_attr); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("template_update_attribute failed\n"); -+ goto error; -+ } -+ sk_attr = NULL; -+ rc = template_update_attribute(tmpl, pk_attr); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("template_update_attribute failed\n"); -+ goto error; -+ } -+ pk_attr = NULL; -+ rc = template_update_attribute(tmpl, value_attr); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("template_update_attribute failed\n"); -+ goto error; -+ } -+ value_attr = NULL; -+ -+ return CKR_OK; -+ -+error: -+ if (type_attr) -+ free(type_attr); -+ if (sk_attr) -+ free(sk_attr); -+ if (pk_attr) -+ free(pk_attr); -+ if (value_attr) -+ free(value_attr); -+ -+ return rc; -+} -+ - static CK_RV ibm_pqc_check_attributes(TEMPLATE *tmpl, CK_ULONG mode, - CK_MECHANISM_TYPE mech, - CK_ULONG *req_attrs, -@@ -5122,6 +5508,43 @@ CK_RV ibm_dilithium_priv_check_required_attributes(TEMPLATE *tmpl, CK_ULONG mode - return priv_key_check_required_attributes(tmpl, mode); - } - -+// ibm_kyber_publ_check_required_attributes() -+// -+CK_RV ibm_kyber_publ_check_required_attributes(TEMPLATE *tmpl, CK_ULONG mode) -+{ -+ static CK_ULONG req_attrs[] = { -+ CKA_IBM_KYBER_PK, -+ }; -+ CK_RV rc; -+ -+ rc = ibm_pqc_check_attributes(tmpl, mode, CKM_IBM_KYBER, req_attrs, -+ sizeof(req_attrs) / sizeof(req_attrs[0])); -+ if (rc != CKR_OK) -+ return rc; -+ -+ /* All required attrs found, check them */ -+ return publ_key_check_required_attributes(tmpl, mode); -+} -+ -+// ibm_kyber_priv_check_required_attributes() -+// -+CK_RV ibm_kyber_priv_check_required_attributes(TEMPLATE *tmpl, CK_ULONG mode) -+{ -+ static CK_ULONG req_attrs[] = { -+ CKA_IBM_KYBER_SK, -+ CKA_IBM_KYBER_PK, -+ }; -+ CK_RV rc; -+ -+ rc = ibm_pqc_check_attributes(tmpl, mode, CKM_IBM_KYBER, req_attrs, -+ sizeof(req_attrs) / sizeof(req_attrs[0])); -+ if (rc != CKR_OK) -+ return rc; -+ -+ /* All required attrs found, check them */ -+ return priv_key_check_required_attributes(tmpl, mode); -+} -+ - static CK_RV ibm_pqc_validate_keyform_mode(CK_ATTRIBUTE *attr, CK_ULONG mode, - CK_MECHANISM_TYPE mech) - { -@@ -5228,6 +5651,59 @@ CK_RV ibm_dilithium_priv_validate_attribute(STDLL_TokData_t *tokdata, - } - } - -+// ibm_kyber_publ_validate_attribute() -+// -+CK_RV ibm_kyber_publ_validate_attribute(STDLL_TokData_t *tokdata, -+ TEMPLATE *tmpl, CK_ATTRIBUTE *attr, -+ CK_ULONG mode) -+{ -+ CK_RV rc; -+ -+ switch (attr->type) { -+ case CKA_IBM_KYBER_KEYFORM: -+ case CKA_IBM_KYBER_MODE: -+ rc = ibm_pqc_validate_keyform_mode(attr, mode, CKM_IBM_KYBER); -+ if (rc != CKR_OK) -+ return rc; -+ return CKR_OK; -+ case CKA_IBM_KYBER_PK: -+ case CKA_VALUE: -+ if (mode == MODE_CREATE) -+ return CKR_OK; -+ TRACE_ERROR("%s\n", ock_err(ERR_ATTRIBUTE_READ_ONLY)); -+ return CKR_ATTRIBUTE_READ_ONLY; -+ default: -+ return publ_key_validate_attribute(tokdata, tmpl, attr, mode); -+ } -+} -+ -+// ibm_kyber_priv_validate_attribute() -+// -+CK_RV ibm_kyber_priv_validate_attribute(STDLL_TokData_t *tokdata, -+ TEMPLATE *tmpl, CK_ATTRIBUTE *attr, -+ CK_ULONG mode) -+{ -+ CK_RV rc; -+ -+ switch (attr->type) { -+ case CKA_IBM_KYBER_KEYFORM: -+ case CKA_IBM_KYBER_MODE: -+ rc = ibm_pqc_validate_keyform_mode(attr, mode, CKM_IBM_KYBER); -+ if (rc != CKR_OK) -+ return rc; -+ return CKR_OK; -+ case CKA_IBM_KYBER_SK: -+ case CKA_IBM_KYBER_PK: -+ case CKA_VALUE: -+ if (mode == MODE_CREATE) -+ return CKR_OK; -+ TRACE_ERROR("%s\n", ock_err(ERR_ATTRIBUTE_READ_ONLY)); -+ return CKR_ATTRIBUTE_READ_ONLY; -+ default: -+ return priv_key_validate_attribute(tokdata, tmpl, attr, mode); -+ } -+} -+ - // generic_secret_check_required_attributes() - // - CK_RV generic_secret_check_required_attributes(TEMPLATE *tmpl, CK_ULONG mode) -diff --git a/usr/lib/common/key_mgr.c b/usr/lib/common/key_mgr.c -index 01103dc2..8fcdc88e 100644 ---- a/usr/lib/common/key_mgr.c -+++ b/usr/lib/common/key_mgr.c -@@ -1421,6 +1421,16 @@ CK_RV key_mgr_get_private_key_type(CK_BYTE *keydata, - return CKR_OK; - } - } -+ // Check only the OBJECT IDENTIFIERs for KYBER -+ // -+ for (i = 0; kyber_oids[i].oid != NULL; i++) { -+ if (alg_len == kyber_oids[i].oid_len + ber_NULLLen && -+ memcmp(alg, kyber_oids[i].oid, kyber_oids[i].oid_len) == 0 && -+ memcmp(alg + kyber_oids[i].oid_len, ber_NULL, ber_NULLLen) == 0) { -+ *keytype = CKK_IBM_PQC_KYBER; -+ return CKR_OK; -+ } -+ } - - TRACE_ERROR("%s\n", ock_err(ERR_TEMPLATE_INCOMPLETE)); - return CKR_TEMPLATE_INCOMPLETE; -diff --git a/usr/lib/common/mech_ec.c b/usr/lib/common/mech_ec.c -index 9df53b46..3a642f50 100644 ---- a/usr/lib/common/mech_ec.c -+++ b/usr/lib/common/mech_ec.c -@@ -912,6 +912,9 @@ CK_RV pkcs_get_keytype(CK_ATTRIBUTE *attrs, CK_ULONG attrs_len, - case CKM_IBM_DILITHIUM: - *type = CKK_IBM_PQC_DILITHIUM; - break; -+ case CKM_IBM_KYBER: -+ *type = CKK_IBM_PQC_KYBER; -+ break; - default: - return CKR_MECHANISM_INVALID; - } -diff --git a/usr/lib/common/template.c b/usr/lib/common/template.c -index 3338e847..37831efc 100644 ---- a/usr/lib/common/template.c -+++ b/usr/lib/common/template.c -@@ -164,6 +164,8 @@ CK_RV template_add_default_attributes(TEMPLATE *tmpl, TEMPLATE *basetmpl, - return dh_publ_set_default_attributes(tmpl, mode); - case CKK_IBM_PQC_DILITHIUM: - return ibm_dilithium_publ_set_default_attributes(tmpl, mode); -+ case CKK_IBM_PQC_KYBER: -+ return ibm_kyber_publ_set_default_attributes(tmpl, mode); - default: - TRACE_ERROR("%s: %lx\n", ock_err(ERR_ATTRIBUTE_VALUE_INVALID), - subclass); -@@ -181,6 +183,8 @@ CK_RV template_add_default_attributes(TEMPLATE *tmpl, TEMPLATE *basetmpl, - return dh_priv_set_default_attributes(tmpl, mode); - case CKK_IBM_PQC_DILITHIUM: - return ibm_dilithium_priv_set_default_attributes(tmpl, mode); -+ case CKK_IBM_PQC_KYBER: -+ return ibm_kyber_priv_set_default_attributes(tmpl, mode); - default: - TRACE_ERROR("%s: %lx\n", ock_err(ERR_ATTRIBUTE_VALUE_INVALID), - subclass); -@@ -409,6 +413,8 @@ CK_RV template_check_required_attributes(TEMPLATE *tmpl, CK_ULONG class, - return dh_publ_check_required_attributes(tmpl, mode); - case CKK_IBM_PQC_DILITHIUM: - return ibm_dilithium_publ_check_required_attributes(tmpl, mode); -+ case CKK_IBM_PQC_KYBER: -+ return ibm_kyber_publ_check_required_attributes(tmpl, mode); - default: - TRACE_ERROR("%s: %lx\n", ock_err(ERR_ATTRIBUTE_VALUE_INVALID), - subclass); -@@ -426,6 +432,8 @@ CK_RV template_check_required_attributes(TEMPLATE *tmpl, CK_ULONG class, - return dh_priv_check_required_attributes(tmpl, mode); - case CKK_IBM_PQC_DILITHIUM: - return ibm_dilithium_priv_check_required_attributes(tmpl, mode); -+ case CKK_IBM_PQC_KYBER: -+ return ibm_kyber_priv_check_required_attributes(tmpl, mode); - default: - TRACE_ERROR("%s: %lx\n", ock_err(ERR_ATTRIBUTE_VALUE_INVALID), - subclass); -@@ -1642,6 +1650,8 @@ CK_RV template_validate_attribute(STDLL_TokData_t *tokdata, TEMPLATE *tmpl, - return dh_publ_validate_attribute(tokdata, tmpl, attr, mode); - case CKK_IBM_PQC_DILITHIUM: - return ibm_dilithium_publ_validate_attribute(tokdata, tmpl, attr, mode); -+ case CKK_IBM_PQC_KYBER: -+ return ibm_kyber_publ_validate_attribute(tokdata, tmpl, attr, mode); - default: - TRACE_ERROR("%s\n", ock_err(ERR_ATTRIBUTE_VALUE_INVALID)); - return CKR_ATTRIBUTE_VALUE_INVALID; // unknown key type -@@ -1658,6 +1668,8 @@ CK_RV template_validate_attribute(STDLL_TokData_t *tokdata, TEMPLATE *tmpl, - return dh_priv_validate_attribute(tokdata, tmpl, attr, mode); - case CKK_IBM_PQC_DILITHIUM: - return ibm_dilithium_priv_validate_attribute(tokdata, tmpl, attr, mode); -+ case CKK_IBM_PQC_KYBER: -+ return ibm_kyber_priv_validate_attribute(tokdata, tmpl, attr, mode); - default: - TRACE_ERROR("%s\n", ock_err(ERR_ATTRIBUTE_VALUE_INVALID)); - return CKR_ATTRIBUTE_VALUE_INVALID; // unknown key type -diff --git a/usr/lib/ep11_stdll/ep11_specific.c b/usr/lib/ep11_stdll/ep11_specific.c -index 479951cb..44796dba 100644 ---- a/usr/lib/ep11_stdll/ep11_specific.c -+++ b/usr/lib/ep11_stdll/ep11_specific.c -@@ -362,6 +362,13 @@ static const version_req_t ibm_dilithium_req_versions[] = { - }; - #define NUM_DILITHIUM_REQ (sizeof(ibm_dilithium_req_versions) / sizeof(version_req_t)) - -+static const CK_VERSION ibm_cex8p_kyber_support = { .major = 8, .minor = 9 }; -+ -+static const version_req_t ibm_kyber_req_versions[] = { -+ { .card_type = 8, .min_firmware_version = &ibm_cex8p_kyber_support } -+}; -+#define NUM_KYBER_REQ (sizeof(ibm_kyber_req_versions) / sizeof(version_req_t)) -+ - static const CK_VERSION ibm_cex6p_reencrypt_single_support = - { .major = 6, .minor = 15 }; - static const CK_VERSION ibm_cex7p_reencrypt_single_support = -@@ -1809,7 +1816,8 @@ static CK_RV check_key_attributes(STDLL_TokData_t * tokdata, - check_types = &check_types_pub[0]; - attr_cnt = sizeof(check_types_pub) / sizeof(CK_ULONG); - } -- /* do nothing for CKM_DH_PKCS_KEY_PAIR_GEN and CKK_IBM_PQC_DILITHIUM */ -+ /* do nothing for CKM_DH_PKCS_KEY_PAIR_GEN, CKK_IBM_PQC_DILITHIUM, -+ and CKK_IBM_PQC_KYBER */ - break; - case CKO_PRIVATE_KEY: - if ((kt == CKK_EC) || (kt == CKK_ECDSA) || (kt == CKK_DSA)) { -@@ -1824,7 +1832,7 @@ static CK_RV check_key_attributes(STDLL_TokData_t * tokdata, - check_types = &check_types_derive[0]; - attr_cnt = sizeof(check_types_derive) / sizeof(CK_ULONG); - } -- /* Do nothing for CKK_IBM_PQC_DILITHIUM */ -+ /* Do nothing for CKK_IBM_PQC_DILITHIUM and CKK_IBM_PQC_KYBER */ - break; - default: - return CKR_OK; -@@ -2029,6 +2037,13 @@ static CK_BBOOL attr_applicable_for_ep11(STDLL_TokData_t * tokdata, - attr->type == CKA_IBM_DILITHIUM_MODE) - return CK_FALSE; - break; -+ case CKK_IBM_PQC_KYBER: -+ if (attr->type == CKA_SIGN || attr->type == CKA_VERIFY || -+ attr->type == CKA_WRAP || attr->type == CKA_UNWRAP || -+ attr->type == CKA_IBM_KYBER_KEYFORM || -+ attr->type == CKA_IBM_KYBER_MODE) -+ return CK_FALSE; -+ break; - default: - break; - } -@@ -9145,6 +9160,10 @@ CK_RV ep11tok_unwrap_key(STDLL_TokData_t * tokdata, SESSION * session, - rc = ibm_dilithium_priv_unwrap_get_data(key_obj->template, - csum, cslen, FALSE); - break; -+ case CKK_IBM_PQC_KYBER: -+ rc = ibm_kyber_priv_unwrap_get_data(key_obj->template, -+ csum, cslen, FALSE); -+ break; - } - - if (rc != 0) { -@@ -9240,6 +9259,7 @@ static const CK_MECHANISM_TYPE ep11_supported_mech_list[] = { - CKM_IBM_EC_X448, - CKM_IBM_ED25519_SHA512, - CKM_IBM_ED448_SHA3, -+ CKM_IBM_KYBER, - CKM_IBM_SHA3_224, - CKM_IBM_SHA3_224_HMAC, - CKM_IBM_SHA3_256, -@@ -9478,6 +9498,7 @@ CK_RV ep11tok_is_mechanism_supported(STDLL_TokData_t *tokdata, - CK_VERSION ver1_3 = { .major = 1, .minor = 3 }; - CK_VERSION ver3 = { .major = 3, .minor = 0 }; - CK_VERSION ver3_1 = { .major = 3, .minor = 0x10 }; -+ CK_VERSION ver4 = { .major = 4, .minor = 0 }; - CK_BBOOL found = FALSE; - CK_ULONG i; - int status; -@@ -9630,6 +9651,23 @@ CK_RV ep11tok_is_mechanism_supported(STDLL_TokData_t *tokdata, - } - break; - -+ case CKM_IBM_KYBER: -+ if (compare_ck_version(&ep11_data->ep11_lib_version, &ver4) < 0) { -+ TRACE_INFO("%s Mech '%s' banned due to host library version\n", -+ __func__, ep11_get_ckm(tokdata, type)); -+ rc = CKR_MECHANISM_INVALID; -+ goto out; -+ } -+ status = check_required_versions(tokdata, ibm_kyber_req_versions, -+ NUM_KYBER_REQ); -+ if (status != 1) { -+ TRACE_INFO("%s Mech '%s' banned due to mixed firmware versions\n", -+ __func__, ep11_get_ckm(tokdata, type)); -+ rc = CKR_MECHANISM_INVALID; -+ goto out; -+ } -+ break; -+ - case CKM_IBM_CPACF_WRAP: - if (compare_ck_version(&ep11_data->ep11_lib_version, &ver3) <= 0) { - TRACE_INFO("%s Mech '%s' banned due to host library version\n", -diff --git a/usr/lib/ep11_stdll/ep11cpfilter.conf b/usr/lib/ep11_stdll/ep11cpfilter.conf -index 9d6a2fc8..4353ec53 100644 ---- a/usr/lib/ep11_stdll/ep11cpfilter.conf -+++ b/usr/lib/ep11_stdll/ep11cpfilter.conf -@@ -73,7 +73,7 @@ XCP_CPB_ALG_EC_25519: CKM_IBM_EC_X25519, CKM_IBM_ED25519_SHA512, CKM_IBM_EC_X448 - XCP_CPB_ALG_NBSI2017: CKM_RSA_PKCS, CKM_SHA1_RSA_PKCS, CKM_SHA224_RSA_PKCS, CKM_SHA256_RSA_PKCS, CKM_SHA384_RSA_PKCS, CKM_SHA512_RSA_PKCS - - #enable support of Dilithium --XCP_CPB_ALG_PQC: CKM_IBM_DILITHIUM -+XCP_CPB_ALG_PQC: CKM_IBM_DILITHIUM, CKM_IBM_KYBER - - # enable BTC-related functionality - XCP_CPB_BTC: CKM_IBM_BTC_DERIVE --- -2.16.2.windows.1 - diff --git a/0026-EP11-Add-support-for-generating-and-importing-Kyber-.patch b/0026-EP11-Add-support-for-generating-and-importing-Kyber-.patch deleted file mode 100644 index a0ab0b8..0000000 --- a/0026-EP11-Add-support-for-generating-and-importing-Kyber-.patch +++ /dev/null @@ -1,479 +0,0 @@ -From 5b5d1830dadfbbd310c11d26d86426ed63eed936 Mon Sep 17 00:00:00 2001 -From: Ingo Franzki -Date: Tue, 1 Mar 2022 11:09:26 +0100 -Subject: [PATCH 26/34] EP11: Add support for generating and importing Kyber - keys - -Signed-off-by: Ingo Franzki ---- - usr/lib/ep11_stdll/ep11_specific.c | 222 ++++++++++++++++++++++--------------- - 1 file changed, 134 insertions(+), 88 deletions(-) - -diff --git a/usr/lib/ep11_stdll/ep11_specific.c b/usr/lib/ep11_stdll/ep11_specific.c -index 44796dba..bc17b07a 100644 ---- a/usr/lib/ep11_stdll/ep11_specific.c -+++ b/usr/lib/ep11_stdll/ep11_specific.c -@@ -3664,14 +3664,14 @@ import_DH_key_end: - } - - /* -- * makes blobs for private imported IBM Dilithium keys and -- * SPKIs for public imported IBM Dilithium keys. -+ * makes blobs for private imported IBM PQC keys and -+ * SPKIs for public imported IBM PQC keys. - * Similar to rawkey_2_blob, but keys must follow a standard BER encoding. - */ --static CK_RV import_IBM_Dilithium_key(STDLL_TokData_t *tokdata, SESSION *sess, -- OBJECT *dilithium_key_obj, -- CK_BYTE *blob, size_t *blob_size, -- CK_BYTE *spki, size_t *spki_size) -+static CK_RV import_IBM_pqc_key(STDLL_TokData_t *tokdata, SESSION *sess, -+ OBJECT *pqc_key_obj, CK_KEY_TYPE keytype, -+ CK_BYTE *blob, size_t *blob_size, -+ CK_BYTE *spki, size_t *spki_size) - { - ep11_private_data_t *ep11_data = tokdata->private_data; - CK_RV rc; -@@ -3692,11 +3692,27 @@ static CK_RV import_IBM_Dilithium_key(STDLL_TokData_t *tokdata, SESSION *sess, - CK_ATTRIBUTE *value_attr = NULL; - CK_BBOOL data_alloced = TRUE; - const struct pqc_oid *oid; -+ const char *key_type_str; -+ CK_MECHANISM_TYPE pqc_mech; -+ -+ switch (keytype) { -+ case CKK_IBM_PQC_DILITHIUM: -+ key_type_str = "Dilithium"; -+ pqc_mech = CKM_IBM_DILITHIUM; -+ break; -+ case CKK_IBM_PQC_KYBER: -+ key_type_str = "Kyber"; -+ pqc_mech = CKM_IBM_KYBER; -+ break; -+ default: -+ TRACE_ERROR("Invalid key type provided for %s\n ", __func__); -+ return CKR_KEY_TYPE_INCONSISTENT; -+ } - - memcpy(iv, "1234567812345678", AES_BLOCK_SIZE); - - /* need class for secret/public key info */ -- rc = template_attribute_get_ulong(dilithium_key_obj->template, CKA_CLASS, -+ rc = template_attribute_get_ulong(pqc_key_obj->template, CKA_CLASS, - &class); - if (rc != CKR_OK) { - TRACE_ERROR("Could not find CKA_CLASS for the key.\n"); -@@ -3706,20 +3722,20 @@ static CK_RV import_IBM_Dilithium_key(STDLL_TokData_t *tokdata, SESSION *sess, - /* m_Unwrap builds key blob in the card, - * tell ep11 the attributes the user specified for that key. - */ -- rc = build_ep11_attrs(tokdata, dilithium_key_obj->template, -+ rc = build_ep11_attrs(tokdata, pqc_key_obj->template, - &p_attrs, &attrs_len, -- CKK_IBM_PQC_DILITHIUM, class, -1, &mech_w); -+ keytype, class, -1, &mech_w); - if (rc != CKR_OK) - goto done; - - if (class != CKO_PRIVATE_KEY) { -- /* Make an SPKI for the public IBM Dilithium key */ -+ /* Make an SPKI for the public IBM PQC key */ - -- /* A public IBM Dilithium key must either have a CKA_VALUE containing -+ /* A public IBM PQC key must either have a CKA_VALUE containing - * the SPKI, or must have a keyform/mode value and the individual - * attributes - */ -- if (template_attribute_find(dilithium_key_obj->template, -+ if (template_attribute_find(pqc_key_obj->template, - CKA_VALUE, &value_attr) && - value_attr->ulValueLen > 0 && value_attr ->pValue != NULL) { - /* CKA_VALUE with SPKI */ -@@ -3731,16 +3747,16 @@ static CK_RV import_IBM_Dilithium_key(STDLL_TokData_t *tokdata, SESSION *sess, - * Decode SPKI and add public key attributes. This also adds the - * keyform and mode attributes to the template. - */ -- rc = ibm_dilithium_priv_unwrap_get_data(dilithium_key_obj->template, -- data, data_len, FALSE); -+ rc = ibm_pqc_priv_unwrap_get_data(pqc_key_obj->template, keytype, -+ data, data_len, FALSE); - if (rc != CKR_OK) { - TRACE_ERROR("Failed to decode SPKI from CKA_VALUE.\n"); - goto done; - } - } else { - /* Individual attributes */ -- rc = ibm_dilithium_publ_get_spki(dilithium_key_obj->template, -- FALSE, &data, &data_len); -+ rc = ibm_pqc_publ_get_spki(pqc_key_obj->template, keytype, -+ FALSE, &data, &data_len); - if (rc != CKR_OK) { - TRACE_ERROR("%s public key import class=0x%lx rc=0x%lx " - "data_len=0x%lx\n", __func__, class, rc, data_len); -@@ -3751,15 +3767,13 @@ static CK_RV import_IBM_Dilithium_key(STDLL_TokData_t *tokdata, SESSION *sess, - } - - /* Ensure both, keyform and mode attributes are added */ -- oid = ibm_pqc_get_keyform_mode(dilithium_key_obj->template, -- CKM_IBM_DILITHIUM); -+ oid = ibm_pqc_get_keyform_mode(pqc_key_obj->template, pqc_mech); - if (oid == NULL) { - rc = CKR_TEMPLATE_INCOMPLETE; - goto done; - } - -- rc = ibm_pqc_add_keyform_mode(dilithium_key_obj->template, -- oid, CKM_IBM_DILITHIUM); -+ rc = ibm_pqc_add_keyform_mode(pqc_key_obj->template, oid, pqc_mech); - if (rc != CKR_OK) { - TRACE_ERROR("ibm_pqc_add_keyform_mode failed\n"); - goto done; -@@ -3772,7 +3786,7 @@ static CK_RV import_IBM_Dilithium_key(STDLL_TokData_t *tokdata, SESSION *sess, - goto done; - } - -- rc = template_update_attribute(dilithium_key_obj->template, -+ rc = template_update_attribute(pqc_key_obj->template, - value_attr); - if (rc != CKR_OK) { - TRACE_ERROR("%s template_update_attribute failed with rc=0x%lx\n", -@@ -3786,7 +3800,7 @@ static CK_RV import_IBM_Dilithium_key(STDLL_TokData_t *tokdata, SESSION *sess, - /* save the SPKI as blob although it is not a blob. - * The card expects MACed-SPKIs as public keys. - */ -- rc = make_maced_spki(tokdata, sess, dilithium_key_obj, data, data_len, -+ rc = make_maced_spki(tokdata, sess, pqc_key_obj, data, data_len, - blob, blob_size, -1); - if (rc != CKR_OK) { - TRACE_ERROR("%s failed to make a MACed-SPKI rc=0x%lx\n", -@@ -3798,13 +3812,13 @@ static CK_RV import_IBM_Dilithium_key(STDLL_TokData_t *tokdata, SESSION *sess, - - } else { - -- /* imported private IBM Dilithium key goes here */ -+ /* imported private IBM PQC key goes here */ - -- /* A public IBM Dilithium key must either have a CKA_VALUE containing -+ /* A public IBM PQC key must either have a CKA_VALUE containing - * the PKCS#8 encoded private key, or must have a keyform/mode value - * and the individual attributes - */ -- if (template_attribute_find(dilithium_key_obj->template, -+ if (template_attribute_find(pqc_key_obj->template, - CKA_VALUE, &value_attr) && - value_attr->ulValueLen > 0 && value_attr ->pValue != NULL) { - /* CKA_VALUE with SPKI */ -@@ -3813,8 +3827,8 @@ static CK_RV import_IBM_Dilithium_key(STDLL_TokData_t *tokdata, SESSION *sess, - data_alloced = FALSE; - - /* Decode PKCS#8 private key and add key attributes */ -- rc = ibm_dilithium_priv_unwrap(dilithium_key_obj->template, -- data, data_len, FALSE); -+ rc = ibm_pqc_priv_unwrap(pqc_key_obj->template, keytype, -+ data, data_len, FALSE); - if (rc != CKR_OK) { - TRACE_ERROR("Failed to decode private key from CKA_VALUE.\n"); - goto done; -@@ -3824,23 +3838,22 @@ static CK_RV import_IBM_Dilithium_key(STDLL_TokData_t *tokdata, SESSION *sess, - * padding is done in mechanism. This also adds the keyform and mode - * attributes to the template. - */ -- rc = ibm_dilithium_priv_wrap_get_data(dilithium_key_obj->template, -- FALSE, &data, &data_len); -+ rc = ibm_pqc_priv_wrap_get_data(pqc_key_obj->template, keytype, -+ FALSE, &data, &data_len); - if (rc != CKR_OK) { -- TRACE_DEVEL("%s Dilithium wrap get data failed\n", __func__); -+ TRACE_DEVEL("%s %s wrap get data failed\n", __func__, -+ key_type_str); - goto done; - } - - /* Ensure both, keyform and mode attributes are added */ -- oid = ibm_pqc_get_keyform_mode(dilithium_key_obj->template, -- CKM_IBM_DILITHIUM); -+ oid = ibm_pqc_get_keyform_mode(pqc_key_obj->template, pqc_mech); - if (oid == NULL) { - rc = CKR_TEMPLATE_INCOMPLETE; - goto done; - } - -- rc = ibm_pqc_add_keyform_mode(dilithium_key_obj->template, -- oid, CKM_IBM_DILITHIUM); -+ rc = ibm_pqc_add_keyform_mode(pqc_key_obj->template, oid, pqc_mech); - if (rc != CKR_OK) { - TRACE_ERROR("ibm_pqc_add_keyform_mode failed\n"); - goto done; -@@ -3849,8 +3862,8 @@ static CK_RV import_IBM_Dilithium_key(STDLL_TokData_t *tokdata, SESSION *sess, - - /* encrypt */ - RETRY_START(rc, tokdata) -- if (ep11_pqc_obj_strength_supported(target_info, CKM_IBM_DILITHIUM, -- dilithium_key_obj)) -+ if (ep11_pqc_obj_strength_supported(target_info, pqc_mech, -+ pqc_key_obj)) - rc = dll_m_EncryptSingle(ep11_data->raw2key_wrap_blob, - ep11_data->raw2key_wrap_blob_l, - &mech_w, data, data_len, -@@ -3870,8 +3883,7 @@ static CK_RV import_IBM_Dilithium_key(STDLL_TokData_t *tokdata, SESSION *sess, - goto done; - } - -- rc = check_key_attributes(tokdata, CKK_IBM_PQC_DILITHIUM, -- CKO_PRIVATE_KEY, -+ rc = check_key_attributes(tokdata, keytype, CKO_PRIVATE_KEY, - p_attrs, attrs_len, - &new_p_attrs, &new_attrs_len, -1); - if (rc != CKR_OK) { -@@ -3880,12 +3892,12 @@ static CK_RV import_IBM_Dilithium_key(STDLL_TokData_t *tokdata, SESSION *sess, - goto done; - } - -- trace_attributes(__func__, "Dilithium import:", new_p_attrs, new_attrs_len); -+ trace_attributes(__func__, "PQC import:", new_p_attrs, new_attrs_len); - -- ep11_get_pin_blob(ep11_session, object_is_session_object(dilithium_key_obj), -+ ep11_get_pin_blob(ep11_session, object_is_session_object(pqc_key_obj), - &ep11_pin_blob, &ep11_pin_blob_len); - -- /* calls the card, it decrypts the private Dilithium key, -+ /* calls the card, it decrypts the private PQC key, - * reads its BER format and builds a blob. - */ - RETRY_START(rc, tokdata) -@@ -3908,12 +3920,20 @@ static CK_RV import_IBM_Dilithium_key(STDLL_TokData_t *tokdata, SESSION *sess, - __func__, rc, *blob_size); - } - -- cleanse_attribute(dilithium_key_obj->template, CKA_VALUE); -- cleanse_attribute(dilithium_key_obj->template, CKA_IBM_DILITHIUM_SEED); -- cleanse_attribute(dilithium_key_obj->template, CKA_IBM_DILITHIUM_TR); -- cleanse_attribute(dilithium_key_obj->template, CKA_IBM_DILITHIUM_S1); -- cleanse_attribute(dilithium_key_obj->template, CKA_IBM_DILITHIUM_S2); -- cleanse_attribute(dilithium_key_obj->template, CKA_IBM_DILITHIUM_T0); -+ cleanse_attribute(pqc_key_obj->template, CKA_VALUE); -+ -+ switch (keytype) { -+ case CKK_IBM_PQC_DILITHIUM: -+ cleanse_attribute(pqc_key_obj->template, CKA_IBM_DILITHIUM_SEED); -+ cleanse_attribute(pqc_key_obj->template, CKA_IBM_DILITHIUM_TR); -+ cleanse_attribute(pqc_key_obj->template, CKA_IBM_DILITHIUM_S1); -+ cleanse_attribute(pqc_key_obj->template, CKA_IBM_DILITHIUM_S2); -+ cleanse_attribute(pqc_key_obj->template, CKA_IBM_DILITHIUM_T0); -+ break; -+ case CKK_IBM_PQC_KYBER: -+ cleanse_attribute(pqc_key_obj->template, CKA_IBM_KYBER_SK); -+ break; -+ } - } - - done: -@@ -4020,15 +4040,16 @@ CK_RV token_specific_object_add(STDLL_TokData_t * tokdata, SESSION * sess, - __func__, rc, blobsize); - break; - case CKK_IBM_PQC_DILITHIUM: -- rc = import_IBM_Dilithium_key(tokdata, sess, obj, blob, &blobsize, -- spki, &spkisize); -+ case CKK_IBM_PQC_KYBER: -+ rc = import_IBM_pqc_key(tokdata, sess, obj, keytype, blob, &blobsize, -+ spki, &spkisize); - if (rc != CKR_OK) { -- TRACE_ERROR("%s import IBM Dilithium key rc=0x%lx blobsize=0x%zx\n", -- __func__, rc, blobsize); -+ TRACE_ERROR("%s import IBM PQC key kytype=0x%lx rc=0x%lx blobsize=0x%zx\n", -+ __func__, keytype, rc, blobsize); - return rc; - } -- TRACE_INFO("%s import IBM Dilithium key rc=0x%lx blobsize=0x%zx\n", -- __func__, rc, blobsize); -+ TRACE_INFO("%s import IBM PQC key kytype=0x%lx rc=0x%lx blobsize=0x%zx\n", -+ __func__, keytype, rc, blobsize); - break; - case CKK_DES2: - case CKK_DES3: -@@ -6582,10 +6603,10 @@ error: - return rc; - } - --static CK_RV ibm_dilithium_generate_keypair(STDLL_TokData_t *tokdata, -- SESSION *sess, -- CK_MECHANISM_PTR pMechanism, -- TEMPLATE *publ_tmpl, TEMPLATE *priv_tmpl) -+static CK_RV ibm_pqc_generate_keypair(STDLL_TokData_t *tokdata, -+ SESSION *sess, -+ CK_MECHANISM_PTR pMechanism, -+ TEMPLATE *publ_tmpl, TEMPLATE *priv_tmpl) - { - CK_RV rc; - CK_ATTRIBUTE *attr = NULL; -@@ -6593,7 +6614,7 @@ static CK_RV ibm_dilithium_generate_keypair(STDLL_TokData_t *tokdata, - size_t privkey_blob_len = sizeof(privkey_blob); - unsigned char spki[MAX_BLOBSIZE]; - size_t spki_len = sizeof(spki); -- CK_ULONG ktype = CKK_IBM_PQC_DILITHIUM; -+ CK_ULONG ktype; - unsigned char *ep11_pin_blob = NULL; - CK_ULONG ep11_pin_blob_len = 0; - ep11_session_t *ep11_session = (ep11_session_t *) sess->private_data; -@@ -6601,9 +6622,19 @@ static CK_RV ibm_dilithium_generate_keypair(STDLL_TokData_t *tokdata, - CK_ULONG new_publ_attrs_len = 0, new_priv_attrs_len = 0; - CK_ATTRIBUTE *new_publ_attrs2 = NULL, *new_priv_attrs2 = NULL; - CK_ULONG new_publ_attrs2_len = 0, new_priv_attrs2_len = 0; -- const struct pqc_oid *dilithium_oid; -+ const struct pqc_oid *pqc_oid; -+ const char *key_type_str; - -- if (pMechanism->mechanism != CKM_IBM_DILITHIUM) { -+ switch (pMechanism->mechanism) { -+ case CKM_IBM_DILITHIUM: -+ key_type_str = "Dilithium"; -+ ktype = CKK_IBM_PQC_DILITHIUM; -+ break; -+ case CKM_IBM_KYBER: -+ key_type_str = "Kyber"; -+ ktype = CKK_IBM_PQC_KYBER; -+ break; -+ default: - TRACE_ERROR("Invalid mechanism provided for %s\n ", __func__); - return CKR_MECHANISM_INVALID; - } -@@ -6624,25 +6655,37 @@ static CK_RV ibm_dilithium_generate_keypair(STDLL_TokData_t *tokdata, - goto error; - } - -- dilithium_oid = ibm_pqc_get_keyform_mode(publ_tmpl, CKM_IBM_DILITHIUM); -- if (dilithium_oid == NULL) -- dilithium_oid = ibm_pqc_get_keyform_mode(priv_tmpl, CKM_IBM_DILITHIUM); -- if (dilithium_oid == NULL) -- dilithium_oid = find_pqc_by_keyform(dilithium_oids, -- CK_IBM_DILITHIUM_KEYFORM_ROUND2_65); -- if (dilithium_oid == NULL) { -- TRACE_ERROR("%s Failed to determine Dilithium OID\n", __func__); -+ pqc_oid = ibm_pqc_get_keyform_mode(publ_tmpl, pMechanism->mechanism); -+ if (pqc_oid == NULL) -+ pqc_oid = ibm_pqc_get_keyform_mode(priv_tmpl, pMechanism->mechanism); -+ if (pqc_oid == NULL) { -+ switch (pMechanism->mechanism) { -+ case CKM_IBM_DILITHIUM: -+ pqc_oid = find_pqc_by_keyform(dilithium_oids, -+ CK_IBM_DILITHIUM_KEYFORM_ROUND2_65); -+ break; -+ case CKM_IBM_KYBER: -+ pqc_oid = find_pqc_by_keyform(kyber_oids, -+ CK_IBM_KYBER_KEYFORM_ROUND2_1024); -+ break; -+ default: -+ /* pqc_oid stays NULL */ -+ break; -+ } -+ } -+ if (pqc_oid == NULL) { -+ TRACE_ERROR("%s Failed to determine %s OID\n", __func__, key_type_str); - rc = CKR_FUNCTION_FAILED; - goto error; - } - -- TRACE_INFO("%s Generate Dilithium key with keyform %lu\n", __func__, -- dilithium_oid->keyform); -+ TRACE_INFO("%s Generate %s key with keyform %lu\n", __func__, key_type_str, -+ pqc_oid->keyform); - - rc = add_to_attribute_array(&new_publ_attrs, &new_publ_attrs_len, - CKA_IBM_PQC_PARAMS, -- (CK_BYTE *)dilithium_oid->oid, -- dilithium_oid->oid_len); -+ (CK_BYTE *)pqc_oid->oid, -+ pqc_oid->oid_len); - if (rc != CKR_OK) { - TRACE_ERROR("%s add_to_attribute_array failed with rc=0x%lx\n", - __func__, rc); -@@ -6651,8 +6694,8 @@ static CK_RV ibm_dilithium_generate_keypair(STDLL_TokData_t *tokdata, - - rc = add_to_attribute_array(&new_priv_attrs, &new_priv_attrs_len, - CKA_IBM_PQC_PARAMS, -- (CK_BYTE *)dilithium_oid->oid, -- dilithium_oid->oid_len); -+ (CK_BYTE *)pqc_oid->oid, -+ pqc_oid->oid_len); - if (rc != CKR_OK) { - TRACE_ERROR("%s add_to_attribute_array failed with rc=0x%lx\n", - __func__, rc); -@@ -6663,8 +6706,8 @@ static CK_RV ibm_dilithium_generate_keypair(STDLL_TokData_t *tokdata, - new_publ_attrs, new_publ_attrs_len, - &new_publ_attrs2, &new_publ_attrs2_len, -1); - if (rc != CKR_OK) { -- TRACE_ERROR("%s Dilithium check public key attributes failed with " -- "rc=0x%lx\n", __func__, rc); -+ TRACE_ERROR("%s %s check public key attributes failed with " -+ "rc=0x%lx\n", __func__, key_type_str, rc); - goto error; - } - -@@ -6672,14 +6715,14 @@ static CK_RV ibm_dilithium_generate_keypair(STDLL_TokData_t *tokdata, - new_priv_attrs, new_priv_attrs_len, - &new_priv_attrs2, &new_priv_attrs2_len, -1); - if (rc != CKR_OK) { -- TRACE_ERROR("%s Dilithium check private key attributes failed with " -- "rc=0x%lx\n", __func__, rc); -+ TRACE_ERROR("%s %s check private key attributes failed with " -+ "rc=0x%lx\n", __func__, key_type_str, rc); - goto error; - } - -- trace_attributes(__func__, "Dilithium public key attributes:", -+ trace_attributes(__func__, "PQC public key attributes:", - new_publ_attrs2, new_publ_attrs2_len); -- trace_attributes(__func__, "Dilithium private key attributes:", -+ trace_attributes(__func__, "PQC private key attributes:", - new_priv_attrs2, new_priv_attrs2_len); - - ep11_get_pin_blob(ep11_session, -@@ -6691,7 +6734,7 @@ static CK_RV ibm_dilithium_generate_keypair(STDLL_TokData_t *tokdata, - - RETRY_START(rc, tokdata) - if (ep11_pqc_strength_supported(target_info, pMechanism->mechanism, -- dilithium_oid)) -+ pqc_oid)) - rc = dll_m_GenerateKeyPair(pMechanism, - new_publ_attrs2, new_publ_attrs2_len, - new_priv_attrs2, new_priv_attrs2_len, -@@ -6752,16 +6795,18 @@ static CK_RV ibm_dilithium_generate_keypair(STDLL_TokData_t *tokdata, - goto error; - } - -- rc = ibm_dilithium_priv_unwrap_get_data(publ_tmpl, spki, spki_len, TRUE); -+ rc = ibm_pqc_priv_unwrap_get_data(publ_tmpl, ktype, -+ spki, spki_len, TRUE); - if (rc != CKR_OK) { -- TRACE_ERROR("%s ibm_dilithium_priv_unwrap_get_data with rc=0x%lx\n", -+ TRACE_ERROR("%s ibm_pqc_priv_unwrap_get_data with rc=0x%lx\n", - __func__, rc); - goto error; - } - -- rc = ibm_dilithium_priv_unwrap_get_data(priv_tmpl, spki, spki_len, FALSE); -+ rc = ibm_pqc_priv_unwrap_get_data(priv_tmpl, ktype, -+ spki, spki_len, FALSE); - if (rc != CKR_OK) { -- TRACE_ERROR("%s ibm_dilithium_priv_unwrap_get_data with rc=0x%lx\n", -+ TRACE_ERROR("%s ibm_pqc_priv_unwrap_get_data with rc=0x%lx\n", - __func__, rc); - goto error; - } -@@ -6854,9 +6899,10 @@ CK_RV ep11tok_generate_key_pair(STDLL_TokData_t * tokdata, SESSION * sess, - private_key_obj->template); - break; - case CKM_IBM_DILITHIUM: -- rc = ibm_dilithium_generate_keypair(tokdata, sess, pMechanism, -- public_key_obj->template, -- private_key_obj->template); -+ case CKM_IBM_KYBER: -+ rc = ibm_pqc_generate_keypair(tokdata, sess, pMechanism, -+ public_key_obj->template, -+ private_key_obj->template); - break; - default: - TRACE_ERROR("%s invalid mech %s\n", __func__, --- -2.16.2.windows.1 - diff --git a/0027-EP11-Add-support-for-encrypt-decrypt-and-KEM-operati.patch b/0027-EP11-Add-support-for-encrypt-decrypt-and-KEM-operati.patch deleted file mode 100644 index ecb4aea..0000000 --- a/0027-EP11-Add-support-for-encrypt-decrypt-and-KEM-operati.patch +++ /dev/null @@ -1,339 +0,0 @@ -From 51ed2d7171e5423cfec86c36ffa32e8e9e0de01c Mon Sep 17 00:00:00 2001 -From: Ingo Franzki -Date: Tue, 1 Mar 2022 16:55:01 +0100 -Subject: [PATCH 27/34] EP11: Add support for encrypt/decrypt and KEM - operations with Kyber - -Signed-off-by: Ingo Franzki ---- - usr/lib/ep11_stdll/ep11_specific.c | 174 ++++++++++++++++++++++++++++++++++--- - usr/lib/ep11_stdll/new_host.c | 24 +++-- - 2 files changed, 180 insertions(+), 18 deletions(-) - -diff --git a/usr/lib/ep11_stdll/ep11_specific.c b/usr/lib/ep11_stdll/ep11_specific.c -index bc17b07a..9efce053 100644 ---- a/usr/lib/ep11_stdll/ep11_specific.c -+++ b/usr/lib/ep11_stdll/ep11_specific.c -@@ -5196,6 +5196,126 @@ CK_RV token_specific_aes_cmac(STDLL_TokData_t *tokdata, - return rc; - } - -+struct EP11_KYBER_MECH { -+ CK_MECHANISM mech; -+ struct XCP_KYBER_KEM_PARAMS params; -+}; -+ -+static CK_RV ep11tok_kyber_mech_pre_process(STDLL_TokData_t *tokdata, -+ CK_MECHANISM *mech, -+ struct EP11_KYBER_MECH *mech_ep11, -+ OBJECT **secret_key_obj) -+{ -+ CK_IBM_KYBER_PARAMS *kyber_params; -+ CK_RV rc; -+ -+ kyber_params = mech->pParameter; -+ if (mech->ulParameterLen != sizeof(CK_IBM_KYBER_PARAMS)) { -+ TRACE_ERROR("Mechanism parameter length not as expected\n"); -+ return CKR_MECHANISM_PARAM_INVALID; -+ } -+ -+ if (kyber_params->ulVersion != CK_IBM_KYBER_KEM_VERSION) { -+ TRACE_ERROR("Unsupported version in Kyber mechanism param\n"); -+ return CKR_MECHANISM_PARAM_INVALID; -+ } -+ -+ mech_ep11->mech.mechanism = mech->mechanism; -+ mech_ep11->mech.pParameter = &mech_ep11->params; -+ mech_ep11->mech.ulParameterLen = sizeof(mech_ep11->params); -+ -+ memset(&mech_ep11->params, 0, sizeof(mech_ep11->params)); -+ mech_ep11->params.version = XCP_KYBER_KEM_VERSION; -+ mech_ep11->params.mode = kyber_params->mode; -+ mech_ep11->params.kdf = kyber_params->kdf; -+ mech_ep11->params.prepend = kyber_params->bPrepend; -+ mech_ep11->params.pSharedData = kyber_params->pSharedData; -+ mech_ep11->params.ulSharedDataLen = kyber_params->ulSharedDataLen; -+ -+ switch (kyber_params->mode) { -+ case CK_IBM_KYBER_KEM_ENCAPSULATE: -+ if (kyber_params->ulCipherLen > 0 && kyber_params->pCipher == NULL) { -+ TRACE_ERROR("Unsupported cipher buffer in Kyber mechnism param " -+ "cannot be NULL\n"); -+ return CKR_MECHANISM_PARAM_INVALID; -+ } -+ -+ mech_ep11->params.pCipher = NULL; -+ mech_ep11->params.ulCipherLen = 0; -+ /* Cipher is returned in 2nd output param of m_DeriveKey */ -+ break; -+ -+ case CK_IBM_KEM_DECAPSULATE: -+ mech_ep11->params.pCipher = kyber_params->pCipher; -+ mech_ep11->params.ulCipherLen = kyber_params->ulCipherLen; -+ break; -+ -+ default: -+ TRACE_ERROR("Unsupported mode in Kyber mechanism param\n"); -+ return CKR_MECHANISM_PARAM_INVALID; -+ } -+ -+ if (kyber_params->bPrepend) { -+ rc = h_opaque_2_blob(tokdata, kyber_params->hSecret, -+ &mech_ep11->params.pBlob, -+ &mech_ep11->params.ulBlobLen, -+ secret_key_obj, READ_LOCK); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("%s failed hSecret=0x%lx\n", __func__, -+ kyber_params->hSecret); -+ return rc; -+ } -+ } -+ -+ return CKR_OK; -+} -+ -+static CK_RV ep11tok_kyber_mech_post_process(STDLL_TokData_t *tokdata, -+ CK_MECHANISM *mech, -+ CK_BYTE *csum, CK_ULONG cslen) -+{ -+ CK_IBM_KYBER_PARAMS *kyber_params; -+ CK_ULONG cipher_len; -+ -+ UNUSED(tokdata); -+ -+ kyber_params = mech->pParameter; -+ if (mech->ulParameterLen != sizeof(CK_IBM_KYBER_PARAMS)) { -+ TRACE_ERROR("Mechanism parameter length not as expected\n"); -+ return CKR_MECHANISM_PARAM_INVALID; -+ } -+ -+ if (kyber_params->mode != CK_IBM_KYBER_KEM_ENCAPSULATE) -+ return CKR_OK; -+ -+ /* -+ * For encapsulate: -+ * Generated cipher is returned in csum prepended with the checksum of -+ * the generated symmetric key and its bit count (in total 7 bytes). -+ */ -+ if (cslen < EP11_CSUMSIZE + 4) { -+ TRACE_ERROR("%s returned cipher size is invalid: %lu\n", -+ __func__, cslen); -+ return CKR_FUNCTION_FAILED; -+ } -+ -+ cipher_len = cslen - (EP11_CSUMSIZE + 4); -+ -+ if (kyber_params->ulCipherLen < cipher_len) { -+ TRACE_ERROR("%s Cipher buffer in kyber mechanism param too small, required: %lu\n", -+ __func__, cipher_len); -+ kyber_params->ulCipherLen = cipher_len; -+ OPENSSL_cleanse(&csum[EP11_CSUMSIZE + 4], cipher_len); -+ return CKR_BUFFER_TOO_SMALL; -+ } -+ -+ memcpy(kyber_params->pCipher, &csum[EP11_CSUMSIZE + 4], cipher_len); -+ kyber_params->ulCipherLen = cipher_len; -+ -+ OPENSSL_cleanse(&csum[EP11_CSUMSIZE + 4], cipher_len); -+ return CKR_OK; -+} -+ - CK_RV ep11tok_derive_key(STDLL_TokData_t * tokdata, SESSION * session, - CK_MECHANISM_PTR mech, CK_OBJECT_HANDLE hBaseKey, - CK_OBJECT_HANDLE_PTR handle, CK_ATTRIBUTE_PTR attrs, -@@ -5236,6 +5356,8 @@ CK_RV ep11tok_derive_key(STDLL_TokData_t * tokdata, SESSION * session, - CK_BYTE *spki = NULL; - CK_ULONG spki_length = 0; - CK_ATTRIBUTE *spki_attr = NULL; -+ struct EP11_KYBER_MECH mech_ep11; -+ OBJECT *kyber_secret_obj = NULL; - - memset(newblob, 0, sizeof(newblob)); - -@@ -5517,16 +5639,29 @@ CK_RV ep11tok_derive_key(STDLL_TokData_t * tokdata, SESSION * session, - } - } - -+ if (mech->mechanism == CKM_IBM_KYBER) { -+ rc = ep11tok_kyber_mech_pre_process(tokdata, mech, &mech_ep11, -+ &kyber_secret_obj); -+ if (rc != CKR_OK) -+ goto error; -+ mech = &mech_ep11.mech; -+ } -+ - trace_attributes(__func__, "Derive:", new_attrs2, new_attrs2_len); - - ep11_get_pin_blob(ep11_session, ep11_is_session_object(attrs, attrs_len), - &ep11_pin_blob, &ep11_pin_blob_len); - - RETRY_START(rc, tokdata) -- rc = -- dll_m_DeriveKey(mech, new_attrs2, new_attrs2_len, keyblob, keyblobsize, -- NULL, 0, ep11_pin_blob, ep11_pin_blob_len, newblob, -- &newblobsize, csum, &cslen, target_info->target); -+ if (ep11_pqc_obj_strength_supported(target_info, mech->mechanism, -+ base_key_obj)) -+ rc = dll_m_DeriveKey(mech, new_attrs2, new_attrs2_len, -+ keyblob, keyblobsize, NULL, 0, -+ ep11_pin_blob, ep11_pin_blob_len, newblob, -+ &newblobsize, csum, &cslen, -+ target_info->target); -+ else -+ rc = CKR_KEY_SIZE_RANGE; - RETRY_END(rc, tokdata, session) - - if (rc != CKR_OK) { -@@ -5610,6 +5745,12 @@ CK_RV ep11tok_derive_key(STDLL_TokData_t * tokdata, SESSION * session, - } - } - -+ if (mech->mechanism == CKM_IBM_KYBER) { -+ rc = ep11tok_kyber_mech_post_process(tokdata, mech_orig, csum, cslen); -+ if (rc != CKR_OK) -+ goto error; -+ } -+ - if (class == CKO_SECRET_KEY && cslen >= EP11_CSUMSIZE) { - /* First 3 bytes of csum is the check value */ - rc = build_attribute(CKA_CHECK_VALUE, csum, EP11_CSUMSIZE, &chk_attr); -@@ -5666,6 +5807,8 @@ error: - - object_put(tokdata, base_key_obj, TRUE); - base_key_obj = NULL; -+ object_put(tokdata, kyber_secret_obj, TRUE); -+ kyber_secret_obj = NULL; - - return rc; - } -@@ -7399,6 +7542,7 @@ CK_BOOL ep11tok_mech_single_only(CK_MECHANISM *mech) - { - switch (mech->mechanism) { - case CKM_IBM_ECDSA_OTHER: -+ case CKM_IBM_KYBER: - return CK_TRUE; - default: - return CK_FALSE; -@@ -8301,9 +8445,14 @@ CK_RV ep11tok_decrypt_single(STDLL_TokData_t *tokdata, SESSION *session, - } - - RETRY_START(rc, tokdata) -- rc = dll_m_DecryptSingle(keyblob, keyblobsize, mech, input_data, -- input_data_len, output_data, p_output_data_len, -- target_info->target); -+ if (ep11_pqc_obj_strength_supported(target_info, mech->mechanism, -+ key_obj)) -+ rc = dll_m_DecryptSingle(keyblob, keyblobsize, mech, input_data, -+ input_data_len, output_data, -+ p_output_data_len, -+ target_info->target); -+ else -+ rc = CKR_KEY_SIZE_RANGE; - RETRY_END(rc, tokdata, session) - if (rc != CKR_OK) { - rc = ep11_error_to_pkcs11_error(rc, session); -@@ -8511,9 +8660,14 @@ CK_RV ep11tok_encrypt_single(STDLL_TokData_t *tokdata, SESSION *session, - } - - RETRY_START(rc, tokdata) -- rc = dll_m_EncryptSingle(keyblob, keyblobsize, mech, input_data, -- input_data_len, output_data, p_output_data_len, -- target_info->target); -+ if (ep11_pqc_obj_strength_supported(target_info, mech->mechanism, -+ key_obj)) -+ rc = dll_m_EncryptSingle(keyblob, keyblobsize, mech, input_data, -+ input_data_len, output_data, -+ p_output_data_len, -+ target_info->target); -+ else -+ rc = CKR_KEY_SIZE_RANGE; - RETRY_END(rc, tokdata, session) - if (rc != CKR_OK) { - rc = ep11_error_to_pkcs11_error(rc, session); -diff --git a/usr/lib/ep11_stdll/new_host.c b/usr/lib/ep11_stdll/new_host.c -index dccdfe96..60027c85 100644 ---- a/usr/lib/ep11_stdll/new_host.c -+++ b/usr/lib/ep11_stdll/new_host.c -@@ -2061,7 +2061,8 @@ CK_RV SC_EncryptInit(STDLL_TokData_t *tokdata, ST_SESSION_HANDLE *sSession, - sess->encr_ctx.multi_init = FALSE; - sess->encr_ctx.multi = FALSE; - -- if (ep11tok_optimize_single_ops(tokdata) && -+ if ((ep11tok_optimize_single_ops(tokdata) || -+ ep11tok_mech_single_only(pMechanism)) && - !ep11tok_pkey_usage_ok(tokdata, sess, hKey, pMechanism)) { - /* In case of a single part encrypt operation we don't need the - * EncryptInit, instead we can use the EncryptSingle which is much -@@ -2159,7 +2160,8 @@ CK_RV SC_Encrypt(STDLL_TokData_t *tokdata, ST_SESSION_HANDLE *sSession, - goto done; - } - -- if (ep11tok_optimize_single_ops(tokdata) && -+ if ((ep11tok_optimize_single_ops(tokdata) || -+ ep11tok_mech_single_only(&sess->encr_ctx.mech)) && - !ep11tok_pkey_usage_ok(tokdata, sess, sess->encr_ctx.key, &sess->encr_ctx.mech)) { - rc = ep11tok_encrypt_single(tokdata, sess, &sess->encr_ctx.mech, - length_only, sess->encr_ctx.key, -@@ -2217,7 +2219,8 @@ CK_RV SC_EncryptUpdate(STDLL_TokData_t *tokdata, ST_SESSION_HANDLE *sSession, - goto done; - } - -- if (sess->encr_ctx.active == FALSE) { -+ if (sess->encr_ctx.active == FALSE || -+ ep11tok_mech_single_only(&sess->encr_ctx.mech)) { - TRACE_ERROR("%s\n", ock_err(ERR_OPERATION_NOT_INITIALIZED)); - rc = CKR_OPERATION_NOT_INITIALIZED; - goto done; -@@ -2293,7 +2296,8 @@ CK_RV SC_EncryptFinal(STDLL_TokData_t * tokdata, ST_SESSION_HANDLE * sSession, - goto done; - } - -- if (sess->encr_ctx.active == FALSE) { -+ if (sess->encr_ctx.active == FALSE || -+ ep11tok_mech_single_only(&sess->encr_ctx.mech)) { - TRACE_ERROR("%s\n", ock_err(ERR_OPERATION_NOT_INITIALIZED)); - rc = CKR_OPERATION_NOT_INITIALIZED; - goto done; -@@ -2385,7 +2389,8 @@ CK_RV SC_DecryptInit(STDLL_TokData_t *tokdata, ST_SESSION_HANDLE *sSession, - sess->decr_ctx.multi_init = FALSE; - sess->decr_ctx.multi = FALSE; - -- if (ep11tok_optimize_single_ops(tokdata) && -+ if ((ep11tok_optimize_single_ops(tokdata) || -+ ep11tok_mech_single_only(pMechanism)) && - !ep11tok_pkey_usage_ok(tokdata, sess, hKey, pMechanism)) { - /* In case of a single part decrypt operation we don't need the - * DecryptInit, instead we can use the EncryptSingle which is much -@@ -2483,7 +2488,8 @@ CK_RV SC_Decrypt(STDLL_TokData_t *tokdata, ST_SESSION_HANDLE *sSession, - goto done; - } - -- if (ep11tok_optimize_single_ops(tokdata) && -+ if ((ep11tok_optimize_single_ops(tokdata) || -+ ep11tok_mech_single_only(&sess->decr_ctx.mech)) && - !ep11tok_pkey_usage_ok(tokdata, sess, sess->decr_ctx.key, &sess->decr_ctx.mech)) { - rc = ep11tok_decrypt_single(tokdata, sess, &sess->decr_ctx.mech, - length_only, sess->decr_ctx.key, -@@ -2541,7 +2547,8 @@ CK_RV SC_DecryptUpdate(STDLL_TokData_t *tokdata, ST_SESSION_HANDLE *sSession, - goto done; - } - -- if (sess->decr_ctx.active == FALSE) { -+ if (sess->decr_ctx.active == FALSE || -+ ep11tok_mech_single_only(&sess->decr_ctx.mech)) { - TRACE_ERROR("%s\n", ock_err(ERR_OPERATION_NOT_INITIALIZED)); - rc = CKR_OPERATION_NOT_INITIALIZED; - goto done; -@@ -2617,7 +2624,8 @@ CK_RV SC_DecryptFinal(STDLL_TokData_t *tokdata, ST_SESSION_HANDLE *sSession, - goto done; - } - -- if (sess->decr_ctx.active == FALSE) { -+ if (sess->decr_ctx.active == FALSE || -+ ep11tok_mech_single_only(&sess->decr_ctx.mech)) { - TRACE_ERROR("%s\n", ock_err(ERR_OPERATION_NOT_INITIALIZED)); - rc = CKR_OPERATION_NOT_INITIALIZED; - goto done; --- -2.16.2.windows.1 - diff --git a/0028-POLICY-STATISTICS-Check-for-Kyber-KEM-KDFs-and-count.patch b/0028-POLICY-STATISTICS-Check-for-Kyber-KEM-KDFs-and-count.patch deleted file mode 100644 index e7041d2..0000000 --- a/0028-POLICY-STATISTICS-Check-for-Kyber-KEM-KDFs-and-count.patch +++ /dev/null @@ -1,259 +0,0 @@ -From 181b11362e95ff8ac4e812073c8f7267a02f1bf1 Mon Sep 17 00:00:00 2001 -From: Ingo Franzki -Date: Wed, 2 Mar 2022 16:44:27 +0100 -Subject: [PATCH 28/34] POLICY/STATISTICS: Check for Kyber KEM KDFs and count - KDF digest usage - -Signed-off-by: Ingo Franzki ---- - man/man5/policy.conf.5.in | 2 +- - tools/policyexamplegen.c | 8 ++++++- - usr/lib/api/policy.c | 45 ++++++++++++++++++++++++++++++++++++---- - usr/lib/api/statistics.c | 20 +++++++++++++++++- - usr/lib/common/kdf_translation.c | 30 +++++++++++++++++++++++++++ - usr/lib/common/utility_common.c | 5 +++++ - 6 files changed, 103 insertions(+), 7 deletions(-) - -diff --git a/man/man5/policy.conf.5.in b/man/man5/policy.conf.5.in -index 0b8bed27..c04b2adf 100644 ---- a/man/man5/policy.conf.5.in -+++ b/man/man5/policy.conf.5.in -@@ -133,7 +133,7 @@ empty list allows no MGF. - .BR allowedkdfs - - This key specifies the allowed Key Derivation Functions (KDFs) for use --in ECDH key derivation. The value is a list of -+in ECDH key derivation and Kyber KEM. The value is a list of - .BR CKD_ - constants supported by openCryptoki. This list has the same format as - the -diff --git a/tools/policyexamplegen.c b/tools/policyexamplegen.c -index 1649fc05..362acdf9 100644 ---- a/tools/policyexamplegen.c -+++ b/tools/policyexamplegen.c -@@ -99,7 +99,13 @@ int main(void) - puts(" CKD_SHA224_KDF,"); - puts(" CKD_SHA256_KDF,"); - puts(" CKD_SHA384_KDF,"); -- puts(" CKD_SHA512_KDF"); -+ puts(" CKD_SHA512_KDF,"); -+ puts(" CKD_IBM_HYBRID_NULL,"); -+ puts(" CKD_IBM_HYBRID_SHA1_KDF,"); -+ puts(" CKD_IBM_HYBRID_SHA224_KDF,"); -+ puts(" CKD_IBM_HYBRID_SHA256_KDF,"); -+ puts(" CKD_IBM_HYBRID_SHA384_KDF,"); -+ puts(" CKD_IBM_HYBRID_SHA512_KDF"); - puts(" # No comma after last element!"); - puts(")"); - puts(""); -diff --git a/usr/lib/api/policy.c b/usr/lib/api/policy.c -index b513a8a9..8189dab0 100644 ---- a/usr/lib/api/policy.c -+++ b/usr/lib/api/policy.c -@@ -70,6 +70,7 @@ struct policy_private { - CK_ULONG allowedmgfs; - CK_ULONG allowedvendormgfs; - CK_ULONG allowedkdfs; -+ CK_ULONG allowedvendorkdfs; - CK_ULONG allowedprfs; - CK_ULONG maxcurvesize; - /* Strength struct ordered from highest to lowest. */ -@@ -105,6 +106,7 @@ void policy_private_deactivate(struct policy_private *pp) - pp->allowedmgfs = ~0lu; - pp->allowedvendormgfs = ~0lu; - pp->allowedkdfs = ~0lu; -+ pp->allowedvendorkdfs = ~0lu; - pp->allowedprfs = ~0lu; - pp->maxcurvesize = 521u; - } -@@ -496,8 +498,14 @@ static inline CK_RV policy_is_mgf_allowed(struct policy_private *pp, - static inline CK_RV policy_is_kdf_allowed(struct policy_private *pp, - CK_ULONG kdf) - { -- if (pp->allowedkdfs & (1u << kdf)) -- return CKR_OK; -+ if (kdf > CKD_VENDOR_DEFINED) { -+ if ((kdf - CKD_VENDOR_DEFINED - 1) <= 31 && -+ (pp->allowedvendorkdfs & (1u << (kdf - CKD_VENDOR_DEFINED - 1)))) -+ return CKR_OK; -+ } else { -+ if (kdf <= 31 && (pp->allowedkdfs & (1u << kdf))) -+ return CKR_OK; -+ } - TRACE_WARNING("POLICY VIOLATION: kdf not allowed: 0x%lx\n", kdf); - return CKR_FUNCTION_FAILED; - } -@@ -920,6 +928,16 @@ static CK_RV policy_is_mech_allowed(policy_t p, CK_MECHANISM_PTR mech, - break; - } - break; -+ case CKM_IBM_KYBER: -+ /* Only KEM uses a parameter, KeyGen, Encrypt/Decrypt don't */ -+ if (mech->ulParameterLen != sizeof(CK_IBM_KYBER_PARAMS)) -+ break; -+ if (policy_is_kdf_allowed(pp, -+ ((CK_IBM_KYBER_PARAMS *)mech->pParameter)->kdf) != CKR_OK) { -+ rv = CKR_FUNCTION_FAILED; -+ break; -+ } -+ break; - default: - break; - } -@@ -1533,7 +1551,7 @@ static CK_RV policy_parse_kdfs(struct policy_private *pp, - struct ConfigBaseNode *list) - { - struct ConfigBaseNode *i; -- CK_ULONG kdfs = 0, kdf; -+ CK_ULONG kdfs = 0, vkdfs = 0, kdf; - CK_RV rc = CKR_OK; - int f; - -@@ -1545,10 +1563,28 @@ static CK_RV policy_parse_kdfs(struct policy_private *pp, - i->key, i->line); - break; - } -- kdfs |= (1u << kdf); -+ -+ if (kdf >= CKD_VENDOR_DEFINED) { -+ if ((kdf - CKD_VENDOR_DEFINED - 1) > 31) { -+ TRACE_ERROR("POLICY: KDF invalid: \"%s\" (line %hd)\n", -+ i->key, i->line); -+ rc = CKR_FUNCTION_FAILED; -+ break; -+ } -+ vkdfs |= (1u << (kdf - CKD_VENDOR_DEFINED - 1)); -+ } else { -+ if (kdf > 31) { -+ TRACE_ERROR("POLICY: KDF invalid: \"%s\" (line %hd)\n", -+ i->key, i->line); -+ rc = CKR_FUNCTION_FAILED; -+ break; -+ } -+ kdfs |= (1u << kdf); -+ } - } - } - pp->allowedkdfs = kdfs; -+ pp->allowedvendorkdfs = vkdfs; - return rc; - } - -@@ -1742,6 +1778,7 @@ CK_RV policy_load_policy_cfg(struct policy_private *pp, - if (!allowedkdfs) { - TRACE_DEVEL("POLICY: No KDF restrictions\n"); - pp->allowedkdfs = ~0u; -+ pp->allowedvendorkdfs = ~0u; - } else if (!confignode_hastype(allowedkdfs, CT_BARELIST)) { - TRACE_ERROR("POLICY: allowedkdfs has wrong type!\n"); - OCK_SYSLOG(LOG_ERR, "POLICY: allowedkdfs has wrong type!\n"); -diff --git a/usr/lib/api/statistics.c b/usr/lib/api/statistics.c -index 0830bbeb..e34dfcee 100644 ---- a/usr/lib/api/statistics.c -+++ b/usr/lib/api/statistics.c -@@ -110,7 +110,8 @@ static CK_RV statistics_increment(struct statistics *statistics, - if (mech->pParameter == NULL || - mech->ulParameterLen != sizeof(CK_ECDH1_DERIVE_PARAMS)) - return CKR_MECHANISM_PARAM_INVALID; -- if (((CK_ECDH1_DERIVE_PARAMS *)mech->pParameter)->kdf == CKD_NULL) -+ if (((CK_ECDH1_DERIVE_PARAMS *)mech->pParameter)->kdf == CKD_NULL || -+ ((CK_ECDH1_DERIVE_PARAMS *)mech->pParameter)->kdf == CKD_IBM_HYBRID_NULL) - break; - rc = digest_from_kdf(((CK_ECDH1_DERIVE_PARAMS *)mech->pParameter)->kdf, - &implicit_mech.mechanism); -@@ -156,6 +157,23 @@ static CK_RV statistics_increment(struct statistics *statistics, - break; - } - break; -+ case CKM_IBM_KYBER: -+ /* Only KEM uses a parameter, KeyGen, Encrypt/Decrypt don't */ -+ if (mech->ulParameterLen != sizeof(CK_IBM_KYBER_PARAMS)) -+ break; -+ if (((CK_IBM_KYBER_PARAMS *)mech->pParameter)->kdf == CKD_NULL || -+ ((CK_IBM_KYBER_PARAMS *)mech->pParameter)->kdf == CKD_IBM_HYBRID_NULL) -+ break; -+ rc = digest_from_kdf(((CK_IBM_KYBER_PARAMS *)mech->pParameter)->kdf, -+ &implicit_mech.mechanism); -+ if (rc != CKR_OK) -+ return rc; -+ rc = statistics_increment(statistics, slot, &implicit_mech, -+ POLICY_STRENGTH_IDX_0); -+ if (rc != CKR_OK) -+ return rc; -+ break; -+ - default: - break; - } -diff --git a/usr/lib/common/kdf_translation.c b/usr/lib/common/kdf_translation.c -index 707cb912..f563234f 100644 ---- a/usr/lib/common/kdf_translation.c -+++ b/usr/lib/common/kdf_translation.c -@@ -55,6 +55,36 @@ CK_RV translate_string_to_kdf(const char *str, size_t len, CK_ULONG* kdf) - return CKR_OK; - } - return CKR_FUNCTION_FAILED; -+ case 19: -+ if (strcmp("CKD_IBM_HYBRID_NULL", str) == 0) { -+ *kdf = CKD_IBM_HYBRID_NULL; -+ return CKR_OK; -+ } -+ return CKR_FUNCTION_FAILED; -+ case 23: -+ if (strcmp("CKD_IBM_HYBRID_SHA1_KDF", str) == 0) { -+ *kdf = CKD_IBM_HYBRID_SHA1_KDF; -+ return CKR_OK; -+ } -+ return CKR_FUNCTION_FAILED; -+ case 25: -+ if (strcmp("CKD_IBM_HYBRID_SHA224_KDF", str) == 0) { -+ *kdf = CKD_IBM_HYBRID_SHA224_KDF; -+ return CKR_OK; -+ } -+ if (strcmp("CKD_IBM_HYBRID_SHA256_KDF", str) == 0) { -+ *kdf = CKD_IBM_HYBRID_SHA256_KDF; -+ return CKR_OK; -+ } -+ if (strcmp("CKD_IBM_HYBRID_SHA384_KDF", str) == 0) { -+ *kdf = CKD_IBM_HYBRID_SHA384_KDF; -+ return CKR_OK; -+ } -+ if (strcmp("CKD_IBM_HYBRID_SHA512_KDF", str) == 0) { -+ *kdf = CKD_IBM_HYBRID_SHA512_KDF; -+ return CKR_OK; -+ } -+ return CKR_FUNCTION_FAILED; - default: - return CKR_FUNCTION_FAILED; - } -diff --git a/usr/lib/common/utility_common.c b/usr/lib/common/utility_common.c -index 8d03c699..49ab609f 100644 ---- a/usr/lib/common/utility_common.c -+++ b/usr/lib/common/utility_common.c -@@ -169,18 +169,23 @@ CK_RV digest_from_kdf(CK_EC_KDF_TYPE kdf, CK_MECHANISM_TYPE *mech) - { - switch (kdf) { - case CKD_SHA1_KDF: -+ case CKD_IBM_HYBRID_SHA1_KDF: - *mech = CKM_SHA_1; - break; - case CKD_SHA224_KDF: -+ case CKD_IBM_HYBRID_SHA224_KDF: - *mech = CKM_SHA224; - break; - case CKD_SHA256_KDF: -+ case CKD_IBM_HYBRID_SHA256_KDF: - *mech = CKM_SHA256; - break; - case CKD_SHA384_KDF: -+ case CKD_IBM_HYBRID_SHA384_KDF: - *mech = CKM_SHA384; - break; - case CKD_SHA512_KDF: -+ case CKD_IBM_HYBRID_SHA512_KDF: - *mech = CKM_SHA512; - break; - default: --- -2.16.2.windows.1 - diff --git a/0029-TESTCASES-Add-tests-for-CKM_IBM_KYBER.patch b/0029-TESTCASES-Add-tests-for-CKM_IBM_KYBER.patch deleted file mode 100644 index 76431da..0000000 --- a/0029-TESTCASES-Add-tests-for-CKM_IBM_KYBER.patch +++ /dev/null @@ -1,2783 +0,0 @@ -From c2ca6d47162e51834d82e61d1469020793aeec94 Mon Sep 17 00:00:00 2001 -From: Ingo Franzki -Date: Tue, 1 Mar 2022 13:10:51 +0100 -Subject: [PATCH 29/34] TESTCASES: Add tests for CKM_IBM_KYBER - -Signed-off-by: Ingo Franzki ---- - .gitignore | 1 + - testcases/common/common.c | 119 ++++ - testcases/crypto/crypto.mk | 10 +- - testcases/crypto/kyber.h | 1406 +++++++++++++++++++++++++++++++++++++++++ - testcases/crypto/kyber_func.c | 1176 ++++++++++++++++++++++++++++++++++ - 5 files changed, 2710 insertions(+), 2 deletions(-) - create mode 100644 testcases/crypto/kyber.h - create mode 100644 testcases/crypto/kyber_func.c - -diff --git a/.gitignore b/.gitignore -index 33cbb197..88438941 100644 ---- a/.gitignore -+++ b/.gitignore -@@ -20,6 +20,7 @@ testcases/crypto/ec_tests - testcases/crypto/rsa_tests - testcases/crypto/rsaupdate_tests - testcases/crypto/ssl3_tests -+testcases/crypto/kyber_tests - testcases/init_token.sh - testcases/login/digest_init - testcases/login/init_pin -diff --git a/testcases/common/common.c b/testcases/common/common.c -index 9d02a01a..171fe7e1 100644 ---- a/testcases/common/common.c -+++ b/testcases/common/common.c -@@ -740,6 +740,125 @@ CK_RV create_DilithiumPublicKey(CK_SESSION_HANDLE session, - return rc; - } - -+/** Create an IBM Kyber private key using private values **/ -+CK_RV create_KyberPrivateKey(CK_SESSION_HANDLE session, -+ CK_BYTE pkcs8[], CK_ULONG pkcs8_len, -+ CK_ULONG keyform, -+ CK_BYTE sk[], CK_ULONG sk_len, -+ CK_BYTE pk[], CK_ULONG pk_len, -+ CK_OBJECT_HANDLE * priv_key) -+{ -+ CK_OBJECT_CLASS class = CKO_PRIVATE_KEY; -+ CK_KEY_TYPE keyType = CKK_IBM_PQC_KYBER; -+ CK_UTF8CHAR label[] = "A Kyber private key object"; -+ CK_BYTE subject[] = {0}; -+ CK_BYTE id[] = { 123 }; -+ CK_RV rc; -+ -+ CK_BBOOL true = TRUE; -+ CK_ATTRIBUTE template[] = { -+ {CKA_CLASS, &class, sizeof(class)}, -+ {CKA_KEY_TYPE, &keyType, sizeof(keyType)}, -+ {CKA_TOKEN, &true, sizeof(true)}, -+ {CKA_PRIVATE, &true, sizeof(true)}, -+ {CKA_LABEL, label, sizeof(label)}, -+ {CKA_SUBJECT, subject, 0}, -+ {CKA_ID, id, sizeof(id)}, -+ {CKA_SENSITIVE, &true, sizeof(true)}, -+ {CKA_SIGN, &true, sizeof(true)}, -+ {CKA_DERIVE, &true, sizeof(true)}, -+ {CKA_IBM_KYBER_SK, sk, sk_len}, -+ {CKA_IBM_KYBER_PK, pk, pk_len}, -+ {CKA_IBM_KYBER_KEYFORM, &keyform, sizeof(keyform)}, -+ }; -+ CK_ATTRIBUTE template_pkcs8[] = { -+ {CKA_CLASS, &class, sizeof(class)}, -+ {CKA_KEY_TYPE, &keyType, sizeof(keyType)}, -+ {CKA_TOKEN, &true, sizeof(true)}, -+ {CKA_PRIVATE, &true, sizeof(true)}, -+ {CKA_LABEL, label, sizeof(label)}, -+ {CKA_SUBJECT, subject, 0}, -+ {CKA_ID, id, sizeof(id)}, -+ {CKA_SENSITIVE, &true, sizeof(true)}, -+ {CKA_SIGN, &true, sizeof(true)}, -+ {CKA_DERIVE, &true, sizeof(true)}, -+ {CKA_VALUE, pkcs8, pkcs8_len}, -+ }; -+ -+ // create key -+ if (pkcs8_len > 0) -+ rc = funcs->C_CreateObject(session, template_pkcs8, -+ sizeof(template_pkcs8) / sizeof(CK_ATTRIBUTE), -+ priv_key); -+ else -+ rc = funcs->C_CreateObject(session, template, -+ sizeof(template) / sizeof(CK_ATTRIBUTE), -+ priv_key); -+ if (rc != CKR_OK) { -+ if (rc == CKR_KEY_SIZE_RANGE) -+ testcase_notice("C_CreateObject rc=%s", p11_get_ckr(rc)); -+ else if (is_rejected_by_policy(rc, session)) -+ rc = CKR_POLICY_VIOLATION; -+ else -+ testcase_error("C_CreateObject rc=%s", p11_get_ckr(rc)); -+ } -+ -+ return rc; -+} -+ -+/** Create an IBM Kyber public key using public values **/ -+CK_RV create_KyberPublicKey(CK_SESSION_HANDLE session, -+ CK_BYTE spki[], CK_ULONG spki_len, -+ CK_ULONG keyform, -+ CK_BYTE pk[], CK_ULONG pk_len, -+ CK_OBJECT_HANDLE * publ_key) -+{ -+ CK_RV rc; -+ CK_OBJECT_CLASS class = CKO_PUBLIC_KEY; -+ CK_KEY_TYPE keyType = CKK_IBM_PQC_KYBER; -+ CK_UTF8CHAR label[] = "A Kyber public key object"; -+ CK_BBOOL true = TRUE; -+ CK_ATTRIBUTE template[] = { -+ {CKA_CLASS, &class, sizeof(class)}, -+ {CKA_KEY_TYPE, &keyType, sizeof(keyType)}, -+ {CKA_TOKEN, &true, sizeof(true)}, -+ {CKA_LABEL, label, sizeof(label)}, -+ {CKA_VERIFY, &true, sizeof(true)}, -+ {CKA_DERIVE, &true, sizeof(true)}, -+ {CKA_IBM_KYBER_PK, pk, pk_len}, -+ {CKA_IBM_KYBER_KEYFORM, &keyform, sizeof(keyform)}, -+ }; -+ CK_ATTRIBUTE template_spki[] = { -+ {CKA_CLASS, &class, sizeof(class)}, -+ {CKA_KEY_TYPE, &keyType, sizeof(keyType)}, -+ {CKA_TOKEN, &true, sizeof(true)}, -+ {CKA_LABEL, label, sizeof(label)}, -+ {CKA_VERIFY, &true, sizeof(true)}, -+ {CKA_DERIVE, &true, sizeof(true)}, -+ {CKA_VALUE, spki, spki_len}, -+ }; -+ -+ // create key -+ if (spki_len > 0) -+ rc = funcs->C_CreateObject(session, template_spki, -+ sizeof(template_spki) / sizeof(CK_ATTRIBUTE), -+ publ_key); -+ else -+ rc = funcs->C_CreateObject(session, template, -+ sizeof(template) / sizeof(CK_ATTRIBUTE), -+ publ_key); -+ if (rc != CKR_OK) { -+ if (rc == CKR_KEY_SIZE_RANGE) -+ testcase_notice("C_CreateObject rc=%s", p11_get_ckr(rc)); -+ else if (is_rejected_by_policy(rc, session)) -+ rc = CKR_POLICY_VIOLATION; -+ else -+ testcase_error("C_CreateObject rc=%s", p11_get_ckr(rc)); -+ } -+ -+ return rc; -+} -+ - /** Create an DSA public key using the prime 'p', subprime 'q', base 'g' and private value 'y' **/ - CK_RV create_DSAPrivateKey(CK_SESSION_HANDLE session, - CK_BYTE prime[], -diff --git a/testcases/crypto/crypto.mk b/testcases/crypto/crypto.mk -index fc9f2bcb..2516ea6e 100644 ---- a/testcases/crypto/crypto.mk -+++ b/testcases/crypto/crypto.mk -@@ -4,11 +4,13 @@ noinst_PROGRAMS += testcases/crypto/aes_tests \ - testcases/crypto/rsa_tests testcases/crypto/dh_tests \ - testcases/crypto/ssl3_tests testcases/crypto/ec_tests \ - testcases/crypto/rsaupdate_tests \ -- testcases/crypto/dilithium_tests testcases/crypto/ab_tests -+ testcases/crypto/dilithium_tests testcases/crypto/ab_tests \ -+ testcases/crypto/kyber_tests - noinst_HEADERS += \ - testcases/crypto/aes.h testcases/crypto/des.h \ - testcases/crypto/des3.h testcases/crypto/digest.h \ -- testcases/crypto/ec.h testcases/crypto/rsa.h -+ testcases/crypto/ec.h testcases/crypto/rsa.h \ -+ testcases/crypto/dilithium.h testcases/crypto/kyber.h - - testcases_crypto_aes_tests_CFLAGS = ${testcases_inc} - testcases_crypto_aes_tests_LDADD = testcases/common/libcommon.la -@@ -58,3 +60,7 @@ testcases_crypto_rsaupdate_tests_SOURCES = testcases/crypto/rsaupdate_func.c - testcases_crypto_ab_tests_CFLAGS = ${testcases_inc} - testcases_crypto_ab_tests_LDADD = testcases/common/libcommon.la - testcases_crypto_ab_tests_SOURCES = testcases/crypto/abfunc.c -+ -+testcases_crypto_kyber_tests_CFLAGS = ${testcases_inc} -+testcases_crypto_kyber_tests_LDADD = testcases/common/libcommon.la -+testcases_crypto_kyber_tests_SOURCES = testcases/crypto/kyber_func.c -diff --git a/testcases/crypto/kyber.h b/testcases/crypto/kyber.h -new file mode 100644 -index 00000000..dd7d892b ---- /dev/null -+++ b/testcases/crypto/kyber.h -@@ -0,0 +1,1406 @@ -+/* -+ * COPYRIGHT (c) International Business Machines Corp. 2022 -+ * -+ * This program is provided under the terms of the Common Public License, -+ * version 1.0 (CPL-1.0). Any use, reproduction or distribution for this -+ * software constitutes recipient's acceptance of CPL-1.0 terms which can be -+ * found in the file LICENSE file or at -+ * https://opensource.org/licenses/cpl1.0.php -+ */ -+ -+/** -+ * Experimental Support for Kyber keys and KEM -+ * with oid = 1.3.6.1.4.1.2.267.5.xxx -+ * -+ * Public-key encoding; raw public-key field. See RFC 3279 for -+ * subjectPublicKeyInfo (SPKI) structures. -+ * -+ * KyberPublicKey ::= BIT STRING { -+ * SEQUENCE { -+ * pk BIT STRING -- public key -+ * } -+ * } -+ * -+ * Private-key encoding; see RFC 5959 for PKCS#8 structure definitions. -+ * -+ * KyberPrivateKey ::= SEQUENCE { -+ * version INTEGER, -- v0; reserved 0 -+ * sk BIT STRING, -- privet key -+ * pk [0] IMPLICIT OPTIONAL { -+ * pk BIT STRING -- public key -+ * } -+ * } -+ */ -+ -+struct KYBER_TEST_VECTOR { -+ char *name; -+ int version; -+ CK_ULONG keyform; -+ CK_ULONG sk_len; -+ CK_BYTE sk[4096]; -+ CK_ULONG pk_len; -+ CK_BYTE pk[4096]; -+ CK_BYTE pkcs8[8192]; -+ CK_ULONG pkcs8_len; -+ CK_BYTE spki[8192]; -+ CK_ULONG spki_len; -+ CK_BYTE secret[32]; -+ CK_ULONG secret_len; -+ CK_BYTE cipher[2048]; -+ CK_ULONG cipher_len; -+}; -+ -+/** -+ * test vectors from: https://csrc.nist.gov/Projects/post-quantum-cryptography/round-2-submissions -+ */ -+struct KYBER_TEST_VECTOR kyber_tv[] = { -+ { -+ .name = "Kyber Round 2, 786 KAT 0 (PKCS#8/SPKI)", -+ .version = 0, -+ .keyform = 0, -+ .pk_len = 0, -+ .sk_len = 0, -+ .pkcs8_len = 3697, -+ .pkcs8 = { -+ 0x30, 0x82, 0x0e, 0x6d, 0x02, 0x01, 0x00, 0x30, 0x0f, 0x06, 0x0b, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x02, 0x82, 0x0b, 0x05, 0x03, 0x03, 0x05, 0x00, 0x04, 0x82, 0x0e, 0x55, 0x30, 0x82, 0x0e, 0x51, -+ 0x02, 0x01, 0x00, 0x03, 0x82, 0x09, 0x61, 0x00, 0x07, 0x63, 0x8f, 0xb6, 0x98, 0x68, 0xf3, 0xd3, 0x20, 0xe5, 0x86, 0x2b, 0xd9, 0x69, 0x33, 0xfe, 0xb3, 0x11, 0xb3, 0x62, 0x09, 0x3c, 0x9b, 0x5d, -+ 0x50, 0x17, 0x0b, 0xce, 0xd4, 0x3f, 0x1b, 0x53, 0x6d, 0x9a, 0x20, 0x4b, 0xb1, 0xf2, 0x26, 0x95, 0x95, 0x0b, 0xa1, 0xf2, 0xa9, 0xe8, 0xeb, 0x82, 0x8b, 0x28, 0x44, 0x88, 0x76, 0x0b, 0x3f, 0xc8, -+ 0x4f, 0xab, 0xa0, 0x42, 0x75, 0xd5, 0x62, 0x8e, 0x39, 0xc5, 0xb2, 0x47, 0x13, 0x74, 0x28, 0x3c, 0x50, 0x32, 0x99, 0xc0, 0xab, 0x49, 0xb6, 0x6b, 0x8b, 0xbb, 0x56, 0xa4, 0x18, 0x66, 0x24, 0xf9, -+ 0x19, 0xa2, 0xba, 0x59, 0xbb, 0x08, 0xd8, 0x55, 0x18, 0x80, 0xc2, 0xbe, 0xfc, 0x4f, 0x87, 0xf2, 0x5f, 0x59, 0xab, 0x58, 0x7a, 0x79, 0xc3, 0x27, 0xd7, 0x92, 0xd5, 0x4c, 0x97, 0x4a, 0x69, 0x26, -+ 0x2f, 0xf8, 0xa7, 0x89, 0x38, 0x28, 0x9e, 0x9a, 0x87, 0xb6, 0x88, 0xb0, 0x83, 0xe0, 0x59, 0x5f, 0xe2, 0x18, 0xb6, 0xbb, 0x15, 0x05, 0x94, 0x1c, 0xe2, 0xe8, 0x1a, 0x5a, 0x64, 0xc5, 0xaa, 0xc6, -+ 0x04, 0x17, 0x25, 0x69, 0x85, 0x34, 0x9e, 0xe4, 0x7a, 0x52, 0x42, 0x0a, 0x5f, 0x97, 0x47, 0x7b, 0x72, 0x36, 0xac, 0x76, 0xbc, 0x70, 0xe8, 0x28, 0x87, 0x29, 0x28, 0x7e, 0xe3, 0xe3, 0x4a, 0x3d, -+ 0xbc, 0x36, 0x83, 0xc0, 0xb7, 0xb1, 0x00, 0x29, 0xfc, 0x20, 0x34, 0x18, 0x53, 0x7e, 0x74, 0x66, 0xba, 0x63, 0x85, 0xa8, 0xff, 0x30, 0x1e, 0xe1, 0x27, 0x08, 0xf8, 0x2a, 0xaa, 0x1e, 0x38, 0x0f, -+ 0xc7, 0xa8, 0x8f, 0x8f, 0x20, 0x5a, 0xb7, 0xe8, 0x8d, 0x7e, 0x95, 0x95, 0x2a, 0x55, 0xba, 0x20, 0xd0, 0x9b, 0x79, 0xa4, 0x71, 0x41, 0xd6, 0x2b, 0xf6, 0xeb, 0x7d, 0xd3, 0x07, 0xb0, 0x8e, 0xca, -+ 0x13, 0xa5, 0xbc, 0x5f, 0x6b, 0x68, 0x58, 0x1c, 0x68, 0x65, 0xb2, 0x7b, 0xbc, 0xdd, 0xab, 0x14, 0x2f, 0x4b, 0x2c, 0xbf, 0xf4, 0x88, 0xc8, 0xa2, 0x27, 0x05, 0xfa, 0xa9, 0x8a, 0x2b, 0x9e, 0xea, -+ 0x35, 0x30, 0xc7, 0x66, 0x62, 0x33, 0x5c, 0xc7, 0xea, 0x3a, 0x00, 0x77, 0x77, 0x25, 0xeb, 0xcc, 0xcd, 0x2a, 0x46, 0x36, 0xb2, 0xd9, 0x12, 0x2f, 0xf3, 0xab, 0x77, 0x12, 0x3c, 0xe0, 0x88, 0x3c, -+ 0x19, 0x11, 0x11, 0x5e, 0x50, 0xc9, 0xe8, 0xa9, 0x41, 0x94, 0xe4, 0x8d, 0xd0, 0xd0, 0x9c, 0xff, 0xb3, 0xad, 0xcd, 0x2c, 0x1e, 0x92, 0x43, 0x09, 0x03, 0xd0, 0x7a, 0xdb, 0xf0, 0x05, 0x32, 0x03, -+ 0x15, 0x75, 0xaa, 0x7f, 0x9e, 0x7b, 0x5a, 0x1f, 0x33, 0x62, 0xde, 0xc9, 0x36, 0xd4, 0x04, 0x3c, 0x05, 0xf2, 0x47, 0x6c, 0x07, 0x57, 0x8b, 0xc9, 0xcb, 0xaf, 0x2a, 0xb4, 0xe3, 0x82, 0x72, 0x7a, -+ 0xd4, 0x16, 0x86, 0xa9, 0x6b, 0x25, 0x48, 0x82, 0x0b, 0xb0, 0x3b, 0x32, 0xf1, 0x1b, 0x28, 0x11, 0xad, 0x62, 0xf4, 0x89, 0xe9, 0x51, 0x63, 0x2a, 0xba, 0x0d, 0x1d, 0xf8, 0x96, 0x80, 0xcc, 0x8a, -+ 0x8b, 0x53, 0xb4, 0x81, 0xd9, 0x2a, 0x68, 0xd7, 0x0b, 0x4e, 0xa1, 0xc3, 0xa6, 0xa5, 0x61, 0xc0, 0x69, 0x28, 0x82, 0xb5, 0xca, 0x8c, 0xc9, 0x42, 0xa8, 0xd4, 0x95, 0xaf, 0xcb, 0x06, 0xde, 0x89, -+ 0x49, 0x8f, 0xb9, 0x35, 0xb7, 0x75, 0x90, 0x8f, 0xe7, 0xa0, 0x3e, 0x32, 0x4d, 0x54, 0xcc, 0x19, 0xd4, 0xe1, 0xaa, 0xbd, 0x35, 0x93, 0xb3, 0x8b, 0x19, 0xee, 0x13, 0x88, 0xfe, 0x49, 0x2b, 0x43, -+ 0x12, 0x7e, 0x5a, 0x50, 0x42, 0x53, 0x78, 0x6a, 0x0d, 0x69, 0xad, 0x32, 0x60, 0x1c, 0x28, 0xe2, 0xc8, 0x85, 0x04, 0xa5, 0xba, 0x59, 0x97, 0x06, 0x02, 0x3a, 0x61, 0x36, 0x3e, 0x17, 0xc6, 0xb9, -+ 0xbb, 0x59, 0xbd, 0xc6, 0x97, 0x45, 0x2c, 0xd0, 0x59, 0x45, 0x19, 0x83, 0xd7, 0x38, 0xca, 0x3f, 0xd0, 0x34, 0xe3, 0xf5, 0x98, 0x88, 0x54, 0xca, 0x05, 0x03, 0x1d, 0xb0, 0x96, 0x11, 0x49, 0x89, -+ 0x88, 0x19, 0x7c, 0x6b, 0x30, 0xd2, 0x58, 0xdf, 0xe2, 0x62, 0x65, 0x54, 0x1c, 0x89, 0xa4, 0xb3, 0x1d, 0x68, 0x64, 0xe9, 0x38, 0x9b, 0x03, 0xcb, 0x74, 0xf7, 0xec, 0x43, 0x23, 0xfb, 0x94, 0x21, -+ 0xa4, 0xb9, 0x79, 0x0a, 0x26, 0xd1, 0x7b, 0x03, 0x98, 0xa2, 0x67, 0x67, 0x35, 0x09, 0x09, 0xf8, 0x4d, 0x57, 0xb6, 0x69, 0x4d, 0xf8, 0x30, 0x66, 0x4c, 0xa8, 0xb3, 0xc3, 0xc0, 0x3e, 0xd2, 0xae, -+ 0x67, 0xb8, 0x90, 0x06, 0x86, 0x8a, 0x68, 0x52, 0x7c, 0xcd, 0x66, 0x64, 0x59, 0xab, 0x7f, 0x05, 0x66, 0x71, 0x00, 0x0c, 0x61, 0x64, 0xd3, 0xa7, 0xf2, 0x66, 0xa1, 0x4d, 0x97, 0xcb, 0xd7, 0x00, -+ 0x4d, 0x6c, 0x92, 0xca, 0xca, 0x77, 0x0b, 0x84, 0x4a, 0x4f, 0xa9, 0xb1, 0x82, 0xe7, 0xb1, 0x8c, 0xa8, 0x85, 0x08, 0x2a, 0xc5, 0x64, 0x6f, 0xcb, 0x4a, 0x14, 0xe1, 0x68, 0x5f, 0xeb, 0x0c, 0x9c, -+ 0xe3, 0x37, 0x2a, 0xb9, 0x53, 0x65, 0xc0, 0x4f, 0xd8, 0x30, 0x84, 0xf8, 0x0a, 0x23, 0xff, 0x10, 0xa0, 0x5b, 0xf1, 0x5f, 0x7f, 0xa5, 0xac, 0xc6, 0xc0, 0xcb, 0x46, 0x2c, 0x33, 0xca, 0x52, 0x4f, -+ 0xa6, 0xb8, 0xbb, 0x35, 0x90, 0x43, 0xba, 0x68, 0x60, 0x9e, 0xaa, 0x25, 0x36, 0xe8, 0x1d, 0x08, 0x46, 0x3b, 0x19, 0x65, 0x3b, 0x54, 0x35, 0xba, 0x94, 0x6c, 0x9a, 0xdd, 0xeb, 0x20, 0x2b, 0x04, -+ 0xb0, 0x31, 0xcc, 0x96, 0x0d, 0xcc, 0x12, 0xe4, 0x51, 0x8d, 0x42, 0x8b, 0x32, 0xb2, 0x57, 0xa4, 0xfc, 0x73, 0x13, 0xd3, 0xa7, 0x98, 0x0d, 0x80, 0x08, 0x2e, 0x93, 0x4f, 0x9d, 0x95, 0xc3, 0x2b, -+ 0x0a, 0x01, 0x91, 0xa2, 0x36, 0x04, 0x38, 0x4d, 0xd9, 0xe0, 0x79, 0xbb, 0xba, 0xa2, 0x66, 0xd1, 0x4c, 0x3f, 0x75, 0x6b, 0x9f, 0x21, 0x33, 0x10, 0x74, 0x33, 0xa4, 0xe8, 0x3f, 0xa7, 0x18, 0x72, -+ 0x82, 0xa8, 0x09, 0x20, 0x3a, 0x4f, 0xaf, 0x84, 0x18, 0x51, 0x83, 0x3d, 0x12, 0x1a, 0xc3, 0x83, 0x84, 0x3a, 0x5e, 0x55, 0xbc, 0x23, 0x81, 0x42, 0x5e, 0x16, 0xc7, 0xdb, 0x4c, 0xc9, 0xab, 0x5c, -+ 0x1b, 0x0d, 0x91, 0xa4, 0x7e, 0x2b, 0x8d, 0xe0, 0xe5, 0x82, 0xc8, 0x6b, 0x6b, 0x0d, 0x90, 0x7b, 0xb3, 0x60, 0xb9, 0x7f, 0x40, 0xab, 0x5d, 0x03, 0x8f, 0x6b, 0x75, 0xc8, 0x14, 0xb2, 0x7d, 0x9b, -+ 0x96, 0x8d, 0x41, 0x98, 0x32, 0xbc, 0x8c, 0x2b, 0xee, 0x60, 0x5e, 0xf6, 0xe5, 0x05, 0x9d, 0x33, 0x10, 0x0d, 0x90, 0x48, 0x5d, 0x37, 0x84, 0x50, 0x01, 0x42, 0x21, 0x73, 0x6c, 0x07, 0x40, 0x7c, -+ 0xac, 0x26, 0x04, 0x08, 0xaa, 0x64, 0x92, 0x66, 0x19, 0x78, 0x8b, 0x86, 0x01, 0xc2, 0xa7, 0x52, 0xd1, 0xa6, 0xcb, 0xf8, 0x20, 0xd7, 0xc7, 0xa0, 0x47, 0x16, 0x20, 0x32, 0x25, 0xb3, 0x89, 0x5b, -+ 0x93, 0x42, 0xd1, 0x47, 0xa8, 0x18, 0x5c, 0xfc, 0x1b, 0xb6, 0x5b, 0xa0, 0x6b, 0x41, 0x42, 0x33, 0x99, 0x03, 0xc0, 0xac, 0x46, 0x51, 0x38, 0x5b, 0x45, 0xd9, 0x8a, 0x8b, 0x19, 0xd2, 0x8c, 0xd6, -+ 0xba, 0xb0, 0x88, 0x78, 0x7f, 0x7e, 0xe1, 0xb1, 0x24, 0x61, 0x76, 0x6b, 0x43, 0xcb, 0xcc, 0xb9, 0x64, 0x34, 0x42, 0x7d, 0x93, 0xc0, 0x65, 0x55, 0x06, 0x88, 0xf6, 0x94, 0x8e, 0xd1, 0xb5, 0x47, -+ 0x5a, 0x42, 0x5f, 0x1b, 0x85, 0x20, 0x9d, 0x06, 0x1c, 0x08, 0xb5, 0x6c, 0x1c, 0xc0, 0x69, 0xf6, 0xc0, 0xa7, 0xc6, 0xf2, 0x93, 0x58, 0xca, 0xb9, 0x11, 0x08, 0x77, 0x32, 0xa6, 0x49, 0xd2, 0x7c, -+ 0x9b, 0x98, 0xf9, 0xa4, 0x88, 0x79, 0x38, 0x7d, 0x9b, 0x00, 0xc2, 0x59, 0x59, 0xa7, 0x16, 0x54, 0xd6, 0xf6, 0xa9, 0x46, 0x16, 0x45, 0x13, 0xe4, 0x7a, 0x75, 0xd0, 0x05, 0x98, 0x6c, 0x23, 0x63, -+ 0xc0, 0x9f, 0x6b, 0x53, 0x7e, 0xca, 0x78, 0xb9, 0x30, 0x3a, 0x5f, 0xa4, 0x57, 0x60, 0x8a, 0x58, 0x6a, 0x65, 0x3a, 0x34, 0x7d, 0xb0, 0x4d, 0xfc, 0xc1, 0x91, 0x75, 0xb3, 0xa3, 0x01, 0x17, 0x25, -+ 0x36, 0x06, 0x2a, 0x65, 0x8a, 0x95, 0x27, 0x75, 0x70, 0xc8, 0x85, 0x2c, 0xa8, 0x97, 0x3f, 0x4a, 0xe1, 0x23, 0xa3, 0x34, 0x04, 0x7d, 0xd7, 0x11, 0xc8, 0x92, 0x7a, 0x63, 0x4a, 0x03, 0x38, 0x8a, -+ 0x52, 0x7b, 0x03, 0x4b, 0xf7, 0xa8, 0x17, 0x0f, 0xa7, 0x02, 0xc1, 0xf7, 0xc2, 0x3e, 0xc3, 0x2d, 0x18, 0xa2, 0x37, 0x48, 0x90, 0xbe, 0x9c, 0x78, 0x7a, 0x94, 0x09, 0xc8, 0x2d, 0x19, 0x2c, 0x4b, -+ 0xb7, 0x05, 0xa2, 0xf9, 0x96, 0xce, 0x40, 0x5d, 0xa0, 0xb7, 0x1f, 0x67, 0xc6, 0xce, 0xc0, 0xd3, 0x56, 0x86, 0xd5, 0x13, 0x42, 0x34, 0x32, 0xe5, 0x12, 0xac, 0x40, 0x44, 0x55, 0x7e, 0x86, 0x8a, -+ 0x62, 0x48, 0x00, 0x10, 0x9a, 0x33, 0x55, 0xf9, 0x8f, 0x15, 0x14, 0x44, 0xe2, 0x85, 0x2e, 0x27, 0xea, 0x6e, 0xdb, 0x19, 0x92, 0xca, 0xd3, 0x97, 0x3c, 0x3a, 0x6f, 0xf7, 0x9a, 0x5a, 0x04, 0x9a, -+ 0x25, 0x9e, 0xb5, 0x41, 0x5a, 0xa2, 0xa2, 0x62, 0x45, 0x6e, 0xc9, 0x49, 0x5b, 0xbb, 0x52, 0x00, 0xd8, 0xd3, 0x16, 0x3a, 0x5b, 0x10, 0x22, 0x62, 0x92, 0xec, 0xa0, 0x10, 0x21, 0x38, 0x9d, 0xa3, -+ 0x78, 0x81, 0xe2, 0x76, 0x30, 0x65, 0x50, 0xc6, 0xef, 0xb6, 0x44, 0x0e, 0xc5, 0x1a, 0x2f, 0x73, 0x48, 0x34, 0x9b, 0x85, 0x1c, 0xd4, 0xaa, 0x01, 0x75, 0xa0, 0x55, 0x02, 0x13, 0xc4, 0x79, 0x1d, -+ 0x91, 0x01, 0x12, 0x20, 0x82, 0x4b, 0x2b, 0x61, 0x65, 0x08, 0x13, 0xad, 0xfd, 0x2c, 0xb1, 0x05, 0x38, 0xbf, 0xab, 0x0a, 0x72, 0x6f, 0x81, 0x12, 0x9e, 0xd2, 0xc0, 0xf0, 0x6a, 0x16, 0xb7, 0x01, -+ 0x09, 0x0b, 0xf0, 0x48, 0xc5, 0xa4, 0x01, 0x26, 0xd5, 0x72, 0xfc, 0xd4, 0x7a, 0xa1, 0x21, 0x8f, 0xb0, 0x15, 0x47, 0xd1, 0x50, 0x79, 0x2d, 0x23, 0x16, 0xcb, 0x32, 0x0d, 0x51, 0x44, 0xba, 0x35, -+ 0x08, 0xa1, 0xeb, 0xbb, 0x5a, 0xc1, 0xc2, 0x29, 0x13, 0xe8, 0x29, 0x5f, 0xab, 0x59, 0xbf, 0x58, 0x37, 0xa7, 0x78, 0xcf, 0x28, 0x22, 0x7e, 0x07, 0xe1, 0x03, 0x2d, 0xab, 0x7d, 0x0e, 0x09, 0xa1, -+ 0x5f, 0x13, 0x41, 0x48, 0xc1, 0x20, 0x09, 0xda, 0x53, 0x6b, 0x22, 0xcc, 0x62, 0x47, 0x4e, 0x69, 0xcc, 0x15, 0x54, 0xc0, 0x81, 0x4d, 0x6c, 0xa0, 0xb7, 0x22, 0x59, 0x43, 0x83, 0xa9, 0xd0, 0xa2, -+ 0xc7, 0x7f, 0xd3, 0x65, 0xa5, 0x54, 0x42, 0x95, 0xfb, 0xb9, 0x73, 0xf9, 0x1e, 0xa5, 0x64, 0x90, 0xd6, 0xca, 0x68, 0x76, 0x49, 0x7b, 0x98, 0xb3, 0xcb, 0x12, 0x41, 0x7c, 0x25, 0x7b, 0x6d, 0x0f, -+ 0x71, 0x83, 0xdb, 0xb6, 0x9e, 0x33, 0x07, 0x5b, 0xeb, 0x01, 0x17, 0xb6, 0x91, 0x4c, 0x69, 0xba, 0x38, 0x34, 0x94, 0x22, 0xf2, 0xf4, 0x33, 0x64, 0x82, 0x2a, 0x25, 0x70, 0x95, 0x2d, 0xd5, 0x07, -+ 0x7b, 0x90, 0x75, 0x5f, 0x15, 0x74, 0x11, 0x5b, 0x8e, 0x22, 0x14, 0x27, 0x58, 0x59, 0x61, 0x91, 0x3a, 0x9b, 0xfa, 0x05, 0x02, 0xb5, 0xd7, 0x9a, 0xb7, 0x81, 0x17, 0x44, 0xe6, 0x56, 0x3c, 0x5b, -+ 0x62, 0xc5, 0xcc, 0x4e, 0x93, 0x23, 0x9a, 0x0a, 0x8c, 0xc6, 0x0f, 0xe8, 0x48, 0xf8, 0x4a, 0x95, 0xf5, 0x90, 0x25, 0x99, 0xb5, 0x4a, 0x06, 0x62, 0x93, 0xa2, 0x02, 0x1d, 0xa1, 0x96, 0x76, 0x6c, -+ 0x17, 0xc7, 0xe8, 0x63, 0xaf, 0x79, 0x0c, 0x27, 0x0b, 0x21, 0x6a, 0x25, 0x13, 0x8d, 0xda, 0x0c, 0x81, 0x26, 0xe0, 0x93, 0x77, 0x87, 0x98, 0x59, 0xdb, 0x35, 0x8f, 0x9b, 0x82, 0xb7, 0xc8, 0xa6, -+ 0x79, 0x2a, 0xce, 0xe9, 0x2a, 0x4c, 0xbd, 0xe3, 0xce, 0xdd, 0x45, 0x00, 0xac, 0xbc, 0x55, 0x5c, 0x28, 0x8e, 0xff, 0x97, 0x95, 0x26, 0x5b, 0x90, 0x05, 0x35, 0x1c, 0x52, 0xe2, 0x65, 0x35, 0x54, -+ 0xab, 0xaa, 0xf8, 0x72, 0xdf, 0x95, 0xca, 0x7f, 0x79, 0x59, 0x03, 0xf0, 0xb0, 0xa1, 0x82, 0xb1, 0x8a, 0xeb, 0x04, 0x75, 0xb2, 0x9f, 0x6e, 0x3a, 0xbf, 0x4c, 0x22, 0x50, 0xfe, 0x7b, 0x84, 0x2a, -+ 0x73, 0x65, 0x50, 0x16, 0xa8, 0xfc, 0x72, 0x9f, 0x39, 0x05, 0x07, 0xac, 0xa9, 0x36, 0x82, 0x5a, 0x98, 0xb3, 0xa3, 0x2e, 0x6b, 0x25, 0x54, 0xce, 0x95, 0x28, 0x94, 0x1a, 0x3b, 0xb8, 0xc9, 0x09, -+ 0x96, 0x00, 0x8d, 0x74, 0xfb, 0xcd, 0x02, 0x0a, 0x02, 0xe7, 0x06, 0xa6, 0xde, 0x7b, 0x02, 0xaf, 0x40, 0x4c, 0x10, 0xdb, 0x00, 0xfa, 0xec, 0x02, 0xd3, 0xea, 0xa6, 0xd9, 0x56, 0x1a, 0x15, 0x65, -+ 0xa7, 0xb0, 0x5c, 0x63, 0x66, 0xd0, 0x9d, 0xa7, 0xa5, 0x37, 0xf2, 0x0c, 0x7b, 0x28, 0x59, 0xa8, 0x3e, 0x02, 0x9e, 0x13, 0xa9, 0xbd, 0x28, 0x91, 0x57, 0xc5, 0xb7, 0x4c, 0x84, 0xea, 0xa3, 0x07, -+ 0x75, 0x3d, 0x43, 0x12, 0x02, 0xa3, 0xd9, 0xb6, 0x16, 0x22, 0x18, 0xbe, 0xc5, 0x34, 0x69, 0x45, 0xbf, 0xef, 0x55, 0xb6, 0x24, 0xc5, 0xc6, 0xe3, 0x73, 0x35, 0x9b, 0xb1, 0xc4, 0x79, 0x95, 0x2b, -+ 0xba, 0xba, 0x4d, 0x65, 0x55, 0xc2, 0x76, 0x57, 0x3e, 0x51, 0x52, 0xb5, 0x53, 0x90, 0x19, 0x99, 0xf6, 0x94, 0x02, 0xd1, 0x50, 0xbe, 0xf7, 0x9d, 0x74, 0xfb, 0x29, 0x53, 0x01, 0x8f, 0xf4, 0x86, -+ 0x66, 0x74, 0x6a, 0xce, 0x60, 0x78, 0x14, 0xa1, 0xfa, 0x33, 0x19, 0x57, 0x20, 0xf8, 0x38, 0x78, 0xd3, 0xb5, 0x75, 0xc7, 0x25, 0x74, 0x4a, 0x72, 0x07, 0x0d, 0xd0, 0x44, 0x01, 0x80, 0x42, 0xda, -+ 0x25, 0x71, 0x4d, 0x17, 0x30, 0x90, 0x32, 0x3a, 0x51, 0xe6, 0xc0, 0x63, 0xd2, 0x03, 0x88, 0x13, 0x80, 0x91, 0x27, 0x61, 0xfc, 0x34, 0x10, 0x83, 0x90, 0x95, 0xf2, 0x6c, 0x0e, 0x68, 0x7a, 0x00, -+ 0x70, 0x54, 0x95, 0xe1, 0x71, 0xb5, 0x71, 0x51, 0xac, 0xe0, 0x49, 0x8e, 0x30, 0xf1, 0x4c, 0xa9, 0xb0, 0x2f, 0x6e, 0x40, 0x83, 0x18, 0x54, 0xc2, 0xe0, 0xab, 0x1e, 0xcd, 0x0c, 0x21, 0xd8, 0xe4, -+ 0xc7, 0xe6, 0x69, 0xcd, 0x72, 0x82, 0x30, 0xb9, 0xd1, 0x1f, 0x72, 0xc2, 0x66, 0xe3, 0x44, 0x66, 0xf9, 0xc0, 0x15, 0x9e, 0xf4, 0x24, 0xf8, 0xf3, 0x1d, 0x95, 0xa5, 0x7b, 0xa0, 0xe2, 0x10, 0x54, -+ 0x3c, 0x10, 0xc6, 0x50, 0x3f, 0xb5, 0xc6, 0x3e, 0xd2, 0x3a, 0xa3, 0x6c, 0xd6, 0xa6, 0xf3, 0x78, 0x26, 0x1b, 0x0b, 0x1e, 0x79, 0x50, 0x9d, 0x8b, 0xeb, 0x36, 0xaa, 0x26, 0x3d, 0xc9, 0x15, 0x45, -+ 0xe5, 0x33, 0x69, 0xdf, 0x26, 0x83, 0x7f, 0x39, 0x4c, 0x56, 0x77, 0x7c, 0x95, 0xb6, 0x48, 0xbd, 0x1a, 0x72, 0x92, 0x1a, 0xbf, 0x49, 0x56, 0x3f, 0x99, 0xcb, 0x9d, 0x98, 0xea, 0xb5, 0xc6, 0x66, -+ 0x66, 0xf6, 0xb1, 0x6f, 0x74, 0x02, 0x24, 0x81, 0xfa, 0x21, 0x4e, 0x61, 0x76, 0x98, 0xd3, 0xbb, 0xd1, 0x3c, 0xb3, 0x08, 0x71, 0x3f, 0xdc, 0xc7, 0xcf, 0xd3, 0x97, 0xb9, 0xca, 0x39, 0xaf, 0xf4, -+ 0xc7, 0x44, 0xd5, 0x71, 0x5d, 0x58, 0x96, 0x6f, 0x2c, 0xf9, 0x70, 0x70, 0x15, 0xc8, 0xf3, 0x54, 0x3e, 0xd2, 0x86, 0xa3, 0xd8, 0xd5, 0xcb, 0xf6, 0x4a, 0xce, 0xdf, 0xc0, 0x29, 0x71, 0xa9, 0x10, -+ 0x72, 0xc6, 0x9d, 0x2e, 0xf4, 0x98, 0x29, 0xf1, 0x03, 0x7f, 0x05, 0x0c, 0x5b, 0x92, 0x22, 0x98, 0x56, 0xcb, 0x12, 0xb4, 0x56, 0xcc, 0x09, 0x52, 0x82, 0xa6, 0x26, 0x87, 0xea, 0x38, 0xc9, 0x77, -+ 0x8a, 0xea, 0x49, 0x1d, 0xff, 0x06, 0x97, 0x11, 0xfb, 0xbe, 0x05, 0xe8, 0xcd, 0x9b, 0xf4, 0x4a, 0x8e, 0x71, 0x26, 0x19, 0x57, 0x3e, 0x12, 0xea, 0xa7, 0xb2, 0x38, 0x29, 0xdc, 0x67, 0x26, 0xbf, -+ 0xe3, 0x3d, 0xa1, 0x36, 0xb8, 0x1e, 0x15, 0x32, 0x51, 0x50, 0x8f, 0x62, 0x85, 0xba, 0x15, 0xb2, 0xc1, 0x23, 0x76, 0x77, 0xfe, 0x5b, 0x14, 0xb4, 0xe3, 0x3f, 0x98, 0xc3, 0x26, 0xbc, 0x58, 0xb9, -+ 0xd8, 0xe0, 0x75, 0xa2, 0x5b, 0x94, 0xc8, 0xa2, 0x32, 0x33, 0x02, 0x9d, 0xcc, 0x78, 0x6b, 0x13, 0x5c, 0x56, 0x16, 0x4b, 0xa3, 0xd1, 0x60, 0xcb, 0xce, 0xa8, 0x54, 0xb7, 0x97, 0x1f, 0x9c, 0xd7, -+ 0x3a, 0x38, 0x3a, 0xac, 0x05, 0x0a, 0x30, 0x2a, 0xd8, 0x3b, 0x3e, 0x3a, 0xb9, 0x02, 0x46, 0xad, 0x16, 0x0a, 0x32, 0x1d, 0x33, 0x0a, 0xcd, 0xec, 0x7c, 0xa6, 0x64, 0x3d, 0x7e, 0xc0, 0x1f, 0x91, -+ 0x69, 0x1f, 0x16, 0x32, 0x5b, 0xdf, 0x39, 0x69, 0x50, 0xb8, 0x8d, 0xaf, 0xe3, 0x69, 0xc6, 0x54, 0xb8, 0x52, 0x05, 0x5c, 0x97, 0x03, 0x62, 0xc6, 0x13, 0x80, 0x46, 0x07, 0x57, 0xc6, 0x58, 0x90, -+ 0xf4, 0xe5, 0x92, 0x22, 0xe4, 0xa4, 0x06, 0x0b, 0x26, 0xc0, 0xeb, 0xc1, 0x01, 0x97, 0x59, 0x0d, 0xe3, 0xc8, 0xf0, 0x95, 0x5d, 0x65, 0x4b, 0x37, 0x1c, 0xcb, 0x90, 0xac, 0xa3, 0x71, 0xb2, 0x94, -+ 0x47, 0x6c, 0x16, 0xa4, 0x59, 0x6a, 0x1d, 0xe8, 0x30, 0x9e, 0x2a, 0x36, 0x12, 0xc6, 0x9b, 0x71, 0x25, 0x31, 0x05, 0x01, 0xe0, 0xc0, 0x49, 0xb8, 0x74, 0x40, 0xd9, 0xa6, 0xd0, 0xec, 0xb9, 0x99, -+ 0xc9, 0xa0, 0x94, 0x2a, 0xa3, 0x40, 0xf6, 0x03, 0x65, 0xea, 0xfd, 0x46, 0x5f, 0xc6, 0x4a, 0x0c, 0x5f, 0x8f, 0x3f, 0x90, 0x03, 0x48, 0x94, 0x15, 0x89, 0x9d, 0x59, 0xa5, 0x43, 0xd8, 0x20, 0x8c, -+ 0x54, 0xa3, 0x16, 0x65, 0x29, 0xb5, 0x39, 0x22, 0xde, 0xe4, 0xab, 0xa0, 0x00, 0x38, 0x95, 0x81, 0x71, 0x7d, 0x36, 0xf5, 0x6f, 0x39, 0xaf, 0x73, 0x00, 0xb3, 0x1d, 0x83, 0x1a, 0x4d, 0x8c, 0x97, -+ 0x61, 0x28, 0xe0, 0x9d, 0xed, 0xe7, 0x1a, 0x5a, 0x86, 0x26, 0xed, 0x79, 0xd4, 0x51, 0x14, 0x08, 0x00, 0xe0, 0x3b, 0x59, 0xb9, 0x56, 0xf8, 0x21, 0x0e, 0x55, 0x60, 0x67, 0x40, 0x7d, 0x13, 0xdc, -+ 0x90, 0xfa, 0x9e, 0x8b, 0x87, 0x2b, 0xfb, 0x8f, 0xa0, 0x82, 0x04, 0xe5, 0x03, 0x82, 0x04, 0xe1, 0x00, 0xa0, 0xb7, 0x1f, 0x67, 0xc6, 0xce, 0xc0, 0xd3, 0x56, 0x86, 0xd5, 0x13, 0x42, 0x34, 0x32, -+ 0xe5, 0x12, 0xac, 0x40, 0x44, 0x55, 0x7e, 0x86, 0x8a, 0x62, 0x48, 0x00, 0x10, 0x9a, 0x33, 0x55, 0xf9, 0x8f, 0x15, 0x14, 0x44, 0xe2, 0x85, 0x2e, 0x27, 0xea, 0x6e, 0xdb, 0x19, 0x92, 0xca, 0xd3, -+ 0x97, 0x3c, 0x3a, 0x6f, 0xf7, 0x9a, 0x5a, 0x04, 0x9a, 0x25, 0x9e, 0xb5, 0x41, 0x5a, 0xa2, 0xa2, 0x62, 0x45, 0x6e, 0xc9, 0x49, 0x5b, 0xbb, 0x52, 0x00, 0xd8, 0xd3, 0x16, 0x3a, 0x5b, 0x10, 0x22, -+ 0x62, 0x92, 0xec, 0xa0, 0x10, 0x21, 0x38, 0x9d, 0xa3, 0x78, 0x81, 0xe2, 0x76, 0x30, 0x65, 0x50, 0xc6, 0xef, 0xb6, 0x44, 0x0e, 0xc5, 0x1a, 0x2f, 0x73, 0x48, 0x34, 0x9b, 0x85, 0x1c, 0xd4, 0xaa, -+ 0x01, 0x75, 0xa0, 0x55, 0x02, 0x13, 0xc4, 0x79, 0x1d, 0x91, 0x01, 0x12, 0x20, 0x82, 0x4b, 0x2b, 0x61, 0x65, 0x08, 0x13, 0xad, 0xfd, 0x2c, 0xb1, 0x05, 0x38, 0xbf, 0xab, 0x0a, 0x72, 0x6f, 0x81, -+ 0x12, 0x9e, 0xd2, 0xc0, 0xf0, 0x6a, 0x16, 0xb7, 0x01, 0x09, 0x0b, 0xf0, 0x48, 0xc5, 0xa4, 0x01, 0x26, 0xd5, 0x72, 0xfc, 0xd4, 0x7a, 0xa1, 0x21, 0x8f, 0xb0, 0x15, 0x47, 0xd1, 0x50, 0x79, 0x2d, -+ 0x23, 0x16, 0xcb, 0x32, 0x0d, 0x51, 0x44, 0xba, 0x35, 0x08, 0xa1, 0xeb, 0xbb, 0x5a, 0xc1, 0xc2, 0x29, 0x13, 0xe8, 0x29, 0x5f, 0xab, 0x59, 0xbf, 0x58, 0x37, 0xa7, 0x78, 0xcf, 0x28, 0x22, 0x7e, -+ 0x07, 0xe1, 0x03, 0x2d, 0xab, 0x7d, 0x0e, 0x09, 0xa1, 0x5f, 0x13, 0x41, 0x48, 0xc1, 0x20, 0x09, 0xda, 0x53, 0x6b, 0x22, 0xcc, 0x62, 0x47, 0x4e, 0x69, 0xcc, 0x15, 0x54, 0xc0, 0x81, 0x4d, 0x6c, -+ 0xa0, 0xb7, 0x22, 0x59, 0x43, 0x83, 0xa9, 0xd0, 0xa2, 0xc7, 0x7f, 0xd3, 0x65, 0xa5, 0x54, 0x42, 0x95, 0xfb, 0xb9, 0x73, 0xf9, 0x1e, 0xa5, 0x64, 0x90, 0xd6, 0xca, 0x68, 0x76, 0x49, 0x7b, 0x98, -+ 0xb3, 0xcb, 0x12, 0x41, 0x7c, 0x25, 0x7b, 0x6d, 0x0f, 0x71, 0x83, 0xdb, 0xb6, 0x9e, 0x33, 0x07, 0x5b, 0xeb, 0x01, 0x17, 0xb6, 0x91, 0x4c, 0x69, 0xba, 0x38, 0x34, 0x94, 0x22, 0xf2, 0xf4, 0x33, -+ 0x64, 0x82, 0x2a, 0x25, 0x70, 0x95, 0x2d, 0xd5, 0x07, 0x7b, 0x90, 0x75, 0x5f, 0x15, 0x74, 0x11, 0x5b, 0x8e, 0x22, 0x14, 0x27, 0x58, 0x59, 0x61, 0x91, 0x3a, 0x9b, 0xfa, 0x05, 0x02, 0xb5, 0xd7, -+ 0x9a, 0xb7, 0x81, 0x17, 0x44, 0xe6, 0x56, 0x3c, 0x5b, 0x62, 0xc5, 0xcc, 0x4e, 0x93, 0x23, 0x9a, 0x0a, 0x8c, 0xc6, 0x0f, 0xe8, 0x48, 0xf8, 0x4a, 0x95, 0xf5, 0x90, 0x25, 0x99, 0xb5, 0x4a, 0x06, -+ 0x62, 0x93, 0xa2, 0x02, 0x1d, 0xa1, 0x96, 0x76, 0x6c, 0x17, 0xc7, 0xe8, 0x63, 0xaf, 0x79, 0x0c, 0x27, 0x0b, 0x21, 0x6a, 0x25, 0x13, 0x8d, 0xda, 0x0c, 0x81, 0x26, 0xe0, 0x93, 0x77, 0x87, 0x98, -+ 0x59, 0xdb, 0x35, 0x8f, 0x9b, 0x82, 0xb7, 0xc8, 0xa6, 0x79, 0x2a, 0xce, 0xe9, 0x2a, 0x4c, 0xbd, 0xe3, 0xce, 0xdd, 0x45, 0x00, 0xac, 0xbc, 0x55, 0x5c, 0x28, 0x8e, 0xff, 0x97, 0x95, 0x26, 0x5b, -+ 0x90, 0x05, 0x35, 0x1c, 0x52, 0xe2, 0x65, 0x35, 0x54, 0xab, 0xaa, 0xf8, 0x72, 0xdf, 0x95, 0xca, 0x7f, 0x79, 0x59, 0x03, 0xf0, 0xb0, 0xa1, 0x82, 0xb1, 0x8a, 0xeb, 0x04, 0x75, 0xb2, 0x9f, 0x6e, -+ 0x3a, 0xbf, 0x4c, 0x22, 0x50, 0xfe, 0x7b, 0x84, 0x2a, 0x73, 0x65, 0x50, 0x16, 0xa8, 0xfc, 0x72, 0x9f, 0x39, 0x05, 0x07, 0xac, 0xa9, 0x36, 0x82, 0x5a, 0x98, 0xb3, 0xa3, 0x2e, 0x6b, 0x25, 0x54, -+ 0xce, 0x95, 0x28, 0x94, 0x1a, 0x3b, 0xb8, 0xc9, 0x09, 0x96, 0x00, 0x8d, 0x74, 0xfb, 0xcd, 0x02, 0x0a, 0x02, 0xe7, 0x06, 0xa6, 0xde, 0x7b, 0x02, 0xaf, 0x40, 0x4c, 0x10, 0xdb, 0x00, 0xfa, 0xec, -+ 0x02, 0xd3, 0xea, 0xa6, 0xd9, 0x56, 0x1a, 0x15, 0x65, 0xa7, 0xb0, 0x5c, 0x63, 0x66, 0xd0, 0x9d, 0xa7, 0xa5, 0x37, 0xf2, 0x0c, 0x7b, 0x28, 0x59, 0xa8, 0x3e, 0x02, 0x9e, 0x13, 0xa9, 0xbd, 0x28, -+ 0x91, 0x57, 0xc5, 0xb7, 0x4c, 0x84, 0xea, 0xa3, 0x07, 0x75, 0x3d, 0x43, 0x12, 0x02, 0xa3, 0xd9, 0xb6, 0x16, 0x22, 0x18, 0xbe, 0xc5, 0x34, 0x69, 0x45, 0xbf, 0xef, 0x55, 0xb6, 0x24, 0xc5, 0xc6, -+ 0xe3, 0x73, 0x35, 0x9b, 0xb1, 0xc4, 0x79, 0x95, 0x2b, 0xba, 0xba, 0x4d, 0x65, 0x55, 0xc2, 0x76, 0x57, 0x3e, 0x51, 0x52, 0xb5, 0x53, 0x90, 0x19, 0x99, 0xf6, 0x94, 0x02, 0xd1, 0x50, 0xbe, 0xf7, -+ 0x9d, 0x74, 0xfb, 0x29, 0x53, 0x01, 0x8f, 0xf4, 0x86, 0x66, 0x74, 0x6a, 0xce, 0x60, 0x78, 0x14, 0xa1, 0xfa, 0x33, 0x19, 0x57, 0x20, 0xf8, 0x38, 0x78, 0xd3, 0xb5, 0x75, 0xc7, 0x25, 0x74, 0x4a, -+ 0x72, 0x07, 0x0d, 0xd0, 0x44, 0x01, 0x80, 0x42, 0xda, 0x25, 0x71, 0x4d, 0x17, 0x30, 0x90, 0x32, 0x3a, 0x51, 0xe6, 0xc0, 0x63, 0xd2, 0x03, 0x88, 0x13, 0x80, 0x91, 0x27, 0x61, 0xfc, 0x34, 0x10, -+ 0x83, 0x90, 0x95, 0xf2, 0x6c, 0x0e, 0x68, 0x7a, 0x00, 0x70, 0x54, 0x95, 0xe1, 0x71, 0xb5, 0x71, 0x51, 0xac, 0xe0, 0x49, 0x8e, 0x30, 0xf1, 0x4c, 0xa9, 0xb0, 0x2f, 0x6e, 0x40, 0x83, 0x18, 0x54, -+ 0xc2, 0xe0, 0xab, 0x1e, 0xcd, 0x0c, 0x21, 0xd8, 0xe4, 0xc7, 0xe6, 0x69, 0xcd, 0x72, 0x82, 0x30, 0xb9, 0xd1, 0x1f, 0x72, 0xc2, 0x66, 0xe3, 0x44, 0x66, 0xf9, 0xc0, 0x15, 0x9e, 0xf4, 0x24, 0xf8, -+ 0xf3, 0x1d, 0x95, 0xa5, 0x7b, 0xa0, 0xe2, 0x10, 0x54, 0x3c, 0x10, 0xc6, 0x50, 0x3f, 0xb5, 0xc6, 0x3e, 0xd2, 0x3a, 0xa3, 0x6c, 0xd6, 0xa6, 0xf3, 0x78, 0x26, 0x1b, 0x0b, 0x1e, 0x79, 0x50, 0x9d, -+ 0x8b, 0xeb, 0x36, 0xaa, 0x26, 0x3d, 0xc9, 0x15, 0x45, 0xe5, 0x33, 0x69, 0xdf, 0x26, 0x83, 0x7f, 0x39, 0x4c, 0x56, 0x77, 0x7c, 0x95, 0xb6, 0x48, 0xbd, 0x1a, 0x72, 0x92, 0x1a, 0xbf, 0x49, 0x56, -+ 0x3f, 0x99, 0xcb, 0x9d, 0x98, 0xea, 0xb5, 0xc6, 0x66, 0x66, 0xf6, 0xb1, 0x6f, 0x74, 0x02, 0x24, 0x81, 0xfa, 0x21, 0x4e, 0x61, 0x76, 0x98, 0xd3, 0xbb, 0xd1, 0x3c, 0xb3, 0x08, 0x71, 0x3f, 0xdc, -+ 0xc7, 0xcf, 0xd3, 0x97, 0xb9, 0xca, 0x39, 0xaf, 0xf4, 0xc7, 0x44, 0xd5, 0x71, 0x5d, 0x58, 0x96, 0x6f, 0x2c, 0xf9, 0x70, 0x70, 0x15, 0xc8, 0xf3, 0x54, 0x3e, 0xd2, 0x86, 0xa3, 0xd8, 0xd5, 0xcb, -+ 0xf6, 0x4a, 0xce, 0xdf, 0xc0, 0x29, 0x71, 0xa9, 0x10, 0x72, 0xc6, 0x9d, 0x2e, 0xf4, 0x98, 0x29, 0xf1, 0x03, 0x7f, 0x05, 0x0c, 0x5b, 0x92, 0x22, 0x98, 0x56, 0xcb, 0x12, 0xb4, 0x56, 0xcc, 0x09, -+ 0x52, 0x82, 0xa6, 0x26, 0x87, 0xea, 0x38, 0xc9, 0x77, 0x8a, 0xea, 0x49, 0x1d, 0xff, 0x06, 0x97, 0x11, 0xfb, 0xbe, 0x05, 0xe8, 0xcd, 0x9b, 0xf4, 0x4a, 0x8e, 0x71, 0x26, 0x19, 0x57, 0x3e, 0x12, -+ 0xea, 0xa7, 0xb2, 0x38, 0x29, 0xdc, 0x67, 0x26, 0xbf, 0xe3, 0x3d, 0xa1, 0x36, 0xb8, 0x1e, 0x15, 0x32, 0x51, 0x50, 0x8f, 0x62, 0x85, 0xba, 0x15, 0xb2, 0xc1, 0x23, 0x76, 0x77, 0xfe, 0x5b, 0x14, -+ 0xb4, 0xe3, 0x3f, 0x98, 0xc3, 0x26, 0xbc, 0x58, 0xb9, 0xd8, 0xe0, 0x75, 0xa2, 0x5b, 0x94, 0xc8, 0xa2, 0x32, 0x33, 0x02, 0x9d, 0xcc, 0x78, 0x6b, 0x13, 0x5c, 0x56, 0x16, 0x4b, 0xa3, 0xd1, 0x60, -+ 0xcb, 0xce, 0xa8, 0x54, 0xb7, 0x97, 0x1f, 0x9c, 0xd7, 0x3a, 0x38, 0x3a, 0xac, 0x05, 0x0a, 0x30, 0x2a, 0xd8, 0x3b, 0x3e, 0x3a, 0xb9, 0x02, 0x46, 0xad, 0x16, 0x0a, 0x32, 0x1d, 0x33, 0x0a, 0xcd, -+ 0xec, 0x7c, 0xa6, 0x64, 0x3d, 0x7e, 0xc0, 0x1f, 0x91, 0x69, 0x1f, 0x16, 0x32, 0x5b, 0xdf, 0x39, 0x69, 0x50, 0xb8, 0x8d, 0xaf, 0xe3, 0x69, 0xc6, 0x54, 0xb8, 0x52, 0x05, 0x5c, 0x97, 0x03, 0x62, -+ 0xc6, 0x13, 0x80, 0x46, 0x07, 0x57, 0xc6, 0x58, 0x90, 0xf4, 0xe5, 0x92, 0x22, 0xe4, 0xa4, 0x06, 0x0b, 0x26, 0xc0, 0xeb, 0xc1, 0x01, 0x97, 0x59, 0x0d, 0xe3, 0xc8, 0xf0, 0x95, 0x5d, 0x65, 0x4b, -+ 0x37, 0x1c, 0xcb, 0x90, 0xac, 0xa3, 0x71, 0xb2, 0x94, 0x47, 0x6c, 0x16, 0xa4, 0x59, 0x6a, 0x1d, 0xe8, 0x30, 0x9e, 0x2a, 0x36, 0x12, 0xc6, 0x9b, 0x71, 0x25, 0x31, 0x05, 0x01, 0xe0, 0xc0, 0x49, -+ 0xb8, 0x74, 0x40, 0xd9, 0xa6, 0xd0, 0xec, 0xb9, 0x99, 0xc9, 0xa0, 0x94, 0x2a, 0xa3, 0x40, 0xf6, 0x03, 0x65, 0xea, 0xfd, 0x46, 0x5f, 0xc6, 0x4a, 0x0c, 0x5f, 0x8f, 0x3f, 0x90, 0x03, 0x48, 0x94, -+ 0x15, 0x89, 0x9d, 0x59, 0xa5, 0x43, 0xd8, 0x20, 0x8c, 0x54, 0xa3, 0x16, 0x65, 0x29, 0xb5, 0x39, 0x22, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, -+ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, -+ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, -+ }, -+ .spki_len = 1219, -+ .spki = { -+ 0x30, 0x82, 0x04, 0xbf, 0x30, 0x0f, 0x06, 0x0b, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x02, 0x82, 0x0b, 0x05, 0x03, 0x03, 0x05, 0x00, 0x03, 0x82, 0x04, 0xaa, 0x00, 0x30, 0x82, 0x04, 0xa5, 0x03, 0x82, -+ 0x04, 0xa1, 0x00, 0xa0, 0xb7, 0x1f, 0x67, 0xc6, 0xce, 0xc0, 0xd3, 0x56, 0x86, 0xd5, 0x13, 0x42, 0x34, 0x32, 0xe5, 0x12, 0xac, 0x40, 0x44, 0x55, 0x7e, 0x86, 0x8a, 0x62, 0x48, 0x00, 0x10, 0x9a, -+ 0x33, 0x55, 0xf9, 0x8f, 0x15, 0x14, 0x44, 0xe2, 0x85, 0x2e, 0x27, 0xea, 0x6e, 0xdb, 0x19, 0x92, 0xca, 0xd3, 0x97, 0x3c, 0x3a, 0x6f, 0xf7, 0x9a, 0x5a, 0x04, 0x9a, 0x25, 0x9e, 0xb5, 0x41, 0x5a, -+ 0xa2, 0xa2, 0x62, 0x45, 0x6e, 0xc9, 0x49, 0x5b, 0xbb, 0x52, 0x00, 0xd8, 0xd3, 0x16, 0x3a, 0x5b, 0x10, 0x22, 0x62, 0x92, 0xec, 0xa0, 0x10, 0x21, 0x38, 0x9d, 0xa3, 0x78, 0x81, 0xe2, 0x76, 0x30, -+ 0x65, 0x50, 0xc6, 0xef, 0xb6, 0x44, 0x0e, 0xc5, 0x1a, 0x2f, 0x73, 0x48, 0x34, 0x9b, 0x85, 0x1c, 0xd4, 0xaa, 0x01, 0x75, 0xa0, 0x55, 0x02, 0x13, 0xc4, 0x79, 0x1d, 0x91, 0x01, 0x12, 0x20, 0x82, -+ 0x4b, 0x2b, 0x61, 0x65, 0x08, 0x13, 0xad, 0xfd, 0x2c, 0xb1, 0x05, 0x38, 0xbf, 0xab, 0x0a, 0x72, 0x6f, 0x81, 0x12, 0x9e, 0xd2, 0xc0, 0xf0, 0x6a, 0x16, 0xb7, 0x01, 0x09, 0x0b, 0xf0, 0x48, 0xc5, -+ 0xa4, 0x01, 0x26, 0xd5, 0x72, 0xfc, 0xd4, 0x7a, 0xa1, 0x21, 0x8f, 0xb0, 0x15, 0x47, 0xd1, 0x50, 0x79, 0x2d, 0x23, 0x16, 0xcb, 0x32, 0x0d, 0x51, 0x44, 0xba, 0x35, 0x08, 0xa1, 0xeb, 0xbb, 0x5a, -+ 0xc1, 0xc2, 0x29, 0x13, 0xe8, 0x29, 0x5f, 0xab, 0x59, 0xbf, 0x58, 0x37, 0xa7, 0x78, 0xcf, 0x28, 0x22, 0x7e, 0x07, 0xe1, 0x03, 0x2d, 0xab, 0x7d, 0x0e, 0x09, 0xa1, 0x5f, 0x13, 0x41, 0x48, 0xc1, -+ 0x20, 0x09, 0xda, 0x53, 0x6b, 0x22, 0xcc, 0x62, 0x47, 0x4e, 0x69, 0xcc, 0x15, 0x54, 0xc0, 0x81, 0x4d, 0x6c, 0xa0, 0xb7, 0x22, 0x59, 0x43, 0x83, 0xa9, 0xd0, 0xa2, 0xc7, 0x7f, 0xd3, 0x65, 0xa5, -+ 0x54, 0x42, 0x95, 0xfb, 0xb9, 0x73, 0xf9, 0x1e, 0xa5, 0x64, 0x90, 0xd6, 0xca, 0x68, 0x76, 0x49, 0x7b, 0x98, 0xb3, 0xcb, 0x12, 0x41, 0x7c, 0x25, 0x7b, 0x6d, 0x0f, 0x71, 0x83, 0xdb, 0xb6, 0x9e, -+ 0x33, 0x07, 0x5b, 0xeb, 0x01, 0x17, 0xb6, 0x91, 0x4c, 0x69, 0xba, 0x38, 0x34, 0x94, 0x22, 0xf2, 0xf4, 0x33, 0x64, 0x82, 0x2a, 0x25, 0x70, 0x95, 0x2d, 0xd5, 0x07, 0x7b, 0x90, 0x75, 0x5f, 0x15, -+ 0x74, 0x11, 0x5b, 0x8e, 0x22, 0x14, 0x27, 0x58, 0x59, 0x61, 0x91, 0x3a, 0x9b, 0xfa, 0x05, 0x02, 0xb5, 0xd7, 0x9a, 0xb7, 0x81, 0x17, 0x44, 0xe6, 0x56, 0x3c, 0x5b, 0x62, 0xc5, 0xcc, 0x4e, 0x93, -+ 0x23, 0x9a, 0x0a, 0x8c, 0xc6, 0x0f, 0xe8, 0x48, 0xf8, 0x4a, 0x95, 0xf5, 0x90, 0x25, 0x99, 0xb5, 0x4a, 0x06, 0x62, 0x93, 0xa2, 0x02, 0x1d, 0xa1, 0x96, 0x76, 0x6c, 0x17, 0xc7, 0xe8, 0x63, 0xaf, -+ 0x79, 0x0c, 0x27, 0x0b, 0x21, 0x6a, 0x25, 0x13, 0x8d, 0xda, 0x0c, 0x81, 0x26, 0xe0, 0x93, 0x77, 0x87, 0x98, 0x59, 0xdb, 0x35, 0x8f, 0x9b, 0x82, 0xb7, 0xc8, 0xa6, 0x79, 0x2a, 0xce, 0xe9, 0x2a, -+ 0x4c, 0xbd, 0xe3, 0xce, 0xdd, 0x45, 0x00, 0xac, 0xbc, 0x55, 0x5c, 0x28, 0x8e, 0xff, 0x97, 0x95, 0x26, 0x5b, 0x90, 0x05, 0x35, 0x1c, 0x52, 0xe2, 0x65, 0x35, 0x54, 0xab, 0xaa, 0xf8, 0x72, 0xdf, -+ 0x95, 0xca, 0x7f, 0x79, 0x59, 0x03, 0xf0, 0xb0, 0xa1, 0x82, 0xb1, 0x8a, 0xeb, 0x04, 0x75, 0xb2, 0x9f, 0x6e, 0x3a, 0xbf, 0x4c, 0x22, 0x50, 0xfe, 0x7b, 0x84, 0x2a, 0x73, 0x65, 0x50, 0x16, 0xa8, -+ 0xfc, 0x72, 0x9f, 0x39, 0x05, 0x07, 0xac, 0xa9, 0x36, 0x82, 0x5a, 0x98, 0xb3, 0xa3, 0x2e, 0x6b, 0x25, 0x54, 0xce, 0x95, 0x28, 0x94, 0x1a, 0x3b, 0xb8, 0xc9, 0x09, 0x96, 0x00, 0x8d, 0x74, 0xfb, -+ 0xcd, 0x02, 0x0a, 0x02, 0xe7, 0x06, 0xa6, 0xde, 0x7b, 0x02, 0xaf, 0x40, 0x4c, 0x10, 0xdb, 0x00, 0xfa, 0xec, 0x02, 0xd3, 0xea, 0xa6, 0xd9, 0x56, 0x1a, 0x15, 0x65, 0xa7, 0xb0, 0x5c, 0x63, 0x66, -+ 0xd0, 0x9d, 0xa7, 0xa5, 0x37, 0xf2, 0x0c, 0x7b, 0x28, 0x59, 0xa8, 0x3e, 0x02, 0x9e, 0x13, 0xa9, 0xbd, 0x28, 0x91, 0x57, 0xc5, 0xb7, 0x4c, 0x84, 0xea, 0xa3, 0x07, 0x75, 0x3d, 0x43, 0x12, 0x02, -+ 0xa3, 0xd9, 0xb6, 0x16, 0x22, 0x18, 0xbe, 0xc5, 0x34, 0x69, 0x45, 0xbf, 0xef, 0x55, 0xb6, 0x24, 0xc5, 0xc6, 0xe3, 0x73, 0x35, 0x9b, 0xb1, 0xc4, 0x79, 0x95, 0x2b, 0xba, 0xba, 0x4d, 0x65, 0x55, -+ 0xc2, 0x76, 0x57, 0x3e, 0x51, 0x52, 0xb5, 0x53, 0x90, 0x19, 0x99, 0xf6, 0x94, 0x02, 0xd1, 0x50, 0xbe, 0xf7, 0x9d, 0x74, 0xfb, 0x29, 0x53, 0x01, 0x8f, 0xf4, 0x86, 0x66, 0x74, 0x6a, 0xce, 0x60, -+ 0x78, 0x14, 0xa1, 0xfa, 0x33, 0x19, 0x57, 0x20, 0xf8, 0x38, 0x78, 0xd3, 0xb5, 0x75, 0xc7, 0x25, 0x74, 0x4a, 0x72, 0x07, 0x0d, 0xd0, 0x44, 0x01, 0x80, 0x42, 0xda, 0x25, 0x71, 0x4d, 0x17, 0x30, -+ 0x90, 0x32, 0x3a, 0x51, 0xe6, 0xc0, 0x63, 0xd2, 0x03, 0x88, 0x13, 0x80, 0x91, 0x27, 0x61, 0xfc, 0x34, 0x10, 0x83, 0x90, 0x95, 0xf2, 0x6c, 0x0e, 0x68, 0x7a, 0x00, 0x70, 0x54, 0x95, 0xe1, 0x71, -+ 0xb5, 0x71, 0x51, 0xac, 0xe0, 0x49, 0x8e, 0x30, 0xf1, 0x4c, 0xa9, 0xb0, 0x2f, 0x6e, 0x40, 0x83, 0x18, 0x54, 0xc2, 0xe0, 0xab, 0x1e, 0xcd, 0x0c, 0x21, 0xd8, 0xe4, 0xc7, 0xe6, 0x69, 0xcd, 0x72, -+ 0x82, 0x30, 0xb9, 0xd1, 0x1f, 0x72, 0xc2, 0x66, 0xe3, 0x44, 0x66, 0xf9, 0xc0, 0x15, 0x9e, 0xf4, 0x24, 0xf8, 0xf3, 0x1d, 0x95, 0xa5, 0x7b, 0xa0, 0xe2, 0x10, 0x54, 0x3c, 0x10, 0xc6, 0x50, 0x3f, -+ 0xb5, 0xc6, 0x3e, 0xd2, 0x3a, 0xa3, 0x6c, 0xd6, 0xa6, 0xf3, 0x78, 0x26, 0x1b, 0x0b, 0x1e, 0x79, 0x50, 0x9d, 0x8b, 0xeb, 0x36, 0xaa, 0x26, 0x3d, 0xc9, 0x15, 0x45, 0xe5, 0x33, 0x69, 0xdf, 0x26, -+ 0x83, 0x7f, 0x39, 0x4c, 0x56, 0x77, 0x7c, 0x95, 0xb6, 0x48, 0xbd, 0x1a, 0x72, 0x92, 0x1a, 0xbf, 0x49, 0x56, 0x3f, 0x99, 0xcb, 0x9d, 0x98, 0xea, 0xb5, 0xc6, 0x66, 0x66, 0xf6, 0xb1, 0x6f, 0x74, -+ 0x02, 0x24, 0x81, 0xfa, 0x21, 0x4e, 0x61, 0x76, 0x98, 0xd3, 0xbb, 0xd1, 0x3c, 0xb3, 0x08, 0x71, 0x3f, 0xdc, 0xc7, 0xcf, 0xd3, 0x97, 0xb9, 0xca, 0x39, 0xaf, 0xf4, 0xc7, 0x44, 0xd5, 0x71, 0x5d, -+ 0x58, 0x96, 0x6f, 0x2c, 0xf9, 0x70, 0x70, 0x15, 0xc8, 0xf3, 0x54, 0x3e, 0xd2, 0x86, 0xa3, 0xd8, 0xd5, 0xcb, 0xf6, 0x4a, 0xce, 0xdf, 0xc0, 0x29, 0x71, 0xa9, 0x10, 0x72, 0xc6, 0x9d, 0x2e, 0xf4, -+ 0x98, 0x29, 0xf1, 0x03, 0x7f, 0x05, 0x0c, 0x5b, 0x92, 0x22, 0x98, 0x56, 0xcb, 0x12, 0xb4, 0x56, 0xcc, 0x09, 0x52, 0x82, 0xa6, 0x26, 0x87, 0xea, 0x38, 0xc9, 0x77, 0x8a, 0xea, 0x49, 0x1d, 0xff, -+ 0x06, 0x97, 0x11, 0xfb, 0xbe, 0x05, 0xe8, 0xcd, 0x9b, 0xf4, 0x4a, 0x8e, 0x71, 0x26, 0x19, 0x57, 0x3e, 0x12, 0xea, 0xa7, 0xb2, 0x38, 0x29, 0xdc, 0x67, 0x26, 0xbf, 0xe3, 0x3d, 0xa1, 0x36, 0xb8, -+ 0x1e, 0x15, 0x32, 0x51, 0x50, 0x8f, 0x62, 0x85, 0xba, 0x15, 0xb2, 0xc1, 0x23, 0x76, 0x77, 0xfe, 0x5b, 0x14, 0xb4, 0xe3, 0x3f, 0x98, 0xc3, 0x26, 0xbc, 0x58, 0xb9, 0xd8, 0xe0, 0x75, 0xa2, 0x5b, -+ 0x94, 0xc8, 0xa2, 0x32, 0x33, 0x02, 0x9d, 0xcc, 0x78, 0x6b, 0x13, 0x5c, 0x56, 0x16, 0x4b, 0xa3, 0xd1, 0x60, 0xcb, 0xce, 0xa8, 0x54, 0xb7, 0x97, 0x1f, 0x9c, 0xd7, 0x3a, 0x38, 0x3a, 0xac, 0x05, -+ 0x0a, 0x30, 0x2a, 0xd8, 0x3b, 0x3e, 0x3a, 0xb9, 0x02, 0x46, 0xad, 0x16, 0x0a, 0x32, 0x1d, 0x33, 0x0a, 0xcd, 0xec, 0x7c, 0xa6, 0x64, 0x3d, 0x7e, 0xc0, 0x1f, 0x91, 0x69, 0x1f, 0x16, 0x32, 0x5b, -+ 0xdf, 0x39, 0x69, 0x50, 0xb8, 0x8d, 0xaf, 0xe3, 0x69, 0xc6, 0x54, 0xb8, 0x52, 0x05, 0x5c, 0x97, 0x03, 0x62, 0xc6, 0x13, 0x80, 0x46, 0x07, 0x57, 0xc6, 0x58, 0x90, 0xf4, 0xe5, 0x92, 0x22, 0xe4, -+ 0xa4, 0x06, 0x0b, 0x26, 0xc0, 0xeb, 0xc1, 0x01, 0x97, 0x59, 0x0d, 0xe3, 0xc8, 0xf0, 0x95, 0x5d, 0x65, 0x4b, 0x37, 0x1c, 0xcb, 0x90, 0xac, 0xa3, 0x71, 0xb2, 0x94, 0x47, 0x6c, 0x16, 0xa4, 0x59, -+ 0x6a, 0x1d, 0xe8, 0x30, 0x9e, 0x2a, 0x36, 0x12, 0xc6, 0x9b, 0x71, 0x25, 0x31, 0x05, 0x01, 0xe0, 0xc0, 0x49, 0xb8, 0x74, 0x40, 0xd9, 0xa6, 0xd0, 0xec, 0xb9, 0x99, 0xc9, 0xa0, 0x94, 0x2a, 0xa3, -+ 0x40, 0xf6, 0x03, 0x65, 0xea, 0xfd, 0x46, 0x5f, 0xc6, 0x4a, 0x0c, 0x5f, 0x8f, 0x3f, 0x90, 0x03, 0x48, 0x94, 0x15, 0x89, 0x9d, 0x59, 0xa5, 0x43, 0xd8, 0x20, 0x8c, 0x54, 0xa3, 0x16, 0x65, 0x29, -+ 0xb5, 0x39, 0x22, -+ }, -+ .secret_len = 32, -+ .secret = { -+ 0xed, 0x20, 0x14, 0x0c, 0x05, 0xd7, 0x8b, 0x15, 0xf2, 0xe4, 0x12, 0x67, 0x1a, 0x84, 0x15, 0x42, 0x17, 0xfd, 0x77, 0x61, 0x9a, 0x2c, 0x52, 0x2d, 0x3c, 0x3c, 0xb6, 0x88, 0xcb, 0x34, 0xc6, 0x8b, -+ }, -+ .cipher_len = 1088, -+ .cipher = { -+ 0xea, 0xdd, 0x5a, 0xda, 0x14, 0xda, 0x57, 0xf0, 0xae, 0xf3, 0x50, 0x5f, 0x1c, 0xaa, 0x64, 0x85, 0xd4, 0x23, 0x8d, 0x99, 0x9a, 0x3e, 0xf4, 0xb0, 0xa5, 0x9a, 0x1c, 0xdb, 0xe0, 0xa2, 0x7e, 0x47, -+ 0x85, 0x47, 0xa3, 0xa9, 0x9d, 0x2a, 0xb0, 0x9a, 0xc7, 0xd7, 0xc8, 0xf5, 0xae, 0x3d, 0x64, 0x32, 0x04, 0x5c, 0xba, 0x3f, 0xa7, 0x78, 0x34, 0x58, 0x92, 0x54, 0x2b, 0xd8, 0x1c, 0x05, 0xbe, 0xfc, -+ 0xd2, 0xe5, 0xcc, 0x9a, 0x57, 0x9b, 0xef, 0xb7, 0xc5, 0x8d, 0x02, 0xfb, 0x94, 0xf3, 0x33, 0x92, 0xfe, 0x17, 0xf4, 0xeb, 0xa2, 0xcb, 0x51, 0x0e, 0xc7, 0x4c, 0xc9, 0xd1, 0xd8, 0xa8, 0x7c, 0x10, -+ 0x66, 0xa4, 0x86, 0x9a, 0x39, 0x83, 0xe6, 0x64, 0xbf, 0xe9, 0xde, 0xa5, 0xae, 0x4f, 0xdf, 0x31, 0x0c, 0x8f, 0x59, 0x81, 0x5a, 0x67, 0x8f, 0xa3, 0x25, 0xf3, 0x69, 0xaf, 0x84, 0xff, 0xeb, 0xc1, -+ 0xd1, 0x50, 0x43, 0x1f, 0xe3, 0xbd, 0x27, 0x34, 0xf6, 0x36, 0xcf, 0x65, 0x8e, 0x6c, 0x1a, 0x6a, 0x6e, 0x2c, 0xbe, 0x07, 0x1f, 0x9a, 0x7c, 0x26, 0x11, 0x9a, 0xd1, 0x05, 0x09, 0x8e, 0xda, 0x62, -+ 0x2c, 0xab, 0x8e, 0x17, 0x67, 0x62, 0x10, 0x98, 0x77, 0xd9, 0xae, 0x9d, 0x67, 0x29, 0xd4, 0x4a, 0x58, 0xe7, 0x07, 0xd6, 0xb8, 0xad, 0x6e, 0x69, 0x6a, 0x33, 0xc6, 0x72, 0xda, 0x9d, 0x08, 0xda, -+ 0x2a, 0x7f, 0x9e, 0x3b, 0xf0, 0x22, 0x18, 0x23, 0x87, 0x22, 0xa4, 0x6b, 0x31, 0xd4, 0x9d, 0xaf, 0xf9, 0xaf, 0x00, 0xa6, 0x36, 0x3c, 0x3a, 0x42, 0x3b, 0x2e, 0x87, 0x3d, 0xef, 0xdd, 0xbc, 0xd9, -+ 0x69, 0xb7, 0x5a, 0x81, 0x05, 0x3d, 0x9a, 0x97, 0xc0, 0x6d, 0xe2, 0xbf, 0xe3, 0xd0, 0xcf, 0xd3, 0xd3, 0xc7, 0x79, 0x83, 0xb1, 0x8d, 0xbd, 0xe2, 0x3c, 0x07, 0x28, 0x60, 0x4a, 0x71, 0x43, 0x5a, -+ 0xd4, 0x0d, 0xf1, 0x57, 0x90, 0x96, 0xdd, 0xbe, 0x02, 0xe4, 0x61, 0x22, 0x10, 0xca, 0xa0, 0x34, 0xdc, 0xef, 0xb8, 0xb4, 0xd7, 0xb5, 0xe6, 0xd2, 0xeb, 0xa3, 0x7a, 0x79, 0xfb, 0x61, 0xf3, 0x4b, -+ 0x5a, 0xf7, 0xd9, 0xb2, 0x7b, 0x13, 0xe4, 0x93, 0x62, 0x22, 0x41, 0x12, 0x49, 0xb7, 0xfb, 0xb6, 0x9e, 0x73, 0x46, 0x1d, 0xaf, 0x4a, 0xa6, 0xf3, 0xe2, 0xc7, 0x39, 0x44, 0xf1, 0x0c, 0xe6, 0x7c, -+ 0x86, 0xfe, 0xd2, 0x60, 0xbd, 0xa7, 0xb4, 0x0d, 0xb3, 0x9b, 0x1d, 0xe3, 0xc7, 0xd8, 0xf0, 0x9a, 0x77, 0xf3, 0xc8, 0x4b, 0xc6, 0x29, 0x31, 0xd2, 0x28, 0xb2, 0x4a, 0x57, 0x4a, 0xc3, 0xf4, 0xeb, -+ 0x74, 0x5c, 0xff, 0x7e, 0x03, 0x1a, 0x3f, 0xb2, 0xa0, 0x85, 0x95, 0xc1, 0x53, 0x70, 0xa3, 0xc8, 0x2d, 0xb7, 0xd9, 0xf4, 0x1b, 0xb1, 0xd8, 0xec, 0xc4, 0x29, 0xcf, 0xa3, 0xa6, 0x58, 0x33, 0x01, -+ 0x6a, 0xb6, 0xea, 0x60, 0xc9, 0x39, 0x0c, 0xfa, 0x1b, 0x65, 0xcc, 0xea, 0xe5, 0x50, 0x94, 0x07, 0x95, 0x38, 0x6e, 0xd2, 0x41, 0x33, 0xfb, 0xae, 0x8b, 0x30, 0x17, 0x50, 0x2a, 0xf3, 0xcf, 0xe9, -+ 0x51, 0xd7, 0x81, 0xd3, 0x6c, 0xfe, 0xff, 0x85, 0xbf, 0xdf, 0x5a, 0xf0, 0x40, 0xbe, 0x40, 0x65, 0x68, 0x1b, 0x3b, 0x0a, 0x63, 0xc2, 0x74, 0x7f, 0x08, 0x08, 0xcf, 0x3d, 0xa7, 0x25, 0x16, 0x9d, -+ 0xde, 0xd1, 0x00, 0x3d, 0xa6, 0xcd, 0x5d, 0xe4, 0xcb, 0x04, 0x19, 0x42, 0x93, 0x8d, 0x0a, 0x7f, 0x88, 0x02, 0xd4, 0x8f, 0x2e, 0x3c, 0x6e, 0xeb, 0x45, 0xcd, 0x90, 0xaf, 0x6f, 0xc9, 0xf4, 0x50, -+ 0x7e, 0x9f, 0x83, 0x80, 0xac, 0x33, 0xca, 0xca, 0x77, 0x51, 0x48, 0x7f, 0x65, 0x50, 0x04, 0x41, 0xd9, 0x20, 0xb9, 0x48, 0x80, 0xa4, 0x97, 0xd0, 0x1c, 0x08, 0x02, 0xbb, 0x08, 0xd7, 0x4c, 0x5d, -+ 0x4c, 0x6b, 0xf2, 0xd8, 0x65, 0xee, 0x58, 0x22, 0xb3, 0x37, 0x5c, 0x75, 0x5d, 0x1a, 0x5e, 0x3d, 0x32, 0x44, 0xc3, 0x20, 0x51, 0x0a, 0x1e, 0x30, 0x35, 0x77, 0x02, 0xcd, 0x42, 0x52, 0x07, 0x2c, -+ 0xf8, 0x64, 0x37, 0xf7, 0xa9, 0xde, 0x55, 0x61, 0xc7, 0xe5, 0x9b, 0x94, 0xb9, 0x58, 0x41, 0x00, 0x13, 0x1a, 0xc3, 0x99, 0xf4, 0xc1, 0xeb, 0x19, 0xfb, 0x4b, 0xdf, 0x65, 0xe6, 0x27, 0x85, 0xe9, -+ 0x7c, 0x19, 0x4b, 0x87, 0x64, 0xcc, 0xf3, 0x2f, 0xd0, 0x5d, 0x80, 0x4c, 0x2e, 0x43, 0x9d, 0xda, 0x2a, 0x10, 0x92, 0x74, 0xfb, 0xff, 0xa8, 0x1a, 0x83, 0x7c, 0x51, 0xb2, 0x6d, 0x15, 0x4f, 0x97, -+ 0x4b, 0x88, 0x2a, 0x5b, 0x17, 0x4b, 0x30, 0x8f, 0xc4, 0x87, 0x68, 0xd2, 0x22, 0x92, 0x25, 0x32, 0xb1, 0x83, 0xab, 0xdf, 0x6f, 0xbb, 0x0b, 0xc7, 0x49, 0x27, 0x66, 0x97, 0x4d, 0x32, 0x1e, 0xe6, -+ 0xfb, 0x7c, 0x5f, 0x7b, 0x3e, 0xea, 0x23, 0x78, 0xdc, 0x6d, 0x6b, 0xb4, 0x80, 0x19, 0x25, 0x0b, 0x8d, 0x8d, 0x8d, 0xed, 0xb5, 0x22, 0x42, 0x1a, 0xee, 0xdb, 0x31, 0x86, 0x76, 0x98, 0x2a, 0x80, -+ 0xe7, 0x96, 0x1e, 0xc4, 0x0e, 0x6d, 0x7f, 0x33, 0x39, 0x69, 0x42, 0x55, 0xba, 0xff, 0x51, 0xbe, 0x3a, 0x7e, 0xa7, 0xd8, 0x79, 0x3a, 0x10, 0x9b, 0xe3, 0xae, 0x44, 0x23, 0xbf, 0x08, 0x2e, 0x20, -+ 0x6a, 0x57, 0x3b, 0x4f, 0x0f, 0x93, 0xfc, 0x16, 0xdd, 0xe8, 0x1b, 0xd5, 0xdc, 0x58, 0x3f, 0x52, 0x8c, 0x08, 0xa0, 0xa9, 0xab, 0x8e, 0x6c, 0xd5, 0x24, 0xe2, 0x97, 0xc9, 0xcf, 0x0f, 0x43, 0xc3, -+ 0x44, 0x91, 0x38, 0x30, 0xec, 0xb1, 0x6f, 0x91, 0x44, 0x14, 0x77, 0xba, 0x78, 0x2e, 0xdd, 0x4e, 0x73, 0xe7, 0x32, 0x97, 0x9d, 0x3a, 0x66, 0x4e, 0xb9, 0x9e, 0xa5, 0xd2, 0x4b, 0x6c, 0x84, 0xaa, -+ 0x69, 0xf3, 0x77, 0xcb, 0x0c, 0xad, 0x5a, 0xe4, 0xe6, 0x41, 0xe3, 0x8b, 0x19, 0x7a, 0x09, 0x94, 0xd5, 0x8b, 0x23, 0x87, 0xe9, 0x17, 0x60, 0xe9, 0xb6, 0xfe, 0xbc, 0xb4, 0x45, 0xcf, 0x85, 0xbb, -+ 0xa2, 0x4a, 0x94, 0xcd, 0xa7, 0x5e, 0x33, 0x86, 0x74, 0x42, 0x82, 0x49, 0xfe, 0x6d, 0xe4, 0x69, 0x26, 0x01, 0xd1, 0xea, 0xe0, 0xea, 0x02, 0x1d, 0x9b, 0xc8, 0x07, 0x7b, 0xe8, 0x66, 0x5d, 0x07, -+ 0x37, 0x74, 0x8f, 0xa3, 0x0f, 0xcf, 0x80, 0xf7, 0xe4, 0x82, 0x58, 0x46, 0x74, 0xf6, 0x33, 0xa5, 0x00, 0x6a, 0x53, 0x82, 0x67, 0x62, 0x7f, 0xd9, 0x18, 0x54, 0xe0, 0x87, 0x12, 0x68, 0xa6, 0xb0, -+ 0xb0, 0x5d, 0xd5, 0x14, 0x95, 0x13, 0x5d, 0xef, 0xb9, 0x37, 0x6e, 0x9b, 0x84, 0x1b, 0x64, 0xe5, 0xdb, 0xf4, 0x3c, 0xe6, 0xc7, 0x4b, 0xcf, 0x3a, 0xe1, 0xfc, 0x42, 0x7e, 0x81, 0x0b, 0x7c, 0xbf, -+ 0x69, 0x57, 0xdb, 0xf9, 0x04, 0x69, 0x0e, 0x87, 0x84, 0x25, 0x43, 0x89, 0x7d, 0xe7, 0x8f, 0x13, 0xd0, 0x8d, 0x92, 0xeb, 0xd2, 0x7f, 0xb2, 0xcf, 0xcc, 0x0c, 0x76, 0x54, 0x30, 0x58, 0x90, 0x57, -+ 0xb1, 0x6b, 0x15, 0xf2, 0x07, 0xca, 0x1e, 0x6f, 0x08, 0xd5, 0x26, 0x16, 0xdd, 0x57, 0xad, 0x43, 0xef, 0xea, 0x6f, 0xdd, 0xaa, 0xea, 0x18, 0xd3, 0x37, 0x31, 0xfa, 0xc7, 0xec, 0xaa, 0xe9, 0x50, -+ 0xe1, 0xdf, 0x3c, 0x5a, 0x4e, 0x6f, 0xcb, 0x22, 0x3d, 0xf5, 0xe8, 0x6b, 0x48, 0x7f, 0xd7, 0x09, 0x2d, 0x08, 0x22, 0xef, 0xfa, 0xec, 0x82, 0xc4, 0xbe, 0xc1, 0x0c, 0x60, 0x0f, 0xdb, 0x90, 0xe7, -+ 0x74, 0x82, 0x91, 0x1b, 0x15, 0x95, 0x27, 0x77, 0x38, 0x84, 0x14, 0x09, 0xd0, 0xf8, 0xf1, 0x13, 0x19, 0x1d, 0x47, 0xf5, 0xe5, 0x6c, 0x11, 0x5a, 0x05, 0xde, 0xa7, 0x59, 0xaa, 0x6f, 0xb1, 0xd0, -+ 0x47, 0xf9, 0xfc, 0xa4, 0xed, 0x51, 0x9e, 0xa5, 0xd2, 0x1f, 0xe3, 0xba, 0x5b, 0x94, 0x34, 0xfe, 0xa1, 0x28, 0x3d, 0xfa, 0xd6, 0x3d, 0x01, 0x58, 0x9b, 0x0e, 0xb6, 0x1f, 0x24, 0x43, 0x51, 0xd0, -+ 0x33, 0x41, 0xdc, 0xd4, 0xdf, 0x62, 0x26, 0x5a, 0xfc, 0xae, 0xc6, 0x67, 0x6a, 0x87, 0x7d, 0x5c, 0xac, 0xb3, 0x59, 0xeb, 0xb5, 0x31, 0x96, 0x10, 0xdd, 0x44, 0x7d, 0xa9, 0x7e, 0x95, 0x0b, 0x0c, -+ }, -+ }, -+ { -+ .name = "Kyber Round 2, 786 KAT 0", -+ .version = 0, -+ .keyform = CK_IBM_KYBER_KEYFORM_ROUND2_768, -+ .sk_len = 2400, -+ .sk = { -+ 0x07, 0x63, 0x8F, 0xB6, 0x98, 0x68, 0xF3, 0xD3, 0x20, 0xE5, 0x86, 0x2B, 0xD9, 0x69, 0x33, 0xFE, 0xB3, 0x11, 0xB3, 0x62, 0x09, 0x3C, 0x9B, 0x5D, 0x50, 0x17, 0x0B, 0xCE, 0xD4, 0x3F, 0x1B, 0x53, -+ 0x6D, 0x9A, 0x20, 0x4B, 0xB1, 0xF2, 0x26, 0x95, 0x95, 0x0B, 0xA1, 0xF2, 0xA9, 0xE8, 0xEB, 0x82, 0x8B, 0x28, 0x44, 0x88, 0x76, 0x0B, 0x3F, 0xC8, 0x4F, 0xAB, 0xA0, 0x42, 0x75, 0xD5, 0x62, 0x8E, -+ 0x39, 0xC5, 0xB2, 0x47, 0x13, 0x74, 0x28, 0x3C, 0x50, 0x32, 0x99, 0xC0, 0xAB, 0x49, 0xB6, 0x6B, 0x8B, 0xBB, 0x56, 0xA4, 0x18, 0x66, 0x24, 0xF9, 0x19, 0xA2, 0xBA, 0x59, 0xBB, 0x08, 0xD8, 0x55, -+ 0x18, 0x80, 0xC2, 0xBE, 0xFC, 0x4F, 0x87, 0xF2, 0x5F, 0x59, 0xAB, 0x58, 0x7A, 0x79, 0xC3, 0x27, 0xD7, 0x92, 0xD5, 0x4C, 0x97, 0x4A, 0x69, 0x26, 0x2F, 0xF8, 0xA7, 0x89, 0x38, 0x28, 0x9E, 0x9A, -+ 0x87, 0xB6, 0x88, 0xB0, 0x83, 0xE0, 0x59, 0x5F, 0xE2, 0x18, 0xB6, 0xBB, 0x15, 0x05, 0x94, 0x1C, 0xE2, 0xE8, 0x1A, 0x5A, 0x64, 0xC5, 0xAA, 0xC6, 0x04, 0x17, 0x25, 0x69, 0x85, 0x34, 0x9E, 0xE4, -+ 0x7A, 0x52, 0x42, 0x0A, 0x5F, 0x97, 0x47, 0x7B, 0x72, 0x36, 0xAC, 0x76, 0xBC, 0x70, 0xE8, 0x28, 0x87, 0x29, 0x28, 0x7E, 0xE3, 0xE3, 0x4A, 0x3D, 0xBC, 0x36, 0x83, 0xC0, 0xB7, 0xB1, 0x00, 0x29, -+ 0xFC, 0x20, 0x34, 0x18, 0x53, 0x7E, 0x74, 0x66, 0xBA, 0x63, 0x85, 0xA8, 0xFF, 0x30, 0x1E, 0xE1, 0x27, 0x08, 0xF8, 0x2A, 0xAA, 0x1E, 0x38, 0x0F, 0xC7, 0xA8, 0x8F, 0x8F, 0x20, 0x5A, 0xB7, 0xE8, -+ 0x8D, 0x7E, 0x95, 0x95, 0x2A, 0x55, 0xBA, 0x20, 0xD0, 0x9B, 0x79, 0xA4, 0x71, 0x41, 0xD6, 0x2B, 0xF6, 0xEB, 0x7D, 0xD3, 0x07, 0xB0, 0x8E, 0xCA, 0x13, 0xA5, 0xBC, 0x5F, 0x6B, 0x68, 0x58, 0x1C, -+ 0x68, 0x65, 0xB2, 0x7B, 0xBC, 0xDD, 0xAB, 0x14, 0x2F, 0x4B, 0x2C, 0xBF, 0xF4, 0x88, 0xC8, 0xA2, 0x27, 0x05, 0xFA, 0xA9, 0x8A, 0x2B, 0x9E, 0xEA, 0x35, 0x30, 0xC7, 0x66, 0x62, 0x33, 0x5C, 0xC7, -+ 0xEA, 0x3A, 0x00, 0x77, 0x77, 0x25, 0xEB, 0xCC, 0xCD, 0x2A, 0x46, 0x36, 0xB2, 0xD9, 0x12, 0x2F, 0xF3, 0xAB, 0x77, 0x12, 0x3C, 0xE0, 0x88, 0x3C, 0x19, 0x11, 0x11, 0x5E, 0x50, 0xC9, 0xE8, 0xA9, -+ 0x41, 0x94, 0xE4, 0x8D, 0xD0, 0xD0, 0x9C, 0xFF, 0xB3, 0xAD, 0xCD, 0x2C, 0x1E, 0x92, 0x43, 0x09, 0x03, 0xD0, 0x7A, 0xDB, 0xF0, 0x05, 0x32, 0x03, 0x15, 0x75, 0xAA, 0x7F, 0x9E, 0x7B, 0x5A, 0x1F, -+ 0x33, 0x62, 0xDE, 0xC9, 0x36, 0xD4, 0x04, 0x3C, 0x05, 0xF2, 0x47, 0x6C, 0x07, 0x57, 0x8B, 0xC9, 0xCB, 0xAF, 0x2A, 0xB4, 0xE3, 0x82, 0x72, 0x7A, 0xD4, 0x16, 0x86, 0xA9, 0x6B, 0x25, 0x48, 0x82, -+ 0x0B, 0xB0, 0x3B, 0x32, 0xF1, 0x1B, 0x28, 0x11, 0xAD, 0x62, 0xF4, 0x89, 0xE9, 0x51, 0x63, 0x2A, 0xBA, 0x0D, 0x1D, 0xF8, 0x96, 0x80, 0xCC, 0x8A, 0x8B, 0x53, 0xB4, 0x81, 0xD9, 0x2A, 0x68, 0xD7, -+ 0x0B, 0x4E, 0xA1, 0xC3, 0xA6, 0xA5, 0x61, 0xC0, 0x69, 0x28, 0x82, 0xB5, 0xCA, 0x8C, 0xC9, 0x42, 0xA8, 0xD4, 0x95, 0xAF, 0xCB, 0x06, 0xDE, 0x89, 0x49, 0x8F, 0xB9, 0x35, 0xB7, 0x75, 0x90, 0x8F, -+ 0xE7, 0xA0, 0x3E, 0x32, 0x4D, 0x54, 0xCC, 0x19, 0xD4, 0xE1, 0xAA, 0xBD, 0x35, 0x93, 0xB3, 0x8B, 0x19, 0xEE, 0x13, 0x88, 0xFE, 0x49, 0x2B, 0x43, 0x12, 0x7E, 0x5A, 0x50, 0x42, 0x53, 0x78, 0x6A, -+ 0x0D, 0x69, 0xAD, 0x32, 0x60, 0x1C, 0x28, 0xE2, 0xC8, 0x85, 0x04, 0xA5, 0xBA, 0x59, 0x97, 0x06, 0x02, 0x3A, 0x61, 0x36, 0x3E, 0x17, 0xC6, 0xB9, 0xBB, 0x59, 0xBD, 0xC6, 0x97, 0x45, 0x2C, 0xD0, -+ 0x59, 0x45, 0x19, 0x83, 0xD7, 0x38, 0xCA, 0x3F, 0xD0, 0x34, 0xE3, 0xF5, 0x98, 0x88, 0x54, 0xCA, 0x05, 0x03, 0x1D, 0xB0, 0x96, 0x11, 0x49, 0x89, 0x88, 0x19, 0x7C, 0x6B, 0x30, 0xD2, 0x58, 0xDF, -+ 0xE2, 0x62, 0x65, 0x54, 0x1C, 0x89, 0xA4, 0xB3, 0x1D, 0x68, 0x64, 0xE9, 0x38, 0x9B, 0x03, 0xCB, 0x74, 0xF7, 0xEC, 0x43, 0x23, 0xFB, 0x94, 0x21, 0xA4, 0xB9, 0x79, 0x0A, 0x26, 0xD1, 0x7B, 0x03, -+ 0x98, 0xA2, 0x67, 0x67, 0x35, 0x09, 0x09, 0xF8, 0x4D, 0x57, 0xB6, 0x69, 0x4D, 0xF8, 0x30, 0x66, 0x4C, 0xA8, 0xB3, 0xC3, 0xC0, 0x3E, 0xD2, 0xAE, 0x67, 0xB8, 0x90, 0x06, 0x86, 0x8A, 0x68, 0x52, -+ 0x7C, 0xCD, 0x66, 0x64, 0x59, 0xAB, 0x7F, 0x05, 0x66, 0x71, 0x00, 0x0C, 0x61, 0x64, 0xD3, 0xA7, 0xF2, 0x66, 0xA1, 0x4D, 0x97, 0xCB, 0xD7, 0x00, 0x4D, 0x6C, 0x92, 0xCA, 0xCA, 0x77, 0x0B, 0x84, -+ 0x4A, 0x4F, 0xA9, 0xB1, 0x82, 0xE7, 0xB1, 0x8C, 0xA8, 0x85, 0x08, 0x2A, 0xC5, 0x64, 0x6F, 0xCB, 0x4A, 0x14, 0xE1, 0x68, 0x5F, 0xEB, 0x0C, 0x9C, 0xE3, 0x37, 0x2A, 0xB9, 0x53, 0x65, 0xC0, 0x4F, -+ 0xD8, 0x30, 0x84, 0xF8, 0x0A, 0x23, 0xFF, 0x10, 0xA0, 0x5B, 0xF1, 0x5F, 0x7F, 0xA5, 0xAC, 0xC6, 0xC0, 0xCB, 0x46, 0x2C, 0x33, 0xCA, 0x52, 0x4F, 0xA6, 0xB8, 0xBB, 0x35, 0x90, 0x43, 0xBA, 0x68, -+ 0x60, 0x9E, 0xAA, 0x25, 0x36, 0xE8, 0x1D, 0x08, 0x46, 0x3B, 0x19, 0x65, 0x3B, 0x54, 0x35, 0xBA, 0x94, 0x6C, 0x9A, 0xDD, 0xEB, 0x20, 0x2B, 0x04, 0xB0, 0x31, 0xCC, 0x96, 0x0D, 0xCC, 0x12, 0xE4, -+ 0x51, 0x8D, 0x42, 0x8B, 0x32, 0xB2, 0x57, 0xA4, 0xFC, 0x73, 0x13, 0xD3, 0xA7, 0x98, 0x0D, 0x80, 0x08, 0x2E, 0x93, 0x4F, 0x9D, 0x95, 0xC3, 0x2B, 0x0A, 0x01, 0x91, 0xA2, 0x36, 0x04, 0x38, 0x4D, -+ 0xD9, 0xE0, 0x79, 0xBB, 0xBA, 0xA2, 0x66, 0xD1, 0x4C, 0x3F, 0x75, 0x6B, 0x9F, 0x21, 0x33, 0x10, 0x74, 0x33, 0xA4, 0xE8, 0x3F, 0xA7, 0x18, 0x72, 0x82, 0xA8, 0x09, 0x20, 0x3A, 0x4F, 0xAF, 0x84, -+ 0x18, 0x51, 0x83, 0x3D, 0x12, 0x1A, 0xC3, 0x83, 0x84, 0x3A, 0x5E, 0x55, 0xBC, 0x23, 0x81, 0x42, 0x5E, 0x16, 0xC7, 0xDB, 0x4C, 0xC9, 0xAB, 0x5C, 0x1B, 0x0D, 0x91, 0xA4, 0x7E, 0x2B, 0x8D, 0xE0, -+ 0xE5, 0x82, 0xC8, 0x6B, 0x6B, 0x0D, 0x90, 0x7B, 0xB3, 0x60, 0xB9, 0x7F, 0x40, 0xAB, 0x5D, 0x03, 0x8F, 0x6B, 0x75, 0xC8, 0x14, 0xB2, 0x7D, 0x9B, 0x96, 0x8D, 0x41, 0x98, 0x32, 0xBC, 0x8C, 0x2B, -+ 0xEE, 0x60, 0x5E, 0xF6, 0xE5, 0x05, 0x9D, 0x33, 0x10, 0x0D, 0x90, 0x48, 0x5D, 0x37, 0x84, 0x50, 0x01, 0x42, 0x21, 0x73, 0x6C, 0x07, 0x40, 0x7C, 0xAC, 0x26, 0x04, 0x08, 0xAA, 0x64, 0x92, 0x66, -+ 0x19, 0x78, 0x8B, 0x86, 0x01, 0xC2, 0xA7, 0x52, 0xD1, 0xA6, 0xCB, 0xF8, 0x20, 0xD7, 0xC7, 0xA0, 0x47, 0x16, 0x20, 0x32, 0x25, 0xB3, 0x89, 0x5B, 0x93, 0x42, 0xD1, 0x47, 0xA8, 0x18, 0x5C, 0xFC, -+ 0x1B, 0xB6, 0x5B, 0xA0, 0x6B, 0x41, 0x42, 0x33, 0x99, 0x03, 0xC0, 0xAC, 0x46, 0x51, 0x38, 0x5B, 0x45, 0xD9, 0x8A, 0x8B, 0x19, 0xD2, 0x8C, 0xD6, 0xBA, 0xB0, 0x88, 0x78, 0x7F, 0x7E, 0xE1, 0xB1, -+ 0x24, 0x61, 0x76, 0x6B, 0x43, 0xCB, 0xCC, 0xB9, 0x64, 0x34, 0x42, 0x7D, 0x93, 0xC0, 0x65, 0x55, 0x06, 0x88, 0xF6, 0x94, 0x8E, 0xD1, 0xB5, 0x47, 0x5A, 0x42, 0x5F, 0x1B, 0x85, 0x20, 0x9D, 0x06, -+ 0x1C, 0x08, 0xB5, 0x6C, 0x1C, 0xC0, 0x69, 0xF6, 0xC0, 0xA7, 0xC6, 0xF2, 0x93, 0x58, 0xCA, 0xB9, 0x11, 0x08, 0x77, 0x32, 0xA6, 0x49, 0xD2, 0x7C, 0x9B, 0x98, 0xF9, 0xA4, 0x88, 0x79, 0x38, 0x7D, -+ 0x9B, 0x00, 0xC2, 0x59, 0x59, 0xA7, 0x16, 0x54, 0xD6, 0xF6, 0xA9, 0x46, 0x16, 0x45, 0x13, 0xE4, 0x7A, 0x75, 0xD0, 0x05, 0x98, 0x6C, 0x23, 0x63, 0xC0, 0x9F, 0x6B, 0x53, 0x7E, 0xCA, 0x78, 0xB9, -+ 0x30, 0x3A, 0x5F, 0xA4, 0x57, 0x60, 0x8A, 0x58, 0x6A, 0x65, 0x3A, 0x34, 0x7D, 0xB0, 0x4D, 0xFC, 0xC1, 0x91, 0x75, 0xB3, 0xA3, 0x01, 0x17, 0x25, 0x36, 0x06, 0x2A, 0x65, 0x8A, 0x95, 0x27, 0x75, -+ 0x70, 0xC8, 0x85, 0x2C, 0xA8, 0x97, 0x3F, 0x4A, 0xE1, 0x23, 0xA3, 0x34, 0x04, 0x7D, 0xD7, 0x11, 0xC8, 0x92, 0x7A, 0x63, 0x4A, 0x03, 0x38, 0x8A, 0x52, 0x7B, 0x03, 0x4B, 0xF7, 0xA8, 0x17, 0x0F, -+ 0xA7, 0x02, 0xC1, 0xF7, 0xC2, 0x3E, 0xC3, 0x2D, 0x18, 0xA2, 0x37, 0x48, 0x90, 0xBE, 0x9C, 0x78, 0x7A, 0x94, 0x09, 0xC8, 0x2D, 0x19, 0x2C, 0x4B, 0xB7, 0x05, 0xA2, 0xF9, 0x96, 0xCE, 0x40, 0x5D, -+ 0xA0, 0xB7, 0x1F, 0x67, 0xC6, 0xCE, 0xC0, 0xD3, 0x56, 0x86, 0xD5, 0x13, 0x42, 0x34, 0x32, 0xE5, 0x12, 0xAC, 0x40, 0x44, 0x55, 0x7E, 0x86, 0x8A, 0x62, 0x48, 0x00, 0x10, 0x9A, 0x33, 0x55, 0xF9, -+ 0x8F, 0x15, 0x14, 0x44, 0xE2, 0x85, 0x2E, 0x27, 0xEA, 0x6E, 0xDB, 0x19, 0x92, 0xCA, 0xD3, 0x97, 0x3C, 0x3A, 0x6F, 0xF7, 0x9A, 0x5A, 0x04, 0x9A, 0x25, 0x9E, 0xB5, 0x41, 0x5A, 0xA2, 0xA2, 0x62, -+ 0x45, 0x6E, 0xC9, 0x49, 0x5B, 0xBB, 0x52, 0x00, 0xD8, 0xD3, 0x16, 0x3A, 0x5B, 0x10, 0x22, 0x62, 0x92, 0xEC, 0xA0, 0x10, 0x21, 0x38, 0x9D, 0xA3, 0x78, 0x81, 0xE2, 0x76, 0x30, 0x65, 0x50, 0xC6, -+ 0xEF, 0xB6, 0x44, 0x0E, 0xC5, 0x1A, 0x2F, 0x73, 0x48, 0x34, 0x9B, 0x85, 0x1C, 0xD4, 0xAA, 0x01, 0x75, 0xA0, 0x55, 0x02, 0x13, 0xC4, 0x79, 0x1D, 0x91, 0x01, 0x12, 0x20, 0x82, 0x4B, 0x2B, 0x61, -+ 0x65, 0x08, 0x13, 0xAD, 0xFD, 0x2C, 0xB1, 0x05, 0x38, 0xBF, 0xAB, 0x0A, 0x72, 0x6F, 0x81, 0x12, 0x9E, 0xD2, 0xC0, 0xF0, 0x6A, 0x16, 0xB7, 0x01, 0x09, 0x0B, 0xF0, 0x48, 0xC5, 0xA4, 0x01, 0x26, -+ 0xD5, 0x72, 0xFC, 0xD4, 0x7A, 0xA1, 0x21, 0x8F, 0xB0, 0x15, 0x47, 0xD1, 0x50, 0x79, 0x2D, 0x23, 0x16, 0xCB, 0x32, 0x0D, 0x51, 0x44, 0xBA, 0x35, 0x08, 0xA1, 0xEB, 0xBB, 0x5A, 0xC1, 0xC2, 0x29, -+ 0x13, 0xE8, 0x29, 0x5F, 0xAB, 0x59, 0xBF, 0x58, 0x37, 0xA7, 0x78, 0xCF, 0x28, 0x22, 0x7E, 0x07, 0xE1, 0x03, 0x2D, 0xAB, 0x7D, 0x0E, 0x09, 0xA1, 0x5F, 0x13, 0x41, 0x48, 0xC1, 0x20, 0x09, 0xDA, -+ 0x53, 0x6B, 0x22, 0xCC, 0x62, 0x47, 0x4E, 0x69, 0xCC, 0x15, 0x54, 0xC0, 0x81, 0x4D, 0x6C, 0xA0, 0xB7, 0x22, 0x59, 0x43, 0x83, 0xA9, 0xD0, 0xA2, 0xC7, 0x7F, 0xD3, 0x65, 0xA5, 0x54, 0x42, 0x95, -+ 0xFB, 0xB9, 0x73, 0xF9, 0x1E, 0xA5, 0x64, 0x90, 0xD6, 0xCA, 0x68, 0x76, 0x49, 0x7B, 0x98, 0xB3, 0xCB, 0x12, 0x41, 0x7C, 0x25, 0x7B, 0x6D, 0x0F, 0x71, 0x83, 0xDB, 0xB6, 0x9E, 0x33, 0x07, 0x5B, -+ 0xEB, 0x01, 0x17, 0xB6, 0x91, 0x4C, 0x69, 0xBA, 0x38, 0x34, 0x94, 0x22, 0xF2, 0xF4, 0x33, 0x64, 0x82, 0x2A, 0x25, 0x70, 0x95, 0x2D, 0xD5, 0x07, 0x7B, 0x90, 0x75, 0x5F, 0x15, 0x74, 0x11, 0x5B, -+ 0x8E, 0x22, 0x14, 0x27, 0x58, 0x59, 0x61, 0x91, 0x3A, 0x9B, 0xFA, 0x05, 0x02, 0xB5, 0xD7, 0x9A, 0xB7, 0x81, 0x17, 0x44, 0xE6, 0x56, 0x3C, 0x5B, 0x62, 0xC5, 0xCC, 0x4E, 0x93, 0x23, 0x9A, 0x0A, -+ 0x8C, 0xC6, 0x0F, 0xE8, 0x48, 0xF8, 0x4A, 0x95, 0xF5, 0x90, 0x25, 0x99, 0xB5, 0x4A, 0x06, 0x62, 0x93, 0xA2, 0x02, 0x1D, 0xA1, 0x96, 0x76, 0x6C, 0x17, 0xC7, 0xE8, 0x63, 0xAF, 0x79, 0x0C, 0x27, -+ 0x0B, 0x21, 0x6A, 0x25, 0x13, 0x8D, 0xDA, 0x0C, 0x81, 0x26, 0xE0, 0x93, 0x77, 0x87, 0x98, 0x59, 0xDB, 0x35, 0x8F, 0x9B, 0x82, 0xB7, 0xC8, 0xA6, 0x79, 0x2A, 0xCE, 0xE9, 0x2A, 0x4C, 0xBD, 0xE3, -+ 0xCE, 0xDD, 0x45, 0x00, 0xAC, 0xBC, 0x55, 0x5C, 0x28, 0x8E, 0xFF, 0x97, 0x95, 0x26, 0x5B, 0x90, 0x05, 0x35, 0x1C, 0x52, 0xE2, 0x65, 0x35, 0x54, 0xAB, 0xAA, 0xF8, 0x72, 0xDF, 0x95, 0xCA, 0x7F, -+ 0x79, 0x59, 0x03, 0xF0, 0xB0, 0xA1, 0x82, 0xB1, 0x8A, 0xEB, 0x04, 0x75, 0xB2, 0x9F, 0x6E, 0x3A, 0xBF, 0x4C, 0x22, 0x50, 0xFE, 0x7B, 0x84, 0x2A, 0x73, 0x65, 0x50, 0x16, 0xA8, 0xFC, 0x72, 0x9F, -+ 0x39, 0x05, 0x07, 0xAC, 0xA9, 0x36, 0x82, 0x5A, 0x98, 0xB3, 0xA3, 0x2E, 0x6B, 0x25, 0x54, 0xCE, 0x95, 0x28, 0x94, 0x1A, 0x3B, 0xB8, 0xC9, 0x09, 0x96, 0x00, 0x8D, 0x74, 0xFB, 0xCD, 0x02, 0x0A, -+ 0x02, 0xE7, 0x06, 0xA6, 0xDE, 0x7B, 0x02, 0xAF, 0x40, 0x4C, 0x10, 0xDB, 0x00, 0xFA, 0xEC, 0x02, 0xD3, 0xEA, 0xA6, 0xD9, 0x56, 0x1A, 0x15, 0x65, 0xA7, 0xB0, 0x5C, 0x63, 0x66, 0xD0, 0x9D, 0xA7, -+ 0xA5, 0x37, 0xF2, 0x0C, 0x7B, 0x28, 0x59, 0xA8, 0x3E, 0x02, 0x9E, 0x13, 0xA9, 0xBD, 0x28, 0x91, 0x57, 0xC5, 0xB7, 0x4C, 0x84, 0xEA, 0xA3, 0x07, 0x75, 0x3D, 0x43, 0x12, 0x02, 0xA3, 0xD9, 0xB6, -+ 0x16, 0x22, 0x18, 0xBE, 0xC5, 0x34, 0x69, 0x45, 0xBF, 0xEF, 0x55, 0xB6, 0x24, 0xC5, 0xC6, 0xE3, 0x73, 0x35, 0x9B, 0xB1, 0xC4, 0x79, 0x95, 0x2B, 0xBA, 0xBA, 0x4D, 0x65, 0x55, 0xC2, 0x76, 0x57, -+ 0x3E, 0x51, 0x52, 0xB5, 0x53, 0x90, 0x19, 0x99, 0xF6, 0x94, 0x02, 0xD1, 0x50, 0xBE, 0xF7, 0x9D, 0x74, 0xFB, 0x29, 0x53, 0x01, 0x8F, 0xF4, 0x86, 0x66, 0x74, 0x6A, 0xCE, 0x60, 0x78, 0x14, 0xA1, -+ 0xFA, 0x33, 0x19, 0x57, 0x20, 0xF8, 0x38, 0x78, 0xD3, 0xB5, 0x75, 0xC7, 0x25, 0x74, 0x4A, 0x72, 0x07, 0x0D, 0xD0, 0x44, 0x01, 0x80, 0x42, 0xDA, 0x25, 0x71, 0x4D, 0x17, 0x30, 0x90, 0x32, 0x3A, -+ 0x51, 0xE6, 0xC0, 0x63, 0xD2, 0x03, 0x88, 0x13, 0x80, 0x91, 0x27, 0x61, 0xFC, 0x34, 0x10, 0x83, 0x90, 0x95, 0xF2, 0x6C, 0x0E, 0x68, 0x7A, 0x00, 0x70, 0x54, 0x95, 0xE1, 0x71, 0xB5, 0x71, 0x51, -+ 0xAC, 0xE0, 0x49, 0x8E, 0x30, 0xF1, 0x4C, 0xA9, 0xB0, 0x2F, 0x6E, 0x40, 0x83, 0x18, 0x54, 0xC2, 0xE0, 0xAB, 0x1E, 0xCD, 0x0C, 0x21, 0xD8, 0xE4, 0xC7, 0xE6, 0x69, 0xCD, 0x72, 0x82, 0x30, 0xB9, -+ 0xD1, 0x1F, 0x72, 0xC2, 0x66, 0xE3, 0x44, 0x66, 0xF9, 0xC0, 0x15, 0x9E, 0xF4, 0x24, 0xF8, 0xF3, 0x1D, 0x95, 0xA5, 0x7B, 0xA0, 0xE2, 0x10, 0x54, 0x3C, 0x10, 0xC6, 0x50, 0x3F, 0xB5, 0xC6, 0x3E, -+ 0xD2, 0x3A, 0xA3, 0x6C, 0xD6, 0xA6, 0xF3, 0x78, 0x26, 0x1B, 0x0B, 0x1E, 0x79, 0x50, 0x9D, 0x8B, 0xEB, 0x36, 0xAA, 0x26, 0x3D, 0xC9, 0x15, 0x45, 0xE5, 0x33, 0x69, 0xDF, 0x26, 0x83, 0x7F, 0x39, -+ 0x4C, 0x56, 0x77, 0x7C, 0x95, 0xB6, 0x48, 0xBD, 0x1A, 0x72, 0x92, 0x1A, 0xBF, 0x49, 0x56, 0x3F, 0x99, 0xCB, 0x9D, 0x98, 0xEA, 0xB5, 0xC6, 0x66, 0x66, 0xF6, 0xB1, 0x6F, 0x74, 0x02, 0x24, 0x81, -+ 0xFA, 0x21, 0x4E, 0x61, 0x76, 0x98, 0xD3, 0xBB, 0xD1, 0x3C, 0xB3, 0x08, 0x71, 0x3F, 0xDC, 0xC7, 0xCF, 0xD3, 0x97, 0xB9, 0xCA, 0x39, 0xAF, 0xF4, 0xC7, 0x44, 0xD5, 0x71, 0x5D, 0x58, 0x96, 0x6F, -+ 0x2C, 0xF9, 0x70, 0x70, 0x15, 0xC8, 0xF3, 0x54, 0x3E, 0xD2, 0x86, 0xA3, 0xD8, 0xD5, 0xCB, 0xF6, 0x4A, 0xCE, 0xDF, 0xC0, 0x29, 0x71, 0xA9, 0x10, 0x72, 0xC6, 0x9D, 0x2E, 0xF4, 0x98, 0x29, 0xF1, -+ 0x03, 0x7F, 0x05, 0x0C, 0x5B, 0x92, 0x22, 0x98, 0x56, 0xCB, 0x12, 0xB4, 0x56, 0xCC, 0x09, 0x52, 0x82, 0xA6, 0x26, 0x87, 0xEA, 0x38, 0xC9, 0x77, 0x8A, 0xEA, 0x49, 0x1D, 0xFF, 0x06, 0x97, 0x11, -+ 0xFB, 0xBE, 0x05, 0xE8, 0xCD, 0x9B, 0xF4, 0x4A, 0x8E, 0x71, 0x26, 0x19, 0x57, 0x3E, 0x12, 0xEA, 0xA7, 0xB2, 0x38, 0x29, 0xDC, 0x67, 0x26, 0xBF, 0xE3, 0x3D, 0xA1, 0x36, 0xB8, 0x1E, 0x15, 0x32, -+ 0x51, 0x50, 0x8F, 0x62, 0x85, 0xBA, 0x15, 0xB2, 0xC1, 0x23, 0x76, 0x77, 0xFE, 0x5B, 0x14, 0xB4, 0xE3, 0x3F, 0x98, 0xC3, 0x26, 0xBC, 0x58, 0xB9, 0xD8, 0xE0, 0x75, 0xA2, 0x5B, 0x94, 0xC8, 0xA2, -+ 0x32, 0x33, 0x02, 0x9D, 0xCC, 0x78, 0x6B, 0x13, 0x5C, 0x56, 0x16, 0x4B, 0xA3, 0xD1, 0x60, 0xCB, 0xCE, 0xA8, 0x54, 0xB7, 0x97, 0x1F, 0x9C, 0xD7, 0x3A, 0x38, 0x3A, 0xAC, 0x05, 0x0A, 0x30, 0x2A, -+ 0xD8, 0x3B, 0x3E, 0x3A, 0xB9, 0x02, 0x46, 0xAD, 0x16, 0x0A, 0x32, 0x1D, 0x33, 0x0A, 0xCD, 0xEC, 0x7C, 0xA6, 0x64, 0x3D, 0x7E, 0xC0, 0x1F, 0x91, 0x69, 0x1F, 0x16, 0x32, 0x5B, 0xDF, 0x39, 0x69, -+ 0x50, 0xB8, 0x8D, 0xAF, 0xE3, 0x69, 0xC6, 0x54, 0xB8, 0x52, 0x05, 0x5C, 0x97, 0x03, 0x62, 0xC6, 0x13, 0x80, 0x46, 0x07, 0x57, 0xC6, 0x58, 0x90, 0xF4, 0xE5, 0x92, 0x22, 0xE4, 0xA4, 0x06, 0x0B, -+ 0x26, 0xC0, 0xEB, 0xC1, 0x01, 0x97, 0x59, 0x0D, 0xE3, 0xC8, 0xF0, 0x95, 0x5D, 0x65, 0x4B, 0x37, 0x1C, 0xCB, 0x90, 0xAC, 0xA3, 0x71, 0xB2, 0x94, 0x47, 0x6C, 0x16, 0xA4, 0x59, 0x6A, 0x1D, 0xE8, -+ 0x30, 0x9E, 0x2A, 0x36, 0x12, 0xC6, 0x9B, 0x71, 0x25, 0x31, 0x05, 0x01, 0xE0, 0xC0, 0x49, 0xB8, 0x74, 0x40, 0xD9, 0xA6, 0xD0, 0xEC, 0xB9, 0x99, 0xC9, 0xA0, 0x94, 0x2A, 0xA3, 0x40, 0xF6, 0x03, -+ 0x65, 0xEA, 0xFD, 0x46, 0x5F, 0xC6, 0x4A, 0x0C, 0x5F, 0x8F, 0x3F, 0x90, 0x03, 0x48, 0x94, 0x15, 0x89, 0x9D, 0x59, 0xA5, 0x43, 0xD8, 0x20, 0x8C, 0x54, 0xA3, 0x16, 0x65, 0x29, 0xB5, 0x39, 0x22, -+ 0xDE, 0xE4, 0xAB, 0xA0, 0x00, 0x38, 0x95, 0x81, 0x71, 0x7D, 0x36, 0xF5, 0x6F, 0x39, 0xAF, 0x73, 0x00, 0xB3, 0x1D, 0x83, 0x1A, 0x4D, 0x8C, 0x97, 0x61, 0x28, 0xE0, 0x9D, 0xED, 0xE7, 0x1A, 0x5A, -+ 0x86, 0x26, 0xED, 0x79, 0xD4, 0x51, 0x14, 0x08, 0x00, 0xE0, 0x3B, 0x59, 0xB9, 0x56, 0xF8, 0x21, 0x0E, 0x55, 0x60, 0x67, 0x40, 0x7D, 0x13, 0xDC, 0x90, 0xFA, 0x9E, 0x8B, 0x87, 0x2B, 0xFB, 0x8F, -+ }, -+ .pk_len = 1184, -+ .pk = { -+ 0xA0, 0xB7, 0x1F, 0x67, 0xC6, 0xCE, 0xC0, 0xD3, 0x56, 0x86, 0xD5, 0x13, 0x42, 0x34, 0x32, 0xE5, 0x12, 0xAC, 0x40, 0x44, 0x55, 0x7E, 0x86, 0x8A, 0x62, 0x48, 0x00, 0x10, 0x9A, 0x33, 0x55, 0xF9, -+ 0x8F, 0x15, 0x14, 0x44, 0xE2, 0x85, 0x2E, 0x27, 0xEA, 0x6E, 0xDB, 0x19, 0x92, 0xCA, 0xD3, 0x97, 0x3C, 0x3A, 0x6F, 0xF7, 0x9A, 0x5A, 0x04, 0x9A, 0x25, 0x9E, 0xB5, 0x41, 0x5A, 0xA2, 0xA2, 0x62, -+ 0x45, 0x6E, 0xC9, 0x49, 0x5B, 0xBB, 0x52, 0x00, 0xD8, 0xD3, 0x16, 0x3A, 0x5B, 0x10, 0x22, 0x62, 0x92, 0xEC, 0xA0, 0x10, 0x21, 0x38, 0x9D, 0xA3, 0x78, 0x81, 0xE2, 0x76, 0x30, 0x65, 0x50, 0xC6, -+ 0xEF, 0xB6, 0x44, 0x0E, 0xC5, 0x1A, 0x2F, 0x73, 0x48, 0x34, 0x9B, 0x85, 0x1C, 0xD4, 0xAA, 0x01, 0x75, 0xA0, 0x55, 0x02, 0x13, 0xC4, 0x79, 0x1D, 0x91, 0x01, 0x12, 0x20, 0x82, 0x4B, 0x2B, 0x61, -+ 0x65, 0x08, 0x13, 0xAD, 0xFD, 0x2C, 0xB1, 0x05, 0x38, 0xBF, 0xAB, 0x0A, 0x72, 0x6F, 0x81, 0x12, 0x9E, 0xD2, 0xC0, 0xF0, 0x6A, 0x16, 0xB7, 0x01, 0x09, 0x0B, 0xF0, 0x48, 0xC5, 0xA4, 0x01, 0x26, -+ 0xD5, 0x72, 0xFC, 0xD4, 0x7A, 0xA1, 0x21, 0x8F, 0xB0, 0x15, 0x47, 0xD1, 0x50, 0x79, 0x2D, 0x23, 0x16, 0xCB, 0x32, 0x0D, 0x51, 0x44, 0xBA, 0x35, 0x08, 0xA1, 0xEB, 0xBB, 0x5A, 0xC1, 0xC2, 0x29, -+ 0x13, 0xE8, 0x29, 0x5F, 0xAB, 0x59, 0xBF, 0x58, 0x37, 0xA7, 0x78, 0xCF, 0x28, 0x22, 0x7E, 0x07, 0xE1, 0x03, 0x2D, 0xAB, 0x7D, 0x0E, 0x09, 0xA1, 0x5F, 0x13, 0x41, 0x48, 0xC1, 0x20, 0x09, 0xDA, -+ 0x53, 0x6B, 0x22, 0xCC, 0x62, 0x47, 0x4E, 0x69, 0xCC, 0x15, 0x54, 0xC0, 0x81, 0x4D, 0x6C, 0xA0, 0xB7, 0x22, 0x59, 0x43, 0x83, 0xA9, 0xD0, 0xA2, 0xC7, 0x7F, 0xD3, 0x65, 0xA5, 0x54, 0x42, 0x95, -+ 0xFB, 0xB9, 0x73, 0xF9, 0x1E, 0xA5, 0x64, 0x90, 0xD6, 0xCA, 0x68, 0x76, 0x49, 0x7B, 0x98, 0xB3, 0xCB, 0x12, 0x41, 0x7C, 0x25, 0x7B, 0x6D, 0x0F, 0x71, 0x83, 0xDB, 0xB6, 0x9E, 0x33, 0x07, 0x5B, -+ 0xEB, 0x01, 0x17, 0xB6, 0x91, 0x4C, 0x69, 0xBA, 0x38, 0x34, 0x94, 0x22, 0xF2, 0xF4, 0x33, 0x64, 0x82, 0x2A, 0x25, 0x70, 0x95, 0x2D, 0xD5, 0x07, 0x7B, 0x90, 0x75, 0x5F, 0x15, 0x74, 0x11, 0x5B, -+ 0x8E, 0x22, 0x14, 0x27, 0x58, 0x59, 0x61, 0x91, 0x3A, 0x9B, 0xFA, 0x05, 0x02, 0xB5, 0xD7, 0x9A, 0xB7, 0x81, 0x17, 0x44, 0xE6, 0x56, 0x3C, 0x5B, 0x62, 0xC5, 0xCC, 0x4E, 0x93, 0x23, 0x9A, 0x0A, -+ 0x8C, 0xC6, 0x0F, 0xE8, 0x48, 0xF8, 0x4A, 0x95, 0xF5, 0x90, 0x25, 0x99, 0xB5, 0x4A, 0x06, 0x62, 0x93, 0xA2, 0x02, 0x1D, 0xA1, 0x96, 0x76, 0x6C, 0x17, 0xC7, 0xE8, 0x63, 0xAF, 0x79, 0x0C, 0x27, -+ 0x0B, 0x21, 0x6A, 0x25, 0x13, 0x8D, 0xDA, 0x0C, 0x81, 0x26, 0xE0, 0x93, 0x77, 0x87, 0x98, 0x59, 0xDB, 0x35, 0x8F, 0x9B, 0x82, 0xB7, 0xC8, 0xA6, 0x79, 0x2A, 0xCE, 0xE9, 0x2A, 0x4C, 0xBD, 0xE3, -+ 0xCE, 0xDD, 0x45, 0x00, 0xAC, 0xBC, 0x55, 0x5C, 0x28, 0x8E, 0xFF, 0x97, 0x95, 0x26, 0x5B, 0x90, 0x05, 0x35, 0x1C, 0x52, 0xE2, 0x65, 0x35, 0x54, 0xAB, 0xAA, 0xF8, 0x72, 0xDF, 0x95, 0xCA, 0x7F, -+ 0x79, 0x59, 0x03, 0xF0, 0xB0, 0xA1, 0x82, 0xB1, 0x8A, 0xEB, 0x04, 0x75, 0xB2, 0x9F, 0x6E, 0x3A, 0xBF, 0x4C, 0x22, 0x50, 0xFE, 0x7B, 0x84, 0x2A, 0x73, 0x65, 0x50, 0x16, 0xA8, 0xFC, 0x72, 0x9F, -+ 0x39, 0x05, 0x07, 0xAC, 0xA9, 0x36, 0x82, 0x5A, 0x98, 0xB3, 0xA3, 0x2E, 0x6B, 0x25, 0x54, 0xCE, 0x95, 0x28, 0x94, 0x1A, 0x3B, 0xB8, 0xC9, 0x09, 0x96, 0x00, 0x8D, 0x74, 0xFB, 0xCD, 0x02, 0x0A, -+ 0x02, 0xE7, 0x06, 0xA6, 0xDE, 0x7B, 0x02, 0xAF, 0x40, 0x4C, 0x10, 0xDB, 0x00, 0xFA, 0xEC, 0x02, 0xD3, 0xEA, 0xA6, 0xD9, 0x56, 0x1A, 0x15, 0x65, 0xA7, 0xB0, 0x5C, 0x63, 0x66, 0xD0, 0x9D, 0xA7, -+ 0xA5, 0x37, 0xF2, 0x0C, 0x7B, 0x28, 0x59, 0xA8, 0x3E, 0x02, 0x9E, 0x13, 0xA9, 0xBD, 0x28, 0x91, 0x57, 0xC5, 0xB7, 0x4C, 0x84, 0xEA, 0xA3, 0x07, 0x75, 0x3D, 0x43, 0x12, 0x02, 0xA3, 0xD9, 0xB6, -+ 0x16, 0x22, 0x18, 0xBE, 0xC5, 0x34, 0x69, 0x45, 0xBF, 0xEF, 0x55, 0xB6, 0x24, 0xC5, 0xC6, 0xE3, 0x73, 0x35, 0x9B, 0xB1, 0xC4, 0x79, 0x95, 0x2B, 0xBA, 0xBA, 0x4D, 0x65, 0x55, 0xC2, 0x76, 0x57, -+ 0x3E, 0x51, 0x52, 0xB5, 0x53, 0x90, 0x19, 0x99, 0xF6, 0x94, 0x02, 0xD1, 0x50, 0xBE, 0xF7, 0x9D, 0x74, 0xFB, 0x29, 0x53, 0x01, 0x8F, 0xF4, 0x86, 0x66, 0x74, 0x6A, 0xCE, 0x60, 0x78, 0x14, 0xA1, -+ 0xFA, 0x33, 0x19, 0x57, 0x20, 0xF8, 0x38, 0x78, 0xD3, 0xB5, 0x75, 0xC7, 0x25, 0x74, 0x4A, 0x72, 0x07, 0x0D, 0xD0, 0x44, 0x01, 0x80, 0x42, 0xDA, 0x25, 0x71, 0x4D, 0x17, 0x30, 0x90, 0x32, 0x3A, -+ 0x51, 0xE6, 0xC0, 0x63, 0xD2, 0x03, 0x88, 0x13, 0x80, 0x91, 0x27, 0x61, 0xFC, 0x34, 0x10, 0x83, 0x90, 0x95, 0xF2, 0x6C, 0x0E, 0x68, 0x7A, 0x00, 0x70, 0x54, 0x95, 0xE1, 0x71, 0xB5, 0x71, 0x51, -+ 0xAC, 0xE0, 0x49, 0x8E, 0x30, 0xF1, 0x4C, 0xA9, 0xB0, 0x2F, 0x6E, 0x40, 0x83, 0x18, 0x54, 0xC2, 0xE0, 0xAB, 0x1E, 0xCD, 0x0C, 0x21, 0xD8, 0xE4, 0xC7, 0xE6, 0x69, 0xCD, 0x72, 0x82, 0x30, 0xB9, -+ 0xD1, 0x1F, 0x72, 0xC2, 0x66, 0xE3, 0x44, 0x66, 0xF9, 0xC0, 0x15, 0x9E, 0xF4, 0x24, 0xF8, 0xF3, 0x1D, 0x95, 0xA5, 0x7B, 0xA0, 0xE2, 0x10, 0x54, 0x3C, 0x10, 0xC6, 0x50, 0x3F, 0xB5, 0xC6, 0x3E, -+ 0xD2, 0x3A, 0xA3, 0x6C, 0xD6, 0xA6, 0xF3, 0x78, 0x26, 0x1B, 0x0B, 0x1E, 0x79, 0x50, 0x9D, 0x8B, 0xEB, 0x36, 0xAA, 0x26, 0x3D, 0xC9, 0x15, 0x45, 0xE5, 0x33, 0x69, 0xDF, 0x26, 0x83, 0x7F, 0x39, -+ 0x4C, 0x56, 0x77, 0x7C, 0x95, 0xB6, 0x48, 0xBD, 0x1A, 0x72, 0x92, 0x1A, 0xBF, 0x49, 0x56, 0x3F, 0x99, 0xCB, 0x9D, 0x98, 0xEA, 0xB5, 0xC6, 0x66, 0x66, 0xF6, 0xB1, 0x6F, 0x74, 0x02, 0x24, 0x81, -+ 0xFA, 0x21, 0x4E, 0x61, 0x76, 0x98, 0xD3, 0xBB, 0xD1, 0x3C, 0xB3, 0x08, 0x71, 0x3F, 0xDC, 0xC7, 0xCF, 0xD3, 0x97, 0xB9, 0xCA, 0x39, 0xAF, 0xF4, 0xC7, 0x44, 0xD5, 0x71, 0x5D, 0x58, 0x96, 0x6F, -+ 0x2C, 0xF9, 0x70, 0x70, 0x15, 0xC8, 0xF3, 0x54, 0x3E, 0xD2, 0x86, 0xA3, 0xD8, 0xD5, 0xCB, 0xF6, 0x4A, 0xCE, 0xDF, 0xC0, 0x29, 0x71, 0xA9, 0x10, 0x72, 0xC6, 0x9D, 0x2E, 0xF4, 0x98, 0x29, 0xF1, -+ 0x03, 0x7F, 0x05, 0x0C, 0x5B, 0x92, 0x22, 0x98, 0x56, 0xCB, 0x12, 0xB4, 0x56, 0xCC, 0x09, 0x52, 0x82, 0xA6, 0x26, 0x87, 0xEA, 0x38, 0xC9, 0x77, 0x8A, 0xEA, 0x49, 0x1D, 0xFF, 0x06, 0x97, 0x11, -+ 0xFB, 0xBE, 0x05, 0xE8, 0xCD, 0x9B, 0xF4, 0x4A, 0x8E, 0x71, 0x26, 0x19, 0x57, 0x3E, 0x12, 0xEA, 0xA7, 0xB2, 0x38, 0x29, 0xDC, 0x67, 0x26, 0xBF, 0xE3, 0x3D, 0xA1, 0x36, 0xB8, 0x1E, 0x15, 0x32, -+ 0x51, 0x50, 0x8F, 0x62, 0x85, 0xBA, 0x15, 0xB2, 0xC1, 0x23, 0x76, 0x77, 0xFE, 0x5B, 0x14, 0xB4, 0xE3, 0x3F, 0x98, 0xC3, 0x26, 0xBC, 0x58, 0xB9, 0xD8, 0xE0, 0x75, 0xA2, 0x5B, 0x94, 0xC8, 0xA2, -+ 0x32, 0x33, 0x02, 0x9D, 0xCC, 0x78, 0x6B, 0x13, 0x5C, 0x56, 0x16, 0x4B, 0xA3, 0xD1, 0x60, 0xCB, 0xCE, 0xA8, 0x54, 0xB7, 0x97, 0x1F, 0x9C, 0xD7, 0x3A, 0x38, 0x3A, 0xAC, 0x05, 0x0A, 0x30, 0x2A, -+ 0xD8, 0x3B, 0x3E, 0x3A, 0xB9, 0x02, 0x46, 0xAD, 0x16, 0x0A, 0x32, 0x1D, 0x33, 0x0A, 0xCD, 0xEC, 0x7C, 0xA6, 0x64, 0x3D, 0x7E, 0xC0, 0x1F, 0x91, 0x69, 0x1F, 0x16, 0x32, 0x5B, 0xDF, 0x39, 0x69, -+ 0x50, 0xB8, 0x8D, 0xAF, 0xE3, 0x69, 0xC6, 0x54, 0xB8, 0x52, 0x05, 0x5C, 0x97, 0x03, 0x62, 0xC6, 0x13, 0x80, 0x46, 0x07, 0x57, 0xC6, 0x58, 0x90, 0xF4, 0xE5, 0x92, 0x22, 0xE4, 0xA4, 0x06, 0x0B, -+ 0x26, 0xC0, 0xEB, 0xC1, 0x01, 0x97, 0x59, 0x0D, 0xE3, 0xC8, 0xF0, 0x95, 0x5D, 0x65, 0x4B, 0x37, 0x1C, 0xCB, 0x90, 0xAC, 0xA3, 0x71, 0xB2, 0x94, 0x47, 0x6C, 0x16, 0xA4, 0x59, 0x6A, 0x1D, 0xE8, -+ 0x30, 0x9E, 0x2A, 0x36, 0x12, 0xC6, 0x9B, 0x71, 0x25, 0x31, 0x05, 0x01, 0xE0, 0xC0, 0x49, 0xB8, 0x74, 0x40, 0xD9, 0xA6, 0xD0, 0xEC, 0xB9, 0x99, 0xC9, 0xA0, 0x94, 0x2A, 0xA3, 0x40, 0xF6, 0x03, -+ 0x65, 0xEA, 0xFD, 0x46, 0x5F, 0xC6, 0x4A, 0x0C, 0x5F, 0x8F, 0x3F, 0x90, 0x03, 0x48, 0x94, 0x15, 0x89, 0x9D, 0x59, 0xA5, 0x43, 0xD8, 0x20, 0x8C, 0x54, 0xA3, 0x16, 0x65, 0x29, 0xB5, 0x39, 0x22, -+ }, -+ .pkcs8_len = 0, -+ .spki_len = 0, -+ .secret_len = 32, -+ .secret = { -+ 0xed, 0x20, 0x14, 0x0c, 0x05, 0xd7, 0x8b, 0x15, 0xf2, 0xe4, 0x12, 0x67, 0x1a, 0x84, 0x15, 0x42, 0x17, 0xfd, 0x77, 0x61, 0x9a, 0x2c, 0x52, 0x2d, 0x3c, 0x3c, 0xb6, 0x88, 0xcb, 0x34, 0xc6, 0x8b, -+ }, -+ .cipher_len = 1088, -+ .cipher = { -+ 0xea, 0xdd, 0x5a, 0xda, 0x14, 0xda, 0x57, 0xf0, 0xae, 0xf3, 0x50, 0x5f, 0x1c, 0xaa, 0x64, 0x85, 0xd4, 0x23, 0x8d, 0x99, 0x9a, 0x3e, 0xf4, 0xb0, 0xa5, 0x9a, 0x1c, 0xdb, 0xe0, 0xa2, 0x7e, 0x47, -+ 0x85, 0x47, 0xa3, 0xa9, 0x9d, 0x2a, 0xb0, 0x9a, 0xc7, 0xd7, 0xc8, 0xf5, 0xae, 0x3d, 0x64, 0x32, 0x04, 0x5c, 0xba, 0x3f, 0xa7, 0x78, 0x34, 0x58, 0x92, 0x54, 0x2b, 0xd8, 0x1c, 0x05, 0xbe, 0xfc, -+ 0xd2, 0xe5, 0xcc, 0x9a, 0x57, 0x9b, 0xef, 0xb7, 0xc5, 0x8d, 0x02, 0xfb, 0x94, 0xf3, 0x33, 0x92, 0xfe, 0x17, 0xf4, 0xeb, 0xa2, 0xcb, 0x51, 0x0e, 0xc7, 0x4c, 0xc9, 0xd1, 0xd8, 0xa8, 0x7c, 0x10, -+ 0x66, 0xa4, 0x86, 0x9a, 0x39, 0x83, 0xe6, 0x64, 0xbf, 0xe9, 0xde, 0xa5, 0xae, 0x4f, 0xdf, 0x31, 0x0c, 0x8f, 0x59, 0x81, 0x5a, 0x67, 0x8f, 0xa3, 0x25, 0xf3, 0x69, 0xaf, 0x84, 0xff, 0xeb, 0xc1, -+ 0xd1, 0x50, 0x43, 0x1f, 0xe3, 0xbd, 0x27, 0x34, 0xf6, 0x36, 0xcf, 0x65, 0x8e, 0x6c, 0x1a, 0x6a, 0x6e, 0x2c, 0xbe, 0x07, 0x1f, 0x9a, 0x7c, 0x26, 0x11, 0x9a, 0xd1, 0x05, 0x09, 0x8e, 0xda, 0x62, -+ 0x2c, 0xab, 0x8e, 0x17, 0x67, 0x62, 0x10, 0x98, 0x77, 0xd9, 0xae, 0x9d, 0x67, 0x29, 0xd4, 0x4a, 0x58, 0xe7, 0x07, 0xd6, 0xb8, 0xad, 0x6e, 0x69, 0x6a, 0x33, 0xc6, 0x72, 0xda, 0x9d, 0x08, 0xda, -+ 0x2a, 0x7f, 0x9e, 0x3b, 0xf0, 0x22, 0x18, 0x23, 0x87, 0x22, 0xa4, 0x6b, 0x31, 0xd4, 0x9d, 0xaf, 0xf9, 0xaf, 0x00, 0xa6, 0x36, 0x3c, 0x3a, 0x42, 0x3b, 0x2e, 0x87, 0x3d, 0xef, 0xdd, 0xbc, 0xd9, -+ 0x69, 0xb7, 0x5a, 0x81, 0x05, 0x3d, 0x9a, 0x97, 0xc0, 0x6d, 0xe2, 0xbf, 0xe3, 0xd0, 0xcf, 0xd3, 0xd3, 0xc7, 0x79, 0x83, 0xb1, 0x8d, 0xbd, 0xe2, 0x3c, 0x07, 0x28, 0x60, 0x4a, 0x71, 0x43, 0x5a, -+ 0xd4, 0x0d, 0xf1, 0x57, 0x90, 0x96, 0xdd, 0xbe, 0x02, 0xe4, 0x61, 0x22, 0x10, 0xca, 0xa0, 0x34, 0xdc, 0xef, 0xb8, 0xb4, 0xd7, 0xb5, 0xe6, 0xd2, 0xeb, 0xa3, 0x7a, 0x79, 0xfb, 0x61, 0xf3, 0x4b, -+ 0x5a, 0xf7, 0xd9, 0xb2, 0x7b, 0x13, 0xe4, 0x93, 0x62, 0x22, 0x41, 0x12, 0x49, 0xb7, 0xfb, 0xb6, 0x9e, 0x73, 0x46, 0x1d, 0xaf, 0x4a, 0xa6, 0xf3, 0xe2, 0xc7, 0x39, 0x44, 0xf1, 0x0c, 0xe6, 0x7c, -+ 0x86, 0xfe, 0xd2, 0x60, 0xbd, 0xa7, 0xb4, 0x0d, 0xb3, 0x9b, 0x1d, 0xe3, 0xc7, 0xd8, 0xf0, 0x9a, 0x77, 0xf3, 0xc8, 0x4b, 0xc6, 0x29, 0x31, 0xd2, 0x28, 0xb2, 0x4a, 0x57, 0x4a, 0xc3, 0xf4, 0xeb, -+ 0x74, 0x5c, 0xff, 0x7e, 0x03, 0x1a, 0x3f, 0xb2, 0xa0, 0x85, 0x95, 0xc1, 0x53, 0x70, 0xa3, 0xc8, 0x2d, 0xb7, 0xd9, 0xf4, 0x1b, 0xb1, 0xd8, 0xec, 0xc4, 0x29, 0xcf, 0xa3, 0xa6, 0x58, 0x33, 0x01, -+ 0x6a, 0xb6, 0xea, 0x60, 0xc9, 0x39, 0x0c, 0xfa, 0x1b, 0x65, 0xcc, 0xea, 0xe5, 0x50, 0x94, 0x07, 0x95, 0x38, 0x6e, 0xd2, 0x41, 0x33, 0xfb, 0xae, 0x8b, 0x30, 0x17, 0x50, 0x2a, 0xf3, 0xcf, 0xe9, -+ 0x51, 0xd7, 0x81, 0xd3, 0x6c, 0xfe, 0xff, 0x85, 0xbf, 0xdf, 0x5a, 0xf0, 0x40, 0xbe, 0x40, 0x65, 0x68, 0x1b, 0x3b, 0x0a, 0x63, 0xc2, 0x74, 0x7f, 0x08, 0x08, 0xcf, 0x3d, 0xa7, 0x25, 0x16, 0x9d, -+ 0xde, 0xd1, 0x00, 0x3d, 0xa6, 0xcd, 0x5d, 0xe4, 0xcb, 0x04, 0x19, 0x42, 0x93, 0x8d, 0x0a, 0x7f, 0x88, 0x02, 0xd4, 0x8f, 0x2e, 0x3c, 0x6e, 0xeb, 0x45, 0xcd, 0x90, 0xaf, 0x6f, 0xc9, 0xf4, 0x50, -+ 0x7e, 0x9f, 0x83, 0x80, 0xac, 0x33, 0xca, 0xca, 0x77, 0x51, 0x48, 0x7f, 0x65, 0x50, 0x04, 0x41, 0xd9, 0x20, 0xb9, 0x48, 0x80, 0xa4, 0x97, 0xd0, 0x1c, 0x08, 0x02, 0xbb, 0x08, 0xd7, 0x4c, 0x5d, -+ 0x4c, 0x6b, 0xf2, 0xd8, 0x65, 0xee, 0x58, 0x22, 0xb3, 0x37, 0x5c, 0x75, 0x5d, 0x1a, 0x5e, 0x3d, 0x32, 0x44, 0xc3, 0x20, 0x51, 0x0a, 0x1e, 0x30, 0x35, 0x77, 0x02, 0xcd, 0x42, 0x52, 0x07, 0x2c, -+ 0xf8, 0x64, 0x37, 0xf7, 0xa9, 0xde, 0x55, 0x61, 0xc7, 0xe5, 0x9b, 0x94, 0xb9, 0x58, 0x41, 0x00, 0x13, 0x1a, 0xc3, 0x99, 0xf4, 0xc1, 0xeb, 0x19, 0xfb, 0x4b, 0xdf, 0x65, 0xe6, 0x27, 0x85, 0xe9, -+ 0x7c, 0x19, 0x4b, 0x87, 0x64, 0xcc, 0xf3, 0x2f, 0xd0, 0x5d, 0x80, 0x4c, 0x2e, 0x43, 0x9d, 0xda, 0x2a, 0x10, 0x92, 0x74, 0xfb, 0xff, 0xa8, 0x1a, 0x83, 0x7c, 0x51, 0xb2, 0x6d, 0x15, 0x4f, 0x97, -+ 0x4b, 0x88, 0x2a, 0x5b, 0x17, 0x4b, 0x30, 0x8f, 0xc4, 0x87, 0x68, 0xd2, 0x22, 0x92, 0x25, 0x32, 0xb1, 0x83, 0xab, 0xdf, 0x6f, 0xbb, 0x0b, 0xc7, 0x49, 0x27, 0x66, 0x97, 0x4d, 0x32, 0x1e, 0xe6, -+ 0xfb, 0x7c, 0x5f, 0x7b, 0x3e, 0xea, 0x23, 0x78, 0xdc, 0x6d, 0x6b, 0xb4, 0x80, 0x19, 0x25, 0x0b, 0x8d, 0x8d, 0x8d, 0xed, 0xb5, 0x22, 0x42, 0x1a, 0xee, 0xdb, 0x31, 0x86, 0x76, 0x98, 0x2a, 0x80, -+ 0xe7, 0x96, 0x1e, 0xc4, 0x0e, 0x6d, 0x7f, 0x33, 0x39, 0x69, 0x42, 0x55, 0xba, 0xff, 0x51, 0xbe, 0x3a, 0x7e, 0xa7, 0xd8, 0x79, 0x3a, 0x10, 0x9b, 0xe3, 0xae, 0x44, 0x23, 0xbf, 0x08, 0x2e, 0x20, -+ 0x6a, 0x57, 0x3b, 0x4f, 0x0f, 0x93, 0xfc, 0x16, 0xdd, 0xe8, 0x1b, 0xd5, 0xdc, 0x58, 0x3f, 0x52, 0x8c, 0x08, 0xa0, 0xa9, 0xab, 0x8e, 0x6c, 0xd5, 0x24, 0xe2, 0x97, 0xc9, 0xcf, 0x0f, 0x43, 0xc3, -+ 0x44, 0x91, 0x38, 0x30, 0xec, 0xb1, 0x6f, 0x91, 0x44, 0x14, 0x77, 0xba, 0x78, 0x2e, 0xdd, 0x4e, 0x73, 0xe7, 0x32, 0x97, 0x9d, 0x3a, 0x66, 0x4e, 0xb9, 0x9e, 0xa5, 0xd2, 0x4b, 0x6c, 0x84, 0xaa, -+ 0x69, 0xf3, 0x77, 0xcb, 0x0c, 0xad, 0x5a, 0xe4, 0xe6, 0x41, 0xe3, 0x8b, 0x19, 0x7a, 0x09, 0x94, 0xd5, 0x8b, 0x23, 0x87, 0xe9, 0x17, 0x60, 0xe9, 0xb6, 0xfe, 0xbc, 0xb4, 0x45, 0xcf, 0x85, 0xbb, -+ 0xa2, 0x4a, 0x94, 0xcd, 0xa7, 0x5e, 0x33, 0x86, 0x74, 0x42, 0x82, 0x49, 0xfe, 0x6d, 0xe4, 0x69, 0x26, 0x01, 0xd1, 0xea, 0xe0, 0xea, 0x02, 0x1d, 0x9b, 0xc8, 0x07, 0x7b, 0xe8, 0x66, 0x5d, 0x07, -+ 0x37, 0x74, 0x8f, 0xa3, 0x0f, 0xcf, 0x80, 0xf7, 0xe4, 0x82, 0x58, 0x46, 0x74, 0xf6, 0x33, 0xa5, 0x00, 0x6a, 0x53, 0x82, 0x67, 0x62, 0x7f, 0xd9, 0x18, 0x54, 0xe0, 0x87, 0x12, 0x68, 0xa6, 0xb0, -+ 0xb0, 0x5d, 0xd5, 0x14, 0x95, 0x13, 0x5d, 0xef, 0xb9, 0x37, 0x6e, 0x9b, 0x84, 0x1b, 0x64, 0xe5, 0xdb, 0xf4, 0x3c, 0xe6, 0xc7, 0x4b, 0xcf, 0x3a, 0xe1, 0xfc, 0x42, 0x7e, 0x81, 0x0b, 0x7c, 0xbf, -+ 0x69, 0x57, 0xdb, 0xf9, 0x04, 0x69, 0x0e, 0x87, 0x84, 0x25, 0x43, 0x89, 0x7d, 0xe7, 0x8f, 0x13, 0xd0, 0x8d, 0x92, 0xeb, 0xd2, 0x7f, 0xb2, 0xcf, 0xcc, 0x0c, 0x76, 0x54, 0x30, 0x58, 0x90, 0x57, -+ 0xb1, 0x6b, 0x15, 0xf2, 0x07, 0xca, 0x1e, 0x6f, 0x08, 0xd5, 0x26, 0x16, 0xdd, 0x57, 0xad, 0x43, 0xef, 0xea, 0x6f, 0xdd, 0xaa, 0xea, 0x18, 0xd3, 0x37, 0x31, 0xfa, 0xc7, 0xec, 0xaa, 0xe9, 0x50, -+ 0xe1, 0xdf, 0x3c, 0x5a, 0x4e, 0x6f, 0xcb, 0x22, 0x3d, 0xf5, 0xe8, 0x6b, 0x48, 0x7f, 0xd7, 0x09, 0x2d, 0x08, 0x22, 0xef, 0xfa, 0xec, 0x82, 0xc4, 0xbe, 0xc1, 0x0c, 0x60, 0x0f, 0xdb, 0x90, 0xe7, -+ 0x74, 0x82, 0x91, 0x1b, 0x15, 0x95, 0x27, 0x77, 0x38, 0x84, 0x14, 0x09, 0xd0, 0xf8, 0xf1, 0x13, 0x19, 0x1d, 0x47, 0xf5, 0xe5, 0x6c, 0x11, 0x5a, 0x05, 0xde, 0xa7, 0x59, 0xaa, 0x6f, 0xb1, 0xd0, -+ 0x47, 0xf9, 0xfc, 0xa4, 0xed, 0x51, 0x9e, 0xa5, 0xd2, 0x1f, 0xe3, 0xba, 0x5b, 0x94, 0x34, 0xfe, 0xa1, 0x28, 0x3d, 0xfa, 0xd6, 0x3d, 0x01, 0x58, 0x9b, 0x0e, 0xb6, 0x1f, 0x24, 0x43, 0x51, 0xd0, -+ 0x33, 0x41, 0xdc, 0xd4, 0xdf, 0x62, 0x26, 0x5a, 0xfc, 0xae, 0xc6, 0x67, 0x6a, 0x87, 0x7d, 0x5c, 0xac, 0xb3, 0x59, 0xeb, 0xb5, 0x31, 0x96, 0x10, 0xdd, 0x44, 0x7d, 0xa9, 0x7e, 0x95, 0x0b, 0x0c, -+ }, -+ }, -+ { -+ .name = "Kyber Round 2, 786 KAT 1 (PKCS#8/SPKI)", -+ .version = 0, -+ .keyform = 0, -+ .pk_len = 0, -+ .sk_len = 0, -+ .pkcs8_len = 3697, -+ .pkcs8 = { -+ 0x30, 0x82, 0x0e, 0x6d, 0x02, 0x01, 0x00, 0x30, 0x0f, 0x06, 0x0b, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x02, 0x82, 0x0b, 0x05, 0x03, 0x03, 0x05, 0x00, 0x04, 0x82, 0x0e, 0x55, 0x30, 0x82, 0x0e, 0x51, -+ 0x02, 0x01, 0x00, 0x03, 0x82, 0x09, 0x61, 0x00, 0x07, 0x63, 0x8f, 0xb6, 0x98, 0x68, 0xf3, 0xd3, 0x20, 0xe5, 0x86, 0x2b, 0xd9, 0x69, 0x33, 0xfe, 0xb3, 0x11, 0xb3, 0x62, 0x09, 0x3c, 0x9b, 0x5d, -+ 0x50, 0x17, 0x0b, 0xce, 0xd4, 0x3f, 0x1b, 0x53, 0x6d, 0x9a, 0x20, 0x4b, 0xb1, 0xf2, 0x26, 0x95, 0x95, 0x0b, 0xa1, 0xf2, 0xa9, 0xe8, 0xeb, 0x82, 0x8b, 0x28, 0x44, 0x88, 0x76, 0x0b, 0x3f, 0xc8, -+ 0x4f, 0xab, 0xa0, 0x42, 0x75, 0xd5, 0x62, 0x8e, 0x39, 0xc5, 0xb2, 0x47, 0x13, 0x74, 0x28, 0x3c, 0x50, 0x32, 0x99, 0xc0, 0xab, 0x49, 0xb6, 0x6b, 0x8b, 0xbb, 0x56, 0xa4, 0x18, 0x66, 0x24, 0xf9, -+ 0x19, 0xa2, 0xba, 0x59, 0xbb, 0x08, 0xd8, 0x55, 0x18, 0x80, 0xc2, 0xbe, 0xfc, 0x4f, 0x87, 0xf2, 0x5f, 0x59, 0xab, 0x58, 0x7a, 0x79, 0xc3, 0x27, 0xd7, 0x92, 0xd5, 0x4c, 0x97, 0x4a, 0x69, 0x26, -+ 0x2f, 0xf8, 0xa7, 0x89, 0x38, 0x28, 0x9e, 0x9a, 0x87, 0xb6, 0x88, 0xb0, 0x83, 0xe0, 0x59, 0x5f, 0xe2, 0x18, 0xb6, 0xbb, 0x15, 0x05, 0x94, 0x1c, 0xe2, 0xe8, 0x1a, 0x5a, 0x64, 0xc5, 0xaa, 0xc6, -+ 0x04, 0x17, 0x25, 0x69, 0x85, 0x34, 0x9e, 0xe4, 0x7a, 0x52, 0x42, 0x0a, 0x5f, 0x97, 0x47, 0x7b, 0x72, 0x36, 0xac, 0x76, 0xbc, 0x70, 0xe8, 0x28, 0x87, 0x29, 0x28, 0x7e, 0xe3, 0xe3, 0x4a, 0x3d, -+ 0xbc, 0x36, 0x83, 0xc0, 0xb7, 0xb1, 0x00, 0x29, 0xfc, 0x20, 0x34, 0x18, 0x53, 0x7e, 0x74, 0x66, 0xba, 0x63, 0x85, 0xa8, 0xff, 0x30, 0x1e, 0xe1, 0x27, 0x08, 0xf8, 0x2a, 0xaa, 0x1e, 0x38, 0x0f, -+ 0xc7, 0xa8, 0x8f, 0x8f, 0x20, 0x5a, 0xb7, 0xe8, 0x8d, 0x7e, 0x95, 0x95, 0x2a, 0x55, 0xba, 0x20, 0xd0, 0x9b, 0x79, 0xa4, 0x71, 0x41, 0xd6, 0x2b, 0xf6, 0xeb, 0x7d, 0xd3, 0x07, 0xb0, 0x8e, 0xca, -+ 0x13, 0xa5, 0xbc, 0x5f, 0x6b, 0x68, 0x58, 0x1c, 0x68, 0x65, 0xb2, 0x7b, 0xbc, 0xdd, 0xab, 0x14, 0x2f, 0x4b, 0x2c, 0xbf, 0xf4, 0x88, 0xc8, 0xa2, 0x27, 0x05, 0xfa, 0xa9, 0x8a, 0x2b, 0x9e, 0xea, -+ 0x35, 0x30, 0xc7, 0x66, 0x62, 0x33, 0x5c, 0xc7, 0xea, 0x3a, 0x00, 0x77, 0x77, 0x25, 0xeb, 0xcc, 0xcd, 0x2a, 0x46, 0x36, 0xb2, 0xd9, 0x12, 0x2f, 0xf3, 0xab, 0x77, 0x12, 0x3c, 0xe0, 0x88, 0x3c, -+ 0x19, 0x11, 0x11, 0x5e, 0x50, 0xc9, 0xe8, 0xa9, 0x41, 0x94, 0xe4, 0x8d, 0xd0, 0xd0, 0x9c, 0xff, 0xb3, 0xad, 0xcd, 0x2c, 0x1e, 0x92, 0x43, 0x09, 0x03, 0xd0, 0x7a, 0xdb, 0xf0, 0x05, 0x32, 0x03, -+ 0x15, 0x75, 0xaa, 0x7f, 0x9e, 0x7b, 0x5a, 0x1f, 0x33, 0x62, 0xde, 0xc9, 0x36, 0xd4, 0x04, 0x3c, 0x05, 0xf2, 0x47, 0x6c, 0x07, 0x57, 0x8b, 0xc9, 0xcb, 0xaf, 0x2a, 0xb4, 0xe3, 0x82, 0x72, 0x7a, -+ 0xd4, 0x16, 0x86, 0xa9, 0x6b, 0x25, 0x48, 0x82, 0x0b, 0xb0, 0x3b, 0x32, 0xf1, 0x1b, 0x28, 0x11, 0xad, 0x62, 0xf4, 0x89, 0xe9, 0x51, 0x63, 0x2a, 0xba, 0x0d, 0x1d, 0xf8, 0x96, 0x80, 0xcc, 0x8a, -+ 0x8b, 0x53, 0xb4, 0x81, 0xd9, 0x2a, 0x68, 0xd7, 0x0b, 0x4e, 0xa1, 0xc3, 0xa6, 0xa5, 0x61, 0xc0, 0x69, 0x28, 0x82, 0xb5, 0xca, 0x8c, 0xc9, 0x42, 0xa8, 0xd4, 0x95, 0xaf, 0xcb, 0x06, 0xde, 0x89, -+ 0x49, 0x8f, 0xb9, 0x35, 0xb7, 0x75, 0x90, 0x8f, 0xe7, 0xa0, 0x3e, 0x32, 0x4d, 0x54, 0xcc, 0x19, 0xd4, 0xe1, 0xaa, 0xbd, 0x35, 0x93, 0xb3, 0x8b, 0x19, 0xee, 0x13, 0x88, 0xfe, 0x49, 0x2b, 0x43, -+ 0x12, 0x7e, 0x5a, 0x50, 0x42, 0x53, 0x78, 0x6a, 0x0d, 0x69, 0xad, 0x32, 0x60, 0x1c, 0x28, 0xe2, 0xc8, 0x85, 0x04, 0xa5, 0xba, 0x59, 0x97, 0x06, 0x02, 0x3a, 0x61, 0x36, 0x3e, 0x17, 0xc6, 0xb9, -+ 0xbb, 0x59, 0xbd, 0xc6, 0x97, 0x45, 0x2c, 0xd0, 0x59, 0x45, 0x19, 0x83, 0xd7, 0x38, 0xca, 0x3f, 0xd0, 0x34, 0xe3, 0xf5, 0x98, 0x88, 0x54, 0xca, 0x05, 0x03, 0x1d, 0xb0, 0x96, 0x11, 0x49, 0x89, -+ 0x88, 0x19, 0x7c, 0x6b, 0x30, 0xd2, 0x58, 0xdf, 0xe2, 0x62, 0x65, 0x54, 0x1c, 0x89, 0xa4, 0xb3, 0x1d, 0x68, 0x64, 0xe9, 0x38, 0x9b, 0x03, 0xcb, 0x74, 0xf7, 0xec, 0x43, 0x23, 0xfb, 0x94, 0x21, -+ 0xa4, 0xb9, 0x79, 0x0a, 0x26, 0xd1, 0x7b, 0x03, 0x98, 0xa2, 0x67, 0x67, 0x35, 0x09, 0x09, 0xf8, 0x4d, 0x57, 0xb6, 0x69, 0x4d, 0xf8, 0x30, 0x66, 0x4c, 0xa8, 0xb3, 0xc3, 0xc0, 0x3e, 0xd2, 0xae, -+ 0x67, 0xb8, 0x90, 0x06, 0x86, 0x8a, 0x68, 0x52, 0x7c, 0xcd, 0x66, 0x64, 0x59, 0xab, 0x7f, 0x05, 0x66, 0x71, 0x00, 0x0c, 0x61, 0x64, 0xd3, 0xa7, 0xf2, 0x66, 0xa1, 0x4d, 0x97, 0xcb, 0xd7, 0x00, -+ 0x4d, 0x6c, 0x92, 0xca, 0xca, 0x77, 0x0b, 0x84, 0x4a, 0x4f, 0xa9, 0xb1, 0x82, 0xe7, 0xb1, 0x8c, 0xa8, 0x85, 0x08, 0x2a, 0xc5, 0x64, 0x6f, 0xcb, 0x4a, 0x14, 0xe1, 0x68, 0x5f, 0xeb, 0x0c, 0x9c, -+ 0xe3, 0x37, 0x2a, 0xb9, 0x53, 0x65, 0xc0, 0x4f, 0xd8, 0x30, 0x84, 0xf8, 0x0a, 0x23, 0xff, 0x10, 0xa0, 0x5b, 0xf1, 0x5f, 0x7f, 0xa5, 0xac, 0xc6, 0xc0, 0xcb, 0x46, 0x2c, 0x33, 0xca, 0x52, 0x4f, -+ 0xa6, 0xb8, 0xbb, 0x35, 0x90, 0x43, 0xba, 0x68, 0x60, 0x9e, 0xaa, 0x25, 0x36, 0xe8, 0x1d, 0x08, 0x46, 0x3b, 0x19, 0x65, 0x3b, 0x54, 0x35, 0xba, 0x94, 0x6c, 0x9a, 0xdd, 0xeb, 0x20, 0x2b, 0x04, -+ 0xb0, 0x31, 0xcc, 0x96, 0x0d, 0xcc, 0x12, 0xe4, 0x51, 0x8d, 0x42, 0x8b, 0x32, 0xb2, 0x57, 0xa4, 0xfc, 0x73, 0x13, 0xd3, 0xa7, 0x98, 0x0d, 0x80, 0x08, 0x2e, 0x93, 0x4f, 0x9d, 0x95, 0xc3, 0x2b, -+ 0x0a, 0x01, 0x91, 0xa2, 0x36, 0x04, 0x38, 0x4d, 0xd9, 0xe0, 0x79, 0xbb, 0xba, 0xa2, 0x66, 0xd1, 0x4c, 0x3f, 0x75, 0x6b, 0x9f, 0x21, 0x33, 0x10, 0x74, 0x33, 0xa4, 0xe8, 0x3f, 0xa7, 0x18, 0x72, -+ 0x82, 0xa8, 0x09, 0x20, 0x3a, 0x4f, 0xaf, 0x84, 0x18, 0x51, 0x83, 0x3d, 0x12, 0x1a, 0xc3, 0x83, 0x84, 0x3a, 0x5e, 0x55, 0xbc, 0x23, 0x81, 0x42, 0x5e, 0x16, 0xc7, 0xdb, 0x4c, 0xc9, 0xab, 0x5c, -+ 0x1b, 0x0d, 0x91, 0xa4, 0x7e, 0x2b, 0x8d, 0xe0, 0xe5, 0x82, 0xc8, 0x6b, 0x6b, 0x0d, 0x90, 0x7b, 0xb3, 0x60, 0xb9, 0x7f, 0x40, 0xab, 0x5d, 0x03, 0x8f, 0x6b, 0x75, 0xc8, 0x14, 0xb2, 0x7d, 0x9b, -+ 0x96, 0x8d, 0x41, 0x98, 0x32, 0xbc, 0x8c, 0x2b, 0xee, 0x60, 0x5e, 0xf6, 0xe5, 0x05, 0x9d, 0x33, 0x10, 0x0d, 0x90, 0x48, 0x5d, 0x37, 0x84, 0x50, 0x01, 0x42, 0x21, 0x73, 0x6c, 0x07, 0x40, 0x7c, -+ 0xac, 0x26, 0x04, 0x08, 0xaa, 0x64, 0x92, 0x66, 0x19, 0x78, 0x8b, 0x86, 0x01, 0xc2, 0xa7, 0x52, 0xd1, 0xa6, 0xcb, 0xf8, 0x20, 0xd7, 0xc7, 0xa0, 0x47, 0x16, 0x20, 0x32, 0x25, 0xb3, 0x89, 0x5b, -+ 0x93, 0x42, 0xd1, 0x47, 0xa8, 0x18, 0x5c, 0xfc, 0x1b, 0xb6, 0x5b, 0xa0, 0x6b, 0x41, 0x42, 0x33, 0x99, 0x03, 0xc0, 0xac, 0x46, 0x51, 0x38, 0x5b, 0x45, 0xd9, 0x8a, 0x8b, 0x19, 0xd2, 0x8c, 0xd6, -+ 0xba, 0xb0, 0x88, 0x78, 0x7f, 0x7e, 0xe1, 0xb1, 0x24, 0x61, 0x76, 0x6b, 0x43, 0xcb, 0xcc, 0xb9, 0x64, 0x34, 0x42, 0x7d, 0x93, 0xc0, 0x65, 0x55, 0x06, 0x88, 0xf6, 0x94, 0x8e, 0xd1, 0xb5, 0x47, -+ 0x5a, 0x42, 0x5f, 0x1b, 0x85, 0x20, 0x9d, 0x06, 0x1c, 0x08, 0xb5, 0x6c, 0x1c, 0xc0, 0x69, 0xf6, 0xc0, 0xa7, 0xc6, 0xf2, 0x93, 0x58, 0xca, 0xb9, 0x11, 0x08, 0x77, 0x32, 0xa6, 0x49, 0xd2, 0x7c, -+ 0x9b, 0x98, 0xf9, 0xa4, 0x88, 0x79, 0x38, 0x7d, 0x9b, 0x00, 0xc2, 0x59, 0x59, 0xa7, 0x16, 0x54, 0xd6, 0xf6, 0xa9, 0x46, 0x16, 0x45, 0x13, 0xe4, 0x7a, 0x75, 0xd0, 0x05, 0x98, 0x6c, 0x23, 0x63, -+ 0xc0, 0x9f, 0x6b, 0x53, 0x7e, 0xca, 0x78, 0xb9, 0x30, 0x3a, 0x5f, 0xa4, 0x57, 0x60, 0x8a, 0x58, 0x6a, 0x65, 0x3a, 0x34, 0x7d, 0xb0, 0x4d, 0xfc, 0xc1, 0x91, 0x75, 0xb3, 0xa3, 0x01, 0x17, 0x25, -+ 0x36, 0x06, 0x2a, 0x65, 0x8a, 0x95, 0x27, 0x75, 0x70, 0xc8, 0x85, 0x2c, 0xa8, 0x97, 0x3f, 0x4a, 0xe1, 0x23, 0xa3, 0x34, 0x04, 0x7d, 0xd7, 0x11, 0xc8, 0x92, 0x7a, 0x63, 0x4a, 0x03, 0x38, 0x8a, -+ 0x52, 0x7b, 0x03, 0x4b, 0xf7, 0xa8, 0x17, 0x0f, 0xa7, 0x02, 0xc1, 0xf7, 0xc2, 0x3e, 0xc3, 0x2d, 0x18, 0xa2, 0x37, 0x48, 0x90, 0xbe, 0x9c, 0x78, 0x7a, 0x94, 0x09, 0xc8, 0x2d, 0x19, 0x2c, 0x4b, -+ 0xb7, 0x05, 0xa2, 0xf9, 0x96, 0xce, 0x40, 0x5d, 0xa0, 0xb7, 0x1f, 0x67, 0xc6, 0xce, 0xc0, 0xd3, 0x56, 0x86, 0xd5, 0x13, 0x42, 0x34, 0x32, 0xe5, 0x12, 0xac, 0x40, 0x44, 0x55, 0x7e, 0x86, 0x8a, -+ 0x62, 0x48, 0x00, 0x10, 0x9a, 0x33, 0x55, 0xf9, 0x8f, 0x15, 0x14, 0x44, 0xe2, 0x85, 0x2e, 0x27, 0xea, 0x6e, 0xdb, 0x19, 0x92, 0xca, 0xd3, 0x97, 0x3c, 0x3a, 0x6f, 0xf7, 0x9a, 0x5a, 0x04, 0x9a, -+ 0x25, 0x9e, 0xb5, 0x41, 0x5a, 0xa2, 0xa2, 0x62, 0x45, 0x6e, 0xc9, 0x49, 0x5b, 0xbb, 0x52, 0x00, 0xd8, 0xd3, 0x16, 0x3a, 0x5b, 0x10, 0x22, 0x62, 0x92, 0xec, 0xa0, 0x10, 0x21, 0x38, 0x9d, 0xa3, -+ 0x78, 0x81, 0xe2, 0x76, 0x30, 0x65, 0x50, 0xc6, 0xef, 0xb6, 0x44, 0x0e, 0xc5, 0x1a, 0x2f, 0x73, 0x48, 0x34, 0x9b, 0x85, 0x1c, 0xd4, 0xaa, 0x01, 0x75, 0xa0, 0x55, 0x02, 0x13, 0xc4, 0x79, 0x1d, -+ 0x91, 0x01, 0x12, 0x20, 0x82, 0x4b, 0x2b, 0x61, 0x65, 0x08, 0x13, 0xad, 0xfd, 0x2c, 0xb1, 0x05, 0x38, 0xbf, 0xab, 0x0a, 0x72, 0x6f, 0x81, 0x12, 0x9e, 0xd2, 0xc0, 0xf0, 0x6a, 0x16, 0xb7, 0x01, -+ 0x09, 0x0b, 0xf0, 0x48, 0xc5, 0xa4, 0x01, 0x26, 0xd5, 0x72, 0xfc, 0xd4, 0x7a, 0xa1, 0x21, 0x8f, 0xb0, 0x15, 0x47, 0xd1, 0x50, 0x79, 0x2d, 0x23, 0x16, 0xcb, 0x32, 0x0d, 0x51, 0x44, 0xba, 0x35, -+ 0x08, 0xa1, 0xeb, 0xbb, 0x5a, 0xc1, 0xc2, 0x29, 0x13, 0xe8, 0x29, 0x5f, 0xab, 0x59, 0xbf, 0x58, 0x37, 0xa7, 0x78, 0xcf, 0x28, 0x22, 0x7e, 0x07, 0xe1, 0x03, 0x2d, 0xab, 0x7d, 0x0e, 0x09, 0xa1, -+ 0x5f, 0x13, 0x41, 0x48, 0xc1, 0x20, 0x09, 0xda, 0x53, 0x6b, 0x22, 0xcc, 0x62, 0x47, 0x4e, 0x69, 0xcc, 0x15, 0x54, 0xc0, 0x81, 0x4d, 0x6c, 0xa0, 0xb7, 0x22, 0x59, 0x43, 0x83, 0xa9, 0xd0, 0xa2, -+ 0xc7, 0x7f, 0xd3, 0x65, 0xa5, 0x54, 0x42, 0x95, 0xfb, 0xb9, 0x73, 0xf9, 0x1e, 0xa5, 0x64, 0x90, 0xd6, 0xca, 0x68, 0x76, 0x49, 0x7b, 0x98, 0xb3, 0xcb, 0x12, 0x41, 0x7c, 0x25, 0x7b, 0x6d, 0x0f, -+ 0x71, 0x83, 0xdb, 0xb6, 0x9e, 0x33, 0x07, 0x5b, 0xeb, 0x01, 0x17, 0xb6, 0x91, 0x4c, 0x69, 0xba, 0x38, 0x34, 0x94, 0x22, 0xf2, 0xf4, 0x33, 0x64, 0x82, 0x2a, 0x25, 0x70, 0x95, 0x2d, 0xd5, 0x07, -+ 0x7b, 0x90, 0x75, 0x5f, 0x15, 0x74, 0x11, 0x5b, 0x8e, 0x22, 0x14, 0x27, 0x58, 0x59, 0x61, 0x91, 0x3a, 0x9b, 0xfa, 0x05, 0x02, 0xb5, 0xd7, 0x9a, 0xb7, 0x81, 0x17, 0x44, 0xe6, 0x56, 0x3c, 0x5b, -+ 0x62, 0xc5, 0xcc, 0x4e, 0x93, 0x23, 0x9a, 0x0a, 0x8c, 0xc6, 0x0f, 0xe8, 0x48, 0xf8, 0x4a, 0x95, 0xf5, 0x90, 0x25, 0x99, 0xb5, 0x4a, 0x06, 0x62, 0x93, 0xa2, 0x02, 0x1d, 0xa1, 0x96, 0x76, 0x6c, -+ 0x17, 0xc7, 0xe8, 0x63, 0xaf, 0x79, 0x0c, 0x27, 0x0b, 0x21, 0x6a, 0x25, 0x13, 0x8d, 0xda, 0x0c, 0x81, 0x26, 0xe0, 0x93, 0x77, 0x87, 0x98, 0x59, 0xdb, 0x35, 0x8f, 0x9b, 0x82, 0xb7, 0xc8, 0xa6, -+ 0x79, 0x2a, 0xce, 0xe9, 0x2a, 0x4c, 0xbd, 0xe3, 0xce, 0xdd, 0x45, 0x00, 0xac, 0xbc, 0x55, 0x5c, 0x28, 0x8e, 0xff, 0x97, 0x95, 0x26, 0x5b, 0x90, 0x05, 0x35, 0x1c, 0x52, 0xe2, 0x65, 0x35, 0x54, -+ 0xab, 0xaa, 0xf8, 0x72, 0xdf, 0x95, 0xca, 0x7f, 0x79, 0x59, 0x03, 0xf0, 0xb0, 0xa1, 0x82, 0xb1, 0x8a, 0xeb, 0x04, 0x75, 0xb2, 0x9f, 0x6e, 0x3a, 0xbf, 0x4c, 0x22, 0x50, 0xfe, 0x7b, 0x84, 0x2a, -+ 0x73, 0x65, 0x50, 0x16, 0xa8, 0xfc, 0x72, 0x9f, 0x39, 0x05, 0x07, 0xac, 0xa9, 0x36, 0x82, 0x5a, 0x98, 0xb3, 0xa3, 0x2e, 0x6b, 0x25, 0x54, 0xce, 0x95, 0x28, 0x94, 0x1a, 0x3b, 0xb8, 0xc9, 0x09, -+ 0x96, 0x00, 0x8d, 0x74, 0xfb, 0xcd, 0x02, 0x0a, 0x02, 0xe7, 0x06, 0xa6, 0xde, 0x7b, 0x02, 0xaf, 0x40, 0x4c, 0x10, 0xdb, 0x00, 0xfa, 0xec, 0x02, 0xd3, 0xea, 0xa6, 0xd9, 0x56, 0x1a, 0x15, 0x65, -+ 0xa7, 0xb0, 0x5c, 0x63, 0x66, 0xd0, 0x9d, 0xa7, 0xa5, 0x37, 0xf2, 0x0c, 0x7b, 0x28, 0x59, 0xa8, 0x3e, 0x02, 0x9e, 0x13, 0xa9, 0xbd, 0x28, 0x91, 0x57, 0xc5, 0xb7, 0x4c, 0x84, 0xea, 0xa3, 0x07, -+ 0x75, 0x3d, 0x43, 0x12, 0x02, 0xa3, 0xd9, 0xb6, 0x16, 0x22, 0x18, 0xbe, 0xc5, 0x34, 0x69, 0x45, 0xbf, 0xef, 0x55, 0xb6, 0x24, 0xc5, 0xc6, 0xe3, 0x73, 0x35, 0x9b, 0xb1, 0xc4, 0x79, 0x95, 0x2b, -+ 0xba, 0xba, 0x4d, 0x65, 0x55, 0xc2, 0x76, 0x57, 0x3e, 0x51, 0x52, 0xb5, 0x53, 0x90, 0x19, 0x99, 0xf6, 0x94, 0x02, 0xd1, 0x50, 0xbe, 0xf7, 0x9d, 0x74, 0xfb, 0x29, 0x53, 0x01, 0x8f, 0xf4, 0x86, -+ 0x66, 0x74, 0x6a, 0xce, 0x60, 0x78, 0x14, 0xa1, 0xfa, 0x33, 0x19, 0x57, 0x20, 0xf8, 0x38, 0x78, 0xd3, 0xb5, 0x75, 0xc7, 0x25, 0x74, 0x4a, 0x72, 0x07, 0x0d, 0xd0, 0x44, 0x01, 0x80, 0x42, 0xda, -+ 0x25, 0x71, 0x4d, 0x17, 0x30, 0x90, 0x32, 0x3a, 0x51, 0xe6, 0xc0, 0x63, 0xd2, 0x03, 0x88, 0x13, 0x80, 0x91, 0x27, 0x61, 0xfc, 0x34, 0x10, 0x83, 0x90, 0x95, 0xf2, 0x6c, 0x0e, 0x68, 0x7a, 0x00, -+ 0x70, 0x54, 0x95, 0xe1, 0x71, 0xb5, 0x71, 0x51, 0xac, 0xe0, 0x49, 0x8e, 0x30, 0xf1, 0x4c, 0xa9, 0xb0, 0x2f, 0x6e, 0x40, 0x83, 0x18, 0x54, 0xc2, 0xe0, 0xab, 0x1e, 0xcd, 0x0c, 0x21, 0xd8, 0xe4, -+ 0xc7, 0xe6, 0x69, 0xcd, 0x72, 0x82, 0x30, 0xb9, 0xd1, 0x1f, 0x72, 0xc2, 0x66, 0xe3, 0x44, 0x66, 0xf9, 0xc0, 0x15, 0x9e, 0xf4, 0x24, 0xf8, 0xf3, 0x1d, 0x95, 0xa5, 0x7b, 0xa0, 0xe2, 0x10, 0x54, -+ 0x3c, 0x10, 0xc6, 0x50, 0x3f, 0xb5, 0xc6, 0x3e, 0xd2, 0x3a, 0xa3, 0x6c, 0xd6, 0xa6, 0xf3, 0x78, 0x26, 0x1b, 0x0b, 0x1e, 0x79, 0x50, 0x9d, 0x8b, 0xeb, 0x36, 0xaa, 0x26, 0x3d, 0xc9, 0x15, 0x45, -+ 0xe5, 0x33, 0x69, 0xdf, 0x26, 0x83, 0x7f, 0x39, 0x4c, 0x56, 0x77, 0x7c, 0x95, 0xb6, 0x48, 0xbd, 0x1a, 0x72, 0x92, 0x1a, 0xbf, 0x49, 0x56, 0x3f, 0x99, 0xcb, 0x9d, 0x98, 0xea, 0xb5, 0xc6, 0x66, -+ 0x66, 0xf6, 0xb1, 0x6f, 0x74, 0x02, 0x24, 0x81, 0xfa, 0x21, 0x4e, 0x61, 0x76, 0x98, 0xd3, 0xbb, 0xd1, 0x3c, 0xb3, 0x08, 0x71, 0x3f, 0xdc, 0xc7, 0xcf, 0xd3, 0x97, 0xb9, 0xca, 0x39, 0xaf, 0xf4, -+ 0xc7, 0x44, 0xd5, 0x71, 0x5d, 0x58, 0x96, 0x6f, 0x2c, 0xf9, 0x70, 0x70, 0x15, 0xc8, 0xf3, 0x54, 0x3e, 0xd2, 0x86, 0xa3, 0xd8, 0xd5, 0xcb, 0xf6, 0x4a, 0xce, 0xdf, 0xc0, 0x29, 0x71, 0xa9, 0x10, -+ 0x72, 0xc6, 0x9d, 0x2e, 0xf4, 0x98, 0x29, 0xf1, 0x03, 0x7f, 0x05, 0x0c, 0x5b, 0x92, 0x22, 0x98, 0x56, 0xcb, 0x12, 0xb4, 0x56, 0xcc, 0x09, 0x52, 0x82, 0xa6, 0x26, 0x87, 0xea, 0x38, 0xc9, 0x77, -+ 0x8a, 0xea, 0x49, 0x1d, 0xff, 0x06, 0x97, 0x11, 0xfb, 0xbe, 0x05, 0xe8, 0xcd, 0x9b, 0xf4, 0x4a, 0x8e, 0x71, 0x26, 0x19, 0x57, 0x3e, 0x12, 0xea, 0xa7, 0xb2, 0x38, 0x29, 0xdc, 0x67, 0x26, 0xbf, -+ 0xe3, 0x3d, 0xa1, 0x36, 0xb8, 0x1e, 0x15, 0x32, 0x51, 0x50, 0x8f, 0x62, 0x85, 0xba, 0x15, 0xb2, 0xc1, 0x23, 0x76, 0x77, 0xfe, 0x5b, 0x14, 0xb4, 0xe3, 0x3f, 0x98, 0xc3, 0x26, 0xbc, 0x58, 0xb9, -+ 0xd8, 0xe0, 0x75, 0xa2, 0x5b, 0x94, 0xc8, 0xa2, 0x32, 0x33, 0x02, 0x9d, 0xcc, 0x78, 0x6b, 0x13, 0x5c, 0x56, 0x16, 0x4b, 0xa3, 0xd1, 0x60, 0xcb, 0xce, 0xa8, 0x54, 0xb7, 0x97, 0x1f, 0x9c, 0xd7, -+ 0x3a, 0x38, 0x3a, 0xac, 0x05, 0x0a, 0x30, 0x2a, 0xd8, 0x3b, 0x3e, 0x3a, 0xb9, 0x02, 0x46, 0xad, 0x16, 0x0a, 0x32, 0x1d, 0x33, 0x0a, 0xcd, 0xec, 0x7c, 0xa6, 0x64, 0x3d, 0x7e, 0xc0, 0x1f, 0x91, -+ 0x69, 0x1f, 0x16, 0x32, 0x5b, 0xdf, 0x39, 0x69, 0x50, 0xb8, 0x8d, 0xaf, 0xe3, 0x69, 0xc6, 0x54, 0xb8, 0x52, 0x05, 0x5c, 0x97, 0x03, 0x62, 0xc6, 0x13, 0x80, 0x46, 0x07, 0x57, 0xc6, 0x58, 0x90, -+ 0xf4, 0xe5, 0x92, 0x22, 0xe4, 0xa4, 0x06, 0x0b, 0x26, 0xc0, 0xeb, 0xc1, 0x01, 0x97, 0x59, 0x0d, 0xe3, 0xc8, 0xf0, 0x95, 0x5d, 0x65, 0x4b, 0x37, 0x1c, 0xcb, 0x90, 0xac, 0xa3, 0x71, 0xb2, 0x94, -+ 0x47, 0x6c, 0x16, 0xa4, 0x59, 0x6a, 0x1d, 0xe8, 0x30, 0x9e, 0x2a, 0x36, 0x12, 0xc6, 0x9b, 0x71, 0x25, 0x31, 0x05, 0x01, 0xe0, 0xc0, 0x49, 0xb8, 0x74, 0x40, 0xd9, 0xa6, 0xd0, 0xec, 0xb9, 0x99, -+ 0xc9, 0xa0, 0x94, 0x2a, 0xa3, 0x40, 0xf6, 0x03, 0x65, 0xea, 0xfd, 0x46, 0x5f, 0xc6, 0x4a, 0x0c, 0x5f, 0x8f, 0x3f, 0x90, 0x03, 0x48, 0x94, 0x15, 0x89, 0x9d, 0x59, 0xa5, 0x43, 0xd8, 0x20, 0x8c, -+ 0x54, 0xa3, 0x16, 0x65, 0x29, 0xb5, 0x39, 0x22, 0xde, 0xe4, 0xab, 0xa0, 0x00, 0x38, 0x95, 0x81, 0x71, 0x7d, 0x36, 0xf5, 0x6f, 0x39, 0xaf, 0x73, 0x00, 0xb3, 0x1d, 0x83, 0x1a, 0x4d, 0x8c, 0x97, -+ 0x61, 0x28, 0xe0, 0x9d, 0xed, 0xe7, 0x1a, 0x5a, 0x86, 0x26, 0xed, 0x79, 0xd4, 0x51, 0x14, 0x08, 0x00, 0xe0, 0x3b, 0x59, 0xb9, 0x56, 0xf8, 0x21, 0x0e, 0x55, 0x60, 0x67, 0x40, 0x7d, 0x13, 0xdc, -+ 0x90, 0xfa, 0x9e, 0x8b, 0x87, 0x2b, 0xfb, 0x8f, 0xa0, 0x82, 0x04, 0xe5, 0x03, 0x82, 0x04, 0xe1, 0x00, 0xa0, 0xb7, 0x1f, 0x67, 0xc6, 0xce, 0xc0, 0xd3, 0x56, 0x86, 0xd5, 0x13, 0x42, 0x34, 0x32, -+ 0xe5, 0x12, 0xac, 0x40, 0x44, 0x55, 0x7e, 0x86, 0x8a, 0x62, 0x48, 0x00, 0x10, 0x9a, 0x33, 0x55, 0xf9, 0x8f, 0x15, 0x14, 0x44, 0xe2, 0x85, 0x2e, 0x27, 0xea, 0x6e, 0xdb, 0x19, 0x92, 0xca, 0xd3, -+ 0x97, 0x3c, 0x3a, 0x6f, 0xf7, 0x9a, 0x5a, 0x04, 0x9a, 0x25, 0x9e, 0xb5, 0x41, 0x5a, 0xa2, 0xa2, 0x62, 0x45, 0x6e, 0xc9, 0x49, 0x5b, 0xbb, 0x52, 0x00, 0xd8, 0xd3, 0x16, 0x3a, 0x5b, 0x10, 0x22, -+ 0x62, 0x92, 0xec, 0xa0, 0x10, 0x21, 0x38, 0x9d, 0xa3, 0x78, 0x81, 0xe2, 0x76, 0x30, 0x65, 0x50, 0xc6, 0xef, 0xb6, 0x44, 0x0e, 0xc5, 0x1a, 0x2f, 0x73, 0x48, 0x34, 0x9b, 0x85, 0x1c, 0xd4, 0xaa, -+ 0x01, 0x75, 0xa0, 0x55, 0x02, 0x13, 0xc4, 0x79, 0x1d, 0x91, 0x01, 0x12, 0x20, 0x82, 0x4b, 0x2b, 0x61, 0x65, 0x08, 0x13, 0xad, 0xfd, 0x2c, 0xb1, 0x05, 0x38, 0xbf, 0xab, 0x0a, 0x72, 0x6f, 0x81, -+ 0x12, 0x9e, 0xd2, 0xc0, 0xf0, 0x6a, 0x16, 0xb7, 0x01, 0x09, 0x0b, 0xf0, 0x48, 0xc5, 0xa4, 0x01, 0x26, 0xd5, 0x72, 0xfc, 0xd4, 0x7a, 0xa1, 0x21, 0x8f, 0xb0, 0x15, 0x47, 0xd1, 0x50, 0x79, 0x2d, -+ 0x23, 0x16, 0xcb, 0x32, 0x0d, 0x51, 0x44, 0xba, 0x35, 0x08, 0xa1, 0xeb, 0xbb, 0x5a, 0xc1, 0xc2, 0x29, 0x13, 0xe8, 0x29, 0x5f, 0xab, 0x59, 0xbf, 0x58, 0x37, 0xa7, 0x78, 0xcf, 0x28, 0x22, 0x7e, -+ 0x07, 0xe1, 0x03, 0x2d, 0xab, 0x7d, 0x0e, 0x09, 0xa1, 0x5f, 0x13, 0x41, 0x48, 0xc1, 0x20, 0x09, 0xda, 0x53, 0x6b, 0x22, 0xcc, 0x62, 0x47, 0x4e, 0x69, 0xcc, 0x15, 0x54, 0xc0, 0x81, 0x4d, 0x6c, -+ 0xa0, 0xb7, 0x22, 0x59, 0x43, 0x83, 0xa9, 0xd0, 0xa2, 0xc7, 0x7f, 0xd3, 0x65, 0xa5, 0x54, 0x42, 0x95, 0xfb, 0xb9, 0x73, 0xf9, 0x1e, 0xa5, 0x64, 0x90, 0xd6, 0xca, 0x68, 0x76, 0x49, 0x7b, 0x98, -+ 0xb3, 0xcb, 0x12, 0x41, 0x7c, 0x25, 0x7b, 0x6d, 0x0f, 0x71, 0x83, 0xdb, 0xb6, 0x9e, 0x33, 0x07, 0x5b, 0xeb, 0x01, 0x17, 0xb6, 0x91, 0x4c, 0x69, 0xba, 0x38, 0x34, 0x94, 0x22, 0xf2, 0xf4, 0x33, -+ 0x64, 0x82, 0x2a, 0x25, 0x70, 0x95, 0x2d, 0xd5, 0x07, 0x7b, 0x90, 0x75, 0x5f, 0x15, 0x74, 0x11, 0x5b, 0x8e, 0x22, 0x14, 0x27, 0x58, 0x59, 0x61, 0x91, 0x3a, 0x9b, 0xfa, 0x05, 0x02, 0xb5, 0xd7, -+ 0x9a, 0xb7, 0x81, 0x17, 0x44, 0xe6, 0x56, 0x3c, 0x5b, 0x62, 0xc5, 0xcc, 0x4e, 0x93, 0x23, 0x9a, 0x0a, 0x8c, 0xc6, 0x0f, 0xe8, 0x48, 0xf8, 0x4a, 0x95, 0xf5, 0x90, 0x25, 0x99, 0xb5, 0x4a, 0x06, -+ 0x62, 0x93, 0xa2, 0x02, 0x1d, 0xa1, 0x96, 0x76, 0x6c, 0x17, 0xc7, 0xe8, 0x63, 0xaf, 0x79, 0x0c, 0x27, 0x0b, 0x21, 0x6a, 0x25, 0x13, 0x8d, 0xda, 0x0c, 0x81, 0x26, 0xe0, 0x93, 0x77, 0x87, 0x98, -+ 0x59, 0xdb, 0x35, 0x8f, 0x9b, 0x82, 0xb7, 0xc8, 0xa6, 0x79, 0x2a, 0xce, 0xe9, 0x2a, 0x4c, 0xbd, 0xe3, 0xce, 0xdd, 0x45, 0x00, 0xac, 0xbc, 0x55, 0x5c, 0x28, 0x8e, 0xff, 0x97, 0x95, 0x26, 0x5b, -+ 0x90, 0x05, 0x35, 0x1c, 0x52, 0xe2, 0x65, 0x35, 0x54, 0xab, 0xaa, 0xf8, 0x72, 0xdf, 0x95, 0xca, 0x7f, 0x79, 0x59, 0x03, 0xf0, 0xb0, 0xa1, 0x82, 0xb1, 0x8a, 0xeb, 0x04, 0x75, 0xb2, 0x9f, 0x6e, -+ 0x3a, 0xbf, 0x4c, 0x22, 0x50, 0xfe, 0x7b, 0x84, 0x2a, 0x73, 0x65, 0x50, 0x16, 0xa8, 0xfc, 0x72, 0x9f, 0x39, 0x05, 0x07, 0xac, 0xa9, 0x36, 0x82, 0x5a, 0x98, 0xb3, 0xa3, 0x2e, 0x6b, 0x25, 0x54, -+ 0xce, 0x95, 0x28, 0x94, 0x1a, 0x3b, 0xb8, 0xc9, 0x09, 0x96, 0x00, 0x8d, 0x74, 0xfb, 0xcd, 0x02, 0x0a, 0x02, 0xe7, 0x06, 0xa6, 0xde, 0x7b, 0x02, 0xaf, 0x40, 0x4c, 0x10, 0xdb, 0x00, 0xfa, 0xec, -+ 0x02, 0xd3, 0xea, 0xa6, 0xd9, 0x56, 0x1a, 0x15, 0x65, 0xa7, 0xb0, 0x5c, 0x63, 0x66, 0xd0, 0x9d, 0xa7, 0xa5, 0x37, 0xf2, 0x0c, 0x7b, 0x28, 0x59, 0xa8, 0x3e, 0x02, 0x9e, 0x13, 0xa9, 0xbd, 0x28, -+ 0x91, 0x57, 0xc5, 0xb7, 0x4c, 0x84, 0xea, 0xa3, 0x07, 0x75, 0x3d, 0x43, 0x12, 0x02, 0xa3, 0xd9, 0xb6, 0x16, 0x22, 0x18, 0xbe, 0xc5, 0x34, 0x69, 0x45, 0xbf, 0xef, 0x55, 0xb6, 0x24, 0xc5, 0xc6, -+ 0xe3, 0x73, 0x35, 0x9b, 0xb1, 0xc4, 0x79, 0x95, 0x2b, 0xba, 0xba, 0x4d, 0x65, 0x55, 0xc2, 0x76, 0x57, 0x3e, 0x51, 0x52, 0xb5, 0x53, 0x90, 0x19, 0x99, 0xf6, 0x94, 0x02, 0xd1, 0x50, 0xbe, 0xf7, -+ 0x9d, 0x74, 0xfb, 0x29, 0x53, 0x01, 0x8f, 0xf4, 0x86, 0x66, 0x74, 0x6a, 0xce, 0x60, 0x78, 0x14, 0xa1, 0xfa, 0x33, 0x19, 0x57, 0x20, 0xf8, 0x38, 0x78, 0xd3, 0xb5, 0x75, 0xc7, 0x25, 0x74, 0x4a, -+ 0x72, 0x07, 0x0d, 0xd0, 0x44, 0x01, 0x80, 0x42, 0xda, 0x25, 0x71, 0x4d, 0x17, 0x30, 0x90, 0x32, 0x3a, 0x51, 0xe6, 0xc0, 0x63, 0xd2, 0x03, 0x88, 0x13, 0x80, 0x91, 0x27, 0x61, 0xfc, 0x34, 0x10, -+ 0x83, 0x90, 0x95, 0xf2, 0x6c, 0x0e, 0x68, 0x7a, 0x00, 0x70, 0x54, 0x95, 0xe1, 0x71, 0xb5, 0x71, 0x51, 0xac, 0xe0, 0x49, 0x8e, 0x30, 0xf1, 0x4c, 0xa9, 0xb0, 0x2f, 0x6e, 0x40, 0x83, 0x18, 0x54, -+ 0xc2, 0xe0, 0xab, 0x1e, 0xcd, 0x0c, 0x21, 0xd8, 0xe4, 0xc7, 0xe6, 0x69, 0xcd, 0x72, 0x82, 0x30, 0xb9, 0xd1, 0x1f, 0x72, 0xc2, 0x66, 0xe3, 0x44, 0x66, 0xf9, 0xc0, 0x15, 0x9e, 0xf4, 0x24, 0xf8, -+ 0xf3, 0x1d, 0x95, 0xa5, 0x7b, 0xa0, 0xe2, 0x10, 0x54, 0x3c, 0x10, 0xc6, 0x50, 0x3f, 0xb5, 0xc6, 0x3e, 0xd2, 0x3a, 0xa3, 0x6c, 0xd6, 0xa6, 0xf3, 0x78, 0x26, 0x1b, 0x0b, 0x1e, 0x79, 0x50, 0x9d, -+ 0x8b, 0xeb, 0x36, 0xaa, 0x26, 0x3d, 0xc9, 0x15, 0x45, 0xe5, 0x33, 0x69, 0xdf, 0x26, 0x83, 0x7f, 0x39, 0x4c, 0x56, 0x77, 0x7c, 0x95, 0xb6, 0x48, 0xbd, 0x1a, 0x72, 0x92, 0x1a, 0xbf, 0x49, 0x56, -+ 0x3f, 0x99, 0xcb, 0x9d, 0x98, 0xea, 0xb5, 0xc6, 0x66, 0x66, 0xf6, 0xb1, 0x6f, 0x74, 0x02, 0x24, 0x81, 0xfa, 0x21, 0x4e, 0x61, 0x76, 0x98, 0xd3, 0xbb, 0xd1, 0x3c, 0xb3, 0x08, 0x71, 0x3f, 0xdc, -+ 0xc7, 0xcf, 0xd3, 0x97, 0xb9, 0xca, 0x39, 0xaf, 0xf4, 0xc7, 0x44, 0xd5, 0x71, 0x5d, 0x58, 0x96, 0x6f, 0x2c, 0xf9, 0x70, 0x70, 0x15, 0xc8, 0xf3, 0x54, 0x3e, 0xd2, 0x86, 0xa3, 0xd8, 0xd5, 0xcb, -+ 0xf6, 0x4a, 0xce, 0xdf, 0xc0, 0x29, 0x71, 0xa9, 0x10, 0x72, 0xc6, 0x9d, 0x2e, 0xf4, 0x98, 0x29, 0xf1, 0x03, 0x7f, 0x05, 0x0c, 0x5b, 0x92, 0x22, 0x98, 0x56, 0xcb, 0x12, 0xb4, 0x56, 0xcc, 0x09, -+ 0x52, 0x82, 0xa6, 0x26, 0x87, 0xea, 0x38, 0xc9, 0x77, 0x8a, 0xea, 0x49, 0x1d, 0xff, 0x06, 0x97, 0x11, 0xfb, 0xbe, 0x05, 0xe8, 0xcd, 0x9b, 0xf4, 0x4a, 0x8e, 0x71, 0x26, 0x19, 0x57, 0x3e, 0x12, -+ 0xea, 0xa7, 0xb2, 0x38, 0x29, 0xdc, 0x67, 0x26, 0xbf, 0xe3, 0x3d, 0xa1, 0x36, 0xb8, 0x1e, 0x15, 0x32, 0x51, 0x50, 0x8f, 0x62, 0x85, 0xba, 0x15, 0xb2, 0xc1, 0x23, 0x76, 0x77, 0xfe, 0x5b, 0x14, -+ 0xb4, 0xe3, 0x3f, 0x98, 0xc3, 0x26, 0xbc, 0x58, 0xb9, 0xd8, 0xe0, 0x75, 0xa2, 0x5b, 0x94, 0xc8, 0xa2, 0x32, 0x33, 0x02, 0x9d, 0xcc, 0x78, 0x6b, 0x13, 0x5c, 0x56, 0x16, 0x4b, 0xa3, 0xd1, 0x60, -+ 0xcb, 0xce, 0xa8, 0x54, 0xb7, 0x97, 0x1f, 0x9c, 0xd7, 0x3a, 0x38, 0x3a, 0xac, 0x05, 0x0a, 0x30, 0x2a, 0xd8, 0x3b, 0x3e, 0x3a, 0xb9, 0x02, 0x46, 0xad, 0x16, 0x0a, 0x32, 0x1d, 0x33, 0x0a, 0xcd, -+ 0xec, 0x7c, 0xa6, 0x64, 0x3d, 0x7e, 0xc0, 0x1f, 0x91, 0x69, 0x1f, 0x16, 0x32, 0x5b, 0xdf, 0x39, 0x69, 0x50, 0xb8, 0x8d, 0xaf, 0xe3, 0x69, 0xc6, 0x54, 0xb8, 0x52, 0x05, 0x5c, 0x97, 0x03, 0x62, -+ 0xc6, 0x13, 0x80, 0x46, 0x07, 0x57, 0xc6, 0x58, 0x90, 0xf4, 0xe5, 0x92, 0x22, 0xe4, 0xa4, 0x06, 0x0b, 0x26, 0xc0, 0xeb, 0xc1, 0x01, 0x97, 0x59, 0x0d, 0xe3, 0xc8, 0xf0, 0x95, 0x5d, 0x65, 0x4b, -+ 0x37, 0x1c, 0xcb, 0x90, 0xac, 0xa3, 0x71, 0xb2, 0x94, 0x47, 0x6c, 0x16, 0xa4, 0x59, 0x6a, 0x1d, 0xe8, 0x30, 0x9e, 0x2a, 0x36, 0x12, 0xc6, 0x9b, 0x71, 0x25, 0x31, 0x05, 0x01, 0xe0, 0xc0, 0x49, -+ 0xb8, 0x74, 0x40, 0xd9, 0xa6, 0xd0, 0xec, 0xb9, 0x99, 0xc9, 0xa0, 0x94, 0x2a, 0xa3, 0x40, 0xf6, 0x03, 0x65, 0xea, 0xfd, 0x46, 0x5f, 0xc6, 0x4a, 0x0c, 0x5f, 0x8f, 0x3f, 0x90, 0x03, 0x48, 0x94, -+ 0x15, 0x89, 0x9d, 0x59, 0xa5, 0x43, 0xd8, 0x20, 0x8c, 0x54, 0xa3, 0x16, 0x65, 0x29, 0xb5, 0x39, 0x22, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, -+ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, -+ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, -+ }, -+ .spki_len = 1219, -+ .spki = { -+ 0x30, 0x82, 0x04, 0xbf, 0x30, 0x0f, 0x06, 0x0b, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x02, 0x82, 0x0b, 0x05, 0x03, 0x03, 0x05, 0x00, 0x03, 0x82, 0x04, 0xaa, 0x00, 0x30, 0x82, 0x04, 0xa5, 0x03, 0x82, -+ 0x04, 0xa1, 0x00, 0xa0, 0xb7, 0x1f, 0x67, 0xc6, 0xce, 0xc0, 0xd3, 0x56, 0x86, 0xd5, 0x13, 0x42, 0x34, 0x32, 0xe5, 0x12, 0xac, 0x40, 0x44, 0x55, 0x7e, 0x86, 0x8a, 0x62, 0x48, 0x00, 0x10, 0x9a, -+ 0x33, 0x55, 0xf9, 0x8f, 0x15, 0x14, 0x44, 0xe2, 0x85, 0x2e, 0x27, 0xea, 0x6e, 0xdb, 0x19, 0x92, 0xca, 0xd3, 0x97, 0x3c, 0x3a, 0x6f, 0xf7, 0x9a, 0x5a, 0x04, 0x9a, 0x25, 0x9e, 0xb5, 0x41, 0x5a, -+ 0xa2, 0xa2, 0x62, 0x45, 0x6e, 0xc9, 0x49, 0x5b, 0xbb, 0x52, 0x00, 0xd8, 0xd3, 0x16, 0x3a, 0x5b, 0x10, 0x22, 0x62, 0x92, 0xec, 0xa0, 0x10, 0x21, 0x38, 0x9d, 0xa3, 0x78, 0x81, 0xe2, 0x76, 0x30, -+ 0x65, 0x50, 0xc6, 0xef, 0xb6, 0x44, 0x0e, 0xc5, 0x1a, 0x2f, 0x73, 0x48, 0x34, 0x9b, 0x85, 0x1c, 0xd4, 0xaa, 0x01, 0x75, 0xa0, 0x55, 0x02, 0x13, 0xc4, 0x79, 0x1d, 0x91, 0x01, 0x12, 0x20, 0x82, -+ 0x4b, 0x2b, 0x61, 0x65, 0x08, 0x13, 0xad, 0xfd, 0x2c, 0xb1, 0x05, 0x38, 0xbf, 0xab, 0x0a, 0x72, 0x6f, 0x81, 0x12, 0x9e, 0xd2, 0xc0, 0xf0, 0x6a, 0x16, 0xb7, 0x01, 0x09, 0x0b, 0xf0, 0x48, 0xc5, -+ 0xa4, 0x01, 0x26, 0xd5, 0x72, 0xfc, 0xd4, 0x7a, 0xa1, 0x21, 0x8f, 0xb0, 0x15, 0x47, 0xd1, 0x50, 0x79, 0x2d, 0x23, 0x16, 0xcb, 0x32, 0x0d, 0x51, 0x44, 0xba, 0x35, 0x08, 0xa1, 0xeb, 0xbb, 0x5a, -+ 0xc1, 0xc2, 0x29, 0x13, 0xe8, 0x29, 0x5f, 0xab, 0x59, 0xbf, 0x58, 0x37, 0xa7, 0x78, 0xcf, 0x28, 0x22, 0x7e, 0x07, 0xe1, 0x03, 0x2d, 0xab, 0x7d, 0x0e, 0x09, 0xa1, 0x5f, 0x13, 0x41, 0x48, 0xc1, -+ 0x20, 0x09, 0xda, 0x53, 0x6b, 0x22, 0xcc, 0x62, 0x47, 0x4e, 0x69, 0xcc, 0x15, 0x54, 0xc0, 0x81, 0x4d, 0x6c, 0xa0, 0xb7, 0x22, 0x59, 0x43, 0x83, 0xa9, 0xd0, 0xa2, 0xc7, 0x7f, 0xd3, 0x65, 0xa5, -+ 0x54, 0x42, 0x95, 0xfb, 0xb9, 0x73, 0xf9, 0x1e, 0xa5, 0x64, 0x90, 0xd6, 0xca, 0x68, 0x76, 0x49, 0x7b, 0x98, 0xb3, 0xcb, 0x12, 0x41, 0x7c, 0x25, 0x7b, 0x6d, 0x0f, 0x71, 0x83, 0xdb, 0xb6, 0x9e, -+ 0x33, 0x07, 0x5b, 0xeb, 0x01, 0x17, 0xb6, 0x91, 0x4c, 0x69, 0xba, 0x38, 0x34, 0x94, 0x22, 0xf2, 0xf4, 0x33, 0x64, 0x82, 0x2a, 0x25, 0x70, 0x95, 0x2d, 0xd5, 0x07, 0x7b, 0x90, 0x75, 0x5f, 0x15, -+ 0x74, 0x11, 0x5b, 0x8e, 0x22, 0x14, 0x27, 0x58, 0x59, 0x61, 0x91, 0x3a, 0x9b, 0xfa, 0x05, 0x02, 0xb5, 0xd7, 0x9a, 0xb7, 0x81, 0x17, 0x44, 0xe6, 0x56, 0x3c, 0x5b, 0x62, 0xc5, 0xcc, 0x4e, 0x93, -+ 0x23, 0x9a, 0x0a, 0x8c, 0xc6, 0x0f, 0xe8, 0x48, 0xf8, 0x4a, 0x95, 0xf5, 0x90, 0x25, 0x99, 0xb5, 0x4a, 0x06, 0x62, 0x93, 0xa2, 0x02, 0x1d, 0xa1, 0x96, 0x76, 0x6c, 0x17, 0xc7, 0xe8, 0x63, 0xaf, -+ 0x79, 0x0c, 0x27, 0x0b, 0x21, 0x6a, 0x25, 0x13, 0x8d, 0xda, 0x0c, 0x81, 0x26, 0xe0, 0x93, 0x77, 0x87, 0x98, 0x59, 0xdb, 0x35, 0x8f, 0x9b, 0x82, 0xb7, 0xc8, 0xa6, 0x79, 0x2a, 0xce, 0xe9, 0x2a, -+ 0x4c, 0xbd, 0xe3, 0xce, 0xdd, 0x45, 0x00, 0xac, 0xbc, 0x55, 0x5c, 0x28, 0x8e, 0xff, 0x97, 0x95, 0x26, 0x5b, 0x90, 0x05, 0x35, 0x1c, 0x52, 0xe2, 0x65, 0x35, 0x54, 0xab, 0xaa, 0xf8, 0x72, 0xdf, -+ 0x95, 0xca, 0x7f, 0x79, 0x59, 0x03, 0xf0, 0xb0, 0xa1, 0x82, 0xb1, 0x8a, 0xeb, 0x04, 0x75, 0xb2, 0x9f, 0x6e, 0x3a, 0xbf, 0x4c, 0x22, 0x50, 0xfe, 0x7b, 0x84, 0x2a, 0x73, 0x65, 0x50, 0x16, 0xa8, -+ 0xfc, 0x72, 0x9f, 0x39, 0x05, 0x07, 0xac, 0xa9, 0x36, 0x82, 0x5a, 0x98, 0xb3, 0xa3, 0x2e, 0x6b, 0x25, 0x54, 0xce, 0x95, 0x28, 0x94, 0x1a, 0x3b, 0xb8, 0xc9, 0x09, 0x96, 0x00, 0x8d, 0x74, 0xfb, -+ 0xcd, 0x02, 0x0a, 0x02, 0xe7, 0x06, 0xa6, 0xde, 0x7b, 0x02, 0xaf, 0x40, 0x4c, 0x10, 0xdb, 0x00, 0xfa, 0xec, 0x02, 0xd3, 0xea, 0xa6, 0xd9, 0x56, 0x1a, 0x15, 0x65, 0xa7, 0xb0, 0x5c, 0x63, 0x66, -+ 0xd0, 0x9d, 0xa7, 0xa5, 0x37, 0xf2, 0x0c, 0x7b, 0x28, 0x59, 0xa8, 0x3e, 0x02, 0x9e, 0x13, 0xa9, 0xbd, 0x28, 0x91, 0x57, 0xc5, 0xb7, 0x4c, 0x84, 0xea, 0xa3, 0x07, 0x75, 0x3d, 0x43, 0x12, 0x02, -+ 0xa3, 0xd9, 0xb6, 0x16, 0x22, 0x18, 0xbe, 0xc5, 0x34, 0x69, 0x45, 0xbf, 0xef, 0x55, 0xb6, 0x24, 0xc5, 0xc6, 0xe3, 0x73, 0x35, 0x9b, 0xb1, 0xc4, 0x79, 0x95, 0x2b, 0xba, 0xba, 0x4d, 0x65, 0x55, -+ 0xc2, 0x76, 0x57, 0x3e, 0x51, 0x52, 0xb5, 0x53, 0x90, 0x19, 0x99, 0xf6, 0x94, 0x02, 0xd1, 0x50, 0xbe, 0xf7, 0x9d, 0x74, 0xfb, 0x29, 0x53, 0x01, 0x8f, 0xf4, 0x86, 0x66, 0x74, 0x6a, 0xce, 0x60, -+ 0x78, 0x14, 0xa1, 0xfa, 0x33, 0x19, 0x57, 0x20, 0xf8, 0x38, 0x78, 0xd3, 0xb5, 0x75, 0xc7, 0x25, 0x74, 0x4a, 0x72, 0x07, 0x0d, 0xd0, 0x44, 0x01, 0x80, 0x42, 0xda, 0x25, 0x71, 0x4d, 0x17, 0x30, -+ 0x90, 0x32, 0x3a, 0x51, 0xe6, 0xc0, 0x63, 0xd2, 0x03, 0x88, 0x13, 0x80, 0x91, 0x27, 0x61, 0xfc, 0x34, 0x10, 0x83, 0x90, 0x95, 0xf2, 0x6c, 0x0e, 0x68, 0x7a, 0x00, 0x70, 0x54, 0x95, 0xe1, 0x71, -+ 0xb5, 0x71, 0x51, 0xac, 0xe0, 0x49, 0x8e, 0x30, 0xf1, 0x4c, 0xa9, 0xb0, 0x2f, 0x6e, 0x40, 0x83, 0x18, 0x54, 0xc2, 0xe0, 0xab, 0x1e, 0xcd, 0x0c, 0x21, 0xd8, 0xe4, 0xc7, 0xe6, 0x69, 0xcd, 0x72, -+ 0x82, 0x30, 0xb9, 0xd1, 0x1f, 0x72, 0xc2, 0x66, 0xe3, 0x44, 0x66, 0xf9, 0xc0, 0x15, 0x9e, 0xf4, 0x24, 0xf8, 0xf3, 0x1d, 0x95, 0xa5, 0x7b, 0xa0, 0xe2, 0x10, 0x54, 0x3c, 0x10, 0xc6, 0x50, 0x3f, -+ 0xb5, 0xc6, 0x3e, 0xd2, 0x3a, 0xa3, 0x6c, 0xd6, 0xa6, 0xf3, 0x78, 0x26, 0x1b, 0x0b, 0x1e, 0x79, 0x50, 0x9d, 0x8b, 0xeb, 0x36, 0xaa, 0x26, 0x3d, 0xc9, 0x15, 0x45, 0xe5, 0x33, 0x69, 0xdf, 0x26, -+ 0x83, 0x7f, 0x39, 0x4c, 0x56, 0x77, 0x7c, 0x95, 0xb6, 0x48, 0xbd, 0x1a, 0x72, 0x92, 0x1a, 0xbf, 0x49, 0x56, 0x3f, 0x99, 0xcb, 0x9d, 0x98, 0xea, 0xb5, 0xc6, 0x66, 0x66, 0xf6, 0xb1, 0x6f, 0x74, -+ 0x02, 0x24, 0x81, 0xfa, 0x21, 0x4e, 0x61, 0x76, 0x98, 0xd3, 0xbb, 0xd1, 0x3c, 0xb3, 0x08, 0x71, 0x3f, 0xdc, 0xc7, 0xcf, 0xd3, 0x97, 0xb9, 0xca, 0x39, 0xaf, 0xf4, 0xc7, 0x44, 0xd5, 0x71, 0x5d, -+ 0x58, 0x96, 0x6f, 0x2c, 0xf9, 0x70, 0x70, 0x15, 0xc8, 0xf3, 0x54, 0x3e, 0xd2, 0x86, 0xa3, 0xd8, 0xd5, 0xcb, 0xf6, 0x4a, 0xce, 0xdf, 0xc0, 0x29, 0x71, 0xa9, 0x10, 0x72, 0xc6, 0x9d, 0x2e, 0xf4, -+ 0x98, 0x29, 0xf1, 0x03, 0x7f, 0x05, 0x0c, 0x5b, 0x92, 0x22, 0x98, 0x56, 0xcb, 0x12, 0xb4, 0x56, 0xcc, 0x09, 0x52, 0x82, 0xa6, 0x26, 0x87, 0xea, 0x38, 0xc9, 0x77, 0x8a, 0xea, 0x49, 0x1d, 0xff, -+ 0x06, 0x97, 0x11, 0xfb, 0xbe, 0x05, 0xe8, 0xcd, 0x9b, 0xf4, 0x4a, 0x8e, 0x71, 0x26, 0x19, 0x57, 0x3e, 0x12, 0xea, 0xa7, 0xb2, 0x38, 0x29, 0xdc, 0x67, 0x26, 0xbf, 0xe3, 0x3d, 0xa1, 0x36, 0xb8, -+ 0x1e, 0x15, 0x32, 0x51, 0x50, 0x8f, 0x62, 0x85, 0xba, 0x15, 0xb2, 0xc1, 0x23, 0x76, 0x77, 0xfe, 0x5b, 0x14, 0xb4, 0xe3, 0x3f, 0x98, 0xc3, 0x26, 0xbc, 0x58, 0xb9, 0xd8, 0xe0, 0x75, 0xa2, 0x5b, -+ 0x94, 0xc8, 0xa2, 0x32, 0x33, 0x02, 0x9d, 0xcc, 0x78, 0x6b, 0x13, 0x5c, 0x56, 0x16, 0x4b, 0xa3, 0xd1, 0x60, 0xcb, 0xce, 0xa8, 0x54, 0xb7, 0x97, 0x1f, 0x9c, 0xd7, 0x3a, 0x38, 0x3a, 0xac, 0x05, -+ 0x0a, 0x30, 0x2a, 0xd8, 0x3b, 0x3e, 0x3a, 0xb9, 0x02, 0x46, 0xad, 0x16, 0x0a, 0x32, 0x1d, 0x33, 0x0a, 0xcd, 0xec, 0x7c, 0xa6, 0x64, 0x3d, 0x7e, 0xc0, 0x1f, 0x91, 0x69, 0x1f, 0x16, 0x32, 0x5b, -+ 0xdf, 0x39, 0x69, 0x50, 0xb8, 0x8d, 0xaf, 0xe3, 0x69, 0xc6, 0x54, 0xb8, 0x52, 0x05, 0x5c, 0x97, 0x03, 0x62, 0xc6, 0x13, 0x80, 0x46, 0x07, 0x57, 0xc6, 0x58, 0x90, 0xf4, 0xe5, 0x92, 0x22, 0xe4, -+ 0xa4, 0x06, 0x0b, 0x26, 0xc0, 0xeb, 0xc1, 0x01, 0x97, 0x59, 0x0d, 0xe3, 0xc8, 0xf0, 0x95, 0x5d, 0x65, 0x4b, 0x37, 0x1c, 0xcb, 0x90, 0xac, 0xa3, 0x71, 0xb2, 0x94, 0x47, 0x6c, 0x16, 0xa4, 0x59, -+ 0x6a, 0x1d, 0xe8, 0x30, 0x9e, 0x2a, 0x36, 0x12, 0xc6, 0x9b, 0x71, 0x25, 0x31, 0x05, 0x01, 0xe0, 0xc0, 0x49, 0xb8, 0x74, 0x40, 0xd9, 0xa6, 0xd0, 0xec, 0xb9, 0x99, 0xc9, 0xa0, 0x94, 0x2a, 0xa3, -+ 0x40, 0xf6, 0x03, 0x65, 0xea, 0xfd, 0x46, 0x5f, 0xc6, 0x4a, 0x0c, 0x5f, 0x8f, 0x3f, 0x90, 0x03, 0x48, 0x94, 0x15, 0x89, 0x9d, 0x59, 0xa5, 0x43, 0xd8, 0x20, 0x8c, 0x54, 0xa3, 0x16, 0x65, 0x29, -+ 0xb5, 0x39, 0x22, -+ }, -+ .secret_len = 32, -+ .secret = { -+ 0xed, 0x20, 0x14, 0x0c, 0x05, 0xd7, 0x8b, 0x15, 0xf2, 0xe4, 0x12, 0x67, 0x1a, 0x84, 0x15, 0x42, 0x17, 0xfd, 0x77, 0x61, 0x9a, 0x2c, 0x52, 0x2d, 0x3c, 0x3c, 0xb6, 0x88, 0xcb, 0x34, 0xc6, 0x8b, -+ }, -+ .cipher_len = 1088, -+ .cipher = { -+ 0xea, 0xdd, 0x5a, 0xda, 0x14, 0xda, 0x57, 0xf0, 0xae, 0xf3, 0x50, 0x5f, 0x1c, 0xaa, 0x64, 0x85, 0xd4, 0x23, 0x8d, 0x99, 0x9a, 0x3e, 0xf4, 0xb0, 0xa5, 0x9a, 0x1c, 0xdb, 0xe0, 0xa2, 0x7e, 0x47, -+ 0x85, 0x47, 0xa3, 0xa9, 0x9d, 0x2a, 0xb0, 0x9a, 0xc7, 0xd7, 0xc8, 0xf5, 0xae, 0x3d, 0x64, 0x32, 0x04, 0x5c, 0xba, 0x3f, 0xa7, 0x78, 0x34, 0x58, 0x92, 0x54, 0x2b, 0xd8, 0x1c, 0x05, 0xbe, 0xfc, -+ 0xd2, 0xe5, 0xcc, 0x9a, 0x57, 0x9b, 0xef, 0xb7, 0xc5, 0x8d, 0x02, 0xfb, 0x94, 0xf3, 0x33, 0x92, 0xfe, 0x17, 0xf4, 0xeb, 0xa2, 0xcb, 0x51, 0x0e, 0xc7, 0x4c, 0xc9, 0xd1, 0xd8, 0xa8, 0x7c, 0x10, -+ 0x66, 0xa4, 0x86, 0x9a, 0x39, 0x83, 0xe6, 0x64, 0xbf, 0xe9, 0xde, 0xa5, 0xae, 0x4f, 0xdf, 0x31, 0x0c, 0x8f, 0x59, 0x81, 0x5a, 0x67, 0x8f, 0xa3, 0x25, 0xf3, 0x69, 0xaf, 0x84, 0xff, 0xeb, 0xc1, -+ 0xd1, 0x50, 0x43, 0x1f, 0xe3, 0xbd, 0x27, 0x34, 0xf6, 0x36, 0xcf, 0x65, 0x8e, 0x6c, 0x1a, 0x6a, 0x6e, 0x2c, 0xbe, 0x07, 0x1f, 0x9a, 0x7c, 0x26, 0x11, 0x9a, 0xd1, 0x05, 0x09, 0x8e, 0xda, 0x62, -+ 0x2c, 0xab, 0x8e, 0x17, 0x67, 0x62, 0x10, 0x98, 0x77, 0xd9, 0xae, 0x9d, 0x67, 0x29, 0xd4, 0x4a, 0x58, 0xe7, 0x07, 0xd6, 0xb8, 0xad, 0x6e, 0x69, 0x6a, 0x33, 0xc6, 0x72, 0xda, 0x9d, 0x08, 0xda, -+ 0x2a, 0x7f, 0x9e, 0x3b, 0xf0, 0x22, 0x18, 0x23, 0x87, 0x22, 0xa4, 0x6b, 0x31, 0xd4, 0x9d, 0xaf, 0xf9, 0xaf, 0x00, 0xa6, 0x36, 0x3c, 0x3a, 0x42, 0x3b, 0x2e, 0x87, 0x3d, 0xef, 0xdd, 0xbc, 0xd9, -+ 0x69, 0xb7, 0x5a, 0x81, 0x05, 0x3d, 0x9a, 0x97, 0xc0, 0x6d, 0xe2, 0xbf, 0xe3, 0xd0, 0xcf, 0xd3, 0xd3, 0xc7, 0x79, 0x83, 0xb1, 0x8d, 0xbd, 0xe2, 0x3c, 0x07, 0x28, 0x60, 0x4a, 0x71, 0x43, 0x5a, -+ 0xd4, 0x0d, 0xf1, 0x57, 0x90, 0x96, 0xdd, 0xbe, 0x02, 0xe4, 0x61, 0x22, 0x10, 0xca, 0xa0, 0x34, 0xdc, 0xef, 0xb8, 0xb4, 0xd7, 0xb5, 0xe6, 0xd2, 0xeb, 0xa3, 0x7a, 0x79, 0xfb, 0x61, 0xf3, 0x4b, -+ 0x5a, 0xf7, 0xd9, 0xb2, 0x7b, 0x13, 0xe4, 0x93, 0x62, 0x22, 0x41, 0x12, 0x49, 0xb7, 0xfb, 0xb6, 0x9e, 0x73, 0x46, 0x1d, 0xaf, 0x4a, 0xa6, 0xf3, 0xe2, 0xc7, 0x39, 0x44, 0xf1, 0x0c, 0xe6, 0x7c, -+ 0x86, 0xfe, 0xd2, 0x60, 0xbd, 0xa7, 0xb4, 0x0d, 0xb3, 0x9b, 0x1d, 0xe3, 0xc7, 0xd8, 0xf0, 0x9a, 0x77, 0xf3, 0xc8, 0x4b, 0xc6, 0x29, 0x31, 0xd2, 0x28, 0xb2, 0x4a, 0x57, 0x4a, 0xc3, 0xf4, 0xeb, -+ 0x74, 0x5c, 0xff, 0x7e, 0x03, 0x1a, 0x3f, 0xb2, 0xa0, 0x85, 0x95, 0xc1, 0x53, 0x70, 0xa3, 0xc8, 0x2d, 0xb7, 0xd9, 0xf4, 0x1b, 0xb1, 0xd8, 0xec, 0xc4, 0x29, 0xcf, 0xa3, 0xa6, 0x58, 0x33, 0x01, -+ 0x6a, 0xb6, 0xea, 0x60, 0xc9, 0x39, 0x0c, 0xfa, 0x1b, 0x65, 0xcc, 0xea, 0xe5, 0x50, 0x94, 0x07, 0x95, 0x38, 0x6e, 0xd2, 0x41, 0x33, 0xfb, 0xae, 0x8b, 0x30, 0x17, 0x50, 0x2a, 0xf3, 0xcf, 0xe9, -+ 0x51, 0xd7, 0x81, 0xd3, 0x6c, 0xfe, 0xff, 0x85, 0xbf, 0xdf, 0x5a, 0xf0, 0x40, 0xbe, 0x40, 0x65, 0x68, 0x1b, 0x3b, 0x0a, 0x63, 0xc2, 0x74, 0x7f, 0x08, 0x08, 0xcf, 0x3d, 0xa7, 0x25, 0x16, 0x9d, -+ 0xde, 0xd1, 0x00, 0x3d, 0xa6, 0xcd, 0x5d, 0xe4, 0xcb, 0x04, 0x19, 0x42, 0x93, 0x8d, 0x0a, 0x7f, 0x88, 0x02, 0xd4, 0x8f, 0x2e, 0x3c, 0x6e, 0xeb, 0x45, 0xcd, 0x90, 0xaf, 0x6f, 0xc9, 0xf4, 0x50, -+ 0x7e, 0x9f, 0x83, 0x80, 0xac, 0x33, 0xca, 0xca, 0x77, 0x51, 0x48, 0x7f, 0x65, 0x50, 0x04, 0x41, 0xd9, 0x20, 0xb9, 0x48, 0x80, 0xa4, 0x97, 0xd0, 0x1c, 0x08, 0x02, 0xbb, 0x08, 0xd7, 0x4c, 0x5d, -+ 0x4c, 0x6b, 0xf2, 0xd8, 0x65, 0xee, 0x58, 0x22, 0xb3, 0x37, 0x5c, 0x75, 0x5d, 0x1a, 0x5e, 0x3d, 0x32, 0x44, 0xc3, 0x20, 0x51, 0x0a, 0x1e, 0x30, 0x35, 0x77, 0x02, 0xcd, 0x42, 0x52, 0x07, 0x2c, -+ 0xf8, 0x64, 0x37, 0xf7, 0xa9, 0xde, 0x55, 0x61, 0xc7, 0xe5, 0x9b, 0x94, 0xb9, 0x58, 0x41, 0x00, 0x13, 0x1a, 0xc3, 0x99, 0xf4, 0xc1, 0xeb, 0x19, 0xfb, 0x4b, 0xdf, 0x65, 0xe6, 0x27, 0x85, 0xe9, -+ 0x7c, 0x19, 0x4b, 0x87, 0x64, 0xcc, 0xf3, 0x2f, 0xd0, 0x5d, 0x80, 0x4c, 0x2e, 0x43, 0x9d, 0xda, 0x2a, 0x10, 0x92, 0x74, 0xfb, 0xff, 0xa8, 0x1a, 0x83, 0x7c, 0x51, 0xb2, 0x6d, 0x15, 0x4f, 0x97, -+ 0x4b, 0x88, 0x2a, 0x5b, 0x17, 0x4b, 0x30, 0x8f, 0xc4, 0x87, 0x68, 0xd2, 0x22, 0x92, 0x25, 0x32, 0xb1, 0x83, 0xab, 0xdf, 0x6f, 0xbb, 0x0b, 0xc7, 0x49, 0x27, 0x66, 0x97, 0x4d, 0x32, 0x1e, 0xe6, -+ 0xfb, 0x7c, 0x5f, 0x7b, 0x3e, 0xea, 0x23, 0x78, 0xdc, 0x6d, 0x6b, 0xb4, 0x80, 0x19, 0x25, 0x0b, 0x8d, 0x8d, 0x8d, 0xed, 0xb5, 0x22, 0x42, 0x1a, 0xee, 0xdb, 0x31, 0x86, 0x76, 0x98, 0x2a, 0x80, -+ 0xe7, 0x96, 0x1e, 0xc4, 0x0e, 0x6d, 0x7f, 0x33, 0x39, 0x69, 0x42, 0x55, 0xba, 0xff, 0x51, 0xbe, 0x3a, 0x7e, 0xa7, 0xd8, 0x79, 0x3a, 0x10, 0x9b, 0xe3, 0xae, 0x44, 0x23, 0xbf, 0x08, 0x2e, 0x20, -+ 0x6a, 0x57, 0x3b, 0x4f, 0x0f, 0x93, 0xfc, 0x16, 0xdd, 0xe8, 0x1b, 0xd5, 0xdc, 0x58, 0x3f, 0x52, 0x8c, 0x08, 0xa0, 0xa9, 0xab, 0x8e, 0x6c, 0xd5, 0x24, 0xe2, 0x97, 0xc9, 0xcf, 0x0f, 0x43, 0xc3, -+ 0x44, 0x91, 0x38, 0x30, 0xec, 0xb1, 0x6f, 0x91, 0x44, 0x14, 0x77, 0xba, 0x78, 0x2e, 0xdd, 0x4e, 0x73, 0xe7, 0x32, 0x97, 0x9d, 0x3a, 0x66, 0x4e, 0xb9, 0x9e, 0xa5, 0xd2, 0x4b, 0x6c, 0x84, 0xaa, -+ 0x69, 0xf3, 0x77, 0xcb, 0x0c, 0xad, 0x5a, 0xe4, 0xe6, 0x41, 0xe3, 0x8b, 0x19, 0x7a, 0x09, 0x94, 0xd5, 0x8b, 0x23, 0x87, 0xe9, 0x17, 0x60, 0xe9, 0xb6, 0xfe, 0xbc, 0xb4, 0x45, 0xcf, 0x85, 0xbb, -+ 0xa2, 0x4a, 0x94, 0xcd, 0xa7, 0x5e, 0x33, 0x86, 0x74, 0x42, 0x82, 0x49, 0xfe, 0x6d, 0xe4, 0x69, 0x26, 0x01, 0xd1, 0xea, 0xe0, 0xea, 0x02, 0x1d, 0x9b, 0xc8, 0x07, 0x7b, 0xe8, 0x66, 0x5d, 0x07, -+ 0x37, 0x74, 0x8f, 0xa3, 0x0f, 0xcf, 0x80, 0xf7, 0xe4, 0x82, 0x58, 0x46, 0x74, 0xf6, 0x33, 0xa5, 0x00, 0x6a, 0x53, 0x82, 0x67, 0x62, 0x7f, 0xd9, 0x18, 0x54, 0xe0, 0x87, 0x12, 0x68, 0xa6, 0xb0, -+ 0xb0, 0x5d, 0xd5, 0x14, 0x95, 0x13, 0x5d, 0xef, 0xb9, 0x37, 0x6e, 0x9b, 0x84, 0x1b, 0x64, 0xe5, 0xdb, 0xf4, 0x3c, 0xe6, 0xc7, 0x4b, 0xcf, 0x3a, 0xe1, 0xfc, 0x42, 0x7e, 0x81, 0x0b, 0x7c, 0xbf, -+ 0x69, 0x57, 0xdb, 0xf9, 0x04, 0x69, 0x0e, 0x87, 0x84, 0x25, 0x43, 0x89, 0x7d, 0xe7, 0x8f, 0x13, 0xd0, 0x8d, 0x92, 0xeb, 0xd2, 0x7f, 0xb2, 0xcf, 0xcc, 0x0c, 0x76, 0x54, 0x30, 0x58, 0x90, 0x57, -+ 0xb1, 0x6b, 0x15, 0xf2, 0x07, 0xca, 0x1e, 0x6f, 0x08, 0xd5, 0x26, 0x16, 0xdd, 0x57, 0xad, 0x43, 0xef, 0xea, 0x6f, 0xdd, 0xaa, 0xea, 0x18, 0xd3, 0x37, 0x31, 0xfa, 0xc7, 0xec, 0xaa, 0xe9, 0x50, -+ 0xe1, 0xdf, 0x3c, 0x5a, 0x4e, 0x6f, 0xcb, 0x22, 0x3d, 0xf5, 0xe8, 0x6b, 0x48, 0x7f, 0xd7, 0x09, 0x2d, 0x08, 0x22, 0xef, 0xfa, 0xec, 0x82, 0xc4, 0xbe, 0xc1, 0x0c, 0x60, 0x0f, 0xdb, 0x90, 0xe7, -+ 0x74, 0x82, 0x91, 0x1b, 0x15, 0x95, 0x27, 0x77, 0x38, 0x84, 0x14, 0x09, 0xd0, 0xf8, 0xf1, 0x13, 0x19, 0x1d, 0x47, 0xf5, 0xe5, 0x6c, 0x11, 0x5a, 0x05, 0xde, 0xa7, 0x59, 0xaa, 0x6f, 0xb1, 0xd0, -+ 0x47, 0xf9, 0xfc, 0xa4, 0xed, 0x51, 0x9e, 0xa5, 0xd2, 0x1f, 0xe3, 0xba, 0x5b, 0x94, 0x34, 0xfe, 0xa1, 0x28, 0x3d, 0xfa, 0xd6, 0x3d, 0x01, 0x58, 0x9b, 0x0e, 0xb6, 0x1f, 0x24, 0x43, 0x51, 0xd0, -+ 0x33, 0x41, 0xdc, 0xd4, 0xdf, 0x62, 0x26, 0x5a, 0xfc, 0xae, 0xc6, 0x67, 0x6a, 0x87, 0x7d, 0x5c, 0xac, 0xb3, 0x59, 0xeb, 0xb5, 0x31, 0x96, 0x10, 0xdd, 0x44, 0x7d, 0xa9, 0x7e, 0x95, 0x0b, 0x0c, -+ }, -+ }, -+ { -+ .name = "Kyber Round 2, 1024 KAT 0 (PKCS#8/SPKI)", -+ .version = 0, -+ .keyform = 0, -+ .pk_len = 0, -+ .sk_len = 0, -+ .pkcs8_len = 4849, -+ .pkcs8 = { -+ 0x30, 0x82, 0x12, 0xed, 0x02, 0x01, 0x00, 0x30, 0x0f, 0x06, 0x0b, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x02, 0x82, 0x0b, 0x05, 0x04, 0x04, 0x05, 0x00, 0x04, 0x82, 0x12, 0xd5, 0x30, 0x82, 0x12, 0xd1, -+ 0x02, 0x01, 0x00, 0x03, 0x82, 0x0c, 0x61, 0x00, 0x07, 0x63, 0x8f, 0xb6, 0x98, 0x68, 0xf3, 0xd3, 0x20, 0xe5, 0x86, 0x2b, 0xd9, 0x69, 0x33, 0xfe, 0xb3, 0x11, 0xb3, 0x62, 0x09, 0x3c, 0x9b, 0x5d, -+ 0x50, 0x17, 0x0b, 0xce, 0xd4, 0x3f, 0x1b, 0x53, 0x6d, 0x9a, 0x20, 0x4b, 0xb1, 0xf2, 0x26, 0x95, 0x95, 0x0b, 0xa1, 0xf2, 0xa9, 0xe8, 0xeb, 0x82, 0x8b, 0x28, 0x44, 0x88, 0x76, 0x0b, 0x3f, 0xc8, -+ 0x4f, 0xab, 0xa0, 0x42, 0x75, 0xd5, 0x62, 0x8e, 0x39, 0xc5, 0xb2, 0x47, 0x13, 0x74, 0x28, 0x3c, 0x50, 0x32, 0x99, 0xc0, 0xab, 0x49, 0xb6, 0x6b, 0x8b, 0xbb, 0x56, 0xa4, 0x18, 0x66, 0x24, 0xf9, -+ 0x19, 0xa2, 0xba, 0x59, 0xbb, 0x08, 0xd8, 0x55, 0x18, 0x80, 0xc2, 0xbe, 0xfc, 0x4f, 0x87, 0xf2, 0x5f, 0x59, 0xab, 0x58, 0x7a, 0x79, 0xc3, 0x27, 0xd7, 0x92, 0xd5, 0x4c, 0x97, 0x4a, 0x69, 0x26, -+ 0x2f, 0xf8, 0xa7, 0x89, 0x38, 0x28, 0x9e, 0x9a, 0x87, 0xb6, 0x88, 0xb0, 0x83, 0xe0, 0x59, 0x5f, 0xe2, 0x18, 0xb6, 0xbb, 0x15, 0x05, 0x94, 0x1c, 0xe2, 0xe8, 0x1a, 0x5a, 0x64, 0xc5, 0xaa, 0xc6, -+ 0x04, 0x17, 0x25, 0x69, 0x85, 0x34, 0x9e, 0xe4, 0x7a, 0x52, 0x42, 0x0a, 0x5f, 0x97, 0x47, 0x7b, 0x72, 0x36, 0xac, 0x76, 0xbc, 0x70, 0xe8, 0x28, 0x87, 0x29, 0x28, 0x7e, 0xe3, 0xe3, 0x4a, 0x3d, -+ 0xbc, 0x36, 0x83, 0xc0, 0xb7, 0xb1, 0x00, 0x29, 0xfc, 0x20, 0x34, 0x18, 0x53, 0x7e, 0x74, 0x66, 0xba, 0x63, 0x85, 0xa8, 0xff, 0x30, 0x1e, 0xe1, 0x27, 0x08, 0xf8, 0x2a, 0xaa, 0x1e, 0x38, 0x0f, -+ 0xc7, 0xa8, 0x8f, 0x8f, 0x20, 0x5a, 0xb7, 0xe8, 0x8d, 0x7e, 0x95, 0x95, 0x2a, 0x55, 0xba, 0x20, 0xd0, 0x9b, 0x79, 0xa4, 0x71, 0x41, 0xd6, 0x2b, 0xf6, 0xeb, 0x7d, 0xd3, 0x07, 0xb0, 0x8e, 0xca, -+ 0x13, 0xa5, 0xbc, 0x5f, 0x6b, 0x68, 0x58, 0x1c, 0x68, 0x65, 0xb2, 0x7b, 0xbc, 0xdd, 0xab, 0x14, 0x2f, 0x4b, 0x2c, 0xbf, 0xf4, 0x88, 0xc8, 0xa2, 0x27, 0x05, 0xfa, 0xa9, 0x8a, 0x2b, 0x9e, 0xea, -+ 0x35, 0x30, 0xc7, 0x66, 0x62, 0x33, 0x5c, 0xc7, 0xea, 0x3a, 0x00, 0x77, 0x77, 0x25, 0xeb, 0xcc, 0xcd, 0x2a, 0x46, 0x36, 0xb2, 0xd9, 0x12, 0x2f, 0xf3, 0xab, 0x77, 0x12, 0x3c, 0xe0, 0x88, 0x3c, -+ 0x19, 0x11, 0x11, 0x5e, 0x50, 0xc9, 0xe8, 0xa9, 0x41, 0x94, 0xe4, 0x8d, 0xd0, 0xd0, 0x9c, 0xff, 0xb3, 0xad, 0xcd, 0x2c, 0x1e, 0x92, 0x43, 0x09, 0x03, 0xd0, 0x7a, 0xdb, 0xf0, 0x05, 0x32, 0x03, -+ 0x15, 0x75, 0xaa, 0x7f, 0x9e, 0x7b, 0x5a, 0x1f, 0x33, 0x62, 0xde, 0xc9, 0x36, 0xd4, 0x04, 0x3c, 0x05, 0xf2, 0x47, 0x6c, 0x07, 0x57, 0x8b, 0xc9, 0xcb, 0xaf, 0x2a, 0xb4, 0xe3, 0x82, 0x72, 0x7a, -+ 0xd4, 0x16, 0x86, 0xa9, 0x6b, 0x25, 0x48, 0x82, 0x0b, 0xb0, 0x3b, 0x32, 0xf1, 0x1b, 0x28, 0x11, 0xad, 0x62, 0xf4, 0x89, 0xe9, 0x51, 0x63, 0x2a, 0xba, 0x0d, 0x1d, 0xf8, 0x96, 0x80, 0xcc, 0x8a, -+ 0x8b, 0x53, 0xb4, 0x81, 0xd9, 0x2a, 0x68, 0xd7, 0x0b, 0x4e, 0xa1, 0xc3, 0xa6, 0xa5, 0x61, 0xc0, 0x69, 0x28, 0x82, 0xb5, 0xca, 0x8c, 0xc9, 0x42, 0xa8, 0xd4, 0x95, 0xaf, 0xcb, 0x06, 0xde, 0x89, -+ 0x49, 0x8f, 0xb9, 0x35, 0xb7, 0x75, 0x90, 0x8f, 0xe7, 0xa0, 0x3e, 0x32, 0x4d, 0x54, 0xcc, 0x19, 0xd4, 0xe1, 0xaa, 0xbd, 0x35, 0x93, 0xb3, 0x8b, 0x19, 0xee, 0x13, 0x88, 0xfe, 0x49, 0x2b, 0x43, -+ 0x12, 0x7e, 0x5a, 0x50, 0x42, 0x53, 0x78, 0x6a, 0x0d, 0x69, 0xad, 0x32, 0x60, 0x1c, 0x28, 0xe2, 0xc8, 0x85, 0x04, 0xa5, 0xba, 0x59, 0x97, 0x06, 0x02, 0x3a, 0x61, 0x36, 0x3e, 0x17, 0xc6, 0xb9, -+ 0xbb, 0x59, 0xbd, 0xc6, 0x97, 0x45, 0x2c, 0xd0, 0x59, 0x45, 0x19, 0x83, 0xd7, 0x38, 0xca, 0x3f, 0xd0, 0x34, 0xe3, 0xf5, 0x98, 0x88, 0x54, 0xca, 0x05, 0x03, 0x1d, 0xb0, 0x96, 0x11, 0x49, 0x89, -+ 0x88, 0x19, 0x7c, 0x6b, 0x30, 0xd2, 0x58, 0xdf, 0xe2, 0x62, 0x65, 0x54, 0x1c, 0x89, 0xa4, 0xb3, 0x1d, 0x68, 0x64, 0xe9, 0x38, 0x9b, 0x03, 0xcb, 0x74, 0xf7, 0xec, 0x43, 0x23, 0xfb, 0x94, 0x21, -+ 0xa4, 0xb9, 0x79, 0x0a, 0x26, 0xd1, 0x7b, 0x03, 0x98, 0xa2, 0x67, 0x67, 0x35, 0x09, 0x09, 0xf8, 0x4d, 0x57, 0xb6, 0x69, 0x4d, 0xf8, 0x30, 0x66, 0x4c, 0xa8, 0xb3, 0xc3, 0xc0, 0x3e, 0xd2, 0xae, -+ 0x67, 0xb8, 0x90, 0x06, 0x86, 0x8a, 0x68, 0x52, 0x7c, 0xcd, 0x66, 0x64, 0x59, 0xab, 0x7f, 0x05, 0x66, 0x71, 0x00, 0x0c, 0x61, 0x64, 0xd3, 0xa7, 0xf2, 0x66, 0xa1, 0x4d, 0x97, 0xcb, 0xd7, 0x00, -+ 0x4d, 0x6c, 0x92, 0xca, 0xca, 0x77, 0x0b, 0x84, 0x4a, 0x4f, 0xa9, 0xb1, 0x82, 0xe7, 0xb1, 0x8c, 0xa8, 0x85, 0x08, 0x2a, 0xc5, 0x64, 0x6f, 0xcb, 0x4a, 0x14, 0xe1, 0x68, 0x5f, 0xeb, 0x0c, 0x9c, -+ 0xe3, 0x37, 0x2a, 0xb9, 0x53, 0x65, 0xc0, 0x4f, 0xd8, 0x30, 0x84, 0xf8, 0x0a, 0x23, 0xff, 0x10, 0xa0, 0x5b, 0xf1, 0x5f, 0x7f, 0xa5, 0xac, 0xc6, 0xc0, 0xcb, 0x46, 0x2c, 0x33, 0xca, 0x52, 0x4f, -+ 0xa6, 0xb8, 0xbb, 0x35, 0x90, 0x43, 0xba, 0x68, 0x60, 0x9e, 0xaa, 0x25, 0x36, 0xe8, 0x1d, 0x08, 0x46, 0x3b, 0x19, 0x65, 0x3b, 0x54, 0x35, 0xba, 0x94, 0x6c, 0x9a, 0xdd, 0xeb, 0x20, 0x2b, 0x04, -+ 0xb0, 0x31, 0xcc, 0x96, 0x0d, 0xcc, 0x12, 0xe4, 0x51, 0x8d, 0x42, 0x8b, 0x32, 0xb2, 0x57, 0xa4, 0xfc, 0x73, 0x13, 0xd3, 0xa7, 0x98, 0x0d, 0x80, 0x08, 0x2e, 0x93, 0x4f, 0x9d, 0x95, 0xc3, 0x2b, -+ 0x0a, 0x01, 0x91, 0xa2, 0x36, 0x04, 0x38, 0x4d, 0xd9, 0xe0, 0x79, 0xbb, 0xba, 0xa2, 0x66, 0xd1, 0x4c, 0x3f, 0x75, 0x6b, 0x9f, 0x21, 0x33, 0x10, 0x74, 0x33, 0xa4, 0xe8, 0x3f, 0xa7, 0x18, 0x72, -+ 0x82, 0xa8, 0x09, 0x20, 0x3a, 0x4f, 0xaf, 0x84, 0x18, 0x51, 0x83, 0x3d, 0x12, 0x1a, 0xc3, 0x83, 0x84, 0x3a, 0x5e, 0x55, 0xbc, 0x23, 0x81, 0x42, 0x5e, 0x16, 0xc7, 0xdb, 0x4c, 0xc9, 0xab, 0x5c, -+ 0x1b, 0x0d, 0x91, 0xa4, 0x7e, 0x2b, 0x8d, 0xe0, 0xe5, 0x82, 0xc8, 0x6b, 0x6b, 0x0d, 0x90, 0x7b, 0xb3, 0x60, 0xb9, 0x7f, 0x40, 0xab, 0x5d, 0x03, 0x8f, 0x6b, 0x75, 0xc8, 0x14, 0xb2, 0x7d, 0x9b, -+ 0x96, 0x8d, 0x41, 0x98, 0x32, 0xbc, 0x8c, 0x2b, 0xee, 0x60, 0x5e, 0xf6, 0xe5, 0x05, 0x9d, 0x33, 0x10, 0x0d, 0x90, 0x48, 0x5d, 0x37, 0x84, 0x50, 0x01, 0x42, 0x21, 0x73, 0x6c, 0x07, 0x40, 0x7c, -+ 0xac, 0x26, 0x04, 0x08, 0xaa, 0x64, 0x92, 0x66, 0x19, 0x78, 0x8b, 0x86, 0x01, 0xc2, 0xa7, 0x52, 0xd1, 0xa6, 0xcb, 0xf8, 0x20, 0xd7, 0xc7, 0xa0, 0x47, 0x16, 0x20, 0x32, 0x25, 0xb3, 0x89, 0x5b, -+ 0x93, 0x42, 0xd1, 0x47, 0xa8, 0x18, 0x5c, 0xfc, 0x1b, 0xb6, 0x5b, 0xa0, 0x6b, 0x41, 0x42, 0x33, 0x99, 0x03, 0xc0, 0xac, 0x46, 0x51, 0x38, 0x5b, 0x45, 0xd9, 0x8a, 0x8b, 0x19, 0xd2, 0x8c, 0xd6, -+ 0xba, 0xb0, 0x88, 0x78, 0x7f, 0x7e, 0xe1, 0xb1, 0x24, 0x61, 0x76, 0x6b, 0x43, 0xcb, 0xcc, 0xb9, 0x64, 0x34, 0x42, 0x7d, 0x93, 0xc0, 0x65, 0x55, 0x06, 0x88, 0xf6, 0x94, 0x8e, 0xd1, 0xb5, 0x47, -+ 0x5a, 0x42, 0x5f, 0x1b, 0x85, 0x20, 0x9d, 0x06, 0x1c, 0x08, 0xb5, 0x6c, 0x1c, 0xc0, 0x69, 0xf6, 0xc0, 0xa7, 0xc6, 0xf2, 0x93, 0x58, 0xca, 0xb9, 0x11, 0x08, 0x77, 0x32, 0xa6, 0x49, 0xd2, 0x7c, -+ 0x9b, 0x98, 0xf9, 0xa4, 0x88, 0x79, 0x38, 0x7d, 0x9b, 0x00, 0xc2, 0x59, 0x59, 0xa7, 0x16, 0x54, 0xd6, 0xf6, 0xa9, 0x46, 0x16, 0x45, 0x13, 0xe4, 0x7a, 0x75, 0xd0, 0x05, 0x98, 0x6c, 0x23, 0x63, -+ 0xc0, 0x9f, 0x6b, 0x53, 0x7e, 0xca, 0x78, 0xb9, 0x30, 0x3a, 0x5f, 0xa4, 0x57, 0x60, 0x8a, 0x58, 0x6a, 0x65, 0x3a, 0x34, 0x7d, 0xb0, 0x4d, 0xfc, 0xc1, 0x91, 0x75, 0xb3, 0xa3, 0x01, 0x17, 0x25, -+ 0x36, 0x06, 0x2a, 0x65, 0x8a, 0x95, 0x27, 0x75, 0x70, 0xc8, 0x85, 0x2c, 0xa8, 0x97, 0x3f, 0x4a, 0xe1, 0x23, 0xa3, 0x34, 0x04, 0x7d, 0xd7, 0x11, 0xc8, 0x92, 0x7a, 0x63, 0x4a, 0x03, 0x38, 0x8a, -+ 0x52, 0x7b, 0x03, 0x4b, 0xf7, 0xa8, 0x17, 0x0f, 0xa7, 0x02, 0xc1, 0xf7, 0xc2, 0x3e, 0xc3, 0x2d, 0x18, 0xa2, 0x37, 0x48, 0x90, 0xbe, 0x9c, 0x78, 0x7a, 0x94, 0x09, 0xc8, 0x2d, 0x19, 0x2c, 0x4b, -+ 0xb7, 0x05, 0xa2, 0xf9, 0x96, 0xce, 0x40, 0x5d, 0x85, 0xa4, 0xc1, 0xa1, 0xab, 0x9b, 0x6a, 0xeb, 0x49, 0xcc, 0xe1, 0xc2, 0xf8, 0xa9, 0x7c, 0x35, 0x16, 0xc7, 0x2a, 0x00, 0xa4, 0x62, 0x63, 0xba, -+ 0xa6, 0x96, 0xbf, 0x25, 0x72, 0x77, 0x19, 0xc3, 0x21, 0x64, 0x23, 0x61, 0x8f, 0xf3, 0x33, 0x80, 0x93, 0x4a, 0x6c, 0x10, 0x54, 0x5c, 0x4c, 0x5c, 0x51, 0x55, 0xb1, 0x24, 0x86, 0x18, 0x1f, 0xc7, -+ 0xa2, 0x31, 0x98, 0x73, 0x97, 0x8b, 0x6a, 0x2a, 0x67, 0x49, 0x0f, 0x82, 0x56, 0xbd, 0x21, 0x96, 0xfe, 0x17, 0x92, 0xa4, 0xc0, 0x00, 0x77, 0xb8, 0x12, 0xea, 0xe8, 0xbe, 0xd3, 0x57, 0x24, 0x99, -+ 0x68, 0x4a, 0xb3, 0x37, 0x18, 0x76, 0x76, 0x1e, 0x45, 0x0c, 0x9f, 0x9d, 0x27, 0x68, 0xa3, 0x68, 0x06, 0xd7, 0xab, 0x20, 0x46, 0xc9, 0x1f, 0x17, 0x59, 0x9e, 0x9a, 0xc5, 0x92, 0x99, 0x08, 0x08, -+ 0xdc, 0xd7, 0xb4, 0xd0, 0x91, 0x90, 0x72, 0xf1, 0x4e, 0xc3, 0x61, 0x77, 0x3b, 0x72, 0x52, 0x44, 0x4c, 0x32, 0x3c, 0x30, 0x83, 0x26, 0xf4, 0xa3, 0x0f, 0x86, 0x80, 0xd2, 0xf7, 0x48, 0xf5, 0x6a, -+ 0x13, 0x2b, 0x82, 0x67, 0x4e, 0xd0, 0x18, 0x46, 0x20, 0xb8, 0x2a, 0xd2, 0xcb, 0x18, 0x2c, 0x97, 0xb4, 0x81, 0x62, 0x66, 0x47, 0x49, 0x12, 0x90, 0xa0, 0x11, 0xcc, 0x73, 0x82, 0x86, 0x85, 0xa8, -+ 0xc3, 0x67, 0xa5, 0xb9, 0xcf, 0x8d, 0x62, 0x1b, 0x0d, 0x5c, 0x1e, 0xff, 0x03, 0x17, 0x27, 0x58, 0xbd, 0x00, 0x49, 0x78, 0xc2, 0x51, 0xcd, 0x51, 0x34, 0x22, 0x28, 0x98, 0x9c, 0xae, 0x63, 0x32, -+ 0xac, 0x48, 0x64, 0x37, 0xcb, 0x5c, 0x57, 0xd4, 0x30, 0x74, 0x62, 0x86, 0x52, 0x53, 0xbe, 0x21, 0x7b, 0x35, 0x15, 0xc7, 0x3d, 0xf4, 0x05, 0xb7, 0xf2, 0x82, 0x17, 0xad, 0x0b, 0x8c, 0xf6, 0x0c, -+ 0x2f, 0xff, 0xaa, 0x0a, 0x00, 0x48, 0xb1, 0xfb, 0x4a, 0xcd, 0xcd, 0xc3, 0x8b, 0x52, 0x50, 0xcf, 0xec, 0x35, 0x6a, 0x6d, 0xe2, 0x6c, 0xfa, 0x7a, 0x58, 0x8f, 0xdc, 0x86, 0xf9, 0x8c, 0x85, 0x4a, -+ 0xc6, 0x4c, 0x7b, 0xfa, 0xa9, 0x6f, 0x5a, 0x32, 0xcc, 0x06, 0x10, 0x93, 0x4b, 0xaa, 0x6a, 0x58, 0x6b, 0x9a, 0x20, 0x54, 0xf1, 0x3b, 0xa2, 0x74, 0x17, 0x4a, 0xa0, 0xd2, 0xb3, 0xa8, 0x1b, 0x96, -+ 0xa9, 0x40, 0x66, 0x6f, 0x78, 0x9b, 0x5a, 0x6b, 0xcd, 0xc0, 0xa6, 0xa0, 0x17, 0x8a, 0x0c, 0x9a, 0x02, 0x57, 0x8a, 0x49, 0x3f, 0x6e, 0xea, 0x0d, 0x2e, 0x6c, 0x13, 0x95, 0x1c, 0x9f, 0x24, 0x9a, -+ 0x5e, 0x8d, 0xd7, 0x1d, 0xd4, 0x9a, 0x74, 0x2d, 0x45, 0x1f, 0x1a, 0xbb, 0xa1, 0x9a, 0xf8, 0xc5, 0x47, 0x85, 0x5e, 0x0a, 0xfc, 0x72, 0x8e, 0x90, 0xab, 0xb4, 0x99, 0xc9, 0xbe, 0xeb, 0x76, 0x6f, -+ 0x47, 0x29, 0xcd, 0xa2, 0x22, 0x63, 0xe3, 0x24, 0xda, 0x18, 0x71, 0x2d, 0x31, 0x6e, 0x98, 0xdc, 0x7a, 0xc8, 0xc3, 0xca, 0x47, 0x37, 0x0e, 0xbd, 0x77, 0x0c, 0xe3, 0x2b, 0x3b, 0xd4, 0xb1, 0xa0, -+ 0xc9, 0x52, 0x9a, 0xc6, 0xec, 0x8e, 0xe0, 0x28, 0xb1, 0xcd, 0xb2, 0x65, 0x1c, 0xb5, 0xa6, 0xbb, 0x3c, 0x0c, 0x6d, 0xf1, 0x24, 0x0a, 0x3b, 0x91, 0x4b, 0x56, 0x56, 0xc0, 0xdc, 0x51, 0xc2, 0xb9, -+ 0x1b, 0xfc, 0xbc, 0x37, 0xa4, 0x66, 0x02, 0x87, 0xd4, 0x4f, 0x81, 0xf8, 0x53, 0xc7, 0xf4, 0x9a, 0x6d, 0x06, 0x03, 0xd6, 0xd7, 0x23, 0xcb, 0xec, 0x01, 0x5f, 0xbc, 0x43, 0x4a, 0x38, 0x24, 0x1c, -+ 0x10, 0x9c, 0x7e, 0xd5, 0xb1, 0xcc, 0x46, 0x1a, 0x2c, 0xcb, 0x9a, 0xb7, 0x14, 0x0f, 0x19, 0xf3, 0x7a, 0x13, 0xbb, 0x70, 0x1e, 0x14, 0x2b, 0xd5, 0x4b, 0x64, 0xec, 0x6b, 0x76, 0xfe, 0xc3, 0x3b, -+ 0x69, 0xc2, 0x91, 0x8c, 0xb0, 0x17, 0xc4, 0x14, 0x34, 0x23, 0x00, 0x9a, 0x3c, 0x07, 0xb5, 0xc1, 0x81, 0xb0, 0xc1, 0xeb, 0x49, 0x4a, 0x62, 0xab, 0xc8, 0x39, 0x13, 0x97, 0x08, 0x9e, 0xa6, 0x64, -+ 0x09, 0x67, 0xc1, 0x20, 0x49, 0x84, 0xcd, 0x48, 0x4c, 0xcc, 0xb0, 0x0a, 0x9a, 0x17, 0xd0, 0x87, 0x21, 0x84, 0x28, 0xef, 0x3b, 0xb7, 0x08, 0x78, 0x3e, 0x12, 0x82, 0x71, 0x04, 0x41, 0x73, 0x75, -+ 0xb6, 0x95, 0x6f, 0xb5, 0x00, 0x53, 0xd0, 0x48, 0xa4, 0x79, 0x14, 0x95, 0x82, 0x4a, 0x34, 0x80, 0xa5, 0xb7, 0x83, 0x02, 0x56, 0x09, 0x6f, 0xdd, 0x72, 0x5c, 0x30, 0x8b, 0x3b, 0xe8, 0x4a, 0x07, -+ 0xf3, 0x63, 0x2e, 0x24, 0x95, 0xc6, 0x2e, 0x96, 0x39, 0x9d, 0x80, 0xbf, 0xa7, 0x45, 0xb9, 0x84, 0x1a, 0x18, 0x33, 0xbc, 0x1d, 0x27, 0xba, 0x45, 0xa5, 0x21, 0x68, 0xee, 0x59, 0x00, 0x6c, 0x3a, -+ 0x3a, 0x8c, 0x4a, 0x5a, 0x4f, 0x50, 0x88, 0xfc, 0x73, 0x71, 0x81, 0xab, 0x51, 0x96, 0xf7, 0xb1, 0xb4, 0x9a, 0x2e, 0xd8, 0x13, 0x13, 0x4e, 0x11, 0x2f, 0x73, 0x0b, 0x99, 0x1c, 0x54, 0xa7, 0x19, -+ 0x6b, 0xcf, 0x5f, 0xc7, 0x6e, 0x13, 0x4c, 0x58, 0x43, 0xe1, 0x69, 0x88, 0x51, 0xb2, 0xf8, 0x69, 0xaf, 0xaf, 0xb0, 0x27, 0x87, 0xd9, 0xc2, 0xf1, 0x36, 0x90, 0x2d, 0xc7, 0xa7, 0xf3, 0xd6, 0x21, -+ 0x56, 0xd1, 0x5e, 0xc3, 0x09, 0x56, 0x40, 0x92, 0xc6, 0x1d, 0x83, 0xb0, 0x98, 0x6c, 0x48, 0x40, 0x99, 0x81, 0xf3, 0xc1, 0x86, 0x88, 0x0a, 0x2f, 0x63, 0xd5, 0x86, 0x0a, 0xb6, 0x01, 0xde, 0xac, -+ 0x2b, 0x6b, 0xa1, 0xb4, 0x28, 0x17, 0x9d, 0x73, 0x53, 0x3e, 0xb7, 0xa3, 0xa5, 0x11, 0x3b, 0x85, 0x61, 0xf1, 0x0b, 0x45, 0xc3, 0xcd, 0xe2, 0x82, 0xb6, 0xea, 0xd6, 0xab, 0x6c, 0x60, 0x4f, 0x09, -+ 0xc1, 0x7b, 0xfd, 0xa0, 0x83, 0x13, 0xa3, 0x26, 0x07, 0x67, 0x5a, 0xdf, 0x64, 0x31, 0xca, 0x87, 0x18, 0xe9, 0xc4, 0x3a, 0x73, 0x73, 0x32, 0x27, 0xe7, 0x3b, 0xc6, 0x1a, 0xc8, 0x45, 0xba, 0x90, -+ 0x77, 0x55, 0xce, 0xc6, 0x89, 0x25, 0xe5, 0xe2, 0xbf, 0xe9, 0x12, 0x95, 0x9d, 0xb8, 0x6f, 0xbf, 0xe2, 0x15, 0x6f, 0xd5, 0xbb, 0xdb, 0xf0, 0xc9, 0xdf, 0x8b, 0x53, 0x02, 0xaa, 0x8d, 0x90, 0xa2, -+ 0x2d, 0x12, 0x27, 0x0e, 0x00, 0x65, 0x51, 0xe4, 0x76, 0x7e, 0x45, 0x26, 0x8e, 0xd9, 0x69, 0x26, 0x54, 0x44, 0x78, 0x11, 0xea, 0xb8, 0x4f, 0x04, 0x99, 0xa8, 0xa5, 0x8c, 0xf7, 0xc0, 0x4a, 0x59, -+ 0x56, 0x98, 0x52, 0x80, 0x45, 0xf2, 0x98, 0x97, 0xc8, 0xfa, 0x96, 0xd0, 0x6c, 0xce, 0x51, 0xe6, 0xaf, 0xea, 0xc4, 0x33, 0x95, 0x89, 0xc9, 0x41, 0xc8, 0x55, 0x63, 0xd7, 0x0f, 0xac, 0xe1, 0x92, -+ 0x88, 0x94, 0xba, 0xc0, 0x36, 0x19, 0xdf, 0xf4, 0xbe, 0x3f, 0x43, 0x14, 0xa3, 0xf7, 0x35, 0x1a, 0x09, 0xa4, 0x86, 0xb5, 0x04, 0x1e, 0x7c, 0xb2, 0xda, 0x8b, 0x96, 0xbc, 0x66, 0x26, 0xa4, 0x93, -+ 0x17, 0x35, 0x7c, 0x41, 0x52, 0xa5, 0x1b, 0xa3, 0xc2, 0x8c, 0x7e, 0x0c, 0x9d, 0xb4, 0x1a, 0x06, 0xa2, 0x82, 0x90, 0xf2, 0x18, 0x73, 0x11, 0x07, 0xc9, 0x54, 0xd8, 0xa6, 0x6f, 0x80, 0x1d, 0x7d, -+ 0xe1, 0x2a, 0x03, 0x71, 0x16, 0x99, 0x0b, 0x6c, 0x53, 0xc1, 0x29, 0xf1, 0x85, 0xc3, 0x45, 0xf2, 0x7e, 0x51, 0x8b, 0x2d, 0x5a, 0x91, 0x25, 0xa0, 0x70, 0x76, 0xd9, 0x91, 0xb7, 0xda, 0xc7, 0xcc, -+ 0x65, 0xa8, 0x56, 0x2e, 0xfb, 0xcc, 0x32, 0xa9, 0xca, 0x4a, 0xd9, 0x02, 0x63, 0xb0, 0x4a, 0x4f, 0x90, 0x36, 0x11, 0x6c, 0x7b, 0x97, 0x48, 0x04, 0x96, 0x31, 0x75, 0x75, 0x65, 0x0d, 0xcc, 0x21, -+ 0x52, 0xb5, 0xbc, 0x0e, 0x74, 0x40, 0x7e, 0x12, 0xfa, 0x8e, 0x4f, 0xfc, 0xcc, 0xff, 0x76, 0xc0, 0x1a, 0x97, 0x4b, 0xd6, 0x11, 0x02, 0xe1, 0xf5, 0x29, 0x64, 0x96, 0xc7, 0x1d, 0x07, 0x64, 0xe1, -+ 0x32, 0x29, 0xff, 0xe7, 0x84, 0x6f, 0x33, 0x6e, 0x34, 0xca, 0xc9, 0x04, 0xca, 0x56, 0x70, 0xf8, 0xcd, 0x50, 0x52, 0x42, 0x7a, 0x79, 0xc0, 0x91, 0xa9, 0x71, 0x21, 0x0c, 0x5c, 0xff, 0x66, 0x7a, -+ 0xac, 0x24, 0x93, 0x66, 0xe1, 0x0d, 0x2b, 0x11, 0x37, 0x6c, 0xa3, 0x9d, 0x93, 0x52, 0x04, 0xb1, 0x2c, 0xc5, 0x85, 0xe9, 0x40, 0x54, 0x03, 0x62, 0x5f, 0xb3, 0x2c, 0xb5, 0xe5, 0xc3, 0x1b, 0x62, -+ 0x34, 0x81, 0x60, 0x51, 0x5c, 0xcc, 0x4f, 0xda, 0xf5, 0x70, 0x2d, 0x6b, 0xab, 0x5c, 0x37, 0x3d, 0xb6, 0xf3, 0x50, 0xd3, 0xe6, 0x3a, 0x5c, 0xe3, 0xca, 0x54, 0x74, 0xa0, 0xcf, 0x15, 0x67, 0x04, -+ 0x2c, 0xa3, 0x25, 0x89, 0x86, 0xff, 0x75, 0xbd, 0xfc, 0xd9, 0x29, 0xe6, 0x46, 0x2f, 0x36, 0xbc, 0xcc, 0x3f, 0x5a, 0x93, 0x35, 0x2a, 0x2b, 0x36, 0xcb, 0x16, 0x2e, 0x18, 0x74, 0xc7, 0x42, 0x87, -+ 0x0a, 0x97, 0xb1, 0x67, 0xa0, 0x50, 0x37, 0x36, 0x24, 0xea, 0xeb, 0x7e, 0x50, 0x73, 0x25, 0x6b, 0x72, 0x11, 0xb2, 0xd9, 0x4b, 0x84, 0x06, 0xcd, 0x6c, 0x95, 0x33, 0xb1, 0x53, 0x64, 0x08, 0xab, -+ 0x0a, 0x29, 0xe5, 0xb2, 0xf0, 0xc9, 0x54, 0xec, 0xe0, 0x0f, 0xbb, 0xeb, 0x17, 0x6d, 0x72, 0x4d, 0x4c, 0xf4, 0x43, 0xcf, 0x70, 0x20, 0xd5, 0xfa, 0x70, 0x94, 0xcc, 0x1b, 0x1b, 0xe6, 0x97, 0xba, -+ 0xd3, 0x36, 0x74, 0xe4, 0x09, 0x9e, 0xc7, 0xbb, 0x18, 0xf4, 0x57, 0x71, 0x28, 0xcd, 0xd9, 0x7c, 0xcd, 0x6d, 0x44, 0x62, 0xe5, 0x60, 0x7c, 0x51, 0x2a, 0x3e, 0x36, 0x24, 0x8e, 0x3d, 0xda, 0xa2, -+ 0xec, 0x08, 0x9a, 0xef, 0xc4, 0xce, 0x48, 0x5c, 0x49, 0xd7, 0xb0, 0x09, 0xc8, 0xd6, 0x31, 0x15, 0xfc, 0x81, 0xff, 0x3a, 0x62, 0xd1, 0x5a, 0x88, 0x44, 0x1c, 0x03, 0xea, 0x1c, 0x2e, 0x72, 0xc4, -+ 0x88, 0x39, 0xfc, 0x6a, 0xd7, 0x3a, 0x30, 0x74, 0x4a, 0x62, 0xb7, 0xb2, 0x16, 0x45, 0xa6, 0xaf, 0x7d, 0x61, 0xb6, 0x38, 0x3b, 0x22, 0x1e, 0x21, 0x90, 0x55, 0x57, 0xcd, 0x29, 0xd9, 0x24, 0xa6, -+ 0x09, 0x86, 0xc5, 0x11, 0xc1, 0xeb, 0xbc, 0x31, 0x6d, 0x56, 0x30, 0xa2, 0x41, 0x43, 0x23, 0xf5, 0x3a, 0xd5, 0x59, 0x94, 0xf6, 0xb3, 0x65, 0x39, 0xf9, 0xc4, 0x40, 0x75, 0xa5, 0x33, 0xe4, 0x81, -+ 0xc0, 0x84, 0x45, 0xd9, 0xca, 0x9e, 0x9d, 0x38, 0x21, 0x19, 0x38, 0x8b, 0xd1, 0xd7, 0x50, 0x52, 0x21, 0x7a, 0x94, 0x4c, 0xcc, 0x7b, 0xe9, 0x09, 0xe2, 0x19, 0x71, 0x1f, 0xcc, 0x79, 0x24, 0x76, -+ 0x92, 0x13, 0xa1, 0x92, 0x53, 0x4a, 0x55, 0x80, 0x08, 0x15, 0x7a, 0x39, 0x6e, 0xdf, 0xf4, 0x80, 0xcc, 0x3b, 0x52, 0x0f, 0xf8, 0x18, 0xb3, 0x8b, 0x13, 0x5c, 0x18, 0xa8, 0x0d, 0x51, 0x05, 0xe6, -+ 0x78, 0x83, 0x6c, 0x39, 0x5c, 0x28, 0xe9, 0x2f, 0x7a, 0x3c, 0x4e, 0x93, 0xc0, 0x10, 0x35, 0xf3, 0x41, 0x11, 0xcc, 0x49, 0x02, 0xd0, 0xc0, 0x33, 0xa6, 0x3f, 0x23, 0x6a, 0x71, 0xda, 0x97, 0x4a, -+ 0x6f, 0x40, 0x4f, 0x7a, 0xa7, 0xb5, 0xe5, 0x82, 0xc7, 0x58, 0x14, 0x2f, 0xc1, 0x82, 0x6b, 0xba, 0x98, 0xb2, 0x7d, 0x57, 0xc2, 0xe2, 0x10, 0x3e, 0x10, 0xe3, 0x0d, 0x32, 0x79, 0x7b, 0x96, 0x77, -+ 0x14, 0xd1, 0x56, 0x61, 0x11, 0x13, 0x71, 0xa2, 0xd9, 0xc5, 0x39, 0x98, 0x12, 0x46, 0x46, 0x22, 0x63, 0x5b, 0x44, 0x21, 0x26, 0xb0, 0x98, 0x36, 0xb0, 0x81, 0x82, 0x72, 0x47, 0xd0, 0x54, 0x22, -+ 0x97, 0x2b, 0xd0, 0x32, 0x0d, 0x8f, 0x42, 0xbf, 0x57, 0xe3, 0x49, 0x46, 0x12, 0x34, 0xe4, 0xd9, 0x4f, 0x01, 0x18, 0x50, 0xba, 0xb5, 0xc0, 0x49, 0xb6, 0x2a, 0x59, 0x43, 0x38, 0x66, 0xfc, 0xce, -+ 0x69, 0x66, 0x49, 0x5c, 0x26, 0x5c, 0x47, 0x65, 0xa5, 0x6c, 0x06, 0xb9, 0xfc, 0x42, 0x76, 0x54, 0x87, 0x85, 0xf4, 0x68, 0x28, 0xca, 0x60, 0x2d, 0xc6, 0xd0, 0x54, 0x1f, 0x25, 0x07, 0x89, 0xc4, -+ 0x9e, 0x8b, 0x06, 0x55, 0x9c, 0x43, 0x44, 0x60, 0xa8, 0x43, 0x80, 0x98, 0x54, 0xe5, 0xb4, 0x6e, 0x89, 0x38, 0x9f, 0x10, 0xf4, 0x89, 0x66, 0x74, 0x91, 0xc1, 0x93, 0x5e, 0x8a, 0xfb, 0x9e, 0xb4, -+ 0x71, 0x8f, 0x86, 0xac, 0x45, 0x89, 0x32, 0xbc, 0xf3, 0x3c, 0x9a, 0xbe, 0xcb, 0x2d, 0xc0, 0xc0, 0x93, 0xa7, 0xe8, 0x1d, 0xa0, 0x32, 0x7b, 0xb6, 0x37, 0x52, 0x81, 0x05, 0xc3, 0x58, 0xeb, 0x76, -+ 0x8d, 0x32, 0x3a, 0x37, 0xd4, 0x0a, 0x8c, 0x19, 0x9b, 0x7c, 0x4b, 0xb1, 0xd7, 0x2b, 0x72, 0xb6, 0x90, 0xb3, 0x6d, 0xd2, 0x7a, 0x93, 0x55, 0x19, 0x1b, 0x3c, 0x3a, 0xa6, 0x75, 0xa7, 0xe6, 0xf8, -+ 0x55, 0xeb, 0x50, 0x5f, 0x57, 0x98, 0x65, 0xdb, 0xd8, 0x91, 0x05, 0x65, 0x50, 0x5e, 0x7c, 0x0f, 0xdd, 0x54, 0x5c, 0xbb, 0xb8, 0x71, 0xb0, 0xb2, 0xcc, 0x01, 0x25, 0xb7, 0x4f, 0x6b, 0x0c, 0x9b, -+ 0x79, 0x67, 0x0a, 0x62, 0x02, 0xd1, 0xb9, 0x15, 0x4a, 0xc7, 0x76, 0x6b, 0x19, 0x19, 0xc4, 0x89, 0x58, 0x90, 0x86, 0xad, 0x8b, 0x45, 0xbe, 0x0d, 0x79, 0xc9, 0x76, 0xc3, 0xc3, 0x9d, 0x6b, 0x25, -+ 0x21, 0x3b, 0xb0, 0xb7, 0x8a, 0x57, 0x50, 0xe6, 0xa8, 0xeb, 0x34, 0x33, 0x0b, 0xb3, 0xcf, 0xf2, 0xb1, 0xc0, 0x72, 0x2a, 0xc8, 0x83, 0xb0, 0x48, 0xf4, 0xb8, 0xcd, 0x06, 0x19, 0x6d, 0xa8, 0xaa, -+ 0x8b, 0x05, 0xda, 0x42, 0x67, 0x55, 0x2b, 0xf8, 0x7a, 0xbc, 0xa5, 0x12, 0x4d, 0xc3, 0x58, 0xa8, 0x38, 0x10, 0x40, 0xe9, 0xb8, 0x1f, 0xb0, 0x84, 0x43, 0x15, 0x02, 0x15, 0xd6, 0x92, 0x23, 0x28, -+ 0x00, 0x0a, 0xc0, 0xb7, 0x88, 0xb1, 0x21, 0x93, 0x1a, 0x26, 0x7d, 0x80, 0x61, 0x9c, 0xe7, 0xd2, 0x9c, 0xd7, 0x6b, 0x60, 0xcf, 0x65, 0x83, 0xdc, 0xe8, 0xce, 0xbc, 0x49, 0x01, 0x85, 0x73, 0x6c, -+ 0x81, 0x8b, 0x25, 0xad, 0x26, 0x0b, 0x66, 0x7b, 0x1f, 0xfd, 0x46, 0x20, 0x6d, 0x01, 0x04, 0x55, 0x3a, 0xa9, 0xfb, 0x30, 0x45, 0x54, 0xa2, 0x1c, 0x32, 0x72, 0x44, 0xce, 0x78, 0xaf, 0xdb, 0xd3, -+ 0xb4, 0x62, 0x36, 0x1b, 0xb0, 0x68, 0xa1, 0x55, 0x63, 0x64, 0x09, 0xf5, 0x74, 0xc5, 0x71, 0x65, 0x72, 0xe2, 0xa5, 0xf2, 0xa4, 0xb0, 0x4f, 0xb8, 0xaa, 0xd1, 0x23, 0x66, 0x84, 0x84, 0x17, 0x87, -+ 0x56, 0x2a, 0xaf, 0x46, 0xc2, 0xc0, 0xda, 0x46, 0x65, 0xea, 0xfd, 0x46, 0x5f, 0xc6, 0x4a, 0x0c, 0x5f, 0x8f, 0x3f, 0x90, 0x03, 0x48, 0x94, 0x15, 0x89, 0x9d, 0x59, 0xa5, 0x43, 0xd8, 0x20, 0x8c, -+ 0x54, 0xa3, 0x16, 0x65, 0x29, 0xb5, 0x39, 0x22, 0xa5, 0x89, 0x9a, 0x0b, 0xc4, 0x65, 0xee, 0x5f, 0xc2, 0xc0, 0x41, 0x55, 0x58, 0x2a, 0x40, 0xac, 0x70, 0x97, 0x61, 0xd2, 0xbe, 0x61, 0xfd, 0xc7, -+ 0x6c, 0x59, 0x30, 0x44, 0xce, 0xbc, 0xc7, 0xf2, 0x86, 0x26, 0xed, 0x79, 0xd4, 0x51, 0x14, 0x08, 0x00, 0xe0, 0x3b, 0x59, 0xb9, 0x56, 0xf8, 0x21, 0x0e, 0x55, 0x60, 0x67, 0x40, 0x7d, 0x13, 0xdc, -+ 0x90, 0xfa, 0x9e, 0x8b, 0x87, 0x2b, 0xfb, 0x8f, 0xa0, 0x82, 0x06, 0x65, 0x03, 0x82, 0x06, 0x61, 0x00, 0xda, 0x18, 0x71, 0x2d, 0x31, 0x6e, 0x98, 0xdc, 0x7a, 0xc8, 0xc3, 0xca, 0x47, 0x37, 0x0e, -+ 0xbd, 0x77, 0x0c, 0xe3, 0x2b, 0x3b, 0xd4, 0xb1, 0xa0, 0xc9, 0x52, 0x9a, 0xc6, 0xec, 0x8e, 0xe0, 0x28, 0xb1, 0xcd, 0xb2, 0x65, 0x1c, 0xb5, 0xa6, 0xbb, 0x3c, 0x0c, 0x6d, 0xf1, 0x24, 0x0a, 0x3b, -+ 0x91, 0x4b, 0x56, 0x56, 0xc0, 0xdc, 0x51, 0xc2, 0xb9, 0x1b, 0xfc, 0xbc, 0x37, 0xa4, 0x66, 0x02, 0x87, 0xd4, 0x4f, 0x81, 0xf8, 0x53, 0xc7, 0xf4, 0x9a, 0x6d, 0x06, 0x03, 0xd6, 0xd7, 0x23, 0xcb, -+ 0xec, 0x01, 0x5f, 0xbc, 0x43, 0x4a, 0x38, 0x24, 0x1c, 0x10, 0x9c, 0x7e, 0xd5, 0xb1, 0xcc, 0x46, 0x1a, 0x2c, 0xcb, 0x9a, 0xb7, 0x14, 0x0f, 0x19, 0xf3, 0x7a, 0x13, 0xbb, 0x70, 0x1e, 0x14, 0x2b, -+ 0xd5, 0x4b, 0x64, 0xec, 0x6b, 0x76, 0xfe, 0xc3, 0x3b, 0x69, 0xc2, 0x91, 0x8c, 0xb0, 0x17, 0xc4, 0x14, 0x34, 0x23, 0x00, 0x9a, 0x3c, 0x07, 0xb5, 0xc1, 0x81, 0xb0, 0xc1, 0xeb, 0x49, 0x4a, 0x62, -+ 0xab, 0xc8, 0x39, 0x13, 0x97, 0x08, 0x9e, 0xa6, 0x64, 0x09, 0x67, 0xc1, 0x20, 0x49, 0x84, 0xcd, 0x48, 0x4c, 0xcc, 0xb0, 0x0a, 0x9a, 0x17, 0xd0, 0x87, 0x21, 0x84, 0x28, 0xef, 0x3b, 0xb7, 0x08, -+ 0x78, 0x3e, 0x12, 0x82, 0x71, 0x04, 0x41, 0x73, 0x75, 0xb6, 0x95, 0x6f, 0xb5, 0x00, 0x53, 0xd0, 0x48, 0xa4, 0x79, 0x14, 0x95, 0x82, 0x4a, 0x34, 0x80, 0xa5, 0xb7, 0x83, 0x02, 0x56, 0x09, 0x6f, -+ 0xdd, 0x72, 0x5c, 0x30, 0x8b, 0x3b, 0xe8, 0x4a, 0x07, 0xf3, 0x63, 0x2e, 0x24, 0x95, 0xc6, 0x2e, 0x96, 0x39, 0x9d, 0x80, 0xbf, 0xa7, 0x45, 0xb9, 0x84, 0x1a, 0x18, 0x33, 0xbc, 0x1d, 0x27, 0xba, -+ 0x45, 0xa5, 0x21, 0x68, 0xee, 0x59, 0x00, 0x6c, 0x3a, 0x3a, 0x8c, 0x4a, 0x5a, 0x4f, 0x50, 0x88, 0xfc, 0x73, 0x71, 0x81, 0xab, 0x51, 0x96, 0xf7, 0xb1, 0xb4, 0x9a, 0x2e, 0xd8, 0x13, 0x13, 0x4e, -+ 0x11, 0x2f, 0x73, 0x0b, 0x99, 0x1c, 0x54, 0xa7, 0x19, 0x6b, 0xcf, 0x5f, 0xc7, 0x6e, 0x13, 0x4c, 0x58, 0x43, 0xe1, 0x69, 0x88, 0x51, 0xb2, 0xf8, 0x69, 0xaf, 0xaf, 0xb0, 0x27, 0x87, 0xd9, 0xc2, -+ 0xf1, 0x36, 0x90, 0x2d, 0xc7, 0xa7, 0xf3, 0xd6, 0x21, 0x56, 0xd1, 0x5e, 0xc3, 0x09, 0x56, 0x40, 0x92, 0xc6, 0x1d, 0x83, 0xb0, 0x98, 0x6c, 0x48, 0x40, 0x99, 0x81, 0xf3, 0xc1, 0x86, 0x88, 0x0a, -+ 0x2f, 0x63, 0xd5, 0x86, 0x0a, 0xb6, 0x01, 0xde, 0xac, 0x2b, 0x6b, 0xa1, 0xb4, 0x28, 0x17, 0x9d, 0x73, 0x53, 0x3e, 0xb7, 0xa3, 0xa5, 0x11, 0x3b, 0x85, 0x61, 0xf1, 0x0b, 0x45, 0xc3, 0xcd, 0xe2, -+ 0x82, 0xb6, 0xea, 0xd6, 0xab, 0x6c, 0x60, 0x4f, 0x09, 0xc1, 0x7b, 0xfd, 0xa0, 0x83, 0x13, 0xa3, 0x26, 0x07, 0x67, 0x5a, 0xdf, 0x64, 0x31, 0xca, 0x87, 0x18, 0xe9, 0xc4, 0x3a, 0x73, 0x73, 0x32, -+ 0x27, 0xe7, 0x3b, 0xc6, 0x1a, 0xc8, 0x45, 0xba, 0x90, 0x77, 0x55, 0xce, 0xc6, 0x89, 0x25, 0xe5, 0xe2, 0xbf, 0xe9, 0x12, 0x95, 0x9d, 0xb8, 0x6f, 0xbf, 0xe2, 0x15, 0x6f, 0xd5, 0xbb, 0xdb, 0xf0, -+ 0xc9, 0xdf, 0x8b, 0x53, 0x02, 0xaa, 0x8d, 0x90, 0xa2, 0x2d, 0x12, 0x27, 0x0e, 0x00, 0x65, 0x51, 0xe4, 0x76, 0x7e, 0x45, 0x26, 0x8e, 0xd9, 0x69, 0x26, 0x54, 0x44, 0x78, 0x11, 0xea, 0xb8, 0x4f, -+ 0x04, 0x99, 0xa8, 0xa5, 0x8c, 0xf7, 0xc0, 0x4a, 0x59, 0x56, 0x98, 0x52, 0x80, 0x45, 0xf2, 0x98, 0x97, 0xc8, 0xfa, 0x96, 0xd0, 0x6c, 0xce, 0x51, 0xe6, 0xaf, 0xea, 0xc4, 0x33, 0x95, 0x89, 0xc9, -+ 0x41, 0xc8, 0x55, 0x63, 0xd7, 0x0f, 0xac, 0xe1, 0x92, 0x88, 0x94, 0xba, 0xc0, 0x36, 0x19, 0xdf, 0xf4, 0xbe, 0x3f, 0x43, 0x14, 0xa3, 0xf7, 0x35, 0x1a, 0x09, 0xa4, 0x86, 0xb5, 0x04, 0x1e, 0x7c, -+ 0xb2, 0xda, 0x8b, 0x96, 0xbc, 0x66, 0x26, 0xa4, 0x93, 0x17, 0x35, 0x7c, 0x41, 0x52, 0xa5, 0x1b, 0xa3, 0xc2, 0x8c, 0x7e, 0x0c, 0x9d, 0xb4, 0x1a, 0x06, 0xa2, 0x82, 0x90, 0xf2, 0x18, 0x73, 0x11, -+ 0x07, 0xc9, 0x54, 0xd8, 0xa6, 0x6f, 0x80, 0x1d, 0x7d, 0xe1, 0x2a, 0x03, 0x71, 0x16, 0x99, 0x0b, 0x6c, 0x53, 0xc1, 0x29, 0xf1, 0x85, 0xc3, 0x45, 0xf2, 0x7e, 0x51, 0x8b, 0x2d, 0x5a, 0x91, 0x25, -+ 0xa0, 0x70, 0x76, 0xd9, 0x91, 0xb7, 0xda, 0xc7, 0xcc, 0x65, 0xa8, 0x56, 0x2e, 0xfb, 0xcc, 0x32, 0xa9, 0xca, 0x4a, 0xd9, 0x02, 0x63, 0xb0, 0x4a, 0x4f, 0x90, 0x36, 0x11, 0x6c, 0x7b, 0x97, 0x48, -+ 0x04, 0x96, 0x31, 0x75, 0x75, 0x65, 0x0d, 0xcc, 0x21, 0x52, 0xb5, 0xbc, 0x0e, 0x74, 0x40, 0x7e, 0x12, 0xfa, 0x8e, 0x4f, 0xfc, 0xcc, 0xff, 0x76, 0xc0, 0x1a, 0x97, 0x4b, 0xd6, 0x11, 0x02, 0xe1, -+ 0xf5, 0x29, 0x64, 0x96, 0xc7, 0x1d, 0x07, 0x64, 0xe1, 0x32, 0x29, 0xff, 0xe7, 0x84, 0x6f, 0x33, 0x6e, 0x34, 0xca, 0xc9, 0x04, 0xca, 0x56, 0x70, 0xf8, 0xcd, 0x50, 0x52, 0x42, 0x7a, 0x79, 0xc0, -+ 0x91, 0xa9, 0x71, 0x21, 0x0c, 0x5c, 0xff, 0x66, 0x7a, 0xac, 0x24, 0x93, 0x66, 0xe1, 0x0d, 0x2b, 0x11, 0x37, 0x6c, 0xa3, 0x9d, 0x93, 0x52, 0x04, 0xb1, 0x2c, 0xc5, 0x85, 0xe9, 0x40, 0x54, 0x03, -+ 0x62, 0x5f, 0xb3, 0x2c, 0xb5, 0xe5, 0xc3, 0x1b, 0x62, 0x34, 0x81, 0x60, 0x51, 0x5c, 0xcc, 0x4f, 0xda, 0xf5, 0x70, 0x2d, 0x6b, 0xab, 0x5c, 0x37, 0x3d, 0xb6, 0xf3, 0x50, 0xd3, 0xe6, 0x3a, 0x5c, -+ 0xe3, 0xca, 0x54, 0x74, 0xa0, 0xcf, 0x15, 0x67, 0x04, 0x2c, 0xa3, 0x25, 0x89, 0x86, 0xff, 0x75, 0xbd, 0xfc, 0xd9, 0x29, 0xe6, 0x46, 0x2f, 0x36, 0xbc, 0xcc, 0x3f, 0x5a, 0x93, 0x35, 0x2a, 0x2b, -+ 0x36, 0xcb, 0x16, 0x2e, 0x18, 0x74, 0xc7, 0x42, 0x87, 0x0a, 0x97, 0xb1, 0x67, 0xa0, 0x50, 0x37, 0x36, 0x24, 0xea, 0xeb, 0x7e, 0x50, 0x73, 0x25, 0x6b, 0x72, 0x11, 0xb2, 0xd9, 0x4b, 0x84, 0x06, -+ 0xcd, 0x6c, 0x95, 0x33, 0xb1, 0x53, 0x64, 0x08, 0xab, 0x0a, 0x29, 0xe5, 0xb2, 0xf0, 0xc9, 0x54, 0xec, 0xe0, 0x0f, 0xbb, 0xeb, 0x17, 0x6d, 0x72, 0x4d, 0x4c, 0xf4, 0x43, 0xcf, 0x70, 0x20, 0xd5, -+ 0xfa, 0x70, 0x94, 0xcc, 0x1b, 0x1b, 0xe6, 0x97, 0xba, 0xd3, 0x36, 0x74, 0xe4, 0x09, 0x9e, 0xc7, 0xbb, 0x18, 0xf4, 0x57, 0x71, 0x28, 0xcd, 0xd9, 0x7c, 0xcd, 0x6d, 0x44, 0x62, 0xe5, 0x60, 0x7c, -+ 0x51, 0x2a, 0x3e, 0x36, 0x24, 0x8e, 0x3d, 0xda, 0xa2, 0xec, 0x08, 0x9a, 0xef, 0xc4, 0xce, 0x48, 0x5c, 0x49, 0xd7, 0xb0, 0x09, 0xc8, 0xd6, 0x31, 0x15, 0xfc, 0x81, 0xff, 0x3a, 0x62, 0xd1, 0x5a, -+ 0x88, 0x44, 0x1c, 0x03, 0xea, 0x1c, 0x2e, 0x72, 0xc4, 0x88, 0x39, 0xfc, 0x6a, 0xd7, 0x3a, 0x30, 0x74, 0x4a, 0x62, 0xb7, 0xb2, 0x16, 0x45, 0xa6, 0xaf, 0x7d, 0x61, 0xb6, 0x38, 0x3b, 0x22, 0x1e, -+ 0x21, 0x90, 0x55, 0x57, 0xcd, 0x29, 0xd9, 0x24, 0xa6, 0x09, 0x86, 0xc5, 0x11, 0xc1, 0xeb, 0xbc, 0x31, 0x6d, 0x56, 0x30, 0xa2, 0x41, 0x43, 0x23, 0xf5, 0x3a, 0xd5, 0x59, 0x94, 0xf6, 0xb3, 0x65, -+ 0x39, 0xf9, 0xc4, 0x40, 0x75, 0xa5, 0x33, 0xe4, 0x81, 0xc0, 0x84, 0x45, 0xd9, 0xca, 0x9e, 0x9d, 0x38, 0x21, 0x19, 0x38, 0x8b, 0xd1, 0xd7, 0x50, 0x52, 0x21, 0x7a, 0x94, 0x4c, 0xcc, 0x7b, 0xe9, -+ 0x09, 0xe2, 0x19, 0x71, 0x1f, 0xcc, 0x79, 0x24, 0x76, 0x92, 0x13, 0xa1, 0x92, 0x53, 0x4a, 0x55, 0x80, 0x08, 0x15, 0x7a, 0x39, 0x6e, 0xdf, 0xf4, 0x80, 0xcc, 0x3b, 0x52, 0x0f, 0xf8, 0x18, 0xb3, -+ 0x8b, 0x13, 0x5c, 0x18, 0xa8, 0x0d, 0x51, 0x05, 0xe6, 0x78, 0x83, 0x6c, 0x39, 0x5c, 0x28, 0xe9, 0x2f, 0x7a, 0x3c, 0x4e, 0x93, 0xc0, 0x10, 0x35, 0xf3, 0x41, 0x11, 0xcc, 0x49, 0x02, 0xd0, 0xc0, -+ 0x33, 0xa6, 0x3f, 0x23, 0x6a, 0x71, 0xda, 0x97, 0x4a, 0x6f, 0x40, 0x4f, 0x7a, 0xa7, 0xb5, 0xe5, 0x82, 0xc7, 0x58, 0x14, 0x2f, 0xc1, 0x82, 0x6b, 0xba, 0x98, 0xb2, 0x7d, 0x57, 0xc2, 0xe2, 0x10, -+ 0x3e, 0x10, 0xe3, 0x0d, 0x32, 0x79, 0x7b, 0x96, 0x77, 0x14, 0xd1, 0x56, 0x61, 0x11, 0x13, 0x71, 0xa2, 0xd9, 0xc5, 0x39, 0x98, 0x12, 0x46, 0x46, 0x22, 0x63, 0x5b, 0x44, 0x21, 0x26, 0xb0, 0x98, -+ 0x36, 0xb0, 0x81, 0x82, 0x72, 0x47, 0xd0, 0x54, 0x22, 0x97, 0x2b, 0xd0, 0x32, 0x0d, 0x8f, 0x42, 0xbf, 0x57, 0xe3, 0x49, 0x46, 0x12, 0x34, 0xe4, 0xd9, 0x4f, 0x01, 0x18, 0x50, 0xba, 0xb5, 0xc0, -+ 0x49, 0xb6, 0x2a, 0x59, 0x43, 0x38, 0x66, 0xfc, 0xce, 0x69, 0x66, 0x49, 0x5c, 0x26, 0x5c, 0x47, 0x65, 0xa5, 0x6c, 0x06, 0xb9, 0xfc, 0x42, 0x76, 0x54, 0x87, 0x85, 0xf4, 0x68, 0x28, 0xca, 0x60, -+ 0x2d, 0xc6, 0xd0, 0x54, 0x1f, 0x25, 0x07, 0x89, 0xc4, 0x9e, 0x8b, 0x06, 0x55, 0x9c, 0x43, 0x44, 0x60, 0xa8, 0x43, 0x80, 0x98, 0x54, 0xe5, 0xb4, 0x6e, 0x89, 0x38, 0x9f, 0x10, 0xf4, 0x89, 0x66, -+ 0x74, 0x91, 0xc1, 0x93, 0x5e, 0x8a, 0xfb, 0x9e, 0xb4, 0x71, 0x8f, 0x86, 0xac, 0x45, 0x89, 0x32, 0xbc, 0xf3, 0x3c, 0x9a, 0xbe, 0xcb, 0x2d, 0xc0, 0xc0, 0x93, 0xa7, 0xe8, 0x1d, 0xa0, 0x32, 0x7b, -+ 0xb6, 0x37, 0x52, 0x81, 0x05, 0xc3, 0x58, 0xeb, 0x76, 0x8d, 0x32, 0x3a, 0x37, 0xd4, 0x0a, 0x8c, 0x19, 0x9b, 0x7c, 0x4b, 0xb1, 0xd7, 0x2b, 0x72, 0xb6, 0x90, 0xb3, 0x6d, 0xd2, 0x7a, 0x93, 0x55, -+ 0x19, 0x1b, 0x3c, 0x3a, 0xa6, 0x75, 0xa7, 0xe6, 0xf8, 0x55, 0xeb, 0x50, 0x5f, 0x57, 0x98, 0x65, 0xdb, 0xd8, 0x91, 0x05, 0x65, 0x50, 0x5e, 0x7c, 0x0f, 0xdd, 0x54, 0x5c, 0xbb, 0xb8, 0x71, 0xb0, -+ 0xb2, 0xcc, 0x01, 0x25, 0xb7, 0x4f, 0x6b, 0x0c, 0x9b, 0x79, 0x67, 0x0a, 0x62, 0x02, 0xd1, 0xb9, 0x15, 0x4a, 0xc7, 0x76, 0x6b, 0x19, 0x19, 0xc4, 0x89, 0x58, 0x90, 0x86, 0xad, 0x8b, 0x45, 0xbe, -+ 0x0d, 0x79, 0xc9, 0x76, 0xc3, 0xc3, 0x9d, 0x6b, 0x25, 0x21, 0x3b, 0xb0, 0xb7, 0x8a, 0x57, 0x50, 0xe6, 0xa8, 0xeb, 0x34, 0x33, 0x0b, 0xb3, 0xcf, 0xf2, 0xb1, 0xc0, 0x72, 0x2a, 0xc8, 0x83, 0xb0, -+ 0x48, 0xf4, 0xb8, 0xcd, 0x06, 0x19, 0x6d, 0xa8, 0xaa, 0x8b, 0x05, 0xda, 0x42, 0x67, 0x55, 0x2b, 0xf8, 0x7a, 0xbc, 0xa5, 0x12, 0x4d, 0xc3, 0x58, 0xa8, 0x38, 0x10, 0x40, 0xe9, 0xb8, 0x1f, 0xb0, -+ 0x84, 0x43, 0x15, 0x02, 0x15, 0xd6, 0x92, 0x23, 0x28, 0x00, 0x0a, 0xc0, 0xb7, 0x88, 0xb1, 0x21, 0x93, 0x1a, 0x26, 0x7d, 0x80, 0x61, 0x9c, 0xe7, 0xd2, 0x9c, 0xd7, 0x6b, 0x60, 0xcf, 0x65, 0x83, -+ 0xdc, 0xe8, 0xce, 0xbc, 0x49, 0x01, 0x85, 0x73, 0x6c, 0x81, 0x8b, 0x25, 0xad, 0x26, 0x0b, 0x66, 0x7b, 0x1f, 0xfd, 0x46, 0x20, 0x6d, 0x01, 0x04, 0x55, 0x3a, 0xa9, 0xfb, 0x30, 0x45, 0x54, 0xa2, -+ 0x1c, 0x32, 0x72, 0x44, 0xce, 0x78, 0xaf, 0xdb, 0xd3, 0xb4, 0x62, 0x36, 0x1b, 0xb0, 0x68, 0xa1, 0x55, 0x63, 0x64, 0x09, 0xf5, 0x74, 0xc5, 0x71, 0x65, 0x72, 0xe2, 0xa5, 0xf2, 0xa4, 0xb0, 0x4f, -+ 0xb8, 0xaa, 0xd1, 0x23, 0x66, 0x84, 0x84, 0x17, 0x87, 0x56, 0x2a, 0xaf, 0x46, 0xc2, 0xc0, 0xda, 0x46, 0x65, 0xea, 0xfd, 0x46, 0x5f, 0xc6, 0x4a, 0x0c, 0x5f, 0x8f, 0x3f, 0x90, 0x03, 0x48, 0x94, -+ 0x15, 0x89, 0x9d, 0x59, 0xa5, 0x43, 0xd8, 0x20, 0x8c, 0x54, 0xa3, 0x16, 0x65, 0x29, 0xb5, 0x39, 0x22, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, -+ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, -+ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, -+ }, -+ .spki_len = 1603, -+ .spki = { -+ 0x30, 0x82, 0x06, 0x3f, 0x30, 0x0f, 0x06, 0x0b, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x02, 0x82, 0x0b, 0x05, 0x04, 0x04, 0x05, 0x00, 0x03, 0x82, 0x06, 0x2a, 0x00, 0x30, 0x82, 0x06, 0x25, 0x03, 0x82, -+ 0x06, 0x21, 0x00, 0xda, 0x18, 0x71, 0x2d, 0x31, 0x6e, 0x98, 0xdc, 0x7a, 0xc8, 0xc3, 0xca, 0x47, 0x37, 0x0e, 0xbd, 0x77, 0x0c, 0xe3, 0x2b, 0x3b, 0xd4, 0xb1, 0xa0, 0xc9, 0x52, 0x9a, 0xc6, 0xec, -+ 0x8e, 0xe0, 0x28, 0xb1, 0xcd, 0xb2, 0x65, 0x1c, 0xb5, 0xa6, 0xbb, 0x3c, 0x0c, 0x6d, 0xf1, 0x24, 0x0a, 0x3b, 0x91, 0x4b, 0x56, 0x56, 0xc0, 0xdc, 0x51, 0xc2, 0xb9, 0x1b, 0xfc, 0xbc, 0x37, 0xa4, -+ 0x66, 0x02, 0x87, 0xd4, 0x4f, 0x81, 0xf8, 0x53, 0xc7, 0xf4, 0x9a, 0x6d, 0x06, 0x03, 0xd6, 0xd7, 0x23, 0xcb, 0xec, 0x01, 0x5f, 0xbc, 0x43, 0x4a, 0x38, 0x24, 0x1c, 0x10, 0x9c, 0x7e, 0xd5, 0xb1, -+ 0xcc, 0x46, 0x1a, 0x2c, 0xcb, 0x9a, 0xb7, 0x14, 0x0f, 0x19, 0xf3, 0x7a, 0x13, 0xbb, 0x70, 0x1e, 0x14, 0x2b, 0xd5, 0x4b, 0x64, 0xec, 0x6b, 0x76, 0xfe, 0xc3, 0x3b, 0x69, 0xc2, 0x91, 0x8c, 0xb0, -+ 0x17, 0xc4, 0x14, 0x34, 0x23, 0x00, 0x9a, 0x3c, 0x07, 0xb5, 0xc1, 0x81, 0xb0, 0xc1, 0xeb, 0x49, 0x4a, 0x62, 0xab, 0xc8, 0x39, 0x13, 0x97, 0x08, 0x9e, 0xa6, 0x64, 0x09, 0x67, 0xc1, 0x20, 0x49, -+ 0x84, 0xcd, 0x48, 0x4c, 0xcc, 0xb0, 0x0a, 0x9a, 0x17, 0xd0, 0x87, 0x21, 0x84, 0x28, 0xef, 0x3b, 0xb7, 0x08, 0x78, 0x3e, 0x12, 0x82, 0x71, 0x04, 0x41, 0x73, 0x75, 0xb6, 0x95, 0x6f, 0xb5, 0x00, -+ 0x53, 0xd0, 0x48, 0xa4, 0x79, 0x14, 0x95, 0x82, 0x4a, 0x34, 0x80, 0xa5, 0xb7, 0x83, 0x02, 0x56, 0x09, 0x6f, 0xdd, 0x72, 0x5c, 0x30, 0x8b, 0x3b, 0xe8, 0x4a, 0x07, 0xf3, 0x63, 0x2e, 0x24, 0x95, -+ 0xc6, 0x2e, 0x96, 0x39, 0x9d, 0x80, 0xbf, 0xa7, 0x45, 0xb9, 0x84, 0x1a, 0x18, 0x33, 0xbc, 0x1d, 0x27, 0xba, 0x45, 0xa5, 0x21, 0x68, 0xee, 0x59, 0x00, 0x6c, 0x3a, 0x3a, 0x8c, 0x4a, 0x5a, 0x4f, -+ 0x50, 0x88, 0xfc, 0x73, 0x71, 0x81, 0xab, 0x51, 0x96, 0xf7, 0xb1, 0xb4, 0x9a, 0x2e, 0xd8, 0x13, 0x13, 0x4e, 0x11, 0x2f, 0x73, 0x0b, 0x99, 0x1c, 0x54, 0xa7, 0x19, 0x6b, 0xcf, 0x5f, 0xc7, 0x6e, -+ 0x13, 0x4c, 0x58, 0x43, 0xe1, 0x69, 0x88, 0x51, 0xb2, 0xf8, 0x69, 0xaf, 0xaf, 0xb0, 0x27, 0x87, 0xd9, 0xc2, 0xf1, 0x36, 0x90, 0x2d, 0xc7, 0xa7, 0xf3, 0xd6, 0x21, 0x56, 0xd1, 0x5e, 0xc3, 0x09, -+ 0x56, 0x40, 0x92, 0xc6, 0x1d, 0x83, 0xb0, 0x98, 0x6c, 0x48, 0x40, 0x99, 0x81, 0xf3, 0xc1, 0x86, 0x88, 0x0a, 0x2f, 0x63, 0xd5, 0x86, 0x0a, 0xb6, 0x01, 0xde, 0xac, 0x2b, 0x6b, 0xa1, 0xb4, 0x28, -+ 0x17, 0x9d, 0x73, 0x53, 0x3e, 0xb7, 0xa3, 0xa5, 0x11, 0x3b, 0x85, 0x61, 0xf1, 0x0b, 0x45, 0xc3, 0xcd, 0xe2, 0x82, 0xb6, 0xea, 0xd6, 0xab, 0x6c, 0x60, 0x4f, 0x09, 0xc1, 0x7b, 0xfd, 0xa0, 0x83, -+ 0x13, 0xa3, 0x26, 0x07, 0x67, 0x5a, 0xdf, 0x64, 0x31, 0xca, 0x87, 0x18, 0xe9, 0xc4, 0x3a, 0x73, 0x73, 0x32, 0x27, 0xe7, 0x3b, 0xc6, 0x1a, 0xc8, 0x45, 0xba, 0x90, 0x77, 0x55, 0xce, 0xc6, 0x89, -+ 0x25, 0xe5, 0xe2, 0xbf, 0xe9, 0x12, 0x95, 0x9d, 0xb8, 0x6f, 0xbf, 0xe2, 0x15, 0x6f, 0xd5, 0xbb, 0xdb, 0xf0, 0xc9, 0xdf, 0x8b, 0x53, 0x02, 0xaa, 0x8d, 0x90, 0xa2, 0x2d, 0x12, 0x27, 0x0e, 0x00, -+ 0x65, 0x51, 0xe4, 0x76, 0x7e, 0x45, 0x26, 0x8e, 0xd9, 0x69, 0x26, 0x54, 0x44, 0x78, 0x11, 0xea, 0xb8, 0x4f, 0x04, 0x99, 0xa8, 0xa5, 0x8c, 0xf7, 0xc0, 0x4a, 0x59, 0x56, 0x98, 0x52, 0x80, 0x45, -+ 0xf2, 0x98, 0x97, 0xc8, 0xfa, 0x96, 0xd0, 0x6c, 0xce, 0x51, 0xe6, 0xaf, 0xea, 0xc4, 0x33, 0x95, 0x89, 0xc9, 0x41, 0xc8, 0x55, 0x63, 0xd7, 0x0f, 0xac, 0xe1, 0x92, 0x88, 0x94, 0xba, 0xc0, 0x36, -+ 0x19, 0xdf, 0xf4, 0xbe, 0x3f, 0x43, 0x14, 0xa3, 0xf7, 0x35, 0x1a, 0x09, 0xa4, 0x86, 0xb5, 0x04, 0x1e, 0x7c, 0xb2, 0xda, 0x8b, 0x96, 0xbc, 0x66, 0x26, 0xa4, 0x93, 0x17, 0x35, 0x7c, 0x41, 0x52, -+ 0xa5, 0x1b, 0xa3, 0xc2, 0x8c, 0x7e, 0x0c, 0x9d, 0xb4, 0x1a, 0x06, 0xa2, 0x82, 0x90, 0xf2, 0x18, 0x73, 0x11, 0x07, 0xc9, 0x54, 0xd8, 0xa6, 0x6f, 0x80, 0x1d, 0x7d, 0xe1, 0x2a, 0x03, 0x71, 0x16, -+ 0x99, 0x0b, 0x6c, 0x53, 0xc1, 0x29, 0xf1, 0x85, 0xc3, 0x45, 0xf2, 0x7e, 0x51, 0x8b, 0x2d, 0x5a, 0x91, 0x25, 0xa0, 0x70, 0x76, 0xd9, 0x91, 0xb7, 0xda, 0xc7, 0xcc, 0x65, 0xa8, 0x56, 0x2e, 0xfb, -+ 0xcc, 0x32, 0xa9, 0xca, 0x4a, 0xd9, 0x02, 0x63, 0xb0, 0x4a, 0x4f, 0x90, 0x36, 0x11, 0x6c, 0x7b, 0x97, 0x48, 0x04, 0x96, 0x31, 0x75, 0x75, 0x65, 0x0d, 0xcc, 0x21, 0x52, 0xb5, 0xbc, 0x0e, 0x74, -+ 0x40, 0x7e, 0x12, 0xfa, 0x8e, 0x4f, 0xfc, 0xcc, 0xff, 0x76, 0xc0, 0x1a, 0x97, 0x4b, 0xd6, 0x11, 0x02, 0xe1, 0xf5, 0x29, 0x64, 0x96, 0xc7, 0x1d, 0x07, 0x64, 0xe1, 0x32, 0x29, 0xff, 0xe7, 0x84, -+ 0x6f, 0x33, 0x6e, 0x34, 0xca, 0xc9, 0x04, 0xca, 0x56, 0x70, 0xf8, 0xcd, 0x50, 0x52, 0x42, 0x7a, 0x79, 0xc0, 0x91, 0xa9, 0x71, 0x21, 0x0c, 0x5c, 0xff, 0x66, 0x7a, 0xac, 0x24, 0x93, 0x66, 0xe1, -+ 0x0d, 0x2b, 0x11, 0x37, 0x6c, 0xa3, 0x9d, 0x93, 0x52, 0x04, 0xb1, 0x2c, 0xc5, 0x85, 0xe9, 0x40, 0x54, 0x03, 0x62, 0x5f, 0xb3, 0x2c, 0xb5, 0xe5, 0xc3, 0x1b, 0x62, 0x34, 0x81, 0x60, 0x51, 0x5c, -+ 0xcc, 0x4f, 0xda, 0xf5, 0x70, 0x2d, 0x6b, 0xab, 0x5c, 0x37, 0x3d, 0xb6, 0xf3, 0x50, 0xd3, 0xe6, 0x3a, 0x5c, 0xe3, 0xca, 0x54, 0x74, 0xa0, 0xcf, 0x15, 0x67, 0x04, 0x2c, 0xa3, 0x25, 0x89, 0x86, -+ 0xff, 0x75, 0xbd, 0xfc, 0xd9, 0x29, 0xe6, 0x46, 0x2f, 0x36, 0xbc, 0xcc, 0x3f, 0x5a, 0x93, 0x35, 0x2a, 0x2b, 0x36, 0xcb, 0x16, 0x2e, 0x18, 0x74, 0xc7, 0x42, 0x87, 0x0a, 0x97, 0xb1, 0x67, 0xa0, -+ 0x50, 0x37, 0x36, 0x24, 0xea, 0xeb, 0x7e, 0x50, 0x73, 0x25, 0x6b, 0x72, 0x11, 0xb2, 0xd9, 0x4b, 0x84, 0x06, 0xcd, 0x6c, 0x95, 0x33, 0xb1, 0x53, 0x64, 0x08, 0xab, 0x0a, 0x29, 0xe5, 0xb2, 0xf0, -+ 0xc9, 0x54, 0xec, 0xe0, 0x0f, 0xbb, 0xeb, 0x17, 0x6d, 0x72, 0x4d, 0x4c, 0xf4, 0x43, 0xcf, 0x70, 0x20, 0xd5, 0xfa, 0x70, 0x94, 0xcc, 0x1b, 0x1b, 0xe6, 0x97, 0xba, 0xd3, 0x36, 0x74, 0xe4, 0x09, -+ 0x9e, 0xc7, 0xbb, 0x18, 0xf4, 0x57, 0x71, 0x28, 0xcd, 0xd9, 0x7c, 0xcd, 0x6d, 0x44, 0x62, 0xe5, 0x60, 0x7c, 0x51, 0x2a, 0x3e, 0x36, 0x24, 0x8e, 0x3d, 0xda, 0xa2, 0xec, 0x08, 0x9a, 0xef, 0xc4, -+ 0xce, 0x48, 0x5c, 0x49, 0xd7, 0xb0, 0x09, 0xc8, 0xd6, 0x31, 0x15, 0xfc, 0x81, 0xff, 0x3a, 0x62, 0xd1, 0x5a, 0x88, 0x44, 0x1c, 0x03, 0xea, 0x1c, 0x2e, 0x72, 0xc4, 0x88, 0x39, 0xfc, 0x6a, 0xd7, -+ 0x3a, 0x30, 0x74, 0x4a, 0x62, 0xb7, 0xb2, 0x16, 0x45, 0xa6, 0xaf, 0x7d, 0x61, 0xb6, 0x38, 0x3b, 0x22, 0x1e, 0x21, 0x90, 0x55, 0x57, 0xcd, 0x29, 0xd9, 0x24, 0xa6, 0x09, 0x86, 0xc5, 0x11, 0xc1, -+ 0xeb, 0xbc, 0x31, 0x6d, 0x56, 0x30, 0xa2, 0x41, 0x43, 0x23, 0xf5, 0x3a, 0xd5, 0x59, 0x94, 0xf6, 0xb3, 0x65, 0x39, 0xf9, 0xc4, 0x40, 0x75, 0xa5, 0x33, 0xe4, 0x81, 0xc0, 0x84, 0x45, 0xd9, 0xca, -+ 0x9e, 0x9d, 0x38, 0x21, 0x19, 0x38, 0x8b, 0xd1, 0xd7, 0x50, 0x52, 0x21, 0x7a, 0x94, 0x4c, 0xcc, 0x7b, 0xe9, 0x09, 0xe2, 0x19, 0x71, 0x1f, 0xcc, 0x79, 0x24, 0x76, 0x92, 0x13, 0xa1, 0x92, 0x53, -+ 0x4a, 0x55, 0x80, 0x08, 0x15, 0x7a, 0x39, 0x6e, 0xdf, 0xf4, 0x80, 0xcc, 0x3b, 0x52, 0x0f, 0xf8, 0x18, 0xb3, 0x8b, 0x13, 0x5c, 0x18, 0xa8, 0x0d, 0x51, 0x05, 0xe6, 0x78, 0x83, 0x6c, 0x39, 0x5c, -+ 0x28, 0xe9, 0x2f, 0x7a, 0x3c, 0x4e, 0x93, 0xc0, 0x10, 0x35, 0xf3, 0x41, 0x11, 0xcc, 0x49, 0x02, 0xd0, 0xc0, 0x33, 0xa6, 0x3f, 0x23, 0x6a, 0x71, 0xda, 0x97, 0x4a, 0x6f, 0x40, 0x4f, 0x7a, 0xa7, -+ 0xb5, 0xe5, 0x82, 0xc7, 0x58, 0x14, 0x2f, 0xc1, 0x82, 0x6b, 0xba, 0x98, 0xb2, 0x7d, 0x57, 0xc2, 0xe2, 0x10, 0x3e, 0x10, 0xe3, 0x0d, 0x32, 0x79, 0x7b, 0x96, 0x77, 0x14, 0xd1, 0x56, 0x61, 0x11, -+ 0x13, 0x71, 0xa2, 0xd9, 0xc5, 0x39, 0x98, 0x12, 0x46, 0x46, 0x22, 0x63, 0x5b, 0x44, 0x21, 0x26, 0xb0, 0x98, 0x36, 0xb0, 0x81, 0x82, 0x72, 0x47, 0xd0, 0x54, 0x22, 0x97, 0x2b, 0xd0, 0x32, 0x0d, -+ 0x8f, 0x42, 0xbf, 0x57, 0xe3, 0x49, 0x46, 0x12, 0x34, 0xe4, 0xd9, 0x4f, 0x01, 0x18, 0x50, 0xba, 0xb5, 0xc0, 0x49, 0xb6, 0x2a, 0x59, 0x43, 0x38, 0x66, 0xfc, 0xce, 0x69, 0x66, 0x49, 0x5c, 0x26, -+ 0x5c, 0x47, 0x65, 0xa5, 0x6c, 0x06, 0xb9, 0xfc, 0x42, 0x76, 0x54, 0x87, 0x85, 0xf4, 0x68, 0x28, 0xca, 0x60, 0x2d, 0xc6, 0xd0, 0x54, 0x1f, 0x25, 0x07, 0x89, 0xc4, 0x9e, 0x8b, 0x06, 0x55, 0x9c, -+ 0x43, 0x44, 0x60, 0xa8, 0x43, 0x80, 0x98, 0x54, 0xe5, 0xb4, 0x6e, 0x89, 0x38, 0x9f, 0x10, 0xf4, 0x89, 0x66, 0x74, 0x91, 0xc1, 0x93, 0x5e, 0x8a, 0xfb, 0x9e, 0xb4, 0x71, 0x8f, 0x86, 0xac, 0x45, -+ 0x89, 0x32, 0xbc, 0xf3, 0x3c, 0x9a, 0xbe, 0xcb, 0x2d, 0xc0, 0xc0, 0x93, 0xa7, 0xe8, 0x1d, 0xa0, 0x32, 0x7b, 0xb6, 0x37, 0x52, 0x81, 0x05, 0xc3, 0x58, 0xeb, 0x76, 0x8d, 0x32, 0x3a, 0x37, 0xd4, -+ 0x0a, 0x8c, 0x19, 0x9b, 0x7c, 0x4b, 0xb1, 0xd7, 0x2b, 0x72, 0xb6, 0x90, 0xb3, 0x6d, 0xd2, 0x7a, 0x93, 0x55, 0x19, 0x1b, 0x3c, 0x3a, 0xa6, 0x75, 0xa7, 0xe6, 0xf8, 0x55, 0xeb, 0x50, 0x5f, 0x57, -+ 0x98, 0x65, 0xdb, 0xd8, 0x91, 0x05, 0x65, 0x50, 0x5e, 0x7c, 0x0f, 0xdd, 0x54, 0x5c, 0xbb, 0xb8, 0x71, 0xb0, 0xb2, 0xcc, 0x01, 0x25, 0xb7, 0x4f, 0x6b, 0x0c, 0x9b, 0x79, 0x67, 0x0a, 0x62, 0x02, -+ 0xd1, 0xb9, 0x15, 0x4a, 0xc7, 0x76, 0x6b, 0x19, 0x19, 0xc4, 0x89, 0x58, 0x90, 0x86, 0xad, 0x8b, 0x45, 0xbe, 0x0d, 0x79, 0xc9, 0x76, 0xc3, 0xc3, 0x9d, 0x6b, 0x25, 0x21, 0x3b, 0xb0, 0xb7, 0x8a, -+ 0x57, 0x50, 0xe6, 0xa8, 0xeb, 0x34, 0x33, 0x0b, 0xb3, 0xcf, 0xf2, 0xb1, 0xc0, 0x72, 0x2a, 0xc8, 0x83, 0xb0, 0x48, 0xf4, 0xb8, 0xcd, 0x06, 0x19, 0x6d, 0xa8, 0xaa, 0x8b, 0x05, 0xda, 0x42, 0x67, -+ 0x55, 0x2b, 0xf8, 0x7a, 0xbc, 0xa5, 0x12, 0x4d, 0xc3, 0x58, 0xa8, 0x38, 0x10, 0x40, 0xe9, 0xb8, 0x1f, 0xb0, 0x84, 0x43, 0x15, 0x02, 0x15, 0xd6, 0x92, 0x23, 0x28, 0x00, 0x0a, 0xc0, 0xb7, 0x88, -+ 0xb1, 0x21, 0x93, 0x1a, 0x26, 0x7d, 0x80, 0x61, 0x9c, 0xe7, 0xd2, 0x9c, 0xd7, 0x6b, 0x60, 0xcf, 0x65, 0x83, 0xdc, 0xe8, 0xce, 0xbc, 0x49, 0x01, 0x85, 0x73, 0x6c, 0x81, 0x8b, 0x25, 0xad, 0x26, -+ 0x0b, 0x66, 0x7b, 0x1f, 0xfd, 0x46, 0x20, 0x6d, 0x01, 0x04, 0x55, 0x3a, 0xa9, 0xfb, 0x30, 0x45, 0x54, 0xa2, 0x1c, 0x32, 0x72, 0x44, 0xce, 0x78, 0xaf, 0xdb, 0xd3, 0xb4, 0x62, 0x36, 0x1b, 0xb0, -+ 0x68, 0xa1, 0x55, 0x63, 0x64, 0x09, 0xf5, 0x74, 0xc5, 0x71, 0x65, 0x72, 0xe2, 0xa5, 0xf2, 0xa4, 0xb0, 0x4f, 0xb8, 0xaa, 0xd1, 0x23, 0x66, 0x84, 0x84, 0x17, 0x87, 0x56, 0x2a, 0xaf, 0x46, 0xc2, -+ 0xc0, 0xda, 0x46, 0x65, 0xea, 0xfd, 0x46, 0x5f, 0xc6, 0x4a, 0x0c, 0x5f, 0x8f, 0x3f, 0x90, 0x03, 0x48, 0x94, 0x15, 0x89, 0x9d, 0x59, 0xa5, 0x43, 0xd8, 0x20, 0x8c, 0x54, 0xa3, 0x16, 0x65, 0x29, -+ 0xb5, 0x39, 0x22, -+ }, -+ .secret_len = 32, -+ .secret = { -+ 0xfb, 0xc4, 0xee, 0xa6, 0x91, 0xee, 0xf4, 0xc1, 0xb4, 0x76, 0xa2, 0x99, 0x36, 0x45, 0x3f, 0x4c, 0x3d, 0x48, 0x81, 0x79, 0x4e, 0xe3, 0x7b, 0xaf, 0x0f, 0xd7, 0x28, 0x40, 0x74, 0x3e, 0x7b, 0x7d, -+ }, -+ .cipher_len = 1568, -+ .cipher = { -+ 0xc2, 0x7f, 0x01, 0x24, 0x4d, 0x4b, 0x3f, 0xb2, 0x1d, 0x84, 0x37, 0xf8, 0x40, 0x01, 0x7c, 0xcc, 0xb7, 0xb7, 0xda, 0xd5, 0xfb, 0x2b, 0x47, 0xb9, 0xb5, 0x7e, 0xae, 0x4f, 0x77, 0xd0, 0xa4, 0x55, -+ 0x5e, 0x50, 0x92, 0xa2, 0x49, 0x69, 0xf2, 0x27, 0x3e, 0x97, 0x02, 0x88, 0x4a, 0x08, 0x47, 0x7b, 0x56, 0x8d, 0x80, 0x17, 0xf1, 0x38, 0x75, 0xd1, 0xf5, 0xa6, 0xd4, 0x13, 0xbd, 0xd2, 0x28, 0xeb, -+ 0xb1, 0x12, 0x60, 0xf7, 0xf4, 0x52, 0x9c, 0xbc, 0xeb, 0xf9, 0xb6, 0x86, 0x2e, 0x8a, 0x84, 0x12, 0x35, 0xf2, 0x9f, 0x60, 0xf8, 0xe8, 0x41, 0x74, 0x34, 0x18, 0x9d, 0x57, 0x99, 0x20, 0xfe, 0x6b, -+ 0x98, 0xdb, 0xe7, 0x13, 0xec, 0x16, 0xc3, 0xfd, 0xdb, 0xb8, 0x1e, 0x73, 0x1d, 0x95, 0x6b, 0x06, 0xdb, 0x49, 0x80, 0xf4, 0x9c, 0x26, 0xf2, 0x86, 0x61, 0xff, 0x9c, 0xe6, 0xe9, 0xd8, 0x61, 0xec, -+ 0x7a, 0x09, 0x84, 0x0c, 0x19, 0xde, 0x0e, 0xb6, 0x72, 0x20, 0x71, 0xf8, 0xaa, 0x48, 0x36, 0x2d, 0x2f, 0xf1, 0x27, 0xa4, 0xae, 0x46, 0xf9, 0x93, 0x37, 0x82, 0x68, 0x32, 0xad, 0xac, 0x23, 0x91, -+ 0x65, 0xf2, 0x25, 0x85, 0xbb, 0x57, 0xa8, 0x89, 0xc9, 0xc6, 0xaf, 0x82, 0x36, 0x7e, 0xc7, 0xb0, 0x72, 0x37, 0xc0, 0x53, 0x5b, 0x31, 0xb3, 0x8c, 0x1c, 0xac, 0x40, 0xac, 0x1a, 0x0c, 0x95, 0x8a, -+ 0x18, 0x87, 0xfe, 0x34, 0x71, 0x10, 0x83, 0xfd, 0x37, 0xaf, 0x4b, 0xc5, 0xb1, 0xb4, 0xe1, 0xe2, 0xee, 0x28, 0x43, 0x69, 0x3d, 0x57, 0xdd, 0x1e, 0x65, 0x7d, 0x4c, 0x24, 0xed, 0x20, 0x7e, 0xe7, -+ 0x12, 0xad, 0x2a, 0x08, 0x91, 0x45, 0x81, 0x80, 0xe9, 0xe8, 0xbd, 0x36, 0xfc, 0x14, 0xd8, 0xd6, 0x33, 0xf5, 0xb7, 0x41, 0xce, 0xa1, 0x08, 0xd2, 0xd4, 0xfd, 0x75, 0x1c, 0x5a, 0x67, 0xb0, 0x5e, -+ 0x30, 0x32, 0x4a, 0x67, 0xe9, 0xdd, 0x75, 0xc9, 0x93, 0xd4, 0xfe, 0x08, 0x54, 0xfb, 0x78, 0xdf, 0x6f, 0x3d, 0x45, 0xa2, 0xa9, 0xc8, 0xe4, 0x25, 0x10, 0xf0, 0xc3, 0xd8, 0x02, 0x03, 0x71, 0x2f, -+ 0xb3, 0x9e, 0x36, 0xb5, 0xdd, 0x8b, 0x5c, 0xcd, 0x3d, 0x09, 0xce, 0xa9, 0x42, 0x03, 0xba, 0xf8, 0x72, 0x08, 0x45, 0x71, 0xec, 0xf9, 0x78, 0xbd, 0xb9, 0x54, 0x8a, 0x25, 0x0e, 0xe4, 0x90, 0x7b, -+ 0x4a, 0xfc, 0x31, 0xb2, 0x1f, 0x31, 0x9a, 0xe4, 0xbf, 0x0a, 0xb1, 0x9c, 0xbd, 0x11, 0xeb, 0xe1, 0x33, 0x59, 0xd1, 0xaa, 0xf4, 0xfd, 0xb8, 0x3b, 0x65, 0x02, 0x50, 0x14, 0x22, 0xa5, 0xfe, 0x50, -+ 0xa8, 0xa3, 0x8e, 0xf5, 0x3d, 0xeb, 0x60, 0x3c, 0xe2, 0x3f, 0xd9, 0x79, 0x2b, 0x04, 0xde, 0xb3, 0x78, 0x71, 0x9a, 0xb7, 0x69, 0xaa, 0x58, 0x97, 0xcc, 0x65, 0xe9, 0xb1, 0x63, 0x04, 0xce, 0xa5, -+ 0x37, 0xe1, 0x76, 0x2b, 0xd8, 0xc9, 0xb1, 0x09, 0xda, 0x14, 0xa8, 0x29, 0xe6, 0x41, 0x9f, 0x1b, 0x9f, 0xf8, 0xa4, 0x66, 0xe2, 0xa6, 0xd6, 0xb3, 0x4d, 0x74, 0xff, 0xe1, 0xa5, 0x92, 0x99, 0x18, -+ 0x17, 0x59, 0xd0, 0xd3, 0x87, 0xfc, 0xed, 0x1d, 0x90, 0x7f, 0x5f, 0xb5, 0xed, 0xb4, 0x26, 0xc0, 0x51, 0x30, 0xe6, 0xca, 0x59, 0x09, 0xb2, 0x76, 0xd1, 0xa4, 0x7e, 0x71, 0x3c, 0x30, 0xd9, 0x96, -+ 0xda, 0x5e, 0x8e, 0x57, 0xe7, 0x12, 0xc7, 0x77, 0x38, 0xf2, 0x1b, 0xe7, 0x4b, 0x42, 0xb5, 0x18, 0x43, 0x2d, 0xad, 0x7e, 0xf7, 0x3e, 0x6a, 0x8c, 0x43, 0xaa, 0x9a, 0x62, 0x69, 0x94, 0xd7, 0x1a, -+ 0x31, 0x81, 0x28, 0x51, 0x80, 0x6e, 0x9f, 0xbb, 0x1f, 0x2b, 0xd3, 0x56, 0xce, 0xa3, 0x9d, 0x95, 0xf2, 0xf8, 0x7c, 0xa3, 0x0d, 0xaf, 0x6f, 0x27, 0x33, 0xf7, 0xbc, 0xe7, 0x9f, 0x8d, 0xa9, 0x95, -+ 0x05, 0x1e, 0x49, 0xa7, 0xfd, 0x22, 0x64, 0x37, 0x9c, 0x0a, 0x75, 0x2e, 0x55, 0x3e, 0xd6, 0x08, 0xeb, 0x93, 0x44, 0xc7, 0x94, 0x98, 0xf6, 0x91, 0x53, 0x85, 0x64, 0xc5, 0x4f, 0x82, 0x3b, 0xb7, -+ 0x0b, 0x12, 0xb5, 0x9e, 0x88, 0x24, 0xb4, 0xa4, 0xbb, 0x1e, 0xea, 0xc6, 0x7c, 0x81, 0x0c, 0xcc, 0x2e, 0x23, 0x74, 0x47, 0x83, 0xce, 0x95, 0x80, 0x97, 0xf7, 0xa6, 0xbc, 0x6e, 0x1f, 0x17, 0x59, -+ 0x75, 0x21, 0xb8, 0xc3, 0xd1, 0xee, 0x85, 0x96, 0xa2, 0x9f, 0xfe, 0xf1, 0x4e, 0xd9, 0x16, 0x32, 0x09, 0x7c, 0x16, 0xd5, 0x06, 0x5d, 0xb2, 0xa9, 0x63, 0xca, 0x73, 0x83, 0xac, 0x60, 0xad, 0x8f, -+ 0x4e, 0xd0, 0xd4, 0x1b, 0xd0, 0xbc, 0x3b, 0xaf, 0x19, 0x8c, 0x51, 0x25, 0xae, 0x91, 0x15, 0x06, 0xc9, 0x26, 0xd4, 0xc1, 0x17, 0x85, 0xfd, 0x61, 0x82, 0x29, 0xbf, 0xf5, 0x4c, 0xb1, 0x16, 0x1a, -+ 0xb8, 0xfc, 0x7b, 0x51, 0xda, 0xec, 0xcc, 0xd9, 0x13, 0x1e, 0xdf, 0x43, 0x7d, 0x8e, 0x52, 0x8e, 0x75, 0x81, 0xb8, 0x2c, 0x66, 0x0e, 0x8c, 0x5e, 0x25, 0x12, 0xd5, 0xf6, 0x38, 0x0a, 0x52, 0x8f, -+ 0x2a, 0xe4, 0xae, 0xe2, 0x63, 0xdb, 0x96, 0x76, 0x02, 0x4b, 0xc7, 0xad, 0x39, 0x8b, 0xc9, 0xcd, 0xda, 0xd6, 0x07, 0x96, 0x8b, 0xba, 0xb2, 0x23, 0x29, 0xe0, 0x4d, 0x6e, 0x77, 0x1f, 0xe6, 0x47, -+ 0x10, 0x7a, 0xc4, 0x66, 0x67, 0xa5, 0x1a, 0xd5, 0x58, 0xa6, 0x35, 0xf0, 0x26, 0x95, 0x1f, 0x4f, 0x48, 0xc8, 0x88, 0xd7, 0x01, 0xc2, 0xaf, 0xf4, 0xea, 0xb4, 0xe3, 0x4a, 0xdb, 0x15, 0x9a, 0xbb, -+ 0xbf, 0xab, 0xe5, 0x9b, 0x3f, 0x4c, 0xf8, 0xaa, 0xb1, 0xdd, 0x66, 0x1e, 0x4d, 0xd0, 0xc5, 0x55, 0x8d, 0xc0, 0x59, 0x20, 0x2e, 0xe6, 0x46, 0x25, 0xa3, 0xb4, 0xb9, 0x2f, 0xf4, 0xd1, 0x56, 0x97, -+ 0xf1, 0x6c, 0x18, 0xd4, 0xd2, 0x33, 0x8c, 0xfb, 0x49, 0x6e, 0x07, 0x03, 0x52, 0x68, 0x71, 0xc9, 0x78, 0x4b, 0xac, 0x8e, 0xba, 0xe8, 0x27, 0x9c, 0xf2, 0x71, 0x3a, 0xf3, 0xcc, 0x2d, 0x44, 0x0e, -+ 0x8c, 0xd2, 0x00, 0x86, 0x7b, 0x85, 0x18, 0xaa, 0xd3, 0xb9, 0xe2, 0x85, 0x02, 0x7d, 0xa0, 0xad, 0xd9, 0xf0, 0x22, 0x9e, 0xd4, 0xe8, 0x42, 0xd0, 0x5e, 0x22, 0x6a, 0xda, 0xc1, 0x3a, 0x39, 0x52, -+ 0xe3, 0x83, 0x5c, 0x8f, 0xb0, 0xa4, 0x28, 0x74, 0xc9, 0x4c, 0x66, 0x1b, 0x39, 0xdf, 0x7b, 0x72, 0x88, 0x7d, 0x22, 0x7d, 0x58, 0x3c, 0xe6, 0xb3, 0xbd, 0x65, 0xf7, 0x95, 0x10, 0x7b, 0xd0, 0x93, -+ 0x38, 0x9b, 0xfe, 0xfd, 0x17, 0x68, 0xa5, 0x71, 0x6f, 0x68, 0x5b, 0x17, 0x4e, 0xd2, 0x3e, 0x94, 0xa5, 0x95, 0x6e, 0x29, 0xbb, 0x2d, 0xdb, 0x79, 0x21, 0x03, 0xe6, 0x2f, 0x68, 0x92, 0x8a, 0xcc, -+ 0x60, 0x3e, 0xec, 0x2f, 0xf5, 0x6d, 0xb1, 0x4c, 0x08, 0xb7, 0xcb, 0xe4, 0xe2, 0xb4, 0xf2, 0xe0, 0xea, 0xee, 0x54, 0x16, 0x2e, 0x95, 0xbb, 0x35, 0xef, 0x36, 0x30, 0x3e, 0xe3, 0xe6, 0xcc, 0x61, -+ 0x06, 0x13, 0x73, 0x87, 0x6f, 0x7a, 0x09, 0x6a, 0x8a, 0xf5, 0x7d, 0x78, 0x2f, 0x8c, 0x82, 0x03, 0xde, 0x93, 0x42, 0x3a, 0x37, 0x91, 0x22, 0xfe, 0x7d, 0xad, 0x77, 0x0c, 0x36, 0x90, 0xf9, 0x78, -+ 0x22, 0x84, 0x60, 0xd0, 0x25, 0xce, 0x93, 0xb1, 0xb3, 0x36, 0xc5, 0x73, 0xe4, 0xe5, 0x58, 0x40, 0xea, 0x65, 0xcf, 0xdd, 0x61, 0x22, 0xc6, 0x72, 0xc9, 0x12, 0xf5, 0x29, 0x39, 0xd9, 0xea, 0x5b, -+ 0xe0, 0x62, 0x10, 0xf5, 0xe7, 0xed, 0xb6, 0x5b, 0x66, 0x94, 0x5d, 0x70, 0x56, 0xf5, 0x59, 0xa7, 0xd6, 0x92, 0x53, 0xf4, 0xbd, 0xbc, 0x57, 0x9d, 0xe9, 0x64, 0xf3, 0xe9, 0x3a, 0x86, 0xfa, 0x38, -+ 0xb6, 0xa2, 0xc0, 0xb5, 0x43, 0x38, 0xdc, 0xe0, 0x93, 0xf0, 0xb4, 0x68, 0x4e, 0xe3, 0x61, 0x44, 0x9f, 0x16, 0xc2, 0x79, 0xa7, 0x2b, 0x77, 0x31, 0xe4, 0x46, 0x00, 0xa7, 0x02, 0x77, 0x68, 0xfd, -+ 0xd0, 0xf6, 0x43, 0xed, 0x10, 0x06, 0x4b, 0x98, 0xa9, 0xda, 0x03, 0x2f, 0x1f, 0x5d, 0xea, 0xd3, 0x11, 0xe1, 0x77, 0x33, 0x50, 0x94, 0xdb, 0x4e, 0x38, 0x51, 0x4e, 0xae, 0x15, 0xa8, 0xf8, 0xec, -+ 0xf2, 0xf2, 0x41, 0x4e, 0x37, 0x8e, 0xfb, 0xf9, 0x97, 0xb1, 0x06, 0x6b, 0x6f, 0x69, 0xd6, 0x69, 0x09, 0xa4, 0x7e, 0x29, 0x8a, 0x7f, 0xec, 0x96, 0x1a, 0x83, 0x78, 0x2e, 0x0e, 0x47, 0x0f, 0xe0, -+ 0x71, 0xde, 0xcf, 0x4b, 0x26, 0xac, 0xa6, 0xed, 0x68, 0x83, 0x59, 0xe1, 0x08, 0x50, 0x55, 0xfd, 0x2b, 0x5a, 0xe9, 0xf4, 0x91, 0x87, 0x49, 0x89, 0x7a, 0xf1, 0x33, 0x60, 0x60, 0x53, 0xd5, 0xf6, -+ 0xa8, 0x52, 0x8c, 0xcb, 0x31, 0xab, 0x7f, 0x3f, 0x2d, 0x89, 0xa9, 0x5c, 0x5f, 0x05, 0xb1, 0x57, 0x00, 0xe5, 0x32, 0xad, 0x81, 0xd5, 0x9d, 0x9d, 0xb8, 0xa2, 0xc2, 0x9c, 0xac, 0x93, 0x6e, 0x3f, -+ 0x33, 0xdf, 0xe2, 0x4b, 0x0b, 0x1b, 0x71, 0x90, 0x2d, 0xc9, 0xc3, 0x0e, 0xc8, 0xc7, 0x0b, 0xda, 0xba, 0x48, 0x4f, 0xcd, 0x2b, 0x94, 0x6d, 0x73, 0x5f, 0x16, 0xee, 0xad, 0x04, 0x03, 0x1c, 0xaf, -+ 0xde, 0x9e, 0xe0, 0x16, 0x96, 0xec, 0x9f, 0x0a, 0x8d, 0x5f, 0x36, 0xb6, 0x9c, 0x64, 0x2f, 0xfd, 0x0a, 0xd0, 0xd2, 0x54, 0x4f, 0x5e, 0x7f, 0xd8, 0x9a, 0x80, 0x49, 0x8e, 0xf6, 0x8e, 0x18, 0x16, -+ 0x17, 0xfa, 0xd4, 0x1e, 0x0b, 0xd5, 0x9b, 0xaa, 0xff, 0xee, 0xfe, 0x2f, 0x99, 0x72, 0x4c, 0x71, 0x9d, 0x47, 0xa2, 0xec, 0xba, 0x72, 0x1d, 0x76, 0xf2, 0x37, 0xeb, 0xa7, 0x3d, 0xb4, 0x7d, 0x88, -+ 0xb6, 0x99, 0xe3, 0x58, 0x2b, 0x07, 0x3c, 0x7e, 0xad, 0x2a, 0x5b, 0x3c, 0xf0, 0x24, 0x46, 0x63, 0x96, 0xf9, 0xf2, 0x82, 0x6c, 0xb7, 0x54, 0xf6, 0x60, 0x18, 0xe9, 0x50, 0x3f, 0x4a, 0xd1, 0xf9, -+ 0xd9, 0x21, 0x21, 0xaa, 0x99, 0x56, 0x50, 0x60, 0x51, 0xd5, 0x96, 0xff, 0xd4, 0x67, 0xe1, 0xaa, 0x8d, 0x96, 0x4c, 0x17, 0x67, 0xc9, 0x25, 0xb4, 0x68, 0xbb, 0xc9, 0x85, 0x06, 0x00, 0xc8, 0x43, -+ 0x49, 0x05, 0x41, 0xe8, 0x55, 0x5a, 0x3d, 0x8b, 0xd9, 0xf1, 0x87, 0x91, 0xef, 0x9e, 0xbd, 0x35, 0x94, 0xe7, 0x4c, 0x1f, 0xe3, 0xd3, 0xb8, 0x09, 0x40, 0xa8, 0xa0, 0x79, 0xf8, 0xd2, 0xca, 0x8d, -+ 0x30, 0x13, 0x4f, 0xc6, 0x6f, 0x87, 0x00, 0x81, 0x26, 0xe4, 0x3b, 0xd0, 0x6e, 0xb6, 0xe4, 0x1c, 0x3a, 0x70, 0xfa, 0x47, 0x39, 0x31, 0x9b, 0xf1, 0xa9, 0x32, 0xf0, 0x2c, 0x30, 0x64, 0x56, 0x56, -+ 0x0c, 0xda, 0x44, 0xdd, 0xac, 0x43, 0xed, 0x6d, 0x90, 0x04, 0x45, 0xf5, 0xbf, 0x85, 0xbb, 0x0c, 0xe3, 0x25, 0x94, 0x74, 0x36, 0xe0, 0xd0, 0x68, 0x5e, 0x41, 0xb1, 0x6b, 0xc7, 0x16, 0x95, 0x18, -+ 0x25, 0x9e, 0x57, 0x34, 0xfd, 0xce, 0x08, 0x0f, 0xfe, 0x85, 0x19, 0x1b, 0x1d, 0x8d, 0x8d, 0xe4, 0xdb, 0x48, 0x14, 0x3f, 0xb5, 0x64, 0x03, 0x8a, 0xce, 0x80, 0x10, 0x4d, 0x3a, 0x8d, 0x07, 0x12, -+ 0x45, 0xe2, 0xaa, 0x56, 0xc7, 0x19, 0x33, 0xf4, 0xdc, 0xf9, 0x25, 0xee, 0xe8, 0x44, 0xc8, 0x0f, 0xdd, 0xf3, 0x25, 0x1f, 0x74, 0x00, 0x6a, 0x23, 0x41, 0x33, 0x18, 0xbb, 0xfd, 0x2e, 0xd9, 0xe0, -+ 0x53, 0x51, 0xb5, 0xaa, 0xeb, 0xcc, 0x77, 0xcf, 0xac, 0x8d, 0x5f, 0x03, 0x64, 0x23, 0x1a, 0x50, 0xea, 0x86, 0x47, 0xc7, 0x2f, 0x71, 0x3e, 0x81, 0x7a, 0x20, 0x75, 0x32, 0x30, 0x29, 0xe3, 0xb8, -+ 0x8b, 0x72, 0x44, 0x22, 0x64, 0xc5, 0x97, 0xb0, 0xf1, 0xfc, 0x09, 0xf9, 0x40, 0x1c, 0xe8, 0x8a, 0xc9, 0x7c, 0x55, 0x22, 0xa5, 0x63, 0x64, 0x52, 0x3c, 0x37, 0xfe, 0xa2, 0xd6, 0xbd, 0x06, 0xb2, -+ }, -+ }, -+ { -+ .name = "Kyber Round 2, 1024 KAT 0", -+ .version = 0, -+ .keyform = CK_IBM_KYBER_KEYFORM_ROUND2_1024, -+ .sk_len = 3168, -+ .sk = { -+ 0x07, 0x63, 0x8F, 0xB6, 0x98, 0x68, 0xF3, 0xD3, 0x20, 0xE5, 0x86, 0x2B, 0xD9, 0x69, 0x33, 0xFE, 0xB3, 0x11, 0xB3, 0x62, 0x09, 0x3C, 0x9B, 0x5D, 0x50, 0x17, 0x0B, 0xCE, 0xD4, 0x3F, 0x1B, 0x53, -+ 0x6D, 0x9A, 0x20, 0x4B, 0xB1, 0xF2, 0x26, 0x95, 0x95, 0x0B, 0xA1, 0xF2, 0xA9, 0xE8, 0xEB, 0x82, 0x8B, 0x28, 0x44, 0x88, 0x76, 0x0B, 0x3F, 0xC8, 0x4F, 0xAB, 0xA0, 0x42, 0x75, 0xD5, 0x62, 0x8E, -+ 0x39, 0xC5, 0xB2, 0x47, 0x13, 0x74, 0x28, 0x3C, 0x50, 0x32, 0x99, 0xC0, 0xAB, 0x49, 0xB6, 0x6B, 0x8B, 0xBB, 0x56, 0xA4, 0x18, 0x66, 0x24, 0xF9, 0x19, 0xA2, 0xBA, 0x59, 0xBB, 0x08, 0xD8, 0x55, -+ 0x18, 0x80, 0xC2, 0xBE, 0xFC, 0x4F, 0x87, 0xF2, 0x5F, 0x59, 0xAB, 0x58, 0x7A, 0x79, 0xC3, 0x27, 0xD7, 0x92, 0xD5, 0x4C, 0x97, 0x4A, 0x69, 0x26, 0x2F, 0xF8, 0xA7, 0x89, 0x38, 0x28, 0x9E, 0x9A, -+ 0x87, 0xB6, 0x88, 0xB0, 0x83, 0xE0, 0x59, 0x5F, 0xE2, 0x18, 0xB6, 0xBB, 0x15, 0x05, 0x94, 0x1C, 0xE2, 0xE8, 0x1A, 0x5A, 0x64, 0xC5, 0xAA, 0xC6, 0x04, 0x17, 0x25, 0x69, 0x85, 0x34, 0x9E, 0xE4, -+ 0x7A, 0x52, 0x42, 0x0A, 0x5F, 0x97, 0x47, 0x7B, 0x72, 0x36, 0xAC, 0x76, 0xBC, 0x70, 0xE8, 0x28, 0x87, 0x29, 0x28, 0x7E, 0xE3, 0xE3, 0x4A, 0x3D, 0xBC, 0x36, 0x83, 0xC0, 0xB7, 0xB1, 0x00, 0x29, -+ 0xFC, 0x20, 0x34, 0x18, 0x53, 0x7E, 0x74, 0x66, 0xBA, 0x63, 0x85, 0xA8, 0xFF, 0x30, 0x1E, 0xE1, 0x27, 0x08, 0xF8, 0x2A, 0xAA, 0x1E, 0x38, 0x0F, 0xC7, 0xA8, 0x8F, 0x8F, 0x20, 0x5A, 0xB7, 0xE8, -+ 0x8D, 0x7E, 0x95, 0x95, 0x2A, 0x55, 0xBA, 0x20, 0xD0, 0x9B, 0x79, 0xA4, 0x71, 0x41, 0xD6, 0x2B, 0xF6, 0xEB, 0x7D, 0xD3, 0x07, 0xB0, 0x8E, 0xCA, 0x13, 0xA5, 0xBC, 0x5F, 0x6B, 0x68, 0x58, 0x1C, -+ 0x68, 0x65, 0xB2, 0x7B, 0xBC, 0xDD, 0xAB, 0x14, 0x2F, 0x4B, 0x2C, 0xBF, 0xF4, 0x88, 0xC8, 0xA2, 0x27, 0x05, 0xFA, 0xA9, 0x8A, 0x2B, 0x9E, 0xEA, 0x35, 0x30, 0xC7, 0x66, 0x62, 0x33, 0x5C, 0xC7, -+ 0xEA, 0x3A, 0x00, 0x77, 0x77, 0x25, 0xEB, 0xCC, 0xCD, 0x2A, 0x46, 0x36, 0xB2, 0xD9, 0x12, 0x2F, 0xF3, 0xAB, 0x77, 0x12, 0x3C, 0xE0, 0x88, 0x3C, 0x19, 0x11, 0x11, 0x5E, 0x50, 0xC9, 0xE8, 0xA9, -+ 0x41, 0x94, 0xE4, 0x8D, 0xD0, 0xD0, 0x9C, 0xFF, 0xB3, 0xAD, 0xCD, 0x2C, 0x1E, 0x92, 0x43, 0x09, 0x03, 0xD0, 0x7A, 0xDB, 0xF0, 0x05, 0x32, 0x03, 0x15, 0x75, 0xAA, 0x7F, 0x9E, 0x7B, 0x5A, 0x1F, -+ 0x33, 0x62, 0xDE, 0xC9, 0x36, 0xD4, 0x04, 0x3C, 0x05, 0xF2, 0x47, 0x6C, 0x07, 0x57, 0x8B, 0xC9, 0xCB, 0xAF, 0x2A, 0xB4, 0xE3, 0x82, 0x72, 0x7A, 0xD4, 0x16, 0x86, 0xA9, 0x6B, 0x25, 0x48, 0x82, -+ 0x0B, 0xB0, 0x3B, 0x32, 0xF1, 0x1B, 0x28, 0x11, 0xAD, 0x62, 0xF4, 0x89, 0xE9, 0x51, 0x63, 0x2A, 0xBA, 0x0D, 0x1D, 0xF8, 0x96, 0x80, 0xCC, 0x8A, 0x8B, 0x53, 0xB4, 0x81, 0xD9, 0x2A, 0x68, 0xD7, -+ 0x0B, 0x4E, 0xA1, 0xC3, 0xA6, 0xA5, 0x61, 0xC0, 0x69, 0x28, 0x82, 0xB5, 0xCA, 0x8C, 0xC9, 0x42, 0xA8, 0xD4, 0x95, 0xAF, 0xCB, 0x06, 0xDE, 0x89, 0x49, 0x8F, 0xB9, 0x35, 0xB7, 0x75, 0x90, 0x8F, -+ 0xE7, 0xA0, 0x3E, 0x32, 0x4D, 0x54, 0xCC, 0x19, 0xD4, 0xE1, 0xAA, 0xBD, 0x35, 0x93, 0xB3, 0x8B, 0x19, 0xEE, 0x13, 0x88, 0xFE, 0x49, 0x2B, 0x43, 0x12, 0x7E, 0x5A, 0x50, 0x42, 0x53, 0x78, 0x6A, -+ 0x0D, 0x69, 0xAD, 0x32, 0x60, 0x1C, 0x28, 0xE2, 0xC8, 0x85, 0x04, 0xA5, 0xBA, 0x59, 0x97, 0x06, 0x02, 0x3A, 0x61, 0x36, 0x3E, 0x17, 0xC6, 0xB9, 0xBB, 0x59, 0xBD, 0xC6, 0x97, 0x45, 0x2C, 0xD0, -+ 0x59, 0x45, 0x19, 0x83, 0xD7, 0x38, 0xCA, 0x3F, 0xD0, 0x34, 0xE3, 0xF5, 0x98, 0x88, 0x54, 0xCA, 0x05, 0x03, 0x1D, 0xB0, 0x96, 0x11, 0x49, 0x89, 0x88, 0x19, 0x7C, 0x6B, 0x30, 0xD2, 0x58, 0xDF, -+ 0xE2, 0x62, 0x65, 0x54, 0x1C, 0x89, 0xA4, 0xB3, 0x1D, 0x68, 0x64, 0xE9, 0x38, 0x9B, 0x03, 0xCB, 0x74, 0xF7, 0xEC, 0x43, 0x23, 0xFB, 0x94, 0x21, 0xA4, 0xB9, 0x79, 0x0A, 0x26, 0xD1, 0x7B, 0x03, -+ 0x98, 0xA2, 0x67, 0x67, 0x35, 0x09, 0x09, 0xF8, 0x4D, 0x57, 0xB6, 0x69, 0x4D, 0xF8, 0x30, 0x66, 0x4C, 0xA8, 0xB3, 0xC3, 0xC0, 0x3E, 0xD2, 0xAE, 0x67, 0xB8, 0x90, 0x06, 0x86, 0x8A, 0x68, 0x52, -+ 0x7C, 0xCD, 0x66, 0x64, 0x59, 0xAB, 0x7F, 0x05, 0x66, 0x71, 0x00, 0x0C, 0x61, 0x64, 0xD3, 0xA7, 0xF2, 0x66, 0xA1, 0x4D, 0x97, 0xCB, 0xD7, 0x00, 0x4D, 0x6C, 0x92, 0xCA, 0xCA, 0x77, 0x0B, 0x84, -+ 0x4A, 0x4F, 0xA9, 0xB1, 0x82, 0xE7, 0xB1, 0x8C, 0xA8, 0x85, 0x08, 0x2A, 0xC5, 0x64, 0x6F, 0xCB, 0x4A, 0x14, 0xE1, 0x68, 0x5F, 0xEB, 0x0C, 0x9C, 0xE3, 0x37, 0x2A, 0xB9, 0x53, 0x65, 0xC0, 0x4F, -+ 0xD8, 0x30, 0x84, 0xF8, 0x0A, 0x23, 0xFF, 0x10, 0xA0, 0x5B, 0xF1, 0x5F, 0x7F, 0xA5, 0xAC, 0xC6, 0xC0, 0xCB, 0x46, 0x2C, 0x33, 0xCA, 0x52, 0x4F, 0xA6, 0xB8, 0xBB, 0x35, 0x90, 0x43, 0xBA, 0x68, -+ 0x60, 0x9E, 0xAA, 0x25, 0x36, 0xE8, 0x1D, 0x08, 0x46, 0x3B, 0x19, 0x65, 0x3B, 0x54, 0x35, 0xBA, 0x94, 0x6C, 0x9A, 0xDD, 0xEB, 0x20, 0x2B, 0x04, 0xB0, 0x31, 0xCC, 0x96, 0x0D, 0xCC, 0x12, 0xE4, -+ 0x51, 0x8D, 0x42, 0x8B, 0x32, 0xB2, 0x57, 0xA4, 0xFC, 0x73, 0x13, 0xD3, 0xA7, 0x98, 0x0D, 0x80, 0x08, 0x2E, 0x93, 0x4F, 0x9D, 0x95, 0xC3, 0x2B, 0x0A, 0x01, 0x91, 0xA2, 0x36, 0x04, 0x38, 0x4D, -+ 0xD9, 0xE0, 0x79, 0xBB, 0xBA, 0xA2, 0x66, 0xD1, 0x4C, 0x3F, 0x75, 0x6B, 0x9F, 0x21, 0x33, 0x10, 0x74, 0x33, 0xA4, 0xE8, 0x3F, 0xA7, 0x18, 0x72, 0x82, 0xA8, 0x09, 0x20, 0x3A, 0x4F, 0xAF, 0x84, -+ 0x18, 0x51, 0x83, 0x3D, 0x12, 0x1A, 0xC3, 0x83, 0x84, 0x3A, 0x5E, 0x55, 0xBC, 0x23, 0x81, 0x42, 0x5E, 0x16, 0xC7, 0xDB, 0x4C, 0xC9, 0xAB, 0x5C, 0x1B, 0x0D, 0x91, 0xA4, 0x7E, 0x2B, 0x8D, 0xE0, -+ 0xE5, 0x82, 0xC8, 0x6B, 0x6B, 0x0D, 0x90, 0x7B, 0xB3, 0x60, 0xB9, 0x7F, 0x40, 0xAB, 0x5D, 0x03, 0x8F, 0x6B, 0x75, 0xC8, 0x14, 0xB2, 0x7D, 0x9B, 0x96, 0x8D, 0x41, 0x98, 0x32, 0xBC, 0x8C, 0x2B, -+ 0xEE, 0x60, 0x5E, 0xF6, 0xE5, 0x05, 0x9D, 0x33, 0x10, 0x0D, 0x90, 0x48, 0x5D, 0x37, 0x84, 0x50, 0x01, 0x42, 0x21, 0x73, 0x6C, 0x07, 0x40, 0x7C, 0xAC, 0x26, 0x04, 0x08, 0xAA, 0x64, 0x92, 0x66, -+ 0x19, 0x78, 0x8B, 0x86, 0x01, 0xC2, 0xA7, 0x52, 0xD1, 0xA6, 0xCB, 0xF8, 0x20, 0xD7, 0xC7, 0xA0, 0x47, 0x16, 0x20, 0x32, 0x25, 0xB3, 0x89, 0x5B, 0x93, 0x42, 0xD1, 0x47, 0xA8, 0x18, 0x5C, 0xFC, -+ 0x1B, 0xB6, 0x5B, 0xA0, 0x6B, 0x41, 0x42, 0x33, 0x99, 0x03, 0xC0, 0xAC, 0x46, 0x51, 0x38, 0x5B, 0x45, 0xD9, 0x8A, 0x8B, 0x19, 0xD2, 0x8C, 0xD6, 0xBA, 0xB0, 0x88, 0x78, 0x7F, 0x7E, 0xE1, 0xB1, -+ 0x24, 0x61, 0x76, 0x6B, 0x43, 0xCB, 0xCC, 0xB9, 0x64, 0x34, 0x42, 0x7D, 0x93, 0xC0, 0x65, 0x55, 0x06, 0x88, 0xF6, 0x94, 0x8E, 0xD1, 0xB5, 0x47, 0x5A, 0x42, 0x5F, 0x1B, 0x85, 0x20, 0x9D, 0x06, -+ 0x1C, 0x08, 0xB5, 0x6C, 0x1C, 0xC0, 0x69, 0xF6, 0xC0, 0xA7, 0xC6, 0xF2, 0x93, 0x58, 0xCA, 0xB9, 0x11, 0x08, 0x77, 0x32, 0xA6, 0x49, 0xD2, 0x7C, 0x9B, 0x98, 0xF9, 0xA4, 0x88, 0x79, 0x38, 0x7D, -+ 0x9B, 0x00, 0xC2, 0x59, 0x59, 0xA7, 0x16, 0x54, 0xD6, 0xF6, 0xA9, 0x46, 0x16, 0x45, 0x13, 0xE4, 0x7A, 0x75, 0xD0, 0x05, 0x98, 0x6C, 0x23, 0x63, 0xC0, 0x9F, 0x6B, 0x53, 0x7E, 0xCA, 0x78, 0xB9, -+ 0x30, 0x3A, 0x5F, 0xA4, 0x57, 0x60, 0x8A, 0x58, 0x6A, 0x65, 0x3A, 0x34, 0x7D, 0xB0, 0x4D, 0xFC, 0xC1, 0x91, 0x75, 0xB3, 0xA3, 0x01, 0x17, 0x25, 0x36, 0x06, 0x2A, 0x65, 0x8A, 0x95, 0x27, 0x75, -+ 0x70, 0xC8, 0x85, 0x2C, 0xA8, 0x97, 0x3F, 0x4A, 0xE1, 0x23, 0xA3, 0x34, 0x04, 0x7D, 0xD7, 0x11, 0xC8, 0x92, 0x7A, 0x63, 0x4A, 0x03, 0x38, 0x8A, 0x52, 0x7B, 0x03, 0x4B, 0xF7, 0xA8, 0x17, 0x0F, -+ 0xA7, 0x02, 0xC1, 0xF7, 0xC2, 0x3E, 0xC3, 0x2D, 0x18, 0xA2, 0x37, 0x48, 0x90, 0xBE, 0x9C, 0x78, 0x7A, 0x94, 0x09, 0xC8, 0x2D, 0x19, 0x2C, 0x4B, 0xB7, 0x05, 0xA2, 0xF9, 0x96, 0xCE, 0x40, 0x5D, -+ 0x85, 0xA4, 0xC1, 0xA1, 0xAB, 0x9B, 0x6A, 0xEB, 0x49, 0xCC, 0xE1, 0xC2, 0xF8, 0xA9, 0x7C, 0x35, 0x16, 0xC7, 0x2A, 0x00, 0xA4, 0x62, 0x63, 0xBA, 0xA6, 0x96, 0xBF, 0x25, 0x72, 0x77, 0x19, 0xC3, -+ 0x21, 0x64, 0x23, 0x61, 0x8F, 0xF3, 0x33, 0x80, 0x93, 0x4A, 0x6C, 0x10, 0x54, 0x5C, 0x4C, 0x5C, 0x51, 0x55, 0xB1, 0x24, 0x86, 0x18, 0x1F, 0xC7, 0xA2, 0x31, 0x98, 0x73, 0x97, 0x8B, 0x6A, 0x2A, -+ 0x67, 0x49, 0x0F, 0x82, 0x56, 0xBD, 0x21, 0x96, 0xFE, 0x17, 0x92, 0xA4, 0xC0, 0x00, 0x77, 0xB8, 0x12, 0xEA, 0xE8, 0xBE, 0xD3, 0x57, 0x24, 0x99, 0x68, 0x4A, 0xB3, 0x37, 0x18, 0x76, 0x76, 0x1E, -+ 0x45, 0x0C, 0x9F, 0x9D, 0x27, 0x68, 0xA3, 0x68, 0x06, 0xD7, 0xAB, 0x20, 0x46, 0xC9, 0x1F, 0x17, 0x59, 0x9E, 0x9A, 0xC5, 0x92, 0x99, 0x08, 0x08, 0xDC, 0xD7, 0xB4, 0xD0, 0x91, 0x90, 0x72, 0xF1, -+ 0x4E, 0xC3, 0x61, 0x77, 0x3B, 0x72, 0x52, 0x44, 0x4C, 0x32, 0x3C, 0x30, 0x83, 0x26, 0xF4, 0xA3, 0x0F, 0x86, 0x80, 0xD2, 0xF7, 0x48, 0xF5, 0x6A, 0x13, 0x2B, 0x82, 0x67, 0x4E, 0xD0, 0x18, 0x46, -+ 0x20, 0xB8, 0x2A, 0xD2, 0xCB, 0x18, 0x2C, 0x97, 0xB4, 0x81, 0x62, 0x66, 0x47, 0x49, 0x12, 0x90, 0xA0, 0x11, 0xCC, 0x73, 0x82, 0x86, 0x85, 0xA8, 0xC3, 0x67, 0xA5, 0xB9, 0xCF, 0x8D, 0x62, 0x1B, -+ 0x0D, 0x5C, 0x1E, 0xFF, 0x03, 0x17, 0x27, 0x58, 0xBD, 0x00, 0x49, 0x78, 0xC2, 0x51, 0xCD, 0x51, 0x34, 0x22, 0x28, 0x98, 0x9C, 0xAE, 0x63, 0x32, 0xAC, 0x48, 0x64, 0x37, 0xCB, 0x5C, 0x57, 0xD4, -+ 0x30, 0x74, 0x62, 0x86, 0x52, 0x53, 0xBE, 0x21, 0x7B, 0x35, 0x15, 0xC7, 0x3D, 0xF4, 0x05, 0xB7, 0xF2, 0x82, 0x17, 0xAD, 0x0B, 0x8C, 0xF6, 0x0C, 0x2F, 0xFF, 0xAA, 0x0A, 0x00, 0x48, 0xB1, 0xFB, -+ 0x4A, 0xCD, 0xCD, 0xC3, 0x8B, 0x52, 0x50, 0xCF, 0xEC, 0x35, 0x6A, 0x6D, 0xE2, 0x6C, 0xFA, 0x7A, 0x58, 0x8F, 0xDC, 0x86, 0xF9, 0x8C, 0x85, 0x4A, 0xC6, 0x4C, 0x7B, 0xFA, 0xA9, 0x6F, 0x5A, 0x32, -+ 0xCC, 0x06, 0x10, 0x93, 0x4B, 0xAA, 0x6A, 0x58, 0x6B, 0x9A, 0x20, 0x54, 0xF1, 0x3B, 0xA2, 0x74, 0x17, 0x4A, 0xA0, 0xD2, 0xB3, 0xA8, 0x1B, 0x96, 0xA9, 0x40, 0x66, 0x6F, 0x78, 0x9B, 0x5A, 0x6B, -+ 0xCD, 0xC0, 0xA6, 0xA0, 0x17, 0x8A, 0x0C, 0x9A, 0x02, 0x57, 0x8A, 0x49, 0x3F, 0x6E, 0xEA, 0x0D, 0x2E, 0x6C, 0x13, 0x95, 0x1C, 0x9F, 0x24, 0x9A, 0x5E, 0x8D, 0xD7, 0x1D, 0xD4, 0x9A, 0x74, 0x2D, -+ 0x45, 0x1F, 0x1A, 0xBB, 0xA1, 0x9A, 0xF8, 0xC5, 0x47, 0x85, 0x5E, 0x0A, 0xFC, 0x72, 0x8E, 0x90, 0xAB, 0xB4, 0x99, 0xC9, 0xBE, 0xEB, 0x76, 0x6F, 0x47, 0x29, 0xCD, 0xA2, 0x22, 0x63, 0xE3, 0x24, -+ 0xDA, 0x18, 0x71, 0x2D, 0x31, 0x6E, 0x98, 0xDC, 0x7A, 0xC8, 0xC3, 0xCA, 0x47, 0x37, 0x0E, 0xBD, 0x77, 0x0C, 0xE3, 0x2B, 0x3B, 0xD4, 0xB1, 0xA0, 0xC9, 0x52, 0x9A, 0xC6, 0xEC, 0x8E, 0xE0, 0x28, -+ 0xB1, 0xCD, 0xB2, 0x65, 0x1C, 0xB5, 0xA6, 0xBB, 0x3C, 0x0C, 0x6D, 0xF1, 0x24, 0x0A, 0x3B, 0x91, 0x4B, 0x56, 0x56, 0xC0, 0xDC, 0x51, 0xC2, 0xB9, 0x1B, 0xFC, 0xBC, 0x37, 0xA4, 0x66, 0x02, 0x87, -+ 0xD4, 0x4F, 0x81, 0xF8, 0x53, 0xC7, 0xF4, 0x9A, 0x6D, 0x06, 0x03, 0xD6, 0xD7, 0x23, 0xCB, 0xEC, 0x01, 0x5F, 0xBC, 0x43, 0x4A, 0x38, 0x24, 0x1C, 0x10, 0x9C, 0x7E, 0xD5, 0xB1, 0xCC, 0x46, 0x1A, -+ 0x2C, 0xCB, 0x9A, 0xB7, 0x14, 0x0F, 0x19, 0xF3, 0x7A, 0x13, 0xBB, 0x70, 0x1E, 0x14, 0x2B, 0xD5, 0x4B, 0x64, 0xEC, 0x6B, 0x76, 0xFE, 0xC3, 0x3B, 0x69, 0xC2, 0x91, 0x8C, 0xB0, 0x17, 0xC4, 0x14, -+ 0x34, 0x23, 0x00, 0x9A, 0x3C, 0x07, 0xB5, 0xC1, 0x81, 0xB0, 0xC1, 0xEB, 0x49, 0x4A, 0x62, 0xAB, 0xC8, 0x39, 0x13, 0x97, 0x08, 0x9E, 0xA6, 0x64, 0x09, 0x67, 0xC1, 0x20, 0x49, 0x84, 0xCD, 0x48, -+ 0x4C, 0xCC, 0xB0, 0x0A, 0x9A, 0x17, 0xD0, 0x87, 0x21, 0x84, 0x28, 0xEF, 0x3B, 0xB7, 0x08, 0x78, 0x3E, 0x12, 0x82, 0x71, 0x04, 0x41, 0x73, 0x75, 0xB6, 0x95, 0x6F, 0xB5, 0x00, 0x53, 0xD0, 0x48, -+ 0xA4, 0x79, 0x14, 0x95, 0x82, 0x4A, 0x34, 0x80, 0xA5, 0xB7, 0x83, 0x02, 0x56, 0x09, 0x6F, 0xDD, 0x72, 0x5C, 0x30, 0x8B, 0x3B, 0xE8, 0x4A, 0x07, 0xF3, 0x63, 0x2E, 0x24, 0x95, 0xC6, 0x2E, 0x96, -+ 0x39, 0x9D, 0x80, 0xBF, 0xA7, 0x45, 0xB9, 0x84, 0x1A, 0x18, 0x33, 0xBC, 0x1D, 0x27, 0xBA, 0x45, 0xA5, 0x21, 0x68, 0xEE, 0x59, 0x00, 0x6C, 0x3A, 0x3A, 0x8C, 0x4A, 0x5A, 0x4F, 0x50, 0x88, 0xFC, -+ 0x73, 0x71, 0x81, 0xAB, 0x51, 0x96, 0xF7, 0xB1, 0xB4, 0x9A, 0x2E, 0xD8, 0x13, 0x13, 0x4E, 0x11, 0x2F, 0x73, 0x0B, 0x99, 0x1C, 0x54, 0xA7, 0x19, 0x6B, 0xCF, 0x5F, 0xC7, 0x6E, 0x13, 0x4C, 0x58, -+ 0x43, 0xE1, 0x69, 0x88, 0x51, 0xB2, 0xF8, 0x69, 0xAF, 0xAF, 0xB0, 0x27, 0x87, 0xD9, 0xC2, 0xF1, 0x36, 0x90, 0x2D, 0xC7, 0xA7, 0xF3, 0xD6, 0x21, 0x56, 0xD1, 0x5E, 0xC3, 0x09, 0x56, 0x40, 0x92, -+ 0xC6, 0x1D, 0x83, 0xB0, 0x98, 0x6C, 0x48, 0x40, 0x99, 0x81, 0xF3, 0xC1, 0x86, 0x88, 0x0A, 0x2F, 0x63, 0xD5, 0x86, 0x0A, 0xB6, 0x01, 0xDE, 0xAC, 0x2B, 0x6B, 0xA1, 0xB4, 0x28, 0x17, 0x9D, 0x73, -+ 0x53, 0x3E, 0xB7, 0xA3, 0xA5, 0x11, 0x3B, 0x85, 0x61, 0xF1, 0x0B, 0x45, 0xC3, 0xCD, 0xE2, 0x82, 0xB6, 0xEA, 0xD6, 0xAB, 0x6C, 0x60, 0x4F, 0x09, 0xC1, 0x7B, 0xFD, 0xA0, 0x83, 0x13, 0xA3, 0x26, -+ 0x07, 0x67, 0x5A, 0xDF, 0x64, 0x31, 0xCA, 0x87, 0x18, 0xE9, 0xC4, 0x3A, 0x73, 0x73, 0x32, 0x27, 0xE7, 0x3B, 0xC6, 0x1A, 0xC8, 0x45, 0xBA, 0x90, 0x77, 0x55, 0xCE, 0xC6, 0x89, 0x25, 0xE5, 0xE2, -+ 0xBF, 0xE9, 0x12, 0x95, 0x9D, 0xB8, 0x6F, 0xBF, 0xE2, 0x15, 0x6F, 0xD5, 0xBB, 0xDB, 0xF0, 0xC9, 0xDF, 0x8B, 0x53, 0x02, 0xAA, 0x8D, 0x90, 0xA2, 0x2D, 0x12, 0x27, 0x0E, 0x00, 0x65, 0x51, 0xE4, -+ 0x76, 0x7E, 0x45, 0x26, 0x8E, 0xD9, 0x69, 0x26, 0x54, 0x44, 0x78, 0x11, 0xEA, 0xB8, 0x4F, 0x04, 0x99, 0xA8, 0xA5, 0x8C, 0xF7, 0xC0, 0x4A, 0x59, 0x56, 0x98, 0x52, 0x80, 0x45, 0xF2, 0x98, 0x97, -+ 0xC8, 0xFA, 0x96, 0xD0, 0x6C, 0xCE, 0x51, 0xE6, 0xAF, 0xEA, 0xC4, 0x33, 0x95, 0x89, 0xC9, 0x41, 0xC8, 0x55, 0x63, 0xD7, 0x0F, 0xAC, 0xE1, 0x92, 0x88, 0x94, 0xBA, 0xC0, 0x36, 0x19, 0xDF, 0xF4, -+ 0xBE, 0x3F, 0x43, 0x14, 0xA3, 0xF7, 0x35, 0x1A, 0x09, 0xA4, 0x86, 0xB5, 0x04, 0x1E, 0x7C, 0xB2, 0xDA, 0x8B, 0x96, 0xBC, 0x66, 0x26, 0xA4, 0x93, 0x17, 0x35, 0x7C, 0x41, 0x52, 0xA5, 0x1B, 0xA3, -+ 0xC2, 0x8C, 0x7E, 0x0C, 0x9D, 0xB4, 0x1A, 0x06, 0xA2, 0x82, 0x90, 0xF2, 0x18, 0x73, 0x11, 0x07, 0xC9, 0x54, 0xD8, 0xA6, 0x6F, 0x80, 0x1D, 0x7D, 0xE1, 0x2A, 0x03, 0x71, 0x16, 0x99, 0x0B, 0x6C, -+ 0x53, 0xC1, 0x29, 0xF1, 0x85, 0xC3, 0x45, 0xF2, 0x7E, 0x51, 0x8B, 0x2D, 0x5A, 0x91, 0x25, 0xA0, 0x70, 0x76, 0xD9, 0x91, 0xB7, 0xDA, 0xC7, 0xCC, 0x65, 0xA8, 0x56, 0x2E, 0xFB, 0xCC, 0x32, 0xA9, -+ 0xCA, 0x4A, 0xD9, 0x02, 0x63, 0xB0, 0x4A, 0x4F, 0x90, 0x36, 0x11, 0x6C, 0x7B, 0x97, 0x48, 0x04, 0x96, 0x31, 0x75, 0x75, 0x65, 0x0D, 0xCC, 0x21, 0x52, 0xB5, 0xBC, 0x0E, 0x74, 0x40, 0x7E, 0x12, -+ 0xFA, 0x8E, 0x4F, 0xFC, 0xCC, 0xFF, 0x76, 0xC0, 0x1A, 0x97, 0x4B, 0xD6, 0x11, 0x02, 0xE1, 0xF5, 0x29, 0x64, 0x96, 0xC7, 0x1D, 0x07, 0x64, 0xE1, 0x32, 0x29, 0xFF, 0xE7, 0x84, 0x6F, 0x33, 0x6E, -+ 0x34, 0xCA, 0xC9, 0x04, 0xCA, 0x56, 0x70, 0xF8, 0xCD, 0x50, 0x52, 0x42, 0x7A, 0x79, 0xC0, 0x91, 0xA9, 0x71, 0x21, 0x0C, 0x5C, 0xFF, 0x66, 0x7A, 0xAC, 0x24, 0x93, 0x66, 0xE1, 0x0D, 0x2B, 0x11, -+ 0x37, 0x6C, 0xA3, 0x9D, 0x93, 0x52, 0x04, 0xB1, 0x2C, 0xC5, 0x85, 0xE9, 0x40, 0x54, 0x03, 0x62, 0x5F, 0xB3, 0x2C, 0xB5, 0xE5, 0xC3, 0x1B, 0x62, 0x34, 0x81, 0x60, 0x51, 0x5C, 0xCC, 0x4F, 0xDA, -+ 0xF5, 0x70, 0x2D, 0x6B, 0xAB, 0x5C, 0x37, 0x3D, 0xB6, 0xF3, 0x50, 0xD3, 0xE6, 0x3A, 0x5C, 0xE3, 0xCA, 0x54, 0x74, 0xA0, 0xCF, 0x15, 0x67, 0x04, 0x2C, 0xA3, 0x25, 0x89, 0x86, 0xFF, 0x75, 0xBD, -+ 0xFC, 0xD9, 0x29, 0xE6, 0x46, 0x2F, 0x36, 0xBC, 0xCC, 0x3F, 0x5A, 0x93, 0x35, 0x2A, 0x2B, 0x36, 0xCB, 0x16, 0x2E, 0x18, 0x74, 0xC7, 0x42, 0x87, 0x0A, 0x97, 0xB1, 0x67, 0xA0, 0x50, 0x37, 0x36, -+ 0x24, 0xEA, 0xEB, 0x7E, 0x50, 0x73, 0x25, 0x6B, 0x72, 0x11, 0xB2, 0xD9, 0x4B, 0x84, 0x06, 0xCD, 0x6C, 0x95, 0x33, 0xB1, 0x53, 0x64, 0x08, 0xAB, 0x0A, 0x29, 0xE5, 0xB2, 0xF0, 0xC9, 0x54, 0xEC, -+ 0xE0, 0x0F, 0xBB, 0xEB, 0x17, 0x6D, 0x72, 0x4D, 0x4C, 0xF4, 0x43, 0xCF, 0x70, 0x20, 0xD5, 0xFA, 0x70, 0x94, 0xCC, 0x1B, 0x1B, 0xE6, 0x97, 0xBA, 0xD3, 0x36, 0x74, 0xE4, 0x09, 0x9E, 0xC7, 0xBB, -+ 0x18, 0xF4, 0x57, 0x71, 0x28, 0xCD, 0xD9, 0x7C, 0xCD, 0x6D, 0x44, 0x62, 0xE5, 0x60, 0x7C, 0x51, 0x2A, 0x3E, 0x36, 0x24, 0x8E, 0x3D, 0xDA, 0xA2, 0xEC, 0x08, 0x9A, 0xEF, 0xC4, 0xCE, 0x48, 0x5C, -+ 0x49, 0xD7, 0xB0, 0x09, 0xC8, 0xD6, 0x31, 0x15, 0xFC, 0x81, 0xFF, 0x3A, 0x62, 0xD1, 0x5A, 0x88, 0x44, 0x1C, 0x03, 0xEA, 0x1C, 0x2E, 0x72, 0xC4, 0x88, 0x39, 0xFC, 0x6A, 0xD7, 0x3A, 0x30, 0x74, -+ 0x4A, 0x62, 0xB7, 0xB2, 0x16, 0x45, 0xA6, 0xAF, 0x7D, 0x61, 0xB6, 0x38, 0x3B, 0x22, 0x1E, 0x21, 0x90, 0x55, 0x57, 0xCD, 0x29, 0xD9, 0x24, 0xA6, 0x09, 0x86, 0xC5, 0x11, 0xC1, 0xEB, 0xBC, 0x31, -+ 0x6D, 0x56, 0x30, 0xA2, 0x41, 0x43, 0x23, 0xF5, 0x3A, 0xD5, 0x59, 0x94, 0xF6, 0xB3, 0x65, 0x39, 0xF9, 0xC4, 0x40, 0x75, 0xA5, 0x33, 0xE4, 0x81, 0xC0, 0x84, 0x45, 0xD9, 0xCA, 0x9E, 0x9D, 0x38, -+ 0x21, 0x19, 0x38, 0x8B, 0xD1, 0xD7, 0x50, 0x52, 0x21, 0x7A, 0x94, 0x4C, 0xCC, 0x7B, 0xE9, 0x09, 0xE2, 0x19, 0x71, 0x1F, 0xCC, 0x79, 0x24, 0x76, 0x92, 0x13, 0xA1, 0x92, 0x53, 0x4A, 0x55, 0x80, -+ 0x08, 0x15, 0x7A, 0x39, 0x6E, 0xDF, 0xF4, 0x80, 0xCC, 0x3B, 0x52, 0x0F, 0xF8, 0x18, 0xB3, 0x8B, 0x13, 0x5C, 0x18, 0xA8, 0x0D, 0x51, 0x05, 0xE6, 0x78, 0x83, 0x6C, 0x39, 0x5C, 0x28, 0xE9, 0x2F, -+ 0x7A, 0x3C, 0x4E, 0x93, 0xC0, 0x10, 0x35, 0xF3, 0x41, 0x11, 0xCC, 0x49, 0x02, 0xD0, 0xC0, 0x33, 0xA6, 0x3F, 0x23, 0x6A, 0x71, 0xDA, 0x97, 0x4A, 0x6F, 0x40, 0x4F, 0x7A, 0xA7, 0xB5, 0xE5, 0x82, -+ 0xC7, 0x58, 0x14, 0x2F, 0xC1, 0x82, 0x6B, 0xBA, 0x98, 0xB2, 0x7D, 0x57, 0xC2, 0xE2, 0x10, 0x3E, 0x10, 0xE3, 0x0D, 0x32, 0x79, 0x7B, 0x96, 0x77, 0x14, 0xD1, 0x56, 0x61, 0x11, 0x13, 0x71, 0xA2, -+ 0xD9, 0xC5, 0x39, 0x98, 0x12, 0x46, 0x46, 0x22, 0x63, 0x5B, 0x44, 0x21, 0x26, 0xB0, 0x98, 0x36, 0xB0, 0x81, 0x82, 0x72, 0x47, 0xD0, 0x54, 0x22, 0x97, 0x2B, 0xD0, 0x32, 0x0D, 0x8F, 0x42, 0xBF, -+ 0x57, 0xE3, 0x49, 0x46, 0x12, 0x34, 0xE4, 0xD9, 0x4F, 0x01, 0x18, 0x50, 0xBA, 0xB5, 0xC0, 0x49, 0xB6, 0x2A, 0x59, 0x43, 0x38, 0x66, 0xFC, 0xCE, 0x69, 0x66, 0x49, 0x5C, 0x26, 0x5C, 0x47, 0x65, -+ 0xA5, 0x6C, 0x06, 0xB9, 0xFC, 0x42, 0x76, 0x54, 0x87, 0x85, 0xF4, 0x68, 0x28, 0xCA, 0x60, 0x2D, 0xC6, 0xD0, 0x54, 0x1F, 0x25, 0x07, 0x89, 0xC4, 0x9E, 0x8B, 0x06, 0x55, 0x9C, 0x43, 0x44, 0x60, -+ 0xA8, 0x43, 0x80, 0x98, 0x54, 0xE5, 0xB4, 0x6E, 0x89, 0x38, 0x9F, 0x10, 0xF4, 0x89, 0x66, 0x74, 0x91, 0xC1, 0x93, 0x5E, 0x8A, 0xFB, 0x9E, 0xB4, 0x71, 0x8F, 0x86, 0xAC, 0x45, 0x89, 0x32, 0xBC, -+ 0xF3, 0x3C, 0x9A, 0xBE, 0xCB, 0x2D, 0xC0, 0xC0, 0x93, 0xA7, 0xE8, 0x1D, 0xA0, 0x32, 0x7B, 0xB6, 0x37, 0x52, 0x81, 0x05, 0xC3, 0x58, 0xEB, 0x76, 0x8D, 0x32, 0x3A, 0x37, 0xD4, 0x0A, 0x8C, 0x19, -+ 0x9B, 0x7C, 0x4B, 0xB1, 0xD7, 0x2B, 0x72, 0xB6, 0x90, 0xB3, 0x6D, 0xD2, 0x7A, 0x93, 0x55, 0x19, 0x1B, 0x3C, 0x3A, 0xA6, 0x75, 0xA7, 0xE6, 0xF8, 0x55, 0xEB, 0x50, 0x5F, 0x57, 0x98, 0x65, 0xDB, -+ 0xD8, 0x91, 0x05, 0x65, 0x50, 0x5E, 0x7C, 0x0F, 0xDD, 0x54, 0x5C, 0xBB, 0xB8, 0x71, 0xB0, 0xB2, 0xCC, 0x01, 0x25, 0xB7, 0x4F, 0x6B, 0x0C, 0x9B, 0x79, 0x67, 0x0A, 0x62, 0x02, 0xD1, 0xB9, 0x15, -+ 0x4A, 0xC7, 0x76, 0x6B, 0x19, 0x19, 0xC4, 0x89, 0x58, 0x90, 0x86, 0xAD, 0x8B, 0x45, 0xBE, 0x0D, 0x79, 0xC9, 0x76, 0xC3, 0xC3, 0x9D, 0x6B, 0x25, 0x21, 0x3B, 0xB0, 0xB7, 0x8A, 0x57, 0x50, 0xE6, -+ 0xA8, 0xEB, 0x34, 0x33, 0x0B, 0xB3, 0xCF, 0xF2, 0xB1, 0xC0, 0x72, 0x2A, 0xC8, 0x83, 0xB0, 0x48, 0xF4, 0xB8, 0xCD, 0x06, 0x19, 0x6D, 0xA8, 0xAA, 0x8B, 0x05, 0xDA, 0x42, 0x67, 0x55, 0x2B, 0xF8, -+ 0x7A, 0xBC, 0xA5, 0x12, 0x4D, 0xC3, 0x58, 0xA8, 0x38, 0x10, 0x40, 0xE9, 0xB8, 0x1F, 0xB0, 0x84, 0x43, 0x15, 0x02, 0x15, 0xD6, 0x92, 0x23, 0x28, 0x00, 0x0A, 0xC0, 0xB7, 0x88, 0xB1, 0x21, 0x93, -+ 0x1A, 0x26, 0x7D, 0x80, 0x61, 0x9C, 0xE7, 0xD2, 0x9C, 0xD7, 0x6B, 0x60, 0xCF, 0x65, 0x83, 0xDC, 0xE8, 0xCE, 0xBC, 0x49, 0x01, 0x85, 0x73, 0x6C, 0x81, 0x8B, 0x25, 0xAD, 0x26, 0x0B, 0x66, 0x7B, -+ 0x1F, 0xFD, 0x46, 0x20, 0x6D, 0x01, 0x04, 0x55, 0x3A, 0xA9, 0xFB, 0x30, 0x45, 0x54, 0xA2, 0x1C, 0x32, 0x72, 0x44, 0xCE, 0x78, 0xAF, 0xDB, 0xD3, 0xB4, 0x62, 0x36, 0x1B, 0xB0, 0x68, 0xA1, 0x55, -+ 0x63, 0x64, 0x09, 0xF5, 0x74, 0xC5, 0x71, 0x65, 0x72, 0xE2, 0xA5, 0xF2, 0xA4, 0xB0, 0x4F, 0xB8, 0xAA, 0xD1, 0x23, 0x66, 0x84, 0x84, 0x17, 0x87, 0x56, 0x2A, 0xAF, 0x46, 0xC2, 0xC0, 0xDA, 0x46, -+ 0x65, 0xEA, 0xFD, 0x46, 0x5F, 0xC6, 0x4A, 0x0C, 0x5F, 0x8F, 0x3F, 0x90, 0x03, 0x48, 0x94, 0x15, 0x89, 0x9D, 0x59, 0xA5, 0x43, 0xD8, 0x20, 0x8C, 0x54, 0xA3, 0x16, 0x65, 0x29, 0xB5, 0x39, 0x22, -+ 0xA5, 0x89, 0x9A, 0x0B, 0xC4, 0x65, 0xEE, 0x5F, 0xC2, 0xC0, 0x41, 0x55, 0x58, 0x2A, 0x40, 0xAC, 0x70, 0x97, 0x61, 0xD2, 0xBE, 0x61, 0xFD, 0xC7, 0x6C, 0x59, 0x30, 0x44, 0xCE, 0xBC, 0xC7, 0xF2, -+ 0x86, 0x26, 0xED, 0x79, 0xD4, 0x51, 0x14, 0x08, 0x00, 0xE0, 0x3B, 0x59, 0xB9, 0x56, 0xF8, 0x21, 0x0E, 0x55, 0x60, 0x67, 0x40, 0x7D, 0x13, 0xDC, 0x90, 0xFA, 0x9E, 0x8B, 0x87, 0x2B, 0xFB, 0x8F, -+ }, -+ .pk_len = 1568, -+ .pk = { -+ 0xDA, 0x18, 0x71, 0x2D, 0x31, 0x6E, 0x98, 0xDC, 0x7A, 0xC8, 0xC3, 0xCA, 0x47, 0x37, 0x0E, 0xBD, 0x77, 0x0C, 0xE3, 0x2B, 0x3B, 0xD4, 0xB1, 0xA0, 0xC9, 0x52, 0x9A, 0xC6, 0xEC, 0x8E, 0xE0, 0x28, -+ 0xB1, 0xCD, 0xB2, 0x65, 0x1C, 0xB5, 0xA6, 0xBB, 0x3C, 0x0C, 0x6D, 0xF1, 0x24, 0x0A, 0x3B, 0x91, 0x4B, 0x56, 0x56, 0xC0, 0xDC, 0x51, 0xC2, 0xB9, 0x1B, 0xFC, 0xBC, 0x37, 0xA4, 0x66, 0x02, 0x87, -+ 0xD4, 0x4F, 0x81, 0xF8, 0x53, 0xC7, 0xF4, 0x9A, 0x6D, 0x06, 0x03, 0xD6, 0xD7, 0x23, 0xCB, 0xEC, 0x01, 0x5F, 0xBC, 0x43, 0x4A, 0x38, 0x24, 0x1C, 0x10, 0x9C, 0x7E, 0xD5, 0xB1, 0xCC, 0x46, 0x1A, -+ 0x2C, 0xCB, 0x9A, 0xB7, 0x14, 0x0F, 0x19, 0xF3, 0x7A, 0x13, 0xBB, 0x70, 0x1E, 0x14, 0x2B, 0xD5, 0x4B, 0x64, 0xEC, 0x6B, 0x76, 0xFE, 0xC3, 0x3B, 0x69, 0xC2, 0x91, 0x8C, 0xB0, 0x17, 0xC4, 0x14, -+ 0x34, 0x23, 0x00, 0x9A, 0x3C, 0x07, 0xB5, 0xC1, 0x81, 0xB0, 0xC1, 0xEB, 0x49, 0x4A, 0x62, 0xAB, 0xC8, 0x39, 0x13, 0x97, 0x08, 0x9E, 0xA6, 0x64, 0x09, 0x67, 0xC1, 0x20, 0x49, 0x84, 0xCD, 0x48, -+ 0x4C, 0xCC, 0xB0, 0x0A, 0x9A, 0x17, 0xD0, 0x87, 0x21, 0x84, 0x28, 0xEF, 0x3B, 0xB7, 0x08, 0x78, 0x3E, 0x12, 0x82, 0x71, 0x04, 0x41, 0x73, 0x75, 0xB6, 0x95, 0x6F, 0xB5, 0x00, 0x53, 0xD0, 0x48, -+ 0xA4, 0x79, 0x14, 0x95, 0x82, 0x4A, 0x34, 0x80, 0xA5, 0xB7, 0x83, 0x02, 0x56, 0x09, 0x6F, 0xDD, 0x72, 0x5C, 0x30, 0x8B, 0x3B, 0xE8, 0x4A, 0x07, 0xF3, 0x63, 0x2E, 0x24, 0x95, 0xC6, 0x2E, 0x96, -+ 0x39, 0x9D, 0x80, 0xBF, 0xA7, 0x45, 0xB9, 0x84, 0x1A, 0x18, 0x33, 0xBC, 0x1D, 0x27, 0xBA, 0x45, 0xA5, 0x21, 0x68, 0xEE, 0x59, 0x00, 0x6C, 0x3A, 0x3A, 0x8C, 0x4A, 0x5A, 0x4F, 0x50, 0x88, 0xFC, -+ 0x73, 0x71, 0x81, 0xAB, 0x51, 0x96, 0xF7, 0xB1, 0xB4, 0x9A, 0x2E, 0xD8, 0x13, 0x13, 0x4E, 0x11, 0x2F, 0x73, 0x0B, 0x99, 0x1C, 0x54, 0xA7, 0x19, 0x6B, 0xCF, 0x5F, 0xC7, 0x6E, 0x13, 0x4C, 0x58, -+ 0x43, 0xE1, 0x69, 0x88, 0x51, 0xB2, 0xF8, 0x69, 0xAF, 0xAF, 0xB0, 0x27, 0x87, 0xD9, 0xC2, 0xF1, 0x36, 0x90, 0x2D, 0xC7, 0xA7, 0xF3, 0xD6, 0x21, 0x56, 0xD1, 0x5E, 0xC3, 0x09, 0x56, 0x40, 0x92, -+ 0xC6, 0x1D, 0x83, 0xB0, 0x98, 0x6C, 0x48, 0x40, 0x99, 0x81, 0xF3, 0xC1, 0x86, 0x88, 0x0A, 0x2F, 0x63, 0xD5, 0x86, 0x0A, 0xB6, 0x01, 0xDE, 0xAC, 0x2B, 0x6B, 0xA1, 0xB4, 0x28, 0x17, 0x9D, 0x73, -+ 0x53, 0x3E, 0xB7, 0xA3, 0xA5, 0x11, 0x3B, 0x85, 0x61, 0xF1, 0x0B, 0x45, 0xC3, 0xCD, 0xE2, 0x82, 0xB6, 0xEA, 0xD6, 0xAB, 0x6C, 0x60, 0x4F, 0x09, 0xC1, 0x7B, 0xFD, 0xA0, 0x83, 0x13, 0xA3, 0x26, -+ 0x07, 0x67, 0x5A, 0xDF, 0x64, 0x31, 0xCA, 0x87, 0x18, 0xE9, 0xC4, 0x3A, 0x73, 0x73, 0x32, 0x27, 0xE7, 0x3B, 0xC6, 0x1A, 0xC8, 0x45, 0xBA, 0x90, 0x77, 0x55, 0xCE, 0xC6, 0x89, 0x25, 0xE5, 0xE2, -+ 0xBF, 0xE9, 0x12, 0x95, 0x9D, 0xB8, 0x6F, 0xBF, 0xE2, 0x15, 0x6F, 0xD5, 0xBB, 0xDB, 0xF0, 0xC9, 0xDF, 0x8B, 0x53, 0x02, 0xAA, 0x8D, 0x90, 0xA2, 0x2D, 0x12, 0x27, 0x0E, 0x00, 0x65, 0x51, 0xE4, -+ 0x76, 0x7E, 0x45, 0x26, 0x8E, 0xD9, 0x69, 0x26, 0x54, 0x44, 0x78, 0x11, 0xEA, 0xB8, 0x4F, 0x04, 0x99, 0xA8, 0xA5, 0x8C, 0xF7, 0xC0, 0x4A, 0x59, 0x56, 0x98, 0x52, 0x80, 0x45, 0xF2, 0x98, 0x97, -+ 0xC8, 0xFA, 0x96, 0xD0, 0x6C, 0xCE, 0x51, 0xE6, 0xAF, 0xEA, 0xC4, 0x33, 0x95, 0x89, 0xC9, 0x41, 0xC8, 0x55, 0x63, 0xD7, 0x0F, 0xAC, 0xE1, 0x92, 0x88, 0x94, 0xBA, 0xC0, 0x36, 0x19, 0xDF, 0xF4, -+ 0xBE, 0x3F, 0x43, 0x14, 0xA3, 0xF7, 0x35, 0x1A, 0x09, 0xA4, 0x86, 0xB5, 0x04, 0x1E, 0x7C, 0xB2, 0xDA, 0x8B, 0x96, 0xBC, 0x66, 0x26, 0xA4, 0x93, 0x17, 0x35, 0x7C, 0x41, 0x52, 0xA5, 0x1B, 0xA3, -+ 0xC2, 0x8C, 0x7E, 0x0C, 0x9D, 0xB4, 0x1A, 0x06, 0xA2, 0x82, 0x90, 0xF2, 0x18, 0x73, 0x11, 0x07, 0xC9, 0x54, 0xD8, 0xA6, 0x6F, 0x80, 0x1D, 0x7D, 0xE1, 0x2A, 0x03, 0x71, 0x16, 0x99, 0x0B, 0x6C, -+ 0x53, 0xC1, 0x29, 0xF1, 0x85, 0xC3, 0x45, 0xF2, 0x7E, 0x51, 0x8B, 0x2D, 0x5A, 0x91, 0x25, 0xA0, 0x70, 0x76, 0xD9, 0x91, 0xB7, 0xDA, 0xC7, 0xCC, 0x65, 0xA8, 0x56, 0x2E, 0xFB, 0xCC, 0x32, 0xA9, -+ 0xCA, 0x4A, 0xD9, 0x02, 0x63, 0xB0, 0x4A, 0x4F, 0x90, 0x36, 0x11, 0x6C, 0x7B, 0x97, 0x48, 0x04, 0x96, 0x31, 0x75, 0x75, 0x65, 0x0D, 0xCC, 0x21, 0x52, 0xB5, 0xBC, 0x0E, 0x74, 0x40, 0x7E, 0x12, -+ 0xFA, 0x8E, 0x4F, 0xFC, 0xCC, 0xFF, 0x76, 0xC0, 0x1A, 0x97, 0x4B, 0xD6, 0x11, 0x02, 0xE1, 0xF5, 0x29, 0x64, 0x96, 0xC7, 0x1D, 0x07, 0x64, 0xE1, 0x32, 0x29, 0xFF, 0xE7, 0x84, 0x6F, 0x33, 0x6E, -+ 0x34, 0xCA, 0xC9, 0x04, 0xCA, 0x56, 0x70, 0xF8, 0xCD, 0x50, 0x52, 0x42, 0x7A, 0x79, 0xC0, 0x91, 0xA9, 0x71, 0x21, 0x0C, 0x5C, 0xFF, 0x66, 0x7A, 0xAC, 0x24, 0x93, 0x66, 0xE1, 0x0D, 0x2B, 0x11, -+ 0x37, 0x6C, 0xA3, 0x9D, 0x93, 0x52, 0x04, 0xB1, 0x2C, 0xC5, 0x85, 0xE9, 0x40, 0x54, 0x03, 0x62, 0x5F, 0xB3, 0x2C, 0xB5, 0xE5, 0xC3, 0x1B, 0x62, 0x34, 0x81, 0x60, 0x51, 0x5C, 0xCC, 0x4F, 0xDA, -+ 0xF5, 0x70, 0x2D, 0x6B, 0xAB, 0x5C, 0x37, 0x3D, 0xB6, 0xF3, 0x50, 0xD3, 0xE6, 0x3A, 0x5C, 0xE3, 0xCA, 0x54, 0x74, 0xA0, 0xCF, 0x15, 0x67, 0x04, 0x2C, 0xA3, 0x25, 0x89, 0x86, 0xFF, 0x75, 0xBD, -+ 0xFC, 0xD9, 0x29, 0xE6, 0x46, 0x2F, 0x36, 0xBC, 0xCC, 0x3F, 0x5A, 0x93, 0x35, 0x2A, 0x2B, 0x36, 0xCB, 0x16, 0x2E, 0x18, 0x74, 0xC7, 0x42, 0x87, 0x0A, 0x97, 0xB1, 0x67, 0xA0, 0x50, 0x37, 0x36, -+ 0x24, 0xEA, 0xEB, 0x7E, 0x50, 0x73, 0x25, 0x6B, 0x72, 0x11, 0xB2, 0xD9, 0x4B, 0x84, 0x06, 0xCD, 0x6C, 0x95, 0x33, 0xB1, 0x53, 0x64, 0x08, 0xAB, 0x0A, 0x29, 0xE5, 0xB2, 0xF0, 0xC9, 0x54, 0xEC, -+ 0xE0, 0x0F, 0xBB, 0xEB, 0x17, 0x6D, 0x72, 0x4D, 0x4C, 0xF4, 0x43, 0xCF, 0x70, 0x20, 0xD5, 0xFA, 0x70, 0x94, 0xCC, 0x1B, 0x1B, 0xE6, 0x97, 0xBA, 0xD3, 0x36, 0x74, 0xE4, 0x09, 0x9E, 0xC7, 0xBB, -+ 0x18, 0xF4, 0x57, 0x71, 0x28, 0xCD, 0xD9, 0x7C, 0xCD, 0x6D, 0x44, 0x62, 0xE5, 0x60, 0x7C, 0x51, 0x2A, 0x3E, 0x36, 0x24, 0x8E, 0x3D, 0xDA, 0xA2, 0xEC, 0x08, 0x9A, 0xEF, 0xC4, 0xCE, 0x48, 0x5C, -+ 0x49, 0xD7, 0xB0, 0x09, 0xC8, 0xD6, 0x31, 0x15, 0xFC, 0x81, 0xFF, 0x3A, 0x62, 0xD1, 0x5A, 0x88, 0x44, 0x1C, 0x03, 0xEA, 0x1C, 0x2E, 0x72, 0xC4, 0x88, 0x39, 0xFC, 0x6A, 0xD7, 0x3A, 0x30, 0x74, -+ 0x4A, 0x62, 0xB7, 0xB2, 0x16, 0x45, 0xA6, 0xAF, 0x7D, 0x61, 0xB6, 0x38, 0x3B, 0x22, 0x1E, 0x21, 0x90, 0x55, 0x57, 0xCD, 0x29, 0xD9, 0x24, 0xA6, 0x09, 0x86, 0xC5, 0x11, 0xC1, 0xEB, 0xBC, 0x31, -+ 0x6D, 0x56, 0x30, 0xA2, 0x41, 0x43, 0x23, 0xF5, 0x3A, 0xD5, 0x59, 0x94, 0xF6, 0xB3, 0x65, 0x39, 0xF9, 0xC4, 0x40, 0x75, 0xA5, 0x33, 0xE4, 0x81, 0xC0, 0x84, 0x45, 0xD9, 0xCA, 0x9E, 0x9D, 0x38, -+ 0x21, 0x19, 0x38, 0x8B, 0xD1, 0xD7, 0x50, 0x52, 0x21, 0x7A, 0x94, 0x4C, 0xCC, 0x7B, 0xE9, 0x09, 0xE2, 0x19, 0x71, 0x1F, 0xCC, 0x79, 0x24, 0x76, 0x92, 0x13, 0xA1, 0x92, 0x53, 0x4A, 0x55, 0x80, -+ 0x08, 0x15, 0x7A, 0x39, 0x6E, 0xDF, 0xF4, 0x80, 0xCC, 0x3B, 0x52, 0x0F, 0xF8, 0x18, 0xB3, 0x8B, 0x13, 0x5C, 0x18, 0xA8, 0x0D, 0x51, 0x05, 0xE6, 0x78, 0x83, 0x6C, 0x39, 0x5C, 0x28, 0xE9, 0x2F, -+ 0x7A, 0x3C, 0x4E, 0x93, 0xC0, 0x10, 0x35, 0xF3, 0x41, 0x11, 0xCC, 0x49, 0x02, 0xD0, 0xC0, 0x33, 0xA6, 0x3F, 0x23, 0x6A, 0x71, 0xDA, 0x97, 0x4A, 0x6F, 0x40, 0x4F, 0x7A, 0xA7, 0xB5, 0xE5, 0x82, -+ 0xC7, 0x58, 0x14, 0x2F, 0xC1, 0x82, 0x6B, 0xBA, 0x98, 0xB2, 0x7D, 0x57, 0xC2, 0xE2, 0x10, 0x3E, 0x10, 0xE3, 0x0D, 0x32, 0x79, 0x7B, 0x96, 0x77, 0x14, 0xD1, 0x56, 0x61, 0x11, 0x13, 0x71, 0xA2, -+ 0xD9, 0xC5, 0x39, 0x98, 0x12, 0x46, 0x46, 0x22, 0x63, 0x5B, 0x44, 0x21, 0x26, 0xB0, 0x98, 0x36, 0xB0, 0x81, 0x82, 0x72, 0x47, 0xD0, 0x54, 0x22, 0x97, 0x2B, 0xD0, 0x32, 0x0D, 0x8F, 0x42, 0xBF, -+ 0x57, 0xE3, 0x49, 0x46, 0x12, 0x34, 0xE4, 0xD9, 0x4F, 0x01, 0x18, 0x50, 0xBA, 0xB5, 0xC0, 0x49, 0xB6, 0x2A, 0x59, 0x43, 0x38, 0x66, 0xFC, 0xCE, 0x69, 0x66, 0x49, 0x5C, 0x26, 0x5C, 0x47, 0x65, -+ 0xA5, 0x6C, 0x06, 0xB9, 0xFC, 0x42, 0x76, 0x54, 0x87, 0x85, 0xF4, 0x68, 0x28, 0xCA, 0x60, 0x2D, 0xC6, 0xD0, 0x54, 0x1F, 0x25, 0x07, 0x89, 0xC4, 0x9E, 0x8B, 0x06, 0x55, 0x9C, 0x43, 0x44, 0x60, -+ 0xA8, 0x43, 0x80, 0x98, 0x54, 0xE5, 0xB4, 0x6E, 0x89, 0x38, 0x9F, 0x10, 0xF4, 0x89, 0x66, 0x74, 0x91, 0xC1, 0x93, 0x5E, 0x8A, 0xFB, 0x9E, 0xB4, 0x71, 0x8F, 0x86, 0xAC, 0x45, 0x89, 0x32, 0xBC, -+ 0xF3, 0x3C, 0x9A, 0xBE, 0xCB, 0x2D, 0xC0, 0xC0, 0x93, 0xA7, 0xE8, 0x1D, 0xA0, 0x32, 0x7B, 0xB6, 0x37, 0x52, 0x81, 0x05, 0xC3, 0x58, 0xEB, 0x76, 0x8D, 0x32, 0x3A, 0x37, 0xD4, 0x0A, 0x8C, 0x19, -+ 0x9B, 0x7C, 0x4B, 0xB1, 0xD7, 0x2B, 0x72, 0xB6, 0x90, 0xB3, 0x6D, 0xD2, 0x7A, 0x93, 0x55, 0x19, 0x1B, 0x3C, 0x3A, 0xA6, 0x75, 0xA7, 0xE6, 0xF8, 0x55, 0xEB, 0x50, 0x5F, 0x57, 0x98, 0x65, 0xDB, -+ 0xD8, 0x91, 0x05, 0x65, 0x50, 0x5E, 0x7C, 0x0F, 0xDD, 0x54, 0x5C, 0xBB, 0xB8, 0x71, 0xB0, 0xB2, 0xCC, 0x01, 0x25, 0xB7, 0x4F, 0x6B, 0x0C, 0x9B, 0x79, 0x67, 0x0A, 0x62, 0x02, 0xD1, 0xB9, 0x15, -+ 0x4A, 0xC7, 0x76, 0x6B, 0x19, 0x19, 0xC4, 0x89, 0x58, 0x90, 0x86, 0xAD, 0x8B, 0x45, 0xBE, 0x0D, 0x79, 0xC9, 0x76, 0xC3, 0xC3, 0x9D, 0x6B, 0x25, 0x21, 0x3B, 0xB0, 0xB7, 0x8A, 0x57, 0x50, 0xE6, -+ 0xA8, 0xEB, 0x34, 0x33, 0x0B, 0xB3, 0xCF, 0xF2, 0xB1, 0xC0, 0x72, 0x2A, 0xC8, 0x83, 0xB0, 0x48, 0xF4, 0xB8, 0xCD, 0x06, 0x19, 0x6D, 0xA8, 0xAA, 0x8B, 0x05, 0xDA, 0x42, 0x67, 0x55, 0x2B, 0xF8, -+ 0x7A, 0xBC, 0xA5, 0x12, 0x4D, 0xC3, 0x58, 0xA8, 0x38, 0x10, 0x40, 0xE9, 0xB8, 0x1F, 0xB0, 0x84, 0x43, 0x15, 0x02, 0x15, 0xD6, 0x92, 0x23, 0x28, 0x00, 0x0A, 0xC0, 0xB7, 0x88, 0xB1, 0x21, 0x93, -+ 0x1A, 0x26, 0x7D, 0x80, 0x61, 0x9C, 0xE7, 0xD2, 0x9C, 0xD7, 0x6B, 0x60, 0xCF, 0x65, 0x83, 0xDC, 0xE8, 0xCE, 0xBC, 0x49, 0x01, 0x85, 0x73, 0x6C, 0x81, 0x8B, 0x25, 0xAD, 0x26, 0x0B, 0x66, 0x7B, -+ 0x1F, 0xFD, 0x46, 0x20, 0x6D, 0x01, 0x04, 0x55, 0x3A, 0xA9, 0xFB, 0x30, 0x45, 0x54, 0xA2, 0x1C, 0x32, 0x72, 0x44, 0xCE, 0x78, 0xAF, 0xDB, 0xD3, 0xB4, 0x62, 0x36, 0x1B, 0xB0, 0x68, 0xA1, 0x55, -+ 0x63, 0x64, 0x09, 0xF5, 0x74, 0xC5, 0x71, 0x65, 0x72, 0xE2, 0xA5, 0xF2, 0xA4, 0xB0, 0x4F, 0xB8, 0xAA, 0xD1, 0x23, 0x66, 0x84, 0x84, 0x17, 0x87, 0x56, 0x2A, 0xAF, 0x46, 0xC2, 0xC0, 0xDA, 0x46, -+ 0x65, 0xEA, 0xFD, 0x46, 0x5F, 0xC6, 0x4A, 0x0C, 0x5F, 0x8F, 0x3F, 0x90, 0x03, 0x48, 0x94, 0x15, 0x89, 0x9D, 0x59, 0xA5, 0x43, 0xD8, 0x20, 0x8C, 0x54, 0xA3, 0x16, 0x65, 0x29, 0xB5, 0x39, 0x22, -+ }, -+ .pkcs8_len = 0, -+ .spki_len = 0, -+ .secret_len = 32, -+ .secret = { -+ 0xfb, 0xc4, 0xee, 0xa6, 0x91, 0xee, 0xf4, 0xc1, 0xb4, 0x76, 0xa2, 0x99, 0x36, 0x45, 0x3f, 0x4c, 0x3d, 0x48, 0x81, 0x79, 0x4e, 0xe3, 0x7b, 0xaf, 0x0f, 0xd7, 0x28, 0x40, 0x74, 0x3e, 0x7b, 0x7d, -+ }, -+ .cipher_len = 1568, -+ .cipher = { -+ 0xc2, 0x7f, 0x01, 0x24, 0x4d, 0x4b, 0x3f, 0xb2, 0x1d, 0x84, 0x37, 0xf8, 0x40, 0x01, 0x7c, 0xcc, 0xb7, 0xb7, 0xda, 0xd5, 0xfb, 0x2b, 0x47, 0xb9, 0xb5, 0x7e, 0xae, 0x4f, 0x77, 0xd0, 0xa4, 0x55, -+ 0x5e, 0x50, 0x92, 0xa2, 0x49, 0x69, 0xf2, 0x27, 0x3e, 0x97, 0x02, 0x88, 0x4a, 0x08, 0x47, 0x7b, 0x56, 0x8d, 0x80, 0x17, 0xf1, 0x38, 0x75, 0xd1, 0xf5, 0xa6, 0xd4, 0x13, 0xbd, 0xd2, 0x28, 0xeb, -+ 0xb1, 0x12, 0x60, 0xf7, 0xf4, 0x52, 0x9c, 0xbc, 0xeb, 0xf9, 0xb6, 0x86, 0x2e, 0x8a, 0x84, 0x12, 0x35, 0xf2, 0x9f, 0x60, 0xf8, 0xe8, 0x41, 0x74, 0x34, 0x18, 0x9d, 0x57, 0x99, 0x20, 0xfe, 0x6b, -+ 0x98, 0xdb, 0xe7, 0x13, 0xec, 0x16, 0xc3, 0xfd, 0xdb, 0xb8, 0x1e, 0x73, 0x1d, 0x95, 0x6b, 0x06, 0xdb, 0x49, 0x80, 0xf4, 0x9c, 0x26, 0xf2, 0x86, 0x61, 0xff, 0x9c, 0xe6, 0xe9, 0xd8, 0x61, 0xec, -+ 0x7a, 0x09, 0x84, 0x0c, 0x19, 0xde, 0x0e, 0xb6, 0x72, 0x20, 0x71, 0xf8, 0xaa, 0x48, 0x36, 0x2d, 0x2f, 0xf1, 0x27, 0xa4, 0xae, 0x46, 0xf9, 0x93, 0x37, 0x82, 0x68, 0x32, 0xad, 0xac, 0x23, 0x91, -+ 0x65, 0xf2, 0x25, 0x85, 0xbb, 0x57, 0xa8, 0x89, 0xc9, 0xc6, 0xaf, 0x82, 0x36, 0x7e, 0xc7, 0xb0, 0x72, 0x37, 0xc0, 0x53, 0x5b, 0x31, 0xb3, 0x8c, 0x1c, 0xac, 0x40, 0xac, 0x1a, 0x0c, 0x95, 0x8a, -+ 0x18, 0x87, 0xfe, 0x34, 0x71, 0x10, 0x83, 0xfd, 0x37, 0xaf, 0x4b, 0xc5, 0xb1, 0xb4, 0xe1, 0xe2, 0xee, 0x28, 0x43, 0x69, 0x3d, 0x57, 0xdd, 0x1e, 0x65, 0x7d, 0x4c, 0x24, 0xed, 0x20, 0x7e, 0xe7, -+ 0x12, 0xad, 0x2a, 0x08, 0x91, 0x45, 0x81, 0x80, 0xe9, 0xe8, 0xbd, 0x36, 0xfc, 0x14, 0xd8, 0xd6, 0x33, 0xf5, 0xb7, 0x41, 0xce, 0xa1, 0x08, 0xd2, 0xd4, 0xfd, 0x75, 0x1c, 0x5a, 0x67, 0xb0, 0x5e, -+ 0x30, 0x32, 0x4a, 0x67, 0xe9, 0xdd, 0x75, 0xc9, 0x93, 0xd4, 0xfe, 0x08, 0x54, 0xfb, 0x78, 0xdf, 0x6f, 0x3d, 0x45, 0xa2, 0xa9, 0xc8, 0xe4, 0x25, 0x10, 0xf0, 0xc3, 0xd8, 0x02, 0x03, 0x71, 0x2f, -+ 0xb3, 0x9e, 0x36, 0xb5, 0xdd, 0x8b, 0x5c, 0xcd, 0x3d, 0x09, 0xce, 0xa9, 0x42, 0x03, 0xba, 0xf8, 0x72, 0x08, 0x45, 0x71, 0xec, 0xf9, 0x78, 0xbd, 0xb9, 0x54, 0x8a, 0x25, 0x0e, 0xe4, 0x90, 0x7b, -+ 0x4a, 0xfc, 0x31, 0xb2, 0x1f, 0x31, 0x9a, 0xe4, 0xbf, 0x0a, 0xb1, 0x9c, 0xbd, 0x11, 0xeb, 0xe1, 0x33, 0x59, 0xd1, 0xaa, 0xf4, 0xfd, 0xb8, 0x3b, 0x65, 0x02, 0x50, 0x14, 0x22, 0xa5, 0xfe, 0x50, -+ 0xa8, 0xa3, 0x8e, 0xf5, 0x3d, 0xeb, 0x60, 0x3c, 0xe2, 0x3f, 0xd9, 0x79, 0x2b, 0x04, 0xde, 0xb3, 0x78, 0x71, 0x9a, 0xb7, 0x69, 0xaa, 0x58, 0x97, 0xcc, 0x65, 0xe9, 0xb1, 0x63, 0x04, 0xce, 0xa5, -+ 0x37, 0xe1, 0x76, 0x2b, 0xd8, 0xc9, 0xb1, 0x09, 0xda, 0x14, 0xa8, 0x29, 0xe6, 0x41, 0x9f, 0x1b, 0x9f, 0xf8, 0xa4, 0x66, 0xe2, 0xa6, 0xd6, 0xb3, 0x4d, 0x74, 0xff, 0xe1, 0xa5, 0x92, 0x99, 0x18, -+ 0x17, 0x59, 0xd0, 0xd3, 0x87, 0xfc, 0xed, 0x1d, 0x90, 0x7f, 0x5f, 0xb5, 0xed, 0xb4, 0x26, 0xc0, 0x51, 0x30, 0xe6, 0xca, 0x59, 0x09, 0xb2, 0x76, 0xd1, 0xa4, 0x7e, 0x71, 0x3c, 0x30, 0xd9, 0x96, -+ 0xda, 0x5e, 0x8e, 0x57, 0xe7, 0x12, 0xc7, 0x77, 0x38, 0xf2, 0x1b, 0xe7, 0x4b, 0x42, 0xb5, 0x18, 0x43, 0x2d, 0xad, 0x7e, 0xf7, 0x3e, 0x6a, 0x8c, 0x43, 0xaa, 0x9a, 0x62, 0x69, 0x94, 0xd7, 0x1a, -+ 0x31, 0x81, 0x28, 0x51, 0x80, 0x6e, 0x9f, 0xbb, 0x1f, 0x2b, 0xd3, 0x56, 0xce, 0xa3, 0x9d, 0x95, 0xf2, 0xf8, 0x7c, 0xa3, 0x0d, 0xaf, 0x6f, 0x27, 0x33, 0xf7, 0xbc, 0xe7, 0x9f, 0x8d, 0xa9, 0x95, -+ 0x05, 0x1e, 0x49, 0xa7, 0xfd, 0x22, 0x64, 0x37, 0x9c, 0x0a, 0x75, 0x2e, 0x55, 0x3e, 0xd6, 0x08, 0xeb, 0x93, 0x44, 0xc7, 0x94, 0x98, 0xf6, 0x91, 0x53, 0x85, 0x64, 0xc5, 0x4f, 0x82, 0x3b, 0xb7, -+ 0x0b, 0x12, 0xb5, 0x9e, 0x88, 0x24, 0xb4, 0xa4, 0xbb, 0x1e, 0xea, 0xc6, 0x7c, 0x81, 0x0c, 0xcc, 0x2e, 0x23, 0x74, 0x47, 0x83, 0xce, 0x95, 0x80, 0x97, 0xf7, 0xa6, 0xbc, 0x6e, 0x1f, 0x17, 0x59, -+ 0x75, 0x21, 0xb8, 0xc3, 0xd1, 0xee, 0x85, 0x96, 0xa2, 0x9f, 0xfe, 0xf1, 0x4e, 0xd9, 0x16, 0x32, 0x09, 0x7c, 0x16, 0xd5, 0x06, 0x5d, 0xb2, 0xa9, 0x63, 0xca, 0x73, 0x83, 0xac, 0x60, 0xad, 0x8f, -+ 0x4e, 0xd0, 0xd4, 0x1b, 0xd0, 0xbc, 0x3b, 0xaf, 0x19, 0x8c, 0x51, 0x25, 0xae, 0x91, 0x15, 0x06, 0xc9, 0x26, 0xd4, 0xc1, 0x17, 0x85, 0xfd, 0x61, 0x82, 0x29, 0xbf, 0xf5, 0x4c, 0xb1, 0x16, 0x1a, -+ 0xb8, 0xfc, 0x7b, 0x51, 0xda, 0xec, 0xcc, 0xd9, 0x13, 0x1e, 0xdf, 0x43, 0x7d, 0x8e, 0x52, 0x8e, 0x75, 0x81, 0xb8, 0x2c, 0x66, 0x0e, 0x8c, 0x5e, 0x25, 0x12, 0xd5, 0xf6, 0x38, 0x0a, 0x52, 0x8f, -+ 0x2a, 0xe4, 0xae, 0xe2, 0x63, 0xdb, 0x96, 0x76, 0x02, 0x4b, 0xc7, 0xad, 0x39, 0x8b, 0xc9, 0xcd, 0xda, 0xd6, 0x07, 0x96, 0x8b, 0xba, 0xb2, 0x23, 0x29, 0xe0, 0x4d, 0x6e, 0x77, 0x1f, 0xe6, 0x47, -+ 0x10, 0x7a, 0xc4, 0x66, 0x67, 0xa5, 0x1a, 0xd5, 0x58, 0xa6, 0x35, 0xf0, 0x26, 0x95, 0x1f, 0x4f, 0x48, 0xc8, 0x88, 0xd7, 0x01, 0xc2, 0xaf, 0xf4, 0xea, 0xb4, 0xe3, 0x4a, 0xdb, 0x15, 0x9a, 0xbb, -+ 0xbf, 0xab, 0xe5, 0x9b, 0x3f, 0x4c, 0xf8, 0xaa, 0xb1, 0xdd, 0x66, 0x1e, 0x4d, 0xd0, 0xc5, 0x55, 0x8d, 0xc0, 0x59, 0x20, 0x2e, 0xe6, 0x46, 0x25, 0xa3, 0xb4, 0xb9, 0x2f, 0xf4, 0xd1, 0x56, 0x97, -+ 0xf1, 0x6c, 0x18, 0xd4, 0xd2, 0x33, 0x8c, 0xfb, 0x49, 0x6e, 0x07, 0x03, 0x52, 0x68, 0x71, 0xc9, 0x78, 0x4b, 0xac, 0x8e, 0xba, 0xe8, 0x27, 0x9c, 0xf2, 0x71, 0x3a, 0xf3, 0xcc, 0x2d, 0x44, 0x0e, -+ 0x8c, 0xd2, 0x00, 0x86, 0x7b, 0x85, 0x18, 0xaa, 0xd3, 0xb9, 0xe2, 0x85, 0x02, 0x7d, 0xa0, 0xad, 0xd9, 0xf0, 0x22, 0x9e, 0xd4, 0xe8, 0x42, 0xd0, 0x5e, 0x22, 0x6a, 0xda, 0xc1, 0x3a, 0x39, 0x52, -+ 0xe3, 0x83, 0x5c, 0x8f, 0xb0, 0xa4, 0x28, 0x74, 0xc9, 0x4c, 0x66, 0x1b, 0x39, 0xdf, 0x7b, 0x72, 0x88, 0x7d, 0x22, 0x7d, 0x58, 0x3c, 0xe6, 0xb3, 0xbd, 0x65, 0xf7, 0x95, 0x10, 0x7b, 0xd0, 0x93, -+ 0x38, 0x9b, 0xfe, 0xfd, 0x17, 0x68, 0xa5, 0x71, 0x6f, 0x68, 0x5b, 0x17, 0x4e, 0xd2, 0x3e, 0x94, 0xa5, 0x95, 0x6e, 0x29, 0xbb, 0x2d, 0xdb, 0x79, 0x21, 0x03, 0xe6, 0x2f, 0x68, 0x92, 0x8a, 0xcc, -+ 0x60, 0x3e, 0xec, 0x2f, 0xf5, 0x6d, 0xb1, 0x4c, 0x08, 0xb7, 0xcb, 0xe4, 0xe2, 0xb4, 0xf2, 0xe0, 0xea, 0xee, 0x54, 0x16, 0x2e, 0x95, 0xbb, 0x35, 0xef, 0x36, 0x30, 0x3e, 0xe3, 0xe6, 0xcc, 0x61, -+ 0x06, 0x13, 0x73, 0x87, 0x6f, 0x7a, 0x09, 0x6a, 0x8a, 0xf5, 0x7d, 0x78, 0x2f, 0x8c, 0x82, 0x03, 0xde, 0x93, 0x42, 0x3a, 0x37, 0x91, 0x22, 0xfe, 0x7d, 0xad, 0x77, 0x0c, 0x36, 0x90, 0xf9, 0x78, -+ 0x22, 0x84, 0x60, 0xd0, 0x25, 0xce, 0x93, 0xb1, 0xb3, 0x36, 0xc5, 0x73, 0xe4, 0xe5, 0x58, 0x40, 0xea, 0x65, 0xcf, 0xdd, 0x61, 0x22, 0xc6, 0x72, 0xc9, 0x12, 0xf5, 0x29, 0x39, 0xd9, 0xea, 0x5b, -+ 0xe0, 0x62, 0x10, 0xf5, 0xe7, 0xed, 0xb6, 0x5b, 0x66, 0x94, 0x5d, 0x70, 0x56, 0xf5, 0x59, 0xa7, 0xd6, 0x92, 0x53, 0xf4, 0xbd, 0xbc, 0x57, 0x9d, 0xe9, 0x64, 0xf3, 0xe9, 0x3a, 0x86, 0xfa, 0x38, -+ 0xb6, 0xa2, 0xc0, 0xb5, 0x43, 0x38, 0xdc, 0xe0, 0x93, 0xf0, 0xb4, 0x68, 0x4e, 0xe3, 0x61, 0x44, 0x9f, 0x16, 0xc2, 0x79, 0xa7, 0x2b, 0x77, 0x31, 0xe4, 0x46, 0x00, 0xa7, 0x02, 0x77, 0x68, 0xfd, -+ 0xd0, 0xf6, 0x43, 0xed, 0x10, 0x06, 0x4b, 0x98, 0xa9, 0xda, 0x03, 0x2f, 0x1f, 0x5d, 0xea, 0xd3, 0x11, 0xe1, 0x77, 0x33, 0x50, 0x94, 0xdb, 0x4e, 0x38, 0x51, 0x4e, 0xae, 0x15, 0xa8, 0xf8, 0xec, -+ 0xf2, 0xf2, 0x41, 0x4e, 0x37, 0x8e, 0xfb, 0xf9, 0x97, 0xb1, 0x06, 0x6b, 0x6f, 0x69, 0xd6, 0x69, 0x09, 0xa4, 0x7e, 0x29, 0x8a, 0x7f, 0xec, 0x96, 0x1a, 0x83, 0x78, 0x2e, 0x0e, 0x47, 0x0f, 0xe0, -+ 0x71, 0xde, 0xcf, 0x4b, 0x26, 0xac, 0xa6, 0xed, 0x68, 0x83, 0x59, 0xe1, 0x08, 0x50, 0x55, 0xfd, 0x2b, 0x5a, 0xe9, 0xf4, 0x91, 0x87, 0x49, 0x89, 0x7a, 0xf1, 0x33, 0x60, 0x60, 0x53, 0xd5, 0xf6, -+ 0xa8, 0x52, 0x8c, 0xcb, 0x31, 0xab, 0x7f, 0x3f, 0x2d, 0x89, 0xa9, 0x5c, 0x5f, 0x05, 0xb1, 0x57, 0x00, 0xe5, 0x32, 0xad, 0x81, 0xd5, 0x9d, 0x9d, 0xb8, 0xa2, 0xc2, 0x9c, 0xac, 0x93, 0x6e, 0x3f, -+ 0x33, 0xdf, 0xe2, 0x4b, 0x0b, 0x1b, 0x71, 0x90, 0x2d, 0xc9, 0xc3, 0x0e, 0xc8, 0xc7, 0x0b, 0xda, 0xba, 0x48, 0x4f, 0xcd, 0x2b, 0x94, 0x6d, 0x73, 0x5f, 0x16, 0xee, 0xad, 0x04, 0x03, 0x1c, 0xaf, -+ 0xde, 0x9e, 0xe0, 0x16, 0x96, 0xec, 0x9f, 0x0a, 0x8d, 0x5f, 0x36, 0xb6, 0x9c, 0x64, 0x2f, 0xfd, 0x0a, 0xd0, 0xd2, 0x54, 0x4f, 0x5e, 0x7f, 0xd8, 0x9a, 0x80, 0x49, 0x8e, 0xf6, 0x8e, 0x18, 0x16, -+ 0x17, 0xfa, 0xd4, 0x1e, 0x0b, 0xd5, 0x9b, 0xaa, 0xff, 0xee, 0xfe, 0x2f, 0x99, 0x72, 0x4c, 0x71, 0x9d, 0x47, 0xa2, 0xec, 0xba, 0x72, 0x1d, 0x76, 0xf2, 0x37, 0xeb, 0xa7, 0x3d, 0xb4, 0x7d, 0x88, -+ 0xb6, 0x99, 0xe3, 0x58, 0x2b, 0x07, 0x3c, 0x7e, 0xad, 0x2a, 0x5b, 0x3c, 0xf0, 0x24, 0x46, 0x63, 0x96, 0xf9, 0xf2, 0x82, 0x6c, 0xb7, 0x54, 0xf6, 0x60, 0x18, 0xe9, 0x50, 0x3f, 0x4a, 0xd1, 0xf9, -+ 0xd9, 0x21, 0x21, 0xaa, 0x99, 0x56, 0x50, 0x60, 0x51, 0xd5, 0x96, 0xff, 0xd4, 0x67, 0xe1, 0xaa, 0x8d, 0x96, 0x4c, 0x17, 0x67, 0xc9, 0x25, 0xb4, 0x68, 0xbb, 0xc9, 0x85, 0x06, 0x00, 0xc8, 0x43, -+ 0x49, 0x05, 0x41, 0xe8, 0x55, 0x5a, 0x3d, 0x8b, 0xd9, 0xf1, 0x87, 0x91, 0xef, 0x9e, 0xbd, 0x35, 0x94, 0xe7, 0x4c, 0x1f, 0xe3, 0xd3, 0xb8, 0x09, 0x40, 0xa8, 0xa0, 0x79, 0xf8, 0xd2, 0xca, 0x8d, -+ 0x30, 0x13, 0x4f, 0xc6, 0x6f, 0x87, 0x00, 0x81, 0x26, 0xe4, 0x3b, 0xd0, 0x6e, 0xb6, 0xe4, 0x1c, 0x3a, 0x70, 0xfa, 0x47, 0x39, 0x31, 0x9b, 0xf1, 0xa9, 0x32, 0xf0, 0x2c, 0x30, 0x64, 0x56, 0x56, -+ 0x0c, 0xda, 0x44, 0xdd, 0xac, 0x43, 0xed, 0x6d, 0x90, 0x04, 0x45, 0xf5, 0xbf, 0x85, 0xbb, 0x0c, 0xe3, 0x25, 0x94, 0x74, 0x36, 0xe0, 0xd0, 0x68, 0x5e, 0x41, 0xb1, 0x6b, 0xc7, 0x16, 0x95, 0x18, -+ 0x25, 0x9e, 0x57, 0x34, 0xfd, 0xce, 0x08, 0x0f, 0xfe, 0x85, 0x19, 0x1b, 0x1d, 0x8d, 0x8d, 0xe4, 0xdb, 0x48, 0x14, 0x3f, 0xb5, 0x64, 0x03, 0x8a, 0xce, 0x80, 0x10, 0x4d, 0x3a, 0x8d, 0x07, 0x12, -+ 0x45, 0xe2, 0xaa, 0x56, 0xc7, 0x19, 0x33, 0xf4, 0xdc, 0xf9, 0x25, 0xee, 0xe8, 0x44, 0xc8, 0x0f, 0xdd, 0xf3, 0x25, 0x1f, 0x74, 0x00, 0x6a, 0x23, 0x41, 0x33, 0x18, 0xbb, 0xfd, 0x2e, 0xd9, 0xe0, -+ 0x53, 0x51, 0xb5, 0xaa, 0xeb, 0xcc, 0x77, 0xcf, 0xac, 0x8d, 0x5f, 0x03, 0x64, 0x23, 0x1a, 0x50, 0xea, 0x86, 0x47, 0xc7, 0x2f, 0x71, 0x3e, 0x81, 0x7a, 0x20, 0x75, 0x32, 0x30, 0x29, 0xe3, 0xb8, -+ 0x8b, 0x72, 0x44, 0x22, 0x64, 0xc5, 0x97, 0xb0, 0xf1, 0xfc, 0x09, 0xf9, 0x40, 0x1c, 0xe8, 0x8a, 0xc9, 0x7c, 0x55, 0x22, 0xa5, 0x63, 0x64, 0x52, 0x3c, 0x37, 0xfe, 0xa2, 0xd6, 0xbd, 0x06, 0xb2, -+ }, -+ }, -+ { -+ .name = "Kyber Round 2, 1024 KAT 1 (PKCS#8/SPKI)", -+ .version = 0, -+ .keyform = 0, -+ .pk_len = 0, -+ .sk_len = 0, -+ .pkcs8_len = 4849, -+ .pkcs8 = { -+ 0x30, 0x82, 0x12, 0xed, 0x02, 0x01, 0x00, 0x30, 0x0f, 0x06, 0x0b, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x02, 0x82, 0x0b, 0x05, 0x04, 0x04, 0x05, 0x00, 0x04, 0x82, 0x12, 0xd5, 0x30, 0x82, 0x12, 0xd1, -+ 0x02, 0x01, 0x00, 0x03, 0x82, 0x0c, 0x61, 0x00, 0x07, 0x63, 0x8f, 0xb6, 0x98, 0x68, 0xf3, 0xd3, 0x20, 0xe5, 0x86, 0x2b, 0xd9, 0x69, 0x33, 0xfe, 0xb3, 0x11, 0xb3, 0x62, 0x09, 0x3c, 0x9b, 0x5d, -+ 0x50, 0x17, 0x0b, 0xce, 0xd4, 0x3f, 0x1b, 0x53, 0x6d, 0x9a, 0x20, 0x4b, 0xb1, 0xf2, 0x26, 0x95, 0x95, 0x0b, 0xa1, 0xf2, 0xa9, 0xe8, 0xeb, 0x82, 0x8b, 0x28, 0x44, 0x88, 0x76, 0x0b, 0x3f, 0xc8, -+ 0x4f, 0xab, 0xa0, 0x42, 0x75, 0xd5, 0x62, 0x8e, 0x39, 0xc5, 0xb2, 0x47, 0x13, 0x74, 0x28, 0x3c, 0x50, 0x32, 0x99, 0xc0, 0xab, 0x49, 0xb6, 0x6b, 0x8b, 0xbb, 0x56, 0xa4, 0x18, 0x66, 0x24, 0xf9, -+ 0x19, 0xa2, 0xba, 0x59, 0xbb, 0x08, 0xd8, 0x55, 0x18, 0x80, 0xc2, 0xbe, 0xfc, 0x4f, 0x87, 0xf2, 0x5f, 0x59, 0xab, 0x58, 0x7a, 0x79, 0xc3, 0x27, 0xd7, 0x92, 0xd5, 0x4c, 0x97, 0x4a, 0x69, 0x26, -+ 0x2f, 0xf8, 0xa7, 0x89, 0x38, 0x28, 0x9e, 0x9a, 0x87, 0xb6, 0x88, 0xb0, 0x83, 0xe0, 0x59, 0x5f, 0xe2, 0x18, 0xb6, 0xbb, 0x15, 0x05, 0x94, 0x1c, 0xe2, 0xe8, 0x1a, 0x5a, 0x64, 0xc5, 0xaa, 0xc6, -+ 0x04, 0x17, 0x25, 0x69, 0x85, 0x34, 0x9e, 0xe4, 0x7a, 0x52, 0x42, 0x0a, 0x5f, 0x97, 0x47, 0x7b, 0x72, 0x36, 0xac, 0x76, 0xbc, 0x70, 0xe8, 0x28, 0x87, 0x29, 0x28, 0x7e, 0xe3, 0xe3, 0x4a, 0x3d, -+ 0xbc, 0x36, 0x83, 0xc0, 0xb7, 0xb1, 0x00, 0x29, 0xfc, 0x20, 0x34, 0x18, 0x53, 0x7e, 0x74, 0x66, 0xba, 0x63, 0x85, 0xa8, 0xff, 0x30, 0x1e, 0xe1, 0x27, 0x08, 0xf8, 0x2a, 0xaa, 0x1e, 0x38, 0x0f, -+ 0xc7, 0xa8, 0x8f, 0x8f, 0x20, 0x5a, 0xb7, 0xe8, 0x8d, 0x7e, 0x95, 0x95, 0x2a, 0x55, 0xba, 0x20, 0xd0, 0x9b, 0x79, 0xa4, 0x71, 0x41, 0xd6, 0x2b, 0xf6, 0xeb, 0x7d, 0xd3, 0x07, 0xb0, 0x8e, 0xca, -+ 0x13, 0xa5, 0xbc, 0x5f, 0x6b, 0x68, 0x58, 0x1c, 0x68, 0x65, 0xb2, 0x7b, 0xbc, 0xdd, 0xab, 0x14, 0x2f, 0x4b, 0x2c, 0xbf, 0xf4, 0x88, 0xc8, 0xa2, 0x27, 0x05, 0xfa, 0xa9, 0x8a, 0x2b, 0x9e, 0xea, -+ 0x35, 0x30, 0xc7, 0x66, 0x62, 0x33, 0x5c, 0xc7, 0xea, 0x3a, 0x00, 0x77, 0x77, 0x25, 0xeb, 0xcc, 0xcd, 0x2a, 0x46, 0x36, 0xb2, 0xd9, 0x12, 0x2f, 0xf3, 0xab, 0x77, 0x12, 0x3c, 0xe0, 0x88, 0x3c, -+ 0x19, 0x11, 0x11, 0x5e, 0x50, 0xc9, 0xe8, 0xa9, 0x41, 0x94, 0xe4, 0x8d, 0xd0, 0xd0, 0x9c, 0xff, 0xb3, 0xad, 0xcd, 0x2c, 0x1e, 0x92, 0x43, 0x09, 0x03, 0xd0, 0x7a, 0xdb, 0xf0, 0x05, 0x32, 0x03, -+ 0x15, 0x75, 0xaa, 0x7f, 0x9e, 0x7b, 0x5a, 0x1f, 0x33, 0x62, 0xde, 0xc9, 0x36, 0xd4, 0x04, 0x3c, 0x05, 0xf2, 0x47, 0x6c, 0x07, 0x57, 0x8b, 0xc9, 0xcb, 0xaf, 0x2a, 0xb4, 0xe3, 0x82, 0x72, 0x7a, -+ 0xd4, 0x16, 0x86, 0xa9, 0x6b, 0x25, 0x48, 0x82, 0x0b, 0xb0, 0x3b, 0x32, 0xf1, 0x1b, 0x28, 0x11, 0xad, 0x62, 0xf4, 0x89, 0xe9, 0x51, 0x63, 0x2a, 0xba, 0x0d, 0x1d, 0xf8, 0x96, 0x80, 0xcc, 0x8a, -+ 0x8b, 0x53, 0xb4, 0x81, 0xd9, 0x2a, 0x68, 0xd7, 0x0b, 0x4e, 0xa1, 0xc3, 0xa6, 0xa5, 0x61, 0xc0, 0x69, 0x28, 0x82, 0xb5, 0xca, 0x8c, 0xc9, 0x42, 0xa8, 0xd4, 0x95, 0xaf, 0xcb, 0x06, 0xde, 0x89, -+ 0x49, 0x8f, 0xb9, 0x35, 0xb7, 0x75, 0x90, 0x8f, 0xe7, 0xa0, 0x3e, 0x32, 0x4d, 0x54, 0xcc, 0x19, 0xd4, 0xe1, 0xaa, 0xbd, 0x35, 0x93, 0xb3, 0x8b, 0x19, 0xee, 0x13, 0x88, 0xfe, 0x49, 0x2b, 0x43, -+ 0x12, 0x7e, 0x5a, 0x50, 0x42, 0x53, 0x78, 0x6a, 0x0d, 0x69, 0xad, 0x32, 0x60, 0x1c, 0x28, 0xe2, 0xc8, 0x85, 0x04, 0xa5, 0xba, 0x59, 0x97, 0x06, 0x02, 0x3a, 0x61, 0x36, 0x3e, 0x17, 0xc6, 0xb9, -+ 0xbb, 0x59, 0xbd, 0xc6, 0x97, 0x45, 0x2c, 0xd0, 0x59, 0x45, 0x19, 0x83, 0xd7, 0x38, 0xca, 0x3f, 0xd0, 0x34, 0xe3, 0xf5, 0x98, 0x88, 0x54, 0xca, 0x05, 0x03, 0x1d, 0xb0, 0x96, 0x11, 0x49, 0x89, -+ 0x88, 0x19, 0x7c, 0x6b, 0x30, 0xd2, 0x58, 0xdf, 0xe2, 0x62, 0x65, 0x54, 0x1c, 0x89, 0xa4, 0xb3, 0x1d, 0x68, 0x64, 0xe9, 0x38, 0x9b, 0x03, 0xcb, 0x74, 0xf7, 0xec, 0x43, 0x23, 0xfb, 0x94, 0x21, -+ 0xa4, 0xb9, 0x79, 0x0a, 0x26, 0xd1, 0x7b, 0x03, 0x98, 0xa2, 0x67, 0x67, 0x35, 0x09, 0x09, 0xf8, 0x4d, 0x57, 0xb6, 0x69, 0x4d, 0xf8, 0x30, 0x66, 0x4c, 0xa8, 0xb3, 0xc3, 0xc0, 0x3e, 0xd2, 0xae, -+ 0x67, 0xb8, 0x90, 0x06, 0x86, 0x8a, 0x68, 0x52, 0x7c, 0xcd, 0x66, 0x64, 0x59, 0xab, 0x7f, 0x05, 0x66, 0x71, 0x00, 0x0c, 0x61, 0x64, 0xd3, 0xa7, 0xf2, 0x66, 0xa1, 0x4d, 0x97, 0xcb, 0xd7, 0x00, -+ 0x4d, 0x6c, 0x92, 0xca, 0xca, 0x77, 0x0b, 0x84, 0x4a, 0x4f, 0xa9, 0xb1, 0x82, 0xe7, 0xb1, 0x8c, 0xa8, 0x85, 0x08, 0x2a, 0xc5, 0x64, 0x6f, 0xcb, 0x4a, 0x14, 0xe1, 0x68, 0x5f, 0xeb, 0x0c, 0x9c, -+ 0xe3, 0x37, 0x2a, 0xb9, 0x53, 0x65, 0xc0, 0x4f, 0xd8, 0x30, 0x84, 0xf8, 0x0a, 0x23, 0xff, 0x10, 0xa0, 0x5b, 0xf1, 0x5f, 0x7f, 0xa5, 0xac, 0xc6, 0xc0, 0xcb, 0x46, 0x2c, 0x33, 0xca, 0x52, 0x4f, -+ 0xa6, 0xb8, 0xbb, 0x35, 0x90, 0x43, 0xba, 0x68, 0x60, 0x9e, 0xaa, 0x25, 0x36, 0xe8, 0x1d, 0x08, 0x46, 0x3b, 0x19, 0x65, 0x3b, 0x54, 0x35, 0xba, 0x94, 0x6c, 0x9a, 0xdd, 0xeb, 0x20, 0x2b, 0x04, -+ 0xb0, 0x31, 0xcc, 0x96, 0x0d, 0xcc, 0x12, 0xe4, 0x51, 0x8d, 0x42, 0x8b, 0x32, 0xb2, 0x57, 0xa4, 0xfc, 0x73, 0x13, 0xd3, 0xa7, 0x98, 0x0d, 0x80, 0x08, 0x2e, 0x93, 0x4f, 0x9d, 0x95, 0xc3, 0x2b, -+ 0x0a, 0x01, 0x91, 0xa2, 0x36, 0x04, 0x38, 0x4d, 0xd9, 0xe0, 0x79, 0xbb, 0xba, 0xa2, 0x66, 0xd1, 0x4c, 0x3f, 0x75, 0x6b, 0x9f, 0x21, 0x33, 0x10, 0x74, 0x33, 0xa4, 0xe8, 0x3f, 0xa7, 0x18, 0x72, -+ 0x82, 0xa8, 0x09, 0x20, 0x3a, 0x4f, 0xaf, 0x84, 0x18, 0x51, 0x83, 0x3d, 0x12, 0x1a, 0xc3, 0x83, 0x84, 0x3a, 0x5e, 0x55, 0xbc, 0x23, 0x81, 0x42, 0x5e, 0x16, 0xc7, 0xdb, 0x4c, 0xc9, 0xab, 0x5c, -+ 0x1b, 0x0d, 0x91, 0xa4, 0x7e, 0x2b, 0x8d, 0xe0, 0xe5, 0x82, 0xc8, 0x6b, 0x6b, 0x0d, 0x90, 0x7b, 0xb3, 0x60, 0xb9, 0x7f, 0x40, 0xab, 0x5d, 0x03, 0x8f, 0x6b, 0x75, 0xc8, 0x14, 0xb2, 0x7d, 0x9b, -+ 0x96, 0x8d, 0x41, 0x98, 0x32, 0xbc, 0x8c, 0x2b, 0xee, 0x60, 0x5e, 0xf6, 0xe5, 0x05, 0x9d, 0x33, 0x10, 0x0d, 0x90, 0x48, 0x5d, 0x37, 0x84, 0x50, 0x01, 0x42, 0x21, 0x73, 0x6c, 0x07, 0x40, 0x7c, -+ 0xac, 0x26, 0x04, 0x08, 0xaa, 0x64, 0x92, 0x66, 0x19, 0x78, 0x8b, 0x86, 0x01, 0xc2, 0xa7, 0x52, 0xd1, 0xa6, 0xcb, 0xf8, 0x20, 0xd7, 0xc7, 0xa0, 0x47, 0x16, 0x20, 0x32, 0x25, 0xb3, 0x89, 0x5b, -+ 0x93, 0x42, 0xd1, 0x47, 0xa8, 0x18, 0x5c, 0xfc, 0x1b, 0xb6, 0x5b, 0xa0, 0x6b, 0x41, 0x42, 0x33, 0x99, 0x03, 0xc0, 0xac, 0x46, 0x51, 0x38, 0x5b, 0x45, 0xd9, 0x8a, 0x8b, 0x19, 0xd2, 0x8c, 0xd6, -+ 0xba, 0xb0, 0x88, 0x78, 0x7f, 0x7e, 0xe1, 0xb1, 0x24, 0x61, 0x76, 0x6b, 0x43, 0xcb, 0xcc, 0xb9, 0x64, 0x34, 0x42, 0x7d, 0x93, 0xc0, 0x65, 0x55, 0x06, 0x88, 0xf6, 0x94, 0x8e, 0xd1, 0xb5, 0x47, -+ 0x5a, 0x42, 0x5f, 0x1b, 0x85, 0x20, 0x9d, 0x06, 0x1c, 0x08, 0xb5, 0x6c, 0x1c, 0xc0, 0x69, 0xf6, 0xc0, 0xa7, 0xc6, 0xf2, 0x93, 0x58, 0xca, 0xb9, 0x11, 0x08, 0x77, 0x32, 0xa6, 0x49, 0xd2, 0x7c, -+ 0x9b, 0x98, 0xf9, 0xa4, 0x88, 0x79, 0x38, 0x7d, 0x9b, 0x00, 0xc2, 0x59, 0x59, 0xa7, 0x16, 0x54, 0xd6, 0xf6, 0xa9, 0x46, 0x16, 0x45, 0x13, 0xe4, 0x7a, 0x75, 0xd0, 0x05, 0x98, 0x6c, 0x23, 0x63, -+ 0xc0, 0x9f, 0x6b, 0x53, 0x7e, 0xca, 0x78, 0xb9, 0x30, 0x3a, 0x5f, 0xa4, 0x57, 0x60, 0x8a, 0x58, 0x6a, 0x65, 0x3a, 0x34, 0x7d, 0xb0, 0x4d, 0xfc, 0xc1, 0x91, 0x75, 0xb3, 0xa3, 0x01, 0x17, 0x25, -+ 0x36, 0x06, 0x2a, 0x65, 0x8a, 0x95, 0x27, 0x75, 0x70, 0xc8, 0x85, 0x2c, 0xa8, 0x97, 0x3f, 0x4a, 0xe1, 0x23, 0xa3, 0x34, 0x04, 0x7d, 0xd7, 0x11, 0xc8, 0x92, 0x7a, 0x63, 0x4a, 0x03, 0x38, 0x8a, -+ 0x52, 0x7b, 0x03, 0x4b, 0xf7, 0xa8, 0x17, 0x0f, 0xa7, 0x02, 0xc1, 0xf7, 0xc2, 0x3e, 0xc3, 0x2d, 0x18, 0xa2, 0x37, 0x48, 0x90, 0xbe, 0x9c, 0x78, 0x7a, 0x94, 0x09, 0xc8, 0x2d, 0x19, 0x2c, 0x4b, -+ 0xb7, 0x05, 0xa2, 0xf9, 0x96, 0xce, 0x40, 0x5d, 0x85, 0xa4, 0xc1, 0xa1, 0xab, 0x9b, 0x6a, 0xeb, 0x49, 0xcc, 0xe1, 0xc2, 0xf8, 0xa9, 0x7c, 0x35, 0x16, 0xc7, 0x2a, 0x00, 0xa4, 0x62, 0x63, 0xba, -+ 0xa6, 0x96, 0xbf, 0x25, 0x72, 0x77, 0x19, 0xc3, 0x21, 0x64, 0x23, 0x61, 0x8f, 0xf3, 0x33, 0x80, 0x93, 0x4a, 0x6c, 0x10, 0x54, 0x5c, 0x4c, 0x5c, 0x51, 0x55, 0xb1, 0x24, 0x86, 0x18, 0x1f, 0xc7, -+ 0xa2, 0x31, 0x98, 0x73, 0x97, 0x8b, 0x6a, 0x2a, 0x67, 0x49, 0x0f, 0x82, 0x56, 0xbd, 0x21, 0x96, 0xfe, 0x17, 0x92, 0xa4, 0xc0, 0x00, 0x77, 0xb8, 0x12, 0xea, 0xe8, 0xbe, 0xd3, 0x57, 0x24, 0x99, -+ 0x68, 0x4a, 0xb3, 0x37, 0x18, 0x76, 0x76, 0x1e, 0x45, 0x0c, 0x9f, 0x9d, 0x27, 0x68, 0xa3, 0x68, 0x06, 0xd7, 0xab, 0x20, 0x46, 0xc9, 0x1f, 0x17, 0x59, 0x9e, 0x9a, 0xc5, 0x92, 0x99, 0x08, 0x08, -+ 0xdc, 0xd7, 0xb4, 0xd0, 0x91, 0x90, 0x72, 0xf1, 0x4e, 0xc3, 0x61, 0x77, 0x3b, 0x72, 0x52, 0x44, 0x4c, 0x32, 0x3c, 0x30, 0x83, 0x26, 0xf4, 0xa3, 0x0f, 0x86, 0x80, 0xd2, 0xf7, 0x48, 0xf5, 0x6a, -+ 0x13, 0x2b, 0x82, 0x67, 0x4e, 0xd0, 0x18, 0x46, 0x20, 0xb8, 0x2a, 0xd2, 0xcb, 0x18, 0x2c, 0x97, 0xb4, 0x81, 0x62, 0x66, 0x47, 0x49, 0x12, 0x90, 0xa0, 0x11, 0xcc, 0x73, 0x82, 0x86, 0x85, 0xa8, -+ 0xc3, 0x67, 0xa5, 0xb9, 0xcf, 0x8d, 0x62, 0x1b, 0x0d, 0x5c, 0x1e, 0xff, 0x03, 0x17, 0x27, 0x58, 0xbd, 0x00, 0x49, 0x78, 0xc2, 0x51, 0xcd, 0x51, 0x34, 0x22, 0x28, 0x98, 0x9c, 0xae, 0x63, 0x32, -+ 0xac, 0x48, 0x64, 0x37, 0xcb, 0x5c, 0x57, 0xd4, 0x30, 0x74, 0x62, 0x86, 0x52, 0x53, 0xbe, 0x21, 0x7b, 0x35, 0x15, 0xc7, 0x3d, 0xf4, 0x05, 0xb7, 0xf2, 0x82, 0x17, 0xad, 0x0b, 0x8c, 0xf6, 0x0c, -+ 0x2f, 0xff, 0xaa, 0x0a, 0x00, 0x48, 0xb1, 0xfb, 0x4a, 0xcd, 0xcd, 0xc3, 0x8b, 0x52, 0x50, 0xcf, 0xec, 0x35, 0x6a, 0x6d, 0xe2, 0x6c, 0xfa, 0x7a, 0x58, 0x8f, 0xdc, 0x86, 0xf9, 0x8c, 0x85, 0x4a, -+ 0xc6, 0x4c, 0x7b, 0xfa, 0xa9, 0x6f, 0x5a, 0x32, 0xcc, 0x06, 0x10, 0x93, 0x4b, 0xaa, 0x6a, 0x58, 0x6b, 0x9a, 0x20, 0x54, 0xf1, 0x3b, 0xa2, 0x74, 0x17, 0x4a, 0xa0, 0xd2, 0xb3, 0xa8, 0x1b, 0x96, -+ 0xa9, 0x40, 0x66, 0x6f, 0x78, 0x9b, 0x5a, 0x6b, 0xcd, 0xc0, 0xa6, 0xa0, 0x17, 0x8a, 0x0c, 0x9a, 0x02, 0x57, 0x8a, 0x49, 0x3f, 0x6e, 0xea, 0x0d, 0x2e, 0x6c, 0x13, 0x95, 0x1c, 0x9f, 0x24, 0x9a, -+ 0x5e, 0x8d, 0xd7, 0x1d, 0xd4, 0x9a, 0x74, 0x2d, 0x45, 0x1f, 0x1a, 0xbb, 0xa1, 0x9a, 0xf8, 0xc5, 0x47, 0x85, 0x5e, 0x0a, 0xfc, 0x72, 0x8e, 0x90, 0xab, 0xb4, 0x99, 0xc9, 0xbe, 0xeb, 0x76, 0x6f, -+ 0x47, 0x29, 0xcd, 0xa2, 0x22, 0x63, 0xe3, 0x24, 0xda, 0x18, 0x71, 0x2d, 0x31, 0x6e, 0x98, 0xdc, 0x7a, 0xc8, 0xc3, 0xca, 0x47, 0x37, 0x0e, 0xbd, 0x77, 0x0c, 0xe3, 0x2b, 0x3b, 0xd4, 0xb1, 0xa0, -+ 0xc9, 0x52, 0x9a, 0xc6, 0xec, 0x8e, 0xe0, 0x28, 0xb1, 0xcd, 0xb2, 0x65, 0x1c, 0xb5, 0xa6, 0xbb, 0x3c, 0x0c, 0x6d, 0xf1, 0x24, 0x0a, 0x3b, 0x91, 0x4b, 0x56, 0x56, 0xc0, 0xdc, 0x51, 0xc2, 0xb9, -+ 0x1b, 0xfc, 0xbc, 0x37, 0xa4, 0x66, 0x02, 0x87, 0xd4, 0x4f, 0x81, 0xf8, 0x53, 0xc7, 0xf4, 0x9a, 0x6d, 0x06, 0x03, 0xd6, 0xd7, 0x23, 0xcb, 0xec, 0x01, 0x5f, 0xbc, 0x43, 0x4a, 0x38, 0x24, 0x1c, -+ 0x10, 0x9c, 0x7e, 0xd5, 0xb1, 0xcc, 0x46, 0x1a, 0x2c, 0xcb, 0x9a, 0xb7, 0x14, 0x0f, 0x19, 0xf3, 0x7a, 0x13, 0xbb, 0x70, 0x1e, 0x14, 0x2b, 0xd5, 0x4b, 0x64, 0xec, 0x6b, 0x76, 0xfe, 0xc3, 0x3b, -+ 0x69, 0xc2, 0x91, 0x8c, 0xb0, 0x17, 0xc4, 0x14, 0x34, 0x23, 0x00, 0x9a, 0x3c, 0x07, 0xb5, 0xc1, 0x81, 0xb0, 0xc1, 0xeb, 0x49, 0x4a, 0x62, 0xab, 0xc8, 0x39, 0x13, 0x97, 0x08, 0x9e, 0xa6, 0x64, -+ 0x09, 0x67, 0xc1, 0x20, 0x49, 0x84, 0xcd, 0x48, 0x4c, 0xcc, 0xb0, 0x0a, 0x9a, 0x17, 0xd0, 0x87, 0x21, 0x84, 0x28, 0xef, 0x3b, 0xb7, 0x08, 0x78, 0x3e, 0x12, 0x82, 0x71, 0x04, 0x41, 0x73, 0x75, -+ 0xb6, 0x95, 0x6f, 0xb5, 0x00, 0x53, 0xd0, 0x48, 0xa4, 0x79, 0x14, 0x95, 0x82, 0x4a, 0x34, 0x80, 0xa5, 0xb7, 0x83, 0x02, 0x56, 0x09, 0x6f, 0xdd, 0x72, 0x5c, 0x30, 0x8b, 0x3b, 0xe8, 0x4a, 0x07, -+ 0xf3, 0x63, 0x2e, 0x24, 0x95, 0xc6, 0x2e, 0x96, 0x39, 0x9d, 0x80, 0xbf, 0xa7, 0x45, 0xb9, 0x84, 0x1a, 0x18, 0x33, 0xbc, 0x1d, 0x27, 0xba, 0x45, 0xa5, 0x21, 0x68, 0xee, 0x59, 0x00, 0x6c, 0x3a, -+ 0x3a, 0x8c, 0x4a, 0x5a, 0x4f, 0x50, 0x88, 0xfc, 0x73, 0x71, 0x81, 0xab, 0x51, 0x96, 0xf7, 0xb1, 0xb4, 0x9a, 0x2e, 0xd8, 0x13, 0x13, 0x4e, 0x11, 0x2f, 0x73, 0x0b, 0x99, 0x1c, 0x54, 0xa7, 0x19, -+ 0x6b, 0xcf, 0x5f, 0xc7, 0x6e, 0x13, 0x4c, 0x58, 0x43, 0xe1, 0x69, 0x88, 0x51, 0xb2, 0xf8, 0x69, 0xaf, 0xaf, 0xb0, 0x27, 0x87, 0xd9, 0xc2, 0xf1, 0x36, 0x90, 0x2d, 0xc7, 0xa7, 0xf3, 0xd6, 0x21, -+ 0x56, 0xd1, 0x5e, 0xc3, 0x09, 0x56, 0x40, 0x92, 0xc6, 0x1d, 0x83, 0xb0, 0x98, 0x6c, 0x48, 0x40, 0x99, 0x81, 0xf3, 0xc1, 0x86, 0x88, 0x0a, 0x2f, 0x63, 0xd5, 0x86, 0x0a, 0xb6, 0x01, 0xde, 0xac, -+ 0x2b, 0x6b, 0xa1, 0xb4, 0x28, 0x17, 0x9d, 0x73, 0x53, 0x3e, 0xb7, 0xa3, 0xa5, 0x11, 0x3b, 0x85, 0x61, 0xf1, 0x0b, 0x45, 0xc3, 0xcd, 0xe2, 0x82, 0xb6, 0xea, 0xd6, 0xab, 0x6c, 0x60, 0x4f, 0x09, -+ 0xc1, 0x7b, 0xfd, 0xa0, 0x83, 0x13, 0xa3, 0x26, 0x07, 0x67, 0x5a, 0xdf, 0x64, 0x31, 0xca, 0x87, 0x18, 0xe9, 0xc4, 0x3a, 0x73, 0x73, 0x32, 0x27, 0xe7, 0x3b, 0xc6, 0x1a, 0xc8, 0x45, 0xba, 0x90, -+ 0x77, 0x55, 0xce, 0xc6, 0x89, 0x25, 0xe5, 0xe2, 0xbf, 0xe9, 0x12, 0x95, 0x9d, 0xb8, 0x6f, 0xbf, 0xe2, 0x15, 0x6f, 0xd5, 0xbb, 0xdb, 0xf0, 0xc9, 0xdf, 0x8b, 0x53, 0x02, 0xaa, 0x8d, 0x90, 0xa2, -+ 0x2d, 0x12, 0x27, 0x0e, 0x00, 0x65, 0x51, 0xe4, 0x76, 0x7e, 0x45, 0x26, 0x8e, 0xd9, 0x69, 0x26, 0x54, 0x44, 0x78, 0x11, 0xea, 0xb8, 0x4f, 0x04, 0x99, 0xa8, 0xa5, 0x8c, 0xf7, 0xc0, 0x4a, 0x59, -+ 0x56, 0x98, 0x52, 0x80, 0x45, 0xf2, 0x98, 0x97, 0xc8, 0xfa, 0x96, 0xd0, 0x6c, 0xce, 0x51, 0xe6, 0xaf, 0xea, 0xc4, 0x33, 0x95, 0x89, 0xc9, 0x41, 0xc8, 0x55, 0x63, 0xd7, 0x0f, 0xac, 0xe1, 0x92, -+ 0x88, 0x94, 0xba, 0xc0, 0x36, 0x19, 0xdf, 0xf4, 0xbe, 0x3f, 0x43, 0x14, 0xa3, 0xf7, 0x35, 0x1a, 0x09, 0xa4, 0x86, 0xb5, 0x04, 0x1e, 0x7c, 0xb2, 0xda, 0x8b, 0x96, 0xbc, 0x66, 0x26, 0xa4, 0x93, -+ 0x17, 0x35, 0x7c, 0x41, 0x52, 0xa5, 0x1b, 0xa3, 0xc2, 0x8c, 0x7e, 0x0c, 0x9d, 0xb4, 0x1a, 0x06, 0xa2, 0x82, 0x90, 0xf2, 0x18, 0x73, 0x11, 0x07, 0xc9, 0x54, 0xd8, 0xa6, 0x6f, 0x80, 0x1d, 0x7d, -+ 0xe1, 0x2a, 0x03, 0x71, 0x16, 0x99, 0x0b, 0x6c, 0x53, 0xc1, 0x29, 0xf1, 0x85, 0xc3, 0x45, 0xf2, 0x7e, 0x51, 0x8b, 0x2d, 0x5a, 0x91, 0x25, 0xa0, 0x70, 0x76, 0xd9, 0x91, 0xb7, 0xda, 0xc7, 0xcc, -+ 0x65, 0xa8, 0x56, 0x2e, 0xfb, 0xcc, 0x32, 0xa9, 0xca, 0x4a, 0xd9, 0x02, 0x63, 0xb0, 0x4a, 0x4f, 0x90, 0x36, 0x11, 0x6c, 0x7b, 0x97, 0x48, 0x04, 0x96, 0x31, 0x75, 0x75, 0x65, 0x0d, 0xcc, 0x21, -+ 0x52, 0xb5, 0xbc, 0x0e, 0x74, 0x40, 0x7e, 0x12, 0xfa, 0x8e, 0x4f, 0xfc, 0xcc, 0xff, 0x76, 0xc0, 0x1a, 0x97, 0x4b, 0xd6, 0x11, 0x02, 0xe1, 0xf5, 0x29, 0x64, 0x96, 0xc7, 0x1d, 0x07, 0x64, 0xe1, -+ 0x32, 0x29, 0xff, 0xe7, 0x84, 0x6f, 0x33, 0x6e, 0x34, 0xca, 0xc9, 0x04, 0xca, 0x56, 0x70, 0xf8, 0xcd, 0x50, 0x52, 0x42, 0x7a, 0x79, 0xc0, 0x91, 0xa9, 0x71, 0x21, 0x0c, 0x5c, 0xff, 0x66, 0x7a, -+ 0xac, 0x24, 0x93, 0x66, 0xe1, 0x0d, 0x2b, 0x11, 0x37, 0x6c, 0xa3, 0x9d, 0x93, 0x52, 0x04, 0xb1, 0x2c, 0xc5, 0x85, 0xe9, 0x40, 0x54, 0x03, 0x62, 0x5f, 0xb3, 0x2c, 0xb5, 0xe5, 0xc3, 0x1b, 0x62, -+ 0x34, 0x81, 0x60, 0x51, 0x5c, 0xcc, 0x4f, 0xda, 0xf5, 0x70, 0x2d, 0x6b, 0xab, 0x5c, 0x37, 0x3d, 0xb6, 0xf3, 0x50, 0xd3, 0xe6, 0x3a, 0x5c, 0xe3, 0xca, 0x54, 0x74, 0xa0, 0xcf, 0x15, 0x67, 0x04, -+ 0x2c, 0xa3, 0x25, 0x89, 0x86, 0xff, 0x75, 0xbd, 0xfc, 0xd9, 0x29, 0xe6, 0x46, 0x2f, 0x36, 0xbc, 0xcc, 0x3f, 0x5a, 0x93, 0x35, 0x2a, 0x2b, 0x36, 0xcb, 0x16, 0x2e, 0x18, 0x74, 0xc7, 0x42, 0x87, -+ 0x0a, 0x97, 0xb1, 0x67, 0xa0, 0x50, 0x37, 0x36, 0x24, 0xea, 0xeb, 0x7e, 0x50, 0x73, 0x25, 0x6b, 0x72, 0x11, 0xb2, 0xd9, 0x4b, 0x84, 0x06, 0xcd, 0x6c, 0x95, 0x33, 0xb1, 0x53, 0x64, 0x08, 0xab, -+ 0x0a, 0x29, 0xe5, 0xb2, 0xf0, 0xc9, 0x54, 0xec, 0xe0, 0x0f, 0xbb, 0xeb, 0x17, 0x6d, 0x72, 0x4d, 0x4c, 0xf4, 0x43, 0xcf, 0x70, 0x20, 0xd5, 0xfa, 0x70, 0x94, 0xcc, 0x1b, 0x1b, 0xe6, 0x97, 0xba, -+ 0xd3, 0x36, 0x74, 0xe4, 0x09, 0x9e, 0xc7, 0xbb, 0x18, 0xf4, 0x57, 0x71, 0x28, 0xcd, 0xd9, 0x7c, 0xcd, 0x6d, 0x44, 0x62, 0xe5, 0x60, 0x7c, 0x51, 0x2a, 0x3e, 0x36, 0x24, 0x8e, 0x3d, 0xda, 0xa2, -+ 0xec, 0x08, 0x9a, 0xef, 0xc4, 0xce, 0x48, 0x5c, 0x49, 0xd7, 0xb0, 0x09, 0xc8, 0xd6, 0x31, 0x15, 0xfc, 0x81, 0xff, 0x3a, 0x62, 0xd1, 0x5a, 0x88, 0x44, 0x1c, 0x03, 0xea, 0x1c, 0x2e, 0x72, 0xc4, -+ 0x88, 0x39, 0xfc, 0x6a, 0xd7, 0x3a, 0x30, 0x74, 0x4a, 0x62, 0xb7, 0xb2, 0x16, 0x45, 0xa6, 0xaf, 0x7d, 0x61, 0xb6, 0x38, 0x3b, 0x22, 0x1e, 0x21, 0x90, 0x55, 0x57, 0xcd, 0x29, 0xd9, 0x24, 0xa6, -+ 0x09, 0x86, 0xc5, 0x11, 0xc1, 0xeb, 0xbc, 0x31, 0x6d, 0x56, 0x30, 0xa2, 0x41, 0x43, 0x23, 0xf5, 0x3a, 0xd5, 0x59, 0x94, 0xf6, 0xb3, 0x65, 0x39, 0xf9, 0xc4, 0x40, 0x75, 0xa5, 0x33, 0xe4, 0x81, -+ 0xc0, 0x84, 0x45, 0xd9, 0xca, 0x9e, 0x9d, 0x38, 0x21, 0x19, 0x38, 0x8b, 0xd1, 0xd7, 0x50, 0x52, 0x21, 0x7a, 0x94, 0x4c, 0xcc, 0x7b, 0xe9, 0x09, 0xe2, 0x19, 0x71, 0x1f, 0xcc, 0x79, 0x24, 0x76, -+ 0x92, 0x13, 0xa1, 0x92, 0x53, 0x4a, 0x55, 0x80, 0x08, 0x15, 0x7a, 0x39, 0x6e, 0xdf, 0xf4, 0x80, 0xcc, 0x3b, 0x52, 0x0f, 0xf8, 0x18, 0xb3, 0x8b, 0x13, 0x5c, 0x18, 0xa8, 0x0d, 0x51, 0x05, 0xe6, -+ 0x78, 0x83, 0x6c, 0x39, 0x5c, 0x28, 0xe9, 0x2f, 0x7a, 0x3c, 0x4e, 0x93, 0xc0, 0x10, 0x35, 0xf3, 0x41, 0x11, 0xcc, 0x49, 0x02, 0xd0, 0xc0, 0x33, 0xa6, 0x3f, 0x23, 0x6a, 0x71, 0xda, 0x97, 0x4a, -+ 0x6f, 0x40, 0x4f, 0x7a, 0xa7, 0xb5, 0xe5, 0x82, 0xc7, 0x58, 0x14, 0x2f, 0xc1, 0x82, 0x6b, 0xba, 0x98, 0xb2, 0x7d, 0x57, 0xc2, 0xe2, 0x10, 0x3e, 0x10, 0xe3, 0x0d, 0x32, 0x79, 0x7b, 0x96, 0x77, -+ 0x14, 0xd1, 0x56, 0x61, 0x11, 0x13, 0x71, 0xa2, 0xd9, 0xc5, 0x39, 0x98, 0x12, 0x46, 0x46, 0x22, 0x63, 0x5b, 0x44, 0x21, 0x26, 0xb0, 0x98, 0x36, 0xb0, 0x81, 0x82, 0x72, 0x47, 0xd0, 0x54, 0x22, -+ 0x97, 0x2b, 0xd0, 0x32, 0x0d, 0x8f, 0x42, 0xbf, 0x57, 0xe3, 0x49, 0x46, 0x12, 0x34, 0xe4, 0xd9, 0x4f, 0x01, 0x18, 0x50, 0xba, 0xb5, 0xc0, 0x49, 0xb6, 0x2a, 0x59, 0x43, 0x38, 0x66, 0xfc, 0xce, -+ 0x69, 0x66, 0x49, 0x5c, 0x26, 0x5c, 0x47, 0x65, 0xa5, 0x6c, 0x06, 0xb9, 0xfc, 0x42, 0x76, 0x54, 0x87, 0x85, 0xf4, 0x68, 0x28, 0xca, 0x60, 0x2d, 0xc6, 0xd0, 0x54, 0x1f, 0x25, 0x07, 0x89, 0xc4, -+ 0x9e, 0x8b, 0x06, 0x55, 0x9c, 0x43, 0x44, 0x60, 0xa8, 0x43, 0x80, 0x98, 0x54, 0xe5, 0xb4, 0x6e, 0x89, 0x38, 0x9f, 0x10, 0xf4, 0x89, 0x66, 0x74, 0x91, 0xc1, 0x93, 0x5e, 0x8a, 0xfb, 0x9e, 0xb4, -+ 0x71, 0x8f, 0x86, 0xac, 0x45, 0x89, 0x32, 0xbc, 0xf3, 0x3c, 0x9a, 0xbe, 0xcb, 0x2d, 0xc0, 0xc0, 0x93, 0xa7, 0xe8, 0x1d, 0xa0, 0x32, 0x7b, 0xb6, 0x37, 0x52, 0x81, 0x05, 0xc3, 0x58, 0xeb, 0x76, -+ 0x8d, 0x32, 0x3a, 0x37, 0xd4, 0x0a, 0x8c, 0x19, 0x9b, 0x7c, 0x4b, 0xb1, 0xd7, 0x2b, 0x72, 0xb6, 0x90, 0xb3, 0x6d, 0xd2, 0x7a, 0x93, 0x55, 0x19, 0x1b, 0x3c, 0x3a, 0xa6, 0x75, 0xa7, 0xe6, 0xf8, -+ 0x55, 0xeb, 0x50, 0x5f, 0x57, 0x98, 0x65, 0xdb, 0xd8, 0x91, 0x05, 0x65, 0x50, 0x5e, 0x7c, 0x0f, 0xdd, 0x54, 0x5c, 0xbb, 0xb8, 0x71, 0xb0, 0xb2, 0xcc, 0x01, 0x25, 0xb7, 0x4f, 0x6b, 0x0c, 0x9b, -+ 0x79, 0x67, 0x0a, 0x62, 0x02, 0xd1, 0xb9, 0x15, 0x4a, 0xc7, 0x76, 0x6b, 0x19, 0x19, 0xc4, 0x89, 0x58, 0x90, 0x86, 0xad, 0x8b, 0x45, 0xbe, 0x0d, 0x79, 0xc9, 0x76, 0xc3, 0xc3, 0x9d, 0x6b, 0x25, -+ 0x21, 0x3b, 0xb0, 0xb7, 0x8a, 0x57, 0x50, 0xe6, 0xa8, 0xeb, 0x34, 0x33, 0x0b, 0xb3, 0xcf, 0xf2, 0xb1, 0xc0, 0x72, 0x2a, 0xc8, 0x83, 0xb0, 0x48, 0xf4, 0xb8, 0xcd, 0x06, 0x19, 0x6d, 0xa8, 0xaa, -+ 0x8b, 0x05, 0xda, 0x42, 0x67, 0x55, 0x2b, 0xf8, 0x7a, 0xbc, 0xa5, 0x12, 0x4d, 0xc3, 0x58, 0xa8, 0x38, 0x10, 0x40, 0xe9, 0xb8, 0x1f, 0xb0, 0x84, 0x43, 0x15, 0x02, 0x15, 0xd6, 0x92, 0x23, 0x28, -+ 0x00, 0x0a, 0xc0, 0xb7, 0x88, 0xb1, 0x21, 0x93, 0x1a, 0x26, 0x7d, 0x80, 0x61, 0x9c, 0xe7, 0xd2, 0x9c, 0xd7, 0x6b, 0x60, 0xcf, 0x65, 0x83, 0xdc, 0xe8, 0xce, 0xbc, 0x49, 0x01, 0x85, 0x73, 0x6c, -+ 0x81, 0x8b, 0x25, 0xad, 0x26, 0x0b, 0x66, 0x7b, 0x1f, 0xfd, 0x46, 0x20, 0x6d, 0x01, 0x04, 0x55, 0x3a, 0xa9, 0xfb, 0x30, 0x45, 0x54, 0xa2, 0x1c, 0x32, 0x72, 0x44, 0xce, 0x78, 0xaf, 0xdb, 0xd3, -+ 0xb4, 0x62, 0x36, 0x1b, 0xb0, 0x68, 0xa1, 0x55, 0x63, 0x64, 0x09, 0xf5, 0x74, 0xc5, 0x71, 0x65, 0x72, 0xe2, 0xa5, 0xf2, 0xa4, 0xb0, 0x4f, 0xb8, 0xaa, 0xd1, 0x23, 0x66, 0x84, 0x84, 0x17, 0x87, -+ 0x56, 0x2a, 0xaf, 0x46, 0xc2, 0xc0, 0xda, 0x46, 0x65, 0xea, 0xfd, 0x46, 0x5f, 0xc6, 0x4a, 0x0c, 0x5f, 0x8f, 0x3f, 0x90, 0x03, 0x48, 0x94, 0x15, 0x89, 0x9d, 0x59, 0xa5, 0x43, 0xd8, 0x20, 0x8c, -+ 0x54, 0xa3, 0x16, 0x65, 0x29, 0xb5, 0x39, 0x22, 0xa5, 0x89, 0x9a, 0x0b, 0xc4, 0x65, 0xee, 0x5f, 0xc2, 0xc0, 0x41, 0x55, 0x58, 0x2a, 0x40, 0xac, 0x70, 0x97, 0x61, 0xd2, 0xbe, 0x61, 0xfd, 0xc7, -+ 0x6c, 0x59, 0x30, 0x44, 0xce, 0xbc, 0xc7, 0xf2, 0x86, 0x26, 0xed, 0x79, 0xd4, 0x51, 0x14, 0x08, 0x00, 0xe0, 0x3b, 0x59, 0xb9, 0x56, 0xf8, 0x21, 0x0e, 0x55, 0x60, 0x67, 0x40, 0x7d, 0x13, 0xdc, -+ 0x90, 0xfa, 0x9e, 0x8b, 0x87, 0x2b, 0xfb, 0x8f, 0xa0, 0x82, 0x06, 0x65, 0x03, 0x82, 0x06, 0x61, 0x00, 0xda, 0x18, 0x71, 0x2d, 0x31, 0x6e, 0x98, 0xdc, 0x7a, 0xc8, 0xc3, 0xca, 0x47, 0x37, 0x0e, -+ 0xbd, 0x77, 0x0c, 0xe3, 0x2b, 0x3b, 0xd4, 0xb1, 0xa0, 0xc9, 0x52, 0x9a, 0xc6, 0xec, 0x8e, 0xe0, 0x28, 0xb1, 0xcd, 0xb2, 0x65, 0x1c, 0xb5, 0xa6, 0xbb, 0x3c, 0x0c, 0x6d, 0xf1, 0x24, 0x0a, 0x3b, -+ 0x91, 0x4b, 0x56, 0x56, 0xc0, 0xdc, 0x51, 0xc2, 0xb9, 0x1b, 0xfc, 0xbc, 0x37, 0xa4, 0x66, 0x02, 0x87, 0xd4, 0x4f, 0x81, 0xf8, 0x53, 0xc7, 0xf4, 0x9a, 0x6d, 0x06, 0x03, 0xd6, 0xd7, 0x23, 0xcb, -+ 0xec, 0x01, 0x5f, 0xbc, 0x43, 0x4a, 0x38, 0x24, 0x1c, 0x10, 0x9c, 0x7e, 0xd5, 0xb1, 0xcc, 0x46, 0x1a, 0x2c, 0xcb, 0x9a, 0xb7, 0x14, 0x0f, 0x19, 0xf3, 0x7a, 0x13, 0xbb, 0x70, 0x1e, 0x14, 0x2b, -+ 0xd5, 0x4b, 0x64, 0xec, 0x6b, 0x76, 0xfe, 0xc3, 0x3b, 0x69, 0xc2, 0x91, 0x8c, 0xb0, 0x17, 0xc4, 0x14, 0x34, 0x23, 0x00, 0x9a, 0x3c, 0x07, 0xb5, 0xc1, 0x81, 0xb0, 0xc1, 0xeb, 0x49, 0x4a, 0x62, -+ 0xab, 0xc8, 0x39, 0x13, 0x97, 0x08, 0x9e, 0xa6, 0x64, 0x09, 0x67, 0xc1, 0x20, 0x49, 0x84, 0xcd, 0x48, 0x4c, 0xcc, 0xb0, 0x0a, 0x9a, 0x17, 0xd0, 0x87, 0x21, 0x84, 0x28, 0xef, 0x3b, 0xb7, 0x08, -+ 0x78, 0x3e, 0x12, 0x82, 0x71, 0x04, 0x41, 0x73, 0x75, 0xb6, 0x95, 0x6f, 0xb5, 0x00, 0x53, 0xd0, 0x48, 0xa4, 0x79, 0x14, 0x95, 0x82, 0x4a, 0x34, 0x80, 0xa5, 0xb7, 0x83, 0x02, 0x56, 0x09, 0x6f, -+ 0xdd, 0x72, 0x5c, 0x30, 0x8b, 0x3b, 0xe8, 0x4a, 0x07, 0xf3, 0x63, 0x2e, 0x24, 0x95, 0xc6, 0x2e, 0x96, 0x39, 0x9d, 0x80, 0xbf, 0xa7, 0x45, 0xb9, 0x84, 0x1a, 0x18, 0x33, 0xbc, 0x1d, 0x27, 0xba, -+ 0x45, 0xa5, 0x21, 0x68, 0xee, 0x59, 0x00, 0x6c, 0x3a, 0x3a, 0x8c, 0x4a, 0x5a, 0x4f, 0x50, 0x88, 0xfc, 0x73, 0x71, 0x81, 0xab, 0x51, 0x96, 0xf7, 0xb1, 0xb4, 0x9a, 0x2e, 0xd8, 0x13, 0x13, 0x4e, -+ 0x11, 0x2f, 0x73, 0x0b, 0x99, 0x1c, 0x54, 0xa7, 0x19, 0x6b, 0xcf, 0x5f, 0xc7, 0x6e, 0x13, 0x4c, 0x58, 0x43, 0xe1, 0x69, 0x88, 0x51, 0xb2, 0xf8, 0x69, 0xaf, 0xaf, 0xb0, 0x27, 0x87, 0xd9, 0xc2, -+ 0xf1, 0x36, 0x90, 0x2d, 0xc7, 0xa7, 0xf3, 0xd6, 0x21, 0x56, 0xd1, 0x5e, 0xc3, 0x09, 0x56, 0x40, 0x92, 0xc6, 0x1d, 0x83, 0xb0, 0x98, 0x6c, 0x48, 0x40, 0x99, 0x81, 0xf3, 0xc1, 0x86, 0x88, 0x0a, -+ 0x2f, 0x63, 0xd5, 0x86, 0x0a, 0xb6, 0x01, 0xde, 0xac, 0x2b, 0x6b, 0xa1, 0xb4, 0x28, 0x17, 0x9d, 0x73, 0x53, 0x3e, 0xb7, 0xa3, 0xa5, 0x11, 0x3b, 0x85, 0x61, 0xf1, 0x0b, 0x45, 0xc3, 0xcd, 0xe2, -+ 0x82, 0xb6, 0xea, 0xd6, 0xab, 0x6c, 0x60, 0x4f, 0x09, 0xc1, 0x7b, 0xfd, 0xa0, 0x83, 0x13, 0xa3, 0x26, 0x07, 0x67, 0x5a, 0xdf, 0x64, 0x31, 0xca, 0x87, 0x18, 0xe9, 0xc4, 0x3a, 0x73, 0x73, 0x32, -+ 0x27, 0xe7, 0x3b, 0xc6, 0x1a, 0xc8, 0x45, 0xba, 0x90, 0x77, 0x55, 0xce, 0xc6, 0x89, 0x25, 0xe5, 0xe2, 0xbf, 0xe9, 0x12, 0x95, 0x9d, 0xb8, 0x6f, 0xbf, 0xe2, 0x15, 0x6f, 0xd5, 0xbb, 0xdb, 0xf0, -+ 0xc9, 0xdf, 0x8b, 0x53, 0x02, 0xaa, 0x8d, 0x90, 0xa2, 0x2d, 0x12, 0x27, 0x0e, 0x00, 0x65, 0x51, 0xe4, 0x76, 0x7e, 0x45, 0x26, 0x8e, 0xd9, 0x69, 0x26, 0x54, 0x44, 0x78, 0x11, 0xea, 0xb8, 0x4f, -+ 0x04, 0x99, 0xa8, 0xa5, 0x8c, 0xf7, 0xc0, 0x4a, 0x59, 0x56, 0x98, 0x52, 0x80, 0x45, 0xf2, 0x98, 0x97, 0xc8, 0xfa, 0x96, 0xd0, 0x6c, 0xce, 0x51, 0xe6, 0xaf, 0xea, 0xc4, 0x33, 0x95, 0x89, 0xc9, -+ 0x41, 0xc8, 0x55, 0x63, 0xd7, 0x0f, 0xac, 0xe1, 0x92, 0x88, 0x94, 0xba, 0xc0, 0x36, 0x19, 0xdf, 0xf4, 0xbe, 0x3f, 0x43, 0x14, 0xa3, 0xf7, 0x35, 0x1a, 0x09, 0xa4, 0x86, 0xb5, 0x04, 0x1e, 0x7c, -+ 0xb2, 0xda, 0x8b, 0x96, 0xbc, 0x66, 0x26, 0xa4, 0x93, 0x17, 0x35, 0x7c, 0x41, 0x52, 0xa5, 0x1b, 0xa3, 0xc2, 0x8c, 0x7e, 0x0c, 0x9d, 0xb4, 0x1a, 0x06, 0xa2, 0x82, 0x90, 0xf2, 0x18, 0x73, 0x11, -+ 0x07, 0xc9, 0x54, 0xd8, 0xa6, 0x6f, 0x80, 0x1d, 0x7d, 0xe1, 0x2a, 0x03, 0x71, 0x16, 0x99, 0x0b, 0x6c, 0x53, 0xc1, 0x29, 0xf1, 0x85, 0xc3, 0x45, 0xf2, 0x7e, 0x51, 0x8b, 0x2d, 0x5a, 0x91, 0x25, -+ 0xa0, 0x70, 0x76, 0xd9, 0x91, 0xb7, 0xda, 0xc7, 0xcc, 0x65, 0xa8, 0x56, 0x2e, 0xfb, 0xcc, 0x32, 0xa9, 0xca, 0x4a, 0xd9, 0x02, 0x63, 0xb0, 0x4a, 0x4f, 0x90, 0x36, 0x11, 0x6c, 0x7b, 0x97, 0x48, -+ 0x04, 0x96, 0x31, 0x75, 0x75, 0x65, 0x0d, 0xcc, 0x21, 0x52, 0xb5, 0xbc, 0x0e, 0x74, 0x40, 0x7e, 0x12, 0xfa, 0x8e, 0x4f, 0xfc, 0xcc, 0xff, 0x76, 0xc0, 0x1a, 0x97, 0x4b, 0xd6, 0x11, 0x02, 0xe1, -+ 0xf5, 0x29, 0x64, 0x96, 0xc7, 0x1d, 0x07, 0x64, 0xe1, 0x32, 0x29, 0xff, 0xe7, 0x84, 0x6f, 0x33, 0x6e, 0x34, 0xca, 0xc9, 0x04, 0xca, 0x56, 0x70, 0xf8, 0xcd, 0x50, 0x52, 0x42, 0x7a, 0x79, 0xc0, -+ 0x91, 0xa9, 0x71, 0x21, 0x0c, 0x5c, 0xff, 0x66, 0x7a, 0xac, 0x24, 0x93, 0x66, 0xe1, 0x0d, 0x2b, 0x11, 0x37, 0x6c, 0xa3, 0x9d, 0x93, 0x52, 0x04, 0xb1, 0x2c, 0xc5, 0x85, 0xe9, 0x40, 0x54, 0x03, -+ 0x62, 0x5f, 0xb3, 0x2c, 0xb5, 0xe5, 0xc3, 0x1b, 0x62, 0x34, 0x81, 0x60, 0x51, 0x5c, 0xcc, 0x4f, 0xda, 0xf5, 0x70, 0x2d, 0x6b, 0xab, 0x5c, 0x37, 0x3d, 0xb6, 0xf3, 0x50, 0xd3, 0xe6, 0x3a, 0x5c, -+ 0xe3, 0xca, 0x54, 0x74, 0xa0, 0xcf, 0x15, 0x67, 0x04, 0x2c, 0xa3, 0x25, 0x89, 0x86, 0xff, 0x75, 0xbd, 0xfc, 0xd9, 0x29, 0xe6, 0x46, 0x2f, 0x36, 0xbc, 0xcc, 0x3f, 0x5a, 0x93, 0x35, 0x2a, 0x2b, -+ 0x36, 0xcb, 0x16, 0x2e, 0x18, 0x74, 0xc7, 0x42, 0x87, 0x0a, 0x97, 0xb1, 0x67, 0xa0, 0x50, 0x37, 0x36, 0x24, 0xea, 0xeb, 0x7e, 0x50, 0x73, 0x25, 0x6b, 0x72, 0x11, 0xb2, 0xd9, 0x4b, 0x84, 0x06, -+ 0xcd, 0x6c, 0x95, 0x33, 0xb1, 0x53, 0x64, 0x08, 0xab, 0x0a, 0x29, 0xe5, 0xb2, 0xf0, 0xc9, 0x54, 0xec, 0xe0, 0x0f, 0xbb, 0xeb, 0x17, 0x6d, 0x72, 0x4d, 0x4c, 0xf4, 0x43, 0xcf, 0x70, 0x20, 0xd5, -+ 0xfa, 0x70, 0x94, 0xcc, 0x1b, 0x1b, 0xe6, 0x97, 0xba, 0xd3, 0x36, 0x74, 0xe4, 0x09, 0x9e, 0xc7, 0xbb, 0x18, 0xf4, 0x57, 0x71, 0x28, 0xcd, 0xd9, 0x7c, 0xcd, 0x6d, 0x44, 0x62, 0xe5, 0x60, 0x7c, -+ 0x51, 0x2a, 0x3e, 0x36, 0x24, 0x8e, 0x3d, 0xda, 0xa2, 0xec, 0x08, 0x9a, 0xef, 0xc4, 0xce, 0x48, 0x5c, 0x49, 0xd7, 0xb0, 0x09, 0xc8, 0xd6, 0x31, 0x15, 0xfc, 0x81, 0xff, 0x3a, 0x62, 0xd1, 0x5a, -+ 0x88, 0x44, 0x1c, 0x03, 0xea, 0x1c, 0x2e, 0x72, 0xc4, 0x88, 0x39, 0xfc, 0x6a, 0xd7, 0x3a, 0x30, 0x74, 0x4a, 0x62, 0xb7, 0xb2, 0x16, 0x45, 0xa6, 0xaf, 0x7d, 0x61, 0xb6, 0x38, 0x3b, 0x22, 0x1e, -+ 0x21, 0x90, 0x55, 0x57, 0xcd, 0x29, 0xd9, 0x24, 0xa6, 0x09, 0x86, 0xc5, 0x11, 0xc1, 0xeb, 0xbc, 0x31, 0x6d, 0x56, 0x30, 0xa2, 0x41, 0x43, 0x23, 0xf5, 0x3a, 0xd5, 0x59, 0x94, 0xf6, 0xb3, 0x65, -+ 0x39, 0xf9, 0xc4, 0x40, 0x75, 0xa5, 0x33, 0xe4, 0x81, 0xc0, 0x84, 0x45, 0xd9, 0xca, 0x9e, 0x9d, 0x38, 0x21, 0x19, 0x38, 0x8b, 0xd1, 0xd7, 0x50, 0x52, 0x21, 0x7a, 0x94, 0x4c, 0xcc, 0x7b, 0xe9, -+ 0x09, 0xe2, 0x19, 0x71, 0x1f, 0xcc, 0x79, 0x24, 0x76, 0x92, 0x13, 0xa1, 0x92, 0x53, 0x4a, 0x55, 0x80, 0x08, 0x15, 0x7a, 0x39, 0x6e, 0xdf, 0xf4, 0x80, 0xcc, 0x3b, 0x52, 0x0f, 0xf8, 0x18, 0xb3, -+ 0x8b, 0x13, 0x5c, 0x18, 0xa8, 0x0d, 0x51, 0x05, 0xe6, 0x78, 0x83, 0x6c, 0x39, 0x5c, 0x28, 0xe9, 0x2f, 0x7a, 0x3c, 0x4e, 0x93, 0xc0, 0x10, 0x35, 0xf3, 0x41, 0x11, 0xcc, 0x49, 0x02, 0xd0, 0xc0, -+ 0x33, 0xa6, 0x3f, 0x23, 0x6a, 0x71, 0xda, 0x97, 0x4a, 0x6f, 0x40, 0x4f, 0x7a, 0xa7, 0xb5, 0xe5, 0x82, 0xc7, 0x58, 0x14, 0x2f, 0xc1, 0x82, 0x6b, 0xba, 0x98, 0xb2, 0x7d, 0x57, 0xc2, 0xe2, 0x10, -+ 0x3e, 0x10, 0xe3, 0x0d, 0x32, 0x79, 0x7b, 0x96, 0x77, 0x14, 0xd1, 0x56, 0x61, 0x11, 0x13, 0x71, 0xa2, 0xd9, 0xc5, 0x39, 0x98, 0x12, 0x46, 0x46, 0x22, 0x63, 0x5b, 0x44, 0x21, 0x26, 0xb0, 0x98, -+ 0x36, 0xb0, 0x81, 0x82, 0x72, 0x47, 0xd0, 0x54, 0x22, 0x97, 0x2b, 0xd0, 0x32, 0x0d, 0x8f, 0x42, 0xbf, 0x57, 0xe3, 0x49, 0x46, 0x12, 0x34, 0xe4, 0xd9, 0x4f, 0x01, 0x18, 0x50, 0xba, 0xb5, 0xc0, -+ 0x49, 0xb6, 0x2a, 0x59, 0x43, 0x38, 0x66, 0xfc, 0xce, 0x69, 0x66, 0x49, 0x5c, 0x26, 0x5c, 0x47, 0x65, 0xa5, 0x6c, 0x06, 0xb9, 0xfc, 0x42, 0x76, 0x54, 0x87, 0x85, 0xf4, 0x68, 0x28, 0xca, 0x60, -+ 0x2d, 0xc6, 0xd0, 0x54, 0x1f, 0x25, 0x07, 0x89, 0xc4, 0x9e, 0x8b, 0x06, 0x55, 0x9c, 0x43, 0x44, 0x60, 0xa8, 0x43, 0x80, 0x98, 0x54, 0xe5, 0xb4, 0x6e, 0x89, 0x38, 0x9f, 0x10, 0xf4, 0x89, 0x66, -+ 0x74, 0x91, 0xc1, 0x93, 0x5e, 0x8a, 0xfb, 0x9e, 0xb4, 0x71, 0x8f, 0x86, 0xac, 0x45, 0x89, 0x32, 0xbc, 0xf3, 0x3c, 0x9a, 0xbe, 0xcb, 0x2d, 0xc0, 0xc0, 0x93, 0xa7, 0xe8, 0x1d, 0xa0, 0x32, 0x7b, -+ 0xb6, 0x37, 0x52, 0x81, 0x05, 0xc3, 0x58, 0xeb, 0x76, 0x8d, 0x32, 0x3a, 0x37, 0xd4, 0x0a, 0x8c, 0x19, 0x9b, 0x7c, 0x4b, 0xb1, 0xd7, 0x2b, 0x72, 0xb6, 0x90, 0xb3, 0x6d, 0xd2, 0x7a, 0x93, 0x55, -+ 0x19, 0x1b, 0x3c, 0x3a, 0xa6, 0x75, 0xa7, 0xe6, 0xf8, 0x55, 0xeb, 0x50, 0x5f, 0x57, 0x98, 0x65, 0xdb, 0xd8, 0x91, 0x05, 0x65, 0x50, 0x5e, 0x7c, 0x0f, 0xdd, 0x54, 0x5c, 0xbb, 0xb8, 0x71, 0xb0, -+ 0xb2, 0xcc, 0x01, 0x25, 0xb7, 0x4f, 0x6b, 0x0c, 0x9b, 0x79, 0x67, 0x0a, 0x62, 0x02, 0xd1, 0xb9, 0x15, 0x4a, 0xc7, 0x76, 0x6b, 0x19, 0x19, 0xc4, 0x89, 0x58, 0x90, 0x86, 0xad, 0x8b, 0x45, 0xbe, -+ 0x0d, 0x79, 0xc9, 0x76, 0xc3, 0xc3, 0x9d, 0x6b, 0x25, 0x21, 0x3b, 0xb0, 0xb7, 0x8a, 0x57, 0x50, 0xe6, 0xa8, 0xeb, 0x34, 0x33, 0x0b, 0xb3, 0xcf, 0xf2, 0xb1, 0xc0, 0x72, 0x2a, 0xc8, 0x83, 0xb0, -+ 0x48, 0xf4, 0xb8, 0xcd, 0x06, 0x19, 0x6d, 0xa8, 0xaa, 0x8b, 0x05, 0xda, 0x42, 0x67, 0x55, 0x2b, 0xf8, 0x7a, 0xbc, 0xa5, 0x12, 0x4d, 0xc3, 0x58, 0xa8, 0x38, 0x10, 0x40, 0xe9, 0xb8, 0x1f, 0xb0, -+ 0x84, 0x43, 0x15, 0x02, 0x15, 0xd6, 0x92, 0x23, 0x28, 0x00, 0x0a, 0xc0, 0xb7, 0x88, 0xb1, 0x21, 0x93, 0x1a, 0x26, 0x7d, 0x80, 0x61, 0x9c, 0xe7, 0xd2, 0x9c, 0xd7, 0x6b, 0x60, 0xcf, 0x65, 0x83, -+ 0xdc, 0xe8, 0xce, 0xbc, 0x49, 0x01, 0x85, 0x73, 0x6c, 0x81, 0x8b, 0x25, 0xad, 0x26, 0x0b, 0x66, 0x7b, 0x1f, 0xfd, 0x46, 0x20, 0x6d, 0x01, 0x04, 0x55, 0x3a, 0xa9, 0xfb, 0x30, 0x45, 0x54, 0xa2, -+ 0x1c, 0x32, 0x72, 0x44, 0xce, 0x78, 0xaf, 0xdb, 0xd3, 0xb4, 0x62, 0x36, 0x1b, 0xb0, 0x68, 0xa1, 0x55, 0x63, 0x64, 0x09, 0xf5, 0x74, 0xc5, 0x71, 0x65, 0x72, 0xe2, 0xa5, 0xf2, 0xa4, 0xb0, 0x4f, -+ 0xb8, 0xaa, 0xd1, 0x23, 0x66, 0x84, 0x84, 0x17, 0x87, 0x56, 0x2a, 0xaf, 0x46, 0xc2, 0xc0, 0xda, 0x46, 0x65, 0xea, 0xfd, 0x46, 0x5f, 0xc6, 0x4a, 0x0c, 0x5f, 0x8f, 0x3f, 0x90, 0x03, 0x48, 0x94, -+ 0x15, 0x89, 0x9d, 0x59, 0xa5, 0x43, 0xd8, 0x20, 0x8c, 0x54, 0xa3, 0x16, 0x65, 0x29, 0xb5, 0x39, 0x22, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, -+ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, -+ 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, -+ }, -+ .spki_len = 1603, -+ .spki = { -+ 0x30, 0x82, 0x06, 0x3f, 0x30, 0x0f, 0x06, 0x0b, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x02, 0x82, 0x0b, 0x05, 0x04, 0x04, 0x05, 0x00, 0x03, 0x82, 0x06, 0x2a, 0x00, 0x30, 0x82, 0x06, 0x25, 0x03, 0x82, -+ 0x06, 0x21, 0x00, 0xda, 0x18, 0x71, 0x2d, 0x31, 0x6e, 0x98, 0xdc, 0x7a, 0xc8, 0xc3, 0xca, 0x47, 0x37, 0x0e, 0xbd, 0x77, 0x0c, 0xe3, 0x2b, 0x3b, 0xd4, 0xb1, 0xa0, 0xc9, 0x52, 0x9a, 0xc6, 0xec, -+ 0x8e, 0xe0, 0x28, 0xb1, 0xcd, 0xb2, 0x65, 0x1c, 0xb5, 0xa6, 0xbb, 0x3c, 0x0c, 0x6d, 0xf1, 0x24, 0x0a, 0x3b, 0x91, 0x4b, 0x56, 0x56, 0xc0, 0xdc, 0x51, 0xc2, 0xb9, 0x1b, 0xfc, 0xbc, 0x37, 0xa4, -+ 0x66, 0x02, 0x87, 0xd4, 0x4f, 0x81, 0xf8, 0x53, 0xc7, 0xf4, 0x9a, 0x6d, 0x06, 0x03, 0xd6, 0xd7, 0x23, 0xcb, 0xec, 0x01, 0x5f, 0xbc, 0x43, 0x4a, 0x38, 0x24, 0x1c, 0x10, 0x9c, 0x7e, 0xd5, 0xb1, -+ 0xcc, 0x46, 0x1a, 0x2c, 0xcb, 0x9a, 0xb7, 0x14, 0x0f, 0x19, 0xf3, 0x7a, 0x13, 0xbb, 0x70, 0x1e, 0x14, 0x2b, 0xd5, 0x4b, 0x64, 0xec, 0x6b, 0x76, 0xfe, 0xc3, 0x3b, 0x69, 0xc2, 0x91, 0x8c, 0xb0, -+ 0x17, 0xc4, 0x14, 0x34, 0x23, 0x00, 0x9a, 0x3c, 0x07, 0xb5, 0xc1, 0x81, 0xb0, 0xc1, 0xeb, 0x49, 0x4a, 0x62, 0xab, 0xc8, 0x39, 0x13, 0x97, 0x08, 0x9e, 0xa6, 0x64, 0x09, 0x67, 0xc1, 0x20, 0x49, -+ 0x84, 0xcd, 0x48, 0x4c, 0xcc, 0xb0, 0x0a, 0x9a, 0x17, 0xd0, 0x87, 0x21, 0x84, 0x28, 0xef, 0x3b, 0xb7, 0x08, 0x78, 0x3e, 0x12, 0x82, 0x71, 0x04, 0x41, 0x73, 0x75, 0xb6, 0x95, 0x6f, 0xb5, 0x00, -+ 0x53, 0xd0, 0x48, 0xa4, 0x79, 0x14, 0x95, 0x82, 0x4a, 0x34, 0x80, 0xa5, 0xb7, 0x83, 0x02, 0x56, 0x09, 0x6f, 0xdd, 0x72, 0x5c, 0x30, 0x8b, 0x3b, 0xe8, 0x4a, 0x07, 0xf3, 0x63, 0x2e, 0x24, 0x95, -+ 0xc6, 0x2e, 0x96, 0x39, 0x9d, 0x80, 0xbf, 0xa7, 0x45, 0xb9, 0x84, 0x1a, 0x18, 0x33, 0xbc, 0x1d, 0x27, 0xba, 0x45, 0xa5, 0x21, 0x68, 0xee, 0x59, 0x00, 0x6c, 0x3a, 0x3a, 0x8c, 0x4a, 0x5a, 0x4f, -+ 0x50, 0x88, 0xfc, 0x73, 0x71, 0x81, 0xab, 0x51, 0x96, 0xf7, 0xb1, 0xb4, 0x9a, 0x2e, 0xd8, 0x13, 0x13, 0x4e, 0x11, 0x2f, 0x73, 0x0b, 0x99, 0x1c, 0x54, 0xa7, 0x19, 0x6b, 0xcf, 0x5f, 0xc7, 0x6e, -+ 0x13, 0x4c, 0x58, 0x43, 0xe1, 0x69, 0x88, 0x51, 0xb2, 0xf8, 0x69, 0xaf, 0xaf, 0xb0, 0x27, 0x87, 0xd9, 0xc2, 0xf1, 0x36, 0x90, 0x2d, 0xc7, 0xa7, 0xf3, 0xd6, 0x21, 0x56, 0xd1, 0x5e, 0xc3, 0x09, -+ 0x56, 0x40, 0x92, 0xc6, 0x1d, 0x83, 0xb0, 0x98, 0x6c, 0x48, 0x40, 0x99, 0x81, 0xf3, 0xc1, 0x86, 0x88, 0x0a, 0x2f, 0x63, 0xd5, 0x86, 0x0a, 0xb6, 0x01, 0xde, 0xac, 0x2b, 0x6b, 0xa1, 0xb4, 0x28, -+ 0x17, 0x9d, 0x73, 0x53, 0x3e, 0xb7, 0xa3, 0xa5, 0x11, 0x3b, 0x85, 0x61, 0xf1, 0x0b, 0x45, 0xc3, 0xcd, 0xe2, 0x82, 0xb6, 0xea, 0xd6, 0xab, 0x6c, 0x60, 0x4f, 0x09, 0xc1, 0x7b, 0xfd, 0xa0, 0x83, -+ 0x13, 0xa3, 0x26, 0x07, 0x67, 0x5a, 0xdf, 0x64, 0x31, 0xca, 0x87, 0x18, 0xe9, 0xc4, 0x3a, 0x73, 0x73, 0x32, 0x27, 0xe7, 0x3b, 0xc6, 0x1a, 0xc8, 0x45, 0xba, 0x90, 0x77, 0x55, 0xce, 0xc6, 0x89, -+ 0x25, 0xe5, 0xe2, 0xbf, 0xe9, 0x12, 0x95, 0x9d, 0xb8, 0x6f, 0xbf, 0xe2, 0x15, 0x6f, 0xd5, 0xbb, 0xdb, 0xf0, 0xc9, 0xdf, 0x8b, 0x53, 0x02, 0xaa, 0x8d, 0x90, 0xa2, 0x2d, 0x12, 0x27, 0x0e, 0x00, -+ 0x65, 0x51, 0xe4, 0x76, 0x7e, 0x45, 0x26, 0x8e, 0xd9, 0x69, 0x26, 0x54, 0x44, 0x78, 0x11, 0xea, 0xb8, 0x4f, 0x04, 0x99, 0xa8, 0xa5, 0x8c, 0xf7, 0xc0, 0x4a, 0x59, 0x56, 0x98, 0x52, 0x80, 0x45, -+ 0xf2, 0x98, 0x97, 0xc8, 0xfa, 0x96, 0xd0, 0x6c, 0xce, 0x51, 0xe6, 0xaf, 0xea, 0xc4, 0x33, 0x95, 0x89, 0xc9, 0x41, 0xc8, 0x55, 0x63, 0xd7, 0x0f, 0xac, 0xe1, 0x92, 0x88, 0x94, 0xba, 0xc0, 0x36, -+ 0x19, 0xdf, 0xf4, 0xbe, 0x3f, 0x43, 0x14, 0xa3, 0xf7, 0x35, 0x1a, 0x09, 0xa4, 0x86, 0xb5, 0x04, 0x1e, 0x7c, 0xb2, 0xda, 0x8b, 0x96, 0xbc, 0x66, 0x26, 0xa4, 0x93, 0x17, 0x35, 0x7c, 0x41, 0x52, -+ 0xa5, 0x1b, 0xa3, 0xc2, 0x8c, 0x7e, 0x0c, 0x9d, 0xb4, 0x1a, 0x06, 0xa2, 0x82, 0x90, 0xf2, 0x18, 0x73, 0x11, 0x07, 0xc9, 0x54, 0xd8, 0xa6, 0x6f, 0x80, 0x1d, 0x7d, 0xe1, 0x2a, 0x03, 0x71, 0x16, -+ 0x99, 0x0b, 0x6c, 0x53, 0xc1, 0x29, 0xf1, 0x85, 0xc3, 0x45, 0xf2, 0x7e, 0x51, 0x8b, 0x2d, 0x5a, 0x91, 0x25, 0xa0, 0x70, 0x76, 0xd9, 0x91, 0xb7, 0xda, 0xc7, 0xcc, 0x65, 0xa8, 0x56, 0x2e, 0xfb, -+ 0xcc, 0x32, 0xa9, 0xca, 0x4a, 0xd9, 0x02, 0x63, 0xb0, 0x4a, 0x4f, 0x90, 0x36, 0x11, 0x6c, 0x7b, 0x97, 0x48, 0x04, 0x96, 0x31, 0x75, 0x75, 0x65, 0x0d, 0xcc, 0x21, 0x52, 0xb5, 0xbc, 0x0e, 0x74, -+ 0x40, 0x7e, 0x12, 0xfa, 0x8e, 0x4f, 0xfc, 0xcc, 0xff, 0x76, 0xc0, 0x1a, 0x97, 0x4b, 0xd6, 0x11, 0x02, 0xe1, 0xf5, 0x29, 0x64, 0x96, 0xc7, 0x1d, 0x07, 0x64, 0xe1, 0x32, 0x29, 0xff, 0xe7, 0x84, -+ 0x6f, 0x33, 0x6e, 0x34, 0xca, 0xc9, 0x04, 0xca, 0x56, 0x70, 0xf8, 0xcd, 0x50, 0x52, 0x42, 0x7a, 0x79, 0xc0, 0x91, 0xa9, 0x71, 0x21, 0x0c, 0x5c, 0xff, 0x66, 0x7a, 0xac, 0x24, 0x93, 0x66, 0xe1, -+ 0x0d, 0x2b, 0x11, 0x37, 0x6c, 0xa3, 0x9d, 0x93, 0x52, 0x04, 0xb1, 0x2c, 0xc5, 0x85, 0xe9, 0x40, 0x54, 0x03, 0x62, 0x5f, 0xb3, 0x2c, 0xb5, 0xe5, 0xc3, 0x1b, 0x62, 0x34, 0x81, 0x60, 0x51, 0x5c, -+ 0xcc, 0x4f, 0xda, 0xf5, 0x70, 0x2d, 0x6b, 0xab, 0x5c, 0x37, 0x3d, 0xb6, 0xf3, 0x50, 0xd3, 0xe6, 0x3a, 0x5c, 0xe3, 0xca, 0x54, 0x74, 0xa0, 0xcf, 0x15, 0x67, 0x04, 0x2c, 0xa3, 0x25, 0x89, 0x86, -+ 0xff, 0x75, 0xbd, 0xfc, 0xd9, 0x29, 0xe6, 0x46, 0x2f, 0x36, 0xbc, 0xcc, 0x3f, 0x5a, 0x93, 0x35, 0x2a, 0x2b, 0x36, 0xcb, 0x16, 0x2e, 0x18, 0x74, 0xc7, 0x42, 0x87, 0x0a, 0x97, 0xb1, 0x67, 0xa0, -+ 0x50, 0x37, 0x36, 0x24, 0xea, 0xeb, 0x7e, 0x50, 0x73, 0x25, 0x6b, 0x72, 0x11, 0xb2, 0xd9, 0x4b, 0x84, 0x06, 0xcd, 0x6c, 0x95, 0x33, 0xb1, 0x53, 0x64, 0x08, 0xab, 0x0a, 0x29, 0xe5, 0xb2, 0xf0, -+ 0xc9, 0x54, 0xec, 0xe0, 0x0f, 0xbb, 0xeb, 0x17, 0x6d, 0x72, 0x4d, 0x4c, 0xf4, 0x43, 0xcf, 0x70, 0x20, 0xd5, 0xfa, 0x70, 0x94, 0xcc, 0x1b, 0x1b, 0xe6, 0x97, 0xba, 0xd3, 0x36, 0x74, 0xe4, 0x09, -+ 0x9e, 0xc7, 0xbb, 0x18, 0xf4, 0x57, 0x71, 0x28, 0xcd, 0xd9, 0x7c, 0xcd, 0x6d, 0x44, 0x62, 0xe5, 0x60, 0x7c, 0x51, 0x2a, 0x3e, 0x36, 0x24, 0x8e, 0x3d, 0xda, 0xa2, 0xec, 0x08, 0x9a, 0xef, 0xc4, -+ 0xce, 0x48, 0x5c, 0x49, 0xd7, 0xb0, 0x09, 0xc8, 0xd6, 0x31, 0x15, 0xfc, 0x81, 0xff, 0x3a, 0x62, 0xd1, 0x5a, 0x88, 0x44, 0x1c, 0x03, 0xea, 0x1c, 0x2e, 0x72, 0xc4, 0x88, 0x39, 0xfc, 0x6a, 0xd7, -+ 0x3a, 0x30, 0x74, 0x4a, 0x62, 0xb7, 0xb2, 0x16, 0x45, 0xa6, 0xaf, 0x7d, 0x61, 0xb6, 0x38, 0x3b, 0x22, 0x1e, 0x21, 0x90, 0x55, 0x57, 0xcd, 0x29, 0xd9, 0x24, 0xa6, 0x09, 0x86, 0xc5, 0x11, 0xc1, -+ 0xeb, 0xbc, 0x31, 0x6d, 0x56, 0x30, 0xa2, 0x41, 0x43, 0x23, 0xf5, 0x3a, 0xd5, 0x59, 0x94, 0xf6, 0xb3, 0x65, 0x39, 0xf9, 0xc4, 0x40, 0x75, 0xa5, 0x33, 0xe4, 0x81, 0xc0, 0x84, 0x45, 0xd9, 0xca, -+ 0x9e, 0x9d, 0x38, 0x21, 0x19, 0x38, 0x8b, 0xd1, 0xd7, 0x50, 0x52, 0x21, 0x7a, 0x94, 0x4c, 0xcc, 0x7b, 0xe9, 0x09, 0xe2, 0x19, 0x71, 0x1f, 0xcc, 0x79, 0x24, 0x76, 0x92, 0x13, 0xa1, 0x92, 0x53, -+ 0x4a, 0x55, 0x80, 0x08, 0x15, 0x7a, 0x39, 0x6e, 0xdf, 0xf4, 0x80, 0xcc, 0x3b, 0x52, 0x0f, 0xf8, 0x18, 0xb3, 0x8b, 0x13, 0x5c, 0x18, 0xa8, 0x0d, 0x51, 0x05, 0xe6, 0x78, 0x83, 0x6c, 0x39, 0x5c, -+ 0x28, 0xe9, 0x2f, 0x7a, 0x3c, 0x4e, 0x93, 0xc0, 0x10, 0x35, 0xf3, 0x41, 0x11, 0xcc, 0x49, 0x02, 0xd0, 0xc0, 0x33, 0xa6, 0x3f, 0x23, 0x6a, 0x71, 0xda, 0x97, 0x4a, 0x6f, 0x40, 0x4f, 0x7a, 0xa7, -+ 0xb5, 0xe5, 0x82, 0xc7, 0x58, 0x14, 0x2f, 0xc1, 0x82, 0x6b, 0xba, 0x98, 0xb2, 0x7d, 0x57, 0xc2, 0xe2, 0x10, 0x3e, 0x10, 0xe3, 0x0d, 0x32, 0x79, 0x7b, 0x96, 0x77, 0x14, 0xd1, 0x56, 0x61, 0x11, -+ 0x13, 0x71, 0xa2, 0xd9, 0xc5, 0x39, 0x98, 0x12, 0x46, 0x46, 0x22, 0x63, 0x5b, 0x44, 0x21, 0x26, 0xb0, 0x98, 0x36, 0xb0, 0x81, 0x82, 0x72, 0x47, 0xd0, 0x54, 0x22, 0x97, 0x2b, 0xd0, 0x32, 0x0d, -+ 0x8f, 0x42, 0xbf, 0x57, 0xe3, 0x49, 0x46, 0x12, 0x34, 0xe4, 0xd9, 0x4f, 0x01, 0x18, 0x50, 0xba, 0xb5, 0xc0, 0x49, 0xb6, 0x2a, 0x59, 0x43, 0x38, 0x66, 0xfc, 0xce, 0x69, 0x66, 0x49, 0x5c, 0x26, -+ 0x5c, 0x47, 0x65, 0xa5, 0x6c, 0x06, 0xb9, 0xfc, 0x42, 0x76, 0x54, 0x87, 0x85, 0xf4, 0x68, 0x28, 0xca, 0x60, 0x2d, 0xc6, 0xd0, 0x54, 0x1f, 0x25, 0x07, 0x89, 0xc4, 0x9e, 0x8b, 0x06, 0x55, 0x9c, -+ 0x43, 0x44, 0x60, 0xa8, 0x43, 0x80, 0x98, 0x54, 0xe5, 0xb4, 0x6e, 0x89, 0x38, 0x9f, 0x10, 0xf4, 0x89, 0x66, 0x74, 0x91, 0xc1, 0x93, 0x5e, 0x8a, 0xfb, 0x9e, 0xb4, 0x71, 0x8f, 0x86, 0xac, 0x45, -+ 0x89, 0x32, 0xbc, 0xf3, 0x3c, 0x9a, 0xbe, 0xcb, 0x2d, 0xc0, 0xc0, 0x93, 0xa7, 0xe8, 0x1d, 0xa0, 0x32, 0x7b, 0xb6, 0x37, 0x52, 0x81, 0x05, 0xc3, 0x58, 0xeb, 0x76, 0x8d, 0x32, 0x3a, 0x37, 0xd4, -+ 0x0a, 0x8c, 0x19, 0x9b, 0x7c, 0x4b, 0xb1, 0xd7, 0x2b, 0x72, 0xb6, 0x90, 0xb3, 0x6d, 0xd2, 0x7a, 0x93, 0x55, 0x19, 0x1b, 0x3c, 0x3a, 0xa6, 0x75, 0xa7, 0xe6, 0xf8, 0x55, 0xeb, 0x50, 0x5f, 0x57, -+ 0x98, 0x65, 0xdb, 0xd8, 0x91, 0x05, 0x65, 0x50, 0x5e, 0x7c, 0x0f, 0xdd, 0x54, 0x5c, 0xbb, 0xb8, 0x71, 0xb0, 0xb2, 0xcc, 0x01, 0x25, 0xb7, 0x4f, 0x6b, 0x0c, 0x9b, 0x79, 0x67, 0x0a, 0x62, 0x02, -+ 0xd1, 0xb9, 0x15, 0x4a, 0xc7, 0x76, 0x6b, 0x19, 0x19, 0xc4, 0x89, 0x58, 0x90, 0x86, 0xad, 0x8b, 0x45, 0xbe, 0x0d, 0x79, 0xc9, 0x76, 0xc3, 0xc3, 0x9d, 0x6b, 0x25, 0x21, 0x3b, 0xb0, 0xb7, 0x8a, -+ 0x57, 0x50, 0xe6, 0xa8, 0xeb, 0x34, 0x33, 0x0b, 0xb3, 0xcf, 0xf2, 0xb1, 0xc0, 0x72, 0x2a, 0xc8, 0x83, 0xb0, 0x48, 0xf4, 0xb8, 0xcd, 0x06, 0x19, 0x6d, 0xa8, 0xaa, 0x8b, 0x05, 0xda, 0x42, 0x67, -+ 0x55, 0x2b, 0xf8, 0x7a, 0xbc, 0xa5, 0x12, 0x4d, 0xc3, 0x58, 0xa8, 0x38, 0x10, 0x40, 0xe9, 0xb8, 0x1f, 0xb0, 0x84, 0x43, 0x15, 0x02, 0x15, 0xd6, 0x92, 0x23, 0x28, 0x00, 0x0a, 0xc0, 0xb7, 0x88, -+ 0xb1, 0x21, 0x93, 0x1a, 0x26, 0x7d, 0x80, 0x61, 0x9c, 0xe7, 0xd2, 0x9c, 0xd7, 0x6b, 0x60, 0xcf, 0x65, 0x83, 0xdc, 0xe8, 0xce, 0xbc, 0x49, 0x01, 0x85, 0x73, 0x6c, 0x81, 0x8b, 0x25, 0xad, 0x26, -+ 0x0b, 0x66, 0x7b, 0x1f, 0xfd, 0x46, 0x20, 0x6d, 0x01, 0x04, 0x55, 0x3a, 0xa9, 0xfb, 0x30, 0x45, 0x54, 0xa2, 0x1c, 0x32, 0x72, 0x44, 0xce, 0x78, 0xaf, 0xdb, 0xd3, 0xb4, 0x62, 0x36, 0x1b, 0xb0, -+ 0x68, 0xa1, 0x55, 0x63, 0x64, 0x09, 0xf5, 0x74, 0xc5, 0x71, 0x65, 0x72, 0xe2, 0xa5, 0xf2, 0xa4, 0xb0, 0x4f, 0xb8, 0xaa, 0xd1, 0x23, 0x66, 0x84, 0x84, 0x17, 0x87, 0x56, 0x2a, 0xaf, 0x46, 0xc2, -+ 0xc0, 0xda, 0x46, 0x65, 0xea, 0xfd, 0x46, 0x5f, 0xc6, 0x4a, 0x0c, 0x5f, 0x8f, 0x3f, 0x90, 0x03, 0x48, 0x94, 0x15, 0x89, 0x9d, 0x59, 0xa5, 0x43, 0xd8, 0x20, 0x8c, 0x54, 0xa3, 0x16, 0x65, 0x29, -+ 0xb5, 0x39, 0x22, -+ }, -+ .secret_len = 32, -+ .secret = { -+ 0xfb, 0xc4, 0xee, 0xa6, 0x91, 0xee, 0xf4, 0xc1, 0xb4, 0x76, 0xa2, 0x99, 0x36, 0x45, 0x3f, 0x4c, 0x3d, 0x48, 0x81, 0x79, 0x4e, 0xe3, 0x7b, 0xaf, 0x0f, 0xd7, 0x28, 0x40, 0x74, 0x3e, 0x7b, 0x7d, -+ }, -+ .cipher_len = 1568, -+ .cipher = { -+ 0xc2, 0x7f, 0x01, 0x24, 0x4d, 0x4b, 0x3f, 0xb2, 0x1d, 0x84, 0x37, 0xf8, 0x40, 0x01, 0x7c, 0xcc, 0xb7, 0xb7, 0xda, 0xd5, 0xfb, 0x2b, 0x47, 0xb9, 0xb5, 0x7e, 0xae, 0x4f, 0x77, 0xd0, 0xa4, 0x55, -+ 0x5e, 0x50, 0x92, 0xa2, 0x49, 0x69, 0xf2, 0x27, 0x3e, 0x97, 0x02, 0x88, 0x4a, 0x08, 0x47, 0x7b, 0x56, 0x8d, 0x80, 0x17, 0xf1, 0x38, 0x75, 0xd1, 0xf5, 0xa6, 0xd4, 0x13, 0xbd, 0xd2, 0x28, 0xeb, -+ 0xb1, 0x12, 0x60, 0xf7, 0xf4, 0x52, 0x9c, 0xbc, 0xeb, 0xf9, 0xb6, 0x86, 0x2e, 0x8a, 0x84, 0x12, 0x35, 0xf2, 0x9f, 0x60, 0xf8, 0xe8, 0x41, 0x74, 0x34, 0x18, 0x9d, 0x57, 0x99, 0x20, 0xfe, 0x6b, -+ 0x98, 0xdb, 0xe7, 0x13, 0xec, 0x16, 0xc3, 0xfd, 0xdb, 0xb8, 0x1e, 0x73, 0x1d, 0x95, 0x6b, 0x06, 0xdb, 0x49, 0x80, 0xf4, 0x9c, 0x26, 0xf2, 0x86, 0x61, 0xff, 0x9c, 0xe6, 0xe9, 0xd8, 0x61, 0xec, -+ 0x7a, 0x09, 0x84, 0x0c, 0x19, 0xde, 0x0e, 0xb6, 0x72, 0x20, 0x71, 0xf8, 0xaa, 0x48, 0x36, 0x2d, 0x2f, 0xf1, 0x27, 0xa4, 0xae, 0x46, 0xf9, 0x93, 0x37, 0x82, 0x68, 0x32, 0xad, 0xac, 0x23, 0x91, -+ 0x65, 0xf2, 0x25, 0x85, 0xbb, 0x57, 0xa8, 0x89, 0xc9, 0xc6, 0xaf, 0x82, 0x36, 0x7e, 0xc7, 0xb0, 0x72, 0x37, 0xc0, 0x53, 0x5b, 0x31, 0xb3, 0x8c, 0x1c, 0xac, 0x40, 0xac, 0x1a, 0x0c, 0x95, 0x8a, -+ 0x18, 0x87, 0xfe, 0x34, 0x71, 0x10, 0x83, 0xfd, 0x37, 0xaf, 0x4b, 0xc5, 0xb1, 0xb4, 0xe1, 0xe2, 0xee, 0x28, 0x43, 0x69, 0x3d, 0x57, 0xdd, 0x1e, 0x65, 0x7d, 0x4c, 0x24, 0xed, 0x20, 0x7e, 0xe7, -+ 0x12, 0xad, 0x2a, 0x08, 0x91, 0x45, 0x81, 0x80, 0xe9, 0xe8, 0xbd, 0x36, 0xfc, 0x14, 0xd8, 0xd6, 0x33, 0xf5, 0xb7, 0x41, 0xce, 0xa1, 0x08, 0xd2, 0xd4, 0xfd, 0x75, 0x1c, 0x5a, 0x67, 0xb0, 0x5e, -+ 0x30, 0x32, 0x4a, 0x67, 0xe9, 0xdd, 0x75, 0xc9, 0x93, 0xd4, 0xfe, 0x08, 0x54, 0xfb, 0x78, 0xdf, 0x6f, 0x3d, 0x45, 0xa2, 0xa9, 0xc8, 0xe4, 0x25, 0x10, 0xf0, 0xc3, 0xd8, 0x02, 0x03, 0x71, 0x2f, -+ 0xb3, 0x9e, 0x36, 0xb5, 0xdd, 0x8b, 0x5c, 0xcd, 0x3d, 0x09, 0xce, 0xa9, 0x42, 0x03, 0xba, 0xf8, 0x72, 0x08, 0x45, 0x71, 0xec, 0xf9, 0x78, 0xbd, 0xb9, 0x54, 0x8a, 0x25, 0x0e, 0xe4, 0x90, 0x7b, -+ 0x4a, 0xfc, 0x31, 0xb2, 0x1f, 0x31, 0x9a, 0xe4, 0xbf, 0x0a, 0xb1, 0x9c, 0xbd, 0x11, 0xeb, 0xe1, 0x33, 0x59, 0xd1, 0xaa, 0xf4, 0xfd, 0xb8, 0x3b, 0x65, 0x02, 0x50, 0x14, 0x22, 0xa5, 0xfe, 0x50, -+ 0xa8, 0xa3, 0x8e, 0xf5, 0x3d, 0xeb, 0x60, 0x3c, 0xe2, 0x3f, 0xd9, 0x79, 0x2b, 0x04, 0xde, 0xb3, 0x78, 0x71, 0x9a, 0xb7, 0x69, 0xaa, 0x58, 0x97, 0xcc, 0x65, 0xe9, 0xb1, 0x63, 0x04, 0xce, 0xa5, -+ 0x37, 0xe1, 0x76, 0x2b, 0xd8, 0xc9, 0xb1, 0x09, 0xda, 0x14, 0xa8, 0x29, 0xe6, 0x41, 0x9f, 0x1b, 0x9f, 0xf8, 0xa4, 0x66, 0xe2, 0xa6, 0xd6, 0xb3, 0x4d, 0x74, 0xff, 0xe1, 0xa5, 0x92, 0x99, 0x18, -+ 0x17, 0x59, 0xd0, 0xd3, 0x87, 0xfc, 0xed, 0x1d, 0x90, 0x7f, 0x5f, 0xb5, 0xed, 0xb4, 0x26, 0xc0, 0x51, 0x30, 0xe6, 0xca, 0x59, 0x09, 0xb2, 0x76, 0xd1, 0xa4, 0x7e, 0x71, 0x3c, 0x30, 0xd9, 0x96, -+ 0xda, 0x5e, 0x8e, 0x57, 0xe7, 0x12, 0xc7, 0x77, 0x38, 0xf2, 0x1b, 0xe7, 0x4b, 0x42, 0xb5, 0x18, 0x43, 0x2d, 0xad, 0x7e, 0xf7, 0x3e, 0x6a, 0x8c, 0x43, 0xaa, 0x9a, 0x62, 0x69, 0x94, 0xd7, 0x1a, -+ 0x31, 0x81, 0x28, 0x51, 0x80, 0x6e, 0x9f, 0xbb, 0x1f, 0x2b, 0xd3, 0x56, 0xce, 0xa3, 0x9d, 0x95, 0xf2, 0xf8, 0x7c, 0xa3, 0x0d, 0xaf, 0x6f, 0x27, 0x33, 0xf7, 0xbc, 0xe7, 0x9f, 0x8d, 0xa9, 0x95, -+ 0x05, 0x1e, 0x49, 0xa7, 0xfd, 0x22, 0x64, 0x37, 0x9c, 0x0a, 0x75, 0x2e, 0x55, 0x3e, 0xd6, 0x08, 0xeb, 0x93, 0x44, 0xc7, 0x94, 0x98, 0xf6, 0x91, 0x53, 0x85, 0x64, 0xc5, 0x4f, 0x82, 0x3b, 0xb7, -+ 0x0b, 0x12, 0xb5, 0x9e, 0x88, 0x24, 0xb4, 0xa4, 0xbb, 0x1e, 0xea, 0xc6, 0x7c, 0x81, 0x0c, 0xcc, 0x2e, 0x23, 0x74, 0x47, 0x83, 0xce, 0x95, 0x80, 0x97, 0xf7, 0xa6, 0xbc, 0x6e, 0x1f, 0x17, 0x59, -+ 0x75, 0x21, 0xb8, 0xc3, 0xd1, 0xee, 0x85, 0x96, 0xa2, 0x9f, 0xfe, 0xf1, 0x4e, 0xd9, 0x16, 0x32, 0x09, 0x7c, 0x16, 0xd5, 0x06, 0x5d, 0xb2, 0xa9, 0x63, 0xca, 0x73, 0x83, 0xac, 0x60, 0xad, 0x8f, -+ 0x4e, 0xd0, 0xd4, 0x1b, 0xd0, 0xbc, 0x3b, 0xaf, 0x19, 0x8c, 0x51, 0x25, 0xae, 0x91, 0x15, 0x06, 0xc9, 0x26, 0xd4, 0xc1, 0x17, 0x85, 0xfd, 0x61, 0x82, 0x29, 0xbf, 0xf5, 0x4c, 0xb1, 0x16, 0x1a, -+ 0xb8, 0xfc, 0x7b, 0x51, 0xda, 0xec, 0xcc, 0xd9, 0x13, 0x1e, 0xdf, 0x43, 0x7d, 0x8e, 0x52, 0x8e, 0x75, 0x81, 0xb8, 0x2c, 0x66, 0x0e, 0x8c, 0x5e, 0x25, 0x12, 0xd5, 0xf6, 0x38, 0x0a, 0x52, 0x8f, -+ 0x2a, 0xe4, 0xae, 0xe2, 0x63, 0xdb, 0x96, 0x76, 0x02, 0x4b, 0xc7, 0xad, 0x39, 0x8b, 0xc9, 0xcd, 0xda, 0xd6, 0x07, 0x96, 0x8b, 0xba, 0xb2, 0x23, 0x29, 0xe0, 0x4d, 0x6e, 0x77, 0x1f, 0xe6, 0x47, -+ 0x10, 0x7a, 0xc4, 0x66, 0x67, 0xa5, 0x1a, 0xd5, 0x58, 0xa6, 0x35, 0xf0, 0x26, 0x95, 0x1f, 0x4f, 0x48, 0xc8, 0x88, 0xd7, 0x01, 0xc2, 0xaf, 0xf4, 0xea, 0xb4, 0xe3, 0x4a, 0xdb, 0x15, 0x9a, 0xbb, -+ 0xbf, 0xab, 0xe5, 0x9b, 0x3f, 0x4c, 0xf8, 0xaa, 0xb1, 0xdd, 0x66, 0x1e, 0x4d, 0xd0, 0xc5, 0x55, 0x8d, 0xc0, 0x59, 0x20, 0x2e, 0xe6, 0x46, 0x25, 0xa3, 0xb4, 0xb9, 0x2f, 0xf4, 0xd1, 0x56, 0x97, -+ 0xf1, 0x6c, 0x18, 0xd4, 0xd2, 0x33, 0x8c, 0xfb, 0x49, 0x6e, 0x07, 0x03, 0x52, 0x68, 0x71, 0xc9, 0x78, 0x4b, 0xac, 0x8e, 0xba, 0xe8, 0x27, 0x9c, 0xf2, 0x71, 0x3a, 0xf3, 0xcc, 0x2d, 0x44, 0x0e, -+ 0x8c, 0xd2, 0x00, 0x86, 0x7b, 0x85, 0x18, 0xaa, 0xd3, 0xb9, 0xe2, 0x85, 0x02, 0x7d, 0xa0, 0xad, 0xd9, 0xf0, 0x22, 0x9e, 0xd4, 0xe8, 0x42, 0xd0, 0x5e, 0x22, 0x6a, 0xda, 0xc1, 0x3a, 0x39, 0x52, -+ 0xe3, 0x83, 0x5c, 0x8f, 0xb0, 0xa4, 0x28, 0x74, 0xc9, 0x4c, 0x66, 0x1b, 0x39, 0xdf, 0x7b, 0x72, 0x88, 0x7d, 0x22, 0x7d, 0x58, 0x3c, 0xe6, 0xb3, 0xbd, 0x65, 0xf7, 0x95, 0x10, 0x7b, 0xd0, 0x93, -+ 0x38, 0x9b, 0xfe, 0xfd, 0x17, 0x68, 0xa5, 0x71, 0x6f, 0x68, 0x5b, 0x17, 0x4e, 0xd2, 0x3e, 0x94, 0xa5, 0x95, 0x6e, 0x29, 0xbb, 0x2d, 0xdb, 0x79, 0x21, 0x03, 0xe6, 0x2f, 0x68, 0x92, 0x8a, 0xcc, -+ 0x60, 0x3e, 0xec, 0x2f, 0xf5, 0x6d, 0xb1, 0x4c, 0x08, 0xb7, 0xcb, 0xe4, 0xe2, 0xb4, 0xf2, 0xe0, 0xea, 0xee, 0x54, 0x16, 0x2e, 0x95, 0xbb, 0x35, 0xef, 0x36, 0x30, 0x3e, 0xe3, 0xe6, 0xcc, 0x61, -+ 0x06, 0x13, 0x73, 0x87, 0x6f, 0x7a, 0x09, 0x6a, 0x8a, 0xf5, 0x7d, 0x78, 0x2f, 0x8c, 0x82, 0x03, 0xde, 0x93, 0x42, 0x3a, 0x37, 0x91, 0x22, 0xfe, 0x7d, 0xad, 0x77, 0x0c, 0x36, 0x90, 0xf9, 0x78, -+ 0x22, 0x84, 0x60, 0xd0, 0x25, 0xce, 0x93, 0xb1, 0xb3, 0x36, 0xc5, 0x73, 0xe4, 0xe5, 0x58, 0x40, 0xea, 0x65, 0xcf, 0xdd, 0x61, 0x22, 0xc6, 0x72, 0xc9, 0x12, 0xf5, 0x29, 0x39, 0xd9, 0xea, 0x5b, -+ 0xe0, 0x62, 0x10, 0xf5, 0xe7, 0xed, 0xb6, 0x5b, 0x66, 0x94, 0x5d, 0x70, 0x56, 0xf5, 0x59, 0xa7, 0xd6, 0x92, 0x53, 0xf4, 0xbd, 0xbc, 0x57, 0x9d, 0xe9, 0x64, 0xf3, 0xe9, 0x3a, 0x86, 0xfa, 0x38, -+ 0xb6, 0xa2, 0xc0, 0xb5, 0x43, 0x38, 0xdc, 0xe0, 0x93, 0xf0, 0xb4, 0x68, 0x4e, 0xe3, 0x61, 0x44, 0x9f, 0x16, 0xc2, 0x79, 0xa7, 0x2b, 0x77, 0x31, 0xe4, 0x46, 0x00, 0xa7, 0x02, 0x77, 0x68, 0xfd, -+ 0xd0, 0xf6, 0x43, 0xed, 0x10, 0x06, 0x4b, 0x98, 0xa9, 0xda, 0x03, 0x2f, 0x1f, 0x5d, 0xea, 0xd3, 0x11, 0xe1, 0x77, 0x33, 0x50, 0x94, 0xdb, 0x4e, 0x38, 0x51, 0x4e, 0xae, 0x15, 0xa8, 0xf8, 0xec, -+ 0xf2, 0xf2, 0x41, 0x4e, 0x37, 0x8e, 0xfb, 0xf9, 0x97, 0xb1, 0x06, 0x6b, 0x6f, 0x69, 0xd6, 0x69, 0x09, 0xa4, 0x7e, 0x29, 0x8a, 0x7f, 0xec, 0x96, 0x1a, 0x83, 0x78, 0x2e, 0x0e, 0x47, 0x0f, 0xe0, -+ 0x71, 0xde, 0xcf, 0x4b, 0x26, 0xac, 0xa6, 0xed, 0x68, 0x83, 0x59, 0xe1, 0x08, 0x50, 0x55, 0xfd, 0x2b, 0x5a, 0xe9, 0xf4, 0x91, 0x87, 0x49, 0x89, 0x7a, 0xf1, 0x33, 0x60, 0x60, 0x53, 0xd5, 0xf6, -+ 0xa8, 0x52, 0x8c, 0xcb, 0x31, 0xab, 0x7f, 0x3f, 0x2d, 0x89, 0xa9, 0x5c, 0x5f, 0x05, 0xb1, 0x57, 0x00, 0xe5, 0x32, 0xad, 0x81, 0xd5, 0x9d, 0x9d, 0xb8, 0xa2, 0xc2, 0x9c, 0xac, 0x93, 0x6e, 0x3f, -+ 0x33, 0xdf, 0xe2, 0x4b, 0x0b, 0x1b, 0x71, 0x90, 0x2d, 0xc9, 0xc3, 0x0e, 0xc8, 0xc7, 0x0b, 0xda, 0xba, 0x48, 0x4f, 0xcd, 0x2b, 0x94, 0x6d, 0x73, 0x5f, 0x16, 0xee, 0xad, 0x04, 0x03, 0x1c, 0xaf, -+ 0xde, 0x9e, 0xe0, 0x16, 0x96, 0xec, 0x9f, 0x0a, 0x8d, 0x5f, 0x36, 0xb6, 0x9c, 0x64, 0x2f, 0xfd, 0x0a, 0xd0, 0xd2, 0x54, 0x4f, 0x5e, 0x7f, 0xd8, 0x9a, 0x80, 0x49, 0x8e, 0xf6, 0x8e, 0x18, 0x16, -+ 0x17, 0xfa, 0xd4, 0x1e, 0x0b, 0xd5, 0x9b, 0xaa, 0xff, 0xee, 0xfe, 0x2f, 0x99, 0x72, 0x4c, 0x71, 0x9d, 0x47, 0xa2, 0xec, 0xba, 0x72, 0x1d, 0x76, 0xf2, 0x37, 0xeb, 0xa7, 0x3d, 0xb4, 0x7d, 0x88, -+ 0xb6, 0x99, 0xe3, 0x58, 0x2b, 0x07, 0x3c, 0x7e, 0xad, 0x2a, 0x5b, 0x3c, 0xf0, 0x24, 0x46, 0x63, 0x96, 0xf9, 0xf2, 0x82, 0x6c, 0xb7, 0x54, 0xf6, 0x60, 0x18, 0xe9, 0x50, 0x3f, 0x4a, 0xd1, 0xf9, -+ 0xd9, 0x21, 0x21, 0xaa, 0x99, 0x56, 0x50, 0x60, 0x51, 0xd5, 0x96, 0xff, 0xd4, 0x67, 0xe1, 0xaa, 0x8d, 0x96, 0x4c, 0x17, 0x67, 0xc9, 0x25, 0xb4, 0x68, 0xbb, 0xc9, 0x85, 0x06, 0x00, 0xc8, 0x43, -+ 0x49, 0x05, 0x41, 0xe8, 0x55, 0x5a, 0x3d, 0x8b, 0xd9, 0xf1, 0x87, 0x91, 0xef, 0x9e, 0xbd, 0x35, 0x94, 0xe7, 0x4c, 0x1f, 0xe3, 0xd3, 0xb8, 0x09, 0x40, 0xa8, 0xa0, 0x79, 0xf8, 0xd2, 0xca, 0x8d, -+ 0x30, 0x13, 0x4f, 0xc6, 0x6f, 0x87, 0x00, 0x81, 0x26, 0xe4, 0x3b, 0xd0, 0x6e, 0xb6, 0xe4, 0x1c, 0x3a, 0x70, 0xfa, 0x47, 0x39, 0x31, 0x9b, 0xf1, 0xa9, 0x32, 0xf0, 0x2c, 0x30, 0x64, 0x56, 0x56, -+ 0x0c, 0xda, 0x44, 0xdd, 0xac, 0x43, 0xed, 0x6d, 0x90, 0x04, 0x45, 0xf5, 0xbf, 0x85, 0xbb, 0x0c, 0xe3, 0x25, 0x94, 0x74, 0x36, 0xe0, 0xd0, 0x68, 0x5e, 0x41, 0xb1, 0x6b, 0xc7, 0x16, 0x95, 0x18, -+ 0x25, 0x9e, 0x57, 0x34, 0xfd, 0xce, 0x08, 0x0f, 0xfe, 0x85, 0x19, 0x1b, 0x1d, 0x8d, 0x8d, 0xe4, 0xdb, 0x48, 0x14, 0x3f, 0xb5, 0x64, 0x03, 0x8a, 0xce, 0x80, 0x10, 0x4d, 0x3a, 0x8d, 0x07, 0x12, -+ 0x45, 0xe2, 0xaa, 0x56, 0xc7, 0x19, 0x33, 0xf4, 0xdc, 0xf9, 0x25, 0xee, 0xe8, 0x44, 0xc8, 0x0f, 0xdd, 0xf3, 0x25, 0x1f, 0x74, 0x00, 0x6a, 0x23, 0x41, 0x33, 0x18, 0xbb, 0xfd, 0x2e, 0xd9, 0xe0, -+ 0x53, 0x51, 0xb5, 0xaa, 0xeb, 0xcc, 0x77, 0xcf, 0xac, 0x8d, 0x5f, 0x03, 0x64, 0x23, 0x1a, 0x50, 0xea, 0x86, 0x47, 0xc7, 0x2f, 0x71, 0x3e, 0x81, 0x7a, 0x20, 0x75, 0x32, 0x30, 0x29, 0xe3, 0xb8, -+ 0x8b, 0x72, 0x44, 0x22, 0x64, 0xc5, 0x97, 0xb0, 0xf1, 0xfc, 0x09, 0xf9, 0x40, 0x1c, 0xe8, 0x8a, 0xc9, 0x7c, 0x55, 0x22, 0xa5, 0x63, 0x64, 0x52, 0x3c, 0x37, 0xfe, 0xa2, 0xd6, 0xbd, 0x06, 0xb2, -+ }, -+ -+ }, -+}; -+ -+#define KYBER_TV_NUM sizeof(kyber_tv)/sizeof(struct KYBER_TEST_VECTOR) -+ -diff --git a/testcases/crypto/kyber_func.c b/testcases/crypto/kyber_func.c -new file mode 100644 -index 00000000..2e6177b3 ---- /dev/null -+++ b/testcases/crypto/kyber_func.c -@@ -0,0 +1,1176 @@ -+/* -+ * COPYRIGHT (c) International Business Machines Corp. 2022 -+ * -+ * This program is provided under the terms of the Common Public License, -+ * version 1.0 (CPL-1.0). Any use, reproduction or distribution for this -+ * software constitutes recipient's acceptance of CPL-1.0 terms which can be -+ * found in the file LICENSE file or at -+ * https://opensource.org/licenses/cpl1.0.php -+ */ -+ -+#include -+ -+#include -+#include -+#include -+#include -+ -+#include "pkcs11types.h" -+#include "regress.h" -+#include "common.c" -+#include "defs.h" -+#include "kyber.h" -+#include "mechtable.h" -+#include "pqc_oids.h" -+#include "ec_curves.h" -+ -+/** -+ * Experimental Support for Kyber keys and KEM -+ * with oid = 1.3.6.1.4.1.2.267.5.xxx -+ */ -+ -+const CK_BYTE kyber_r2_768[] = OCK_KYBER_R2_768; -+const CK_ULONG kyber_r2_768_len = sizeof(kyber_r2_768); -+const CK_BYTE kyber_r2_1024[] = OCK_KYBER_R2_1024; -+const CK_ULONG kyber_r2_1024_len = sizeof(kyber_r2_1024); -+ -+const CK_BYTE prime256v1[] = OCK_PRIME256V1; -+ -+typedef struct variant_info { -+ const char *name; -+ CK_ULONG keyform; -+ const CK_BYTE *oid; -+ CK_ULONG oid_len; -+} _variant_info; -+ -+const _variant_info variants[] = { -+ { "DEFAULT (KYBER_R2_1024)", 0, NULL, 0 }, -+ { "KYBER_R2_768", CK_IBM_KYBER_KEYFORM_ROUND2_768, -+ kyber_r2_768, kyber_r2_768_len }, -+ { "KYBER_R2_1024", CK_IBM_KYBER_KEYFORM_ROUND2_1024, -+ kyber_r2_1024, kyber_r2_1024_len }, -+}; -+ -+const CK_ULONG num_variants = sizeof(variants) / sizeof(_variant_info); -+ -+typedef struct kemParam { -+ CK_IBM_KYBER_KDF_TYPE kdf; -+ CK_ULONG secret_key_len; -+ CK_ULONG shard_data_len; -+ CK_BYTE shared_data[32]; -+ CK_BBOOL hybrid; -+} _kemParam; -+ -+const _kemParam kemInput[] = { -+ { CKD_NULL, 32, 0, {0x00}, CK_FALSE }, -+ { CKD_IBM_HYBRID_SHA1_KDF, 16, 0, {0x00}, CK_TRUE }, -+ { CKD_IBM_HYBRID_SHA1_KDF, 32, 16, -+ { 0x32,0x3F,0xA3,0x16,0x9D,0x8E,0x9C,0x65,0x93,0xF5,0x94,0x76,0xBC,0x14,0x20,0x00 }, -+ CK_TRUE }, -+ { CKD_IBM_HYBRID_SHA224_KDF, 16, 0, {0x00}, CK_TRUE }, -+ { CKD_IBM_HYBRID_SHA224_KDF, 32, 16, -+ { 0x32,0x3F,0xA3,0x16,0x9D,0x8E,0x9C,0x65,0x93,0xF5,0x94,0x76,0xBC,0x14,0x20,0x00 }, -+ CK_TRUE }, -+ { CKD_IBM_HYBRID_SHA256_KDF, 16, 0, {0x00}, CK_TRUE }, -+ { CKD_IBM_HYBRID_SHA256_KDF, 32, 16, -+ { 0x32,0x3F,0xA3,0x16,0x9D,0x8E,0x9C,0x65,0x93,0xF5,0x94,0x76,0xBC,0x14,0x20,0x00 }, -+ CK_TRUE }, -+ { CKD_IBM_HYBRID_SHA384_KDF, 16, 0, {0x00}, CK_TRUE }, -+ { CKD_IBM_HYBRID_SHA384_KDF, 32, 16, -+ { 0x32,0x3F,0xA3,0x16,0x9D,0x8E,0x9C,0x65,0x93,0xF5,0x94,0x76,0xBC,0x14,0x20,0x00 }, -+ CK_TRUE }, -+ { CKD_IBM_HYBRID_SHA512_KDF, 16, 0, {0x00}, CK_TRUE }, -+ { CKD_IBM_HYBRID_SHA512_KDF, 32, 16, -+ { 0x32,0x3F,0xA3,0x16,0x9D,0x8E,0x9C,0x65,0x93,0xF5,0x94,0x76,0xBC,0x14,0x20,0x00 }, -+ CK_TRUE }, -+}; -+ -+static const char *p11_get_ckd(CK_EC_KDF_TYPE kdf) -+{ -+ switch (kdf) { -+ case CKD_NULL: -+ return "CKD_NULL"; -+ case CKD_SHA1_KDF: -+ return "CKD_SHA1_KDF"; -+ case CKD_SHA224_KDF: -+ return "CKD_SHA224_KDF"; -+ case CKD_SHA256_KDF: -+ return "CKD_SHA256_KDF"; -+ case CKD_SHA384_KDF: -+ return "CKD_SHA384_KDF"; -+ case CKD_SHA512_KDF: -+ return "CKD_SHA512_KDF"; -+ case CKD_IBM_HYBRID_NULL: -+ return "CKD_IBM_HYBRID_NULL"; -+ case CKD_IBM_HYBRID_SHA1_KDF: -+ return "CKD_IBM_HYBRID_SHA1_KDF"; -+ case CKD_IBM_HYBRID_SHA224_KDF: -+ return "CKD_IBM_HYBRID_SHA224_KDF"; -+ case CKD_IBM_HYBRID_SHA256_KDF: -+ return "CKD_IBM_HYBRID_SHA256_KDF"; -+ case CKD_IBM_HYBRID_SHA384_KDF: -+ return "CKD_IBM_HYBRID_SHA384_KDF"; -+ case CKD_IBM_HYBRID_SHA512_KDF: -+ return "CKD_IBM_HYBRID_SHA512_KDF"; -+ default: -+ return "UNKNOWN"; -+ } -+} -+ -+#define NUM_KEM_INPUTS sizeof(kemInput)/sizeof(_kemParam) -+ -+/* -+ * Perform a HMAC sign to verify that the key is usable. -+ */ -+CK_RV run_HMACSign(CK_SESSION_HANDLE session, CK_OBJECT_HANDLE h_key1, -+ CK_OBJECT_HANDLE h_key2, CK_ULONG key_len) -+{ -+ CK_MECHANISM mech = { .mechanism = CKM_SHA_1_HMAC, -+ .pParameter = NULL, .ulParameterLen = 0 }; -+ CK_BYTE data[32] = { 0 }; -+ CK_BYTE mac[SHA1_HASH_SIZE] = { 0 }; -+ CK_ULONG mac_len = sizeof(mac); -+ CK_RV rc = CKR_OK; -+ -+ if (!mech_supported(SLOT_ID, CKM_SHA_1_HMAC)) { -+ testcase_notice("Mechanism CKM_SHA_1_HMAC is not supported with slot " -+ "%lu. Skipping key check", SLOT_ID); -+ return CKR_OK; -+ } -+ if (!check_supp_keysize(SLOT_ID, CKM_SHA_1_HMAC, key_len * 8)) { -+ testcase_notice("Mechanism CKM_SHA_1_HMAC can not be used with keys " -+ "of size %lu. Skipping key check", key_len); -+ return CKR_OK; -+ } -+ -+ rc = funcs->C_SignInit(session, &mech, h_key1); -+ if (rc != CKR_OK) { -+ testcase_notice("C_SignInit rc=%s", p11_get_ckr(rc)); -+ goto error; -+ } -+ -+ /** do signing **/ -+ rc = funcs->C_Sign(session, data, sizeof(data), mac, &mac_len); -+ if (rc != CKR_OK) { -+ testcase_notice("C_Sign rc=%s", p11_get_ckr(rc)); -+ goto error; -+ } -+ -+ rc = funcs->C_VerifyInit(session, &mech, h_key2); -+ if (rc != CKR_OK) { -+ testcase_notice("C_VerifyInit rc=%s", p11_get_ckr(rc)); -+ goto error; -+ } -+ -+ /** do verify **/ -+ rc = funcs->C_Verify(session, data, sizeof(data), mac, mac_len); -+ if (rc != CKR_OK) { -+ testcase_notice("C_Verify rc=%s", p11_get_ckr(rc)); -+ goto error; -+ } -+ -+error: -+ return rc; -+} -+ -+CK_RV ecdh_derive_secret(CK_SESSION_HANDLE session, CK_ULONG secret_key_len, -+ CK_EC_KDF_TYPE kdf, CK_OBJECT_HANDLE *hybrid_key) -+{ -+ CK_OBJECT_HANDLE publ_key = CK_INVALID_HANDLE; -+ CK_OBJECT_HANDLE priv_key = CK_INVALID_HANDLE; -+ CK_ECDH1_DERIVE_PARAMS ecda_params; -+ CK_MECHANISM mech; -+ CK_RV rc; -+ -+ CK_BYTE pubkey_value[256]; -+ CK_ATTRIBUTE extr_tmpl[] = { -+ {CKA_EC_POINT, pubkey_value, sizeof(pubkey_value)}, -+ }; -+ CK_ULONG extr_tmpl_len = sizeof(extr_tmpl)/sizeof(CK_ATTRIBUTE); -+ -+ CK_OBJECT_CLASS class = CKO_SECRET_KEY; -+ CK_KEY_TYPE key_type = CKK_GENERIC_SECRET; -+ CK_BBOOL true = CK_TRUE; -+ CK_BBOOL false = CK_FALSE; -+ CK_ATTRIBUTE derive_tmpl[] = { -+ {CKA_CLASS, &class, sizeof(class)}, -+ {CKA_KEY_TYPE, &key_type, sizeof(key_type)}, -+ {CKA_SENSITIVE, &false, sizeof(false)}, -+ {CKA_VALUE_LEN, &secret_key_len, sizeof(CK_ULONG)}, -+ {CKA_IBM_USE_AS_DATA, &true, sizeof(true)}, -+ }; -+ CK_ULONG secret_tmpl_len = -+ sizeof(derive_tmpl) / sizeof(CK_ATTRIBUTE); -+ -+ if (!mech_supported(SLOT_ID, CKM_EC_KEY_PAIR_GEN)) { -+ testcase_notice("Slot %u doesn't support CKM_EC_KEY_PAIR_GEN\n", -+ (unsigned int) SLOT_ID); -+ return CKR_FUNCTION_NOT_SUPPORTED; -+ } -+ -+ rc = generate_EC_KeyPair(session, (CK_BYTE *)prime256v1, sizeof(prime256v1), -+ &publ_key, &priv_key); -+ if (rc != CKR_OK) { -+ testcase_notice("generate_EC_KeyPair rc=%s", p11_get_ckr(rc)); -+ goto error; -+ } -+ -+ rc = funcs->C_GetAttributeValue(session, publ_key, extr_tmpl, extr_tmpl_len); -+ if (rc != CKR_OK) { -+ testcase_notice("C_GetAttributeValue: rc = %s", p11_get_ckr(rc)); -+ goto error; -+ } -+ -+ mech.mechanism = CKM_ECDH1_DERIVE; -+ mech.pParameter = &ecda_params; -+ mech.ulParameterLen = sizeof(ecda_params); -+ -+ memset(&ecda_params, 0, sizeof(ecda_params)); -+ ecda_params.kdf = kdf; -+ ecda_params.pPublicData = extr_tmpl[0].pValue; -+ ecda_params.ulPublicDataLen = extr_tmpl[0].ulValueLen; -+ -+ rc = funcs->C_DeriveKey(session, &mech, priv_key, derive_tmpl, -+ secret_tmpl_len, hybrid_key); -+ if (rc != CKR_OK) { -+ testcase_notice("C_DeriveKey: rc = %s", p11_get_ckr(rc)); -+ goto error; -+ } -+ -+error: -+ if (publ_key != CK_INVALID_HANDLE) -+ funcs->C_DestroyObject(session, publ_key); -+ if (priv_key != CK_INVALID_HANDLE) -+ funcs->C_DestroyObject(session, priv_key); -+ -+ return rc; -+} -+ -+CK_RV run_EnDecapsulateKyber(CK_SESSION_HANDLE session, -+ CK_OBJECT_HANDLE priv_key, -+ CK_OBJECT_HANDLE publ_key, -+ CK_ULONG secret_key_len, -+ CK_IBM_KYBER_KDF_TYPE kdf, -+ CK_BBOOL hybrid, -+ const CK_BYTE *pSharedData, -+ CK_ULONG ulSharedDataLen, -+ const CK_BYTE *pCipher, -+ CK_ULONG ulCipherLen, -+ const CK_BYTE *pExpectedSecret, -+ CK_ULONG ulExpectedSecret) -+{ -+ CK_MECHANISM mech; -+ CK_MECHANISM_INFO mech_info; -+ CK_IBM_KYBER_PARAMS kyber_params; -+ CK_BYTE *cipher = NULL; -+ CK_ULONG cipher_len = 0; -+ CK_OBJECT_HANDLE secret_key1 = CK_INVALID_HANDLE; -+ CK_OBJECT_HANDLE secret_key2 = CK_INVALID_HANDLE; -+ CK_OBJECT_HANDLE hybrid_key = CK_INVALID_HANDLE; -+ CK_OBJECT_HANDLE expected_secret_key = CK_INVALID_HANDLE; -+ CK_RV rc; -+ -+ CK_OBJECT_CLASS class = CKO_SECRET_KEY; -+ CK_KEY_TYPE key_type = CKK_GENERIC_SECRET; -+ CK_BBOOL true = CK_TRUE; -+ CK_BBOOL false = CK_FALSE; -+ CK_ATTRIBUTE derive_tmpl[] = { -+ {CKA_CLASS, &class, sizeof(class)}, -+ {CKA_KEY_TYPE, &key_type, sizeof(key_type)}, -+ {CKA_SENSITIVE, &false, sizeof(false)}, -+ {CKA_VALUE_LEN, &secret_key_len, sizeof(secret_key_len)}, -+ {CKA_SIGN, &true, sizeof(true)}, -+ {CKA_VERIFY, &true, sizeof(true)}, -+ }; -+ CK_ULONG secret_tmpl_len = sizeof(derive_tmpl) / sizeof(CK_ATTRIBUTE); -+ -+ mech.mechanism = CKM_IBM_KYBER; -+ mech.ulParameterLen = sizeof(kyber_params); -+ mech.pParameter = &kyber_params; -+ -+ /* Query the slot, check if this mech if supported */ -+ rc = funcs->C_GetMechanismInfo(SLOT_ID, mech.mechanism, &mech_info); -+ if (rc != CKR_OK) { -+ if (rc == CKR_MECHANISM_INVALID) { -+ /* no support for Kyber? skip */ -+ testcase_skip("Slot %u doesn't support %s", -+ (unsigned int) SLOT_ID, -+ p11_get_ckm(&mechtable_funcs, mech.mechanism)); -+ rc = CKR_OK; -+ goto testcase_cleanup; -+ } else { -+ testcase_error("C_GetMechanismInfo() rc = %s", p11_get_ckr(rc)); -+ goto testcase_cleanup; -+ } -+ } -+ -+ if (hybrid) { -+ rc = ecdh_derive_secret(session, 32, CKD_IBM_HYBRID_NULL, &hybrid_key); -+ if (rc != CKR_OK) { -+ testcase_error("ecdh_derive_secret() rc = %s", p11_get_ckr(rc)); -+ goto testcase_cleanup; -+ } -+ } -+ -+ if (pCipher != NULL && ulCipherLen != 0) { -+ cipher_len = ulCipherLen; -+ cipher = (CK_BYTE *)pCipher; -+ goto decapsulate; -+ } -+ -+ /* Perform encapsulation with public key */ -+ memset(&kyber_params, 0, sizeof(kyber_params)); -+ kyber_params.ulVersion = CK_IBM_KYBER_KEM_VERSION; -+ kyber_params.mode = CK_IBM_KYBER_KEM_ENCAPSULATE; -+ kyber_params.kdf = kdf; -+ kyber_params.pSharedData = (CK_BYTE *)pSharedData; -+ kyber_params.ulSharedDataLen = ulSharedDataLen; -+ kyber_params.bPrepend = (hybrid_key != CK_INVALID_HANDLE); -+ kyber_params.hSecret = hybrid_key; -+ -+ /* Size query */ -+ rc = funcs->C_DeriveKey(session, &mech, publ_key, derive_tmpl, -+ secret_tmpl_len, &secret_key1); -+ if (rc != CKR_BUFFER_TOO_SMALL) { -+ testcase_error("C_DeriveKey (size query) rc=%s (expected CKR_BUFFER_TOO_SMALL)", -+ p11_get_ckr(rc)); -+ goto testcase_cleanup; -+ } -+ -+ cipher_len = kyber_params.ulCipherLen; -+ cipher = calloc(sizeof(CK_BYTE), cipher_len); -+ if (cipher == NULL) { -+ testcase_error("Can't allocate memory for %lu bytes", -+ sizeof(CK_BYTE) * cipher_len); -+ rc = CKR_HOST_MEMORY; -+ goto testcase_cleanup; -+ } -+ -+ kyber_params.ulCipherLen = cipher_len; -+ kyber_params.pCipher = cipher; -+ -+ /* Encapsulation */ -+ rc = funcs->C_DeriveKey(session, &mech, publ_key, derive_tmpl, -+ secret_tmpl_len, &secret_key1); -+ if (rc != CKR_OK) { -+ testcase_error("C_DeriveKey (encapsulation) rc=%s", p11_get_ckr(rc)); -+ goto testcase_cleanup; -+ } -+ -+decapsulate: -+ /* Perform Decapsulation with private key */ -+ memset(&kyber_params, 0, sizeof(kyber_params)); -+ kyber_params.ulVersion = CK_IBM_KYBER_KEM_VERSION; -+ kyber_params.mode = CK_IBM_KYBER_KEM_DECAPSULATE; -+ kyber_params.kdf = kdf; -+ kyber_params.pSharedData = (CK_BYTE *)pSharedData; -+ kyber_params.ulSharedDataLen = ulSharedDataLen; -+ kyber_params.bPrepend = (hybrid_key != CK_INVALID_HANDLE); -+ kyber_params.hSecret = hybrid_key; -+ kyber_params.ulCipherLen = cipher_len; -+ kyber_params.pCipher = cipher; -+ -+ rc = funcs->C_DeriveKey(session, &mech, priv_key, derive_tmpl, -+ secret_tmpl_len, &secret_key2); -+ if (rc != CKR_OK) { -+ testcase_error("C_DeriveKey (decapsulation) rc=%s", p11_get_ckr(rc)); -+ goto testcase_cleanup; -+ } -+ -+ if (secret_key1 != CK_INVALID_HANDLE) { -+ rc = run_HMACSign(session, secret_key1, secret_key2, secret_key_len); -+ if (rc != CKR_OK) { -+ testcase_fail("Derived keys are not usable or not the same: %s", -+ p11_get_ckr(rc)); -+ goto testcase_cleanup; -+ } -+ } -+ -+ if (pExpectedSecret != NULL && ulExpectedSecret != 0) { -+ rc = create_GenericSecretKey(session, (CK_BYTE *)pExpectedSecret, -+ ulExpectedSecret, &expected_secret_key); -+ if (rc != CKR_OK) { -+ testcase_fail("create_GenericSecretKey failed: %s", -+ p11_get_ckr(rc)); -+ goto testcase_cleanup; -+ } -+ -+ rc = run_HMACSign(session, expected_secret_key, secret_key2, -+ secret_key_len); -+ if (rc != CKR_OK) { -+ testcase_fail("Derived secret key is not the expected one: %s", -+ p11_get_ckr(rc)); -+ goto testcase_cleanup; -+ } -+ } -+ -+ rc = CKR_OK; -+ -+testcase_cleanup: -+ if (cipher != NULL && cipher != pCipher) -+ free(cipher); -+ if (secret_key1 != CK_INVALID_HANDLE) -+ funcs->C_DestroyObject(session, secret_key1); -+ if (secret_key2 != CK_INVALID_HANDLE) -+ funcs->C_DestroyObject(session, secret_key2); -+ if (hybrid_key != CK_INVALID_HANDLE) -+ funcs->C_DestroyObject(session, hybrid_key); -+ if (expected_secret_key != CK_INVALID_HANDLE) -+ funcs->C_DestroyObject(session, expected_secret_key); -+ -+ return rc; -+} -+ -+CK_RV run_EncrypDecryptKyber(CK_SESSION_HANDLE session, -+ CK_OBJECT_HANDLE priv_key, -+ CK_OBJECT_HANDLE publ_key) -+{ -+ CK_MECHANISM mech; -+ CK_BYTE_PTR data = NULL, encrypted = NULL, decrypted = NULL; -+ CK_ULONG i, datalen, encrypted_len, decrypted_len; -+ CK_MECHANISM_INFO mech_info; -+ CK_RV rc; -+ -+ mech.mechanism = CKM_IBM_KYBER; -+ mech.ulParameterLen = 0; -+ mech.pParameter = NULL; -+ -+ datalen = 32; /* Kyber can encrypt blocks of 32 bytes */ -+ -+ /* Query the slot, check if this mech if supported */ -+ rc = funcs->C_GetMechanismInfo(SLOT_ID, mech.mechanism, &mech_info); -+ if (rc != CKR_OK) { -+ if (rc == CKR_MECHANISM_INVALID) { -+ /* no support for Kyber? skip */ -+ testcase_skip("Slot %u doesn't support %s", -+ (unsigned int) SLOT_ID, -+ p11_get_ckm(&mechtable_funcs, mech.mechanism)); -+ rc = CKR_OK; -+ goto testcase_cleanup; -+ } else { -+ testcase_error("C_GetMechanismInfo() rc = %s", p11_get_ckr(rc)); -+ goto testcase_cleanup; -+ } -+ } -+ -+ data = calloc(sizeof(CK_BYTE), datalen); -+ if (data == NULL) { -+ testcase_error("Can't allocate memory for %lu bytes", -+ sizeof(CK_BYTE) * datalen); -+ rc = CKR_HOST_MEMORY; -+ goto testcase_cleanup; -+ } -+ -+ for (i = 0; i < datalen; i++) { -+ data[i] = (i + 1) % 255; -+ } -+ -+ /* Encrypt */ -+ rc = funcs->C_EncryptInit(session, &mech, publ_key); -+ if (rc != CKR_OK) { -+ testcase_error("C_EncryptInit rc=%s", p11_get_ckr(rc)); -+ goto testcase_cleanup; -+ } -+ -+ rc = funcs->C_Encrypt(session, data, datalen, NULL, &encrypted_len); -+ if (rc != CKR_OK) { -+ testcase_error("C_Encrypt rc=%s", p11_get_ckr(rc)); -+ goto testcase_cleanup; -+ } -+ -+ encrypted = calloc(sizeof(CK_BYTE), encrypted_len); -+ if (encrypted == NULL) { -+ testcase_error("Can't allocate memory for %lu bytes", -+ sizeof(CK_BYTE) * encrypted_len); -+ rc = CKR_HOST_MEMORY; -+ goto testcase_cleanup; -+ } -+ -+ rc = funcs->C_Encrypt(session, data, datalen, encrypted, &encrypted_len); -+ if (rc != CKR_OK) { -+ testcase_error("C_Encrypt rc=%s", p11_get_ckr(rc)); -+ goto testcase_cleanup; -+ } -+ -+ /* Decrypt */ -+ rc = funcs->C_DecryptInit(session, &mech, priv_key); -+ if (rc != CKR_OK) { -+ testcase_error("C_DecryptInit rc=%s", p11_get_ckr(rc)); -+ goto testcase_cleanup; -+ } -+ -+ rc = funcs->C_Decrypt(session, encrypted, encrypted_len, -+ NULL, &decrypted_len); -+ if (rc != CKR_OK) { -+ testcase_error("C_Decrypt rc=%s", p11_get_ckr(rc)); -+ goto testcase_cleanup; -+ } -+ -+ decrypted = calloc(sizeof(CK_BYTE), decrypted_len); -+ if (decrypted == NULL) { -+ testcase_error("Can't allocate memory for %lu bytes", -+ sizeof(CK_BYTE) * decrypted_len); -+ rc = CKR_HOST_MEMORY; -+ goto testcase_cleanup; -+ } -+ -+ rc = funcs->C_Decrypt(session, encrypted, encrypted_len, -+ decrypted, &decrypted_len); -+ if (rc != CKR_OK) { -+ testcase_error("C_Decrypt rc=%s", p11_get_ckr(rc)); -+ goto testcase_cleanup; -+ } -+ -+ if (decrypted_len != datalen || -+ memcmp(decrypted, data, datalen) != 0) { -+ testcase_error("Decrypted data (%lu bytes) does not match original data (%lu bytes)", -+ decrypted_len, datalen); -+ goto testcase_cleanup; -+ } -+ -+ rc = CKR_OK; -+ -+testcase_cleanup: -+ if (data) -+ free(data); -+ if (encrypted) -+ free(encrypted); -+ if (decrypted) -+ free(decrypted); -+ -+ return rc; -+} -+ -+CK_RV run_GenerateKyberKeyPairEnDecryptKEM(void) -+{ -+ CK_MECHANISM mech; -+ CK_OBJECT_HANDLE publ_key = CK_INVALID_HANDLE, priv_key = CK_INVALID_HANDLE; -+ CK_SESSION_HANDLE session; -+ CK_BYTE user_pin[PKCS11_MAX_PIN_LEN]; -+ CK_ULONG user_pin_len, i, j; -+ CK_FLAGS flags; -+ CK_MECHANISM_INFO mech_info; -+ CK_RV rc; -+ -+ testcase_rw_session(); -+ testcase_user_login(); -+ -+ mech.mechanism = CKM_IBM_KYBER; -+ mech.ulParameterLen = 0; -+ mech.pParameter = NULL; -+ -+ /* query the slot, check if this mech is supported */ -+ rc = funcs->C_GetMechanismInfo(SLOT_ID, mech.mechanism, &mech_info); -+ if (rc != CKR_OK) { -+ if (rc == CKR_MECHANISM_INVALID) { -+ /* no support for Kyber key gen? skip */ -+ testcase_skip("Slot %u doesn't support CKM_IBM_KYBER ", -+ (unsigned int) SLOT_ID); -+ rc = CKR_OK; -+ goto testcase_cleanup; -+ } else { -+ testcase_error("C_GetMechanismInfo() rc = %s", p11_get_ckr(rc)); -+ goto testcase_cleanup; -+ } -+ } -+ -+ for (i = 0; i < 2 * num_variants; i++) { -+ /* Setup attributes for public/private Kyber key */ -+ CK_BBOOL attr_enc = TRUE; -+ CK_BBOOL attr_dec = TRUE; -+ CK_BBOOL attr_derive = TRUE; -+ CK_ATTRIBUTE kyber_attr_private_keyform[] = { -+ {CKA_DECRYPT, &attr_dec, sizeof(CK_BBOOL)}, -+ {CKA_DERIVE, &attr_derive, sizeof(CK_BBOOL)}, -+ {CKA_IBM_KYBER_KEYFORM, -+ (CK_BYTE *)&variants[i % num_variants].keyform, sizeof(CK_ULONG)}, -+ }; -+ CK_ATTRIBUTE kyber_attr_public_keyform[] = { -+ {CKA_ENCRYPT, &attr_enc, sizeof(CK_BBOOL)}, -+ {CKA_DERIVE, &attr_derive, sizeof(CK_BBOOL)}, -+ {CKA_IBM_KYBER_KEYFORM, -+ (CK_BYTE *)&variants[i % num_variants].keyform, sizeof(CK_ULONG)}, -+ }; -+ CK_ATTRIBUTE kyber_attr_private_mode[] = { -+ {CKA_DECRYPT, &attr_dec, sizeof(CK_BBOOL)}, -+ {CKA_DERIVE, &attr_derive, sizeof(CK_BBOOL)}, -+ {CKA_IBM_KYBER_MODE, -+ (CK_BYTE *)variants[i % num_variants].oid, variants[i % num_variants].oid_len}, -+ }; -+ CK_ATTRIBUTE kyber_attr_public_mode[] = { -+ {CKA_ENCRYPT, &attr_enc, sizeof(CK_BBOOL)}, -+ {CKA_DERIVE, &attr_derive, sizeof(CK_BBOOL)}, -+ {CKA_IBM_KYBER_MODE, -+ (CK_BYTE *)variants[i % num_variants].oid, variants[i % num_variants].oid_len}, -+ }; -+ CK_ATTRIBUTE *kyber_attr_private = i < num_variants ? -+ kyber_attr_private_keyform : -+ kyber_attr_private_mode; -+ CK_ATTRIBUTE *kyber_attr_public = i < num_variants ? -+ kyber_attr_public_keyform : -+ kyber_attr_public_mode; -+ CK_ULONG num_kyber_attrs = -+ (variants[i % num_variants].oid == NULL) ? 2 : 3; -+ -+ testcase_begin("Starting Kyber generate key pair with %s.", -+ variants[i % num_variants].name); -+ -+ /* Generate Kyber key pair */ -+ rc = funcs->C_GenerateKeyPair(session, &mech, -+ kyber_attr_public, num_kyber_attrs, -+ kyber_attr_private, num_kyber_attrs, -+ &publ_key, &priv_key); -+ testcase_new_assertion(); -+ if (rc != CKR_OK) { -+ if (rc == CKR_KEY_SIZE_RANGE) { -+ testcase_skip("C_GenerateKeyPair with %s (%s) not supported", -+ variants[i % num_variants].name, -+ i < num_variants ? "KEYFORM" : "MODE"); -+ goto next; -+ } else { -+ testcase_fail("C_GenerateKeyPair with %s (%s) failed, rc=%s", -+ variants[i % num_variants].name, -+ i < num_variants ? "KEYFORM" : "MODE", p11_get_ckr(rc)); -+ goto testcase_cleanup; -+ } -+ } -+ testcase_pass("*Generate Kyber key pair with %s (%s) passed.", -+ variants[i % num_variants].name, -+ i < num_variants ? "KEYFORM" : "MODE"); -+ -+ testcase_new_assertion(); -+ rc = run_EncrypDecryptKyber(session, priv_key, publ_key); -+ if (rc != 0) { -+ testcase_fail("run_EncrypDecryptKyber with %s failed.", -+ variants[i % num_variants].name); -+ goto next; -+ } -+ testcase_pass("*Encrypt & decrypt with %s passed.", -+ variants[i % num_variants].name); -+ -+ for (j = 0; j < NUM_KEM_INPUTS; j++) { -+ testcase_new_assertion(); -+ rc = run_EnDecapsulateKyber(session, priv_key, publ_key, -+ kemInput[j].secret_key_len, -+ kemInput[j].kdf, -+ kemInput[j].hybrid, -+ kemInput[j].shared_data, -+ kemInput[j].shard_data_len, -+ NULL, 0, NULL, 0); -+ if (rc != 0) { -+ testcase_fail("run_EnDecapsulateKyber with %s, %s, Shared data len %lu (index %lu) failed.", -+ variants[i % num_variants].name, -+ p11_get_ckd(kemInput[j].kdf), -+ kemInput[j].shard_data_len, -+ j); -+ goto next; -+ } -+ testcase_pass("*%sEncapsulate & Decapsulate (KEM) with %s, %s, Shared data len %lu (index %lu) passed.", -+ kemInput[j].hybrid ? "Hybrid " : "", -+ variants[i % num_variants].name, -+ p11_get_ckd(kemInput[j].kdf), -+ kemInput[j].shard_data_len, -+ j); -+ } -+ -+next: -+ if (publ_key != CK_INVALID_HANDLE) -+ funcs->C_DestroyObject(session, publ_key); -+ publ_key = CK_INVALID_HANDLE; -+ if (priv_key != CK_INVALID_HANDLE) -+ funcs->C_DestroyObject(session, priv_key); -+ priv_key = CK_INVALID_HANDLE; -+ } -+ -+ rc = CKR_OK; -+ -+testcase_cleanup: -+ if (publ_key != CK_INVALID_HANDLE) -+ funcs->C_DestroyObject(session, publ_key); -+ if (priv_key != CK_INVALID_HANDLE) -+ funcs->C_DestroyObject(session, priv_key); -+ -+ testcase_user_logout(); -+ testcase_close_session(); -+ -+ return rc; -+} -+ -+CK_RV run_ImportKyberKeyPairKEM(void) -+{ -+ CK_MECHANISM mech; -+ CK_OBJECT_HANDLE publ_key = CK_INVALID_HANDLE, priv_key = CK_INVALID_HANDLE; -+ CK_SESSION_HANDLE session; -+ CK_BYTE user_pin[PKCS11_MAX_PIN_LEN]; -+ CK_ULONG user_pin_len, i; -+ CK_FLAGS flags; -+ CK_MECHANISM_INFO mech_info; -+ CK_RV rc; -+ -+ testcase_rw_session(); -+ testcase_user_login(); -+ -+ mech.mechanism = CKM_IBM_KYBER; -+ mech.ulParameterLen = 0; -+ mech.pParameter = NULL; -+ -+ /* query the slot, check if this mech is supported */ -+ rc = funcs->C_GetMechanismInfo(SLOT_ID, mech.mechanism, &mech_info); -+ if (rc != CKR_OK) { -+ if (rc == CKR_MECHANISM_INVALID) { -+ /* no support for Kyber key gen? skip */ -+ testcase_skip("Slot %u doesn't support CKM_IBM_KYBER", -+ (unsigned int) SLOT_ID); -+ goto testcase_cleanup; -+ } else { -+ testcase_error("C_GetMechanismInfo() rc = %s", p11_get_ckr(rc)); -+ goto testcase_cleanup; -+ } -+ } -+ -+ for (i = 0; i < KYBER_TV_NUM; i++) { -+ -+ testcase_begin("Starting Kyber import key pair, KEM, %s index=%lu", -+ kyber_tv[i].name, i); -+ -+ /* Create Kyber private key */ -+ rc = create_KyberPrivateKey(session, -+ kyber_tv[i].pkcs8, kyber_tv[i].pkcs8_len, -+ kyber_tv[i].keyform, -+ kyber_tv[i].sk, kyber_tv[i].sk_len, -+ kyber_tv[i].pk, kyber_tv[i].pk_len, -+ &priv_key); -+ testcase_new_assertion(); -+ if (rc != CKR_OK) { -+ if (rc == CKR_KEY_SIZE_RANGE) { -+ testcase_skip("C_CreateObject with key form %lu not supported", -+ kyber_tv[i].keyform); -+ continue; -+ } -+ if (rc == CKR_POLICY_VIOLATION) { -+ testcase_skip("Kyber key import is not allowed by policy"); -+ continue; -+ } -+ testcase_fail("C_CreateObject (Kyber Private Key) failed at i=%lu, " -+ "rc=%s", i, p11_get_ckr(rc)); -+ goto next; -+ } -+ testcase_pass("*Import Kyber private key (%s) index=%lu passed.", -+ kyber_tv[i].name, i); -+ -+ /* Create Kyber public key */ -+ rc = create_KyberPublicKey(session, -+ kyber_tv[i].spki, kyber_tv[i].spki_len, -+ kyber_tv[i].keyform, -+ kyber_tv[i].pk, kyber_tv[i].pk_len, -+ &publ_key); -+ testcase_new_assertion(); -+ if (rc != CKR_OK) { -+ if (rc == CKR_KEY_SIZE_RANGE) { -+ testcase_skip("C_CreateObject with key form %lu not supported", -+ kyber_tv[i].keyform); -+ continue; -+ } -+ if (rc == CKR_POLICY_VIOLATION) { -+ testcase_skip("Kyber key import is not allowed by policy"); -+ goto testcase_cleanup; -+ } -+ testcase_fail("C_CreateObject (Kyber Public Key) failed at i=%lu, " -+ "rc=%s", i, p11_get_ckr(rc)); -+ goto next; -+ } -+ testcase_pass("*Import Kyber public key (%s) index=%lu passed.", -+ kyber_tv[i].name, i); -+ -+ testcase_new_assertion(); -+ rc = run_EnDecapsulateKyber(session, priv_key, publ_key, -+ kyber_tv[i].secret_len, -+ CKD_NULL, CK_FALSE, NULL, 0, -+ kyber_tv[i].cipher, kyber_tv[i].cipher_len, -+ kyber_tv[i].secret, kyber_tv[i].secret_len); -+ if (rc != 0) { -+ testcase_fail("run_EnDecapsulateKyber with %s failed.", -+ variants[i % num_variants].name); -+ goto next; -+ } -+ testcase_pass("*Encapsulate & Decapsulate (KEM) with %s index=%lu passed.", -+ variants[i % num_variants].name, i); -+ -+ -+next: -+ /* Clean up */ -+ rc = funcs->C_DestroyObject(session, publ_key); -+ if (rc != CKR_OK) { -+ testcase_error("C_DestroyObject(), rc=%s.", p11_get_ckr(rc)); -+ } -+ -+ rc = funcs->C_DestroyObject(session, priv_key); -+ if (rc != CKR_OK) { -+ testcase_error("C_DestroyObject(), rc=%s.", p11_get_ckr(rc)); -+ } -+ } -+ -+ goto done; -+ -+testcase_cleanup: -+ if (publ_key != CK_INVALID_HANDLE) -+ funcs->C_DestroyObject(session, publ_key); -+ if (priv_key != CK_INVALID_HANDLE) -+ funcs->C_DestroyObject(session, priv_key); -+ -+done: -+ testcase_user_logout(); -+ testcase_close_session(); -+ -+ return rc; -+} -+ -+/** -+ * Wraps the given key with the given secret key using the given wrapping -+ * mechanism. -+ */ -+CK_RV wrapKey(CK_SESSION_HANDLE session, CK_MECHANISM *wrap_mech, -+ CK_OBJECT_HANDLE secret_key, CK_OBJECT_HANDLE key_to_wrap, -+ CK_BYTE_PTR *wrapped_key, CK_ULONG *wrapped_keylen) -+{ -+ CK_BYTE_PTR tmp_key; -+ CK_ULONG tmp_len; -+ CK_RV rc; -+ -+ /* Determine length of wrapped key */ -+ rc = funcs->C_WrapKey(session, wrap_mech, secret_key, key_to_wrap, -+ NULL, &tmp_len); -+ if (rc != CKR_OK) -+ goto done; -+ -+ /* Allocate memory for wrapped_key */ -+ tmp_key = calloc(sizeof(CK_BYTE), tmp_len); -+ if (!tmp_key) { -+ rc = CKR_HOST_MEMORY; -+ goto done; -+ } -+ -+ /* Now wrap the key */ -+ rc = funcs->C_WrapKey(session, wrap_mech, secret_key, key_to_wrap, -+ tmp_key, &tmp_len); -+ if (rc != CKR_OK) { -+ free(tmp_key); -+ tmp_key = NULL; -+ goto done; -+ } -+ -+ *wrapped_key = tmp_key; -+ *wrapped_keylen = tmp_len; -+ -+ rc = CKR_OK; -+ -+done: -+ -+ return rc; -+} -+ -+/** -+ * Unwraps the given wrapped_key using the given secret_key and wrapping -+ * mechanism. -+ */ -+CK_RV unwrapKey(CK_SESSION_HANDLE session, CK_MECHANISM *wrap_mech, -+ CK_BYTE_PTR wrapped_key, CK_ULONG wrapped_keylen, -+ CK_OBJECT_HANDLE secret_key, CK_OBJECT_HANDLE *unwrapped_key) -+{ -+ CK_OBJECT_CLASS class = CKO_PRIVATE_KEY; -+ CK_KEY_TYPE key_type = CKK_IBM_PQC_KYBER; -+ CK_OBJECT_HANDLE tmp_key = CK_INVALID_HANDLE; -+ CK_BYTE unwrap_label[] = "unwrapped_private_Kyber_Key"; -+ CK_BYTE subject[] = {0}; -+ CK_BYTE id[] = { 123 }; -+ CK_BBOOL true = TRUE; -+ CK_RV rc; -+ -+ CK_ATTRIBUTE unwrap_tmpl[] = { -+ {CKA_CLASS, &class, sizeof(class)}, -+ {CKA_KEY_TYPE, &key_type, sizeof(key_type)}, -+ {CKA_TOKEN, &true, sizeof(true)}, -+ {CKA_LABEL, &unwrap_label, sizeof(unwrap_label)}, -+ {CKA_SUBJECT, subject, sizeof(subject)}, -+ {CKA_ID, id, sizeof(id)}, -+ {CKA_SENSITIVE, &true, sizeof(true)}, -+ {CKA_DECRYPT, &true, sizeof(true)}, -+ {CKA_DERIVE, &true, sizeof(true)}, -+ }; -+ -+ rc = funcs->C_UnwrapKey(session, wrap_mech, secret_key, -+ wrapped_key, wrapped_keylen, -+ unwrap_tmpl, -+ sizeof(unwrap_tmpl) / sizeof(CK_ATTRIBUTE), -+ &tmp_key); -+ if (rc != CKR_OK) -+ goto done; -+ -+ *unwrapped_key = tmp_key; -+ -+ rc = CKR_OK; -+ -+done: -+ -+ return rc; -+} -+ -+CK_RV run_TransferKyberKeyPair(void) -+{ -+ CK_MECHANISM mech; -+ CK_OBJECT_HANDLE publ_key = CK_INVALID_HANDLE, priv_key = CK_INVALID_HANDLE; -+ CK_SESSION_HANDLE session; -+ CK_BYTE user_pin[PKCS11_MAX_PIN_LEN]; -+ CK_ULONG user_pin_len, i; -+ CK_FLAGS flags; -+ CK_MECHANISM_INFO mech_info; -+ CK_RV rc; -+ CK_OBJECT_HANDLE secret_key = CK_INVALID_HANDLE; -+ CK_BYTE_PTR wrapped_key = NULL; -+ CK_ULONG wrapped_keylen; -+ CK_OBJECT_HANDLE unwrapped_key = CK_INVALID_HANDLE; -+ CK_MECHANISM wrap_mech, wkey_mech; -+ -+ testcase_rw_session(); -+ testcase_user_login(); -+ -+ mech.mechanism = CKM_IBM_KYBER; -+ mech.ulParameterLen = 0; -+ mech.pParameter = NULL; -+ -+ /* query the slot, check if this mech is supported */ -+ rc = funcs->C_GetMechanismInfo(SLOT_ID, mech.mechanism, &mech_info); -+ if (rc != CKR_OK) { -+ if (rc == CKR_MECHANISM_INVALID) { -+ /* no support for Kyber key gen? skip */ -+ testcase_skip("Slot %u doesn't support CKM_IBM_KYBER", -+ (unsigned int) SLOT_ID); -+ goto testcase_cleanup; -+ } else { -+ testcase_error("C_GetMechanismInfo() rc = %s", p11_get_ckr(rc)); -+ goto testcase_cleanup; -+ } -+ } -+ -+ for (i = 0; i < KYBER_TV_NUM; i++) { -+ -+ testcase_begin("Starting Kyber transfer key pair, Encrypt/Decrypt %s index=%lu.", -+ kyber_tv[i].name, i); -+ -+ /* Create Kyber private key */ -+ rc = create_KyberPrivateKey(session, -+ kyber_tv[i].pkcs8, kyber_tv[i].pkcs8_len, -+ kyber_tv[i].keyform, -+ kyber_tv[i].sk, kyber_tv[i].sk_len, -+ kyber_tv[i].pk, kyber_tv[i].pk_len, -+ &priv_key); -+ -+ testcase_new_assertion(); -+ if (rc != CKR_OK) { -+ if (rc == CKR_KEY_SIZE_RANGE) { -+ testcase_skip("C_CreateObject with key form %lu not supported", -+ kyber_tv[i].keyform); -+ continue; -+ } -+ if (rc == CKR_POLICY_VIOLATION) { -+ testcase_skip("Kyber key import is not allowed by policy"); -+ continue; -+ } -+ testcase_fail -+ ("C_CreateObject (Kyber Private Key) failed at i=%lu, rc=%s", i, -+ p11_get_ckr(rc)); -+ goto next; -+ } -+ testcase_pass("*Import Kyber private key (%s) index=%lu passed.", -+ kyber_tv[i].name, i); -+ -+ /* Create Kyber public key */ -+ rc = create_KyberPublicKey(session, -+ kyber_tv[i].spki, kyber_tv[i].spki_len, -+ kyber_tv[i].keyform, -+ kyber_tv[i].pk, kyber_tv[i].pk_len, -+ &publ_key); -+ testcase_new_assertion(); -+ if (rc != CKR_OK) { -+ if (rc == CKR_KEY_SIZE_RANGE) { -+ testcase_skip("C_CreateObject with key form %lu not supported", -+ kyber_tv[i].keyform); -+ continue; -+ } -+ if (rc == CKR_POLICY_VIOLATION) { -+ testcase_skip("Kyber key import is not allowed by policy"); -+ goto testcase_cleanup; -+ } -+ testcase_fail -+ ("C_CreateObject (Kyber Public Key) failed at i=%lu, rc=%s", i, -+ p11_get_ckr(rc)); -+ goto next; -+ } -+ testcase_pass("*Import Kyber public key (%s) index=%lu passed.", -+ kyber_tv[i].name, i); -+ -+ /* Create wrapping key (secret key) */ -+ wkey_mech.mechanism = CKM_AES_KEY_GEN; -+ wkey_mech.pParameter = NULL; -+ wkey_mech.ulParameterLen = 0; -+ rc = generate_AESKey(session, 32, CK_TRUE, &wkey_mech, &secret_key); -+ if (rc != CKR_OK) { -+ if (rc == CKR_POLICY_VIOLATION) { -+ testcase_skip("AES key generation is not allowed by policy"); -+ goto testcase_cleanup; -+ } -+ -+ testcase_error("generate_AESKey, rc=%s", p11_get_ckr(rc)); -+ goto next; -+ } -+ -+ /* Setup wrapping mechanism */ -+ wrap_mech.mechanism = CKM_AES_CBC_PAD; -+ wrap_mech.pParameter = "0123456789abcdef"; -+ wrap_mech.ulParameterLen = 16; -+ -+ /* Wrap Kyber private key with secret key */ -+ rc = wrapKey(session, &wrap_mech, secret_key, priv_key, -+ &wrapped_key, &wrapped_keylen); -+ testcase_new_assertion(); -+ if (rc != CKR_OK) { -+ testcase_error("wrapKey, rc=%s", p11_get_ckr(rc)); -+ goto next; -+ } -+ testcase_pass("*Wrap Kyber private key (%s) index=%lu passed.", -+ kyber_tv[i].name, i); -+ -+ /* Unwrap Kyber private key */ -+ rc = unwrapKey(session, &wrap_mech, wrapped_key, wrapped_keylen, -+ secret_key, &unwrapped_key); -+ testcase_new_assertion(); -+ if (rc != CKR_OK) { -+ testcase_error("unwrapKey, rc=%s", p11_get_ckr(rc)); -+ goto next; -+ } -+ testcase_pass("*Unwrap Kyber private key (%s) index=%lu passed.", -+ kyber_tv[i].name, i); -+ -+ free(wrapped_key); -+ wrapped_key = NULL; -+ -+ /* Encrypt/Decrypt with unwrapped key */ -+ testcase_new_assertion(); -+ rc = run_EncrypDecryptKyber(session, unwrapped_key, publ_key); -+ if (rc != 0) { -+ testcase_fail("run_EncrypDecryptKyber with %s failed.", -+ kyber_tv[i].name); -+ goto next; -+ } -+ testcase_pass("*Encrypt & decrypt with unwrapped private key with %s index=%lu passed.", -+ kyber_tv[i].name, i); -+ -+ testcase_new_assertion(); -+ rc = run_EnDecapsulateKyber(session, unwrapped_key, publ_key, -+ kyber_tv[i].secret_len, -+ CKD_NULL, CK_FALSE, NULL, 0, -+ kyber_tv[i].cipher, kyber_tv[i].cipher_len, -+ kyber_tv[i].secret, kyber_tv[i].secret_len); -+ if (rc != 0) { -+ testcase_fail("run_EnDecapsulateKyber with %s failed.", -+ variants[i % num_variants].name); -+ goto next; -+ } -+ testcase_pass("*Encapsulate & Decapsulate (KEM) with unwrapped private key with %s index=%lu passed.", -+ variants[i % num_variants].name, i); -+ -+next: -+ /* Clean up */ -+ rc = funcs->C_DestroyObject(session, publ_key); -+ if (rc != CKR_OK) { -+ testcase_error("C_DestroyObject(), rc=%s.", p11_get_ckr(rc)); -+ } -+ -+ rc = funcs->C_DestroyObject(session, priv_key); -+ if (rc != CKR_OK) { -+ testcase_error("C_DestroyObject(), rc=%s.", p11_get_ckr(rc)); -+ } -+ -+ rc = funcs->C_DestroyObject(session, secret_key); -+ if (rc != CKR_OK) { -+ testcase_error("C_DestroyObject(), rc=%s.", p11_get_ckr(rc)); -+ } -+ -+ rc = funcs->C_DestroyObject(session, unwrapped_key); -+ if (rc != CKR_OK) { -+ testcase_error("C_DestroyObject(), rc=%s.", p11_get_ckr(rc)); -+ } -+ } -+ -+ goto done; -+ -+testcase_cleanup: -+ if (publ_key != CK_INVALID_HANDLE) -+ funcs->C_DestroyObject(session, publ_key); -+ if (priv_key != CK_INVALID_HANDLE) -+ funcs->C_DestroyObject(session, priv_key); -+ if (secret_key != CK_INVALID_HANDLE) -+ funcs->C_DestroyObject(session, secret_key); -+ if (unwrapped_key != CK_INVALID_HANDLE) -+ funcs->C_DestroyObject(session, unwrapped_key); -+ -+ if (wrapped_key) -+ free(wrapped_key); -+ -+done: -+ testcase_user_logout(); -+ testcase_close_session(); -+ -+ return rc; -+} -+ -+int main(int argc, char **argv) -+{ -+ CK_C_INITIALIZE_ARGS cinit_args; -+ int rc; -+ CK_RV rv; -+ -+ rc = do_ParseArgs(argc, argv); -+ if (rc != 1) -+ return rc; -+ -+ printf("Using slot #%lu...\n\n", SLOT_ID); -+ printf("With option: no_init: %d\n", no_init); -+ -+ rc = do_GetFunctionList(); -+ if (!rc) { -+ PRINT_ERR("ERROR do_GetFunctionList() Failed , rc = 0x%0x\n", rc); -+ return rc; -+ } -+ -+ memset(&cinit_args, 0x0, sizeof(cinit_args)); -+ cinit_args.flags = CKF_OS_LOCKING_OK; -+ -+ funcs->C_Initialize(&cinit_args); -+ -+ { -+ CK_SESSION_HANDLE hsess = 0; -+ -+ rc = funcs->C_GetFunctionStatus(hsess); -+ if (rc != CKR_FUNCTION_NOT_PARALLEL) -+ return rc; -+ -+ rc = funcs->C_CancelFunction(hsess); -+ if (rc != CKR_FUNCTION_NOT_PARALLEL) -+ return rc; -+ } -+ -+ testcase_setup(); -+ -+ rv = run_GenerateKyberKeyPairEnDecryptKEM(); -+ -+ rv = run_ImportKyberKeyPairKEM(); -+ -+ rv = run_TransferKyberKeyPair(); -+ -+ testcase_print_result(); -+ -+ funcs->C_Finalize(NULL); -+ -+ return testcase_return(rv); -+} --- -2.16.2.windows.1 - diff --git a/0030-p11sak-Support-additional-Dilithium-variants.patch b/0030-p11sak-Support-additional-Dilithium-variants.patch deleted file mode 100644 index 1616ac0..0000000 --- a/0030-p11sak-Support-additional-Dilithium-variants.patch +++ /dev/null @@ -1,156 +0,0 @@ -From 3f8b4270a7601b42f15f13f54b9b5fc207a14723 Mon Sep 17 00:00:00 2001 -From: Ingo Franzki -Date: Tue, 8 Nov 2022 16:46:26 +0100 -Subject: [PATCH 30/34] p11sak: Support additional Dilithium variants - -Support the following Dilithium versions to be specified with the -generate-key command: r2_65 (as of today), r2_87, r3_44, r3_65, r3_87. - -Signed-off-by: Ingo Franzki ---- - man/man1/p11sak.1.in | 12 ++++++++++- - usr/sbin/p11sak/p11sak.c | 53 ++++++++++++++++++++++++++++++++++++++++++++---- - 2 files changed, 60 insertions(+), 5 deletions(-) - -diff --git a/man/man1/p11sak.1.in b/man/man1/p11sak.1.in -index a2c2b879..6938b203 100644 ---- a/man/man1/p11sak.1.in -+++ b/man/man1/p11sak.1.in -@@ -262,7 +262,7 @@ Use the - command and key argument to generate an IBM Dilithium key, where - .I VERSION - specifies the version of the IBM Dilithium keypair. The following arguments can be used for respective keys: --.B r2_65 -+.B r2_65 | r2_87 | r3_44 | r3_65 | r3_87 - .PP - The - .B \-\-slot -@@ -368,6 +368,16 @@ to select the EC curve used to generate the key. - . - . - -+.SS "r2_6|r2_87|r3_44|r3_65|r3_875" -+the -+.B ibm-dilithium -+argument has to be followed by either of these -+.I VERSION -+to select the IBM dilithium version used to generate the key. -+.PP -+. -+. -+. - .SH OPTIONS - - .SS "\-\-slot SLOTID" -diff --git a/usr/sbin/p11sak/p11sak.c b/usr/sbin/p11sak/p11sak.c -index 8cfcb21d..5ceb145b 100644 ---- a/usr/sbin/p11sak/p11sak.c -+++ b/usr/sbin/p11sak/p11sak.c -@@ -387,7 +387,7 @@ static void print_gen_help(void) - printf(" brainpoolP320r1 | brainpoolP320t1 | brainpoolP384r1 | brainpoolP384t1 | \n"); - printf(" brainpoolP512r1 | brainpoolP512t1 | curve25519 | curve448 | ed25519 | \n"); - printf(" ed448]\n"); -- printf(" ibm-dilithium [r2_65]\n"); -+ printf(" ibm-dilithium [r2_65 | r2_87 | r3_44 | r3_65 | r3_87]\n"); - printf("\n Options:\n"); - printf( - " --slot SLOTID openCryptoki repository token SLOTID.\n"); -@@ -526,6 +526,10 @@ static void print_gen_ibm_dilithium_help(void) - printf("\n Usage: p11sak generate-key ibm-dilithium [ARGS] [OPTIONS]\n"); - printf("\n Args:\n"); - printf(" r2_65\n"); -+ printf(" r2_87\n"); -+ printf(" r3_44\n"); -+ printf(" r3_65\n"); -+ printf(" r3_87\n"); - printf("\n Options:\n"); - printf( - " --slot SLOTID openCryptoki repository token SLOTID.\n"); -@@ -764,6 +768,35 @@ static CK_RV read_ec_args(const char *ECcurve, CK_ATTRIBUTE *pubattr, - - return CKR_OK; - } -+/** -+ * Builds the CKA_IBM_DILITHIUM_KEYFORM attribute from the given version. -+ */ -+static CK_RV read_dilithium_args(const char *dilithium_ver, CK_ULONG *keyform, -+ CK_ATTRIBUTE *pubattr, CK_ULONG *pubcount) -+{ -+ if (strcasecmp(dilithium_ver, "r2_65") == 0) { -+ *keyform = CK_IBM_DILITHIUM_KEYFORM_ROUND2_65; -+ } else if (strcasecmp(dilithium_ver, "r2_87") == 0) { -+ *keyform = CK_IBM_DILITHIUM_KEYFORM_ROUND2_87; -+ } else if (strcasecmp(dilithium_ver, "r3_44") == 0) { -+ *keyform = CK_IBM_DILITHIUM_KEYFORM_ROUND3_44; -+ } else if (strcasecmp(dilithium_ver, "r3_65") == 0) { -+ *keyform = CK_IBM_DILITHIUM_KEYFORM_ROUND3_65; -+ } else if (strcasecmp(dilithium_ver, "r3_87") == 0) { -+ *keyform = CK_IBM_DILITHIUM_KEYFORM_ROUND3_87; -+ } else { -+ fprintf(stderr, "Unexpected case while parsing dilithium version.\n"); -+ fprintf(stderr, "Note: not all tokens support all versions.\n"); -+ return CKR_ARGUMENTS_BAD; -+ } -+ -+ pubattr[*pubcount].type = CKA_IBM_DILITHIUM_KEYFORM; -+ pubattr[*pubcount].ulValueLen = sizeof(CK_ULONG); -+ pubattr[*pubcount].pValue = keyform; -+ (*pubcount)++; -+ -+ return CKR_OK; -+} - /** - * Builds two CKA_LABEL attributes from given label. - */ -@@ -1096,6 +1129,8 @@ static CK_RV key_pair_gen(CK_SESSION_HANDLE session, CK_SLOT_ID slot, - if (rc != CKR_OK) { - if (is_rejected_by_policy(rc, session)) - fprintf(stderr, "Key pair generation rejected by policy\n"); -+ else if (kt == kt_IBM_DILITHIUM && rc == CKR_KEY_SIZE_RANGE) -+ fprintf(stderr, "IBM Dilithum version is not supported\n"); - else - fprintf(stderr, "Key pair generation failed (error code 0x%lX: %s)\n", rc, - p11_get_ckr(rc)); -@@ -1845,11 +1880,15 @@ static CK_RV check_args_gen_key(p11sak_kt *kt, CK_ULONG keylength, - case kt_IBM_DILITHIUM: - if (dilithium_ver == NULL) { - fprintf(stderr, -- "Cipher key type [%d] supported but Dilithium version not set in arguments. Try adding argument \n", -+ "Cipher key type [%d] supported but Dilithium version not set in arguments. Try adding argument , , , , or \n", - *kt); - return CKR_ARGUMENTS_BAD; - } -- if (strcasecmp(dilithium_ver, "r2_65") == 0) { -+ if (strcasecmp(dilithium_ver, "r2_65") == 0 || -+ strcasecmp(dilithium_ver, "r2_87") == 0 || -+ strcasecmp(dilithium_ver, "r3_44") == 0 || -+ strcasecmp(dilithium_ver, "r3_65") == 0 || -+ strcasecmp(dilithium_ver, "r3_87") == 0) { - break; - } else { - fprintf(stderr, "IBM Dilithium version [%s] not supported \n", dilithium_ver); -@@ -2450,7 +2489,7 @@ static CK_RV generate_asymmetric_key(CK_SESSION_HANDLE session, CK_SLOT_ID slot, - CK_ATTRIBUTE prv_attr[KEY_MAX_BOOL_ATTR_COUNT + 2]; - CK_ULONG prv_acount = 0; - CK_MECHANISM mech; -- CK_ULONG i; -+ CK_ULONG i, keyform; - CK_RV rc; - const char separator = ':'; - -@@ -2475,6 +2514,12 @@ static CK_RV generate_asymmetric_key(CK_SESSION_HANDLE session, CK_SLOT_ID slot, - } - break; - case kt_IBM_DILITHIUM: -+ rc = read_dilithium_args(dilithium_ver, &keyform, -+ pub_attr, &pub_acount); -+ if (rc) { -+ fprintf(stderr, "Error parsing Dilithium parameters!\n"); -+ goto done; -+ } - printf("Generating Dilithium keypair with %s\n", dilithium_ver); - break; - default: --- -2.16.2.windows.1 - diff --git a/0031-p11sak-Add-support-for-IBM-Kyber-key-type.patch b/0031-p11sak-Add-support-for-IBM-Kyber-key-type.patch deleted file mode 100644 index 9db7a28..0000000 --- a/0031-p11sak-Add-support-for-IBM-Kyber-key-type.patch +++ /dev/null @@ -1,551 +0,0 @@ -From d257df88500b3e55156d198ec305042799e2bff9 Mon Sep 17 00:00:00 2001 -From: Ingo Franzki -Date: Tue, 8 Nov 2022 17:03:11 +0100 -Subject: [PATCH 31/34] p11sak: Add support for IBM Kyber key type - -Support the following Kyber versions to be specified with the -generate-key command: r2_768, r2_1024. - -Signed-off-by: Ingo Franzki ---- - man/man1/p11sak.1.in | 65 ++++++++++++-- - usr/sbin/p11sak/p11sak.c | 141 +++++++++++++++++++++++++----- - usr/sbin/p11sak/p11sak.h | 1 + - usr/sbin/p11sak/p11sak_defined_attrs.conf | 6 +- - 4 files changed, 183 insertions(+), 30 deletions(-) - -diff --git a/man/man1/p11sak.1.in b/man/man1/p11sak.1.in -index 6938b203..2b75b117 100644 ---- a/man/man1/p11sak.1.in -+++ b/man/man1/p11sak.1.in -@@ -16,7 +16,7 @@ p11sak \- generate and list token keys in an openCryptoki token repository. - - .SH DESCRIPTION - .B p11sak can be used to generate, list and delete the token keys in an openCryptoki token repository. --The utility provides a flexible key management tool in openCryptoki to list and generate symmetric (DES; 3DES, AES) and asymetric (RSA, EC) keys. -+The utility provides a flexible key management tool in openCryptoki to list and generate symmetric (DES, 3DES, AES) and asymmetric (RSA, EC, IBM Dilithium, IBM Kyber) keys. - This tool is especially capable of a well defined listing of keys with their PKCS #11 attributes. - . - . -@@ -282,11 +282,54 @@ attribute of the key and - can be used to set the binary attributes of the key (see below for detailed description of the attributes). - . - .PP -+.SS "Generating IBM Kyber keys" -+. -+.B p11sak -+.BR generate-key | gen-key | gen -+.BR ibm-kyber -+.BR VERSION -+.B \-\-slot -+.IR SLOTID -+.B \-\-pin -+.IR PIN -+.B \-\-label -+.IR LABEL -+.B \-\-attr -+.I [M R L S E D G V W U A X N T] -+.B \-\-help | \-h -+.PP -+Use the -+.B generate-key -+.B ibm-kyber -+.B VERSION -+command and key argument to generate an IBM Kyber key, where -+.I VERSION -+specifies the version of the IBM Kyber keypair. The following arguments can be used for respective keys: -+.B r2_768 | r2_1024 -+.PP -+The -+.B \-\-slot -+.IR SLOTID -+and -+.B \-\-pin -+.IR PIN -+options are required to set the token to -+.IR SLOTID -+and the token PIN. The -+.B \-\-label -+option allows the user to set the -+.IR LABEL -+attribute of the key and -+.B \-\-attr -+.I [M R L S E D G V W U A X N T] -+can be used to set the binary attributes of the key (see below for detailed description of the attributes). -+. -+.PP - .SS "Listing symmetric and asymmetric keys" - . - .B p11sak - .BR list-key | ls-key | ls --.BR des | 3des | aes | rsa | ec | ibm-dilithium | public | private | secret | all -+.BR des | 3des | aes | rsa | ec | ibm-dilithium | ibm-kyber | public | private | secret | all - .B \-\-slot - .IR SLOTID - .B \-\-pin -@@ -298,14 +341,14 @@ can be used to set the binary attributes of the key (see below for detailed desc - .PP - Use the - .B list-key | ls-key | ls --command and key argument to list DES, 3DES, AES, RSA, EC, or IBM Dilithium keys, respectively. Public, private, secret, or all keys can also be listed irrespective of key type. -+command and key argument to list DES, 3DES, AES, RSA, EC, IBM Dilithium, or IBM Kyber keys, respectively. Public, private, secret, or all keys can also be listed irrespective of key type. - . - .PP - .SS "Deleting symmetric and asymmetric keys" - . - .B p11sak - .BR remove-key | rm-key | rm --.BR des | 3des | aes | rsa | ec | ibm-dilithium -+.BR des | 3des | aes | rsa | ec | ibm-dilithium | ibm-kyber - .B \-\-slot - .IR SLOTID - .B \-\-pin -@@ -317,7 +360,7 @@ command and key argument to list DES, 3DES, AES, RSA, EC, or IBM Dilithium keys, - .PP - Use the - .B remove-key | rm-key | rm --command and key argument to delete DES, 3DES, AES, RSA, EC, or IBM Dilithium keys, respectively. All specified cipher keys will be prompted to be deleted unless -+command and key argument to delete DES, 3DES, AES, RSA, EC, IBM Dilithium, or IBM Kyber keys, respectively. All specified cipher keys will be prompted to be deleted unless - a specific key with the - .B \-\-label - .IR LABEL -@@ -331,7 +374,7 @@ option. - . - .SH ARGS - . --.SS "des | 3des | aes | rsa | ec | ibm-dilithium | public | private | secret | all" -+.SS "des | 3des | aes | rsa | ec | ibm-dilithium | ibm-kyber | public | private | secret | all" - - selects the respective symmetric or asymetric key to be generated or listed. The - .B public|private|secret|all -@@ -378,6 +421,16 @@ to select the IBM dilithium version used to generate the key. - . - . - . -+.SS "r2_768|r2_1024" -+the -+.B ibm-kyber -+argument has to be followed by either of these -+.I VERSION -+to select the IBM kyber version used to generate the key. -+.PP -+. -+. -+. - .SH OPTIONS - - .SS "\-\-slot SLOTID" -diff --git a/usr/sbin/p11sak/p11sak.c b/usr/sbin/p11sak/p11sak.c -index 5ceb145b..38564155 100644 ---- a/usr/sbin/p11sak/p11sak.c -+++ b/usr/sbin/p11sak/p11sak.c -@@ -130,6 +130,8 @@ static const char* kt2str(p11sak_kt ktype) - return "EC"; - case kt_IBM_DILITHIUM: - return "IBM DILITHIUM"; -+ case kt_IBM_KYBER: -+ return "IBM KYBER"; - case kt_GENERIC: - return "GENERIC"; - case kt_SECRET: -@@ -170,6 +172,9 @@ static CK_RV kt2CKK(p11sak_kt ktype, CK_KEY_TYPE *a_key_type) - case kt_IBM_DILITHIUM: - *a_key_type = CKK_IBM_PQC_DILITHIUM; - break; -+ case kt_IBM_KYBER: -+ *a_key_type = CKK_IBM_PQC_KYBER; -+ break; - case kt_GENERIC: - *a_key_type = CKK_GENERIC_SECRET; - break; -@@ -277,6 +282,8 @@ static const char* CKK2a(CK_KEY_TYPE t) - return "EC"; - case CKK_IBM_PQC_DILITHIUM: - return "IBM DILILTHIUM"; -+ case CKK_IBM_PQC_KYBER: -+ return "IBM KYBER"; - case CKK_RSA: - return "RSA"; - case CKK_DH: -@@ -358,6 +365,7 @@ static void print_listkeys_help(void) - printf(" rsa\n"); - printf(" ec\n"); - printf(" ibm-dilithium\n"); -+ printf(" ibm-kyber\n"); - printf(" public\n"); - printf(" private\n"); - printf(" secret\n"); -@@ -388,6 +396,7 @@ static void print_gen_help(void) - printf(" brainpoolP512r1 | brainpoolP512t1 | curve25519 | curve448 | ed25519 | \n"); - printf(" ed448]\n"); - printf(" ibm-dilithium [r2_65 | r2_87 | r3_44 | r3_65 | r3_87]\n"); -+ printf(" ibm-kyber [r2_768 | r2_1024]\n"); - printf("\n Options:\n"); - printf( - " --slot SLOTID openCryptoki repository token SLOTID.\n"); -@@ -415,6 +424,7 @@ static void print_removekeys_help(void) - printf(" rsa\n"); - printf(" ec\n"); - printf(" ibm-dilithium\n"); -+ printf(" ibm-kyber\n"); - printf("\n Options:\n"); - printf( - " --slot SLOTID openCryptoki repository token SLOTID.\n"); -@@ -545,6 +555,25 @@ static void print_gen_ibm_dilithium_help(void) - printf(" -h, --help Show this help\n\n"); - } - -+static void print_gen_ibm_kyber_help(void) -+{ -+ printf("\n Usage: p11sak generate-key ibm-kyber [ARGS] [OPTIONS]\n"); -+ printf("\n Args:\n"); -+ printf(" r2_768\n"); -+ printf(" r2_1024\n"); -+ printf("\n Options:\n"); -+ printf(" --slot SLOTID openCryptoki repository token SLOTID.\n"); -+ printf(" --pin PIN pkcs11 user PIN\n"); -+ printf(" --force-pin-prompt enforce user PIN prompt\n"); -+ printf(" --label LABEL key label LABEL to be listed\n"); -+ printf(" --label PUB_LABEL:PRIV_LABEL\n"); -+ printf(" for asymmetric keys: set individual labels for public and private key\n"); -+ printf(" --attr [M R L S E D G V W U A X N] set key attributes\n"); -+ printf(" --attr [[pub_attrs]:[priv_attrs]] \n"); -+ printf(" for asymmetric keys: set individual key attributes, values see above\n"); -+ printf(" -h, --help Show this help\n\n"); -+} -+ - /** - * Print help for generate-key command - */ -@@ -572,6 +601,9 @@ static CK_RV print_gen_keys_help(p11sak_kt *kt) - case kt_IBM_DILITHIUM: - print_gen_ibm_dilithium_help(); - break; -+ case kt_IBM_KYBER: -+ print_gen_ibm_kyber_help(); -+ break; - case no_key_type: - print_gen_help(); - break; -@@ -797,6 +829,29 @@ static CK_RV read_dilithium_args(const char *dilithium_ver, CK_ULONG *keyform, - - return CKR_OK; - } -+/** -+ * Builds the CKA_IBM_KYBER_KEYFORM attribute from the given version. -+ */ -+static CK_RV read_kyber_args(const char *kyber_ver, CK_ULONG *keyform, -+ CK_ATTRIBUTE *pubattr, CK_ULONG *pubcount) -+{ -+ if (strcasecmp(kyber_ver, "r2_768") == 0) { -+ *keyform = CK_IBM_KYBER_KEYFORM_ROUND2_768; -+ } else if (strcasecmp(kyber_ver, "r2_1024") == 0) { -+ *keyform = CK_IBM_KYBER_KEYFORM_ROUND2_1024; -+ } else { -+ fprintf(stderr, "Unexpected case while parsing kyber version.\n"); -+ fprintf(stderr, "Note: not all tokens support all versions.\n"); -+ return CKR_ARGUMENTS_BAD; -+ } -+ -+ pubattr[*pubcount].type = CKA_IBM_KYBER_KEYFORM; -+ pubattr[*pubcount].ulValueLen = sizeof(CK_ULONG); -+ pubattr[*pubcount].pValue = keyform; -+ (*pubcount)++; -+ -+ return CKR_OK; -+} - /** - * Builds two CKA_LABEL attributes from given label. - */ -@@ -860,6 +915,9 @@ static CK_RV key_pair_gen_mech(p11sak_kt kt, CK_MECHANISM *pmech) - case kt_IBM_DILITHIUM: - pmech->mechanism = CKM_IBM_DILITHIUM; - break; -+ case kt_IBM_KYBER: -+ pmech->mechanism = CKM_IBM_KYBER; -+ break; - default: - return CKR_MECHANISM_INVALID; - break; -@@ -1131,6 +1189,8 @@ static CK_RV key_pair_gen(CK_SESSION_HANDLE session, CK_SLOT_ID slot, - fprintf(stderr, "Key pair generation rejected by policy\n"); - else if (kt == kt_IBM_DILITHIUM && rc == CKR_KEY_SIZE_RANGE) - fprintf(stderr, "IBM Dilithum version is not supported\n"); -+ else if (kt == kt_IBM_KYBER && rc == CKR_KEY_SIZE_RANGE) -+ fprintf(stderr, "IBM Kyber version is not supported\n"); - else - fprintf(stderr, "Key pair generation failed (error code 0x%lX: %s)\n", rc, - p11_get_ckr(rc)); -@@ -1191,6 +1251,7 @@ static CK_RV tok_key_list_init(CK_SESSION_HANDLE session, p11sak_kt kt, - case kt_RSAPKCS: - case kt_EC: - case kt_IBM_DILITHIUM: -+ case kt_IBM_KYBER: - tmplt[count].type = CKA_KEY_TYPE; - tmplt[count].pValue = &a_key_type; - tmplt[count].ulValueLen = sizeof(CK_KEY_TYPE); -@@ -1871,27 +1932,42 @@ static CK_RV tok_key_get_key_type(CK_SESSION_HANDLE session, CK_OBJECT_HANDLE hk - * Check args for gen_key command. - */ - static CK_RV check_args_gen_key(p11sak_kt *kt, CK_ULONG keylength, -- char *ECcurve, char *dilithium_ver) -+ char *ECcurve, char *pqc_ver) - { - switch (*kt) { - case kt_DES: - case kt_3DES: - break; - case kt_IBM_DILITHIUM: -- if (dilithium_ver == NULL) { -+ if (pqc_ver == NULL) { - fprintf(stderr, - "Cipher key type [%d] supported but Dilithium version not set in arguments. Try adding argument , , , , or \n", - *kt); - return CKR_ARGUMENTS_BAD; - } -- if (strcasecmp(dilithium_ver, "r2_65") == 0 || -- strcasecmp(dilithium_ver, "r2_87") == 0 || -- strcasecmp(dilithium_ver, "r3_44") == 0 || -- strcasecmp(dilithium_ver, "r3_65") == 0 || -- strcasecmp(dilithium_ver, "r3_87") == 0) { -+ if (strcasecmp(pqc_ver, "r2_65") == 0 || -+ strcasecmp(pqc_ver, "r2_87") == 0 || -+ strcasecmp(pqc_ver, "r3_44") == 0 || -+ strcasecmp(pqc_ver, "r3_65") == 0 || -+ strcasecmp(pqc_ver, "r3_87") == 0) { - break; - } else { -- fprintf(stderr, "IBM Dilithium version [%s] not supported \n", dilithium_ver); -+ fprintf(stderr, "IBM Dilithium version [%s] not supported \n", pqc_ver); -+ return CKR_ARGUMENTS_BAD; -+ } -+ break; -+ case kt_IBM_KYBER: -+ if (pqc_ver == NULL) { -+ fprintf(stderr, -+ "Cipher key type [%d] supported but Kyber version not set in arguments. Try adding argument or \n", -+ *kt); -+ return CKR_ARGUMENTS_BAD; -+ } -+ if (strcasecmp(pqc_ver, "r2_768") == 0 || -+ strcasecmp(pqc_ver, "r2_1024") == 0) { -+ break; -+ } else { -+ fprintf(stderr, "IBM Kyber version [%s] not supported \n", pqc_ver); - return CKR_ARGUMENTS_BAD; - } - break; -@@ -1947,6 +2023,7 @@ static CK_RV check_args_list_key(p11sak_kt *kt) - case kt_3DES: - case kt_EC: - case kt_IBM_DILITHIUM: -+ case kt_IBM_KYBER: - case kt_GENERIC: - case kt_SECRET: - case kt_PUBLIC: -@@ -1973,6 +2050,7 @@ static CK_RV check_args_remove_key(p11sak_kt *kt) - case kt_RSAPKCS: - case kt_EC: - case kt_IBM_DILITHIUM: -+ case kt_IBM_KYBER: - case kt_GENERIC: - case kt_SECRET: - case kt_PUBLIC: -@@ -2069,6 +2147,8 @@ static CK_RV parse_list_key_args(char *argv[], int argc, p11sak_kt *kt, - *kt = kt_EC; - } else if (strcasecmp(argv[i], "ibm-dilithium") == 0) { - *kt = kt_IBM_DILITHIUM; -+ } else if (strcasecmp(argv[i], "ibm-kyber") == 0) { -+ *kt = kt_IBM_KYBER; - } else if (strcasecmp(argv[i], "generic") == 0) { - *kt = kt_GENERIC; - } else if (strcasecmp(argv[i], "secret") == 0) { -@@ -2158,7 +2238,7 @@ static CK_RV parse_gen_key_args(char *argv[], int argc, p11sak_kt *kt, - CK_ULONG *keylength, char **ECcurve, - CK_SLOT_ID *slot, const char **pin, - CK_ULONG *exponent, char **label, -- char **attr_string, char **dilithium_ver, -+ char **attr_string, char **pqc_ver, - int *force_pin_prompt) - { - CK_RV rc; -@@ -2190,7 +2270,11 @@ static CK_RV parse_gen_key_args(char *argv[], int argc, p11sak_kt *kt, - i++; - } else if (strcasecmp(argv[i], "ibm-dilithium") == 0) { - *kt = kt_IBM_DILITHIUM; -- *dilithium_ver = get_string_arg(i + 1, argv, argc); -+ *pqc_ver = get_string_arg(i + 1, argv, argc); -+ i++; -+ } else if (strcasecmp(argv[i], "ibm-kyber") == 0) { -+ *kt = kt_IBM_KYBER; -+ *pqc_ver = get_string_arg(i + 1, argv, argc); - i++; - /* Get options */ - } else if (strcmp(argv[i], "--slot") == 0) { -@@ -2281,7 +2365,7 @@ static CK_RV parse_gen_key_args(char *argv[], int argc, p11sak_kt *kt, - } - - /* Check args */ -- rc = check_args_gen_key(kt, *keylength, *ECcurve, *dilithium_ver); -+ rc = check_args_gen_key(kt, *keylength, *ECcurve, *pqc_ver); - - /* Check required options */ - if (*label == NULL) { -@@ -2331,6 +2415,8 @@ static CK_RV parse_remove_key_args(char *argv[], int argc, p11sak_kt *kt, - *kt = kt_EC; - } else if (strcasecmp(argv[i], "ibm-dilithium") == 0) { - *kt = kt_IBM_DILITHIUM; -+ } else if (strcasecmp(argv[i], "ibm-kyber") == 0) { -+ *kt = kt_IBM_KYBER; - /* Get options */ - } else if (strcmp(argv[i], "--slot") == 0) { - if (i + 1 < argc) { -@@ -2415,7 +2501,7 @@ static CK_RV parse_cmd_args(p11sak_cmd cmd, char *argv[], int argc, - CK_SLOT_ID *slot, const char **pin, - CK_ULONG *exponent, char **label, - char **attr_string, int *long_print, int *full_uri, -- CK_BBOOL *forceAll, char **dilithium_ver, -+ CK_BBOOL *forceAll, char **pqc_ver, - int *force_pin_prompt) - { - CK_RV rc; -@@ -2423,7 +2509,7 @@ static CK_RV parse_cmd_args(p11sak_cmd cmd, char *argv[], int argc, - switch (cmd) { - case gen_key: - rc = parse_gen_key_args(argv, argc, kt, keylength, ECcurve, slot, pin, -- exponent, label, attr_string, dilithium_ver, force_pin_prompt); -+ exponent, label, attr_string, pqc_ver, force_pin_prompt); - break; - case list_key: - rc = parse_list_key_args(argv, argc, kt, keylength, slot, pin, -@@ -2481,7 +2567,7 @@ done: - static CK_RV generate_asymmetric_key(CK_SESSION_HANDLE session, CK_SLOT_ID slot, - p11sak_kt kt, CK_ULONG keylength, - CK_ULONG exponent, char *ECcurve, -- char *label, char *attr_string, char *dilithium_ver) -+ char *label, char *attr_string, char *pqc_ver) - { - CK_OBJECT_HANDLE pub_keyh, prv_keyh; - CK_ATTRIBUTE pub_attr[KEY_MAX_BOOL_ATTR_COUNT + 2]; -@@ -2514,13 +2600,21 @@ static CK_RV generate_asymmetric_key(CK_SESSION_HANDLE session, CK_SLOT_ID slot, - } - break; - case kt_IBM_DILITHIUM: -- rc = read_dilithium_args(dilithium_ver, &keyform, -+ rc = read_dilithium_args(pqc_ver, &keyform, - pub_attr, &pub_acount); - if (rc) { - fprintf(stderr, "Error parsing Dilithium parameters!\n"); - goto done; - } -- printf("Generating Dilithium keypair with %s\n", dilithium_ver); -+ printf("Generating Dilithium keypair with %s\n", pqc_ver); -+ break; -+ case kt_IBM_KYBER: -+ rc = read_kyber_args(pqc_ver, &keyform, pub_attr, &pub_acount); -+ if (rc) { -+ fprintf(stderr, "Error parsing Kyber parameters!\n"); -+ goto done; -+ } -+ printf("Generating Kyber keypair with %s\n", pqc_ver); - break; - default: - fprintf(stderr, "The key type %d is not yet supported.\n", kt); -@@ -2626,7 +2720,7 @@ done: - static CK_RV generate_ckey(CK_SESSION_HANDLE session, CK_SLOT_ID slot, - p11sak_kt kt, CK_ULONG keylength, char *ECcurve, - CK_ULONG exponent, char *label, char *attr_string, -- char *dilithium_ver) -+ char *pqc_ver) - { - switch (kt) { - case kt_DES: -@@ -2637,8 +2731,9 @@ static CK_RV generate_ckey(CK_SESSION_HANDLE session, CK_SLOT_ID slot, - case kt_RSAPKCS: - case kt_EC: - case kt_IBM_DILITHIUM: -+ case kt_IBM_KYBER: - return generate_asymmetric_key(session, slot, kt, keylength, exponent, -- ECcurve, label, attr_string, dilithium_ver); -+ ECcurve, label, attr_string, pqc_ver); - default: - fprintf(stderr, "Error: cannot create a key of type %i (%s)\n", kt, kt2str(kt)); - return CKR_ARGUMENTS_BAD; -@@ -3030,13 +3125,13 @@ static CK_RV execute_cmd(CK_SESSION_HANDLE session, CK_SLOT_ID slot, - p11sak_cmd cmd, p11sak_kt kt, CK_ULONG keylength, - CK_ULONG exponent, char *ECcurve, char *label, - char *attr_string, int long_print, int full_uri, -- CK_BBOOL *forceAll, char *dilithium_ver) -+ CK_BBOOL *forceAll, char *pqc_ver) - { - CK_RV rc; - switch (cmd) { - case gen_key: - rc = generate_ckey(session, slot, kt, keylength, ECcurve, exponent, -- label, attr_string, dilithium_ver); -+ label, attr_string, pqc_ver); - break; - case list_key: - rc = list_ckey(session, slot, kt, long_print, label, full_uri); -@@ -3177,7 +3272,7 @@ int main(int argc, char *argv[]) - char *ECcurve = NULL; - char *attr_string = NULL; - CK_ULONG keylength = 0; -- char *dilithium_ver = NULL; -+ char *pqc_ver = NULL; - CK_RV rc = CKR_OK; - CK_SESSION_HANDLE session; - const char *pin = NULL; -@@ -3203,7 +3298,7 @@ int main(int argc, char *argv[]) - /* Parse command args */ - rc = parse_cmd_args(cmd, argv, argc, &kt, &keylength, &ECcurve, &slot, &pin, - &exponent, &label, &attr_string, &long_print, &full_uri, &forceAll, -- &dilithium_ver, &force_pin_prompt); -+ &pqc_ver, &force_pin_prompt); - if (rc != CKR_OK) { - goto done; - } -@@ -3240,7 +3335,7 @@ int main(int argc, char *argv[]) - - /* Execute command */ - rc = execute_cmd(session, slot, cmd, kt, keylength, exponent, ECcurve, -- label, attr_string, long_print, full_uri, &forceAll, dilithium_ver); -+ label, attr_string, long_print, full_uri, &forceAll, pqc_ver); - if (rc == CKR_CANCEL) { - fprintf(stderr, "Cancel execution: p11sak %s command (error code 0x%lX: %s)\n", cmd2str(cmd), rc, - p11_get_ckr(rc)); -diff --git a/usr/sbin/p11sak/p11sak.h b/usr/sbin/p11sak/p11sak.h -index 2b7e9c64..9d5a461a 100644 ---- a/usr/sbin/p11sak/p11sak.h -+++ b/usr/sbin/p11sak/p11sak.h -@@ -25,6 +25,7 @@ typedef enum { - kt_RSAPKCS, - kt_EC, - kt_IBM_DILITHIUM, -+ kt_IBM_KYBER, - kt_GENERIC, - kt_SECRET, - kt_PUBLIC, -diff --git a/usr/sbin/p11sak/p11sak_defined_attrs.conf b/usr/sbin/p11sak/p11sak_defined_attrs.conf -index 520d28d5..53080ef5 100644 ---- a/usr/sbin/p11sak/p11sak_defined_attrs.conf -+++ b/usr/sbin/p11sak/p11sak_defined_attrs.conf -@@ -33,10 +33,14 @@ attribute { - id = 0x00000120 - type = CK_BYTE - } -- - attribute { - name = CKA_IBM_DILITHIUM_KEYFORM - id = 0x800d0001 - type = CK_ULONG - } -+attribute { -+ name = CKA_IBM_KYBER_KEYFORM -+ id = 0x800d0009 -+ type = CK_ULONG -+} - --- -2.16.2.windows.1 - diff --git a/0032-testcase-Enhance-p11sak-testcase-to-generate-IBM-Kyb.patch b/0032-testcase-Enhance-p11sak-testcase-to-generate-IBM-Kyb.patch deleted file mode 100644 index ae9912f..0000000 --- a/0032-testcase-Enhance-p11sak-testcase-to-generate-IBM-Kyb.patch +++ /dev/null @@ -1,111 +0,0 @@ -From 3247a4f1d1d8a9b8d7f3bc6c1dd85234dd184cbb Mon Sep 17 00:00:00 2001 -From: Ingo Franzki -Date: Wed, 9 Nov 2022 09:45:21 +0100 -Subject: [PATCH 32/34] testcase: Enhance p11sak testcase to generate IBM Kyber - keys - -Signed-off-by: Ingo Franzki ---- - testcases/misc_tests/p11sak_test.sh | 44 +++++++++++++++++++++++++++++++++++++ - 1 file changed, 44 insertions(+) - -diff --git a/testcases/misc_tests/p11sak_test.sh b/testcases/misc_tests/p11sak_test.sh -index a0d3c644..b3374c6a 100755 ---- a/testcases/misc_tests/p11sak_test.sh -+++ b/testcases/misc_tests/p11sak_test.sh -@@ -38,6 +38,9 @@ P11SAK_EC_POST=p11sak-ec-post.out - P11SAK_IBM_DIL_PRE=p11sak-ibm-dil-pre.out - P11SAK_IBM_DIL_LONG=p11sak-ibm-dil-long.out - P11SAK_IBM_DIL_POST=p11sak-ibm-dil-post.out -+P11SAK_IBM_KYBER_PRE=p11sak-ibm-kyber-pre.out -+P11SAK_IBM_KYBER_LONG=p11sak-ibm-kyber-long.out -+P11SAK_IBM_KYBER_POST=p11sak-ibm-kyber-post.out - P11SAK_ALL_PINOPT=p11sak-all-pinopt - P11SAK_ALL_PINENV=p11sak-all-pinenv - P11SAK_ALL_PINCON=p11sak-all-pincon -@@ -83,6 +86,12 @@ if [[ -n $( pkcsconf -m -c $SLOT | grep CKM_IBM_DILITHIUM) ]]; then - else - echo "Skip generating ibm-dilithium keys, slot does not support CKM_IBM_DILITHIUM" - fi -+# ibm-kyber -+if [[ -n $( pkcsconf -m -c $SLOT | grep CKM_IBM_KYBER) ]]; then -+ p11sak generate-key ibm-kyber r2_1024 --slot $SLOT --pin $PKCS11_USER_PIN --label p11sak-ibm-kyber -+else -+ echo "Skip generating ibm-kyber keys, slot does not support CKM_IBM_KYBER" -+fi - - - echo "** Now list keys and redirect output to pre-files - 'p11sak_test.sh'" -@@ -102,6 +111,7 @@ p11sak list-key aes --slot $SLOT --pin $PKCS11_USER_PIN --long &> $P11SAK_AES_LO - p11sak list-key rsa --slot $SLOT --pin $PKCS11_USER_PIN --long &> $P11SAK_RSA_LONG - p11sak list-key ec --slot $SLOT --pin $PKCS11_USER_PIN --long &> $P11SAK_EC_LONG - p11sak list-key ibm-dilithium --slot $SLOT --pin $PKCS11_USER_PIN --long &> $P11SAK_IBM_DIL_LONG -+p11sak list-key ibm-kyber --slot $SLOT --pin $PKCS11_USER_PIN --long &> $P11SAK_IBM_KYBER_LONG - - p11sak list-key all --slot $SLOT --pin $PKCS11_USER_PIN &> $P11SAK_ALL_PINOPT - RC_P11SAK_PINOPT=$? -@@ -143,6 +153,9 @@ p11sak remove-key ec --slot $SLOT --pin $PKCS11_USER_PIN --label p11sak-ec-secp5 - # remove ibm dilithium keys - p11sak remove-key ibm-dilithium --slot $SLOT --pin $PKCS11_USER_PIN --label p11sak-ibm-dilithium:pub -f - p11sak remove-key ibm-dilithium --slot $SLOT --pin $PKCS11_USER_PIN --label p11sak-ibm-dilithium:prv -f -+# remove ibm kyber keys -+p11sak remove-key ibm-kyber --slot $SLOT --pin $PKCS11_USER_PIN --label p11sak-ibm-kyber:pub -f -+p11sak remove-key ibm-kyber --slot $SLOT --pin $PKCS11_USER_PIN --label p11sak-ibm-kyber:prv -f - - - echo "** Now list keys and rediirect to post-files - 'p11sak_test.sh'" -@@ -155,6 +168,7 @@ p11sak list-key aes --slot $SLOT --pin $PKCS11_USER_PIN &> $P11SAK_AES_POST - p11sak list-key rsa --slot $SLOT --pin $PKCS11_USER_PIN &> $P11SAK_RSA_POST - p11sak list-key ec --slot $SLOT --pin $PKCS11_USER_PIN &> $P11SAK_EC_POST - p11sak list-key ibm-dilithium --slot $SLOT --pin $PKCS11_USER_PIN &> $P11SAK_IBM_DIL_POST -+p11sak list-key ibm-kyber --slot $SLOT --pin $PKCS11_USER_PIN &> $P11SAK_IBM_KYBER_POST - - - echo "** Now checking output files to determine PASS/FAIL of tests - 'p11sak_test.sh'" -@@ -670,6 +684,33 @@ else - echo "* TESTCASE list-key ibm-dilithium SKIP Listed random ibm-dilithium public keys CK_BYTE attribute" - fi - -+if [[ -n $( pkcsconf -m -c $SLOT | grep CKM_IBM_KYBER) ]]; then -+ # CK_BBOOL -+ if [[ $(grep -A 35 'p11sak-ibm-kyber' $P11SAK_IBM_KYBER_LONG | grep -c 'CK_TRUE') == "12" ]]; then -+ echo "* TESTCASE list-key ibm-kyber PASS Listed random ibm-kyber public keys CK_BBOOL attribute" -+ else -+ echo "* TESTCASE list-key ibm-kyber FAIL Failed to list ibm-kyber public keys CK_BBOOL attribute" -+ status=1 -+ fi -+ # CK_ULONG -+ if [[ $(grep -A 35 'p11sak-ibm-kyber' $P11SAK_IBM_KYBER_LONG | grep -c 'CKA_MODULUS_BITS:') == "0" ]]; then -+ echo "* TESTCASE list-key ibm-kyber PASS Listed random ibm-kyber public keys CK_ULONG attribute" -+ else -+ echo "* TESTCASE list-key ibm-kyber FAIL Failed to list ibm-kyber public keys CK_ULONG attribute" -+ status=1 -+ fi -+ # CK_BYTE -+ if [[ $(grep -A 35 'p11sak-ibm-kyber' $P11SAK_IBM_KYBER_LONG | grep -c 'CKA_MODULUS:') == "0" ]]; then -+ echo "* TESTCASE list-key ibm-kyber PASS Listed random ibm-kyber public keys CK_BYTE attribute" -+ else -+ echo "* TESTCASE list-key ibm-kyber FAIL Failed to list ibm-kyber public keys CK_BYTE attribute" -+ status=1 -+ fi -+else -+ echo "* TESTCASE list-key ibm-kyber SKIP Listed random ibm-kyber public keys CK_BBOOL attribute" -+ echo "* TESTCASE list-key ibm-kyber SKIP Listed random ibm-kyber public keys CK_ULONG attribute" -+ echo "* TESTCASE list-key ibm-kyber SKIP Listed random ibm-kyber public keys CK_BYTE attribute" -+fi - - # check token pin handling - if [ $RC_P11SAK_PINOPT = 0 ]; then -@@ -724,6 +765,9 @@ rm -f $P11SAK_EC_POST - rm -f $P11SAK_IBM_DIL_PRE - rm -f $P11SAK_IBM_DIL_LONG - rm -f $P11SAK_IBM_DIL_POST -+rm -f $P11SAK_IBM_KYBER_PRE -+rm -f $P11SAK_IBM_KYBER_LONG -+rm -f $P11SAK_IBM_KYBER_POST - rm -f $P11SAK_ALL_PINOPT - rm -f $P11SAK_ALL_PINENV - rm -f $P11SAK_ALL_PINCON --- -2.16.2.windows.1 - diff --git a/0033-EP11-Supply-CKA_PUBLIC_KEY_INFO-with-CKM_IBM_BTC_DER.patch b/0033-EP11-Supply-CKA_PUBLIC_KEY_INFO-with-CKM_IBM_BTC_DER.patch deleted file mode 100644 index 5a27080..0000000 --- a/0033-EP11-Supply-CKA_PUBLIC_KEY_INFO-with-CKM_IBM_BTC_DER.patch +++ /dev/null @@ -1,356 +0,0 @@ -From df874a780108fa1390e4cb99144b9acb0667f76b Mon Sep 17 00:00:00 2001 -From: Ingo Franzki -Date: Fri, 4 Nov 2022 11:33:50 +0100 -Subject: [PATCH 33/34] EP11: Supply CKA_PUBLIC_KEY_INFO with - CKM_IBM_BTC_DERIVE of private key - -When deriving a private EC key with the CKM_IBM_BTC_DERIVE mechanism, -also supply the SPKI in the CKA_PUBLIC_KEY_INFO attribute. - -To get the SPKI, use m_GetAttributeValue() with CKA_PUBLIC_KEY_INFO. -On newer EP11 host libraries this returns the SPKI of the corresponding -public key of the private key blob. In case the EP11 host library fails -to get the SPKI from the blob, ignore and do not supply an SPKI. - -Signed-off-by: Ingo Franzki ---- - usr/lib/ep11_stdll/ep11_specific.c | 266 +++++++++++++++++++++++-------------- - 1 file changed, 168 insertions(+), 98 deletions(-) - -diff --git a/usr/lib/ep11_stdll/ep11_specific.c b/usr/lib/ep11_stdll/ep11_specific.c -index 9efce053..d4ece223 100644 ---- a/usr/lib/ep11_stdll/ep11_specific.c -+++ b/usr/lib/ep11_stdll/ep11_specific.c -@@ -5316,7 +5316,148 @@ static CK_RV ep11tok_kyber_mech_post_process(STDLL_TokData_t *tokdata, - return CKR_OK; - } - --CK_RV ep11tok_derive_key(STDLL_TokData_t * tokdata, SESSION * session, -+static CK_RV ep11tok_btc_mech_pre_process(STDLL_TokData_t *tokdata, -+ OBJECT *key_obj, -+ CK_ATTRIBUTE **new_attrs, -+ CK_ULONG *new_attrs_len) -+{ -+ CK_ATTRIBUTE *ec_params; -+ CK_ULONG i, privlen; -+ CK_RV rc; -+ -+ UNUSED(tokdata); -+ -+ /* -+ * CKM_IBM_BTC_DERIVE requires CKA_VALUE_LEN to specify the byte length -+ * of the to be derived EC key. CKA_VALUE_LEN is dependent on the -+ * curve used. -+ * CKA_VALUE_LEN can not be already in the user supplied template, -+ * since this is not allowed by the key template check routines. -+ */ -+ rc = template_attribute_get_non_empty(key_obj->template, CKA_EC_PARAMS, -+ &ec_params); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("CKA_EC_PARAMS is required in derive template\n"); -+ return rc; -+ } -+ -+ for (i = 0; i < NUMEC; i++) { -+ if (der_ec_supported[i].data_size == ec_params->ulValueLen && -+ memcmp(ec_params->pValue, der_ec_supported[i].data, -+ ec_params->ulValueLen) == 0) { -+ privlen = (der_ec_supported[i].len_bits + 7) / 8; -+ rc = add_to_attribute_array(new_attrs, new_attrs_len, -+ CKA_VALUE_LEN, -+ (CK_BYTE_PTR)&privlen, -+ sizeof(privlen)); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("Adding attribute failed type=CKA_VALUE_LEN " -+ "rc=0x%lx\n", rc); -+ return rc; -+ } -+ break; -+ } -+ } -+ -+ return CKR_OK; -+} -+ -+static CK_RV ep11tok_btc_mech_post_process(STDLL_TokData_t *tokdata, -+ SESSION *session, CK_MECHANISM *mech, -+ CK_ULONG class, CK_ULONG ktype, -+ OBJECT *key_obj, -+ CK_BYTE *blob, CK_ULONG bloblen, -+ CK_BYTE *csum, CK_ULONG cslen) -+{ -+ CK_IBM_BTC_DERIVE_PARAMS *btc_params = NULL; -+ CK_BYTE *spki = NULL; -+ CK_ULONG spki_length = 0; -+ CK_BYTE buf[MAX_BLOBSIZE]; -+ CK_ATTRIBUTE get_attr[1] = {{ CKA_PUBLIC_KEY_INFO, &buf, sizeof(buf) }}; -+ CK_ATTRIBUTE *spki_attr = NULL; -+ CK_BBOOL allocated = FALSE; -+ CK_RV rc = CKR_OK; -+ -+ if (mech->ulParameterLen != sizeof(CK_IBM_BTC_DERIVE_PARAMS) || -+ mech->pParameter == NULL) { -+ TRACE_ERROR("%s Param NULL or len for %s wrong: %lu\n", -+ __func__, ep11_get_ckm(tokdata, mech->mechanism), -+ mech->ulParameterLen); -+ return CKR_MECHANISM_PARAM_INVALID; -+ } -+ -+ btc_params = (CK_IBM_BTC_DERIVE_PARAMS *)mech->pParameter; -+ -+ if (btc_params != NULL && btc_params->pChainCode != NULL && -+ cslen >= CK_IBM_BTC_CHAINCODE_LENGTH) { -+ memcpy(btc_params->pChainCode, csum, CK_IBM_BTC_CHAINCODE_LENGTH); -+ btc_params->ulChainCodeLen = CK_IBM_BTC_CHAINCODE_LENGTH; -+ } -+ -+ switch (class) { -+ case CKO_PUBLIC_KEY: -+ /* Derived blob is an SPKI, extract public EC key attributes */ -+ rc = ecdsa_priv_unwrap_get_data(key_obj->template, blob, bloblen); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("%s ecdsa_priv_unwrap_get_data failed with " -+ "rc=0x%lx\n", __func__, rc); -+ return rc; -+ } -+ -+ /* Extract the SPKI and add CKA_PUBLIC_KEY_INFO to key */ -+ rc = publ_key_get_spki(key_obj->template, ktype, FALSE, -+ &spki, &spki_length); -+ if (rc != CKR_OK) { -+ TRACE_DEVEL("publ_key_get_spki failed\n"); -+ return rc; -+ } -+ -+ allocated = TRUE; -+ break; -+ -+ case CKO_PRIVATE_KEY: -+ RETRY_START(rc, tokdata) -+ rc = dll_m_GetAttributeValue(blob, bloblen, get_attr, 1, -+ target_info->target); -+ RETRY_END(rc, tokdata, session) -+ -+ /* Only newer EP11 libs support this, ignore if error */ -+ if (rc != CKR_OK) -+ return CKR_OK; -+ -+ spki = get_attr[0].pValue; -+ spki_length = get_attr[0].ulValueLen; -+ break; -+ -+ default: -+ /* do nothing */ -+ return CKR_OK; -+ } -+ -+ rc = build_attribute(CKA_PUBLIC_KEY_INFO, spki, spki_length, -+ &spki_attr); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("%s build_attribute failed with rc=0x%lx\n", -+ __func__, rc); -+ goto out; -+ } -+ -+ rc = template_update_attribute(key_obj->template, spki_attr); -+ if (rc != CKR_OK) { -+ TRACE_ERROR("%s template_update_attribute failed with rc=0x%lx\n", -+ __func__, rc); -+ free(spki_attr); -+ goto out; -+ } -+ -+out: -+ if (allocated && spki != NULL) -+ free(spki); -+ -+ return rc; -+} -+ -+CK_RV ep11tok_derive_key(STDLL_TokData_t *tokdata, SESSION *session, - CK_MECHANISM_PTR mech, CK_OBJECT_HANDLE hBaseKey, - CK_OBJECT_HANDLE_PTR handle, CK_ATTRIBUTE_PTR attrs, - CK_ULONG attrs_len) -@@ -5345,17 +5486,12 @@ CK_RV ep11tok_derive_key(STDLL_TokData_t * tokdata, SESSION * session, - CK_ULONG ecpoint_len, field_len, key_len = 0; - CK_ATTRIBUTE *new_attrs1 = NULL, *new_attrs2 = NULL; - CK_ULONG new_attrs1_len = 0, new_attrs2_len = 0; -- CK_ULONG privlen, i; -+ CK_ULONG privlen; - int curve_type; - CK_BBOOL allocated = FALSE; - ep11_target_info_t* target_info; - CK_ULONG used_firmware_API_version; - CK_MECHANISM_PTR mech_orig = mech; -- CK_ATTRIBUTE *ec_params; -- CK_IBM_BTC_DERIVE_PARAMS *btc_params = NULL; -- CK_BYTE *spki = NULL; -- CK_ULONG spki_length = 0; -- CK_ATTRIBUTE *spki_attr = NULL; - struct EP11_KYBER_MECH mech_ep11; - OBJECT *kyber_secret_obj = NULL; - -@@ -5476,18 +5612,6 @@ CK_RV ep11tok_derive_key(STDLL_TokData_t * tokdata, SESSION * session, - } - } - -- if (mech->mechanism == CKM_IBM_BTC_DERIVE) { -- if (mech->ulParameterLen != sizeof(CK_IBM_BTC_DERIVE_PARAMS) || -- mech->pParameter == NULL) { -- TRACE_ERROR("%s Param NULL or len for %s wrong: %lu\n", -- __func__, ep11_get_ckm(tokdata, mech->mechanism), -- mech->ulParameterLen); -- return CKR_MECHANISM_PARAM_INVALID; -- } -- -- btc_params = (CK_IBM_BTC_DERIVE_PARAMS *)mech->pParameter; -- } -- - rc = h_opaque_2_blob(tokdata, hBaseKey, &keyblob, &keyblobsize, - &base_key_obj, READ_LOCK); - if (rc != CKR_OK) { -@@ -5605,46 +5729,24 @@ CK_RV ep11tok_derive_key(STDLL_TokData_t * tokdata, SESSION * session, - goto error; - } - -- if (mech->mechanism == CKM_IBM_BTC_DERIVE) { -- /* -- * CKM_IBM_BTC_DERIVE requires CKA_VALUE_LEN to specify the byte length -- * of the to be derived EC key. CKA_VALUE_LEN is dependent on the -- * curve used. -- * CKA_VALUE_LEN can not be already in the user supplied template, -- * since this is not allowed by the key template check routines. -- */ -- rc = template_attribute_get_non_empty(key_obj->template, CKA_EC_PARAMS, -- &ec_params); -- if (rc != CKR_OK) { -- TRACE_ERROR("CKA_EC_PARAMS is required in derive template\n"); -+ switch (mech->mechanism) { -+ case CKM_IBM_BTC_DERIVE: -+ rc = ep11tok_btc_mech_pre_process(tokdata, key_obj, &new_attrs2, -+ &new_attrs2_len); -+ if (rc != CKR_OK) - goto error; -- } -- -- for (i = 0; i < NUMEC; i++) { -- if (der_ec_supported[i].data_size == ec_params->ulValueLen && -- memcmp(ec_params->pValue, der_ec_supported[i].data, -- ec_params->ulValueLen) == 0) { -- privlen = (der_ec_supported[i].len_bits + 7) / 8; -- rc = add_to_attribute_array(&new_attrs2, &new_attrs2_len, -- CKA_VALUE_LEN, -- (CK_BYTE_PTR)&privlen, -- sizeof(privlen)); -- if (rc != CKR_OK) { -- TRACE_ERROR("Adding attribute failed type=CKA_VALUE_LEN " -- "rc=0x%lx\n", rc); -- goto error; -- } -- break; -- } -- } -- } -+ break; - -- if (mech->mechanism == CKM_IBM_KYBER) { -+ case CKM_IBM_KYBER: - rc = ep11tok_kyber_mech_pre_process(tokdata, mech, &mech_ep11, - &kyber_secret_obj); - if (rc != CKR_OK) - goto error; - mech = &mech_ep11.mech; -+ break; -+ -+ default: -+ break; - } - - trace_attributes(__func__, "Derive:", new_attrs2, new_attrs2_len); -@@ -5695,47 +5797,6 @@ CK_RV ep11tok_derive_key(STDLL_TokData_t * tokdata, SESSION * session, - } - opaque_attr = NULL; - -- if (mech->mechanism == CKM_IBM_BTC_DERIVE && -- btc_params != NULL && btc_params->pChainCode != NULL && -- cslen >= CK_IBM_BTC_CHAINCODE_LENGTH) { -- memcpy(btc_params->pChainCode, csum, CK_IBM_BTC_CHAINCODE_LENGTH); -- btc_params->ulChainCodeLen = CK_IBM_BTC_CHAINCODE_LENGTH; -- } -- -- if (mech->mechanism == CKM_IBM_BTC_DERIVE && class == CKO_PUBLIC_KEY) { -- /* Derived blob is an SPKI, extract public EC key attributes */ -- rc = ecdsa_priv_unwrap_get_data(key_obj->template, -- newblob, newblobsize); -- if (rc != CKR_OK) { -- TRACE_ERROR("%s ecdsa_priv_unwrap_get_data failed with rc=0x%lx\n", -- __func__, rc); -- goto error; -- } -- -- /* Extract the SPKI and add CKA_PUBLIC_KEY_INFO to key */ -- rc = publ_key_get_spki(key_obj->template, ktype, FALSE, -- &spki, &spki_length); -- if (rc != CKR_OK) { -- TRACE_DEVEL("publ_key_get_spki failed\n"); -- goto error; -- } -- -- rc = build_attribute(CKA_PUBLIC_KEY_INFO, spki, spki_length, &spki_attr); -- if (rc != CKR_OK) { -- TRACE_ERROR("%s build_attribute failed with rc=0x%lx\n", -- __func__, rc); -- goto error; -- } -- -- rc = template_update_attribute(key_obj->template, spki_attr); -- if (rc != CKR_OK) { -- TRACE_ERROR("%s template_update_attribute failed with " -- "rc=0x%lx\n", __func__, rc); -- goto error; -- } -- spki_attr = NULL; -- } -- - if (class == CKO_SECRET_KEY || class == CKO_PRIVATE_KEY) { - rc = update_ep11_attrs_from_blob(tokdata, session, key_obj->template); - if (rc != CKR_OK) { -@@ -5745,10 +5806,23 @@ CK_RV ep11tok_derive_key(STDLL_TokData_t * tokdata, SESSION * session, - } - } - -- if (mech->mechanism == CKM_IBM_KYBER) { -+ switch (mech->mechanism) { -+ case CKM_IBM_BTC_DERIVE: -+ rc = ep11tok_btc_mech_post_process(tokdata, session, mech, class, ktype, -+ key_obj, newblob, newblobsize, -+ csum, cslen); -+ if (rc != CKR_OK) -+ goto error; -+ break; -+ -+ case CKM_IBM_KYBER: - rc = ep11tok_kyber_mech_post_process(tokdata, mech_orig, csum, cslen); - if (rc != CKR_OK) - goto error; -+ break; -+ -+ default: -+ break; - } - - if (class == CKO_SECRET_KEY && cslen >= EP11_CSUMSIZE) { -@@ -5792,10 +5866,6 @@ error: - free(opaque_attr); - if (chk_attr != NULL) - free(chk_attr); -- if (spki_attr != NULL) -- free(spki_attr); -- if (spki != NULL) -- free(spki); - if (new_attrs) - free_attribute_array(new_attrs, new_attrs_len); - if (new_attrs1) --- -2.16.2.windows.1 - diff --git a/0034-EP11-Fix-setting-unknown-CPs-to-ON.patch b/0034-EP11-Fix-setting-unknown-CPs-to-ON.patch deleted file mode 100644 index 27d0355..0000000 --- a/0034-EP11-Fix-setting-unknown-CPs-to-ON.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 45bc6dd09fb59d78ce9b2bca7125cfc2275f9bd1 Mon Sep 17 00:00:00 2001 -From: Ingo Franzki -Date: Wed, 25 Jan 2023 13:21:44 +0100 -Subject: [PATCH 34/34] EP11: Fix setting unknown CPs to ON - -The very last control point must also be applied from the queried bits to -the combined bits. Otherwise the very last control point is always treated -as being ON, although it might be OFF, and this can lead to mechanisms being -used that are disabled by that control point. - -Fixes https://github.com/opencryptoki/opencryptoki/commit/97248f73495695436f11fafd74c2ec41a5a6f796 - -Signed-off-by: Ingo Franzki ---- - usr/lib/ep11_stdll/ep11_specific.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/usr/lib/ep11_stdll/ep11_specific.c b/usr/lib/ep11_stdll/ep11_specific.c -index d5d3de91..25ce82fe 100644 ---- a/usr/lib/ep11_stdll/ep11_specific.c -+++ b/usr/lib/ep11_stdll/ep11_specific.c -@@ -11340,8 +11340,8 @@ static CK_RV control_point_handler(uint_32 adapter, uint_32 domain, - if (data->first) { - data->first_adapter = adapter; - data->first_domain = domain; -- /* Apply CP bits 0 to max_cp_index-1 only */ -- for (i = 0; i < max_cp_index; i++) { -+ /* Apply CP bits 0 to max_cp_index only */ -+ for (i = 0; i <= max_cp_index; i++) { - data->combined_cp[CP_BYTE_NO(i)] &= - (cp[CP_BYTE_NO(i)] | ~CP_BIT_MASK(i)); - } -@@ -11362,8 +11362,8 @@ static CK_RV control_point_handler(uint_32 adapter, uint_32 domain, - data->first_domain); - } - -- for (i = 0; i < max_cp_index; i++) { -- /* Apply CP bits 0 to max_cp_index-1 only */ -+ for (i = 0; i <= max_cp_index; i++) { -+ /* Apply CP bits 0 to max_cp_index only */ - data->combined_cp[CP_BYTE_NO(i)] &= - (cp[CP_BYTE_NO(i)] | ~CP_BIT_MASK(i)); - } --- -2.16.2.windows.1 - diff --git a/opencryptoki-3.11.0-group.patch b/opencryptoki-3.11.0-group.patch deleted file mode 100644 index e88b391..0000000 --- a/opencryptoki-3.11.0-group.patch +++ /dev/null @@ -1,31 +0,0 @@ -diff -up opencryptoki-3.11.0/usr/lib/api/shrd_mem.c.in.me opencryptoki-3.11.0/usr/lib/api/shrd_mem.c.in ---- opencryptoki-3.11.0/usr/lib/api/shrd_mem.c.in.me 2019-01-31 10:42:23.325797012 +0100 -+++ opencryptoki-3.11.0/usr/lib/api/shrd_mem.c.in 2019-01-31 10:52:17.585191667 +0100 -@@ -55,9 +55,11 @@ void *attach_shared_memory() - int shmid; - char *shmp; - struct stat statbuf; -+#if 0 - struct group *grp; - struct passwd *pw, *epw; - uid_t uid, euid; -+#endif - - #if !(MMAP) - // Really should fstat the tok_path, since it will be the actual -@@ -69,6 +71,7 @@ void *attach_shared_memory() - return NULL; - } - -+#if 0 - uid = getuid(); - euid = geteuid(); - // only check group membership if not root user -@@ -102,6 +105,7 @@ void *attach_shared_memory() - return NULL; - } - } -+#endif - - Anchor->shm_tok = ftok(TOK_PATH, 'b'); - diff --git a/opencryptoki-3.18.0-p11sak.patch b/opencryptoki-3.18.0-p11sak.patch deleted file mode 100644 index f8f9f1c..0000000 --- a/opencryptoki-3.18.0-p11sak.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff -up opencryptoki-3.18.0/Makefile.am.me opencryptoki-3.18.0/Makefile.am ---- opencryptoki-3.18.0/Makefile.am.me 2022-05-09 22:25:07.980238715 +0200 -+++ opencryptoki-3.18.0/Makefile.am 2022-05-09 22:25:29.292722755 +0200 -@@ -78,7 +78,7 @@ if ENABLE_EP11TOK - endif - if ENABLE_P11SAK - test -f $(DESTDIR)$(sysconfdir)/opencryptoki || $(MKDIR_P) $(DESTDIR)$(sysconfdir)/opencryptoki || true -- test -f $(DESTDIR)$(sysconfdir)/opencryptoki/p11sak_defined_attrs.conf || $(INSTALL) -g pkcs11 -m 0640 $(srcdir)/usr/sbin/p11sak/p11sak_defined_attrs.conf $(DESTDIR)$(sysconfdir)/opencryptoki/p11sak_defined_attrs.conf || true -+ test -f $(DESTDIR)$(sysconfdir)/opencryptoki/p11sak_defined_attrs.conf || $(INSTALL) -m 0640 $(srcdir)/usr/sbin/p11sak/p11sak_defined_attrs.conf $(DESTDIR)$(sysconfdir)/opencryptoki/p11sak_defined_attrs.conf || true - endif - if ENABLE_ICATOK - cd $(DESTDIR)$(libdir)/opencryptoki/stdll && \ -@@ -129,7 +129,7 @@ endif - if ENABLE_DAEMON - test -f $(DESTDIR)$(sysconfdir)/opencryptoki || $(MKDIR_P) $(DESTDIR)$(sysconfdir)/opencryptoki || true - test -f $(DESTDIR)$(sysconfdir)/opencryptoki/opencryptoki.conf || $(INSTALL) -m 644 $(srcdir)/usr/sbin/pkcsslotd/opencryptoki.conf $(DESTDIR)$(sysconfdir)/opencryptoki/opencryptoki.conf || true -- test -f $(DESTDIR)$(sysconfdir)/opencryptoki/strength.conf || $(INSTALL) -m 640 -o root -g pkcs11 -T $(srcdir)/doc/strength-example.conf $(DESTDIR)$(sysconfdir)/opencryptoki/strength.conf || true -+ test -f $(DESTDIR)$(sysconfdir)/opencryptoki/strength.conf || $(INSTALL) -m 640 -o root -T $(srcdir)/doc/strength-example.conf $(DESTDIR)$(sysconfdir)/opencryptoki/strength.conf || true - if ENABLE_SYSTEMD - mkdir -p $(DESTDIR)/usr/lib/tmpfiles.d - cp $(srcdir)/misc/tmpfiles.conf $(DESTDIR)/usr/lib/tmpfiles.d/opencryptoki.conf diff --git a/opencryptoki-3.19.0-fix-memory-leak.patch b/opencryptoki-3.19.0-fix-memory-leak.patch deleted file mode 100644 index 89da088..0000000 --- a/opencryptoki-3.19.0-fix-memory-leak.patch +++ /dev/null @@ -1,51 +0,0 @@ -commit cb4d7b125c7166602cb9094497a201b2f5a56985 -Author: Ingo Franzki -Date: Tue Oct 4 13:21:32 2022 +0200 - - pkcsicsf: Fix memory leak - - Use confignode_deepfree() to also free appended config nodes. - - Signed-off-by: Ingo Franzki - -diff --git a/usr/sbin/pkcsicsf/pkcsicsf.c b/usr/sbin/pkcsicsf/pkcsicsf.c -index 44f5ef34..b02d1fe5 100644 ---- a/usr/sbin/pkcsicsf/pkcsicsf.c -+++ b/usr/sbin/pkcsicsf/pkcsicsf.c -@@ -129,7 +129,8 @@ static void add_token_config_entry(struct ConfigIdxStructNode *s, char *key, cha - return; - - v = confignode_allocstringvaldumpable(key, value, 0, NULL); -- confignode_append(s->value, &v->base); -+ if (v != NULL) -+ confignode_append(s->value, &v->base); - } - - static int add_token_config(const char *configname, -@@ -150,7 +151,7 @@ static int add_token_config(const char *configname, - confignode_freeeoc(eoc1); - confignode_freeeoc(eoc2); - } -- confignode_freeidxstruct(s); -+ confignode_deepfree(&s->base); - fprintf(stderr, "Failed to add an entry for %s token\n", token.name); - return -1; - } -@@ -179,7 +180,7 @@ static int add_token_config(const char *configname, - if (tfp == NULL) { - fprintf(stderr, "fopen failed, line %d: %s\n", - __LINE__, strerror(errno)); -- confignode_freeidxstruct(s); -+ confignode_deepfree(&s->base); - return -1; - } - -@@ -188,7 +189,7 @@ static int add_token_config(const char *configname, - confignode_dump(tfp, &s->base, NULL, 2); - - fclose(tfp); -- confignode_freeidxstruct(s); -+ confignode_deepfree(&s->base); - - return 0; - } diff --git a/opencryptoki-3.21.0-4ff774568e334a719fc8de16fe2309e2070f0da8.patch b/opencryptoki-3.21.0-4ff774568e334a719fc8de16fe2309e2070f0da8.patch new file mode 100644 index 0000000..7c74f79 --- /dev/null +++ b/opencryptoki-3.21.0-4ff774568e334a719fc8de16fe2309e2070f0da8.patch @@ -0,0 +1,52 @@ +commit 4ff774568e334a719fc8de16fe2309e2070f0da8 +Author: Ingo Franzki +Date: Mon May 22 11:40:01 2023 +0200 + + p11sak: Fix user confirmation prompt behavior when stdin is closed + + Treat any error during user confirmation prompt as 'cancel' and skip all + operations. + + One can for example close stdin during a user prompt via CTRL+D. This was + erroneously treated as positive confirmation and therefore caused the + operation to be performed on the current key object and all further objects + matching the filter as well, instead of canceling the operation entirely. + + Signed-off-by: Ingo Franzki + +diff --git a/usr/sbin/p11sak/p11sak.c b/usr/sbin/p11sak/p11sak.c +index d75d8343..5b54b538 100644 +--- a/usr/sbin/p11sak/p11sak.c ++++ b/usr/sbin/p11sak/p11sak.c +@@ -4736,6 +4736,7 @@ static CK_RV handle_key_remove(CK_OBJECT_HANDLE key, CK_OBJECT_CLASS class, + data->num_skipped++; + return CKR_OK; + case 'c': ++ case '\0': + data->skip_all = true; + data->num_skipped++; + return CKR_OK; +@@ -4825,6 +4826,7 @@ static CK_RV handle_key_set_attr(CK_OBJECT_HANDLE key, CK_OBJECT_CLASS class, + data->num_skipped++; + return CKR_OK; + case 'c': ++ case '\0': + data->skip_all = true; + data->num_skipped++; + return CKR_OK; +@@ -4974,6 +4976,7 @@ static CK_RV handle_key_copy(CK_OBJECT_HANDLE key, CK_OBJECT_CLASS class, + data->num_skipped++; + return CKR_OK; + case 'c': ++ case '\0': + data->skip_all = true; + data->num_skipped++; + return CKR_OK; +@@ -6983,6 +6986,7 @@ static CK_RV handle_key_export(CK_OBJECT_HANDLE key, CK_OBJECT_CLASS class, + data->num_skipped++; + return CKR_OK; + case 'c': ++ case '\0': + data->skip_all = true; + data->num_skipped++; + return CKR_OK; diff --git a/opencryptoki-3.21.0-f4166214552a92d8d66de8011ab11c9c2c6bb0a4.patch b/opencryptoki-3.21.0-f4166214552a92d8d66de8011ab11c9c2c6bb0a4.patch new file mode 100644 index 0000000..0bf6df4 --- /dev/null +++ b/opencryptoki-3.21.0-f4166214552a92d8d66de8011ab11c9c2c6bb0a4.patch @@ -0,0 +1,84 @@ +commit f4166214552a92d8d66de8011ab11c9c2c6bb0a4 +Author: Ingo Franzki +Date: Mon May 22 13:31:21 2023 +0200 + + pkcsstats: Fix handling of user name + + The struct passwd returned by getpwuid() is a pointer to a static area, that + may get overwritten by subsequent calls to getpwuid() or similar. + Actually, C_Initialize() itself is using getpwuid() internally, and thus will + interfere with the getpwuid() usage in pkcsstats. + + Make a copy of the returned user name before calling C_Initialize() in + init_ock() to ensure to work with the desired user name, and not with anything + left over from previous calls. + + Signed-off-by: Ingo Franzki + +diff --git a/usr/sbin/pkcsstats/pkcsstats.c b/usr/sbin/pkcsstats/pkcsstats.c +index c2444cf5..a842a295 100644 +--- a/usr/sbin/pkcsstats/pkcsstats.c ++++ b/usr/sbin/pkcsstats/pkcsstats.c +@@ -783,6 +783,7 @@ int main(int argc, char **argv) + int opt = 0; + struct passwd *pswd = NULL; + int user_id = -1; ++ char *user_name = NULL; + bool summary = false, all_users = false, all_mechs = false; + bool reset = false, reset_all = false; + bool delete = false, delete_all = false; +@@ -903,19 +904,27 @@ int main(int argc, char **argv) + } + } + ++ user_name = strdup(pswd->pw_name); ++ if (user_name == NULL) { ++ warnx("Failed to get current user name"); ++ exit(EXIT_FAILURE); ++ } ++ + if (delete) { + if (slot_id_specified) { + warnx("Options -s/--slot and -d/--delete can not be specified together"); ++ free(user_name); + exit(EXIT_FAILURE); + } + +- rc = delete_shm(user_id, pswd->pw_name); ++ rc = delete_shm(user_id, user_name); + goto done; + } + + if (delete_all) { + if (slot_id_specified) { + warnx("Options -s/--slot and -D/--delete-all can not be specified together"); ++ free(user_name); + exit(EXIT_FAILURE); + } + +@@ -932,7 +941,7 @@ int main(int argc, char **argv) + goto done; + + if (reset) { +- rc = reset_shm(user_id, pswd->pw_name, num_slots, slots, ++ rc = reset_shm(user_id, user_name, num_slots, slots, + slot_id_specified, slot_id); + goto done; + } +@@ -968,7 +977,7 @@ int main(int argc, char **argv) + rc = display_summary(&dd); + goto done; + } else { +- rc = display_stats(user_id, pswd->pw_name, &dd); ++ rc = display_stats(user_id, user_name, &dd); + goto done; + } + +@@ -984,5 +993,7 @@ done: + dlclose(dll); + } + ++ free(user_name); ++ + return rc == 0 ? EXIT_SUCCESS : EXIT_FAILURE; + } diff --git a/opencryptoki-3.21.0-p11sak.patch b/opencryptoki-3.21.0-p11sak.patch new file mode 100644 index 0000000..197ad52 --- /dev/null +++ b/opencryptoki-3.21.0-p11sak.patch @@ -0,0 +1,37 @@ +diff -up opencryptoki-3.21.0/Makefile.am.me opencryptoki-3.21.0/Makefile.am +--- opencryptoki-3.21.0/Makefile.am.me 2023-05-15 17:01:04.932616030 +0200 ++++ opencryptoki-3.21.0/Makefile.am 2023-05-15 17:00:45.732131601 +0200 +@@ -39,15 +39,8 @@ include tools/tools.mk + include doc/doc.mk + + install-data-hook: +- getent group $(pkcs_group) > /dev/null || $(GROUPADD) -r $(pkcs_group) +- getent passwd $(pkcsslotd_user) >/dev/null || $(USERADD) -r -g $(pkcs_group) -d /run/opencryptoki -s /sbin/nologin -c "Opencryptoki pkcsslotd user" $(pkcsslotd_user) + $(MKDIR_P) $(DESTDIR)/run/opencryptoki/ +- $(CHOWN) $(pkcsslotd_user):$(pkcs_group) $(DESTDIR)/run/opencryptoki/ +- $(CHGRP) $(pkcs_group) $(DESTDIR)/run/opencryptoki/ +- $(CHMOD) 0710 $(DESTDIR)/run/opencryptoki/ + $(MKDIR_P) $(DESTDIR)$(localstatedir)/lib/opencryptoki +- $(CHGRP) $(pkcs_group) $(DESTDIR)$(localstatedir)/lib/opencryptoki +- $(CHMOD) 0770 $(DESTDIR)$(localstatedir)/lib/opencryptoki + if ENABLE_LIBRARY + $(MKDIR_P) $(DESTDIR)$(libdir)/opencryptoki/stdll + $(MKDIR_P) $(DESTDIR)$(libdir)/pkcs11 +@@ -100,7 +93,7 @@ if ENABLE_EP11TOK + endif + if ENABLE_P11SAK + test -f $(DESTDIR)$(sysconfdir)/opencryptoki || $(MKDIR_P) $(DESTDIR)$(sysconfdir)/opencryptoki || true +- test -f $(DESTDIR)$(sysconfdir)/opencryptoki/p11sak_defined_attrs.conf || $(INSTALL) -g $(pkcs_group) -m 0640 $(srcdir)/usr/sbin/p11sak/p11sak_defined_attrs.conf $(DESTDIR)$(sysconfdir)/opencryptoki/p11sak_defined_attrs.conf || true ++ test -f $(DESTDIR)$(sysconfdir)/opencryptoki/p11sak_defined_attrs.conf || $(INSTALL) -m 0640 $(srcdir)/usr/sbin/p11sak/p11sak_defined_attrs.conf $(DESTDIR)$(sysconfdir)/opencryptoki/p11sak_defined_attrs.conf || true + endif + if ENABLE_ICATOK + cd $(DESTDIR)$(libdir)/opencryptoki/stdll && \ +@@ -151,7 +144,7 @@ endif + if ENABLE_DAEMON + test -f $(DESTDIR)$(sysconfdir)/opencryptoki || $(MKDIR_P) $(DESTDIR)$(sysconfdir)/opencryptoki || true + test -f $(DESTDIR)$(sysconfdir)/opencryptoki/opencryptoki.conf || $(INSTALL) -m 644 $(srcdir)/usr/sbin/pkcsslotd/opencryptoki.conf $(DESTDIR)$(sysconfdir)/opencryptoki/opencryptoki.conf || true +- test -f $(DESTDIR)$(sysconfdir)/opencryptoki/strength.conf || $(INSTALL) -m 640 -o root -g $(pkcs_group) -T $(srcdir)/doc/strength-example.conf $(DESTDIR)$(sysconfdir)/opencryptoki/strength.conf || true ++ test -f $(DESTDIR)$(sysconfdir)/opencryptoki/strength.conf || $(INSTALL) -m 640 -o root -T $(srcdir)/doc/strength-example.conf $(DESTDIR)$(sysconfdir)/opencryptoki/strength.conf || true + endif + $(MKDIR_P) $(DESTDIR)/etc/ld.so.conf.d + echo "$(libdir)/opencryptoki" >\ diff --git a/opencryptoki.spec b/opencryptoki.spec index fc90d35..5afa1c6 100644 --- a/opencryptoki.spec +++ b/opencryptoki.spec @@ -1,52 +1,19 @@ Name: opencryptoki Summary: Implementation of the PKCS#11 (Cryptoki) specification v3.0 -Version: 3.19.0 -Release: 2%{?dist} +Version: 3.21.0 +Release: 3%{?dist} License: CPL URL: https://github.com/opencryptoki/opencryptoki Source0: https://github.com/opencryptoki/%{name}/archive/v%{version}/%{name}-%{version}.tar.gz -# https://bugzilla.redhat.com/show_bug.cgi?id=732756 -Patch0: opencryptoki-3.11.0-group.patch # bz#1373833, change tmpfiles snippets from /var/lock/* to /run/lock/* Patch1: opencryptoki-3.11.0-lockdir.patch # add missing p11sak_defined_attrs.conf, strength.conf -Patch2: opencryptoki-3.18.0-p11sak.patch +Patch2: opencryptoki-3.21.0-p11sak.patch # upstream patches -Patch100: opencryptoki-3.19.0-fix-memory-leak.patch -Patch101: 0001-EP11-Unify-key-pair-generation-functions.patch -Patch102: 0002-EP11-Do-not-report-DSA-DH-parameter-generation-as-be.patch -Patch103: 0003-EP11-Do-not-pass-empty-CKA_PUBLIC_KEY_INFO-to-EP11-h.patch -Patch104: 0004-Mechtable-CKM_IBM_DILITHIUM-can-also-be-used-for-key.patch -Patch105: 0005-EP11-Remove-DSA-DH-parameter-generation-mechanisms-f.patch -Patch106: 0006-EP11-Pass-back-chain-code-for-CKM_IBM_BTC_DERIVE.patch -Patch107: 0007-EP11-Supply-CKA_PUBLIC_KEY_INFO-with-CKM_IBM_BTC_DER.patch -Patch108: 0008-EP11-Supply-CKA_PUBLIC_KEY_INFO-when-importing-priva.patch -Patch109: 0009-EP11-Fix-memory-leak-introduced-with-recent-commit.patch -Patch110: 0010-p11sak-Fix-segfault-when-dilithium-version-is-not-sp.patch -Patch111: 0011-EP11-remove-dead-code-and-unused-variables.patch -Patch112: 0012-EP11-Update-EP11-host-library-header-files.patch -Patch113: 0013-EP11-Support-EP11-host-library-version-4.patch -Patch114: 0014-EP11-Add-new-control-points.patch -Patch115: 0015-EP11-Default-unknown-CPs-to-ON.patch -Patch116: 0016-COMMON-Add-defines-for-Dilithium-round-2-and-3-varia.patch -Patch117: 0017-COMMON-Add-defines-for-Kyber.patch -Patch118: 0018-COMMON-Add-post-quantum-algorithm-OIDs.patch -Patch119: 0019-COMMON-Dilithium-key-BER-encoding-decoding-allow-dif.patch -Patch120: 0020-COMMON-EP11-Add-CKA_VALUE-holding-SPKI-PKCS-8-of-key.patch -Patch121: 0021-COMMON-EP11-Allow-to-select-Dilithium-variant-via-mo.patch -Patch122: 0022-EP11-Query-supported-PQC-variants-and-restrict-usage.patch -Patch123: 0023-POLICY-Dilithium-strength-and-signature-size-depends.patch -Patch124: 0024-TESTCASES-Test-Dilithium-variants.patch -Patch125: 0025-COMMON-EP11-Add-Kyber-key-type-and-mechanism.patch -Patch126: 0026-EP11-Add-support-for-generating-and-importing-Kyber-.patch -Patch127: 0027-EP11-Add-support-for-encrypt-decrypt-and-KEM-operati.patch -Patch128: 0028-POLICY-STATISTICS-Check-for-Kyber-KEM-KDFs-and-count.patch -Patch129: 0029-TESTCASES-Add-tests-for-CKM_IBM_KYBER.patch -Patch130: 0030-p11sak-Support-additional-Dilithium-variants.patch -Patch131: 0031-p11sak-Add-support-for-IBM-Kyber-key-type.patch -Patch132: 0032-testcase-Enhance-p11sak-testcase-to-generate-IBM-Kyb.patch -Patch133: 0033-EP11-Supply-CKA_PUBLIC_KEY_INFO-with-CKM_IBM_BTC_DER.patch -Patch134: 0034-EP11-Fix-setting-unknown-CPs-to-ON.patch +# pkcsstats: Fix handling of user name +Patch100: opencryptoki-3.21.0-f4166214552a92d8d66de8011ab11c9c2c6bb0a4.patch +# p11sak: Fix user confirmation prompt behavior when stdin is closed +Patch101: opencryptoki-3.21.0-4ff774568e334a719fc8de16fe2309e2070f0da8.patch Requires(pre): coreutils diffutils Requires: (selinux-policy >= 34.1.8-1 if selinux-policy-targeted) @@ -60,7 +27,7 @@ BuildRequires: openldap-devel BuildRequires: autoconf automake libtool BuildRequires: bison flex BuildRequires: systemd-devel -BuildRequires: libitm-devel +BuildRequires: libcap-devel BuildRequires: expect BuildRequires: make %ifarch s390 s390x @@ -217,6 +184,7 @@ configured with Enterprise PKCS#11 (EP11) firmware. ./bootstrap.sh %configure --with-systemd=%{_unitdir} --enable-testcases \ + --with-pkcsslotd-user=pkcsslotd --with-pkcs-group=pkcs11 \ %if 0%{?tpmtok} --enable-tpmtok \ %else @@ -245,6 +213,7 @@ fi %pre libs getent group pkcs11 >/dev/null || groupadd -r pkcs11 +getent passwd pkcsslotd >/dev/null || useradd -r -g pkcs11 -d /run/opencryptoki -s /sbin/nologin -c "Opencryptoki pkcsslotd user" pkcsslotd exit 0 %post @@ -284,10 +253,12 @@ fi %{_sbindir}/pkcsconf %{_sbindir}/pkcsslotd %{_sbindir}/pkcsstats +%{_sbindir}/pkcshsm_mk_change %{_mandir}/man1/p11sak.1* %{_mandir}/man1/pkcstok_migrate.1* %{_mandir}/man1/pkcsconf.1* %{_mandir}/man1/pkcsstats.1* +%{_mandir}/man1/pkcshsm_mk_change.1* %{_mandir}/man5/policy.conf.5* %{_mandir}/man5/strength.conf.5* %{_mandir}/man5/%{name}.conf.5* @@ -297,9 +268,10 @@ fi %{_libdir}/opencryptoki/methods %{_libdir}/pkcs11/methods %dir %attr(770,root,pkcs11) %{_sharedstatedir}/%{name} +%dir %attr(770,root,pkcs11) %{_sharedstatedir}/%{name}/HSM_MK_CHANGE %ghost %dir %attr(770,root,pkcs11) %{_rundir}/lock/%{name} %ghost %dir %attr(770,root,pkcs11) %{_rundir}/lock/%{name}/* -%dir %attr(770,root,pkcs11) %{_localstatedir}/log/opencryptoki +%dir %attr(710,pkcsslotd,pkcs11) /run/%{name} %files libs %license LICENSE @@ -315,6 +287,7 @@ fi %{_libdir}/pkcs11/libopencryptoki.so %{_libdir}/pkcs11/PKCS11_API.so %{_libdir}/pkcs11/stdll +%dir %attr(770,root,pkcs11) %{_localstatedir}/log/opencryptoki %files devel %{_includedir}/%{name}/ @@ -375,6 +348,16 @@ fi %changelog +* Mon May 22 2023 Than Ngo - 3.21.0-3 +- Resolves: #2110497, concurrent MK rotation for cca token +- Resolves: #2110498, concurrent MK rotation for ep11 token +- Resolves: #2110499, ep11 token: PKCS #11 3.0 - support AES_XTS +- Resolves: #2111010, cca token: protected key support +- Resolves: #2160061, rebase to 3.21.0 +- Resolves: #2160105, pkcsslotd hardening +- Resolves: #2160107, p11sak support Dilithium and Kyber keys +- Resolves: #2160109, ica and soft tokens: PKCS #11 3.0 - support AES_XTS + * Mon Jan 30 2023 Than Ngo - 3.19.0-2 - Resolves: #2044182, Support of ep11 token for new IBM Z Hardware (IBM z16) diff --git a/sources b/sources index 36aee98..44afc26 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (opencryptoki-3.19.0.tar.gz) = 40d5fb9c5a716c72f7fb9d6ac60bac1854bfe4ee8568d1ed27af2265757bf916cfeafa3eefdfc45b72ec778685ee5f1bc42aecdb5a4340a7ed0b23f3bfe62a6c +SHA512 (opencryptoki-3.21.0.tar.gz) = a1843a395770d7b93df46e26a87779f636cf490b300be8f0af97643ffde01460199aa7634e11708cd2353ef534d8df0cfe6e408229c6b4869446aa6886f4e740