]> git.saurik.com Git - apple/security.git/commitdiff
Security-57031.30.12.tar.gz os-x-10104 v57031.30.12
authorApple <opensource@apple.com>
Tue, 15 Sep 2015 22:00:58 +0000 (22:00 +0000)
committerApple <opensource@apple.com>
Tue, 15 Sep 2015 22:00:58 +0000 (22:00 +0000)
69 files changed:
CircleJoinRequested/Readme.txt
Security.exp-in
Security/lib/security.exp-in
Security/libsecurity_apple_x509_tp/lib/TPCertInfo.cpp
Security/libsecurity_apple_x509_tp/lib/TPDatabase.cpp
Security/libsecurity_apple_x509_tp/lib/TPDatabase.h
Security/libsecurity_apple_x509_tp/lib/tpCertAllowList.c [new file with mode: 0644]
Security/libsecurity_apple_x509_tp/lib/tpCertAllowList.h [new file with mode: 0644]
Security/libsecurity_apple_x509_tp/lib/tpCertGroup.cpp
Security/libsecurity_apple_x509_tp/libsecurity_apple_x509_tp.xcodeproj/project.pbxproj
Security/libsecurity_asn1/lib/SecNssCoder.cpp
Security/libsecurity_asn1/lib/SecNssCoder.h
Security/libsecurity_asn1/lib/plarena.c
Security/libsecurity_asn1/lib/plarena.h
Security/libsecurity_asn1/lib/plarenas.h
Security/libsecurity_asn1/lib/prtypes.h
Security/libsecurity_asn1/lib/secport.c
Security/libsecurity_codesigning/lib/CSCommon.h
Security/libsecurity_codesigning/lib/StaticCode.cpp
Security/libsecurity_codesigning/lib/bundlediskrep.cpp
Security/libsecurity_codesigning/lib/bundlediskrep.h
Security/libsecurity_codesigning/lib/cdbuilder.cpp
Security/libsecurity_codesigning/lib/codedirectory.cpp
Security/libsecurity_codesigning/lib/diskrep.cpp
Security/libsecurity_codesigning/lib/diskrep.h
Security/libsecurity_codesigning/lib/machorep.cpp
Security/libsecurity_codesigning/lib/machorep.h
Security/libsecurity_codesigning/lib/signer.cpp
Security/libsecurity_codesigning/lib/singlediskrep.cpp
Security/libsecurity_codesigning/lib/singlediskrep.h
Security/libsecurity_keychain/lib/Certificate.cpp
Security/libsecurity_keychain/libsecurity_keychain.xcodeproj/project.pbxproj
Security/libsecurity_smime/lib/cmsarray.c
Security/libsecurity_smime/lib/cmsattr.c
Security/libsecurity_smime/lib/cmsdecode.c
Security/libsecurity_smime/lib/cmsdigest.c
Security/libsecurity_smime/lib/cmsencode.c
Security/libsecurity_smime/lib/cmsreclist.c
Security/libsecurity_smime/lib/cmssiginfo.c
Security/libsecurity_smime/lib/cmsutil.c
Security/libsecurity_smime/lib/secitem.c
Security/libsecurity_smime/lib/secitem.h
Security/libsecurity_ssl/lib/SecureTransportPriv.h
Security/libsecurity_ssl/lib/security_ssl.exp
Security/libsecurity_ssl/lib/sslContext.c
Security/libsecurity_ssl/regressions/ssl-42-ciphers.c
Security/sec/SOSCircle/CloudKeychainProxy/CKDKVSProxy.m
Security/sec/SOSCircle/Regressions/SOSTestDataSource.c
Security/sec/SOSCircle/SecureObjectSync/SOSDataSource.h
Security/sec/SOSCircle/SecureObjectSync/SOSEngine.c
Security/sec/Security/Regressions/secitem/si-80-empty-data.c
Security/sec/Security/SecCMS.c
Security/sec/Security/SecCertificateRequest.c
Security/sec/securityd/SecItemDataSource.c
Security/utilities/src/SecDb.c
Security/utilities/src/SecDb.h
SecurityTests/clxutils/certcrl/testSubjects/anchorAndDb/anchorAndDb.scr
libsecurity_smime/lib/cmsarray.c
libsecurity_smime/lib/cmsattr.c
libsecurity_smime/lib/cmscipher.c
libsecurity_smime/lib/cmsdecode.c
libsecurity_smime/lib/cmsdigest.c
libsecurity_smime/lib/cmsencode.c
libsecurity_smime/lib/cmsrecinfo.c
libsecurity_smime/lib/cmsreclist.c
libsecurity_smime/lib/cmssiginfo.c
libsecurity_smime/lib/cmsutil.c
refs.txt [deleted file]
securityd/src/pcscmonitor.cpp

index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0e237bb1df995a46f4bee104be6447e4c5b5b73d 100644 (file)
@@ -0,0 +1,6 @@
+This project is a copy of the normal Foundation command-line tool, and the differences are summarized below.
+
+It uses the standard Debug and Release configurations. Currently, command-line tools aren't supported in the Simulator.
+
+
+Thanks!
index 7b0249298f4c1297892b87ec888c29f4e1bab64c..8bc278551f302ca3536d1e6da6b31b7acb008450 100644 (file)
@@ -37,6 +37,7 @@ _SSLGetDatagramWriteSize
 _SSLGetEnabledCiphers
 _SSLGetEncryptionCertificate
 _SSLGetMaxDatagramRecordSize
+_SSLGetMinimumDHGroupSize
 _SSLGetNegotiatedCipher
 _SSLGetNegotiatedCurve
 _SSLGetNegotiatedProtocolVersion
@@ -75,6 +76,7 @@ _SSLSetEnabledCiphers
 _SSLSetEncryptionCertificate
 _SSLSetIOFuncs
 _SSLSetMaxDatagramRecordSize
+_SSLSetMinimumDHGroupSize
 _SSLSetProtocolVersionMax
 _SSLSetProtocolVersionMin
 _SSLSetPSKIdentity
index 4aa9a66508e303e17316ec555f10f0c4f358d8de..a7cb0074d89a5fbeda7f173071e2bac6f7b4a616 100644 (file)
@@ -2097,6 +2097,8 @@ _SSLNewDatagramContext
 _SSLGetDatagramWriteSize
 _SSLSetPSKSharedSecret
 _SSLSetPSKIdentity
+_SSLSetMinimumDHGroupSize
+_SSLGetMinimumDHGroupSize
 
 //
 // libsecurity_transform
index 2cf881e5920b926ee3676ff64249ab5bbc1a135a..b1f0f93145925e6d3d77d2536d442aae105548e5 100644 (file)
@@ -1570,6 +1570,9 @@ CSSM_RETURN TPCertGroup::buildCertGroup(
 
        /* and the case of an issuer without a matching subject key id */
        TPCertInfo *unmatchedKeyIDIssuer = NULL;
+    
+    /* and the case of a root that isn't trusted or an anchor */
+    TPCertInfo *untrustedRoot = NULL;
 
        verifiedToRoot = CSSM_FALSE;
        verifiedToAnchor = CSSM_FALSE;
@@ -1678,10 +1681,58 @@ CSSM_RETURN TPCertGroup::buildCertGroup(
                        }       /* CSSM_TP_ACTION_TRUST_SETTING */
 
 post_trust_setting:
+            /*
+             * If this cert is in the provided anchors list,
+             * we can stop building the chain at this point.
+             *
+             * If this cert is a leaf, the chain ends in an anchor, but if it's
+             * also temporally invalid, we can't do anything further. However,
+             * if it's not a leaf, then we need to roll back the chain to a
+             * point just before this cert, so Case 1 will subsequently find
+             * the anchor (and handle the anchor correctly if it's expired.)
+             */
+            if(numAnchorCerts && anchorCerts) {
+                bool foundAnchor = false;
+                for(certDex=0; certDex<numAnchorCerts; certDex++) {
+                    if(tp_CompareCerts(subjCert->itemData(), &anchorCerts[certDex])) {
+                        foundAnchor = true;
+                        /* if it's not the leaf, remove it from the outgoing cert group. */
+                        if(!firstSubjectIsInGroup || (mNumCerts > 1)) {
+                            if(mNumCerts) {
+                                /* roll back to previous cert */
+                                mNumCerts--;
+                            }
+                            if(mNumCerts == 0) {
+                                /* roll back to caller's initial condition */
+                                thisSubject = &subjectItem;
+                            }
+                            else {
+                                thisSubject = lastCert();
+                            }
+                            tpAnchorDebug("buildCertGroup: CA cert in input AND anchors");
+                        } /* not leaf */
+                        else {
+                            if(subjCert->isExpired() || subjCert->isNotValidYet()) {
+                                crtn = CSSM_CERT_STATUS_EXPIRED;
+                            } else {
+                                crtn = CSSM_OK;
+                            }
+                            subjCert->isAnchor(true);
+                            verifiedToAnchor = CSSM_TRUE;
+                            tpAnchorDebug("buildCertGroup: leaf cert in input AND anchors");
+                        } /* leaf */
+                        if(subjCert->isSelfSigned()) {
+                            verifiedToRoot = CSSM_TRUE;
+                        }
+                        break; /* out of anchor-checking loop */
+                    }
+                }
+                if(foundAnchor) {
+                    break; /* out of main loop */
+                }
+            }
+            
                        if(subjCert->isSelfSigned()) {
-                               /* We're at the end of the chain. */
-                               verifiedToRoot = CSSM_TRUE;
-
                                /*
                                 * Special case if this root is temporally invalid (and it's not
                                 * the leaf): remove it from the outgoing cert group, save it,
@@ -1690,6 +1741,7 @@ post_trust_setting:
                                 */
                                if((subjCert->isExpired() || subjCert->isNotValidYet()) &&
                                   (!firstSubjectIsInGroup || (mNumCerts > 1))) {
+                    verifiedToRoot = CSSM_TRUE;
                                        tpDebug("buildCertGroup: EXPIRED ROOT %p, looking for good one", subjCert);
                                        expiredRoot = subjCert;
                                        if(mNumCerts) {
@@ -1703,58 +1755,40 @@ post_trust_setting:
                                        else {
                                                thisSubject = lastCert();
                                        }
+                    break;             /* out of main loop */
                                }
-                               break;          /* out of main loop */
+                /* 
+                 * If any root is considered an anchor, we don't need to look 
+                 * for a better chain that ends in an anchor or trusted root.
+                 */
+                if(actionFlags & CSSM_TP_ACTION_IMPLICIT_ANCHORS) {
+                    verifiedToRoot = CSSM_TRUE;
+                    break;      /*out of main loop */
+                }
+                /*
+                 * The root we have is neither trusted nor an anchor. Continue in
+                 * the loop to look for a better chain if this is not a leaf.
+                 */
+                if(!firstSubjectIsInGroup || (mNumCerts > 1)) {
+                    tpDebug("buildCertGroup: UNTRUSTED ROOT %p, looking for better chain", subjCert);
+                    untrustedRoot = subjCert;
+                    if(mNumCerts) {
+                        /* roll back to previous cert */
+                        mNumCerts--;
+                    }
+                    if(mNumCerts == 0) {
+                        /* roll back to caller's initial condition */
+                        thisSubject = &subjectItem;
+                    }
+                    else {
+                        thisSubject = lastCert();
+                    }
+                }
+                else {
+                    /* the leaf is a root */
+                    break;      /* out of main loop */
+                }
                        }       /* root */
-
-                       /*
-                        * If this non-root cert is in the provided anchors list,
-                        * we can stop building the chain at this point.
-                        *
-                        * If this cert is a leaf, the chain ends in an anchor, but if it's
-                        * also temporally invalid, we can't do anything further. However,
-                        * if it's not a leaf, then we need to roll back the chain to a
-                        * point just before this cert, so Case 1 will subsequently find
-                        * the anchor (and handle the anchor correctly if it's expired.)
-                        */
-                       if(numAnchorCerts && anchorCerts) {
-                               bool foundNonRootAnchor = false;
-                               for(certDex=0; certDex<numAnchorCerts; certDex++) {
-                                       if(tp_CompareCerts(subjCert->itemData(), &anchorCerts[certDex])) {
-                                               foundNonRootAnchor = true;
-                                               /* if it's not the leaf, remove it from the outgoing cert group. */
-                                               if(!firstSubjectIsInGroup || (mNumCerts > 1)) {
-                                                       if(mNumCerts) {
-                                                               /* roll back to previous cert */
-                                                               mNumCerts--;
-                                                       }
-                                                       if(mNumCerts == 0) {
-                                                               /* roll back to caller's initial condition */
-                                                               thisSubject = &subjectItem;
-                                                       }
-                                                       else {
-                                                               thisSubject = lastCert();
-                                                       }
-                                                       tpAnchorDebug("buildCertGroup: CA cert in input AND anchors");
-                                               } /* not leaf */
-                                               else {
-                                                       if(subjCert->isExpired() || subjCert->isNotValidYet()) {
-                                                               crtn = CSSM_CERT_STATUS_EXPIRED;
-                                                       } else {
-                                                               crtn = CSSM_OK;
-                                                       }
-                                                       subjCert->isAnchor(true);
-                                                       verifiedToAnchor = CSSM_TRUE;
-                                                       tpAnchorDebug("buildCertGroup: leaf cert in input AND anchors");
-                                               } /* leaf */
-                                               break;  /* out of anchor-checking loop */
-                                       }
-                               }
-                               if(foundNonRootAnchor) {
-                                       break; /* out of main loop */
-                               }
-                       } /* non-root */
-
                }       /* subjectIsInGroup */
 
                /*
@@ -1786,6 +1820,11 @@ post_trust_setting:
 
                if(issuerCert != NULL) {
                        bool stashedIssuer = false;
+            /* Check whether candidate issuer is the same as unstrustedRoot */
+            if((untrustedRoot != NULL) && tp_CompareCerts(issuerCert->itemData(), untrustedRoot->itemData())) {
+                /* already stashed */
+                stashedIssuer = true;
+            }
                        /* Check whether candidate issuer is expired or not yet valid */
                        if(issuerCert->isExpired() || issuerCert->isNotValidYet()) {
                                if(expiredIssuer == NULL) {
@@ -1845,6 +1884,11 @@ post_trust_setting:
 
                if(issuerCert != NULL) {
                        bool stashedIssuer = false;
+            /* Check whether candidate issuer is the same as untrustedRoot */
+            if((untrustedRoot != NULL) && tp_CompareCerts(issuerCert->itemData(), untrustedRoot->itemData())) {
+                /* already stashed */
+                stashedIssuer = true;
+            }
                        /* Check whether candidate issuer is expired or not yet valid */
                        if(issuerCert->isExpired() || issuerCert->isNotValidYet()) {
                                if(expiredIssuer == NULL) {
@@ -1890,7 +1934,7 @@ post_trust_setting:
                 * If we found a candidate issuer in input or gathered certs, check whether it
                 * might be a cross-signed intermediate that can be replaced with an anchor.
                 */
-               if(issuerCert != NULL && !issuerCert->isSelfSigned()) {
+               if(issuerCert != NULL && !issuerCert->isSelfSigned() && (untrustedRoot == NULL)) {
                        bool partial = false;
                        TPCertInfo *possibleAnchorCert = NULL;
                        try {
@@ -1900,7 +1944,8 @@ post_trust_setting:
                                        thisSubject,
                                        dbList,
                                        verifyTime,
-                                       partial);
+                                       partial,
+                    untrustedRoot);
                        }
                        catch (...) {}
 
@@ -1913,6 +1958,8 @@ post_trust_setting:
                                         * However, code from this point on cannot assume the same thing.
                                         */
                                        tpDebug("buildCertGroup: replacement anchor for issuer FOUND in dbList");
+                    /* mark non-root candidate as unused since we won't use it */
+                    issuerCert->used(false);
                                        issuerCert = possibleAnchorCert;
 
                                        /* Caller must free, since this cert came from a DLDB */
@@ -1955,7 +2002,8 @@ post_trust_setting:
                                        thisSubject,
                                        dbList,
                                        verifyTime,
-                                       partial);
+                                       partial,
+                    untrustedRoot);
                        }
                        catch (...) {}
 
@@ -2020,6 +2068,16 @@ post_trust_setting:
                 * point, the expiredRoot mechanism is used to roll back and search for
                 * an anchor that verifies the last good cert.
                 */
+        if((issuerCert == NULL) &&                     /* tpDbFindIssuerCert() hasn't found one and
+                                             * we don't have a good one */
+           (untrustedRoot != NULL)) {          /* but we have an untrusted root available*/
+            /*
+             * We couldn't find a better issuer, so end loop. In Case 1, we'll look for
+             * an alternate anchor issuer. If we can't find an anchor, we'll end up using
+             * the untrusted root.
+             */
+            break;          /* from main loop */
+        }
 
                if((issuerCert == NULL) &&                      /* tpDbFindIssuerCert() hasn't found one and
                                                                                         * we don't have a good one */
@@ -2061,6 +2119,13 @@ post_trust_setting:
                thisSubject = issuerCert;
                subjectIsInGroup = CSSM_TRUE;
                issuerCert = NULL;
+        /* 
+         * We've found a (potentially) better chain, so discard the untrusted root.
+         * Note we don't have to free untrustedRoot because it either:
+         *    -came from inCertGroup or gatherCerts; or
+         *    -came from the dbList and was already added to certToBeFreed.
+         */
+        untrustedRoot = NULL;
        }       /* main loop */
 
        /*
@@ -2279,10 +2344,25 @@ post_trust_setting:
                if(expiredIssuer->isSelfSigned()) {
                        verifiedToRoot = CSSM_TRUE;
                }
-               /* no matter what, we don't want this one */
+               /* no matter what, we don't want these */
                expiredRoot = NULL;
+        untrustedRoot = NULL;
        }
 post_anchor:
+    if(untrustedRoot) {
+        /*
+         * Special case: untrustedRoot found, but no luck resolving the problem with
+         * anchors.  Go ahead and (re-)append the untrusted root and return
+         */
+        tpDebug("buildCertGroup: accepted UNTRUSTED root");
+        appendCert(untrustedRoot);
+        if(foundPartialIssuer) {
+            return verifyWithPartialKeys(subjectItem);
+        }
+        else {
+            return CSSM_OK;
+        }
+    }
        if(expiredRoot) {
                /*
                 * One remaining special case: expiredRoot found in input certs, but
index 583b7c10a95c7c90fefc01437d9fe9ccc96fda2c..5ba632f959498ad730dad61b40b75a9f5b99c4a1 100644 (file)
@@ -96,7 +96,8 @@ TPCertInfo *tpDbFindIssuerCert(
        const TPClItemInfo              *subjectItem,
        const CSSM_DL_DB_LIST   *dbList,
        const char                              *verifyTime,            // may be NULL
-       bool                                    &partialIssuerKey)      // RETURNED
+       bool                                    &partialIssuerKey,      // RETURNED
+    TPCertInfo              *oldRoot)
 {
        StLock<Mutex> _(SecTrustKeychainsGetMutex());
 
@@ -187,11 +188,16 @@ TPCertInfo *tpDbFindIssuerCert(
                                }
                        }
                        switch(crtn) {
-                               case CSSM_OK:
-                                       break;
                                case CSSMERR_CSP_APPLE_PUBLIC_KEY_INCOMPLETE:
                                        partialIssuerKey = true;
                                        break;
+                case CSSM_OK:
+                    if((oldRoot == NULL) ||
+                       !tp_CompareCerts(issuerCert->itemData(), oldRoot->itemData())) {
+                        /* We found a new root cert which does not match the old one */
+                        break;
+                    }
+                    /* else fall through to search for a different one */
                                default:
                                        if(issuerCert != NULL) {
                                                /* either holding onto this cert, or done with it. */
@@ -265,8 +271,12 @@ TPCertInfo *tpDbFindIssuerCert(
                                                foundIt = false;
                                                switch(crtn) {
                                                        case CSSM_OK:
-                                                               foundIt = true;
-                                                               break;
+                                /* duplicate check, again */
+                                if((oldRoot == NULL) ||
+                                   !tp_CompareCerts(issuerCert->itemData(), oldRoot->itemData())) {
+                                    foundIt = true;
+                                }
+                                break;
                                                        case CSSMERR_CSP_APPLE_PUBLIC_KEY_INCOMPLETE:
                                                                partialIssuerKey = true;
                                                                foundIt = true;
index 6e618a412d952197de855183f1695523e2b1e307..003d58ae7baa671f03d5fcee6ed413cc157aff7d 100644 (file)
@@ -39,10 +39,11 @@ TPCertInfo *tpDbFindIssuerCert(
        const TPClItemInfo              *subjectItem,
        const CSSM_DL_DB_LIST   *dbList,
        const char                              *verifyTime,            // may be NULL
-       bool                                    &partialIssuerKey);     // RETURNED
+       bool                                    &partialIssuerKey,      // RETURNED
+    TPCertInfo              *oldRoot);
 
 /*
- * Search a list of DBs for a CRL from the specified issuer and (optional)  
+ * Search a list of DBs for a CRL from the specified issuer and (optional)
  * TPVerifyContext.verifyTime. 
  * Just a boolean return - we found it, or not. If we did, we return a
  * TPCrlInfo which has been verified with the specified TPVerifyContext.
diff --git a/Security/libsecurity_apple_x509_tp/lib/tpCertAllowList.c b/Security/libsecurity_apple_x509_tp/lib/tpCertAllowList.c
new file mode 100644 (file)
index 0000000..072f425
--- /dev/null
@@ -0,0 +1,1634 @@
+/*
+ * Copyright (c) 2015 Apple Inc. All Rights Reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_LICENSE_HEADER_END@
+ */
+
+/*
+ * tpCertAllowList.c - Static certificate whitelist
+ */
+
+
+#include <stdlib.h>
+#include <strings.h>
+
+#include "certGroupUtils.h"
+#include "TPCertInfo.h"
+#include "TPCrlInfo.h"
+#include "tpPolicies.h"
+#include "tpdebugging.h"
+#include "tpCrlVerify.h"
+
+#include <Security/oidsalg.h>
+#include <Security/cssmapple.h>
+#include "tpCertAllowList.h"
+#include <Security/SecBase.h>
+#include <CommonCrypto/CommonDigest.h>
+#include <CommonCrypto/CommonDigestSPI.h>
+#include <CoreFoundation/CFError.h>
+
+
+typedef UInt8 CertHash[CC_SHA256_DIGEST_LENGTH];
+
+
+static const CertHash kCNNICBasicHashes[] = {
+       { 0x00,0x5b,0xf9,0x8e,0xed,0x61,0x2b,0x50,0xec,0xda,0x7b,0xff,0x56,0xa2,0xdf,0xf4,0x67,0xa8,0xad,0xd7,0xee,0xc0,0xab,0x30,0x57,0x54,0xd7,0x66,0xbe,0xbb,0x5f,0xe8},
+       { 0x00,0x87,0x75,0xb8,0xea,0xd0,0xfe,0x16,0x26,0x9c,0x9a,0x9a,0xb2,0x83,0x39,0x55,0x49,0xca,0x67,0xc2,0xa3,0xaa,0xe8,0x2f,0x1a,0x6b,0x4d,0x3a,0xbc,0xca,0xdc,0x27},
+       { 0x00,0xc5,0x9f,0x5e,0xf3,0xb4,0x6d,0xbc,0xa0,0xa8,0xbb,0xa5,0x0a,0x72,0xd4,0xe1,0x83,0x9a,0x94,0xfb,0x1a,0x58,0x5a,0xd7,0x2a,0x7a,0xac,0x3c,0x72,0x56,0x1f,0xc0},
+       { 0x00,0xc6,0x81,0x13,0x16,0xbd,0x9c,0x91,0x98,0x6e,0xa9,0x7e,0x2c,0x30,0xab,0xef,0xa0,0xd5,0x68,0x04,0x89,0x0d,0x65,0x8d,0xff,0x08,0x59,0x11,0x6e,0xb4,0xc2,0x32},
+       { 0x00,0xcb,0x92,0x51,0xaf,0xfa,0x0e,0x4c,0xa0,0xa5,0x61,0x1f,0x1a,0x79,0x15,0x05,0xd2,0xab,0xf8,0x9d,0xd0,0x48,0x53,0x29,0x16,0xf0,0x5f,0xd8,0x74,0xf2,0x5d,0xcd},
+       { 0x00,0xde,0xff,0x68,0x2e,0x35,0x10,0x22,0xcc,0x3b,0xbb,0x4e,0xb5,0x88,0x0a,0x97,0x27,0x88,0x0a,0xf3,0x52,0xfb,0xbe,0x2f,0x91,0x24,0xbe,0x92,0x88,0x4b,0x18,0xfd},
+       { 0x00,0xf7,0x28,0x14,0x8c,0x8c,0x28,0x90,0x7f,0xac,0xf3,0x89,0xc0,0xe9,0xb9,0xbc,0x6f,0xd1,0xb8,0xde,0xe0,0xe8,0x5b,0x65,0xfe,0x39,0x39,0x8b,0xee,0x95,0xdc,0x59},
+       { 0x00,0xf8,0x4a,0x82,0x67,0xb3,0xda,0xee,0x1e,0x16,0x90,0x75,0x1c,0x86,0xbd,0x78,0x94,0x08,0x65,0x94,0x3e,0xee,0x52,0xe9,0x7d,0x98,0x50,0x1a,0xc8,0xe1,0x58,0x94},
+       { 0x01,0x1d,0x7d,0xc8,0x19,0x01,0xab,0xca,0xe0,0xf4,0x74,0x4c,0x17,0xb8,0xf7,0x87,0xf3,0x97,0x41,0x3a,0x42,0x3d,0xc0,0x82,0xc4,0xb3,0x80,0x23,0xde,0x42,0x00,0x75},
+       { 0x01,0x5f,0x9b,0x68,0xd6,0x4b,0x86,0x0d,0x5e,0xd0,0x40,0x50,0x66,0xa3,0xf2,0xfd,0x9d,0x6d,0xde,0x3a,0x9b,0x35,0x73,0x17,0x34,0x10,0xe6,0xce,0x63,0x9b,0x77,0x91},
+       { 0x01,0x84,0xb8,0x58,0xc0,0x22,0x4a,0x51,0x52,0x41,0x5c,0x77,0x68,0x30,0xa4,0x42,0x29,0xf6,0x44,0xa3,0x9e,0xe5,0x3e,0x76,0xcc,0x02,0xb9,0x24,0x71,0xcf,0x83,0x9d},
+       { 0x01,0xd6,0x0a,0xe5,0x22,0x20,0x8e,0xc6,0xf5,0x04,0xd5,0x91,0xf9,0x7a,0x99,0xa5,0xef,0x25,0x25,0x98,0x71,0xe4,0x77,0x42,0xd4,0x71,0xe2,0x6f,0xf0,0x75,0xe9,0xe9},
+       { 0x01,0xf1,0x14,0x28,0x67,0x99,0xea,0x8b,0x24,0x08,0xe3,0xda,0xbe,0x90,0xf3,0xad,0xea,0x20,0x46,0x32,0xaa,0x3b,0x82,0xd2,0xe5,0x5a,0x8d,0xcf,0x5b,0x7e,0xd7,0xad},
+       { 0x01,0xfc,0xeb,0xf0,0x6a,0xf4,0x9d,0x87,0x8a,0xf9,0xbd,0x57,0xe1,0x2d,0xbe,0xa7,0xeb,0x80,0x12,0x0f,0x7c,0x10,0xcd,0x1a,0x1a,0x98,0x89,0x8e,0xd8,0xe7,0xec,0x4c},
+       { 0x02,0x01,0x4e,0x80,0xf5,0xc4,0xf3,0x8b,0xa9,0xd9,0x04,0x79,0x1a,0x63,0xf6,0x4d,0x05,0xf9,0xe2,0x03,0xa1,0xf1,0x2b,0x06,0xd6,0x55,0x94,0x01,0x41,0x0e,0x73,0x36},
+       { 0x02,0x08,0x22,0xab,0x1b,0x8c,0xc0,0xd8,0x22,0x03,0x60,0xa1,0xaf,0x8b,0xb4,0xd9,0xbe,0x60,0xe8,0x43,0x9e,0x2b,0xa3,0x07,0x8d,0x61,0xf4,0x01,0xe1,0x5b,0x41,0xbc},
+       { 0x02,0x35,0x38,0xe2,0x48,0x15,0x28,0x75,0x29,0x2f,0x2c,0x83,0x9a,0xb3,0x2b,0xc7,0x35,0x1e,0x2b,0x29,0x99,0x1d,0x66,0xae,0xa6,0x16,0xcb,0x0b,0x26,0xa5,0xe3,0x75},
+       { 0x02,0x61,0x53,0xe5,0x91,0xcd,0x82,0xf7,0xbd,0xce,0x99,0xb3,0xba,0x10,0xa8,0xd6,0x90,0x24,0xc6,0x36,0xd3,0x5d,0xab,0x1a,0x95,0x6c,0x7d,0x7a,0xef,0x80,0x3a,0xde},
+       { 0x02,0xc4,0x8c,0x3a,0xdc,0xf9,0x9f,0x28,0xf4,0x79,0xb8,0xf6,0x79,0x88,0x77,0x78,0xb9,0x3a,0x06,0xaf,0xf1,0x6e,0x35,0x8f,0x40,0x9b,0xc6,0xfe,0x54,0x03,0x04,0xc6},
+       { 0x02,0xec,0x35,0xf5,0x83,0x4c,0xd2,0xc3,0x43,0x33,0x39,0x9a,0xea,0x6b,0xda,0x84,0x68,0xab,0x8d,0x74,0xef,0x6c,0xa5,0x2d,0x33,0x7a,0x30,0x69,0x4c,0x3f,0x95,0xa4},
+       { 0x03,0x2a,0x7e,0x55,0xfe,0xc3,0x74,0xc6,0xd7,0x9c,0xff,0xdb,0x46,0x7c,0x5c,0xcd,0x56,0xf5,0x49,0x0a,0xae,0x9a,0xf1,0xbc,0xcc,0x7e,0x54,0xda,0xfa,0x6d,0x8a,0x3f},
+       { 0x03,0x33,0xb3,0x91,0x64,0xd6,0x25,0xf0,0x1d,0x50,0x83,0xde,0x2f,0xb1,0xe2,0x5d,0x89,0x34,0x29,0x69,0x0f,0xa5,0xd7,0x7d,0x84,0x90,0x1e,0xd1,0x9b,0x22,0x1d,0xf3},
+       { 0x03,0x83,0xf9,0xc1,0xf5,0xc8,0x4c,0x02,0x64,0xe6,0x3b,0x2a,0x96,0x21,0x21,0x37,0x58,0x70,0x0d,0x1a,0xfb,0x61,0xf8,0x00,0x1f,0x3e,0xff,0x81,0x44,0xe6,0xfe,0x73},
+       { 0x03,0xd9,0x9f,0x24,0xf8,0x64,0x4b,0x80,0x4d,0x8e,0x3b,0xc9,0xc8,0x7c,0x02,0x4e,0x4b,0xb7,0x0d,0xc6,0x30,0x1b,0xcd,0xe3,0x24,0x12,0xb4,0xce,0x8c,0x0c,0x14,0x58},
+       { 0x03,0xde,0x42,0xaf,0x1f,0x30,0x9f,0x95,0xf6,0xc8,0x91,0x03,0xea,0x98,0x7e,0x84,0xd3,0x18,0x6b,0x60,0x65,0xf9,0x60,0x7a,0x06,0x6a,0x30,0x2b,0x58,0x05,0xeb,0x3b},
+       { 0x03,0xe0,0x6e,0x0b,0x7a,0x2c,0xba,0xe4,0xb6,0x8b,0xce,0x5f,0x83,0xe7,0xa9,0x31,0x6e,0xd7,0x82,0x3e,0x8d,0x94,0x85,0x38,0xf1,0x94,0x3f,0xa4,0x27,0xd7,0x91,0x0e},
+       { 0x04,0x0f,0x53,0x7a,0x51,0x95,0x95,0xcc,0xff,0xde,0x35,0xe0,0xd1,0x28,0xb7,0x99,0x92,0x2b,0xa9,0x37,0xa2,0xe8,0x65,0x84,0x36,0x62,0xf1,0xf4,0x50,0x02,0xb8,0x2d},
+       { 0x04,0x18,0xd5,0x3e,0xbc,0x8e,0x71,0x41,0x25,0x1b,0x4d,0xc8,0xfa,0x7b,0x2b,0xd8,0xfd,0x3a,0x1c,0x65,0x2a,0xa1,0x16,0xe7,0xfc,0x70,0x0b,0x2a,0xb5,0x1a,0x2a,0x1a},
+       { 0x04,0x3e,0xd7,0xff,0x71,0xbd,0x65,0xae,0x28,0x35,0xb0,0xcb,0x38,0x74,0x8d,0x0b,0x08,0x5f,0x86,0xf7,0x5f,0x2a,0x96,0xc8,0xd4,0x64,0x00,0x89,0xbc,0x58,0x3d,0x7b},
+       { 0x04,0x49,0x38,0x0a,0x30,0xbd,0x6d,0xbd,0x55,0xdf,0xe2,0x54,0xc8,0x20,0xa0,0x77,0xff,0x11,0xca,0xfc,0x83,0xb5,0x0e,0x0a,0x13,0xf1,0x3d,0x59,0xd3,0xca,0x6c,0xaf},
+       { 0x04,0x6f,0xda,0x46,0xf0,0xc4,0x7b,0x4a,0x4d,0x90,0x31,0x03,0x7b,0x33,0xdb,0xac,0x99,0x86,0x1b,0x7f,0x0f,0x85,0x1d,0x15,0x1a,0x83,0x29,0xf8,0x42,0x1b,0x41,0x5e},
+       { 0x04,0x71,0x57,0x2c,0x03,0x03,0x7d,0xee,0x2b,0x40,0x09,0x6e,0xe8,0xaa,0x37,0x82,0xc6,0xfa,0x81,0x42,0xcc,0xa2,0x68,0x19,0x09,0xda,0xe8,0xc4,0x66,0xd0,0x58,0x4e},
+       { 0x04,0x80,0x71,0x3a,0x76,0x91,0x7e,0xb1,0x7f,0xb5,0x4c,0x93,0xee,0xd3,0xfd,0x8a,0x98,0x2b,0xd9,0x06,0x9c,0x69,0xab,0xea,0xde,0xb2,0x5a,0x76,0xd9,0xa5,0x90,0x65},
+       { 0x04,0x8a,0x21,0x7a,0xd4,0x4e,0x00,0xca,0xd1,0xeb,0xee,0x67,0x23,0x51,0xd2,0x89,0x10,0xaf,0x69,0xed,0x4d,0x45,0x5a,0xef,0x42,0x76,0x23,0xf7,0xd7,0xad,0xde,0xc7},
+       { 0x04,0xa6,0x4d,0xd4,0x31,0x97,0xc6,0x2c,0x2c,0xd3,0xb6,0x0b,0xdf,0x30,0x5b,0x3e,0x81,0xe5,0xf5,0x00,0x2c,0x15,0x78,0x59,0xfb,0xb7,0xb4,0x85,0x45,0xe6,0x49,0x11},
+       { 0x04,0xde,0x66,0x05,0x94,0x63,0xaf,0xd2,0xc1,0x1e,0x9e,0x4f,0xd6,0xae,0x55,0x07,0xef,0x68,0xef,0x91,0x54,0x0c,0x41,0x0c,0x32,0xa8,0xf0,0x24,0x62,0x5f,0x6b,0xb0},
+       { 0x05,0x2e,0xeb,0x25,0xb7,0x24,0xba,0x44,0xf4,0x81,0xbe,0x5c,0x80,0xfd,0xb5,0x5f,0x36,0xb8,0xd9,0xbc,0xe6,0x45,0xb2,0x2f,0xa1,0x35,0xc7,0xd9,0x74,0xcb,0xf6,0xfe},
+       { 0x05,0x4f,0xf2,0x4d,0xd5,0x0d,0x49,0x84,0x68,0x3b,0x8b,0xb0,0x1a,0xde,0xe5,0xa8,0x73,0x1f,0x7c,0x24,0xcd,0x11,0x6f,0x5a,0xc6,0x75,0xe0,0x17,0x33,0xca,0xd1,0x83},
+       { 0x05,0x64,0x05,0x92,0x8f,0xdc,0x6d,0xfc,0x08,0xcd,0x89,0x88,0x63,0x0e,0xe2,0xd8,0x23,0x5a,0x62,0xfc,0xd1,0xdb,0xc9,0x12,0xa6,0x52,0xa3,0xfd,0xac,0xd4,0xf3,0x51},
+       { 0x05,0x69,0xc6,0xc6,0x2a,0x75,0xa3,0x9b,0x82,0x4f,0x48,0x77,0xc8,0x8e,0xc0,0x08,0x9c,0x09,0x42,0x58,0x1e,0x38,0x77,0xff,0xf9,0x19,0x50,0xea,0x0f,0x9d,0xd4,0xfe},
+       { 0x05,0xa7,0xaf,0xa3,0x20,0x08,0xfe,0x48,0x46,0x29,0x67,0xe7,0xf8,0x79,0x9f,0x72,0x48,0x71,0x80,0xec,0x0f,0x68,0xba,0xf7,0x96,0x7a,0x87,0xfa,0x0a,0x75,0xcf,0xaa},
+       { 0x06,0x17,0xf8,0xbc,0x10,0x4c,0x24,0x0a,0x8e,0x33,0x42,0x82,0x00,0x29,0x1d,0xb3,0xa6,0xa0,0x67,0x70,0x90,0xcb,0x02,0x39,0x9f,0xfd,0x88,0x75,0xb9,0x05,0xb1,0x1f},
+       { 0x06,0xd4,0x08,0xff,0xa9,0x93,0xaf,0x04,0x45,0x9c,0x45,0x67,0x1a,0xab,0xd8,0x7e,0xf9,0x2b,0x85,0x6b,0x1b,0x42,0xc6,0x7e,0x00,0x5e,0xb4,0xd2,0x71,0x58,0xa8,0x42},
+       { 0x07,0x19,0x4f,0x47,0xf4,0xce,0xd0,0x96,0xd1,0x06,0x8d,0x34,0x49,0x3b,0x67,0x37,0x14,0x45,0x16,0x93,0xa6,0xa2,0x71,0x2f,0x70,0x8f,0x59,0x36,0x12,0x11,0xc6,0x21},
+       { 0x07,0x3c,0xa3,0x1d,0x60,0x08,0x54,0xa8,0x29,0x9a,0xff,0x74,0xe9,0x8a,0xc1,0xed,0x48,0x2a,0xca,0x06,0x8e,0xc5,0x90,0x61,0x54,0xea,0x24,0x7b,0x6c,0x27,0x6e,0xe9},
+       { 0x07,0x76,0x08,0x6a,0x5a,0x31,0x72,0x42,0xa2,0x50,0x4c,0x45,0x3c,0x89,0xff,0xd3,0xc4,0xf3,0xa3,0x6c,0x46,0xbe,0xb3,0xf5,0xf3,0x55,0xdb,0x47,0x6d,0xd7,0x7c,0x19},
+       { 0x07,0x8f,0xee,0x58,0x8a,0x2c,0x55,0xc8,0xe2,0xc1,0x78,0x71,0xaa,0xb6,0xe4,0x00,0xb3,0xfd,0xbc,0xdc,0xf3,0x91,0x46,0xa0,0x89,0x37,0xf9,0xac,0x06,0xa1,0xb8,0xbd},
+       { 0x07,0xa9,0x5c,0x81,0xed,0x15,0x9e,0x44,0xa0,0x41,0x2b,0xde,0xb1,0x31,0xa1,0x1f,0x26,0xe3,0x4e,0x51,0x67,0xec,0xf2,0x11,0x78,0xf3,0xef,0xbf,0xb3,0xa2,0xbb,0x72},
+       { 0x07,0xe9,0x60,0x9e,0x05,0xdc,0x0a,0x1e,0x52,0x15,0x06,0x49,0xeb,0xf4,0x1f,0x6d,0xe3,0x86,0x7c,0x9c,0x25,0xfe,0x17,0x7b,0xab,0xcf,0xd9,0xb3,0x70,0x46,0x13,0x8b},
+       { 0x08,0x21,0x0a,0xc3,0xa2,0x95,0x56,0xf6,0x8d,0x33,0xb4,0x40,0x87,0x9c,0x54,0x63,0x64,0x04,0xe9,0x7c,0x4d,0x9f,0x97,0x82,0x23,0xd2,0x42,0xab,0xe5,0x38,0x5e,0x4e},
+       { 0x08,0xc2,0xd3,0x17,0xa8,0x4a,0x3c,0xbe,0x38,0xde,0x64,0xa2,0x4d,0xd4,0x27,0x91,0x09,0xe2,0xbc,0x02,0x2b,0x93,0xb1,0x05,0xa8,0x94,0xa5,0x1a,0xdc,0x3e,0xe5,0xcc},
+       { 0x08,0xc7,0xb0,0x23,0xa9,0x9a,0x63,0x74,0x13,0xde,0x2c,0x9d,0x88,0x09,0x82,0x33,0x8d,0x09,0x36,0xf1,0x21,0x25,0x1e,0x75,0x58,0x59,0x12,0x62,0x92,0xf9,0x6b,0x1a},
+       { 0x09,0x06,0x86,0xa8,0x02,0xd8,0x42,0x73,0x06,0x33,0x5b,0xc4,0x63,0x5f,0x95,0x8f,0x90,0xb2,0x76,0xeb,0x7b,0x1a,0x62,0x7c,0xbe,0xa7,0xf8,0xa1,0xd2,0x44,0xee,0x8a},
+       { 0x09,0x1f,0x0a,0xdd,0x81,0x63,0xc3,0x11,0xb3,0xdf,0x6c,0x8a,0xba,0x7b,0xd3,0x35,0x0c,0x52,0xc4,0xfc,0xae,0xc1,0x67,0x62,0xf6,0x64,0xc4,0xcb,0xdc,0xc5,0x77,0xc8},
+       { 0x09,0x35,0x58,0xed,0xe2,0x67,0x67,0x32,0x63,0x49,0xe7,0xbe,0xbc,0x8c,0x77,0x02,0x94,0xc4,0x42,0xa7,0x2e,0x6c,0x98,0x0e,0xa0,0x4e,0xfa,0x90,0x07,0x30,0x81,0x3e},
+       { 0x09,0x9f,0x3e,0x71,0xb5,0x00,0xd1,0x5b,0x03,0x7b,0x93,0xaa,0x5f,0xb4,0x16,0x19,0x0a,0xd1,0xdf,0x86,0x73,0xab,0x31,0xa8,0xf6,0xd9,0x7f,0x59,0x5e,0x8e,0x16,0xe9},
+       { 0x09,0xa2,0xc1,0x4e,0x5d,0x62,0xc3,0x4a,0xa7,0x06,0xff,0xab,0xd2,0x1e,0x7a,0xd2,0x25,0xf6,0x25,0xf7,0x1f,0xf8,0x9d,0xb3,0x9b,0x32,0x2a,0xcb,0x0c,0x84,0x57,0x4f},
+       { 0x09,0xa5,0x9e,0x8b,0x56,0xfd,0x2b,0xa0,0xac,0x68,0x5c,0xb6,0xf7,0x51,0xa0,0x2f,0x83,0x5c,0x68,0x50,0x81,0xa2,0xd5,0xdc,0x02,0xb0,0x4e,0x9b,0x3b,0xc7,0xc8,0xbc},
+       { 0x09,0xeb,0xdd,0x1b,0x7f,0xfa,0x4e,0xd7,0x4b,0xeb,0xae,0x96,0xba,0x10,0x65,0xdc,0x7d,0xa1,0xc5,0xd3,0x18,0x3c,0xc5,0x94,0x19,0xe9,0x78,0x36,0xaf,0x7f,0x6d,0x70},
+       { 0x09,0xfc,0x8c,0xad,0x2c,0xe7,0x52,0x3c,0xdb,0xed,0x70,0x5f,0xda,0x4b,0x22,0x8c,0xd4,0xbb,0xa3,0xb7,0xf9,0xf2,0x50,0xea,0x6b,0xe2,0x3c,0x17,0x00,0xa5,0x1c,0xe5},
+       { 0x0a,0x01,0x88,0x81,0x2c,0x9d,0xe8,0x8a,0x2f,0x0a,0x5c,0x4c,0x57,0xe6,0xf9,0xa8,0x15,0x69,0xe9,0xc7,0x09,0xc0,0x95,0x40,0x80,0xe5,0xe4,0xe6,0x62,0x85,0x6d,0xf8},
+       { 0x0a,0x42,0x19,0x7e,0x48,0x70,0xb2,0x34,0x20,0xf5,0x51,0x9f,0xb8,0x39,0xb6,0xcc,0x83,0x03,0x52,0x9a,0xa9,0x06,0x9a,0xd1,0xa0,0x90,0x86,0xcf,0x6c,0xba,0x07,0xc2},
+       { 0x0a,0xb1,0xb1,0x53,0x74,0x59,0x75,0x6c,0xd4,0x1c,0x02,0x6d,0x46,0x83,0x64,0x3a,0xc1,0x6c,0xf9,0xcb,0x1c,0x28,0xbd,0x27,0x8a,0x18,0x53,0x52,0x30,0xd6,0xe4,0x93},
+       { 0x0b,0x03,0xe1,0x27,0xc2,0xe3,0x3e,0xad,0xbc,0xb0,0x99,0x80,0x46,0xcc,0x9b,0xa7,0x33,0x46,0x3e,0x0c,0xa6,0x43,0x52,0x27,0x81,0xb0,0x3d,0x81,0x53,0x97,0xeb,0x4f},
+       { 0x0b,0x1e,0x1e,0x73,0x43,0xa0,0xe9,0x1c,0x2a,0x27,0xdd,0x2a,0x4d,0x7e,0x6b,0xf1,0xe8,0x04,0x4b,0x58,0xce,0x1a,0xe8,0x1e,0x27,0xd8,0x14,0xfd,0x2d,0xc0,0x18,0x93},
+       { 0x0b,0x23,0x83,0x47,0x04,0xd5,0x51,0xf9,0x14,0xd0,0xae,0xd0,0x6a,0x5f,0x1a,0x72,0x48,0x11,0xdb,0x55,0x18,0x00,0x4c,0xb2,0xc3,0x8c,0xf9,0x71,0x49,0x64,0xdb,0x21},
+       { 0x0b,0x28,0x58,0xc0,0x3b,0xa3,0xf1,0x10,0x18,0x68,0x8e,0xc6,0x2f,0x1c,0x17,0x30,0xdc,0xa2,0x20,0x48,0x57,0xce,0x5f,0xad,0xb6,0x6c,0xe6,0x6b,0xda,0xb1,0x70,0x3d},
+       { 0x0b,0x3d,0x17,0x8d,0x8a,0x68,0x43,0x73,0x19,0x35,0x9f,0xa3,0x54,0x28,0x65,0xad,0xe1,0x20,0x02,0x9a,0xbe,0x5b,0x02,0xba,0xff,0xbe,0x98,0x8b,0x2a,0x14,0x46,0x3d},
+       { 0x0b,0x45,0xc6,0x0d,0xe2,0x72,0x59,0xc9,0x59,0x56,0x71,0xce,0xa0,0xbe,0x71,0x1e,0x0f,0x64,0x49,0xee,0xc6,0x19,0x88,0x3a,0x6c,0x39,0x3d,0xce,0x51,0x85,0xa7,0xac},
+       { 0x0b,0x48,0xd5,0x5c,0xac,0x84,0xfd,0xee,0x15,0xd8,0x1a,0xff,0x99,0x07,0xbb,0x9a,0x57,0x11,0xa9,0x5c,0xe2,0x3a,0x8d,0x4d,0x5e,0x88,0x62,0xbf,0x15,0xa7,0x6a,0x75},
+       { 0x0b,0x85,0xea,0x41,0xe5,0x44,0x13,0x86,0xc9,0x44,0xe8,0x1d,0x47,0xec,0x0f,0x42,0x0b,0x54,0xe5,0x11,0x14,0x38,0xcb,0x5a,0x1c,0xbd,0x53,0xc7,0x8e,0x7e,0xd2,0xa6},
+       { 0x0b,0xfe,0xa1,0x38,0x31,0x67,0x3e,0xc9,0x69,0xd0,0x5f,0xd8,0x67,0xb6,0x69,0xf2,0x71,0x24,0xaf,0xeb,0x7c,0x60,0x8c,0xfe,0x54,0xcf,0x46,0x33,0x06,0xcc,0x99,0x2e},
+       { 0x0c,0x02,0xa0,0x08,0xa4,0x98,0xd9,0x82,0x26,0x80,0xec,0x09,0x73,0x3b,0x15,0xcf,0xe2,0x66,0x30,0xda,0x43,0x94,0x65,0x82,0xe5,0xda,0xca,0x43,0x89,0x9d,0x5f,0x6f},
+       { 0x0c,0x14,0xf5,0x4b,0x4a,0xe1,0xd2,0xbc,0xa2,0x83,0x40,0x09,0x0e,0x37,0x37,0x6c,0xfd,0xe7,0x78,0x4a,0xa7,0x20,0xb3,0x55,0x9c,0x42,0xd8,0xc9,0x4f,0x44,0xcb,0x04},
+       { 0x0c,0xa8,0x11,0xfe,0xdb,0x74,0xbe,0xad,0x8b,0xb6,0xa9,0xef,0x22,0xe7,0x3a,0x5f,0x5f,0x3f,0x38,0x53,0xfd,0xe6,0xdb,0xe3,0xf6,0xa2,0xd8,0xef,0x7f,0x62,0x27,0x3a},
+       { 0x0c,0xb9,0x31,0x93,0xf1,0x65,0x26,0xe1,0xd1,0x65,0x52,0x11,0x7b,0xa2,0x1a,0xac,0xb9,0xf1,0xd7,0xa8,0x93,0x56,0xa3,0x5d,0xe4,0xf6,0x65,0xe9,0x39,0x90,0x79,0x38},
+       { 0x0d,0x01,0xd9,0x55,0x23,0x47,0x90,0x24,0x17,0x4e,0x8d,0xc1,0x05,0x00,0x90,0x39,0xe7,0x3c,0x0b,0xc6,0x34,0x66,0x54,0x6d,0x91,0xfa,0xcd,0x29,0xaa,0x39,0x13,0xc6},
+       { 0x0d,0x16,0x1b,0xb9,0xca,0x0d,0x20,0xe4,0x67,0x35,0x89,0x67,0x22,0x78,0xb0,0xa3,0xc5,0xe2,0x69,0x30,0xa4,0xdc,0x3a,0x82,0x16,0x85,0x43,0x24,0x27,0xc7,0x31,0x5a},
+       { 0x0d,0x18,0x5d,0x97,0x79,0xac,0xfe,0x41,0x89,0x12,0xb5,0x9e,0xf7,0xcd,0x42,0x8b,0xd4,0xbc,0x7f,0x2b,0xcd,0xed,0x9e,0xad,0xab,0x55,0xf0,0x66,0xe2,0x9e,0xdf,0x4f},
+       { 0x0d,0x66,0x45,0x6b,0x0b,0xf4,0xaa,0x54,0x16,0xe4,0x4d,0x9f,0xdb,0x40,0x38,0x3d,0x34,0x3d,0x7b,0x3f,0x6a,0xfe,0x69,0xaa,0x08,0x95,0xbb,0x1a,0xb5,0xe0,0x61,0xa0},
+       { 0x0d,0x71,0xc8,0xca,0x16,0x56,0x59,0xef,0xaf,0x69,0x65,0x29,0x28,0x9a,0xae,0x25,0xd9,0xc4,0x2a,0x1b,0xbb,0x03,0x5a,0x2b,0x8c,0x61,0x14,0x7e,0x1b,0x8b,0x90,0x52},
+       { 0x0d,0xab,0xae,0xcb,0x0d,0x12,0x9b,0xc6,0x36,0xe8,0x4a,0x4b,0x23,0x93,0x46,0x03,0x06,0xab,0x49,0xbd,0x03,0xe2,0x22,0xee,0x79,0x2a,0x36,0x9e,0x6e,0x4f,0x70,0x72},
+       { 0x0d,0xe7,0xab,0x16,0xc8,0xc2,0xab,0x33,0x4a,0x01,0x65,0x96,0x97,0x41,0x5a,0x9e,0x28,0x02,0xee,0xdc,0x41,0xac,0xf7,0x46,0x92,0x41,0xe2,0xd3,0x9b,0x97,0x9d,0x81},
+       { 0x0e,0x23,0x35,0x4d,0xe8,0xd0,0xe4,0x79,0xca,0x89,0xa3,0x0f,0xd3,0xef,0x7e,0x20,0xbf,0xc2,0x80,0x39,0x8d,0x4c,0xdc,0x28,0x18,0x79,0xda,0x66,0xea,0xd3,0x73,0xd0},
+       { 0x0e,0x4f,0xd8,0x53,0xd6,0x0f,0xd7,0x69,0x90,0xd7,0x77,0xaf,0x09,0x79,0xd4,0x65,0x16,0xbd,0xc9,0x09,0xa8,0xd9,0xd5,0xef,0x70,0x15,0x59,0xbf,0x74,0x62,0xc4,0xaf},
+       { 0x0e,0x67,0x06,0x78,0x44,0xaa,0xc4,0xc8,0xc3,0x56,0xe7,0xaa,0xb8,0x6b,0x58,0xb0,0x14,0x21,0x03,0x87,0xd2,0xc1,0x55,0xde,0x71,0x94,0x08,0x65,0x12,0xcf,0x09,0xde},
+       { 0x0e,0xfd,0x68,0x73,0xd6,0x0e,0x77,0x96,0x2d,0xf6,0x00,0x16,0xdc,0x3b,0xaf,0x9c,0xa7,0x1e,0x7d,0x86,0x19,0xe7,0xeb,0xaa,0x3a,0xf2,0xdc,0xb5,0xba,0x24,0xde,0xc2},
+       { 0x0e,0xff,0x3c,0xff,0xda,0x4a,0x3e,0x87,0x23,0x4a,0x86,0xc7,0x0d,0x49,0x8c,0x62,0x60,0x7f,0x37,0x44,0xea,0x71,0xf1,0x83,0x1d,0xcf,0xca,0xf3,0xaf,0x15,0x56,0x9c},
+       { 0x0f,0x2c,0x25,0x7a,0xfb,0xe8,0x25,0x5d,0x2d,0x6f,0x4d,0x52,0xc4,0xe5,0x31,0x59,0xb7,0xba,0x96,0xf9,0xba,0x07,0xfa,0x6d,0x8c,0xe1,0xd0,0xac,0x03,0x3c,0x17,0xf7},
+       { 0x0f,0x43,0xfc,0x12,0x47,0x01,0xfe,0x29,0xb7,0x14,0xf3,0x05,0xe2,0x61,0xb6,0x32,0x04,0x82,0xc0,0x09,0x6f,0xfe,0xad,0x35,0xe1,0xf8,0xe6,0x32,0xc6,0x4d,0x7b,0x20},
+       { 0x0f,0x57,0xed,0x67,0x2b,0xac,0x50,0x14,0x89,0xe4,0xf4,0xab,0x4b,0x1d,0xb1,0x75,0x81,0xfe,0xb8,0x76,0x0f,0xfb,0xc0,0x8a,0x82,0x83,0xe0,0xf8,0x41,0xae,0x01,0x3c},
+       { 0x10,0x14,0xb6,0xdb,0xf3,0xc9,0x11,0xeb,0x21,0x6f,0xe6,0xec,0xe6,0x8c,0xa9,0x37,0x92,0xcc,0xcb,0xd3,0xc3,0x9c,0xbf,0x83,0xe8,0x93,0xd4,0x4d,0x5e,0x4f,0x00,0xdb},
+       { 0x10,0x7f,0xa4,0x31,0x4e,0x09,0x74,0x84,0x8a,0x9c,0x14,0xe0,0x62,0x10,0x44,0x7b,0x0a,0xdf,0xb8,0x26,0xb3,0xe5,0xbf,0x88,0x76,0x93,0x1f,0xf4,0x80,0x74,0x02,0x01},
+       { 0x10,0x83,0x6d,0xa0,0xcd,0x6a,0xc0,0x95,0xdd,0x7a,0xc3,0x4d,0x99,0x01,0x90,0x9a,0x8e,0xf8,0x4d,0x6e,0xe0,0x5b,0x83,0x43,0x03,0xd4,0x7f,0xc0,0xa5,0xf9,0x14,0xfa},
+       { 0x10,0xcf,0x15,0xbb,0x1e,0xa3,0x0b,0xb4,0xa2,0xe5,0x39,0x1c,0x39,0xaf,0xa3,0xa9,0x96,0xc8,0x53,0x22,0xb1,0x1f,0xde,0xd5,0xfb,0x84,0x80,0x35,0x5c,0x78,0x3e,0xad},
+       { 0x10,0xdc,0x64,0x9c,0x0a,0x35,0x20,0x69,0x0b,0x49,0xa8,0x97,0xea,0xb4,0x97,0xf4,0x38,0x81,0x0d,0x28,0x4f,0xcb,0xf2,0x22,0xa1,0xde,0x45,0x27,0x1d,0x1c,0xcf,0x17},
+       { 0x11,0x59,0xd3,0x5c,0x9c,0x09,0xef,0x77,0xcb,0xea,0x92,0x2e,0xf5,0xbb,0xb0,0x36,0x51,0x11,0x65,0x52,0x7a,0xcf,0x44,0xaa,0xb5,0xde,0x87,0x5e,0x2f,0x51,0xa2,0xdd},
+       { 0x11,0x65,0x97,0x60,0x44,0x7f,0xb6,0x8d,0x4f,0xbb,0x37,0x6e,0x3b,0x66,0xb1,0x94,0xda,0x3e,0xe0,0x42,0x5a,0x0b,0xc2,0x13,0x88,0x06,0xb2,0x78,0x43,0x79,0xd3,0xb8},
+       { 0x11,0x6a,0x75,0xfa,0x6f,0x84,0x56,0x46,0x7a,0x45,0xf1,0x4d,0xa4,0xb7,0xcf,0x3e,0x37,0xe6,0xa7,0xcf,0x07,0x5b,0x23,0x35,0xb2,0x01,0x1d,0x93,0x8b,0x0f,0x09,0xa0},
+       { 0x11,0xa4,0x02,0x7b,0x45,0xfc,0x9a,0x6f,0x40,0x21,0x25,0xc3,0xca,0x22,0x68,0xe0,0x15,0xa3,0x1b,0xa4,0xfd,0xb0,0x05,0x9d,0x66,0x6b,0x73,0xc8,0x51,0xd5,0x35,0x92},
+       { 0x11,0xb7,0x69,0xde,0xde,0x8b,0xd6,0x15,0xfc,0x71,0x20,0x0b,0x20,0xb9,0xa3,0x1d,0x70,0x93,0x15,0x16,0xec,0x54,0x42,0xc3,0xdd,0xc9,0xc8,0xd1,0x90,0x21,0x9d,0xe1},
+       { 0x11,0xd3,0x0d,0xd7,0x81,0x07,0x21,0x88,0x84,0xb6,0x55,0xd8,0x62,0xab,0x05,0x0e,0xac,0x0f,0x5e,0x33,0x8e,0xb1,0x18,0x44,0x4b,0x36,0x0c,0x8a,0x3e,0x05,0x09,0x9d},
+       { 0x11,0xde,0x20,0x2a,0x3e,0x34,0x13,0xa2,0x33,0x3e,0xc1,0x67,0x8e,0xbb,0x50,0x6d,0xd9,0x55,0x7c,0x06,0x81,0xce,0x5f,0xed,0xcd,0x25,0xaa,0xd1,0x2c,0x46,0x67,0xd6},
+       { 0x11,0xe7,0x54,0xf7,0x95,0x9e,0x25,0xb0,0x18,0x52,0xa0,0x46,0xb1,0xd2,0xc2,0xf6,0x48,0x93,0x53,0x7a,0x47,0x4d,0x14,0x1d,0x6e,0x50,0x50,0x1e,0x33,0x9d,0x89,0x19},
+       { 0x11,0xf6,0x34,0xe0,0x59,0xea,0xbb,0x99,0xd6,0x48,0xd4,0xff,0x6c,0xd4,0x29,0x8e,0xd2,0x0a,0xa8,0x2c,0xcc,0xde,0x8e,0x81,0x09,0x80,0x16,0xe2,0xac,0x72,0xd4,0x16},
+       { 0x12,0x0d,0x2b,0x28,0x15,0xc5,0xef,0x5c,0x28,0x71,0xa1,0x93,0x4d,0xd4,0x3d,0x49,0x9e,0x4e,0xe6,0xb6,0x30,0x00,0xae,0x1a,0xbe,0xf7,0x6d,0x0d,0x85,0x51,0xef,0xc6},
+       { 0x12,0x50,0x6d,0x3d,0xe8,0xc3,0x19,0xcc,0x5b,0x07,0x90,0x67,0x7b,0x90,0x86,0x36,0xe0,0x86,0x5b,0x5f,0xa1,0x95,0xdc,0x87,0xaf,0x26,0xf2,0xaa,0x05,0xc2,0x9f,0xad},
+       { 0x12,0x6b,0x1b,0xa6,0x38,0xc7,0xe6,0x99,0xbc,0xbc,0x54,0xf5,0x79,0xac,0xd3,0x9f,0xe6,0x1d,0x08,0x22,0x5f,0xe5,0xb1,0xf9,0x01,0x88,0xb2,0x3f,0xd8,0x43,0x3e,0x8e},
+       { 0x13,0x5d,0x3e,0xda,0x6e,0x55,0x9b,0xf5,0xee,0x23,0x0a,0xa5,0xba,0x59,0xbb,0x6a,0x2a,0x0f,0x07,0x82,0x2f,0xed,0x38,0x44,0x7e,0x6a,0xbc,0x5c,0x23,0xaa,0xd0,0x27},
+       { 0x13,0x6a,0x40,0x09,0x81,0xb1,0xa3,0xe0,0x5f,0xdc,0xac,0x20,0xa2,0x36,0xf8,0x6e,0x94,0xe5,0xee,0x58,0x59,0xd8,0xfd,0x45,0xe9,0xe9,0xc5,0xa6,0xc5,0xc0,0xa4,0x13},
+       { 0x13,0xbd,0x07,0x7b,0x8a,0x9f,0x46,0xff,0x8f,0x2f,0xfd,0x23,0x6e,0x53,0xa7,0x2c,0x3b,0x87,0xf3,0x4c,0xc9,0xdb,0xb5,0x81,0x7e,0x4d,0xba,0x1b,0xd3,0xbc,0x9e,0x5f},
+       { 0x13,0xcf,0x4a,0xc3,0x21,0x48,0xb9,0xc5,0x61,0x8a,0x7d,0xa6,0x2f,0x1c,0xb8,0x41,0x56,0x68,0xd5,0x9f,0xd3,0xb3,0x04,0x1f,0x50,0x23,0x20,0xe5,0x8e,0x95,0x1b,0xc0},
+       { 0x13,0xe0,0x1b,0xe5,0x72,0xdc,0x11,0xfa,0xc3,0xb4,0x7a,0xe6,0x8f,0x92,0xdc,0x00,0xf1,0x00,0xbf,0x77,0x53,0x7b,0x89,0x47,0xf4,0xc1,0x1c,0x25,0xa0,0xb6,0xf9,0xf6},
+       { 0x13,0xf7,0xac,0xe5,0xf5,0x11,0xc1,0xf9,0x43,0x88,0xe5,0xc8,0xa7,0x25,0x8a,0x61,0x86,0x14,0xb0,0x1c,0xea,0xdc,0xb0,0x0a,0x94,0xb3,0xcc,0x7a,0xe7,0x01,0xbe,0xae},
+       { 0x14,0x21,0x28,0xa6,0x65,0x1c,0xdc,0x18,0x70,0xc2,0x67,0x5e,0xc0,0xb0,0xef,0x32,0xb5,0xd4,0xc1,0x55,0x35,0x8e,0x7e,0xd9,0x5a,0x98,0xe8,0x3b,0x1a,0xd8,0xbe,0x4d},
+       { 0x14,0x47,0x25,0xa6,0x79,0x1c,0x60,0x0c,0x4c,0x2c,0xf3,0x94,0x3f,0x3e,0xcf,0x40,0xd6,0x31,0xd7,0x60,0xe4,0x51,0xef,0x28,0x29,0xaf,0xfb,0xee,0x74,0x80,0xad,0x17},
+       { 0x14,0x60,0x80,0x7b,0x0d,0x93,0xdd,0x79,0xf4,0xa3,0xb9,0x07,0x45,0xe9,0xa7,0x15,0x29,0xf1,0xec,0x26,0x63,0x30,0x41,0x57,0x4a,0x81,0x80,0xe0,0xce,0x42,0x81,0xdf},
+       { 0x14,0xb0,0x98,0x34,0xe2,0xa5,0xbc,0x61,0x9a,0x79,0xa5,0xd2,0xce,0x48,0x78,0xfa,0xbc,0xa0,0x6d,0x76,0xc2,0x37,0x65,0xfd,0x45,0x86,0x3c,0x22,0xfe,0xce,0x30,0x38},
+       { 0x14,0xf3,0xb4,0x17,0x3b,0x9f,0x8c,0x81,0x90,0x39,0x74,0xe6,0x4c,0x68,0xdf,0xae,0xb6,0xb7,0xd8,0x4b,0x94,0x2a,0xae,0x78,0x89,0x03,0xa1,0x54,0x01,0x08,0x57,0xe7},
+       { 0x15,0x27,0x2a,0xbc,0x1f,0x0c,0x4d,0x1d,0x1a,0x92,0x08,0x73,0x55,0xa1,0xe0,0x42,0x6c,0x2b,0xb5,0xb4,0x37,0x30,0x00,0xb8,0x2c,0x2c,0xca,0xb7,0xfa,0xd6,0xfa,0x20},
+       { 0x15,0x48,0x1f,0xde,0x4e,0x3f,0x72,0x49,0x66,0x87,0xdf,0x57,0x5f,0xb5,0xb1,0x27,0xbd,0x6d,0xeb,0x66,0x1d,0xd9,0x07,0x71,0x8b,0xa0,0x65,0xc7,0xda,0x66,0x76,0xd1},
+       { 0x15,0x5a,0x88,0x39,0x60,0x8b,0x77,0x25,0x34,0x6a,0x72,0x40,0xe4,0xe2,0x50,0x3a,0xcc,0x7b,0x8b,0xef,0x0b,0x1b,0xe6,0x15,0xb9,0x02,0x4a,0x88,0xe6,0x52,0x11,0xf9},
+       { 0x15,0x5d,0x88,0x6e,0x99,0x1d,0x40,0x0a,0xbf,0x2f,0x83,0xc2,0x80,0xd1,0x24,0x6d,0xce,0x02,0xa6,0x28,0x31,0x26,0xc6,0x17,0xe4,0x17,0xd2,0xb7,0xea,0xc1,0x19,0x24},
+       { 0x15,0x75,0x93,0x18,0x80,0x19,0x6d,0xe8,0x0d,0x97,0xfe,0xf1,0x85,0xd2,0x7a,0xf6,0xad,0x6b,0x5b,0x04,0x0d,0x87,0x6c,0xdf,0x4a,0x39,0xb5,0xb7,0x8e,0x96,0xb7,0xd5},
+       { 0x15,0xb0,0xd9,0xbe,0xd6,0x2b,0xd8,0x96,0x11,0x59,0xfe,0x7e,0x88,0x92,0xf8,0xe8,0xeb,0xb0,0xce,0x81,0xe6,0x8d,0xea,0xdd,0x29,0x0f,0xdd,0xce,0xd0,0x9d,0xe7,0xf1},
+       { 0x15,0xc0,0x27,0x02,0x53,0x4e,0xb0,0x57,0x23,0x9f,0xd7,0x85,0x8a,0xe3,0x42,0x23,0xbc,0x57,0x78,0xa8,0xb7,0x1f,0x92,0x50,0xd5,0xd3,0x3b,0x31,0x3c,0x30,0x2a,0x67},
+       { 0x15,0xc1,0x73,0xd2,0xf3,0x73,0xc2,0x27,0xdc,0xff,0x4e,0xcc,0x68,0xe8,0x56,0x7c,0xda,0xe3,0x5d,0xdf,0x1e,0xf4,0x55,0xce,0x53,0x4a,0x15,0x90,0x28,0x79,0xf4,0xfe},
+       { 0x15,0xcf,0x2f,0x78,0xe6,0x79,0x62,0x2c,0x06,0x78,0xdc,0x5b,0xa8,0x03,0x84,0x7a,0xbd,0xb5,0xea,0x64,0x31,0x65,0x3e,0xc2,0x5f,0xdc,0x8d,0x2b,0xb3,0x3d,0x12,0x23},
+       { 0x15,0xea,0x55,0xf0,0x2c,0x49,0x02,0xec,0x77,0x72,0x64,0xe0,0x81,0x71,0x41,0x24,0x7c,0x52,0x00,0xe1,0x16,0x56,0xfd,0xc2,0x72,0x9d,0x59,0x5c,0x37,0x79,0x95,0x6c},
+       { 0x16,0x21,0xec,0x14,0xe0,0xb4,0x13,0xfa,0xb7,0xd0,0x27,0x5a,0x9a,0xc3,0xc3,0xc9,0x85,0x13,0xfe,0x18,0xa2,0x02,0x86,0xf6,0x56,0x59,0x36,0x9c,0x8d,0x34,0x68,0xda},
+       { 0x16,0x9a,0xfa,0x4c,0x7d,0x97,0x78,0xc7,0x1d,0xb5,0x84,0x6c,0xca,0x8e,0xb7,0x19,0x12,0x3d,0x4b,0x06,0xb3,0xff,0x98,0x66,0xd7,0x4d,0x6e,0x18,0x7c,0x1e,0xf9,0x70},
+       { 0x16,0xe7,0x66,0x47,0xb3,0x97,0xeb,0x4e,0xfd,0x9a,0x79,0xf2,0xfb,0xba,0x9a,0xca,0x46,0xce,0xad,0x95,0x43,0x05,0xfe,0xe5,0xb1,0x3b,0x5d,0x53,0xdb,0x7c,0x1d,0xb1},
+       { 0x17,0x29,0xb3,0x34,0x7a,0x7d,0x93,0x73,0x17,0xe3,0xda,0x5c,0xc7,0xf7,0xb0,0xd8,0xfd,0x97,0x72,0x24,0x7a,0x57,0x99,0x93,0x9a,0x44,0xd3,0xa9,0x7a,0x50,0xb9,0xd9},
+       { 0x17,0x3d,0xe2,0x60,0xe2,0x2d,0x76,0x9d,0x2d,0x54,0x99,0xc8,0x22,0x0d,0x86,0xed,0xe3,0x48,0xda,0x1e,0x57,0xc1,0xe7,0xc8,0x15,0x07,0xfb,0x3e,0x6b,0xd7,0x3b,0x7f},
+       { 0x17,0x46,0x68,0x4e,0x66,0x21,0x77,0x68,0x70,0xde,0x55,0x65,0xdf,0xd3,0x3a,0x30,0x92,0x77,0x18,0x59,0x6c,0x01,0x30,0xf8,0x77,0x4b,0xe9,0x9c,0xd2,0xa2,0x51,0x06},
+       { 0x17,0x59,0x7e,0x00,0x45,0x6c,0x38,0x32,0xe1,0x85,0x1c,0x30,0x0c,0xd5,0x52,0xc2,0xe7,0x73,0x35,0x8c,0xf0,0xf6,0x88,0x58,0xf3,0x4f,0xca,0x34,0x45,0xc6,0x4d,0xb7},
+       { 0x17,0x5a,0x97,0x05,0x5c,0x9e,0x03,0x88,0x2a,0xcd,0x35,0x40,0x58,0xe2,0x43,0xe3,0x3a,0x84,0x76,0xef,0x83,0xb4,0xb2,0x08,0xfc,0xf6,0x64,0xe8,0x4f,0x05,0x08,0xb5},
+       { 0x17,0x99,0x63,0xd2,0x28,0x4d,0xec,0x64,0xac,0x6c,0xe5,0x60,0x0b,0xe9,0x9a,0xc4,0xf0,0x4d,0xd3,0x20,0x35,0xe4,0xf1,0x24,0x28,0xec,0x9e,0x51,0xed,0xf6,0xb0,0x6c},
+       { 0x17,0xd1,0xf6,0xe5,0x1c,0xb3,0xaf,0x91,0x23,0xd4,0xfc,0xb3,0x84,0x18,0x39,0x4d,0xe3,0xe6,0xc3,0x33,0x3f,0x80,0x20,0xd5,0x13,0x48,0xde,0xba,0xcc,0x74,0x70,0x14},
+       { 0x17,0xf7,0x25,0xac,0x12,0xce,0xa5,0xe0,0x86,0x6f,0xcc,0x3e,0x83,0x4e,0x9c,0xb6,0x34,0x14,0x5c,0xed,0xc5,0x6b,0x61,0x3d,0x2a,0x1f,0xe1,0x3c,0xf4,0x0e,0xdf,0xd4},
+       { 0x18,0x04,0xf7,0x1e,0x2c,0x7a,0xdc,0x93,0x38,0xca,0x1b,0x71,0xdf,0x81,0xf8,0x3e,0x59,0xd4,0xf4,0x1c,0xaf,0x1d,0x9f,0x17,0xd7,0x87,0x22,0x4b,0x0a,0xf6,0x46,0xf3},
+       { 0x18,0x1e,0xbb,0x29,0x8d,0x20,0x68,0x5c,0x48,0xf7,0x53,0x89,0x80,0xc5,0x63,0xc8,0xf7,0x48,0x95,0x4c,0xf2,0x64,0x41,0x9a,0x72,0xfc,0xc6,0x34,0x0a,0x10,0x23,0x80},
+       { 0x18,0x41,0x69,0xc5,0x5c,0xa2,0xe2,0x44,0xf5,0xf3,0x3e,0x5e,0x9b,0x82,0x89,0x2b,0x88,0x5f,0xd0,0x2b,0x0c,0xea,0xff,0x5e,0xb7,0xec,0x05,0x30,0x72,0xe9,0xf3,0x39},
+       { 0x19,0x77,0x3e,0xe9,0xe9,0x35,0x6b,0x88,0x11,0xd6,0x56,0x79,0x9c,0x53,0x16,0x0b,0x61,0x73,0xfa,0x8a,0x81,0x47,0x97,0xdb,0xcd,0x55,0xb2,0x27,0x38,0x70,0x60,0x3e},
+       { 0x19,0xd5,0x67,0x31,0x19,0x02,0xa4,0xa2,0x61,0xf8,0xa8,0x3d,0x0c,0xfe,0x10,0x1d,0x9c,0x5c,0x1f,0x68,0x0f,0xf8,0xf4,0xec,0x0d,0xf2,0x3d,0x84,0x41,0x92,0xfb,0x3b},
+       { 0x19,0xff,0xe6,0xc6,0x7a,0x35,0x86,0xfc,0x48,0x6c,0xe2,0x07,0xfa,0x2a,0xf6,0x62,0xf5,0x50,0xfc,0x51,0x2f,0xdd,0x78,0x17,0xe3,0x86,0xc9,0x4a,0x7b,0xde,0x37,0xa9},
+       { 0x1a,0x9e,0xc6,0x8c,0xed,0xb6,0xbd,0x94,0x0c,0x95,0x34,0xe6,0x84,0xbb,0x04,0x9f,0xf1,0xe2,0x3b,0x66,0xa1,0x33,0x01,0x2f,0xc3,0x99,0xeb,0x4f,0xb5,0xd3,0xaa,0x35},
+       { 0x1a,0xcd,0x0a,0x9e,0x5e,0x20,0x22,0xbe,0xe5,0xa4,0xfc,0x2e,0x7f,0x69,0xf8,0x82,0x3e,0xdc,0x26,0x5b,0x97,0x6a,0x7f,0x61,0x41,0x16,0x03,0x98,0x6b,0x90,0x24,0xf8},
+       { 0x1a,0xfa,0xb3,0x15,0x5b,0x57,0x17,0xc0,0x89,0x82,0xf9,0x0c,0x88,0xa7,0xaa,0xc3,0x6b,0xeb,0x00,0x03,0xfa,0xc4,0x9b,0xca,0x74,0xa1,0xcc,0x52,0x09,0xb7,0x04,0x39},
+       { 0x1b,0x56,0xba,0x1e,0xff,0xac,0x97,0x36,0x60,0x74,0xce,0x07,0x24,0xe7,0x04,0x59,0xdf,0x99,0x82,0x1c,0x3f,0xaf,0x20,0xde,0x5c,0x05,0x30,0x52,0x52,0xbe,0x64,0x3a},
+       { 0x1b,0x69,0xc0,0xdd,0xb0,0x9b,0xc2,0xf0,0xe9,0x65,0x7f,0xfa,0x94,0x83,0x96,0xaf,0xc0,0xcb,0x45,0xc0,0x19,0x7e,0xc0,0x85,0x78,0xc5,0x61,0x83,0xee,0xef,0x59,0x7b},
+       { 0x1b,0x7b,0xf8,0xd9,0xe8,0x29,0x3c,0x53,0xdd,0x59,0xec,0x97,0xfe,0x16,0xf0,0xea,0xb4,0x68,0x5b,0x95,0xce,0x14,0xd2,0x62,0x3e,0x70,0x94,0x2c,0xff,0x25,0xe7,0x30},
+       { 0x1b,0xd6,0xa6,0xf7,0x63,0xd2,0xf6,0xd8,0xbc,0xec,0x91,0xa6,0x22,0xaa,0x37,0x00,0xd7,0xa4,0x2d,0x18,0x8c,0x5b,0xd8,0x64,0x16,0x57,0x6f,0xfd,0x32,0x50,0x7c,0x92},
+       { 0x1b,0xd7,0xb3,0x62,0xbc,0x14,0x66,0xfa,0xc0,0x5e,0xc5,0x9e,0x12,0xe8,0x1b,0xe7,0x35,0x38,0xc4,0x97,0x28,0xf5,0xad,0xba,0x2d,0x81,0xfc,0xdb,0xc4,0x65,0x7c,0x1b},
+       { 0x1b,0xec,0xfe,0x78,0xce,0x5e,0x77,0xa9,0x77,0xbb,0x5f,0xe3,0x49,0x91,0x06,0xc6,0x4c,0xf2,0xb0,0x76,0x16,0x59,0x49,0x04,0x11,0x17,0xcd,0x8a,0xbc,0xd9,0x05,0xd4},
+       { 0x1b,0xf4,0x8a,0x83,0x3c,0xe4,0x05,0x64,0x8c,0xc0,0xbd,0xd3,0xb5,0xb8,0xc1,0x8e,0xb5,0x13,0x15,0x34,0x29,0x3a,0xb2,0x63,0x44,0xb5,0x00,0x76,0x48,0x11,0x41,0xed},
+       { 0x1c,0x04,0x82,0x0f,0x7b,0x4a,0x2f,0x1e,0x38,0x5d,0xe1,0xde,0x16,0xb2,0x22,0x6e,0x88,0x3d,0x9c,0x34,0x66,0x3e,0x1b,0x64,0xe8,0x5b,0x98,0x0e,0xaf,0xf0,0xb9,0xd3},
+       { 0x1c,0x74,0xba,0x75,0xe5,0x1b,0x48,0x29,0x54,0xc3,0x8b,0xf4,0xd5,0x1e,0xfc,0x70,0xa0,0xa0,0x4d,0x41,0x3a,0xc1,0xff,0x8e,0xb9,0x90,0x39,0x9d,0x1f,0x1a,0xa9,0xc4},
+       { 0x1c,0x76,0xbb,0xca,0x37,0x71,0x77,0x5b,0xb9,0xb0,0xc3,0x33,0x71,0x70,0x32,0x69,0x06,0x16,0x77,0xca,0x7b,0x18,0x99,0xef,0x8c,0x77,0xe4,0x15,0x22,0x2b,0x56,0xb6},
+       { 0x1d,0x36,0x08,0xac,0x22,0xf0,0x09,0x40,0xee,0x08,0x4a,0x8b,0x2f,0xd7,0x95,0x89,0x72,0x57,0x79,0x4e,0x3e,0x00,0xc2,0xd2,0x67,0x10,0xd2,0xea,0x02,0x79,0xac,0xb5},
+       { 0x1d,0x57,0xa3,0xc0,0x97,0x74,0x07,0xe1,0x57,0xdf,0x71,0x97,0x48,0x91,0x16,0xe5,0xfc,0x17,0xed,0x2a,0x90,0xfe,0xd9,0x6b,0x3d,0x4d,0x5a,0x4e,0x0a,0x80,0xe1,0xfb},
+       { 0x1d,0x72,0xe5,0x91,0x26,0xfd,0x8b,0x78,0x8e,0xa5,0x39,0x63,0xad,0x02,0x07,0x6b,0x3b,0x04,0x0e,0xe8,0xcd,0x4c,0xb8,0xbd,0xcd,0xf3,0xe5,0xa9,0x9f,0x63,0x70,0x02},
+       { 0x1d,0x9e,0xc0,0x06,0xa5,0x26,0xfa,0xb5,0xce,0x2e,0x71,0xfd,0xfc,0x07,0xc0,0x11,0xf7,0x65,0x7b,0xf8,0x5f,0x5d,0x03,0x52,0xb8,0xcb,0x21,0x8d,0x4f,0xcb,0xc4,0x43},
+       { 0x1e,0x50,0x62,0x19,0x88,0xa0,0x25,0x0f,0x2a,0xde,0x2a,0x16,0xfc,0xd8,0x38,0x46,0xdb,0xd7,0xa9,0x0b,0x2a,0x71,0xc8,0x0a,0x1d,0xb1,0x94,0x6b,0x89,0x89,0x1c,0x46},
+       { 0x1e,0x78,0xf8,0x08,0x84,0xe3,0x2a,0x2e,0xa5,0xad,0x1e,0xe8,0x35,0x88,0xac,0xdb,0x18,0x4a,0x4a,0x6e,0x87,0x56,0x5b,0xf5,0x03,0xb5,0x69,0x7a,0xbf,0xae,0x64,0xa4},
+       { 0x1e,0xfe,0x6a,0x78,0x51,0x41,0x33,0x39,0x7b,0x05,0x9c,0xe1,0x3a,0x4f,0xc9,0x88,0xae,0x38,0x4e,0x21,0x12,0x7f,0x13,0xa1,0x0e,0x96,0x7b,0x9a,0xa2,0xac,0xf8,0x81},
+       { 0x1f,0x00,0x4b,0x82,0x0c,0xf6,0x8b,0x00,0x7b,0xb5,0x72,0xa0,0xed,0x42,0x9c,0x79,0x8f,0x79,0x44,0x4f,0x6f,0x13,0x29,0x32,0xee,0x5f,0x8e,0x28,0xa4,0x0a,0xb9,0x86},
+       { 0x1f,0x11,0x85,0xa5,0x21,0xe2,0x8e,0x95,0x17,0x1c,0xf3,0x86,0x07,0x8a,0x76,0x4a,0x9a,0x3e,0x71,0xc2,0x59,0xbc,0xdc,0x5f,0x8e,0x66,0xe1,0xb5,0x20,0x55,0xa2,0x6d},
+       { 0x1f,0x23,0xd7,0xa6,0x38,0x17,0x1f,0x6d,0x09,0x99,0x64,0xe0,0xfa,0x01,0x72,0x1c,0x06,0xcc,0xeb,0x8e,0xa2,0x98,0xbf,0xd0,0x04,0x8e,0x13,0x8d,0x98,0xfc,0x36,0x24},
+       { 0x1f,0x68,0x40,0x10,0xc1,0x92,0xab,0xfa,0x85,0xa7,0x9b,0xba,0x45,0xce,0x76,0x4b,0x2d,0xa8,0x1f,0x99,0x1f,0x5f,0x01,0xd9,0xeb,0x7e,0x3c,0x99,0x9b,0x78,0x75,0x0e},
+       { 0x1f,0x7d,0x37,0x52,0x93,0x22,0x7d,0x04,0x97,0x5b,0x78,0x97,0xdc,0x17,0x25,0x39,0x64,0xdc,0xd7,0xd0,0x06,0x7e,0x84,0xc6,0xd8,0x47,0x9d,0xfa,0x27,0x6e,0xbe,0xd0},
+       { 0x1f,0x88,0x42,0x37,0xfd,0x5c,0xe3,0xd9,0xbc,0x02,0x4d,0x1b,0x26,0xab,0xcb,0x94,0x07,0xa4,0x35,0x13,0x78,0xe0,0xbd,0x89,0xdb,0x67,0xbe,0xf8,0xef,0xc8,0xa5,0x6e},
+       { 0x1f,0xc7,0xf8,0x10,0x4e,0x27,0xff,0x2a,0x45,0x56,0xf9,0x1e,0x05,0x42,0x17,0xc5,0x8f,0x69,0x3f,0x70,0x36,0x25,0x9e,0x39,0x80,0xb5,0x59,0x5b,0x04,0x3d,0x11,0x92},
+       { 0x1f,0xd4,0xb6,0xa0,0xde,0x45,0x04,0x2b,0xca,0x14,0xe3,0x4a,0x83,0x78,0x7c,0x59,0x95,0x5d,0x82,0xa0,0x1c,0xe3,0x20,0x05,0xac,0x48,0x83,0x72,0xa8,0xfd,0x41,0xa6},
+       { 0x20,0x0b,0x49,0xbd,0xd6,0x35,0x02,0x57,0xcc,0xd4,0xe6,0xad,0xe1,0xcb,0x75,0x13,0x8d,0xd6,0xd9,0x06,0xfe,0xf3,0x49,0xc0,0xc9,0x86,0xa5,0x1b,0x29,0xb9,0xe5,0x2d},
+       { 0x20,0x15,0x60,0x8b,0x8e,0x86,0xba,0x63,0x12,0x01,0xc2,0x12,0x20,0x99,0x57,0xaf,0xcb,0x6e,0xdf,0x27,0x22,0xc6,0x1b,0x00,0xe2,0xfc,0x92,0x46,0xa8,0xd5,0x20,0x4e},
+       { 0x20,0x7a,0xe5,0xe6,0x56,0xb3,0xb1,0x26,0x39,0x41,0x83,0x54,0x5d,0xf9,0x9c,0xc8,0x36,0x53,0x7a,0x16,0x88,0x58,0xd8,0xce,0xb4,0x5a,0x6a,0x52,0x65,0x86,0xca,0xae},
+       { 0x20,0x8a,0x46,0xd9,0x07,0xe6,0xb4,0x09,0x0e,0x31,0x02,0xe1,0xc7,0xf1,0x81,0x57,0x21,0x6c,0xfc,0x9a,0xb9,0xd5,0x0f,0x47,0x83,0x25,0x8d,0x79,0x35,0x01,0x34,0xbd},
+       { 0x20,0xf1,0x85,0xbc,0x7f,0xa7,0x61,0x16,0x6e,0xa3,0xa9,0x98,0x8f,0xb1,0x0b,0x24,0xc7,0x01,0xef,0xdd,0xab,0xe4,0x74,0x05,0x63,0x43,0xa1,0x36,0x11,0xd5,0x4d,0x7d},
+       { 0x21,0x03,0x9f,0x99,0x3d,0xae,0x79,0x03,0xa0,0xa7,0xaa,0x93,0x5b,0x96,0x70,0x1a,0xdd,0x7e,0xc5,0xca,0x99,0xe1,0x7e,0x65,0x1c,0x21,0x29,0x5b,0x3b,0x65,0x70,0x49},
+       { 0x21,0x05,0xa5,0xb7,0x80,0x1c,0xe4,0x55,0xa2,0xa9,0x31,0xa2,0x23,0xbb,0x8b,0xf4,0x11,0x28,0x16,0x03,0x70,0xfd,0x25,0xfc,0x11,0x23,0xab,0x57,0x9e,0x06,0x29,0x23},
+       { 0x21,0x09,0xf3,0x10,0x7d,0x97,0xf8,0x70,0x48,0x70,0x8e,0xc8,0x7c,0xa2,0xdc,0x31,0x8b,0x2f,0x2b,0x57,0x47,0xc3,0x38,0xbd,0x9c,0x6d,0xbc,0xd6,0x0f,0xd6,0xbe,0xa2},
+       { 0x21,0x4a,0xbc,0x84,0x5d,0x66,0x68,0x76,0xc4,0x78,0x12,0x84,0x14,0x16,0xc6,0xfb,0xff,0x4a,0x38,0x32,0x20,0x61,0xb6,0x5d,0x9c,0x5f,0x6b,0x74,0x98,0x2b,0xc6,0xea},
+       { 0x21,0x62,0xab,0xc2,0x7d,0x0c,0x3d,0xa0,0xf6,0xaf,0xf9,0x76,0x95,0xfb,0x3d,0x47,0x7f,0x4c,0x63,0x34,0xff,0xb3,0xe5,0xbc,0xd0,0xe3,0x05,0x49,0xd5,0xfe,0xeb,0x47},
+       { 0x21,0x78,0xe8,0x28,0x3a,0x73,0x39,0x6e,0x08,0xc0,0xa1,0x1a,0x88,0x72,0xfa,0x4a,0x9f,0xcc,0x05,0x67,0x0c,0xee,0xff,0xb8,0x95,0x83,0x8e,0xb6,0x59,0xde,0x38,0xdb},
+       { 0x21,0x82,0x84,0x4f,0xb2,0x8f,0xb4,0x71,0x78,0xeb,0x38,0x1c,0xdb,0xf1,0x18,0x06,0x3d,0x6a,0x9e,0x43,0xcc,0x04,0xe4,0x8a,0xef,0x84,0xce,0x9c,0xce,0x58,0x4a,0x5c},
+       { 0x22,0x01,0x71,0xf7,0x0e,0x1f,0xc3,0xc4,0xf7,0x8d,0xa6,0xc8,0xb1,0xd7,0x2c,0x3b,0xa8,0x31,0x9a,0x46,0xf8,0x19,0x2d,0x1e,0x19,0xb9,0xe2,0x9a,0xba,0x18,0xee,0x87},
+       { 0x22,0x2e,0xc2,0x75,0xe6,0x8a,0x31,0x7d,0x60,0x80,0x67,0x9d,0xdf,0x56,0x78,0x6a,0xbd,0x2b,0x11,0xf2,0x5a,0x17,0x15,0x33,0xcf,0xbd,0x59,0xee,0x0d,0xfa,0x4e,0xe4},
+       { 0x22,0x7a,0x2b,0xff,0xab,0xde,0xe1,0x8c,0x2c,0x54,0xe6,0xe9,0xb5,0x8a,0xbd,0xbf,0x93,0x07,0xa4,0x06,0x2e,0xda,0x97,0xd4,0xf6,0xc4,0x48,0x1b,0xb6,0xec,0xa9,0xe4},
+       { 0x23,0x19,0xcb,0x3d,0x58,0xc6,0xd5,0x53,0x62,0x5d,0xe5,0xf4,0x25,0x2b,0xf0,0x29,0xab,0x83,0x05,0xeb,0xf2,0x2f,0xa2,0x3e,0x99,0x73,0x04,0x66,0xde,0x24,0xd6,0xc3},
+       { 0x23,0x3f,0xc6,0xf9,0x15,0x1f,0x05,0x00,0xbb,0x38,0xad,0x20,0x7a,0xf2,0x42,0x21,0x3a,0x6a,0x51,0xce,0xb3,0x8c,0x73,0x0f,0xf1,0xbf,0xa1,0x0a,0x82,0x4a,0x71,0xc7},
+       { 0x23,0x8a,0x80,0xcc,0x9b,0x58,0x9a,0xdc,0x89,0xb7,0xa8,0xf3,0x4d,0xdf,0x12,0x48,0x73,0x4b,0x9f,0x7f,0x78,0x20,0xb6,0x04,0x07,0x66,0xc5,0x41,0x3a,0xd2,0xbd,0xef},
+       { 0x23,0x9c,0x79,0x5f,0x0c,0x55,0xa5,0x53,0x16,0x2a,0x9c,0xa0,0x6e,0x88,0x01,0xe1,0x19,0xbd,0xff,0x54,0x35,0x4a,0x3f,0x68,0x43,0xcf,0x2a,0x2f,0xa6,0x01,0x75,0x8e},
+       { 0x23,0xf0,0xdd,0xd8,0x9b,0x42,0x82,0xa6,0x7f,0xd0,0x57,0x56,0xfd,0xc5,0xd1,0x8c,0x1e,0x5d,0xcc,0xef,0xcf,0x42,0x65,0x06,0x6d,0xfb,0x4a,0xbd,0x30,0xd9,0xe9,0x77},
+       { 0x23,0xf7,0xe4,0xa3,0x5b,0xcc,0xe7,0x40,0x36,0xd9,0xc8,0x6f,0x7f,0x61,0x1d,0x85,0xf3,0x7c,0xb6,0x2c,0x43,0x24,0x7d,0x13,0x52,0x22,0x4e,0xc3,0xdc,0x89,0xed,0x37},
+       { 0x24,0x4e,0xee,0x31,0x5d,0xb6,0x85,0x33,0xca,0xe5,0x7f,0x60,0x49,0xdc,0x95,0xdc,0xbd,0xbc,0xbc,0x1a,0x65,0x1f,0x00,0x66,0xdc,0x47,0x27,0x8a,0x36,0x16,0x87,0xc7},
+       { 0x24,0x62,0x52,0x48,0x32,0xc1,0x54,0xd8,0x4d,0xf5,0x8e,0xd7,0x75,0x22,0x3b,0xbe,0x25,0x7d,0xea,0xf7,0x0e,0xf9,0xd2,0x08,0x61,0x4e,0xc0,0xf5,0x97,0x7f,0x6d,0x58},
+       { 0x24,0x63,0xcb,0x2e,0x47,0x55,0x71,0xa8,0x68,0x74,0xee,0x45,0xae,0x27,0x0b,0x40,0x08,0xd8,0xba,0xf3,0x65,0x32,0x57,0x0e,0x28,0xe2,0x47,0xff,0x88,0x7f,0x86,0x83},
+       { 0x24,0x6d,0x0c,0x31,0x48,0x72,0x75,0x59,0xf9,0x9a,0xd0,0xc1,0x50,0x37,0x70,0x06,0xb7,0xa1,0x7a,0x60,0x3a,0x47,0x3b,0x6a,0xac,0xd2,0x4e,0x16,0xc6,0xc5,0x1b,0x42},
+       { 0x25,0x1b,0xb7,0xc5,0x42,0x33,0xda,0x44,0xbf,0x53,0xb5,0x8a,0xf2,0x9a,0xe1,0x74,0xb9,0x78,0xba,0xdb,0x89,0xa9,0x50,0xab,0x3e,0x5f,0x9b,0x4d,0x0d,0xcd,0xbc,0x62},
+       { 0x25,0x1d,0x5d,0x22,0x2f,0x1e,0x67,0x1d,0x72,0x1e,0x1c,0x26,0x39,0xb3,0xb6,0xd2,0x30,0xb5,0xc6,0xb3,0x0c,0x8e,0x34,0xc8,0x08,0x75,0x38,0x8c,0xcf,0x23,0xfb,0x38},
+       { 0x25,0x5a,0x49,0x8b,0xeb,0x7c,0x89,0x42,0x74,0xe5,0xe3,0xd4,0x3b,0x27,0xad,0x66,0x62,0x0b,0x90,0xcb,0x91,0x62,0xc4,0x68,0x5f,0xa2,0x6d,0x85,0xf5,0xa4,0x3a,0xa0},
+       { 0x25,0x6f,0xd8,0x6f,0x52,0x51,0x34,0x36,0x1d,0xa8,0x0c,0x18,0xe5,0xe2,0x9f,0x75,0xf1,0x10,0xca,0x94,0xb6,0x2c,0xd7,0x18,0x33,0x1a,0xde,0xbf,0x81,0x64,0x6b,0x3e},
+       { 0x25,0x8c,0x68,0x91,0xf0,0x89,0xb5,0x09,0x4b,0xe3,0x3d,0x6c,0x82,0x21,0x5e,0x72,0x65,0xac,0xa9,0x3f,0x7c,0x9b,0x41,0x45,0xd0,0x8a,0xff,0x1f,0x48,0x30,0x58,0xaa},
+       { 0x26,0x03,0xcb,0xdf,0x69,0x75,0xe3,0x68,0x83,0x7f,0x95,0x1a,0x00,0x49,0xfd,0xc3,0xc4,0xb2,0x39,0xf0,0x82,0xf6,0xbf,0x89,0x5d,0xb8,0xf3,0x27,0x05,0xe6,0x9c,0xf3},
+       { 0x26,0x33,0xfd,0x33,0x50,0xf8,0x73,0x50,0x2d,0x94,0x53,0x7a,0xd8,0x66,0x3d,0x2a,0xef,0xa5,0x9a,0x03,0x57,0x28,0x8c,0x64,0x42,0x3c,0x74,0xc8,0x6f,0x8c,0x92,0xb9},
+       { 0x26,0x5f,0x09,0x6c,0x74,0xf9,0xc4,0x5a,0x3b,0xd3,0x7c,0x2b,0xc8,0x23,0xee,0x27,0x1a,0x23,0xf8,0xf5,0xc0,0x9e,0x1b,0x71,0x68,0x7a,0xec,0x17,0xe3,0x8e,0x46,0x91},
+       { 0x26,0xb2,0x11,0xcc,0x34,0x6d,0x60,0x37,0x1b,0x24,0xbd,0x0d,0xba,0xb3,0xf4,0x3d,0x5d,0xe3,0xf2,0x05,0x47,0xc1,0x4c,0x0b,0xa1,0xe0,0xb2,0xed,0xdd,0x73,0x02,0x64},
+       { 0x26,0xb9,0x4c,0xa0,0x1e,0x63,0x4e,0xd0,0xcb,0x4f,0xf3,0xc9,0xbc,0xc2,0x8a,0x5e,0x8f,0x49,0xca,0xcd,0xe7,0xeb,0xa2,0x63,0x2d,0x3d,0x30,0x3f,0xb2,0xed,0xe8,0x63},
+       { 0x27,0x16,0xe1,0x51,0x81,0x4b,0xc2,0x23,0x49,0x83,0xf6,0x53,0xbf,0x4d,0x47,0x1d,0x37,0x5b,0xda,0xcb,0x3e,0xaa,0xea,0x96,0xb4,0x80,0xcd,0xda,0xca,0x0d,0x4c,0xda},
+       { 0x27,0x50,0x11,0x93,0xe4,0x61,0xca,0xce,0x55,0x32,0xfa,0xd5,0xd5,0xb2,0x7e,0x01,0x16,0x57,0x92,0xe0,0x4f,0x24,0x21,0x93,0x2f,0x39,0x28,0xaf,0x9f,0xcd,0xa4,0xf3},
+       { 0x27,0xa8,0x41,0xae,0xcf,0xe0,0xa1,0x39,0x37,0x51,0xc2,0x55,0xf9,0x06,0xdb,0x9e,0x88,0x6b,0xba,0x4d,0x7c,0x44,0xec,0x63,0xce,0x7d,0xc6,0xde,0xc1,0x8b,0xb9,0x20},
+       { 0x28,0x07,0x10,0x60,0x44,0x03,0x45,0xd0,0x0e,0x80,0xb9,0xd7,0xcb,0xe1,0x87,0xc1,0xd8,0xb0,0xf2,0xef,0x5d,0x0a,0xac,0x9c,0xce,0xef,0x9a,0x8c,0x5a,0x06,0xf3,0x02},
+       { 0x28,0x76,0x00,0xe8,0x45,0x25,0xa9,0xe2,0xef,0xb3,0xc3,0x30,0xd8,0x0e,0xc6,0x0c,0x3f,0x7d,0x7b,0xb2,0x07,0x89,0x4e,0xb6,0xcd,0x7b,0x85,0xee,0x74,0xff,0x9a,0x46},
+       { 0x28,0xc2,0x4d,0x7a,0xef,0xcb,0xa0,0x50,0x94,0x94,0xef,0x21,0x06,0x48,0x17,0xfb,0xaa,0x89,0x1f,0xb3,0xc5,0x2f,0xc7,0x17,0x81,0xdd,0x5e,0xac,0x18,0xd7,0x4d,0x7a},
+       { 0x28,0xd9,0x51,0x84,0xb5,0xea,0x14,0x0f,0x47,0x4f,0x3a,0xf6,0xce,0x70,0x52,0xe8,0x59,0x3c,0xf3,0xa5,0x01,0x0f,0x52,0x24,0x1a,0x1e,0x36,0x64,0x60,0xe5,0x91,0x9e},
+       { 0x29,0x01,0x93,0xe3,0x7a,0x38,0x87,0xfd,0x36,0x15,0xdf,0x12,0x2e,0x95,0x21,0x17,0x42,0x15,0xee,0x68,0xf7,0x44,0xb2,0xfa,0x35,0xd2,0x9c,0x5d,0xf1,0x08,0xf5,0x5b},
+       { 0x29,0x4a,0x2b,0xf8,0x7b,0x50,0x1d,0x28,0x4f,0x37,0x80,0x96,0x0e,0x8e,0x72,0xa1,0x8a,0xf1,0xc6,0x3b,0xd7,0xde,0x4c,0x4d,0xde,0xa3,0x7b,0xf0,0x27,0xd4,0x2c,0xb8},
+       { 0x29,0x54,0x18,0x23,0xe0,0x69,0x14,0xb4,0xd6,0x2a,0x93,0x8d,0xc4,0x9c,0x8a,0x0d,0x17,0xd9,0x94,0x96,0x0e,0xee,0xc7,0xd9,0x75,0x31,0xaf,0x71,0x5e,0xde,0x4a,0xdf},
+       { 0x29,0x74,0x8a,0x69,0xe9,0x42,0xa0,0x67,0xe6,0xa6,0xa3,0x5a,0x9d,0x40,0x00,0x0a,0x31,0x8d,0x7d,0xdf,0x5f,0x5a,0x2f,0x4d,0x3d,0x18,0xbe,0xba,0xd3,0x96,0x91,0xec},
+       { 0x29,0x7a,0xc8,0x25,0xc1,0x98,0x06,0xfb,0x88,0x1f,0xd9,0x1c,0x61,0x2d,0x6c,0xc2,0x1b,0x28,0xe4,0xa5,0x72,0xcf,0xb7,0x16,0x04,0xe5,0x54,0x41,0x4d,0xfd,0xea,0xdc},
+       { 0x29,0xa8,0x28,0x26,0x64,0x3d,0x5a,0x98,0xc4,0x7d,0xf3,0xa7,0x8f,0xbb,0x84,0x49,0xb3,0xe6,0xd3,0xcc,0xe6,0x2c,0xf4,0x57,0x12,0xa4,0xcd,0x99,0x21,0xf3,0xc6,0x88},
+       { 0x29,0xd4,0x91,0x44,0x01,0x60,0x8a,0xe7,0x65,0x51,0x53,0xb6,0x23,0x67,0x1f,0x75,0x92,0x99,0x4d,0x4b,0xe3,0x88,0x39,0x59,0x13,0xa3,0x60,0x22,0x1f,0x90,0xc0,0x91},
+       { 0x2a,0x0f,0x70,0x67,0x6e,0x18,0x4d,0x49,0x39,0xa4,0x04,0xde,0x35,0xac,0x84,0xab,0x81,0xaf,0xec,0x36,0x17,0xe7,0xe1,0xbf,0x34,0x67,0xd4,0x19,0x25,0x5d,0xd8,0x17},
+       { 0x2a,0x6b,0x9f,0x6f,0xdc,0x43,0xbf,0x65,0xe2,0xa1,0x0e,0xde,0x36,0x64,0xc8,0x3f,0xcb,0xec,0x13,0x9a,0x6e,0x6c,0xc5,0xc8,0x32,0xd3,0x27,0x89,0x5b,0x52,0x0e,0xa2},
+       { 0x2a,0xa6,0x47,0x8c,0xc7,0x5d,0x67,0xa8,0xca,0x55,0xb2,0xe1,0x63,0xfd,0xbb,0xbc,0x9d,0x74,0xb4,0xe5,0xf3,0x7b,0x7d,0xbd,0x13,0xc9,0x4e,0x85,0x8d,0x40,0xda,0xd0},
+       { 0x2a,0xc0,0x65,0xae,0x39,0x6b,0x87,0x54,0x9c,0x3f,0x09,0xe5,0x8f,0x16,0x4b,0x24,0x2e,0xc5,0x9d,0x13,0x92,0xb1,0xb2,0x50,0x14,0xbf,0x47,0x94,0xac,0x13,0x01,0xb0},
+       { 0x2b,0x36,0xde,0x39,0xd5,0xed,0x42,0xe1,0xec,0x06,0x57,0x49,0xd5,0x82,0xe0,0x14,0xb5,0xaf,0xf2,0x67,0xf8,0x7c,0x03,0x15,0x27,0xd9,0x15,0xab,0x43,0x02,0x88,0x9e},
+       { 0x2b,0x66,0x75,0xf5,0x89,0x9b,0x2d,0x3f,0x36,0xaf,0x0a,0x0f,0xfb,0xb6,0xdc,0x60,0x3e,0x4c,0x9e,0x82,0x8d,0xa2,0xb2,0xd0,0x24,0xe3,0x04,0x30,0x71,0xab,0x15,0xce},
+       { 0x2b,0x6e,0x7a,0xf1,0xde,0x52,0xf4,0xaf,0x97,0xcc,0x3a,0x13,0x6d,0xcb,0x82,0xe0,0xf2,0xca,0x06,0xa8,0x73,0x16,0x9c,0x02,0x87,0x86,0x10,0x18,0x44,0xc3,0x05,0x15},
+       { 0x2b,0xdc,0xf7,0x06,0x67,0x7a,0x3b,0x68,0xf1,0x37,0xf7,0xf6,0x9b,0x36,0x6b,0x79,0xca,0x5a,0xeb,0xd3,0x35,0xbf,0xb9,0xd0,0x3d,0x58,0xbd,0x85,0xa8,0x66,0x36,0xbb},
+       { 0x2b,0xf1,0xe3,0xf0,0x37,0x5a,0x9a,0x21,0xc0,0x7a,0x92,0x18,0x04,0x2f,0x18,0x77,0x3f,0x43,0xea,0xb0,0xf5,0xc0,0x00,0x26,0x45,0x40,0x48,0x2f,0x04,0xae,0x18,0xef},
+       { 0x2c,0x82,0x47,0x4f,0x0e,0xf6,0xcb,0x65,0x0a,0x13,0xef,0x20,0x99,0x6e,0x65,0x7b,0x67,0x24,0xf0,0xa0,0xd5,0xee,0x24,0x6d,0x26,0xbb,0xfa,0x0a,0xbb,0x2c,0x22,0xe1},
+       { 0x2c,0x8c,0xde,0x6b,0xb0,0xd1,0x2c,0xd2,0xdd,0x63,0xe9,0x40,0x09,0x4f,0xd2,0x62,0x5d,0x2c,0xfd,0x9a,0x64,0x7e,0x0c,0x64,0x0e,0xcf,0x1c,0x78,0x92,0x1e,0xea,0x17},
+       { 0x2c,0x9b,0xe1,0x2d,0xa4,0x99,0xea,0xbb,0x2f,0xfd,0xf9,0x91,0x6f,0x2b,0x27,0x18,0x81,0x19,0x5b,0x74,0x19,0xbd,0x1e,0xef,0x8d,0x50,0x77,0x2a,0xb9,0x46,0x4a,0xa8},
+       { 0x2c,0xbd,0xd5,0x6c,0xe4,0xb4,0x06,0x09,0xe9,0xaa,0x52,0x1e,0xaa,0x76,0xac,0x7e,0x55,0x73,0x7b,0xf4,0x3e,0x2b,0x0c,0x30,0xdd,0xcf,0x59,0x87,0x2e,0xab,0xe7,0x7b},
+       { 0x2c,0xf2,0x6d,0xa5,0x76,0x7e,0xde,0x07,0xc3,0x73,0x58,0xcd,0x5f,0x71,0xd1,0x23,0xbb,0x19,0x77,0x28,0x85,0x87,0xc7,0x3f,0x84,0xb0,0x8f,0xf8,0xaa,0x01,0x9a,0x69},
+       { 0x2d,0x0c,0xe9,0x16,0x71,0xc2,0x54,0x4c,0xf6,0xbd,0x10,0x30,0x6f,0x9b,0x2c,0x91,0x75,0xf2,0xc3,0x1a,0x23,0x8e,0x14,0x68,0x67,0x65,0x97,0x89,0x87,0x3d,0xc1,0x75},
+       { 0x2d,0x5f,0x95,0xef,0x95,0xad,0x1c,0xca,0xc8,0xe8,0x25,0xc1,0x61,0x5f,0x82,0x1f,0x0f,0x44,0xdf,0xb8,0xaa,0x31,0xdd,0xf2,0xc9,0x83,0x3e,0x50,0xc6,0x95,0x1c,0xc0},
+       { 0x2d,0x9c,0xc0,0x3b,0xc4,0x51,0xd1,0xe0,0xba,0x65,0x11,0xf4,0x89,0x31,0x75,0xd0,0x43,0x46,0x85,0x6a,0x41,0x69,0x86,0x99,0x4e,0x94,0x60,0xd7,0x4a,0x48,0x40,0xb9},
+       { 0x2d,0xb5,0x36,0x48,0xa6,0x14,0x69,0x57,0x01,0xc7,0xc5,0x1e,0x35,0xff,0x38,0xd6,0x4f,0x27,0xa2,0x7d,0x55,0xdf,0xf4,0xb1,0x4a,0xc4,0x50,0xc7,0x5e,0xb1,0x18,0x6e},
+       { 0x2d,0xd5,0xe6,0xd3,0x73,0x36,0x34,0x2f,0x01,0x1e,0xb9,0x7a,0x2b,0x77,0x38,0x9d,0xe6,0xd2,0x23,0x8d,0x87,0x69,0x65,0x08,0x2f,0xd7,0x94,0x47,0x00,0x50,0xbe,0x12},
+       { 0x2d,0xde,0xe4,0x5f,0x72,0x78,0x38,0xde,0xad,0xe6,0x7e,0x9c,0xa7,0x05,0xeb,0xb4,0xc2,0xe9,0x40,0xae,0x1b,0x9d,0x62,0x35,0x72,0x18,0x04,0x58,0x31,0xe9,0x8f,0xde},
+       { 0x2e,0x17,0x46,0x49,0x4e,0x86,0xd6,0x93,0x0b,0x24,0x98,0x8b,0x12,0x9b,0x38,0x6b,0xc2,0x08,0xe2,0xfb,0xc8,0xd3,0xea,0x27,0x7a,0x23,0xe5,0x46,0x33,0xaf,0xf1,0x8f},
+       { 0x2e,0x43,0x2a,0x54,0x5d,0xfe,0x2d,0xa3,0xad,0x00,0xcc,0x87,0x89,0x23,0xa1,0x85,0xd6,0xa3,0xf9,0x67,0x5c,0x36,0xdc,0x3c,0xd3,0x70,0x2a,0xef,0xeb,0x27,0x0c,0x85},
+       { 0x2e,0x5d,0xd2,0x55,0x09,0x6d,0x64,0x83,0x10,0x5c,0xb6,0x03,0x6c,0x59,0x17,0x57,0xfd,0x98,0x49,0x70,0x66,0x05,0x3f,0x83,0x39,0xe4,0xd8,0xd0,0xc3,0x75,0x49,0x03},
+       { 0x2e,0xd2,0x05,0x8f,0x39,0xea,0xba,0x5c,0xb3,0xd7,0xdf,0x24,0xca,0x74,0xa7,0x7d,0xdc,0x12,0x06,0x01,0x52,0x7b,0x0f,0x51,0x06,0x91,0x05,0xca,0x88,0x37,0x6e,0x20},
+       { 0x2f,0x39,0xbb,0x30,0xaa,0x5c,0xbb,0x62,0x01,0x7c,0x6c,0x79,0x90,0xe3,0xf9,0xa4,0x0d,0x46,0x9f,0x76,0x50,0x59,0x81,0xc8,0x6f,0x95,0x55,0x4f,0x48,0x7a,0x52,0x76},
+       { 0x2f,0x79,0xd6,0xf6,0xa3,0x2f,0x1b,0xee,0x22,0x37,0xa0,0x18,0xe6,0xae,0xc4,0xf4,0x9e,0x2c,0x5c,0x3c,0xdb,0xb6,0x99,0xe1,0x6f,0x8e,0xf4,0x14,0xee,0xff,0x8d,0xa3},
+       { 0x2f,0x8b,0xc9,0x6f,0x12,0x95,0x05,0x6c,0x10,0x67,0x20,0x39,0x57,0xe3,0xcb,0xcc,0x3b,0x16,0xc4,0x91,0xd4,0xda,0xc0,0xa7,0xde,0xe4,0x2d,0xd5,0x4c,0x10,0xd4,0x96},
+       { 0x2f,0x9b,0x7b,0x60,0xa3,0xe8,0x74,0x2c,0x5d,0xbe,0x3e,0xc6,0x01,0x69,0xd7,0xa4,0x4f,0x1b,0xb5,0x6d,0x51,0xf6,0x51,0x37,0x2c,0x28,0x32,0x69,0x33,0x7b,0xf8,0x15},
+       { 0x2f,0xef,0xa7,0xcb,0x12,0x6b,0x81,0xc9,0x47,0x4d,0x3e,0x2c,0x9b,0x97,0x3a,0x83,0x69,0xbb,0x08,0x43,0x41,0xd3,0x82,0xd3,0x7e,0x9e,0x95,0xc4,0xdb,0xe3,0x71,0xee},
+       { 0x30,0x2b,0xc4,0xaf,0xfb,0x52,0xa9,0xa6,0xb9,0x7a,0x1d,0xbf,0x87,0x98,0xfa,0xb2,0xad,0x57,0xd3,0x6f,0x75,0x84,0x88,0x8e,0x03,0x67,0x4a,0x5d,0xd6,0xe1,0x09,0x91},
+       { 0x30,0x2f,0x5d,0xc8,0xf0,0x75,0xed,0x03,0x99,0xd4,0xbb,0x3e,0xa1,0x92,0x25,0xda,0x56,0x3c,0x9e,0x3c,0xf3,0xa6,0xf8,0x0d,0x28,0x4d,0x55,0x31,0xc2,0xd0,0xdd,0xf7},
+       { 0x30,0x35,0x3b,0x41,0x90,0x04,0xdd,0x1b,0xa0,0x64,0x4a,0x2a,0x0b,0x7b,0xe9,0x4f,0xb8,0x6f,0x5e,0x27,0x5d,0x67,0x94,0xa6,0xdb,0xba,0xa3,0x21,0x32,0x3e,0xd8,0xb7},
+       { 0x30,0x7b,0x09,0x34,0xef,0x97,0x85,0xe7,0x08,0xed,0x48,0x1a,0x99,0x7a,0x8a,0x88,0xb7,0xbf,0x22,0xdd,0x26,0xaa,0x17,0x17,0x31,0xb8,0xf7,0xe0,0xd5,0x97,0xb7,0x08},
+       { 0x30,0x9b,0x6e,0x00,0x40,0x46,0x87,0x96,0x01,0xa0,0xd8,0xa0,0x42,0x3f,0x73,0xb1,0x6a,0x91,0xa4,0xbc,0x16,0xed,0x2a,0x84,0x60,0x66,0xcd,0xc0,0x38,0x2f,0x97,0x71},
+       { 0x30,0xcb,0x41,0x11,0xfb,0x10,0x08,0x6f,0xc6,0xa4,0x1f,0x04,0xb7,0xe9,0xd4,0xcf,0x66,0x10,0xbb,0x06,0x59,0xd8,0xe2,0xac,0x80,0x4f,0xc8,0x96,0xb0,0x25,0x42,0xbb},
+       { 0x30,0xe0,0x69,0x80,0x9c,0x79,0x90,0xf0,0xb5,0xf2,0x66,0xe8,0x94,0x59,0x96,0x42,0xe8,0x53,0x50,0xab,0x82,0x81,0x05,0x34,0xc7,0xf3,0xfd,0x67,0x0c,0x1b,0xeb,0x18},
+       { 0x31,0x53,0x47,0x52,0xb6,0xf5,0x48,0x20,0x91,0x5c,0x39,0x5b,0xee,0x97,0x5b,0xc5,0x4e,0x3f,0x07,0xc0,0x8c,0xd3,0x4c,0x5a,0x51,0x15,0xde,0xf0,0x17,0xdb,0x2b,0x54},
+       { 0x31,0xb8,0x3e,0x01,0x90,0x98,0x95,0xbc,0x74,0x2d,0x6b,0xe8,0x40,0x0a,0xde,0x51,0xb2,0x09,0x83,0xf6,0x83,0xa2,0xaa,0xee,0xb2,0x5f,0x58,0xdf,0x98,0x1b,0xde,0x0d},
+       { 0x31,0xed,0x8a,0x8c,0xc6,0xee,0x5e,0x88,0x4f,0x21,0x4f,0x26,0x7f,0xe3,0xa2,0x27,0xd4,0xe6,0xed,0x36,0xa7,0x7f,0xa2,0x24,0x6f,0x0a,0xd0,0x77,0x8a,0x6b,0x3f,0x97},
+       { 0x32,0x36,0x98,0x50,0x9d,0x8f,0x8b,0xfb,0xd4,0xf9,0x04,0xbd,0x1d,0x84,0x64,0x12,0xc5,0x27,0xb7,0x70,0x06,0x2a,0xad,0xdf,0x9e,0x91,0x9d,0x84,0x10,0xea,0xa4,0x9f},
+       { 0x32,0x8b,0x9a,0x45,0xef,0xef,0x20,0xb5,0xd1,0x57,0x39,0xdd,0xfa,0xc1,0x0c,0x7e,0xfe,0x5f,0xa7,0x96,0xbf,0xe0,0x1e,0xd1,0xa1,0x25,0xa9,0x15,0x8e,0x2f,0x1b,0x17},
+       { 0x32,0x9b,0x70,0xbf,0x79,0xd8,0x11,0x7e,0x95,0x3b,0x49,0x97,0xbb,0x62,0x72,0xdf,0x50,0x49,0x5f,0xa0,0xb4,0x5b,0xad,0xb3,0xec,0x0a,0x83,0x16,0x33,0x6f,0xe3,0xa2},
+       { 0x32,0xdb,0xc4,0x6b,0x80,0x80,0x5a,0x56,0x97,0x4b,0x2a,0x5d,0xde,0x67,0x34,0x28,0xed,0x03,0xb0,0x76,0x5e,0x15,0xd9,0x4c,0x55,0xe5,0x4d,0x2f,0x55,0x70,0xf2,0x0b},
+       { 0x32,0xef,0x13,0x33,0x86,0xbf,0x0c,0x63,0xcf,0x29,0xd6,0x2b,0x0d,0x76,0x88,0x9e,0x9d,0x9d,0x53,0x2e,0xe4,0x90,0x38,0x94,0x4d,0xbc,0x21,0x49,0xd8,0xca,0xa5,0xd1},
+       { 0x33,0x03,0x23,0x10,0x4c,0x25,0x2f,0xce,0xb9,0xe6,0x63,0x0d,0x9f,0xe7,0x1f,0x17,0xb6,0xc2,0x25,0xa6,0x5c,0x76,0x08,0x15,0xe4,0x08,0x74,0x6c,0x33,0x1a,0xb4,0xf6},
+       { 0x33,0x0d,0x78,0x66,0xc2,0x5f,0x7c,0xe3,0x47,0x3c,0x6d,0x55,0x9c,0xea,0x4b,0x94,0x01,0xf9,0xe5,0x2e,0x4c,0x24,0x7a,0x5e,0x49,0xa1,0xf1,0x44,0x59,0x9a,0x5a,0x79},
+       { 0x33,0xc9,0x15,0x03,0xbc,0x7e,0xbe,0x5a,0x5d,0xd0,0xcf,0xbb,0x37,0x52,0x64,0xdd,0x5a,0x31,0x1e,0x48,0xf4,0x26,0x6b,0x32,0x50,0x8a,0x02,0x5d,0x04,0xfa,0xdf,0x38},
+       { 0x33,0xd1,0x6c,0xd9,0xe8,0x2e,0xdf,0xfd,0x0b,0x3a,0xfb,0x46,0xa6,0x84,0xc5,0xa0,0xd1,0x2f,0x2b,0x40,0x58,0x6d,0x53,0x2f,0x6a,0xab,0x54,0xce,0xbc,0x42,0x33,0xd3},
+       { 0x34,0x06,0x4f,0xf9,0x3b,0x27,0x4c,0xf5,0xa7,0x24,0xec,0x19,0x64,0x50,0x4a,0x71,0x0a,0xb9,0x7b,0xa1,0x10,0x3c,0xd9,0xb9,0x8c,0x81,0xd0,0xab,0xcf,0x3b,0x19,0xbd},
+       { 0x34,0x15,0x1a,0x33,0x82,0x78,0xda,0x7e,0xc2,0x62,0x33,0x81,0x7d,0x96,0x44,0xb5,0x6f,0x8f,0x48,0xc1,0xc3,0x70,0xcd,0x25,0xfc,0xe7,0xde,0x64,0x54,0x4f,0xe9,0x36},
+       { 0x34,0x65,0xc2,0xf9,0xa0,0xcf,0x36,0xe5,0xee,0xf0,0x27,0x1c,0x52,0x91,0x2d,0x58,0x6f,0xb2,0x0b,0x94,0x43,0xe7,0xd5,0x82,0xa3,0xe2,0x23,0x93,0xfa,0xc8,0x1b,0xb4},
+       { 0x34,0x87,0x46,0xbf,0xd4,0x98,0xc3,0xf5,0xc8,0x68,0x5e,0xea,0xac,0x57,0x87,0x2d,0x3b,0x47,0xe6,0x02,0xf4,0x97,0xe9,0xf0,0x28,0x54,0x12,0x32,0x59,0xfb,0xe1,0x69},
+       { 0x34,0xe6,0xf1,0x7a,0x14,0xd3,0xd2,0x8a,0xfd,0x51,0xcf,0x40,0x49,0x3a,0xb2,0xcf,0xe0,0x18,0xef,0x98,0x1e,0x23,0xf1,0xfc,0x91,0x60,0xfb,0x91,0x2c,0xdc,0x5c,0xb9},
+       { 0x35,0x13,0x6f,0x88,0xb4,0x24,0x76,0x0e,0x17,0x5e,0xfc,0x19,0x9b,0x75,0xe5,0x25,0x35,0xf2,0xdf,0x59,0xff,0xd0,0x69,0x3a,0x5a,0x3f,0x78,0x1f,0x6f,0xf4,0xb6,0x50},
+       { 0x35,0x49,0xb6,0xec,0xbd,0x8d,0x25,0x2b,0xe7,0x17,0xb9,0x22,0x73,0x27,0x38,0x08,0x0b,0xaf,0xd5,0x60,0xb4,0x5a,0x05,0x40,0x33,0xbd,0x11,0x0b,0x3c,0x39,0x48,0x22},
+       { 0x35,0x58,0x91,0xa3,0x12,0x34,0xfd,0xd0,0x84,0x79,0xb8,0xab,0xa8,0x58,0x1e,0x85,0x7c,0x6b,0x5c,0x6b,0x40,0xcf,0xfc,0x7b,0x67,0x80,0x92,0x65,0x1f,0x06,0x87,0xc1},
+       { 0x35,0x98,0x10,0xff,0xfe,0xd1,0x3a,0x2c,0x25,0xcd,0x91,0xfc,0xf0,0x85,0x59,0x33,0xc9,0x94,0xa9,0xdf,0xc9,0x39,0x2d,0x97,0x07,0xc3,0xc0,0xe7,0x30,0x0f,0x90,0x8d},
+       { 0x35,0xdf,0x79,0x2b,0x10,0x0a,0x79,0xa6,0x5c,0x44,0x87,0x04,0x30,0x9d,0xd6,0x4b,0x54,0x39,0x4e,0xba,0xe8,0xc4,0x8c,0x3b,0xd5,0xde,0xe9,0xcc,0x68,0x7d,0x60,0x34},
+       { 0x36,0x45,0xef,0x7f,0x5d,0x15,0xa5,0x46,0x7e,0x85,0x30,0x7d,0xda,0x15,0xcb,0xbb,0x55,0xb7,0x30,0xae,0xf8,0xef,0x9c,0x71,0x5d,0x7d,0x9f,0xb4,0x7f,0xdf,0x33,0xad},
+       { 0x36,0x7d,0xab,0xad,0x69,0x08,0xe1,0x02,0xde,0x00,0x71,0xad,0xf6,0x72,0x42,0x10,0xa3,0x20,0x4c,0x0e,0x65,0xeb,0xb1,0x3c,0xbe,0x02,0x87,0x89,0x0d,0xde,0x6b,0x66},
+       { 0x36,0xb4,0xfe,0x74,0x3b,0x6d,0xf4,0x4a,0x71,0x3e,0x91,0x4c,0xab,0xfb,0xf2,0xbe,0x60,0x24,0x9b,0x46,0x43,0x4d,0x04,0x43,0x59,0x12,0x5a,0x10,0x6a,0x37,0xeb,0x1c},
+       { 0x36,0xf5,0xa9,0x7d,0x79,0x3f,0x84,0x97,0x44,0xd6,0xab,0x39,0xb7,0xa8,0x18,0xf8,0x17,0x6e,0x65,0x20,0xdc,0x86,0x3d,0xce,0x43,0xb3,0x98,0xc3,0x0b,0x5e,0xdb,0x09},
+       { 0x37,0x07,0x9d,0x98,0x72,0x7c,0x42,0xa4,0x1d,0x66,0x18,0xfc,0xcd,0xc6,0xff,0xa1,0x5e,0xd3,0xb2,0xfe,0xc7,0xac,0x0a,0x09,0x7b,0x74,0xc5,0x72,0xbb,0xcd,0xa8,0xd7},
+       { 0x37,0x87,0x37,0xcd,0x85,0x19,0xba,0xc5,0x32,0x2f,0xdb,0x28,0xf4,0x4a,0x43,0xc5,0x09,0xa5,0x44,0x7a,0xd2,0x68,0x3b,0xa1,0x90,0x05,0xe3,0x1b,0x0d,0x54,0x8c,0x6d},
+       { 0x37,0x98,0xb3,0x35,0x53,0x40,0xd2,0x76,0x2a,0x02,0x08,0xf3,0x47,0x20,0xd2,0xa1,0x52,0xef,0xa9,0xe8,0x96,0x57,0x18,0xb8,0x93,0x06,0xf6,0x91,0x33,0x56,0x32,0xe9},
+       { 0x37,0x99,0x0f,0x5b,0x5c,0x71,0x11,0x89,0x98,0xf9,0xc8,0xe1,0x54,0x65,0x69,0x16,0x1a,0x82,0xbb,0xfb,0x4b,0x4f,0xc4,0xca,0xa3,0xf4,0xb7,0xe7,0x4a,0xf5,0x15,0xfe},
+       { 0x37,0xc9,0x7a,0x48,0xf5,0xee,0x3e,0x68,0xcc,0x24,0xb5,0x4e,0x7c,0x4d,0x9f,0x91,0xc7,0xd1,0x8b,0x8d,0xb6,0x1e,0x04,0xee,0x64,0x25,0x1e,0x75,0xb0,0xd1,0x9f,0xc5},
+       { 0x37,0xec,0xdb,0x1e,0x7a,0xba,0x93,0xbb,0x83,0xc8,0xc4,0xb7,0xbb,0xde,0xaf,0xff,0xb5,0x95,0xc7,0x3c,0xa4,0x21,0x88,0xaa,0xb5,0x0f,0x06,0x27,0xd3,0xe1,0x70,0x18},
+       { 0x38,0x23,0x4e,0x55,0x9d,0x30,0x27,0xd1,0x61,0xda,0x8c,0x98,0x88,0x04,0x9a,0x4d,0x20,0xac,0xf2,0x00,0x90,0xad,0x1a,0x22,0x2b,0x73,0x9a,0xc8,0x6e,0xb7,0x6f,0x06},
+       { 0x38,0x68,0xb9,0x52,0x53,0xef,0xdb,0x85,0x46,0x62,0x00,0xdd,0xe5,0x0b,0x0d,0x52,0xda,0x5a,0x2b,0x8a,0x01,0xb7,0x26,0xce,0xf6,0xce,0x3b,0x13,0x7c,0x80,0x6c,0x05},
+       { 0x39,0x02,0x27,0xce,0x88,0x1c,0x71,0x8b,0x59,0xa6,0xbc,0x31,0x90,0xd5,0x17,0xe7,0x1e,0x1e,0x58,0x66,0x93,0xc8,0xbf,0x8a,0x30,0x27,0x26,0x20,0x13,0xfe,0x16,0x63},
+       { 0x39,0x21,0x5c,0xaa,0x37,0x1a,0xbe,0x57,0x6a,0xb9,0x3b,0x18,0xc2,0xf3,0x75,0x5e,0xe2,0x6f,0x8c,0x3a,0xdb,0x75,0x9b,0x6f,0x34,0x78,0x9f,0xb8,0xec,0xf0,0x54,0x28},
+       { 0x39,0x23,0xd1,0x9c,0x31,0x06,0x03,0xcd,0xfd,0x06,0x23,0x92,0xd1,0x76,0xc0,0xc6,0x92,0x55,0xef,0xfe,0xe4,0xef,0xf1,0x09,0x29,0x1c,0x03,0xa2,0x21,0xba,0x91,0xe2},
+       { 0x39,0x7b,0xa8,0x8a,0x05,0xda,0xfd,0x7d,0x58,0xfa,0xcf,0x45,0x60,0xa6,0x88,0xab,0xee,0xd2,0x13,0xe0,0xf8,0x8c,0x76,0xb6,0x2a,0xb2,0xfd,0xe3,0x67,0xc3,0x2d,0x32},
+       { 0x39,0x7d,0x00,0x6e,0xf8,0xaf,0xb2,0x0f,0x43,0x61,0xa6,0xc9,0x72,0xf0,0xc5,0x7c,0xc0,0x87,0x74,0x01,0x06,0x12,0x78,0x3f,0xba,0xbc,0xb8,0xd6,0xf6,0x03,0x9e,0x2c},
+       { 0x39,0x7d,0x03,0x62,0xfa,0xed,0xe6,0xfa,0x94,0x27,0x4f,0xfc,0xf9,0x8f,0xf3,0x52,0x55,0x31,0x58,0x5d,0x18,0x33,0xe0,0x07,0x3e,0x5d,0x20,0x2d,0xed,0x62,0x39,0x55},
+       { 0x39,0xb1,0x9f,0x06,0x65,0xd6,0x87,0x8d,0xd2,0x5c,0xa7,0x30,0x15,0xba,0x0a,0xe3,0xbd,0xba,0x87,0xdb,0xcf,0xad,0x38,0x7a,0x94,0x52,0x59,0x4d,0x73,0x68,0xea,0x85},
+       { 0x39,0xd7,0x44,0x77,0x31,0x72,0x8b,0xba,0x92,0x36,0x72,0x7d,0xbd,0x7c,0x7e,0xe1,0x70,0xe5,0x9f,0x3b,0x53,0x73,0x79,0x6d,0x7d,0xe1,0xc6,0xa2,0xbe,0x31,0x22,0x18},
+       { 0x39,0xda,0x1b,0xe6,0x56,0x43,0x55,0x34,0x6e,0x46,0x99,0x66,0x3c,0x19,0x95,0x54,0x87,0xa0,0x88,0x56,0xff,0xbe,0xee,0x74,0x01,0x67,0x99,0xc7,0xa3,0x4b,0x48,0xee},
+       { 0x39,0xff,0x6e,0x31,0x69,0x9f,0x5d,0x68,0x92,0x97,0x6d,0x11,0xdd,0xbb,0x14,0x24,0xed,0x0c,0xec,0x48,0x36,0x3e,0x94,0xea,0xe3,0xcd,0x5f,0x4c,0xaf,0x1c,0xbd,0x2f},
+       { 0x3a,0x02,0xea,0xd6,0x33,0x22,0x6e,0x1e,0x45,0x3a,0x58,0x50,0xae,0x4d,0x7c,0x8d,0x3e,0x0c,0x25,0xa4,0xc9,0x5c,0x1e,0x2d,0xfb,0xb7,0xff,0xeb,0x27,0xe3,0x64,0x7a},
+       { 0x3a,0x1f,0xf2,0x01,0x71,0x88,0x3f,0x4e,0x9b,0xa9,0x96,0x68,0x79,0x04,0xcd,0xdb,0x7a,0x25,0xaa,0x35,0xb0,0xad,0x8e,0xa8,0x78,0xfb,0x88,0x6d,0xd8,0xcf,0x93,0xcf},
+       { 0x3a,0x2d,0x31,0x0f,0x13,0x05,0xb4,0xeb,0x9d,0x10,0x3a,0xa2,0x9d,0x47,0x86,0xf7,0xdf,0x41,0xd8,0x5d,0x56,0xeb,0xc9,0x8c,0x3c,0xaa,0xdd,0x4b,0xaa,0x3d,0x57,0xf9},
+       { 0x3a,0xb9,0x0f,0xfd,0x22,0x10,0xeb,0x89,0x9c,0x6f,0xb7,0xfd,0x26,0x8d,0xe0,0x0b,0x00,0x9f,0x50,0xe8,0x18,0x70,0xa2,0x20,0xff,0xae,0xa2,0x4e,0x41,0x76,0xde,0x45},
+       { 0x3a,0xcf,0x85,0x3c,0x4e,0x45,0x02,0xbd,0x82,0xd5,0x85,0xd5,0xe0,0x82,0xc4,0xb3,0xad,0x03,0xcd,0xb6,0xb5,0x05,0xca,0x80,0x47,0x19,0x88,0xec,0x4c,0x58,0x99,0x9e},
+       { 0x3a,0xd4,0x7c,0xb3,0x47,0x3f,0x59,0x51,0x5b,0xac,0x6a,0xfa,0x30,0x44,0x8f,0xb9,0x5d,0x7f,0x4b,0xf1,0x14,0x48,0x53,0x87,0xd0,0x4c,0x50,0x15,0x19,0xbb,0x77,0xc3},
+       { 0x3a,0xea,0x2c,0xef,0xae,0x63,0x44,0xff,0xae,0x67,0x49,0x4c,0x68,0x4e,0x1e,0xbf,0x87,0x95,0x40,0xb5,0x3d,0x40,0xf5,0x16,0x9f,0x78,0x89,0x7f,0x1b,0x38,0xab,0x66},
+       { 0x3b,0x47,0x85,0x0b,0xf8,0x4c,0x4c,0xf2,0xca,0x6c,0x31,0xb3,0x78,0x39,0xc9,0x50,0x76,0x63,0x70,0xd7,0xf4,0xb6,0x4a,0xd0,0x18,0x55,0xca,0xcf,0xe3,0x51,0x2f,0xc3},
+       { 0x3b,0x4a,0x9f,0x55,0x6c,0xca,0xc7,0x0c,0xa1,0xf3,0x3a,0xf6,0xde,0xcc,0x66,0xca,0xfd,0x2d,0x30,0x1d,0x49,0x7b,0x49,0x0b,0x30,0x80,0x46,0x35,0xba,0xd2,0x56,0x94},
+       { 0x3b,0x6e,0x3b,0xb7,0x00,0x04,0xbd,0x78,0xc9,0x69,0xa7,0xfb,0xd5,0x11,0x33,0xa2,0xb3,0xc4,0xdf,0xb6,0xba,0x38,0x5d,0xce,0x3f,0xb8,0x4d,0x73,0x6b,0xea,0xb1,0xd9},
+       { 0x3b,0x93,0xac,0x19,0x6e,0xc6,0x7b,0xf2,0x78,0x7f,0x42,0x40,0xc0,0xd1,0x11,0x37,0xef,0x79,0xa4,0xed,0x1f,0x5d,0x1f,0x3d,0x04,0x24,0x1f,0x03,0xdc,0x2d,0xa3,0x70},
+       { 0x3b,0xaa,0x31,0x31,0x70,0x68,0xac,0xe0,0x89,0xae,0xb4,0xa8,0x8d,0x7e,0xde,0xbe,0x94,0xab,0x4a,0xce,0x46,0xbb,0xd2,0x68,0x3e,0x3f,0xdf,0xf5,0x59,0x30,0x0f,0x93},
+       { 0x3c,0x38,0x36,0x2e,0x16,0x8b,0xb4,0xa7,0x59,0xc4,0x80,0x55,0x1c,0xb1,0x65,0x6f,0x6a,0x96,0x8b,0x9b,0x43,0xcb,0xe0,0xd7,0x39,0x75,0x4a,0xb7,0x8a,0x28,0x87,0x0e},
+       { 0x3c,0x84,0xa8,0xb3,0x4d,0x0f,0x95,0xca,0xc6,0xfa,0xaa,0xb6,0x22,0xc2,0x74,0x46,0xb4,0xc4,0x72,0xdf,0x34,0x53,0xd7,0x54,0x64,0xc0,0x96,0x23,0x86,0x56,0xb9,0xd4},
+       { 0x3c,0xe3,0xf1,0x9c,0x03,0xb3,0x44,0x00,0x75,0x6f,0x64,0x18,0xe0,0x12,0xe9,0x42,0x26,0x5c,0x27,0x11,0x98,0x43,0xfe,0x0f,0x44,0x34,0x5b,0x94,0xc1,0xb0,0x6c,0xef},
+       { 0x3d,0x14,0x47,0x2d,0xce,0x4a,0xfd,0xc2,0x27,0x6c,0x81,0x47,0x97,0xc7,0xbc,0x7a,0x6c,0x14,0xf7,0x95,0x3e,0x7e,0x9f,0xea,0x69,0x51,0x04,0x0f,0x2d,0xaf,0xbe,0x9a},
+       { 0x3d,0x45,0xbf,0x0f,0x64,0x9b,0xf5,0xd1,0xf8,0x91,0x85,0x31,0xa7,0x7c,0xf9,0xbf,0x5c,0xa1,0x85,0x0c,0x82,0x02,0x69,0xd7,0xb2,0xc8,0xec,0xd0,0x54,0x3a,0x61,0x65},
+       { 0x3d,0x77,0xb1,0xcc,0x1c,0x46,0xf8,0x58,0x03,0x50,0x53,0x33,0xca,0x8d,0xe4,0x77,0x71,0xdd,0xe8,0x94,0x4a,0x51,0x4e,0xf4,0x47,0x08,0xbf,0x0e,0xa6,0x27,0x58,0x50},
+       { 0x3d,0xc7,0xb5,0x72,0xd3,0xee,0xce,0xfd,0x48,0x07,0x16,0x30,0x9d,0x2e,0xc9,0x24,0x8d,0x4d,0x5d,0xd1,0xd8,0x4f,0xdb,0x3e,0x70,0x1b,0x58,0x2e,0x72,0xb2,0xdf,0xe0},
+       { 0x3d,0xe9,0xe2,0xff,0xba,0x92,0xfc,0x57,0xb7,0x96,0x4e,0xe0,0x59,0xa3,0x38,0x37,0x96,0x37,0x4e,0xd8,0x0d,0xbe,0x7f,0x67,0x7e,0xde,0x79,0x98,0x11,0xe7,0xac,0x16},
+       { 0x3e,0x6f,0x37,0x53,0xf1,0xab,0x10,0x62,0x60,0xdb,0xef,0xa6,0x8e,0xc5,0x85,0x01,0x29,0x1d,0x1e,0xb4,0x00,0x28,0x8f,0x06,0xed,0xf2,0x9f,0x8f,0x8f,0x66,0xb0,0x1a},
+       { 0x3e,0x8e,0x9b,0xad,0x8e,0xd9,0xb5,0x72,0x38,0x2e,0x59,0x8d,0x2d,0x73,0x67,0xe1,0xfd,0x6a,0xf6,0x95,0x25,0x00,0x9d,0x67,0xb4,0xe8,0xaf,0x80,0xd9,0x15,0x85,0x49},
+       { 0x3e,0xc1,0xc3,0x43,0xc6,0x60,0x05,0x10,0x57,0x97,0x47,0xa7,0x1a,0xea,0xb3,0x04,0x1a,0x71,0x8e,0x4f,0xc6,0xe2,0x96,0xfe,0xb7,0x50,0xa3,0x12,0x38,0x72,0x6e,0xa5},
+       { 0x3e,0xd6,0x85,0x47,0x65,0x07,0x91,0x35,0xaa,0xee,0xb7,0xd8,0xa3,0x79,0x17,0xdc,0x71,0x74,0x5e,0xa6,0x0f,0xa9,0x62,0x1b,0xaa,0x30,0x7f,0xbe,0x71,0xa7,0x3c,0x43},
+       { 0x3f,0x08,0x40,0x27,0x4e,0x66,0x15,0x90,0xc1,0x46,0x75,0x96,0x0f,0xcc,0x42,0x06,0x95,0x36,0x58,0x6f,0x07,0x60,0x92,0x48,0x76,0x24,0x0f,0x09,0x04,0x31,0x78,0x91},
+       { 0x3f,0x1b,0x41,0x14,0xf9,0x89,0xe8,0x56,0x8f,0x1b,0x04,0x53,0x46,0x5c,0x11,0x3f,0x32,0xc3,0x85,0x10,0xf5,0x81,0x77,0x01,0x81,0x3d,0x69,0x3e,0xf1,0xa6,0x8f,0xcb},
+       { 0x3f,0x27,0xbd,0xca,0x9b,0x0e,0x42,0xf3,0xf6,0xd0,0x91,0x2c,0x92,0xe2,0xda,0x65,0xcb,0x35,0x8f,0x0b,0x8f,0x80,0x5b,0xec,0x5d,0xe9,0x32,0x51,0xd9,0xc4,0xb1,0x99},
+       { 0x3f,0x2e,0xa6,0x4e,0xfb,0xd6,0xbf,0xc4,0x0a,0xf0,0xad,0x46,0xa4,0xa2,0x57,0x84,0x19,0xd8,0x68,0x6e,0x38,0x98,0x8b,0x91,0x47,0x01,0x8c,0x36,0x29,0x31,0xe4,0xf9},
+       { 0x3f,0x3f,0x08,0x2f,0xab,0x0c,0xbd,0x83,0x16,0xea,0x9d,0xc1,0xc7,0x7e,0xc6,0x4c,0x32,0x4d,0x9c,0x3d,0x86,0x08,0xc7,0x79,0x56,0xf1,0x27,0xa9,0xb8,0xf4,0x9c,0x46},
+       { 0x3f,0x4f,0x28,0x8b,0xaf,0x5b,0xde,0x86,0x72,0xd6,0xad,0xd1,0x50,0xe3,0x23,0x79,0x49,0x9a,0x16,0xc5,0x81,0xfb,0x77,0x37,0xec,0x49,0x80,0xe4,0xf9,0xc3,0x3d,0x4d},
+       { 0x3f,0x5c,0xfc,0xab,0x44,0x1a,0x30,0xd8,0xf0,0x1a,0xc1,0xae,0x9e,0x08,0xa2,0xdb,0x70,0xc4,0xc1,0x6d,0xed,0x03,0xa4,0x21,0xd4,0x1b,0x8f,0x42,0xd5,0xc1,0x89,0x6e},
+       { 0x3f,0x92,0x54,0x89,0x64,0xcc,0xde,0xfb,0x29,0x96,0x5a,0x27,0xc1,0x6c,0x2f,0xed,0x28,0xd9,0xb9,0x14,0x0e,0x4f,0xb5,0x5b,0x37,0x22,0x4c,0x67,0xb2,0xa0,0x55,0x1f},
+       { 0x3f,0x93,0x0a,0x4e,0xe4,0x43,0x8b,0x20,0xd0,0x3b,0xd6,0x25,0x6e,0x18,0xe1,0x3d,0xb2,0x45,0x0e,0x59,0x38,0xf9,0x81,0xa8,0xc4,0x19,0x0d,0x56,0xf0,0xd8,0xac,0x88},
+       { 0x3f,0xb6,0xc4,0x03,0x19,0x63,0xb9,0x67,0x28,0xbf,0x93,0x8d,0x9b,0x59,0xc9,0x05,0x43,0xa9,0xa6,0x3e,0xa3,0x9c,0xd2,0x76,0x14,0xf2,0x41,0x28,0xa9,0x64,0xef,0x84},
+       { 0x3f,0xd9,0x29,0x81,0x1e,0x0a,0x80,0xa3,0xf4,0xcd,0xa3,0x50,0x2e,0x1c,0x20,0x29,0xa7,0xa3,0xc1,0x61,0x06,0x95,0x5d,0x3d,0x93,0x16,0x71,0x15,0xfe,0x7b,0xc6,0xe2},
+       { 0x40,0x58,0xec,0x4a,0x7a,0x7b,0xa0,0xb8,0x65,0xa7,0x39,0xa0,0x0c,0x85,0xf3,0x44,0x58,0x79,0xd6,0x5e,0x1d,0x42,0x2e,0xed,0x07,0x65,0x5a,0x8e,0x3e,0xc3,0x18,0xcf},
+       { 0x40,0x89,0x12,0x59,0x8b,0x4d,0x99,0x69,0x1d,0x46,0xdc,0x3c,0x06,0x19,0x82,0xb9,0x48,0x74,0x3f,0x0c,0x0d,0x26,0xff,0x38,0x50,0xa3,0xca,0x6b,0x78,0x97,0x91,0x5e},
+       { 0x41,0x1e,0x5a,0x18,0x2a,0x48,0x3c,0x67,0x0f,0x89,0xac,0xee,0xa6,0xda,0xa1,0xf9,0xa6,0x22,0x7e,0xdf,0x04,0x9c,0x05,0xe3,0xc4,0xcf,0xf7,0x28,0x42,0x45,0x9a,0xa2},
+       { 0x41,0x29,0x6b,0x9f,0xaa,0xd6,0x41,0x33,0xfc,0xcb,0xa6,0xba,0x74,0x54,0x11,0xec,0xc9,0x11,0xfd,0x8e,0xd5,0x41,0x90,0x0f,0x9e,0x20,0x36,0x08,0xee,0xa3,0x59,0x2d},
+       { 0x41,0x88,0x71,0x80,0x7e,0xdc,0xed,0xa8,0x57,0xd7,0xe8,0x48,0x31,0x71,0x81,0xe1,0xe8,0x33,0xf5,0x4c,0x89,0xa6,0x11,0xa2,0x30,0xad,0x99,0x06,0x5d,0x45,0x86,0x95},
+       { 0x41,0xa6,0x8d,0xfd,0x90,0xda,0x6d,0x12,0x09,0x84,0x85,0xbf,0x6f,0x87,0x24,0x5f,0x4e,0xc0,0x54,0x71,0xda,0x59,0xd0,0x81,0x06,0x01,0x53,0xa2,0x22,0x25,0x23,0x7f},
+       { 0x41,0xab,0x57,0x74,0x49,0xa7,0x50,0xef,0x45,0x0d,0x86,0x4d,0xb0,0x6b,0x7c,0xba,0x1f,0x63,0xe1,0x1d,0x1d,0x86,0xb7,0x8c,0x70,0x5b,0xb4,0x27,0x34,0xf5,0x05,0x2d},
+       { 0x42,0x08,0x71,0xd8,0xac,0x49,0x3c,0xf9,0x46,0x8b,0xb3,0x76,0x97,0x6d,0x65,0x5e,0xf0,0xaf,0xaa,0xc2,0x3d,0x77,0x00,0x92,0x20,0xc3,0xaf,0x8b,0xdd,0x37,0x5a,0x24},
+       { 0x42,0x53,0xeb,0x35,0x06,0x2f,0x32,0x3b,0x82,0xde,0xd0,0x0d,0x53,0x83,0x18,0x06,0x7f,0xe0,0xdf,0x41,0x2b,0xc9,0x20,0x77,0x92,0x5b,0x76,0x92,0xcc,0xcb,0x27,0x29},
+       { 0x42,0x5d,0x4e,0xbf,0x1b,0xde,0x0b,0xf8,0xd1,0xdb,0xd3,0x3d,0x8d,0x16,0x34,0xc4,0xfa,0xfe,0xb6,0xf8,0x05,0xf1,0xcc,0xb5,0x34,0xac,0xb7,0x2a,0xed,0xa2,0xcd,0x0a},
+       { 0x42,0x7b,0x6d,0x3d,0x1f,0x9e,0xf7,0x34,0xc7,0x3b,0x89,0x23,0xd0,0xe0,0x9a,0x7c,0xb2,0xd4,0x7c,0x78,0xe0,0x26,0x2b,0x4e,0x71,0x32,0xb4,0xb8,0xf0,0xf7,0xfb,0x40},
+       { 0x42,0xb0,0x75,0xeb,0xf9,0xff,0x9d,0x6f,0xcd,0xf1,0xba,0x60,0x80,0x72,0x8d,0x21,0xc9,0xcd,0x6f,0xba,0xa5,0x45,0xda,0x03,0x6c,0xc6,0x59,0xcf,0x90,0x5f,0xb3,0x0c},
+       { 0x43,0x05,0xd8,0x7b,0xe4,0xb6,0xcf,0x63,0xa5,0x00,0xee,0x4b,0x8d,0x09,0x4f,0x02,0x40,0xaf,0x3b,0x0e,0x9b,0xf5,0x9b,0xb9,0xac,0x20,0x32,0xee,0xb9,0x1d,0x23,0xdf},
+       { 0x43,0x09,0x9d,0xb4,0xcf,0x34,0x1d,0x41,0x3e,0xcc,0xee,0xfc,0xaf,0xcd,0x58,0xe7,0xe3,0xb7,0x77,0xcf,0x72,0x80,0xf3,0x23,0xf4,0x72,0x08,0x61,0x04,0x9f,0x55,0xfe},
+       { 0x43,0x13,0x91,0xe1,0x14,0x14,0xec,0x0c,0x5c,0xf5,0xe7,0xb3,0x9c,0x65,0xfe,0xdb,0x2e,0xc8,0x8c,0x54,0x48,0xbf,0x35,0xee,0x17,0x0d,0xc3,0xb5,0xe1,0x7e,0xd0,0x88},
+       { 0x43,0x30,0xeb,0xaf,0x74,0xbd,0xd4,0x36,0x56,0xa7,0x2b,0x3f,0xab,0x4d,0x66,0xdf,0x0b,0x45,0xca,0xb4,0x93,0x7d,0x01,0xbe,0xb8,0xde,0x9b,0x0f,0x2f,0xda,0xae,0xad},
+       { 0x43,0x71,0x9b,0x00,0xb1,0xeb,0xbe,0x02,0xd2,0x57,0x72,0xe8,0x41,0x22,0x1e,0xc7,0x53,0x00,0x02,0x0b,0x75,0x8d,0xec,0x19,0xd4,0x2e,0x33,0x8e,0x92,0xba,0x49,0x4c},
+       { 0x43,0x9d,0x38,0x5e,0x8b,0x11,0x68,0x0e,0x0f,0xb7,0x4f,0x78,0xa9,0x74,0xbd,0x64,0x6d,0xde,0xb5,0x4e,0x06,0x71,0x42,0x25,0x97,0xb2,0xfa,0x88,0x5d,0x05,0x59,0x28},
+       { 0x44,0x12,0x63,0x80,0xa0,0x73,0xfe,0xa1,0xa2,0x00,0x4f,0x71,0x1d,0xf2,0xca,0x47,0xc2,0xc4,0xb4,0xff,0x64,0x4e,0x76,0xaf,0xbe,0x27,0x97,0xc9,0x63,0x7c,0x6a,0xf9},
+       { 0x44,0x25,0xdd,0xfb,0xba,0xfb,0xe1,0xaa,0xce,0x25,0x85,0x70,0x48,0x96,0x9d,0xc8,0x9d,0xf5,0x97,0x7b,0xb2,0xe3,0x34,0x7c,0x9c,0xeb,0x0e,0x5a,0x7b,0x68,0xc5,0x31},
+       { 0x44,0x5c,0x03,0x3a,0x43,0xc2,0x23,0x38,0x8e,0x1c,0x54,0x26,0x92,0xab,0xe5,0x7d,0x27,0xc3,0x35,0x6e,0x40,0x95,0x0f,0x1d,0xba,0x03,0x91,0xad,0xc9,0x1b,0x10,0xc8},
+       { 0x44,0xa0,0x6e,0xb4,0x9a,0x72,0xbc,0xa4,0x4a,0x58,0x1f,0x4f,0x10,0x91,0xab,0xef,0x33,0x2d,0x8a,0x7c,0xef,0x60,0xe6,0x8d,0xaf,0x84,0x13,0x23,0x26,0x12,0x90,0xf0},
+       { 0x44,0xc2,0x00,0x2e,0xea,0xbe,0x55,0xaa,0x9b,0xf9,0x7c,0xf3,0xef,0xd4,0xfb,0x06,0xec,0xe5,0x10,0xb4,0xab,0xe9,0xac,0xb8,0x2c,0x36,0xef,0x23,0x5b,0x9d,0xc8,0xa1},
+       { 0x44,0xe5,0x20,0x99,0x22,0x26,0x8a,0x4b,0x49,0xd6,0x0b,0x6c,0x55,0xa4,0xdc,0x7e,0xe8,0x86,0x19,0xfa,0x73,0x13,0xf0,0xf8,0x15,0x9b,0x2e,0xbd,0x89,0x4f,0xb8,0x68},
+       { 0x44,0xeb,0x83,0xc7,0xeb,0xd4,0x1d,0x2c,0x09,0x67,0x45,0xfa,0x9d,0x7b,0x3b,0xc9,0x4d,0xa5,0x61,0x82,0x92,0xb7,0x0e,0x3a,0xb2,0x50,0xe3,0x83,0x53,0x98,0xc6,0x7c},
+       { 0x45,0x3e,0x22,0x73,0x3c,0xbf,0xbd,0xac,0x2f,0xfd,0x38,0x74,0x3d,0x54,0xb8,0x88,0xd0,0x8f,0x9c,0x44,0xbb,0x59,0xdc,0x55,0x0d,0xf0,0x25,0xc2,0xa0,0x0e,0x4d,0x3b},
+       { 0x45,0x60,0xdb,0xdb,0x1c,0x43,0x68,0x50,0xef,0xb0,0x03,0x1e,0xf8,0x2b,0x9f,0x70,0x88,0x21,0x9e,0xce,0xd2,0x69,0x56,0x1f,0xb4,0xd1,0xb0,0x18,0x3c,0x44,0xc2,0xb5},
+       { 0x45,0x63,0xcf,0x13,0xc2,0x49,0x2c,0xaa,0x92,0xf5,0x5b,0x17,0x26,0x3a,0xdd,0x72,0x04,0xa8,0x0f,0xe6,0x24,0x0c,0x4d,0x63,0xe8,0x39,0x59,0x58,0xf6,0x94,0xcd,0x33},
+       { 0x45,0x86,0xda,0x12,0xa9,0x43,0xe6,0x33,0xd0,0xd4,0x43,0x91,0x85,0x44,0x39,0x57,0x25,0x58,0x7f,0x0a,0xa8,0x41,0xca,0xfd,0xc6,0xc8,0x5d,0x26,0x1d,0x3c,0xd6,0x79},
+       { 0x45,0xa7,0x1a,0x5c,0xc4,0x37,0xdf,0x07,0xe3,0x86,0x55,0x43,0x6d,0x96,0xd8,0x49,0x66,0xe4,0x83,0x9d,0x37,0xad,0xcc,0xe9,0xe9,0xb2,0x2b,0x6e,0xcb,0x48,0x92,0x8e},
+       { 0x45,0xcb,0x86,0xca,0x97,0x52,0x29,0xb7,0xd5,0xda,0xfc,0x05,0xeb,0x0c,0x53,0x65,0x82,0x3a,0x91,0xa9,0x8b,0x7d,0xbe,0x81,0xab,0x5f,0x17,0x8b,0x2d,0xa4,0xad,0x9e},
+       { 0x45,0xcc,0x74,0xa3,0xdb,0xcb,0x59,0xa1,0x35,0x35,0x39,0xfa,0x5b,0x1a,0xf9,0x74,0x6b,0xa5,0xc7,0xf0,0xf1,0x6f,0x7c,0xc1,0xf7,0x0c,0x71,0x32,0x38,0x82,0x7e,0x37},
+       { 0x45,0xd1,0xf0,0xb3,0x4e,0x90,0xdc,0x45,0x86,0x4e,0x40,0x4e,0x21,0xe4,0x73,0xf5,0x54,0x2e,0x6a,0x07,0x5a,0x18,0x9e,0x6d,0x9e,0xf5,0xc1,0x16,0xe0,0xce,0x97,0xfc},
+       { 0x45,0xd7,0x98,0xfb,0xc7,0x66,0x6c,0xd7,0xa0,0x39,0x5e,0x45,0x0c,0x5b,0x4e,0x1d,0x98,0xfd,0x0e,0xdc,0x7f,0x97,0xa0,0x31,0x3a,0x3b,0x13,0x86,0x27,0x8d,0xdb,0x08},
+       { 0x45,0xe9,0xcf,0x0a,0xf0,0x43,0xa3,0xc2,0xbb,0x74,0xd4,0x63,0x66,0x93,0x1c,0x3d,0xfc,0xa5,0x3d,0x36,0x26,0x64,0x37,0xd2,0xa9,0x46,0x84,0xfe,0xe9,0x4e,0x0c,0x0d},
+       { 0x46,0x9b,0xd8,0x04,0xe9,0x98,0xae,0x27,0x9a,0xc3,0xfe,0x1b,0x52,0x88,0x46,0xe7,0xae,0xc7,0x6c,0x56,0xb8,0x0b,0x40,0xf3,0x24,0x20,0x8f,0x5a,0x9f,0x64,0x5c,0xb5},
+       { 0x46,0xcd,0x08,0x08,0x8d,0x36,0x06,0x2c,0x56,0x71,0x09,0x2c,0x02,0x76,0x7a,0x25,0x0d,0xe7,0x0b,0xf3,0xe1,0x53,0x63,0x69,0x66,0xe6,0x6e,0xc5,0x7e,0x8e,0xe9,0xf5},
+       { 0x46,0xe3,0x7d,0x9c,0x51,0xc6,0x40,0x06,0x4c,0xd9,0x5c,0x8f,0xea,0x7d,0x65,0x78,0x0c,0x2c,0x4f,0x0e,0xb8,0xee,0x56,0x67,0xef,0x5d,0xcc,0xd3,0x1f,0x44,0xe0,0x8d},
+       { 0x46,0xec,0x1d,0x4f,0x78,0xca,0xa6,0xec,0x0b,0xcb,0x5c,0x8c,0x60,0x63,0x04,0x73,0x9b,0xa5,0x10,0xb5,0x97,0xb4,0xc8,0x46,0x30,0x81,0xf3,0x1f,0x7c,0xdb,0x4e,0xc1},
+       { 0x46,0xed,0x9b,0x23,0xa0,0x9e,0x91,0x19,0xd7,0x96,0xe4,0xfe,0xc1,0x1c,0x26,0x3c,0x74,0x89,0x28,0xb0,0xa9,0x90,0x09,0x5d,0xa8,0xa6,0x3e,0x71,0x47,0x19,0x49,0x1e},
+       { 0x47,0x78,0xd4,0xa5,0x37,0x9b,0x45,0x4e,0x69,0x68,0x79,0x20,0xc1,0xfe,0x05,0xb9,0x17,0xad,0x50,0x0c,0x00,0x57,0xe9,0x07,0x19,0xdc,0x26,0x15,0xaf,0x97,0x44,0x22},
+       { 0x47,0x84,0xf6,0xcd,0x59,0x3d,0x7b,0x31,0x2e,0xb1,0xf6,0x19,0xe1,0x11,0xdf,0x3b,0x48,0x6d,0x1b,0xf8,0x37,0x15,0xad,0x8d,0xab,0xa5,0x72,0xaf,0xb2,0x61,0xd5,0xbe},
+       { 0x47,0x8c,0xdd,0x82,0x3f,0x81,0x7d,0x21,0x8b,0xf5,0xdd,0xa4,0xc3,0xe9,0x9e,0x7f,0xa3,0x10,0x9b,0x67,0xbd,0x0c,0x9b,0x1f,0x40,0x75,0x96,0x65,0xb9,0xec,0x3f,0xf2},
+       { 0x47,0xb2,0xf4,0xd6,0xb8,0x4e,0xb7,0x44,0x53,0xa9,0xec,0xdc,0x2d,0x21,0xc9,0xd6,0xbe,0x8a,0x3d,0x83,0xf8,0xa3,0x8b,0x31,0x8d,0x87,0x26,0x1a,0xa9,0x86,0x98,0x5e},
+       { 0x48,0x08,0x68,0xba,0xb4,0x84,0xc5,0x05,0x38,0x7c,0x95,0x7e,0xbc,0x12,0x2f,0x01,0x4d,0x79,0xc5,0xec,0x63,0xa8,0x74,0xd7,0x33,0xcf,0x81,0x7e,0x3d,0xed,0x0d,0x46},
+       { 0x48,0x09,0x80,0xfc,0xeb,0x50,0xeb,0x37,0x4c,0x91,0x6c,0xb2,0xa4,0x3a,0xfb,0xd5,0x35,0x21,0x1a,0xea,0x9b,0x12,0xb7,0xa4,0x5a,0xaf,0x90,0xba,0x9c,0xa4,0x70,0x0f},
+       { 0x48,0x13,0x2a,0xf3,0x5f,0x2f,0x63,0x53,0x2e,0xac,0x4d,0x64,0x4b,0xa3,0x11,0x09,0xcf,0xeb,0xe6,0x56,0x48,0x3a,0x76,0x43,0x7a,0xdc,0xa1,0xd8,0x44,0x3c,0x22,0xcf},
+       { 0x48,0x1f,0xeb,0xed,0xd0,0x11,0xfc,0xb0,0x3f,0xbd,0xd5,0x8f,0xc9,0x97,0x85,0x20,0xf5,0x00,0x63,0x83,0x6d,0x0f,0xb0,0x8e,0x9f,0xdc,0x42,0x7c,0x14,0xc7,0x97,0xb7},
+       { 0x48,0x4b,0x8b,0xc1,0xe6,0xcb,0xba,0x3f,0x01,0xf7,0xa9,0x34,0x5a,0x88,0x4c,0xf5,0xf1,0x5d,0x82,0xda,0x56,0x98,0xb6,0xb3,0x71,0xe4,0xdc,0x6b,0xbd,0x6c,0x8a,0xe8},
+       { 0x48,0x5c,0xf2,0xb0,0xa5,0xe6,0x9a,0x0a,0x9a,0xab,0x03,0xff,0x82,0xbd,0x6b,0x7b,0x2e,0xdf,0x8e,0x1b,0x54,0x45,0x8e,0x14,0x2a,0xeb,0x88,0xba,0xa8,0x84,0x0e,0x5b},
+       { 0x48,0x61,0x56,0x1a,0xe5,0x65,0x86,0xb8,0xcd,0xa5,0xc2,0xf8,0x75,0x0b,0x8d,0x34,0x38,0x51,0x53,0xe4,0xb8,0x44,0x0a,0x9a,0x37,0xd6,0x6d,0xf8,0x76,0x94,0x5f,0x3f},
+       { 0x48,0xc5,0xd4,0xff,0x5d,0x08,0x4a,0xc1,0x95,0xb1,0xa6,0xa2,0x19,0xf8,0x1b,0xbd,0xf9,0xd2,0xe5,0xc0,0x70,0xec,0x97,0xdf,0x3c,0xb0,0xb7,0x3e,0xf4,0x70,0xdc,0xe9},
+       { 0x48,0xe9,0xc3,0xdb,0x3a,0x8f,0x3b,0x82,0x60,0x20,0x9f,0x05,0x13,0x3d,0xba,0xdb,0xf5,0x11,0x7f,0xb1,0x0d,0x11,0x14,0xa8,0xc9,0x26,0x83,0x45,0x41,0x59,0x41,0x63},
+       { 0x49,0x64,0xf3,0x85,0xcc,0x36,0x3b,0xf0,0x61,0x7e,0x05,0x66,0xb2,0xe0,0xd3,0x03,0x3e,0xb1,0x26,0x27,0x0e,0x00,0xd3,0x22,0xf0,0x95,0xec,0xba,0x13,0x06,0x88,0x8c},
+       { 0x49,0xdc,0xf8,0xfa,0x68,0xe9,0x2b,0x5c,0x21,0xfe,0xf9,0x3d,0x26,0x0c,0x24,0x8c,0xe3,0xbe,0x98,0x62,0x68,0x68,0xe7,0x5a,0x3f,0x63,0x34,0xbb,0x7d,0xc1,0x81,0xec},
+       { 0x49,0xe0,0xd6,0x97,0x5a,0x23,0x47,0x67,0x2c,0xc4,0x1a,0x76,0x86,0x3a,0xa9,0x30,0xb6,0x7c,0x2a,0xa4,0xf6,0x65,0x1f,0x9a,0x28,0xf7,0xfb,0x38,0xb4,0xa4,0x41,0x96},
+       { 0x49,0xf3,0x0d,0xb3,0x32,0xf4,0x53,0x6a,0xd4,0x53,0xbc,0x68,0x9c,0x2c,0x63,0x10,0x6f,0xff,0xc2,0xb1,0x86,0x23,0xaa,0x0b,0xde,0xaa,0xb4,0xf9,0xeb,0x7c,0x0e,0x42},
+       { 0x4a,0x10,0xbc,0x78,0x52,0x2d,0xaa,0x83,0xf4,0x55,0x81,0xe5,0xfb,0xf6,0x3d,0xe8,0x47,0x92,0x4f,0x93,0x78,0x3c,0xb0,0x5c,0xae,0x3c,0x1c,0x5b,0x57,0x01,0x04,0x69},
+       { 0x4a,0x47,0x5b,0x01,0xd5,0xe2,0x70,0xab,0xee,0xa0,0xcc,0x08,0xaf,0x77,0xb9,0x6c,0x8a,0xe2,0x82,0x6f,0x32,0x61,0xa0,0xfd,0xa3,0x7a,0xca,0xd3,0xc9,0xc8,0x60,0x41},
+       { 0x4a,0x8e,0x3a,0xdb,0xdc,0xbe,0x3e,0x7e,0xd8,0x7d,0x81,0x4f,0x60,0x46,0x1b,0x82,0x36,0x24,0xf4,0x9b,0xe3,0x5d,0x66,0x39,0x09,0xec,0xb1,0x8f,0xbf,0x06,0x01,0x3f},
+       { 0x4a,0x90,0x3b,0x61,0xe8,0x1b,0x53,0xda,0xef,0x8e,0xd3,0xf7,0x72,0x14,0xc6,0xb7,0x74,0xd4,0xd2,0x9d,0xd6,0x75,0xc9,0x1c,0xdb,0x2e,0x0c,0xeb,0x36,0xbc,0x66,0xe7},
+       { 0x4a,0xa7,0xd5,0xcd,0xb1,0x8e,0x5e,0xae,0x05,0x9d,0x54,0x10,0xfd,0x5b,0x44,0xa5,0x9e,0xba,0x0d,0xe9,0x66,0x3c,0x42,0x2f,0x42,0x35,0x87,0x04,0xc3,0x2c,0x90,0x2d},
+       { 0x4a,0xcf,0x9d,0xa9,0x05,0x2f,0x0b,0x8c,0xff,0xf7,0x37,0xcd,0xa3,0x39,0x11,0xc2,0x9e,0xfc,0xbf,0xfd,0x4b,0xf4,0xb7,0x24,0x83,0xfa,0xa7,0xc7,0x45,0x1d,0xfd,0x42},
+       { 0x4a,0xd2,0x17,0xa9,0x6e,0x15,0x30,0xcb,0xc5,0xde,0xb8,0x6a,0xff,0x27,0x63,0x55,0x23,0x59,0xda,0x5b,0x59,0x82,0xe5,0x38,0xba,0xb7,0xc9,0x2a,0x15,0x9c,0xb8,0x3c},
+       { 0x4a,0xe5,0xe5,0x1e,0x7f,0xf1,0x67,0x47,0x77,0x5e,0x2b,0x2c,0x05,0x72,0x1d,0x95,0xeb,0xeb,0x8c,0x46,0x01,0xfd,0xdc,0xdc,0x90,0xfb,0xce,0x69,0x7e,0x35,0x01,0x2c},
+       { 0x4b,0x04,0x83,0x2e,0x6c,0x99,0xea,0x3a,0x31,0xf4,0x83,0x76,0x82,0xb5,0x43,0x7c,0x09,0x99,0x78,0x1e,0x77,0xcb,0xde,0xb8,0x93,0xdb,0xfe,0xf3,0x1e,0x0e,0xe3,0x3e},
+       { 0x4b,0x1f,0xc8,0x2d,0x24,0x72,0x92,0x7a,0xc1,0x7c,0x58,0x43,0x07,0xcb,0x96,0xd6,0xfd,0xdb,0x8d,0x50,0xa5,0x29,0x53,0x07,0xd3,0x0c,0x75,0x88,0x59,0x6a,0xd4,0x0b},
+       { 0x4b,0x35,0x02,0xff,0xad,0x64,0x16,0x39,0x4f,0x2f,0x78,0x47,0x76,0x13,0x39,0x69,0xa5,0x5c,0xa8,0xf3,0x9f,0x78,0x3c,0x26,0x0f,0xfe,0xdb,0xa8,0xfc,0xe4,0x19,0x70},
+       { 0x4b,0x51,0xfc,0x11,0x4b,0xac,0x8e,0x2d,0x2a,0xf2,0xae,0x56,0x84,0x42,0x9c,0xca,0xab,0x21,0x39,0xc9,0xb3,0x51,0xbf,0x7e,0x1b,0x03,0x0a,0xe8,0x62,0x4a,0xc1,0x72},
+       { 0x4b,0x5d,0xbf,0x01,0x0b,0x3e,0x62,0x78,0x9c,0x43,0x8e,0x07,0x18,0xec,0xb4,0x4a,0x5d,0xc0,0x8f,0xeb,0xcf,0xf7,0x0a,0xdf,0x5b,0xe0,0x0a,0x6e,0x49,0xe5,0x71,0xf7},
+       { 0x4b,0x92,0xdc,0xfd,0x0e,0xda,0x00,0x5d,0x9a,0x37,0x3d,0x91,0xa6,0x1f,0x23,0x12,0x9d,0x7b,0x85,0x3d,0x79,0x52,0x87,0xc9,0x5c,0x7e,0x17,0x24,0xa9,0x1c,0x53,0xb3},
+       { 0x4b,0xb1,0x83,0xde,0xb1,0x16,0xac,0x82,0xad,0xc2,0xc1,0x0f,0x61,0x4c,0x13,0x11,0xbf,0xe9,0xaa,0xab,0x0d,0x34,0x87,0x00,0xc4,0xd2,0xd3,0x52,0xfd,0xba,0x67,0x7e},
+       { 0x4c,0x08,0x8a,0x68,0x93,0x6d,0x5f,0x6f,0x12,0xcb,0x4a,0x8f,0x97,0xa8,0xf4,0xab,0x94,0x96,0x4c,0xf6,0xfb,0x27,0x6f,0x0a,0x9d,0x78,0x9e,0xa6,0x73,0xb2,0x7e,0x04},
+       { 0x4c,0x33,0x6e,0x46,0x9e,0x9c,0x01,0xc3,0x84,0xab,0x9a,0xa2,0x2e,0x9e,0x3f,0x36,0xf1,0xe5,0x9c,0xfe,0x05,0x0f,0x66,0xec,0x07,0xd0,0xfd,0x02,0x30,0xcc,0xf4,0x23},
+       { 0x4c,0x3a,0x76,0xd1,0x2c,0x70,0x0c,0x25,0x1b,0x02,0x04,0xba,0x9f,0x27,0xc0,0xda,0xcb,0x2e,0x47,0x37,0x72,0x64,0xcd,0x31,0xc4,0xfe,0xa4,0xa4,0x58,0x5a,0x99,0x60},
+       { 0x4c,0x3c,0x7c,0xbc,0x42,0x1c,0xe0,0xd1,0x84,0x4e,0xa7,0xb4,0x6f,0x61,0xd7,0x87,0xe0,0x4f,0x94,0x01,0x71,0x49,0xbe,0xa3,0x28,0xed,0xc3,0x6c,0x20,0xe3,0x2f,0xaa},
+       { 0x4c,0x4b,0xb6,0x05,0x65,0xb5,0xca,0x7f,0x02,0xf8,0xf5,0x9b,0xfa,0x1d,0x1d,0x62,0x71,0xb2,0xf1,0x4d,0x5c,0xd3,0xa0,0x43,0x51,0xc3,0xc4,0x9d,0x3f,0xa0,0x43,0xb4},
+       { 0x4c,0x8a,0x29,0xb5,0x81,0x7d,0x90,0x99,0xa4,0xfe,0xd1,0xe7,0x93,0xb2,0x8e,0x2f,0xaf,0x6e,0x87,0x14,0xee,0x77,0x60,0xa7,0xd5,0x3e,0x31,0x15,0x2c,0x18,0xac,0xc2},
+       { 0x4c,0xba,0x10,0x70,0x0c,0x5f,0xa6,0xe0,0x4f,0x2e,0xdf,0xe5,0x40,0x2a,0xdd,0x82,0xbd,0x8e,0xaf,0xab,0x38,0x44,0x71,0x11,0xbe,0x62,0x63,0x7d,0x64,0x9f,0xe3,0xc6},
+       { 0x4c,0xd0,0xd6,0x7e,0xcc,0x3b,0x01,0xc8,0xc2,0x63,0x4e,0x7a,0x73,0x76,0x12,0xf6,0x3a,0x17,0xff,0x51,0x0a,0x77,0xa8,0x04,0xbb,0x33,0x1b,0x2b,0xe5,0x8d,0xfe,0x0c},
+       { 0x4c,0xd6,0xdc,0xc0,0x71,0xc6,0x81,0x56,0x6f,0x1f,0xb5,0x46,0x95,0x12,0x67,0xe3,0x2a,0x36,0x9d,0x64,0xad,0x95,0x1a,0xb4,0xca,0x83,0x36,0xf6,0xee,0x86,0xc6,0x08},
+       { 0x4c,0xd8,0x6a,0xa6,0x0c,0xb3,0x69,0x00,0xa9,0xaa,0x3b,0x7b,0x02,0x7d,0x71,0x4c,0x0f,0x76,0x07,0xc3,0x56,0x73,0x3b,0xa2,0x21,0xaa,0xe4,0x09,0x47,0xf7,0xfa,0xcb},
+       { 0x4d,0x25,0x2e,0x6e,0x1a,0x15,0x9a,0xc2,0x22,0xb3,0x2e,0x9d,0xd0,0x31,0x56,0x7b,0x69,0x31,0x4b,0xe8,0xe8,0x21,0x1c,0x1f,0xb3,0xc8,0xb5,0x3c,0x26,0x0a,0x74,0xe5},
+       { 0x4d,0x54,0x4d,0x4e,0x41,0xc0,0xfb,0x15,0x5f,0x04,0x7d,0x7f,0xb1,0xef,0x29,0xd1,0x1b,0xdf,0xec,0xa9,0xd4,0x11,0xaf,0x8b,0x12,0x54,0x1f,0x11,0x50,0xc0,0xb4,0x44},
+       { 0x4d,0xcf,0xeb,0xdc,0x15,0x4b,0x0c,0x85,0x46,0x7f,0x6f,0x52,0xad,0x80,0x4e,0x19,0x1d,0x5b,0xc8,0x13,0x51,0x72,0x0e,0xc0,0xd1,0x9b,0xd2,0x5b,0xf8,0xf0,0xa5,0x53},
+       { 0x4d,0xe2,0x4b,0x7f,0xe2,0x6d,0x50,0x6e,0x76,0xac,0x3a,0xcb,0x32,0x53,0x3d,0x50,0x1b,0xc1,0x6a,0x2d,0x50,0xb5,0x6d,0x65,0x96,0xb3,0x0b,0x21,0xb0,0x1e,0x4d,0x09},
+       { 0x4d,0xe5,0xa5,0xde,0x12,0x4e,0x27,0x69,0x81,0x79,0x67,0x53,0xdd,0x20,0x20,0xb1,0x10,0x54,0x09,0x32,0xf7,0x4f,0x97,0x41,0xd9,0x6c,0x1d,0xb9,0x50,0x5d,0x5f,0xf1},
+       { 0x4e,0x33,0x78,0xec,0x23,0x7c,0x01,0xa3,0xcd,0x85,0x9e,0x1d,0xc9,0x29,0xd6,0xa6,0xef,0xb6,0x36,0x7a,0x72,0x58,0x41,0xcf,0x54,0x13,0x25,0xc0,0x61,0xf8,0xbf,0xd4},
+       { 0x4e,0x48,0xc1,0x6c,0x9d,0x0d,0xe5,0xdd,0x8c,0x9c,0x36,0x37,0x35,0xdd,0xfb,0xc3,0xdb,0xd2,0x6e,0xa0,0xae,0xcd,0xe1,0xc7,0x62,0xbb,0x56,0xbb,0x3f,0xe4,0xfa,0x74},
+       { 0x4e,0x56,0x28,0x87,0x76,0x0b,0xa6,0xc0,0x2c,0x8b,0x1d,0x54,0xc6,0x05,0xd2,0x67,0x5a,0xc9,0x9b,0x13,0x24,0x52,0xde,0x6f,0xe9,0x6b,0xae,0x54,0x75,0x5e,0xd8,0x90},
+       { 0x4e,0x59,0x82,0xac,0x8e,0xb9,0x51,0x12,0x2d,0x08,0x77,0xbb,0xed,0x12,0x8c,0x14,0xc3,0x30,0xe4,0xfe,0x98,0xb9,0x20,0x04,0x91,0x58,0x75,0x10,0x38,0x26,0xde,0x30},
+       { 0x4e,0x6e,0x0a,0x27,0x52,0x69,0x22,0x88,0x98,0x02,0xb5,0x98,0x9e,0xf0,0x8a,0xe1,0x67,0x02,0x62,0x0e,0x8d,0x12,0x90,0xb9,0x36,0x9e,0xf0,0x32,0x9a,0xdb,0xa6,0x8c},
+       { 0x4e,0x6f,0xb7,0x05,0x5d,0xa4,0x37,0xeb,0x46,0x8d,0x77,0x94,0x59,0x96,0xbe,0x17,0x7e,0x97,0xdd,0xa8,0x9e,0xf9,0xa4,0xb0,0x61,0x17,0xb4,0xe9,0x75,0xe1,0xc5,0x50},
+       { 0x4e,0xf1,0x31,0x9c,0x31,0x26,0xf0,0x22,0xad,0x27,0xe5,0xc4,0x1a,0x6c,0x03,0xfe,0x93,0x05,0x70,0x7b,0xf2,0x02,0x9a,0xf3,0x7f,0x9f,0x89,0xe0,0xf2,0x5a,0x93,0x1c},
+       { 0x4f,0x19,0xdd,0x12,0x92,0x4c,0xe0,0xc1,0x4f,0x82,0xc0,0x56,0xc7,0xd4,0x2b,0xac,0x43,0xd0,0x13,0x3a,0xaf,0x89,0xc1,0xef,0xdc,0xfa,0x3c,0x3e,0x47,0x09,0x7d,0x59},
+       { 0x4f,0x23,0xc6,0x87,0x0c,0x7c,0xfa,0x6d,0x31,0x92,0x70,0x3d,0xca,0xfd,0x8f,0x46,0xb7,0xbc,0xc3,0x72,0xdc,0x6d,0x1c,0x61,0x00,0x9a,0x01,0x75,0x20,0xe9,0xf3,0xdf},
+       { 0x4f,0x54,0x31,0xa9,0xa1,0x5e,0x08,0x9b,0x70,0x53,0xb6,0x61,0x47,0xe2,0xb6,0x23,0xd5,0x87,0x6f,0x9a,0x04,0x56,0x44,0x67,0xae,0x16,0x13,0xf6,0xa8,0x15,0x98,0x38},
+       { 0x4f,0x79,0xc7,0x9d,0x52,0x62,0x28,0xb1,0x0c,0x70,0xd3,0xd7,0x2a,0xaa,0x71,0x87,0xb7,0x2c,0x7e,0xcd,0x48,0xf9,0x16,0x95,0xca,0x41,0xa3,0x6c,0x55,0x5c,0x6c,0x43},
+       { 0x4f,0x9a,0xcc,0x0b,0x75,0xce,0xaa,0x7c,0xb3,0x88,0x47,0x09,0x52,0xc9,0x98,0x08,0xe4,0xf3,0xcb,0x99,0xa7,0x73,0xa6,0x00,0xcd,0xdf,0x2c,0xf3,0x1a,0xe7,0xec,0x72},
+       { 0x4f,0xaf,0xae,0xbc,0x7e,0x20,0x21,0xc8,0x43,0x86,0xec,0x9d,0x82,0xa4,0x9c,0x24,0xdb,0xef,0xeb,0x71,0x2e,0xa7,0x2c,0x0d,0x64,0x73,0x51,0x86,0x13,0x53,0xcd,0x69},
+       { 0x4f,0xe9,0xf1,0x68,0x70,0x6a,0x07,0x5d,0xa9,0x6c,0x71,0x3d,0xa4,0x32,0x61,0xe3,0x39,0xa9,0x93,0x6e,0xdd,0xd5,0x88,0x8b,0xd6,0x35,0x00,0xca,0xa6,0xef,0xbf,0xa8},
+       { 0x4f,0xfb,0x59,0x19,0xbc,0x38,0x5c,0x8c,0x58,0xe4,0x62,0xbf,0x13,0x22,0x10,0xd8,0xb7,0x86,0x12,0xd0,0xc2,0x2a,0x6b,0x6a,0x68,0x2e,0x0b,0x9e,0x9c,0x9f,0x9a,0x44},
+       { 0x50,0x15,0xb9,0xc9,0x92,0xc8,0x87,0xc2,0x4c,0x99,0x15,0x38,0xdd,0xd5,0x1d,0x01,0x49,0xcd,0x9f,0xf3,0x60,0x49,0xf3,0xd8,0xa0,0xb2,0xd2,0x92,0x23,0xf7,0x91,0x38},
+       { 0x50,0x30,0x55,0x80,0x8f,0x4c,0x49,0xcf,0xfc,0xde,0x02,0x27,0x3c,0x13,0x16,0x38,0xf4,0x3d,0x38,0x56,0x13,0xe0,0x73,0x3d,0xb4,0x5f,0xbd,0x2a,0x29,0x11,0xd6,0xe4},
+       { 0x50,0x3c,0x0a,0xe6,0x83,0x4e,0x46,0xca,0xed,0x49,0x7c,0x43,0x73,0x3f,0x39,0x7e,0x04,0xd3,0x06,0xd5,0xf8,0x10,0x11,0xd2,0x0e,0x5a,0x03,0xc5,0x6b,0x89,0xda,0x15},
+       { 0x50,0x81,0x1d,0x6e,0x9d,0xaf,0x31,0x2a,0x6a,0xc2,0xaf,0x6b,0x52,0x13,0xc9,0x56,0x20,0xe0,0x24,0xe0,0x87,0xae,0x5e,0xb0,0xcc,0x8a,0xa2,0x6f,0xbe,0xd9,0xd9,0x85},
+       { 0x50,0xf4,0x78,0x1e,0xb1,0xc1,0x46,0x70,0xd9,0xa5,0x52,0xc3,0x49,0x5f,0xb9,0xf6,0xae,0x86,0x8a,0xb1,0xc9,0xd9,0x83,0xe0,0x82,0x68,0x65,0xa1,0x02,0xec,0xa6,0xd3},
+       { 0x51,0x19,0xb5,0x19,0x01,0x56,0xdd,0x6d,0x6b,0x34,0x16,0x60,0xf8,0xa3,0xc6,0x25,0x0a,0xc5,0x2d,0x82,0xbd,0x26,0xc3,0x30,0x7e,0x28,0xb4,0x03,0xd3,0x84,0x94,0x9f},
+       { 0x51,0x3e,0x76,0xb7,0xbf,0xb0,0xf4,0xee,0x3f,0x09,0x94,0xc9,0x56,0xb9,0xcd,0x4f,0xff,0x03,0xfa,0x14,0x38,0x68,0xcf,0x3c,0x59,0x9b,0x7c,0x33,0xcc,0x41,0xa2,0xf4},
+       { 0x51,0x45,0x0f,0x2b,0x44,0x5c,0x6d,0xed,0x83,0x9c,0xd9,0x97,0x86,0xd4,0x03,0x01,0x1c,0x2d,0xbe,0xdc,0x72,0x96,0xdb,0xc8,0x55,0x44,0xac,0x1b,0x71,0xda,0x4a,0x95},
+       { 0x51,0x6a,0x2f,0x33,0x60,0xc7,0x6f,0xc4,0x6a,0xb2,0x88,0x7f,0x88,0xe8,0xd0,0x8e,0xfb,0xd8,0x44,0x5a,0xa7,0xbb,0xd2,0x29,0xdf,0xc7,0x1a,0x90,0x4f,0x55,0xae,0xb4},
+       { 0x51,0xc5,0x2a,0x80,0xbc,0x2e,0x24,0xfb,0x47,0x1f,0xe4,0x5e,0x78,0xcf,0x01,0x84,0xe0,0xc4,0x67,0x0e,0x20,0xe6,0xca,0xda,0x20,0xbd,0xf9,0x6e,0x2d,0x71,0x20,0xf7},
+       { 0x52,0x1f,0x6c,0x6a,0x84,0x36,0x65,0x79,0xca,0x2d,0xea,0xeb,0x23,0x15,0xbf,0x8e,0x53,0x1c,0x9f,0xa4,0x7b,0x89,0x9d,0xa2,0x72,0x16,0xa9,0x98,0x82,0x86,0xaf,0xe5},
+       { 0x52,0x75,0xc2,0x38,0x02,0x7b,0x22,0xaa,0x51,0x9b,0x36,0xa8,0x03,0xaf,0xf5,0x6e,0xbb,0x4e,0x1a,0x6c,0x56,0x9a,0x81,0xea,0xde,0xd5,0x86,0x35,0xa7,0x7b,0x15,0x80},
+       { 0x52,0xe4,0x38,0x85,0x10,0x91,0xb9,0x8c,0x01,0xfe,0x1a,0x5e,0xc5,0x4f,0xa9,0x8a,0xa0,0x64,0xab,0xa6,0xe1,0xb3,0x3d,0xd9,0x83,0xc4,0x15,0x15,0x28,0x96,0xf0,0xb8},
+       { 0x52,0xff,0x8b,0x6e,0x98,0xb0,0x96,0x19,0x90,0x03,0xde,0x97,0xbc,0xcf,0xd2,0xa7,0xf1,0xac,0x57,0xa8,0x31,0x35,0xb9,0x55,0xff,0x68,0x63,0x36,0xa6,0x91,0xd5,0xca},
+       { 0x53,0x49,0x98,0x5a,0x83,0x22,0xc0,0xa9,0x54,0x1f,0xb6,0x81,0x31,0xc2,0xa4,0xf4,0x7d,0x46,0xc5,0xbb,0x3b,0xac,0x23,0x76,0x6a,0x26,0x55,0x17,0x43,0x71,0x40,0xb6},
+       { 0x53,0x79,0x64,0x58,0xda,0x97,0xce,0x36,0x78,0xf2,0xd1,0xd9,0xb2,0xa5,0xb2,0xfb,0x30,0x75,0xea,0xfa,0xf6,0xff,0x04,0x78,0xb5,0x72,0xdd,0xfd,0x70,0x99,0xae,0xe2},
+       { 0x53,0x82,0xd6,0xba,0xb5,0x78,0x51,0xd9,0xb5,0x8c,0x17,0x54,0x46,0xbf,0x2d,0x1b,0xb7,0x86,0xa5,0x30,0xfb,0xf0,0xae,0xcd,0x12,0xea,0xb8,0xa9,0xa5,0xb4,0x96,0x60},
+       { 0x53,0x96,0x8b,0x36,0x22,0x80,0xfe,0xb7,0x27,0x51,0xf6,0xed,0xb9,0xb2,0x7c,0x5f,0x50,0xdd,0x4c,0x0e,0x43,0x4a,0x54,0x09,0x76,0xa5,0xbe,0xe3,0x40,0x3c,0x92,0x7e},
+       { 0x53,0x96,0xb9,0x32,0x9d,0xe7,0xb3,0x55,0x2e,0x18,0x0d,0xdd,0x33,0x17,0x63,0x53,0xba,0xcd,0x65,0x66,0x18,0x2b,0x2b,0x23,0x05,0x71,0x67,0x0a,0xce,0xb0,0xc1,0x91},
+       { 0x53,0x9c,0xa9,0xe1,0xf0,0x6a,0xf2,0x10,0x7f,0x96,0xbf,0x4b,0x7d,0xd4,0xce,0xcd,0x9e,0xd1,0x1a,0x38,0xd6,0x70,0x91,0x69,0x9c,0x56,0x26,0xe2,0x7a,0x1f,0x54,0xa5},
+       { 0x53,0xaf,0xbd,0xdb,0xfa,0xc7,0x4e,0xbc,0xa1,0xbe,0xf4,0xba,0xcd,0xeb,0x45,0x29,0x7c,0x43,0xf0,0xf7,0x4e,0x8d,0x04,0xba,0x81,0x79,0xb4,0xf3,0x72,0x41,0xbe,0x6c},
+       { 0x53,0xb6,0xe2,0xaa,0xa6,0x2d,0x18,0x5a,0x42,0x3e,0x92,0x9d,0x8c,0x75,0xd7,0xe3,0x2b,0x37,0x2f,0x5d,0xf0,0x06,0x0a,0x73,0xba,0xfa,0xc4,0x9a,0xa8,0x51,0x1e,0x24},
+       { 0x53,0xeb,0xd5,0x29,0x2d,0x32,0xce,0xa0,0x08,0x60,0x96,0x78,0xc4,0x3b,0xdd,0xab,0x90,0x28,0xba,0x6c,0x17,0x68,0x4c,0x51,0x22,0x42,0x62,0x43,0xcb,0x61,0x2a,0x29},
+       { 0x53,0xed,0x84,0xe5,0xc9,0xad,0x2b,0xd1,0xcb,0x2c,0xc8,0x36,0x52,0xea,0x0c,0xc3,0x71,0xcd,0x53,0x4b,0xd5,0x97,0xce,0x7e,0x07,0x37,0xa0,0xab,0x10,0x65,0x73,0xaa},
+       { 0x54,0x1b,0xed,0x16,0x7d,0x7d,0xe0,0x5f,0x80,0x63,0x73,0xa3,0x86,0x8f,0x73,0x4c,0xbd,0xf7,0x09,0x53,0x6b,0x3b,0xcf,0x20,0x64,0xb2,0x59,0xfe,0x2a,0x83,0x76,0xaa},
+       { 0x54,0x41,0xfb,0xb0,0x5d,0x6d,0x4a,0xed,0xe0,0x3b,0x48,0x2f,0x51,0x95,0x1c,0x7e,0xf0,0x73,0x45,0x53,0xce,0xc7,0x80,0xfb,0xdc,0xfa,0x30,0x0c,0xc1,0x79,0x0d,0x66},
+       { 0x54,0xa5,0x1f,0x64,0xd6,0x28,0x61,0x49,0xf2,0x3a,0x43,0xcc,0x73,0x67,0x00,0x0e,0xf0,0x16,0x03,0x89,0x9c,0xbc,0x94,0xa1,0xa4,0xe3,0xbe,0xec,0xfe,0xe8,0x40,0x66},
+       { 0x55,0x21,0xf9,0x63,0x57,0x81,0x58,0xb8,0xd0,0xe7,0xc4,0x91,0xcd,0xb8,0x5c,0x3d,0xe9,0xd5,0x2e,0xa5,0x1f,0xfc,0xb0,0x93,0xd3,0x12,0x28,0x11,0x13,0x14,0x97,0xeb},
+       { 0x55,0x25,0x31,0x16,0x0c,0xae,0xd5,0x81,0xb1,0xce,0x53,0x30,0x6c,0x80,0xdd,0x1d,0x82,0xf4,0x00,0x30,0x41,0x0d,0xad,0x8d,0x53,0xe6,0x6c,0x0b,0x48,0x06,0x0c,0xbd},
+       { 0x55,0x54,0xec,0x61,0xf2,0x57,0x6e,0x34,0xe7,0x21,0x56,0xa6,0xf6,0xfd,0x5e,0xe8,0xf4,0x26,0x2a,0xb5,0x3f,0x7b,0xc9,0xf1,0x8b,0xb6,0xd7,0xeb,0x3e,0x16,0x28,0xde},
+       { 0x55,0xb2,0x84,0x5f,0x48,0x44,0xa7,0x72,0x46,0x36,0x41,0x78,0xa1,0x71,0xc2,0x26,0xfc,0xfd,0x75,0xc7,0x63,0xba,0xd0,0x87,0xf6,0x02,0xe7,0xb4,0xac,0xd9,0xec,0xb3},
+       { 0x55,0xd0,0xeb,0xe3,0x2c,0xba,0x09,0xf6,0x58,0x4d,0x9e,0x7b,0x57,0x92,0xa4,0x03,0xc2,0x1d,0x39,0xd6,0xe1,0xf5,0xe8,0xed,0x37,0xb9,0x3f,0xa6,0x1d,0x88,0x35,0x16},
+       { 0x56,0x65,0xc2,0xe5,0x64,0x33,0x29,0x85,0xb8,0xd2,0xc4,0xfb,0x61,0x14,0x57,0xd8,0xd5,0x65,0x9a,0xe0,0x05,0x87,0x4c,0x6f,0x30,0x34,0xd2,0x9f,0x2a,0x9a,0x78,0x32},
+       { 0x56,0x81,0x4b,0xb4,0x69,0xc3,0x87,0x31,0xfc,0x0d,0x84,0xb8,0x6f,0x87,0xb3,0x5b,0xaf,0xf3,0x2a,0x0f,0x13,0xc2,0x61,0x64,0x02,0x70,0x36,0xc9,0x4e,0x8d,0x64,0x3f},
+       { 0x56,0x8f,0x37,0xb3,0xab,0xbd,0xa3,0xe8,0x03,0x12,0xb1,0xb1,0x43,0x27,0x2c,0x44,0xe1,0xfb,0x78,0xee,0x3f,0x30,0x0f,0x5b,0x54,0xf5,0xb2,0x9a,0x7a,0xd8,0xd7,0x43},
+       { 0x56,0x96,0x18,0xd5,0x4e,0x3c,0x61,0x1b,0x79,0x7e,0xeb,0x01,0xdf,0x9c,0x1c,0x5c,0x14,0x6d,0x87,0xb3,0xb1,0x29,0xba,0x42,0x29,0x88,0x88,0x82,0x10,0x04,0xfd,0xcb},
+       { 0x57,0xb8,0xbf,0xb7,0x22,0x41,0x15,0xb7,0xf2,0xae,0x12,0x89,0x74,0xb6,0xd0,0x74,0x1b,0xb2,0x8f,0x48,0x0b,0xe8,0x96,0xee,0x09,0x7c,0xee,0x68,0x6e,0xa3,0xaa,0xab},
+       { 0x57,0xc1,0x4c,0x78,0x2c,0xf5,0x8c,0x3b,0x72,0x28,0x0f,0xef,0x7d,0xa9,0xe2,0xd9,0x71,0xe5,0x25,0x03,0xc4,0x15,0x99,0x59,0x68,0xb6,0x04,0x37,0x2a,0x18,0x96,0xbf},
+       { 0x58,0x0c,0x45,0xd6,0xe2,0x55,0x8e,0x7c,0x7d,0xa8,0x19,0xa5,0x99,0xd5,0xb1,0x6f,0x0e,0x18,0x79,0xf0,0xcb,0x58,0x31,0xdf,0xdb,0x9a,0xb2,0xff,0x6e,0x8e,0x4b,0xa0},
+       { 0x58,0x1a,0xde,0x64,0x84,0x95,0xb4,0xb1,0x62,0x9c,0x3c,0x7c,0x78,0xef,0xbe,0xf2,0x75,0x06,0x56,0x65,0xb2,0x41,0x1c,0x0e,0x5f,0xcf,0xbc,0x7e,0xb4,0xbe,0x34,0x0b},
+       { 0x58,0x36,0x98,0x46,0xc0,0x25,0x15,0x0e,0xcf,0xb2,0x2c,0xce,0xb8,0xe4,0xde,0x9a,0xc3,0xd0,0x2d,0x9e,0x23,0x6c,0x02,0xef,0xb5,0x5f,0x63,0xeb,0xaf,0xea,0xf7,0x5b},
+       { 0x58,0x98,0xbe,0xd1,0x46,0x1e,0x18,0x9d,0xc5,0x97,0x73,0x75,0x9c,0xb6,0x9b,0xe3,0x36,0x86,0xb2,0xd8,0x0e,0x73,0x21,0x9f,0x07,0x96,0xeb,0x8f,0x0f,0x79,0x59,0x09},
+       { 0x59,0x3f,0x23,0x88,0x0b,0x59,0xed,0x5a,0xa4,0x8a,0x2d,0xb5,0x01,0x44,0xfc,0x8e,0xab,0xb7,0xb5,0x35,0xa6,0x2a,0x61,0x7b,0x28,0x82,0xb8,0x5d,0xcf,0x50,0xb8,0x02},
+       { 0x59,0x43,0x09,0x51,0x02,0x8b,0x87,0x78,0x01,0x67,0xc9,0x56,0x47,0x9a,0x81,0x5f,0x91,0xbc,0x6c,0x00,0xc2,0xe5,0x0c,0x35,0xf0,0x5f,0xcf,0xf5,0x27,0x68,0xc7,0x37},
+       { 0x59,0xc9,0xe8,0xdf,0x03,0x0b,0x1c,0xd5,0x89,0xa8,0xb3,0x4f,0xe7,0x42,0x51,0xea,0xd5,0xa5,0xfb,0xe9,0xe6,0x13,0x67,0xca,0x76,0xaf,0xd9,0xdd,0xd9,0xc6,0xf1,0x6f},
+       { 0x59,0xe8,0x20,0x27,0xa5,0xf6,0x28,0x1a,0xbc,0xfb,0x41,0xa9,0x9f,0xfc,0xb5,0xba,0xb1,0x3a,0xa1,0x32,0x57,0xfc,0x12,0xe1,0xdd,0x4c,0x38,0x08,0xb9,0x64,0x27,0x39},
+       { 0x59,0xe9,0xfa,0x2f,0xf0,0x76,0x89,0x33,0x28,0x33,0xc6,0x40,0xf5,0x05,0xfa,0x24,0x09,0xeb,0x88,0x93,0x32,0x57,0xc1,0x93,0xb0,0x07,0xd3,0xa2,0x89,0x6a,0x98,0x50},
+       { 0x59,0xee,0x2c,0xb6,0x0c,0x80,0xe7,0x37,0x33,0x72,0x1c,0xa6,0xcd,0x0c,0x88,0x63,0xdd,0x9a,0xf6,0xb8,0x2f,0x35,0x0c,0xe9,0x88,0x72,0xf2,0x2e,0x23,0x89,0x5a,0x55},
+       { 0x59,0xee,0x9b,0x36,0x80,0xae,0x20,0x56,0x83,0x9c,0x0b,0xf6,0x9e,0xe6,0x63,0x26,0x57,0x16,0xa8,0xe2,0x4c,0xc6,0x49,0x95,0xfb,0xa6,0xcb,0x6f,0x0c,0x12,0x39,0xdc},
+       { 0x5a,0x28,0x15,0x08,0x72,0x33,0x83,0xe1,0x3d,0x56,0x37,0x61,0x41,0x19,0x23,0xfb,0x20,0xd5,0xc2,0x83,0x56,0x64,0xab,0xfc,0x9c,0x02,0x4e,0x54,0xe9,0x5b,0xca,0x87},
+       { 0x5a,0x2a,0x8b,0xcb,0xef,0x60,0xf7,0x79,0x13,0xb1,0xb6,0xae,0xdf,0xd3,0xae,0x8f,0xe5,0xfc,0x42,0x2f,0xdb,0x3b,0xa7,0x9e,0xf7,0x17,0xa9,0xbe,0x19,0xfa,0x89,0xdc},
+       { 0x5a,0x6b,0xb1,0x1f,0x2e,0xfd,0x5e,0x60,0x25,0xc6,0x06,0xf5,0x58,0x81,0x30,0xe1,0x7c,0x88,0xed,0xae,0xdc,0x2a,0xa9,0x41,0xe2,0x54,0x3a,0xdd,0x77,0x25,0x31,0xbe},
+       { 0x5a,0x84,0xaf,0xe6,0x74,0x05,0xab,0xe8,0x4a,0x0c,0xd4,0x2c,0x2b,0xa2,0xe4,0xc8,0x8f,0x35,0xe0,0xa5,0x95,0xe5,0x69,0xa3,0xe1,0x86,0x69,0x44,0x40,0x5b,0xe7,0x36},
+       { 0x5a,0x87,0x99,0x5f,0x97,0xbb,0x5a,0x55,0x61,0x7f,0x5f,0x8b,0xe9,0x53,0xb9,0x5e,0x3c,0x45,0xe2,0x51,0x5e,0x7d,0x38,0xb6,0xa4,0x33,0xd8,0xc4,0xa4,0xaa,0x4e,0xf4},
+       { 0x5a,0x8c,0x3a,0x7d,0x66,0xea,0x0f,0x6e,0x88,0xbe,0x15,0xd3,0x28,0x62,0xfb,0x39,0xf2,0x5f,0xea,0xac,0x12,0xc2,0xcd,0x6a,0x68,0xe8,0x9c,0x4c,0x30,0xee,0x73,0x63},
+       { 0x5a,0x8e,0x86,0x21,0x2c,0x06,0x33,0x94,0x94,0xf8,0x5b,0x5f,0x85,0x11,0xdf,0x00,0x00,0x23,0x94,0x07,0x8f,0xfc,0x77,0x4d,0x43,0x6f,0x0d,0x63,0x86,0xd7,0xa6,0xf7},
+       { 0x5a,0xc0,0x98,0x2d,0xa0,0xc8,0x3d,0x0b,0xa9,0x38,0x1a,0x5c,0xd8,0x7b,0x80,0xd1,0x10,0xf2,0x6e,0xe8,0x39,0x27,0x1b,0xc2,0x70,0x60,0x8f,0xd1,0x43,0x7f,0x55,0xb0},
+       { 0x5a,0xd0,0x17,0xdd,0x25,0x23,0xf2,0x51,0xaf,0x5e,0xdc,0xe4,0x2a,0x8f,0x18,0x5e,0x6d,0x0e,0x7d,0xc8,0x00,0xf4,0xa5,0x9a,0xf7,0x7c,0x12,0x47,0x37,0x69,0xd9,0x37},
+       { 0x5a,0xe2,0xfa,0x90,0x43,0x53,0x46,0x3b,0xae,0xe6,0x96,0x53,0xb2,0x19,0xc1,0x5b,0xc9,0xcd,0x80,0xe7,0x01,0x40,0x08,0xe7,0x26,0x31,0x09,0x79,0x52,0x54,0x8c,0x60},
+       { 0x5a,0xed,0x28,0x2d,0x88,0x21,0xaa,0xdf,0x6e,0x01,0x0d,0x94,0x66,0x66,0x09,0x25,0x7c,0xa0,0xaf,0x4c,0xe5,0xbd,0x7f,0xc9,0xcd,0x8c,0x9f,0x32,0x5f,0xeb,0xae,0x6d},
+       { 0x5b,0x1f,0x32,0x78,0x8d,0xd9,0xd7,0xe9,0x06,0x80,0x7d,0x03,0x01,0x45,0xc8,0xad,0x20,0x11,0x03,0x0c,0xdb,0xf0,0xa6,0x03,0x08,0x14,0x93,0x7e,0x54,0xd1,0x54,0x68},
+       { 0x5b,0x1f,0x32,0xf6,0x88,0x12,0xd9,0xc3,0xd3,0x34,0x99,0x39,0x48,0x4e,0x3e,0xdf,0xc6,0xc2,0x33,0xb6,0x5f,0x9d,0xdb,0x3d,0x4b,0x30,0xfc,0x4b,0xe2,0x0e,0x0d,0x84},
+       { 0x5b,0x29,0x3d,0x30,0x9f,0x64,0x24,0xbc,0x26,0x4f,0x4b,0xb0,0x18,0xae,0xf5,0x0e,0x63,0xe3,0x37,0xd1,0x4d,0xf0,0x64,0xc5,0x7a,0x23,0x52,0x83,0x42,0x16,0x1c,0x68},
+       { 0x5b,0x33,0x98,0x0a,0x7e,0x70,0x73,0xc2,0xbd,0x2c,0xcb,0x6b,0xe3,0xa7,0x73,0xb9,0x36,0x36,0x3d,0xa1,0xa6,0x6d,0xeb,0xb8,0x4e,0x41,0x95,0x2d,0xaf,0x58,0x36,0xb5},
+       { 0x5c,0x06,0x2f,0x0d,0x7e,0x21,0x91,0xdf,0xc1,0x60,0xe4,0xc0,0x59,0xae,0xd4,0xd1,0x83,0xbd,0x2d,0x0f,0x40,0x98,0x3d,0x03,0xb4,0xe8,0xda,0xa1,0x1f,0xf5,0xe8,0x95},
+       { 0x5c,0x35,0x91,0x21,0x9b,0x7a,0x55,0x9a,0x0d,0x78,0xaf,0xe0,0x6d,0xfc,0x80,0x85,0x78,0x23,0xd2,0x49,0x56,0x30,0x08,0x22,0xbb,0x1d,0x6e,0x60,0x01,0x98,0x11,0xe8},
+       { 0x5c,0x7f,0xf0,0x55,0xc2,0xfd,0x03,0x3f,0x34,0xc4,0xc4,0xf7,0xc4,0xfb,0x7d,0xda,0xaa,0xfb,0x43,0x56,0xc5,0x60,0xc9,0x9e,0xdf,0xf0,0x74,0xda,0x04,0xaf,0x65,0x7c},
+       { 0x5c,0xd2,0x44,0x6a,0x8e,0x4a,0x0f,0xa7,0xe3,0xcd,0xf8,0x00,0x5d,0xed,0xce,0xba,0xe9,0xe6,0x81,0x9a,0x8a,0x69,0x87,0x31,0x55,0x5b,0x7d,0xc9,0xd0,0xa2,0x3f,0xc0},
+       { 0x5c,0xeb,0xeb,0xd8,0x34,0x01,0xb7,0x0b,0xac,0xb5,0x4f,0x66,0xa9,0xb7,0x78,0x55,0x69,0x6e,0xce,0x16,0x7f,0xe6,0xc6,0x0a,0x05,0x16,0x8b,0xe4,0x39,0x19,0xc8,0x0f},
+       { 0x5d,0x01,0x5e,0x1f,0xf4,0x40,0xd8,0x3e,0x1e,0x1c,0xe0,0x99,0x9c,0x42,0x6c,0xed,0xd8,0x75,0xee,0x22,0x6f,0x79,0xa6,0xd6,0xb8,0xfb,0xbf,0x14,0x6a,0x43,0xf4,0x2d},
+       { 0x5d,0x69,0x52,0x4d,0xe6,0x3a,0x8b,0xe0,0x1a,0x82,0x31,0xb4,0x33,0x3e,0xc8,0x97,0x74,0xc5,0x8d,0x82,0xb4,0xad,0xbd,0x20,0x91,0x42,0x84,0x06,0xa0,0x6b,0x16,0xb0},
+       { 0x5e,0x23,0xdb,0xd4,0xd0,0xc9,0xbf,0xb1,0x5f,0x61,0x6a,0x95,0x17,0xa1,0x30,0xd8,0x66,0xa8,0xcb,0x0b,0x18,0x96,0x3d,0x54,0xe7,0xed,0xae,0xe2,0x61,0xcb,0x1c,0x19},
+       { 0x5e,0xae,0xd7,0x13,0x5c,0x21,0x69,0x76,0xad,0x4e,0xdc,0x4d,0xbb,0x3f,0x1f,0xa1,0xf7,0xc2,0x85,0x54,0xf1,0x4f,0x1a,0xd1,0xc6,0x2a,0xba,0xbb,0x00,0xcf,0x7b,0x66},
+       { 0x5f,0x1e,0xae,0xf6,0xb7,0xe3,0x2f,0x26,0xc8,0x7a,0xd9,0x4a,0x10,0xf9,0x0b,0xf2,0xb3,0x4f,0x0e,0x21,0x13,0x71,0x37,0x0c,0xb3,0xda,0xcd,0xe1,0x00,0x63,0x9d,0xbe},
+       { 0x5f,0x30,0xf0,0x3a,0x89,0xbf,0x8f,0x2b,0x9b,0x82,0xc9,0x35,0xf8,0x8e,0xc6,0x87,0xec,0x07,0xbc,0xc8,0x0e,0xc8,0x24,0xe5,0x74,0x51,0x72,0xb4,0x50,0x29,0x90,0xbe},
+       { 0x5f,0x5c,0xca,0x19,0x1e,0xc9,0x2f,0x4d,0xad,0x96,0x6d,0xaa,0xfd,0x6d,0xe7,0x56,0x34,0x44,0x18,0x60,0x4d,0x8a,0xd5,0x0a,0x78,0x14,0xf4,0x39,0xf4,0xf2,0x0a,0xf1},
+       { 0x5f,0x85,0xde,0xa9,0xbb,0x0d,0x94,0x81,0xc2,0x47,0x23,0x2e,0xf2,0x5c,0x77,0xe8,0x4e,0x68,0x95,0x60,0x0d,0x0b,0xda,0xf8,0xe7,0x0e,0x82,0x8a,0xdc,0x6f,0xd4,0xff},
+       { 0x5f,0x8b,0x88,0x8e,0xe9,0x6c,0x0c,0x0f,0x5a,0x91,0x72,0x90,0xac,0xa6,0x5a,0xfd,0x6e,0xbd,0xae,0x05,0xa0,0x2a,0xaf,0x04,0x29,0xe9,0x72,0xec,0x01,0x90,0xec,0xfc},
+       { 0x60,0x1a,0xf7,0x2f,0xb0,0x6f,0xe6,0x68,0x79,0x92,0xc5,0x8f,0xac,0x32,0xe3,0x0c,0x01,0x9e,0xaf,0x41,0xe0,0xb3,0x85,0x7e,0xa9,0x00,0xa1,0x61,0x08,0xeb,0x34,0xde},
+       { 0x60,0x28,0x6b,0x5f,0xb1,0xa4,0x7f,0x8c,0x79,0x3e,0xbe,0x0a,0x4f,0x9e,0xa0,0xef,0xb6,0xff,0xf7,0xd0,0x1c,0x79,0x10,0xef,0xf7,0x4e,0xd3,0xb2,0x88,0xf4,0xe6,0x27},
+       { 0x60,0x38,0x42,0xeb,0x89,0xda,0xad,0xf7,0x17,0xf7,0xe0,0x91,0x22,0xa0,0x6a,0xc8,0x19,0x04,0x51,0x2c,0x2d,0xa1,0xcb,0xc2,0x90,0xcc,0x52,0xd4,0xdc,0x0c,0x7f,0xec},
+       { 0x60,0x47,0xa1,0x61,0x21,0xda,0x00,0xb4,0x31,0x60,0x6d,0x15,0xe8,0x40,0x5f,0x0d,0x19,0xcf,0xfe,0x7c,0xde,0x91,0x69,0x8c,0x79,0x4b,0x3a,0x35,0x1d,0xb1,0x4d,0x6b},
+       { 0x60,0x4c,0xe5,0x2b,0x8f,0xc5,0x72,0xf0,0xec,0x55,0xf1,0xc6,0x37,0x08,0xdf,0xd9,0x7e,0xf1,0xc7,0x99,0xd4,0x8c,0x27,0x6b,0x37,0x34,0x75,0xe3,0xa4,0x61,0xf3,0x12},
+       { 0x60,0x69,0xe0,0x4e,0xf3,0x7e,0xe3,0x29,0xcf,0x15,0xe9,0xfd,0x64,0x1f,0x18,0x24,0xb8,0x4b,0x34,0x4b,0x63,0x80,0x30,0x05,0x81,0x66,0x2b,0x2d,0x44,0x31,0x3a,0x95},
+       { 0x60,0xa3,0xfb,0x74,0x7c,0xf6,0x5b,0x04,0xe9,0xbe,0x15,0xda,0x26,0xa9,0xdd,0x99,0x59,0x71,0xa9,0x1a,0x6f,0x02,0xe0,0x14,0xa9,0xd7,0x4d,0x1f,0x69,0x45,0xe1,0x2e},
+       { 0x60,0xca,0x81,0xe3,0x5b,0x9a,0x6f,0x07,0xe1,0x3c,0x02,0xae,0x41,0x15,0xb0,0x00,0x54,0x30,0xcf,0x46,0x0e,0xfc,0x7d,0xba,0xf1,0x5f,0x51,0xf7,0xa9,0x4a,0xd1,0x6a},
+       { 0x60,0xdf,0xf2,0xab,0xa6,0x5c,0x74,0xb5,0x07,0x49,0x16,0x32,0xad,0x81,0xc0,0x9a,0x54,0x71,0xae,0xe8,0x7c,0xa1,0x58,0x03,0x5d,0x66,0x79,0x47,0x83,0x5e,0xa8,0xbf},
+       { 0x61,0x65,0xfd,0x7a,0x3d,0xcb,0x29,0xad,0x23,0xcc,0x44,0x64,0x4f,0xc2,0x23,0x25,0x94,0x5d,0xdf,0xed,0x0c,0x18,0xb3,0x5b,0x17,0x43,0xad,0x96,0x28,0x43,0x69,0xbe},
+       { 0x61,0x91,0x5b,0xc8,0xdf,0x67,0x8c,0x52,0xa2,0x3c,0x2d,0x53,0xc6,0x47,0x31,0x4e,0x63,0x6e,0xef,0xc5,0x40,0x81,0xa7,0x0d,0x3a,0xc1,0x45,0x28,0x66,0x1d,0x62,0xff},
+       { 0x61,0xc8,0xf2,0xe2,0x97,0xd0,0x51,0x91,0x32,0x07,0xef,0x02,0x93,0x63,0xb8,0xe7,0x33,0x7a,0x39,0x6e,0x09,0x9c,0xa9,0xdc,0xf8,0x07,0x33,0x97,0x32,0x66,0x4b,0x74},
+       { 0x62,0x2e,0xc3,0xbe,0x7c,0xf5,0xe4,0xe6,0x3f,0x74,0x18,0x69,0x28,0x74,0x40,0x05,0xcb,0xb7,0x8d,0xf3,0x06,0xb8,0x67,0xc3,0xfc,0xad,0x5e,0x2b,0xa7,0x53,0x96,0x83},
+       { 0x62,0x61,0x3d,0xa8,0x69,0xe5,0xa2,0x36,0xc1,0x29,0x21,0x73,0x87,0x25,0xe9,0x7c,0x68,0x05,0x8d,0x04,0x0a,0x07,0xe9,0x65,0x4b,0x2d,0xf5,0xe2,0xd8,0x7d,0x05,0x1f},
+       { 0x62,0x6f,0x7e,0xb4,0xfd,0x9b,0x71,0xff,0xaa,0x0c,0x8e,0xc9,0x65,0x54,0x64,0xe6,0x5e,0x7f,0x96,0xcf,0xa3,0x82,0x73,0x97,0x41,0x35,0x66,0xaa,0x2c,0xc1,0xe5,0x72},
+       { 0x63,0x35,0x8c,0x6d,0xeb,0xdf,0x48,0x2b,0xb2,0xd3,0x21,0x13,0xd3,0xf0,0xb1,0x73,0x77,0xe2,0xf7,0xc9,0x25,0xb9,0xfe,0xb3,0x47,0x8b,0xd9,0x94,0x56,0x31,0x3e,0x78},
+       { 0x63,0x64,0x15,0x61,0x77,0xdc,0xdf,0x60,0x4d,0xf9,0x1e,0x31,0x32,0x2e,0x57,0x74,0x69,0x1e,0x0c,0x41,0xfa,0x0d,0x2f,0x25,0x7a,0xd7,0xf9,0xf0,0x25,0x98,0x14,0x45},
+       { 0x63,0x65,0xeb,0x4e,0x37,0xea,0x23,0x8b,0xbc,0x40,0xa7,0x65,0x1e,0xdd,0x9a,0x1c,0x65,0xfc,0x54,0xe3,0xb8,0x8f,0xa7,0xa0,0x6d,0x92,0xc6,0x13,0xae,0xde,0xd6,0x5d},
+       { 0x63,0x6a,0x25,0xbd,0xdb,0xb6,0x5e,0x7c,0xc0,0xe6,0x1f,0x91,0xca,0xfe,0xb1,0xfe,0x5d,0xd2,0x67,0xac,0x67,0x32,0x25,0xcc,0x81,0x8e,0xa0,0x2b,0x9c,0xc9,0x4b,0xe2},
+       { 0x63,0xea,0x63,0x4f,0x3c,0x84,0x62,0x3c,0xf7,0xb0,0x61,0x29,0xe2,0x7a,0xcd,0xf2,0x13,0xd2,0x52,0xbe,0x85,0x87,0xeb,0xb0,0x7a,0x63,0x68,0x07,0x78,0x2b,0xbd,0x61},
+       { 0x64,0x87,0xc9,0x20,0xb1,0x30,0x16,0xf4,0xa0,0xaa,0xd3,0x9f,0xe1,0x97,0x8b,0xec,0xe9,0xf4,0xfa,0x13,0xed,0x0c,0x42,0x4d,0xaa,0x41,0x6b,0xaa,0x75,0x89,0x62,0x01},
+       { 0x64,0xd4,0x92,0x41,0x6e,0xe0,0x55,0x57,0x9c,0x46,0x3b,0x21,0x1a,0xfe,0xf7,0x46,0xc3,0x30,0xca,0x05,0xf4,0x4d,0x85,0x90,0x85,0x59,0x5d,0x6f,0x10,0xe5,0x0e,0xc4},
+       { 0x64,0xde,0xb1,0x36,0xa4,0x3e,0x7d,0x21,0x62,0x29,0x9b,0x82,0xa4,0xfe,0x8d,0xb9,0x60,0xc6,0x61,0x7c,0x60,0x3b,0x7d,0x96,0x72,0xa6,0x2c,0xa1,0x40,0xa6,0xda,0x6a},
+       { 0x65,0x66,0x00,0xa4,0x5e,0x45,0x6a,0xba,0x5b,0x00,0x8d,0x87,0x91,0x54,0xb7,0x69,0x0d,0x7f,0x27,0x31,0x02,0x09,0x7d,0x8f,0xd8,0xc3,0xde,0xab,0x30,0xd8,0x4a,0xb2},
+       { 0x65,0xc1,0x3a,0x93,0x7f,0xcd,0x1e,0xac,0x7d,0x52,0x33,0x03,0xb9,0x09,0x91,0x75,0xfe,0xb7,0xc3,0x57,0x0f,0xbd,0xa2,0xe5,0x7d,0x57,0xd3,0xfc,0x47,0x24,0xdc,0xb5},
+       { 0x65,0xeb,0x8a,0x1c,0x57,0x67,0x6d,0x21,0x53,0xf2,0x1a,0x34,0x11,0xb8,0x9c,0xcd,0x71,0xbc,0xc8,0xc9,0xdc,0x2c,0xc6,0x1f,0x83,0x65,0x27,0xe0,0x81,0xc0,0x56,0x72},
+       { 0x65,0xed,0x61,0xa8,0x8c,0x55,0xef,0xb0,0x38,0x07,0x1a,0xee,0xde,0xf8,0xe1,0x83,0xe2,0x37,0x38,0x46,0x97,0x26,0xeb,0x99,0x68,0x0c,0xd2,0x44,0x72,0x73,0x6b,0xec},
+       { 0x66,0x07,0xdf,0xff,0x5d,0x0b,0xd3,0xc9,0x75,0x92,0xcc,0x75,0x39,0x4d,0x8b,0x58,0x59,0xf7,0x5d,0xa5,0x12,0x31,0x34,0xd7,0xc7,0xe2,0x1a,0xa7,0x48,0x91,0x84,0xeb},
+       { 0x66,0x30,0xb4,0x4a,0x1a,0x28,0xde,0xcb,0x3b,0x58,0xed,0xce,0xec,0x13,0xb2,0xc5,0xa7,0x4f,0x38,0x6a,0x1b,0xf1,0x18,0x73,0x75,0xde,0x17,0x8e,0x4e,0x9b,0xb2,0x8e},
+       { 0x66,0x49,0xe0,0x34,0xc6,0x9d,0x14,0x24,0xd2,0x8c,0x42,0x68,0xba,0x95,0x1e,0xe1,0xb4,0x8a,0xe1,0x5f,0xeb,0xe7,0xd6,0xbe,0x9d,0x75,0xf6,0xa4,0xac,0x7a,0xc2,0x53},
+       { 0x66,0x50,0xb2,0xea,0x64,0x4c,0x3f,0x4e,0x8c,0x9e,0x3c,0x46,0xac,0xea,0xc4,0x52,0x33,0xd8,0x66,0xe3,0x98,0xff,0x90,0xeb,0x59,0xb2,0xc6,0x25,0x20,0x82,0xac,0x04},
+       { 0x66,0x72,0x1f,0xe0,0x69,0xf1,0xaa,0x25,0x32,0x11,0x68,0x0e,0xad,0x5c,0x9e,0x3d,0x12,0x3c,0x21,0x24,0xd3,0xa2,0xa4,0xbd,0x78,0x82,0xf7,0x36,0x5a,0x33,0x05,0xa3},
+       { 0x66,0x79,0x28,0x7e,0xbb,0xc5,0x67,0x48,0xee,0xd6,0x8f,0x9e,0x4c,0xcf,0x24,0xef,0x96,0xa4,0x1f,0x73,0xbb,0x83,0x4a,0x51,0x71,0x64,0xf0,0x41,0xcc,0x5d,0x86,0x05},
+       { 0x66,0xbe,0x7e,0xa1,0x13,0x8b,0xcb,0xa4,0xde,0x0b,0x41,0x28,0x5d,0x9a,0x13,0x3f,0xa7,0xf5,0x70,0xa3,0xc8,0x13,0x55,0x79,0xb8,0x60,0x19,0x9d,0x0a,0x51,0x45,0x7c},
+       { 0x66,0xc9,0x9a,0x49,0x61,0x2e,0x60,0x18,0x90,0x02,0xe2,0x03,0x04,0xd2,0xfc,0xc5,0xbe,0x07,0x59,0xdf,0xba,0x84,0x04,0x70,0x7e,0x85,0x37,0x00,0x26,0x51,0x84,0x85},
+       { 0x67,0xa1,0xbd,0x09,0x91,0x6a,0x22,0xc0,0x53,0x3d,0x0b,0xf6,0xca,0x1f,0x3b,0x03,0x3f,0xad,0xca,0xc1,0xff,0x8a,0x89,0x94,0xd7,0xf5,0xc4,0x79,0xad,0x3a,0x2e,0xf5},
+       { 0x67,0xcf,0x34,0x6c,0xf2,0x46,0x77,0x1b,0x3f,0x5f,0x3e,0x51,0xcd,0x75,0x4e,0x10,0x93,0x27,0x3d,0x35,0x69,0x88,0x80,0x84,0x26,0xf5,0xdd,0x2e,0xd4,0x8b,0xbf,0x49},
+       { 0x68,0x6e,0xa9,0xa7,0x73,0x2c,0x5a,0x6e,0xdc,0xa8,0x44,0xa6,0x1f,0x9d,0xfd,0x05,0xac,0x2f,0x80,0xf6,0xc7,0xed,0x5e,0xdf,0x19,0x9b,0x8b,0xd2,0x78,0x5d,0x92,0xfc},
+       { 0x68,0x99,0x4c,0xfe,0x06,0x8d,0xe8,0x75,0xec,0x56,0x82,0xbe,0x3c,0x5c,0xb3,0x25,0x47,0x3b,0x21,0x25,0xe6,0xf1,0xf3,0xea,0x57,0xcc,0x09,0xfe,0x25,0xb5,0xb6,0x93},
+       { 0x68,0xd3,0x49,0x5b,0x3c,0xae,0xe4,0x1a,0x70,0x9a,0x41,0x65,0xd4,0x9d,0xfe,0xe7,0x4d,0xcf,0xb6,0xd1,0x3f,0x7c,0xf9,0x43,0xaa,0xff,0xb9,0xe6,0xdc,0x81,0xdb,0x04},
+       { 0x69,0x01,0x4b,0xbc,0x84,0x29,0xd8,0x5f,0x41,0xc2,0x22,0xd9,0x7f,0x7e,0xd5,0x35,0xcf,0x81,0x23,0x9a,0xf2,0x7a,0xcc,0x88,0x70,0xdc,0xd4,0x08,0x34,0x8b,0x48,0xba},
+       { 0x69,0x21,0x1f,0x36,0x3a,0x2d,0xbe,0x01,0x5b,0x31,0xcb,0xd9,0xfc,0x5e,0x94,0xc2,0xf6,0xf4,0x3c,0x58,0xdb,0xde,0xe9,0xe3,0xe4,0x6b,0x19,0xd7,0x59,0xbb,0xb8,0x81},
+       { 0x69,0x44,0xfe,0x2e,0xfd,0x6c,0x78,0xe1,0x40,0x74,0xbc,0x3d,0x9a,0xc2,0x3c,0x8a,0x65,0x7d,0x0e,0x8e,0xbd,0xf7,0x4e,0xc2,0xcd,0x26,0x67,0x74,0x9d,0x9d,0xad,0xcb},
+       { 0x69,0x52,0x89,0x99,0x34,0xd7,0x23,0x2b,0xf9,0xf6,0x96,0x8b,0xca,0x13,0x43,0x92,0x47,0xbf,0xc3,0x65,0x92,0x98,0x00,0x3d,0xb1,0xee,0xb7,0x43,0x92,0x81,0xb1,0xd6},
+       { 0x69,0x54,0x0e,0x3b,0xab,0x9a,0x6e,0x46,0x58,0x62,0xcf,0x2b,0xca,0x5a,0x63,0x62,0x55,0xf6,0x9d,0x46,0x26,0x39,0xd3,0xd9,0x23,0xff,0x93,0x91,0x90,0x1b,0x6c,0x92},
+       { 0x69,0x5d,0xbc,0x95,0x9c,0x38,0x8d,0x6f,0x30,0xdd,0x9a,0xd5,0x2e,0x54,0x02,0x94,0x7d,0x34,0x5d,0x19,0x40,0x8b,0xd1,0xd3,0xde,0x1c,0xf5,0x9a,0x6f,0x97,0x1f,0xa9},
+       { 0x69,0x75,0x67,0xbb,0xac,0x94,0xee,0xc3,0xe6,0xfa,0x4a,0x4e,0x46,0xfa,0x51,0x74,0x05,0xf3,0x77,0xc0,0xde,0xe3,0xd4,0x29,0x91,0x4e,0x6b,0x7e,0xa0,0x8c,0xb1,0xa6},
+       { 0x69,0xd3,0x38,0xe5,0xd8,0xc0,0x69,0xe7,0xdc,0x10,0xd3,0x82,0x1f,0x7a,0x83,0x0d,0xeb,0x5d,0x95,0x7c,0x8e,0xc6,0xec,0xd2,0x5a,0xf7,0x24,0x3e,0xd0,0xe4,0xdc,0x26},
+       { 0x6a,0x9c,0x89,0x45,0x1e,0xf3,0xc9,0xe3,0xa2,0x96,0x2f,0x8d,0xb6,0xf8,0x7d,0x20,0x77,0x8d,0x05,0xa8,0x74,0x34,0xa0,0x78,0x2b,0x02,0x53,0x6d,0xcd,0x02,0x4b,0x4b},
+       { 0x6a,0xac,0xc5,0x09,0x2f,0x12,0xbc,0x94,0xa0,0xad,0x0e,0x9e,0xf6,0x36,0x43,0x7d,0x36,0x0d,0xc7,0xc9,0xf1,0x40,0x44,0x17,0xa3,0x36,0x91,0x94,0x4e,0x76,0x31,0x36},
+       { 0x6a,0xc3,0x2d,0xa9,0x16,0x8f,0x70,0xd0,0x9f,0xe9,0xf7,0x55,0x3e,0x67,0x0f,0xa4,0xaa,0xac,0xe8,0x7b,0x5a,0x0b,0x9a,0x3f,0x22,0x2d,0x7a,0x8b,0xba,0x76,0xd2,0xf2},
+       { 0x6a,0xe7,0x98,0xd7,0xde,0x07,0x84,0x90,0xa5,0x0f,0x73,0x89,0x86,0xd4,0x03,0x39,0x42,0x97,0x9d,0xe2,0x42,0x6a,0xfa,0x95,0x42,0x24,0x2e,0x76,0x3f,0xec,0xf4,0xa6},
+       { 0x6b,0x15,0x66,0xbf,0x94,0xa2,0x26,0xee,0x7c,0xf3,0x67,0x5d,0x63,0x92,0x73,0x16,0x54,0x56,0x4b,0x05,0xc7,0x2f,0xcd,0x7f,0x6a,0x97,0xba,0xa1,0x53,0xe7,0x6a,0x18},
+       { 0x6b,0x37,0xdd,0x56,0xdb,0xc9,0x97,0x01,0xee,0x6b,0x55,0x75,0x23,0x8b,0x1e,0xcf,0x35,0xdf,0x1b,0x5e,0x85,0x91,0x09,0x1d,0xb6,0x8c,0xc3,0x5b,0xd5,0xa3,0x6c,0xe4},
+       { 0x6b,0x4a,0x8c,0xb6,0x07,0xf5,0x1c,0x83,0x0d,0xe7,0x20,0xf4,0xbb,0xde,0xdf,0x49,0x10,0x15,0x13,0xdf,0xd1,0xdb,0x0b,0x0a,0x97,0xcc,0x3f,0xdd,0x9a,0x39,0xc6,0xe7},
+       { 0x6c,0x07,0x12,0x67,0x53,0x03,0x6a,0x21,0xbd,0x20,0xfc,0x64,0xec,0x6b,0xa6,0xe7,0x32,0x59,0x19,0x1c,0xbb,0xbb,0xff,0x21,0x03,0x74,0xc8,0x9e,0x64,0xf4,0xd8,0xd6},
+       { 0x6c,0x21,0xdc,0xb3,0x38,0x5c,0x2b,0x75,0xa1,0x5b,0x2f,0x61,0x22,0xfb,0x58,0xa1,0x24,0x86,0xaa,0x4a,0x4d,0x23,0x9e,0xd0,0x16,0x74,0x35,0x8c,0x9c,0x71,0x48,0x6d},
+       { 0x6c,0x67,0xe6,0x03,0x63,0x52,0x5a,0x65,0x0a,0x86,0xb5,0xe9,0x46,0x09,0xde,0x13,0xf6,0xbd,0xb9,0x0e,0xcc,0x2b,0xb2,0xa1,0x8f,0xda,0x99,0x59,0x52,0x3a,0x18,0xd9},
+       { 0x6c,0x72,0x94,0x87,0xc9,0x02,0x5d,0x18,0x10,0x51,0x29,0xfa,0x0b,0xa2,0x94,0x4d,0xa8,0x6a,0xf1,0xdb,0x2d,0x03,0x4b,0xe2,0xbb,0x73,0x64,0x50,0x0c,0x05,0xa6,0xde},
+       { 0x6c,0x8d,0x4e,0x52,0x7e,0x74,0x08,0x82,0x6d,0xb8,0x4d,0x04,0x1a,0x0e,0x29,0xd6,0xde,0x13,0xa6,0x1e,0x63,0x6b,0xf6,0xb6,0xf5,0xf6,0x75,0x42,0x7a,0xce,0xce,0x9e},
+       { 0x6c,0x8f,0xd1,0xe6,0xe1,0x1b,0xaf,0xa6,0x17,0x78,0x13,0xa0,0x44,0x40,0xb1,0xb9,0x6a,0x1c,0xdb,0x7c,0x2d,0x70,0x3f,0x55,0xde,0x85,0x7c,0x80,0xa8,0x9e,0x73,0x25},
+       { 0x6c,0xc6,0xdc,0xda,0x58,0xc6,0x1f,0xb2,0x86,0x70,0xd1,0xc2,0x01,0x76,0x57,0xb0,0xc5,0xd6,0x1a,0x26,0xc9,0xcb,0xd1,0xea,0x75,0x5c,0x68,0x20,0xb5,0xf6,0xd6,0x7d},
+       { 0x6c,0xc8,0x0f,0x47,0x96,0x4e,0x0d,0xcb,0x39,0xe4,0xd0,0x1b,0x3b,0x3e,0xbc,0x8b,0x9c,0x77,0xb4,0x08,0x59,0xbb,0x5d,0x5c,0x31,0x27,0x4d,0xa5,0x39,0xfa,0xca,0x8d},
+       { 0x6d,0x32,0xf4,0x93,0x40,0x56,0xee,0x17,0x14,0xca,0x72,0x70,0x3f,0x64,0x46,0x9b,0x98,0x58,0xfc,0x39,0x96,0x4b,0x4c,0x03,0x93,0xb3,0x7d,0xde,0xab,0x8b,0x19,0x75},
+       { 0x6d,0x4e,0xd4,0x29,0x38,0x15,0x90,0xbd,0x3c,0x6b,0x7c,0xb7,0xe4,0xe4,0x25,0xc8,0xe2,0x1f,0x79,0xff,0x4d,0x40,0x00,0xb9,0x65,0x3f,0xa1,0x27,0xe1,0x41,0xd3,0x50},
+       { 0x6d,0x4e,0xe5,0x3b,0xf9,0x9f,0xfa,0xbb,0x1c,0x9b,0x77,0x96,0x66,0xef,0xc4,0x5e,0x6a,0xb3,0xfa,0x74,0xab,0x37,0x30,0x9f,0x8c,0xde,0xf7,0x2c,0x94,0x39,0x23,0xee},
+       { 0x6d,0x84,0x0b,0xbb,0xa9,0x3f,0x53,0x9b,0xe0,0x84,0x9d,0x26,0xd5,0x27,0x7b,0xd7,0xf2,0x4b,0xba,0x93,0x5e,0x05,0x0d,0x11,0x26,0xd7,0x78,0x22,0xb5,0x90,0x26,0x83},
+       { 0x6d,0xc9,0x87,0x5c,0xd3,0x46,0xa2,0x2b,0x47,0xb2,0x80,0xb1,0xb1,0x45,0x0d,0x87,0x8e,0x09,0x8b,0xb2,0xe2,0xa9,0xe3,0xc2,0x5c,0xc7,0x6a,0xff,0x93,0xc0,0xbe,0xab},
+       { 0x6e,0x0c,0x0b,0x5d,0x7b,0x82,0x23,0x21,0x87,0x41,0xe6,0x7b,0x87,0x6c,0xcb,0x8c,0xb5,0x81,0x11,0x48,0x82,0x87,0xda,0x8c,0x30,0x64,0xe8,0x2e,0xcc,0xc2,0x70,0x12},
+       { 0x6e,0x16,0x35,0x9e,0x05,0xeb,0x14,0xec,0x86,0xee,0xe5,0x9d,0x01,0x0c,0xd6,0x4f,0x1d,0x1b,0x4b,0xa1,0xef,0x46,0xa2,0x0f,0x35,0xc6,0xa6,0x3d,0xc5,0x3a,0x2a,0xcb},
+       { 0x6e,0x1a,0x88,0x63,0xf2,0x93,0x4b,0x39,0x01,0x23,0x7e,0x84,0xd0,0x76,0x27,0x04,0x23,0x06,0x78,0x7f,0x2d,0xe0,0x66,0x30,0xbd,0x37,0xd8,0x03,0x94,0x35,0xbf,0xca},
+       { 0x6e,0x1c,0xb1,0x2a,0x08,0x3c,0x89,0x08,0xfb,0x06,0x04,0x56,0xee,0xe8,0x74,0xed,0xd9,0xfa,0x71,0x3f,0x26,0x95,0xee,0x5e,0xe8,0x59,0x84,0x83,0xe3,0x02,0x8f,0x0b},
+       { 0x6e,0x8d,0x55,0xee,0x2f,0x72,0x5a,0x0b,0xa5,0xdf,0x43,0x43,0xa0,0x6f,0xd3,0x71,0x54,0x25,0x6b,0xcf,0xf7,0xce,0xe0,0xb7,0x00,0xac,0xdd,0x91,0x56,0x49,0x79,0x99},
+       { 0x6e,0x99,0x8d,0xdd,0xf2,0x93,0x9b,0xfe,0x8c,0xc5,0x2a,0x48,0x0a,0xc0,0x6d,0x69,0x71,0xc5,0xa3,0xda,0x97,0xcf,0x3e,0xf0,0x1a,0xf2,0x9d,0x74,0x72,0x62,0x31,0xe2},
+       { 0x6e,0xb8,0xa7,0xba,0x7f,0xc2,0x1c,0x62,0x40,0x3f,0x63,0x76,0xbb,0x10,0x44,0x82,0x48,0x8d,0xa9,0xc1,0x41,0x4a,0xe3,0xab,0x06,0xe0,0x1e,0xd7,0x32,0x42,0xab,0xd7},
+       { 0x6e,0xeb,0x39,0xda,0xd7,0x3f,0xc5,0x99,0x72,0x42,0x17,0xcf,0xf0,0x21,0xd5,0xac,0x4e,0x7e,0x2b,0xf4,0x76,0xea,0xf4,0xfd,0x4d,0x7b,0xfb,0x6e,0x4f,0x18,0xc1,0x73},
+       { 0x6f,0x1c,0x4a,0x29,0x79,0xfc,0xbe,0xad,0xc5,0xd5,0x80,0xe5,0xbf,0xdb,0xf8,0x4c,0xc6,0xa0,0xf2,0xa9,0x2e,0xb1,0xc6,0x88,0xd5,0x31,0x3a,0x0f,0xda,0xcf,0x0b,0x56},
+       { 0x6f,0x3b,0xb3,0x4b,0x5d,0x32,0x91,0xdf,0xb3,0xe4,0x12,0x71,0xa1,0xd7,0x30,0xcd,0xbc,0xff,0xc1,0x0b,0x68,0x05,0x9d,0xcc,0xd3,0x1c,0x47,0x4b,0xb7,0x44,0x16,0xe5},
+       { 0x6f,0x7e,0x99,0xb2,0x6c,0xf2,0x57,0x61,0xca,0x87,0xd7,0x0e,0xb1,0xdd,0x32,0xcd,0x0d,0x2b,0xd1,0xfe,0x7f,0x62,0x2e,0xf6,0x47,0x18,0x9c,0xeb,0x91,0x43,0x8d,0x99},
+       { 0x6f,0x92,0x7b,0x13,0xe5,0x9c,0xa9,0x87,0x61,0x82,0x07,0xaf,0xed,0xe2,0xe8,0xe1,0xd9,0xc3,0x03,0xe1,0xf1,0x2f,0x19,0x2d,0xf3,0xf7,0x0e,0x5d,0x1d,0x4d,0x2c,0x18},
+       { 0x6f,0x95,0xdb,0x28,0x26,0x61,0x3c,0xa6,0x12,0x0d,0x81,0x15,0xfb,0xa3,0xdd,0x0a,0x2a,0x22,0x31,0x2d,0x74,0x88,0xbf,0x77,0x0f,0x9c,0x57,0x96,0xc9,0x02,0xbc,0xc3},
+       { 0x6f,0xb0,0x06,0xb4,0x5f,0x4a,0xb6,0xf5,0x28,0x12,0xbd,0x1f,0x9d,0x8c,0xf1,0x0e,0x2b,0x4c,0x8c,0xe5,0x2a,0x4d,0xf6,0x56,0x84,0xf3,0x08,0x48,0x1c,0xee,0xc8,0x93},
+       { 0x6f,0xbd,0xcd,0xf1,0xb4,0x37,0x9f,0xc4,0x73,0xab,0x5e,0xea,0x4e,0xc2,0xf4,0x84,0xce,0x91,0xd1,0x0e,0x31,0x34,0x5f,0x15,0xa7,0x6a,0x84,0x85,0xb8,0xff,0xfb,0x7e},
+       { 0x6f,0xdc,0x18,0xd6,0x55,0x14,0xdd,0xce,0xf0,0x2f,0xea,0x81,0x7a,0x1b,0x70,0x84,0x71,0x95,0xff,0x5c,0x07,0xb1,0x3d,0x6a,0x97,0x1e,0x0e,0x77,0x4b,0x44,0x10,0xa0},
+       { 0x70,0x52,0x66,0xdd,0xb9,0x0a,0xb6,0xb4,0x65,0x36,0xf2,0xf8,0x7e,0xf7,0x6f,0x91,0xaf,0x4e,0x46,0xee,0x7a,0x39,0xc2,0xc4,0x7d,0x12,0xde,0x82,0xc7,0xa6,0x56,0x84},
+       { 0x70,0xb8,0xec,0xd5,0x62,0xec,0x3d,0x9f,0x48,0x64,0x75,0x2a,0x3a,0x8c,0x54,0x39,0x93,0xb4,0x38,0x72,0x8f,0xe2,0x71,0x81,0xf4,0xc0,0x8d,0xe6,0xa0,0xd8,0xb7,0x9a},
+       { 0x70,0xe0,0xb7,0xf5,0xc7,0xa3,0xd1,0xf3,0x96,0x85,0x84,0x5d,0x94,0xfc,0x9e,0x77,0x7c,0x12,0x69,0xcf,0x15,0x31,0x68,0x51,0x98,0x3d,0x60,0x58,0x76,0x1c,0xf0,0x63},
+       { 0x70,0xed,0x64,0x0c,0xbc,0xe7,0x84,0xa6,0x8e,0xcd,0xd6,0x32,0x0b,0x61,0x3c,0x88,0x42,0xe6,0xd7,0x09,0xbd,0x96,0xf1,0xd2,0x43,0xe4,0xb2,0x1e,0xed,0x8b,0x12,0x8c},
+       { 0x71,0x1e,0xf0,0x96,0x33,0x43,0x8a,0xc5,0xbe,0x9d,0xa8,0x12,0x2e,0x7a,0xcf,0x0e,0xa2,0x68,0xb8,0x72,0xad,0xdc,0x3e,0xe8,0x37,0x2b,0x91,0x6d,0x60,0x65,0xcf,0xa8},
+       { 0x71,0xcf,0x8d,0x5c,0x16,0xf0,0xdf,0x67,0xd2,0x3f,0x67,0x06,0xae,0xb9,0x7c,0x8e,0xae,0x2c,0xaf,0xc6,0xbe,0xc9,0x4a,0x4d,0xb2,0x40,0x5a,0x37,0xff,0x30,0x92,0x5f},
+       { 0x72,0x1b,0x1f,0x92,0x9d,0xa7,0xea,0xf8,0x96,0x24,0x64,0x7b,0xa3,0xcc,0x4e,0x1e,0xd1,0x57,0x54,0xab,0x83,0x6e,0x33,0x58,0xb0,0x35,0xa1,0xf2,0x27,0x4a,0x43,0xbe},
+       { 0x72,0x81,0xda,0x0d,0x8c,0xe9,0xd5,0x3e,0xa3,0xd1,0xf5,0x93,0x5c,0x58,0x21,0xea,0x8d,0x9a,0xf1,0xce,0x0b,0xca,0xf8,0x82,0x5d,0x78,0x3f,0x37,0xea,0xc3,0x4f,0x40},
+       { 0x72,0xaa,0x1a,0xf2,0x9a,0xb0,0x96,0x5b,0x34,0x57,0x14,0x79,0x84,0x9b,0x84,0x74,0xb8,0x81,0x80,0xe2,0x1b,0x98,0x58,0x92,0x9b,0xd6,0x3e,0x30,0x91,0x9c,0xfc,0xd9},
+       { 0x72,0xb6,0x11,0x01,0x0e,0xa4,0x7d,0x3d,0x1e,0x24,0x53,0xd7,0x9d,0x19,0x03,0x15,0x53,0x4e,0x55,0x31,0x2a,0x7e,0xbc,0xaa,0xb0,0xe5,0x5f,0xf0,0x03,0x41,0xd7,0x14},
+       { 0x72,0xe7,0x49,0x87,0x21,0x0c,0x7e,0xf6,0x67,0x46,0xe4,0x9a,0x96,0xdf,0x55,0xcc,0x6f,0xad,0xf7,0xa6,0x31,0xc7,0xae,0x3f,0x3e,0x9e,0x18,0x72,0x3d,0xe5,0x2a,0x6e},
+       { 0x73,0x06,0x2e,0xfc,0x20,0xb4,0x17,0xf7,0x4c,0xd1,0xa4,0xe6,0xa6,0x36,0x9f,0x97,0x18,0x86,0x94,0xff,0x9d,0xce,0xff,0x1f,0x5e,0x4c,0x11,0x99,0x74,0x44,0x6a,0x3f},
+       { 0x73,0x29,0x62,0x43,0xc0,0xdd,0x61,0xb1,0x7f,0x5c,0x58,0x89,0x4c,0x31,0x3e,0xf7,0xa8,0x48,0xae,0xe3,0x1b,0x08,0x96,0xe0,0xb3,0xe1,0x51,0x7f,0x6e,0x6d,0x9f,0x2f},
+       { 0x73,0x3b,0x42,0x24,0x25,0x8d,0xee,0x07,0x0e,0xdf,0xa3,0x41,0x1f,0xbc,0x9b,0xad,0x31,0x65,0xbe,0x66,0x0f,0x34,0x0a,0xa2,0x30,0x8a,0x5a,0x33,0x23,0xfa,0xbf,0xa7},
+       { 0x73,0x46,0x99,0x89,0x4a,0xd4,0xb5,0xa8,0xa2,0xdd,0x9a,0xb4,0xfd,0x5f,0x63,0x25,0x30,0x3b,0x49,0x16,0x4c,0xa8,0xd8,0xe7,0xba,0x99,0x77,0x81,0x7e,0x4a,0xe2,0x4f},
+       { 0x73,0x9d,0x17,0x23,0x23,0xf2,0xb2,0x84,0x07,0x0a,0xce,0x43,0x09,0x8c,0x8b,0x21,0xc4,0x7a,0x53,0xf9,0x98,0x5f,0x2f,0xad,0x5f,0x8b,0x2e,0xb7,0x03,0x4f,0xdb,0x21},
+       { 0x73,0xb4,0x34,0x22,0x97,0x6d,0xae,0x7f,0x98,0x1e,0xe5,0x0a,0xd7,0x5b,0xe2,0x3a,0x41,0xff,0x77,0x09,0xa7,0x25,0x2a,0x4d,0x15,0x98,0x52,0x5f,0x9d,0x88,0x22,0x97},
+       { 0x73,0xbf,0x46,0xa8,0x4b,0x39,0x94,0xc7,0x08,0xa8,0x2c,0xd7,0xc5,0xb7,0xaf,0xfc,0xf9,0x09,0xf9,0x6f,0x16,0x8e,0x8d,0xd1,0xbd,0x1a,0xdb,0xc7,0x15,0x99,0xec,0xaa},
+       { 0x74,0x2f,0xcf,0x73,0x56,0x51,0xce,0xb1,0x84,0x3c,0xe3,0xd6,0x56,0x72,0x34,0x68,0xab,0x22,0x85,0x6c,0x6a,0x80,0x56,0xb9,0x1c,0x75,0xc5,0x8a,0x67,0xec,0xa8,0xbe},
+       { 0x74,0x54,0x0f,0xa5,0x0a,0x36,0x2e,0x68,0x6d,0x99,0x17,0x98,0x18,0x35,0x09,0x83,0x6c,0x95,0xa3,0xfb,0x04,0x58,0x00,0x22,0xf9,0x68,0x58,0x4f,0x8a,0xcf,0x60,0x1f},
+       { 0x74,0x8d,0x42,0x49,0x6d,0xa9,0x25,0x45,0x90,0x54,0xe1,0x3e,0x38,0xec,0x9f,0x8e,0x6c,0x5f,0x97,0x29,0x7a,0xb3,0xa0,0x14,0x58,0x99,0x85,0x26,0xb0,0xfd,0x3a,0xed},
+       { 0x74,0x8e,0xbb,0x72,0xd1,0x02,0x04,0xf4,0x04,0x10,0xbe,0x70,0x80,0xbf,0xe7,0xee,0x63,0x1f,0xc0,0x4d,0x1f,0xdb,0x50,0x72,0x04,0x4b,0xfa,0x55,0x7a,0xdf,0x6e,0x5a},
+       { 0x74,0xa9,0x27,0xe7,0xb2,0xf1,0xf6,0x48,0x3d,0xc2,0x59,0x21,0xab,0xbe,0x2f,0x97,0x74,0xa2,0x0c,0xb8,0x96,0xba,0xb5,0x64,0x8c,0x2a,0xb0,0xf9,0xdb,0xda,0x3d,0xa6},
+       { 0x74,0xe2,0xcc,0xcf,0x62,0xd5,0xb9,0xf9,0x00,0xb4,0x14,0x73,0xca,0x44,0xe6,0x87,0x96,0x38,0x74,0x3d,0x8f,0xee,0x66,0xee,0x71,0x8c,0x18,0xd8,0xf1,0x12,0x15,0xd1},
+       { 0x75,0x83,0x10,0x84,0x6a,0xd5,0x74,0x05,0x71,0x1a,0xdc,0x4a,0x1a,0xf0,0xec,0x51,0x8f,0x82,0x2d,0x1a,0x6c,0xa9,0x1e,0xc2,0x51,0xf1,0x22,0xd4,0x10,0x6f,0x99,0xd9},
+       { 0x75,0x86,0x5a,0xa6,0xfc,0x45,0x8e,0x5a,0x7b,0x63,0x04,0x07,0x07,0x4f,0x43,0x11,0x1d,0xd9,0x21,0x24,0xb7,0x7c,0xe4,0x02,0x6d,0x82,0x41,0xcf,0x23,0x71,0xd9,0xcc},
+       { 0x75,0xbb,0x15,0x25,0x09,0xb7,0x19,0x04,0xe4,0x40,0x0f,0xb4,0x23,0xa5,0x80,0xaa,0xe1,0xdd,0xb7,0x68,0xf6,0xfd,0x36,0xe6,0x30,0x94,0xeb,0xe3,0x92,0x15,0xf3,0x90},
+       { 0x75,0xc1,0x6d,0x87,0x10,0x9a,0x9d,0x86,0xe3,0x90,0x2e,0xe1,0xe0,0x7b,0xe1,0x13,0xb4,0x15,0x53,0x0d,0xc7,0x3f,0x7f,0x7f,0x1d,0x7f,0xe0,0xdb,0x7b,0x02,0x50,0x30},
+       { 0x75,0xe9,0xa1,0x5d,0x94,0x88,0x0c,0x66,0x14,0x82,0xcf,0xc1,0x96,0x4c,0xbc,0xe2,0xb1,0xca,0x7a,0x9f,0x81,0xd4,0x07,0x30,0x12,0x47,0x1f,0x27,0x23,0xcb,0x72,0x8a},
+       { 0x76,0x73,0x18,0x0f,0x9d,0x9a,0x85,0x48,0x4b,0x5c,0x16,0x99,0xa2,0xdc,0x17,0xfc,0x61,0x13,0xa3,0xed,0x5b,0xc9,0xc0,0x55,0x8c,0xb8,0x2d,0xff,0x9e,0x50,0x32,0x09},
+       { 0x76,0x98,0x67,0x60,0xac,0xfe,0x55,0x59,0xa2,0xa2,0xab,0x2a,0x4e,0x85,0x49,0x83,0xc5,0xfd,0xe6,0x73,0xce,0x8e,0xb1,0x71,0x23,0x49,0x48,0x64,0x86,0x7a,0x98,0xb1},
+       { 0x76,0xbc,0x5d,0x17,0xfe,0x9f,0x0e,0x89,0x7e,0x4d,0xdb,0x87,0xd5,0xb8,0xdd,0x2e,0xb2,0xac,0x82,0xf6,0xa3,0x11,0x06,0xed,0xfd,0x67,0xdd,0xcd,0xe6,0xa4,0x3f,0x17},
+       { 0x76,0xca,0x72,0xcc,0x37,0xab,0x2a,0xa3,0x83,0x98,0x71,0x0f,0x02,0x20,0xfa,0xf3,0x30,0x1d,0x54,0x49,0x38,0xfb,0x24,0x19,0x2d,0xec,0x32,0xf7,0x44,0xe4,0x22,0x10},
+       { 0x76,0xcd,0xf0,0x78,0xa8,0x89,0x1f,0x1b,0x3d,0x0a,0xa7,0x1d,0x6e,0x18,0xd7,0x6a,0x4d,0x20,0x7a,0xaf,0x84,0xc6,0x12,0x95,0x0e,0xdf,0xcd,0x92,0x82,0xa1,0x11,0x44},
+       { 0x77,0x4f,0x40,0x72,0x98,0x9c,0xa1,0x55,0x18,0x17,0x73,0xb0,0x55,0x07,0x6f,0xfd,0x10,0x21,0x82,0xc6,0xab,0xe2,0xa9,0xce,0x03,0x0f,0x8d,0xf2,0x99,0x56,0xe1,0x48},
+       { 0x77,0x59,0x71,0xd4,0x48,0x9d,0xbe,0x27,0x72,0xdb,0x72,0xac,0x28,0xb8,0xb3,0x71,0xb0,0x21,0xc3,0xd6,0x26,0x14,0xd0,0x7b,0x6f,0x5b,0x8c,0x2a,0x57,0x70,0x25,0xae},
+       { 0x77,0x95,0x6b,0x48,0xcd,0xd9,0x15,0x0b,0xd8,0x7d,0x8d,0x81,0x50,0x60,0xac,0x8c,0x84,0x81,0x3a,0x53,0x87,0x1a,0x58,0x6a,0x69,0x8b,0x18,0x79,0x89,0x13,0xd3,0xb8},
+       { 0x77,0xac,0x72,0x54,0x6a,0x39,0xca,0x2f,0x24,0xe2,0xd1,0x3c,0x0d,0x74,0x91,0x5f,0x67,0xbc,0xd4,0x37,0x09,0xa9,0xe5,0xdb,0x8b,0x33,0x1a,0x55,0x77,0xfd,0x50,0x88},
+       { 0x77,0xb7,0xcc,0x99,0xce,0x02,0x4e,0x0b,0x7e,0xd5,0x33,0xc9,0x9c,0xc8,0x25,0x08,0xeb,0xa6,0xac,0x3a,0x0b,0xe5,0xbc,0xbf,0x7a,0xc9,0x94,0x95,0x2b,0x6d,0x35,0x07},
+       { 0x77,0xb9,0x6a,0x00,0x77,0x15,0xa0,0x8c,0x6a,0x22,0xdb,0x14,0xc7,0xf4,0xf1,0xd7,0xf4,0xa7,0x41,0xce,0x47,0x32,0xec,0xf8,0x3e,0x74,0xc1,0xc9,0x63,0x22,0x83,0xcd},
+       { 0x77,0xdd,0xc8,0x1b,0xd2,0x8b,0x9d,0x46,0x1e,0x7d,0x3c,0xd4,0xa8,0x12,0x2a,0xa9,0x8a,0x24,0x60,0xfb,0xa0,0x8f,0x1b,0x7b,0xac,0xb6,0x6c,0x92,0xd7,0x99,0x1c,0xcc},
+       { 0x78,0x0c,0x33,0xfe,0x95,0x4c,0xc4,0xdb,0x39,0x04,0xd7,0x6a,0x68,0x58,0xbc,0xd1,0x01,0x7f,0x52,0xda,0x59,0x9d,0x36,0xda,0xe6,0x66,0xc0,0x4e,0x41,0xaf,0x8d,0xcd},
+       { 0x78,0x41,0x36,0x37,0x9b,0xa0,0xdb,0xd7,0xb3,0xba,0xdc,0x52,0xdc,0xe6,0xbb,0x81,0x07,0xa3,0x56,0xc8,0x48,0x3f,0x13,0xe1,0x69,0x75,0x0b,0xc2,0x07,0x0a,0x67,0xd9},
+       { 0x78,0xc9,0x30,0x40,0x5a,0x72,0x0d,0x9f,0x00,0x66,0xdd,0x88,0xa2,0xa8,0xda,0xfb,0xbe,0x6c,0xd6,0x5d,0x54,0xb7,0x76,0x06,0x42,0x1b,0x45,0x43,0x8c,0x65,0x8a,0xd4},
+       { 0x78,0xff,0x4c,0x88,0xb0,0x4d,0x42,0x93,0x7a,0xb4,0xbd,0xc7,0x4d,0xa4,0xc1,0xc7,0x93,0x98,0xcb,0x63,0x46,0x81,0x61,0x00,0xde,0x60,0xa3,0xdf,0xde,0xf1,0xc5,0x4c},
+       { 0x79,0x17,0x21,0x35,0x7e,0x4b,0xa1,0x38,0xe0,0x3d,0x59,0xba,0xc1,0x41,0x42,0x80,0x52,0xe9,0x88,0x42,0x39,0x84,0x7a,0x4d,0x92,0xca,0xc0,0x9f,0xeb,0xfe,0x6a,0xa4},
+       { 0x79,0x44,0x5a,0x43,0x7b,0xbe,0xb4,0xa5,0x59,0xc8,0x1c,0x8e,0x57,0xbb,0xfb,0x18,0x66,0xe2,0xe2,0xbf,0x6e,0x70,0xa5,0x63,0x22,0x1b,0x62,0x7b,0x71,0x7d,0xe6,0xb1},
+       { 0x79,0x8f,0x83,0xb1,0xc4,0xc6,0x5c,0x4d,0x5d,0xea,0x13,0x03,0x53,0x53,0xd8,0xed,0xe5,0xd7,0x1d,0x99,0x47,0xf4,0x34,0xfd,0xea,0x0d,0xbc,0x1e,0xc8,0x2f,0x45,0x35},
+       { 0x79,0x94,0x68,0xfc,0x28,0x7d,0x4f,0x78,0x13,0xbd,0xc1,0x53,0xf2,0x8f,0x77,0x91,0x24,0xcb,0x79,0xae,0xc9,0x35,0xb2,0x2c,0x7a,0x6a,0xac,0xb9,0x8d,0xd5,0x14,0x0c},
+       { 0x79,0xa8,0xfc,0x72,0x70,0xb2,0xe5,0xf3,0x35,0x6b,0x09,0xc6,0xb8,0x64,0xfc,0x92,0xe5,0xfb,0xc9,0xe6,0x9b,0xec,0x93,0xa4,0xe3,0x3b,0x8d,0xf5,0x75,0x60,0x17,0xbe},
+       { 0x79,0xbe,0x4e,0x3a,0x42,0x2b,0x14,0x29,0x92,0xea,0x5b,0xab,0xfc,0x3a,0xad,0x5f,0x31,0xdb,0x1c,0x40,0xef,0x82,0x9a,0x38,0x03,0xf7,0xf5,0xcf,0xef,0xef,0xd1,0x60},
+       { 0x7a,0x1e,0x5e,0xa4,0xe9,0x74,0xeb,0x10,0x8a,0xda,0x2d,0xdf,0xbd,0x06,0x8a,0xc3,0x5d,0x0f,0x9d,0xfa,0xe6,0x70,0xf3,0xe3,0x95,0xd4,0x03,0x7c,0x3f,0x8c,0x4d,0xd0},
+       { 0x7a,0x31,0xb7,0x14,0x7a,0x27,0x75,0x33,0x8b,0xfa,0x3d,0x0b,0xbb,0x68,0x56,0x33,0xfe,0xb8,0x5e,0x2a,0xf9,0x4d,0x71,0xbf,0x2b,0x64,0x0b,0xe1,0xe7,0x1c,0xe8,0x34},
+       { 0x7a,0x33,0x5d,0x4d,0xb3,0x54,0x8b,0xa0,0xa4,0x73,0x79,0x7d,0x3a,0x5b,0xe2,0x58,0x4b,0x42,0x55,0x83,0xad,0x6f,0x28,0x69,0xd4,0x79,0xb9,0x72,0xbd,0x0f,0x53,0xca},
+       { 0x7a,0x42,0xd5,0x7b,0x05,0x32,0x4e,0x85,0x83,0x55,0x05,0x58,0x26,0xb1,0x55,0x17,0x42,0x5b,0x5a,0x18,0x9c,0x17,0xb4,0x7c,0x18,0x4c,0xac,0xe7,0xac,0x63,0x18,0xd0},
+       { 0x7a,0x4c,0x08,0x9a,0x75,0xd1,0x85,0x93,0x3c,0xa0,0xb8,0x24,0xb3,0x86,0x08,0xe2,0x6f,0x2d,0xf0,0x15,0x01,0x62,0x26,0xd2,0x15,0x8a,0x7b,0x3b,0x82,0x02,0x9a,0x05},
+       { 0x7a,0x5b,0x68,0x1e,0x54,0x45,0x1d,0xcb,0x0a,0xa6,0x0d,0x9f,0x02,0xfd,0x13,0x7f,0xa5,0xc1,0x9e,0x2b,0xf7,0x30,0xc8,0x9f,0x36,0xc9,0x1c,0xc6,0xe7,0x8c,0xc6,0xfb},
+       { 0x7b,0x2c,0x84,0x1f,0x5a,0x96,0x35,0x28,0xc8,0x79,0x9f,0x4b,0x71,0x48,0xf9,0xf2,0xa5,0x05,0x15,0x76,0x06,0x9d,0xef,0xd9,0xf6,0xc0,0xca,0x31,0x3d,0xf2,0xdb,0x99},
+       { 0x7b,0x78,0xbf,0x4d,0x71,0x4e,0xdf,0xd5,0xce,0x84,0xa3,0x86,0x6d,0xdf,0x14,0x82,0x36,0xbd,0x80,0xfc,0xca,0x6b,0x9e,0xf2,0x6d,0xc5,0xb0,0xdf,0x9f,0xe3,0xe2,0x0f},
+       { 0x7b,0x8d,0xd4,0xfc,0x3f,0xc9,0xa9,0x00,0x77,0x96,0x0e,0x15,0x32,0x2f,0x9c,0xd2,0x29,0x8c,0xf2,0xed,0x16,0xc0,0xdd,0x3d,0xda,0xb2,0x3e,0xdd,0xbf,0x4e,0x28,0xc0},
+       { 0x7b,0x93,0xa8,0x76,0x2e,0x89,0x97,0x0b,0xfb,0x19,0xec,0x06,0xe9,0x39,0x1e,0x87,0x48,0xb1,0x69,0x95,0x1a,0x8d,0xa9,0x86,0x8f,0x07,0xec,0x68,0xd0,0x6a,0x57,0x34},
+       { 0x7b,0xfe,0x47,0xae,0xba,0x8b,0x0a,0x3a,0x94,0x5a,0x88,0xd8,0xef,0x18,0x91,0xc9,0x89,0x97,0x8a,0xbf,0x12,0x2e,0xc5,0xe0,0x51,0x4b,0xe3,0x6c,0x3a,0x7f,0x22,0x9b},
+       { 0x7c,0x30,0xff,0x35,0xe7,0x8a,0xba,0x08,0xf8,0xa9,0xb4,0xd9,0x8e,0xa2,0x9a,0xe4,0xa5,0xa4,0x24,0x72,0xf5,0x91,0xca,0x11,0xfb,0x5e,0x11,0x21,0x06,0x28,0x63,0x96},
+       { 0x7c,0x63,0xb8,0x8e,0x58,0x19,0x07,0x0f,0xc1,0x4a,0xdb,0x67,0xd6,0xda,0xa1,0x29,0x83,0x14,0x30,0x4a,0x9c,0x05,0x30,0x18,0x02,0x7d,0xf8,0x36,0x91,0x4d,0x73,0xd4},
+       { 0x7c,0xa0,0x86,0x8b,0xeb,0xae,0x8a,0xca,0x9d,0x0f,0x75,0x38,0x65,0xc3,0x2a,0x0d,0x2d,0xd4,0xf1,0x48,0x6e,0x37,0x34,0xa6,0xa3,0x71,0x0e,0xcc,0x3e,0x57,0xf9,0xed},
+       { 0x7c,0xf9,0x2f,0x75,0xbb,0xe7,0xa1,0x4d,0x86,0x93,0xf9,0x93,0xc3,0xd1,0xa6,0x08,0xdb,0xe0,0xd1,0x8f,0x80,0x8e,0x21,0x2d,0xc8,0xe1,0xf5,0xda,0x58,0x04,0xb3,0x07},
+       { 0x7d,0x0d,0x63,0xac,0x53,0x9b,0xb6,0xc1,0x0f,0x2c,0xac,0x34,0xc4,0xe8,0x08,0xc5,0x23,0xcb,0x5f,0xe2,0x79,0x44,0xf3,0xd1,0x58,0x84,0x95,0xcc,0xb3,0xfc,0xf8,0xe0},
+       { 0x7d,0x20,0xc7,0xa9,0x27,0x26,0x2b,0xe7,0x38,0xd2,0x58,0xd0,0xfd,0x97,0x6e,0x9a,0xf3,0x6e,0xf7,0x99,0x5f,0x05,0xe2,0x87,0x6a,0x29,0xae,0xbc,0x3a,0x24,0xaa,0xce},
+       { 0x7d,0x27,0x04,0xf3,0x8e,0x5d,0x3f,0x86,0x0e,0x58,0xe9,0x5f,0xbd,0x13,0x57,0x37,0xe6,0x29,0xe3,0xf5,0x3c,0x07,0xe2,0x11,0xbf,0x48,0x33,0x86,0x0c,0xa5,0x40,0xc3},
+       { 0x7d,0x2d,0x31,0x2b,0xa8,0x5e,0x81,0xc4,0xc5,0xf0,0x4b,0xcb,0x48,0x3f,0xf8,0xcb,0x62,0xfa,0xf8,0x32,0xbe,0x9f,0x1e,0xa0,0x95,0x0a,0x12,0x6e,0xa2,0x52,0xbc,0xe6},
+       { 0x7d,0xb2,0x70,0xbc,0xac,0xd6,0x26,0x5d,0x05,0x05,0x60,0x85,0x24,0xa9,0x03,0xf9,0x87,0xc1,0xc8,0xc9,0xea,0xf5,0x1f,0x66,0x65,0x5e,0xb8,0x36,0xb5,0x05,0xa6,0xda},
+       { 0x7d,0xf7,0x1c,0x35,0x19,0x78,0x05,0x7a,0x4d,0x30,0x0e,0x15,0xad,0xb7,0xcf,0x28,0xf1,0xa5,0xbb,0x76,0x92,0x9c,0x58,0xa2,0x50,0x25,0x3c,0x30,0x48,0xf2,0x88,0xdb},
+       { 0x7e,0x2e,0xdb,0x9d,0x38,0xf9,0x29,0x3c,0xdd,0xd6,0x03,0xb1,0x75,0xc9,0xb2,0x05,0xac,0x0b,0x55,0x3a,0x4b,0xf5,0xfb,0x08,0xc2,0x46,0xec,0xf9,0xc8,0x49,0xdb,0x28},
+       { 0x7e,0x70,0x13,0x07,0x36,0xae,0xd9,0xbc,0xd2,0x18,0x44,0x96,0x6d,0x0d,0x1e,0x2f,0xba,0x58,0xe7,0xc3,0x9e,0xa1,0x47,0x76,0x13,0xf7,0x9e,0x0f,0x60,0x40,0xb5,0x44},
+       { 0x7e,0x8a,0x44,0x80,0xab,0x99,0xab,0x10,0x36,0x89,0xf4,0x6f,0xc9,0xb7,0x9f,0xa0,0xd9,0xfd,0xa4,0x64,0xaf,0x96,0xec,0x20,0xcc,0xe6,0xa2,0x5b,0x9c,0xf7,0xdc,0xd3},
+       { 0x7f,0x41,0xa6,0x10,0x7e,0x34,0x2b,0x5d,0x73,0x80,0x8d,0xb0,0x2a,0x86,0x8b,0xb0,0xa8,0xcb,0xde,0xa3,0x6a,0x70,0x54,0x54,0xaa,0x8d,0x86,0xc8,0xde,0x5c,0x40,0x55},
+       { 0x7f,0x83,0xac,0xef,0xc5,0x22,0xd2,0xac,0x23,0xb2,0x22,0x10,0xaf,0x23,0xe2,0x99,0xeb,0x69,0x9a,0x32,0x1c,0xbf,0xdc,0x78,0xe4,0x3a,0x8c,0xcb,0x8f,0x08,0x6a,0x84},
+       { 0x7f,0x86,0xd3,0xaa,0x7e,0xa7,0x5c,0x18,0x03,0x9d,0x6a,0xf9,0x9c,0xef,0x75,0x04,0xce,0x7b,0x05,0x05,0x9b,0xbf,0xe7,0x3f,0xcd,0xec,0xfc,0x71,0xb2,0x53,0x8d,0x72},
+       { 0x7f,0x95,0x9b,0x06,0x34,0xda,0x94,0xfa,0xca,0xda,0xb0,0x21,0xcf,0x94,0x20,0x78,0x16,0x00,0x36,0x13,0xef,0x09,0xeb,0x54,0xf6,0x48,0x60,0x50,0x08,0x19,0x02,0x75},
+       { 0x7f,0x9a,0x69,0xcf,0xa2,0xf5,0x0c,0x13,0xe1,0xb7,0x11,0xdd,0x6b,0x14,0x69,0x2b,0xdb,0x77,0xd9,0xff,0xd8,0xc1,0x10,0xae,0x5d,0x05,0xa4,0xcb,0x73,0x12,0x37,0x48},
+       { 0x7f,0xcc,0xa8,0xb5,0xf5,0xe3,0x3b,0xca,0x6d,0xe0,0x9c,0x14,0xaf,0xbb,0xe0,0xc3,0x41,0x21,0xac,0xbb,0x22,0x22,0x9f,0x44,0xee,0x5c,0x3f,0x4d,0xde,0x73,0x50,0x55},
+       { 0x7f,0xdd,0xae,0x79,0x7d,0xa7,0x9c,0x9f,0xa8,0xd6,0x9c,0x15,0x79,0x31,0x69,0x22,0x13,0x64,0xea,0x95,0xe7,0xc1,0xb2,0x39,0x71,0x32,0x3d,0xb1,0xb0,0x88,0xde,0x9c},
+       { 0x7f,0xe5,0x74,0x9c,0xa3,0xf3,0xdb,0x71,0xd5,0xc7,0x40,0xd9,0x75,0x87,0x16,0x3d,0x21,0x1e,0xff,0xaf,0x79,0x40,0xda,0x62,0xa6,0xaa,0x07,0xec,0x64,0xbd,0xfb,0x2d},
+       { 0x80,0x20,0x56,0xe1,0xdb,0x9d,0x9b,0x73,0x21,0xd1,0xff,0xbb,0xe1,0x2f,0x5c,0xbe,0xde,0xc3,0x6d,0x0b,0x5e,0xc2,0xa4,0xe1,0x8d,0x99,0x54,0x36,0x4c,0xec,0x81,0x29},
+       { 0x80,0x47,0x74,0x1d,0x79,0x7e,0xb4,0xed,0x49,0xe5,0x1e,0xd6,0x77,0x45,0xa4,0xe4,0xee,0x90,0x23,0xc4,0x37,0xae,0x53,0x23,0xcb,0xee,0x97,0x05,0xef,0x9c,0x4c,0xd6},
+       { 0x80,0x58,0x7f,0x37,0x5e,0xa1,0x5d,0x52,0x19,0x26,0xd7,0x0b,0x35,0x26,0xc0,0x80,0xf4,0x8c,0x05,0x6e,0x9b,0x13,0x40,0xcb,0xba,0x1f,0x9e,0x11,0xbb,0xe8,0x78,0x96},
+       { 0x80,0x97,0x63,0x4c,0xe3,0x3d,0x41,0x53,0x3d,0x41,0x5d,0xaf,0xdb,0x8b,0xa1,0x91,0xc0,0x30,0x52,0xac,0x8b,0xaa,0x25,0x54,0x34,0x77,0x3a,0x16,0x4b,0x91,0x1d,0x6e},
+       { 0x80,0xd0,0x17,0x09,0x34,0xd2,0x2a,0xea,0x73,0x3f,0x11,0x5e,0x52,0x42,0xc6,0xb8,0x6d,0x7f,0xcf,0xb4,0x90,0x4e,0x65,0xb7,0xb7,0xb9,0x07,0xf2,0xca,0x94,0xed,0x71},
+       { 0x80,0xdc,0xf7,0x3d,0xe4,0x85,0x8b,0xdc,0x49,0x33,0x9c,0x62,0xa6,0xb6,0x96,0x93,0x31,0x10,0x03,0x6e,0x4f,0x9e,0xfd,0x83,0x4f,0x22,0xa7,0xb6,0x62,0xf9,0x5c,0x6a},
+       { 0x80,0xe7,0x3a,0x40,0x88,0xf2,0x8a,0x18,0x67,0xd5,0x5d,0xa9,0x87,0x67,0xef,0x22,0xa5,0xae,0xe8,0xf4,0x45,0x0b,0x61,0x1b,0x4b,0x32,0x78,0xef,0x25,0x87,0xb6,0x6b},
+       { 0x80,0xf6,0xc1,0xe5,0x6a,0xec,0x30,0x64,0x72,0x50,0x23,0x05,0x61,0x06,0x61,0xf9,0x8a,0x00,0xa5,0xad,0x10,0x33,0x1d,0x57,0xbe,0xf0,0xd9,0x7f,0x32,0x2a,0xd8,0x48},
+       { 0x81,0x1d,0xf2,0xf4,0x73,0x6f,0x85,0x62,0xe2,0x02,0xfd,0x00,0x75,0x32,0xf1,0xde,0x40,0x17,0x86,0x1e,0xfa,0xbe,0x67,0x34,0x20,0xc2,0x7f,0x2e,0x2a,0x33,0xfa,0xc1},
+       { 0x81,0x1e,0x37,0x86,0x37,0xb1,0xd2,0xcb,0xb1,0x89,0xaf,0xd6,0x74,0x95,0xfe,0x8a,0xb9,0xd8,0x3a,0x74,0x2e,0x35,0x8c,0xbb,0xdb,0xd1,0x54,0x98,0xbf,0x9c,0x7b,0x56},
+       { 0x81,0x21,0x5f,0x4c,0x05,0x58,0x6c,0x90,0x8b,0xa6,0x65,0x15,0xd6,0xa2,0x64,0x81,0xed,0xdc,0xd9,0x89,0x44,0xac,0x01,0x98,0x40,0xe9,0xe3,0x32,0x2e,0x35,0x8d,0xd2},
+       { 0x81,0xa0,0xf1,0xd0,0x29,0x46,0x8e,0xe8,0x66,0x36,0x4a,0x19,0x8a,0x26,0x08,0x58,0x30,0xc2,0xa4,0x16,0xe4,0x9e,0x22,0x4c,0xe8,0x09,0x66,0xfc,0xc4,0x99,0xd6,0x36},
+       { 0x81,0xa9,0x15,0x6b,0x26,0x47,0xca,0xfa,0x38,0xb2,0xe3,0x15,0x1a,0x5a,0x5d,0x17,0xdb,0xed,0x81,0xe9,0x07,0x54,0xd1,0xe8,0x25,0xf0,0xbf,0xc9,0x13,0x7c,0x8b,0xbf},
+       { 0x81,0xd4,0xb0,0x8a,0xcd,0x90,0xf2,0xde,0xe1,0x8a,0xc4,0x20,0xf5,0x1d,0xa9,0x91,0x05,0x35,0x82,0x47,0xbb,0x03,0x87,0xcf,0xa9,0x4d,0xd9,0x67,0xa9,0xcc,0x18,0x68},
+       { 0x81,0xee,0x8c,0x58,0x6e,0xc3,0xe4,0x77,0xc8,0x1e,0xf4,0x44,0xdf,0x09,0x5a,0xe0,0x99,0xd8,0x06,0x9b,0x89,0xff,0xb1,0xd0,0x8f,0xad,0x75,0x3e,0xe4,0xe9,0x4f,0x71},
+       { 0x82,0x2e,0xbe,0x7b,0x2e,0x8a,0xf1,0x78,0x8a,0x36,0x08,0x83,0x84,0xf4,0xc0,0x6a,0x6d,0x65,0x9d,0x95,0x56,0x83,0xf0,0x99,0xe2,0x54,0x2d,0x97,0x58,0xe1,0xa6,0x21},
+       { 0x82,0x42,0x7c,0x6e,0xf1,0x1e,0xce,0x3b,0x94,0x0b,0xe6,0xb3,0x93,0x62,0x2f,0xc9,0x51,0x7d,0xbc,0xe1,0xc0,0x0c,0xf9,0x18,0x50,0x89,0x64,0x43,0xf5,0x38,0x2f,0x89},
+       { 0x82,0x4e,0xf3,0x18,0x7f,0x9c,0xfe,0x14,0x27,0x10,0x13,0xbc,0xfb,0x85,0xe1,0x4b,0x5a,0x8e,0x0d,0x72,0x1c,0x3f,0x53,0x6e,0x0f,0xdd,0xff,0x42,0x4d,0x1f,0xa0,0xd8},
+       { 0x82,0x56,0x8b,0x3b,0xb3,0xc6,0x55,0xd7,0xf2,0x2d,0x8c,0x97,0xa5,0x66,0x9c,0xc8,0x34,0xa2,0xdd,0x7c,0xda,0xe7,0x5a,0x26,0x45,0x59,0x55,0x16,0x46,0x55,0x8e,0x14},
+       { 0x82,0x7c,0x8c,0x80,0x11,0x1f,0xf2,0x21,0xc3,0xeb,0x1e,0xf5,0xc0,0xd5,0xd4,0x34,0x48,0x31,0x86,0xe2,0x09,0x00,0x75,0x63,0x15,0x8e,0x9e,0x76,0xd2,0x79,0x0f,0x1c},
+       { 0x82,0x92,0x67,0xc5,0xad,0x70,0xe5,0x45,0x18,0x02,0x3a,0xb7,0x85,0xfa,0x3c,0xde,0xd6,0x6f,0x42,0x5d,0xe1,0xf3,0x2f,0xcd,0x72,0x1b,0x49,0x46,0x3a,0x5a,0x5f,0x5b},
+       { 0x82,0xaf,0x5c,0xb6,0xad,0x08,0x2a,0xda,0x2c,0x25,0x2f,0x74,0x96,0x7b,0xed,0x01,0xab,0xa0,0x87,0x88,0x42,0x02,0xd4,0x5d,0xd4,0x80,0xfb,0x1c,0x3d,0x1c,0x0c,0x63},
+       { 0x82,0xb1,0xdd,0x9c,0x01,0xe8,0xcd,0x57,0xdd,0xa5,0x1c,0xcc,0x29,0x0b,0x32,0xe2,0xbb,0xfd,0x08,0x8c,0x2b,0xdf,0x75,0x46,0xa8,0x9c,0x60,0x99,0x78,0xc8,0x1b,0xc2},
+       { 0x82,0xc0,0x7b,0x94,0x4b,0xba,0xc1,0xb2,0x95,0xe2,0x5f,0x91,0xa5,0xfb,0x0f,0x2a,0xfc,0xba,0x7e,0x09,0xb2,0x17,0x27,0xee,0xd8,0x13,0x0c,0xde,0x8f,0x08,0x0f,0xca},
+       { 0x82,0xd1,0x9b,0xd8,0x0a,0x88,0x6b,0x28,0x61,0xc3,0x09,0x97,0x4c,0x1c,0x99,0x3d,0xbe,0xc3,0x7e,0x30,0x85,0xc1,0x47,0xc4,0x1f,0x23,0xd9,0xf1,0x20,0xd8,0x9b,0x68},
+       { 0x82,0xe1,0xbd,0xb3,0xdc,0x4f,0x02,0x36,0x3a,0x79,0x6b,0x60,0xa8,0x8e,0x4e,0x71,0xbd,0x33,0xb0,0xbe,0x4c,0xc5,0xb8,0x33,0x25,0x2b,0x83,0x27,0xb8,0x0b,0xd7,0xe2},
+       { 0x83,0x23,0xbd,0x61,0x09,0xfd,0x94,0xd5,0x5f,0x57,0xa9,0x60,0x42,0xa2,0x16,0xd8,0x6a,0x04,0xec,0xdb,0x65,0x7c,0xef,0xee,0x62,0x8c,0x35,0xf2,0x1f,0x29,0x4a,0x68},
+       { 0x83,0x25,0x41,0x78,0xae,0x2c,0x8b,0xaa,0x1a,0xcb,0xb9,0x99,0x82,0x63,0x8c,0x79,0x9b,0x9b,0x37,0x9d,0xa4,0xd0,0x2b,0x28,0x91,0x86,0x20,0xe2,0xf1,0xd8,0x35,0xc5},
+       { 0x83,0x34,0xea,0xb8,0x1c,0x60,0x4e,0x99,0xd5,0x40,0x51,0x3e,0xf2,0xe3,0x7a,0xba,0x71,0x4f,0x07,0xb2,0xba,0x01,0x0a,0xd7,0x1d,0xc4,0xe1,0x1a,0x92,0x18,0xc1,0x8c},
+       { 0x83,0x54,0x7a,0xca,0x3c,0xed,0x73,0xdf,0x99,0x14,0xf3,0x15,0x60,0x74,0x63,0x79,0x29,0x4c,0x76,0x0e,0xf9,0xa8,0xb7,0x6e,0x00,0x06,0x46,0xc7,0x39,0x07,0x21,0x65},
+       { 0x83,0x89,0xc8,0x79,0xb6,0x3b,0x82,0x9d,0x2d,0x39,0xa8,0xcf,0xb7,0x87,0xe7,0x72,0x77,0xd5,0xcf,0xa3,0xe3,0x6f,0xda,0xcb,0xab,0x4d,0x18,0xb2,0xb0,0x4e,0x32,0x94},
+       { 0x83,0xf8,0x00,0xb3,0xe5,0x28,0x52,0xde,0xbc,0xc5,0x04,0xc2,0x5b,0x63,0x58,0x34,0x30,0x7b,0x14,0x5e,0x38,0x87,0x50,0xaa,0xc1,0x63,0x90,0x9d,0x30,0x4b,0xe3,0xd2},
+       { 0x84,0x23,0xb3,0xf1,0xcc,0x85,0x2b,0x49,0xcf,0x81,0xb7,0xd5,0xff,0x51,0xa7,0xa5,0x6a,0x84,0x78,0x3a,0x2d,0xf7,0x43,0x61,0xff,0x2e,0xee,0x0f,0x92,0x12,0xc1,0x59},
+       { 0x84,0x26,0xbc,0x06,0xdb,0xb5,0x18,0x71,0x34,0x66,0xc7,0x6a,0xea,0x52,0x1b,0xce,0x39,0xd3,0x91,0xa8,0x89,0xcb,0xba,0x9b,0x7b,0x72,0xdc,0xda,0x89,0xf3,0x46,0x55},
+       { 0x84,0x3d,0x84,0x33,0x2b,0x42,0xab,0xba,0xb3,0x71,0xc9,0xd9,0xef,0xec,0xeb,0x34,0x21,0x8b,0x72,0xf5,0xd8,0x79,0x29,0xe2,0xe5,0x6c,0xa2,0xfd,0x0a,0x60,0x41,0xb6},
+       { 0x84,0x7b,0x5f,0x1e,0xeb,0x2a,0x44,0x13,0xc8,0xfa,0x37,0x98,0x21,0x97,0x37,0xe1,0x92,0xba,0x72,0x72,0xa1,0x08,0xb7,0x17,0x28,0xa8,0xd1,0x65,0x17,0xf6,0x1e,0x9d},
+       { 0x84,0x88,0x61,0x71,0x6d,0x7a,0xd3,0xf9,0x6f,0xff,0x73,0xf8,0x2e,0x6c,0x75,0x7c,0x43,0x35,0xae,0x5d,0x3a,0x1f,0x52,0xc4,0xb6,0x24,0x08,0xdb,0x51,0xdf,0x9e,0xb2},
+       { 0x85,0x04,0x81,0x97,0xf0,0x2b,0xf1,0xa0,0x38,0x81,0x27,0xe3,0x2b,0x5f,0x0a,0xd5,0xbc,0xd9,0x39,0x89,0x14,0x1e,0x2c,0xf3,0x2b,0x04,0x6f,0x19,0x01,0x50,0x59,0xc8},
+       { 0x85,0x09,0xcc,0xb8,0x81,0xdb,0x1d,0x96,0x1d,0xd9,0xa0,0x6c,0xe9,0x8a,0xa6,0x2f,0x19,0xc9,0x5f,0x3c,0x2a,0xc3,0x60,0x2e,0x0c,0xd3,0xc6,0xc3,0x8e,0x68,0x6e,0xd4},
+       { 0x85,0x31,0xb2,0xbf,0xc5,0x45,0x79,0xe8,0xf1,0x8f,0x27,0xb2,0xe6,0xec,0xc0,0xf8,0x90,0x64,0xee,0x86,0x87,0x0e,0xcc,0x8b,0xbe,0x0c,0xe6,0x86,0xec,0xda,0x2c,0x17},
+       { 0x85,0x76,0x0f,0x59,0x51,0x90,0xe9,0xb4,0x67,0x8b,0xbf,0x44,0xef,0xb5,0xcf,0x8f,0x6b,0x19,0x37,0xa9,0xb8,0x6b,0x31,0xb7,0x51,0xbe,0xcf,0x72,0x18,0x03,0xb0,0x1c},
+       { 0x85,0xf0,0x79,0x36,0xb4,0x29,0x1f,0x36,0xd9,0xb7,0x5f,0x42,0xe8,0xb7,0xee,0x8a,0x64,0xe6,0x32,0xa1,0x18,0x11,0x65,0xfe,0x72,0xb4,0x88,0x23,0xc3,0xd9,0x9d,0x9d},
+       { 0x86,0x12,0x9f,0xe7,0x61,0x99,0x4d,0x7b,0x64,0xe4,0x02,0x85,0x8f,0x88,0xc5,0x2b,0x3e,0xb9,0xc0,0x71,0xff,0xbe,0x80,0x02,0x80,0xac,0x8c,0x0c,0x6f,0x79,0xe7,0xa6},
+       { 0x86,0x19,0x6b,0x0f,0xd3,0x0f,0x8f,0x57,0x56,0x98,0xb5,0xee,0xf2,0x69,0xd0,0x69,0x2f,0x88,0xad,0xea,0xc4,0x83,0x6a,0x62,0x67,0xab,0xc8,0x36,0x23,0x34,0x00,0x86},
+       { 0x86,0xcf,0xec,0xbe,0x82,0xba,0xdb,0x93,0x14,0x75,0xf1,0x9e,0xcd,0x6e,0xa6,0x7d,0x59,0xc2,0xc7,0x00,0x78,0xb6,0xcc,0x56,0xbf,0xdc,0x27,0x55,0x47,0x67,0xf2,0x3f},
+       { 0x86,0xd1,0x8b,0xcd,0xde,0x16,0x45,0x42,0x48,0x6e,0x56,0x44,0x2c,0xe1,0xb8,0x8b,0x1a,0x10,0x73,0x7c,0xbd,0x5e,0xa4,0xaa,0xb8,0xd5,0xb8,0xaf,0x51,0xf5,0x29,0x09},
+       { 0x87,0x09,0x8d,0x69,0x5d,0xa4,0xa2,0x84,0x8d,0xd4,0x18,0xf2,0xc6,0x4a,0xdf,0x3b,0xd7,0x11,0x7c,0x98,0xe9,0xb7,0x2e,0x0f,0x46,0xa3,0x67,0x80,0x64,0x5e,0x4f,0x80},
+       { 0x87,0x5f,0x57,0x42,0x4c,0x90,0x2b,0x24,0xe8,0x1c,0x27,0xd1,0xca,0xf2,0x74,0xb1,0x7d,0x72,0x0d,0xf8,0x07,0x8b,0x6f,0x2a,0x5c,0x3b,0xb8,0xd8,0xdf,0xf0,0x55,0x00},
+       { 0x87,0xeb,0xcb,0xb0,0x73,0x7a,0xe3,0x27,0xc6,0xbe,0x9d,0x3f,0xa2,0xc7,0x5d,0x1e,0xea,0x0a,0xe6,0x6d,0x20,0xd3,0x8a,0xf6,0xed,0x76,0xe6,0xb1,0x49,0x9c,0x83,0x1f},
+       { 0x87,0xeb,0xcd,0x34,0x6c,0xbf,0xd5,0x3e,0x1a,0x0e,0x38,0x25,0x69,0x69,0x07,0xe2,0x9f,0x26,0x9f,0xeb,0x06,0x64,0xa9,0x42,0x67,0x78,0xf5,0x73,0xc0,0x68,0xa6,0x96},
+       { 0x88,0x51,0x76,0x78,0x61,0xc9,0x72,0x7d,0x92,0x77,0x63,0x62,0x78,0xfb,0x94,0x1b,0x88,0x85,0xd9,0x99,0x02,0x48,0xbf,0x91,0x45,0x9e,0x52,0x7c,0xe7,0xf0,0x6c,0xf6},
+       { 0x88,0x76,0x88,0xdc,0x6e,0x9f,0xe3,0xdb,0x05,0x05,0x7f,0xc6,0x38,0xeb,0x8b,0x29,0x4c,0x3d,0x8e,0x0a,0xae,0x17,0x51,0xf7,0x58,0xf6,0x36,0x70,0x37,0x2e,0x66,0x6d},
+       { 0x88,0x8d,0x6d,0x77,0xd8,0x1c,0x62,0x91,0xcb,0x84,0xd9,0xd6,0x56,0x27,0x82,0xfd,0x2e,0xb3,0x42,0x5d,0x49,0x1e,0x68,0x74,0x20,0x28,0x4b,0x76,0xa1,0xde,0xbf,0xab},
+       { 0x88,0xb0,0x25,0x04,0x88,0x31,0x94,0xb9,0x9f,0xd1,0xb8,0x1d,0x5d,0x5d,0xc4,0x99,0xd3,0x97,0x65,0x62,0x1f,0x7f,0x43,0x0c,0x73,0x46,0xa7,0x7b,0x23,0x39,0x43,0x82},
+       { 0x89,0x76,0xb5,0x94,0xac,0xdd,0xc1,0xb2,0xab,0xd7,0x5f,0xa1,0xa1,0xea,0x24,0x59,0x92,0x9a,0x7e,0x81,0x4c,0x9e,0xe3,0xf7,0xba,0x21,0xb3,0x80,0x82,0x88,0xbe,0xbb},
+       { 0x89,0xaf,0x0e,0x54,0xc7,0x62,0x77,0x86,0x93,0x52,0x9d,0x0a,0x95,0x0b,0x78,0x33,0xf5,0xea,0xba,0xf3,0x42,0x79,0x72,0x60,0x7f,0xb2,0xc7,0x0c,0x96,0xa3,0x21,0x61},
+       { 0x89,0xb6,0xa4,0x32,0x03,0xd5,0x82,0x55,0xd9,0x1c,0xc4,0x67,0x25,0x4b,0x85,0x2f,0xe6,0x43,0x47,0x38,0x97,0x44,0x79,0xce,0x21,0x64,0x0b,0x7e,0xc3,0x5f,0x24,0xac},
+       { 0x89,0xce,0x0f,0xe0,0xe0,0xb3,0xe3,0xac,0x38,0x6e,0x3a,0xd6,0x70,0xf3,0x45,0x57,0xe4,0x73,0xb8,0x01,0xbc,0x56,0xe4,0x1d,0xbd,0x91,0xd7,0x5a,0xa1,0x9a,0x47,0x31},
+       { 0x89,0xda,0xc7,0x89,0x6b,0x46,0xf2,0xfc,0x8b,0xea,0x62,0x11,0xff,0x98,0xb6,0x1f,0xaa,0x15,0x7b,0xa8,0xc4,0xad,0x6f,0xd1,0x75,0x92,0x75,0xce,0x39,0x41,0xc3,0x28},
+       { 0x8a,0x09,0x85,0xbf,0x86,0xe8,0xc9,0xb9,0x17,0xec,0x84,0xda,0x2a,0x56,0x73,0x1e,0x75,0x2a,0xa0,0xdc,0x52,0x87,0xc2,0xbf,0x39,0x51,0x0b,0xb3,0xf0,0xf2,0x0a,0xd1},
+       { 0x8a,0x1a,0xd8,0x6b,0xc0,0x1d,0x05,0x9d,0x53,0xd7,0x8d,0xe1,0x97,0xac,0x42,0x99,0x8f,0xee,0x20,0x88,0x8a,0xf0,0xf2,0x5f,0x2f,0x79,0x7d,0x62,0x00,0xaf,0xf0,0xbe},
+       { 0x8a,0x59,0x4e,0xb2,0xf8,0x23,0x64,0x65,0xf0,0x91,0x8a,0xed,0x99,0xa7,0x36,0x48,0x2b,0x80,0xaf,0xd3,0xd3,0x3e,0x9f,0x17,0x46,0x90,0x8c,0x21,0x57,0xca,0xd2,0x89},
+       { 0x8a,0xaf,0x36,0x3c,0xc9,0xd8,0x44,0x15,0xa7,0xeb,0x0d,0x72,0xda,0x08,0xb3,0x58,0x80,0x68,0x55,0x9c,0xb0,0xa9,0xae,0x92,0xb8,0xf4,0x60,0x2e,0xda,0x23,0x82,0xaa},
+       { 0x8a,0xb2,0x77,0x62,0xf4,0xa2,0xe3,0x11,0x22,0x04,0x96,0x98,0x39,0x99,0xc8,0xc4,0x60,0x96,0x3d,0xfc,0x1b,0x88,0x51,0x11,0x1d,0xa4,0x1d,0x3f,0x3b,0x0a,0x6e,0x94},
+       { 0x8a,0xb4,0x2a,0x77,0xbe,0x55,0x99,0xd7,0x0e,0x6f,0xdb,0xb7,0x87,0xe6,0xa0,0xff,0x21,0xc5,0x09,0x5f,0x86,0xe2,0xd7,0x62,0x34,0x0d,0x3d,0xdd,0xcc,0x75,0x87,0x0c},
+       { 0x8a,0xc9,0x1b,0x83,0x10,0x9d,0x39,0x9c,0xc2,0xbc,0x69,0x98,0x49,0x03,0x73,0x37,0x9b,0xdd,0xe4,0xda,0x04,0xba,0x8b,0xaa,0x3b,0x22,0x5c,0x37,0xdd,0x21,0x3c,0xd9},
+       { 0x8a,0xd1,0xd5,0x48,0x95,0x27,0xb5,0x28,0xe5,0xb5,0xd6,0xa5,0x95,0x78,0x87,0x08,0x88,0x8a,0x3f,0xb1,0x9f,0x2c,0x7c,0x8b,0x38,0x07,0x0e,0x1f,0x38,0x98,0x96,0x8b},
+       { 0x8a,0xdb,0x49,0xd4,0x15,0x53,0x56,0x70,0x5b,0x64,0x42,0x6a,0x99,0x0f,0x58,0xb3,0xa0,0x71,0xef,0x78,0x2e,0x6c,0x09,0x53,0x07,0xd7,0x74,0x74,0xd5,0xb5,0x7a,0x62},
+       { 0x8b,0x00,0xc4,0x18,0xc1,0x50,0x94,0x4b,0x2b,0x53,0x2f,0x5d,0x87,0x9f,0x7d,0x42,0xf8,0xfe,0x71,0x1e,0x77,0x35,0xc6,0x5d,0x3c,0xa0,0x68,0x50,0x74,0xa2,0xea,0x48},
+       { 0x8b,0x1b,0x7c,0x94,0xb9,0x94,0x4f,0x59,0xa3,0xde,0x10,0x21,0x3b,0xf6,0x2b,0xdc,0x50,0x15,0x79,0x0d,0xdb,0x18,0x6f,0x63,0x18,0x24,0x1a,0x01,0x51,0x51,0x3c,0xf6},
+       { 0x8b,0x3a,0x10,0x35,0xc3,0xfd,0xf3,0x45,0xfb,0x70,0x80,0x44,0x83,0xa5,0x04,0x49,0xa3,0xd7,0x60,0xc6,0xba,0x48,0xf5,0xb8,0x2d,0x6b,0xb2,0x62,0xed,0x9d,0xe3,0x73},
+       { 0x8b,0x3a,0x75,0xcb,0xc3,0x62,0xd2,0x35,0x57,0x0e,0x5d,0xe7,0x04,0x29,0x38,0x70,0x8a,0x1b,0x0f,0xce,0xb4,0x59,0x86,0x2a,0x38,0x67,0xb7,0x34,0xcd,0xcb,0x97,0x94},
+       { 0x8b,0x59,0x74,0x2d,0xff,0xf2,0xd5,0xbf,0x70,0x92,0x6d,0x1f,0xe8,0x00,0x7d,0x35,0x57,0x91,0x63,0xfa,0x4e,0xee,0x1d,0x03,0x38,0xf4,0x4e,0xd8,0xd9,0xfb,0x67,0x28},
+       { 0x8b,0xbe,0x23,0x92,0xcb,0xce,0xef,0x09,0x75,0xc2,0xf4,0xae,0xa1,0xc6,0x5a,0xfd,0x27,0x53,0x0c,0x9b,0x05,0x67,0x6e,0x31,0xa1,0x17,0xaf,0x44,0xdc,0x0a,0x26,0x98},
+       { 0x8b,0xd6,0x24,0xa6,0x83,0x99,0x17,0xa1,0x9b,0x87,0x13,0x50,0xe7,0x88,0x98,0x0c,0xa8,0xf4,0x2b,0xa0,0x96,0x64,0x22,0xe8,0xb7,0xdd,0xb3,0x75,0xb4,0xc3,0x50,0xd3},
+       { 0x8c,0x3e,0x7c,0x1d,0xcc,0x7d,0xd8,0xe7,0xd8,0xbf,0x7b,0x5b,0x3a,0xe5,0xe0,0x27,0x2e,0x81,0x1a,0xb9,0xf3,0xc3,0xc5,0x38,0xe5,0x74,0x71,0x77,0xe6,0x2d,0x62,0x92},
+       { 0x8c,0x3f,0x58,0x3d,0xa8,0x5f,0x57,0x4d,0xba,0x1f,0xd1,0xe2,0x70,0x28,0xff,0x93,0x42,0x32,0x2e,0xf9,0x08,0xbb,0xfa,0x8b,0x66,0x40,0x65,0x2c,0x4a,0x73,0x93,0x7e},
+       { 0x8c,0x7c,0x65,0x7b,0xda,0x13,0xca,0x62,0xf2,0x9a,0x65,0xc6,0xd5,0x19,0x3a,0x93,0xcf,0x6c,0x58,0x77,0x18,0xad,0xca,0x67,0x15,0x8e,0x97,0xd3,0x6a,0x62,0x3e,0xca},
+       { 0x8c,0xa6,0x79,0x62,0xc4,0xa8,0x09,0x13,0x33,0xf2,0x4e,0xfd,0x60,0xee,0x70,0xcf,0xed,0xdb,0xd6,0x41,0x59,0x04,0x70,0x9e,0x78,0x5c,0x33,0x1b,0x1e,0xf5,0x8f,0x8e},
+       { 0x8c,0xb4,0x26,0x39,0x8a,0xd9,0x7b,0x04,0x5d,0x6a,0xe9,0x75,0x3e,0x4d,0x48,0xb1,0x79,0x23,0xb9,0x36,0x5a,0x6b,0x4b,0x97,0xc4,0xec,0xac,0x4a,0x4b,0x37,0x03,0x4b},
+       { 0x8c,0xfa,0x92,0x51,0xb4,0xda,0xef,0x50,0x81,0x0d,0x6e,0x19,0xf5,0xf8,0x8e,0xa2,0xc6,0x5d,0xb7,0xa2,0xe8,0xa5,0x06,0xf7,0xdf,0x99,0x55,0x81,0x7d,0xdd,0xeb,0xc8},
+       { 0x8d,0x44,0xd4,0x17,0x60,0x46,0x06,0x3e,0x2e,0xb3,0xc7,0x50,0x38,0x13,0xbb,0xbb,0xf6,0xca,0x6d,0x54,0x3f,0x40,0xb3,0x99,0xcc,0x43,0xf1,0x12,0x4b,0x28,0xfb,0x97},
+       { 0x8d,0x73,0x19,0x48,0x17,0xf0,0x97,0x86,0x15,0x84,0x61,0x36,0xc9,0x8a,0x59,0x01,0x72,0x8a,0xb7,0xfe,0x11,0x92,0xe4,0xed,0x6d,0x59,0xb1,0xda,0x5a,0x42,0x7d,0xda},
+       { 0x8d,0x74,0xc0,0xd6,0x6b,0xb2,0xee,0xb2,0x6b,0x9a,0x55,0x74,0x38,0x5d,0xa7,0xb4,0x14,0x0a,0xf0,0x70,0x47,0xd2,0xfe,0x64,0x3d,0x1d,0x1a,0xe5,0xb1,0x96,0x90,0x43},
+       { 0x8d,0x85,0xda,0x44,0x6f,0x5c,0x79,0x54,0xbd,0xf7,0x6c,0x09,0x0c,0xd2,0x46,0x68,0xff,0x23,0x3c,0xcd,0xf6,0x6b,0x94,0xda,0xd9,0x92,0x98,0xeb,0xcb,0x16,0x8d,0xc5},
+       { 0x8d,0x8a,0xd7,0xc2,0x60,0x58,0x16,0xdd,0x44,0xb4,0x29,0x77,0x9e,0xd3,0x62,0xb9,0x88,0x37,0x5b,0x65,0x90,0x46,0x36,0x04,0xf0,0x86,0x07,0x6e,0x30,0xe0,0xa9,0x5d},
+       { 0x8d,0xf5,0x42,0x29,0x9f,0x9b,0xdd,0xf5,0xad,0x42,0xee,0x39,0x88,0xdd,0x21,0xbf,0x21,0x6b,0x82,0x70,0x91,0x47,0xb1,0x43,0x1d,0x08,0x20,0xa0,0x10,0xd1,0xc6,0xbe},
+       { 0x8d,0xfe,0x05,0xbf,0x3b,0x70,0x65,0xa3,0x6f,0x66,0xb4,0xa9,0x80,0x6a,0xbf,0x8a,0x7f,0x37,0xf6,0xd9,0x2d,0x3e,0xb7,0x11,0x49,0xce,0x49,0x21,0x42,0xcc,0x85,0x79},
+       { 0x8e,0x18,0xfd,0xbd,0xb0,0x08,0x16,0x00,0x35,0xfa,0xf5,0x01,0x5b,0xe7,0xda,0xf4,0x63,0xb5,0xc4,0x14,0xea,0xbc,0x8b,0x89,0xf3,0xdb,0xa2,0x05,0xab,0x09,0xa6,0x43},
+       { 0x8e,0x2e,0x4e,0x29,0xa3,0xb4,0x7f,0x9b,0x4a,0xf7,0xf6,0x02,0xe9,0xd2,0xba,0xba,0xed,0xc3,0x2d,0x4a,0x9e,0xf2,0x1a,0x74,0x1b,0x07,0xce,0xc1,0xe4,0x24,0x90,0xcf},
+       { 0x8e,0x38,0x31,0x6e,0x38,0x8b,0x56,0x17,0x8e,0x60,0x10,0xad,0xc2,0xca,0xbb,0x40,0x24,0x92,0x64,0xb3,0x34,0x42,0x20,0xce,0xd9,0xf6,0xec,0xbc,0xf0,0x71,0x1c,0x34},
+       { 0x8e,0x57,0x12,0xc7,0x5e,0xc1,0xe0,0x31,0x73,0x15,0x96,0x35,0x60,0xf2,0x6c,0x8e,0xcb,0x29,0xa7,0xa0,0x28,0x7f,0x84,0xe7,0xcc,0x29,0x99,0x67,0x5e,0x41,0xa0,0x5d},
+       { 0x8e,0xb9,0x24,0x0b,0x19,0xa3,0xcc,0x2f,0xf2,0xcd,0xf9,0xad,0x2c,0x71,0x2e,0x23,0xf4,0x1e,0x35,0x2a,0xe1,0xda,0x79,0x29,0xd6,0x08,0xcb,0xbc,0x81,0xa9,0xe0,0xc3},
+       { 0x8f,0x01,0xe1,0x2e,0xf4,0x24,0x16,0x9d,0x2d,0x5c,0x2d,0x25,0x73,0xd4,0x97,0x36,0xe6,0x9b,0x05,0x74,0x1d,0x31,0xb1,0x62,0x61,0xb5,0xbd,0xb3,0xb4,0x48,0x77,0xe2},
+       { 0x8f,0x10,0x10,0x47,0x93,0xe8,0x55,0x42,0xbc,0x06,0x04,0xd6,0xcf,0x21,0x5f,0x78,0x80,0xbd,0x6a,0x4d,0xd0,0xfd,0xf1,0xe7,0xa5,0xb9,0xca,0x12,0x46,0xf5,0xc4,0x09},
+       { 0x8f,0x71,0x27,0x76,0x2e,0xe7,0x51,0x69,0xbd,0xc3,0x5b,0x04,0xa7,0x28,0xe9,0xd3,0x1b,0x7e,0x4d,0x37,0x89,0xaa,0x2c,0x46,0xd8,0xa3,0x1b,0x3d,0xfa,0x81,0xa9,0x7e},
+       { 0x8f,0x93,0xc5,0xa7,0xc0,0x96,0x66,0x8b,0xd4,0x51,0x56,0xba,0xd5,0x6f,0x06,0x12,0x04,0x5d,0x63,0x65,0xb6,0xbb,0xaa,0x63,0xba,0xcb,0xf2,0xbe,0x01,0xb5,0x2c,0xd3},
+       { 0x8f,0x94,0x15,0x92,0x6f,0x40,0x49,0xea,0x41,0x8a,0x30,0x7c,0x76,0x36,0xe4,0x9b,0x14,0x4f,0xa5,0x3e,0x52,0xe1,0x04,0x15,0x5f,0x58,0x03,0x5e,0x45,0x41,0xcd,0x6e},
+       { 0x8f,0x9f,0x3e,0x59,0xd3,0x6a,0x9f,0x33,0x15,0x04,0x9b,0x99,0x1c,0x89,0xc3,0x21,0xe1,0xf1,0xf6,0x78,0xe0,0xa2,0xa4,0x2f,0xc1,0x44,0xe5,0xff,0xf2,0x3b,0x62,0xa5},
+       { 0x8f,0xa2,0x4b,0x76,0xd7,0xaa,0xd1,0x53,0x3f,0xea,0xfe,0x73,0xe0,0x0f,0xfa,0x8b,0x89,0x4b,0x95,0xb4,0xe7,0x01,0x59,0x54,0x9e,0xad,0xa6,0x58,0xf6,0xa2,0x2b,0x88},
+       { 0x8f,0xcb,0x3c,0x28,0xe8,0x1e,0xfa,0x6a,0x1f,0xe3,0x4d,0x03,0x8a,0x3b,0xfb,0x00,0x72,0x96,0xa0,0x48,0x24,0xb3,0xa2,0x06,0xe9,0xef,0x28,0x97,0xe6,0x97,0x51,0x10},
+       { 0x90,0x30,0xec,0x29,0x71,0x10,0x6a,0x7c,0x68,0x8b,0xbe,0xa9,0x1d,0x70,0xf3,0x4d,0x75,0xd6,0x74,0x5b,0x30,0x48,0xfb,0x1d,0x9d,0x3b,0xc4,0x9f,0x9f,0xc8,0x78,0xba},
+       { 0x90,0xb3,0xa1,0x85,0x36,0x86,0xaf,0xeb,0x15,0x4a,0xef,0x7e,0x84,0x0d,0x38,0x04,0x4e,0x7d,0x7f,0x6d,0xc4,0xce,0x82,0x8c,0xe3,0x97,0x55,0xac,0x88,0xe4,0x2e,0x07},
+       { 0x90,0xe2,0x51,0x86,0x7f,0x6b,0x0c,0x14,0xbd,0x9b,0x51,0x0c,0xfd,0xa8,0x48,0x49,0x72,0xfd,0xf0,0xe0,0x6d,0xc1,0x1f,0x5d,0x1d,0x59,0x0b,0xe3,0xfc,0x38,0xdf,0xf0},
+       { 0x90,0xf2,0xf3,0x73,0xb9,0xa6,0x2e,0x3c,0xc8,0x15,0x87,0x57,0x58,0x13,0x18,0x9b,0xa6,0x9c,0x67,0x28,0x1f,0x41,0x93,0xe4,0x9b,0x31,0x68,0x9a,0xa3,0x7c,0x3c,0x21},
+       { 0x91,0x02,0x41,0xa2,0xdd,0x40,0xa2,0x83,0xea,0x1f,0x0f,0x4f,0x31,0xc9,0x48,0x9d,0x38,0x45,0x0f,0x08,0xca,0x8b,0xcc,0x21,0x87,0xf6,0x90,0xb4,0x4f,0x37,0x30,0x17},
+       { 0x91,0x31,0x4f,0xf3,0xfb,0x23,0xd3,0x41,0x44,0x63,0x17,0xf1,0xc6,0xca,0x9d,0x6c,0x6d,0xcb,0x7a,0x95,0x65,0x1d,0xa7,0xe3,0xf1,0x56,0x00,0xf4,0x3a,0x25,0x8a,0xf3},
+       { 0x91,0x3b,0xe0,0x71,0xec,0x66,0x46,0x91,0x37,0x98,0x38,0x6e,0x69,0x4f,0x08,0x8b,0xf0,0x9d,0x48,0xa3,0x97,0xf9,0x79,0xe1,0x24,0x4c,0x20,0x2f,0x3c,0x8e,0x13,0x8d},
+       { 0x91,0x6b,0x1a,0x6b,0x61,0x6c,0x6d,0x8a,0xc1,0x49,0xa3,0x31,0x04,0x83,0x51,0x1a,0xf7,0xa7,0xd5,0x3c,0x60,0x17,0x9e,0x7f,0xa7,0x93,0x1e,0x59,0x70,0xb7,0x82,0xf1},
+       { 0x91,0x90,0xf8,0x25,0x51,0x0c,0x65,0x98,0xe1,0x9d,0x17,0xdb,0xbe,0x6e,0x7c,0x82,0x31,0x86,0x9c,0xa7,0xf6,0xe3,0x07,0xa2,0xc2,0xcc,0x54,0x77,0x8d,0x4a,0x89,0xb3},
+       { 0x91,0xc7,0x6e,0xf8,0xc7,0x05,0x3b,0x2a,0x27,0x0b,0x97,0x19,0x78,0x3c,0x85,0x10,0xa2,0x89,0x0a,0x48,0x40,0x18,0x63,0x72,0x6e,0x23,0x3a,0x82,0xbf,0x9a,0x0b,0xcf},
+       { 0x92,0x3f,0x0f,0x8c,0x40,0x5a,0x02,0xe6,0x82,0xc4,0xb4,0x66,0x5a,0x7e,0xe7,0x16,0xaa,0x57,0xe0,0xa5,0x86,0xc2,0x4a,0x16,0x5a,0xad,0x7e,0x5b,0xda,0x22,0x78,0x24},
+       { 0x92,0x71,0x44,0x12,0x1c,0x23,0x63,0x57,0x07,0xe9,0x40,0x7f,0x7f,0xff,0x6a,0x64,0x63,0x5d,0x7c,0xe9,0x06,0x66,0xd4,0x29,0x94,0x09,0x7a,0xf4,0x0c,0x31,0x36,0xfb},
+       { 0x92,0x83,0x70,0x07,0x63,0x1b,0x8f,0xfa,0x02,0x91,0xd9,0xe9,0xc4,0xb0,0x8a,0x5b,0xfa,0x84,0x5b,0xa1,0x7e,0x79,0xa2,0x2d,0x9d,0x9d,0x44,0xb9,0x02,0x23,0x3d,0x16},
+       { 0x92,0x8c,0x1c,0xd7,0x50,0x82,0x84,0x1a,0x02,0xef,0x8b,0x49,0x45,0x6d,0x6d,0x3b,0x72,0xb9,0x79,0xff,0xda,0xfb,0xfd,0xe2,0xc6,0x50,0xd3,0x53,0xdc,0xd4,0xf8,0xfe},
+       { 0x93,0x03,0x43,0xb5,0xe8,0xc1,0x5d,0x6d,0x93,0x9d,0x0f,0x39,0xf0,0x53,0x7a,0xa6,0x23,0x3f,0x61,0x17,0x93,0x79,0xce,0xbc,0x8d,0x7c,0x62,0x01,0x09,0x9f,0xfd,0xe2},
+       { 0x93,0x8a,0xe3,0xe7,0x15,0x48,0xa9,0xc3,0x14,0x27,0xcb,0xa7,0x40,0xbe,0x2e,0xb9,0x26,0x88,0x68,0xbd,0xac,0xc1,0xda,0xa8,0x67,0x02,0xfa,0xb7,0x93,0x70,0xb8,0xf9},
+       { 0x93,0xac,0x4b,0xbc,0x6e,0xbd,0x52,0x7e,0xa9,0x42,0xaf,0x29,0x4a,0x5d,0xab,0xd1,0x4f,0xe7,0x7c,0x5e,0x6a,0x4e,0xeb,0x14,0xb8,0x0d,0x42,0x9f,0x39,0xfd,0xcc,0xe7},
+       { 0x94,0x18,0xef,0x6d,0x9f,0xf6,0x06,0xfd,0xc7,0x55,0x78,0xf0,0xf5,0xde,0xea,0xb1,0x39,0x69,0x80,0xf5,0xb5,0xd3,0x96,0x9d,0x7a,0x0f,0x23,0x83,0x70,0x3f,0x9b,0xb1},
+       { 0x94,0x77,0xcf,0xec,0xda,0x46,0x1d,0xbc,0x01,0xa3,0xa3,0x0e,0xa2,0x64,0x31,0x42,0x5b,0xd1,0xb1,0x0c,0xf7,0xc2,0xf2,0x06,0x0e,0xcb,0x39,0xf7,0xd4,0x15,0x5b,0x0d},
+       { 0x94,0x97,0xdc,0x04,0xaa,0xbb,0xed,0xf0,0xd9,0xe7,0x65,0x40,0x60,0x02,0x55,0x76,0x7d,0xf3,0xb9,0x70,0x59,0x67,0x02,0x86,0x70,0x7d,0x85,0x85,0xe4,0xd8,0x2c,0x63},
+       { 0x94,0x9e,0x13,0x59,0x7f,0x32,0x06,0x9f,0xf3,0xa6,0xcf,0x49,0x07,0x1e,0x70,0xf4,0x0c,0x4a,0x2e,0x07,0x2e,0x98,0x69,0xfe,0x15,0x97,0xee,0x8e,0xb7,0x16,0x34,0x09},
+       { 0x94,0xc5,0x29,0xaa,0x2d,0xfe,0xb3,0x9f,0x5e,0x6c,0x66,0xd3,0x53,0x37,0x1e,0xbc,0xd2,0xca,0xed,0xbd,0x1f,0x0e,0x6c,0x79,0x75,0x5e,0xee,0x61,0xe9,0xe6,0x24,0xf4},
+       { 0x94,0xdc,0x80,0x07,0x49,0x1d,0xa8,0xbf,0xb7,0x39,0x14,0xad,0xce,0xf7,0x1a,0x12,0x41,0x58,0xba,0xd1,0x7b,0xa8,0x8f,0xa9,0x46,0x57,0x9b,0xbc,0x2d,0x64,0x97,0x8d},
+       { 0x95,0x68,0x33,0xae,0xe6,0x61,0x19,0x26,0xe9,0x52,0x72,0xa1,0xf5,0x88,0xf9,0x2a,0xf5,0x2c,0xae,0x70,0x7a,0xcd,0xcc,0x82,0x63,0x99,0x7b,0xfa,0x8c,0x71,0x9c,0xa8},
+       { 0x95,0x6d,0xbc,0x65,0x57,0x62,0xce,0x49,0xe5,0xe8,0x46,0x99,0x2c,0x26,0xeb,0xf5,0x66,0x60,0x42,0xd2,0xc0,0xd7,0xe7,0xcf,0x74,0x04,0x26,0xbe,0x3c,0x51,0x99,0x72},
+       { 0x95,0x89,0xda,0xc9,0xec,0xe7,0x6d,0xf5,0x72,0x01,0x96,0xdc,0x58,0x6d,0x17,0x9d,0x73,0x5d,0xf7,0x17,0x92,0x6c,0x06,0x1e,0xa7,0x0c,0x40,0x85,0x64,0x8f,0xf3,0x12},
+       { 0x95,0xf4,0x59,0xac,0xf2,0x57,0x64,0x4c,0x90,0x9a,0xdc,0xae,0xad,0xd8,0x8a,0x3c,0x57,0x76,0x2e,0xcb,0x09,0x2c,0x50,0xb4,0x51,0xc1,0x58,0x6b,0x21,0x8e,0x6b,0x26},
+       { 0x96,0xa4,0x59,0x90,0xfc,0xd0,0x1c,0x9c,0x2a,0xf0,0x64,0x5f,0x87,0xb9,0x69,0x8b,0x05,0xaf,0xe6,0x94,0x32,0xeb,0x57,0x01,0x08,0x20,0x13,0xba,0xc5,0xb0,0x55,0x60},
+       { 0x96,0xeb,0x44,0xaa,0x6a,0x20,0x49,0xe6,0xba,0xff,0xe6,0xb5,0x21,0xc4,0xad,0x8c,0x58,0x77,0x26,0xca,0xa0,0x12,0xe8,0xfb,0x8e,0x8e,0x21,0x89,0x77,0xbf,0x1d,0xf6},
+       { 0x97,0x4f,0x51,0xa6,0x04,0x68,0x48,0xfa,0xa7,0xb3,0x3f,0xd2,0x39,0x13,0x86,0x42,0x8b,0xd5,0x24,0xea,0xeb,0xa8,0x01,0x4e,0x6d,0x1f,0xe2,0x54,0x38,0x3f,0x41,0x79},
+       { 0x97,0x83,0x7f,0xe4,0xcf,0xbf,0x4f,0xf0,0x37,0x63,0x1c,0xf4,0xb5,0x3f,0x9f,0xa8,0xab,0x37,0xa8,0x30,0x1c,0xab,0x9e,0x48,0x71,0x5f,0x53,0x7d,0xd0,0x8a,0x68,0x48},
+       { 0x97,0x8d,0x6f,0x1e,0x9a,0xa3,0xa3,0xce,0xb1,0xad,0xa6,0x09,0xe2,0x00,0x95,0xfb,0xc3,0x3a,0x6b,0xbc,0x6a,0x21,0xd8,0x0a,0x4e,0xcb,0x27,0x3c,0x60,0xac,0x2a,0xc7},
+       { 0x97,0xd6,0x24,0xea,0xc8,0x80,0x91,0x03,0x4a,0x84,0xb4,0xdc,0x63,0x33,0x92,0x37,0xda,0xf4,0xa2,0xb0,0xf6,0xc6,0xe2,0x55,0xe7,0xec,0xe6,0x82,0x59,0x1d,0x5e,0xdc},
+       { 0x97,0xe2,0x11,0x70,0x95,0x44,0x9c,0xdf,0xc0,0xa8,0x3e,0xd4,0x9e,0x65,0x0a,0xdf,0xd9,0xbc,0x0b,0x3c,0x50,0x04,0x9d,0x7b,0x93,0x24,0x5a,0xcc,0x3a,0x0c,0x16,0xaf},
+       { 0x98,0x15,0x9d,0xd1,0x88,0x39,0xfd,0xf4,0x3e,0xc0,0x00,0x23,0xad,0x1d,0x4e,0x27,0xd8,0xf9,0x50,0xbe,0xc8,0x60,0x40,0x11,0x1e,0x84,0x54,0xce,0x44,0x6f,0xab,0x75},
+       { 0x98,0x39,0xe6,0x09,0x46,0xef,0x20,0xe2,0x44,0x68,0xc1,0x81,0x88,0xbb,0xb3,0xc6,0xe8,0x80,0xf3,0x6d,0x0d,0xed,0xe8,0xd2,0x4a,0x23,0x05,0x86,0x3a,0x5b,0x5d,0xfe},
+       { 0x98,0x57,0x02,0xc0,0x55,0x05,0xd9,0xba,0xe0,0xce,0x23,0xab,0x2c,0xb8,0x65,0xa1,0xd1,0x3f,0x7b,0xe0,0x4f,0xab,0xc1,0x19,0x49,0x4b,0x4c,0xc1,0x0a,0x7d,0x9a,0xdb},
+       { 0x98,0x76,0x8d,0x66,0x7e,0x4d,0xfc,0x1d,0x99,0x5e,0x42,0xc7,0x1e,0x31,0x93,0x31,0x6c,0xef,0x8c,0x2a,0xf5,0x9a,0x0e,0xa6,0x19,0x81,0xfb,0x42,0x00,0x72,0x57,0xc7},
+       { 0x98,0x7a,0xd4,0x70,0x5f,0x65,0x65,0xaf,0x64,0x53,0x0d,0x09,0x60,0xb8,0x82,0x74,0x0a,0xfb,0x8a,0x74,0xd5,0xcc,0x3c,0x68,0x19,0x34,0x69,0x83,0xf2,0x51,0x33,0x37},
+       { 0x98,0xaa,0xb4,0xed,0x43,0x89,0xf3,0x5e,0x74,0x23,0x74,0x90,0x68,0x01,0x15,0x3d,0xc7,0xc8,0xe3,0x2d,0x18,0xb4,0xd7,0x81,0x88,0x28,0x3a,0x55,0x77,0xcb,0x55,0xfb},
+       { 0x98,0xb5,0x92,0x4e,0x06,0xcd,0xea,0x1b,0xa1,0x7f,0xdb,0x1b,0x13,0x97,0x90,0x24,0xb1,0xc2,0x5b,0x0a,0x69,0x0c,0xfe,0x87,0x8d,0x4c,0xb4,0x07,0x76,0xb9,0x6f,0xb0},
+       { 0x98,0xeb,0xc4,0x98,0xbd,0x91,0x23,0x5e,0xdf,0xc2,0xdc,0x7b,0xe1,0x8d,0x88,0xf3,0x5e,0x9f,0x33,0x41,0xd8,0x8e,0xf4,0x38,0xa8,0xd4,0x11,0xf1,0x88,0x11,0x54,0x56},
+       { 0x99,0x05,0x0a,0x48,0x01,0x8d,0x00,0xb3,0xbf,0xe5,0xa8,0x09,0x24,0x6e,0x25,0x54,0x5f,0x36,0xd2,0x17,0x8f,0xd2,0x02,0xae,0x5d,0xc8,0xe7,0xff,0x4d,0x5a,0x07,0xf9},
+       { 0x99,0x08,0xa8,0xdd,0x06,0x0c,0x74,0xfa,0xb2,0x0c,0x2f,0x44,0x17,0x26,0x0a,0xfa,0xf0,0x6d,0x6c,0x10,0x81,0xb2,0x6c,0x5f,0x5f,0x51,0x5c,0x2d,0x04,0xeb,0x4a,0x52},
+       { 0x99,0x45,0xba,0x12,0xc4,0x4b,0x5a,0x01,0x4d,0xbc,0x4d,0xbb,0xca,0x86,0x10,0x87,0xc1,0x9e,0xdd,0x6d,0xce,0xb1,0x6d,0x52,0x88,0x63,0x63,0xa7,0xcd,0xc8,0x69,0x5f},
+       { 0x99,0xa5,0x5f,0x76,0xcb,0xea,0x0f,0x3e,0x60,0x71,0xd3,0x82,0x18,0x1a,0xf6,0xcb,0x25,0xbd,0xc5,0x87,0x5e,0x29,0xf0,0xf4,0xd7,0x19,0xa9,0xd3,0x5b,0x5b,0xd6,0xbf},
+       { 0x99,0xb1,0x38,0xbb,0x53,0xc5,0x4d,0x1c,0x7a,0xc2,0x9a,0x57,0x85,0xc8,0xb1,0x9f,0xdd,0xc3,0x7d,0x99,0x4a,0x3e,0x6c,0x31,0xf7,0x50,0xa1,0xbf,0xeb,0xe9,0xfe,0xf9},
+       { 0x99,0xb4,0x6c,0x68,0x90,0x62,0x37,0x40,0x23,0xdb,0x68,0x19,0xf8,0x89,0xd3,0xc1,0xbb,0x8a,0x83,0x8c,0x6b,0x51,0x7e,0x32,0x7e,0xd9,0x1c,0x6c,0x96,0x2d,0x06,0x49},
+       { 0x99,0xe1,0xfb,0x3e,0xeb,0x89,0x1e,0xba,0x4f,0x9b,0xd4,0x7f,0x04,0xbc,0x9a,0x62,0xbd,0x3b,0x61,0x85,0x45,0x4b,0xf5,0x35,0x9e,0x39,0x37,0xe0,0xb8,0xa5,0xff,0xb7},
+       { 0x9a,0x4b,0x49,0x93,0xb4,0xed,0x8c,0x27,0xe7,0x7f,0x3c,0x8a,0xaf,0xdb,0xdc,0x11,0x1a,0x36,0xb7,0x3c,0xca,0xdb,0x87,0x04,0x98,0x25,0x00,0xd1,0xb0,0xf1,0x09,0xf2},
+       { 0x9a,0x4c,0xa1,0x75,0xc4,0x6f,0x5c,0x17,0x05,0x5e,0x28,0x16,0xc8,0x37,0x98,0x54,0x89,0x46,0x76,0xee,0xb3,0x4c,0xf7,0x2a,0x14,0x83,0x04,0x97,0xd8,0x4a,0x4f,0x6c},
+       { 0x9a,0x5d,0x7a,0xf0,0xf3,0xf4,0x34,0xba,0x6e,0x67,0x37,0x65,0x2c,0x42,0x87,0x6a,0x8e,0xc1,0x9a,0xce,0x0c,0x7c,0xbf,0x3e,0xce,0x5c,0x32,0x62,0xae,0xeb,0x77,0xd4},
+       { 0x9a,0x5f,0xab,0xe5,0x8a,0x1e,0xae,0x4b,0x20,0xba,0xb3,0xa7,0xeb,0x5e,0x42,0xa2,0xda,0x83,0x11,0x59,0x25,0x7d,0xd4,0xe3,0x55,0x2e,0xc6,0xf7,0xd2,0x67,0xfa,0xba},
+       { 0x9a,0x9f,0x50,0x16,0x20,0x70,0x69,0x62,0xe5,0x07,0xf7,0x57,0xb2,0xfe,0x76,0x44,0xa3,0xf4,0x96,0x90,0x57,0x1a,0x30,0x34,0xdb,0xbc,0x35,0x96,0xa4,0xc1,0x60,0x2c},
+       { 0x9a,0xa3,0xbc,0xd0,0x80,0x11,0xe2,0xf9,0x0a,0x59,0x2a,0xd7,0xa4,0x9d,0xb2,0x7f,0xaa,0xd8,0xa7,0x3c,0xea,0x24,0x6c,0x21,0x65,0x09,0xbb,0x36,0x27,0xe8,0x2a,0x22},
+       { 0x9a,0xae,0x9d,0x45,0xaa,0x04,0x03,0x06,0x4b,0xc5,0xa7,0x4d,0xd0,0x32,0x5d,0xa4,0x1e,0x12,0xcf,0x58,0x6c,0x46,0x2e,0xe0,0x6c,0x2b,0xb4,0x56,0xf8,0x44,0x1c,0x4f},
+       { 0x9a,0xc0,0xd1,0x78,0x82,0x0b,0xc5,0x49,0x96,0x0a,0xa1,0x52,0xbc,0x17,0x3d,0x70,0xba,0x6b,0x36,0x24,0x7e,0x18,0xa0,0x42,0xeb,0x83,0x05,0x41,0x96,0x84,0xa7,0x2c},
+       { 0x9a,0xc1,0x48,0xb3,0x72,0x12,0xad,0x5d,0xde,0xc4,0x36,0xb5,0x65,0x77,0xf5,0x4b,0x99,0xea,0xfc,0x69,0x2c,0x4e,0x6f,0xfd,0x75,0x85,0x39,0xcd,0xae,0xfe,0x30,0x4d},
+       { 0x9a,0xee,0x05,0x8d,0x61,0x51,0xe2,0x65,0xe2,0x5f,0x9a,0x82,0x34,0x54,0x38,0xc5,0xa7,0x42,0x8c,0xd6,0xd8,0xe2,0xb4,0xf3,0x39,0xc4,0x7f,0xb2,0x38,0xc0,0x93,0x3f},
+       { 0x9b,0x4b,0xbc,0xea,0x3e,0x22,0xa4,0x3b,0xc5,0xd6,0x58,0x7f,0x58,0x1d,0x0a,0x14,0x38,0xd2,0xee,0xa6,0xda,0xd9,0xf1,0xaa,0x23,0xfc,0x23,0x09,0x7a,0xdf,0x4d,0x75},
+       { 0x9b,0x8f,0x9f,0xc4,0xaf,0xa7,0x04,0x0d,0x4e,0x59,0x4d,0x66,0x7c,0x44,0x44,0xb5,0x25,0x88,0x20,0xc0,0x8f,0x89,0x91,0x0e,0xd3,0x42,0x1c,0xb4,0xa9,0x7b,0xb7,0x9e},
+       { 0x9b,0xc8,0xf4,0xcd,0x33,0xb9,0x19,0xcf,0xfc,0x0b,0x71,0x72,0x63,0x1a,0x87,0xd3,0x5b,0xaf,0x27,0xb8,0xa4,0x75,0x28,0xae,0x25,0x29,0x35,0x8f,0x42,0x1a,0xcc,0xb1},
+       { 0x9b,0xd6,0x5a,0xc4,0x0a,0x62,0x5a,0x81,0x90,0x4f,0xe7,0x8f,0x89,0x35,0x25,0x1e,0x5c,0x66,0x91,0xf0,0xb3,0xd7,0x24,0x54,0xd3,0x84,0x12,0x01,0xf3,0x9f,0xcd,0x1e},
+       { 0x9c,0x70,0x8d,0x5b,0xab,0x37,0xf5,0xb6,0xbc,0x8a,0x77,0x53,0x12,0x57,0x2a,0xb2,0x79,0x21,0x6d,0x55,0x6d,0xa7,0x4a,0xc2,0xa7,0xc0,0x41,0xe8,0xce,0xb0,0xbe,0x0a},
+       { 0x9c,0x85,0x31,0xe7,0xc8,0xfb,0xda,0xb8,0x61,0x4d,0x56,0x17,0x79,0x9e,0x00,0x6b,0x69,0x42,0xe4,0x20,0xc4,0x07,0x1d,0x7d,0xb8,0x9c,0xd7,0x72,0x81,0x69,0x16,0x70},
+       { 0x9c,0xca,0x23,0x7c,0xdf,0xca,0x2c,0x72,0xc6,0x09,0x25,0x4a,0x72,0x57,0xfe,0xd5,0x3a,0xf1,0x44,0xab,0xc2,0x5e,0xcd,0x8e,0xf7,0x01,0x30,0x8c,0xb1,0x3c,0xf7,0x69},
+       { 0x9c,0xf9,0x96,0xc5,0x3a,0x2a,0x7b,0x1a,0x99,0xae,0x53,0x0f,0xc4,0x36,0x19,0x62,0x28,0xea,0xe4,0x79,0x72,0xae,0x9c,0xb0,0x69,0xb1,0x8c,0x29,0xe3,0x30,0x40,0x9c},
+       { 0x9d,0x32,0x0d,0x7b,0x3d,0x46,0x34,0x5f,0x0f,0x2d,0xec,0xb7,0x62,0xa4,0x81,0x7b,0x26,0xa9,0xa7,0xcf,0xe8,0x71,0xb1,0x3e,0x84,0xe7,0xec,0x81,0x0a,0xae,0xb6,0x2c},
+       { 0x9d,0x50,0xb9,0x1d,0xb0,0x1b,0xd1,0x89,0x9a,0xf8,0x17,0xad,0xbf,0xdc,0x24,0x8f,0x75,0xc8,0x43,0x53,0xa9,0xae,0x7a,0x0b,0xb4,0xd1,0x56,0x32,0x9b,0xdb,0x51,0xe0},
+       { 0x9d,0x6b,0xdf,0xcf,0x0c,0xbf,0xfe,0xea,0x3b,0x1a,0xc7,0xe9,0x63,0xcb,0xb5,0xf2,0x7f,0xbd,0xa8,0x9d,0x27,0x77,0xf6,0x0e,0x56,0x5b,0x27,0x78,0x54,0xef,0xb0,0x19},
+       { 0x9d,0xac,0x33,0x14,0xb2,0x5b,0xb7,0x9a,0x39,0xcd,0x01,0xec,0x4b,0x33,0xa1,0x2f,0x47,0x51,0x2f,0x54,0x09,0xff,0x09,0x5d,0x40,0xaa,0xd6,0x20,0x84,0xef,0x15,0xbe},
+       { 0x9d,0xac,0x9d,0x66,0xde,0xd0,0xc1,0x5d,0x23,0x24,0x1a,0x90,0x78,0xa9,0x1e,0xc1,0xe9,0x40,0x70,0xa1,0x5c,0x70,0x29,0x45,0x02,0xfe,0x73,0x8d,0x12,0x1c,0xca,0xac},
+       { 0x9e,0x0b,0xf3,0x1a,0xc8,0x33,0xf8,0xb1,0x40,0x4c,0xca,0xb1,0x23,0x84,0x63,0x48,0xa0,0x3c,0x0f,0xf5,0x11,0xc6,0xec,0x05,0xa8,0x6d,0xf0,0xdb,0x51,0x92,0xa5,0x2b},
+       { 0x9e,0x2e,0xc8,0xe6,0x1c,0x76,0x0d,0x8e,0x1b,0x94,0x2c,0xea,0x8c,0x2d,0x55,0xa9,0xf1,0x8d,0x3c,0xd8,0x4c,0x0b,0x9b,0x5b,0x23,0x4d,0x15,0xac,0x56,0x8e,0x0e,0xcd},
+       { 0x9e,0x80,0xd0,0x33,0xe6,0x10,0x90,0x7b,0xfe,0x1f,0xd8,0xdf,0x2d,0x36,0xdd,0xef,0x00,0xc8,0xfc,0x7b,0xf7,0xb7,0xfd,0x7e,0x8d,0x45,0x92,0xab,0xf3,0xc4,0x21,0xde},
+       { 0x9e,0x85,0xd4,0xac,0x8b,0x36,0x0e,0x4d,0xb2,0xed,0x37,0x34,0x10,0x16,0xe3,0x7b,0xd5,0x5c,0x2d,0x59,0x79,0x5d,0x0a,0x7c,0x26,0xa4,0x4e,0x7e,0x80,0x98,0x3e,0x75},
+       { 0x9e,0x98,0xf7,0xda,0x04,0x74,0xd4,0x86,0x5a,0xc7,0x05,0xd4,0xd7,0xab,0xbe,0xb7,0x1a,0xef,0xba,0x2c,0xf2,0xe0,0x82,0xf0,0x5f,0xed,0x53,0x62,0x41,0x4b,0xd3,0x93},
+       { 0x9e,0xea,0x28,0xdf,0x01,0x4d,0x91,0x24,0x4f,0xf9,0x31,0x4f,0x43,0x4a,0x84,0x7b,0x65,0x89,0xc1,0xf2,0x03,0x58,0x33,0x9d,0x79,0xfc,0xa6,0x76,0x63,0x2d,0xff,0xfe},
+       { 0x9f,0x24,0x5c,0x0a,0x0e,0xc6,0x3a,0xaa,0xcb,0xf9,0x69,0xc6,0xfc,0x24,0xa1,0x07,0x15,0x83,0xb7,0x79,0xa5,0x8a,0xb6,0x23,0xdd,0x15,0x31,0xa2,0xca,0x9f,0x87,0x51},
+       { 0x9f,0x41,0xc4,0x19,0xda,0x0b,0xe3,0x20,0x5e,0xa3,0x84,0xf9,0x08,0xf0,0x5f,0x42,0x8e,0xd9,0x13,0xb1,0x49,0x93,0x3a,0x67,0x2f,0x79,0x67,0x60,0x0c,0x02,0x0f,0x1e},
+       { 0x9f,0xaf,0x1c,0x11,0xa3,0xc7,0xe2,0x41,0xf8,0x63,0x71,0x97,0xe8,0x99,0x68,0xdb,0x86,0x6a,0xd0,0x1a,0x5d,0x4e,0xd5,0x34,0x59,0x48,0x65,0xb9,0x70,0x75,0xf2,0x60},
+       { 0x9f,0xc3,0xa4,0xdd,0xd9,0x8a,0xdd,0xb2,0xce,0x89,0x3b,0xd6,0x84,0x2c,0x48,0x89,0xa3,0x1f,0x4b,0x95,0xe1,0x69,0xd2,0x3d,0xc5,0x54,0xe6,0x02,0x4d,0xec,0x98,0xa9},
+       { 0x9f,0xe0,0x91,0x58,0x70,0x38,0x5d,0xdb,0xb6,0x2f,0xa6,0xe3,0x23,0x95,0xeb,0xe8,0x33,0x34,0x46,0x00,0x43,0x6d,0xac,0xc9,0xb5,0x69,0x21,0x4e,0xeb,0x8c,0x0a,0xf0},
+       { 0x9f,0xf9,0x38,0x40,0xb0,0x1f,0x96,0xb6,0xf3,0xc3,0x10,0xa0,0x21,0x90,0xad,0xc3,0x3a,0x15,0x69,0x39,0x5b,0xbc,0xee,0x11,0x6a,0x15,0xe1,0x58,0xa6,0x2b,0xa5,0x0b},
+       { 0xa0,0x05,0x20,0xb9,0x68,0xbf,0xcb,0x63,0x40,0x87,0x9f,0xa8,0x43,0x82,0x0c,0xec,0x95,0x45,0x86,0x0f,0xe2,0x9e,0x2f,0x8f,0xee,0x00,0xb0,0x0f,0xf8,0x43,0x42,0x74},
+       { 0xa0,0x44,0xf2,0xc0,0x41,0xf4,0x18,0x5b,0xc0,0xfe,0x1a,0xd3,0xe0,0xa3,0xe0,0xc2,0x7e,0x24,0xf4,0x58,0xdc,0xb7,0xd9,0x07,0x39,0xb6,0x4a,0x68,0x94,0x45,0xd4,0xb6},
+       { 0xa0,0x77,0x42,0xd5,0xb2,0x99,0x96,0x65,0x06,0x76,0x2e,0x02,0xe4,0x20,0xf1,0xa9,0xc4,0xab,0x73,0x29,0xae,0x29,0x5f,0x01,0x5f,0x74,0x7d,0xa1,0x82,0xa9,0xc3,0x9c},
+       { 0xa0,0xab,0x9f,0x42,0xd0,0x9d,0x06,0x44,0x23,0x8c,0x63,0xf2,0x19,0x26,0x52,0x8f,0xa5,0x3e,0x56,0x6d,0x83,0x3e,0xf1,0xb0,0x8d,0x9e,0xe7,0xf3,0x4d,0x2b,0x6d,0x8e},
+       { 0xa0,0xc2,0xd2,0x07,0xa4,0x7e,0x18,0xd0,0x37,0x14,0xd5,0xb3,0x44,0x5d,0x88,0xbe,0x81,0xff,0x5e,0x1d,0x16,0x07,0x3d,0xc1,0x16,0x6b,0xb5,0x44,0x8f,0xf6,0x52,0xdf},
+       { 0xa0,0xc8,0xa5,0x3f,0xd7,0x58,0x3e,0x43,0x91,0xbe,0xb8,0xd0,0xfe,0xd8,0x43,0x1f,0x61,0xb8,0x52,0xc1,0xbe,0x43,0xab,0x91,0x61,0x4b,0xbb,0xeb,0x3b,0x4f,0x47,0x4e},
+       { 0xa0,0xfe,0xf8,0x2e,0xad,0xf5,0xfe,0xec,0xf8,0x99,0x16,0xda,0x89,0x4b,0x2f,0xa5,0x18,0x29,0x25,0x6e,0xb9,0x59,0x01,0x8d,0x8b,0xc5,0x1c,0x88,0xb4,0x50,0xc9,0xd3},
+       { 0xa1,0x14,0xa3,0x50,0x0a,0x66,0x1c,0x15,0x5a,0xb1,0xa8,0x99,0x7e,0xfc,0xfd,0xd7,0xa1,0x38,0x3e,0xa0,0x5e,0x45,0x2c,0x55,0x1b,0xb0,0xc8,0xbd,0x8e,0x4a,0xaa,0xda},
+       { 0xa1,0x50,0x03,0x2f,0x4e,0xf5,0xd4,0xfe,0xb0,0xae,0x4a,0xe1,0xcd,0x54,0x35,0xba,0x04,0xa9,0xb6,0xa0,0xf9,0x0e,0x2f,0x3c,0x4b,0x8a,0x7b,0x69,0xe7,0xc8,0x7e,0x43},
+       { 0xa1,0x97,0x7d,0x0c,0x92,0x7c,0x21,0xeb,0x47,0x6f,0x67,0xbe,0xfe,0xd6,0xcf,0x2c,0x61,0xb7,0x45,0xf0,0xce,0x8d,0x26,0x58,0x3d,0x03,0xb2,0x70,0x02,0xd5,0xcd,0xaf},
+       { 0xa1,0xa3,0xf6,0x88,0xff,0x45,0xf6,0x56,0x75,0x7a,0x24,0x52,0xd5,0xdb,0xcd,0x15,0x39,0x4a,0xc1,0x1a,0xf3,0x8c,0x2f,0xea,0x0c,0x7c,0x39,0x07,0xfe,0xc4,0xb7,0x8c},
+       { 0xa1,0xf7,0xa0,0x7a,0x4a,0x67,0xf6,0xff,0x96,0xcb,0x97,0xb8,0xad,0x2b,0x59,0xbe,0xf6,0xb1,0xf3,0x03,0x80,0xab,0x38,0x3f,0xad,0xf1,0x23,0x95,0xa4,0xbb,0x08,0x14},
+       { 0xa2,0x39,0x3f,0x9c,0x59,0x6c,0x5f,0xe2,0xc6,0x49,0x39,0xc6,0x00,0x43,0x70,0x8d,0x5f,0xc6,0x5f,0x0c,0xe8,0x3e,0x00,0x73,0x9d,0x75,0xa3,0x31,0xcc,0xea,0x84,0x45},
+       { 0xa2,0x3e,0xd1,0xb5,0x14,0x44,0x95,0xf7,0x29,0xd1,0x90,0xad,0xe0,0x7c,0xa9,0x38,0xbc,0x7d,0x9f,0x6d,0x26,0xf7,0xe4,0xf6,0x0b,0x50,0x52,0xde,0x66,0x64,0xdd,0x64},
+       { 0xa2,0x6b,0xa6,0x8b,0xd5,0x7f,0x66,0x70,0x89,0xb7,0x52,0x56,0x1d,0x87,0x12,0xf0,0x8c,0x7d,0x96,0x3d,0x0f,0xcd,0x36,0xac,0x58,0x99,0x8e,0x4c,0x1f,0xd3,0xe2,0xda},
+       { 0xa2,0x6c,0x37,0x5e,0xb3,0x19,0x6e,0x28,0x3b,0xec,0x60,0x3d,0xb6,0xbb,0xda,0xe2,0x49,0x55,0xe4,0xba,0x91,0x0c,0xd4,0x2d,0x9e,0xac,0x55,0xca,0xc6,0x10,0x3a,0xb9},
+       { 0xa3,0x36,0x7e,0xdd,0x97,0xbe,0x14,0x34,0xba,0x2c,0x9c,0xd0,0x05,0xf0,0x1f,0x5c,0x91,0xa9,0x32,0x78,0xfa,0x14,0xab,0xef,0x73,0x3c,0x43,0xa6,0x9f,0xca,0x09,0x6e},
+       { 0xa3,0x75,0x46,0x27,0x03,0x85,0x5b,0x0f,0x31,0x40,0xfd,0xa3,0xb5,0x3a,0xc4,0x2c,0x0e,0x09,0x0e,0xa4,0x91,0x20,0x21,0xb0,0x4b,0x1e,0xb4,0xf2,0xb2,0xd5,0xd9,0xc6},
+       { 0xa3,0xa4,0xfc,0x03,0xe1,0x75,0xf2,0x68,0x02,0x57,0x46,0x34,0xde,0x70,0x7d,0x2f,0x92,0xf4,0xd0,0xcb,0x90,0xcd,0xb6,0x1d,0xd1,0x95,0x8b,0xcf,0x0c,0x55,0x20,0x86},
+       { 0xa4,0x46,0x9f,0x13,0x11,0x77,0xd7,0xfd,0xab,0x22,0x64,0xb2,0xc9,0xfa,0x76,0xac,0x05,0x0f,0x42,0xc6,0xd6,0x80,0x2b,0xa4,0x07,0x22,0xd6,0x48,0x51,0x24,0x25,0x1c},
+       { 0xa4,0x55,0x6d,0x49,0x3b,0x52,0x03,0xad,0xe9,0xac,0x0a,0xab,0x86,0xe4,0x21,0xdb,0xcf,0xb2,0x61,0x00,0x84,0x07,0xf3,0xc6,0x7b,0x10,0xd7,0xcf,0x48,0x9d,0xb8,0x83},
+       { 0xa4,0xb4,0xe2,0xa5,0x14,0x66,0xb8,0x81,0x06,0xd3,0xa0,0xcb,0x4c,0x75,0x26,0xf1,0x0d,0x21,0x80,0x90,0x30,0x82,0x80,0x98,0xf4,0x87,0x78,0x5e,0x98,0x78,0xe6,0x9c},
+       { 0xa4,0xcd,0x89,0xe0,0xff,0xc1,0xe7,0xd4,0xdf,0x81,0x5a,0x52,0x1f,0x98,0x19,0x5e,0x1b,0x64,0xb0,0xe8,0xa9,0xcd,0xb9,0x7c,0x26,0x59,0x55,0x0a,0xea,0x02,0x4d,0xa2},
+       { 0xa5,0x22,0xad,0x4e,0x88,0x20,0xd2,0x31,0x0d,0xf1,0x36,0x76,0x2b,0x25,0x32,0x41,0x2d,0x00,0xa5,0x03,0x1b,0x70,0x28,0x9a,0xe6,0x06,0xc9,0xa5,0x8b,0xfb,0xdb,0xd7},
+       { 0xa5,0x58,0xcc,0x2e,0x2f,0xe1,0x06,0x81,0x12,0x0b,0xd2,0x57,0x94,0xf8,0xca,0x20,0xb0,0x94,0x3f,0xbd,0x13,0x6e,0x4b,0x36,0x77,0x30,0xf0,0x5e,0x71,0x21,0xf8,0x97},
+       { 0xa5,0x60,0x81,0x15,0x27,0xb1,0xfc,0x3e,0x25,0xaf,0x12,0xc6,0x10,0xd3,0x58,0x18,0x43,0x32,0x10,0xd3,0x15,0x27,0x56,0x45,0x67,0xdb,0x9f,0xf1,0xa2,0xed,0x66,0x90},
+       { 0xa5,0x61,0x59,0x83,0x9a,0x9e,0x88,0xa6,0x18,0xed,0xb3,0xce,0x3b,0x8f,0x16,0x52,0x35,0x22,0xaf,0x8b,0x0c,0x53,0xee,0x1e,0xa0,0x85,0x38,0xb8,0x88,0x29,0xc9,0x2d},
+       { 0xa5,0x67,0x98,0x6c,0xe0,0xe3,0x36,0xf8,0x4f,0xdc,0x08,0x15,0xb8,0x6e,0xa3,0x03,0x34,0x3c,0xf8,0xc1,0x0f,0x37,0x27,0x83,0x27,0x14,0x86,0xb9,0xc9,0x3b,0x63,0x67},
+       { 0xa5,0x6a,0x64,0x81,0xfe,0x83,0xda,0xb2,0xeb,0xa7,0x01,0x1d,0x91,0x3d,0xb1,0xa5,0x65,0x83,0xb1,0x3a,0xa9,0x69,0xc8,0x32,0xe7,0x7e,0x22,0xfe,0xbc,0xc9,0xe1,0x30},
+       { 0xa5,0x9c,0xae,0xc7,0x30,0x06,0xb3,0x36,0x8f,0x19,0x6d,0x6e,0x12,0x17,0x48,0x2d,0xd6,0x61,0x0e,0x39,0x5f,0x27,0x1f,0x91,0x31,0x51,0x9c,0x02,0x2b,0xe2,0x1a,0x02},
+       { 0xa5,0xdb,0xaf,0x01,0xd3,0xd5,0x79,0xee,0x8a,0x48,0x8e,0xe8,0xd7,0x44,0x09,0x58,0xf7,0xbf,0x97,0xa2,0xbc,0xa8,0xd9,0x71,0xf6,0xf8,0x97,0x10,0xbc,0x2d,0x10,0x6f},
+       { 0xa6,0x13,0x01,0x30,0x19,0xbb,0x3e,0xec,0x44,0xcc,0xba,0x1b,0x46,0xbd,0x14,0x09,0x62,0x5d,0x25,0x82,0x4e,0x88,0x2a,0x5f,0xf8,0x63,0x5b,0x4c,0x41,0x83,0x2e,0x3c},
+       { 0xa6,0x21,0xae,0x36,0x54,0xac,0xfd,0x17,0x23,0x30,0x70,0xe9,0xb1,0x8d,0xfd,0x91,0x6a,0x55,0x2e,0x6a,0x8b,0x82,0x42,0xbd,0x57,0xbb,0xcd,0xf4,0xe6,0x5e,0x99,0x76},
+       { 0xa6,0x26,0x87,0xde,0x88,0x0c,0xf3,0x35,0xae,0x42,0x4d,0x4a,0xde,0x29,0xc7,0xec,0x33,0xbf,0xb9,0xf8,0x6e,0xc7,0xfc,0xaf,0x61,0x9d,0x71,0x7c,0x86,0xb8,0xfb,0xbc},
+       { 0xa6,0x33,0x5d,0xf3,0xab,0xa5,0xea,0xdf,0xbd,0xc9,0xc2,0xdc,0x9d,0x6b,0xe6,0x0b,0xb6,0x2d,0xf2,0xfe,0x24,0xec,0x7b,0xa7,0x67,0xbe,0x65,0xd3,0x7f,0x3c,0x90,0xf8},
+       { 0xa6,0x5c,0xae,0x6c,0x12,0xe4,0x7f,0x8f,0x67,0x0c,0x69,0x37,0xb1,0xf0,0xe1,0x5c,0xf3,0xa4,0x4c,0x11,0x9c,0xaf,0x5e,0x32,0x6d,0x8d,0xb0,0x81,0xbe,0x4f,0xc3,0x0a},
+       { 0xa6,0x62,0xfc,0x81,0xc9,0x09,0x34,0xb9,0xb4,0xd6,0x30,0xb5,0xd8,0x2e,0x86,0xf2,0x36,0x3e,0xc1,0x5c,0xcf,0xcd,0xaf,0xa7,0xa2,0x0c,0x9b,0x4e,0x3a,0x90,0x0d,0xd1},
+       { 0xa6,0x90,0xb4,0x5e,0x85,0xd9,0x97,0xf3,0x3c,0xbe,0x1b,0xe7,0x5b,0xc3,0xd8,0xe7,0x66,0x3a,0xfc,0x0b,0x62,0x00,0xbf,0x4d,0x74,0x79,0x0c,0x17,0x9f,0xf0,0x6a,0x10},
+       { 0xa6,0xa4,0xa3,0xf6,0x1f,0xa5,0x8c,0xe9,0x70,0xb4,0x58,0xb7,0xc3,0x7c,0x05,0x2e,0xad,0x1e,0xb2,0x0b,0x85,0x67,0xe3,0x51,0xad,0x8e,0x6f,0xba,0x49,0xc2,0x69,0x2c},
+       { 0xa6,0xb6,0xda,0xd4,0x51,0x5b,0x1c,0xfc,0x70,0x37,0x1c,0xfc,0xfc,0x32,0x30,0x71,0x0e,0x30,0xef,0xe4,0x0f,0x95,0xd5,0x20,0xaf,0xc8,0x65,0x31,0xe8,0xc8,0xf8,0x41},
+       { 0xa6,0xde,0x6c,0x3b,0x8c,0x14,0x05,0xcb,0xe1,0x2d,0xb4,0x09,0x97,0x61,0x71,0xac,0xb5,0x1f,0xb3,0xdc,0xfb,0xb7,0x6e,0xe3,0x84,0x95,0x39,0xcd,0x8a,0xb0,0x66,0xdf},
+       { 0xa6,0xf1,0xfa,0xc9,0x75,0x7d,0xfc,0xb0,0x66,0x9f,0x1f,0x54,0x68,0xac,0xf6,0xea,0x83,0x84,0xb7,0xc2,0xc3,0x0e,0x40,0xaa,0xa9,0x39,0x21,0xf2,0x38,0x72,0xca,0xed},
+       { 0xa7,0x08,0x0d,0xeb,0x9a,0xfe,0x85,0xba,0x27,0xfe,0xb4,0xa9,0xc2,0xf9,0xa7,0x54,0xf3,0xd5,0xff,0xe6,0xc3,0xc4,0xee,0x95,0x56,0x63,0x1c,0xe7,0xea,0x20,0x22,0x72},
+       { 0xa7,0x0f,0x0c,0xe2,0xd4,0xfb,0xe6,0x63,0x6a,0x7a,0x48,0x94,0x3c,0xbd,0x2d,0x99,0x0e,0x40,0xfa,0xa6,0xd8,0x56,0x87,0x7f,0x45,0x5b,0xf0,0x15,0xf5,0x45,0x11,0x3c},
+       { 0xa7,0x36,0xb1,0x97,0xe6,0xfb,0x3b,0x62,0x32,0xed,0xb3,0xc8,0xd6,0x8c,0xe1,0x35,0x1a,0x48,0xb5,0x6f,0x70,0x11,0xbb,0x99,0x20,0xcf,0xca,0x75,0x7e,0x57,0xc6,0xc4},
+       { 0xa7,0x5d,0x18,0x19,0x6f,0x2f,0x30,0xf0,0x36,0x12,0x7c,0x67,0x58,0x14,0x9d,0x1e,0xe3,0xdc,0x4f,0x03,0x02,0x68,0x74,0x05,0x9e,0xa4,0x58,0x7c,0x77,0x5a,0x65,0x21},
+       { 0xa7,0x7c,0x12,0x1c,0xce,0x27,0x74,0xbc,0xdd,0x8c,0xd5,0x64,0x71,0x8c,0x83,0x18,0xf8,0x1a,0xec,0x99,0x97,0x00,0xd9,0xb9,0x85,0x9c,0x2d,0xb7,0x63,0x8a,0xac,0xc0},
+       { 0xa7,0x7e,0x5c,0x39,0xeb,0x66,0xa9,0x48,0x74,0x88,0xc7,0xd1,0x44,0xc6,0x37,0xb6,0xb4,0xc5,0xcd,0xa2,0x09,0x02,0xd8,0x22,0x95,0xb7,0x5b,0xff,0xd5,0xb9,0x61,0x98},
+       { 0xa7,0x86,0x18,0xd8,0xa7,0xf0,0x08,0xaf,0xdc,0x72,0x44,0x98,0x2c,0x11,0x34,0xc5,0xdc,0x91,0xec,0x94,0x25,0xbf,0xef,0xc8,0xcc,0x0a,0xf8,0xf8,0xc7,0x59,0x61,0xc2},
+       { 0xa8,0x53,0xad,0xc1,0xc2,0x18,0x59,0xaf,0x7c,0x46,0x2b,0x4a,0xa0,0xa5,0x74,0xca,0x9f,0xee,0xfb,0x18,0x5a,0x1f,0xdb,0xb6,0xc1,0x0e,0x17,0xd6,0x01,0xb7,0x09,0x8f},
+       { 0xa8,0x7f,0x0d,0xf3,0xeb,0x2c,0x90,0x1f,0x11,0x6f,0x6a,0x8b,0x01,0xe2,0x95,0xcd,0x60,0x72,0x69,0x5a,0xb1,0x65,0x4b,0x7b,0xf9,0xc4,0x7e,0x06,0x20,0x25,0x6f,0x81},
+       { 0xa8,0xc6,0xb0,0x72,0x2a,0x0d,0x13,0xdc,0x8b,0x7f,0xbb,0x20,0xbc,0x66,0xe6,0x03,0x0e,0x4b,0xde,0x99,0xea,0xca,0x9c,0x96,0x5d,0x34,0x65,0xc9,0xab,0xff,0x64,0x11},
+       { 0xa8,0xdf,0xf0,0x6a,0x17,0x35,0xb4,0x6d,0x17,0xda,0xeb,0xc3,0x43,0x43,0x18,0x31,0x3b,0x2d,0x9e,0x7c,0x3e,0xf4,0x8f,0x28,0x53,0x75,0x35,0x13,0xe1,0xb2,0x53,0xa8},
+       { 0xa8,0xe3,0x8c,0x6e,0xc0,0x93,0xf5,0xaf,0x53,0x88,0xf1,0xe7,0x66,0xd7,0x5f,0xfb,0x57,0xdd,0xbe,0x3e,0x9d,0xc2,0xe0,0xbe,0x57,0xbb,0x88,0x36,0x46,0xc5,0xc0,0x32},
+       { 0xa9,0x0b,0x8d,0xe1,0x7f,0x6b,0x68,0x37,0x56,0x21,0x2d,0xb3,0xab,0x34,0x89,0x6e,0x91,0x70,0x93,0x11,0x3e,0x47,0xca,0x35,0x96,0x2e,0xac,0xca,0x9c,0xb3,0x86,0xf0},
+       { 0xa9,0x20,0x6f,0x6d,0x45,0x43,0xed,0x74,0x4a,0x5f,0x15,0x4a,0xcb,0x44,0x50,0x89,0x6b,0x62,0x5d,0x7e,0x32,0x33,0x85,0xa9,0xfd,0x25,0x63,0x93,0x2f,0x9c,0xcc,0x1b},
+       { 0xa9,0x4c,0xc9,0xde,0x55,0x52,0xa6,0xd9,0x6f,0xe4,0x10,0xbe,0x03,0x97,0x6f,0x6b,0x0d,0x4d,0xa0,0x5d,0x73,0x7a,0xd2,0xa3,0x1e,0x0b,0xad,0x90,0x82,0xa5,0x77,0xb1},
+       { 0xa9,0x5c,0x06,0x3e,0x9e,0x35,0x84,0xe5,0x99,0x88,0xf0,0x73,0x86,0x4c,0x18,0x76,0xb5,0xdf,0x9b,0x44,0xc6,0x1b,0x4a,0x8b,0xe4,0x83,0xbe,0x05,0xcf,0xd1,0xa1,0xa6},
+       { 0xa9,0x67,0x07,0x76,0x47,0x9a,0xb3,0xa1,0x4f,0xcd,0x01,0x56,0x63,0x86,0xcc,0x45,0xcf,0xa0,0x53,0x5a,0xe0,0xe9,0x54,0x5f,0x86,0x3b,0xcf,0x7a,0x7c,0xd6,0x1a,0x2b},
+       { 0xa9,0x71,0x2f,0x85,0xed,0x2e,0x25,0xad,0xa5,0x7d,0xc1,0xf0,0xf8,0x6d,0xe1,0x07,0xb5,0xe2,0xf0,0x36,0x09,0x53,0xf1,0xed,0x12,0x5e,0x37,0x07,0x59,0x47,0x1d,0x09},
+       { 0xa9,0x7c,0x77,0xca,0x22,0xeb,0x80,0xcc,0x7b,0xa9,0x62,0xeb,0x58,0x03,0xbf,0xce,0x89,0x6d,0x57,0x43,0xdb,0x12,0x84,0xc8,0xad,0xba,0x37,0x91,0x7d,0xf8,0x03,0xb1},
+       { 0xa9,0x94,0xc9,0x09,0x10,0x60,0x9a,0xf5,0x0a,0x4c,0x09,0x22,0x97,0xc9,0xb4,0xc7,0xf1,0x03,0x96,0xaf,0x73,0x95,0xe9,0xe1,0xbf,0xb8,0x99,0x53,0xfa,0x15,0x25,0x9b},
+       { 0xa9,0xe2,0x85,0xd1,0xc2,0xe8,0xca,0x53,0xce,0x97,0xbb,0xa6,0x54,0x8c,0xa2,0xf8,0x59,0xe4,0xc1,0xf5,0xf3,0x57,0x6c,0xa3,0x2d,0x03,0x30,0x6e,0x42,0x3e,0xf2,0x5e},
+       { 0xaa,0x0e,0x12,0x52,0x43,0x6d,0xef,0x79,0x07,0xfb,0x99,0xf7,0x64,0x15,0x50,0xd8,0x0f,0xaf,0xfb,0xf3,0x01,0x71,0x1c,0x7b,0x6b,0xef,0x59,0x6f,0x94,0x10,0xef,0xd2},
+       { 0xaa,0x4b,0xb3,0x6f,0x51,0xd3,0xc5,0x33,0xb5,0x27,0x23,0xcf,0x66,0xa5,0xa9,0x9f,0xc1,0x2f,0x11,0xd4,0xcc,0x12,0x87,0x56,0xa5,0xa3,0xe8,0x9c,0x57,0xbb,0x97,0x51},
+       { 0xaa,0xeb,0xfe,0x2d,0x21,0xb7,0xe5,0x35,0x1b,0xb9,0x99,0x69,0x44,0x44,0x19,0xef,0x21,0xc9,0x68,0x8c,0xe0,0x53,0x24,0x88,0x84,0xca,0xb0,0xb8,0x95,0x10,0x30,0xff},
+       { 0xab,0x41,0x28,0x10,0x9c,0xab,0x8a,0x58,0x7c,0x8f,0xf4,0xc7,0xf6,0x87,0x34,0x49,0x98,0x18,0xd1,0x3f,0x52,0x26,0x76,0xd0,0x66,0xb3,0x52,0x17,0x6f,0xd2,0x35,0x96},
+       { 0xab,0x80,0xd9,0xba,0x0a,0xef,0xad,0x7b,0xec,0xce,0x7f,0x5e,0x61,0x59,0x9a,0xf5,0x26,0x69,0xbf,0x59,0x50,0x7f,0x8e,0xf1,0x99,0x13,0xc4,0x2e,0xe1,0x29,0xda,0xf0},
+       { 0xab,0xa1,0x08,0xa4,0xb1,0x89,0x3d,0x18,0xa3,0x88,0xb7,0x22,0x54,0x1c,0xa2,0xc0,0x05,0xc2,0x69,0x9a,0x61,0xfe,0xab,0xbf,0x61,0x7a,0xaa,0xdd,0xd4,0x9e,0xa9,0x4d},
+       { 0xab,0xa7,0x8e,0x90,0xf3,0x24,0x17,0xae,0xc2,0x8e,0xea,0x30,0x22,0xa2,0xe2,0xb7,0x66,0x1a,0xc7,0x23,0xc8,0x7e,0x0d,0xbc,0xe2,0x33,0xe2,0x16,0x8f,0xcf,0x91,0xb3},
+       { 0xab,0xdd,0x1e,0xa9,0x43,0xc2,0x32,0x71,0x63,0x8e,0x8f,0x96,0xfc,0xd0,0xdd,0x3d,0xf5,0x45,0x07,0x9d,0xb7,0x08,0xea,0x64,0x92,0x5b,0x62,0xad,0x92,0x3c,0x43,0xd5},
+       { 0xab,0xeb,0x6a,0xa0,0xd1,0xb0,0xe0,0x49,0xd6,0x9d,0xf8,0x3a,0xdd,0x19,0xf7,0x26,0x8a,0x38,0xde,0x6c,0x00,0x72,0x60,0x68,0xc2,0xee,0xe4,0x55,0x44,0xf6,0xd6,0x7a},
+       { 0xab,0xed,0xe5,0xb0,0xe2,0xb1,0x5f,0xfe,0xf1,0x84,0x71,0xc4,0x53,0xf0,0xc4,0x85,0xd2,0x78,0xfd,0xe6,0x3f,0x82,0x74,0x13,0xcc,0x10,0xde,0x4b,0x82,0xde,0xf6,0x8d},
+       { 0xac,0x1b,0x4c,0x64,0x6c,0xae,0xfb,0x10,0x8a,0x54,0xca,0xb5,0x4a,0x96,0xe9,0x66,0x6e,0x72,0xa8,0x20,0x22,0x44,0xef,0x3d,0x7c,0xa9,0x34,0xdf,0xcc,0x24,0xfc,0xa7},
+       { 0xac,0x7c,0x14,0xb9,0x56,0x8f,0x92,0x07,0x5a,0xd4,0xa3,0xba,0x3d,0x4b,0x01,0x84,0x91,0xf3,0x66,0x1a,0x37,0x9b,0x3d,0xfe,0xdd,0x6f,0xd3,0xc3,0x2e,0xfa,0x84,0x7d},
+       { 0xac,0x8c,0x6f,0x03,0xe4,0xba,0xcf,0x72,0x20,0x25,0xdb,0x54,0xd0,0xfa,0xae,0x7d,0xbe,0x51,0x37,0x97,0x37,0x39,0x45,0x05,0xf0,0x86,0xaa,0x89,0xe2,0xd4,0xf7,0x3b},
+       { 0xac,0x90,0x98,0xf6,0x4f,0xe1,0x03,0xc8,0xc1,0x40,0x30,0xdb,0xce,0xdd,0x63,0xd1,0xd1,0x7c,0x33,0x8e,0xbd,0x1d,0x7d,0xe5,0x6c,0x79,0xd2,0x1a,0x6f,0x2e,0x47,0xa7},
+       { 0xac,0x91,0x0b,0x02,0xb4,0xab,0x08,0x16,0xf0,0xd9,0x52,0x0c,0x94,0xd3,0x6c,0x28,0x93,0x38,0x8c,0x6a,0xe1,0xca,0x37,0xa2,0x4d,0x48,0x92,0x70,0x2a,0xc7,0xcd,0x0c},
+       { 0xad,0x4b,0x2f,0x8e,0xf2,0xde,0xfb,0x01,0x92,0x3c,0x9c,0x0f,0xe2,0x5a,0x9a,0xce,0x41,0xfa,0x9e,0x69,0x75,0x85,0xfc,0x3d,0xdf,0x8d,0x34,0xe7,0x45,0xff,0x0f,0x12},
+       { 0xad,0x69,0x54,0x5f,0x9f,0x85,0x25,0x5f,0xe4,0x16,0x51,0x3d,0x94,0xdb,0x31,0x50,0x5f,0x38,0x4b,0x52,0x3c,0x2c,0xa2,0x6e,0xdc,0x0a,0x54,0x9a,0x8f,0x16,0x26,0xf9},
+       { 0xad,0xb7,0xf8,0xe5,0x75,0x00,0x60,0xd5,0x87,0xd6,0x02,0x54,0x58,0xfc,0xb0,0xb6,0xce,0x4f,0x3d,0x86,0x79,0x2b,0xaf,0xf0,0xaa,0xcc,0x19,0x0a,0xb7,0x0c,0xb6,0x2c},
+       { 0xae,0x03,0x19,0xfe,0xa6,0xa6,0x5e,0x84,0xe8,0x54,0xb5,0x15,0x50,0xea,0x44,0x4f,0xa3,0xb8,0xbb,0x50,0xae,0x93,0x74,0x01,0x3c,0xfe,0xf3,0x88,0x73,0x5d,0x0b,0xd3},
+       { 0xae,0x2f,0x15,0xea,0x4a,0xa5,0x39,0x81,0x41,0x0f,0x98,0x93,0x81,0xa4,0x41,0x5a,0xf1,0x84,0x3d,0x19,0xe4,0x39,0x07,0xaf,0x53,0xb2,0x0f,0x7f,0xa7,0x73,0x2a,0x93},
+       { 0xae,0x4d,0xf3,0x97,0x9b,0x74,0x27,0x34,0xa3,0x39,0xc4,0x70,0x1d,0x5e,0x13,0x21,0x26,0x3f,0xf4,0x4e,0x67,0x56,0x49,0x05,0xf4,0x9e,0x25,0x34,0x62,0xb8,0x02,0x25},
+       { 0xae,0xe7,0xd6,0x4c,0x89,0x7a,0x32,0xdb,0xca,0xf1,0x15,0x6f,0xc7,0xbf,0xc8,0x00,0x96,0x73,0x85,0xd5,0xb1,0xe3,0x25,0xd8,0xfa,0x3b,0x9c,0x16,0x25,0xbc,0x29,0x92},
+       { 0xaf,0x0b,0x21,0x86,0x24,0x61,0xd1,0xf3,0x9b,0x07,0x44,0xfd,0xc9,0x28,0x77,0x99,0x62,0x01,0x1d,0xfe,0x0b,0xd8,0xd9,0x56,0xc2,0x47,0xb5,0xf5,0xb4,0x43,0x63,0x1c},
+       { 0xaf,0x1f,0x37,0x1f,0x34,0x84,0x57,0x51,0x65,0x2d,0xc7,0x48,0x23,0xf3,0x01,0x5c,0x5a,0x11,0xca,0x65,0x3f,0x28,0x70,0x1e,0xdd,0x4a,0x7e,0x0d,0x23,0x17,0x1b,0xbb},
+       { 0xaf,0x6a,0x9d,0x88,0xad,0xe1,0x24,0xdb,0xf9,0x50,0xb2,0xc4,0x27,0xbc,0x40,0x19,0x63,0xb9,0x61,0x25,0xc0,0xa2,0xae,0xbb,0x7f,0xb3,0xf9,0x8e,0x48,0x7a,0x7f,0xa6},
+       { 0xaf,0x6b,0x80,0x51,0x47,0x14,0x0a,0x0e,0x41,0x81,0xd8,0x6a,0x7e,0x8f,0x07,0x69,0xb6,0x1d,0x46,0xd7,0xb6,0xfa,0xc6,0xe6,0xf9,0x59,0x6d,0xe9,0x4a,0xa8,0xe2,0xe8},
+       { 0xaf,0xb5,0x7f,0x89,0x64,0x9a,0xb3,0x0a,0xf4,0x88,0x43,0x05,0xaf,0x88,0xee,0x56,0x5b,0xa8,0xd3,0xc5,0xc3,0x57,0x4a,0xb8,0x59,0xfc,0x07,0x23,0x2f,0xc6,0x73,0xb9},
+       { 0xaf,0xe7,0xb8,0xee,0xfd,0xf5,0x4e,0x7f,0x1c,0x5a,0x6b,0xed,0xf7,0x54,0xce,0x97,0x0f,0xa1,0x19,0x59,0xe7,0x80,0x38,0xcc,0x36,0x8a,0xc7,0x78,0xb7,0x5c,0x92,0x4b},
+       { 0xaf,0xe9,0x28,0xc5,0x84,0x8e,0xce,0x02,0xc2,0xbd,0xdc,0xd9,0x4b,0x5a,0x59,0x30,0x31,0x50,0x9d,0x78,0x2b,0xeb,0x50,0x20,0xac,0xb3,0x33,0x71,0x49,0x18,0xf0,0x39},
+       { 0xb0,0x16,0x77,0xd9,0xca,0x50,0x46,0x3f,0x21,0x8a,0x5d,0x33,0x9e,0x72,0xf8,0x59,0xf8,0xb4,0x1a,0xe7,0x9d,0xcb,0x8f,0xa1,0x65,0x08,0x45,0xce,0xc4,0xd8,0xcb,0x87},
+       { 0xb0,0x1e,0xb1,0x82,0x68,0x1a,0xa9,0x5d,0x7b,0xea,0xaf,0x53,0xba,0x75,0x5b,0x7f,0x3d,0x0f,0xb7,0x97,0x76,0xd5,0x62,0xb9,0x93,0x8f,0xfe,0x98,0x8d,0x99,0xb3,0x13},
+       { 0xb0,0x5c,0x14,0x33,0x61,0x75,0x9b,0xe1,0x52,0xfd,0x76,0xa5,0xff,0xa4,0x87,0x2d,0xd4,0x2e,0xa0,0x60,0xae,0x40,0xa3,0x83,0x13,0xb7,0xb5,0x4a,0xec,0x06,0x73,0xc2},
+       { 0xb0,0x62,0x43,0x51,0xfd,0x68,0x51,0x23,0x01,0x38,0x56,0xec,0x40,0x63,0x25,0xfc,0xcb,0x16,0x45,0x76,0x50,0xa8,0x71,0xf5,0xfb,0x91,0x5d,0xdd,0x75,0x4a,0x3b,0xc9},
+       { 0xb0,0xb6,0x32,0x1c,0x45,0x9b,0xdb,0x78,0x91,0x8e,0xc3,0x16,0xbd,0x36,0xec,0x5f,0x30,0x55,0x8e,0xe0,0x2e,0xcc,0x51,0xe3,0x77,0xc5,0xf8,0xab,0xa4,0x1d,0xba,0x6d},
+       { 0xb0,0xe0,0xe1,0x6c,0x5f,0x69,0x1f,0x66,0xa9,0x57,0x3b,0xd3,0xcf,0x43,0xf9,0xdf,0xd2,0xad,0x3e,0x56,0x15,0x54,0x63,0x7f,0x1e,0x7b,0x71,0x91,0x4d,0x62,0x73,0x38},
+       { 0xb1,0x61,0xd6,0x09,0x5b,0x6e,0x9b,0x1d,0xb5,0x16,0xda,0x1c,0x2d,0xef,0x9c,0xe9,0x11,0xc7,0xa5,0xbb,0x55,0xef,0xf5,0x05,0x66,0xd5,0xd1,0xe0,0xdc,0x4f,0x45,0xcd},
+       { 0xb1,0x91,0x9d,0x6c,0xfa,0xc2,0x0d,0x03,0x47,0x76,0x87,0x1a,0xb0,0xa2,0x57,0x8a,0xc0,0xb2,0xdd,0xb6,0x8b,0xe1,0xdc,0x75,0x91,0x80,0x44,0x1f,0x05,0x3a,0x27,0x2c},
+       { 0xb1,0x92,0x30,0x7c,0xfa,0xee,0x42,0x7b,0x76,0x7b,0xc2,0xf9,0x9b,0xc2,0x26,0x74,0x26,0x0a,0x4e,0x8e,0x1e,0x6b,0x36,0x19,0x8c,0x2f,0x4e,0xea,0x67,0xca,0x85,0xef},
+       { 0xb1,0xa5,0x89,0x8e,0x3b,0x0d,0x0a,0x7a,0x80,0x76,0x79,0x3d,0x6c,0x63,0xa3,0x22,0xea,0xb7,0x1f,0x7e,0x28,0x74,0x5d,0xef,0xf5,0xa0,0xc3,0x3a,0x8e,0xec,0xe4,0xfa},
+       { 0xb2,0xaf,0x84,0x2d,0x01,0x52,0x07,0x85,0x37,0x0e,0x3e,0xb5,0x9c,0xb8,0x89,0x29,0xde,0x38,0xa7,0x15,0xbf,0x4c,0xef,0x45,0xe5,0x95,0xce,0xed,0x3f,0xea,0x26,0x79},
+       { 0xb2,0xc6,0xf7,0xc6,0x2f,0xa5,0x6a,0x4e,0x57,0xb7,0x62,0xa8,0x9c,0x3c,0x55,0xdd,0x81,0xc1,0x82,0x7e,0xdf,0xb0,0xd4,0x41,0x80,0xe4,0xfa,0xdc,0xeb,0x23,0x72,0x73},
+       { 0xb2,0xdc,0x86,0x25,0x6c,0xcf,0xf4,0xbb,0x14,0xfd,0x70,0x27,0x9f,0xcc,0x3c,0xe9,0x25,0xc5,0x1f,0xb7,0x17,0xe5,0x87,0x6f,0x29,0x1b,0xa1,0x70,0x73,0x43,0x85,0x68},
+       { 0xb2,0xe5,0xfa,0xf7,0xee,0xbe,0xd8,0xc2,0x9c,0x7b,0x83,0x65,0x3a,0xf3,0xfc,0x9f,0x8d,0xe4,0x6e,0xe5,0x3b,0x64,0x9c,0x94,0x53,0x87,0xb0,0xcf,0xf8,0xb7,0x14,0x93},
+       { 0xb3,0x07,0x32,0xe7,0x56,0x52,0x9e,0x38,0x59,0xc4,0x31,0x23,0x86,0x19,0x53,0x34,0x79,0x8e,0x43,0xc4,0xbe,0xbc,0xc4,0xcf,0xed,0xfb,0x2e,0xbf,0xa0,0xdd,0x80,0x0e},
+       { 0xb3,0x0d,0x88,0x44,0x30,0x43,0xf5,0xf3,0x72,0x32,0xbb,0x9b,0xac,0xb9,0x94,0xc5,0xba,0xe9,0x3a,0x46,0xfc,0x87,0xf1,0x51,0x29,0xc9,0x74,0x69,0xa5,0x81,0x4e,0xca},
+       { 0xb3,0x19,0xaf,0x08,0x28,0x68,0x1f,0x97,0x35,0xa4,0x8d,0x11,0x17,0x39,0xb8,0x62,0x89,0xae,0xf7,0xfb,0x81,0x7c,0x04,0x7f,0x12,0x75,0xa5,0x87,0xa7,0x32,0x2c,0x0b},
+       { 0xb3,0x1a,0xf0,0xc2,0xe5,0x1e,0xa2,0x1c,0x91,0x04,0xf9,0x4f,0xaa,0x66,0xe0,0xcc,0xc0,0x41,0x34,0xd5,0x80,0x9a,0x2a,0x26,0x70,0xa3,0xb7,0xbc,0x7d,0xd9,0x64,0xf8},
+       { 0xb3,0x35,0x93,0x3f,0xc9,0x72,0x3e,0x9d,0xaa,0x0d,0x0c,0xe7,0x1c,0x66,0x5a,0xdd,0xa5,0xab,0xda,0xf3,0x5a,0xdb,0x10,0xd7,0x6e,0xdc,0x9c,0x8e,0x4e,0xba,0x05,0x6e},
+       { 0xb3,0x95,0x0e,0x0b,0xd2,0x2c,0x39,0xfa,0xb1,0xdb,0xd7,0xbe,0xb7,0x42,0x56,0xaf,0xb1,0x1d,0xcb,0x26,0x35,0x69,0x70,0x83,0xd6,0x8f,0xdb,0xee,0x80,0xb0,0x5f,0x54},
+       { 0xb3,0xe6,0x42,0x06,0x6e,0x41,0x78,0x67,0xd9,0x0f,0xb9,0xb2,0xba,0x15,0x41,0x98,0xa5,0xc5,0xf6,0xcc,0x82,0x9b,0x51,0x39,0xdf,0xd6,0x91,0xe5,0x1a,0xd3,0x74,0xad},
+       { 0xb3,0xf4,0xb1,0x6f,0x8e,0xce,0xbb,0x41,0x47,0x4f,0x92,0x4f,0xee,0xf9,0xb0,0xbd,0x97,0x9b,0x36,0x36,0xc3,0x4f,0xf2,0x72,0x3f,0x67,0x3c,0x8e,0xee,0x2a,0xf1,0x52},
+       { 0xb4,0x02,0x2c,0x24,0x25,0xa5,0xb7,0x5a,0x9b,0x5e,0x80,0x08,0x1c,0x95,0x3a,0xd3,0xdb,0x93,0xb2,0x52,0xda,0x0e,0x25,0xec,0x8b,0xad,0x0c,0x36,0xaa,0x11,0x09,0x2e},
+       { 0xb4,0x2a,0x78,0xb0,0x6f,0x28,0x15,0xd4,0xa0,0x49,0xfe,0x83,0xf3,0xd2,0x9b,0x38,0x5b,0x90,0xd3,0xd0,0x0b,0xa8,0x57,0xd6,0x2f,0x19,0x67,0x81,0xdd,0xa3,0xd1,0x85},
+       { 0xb4,0x2c,0x64,0xf0,0x25,0xdf,0x8f,0x37,0x0e,0xb7,0xa4,0x69,0x94,0x2b,0x97,0xe2,0xf8,0xb5,0xf4,0xbf,0xac,0xc4,0xcf,0x17,0xd2,0xa0,0x8f,0xca,0x57,0xbb,0xc4,0x9b},
+       { 0xb4,0xae,0x2a,0x6b,0xfc,0xa5,0x31,0xc9,0x9c,0x69,0xb3,0x5a,0xfe,0x67,0x54,0xfc,0x49,0x27,0x5b,0x6c,0xca,0xcd,0xc8,0x26,0x9c,0x27,0x0c,0xdb,0x2b,0x58,0xc0,0x8f},
+       { 0xb4,0xd4,0x67,0xfc,0x5e,0x97,0xdb,0x25,0xa1,0xfd,0xb0,0x06,0xd2,0x77,0x66,0xb9,0x99,0x5b,0xb9,0xc7,0x7b,0x66,0x43,0x97,0x08,0xa4,0x59,0xb0,0x43,0xd0,0x33,0x24},
+       { 0xb4,0xed,0xcd,0x6f,0x8a,0x01,0x82,0xb7,0x17,0xf0,0x6f,0xe1,0xd7,0xac,0x9c,0x62,0x33,0xd4,0x38,0x22,0xe9,0xfd,0x14,0xdb,0x98,0xf7,0xf8,0x4e,0x32,0x79,0x6d,0x08},
+       { 0xb4,0xf1,0xef,0x4a,0xa5,0x1f,0x02,0x1e,0xd2,0x66,0x26,0x44,0xce,0xda,0x31,0x1d,0x86,0xf5,0x64,0x0d,0xaf,0xe9,0xa4,0x39,0x18,0x89,0x37,0xd8,0x09,0x13,0x90,0x75},
+       { 0xb5,0x25,0x36,0x2f,0x68,0x54,0x4a,0xc1,0x8c,0x2f,0x5c,0x19,0x51,0x47,0x94,0x40,0x45,0x8c,0x59,0xd7,0xbb,0x00,0x5f,0x19,0x91,0x17,0x51,0xb4,0xd3,0x97,0x1d,0x5c},
+       { 0xb5,0x3b,0x30,0x01,0x2d,0xbc,0xa0,0x5e,0x6a,0xf7,0xeb,0x9c,0xa2,0xa7,0xdd,0xa7,0xdb,0x0f,0x61,0x21,0x6c,0x9c,0xa4,0x7d,0x48,0x4f,0xa0,0x97,0xcf,0xba,0x2c,0x46},
+       { 0xb5,0x53,0x5e,0x99,0x84,0x36,0xbf,0x17,0x42,0xcf,0x3f,0xb1,0xc1,0x9a,0x66,0x6b,0xde,0x55,0x09,0x4b,0x3e,0xd5,0xcf,0xb2,0x09,0x5d,0xf0,0x8e,0xc6,0xdd,0xf6,0x76},
+       { 0xb5,0xb8,0xd0,0x08,0x69,0xdd,0x78,0x64,0x9d,0xab,0xd4,0x41,0x14,0x08,0xa8,0xff,0x1a,0xc5,0x43,0xec,0xa8,0x80,0xae,0xed,0xb5,0x83,0x28,0xed,0xda,0x47,0x1b,0xfc},
+       { 0xb5,0xe2,0xaa,0x4c,0x7f,0xa4,0x65,0xa9,0x72,0xaf,0x17,0x0e,0x21,0x76,0xd1,0x83,0x51,0xe6,0x8d,0x94,0x95,0x0d,0x87,0x55,0x9c,0x65,0x20,0x43,0xfe,0xcb,0x05,0x2d},
+       { 0xb5,0xe5,0xdc,0xde,0xcb,0x8d,0xeb,0x27,0x13,0x4f,0x02,0xa5,0x18,0x79,0x43,0x16,0xf0,0x8f,0xaf,0x9c,0x2b,0x1f,0xda,0xd6,0xd4,0x86,0x61,0xf5,0x7e,0xa6,0x45,0xd9},
+       { 0xb6,0x60,0x21,0xde,0x5d,0xe8,0x81,0x36,0xbb,0x09,0x49,0x1a,0x46,0xe0,0xfc,0x6b,0x69,0x33,0x9b,0xd9,0xac,0xc9,0xa4,0xea,0x84,0xcc,0x76,0x4c,0x39,0xf5,0x70,0xa3},
+       { 0xb6,0x66,0x7d,0x8e,0xd2,0x85,0x85,0x10,0x8d,0x3d,0x97,0x12,0x72,0xbc,0xb5,0x17,0x82,0x84,0x5b,0xdd,0xeb,0x32,0xfa,0xba,0x96,0x31,0xe5,0x0c,0x0c,0x04,0x0b,0x54},
+       { 0xb6,0x67,0xdc,0x46,0x65,0x60,0x6a,0xca,0xee,0xa4,0xc1,0x4d,0xa9,0x1d,0xec,0x87,0x6c,0x2e,0xa3,0x76,0x0b,0xcb,0x1b,0x1d,0x50,0xd7,0x55,0x98,0xa2,0x61,0x8c,0x56},
+       { 0xb6,0x8d,0x56,0xb6,0x8c,0xc0,0x99,0xff,0xde,0xe7,0xd5,0x70,0x1f,0x1e,0x1e,0x97,0x26,0xdc,0x75,0x7c,0x22,0x22,0xb0,0xa0,0x1e,0x4a,0x32,0x72,0xf8,0xb3,0x84,0xf2},
+       { 0xb6,0x90,0x8f,0xab,0x0c,0xa2,0xd7,0xd6,0x5d,0xca,0x8b,0x10,0xd0,0x1f,0x08,0x48,0x13,0x1c,0x1c,0x32,0x10,0xa2,0x5b,0x47,0xc7,0x9e,0x33,0xc4,0xac,0x09,0x5f,0x7e},
+       { 0xb6,0xcd,0x3f,0x77,0x3a,0xe4,0x02,0xe5,0x2d,0xfe,0x4f,0x14,0xbd,0x11,0x49,0x5c,0x9c,0xa8,0x80,0xf5,0x3d,0x4f,0x5a,0x7a,0x24,0x96,0xe4,0xa9,0xae,0x29,0x53,0x80},
+       { 0xb7,0x06,0xde,0x1b,0xd1,0xee,0x2f,0x4c,0xec,0x6c,0xe0,0x92,0x02,0x2b,0x49,0x32,0x81,0xe2,0x9a,0x21,0x73,0x50,0x8c,0x9b,0xd0,0xfb,0xc2,0xc3,0xd9,0x68,0xe3,0xe7},
+       { 0xb7,0x1f,0x29,0x1e,0x6e,0xc6,0xbd,0x6c,0x4f,0x2b,0x81,0xf7,0xf7,0x21,0x06,0x73,0xe9,0x73,0x08,0xaf,0xf1,0x24,0x3f,0x26,0x99,0x5a,0x25,0xfa,0x23,0x0c,0xfe,0x4c},
+       { 0xb7,0x45,0x85,0x05,0xc5,0x17,0x90,0x14,0x9c,0x5e,0x98,0x00,0xfd,0x22,0x74,0x8a,0x1d,0x44,0x66,0x5f,0x68,0x34,0xba,0x84,0x4e,0x9a,0x0c,0x32,0x31,0x4a,0x57,0x21},
+       { 0xb7,0x4c,0x89,0x90,0x0b,0xbc,0x4c,0xe2,0x8d,0xca,0x03,0x3f,0x80,0x08,0x70,0x03,0xd1,0x89,0xec,0xdd,0x54,0xc3,0xfd,0x23,0x79,0xda,0x5e,0x22,0x17,0x57,0xbc,0x73},
+       { 0xb7,0x65,0xc9,0x6b,0x69,0x18,0xab,0x88,0xbf,0xbe,0xc4,0x32,0xa7,0x5b,0x79,0x97,0xdf,0xfa,0x55,0x96,0xd1,0x13,0xd1,0x6f,0x13,0x7e,0xfe,0x7d,0x76,0x2b,0xe1,0x52},
+       { 0xb7,0x9f,0xca,0x4d,0x47,0x92,0xec,0x5e,0x5a,0x74,0x06,0x59,0x81,0x3a,0x0f,0x46,0x08,0xea,0xf9,0xba,0x9c,0xbb,0xa8,0xa0,0xf8,0xda,0xe1,0xdd,0xbb,0xe6,0x1e,0x77},
+       { 0xb7,0xa2,0xae,0x06,0x06,0xaa,0x2c,0xfb,0x27,0x01,0xb3,0xb2,0x77,0xf4,0xd7,0x12,0x54,0x70,0x48,0x7e,0xfd,0x94,0x05,0x85,0x7f,0xfc,0xe4,0xbf,0x29,0x10,0x5e,0x68},
+       { 0xb8,0x30,0xc5,0x8c,0x49,0x50,0x7d,0xd9,0x85,0x7c,0xc0,0xce,0x37,0xfa,0xc7,0xfa,0x3c,0xde,0xa0,0x4e,0x9b,0x64,0x3e,0x38,0xd5,0x3b,0x38,0x1d,0xb8,0xfb,0x89,0x5d},
+       { 0xb8,0x37,0xc3,0x7e,0xe9,0x9c,0x18,0x2b,0x07,0xad,0x6d,0x79,0x1f,0x53,0x9e,0x22,0xe0,0x4e,0x0d,0xdb,0x16,0xf9,0xc1,0x57,0xa1,0x35,0x20,0xac,0xae,0xd0,0x7d,0xca},
+       { 0xb8,0x74,0x36,0x95,0x1c,0xec,0x37,0x7e,0xef,0x73,0xde,0x4b,0x74,0xf2,0x83,0xc4,0x2b,0x2c,0xcb,0x1c,0xa3,0x7c,0x5b,0x30,0xaa,0xd6,0x55,0xa7,0x40,0x1a,0x3d,0x2f},
+       { 0xb8,0x8c,0xe8,0x1a,0x7b,0x4b,0x62,0x65,0x71,0x0f,0x38,0xd0,0xca,0x3e,0x01,0xff,0xab,0xde,0x0f,0xc2,0x48,0x3e,0x21,0xb8,0xf1,0xa5,0xff,0x48,0x3b,0x2d,0x60,0xce},
+       { 0xb9,0x42,0x94,0x19,0xf2,0x9f,0xe3,0x5c,0xd8,0xcf,0x94,0x92,0xd5,0xa9,0xb5,0xd2,0x24,0x1d,0xda,0x4e,0x12,0x15,0x6f,0x37,0x4c,0xec,0x78,0x4f,0x44,0x5b,0x43,0xf2},
+       { 0xb9,0x8d,0x83,0x38,0x55,0xc3,0x67,0x88,0x62,0xb6,0x2f,0x36,0x50,0xdb,0x00,0xa3,0x45,0xf4,0x6a,0x0e,0x8e,0x01,0x1a,0x20,0x01,0x3f,0xd8,0xed,0xce,0x25,0x27,0x0d},
+       { 0xb9,0x9c,0xdb,0x82,0xa9,0x77,0x31,0x12,0xc0,0x67,0x17,0xd7,0x74,0x50,0x51,0xa7,0x01,0xf3,0x00,0xd5,0x25,0xd0,0x55,0x6e,0x67,0x5a,0x04,0xca,0xef,0x26,0x22,0x89},
+       { 0xb9,0xcc,0x92,0xf7,0x8c,0x2c,0x19,0x57,0xdb,0xb6,0xc4,0xa5,0xe4,0x25,0x44,0x68,0xfb,0xcd,0x88,0xb1,0xfd,0x9f,0x98,0xfa,0x6d,0x76,0x08,0x70,0x9e,0xbe,0x92,0x8d},
+       { 0xba,0x0a,0x8c,0xc1,0xc2,0xf6,0x62,0x9b,0x78,0xaf,0xef,0x1d,0x22,0xd5,0x57,0x7a,0x13,0x81,0x13,0xc4,0xc6,0x21,0x89,0x48,0x47,0x44,0xc2,0x92,0x50,0x24,0x49,0x7c},
+       { 0xba,0x18,0x2c,0x1b,0x75,0xd8,0xdf,0xd1,0x18,0x92,0xe4,0x77,0x59,0x59,0xad,0x8a,0x8c,0x78,0x2c,0xef,0x60,0xec,0xea,0xbe,0x56,0x19,0x72,0x9b,0xb8,0x1b,0x4a,0x10},
+       { 0xba,0x2f,0xde,0x44,0xdd,0xae,0x01,0x8a,0x51,0x06,0xc5,0x0c,0x36,0xa2,0x33,0x0d,0xf4,0x30,0x68,0x9e,0x0a,0x6d,0xca,0x6a,0xbf,0x85,0x7f,0xa2,0xfd,0xed,0xe8,0xd4},
+       { 0xba,0x51,0xaf,0xf5,0xd5,0xd3,0x10,0x5f,0x34,0xa2,0xb3,0x3a,0x83,0xe3,0xad,0xfd,0x12,0xd7,0x9c,0xa6,0x05,0x90,0x9d,0x96,0x03,0x3e,0x32,0xa5,0xcf,0x2f,0x71,0xf6},
+       { 0xbb,0x0b,0xd1,0xe6,0x9f,0xf4,0xa3,0x89,0x51,0x61,0x13,0x55,0x2c,0x17,0xab,0x77,0x82,0xa7,0xeb,0xba,0xea,0x0b,0xe3,0x9f,0x58,0x92,0x84,0x1f,0x1f,0x74,0xd2,0x98},
+       { 0xbb,0x13,0xdf,0x73,0xb6,0xe8,0x89,0x77,0x7c,0x4d,0x85,0xec,0x93,0xb8,0x3e,0xa8,0xbb,0x95,0x43,0xf9,0xfc,0x08,0xc2,0xb3,0x1c,0x02,0xac,0x72,0xb3,0x1a,0x09,0x0d},
+       { 0xbb,0x48,0x13,0xed,0xfc,0xf7,0x4a,0x4f,0x12,0xd9,0x8f,0x99,0x6b,0xf7,0x98,0xd4,0xed,0xe3,0xcb,0xb7,0x00,0x07,0x31,0x7a,0x2c,0x6b,0x54,0x9d,0xbf,0x92,0xa8,0x5e},
+       { 0xbb,0x5c,0xb3,0x78,0xb7,0xb9,0x48,0x7f,0xa6,0x1b,0xc0,0x91,0x3d,0xa1,0xdf,0x26,0xa1,0xcf,0xef,0xf7,0x45,0x2d,0x9b,0xa3,0x6c,0xac,0x47,0xa8,0x5c,0x7f,0xf3,0x48},
+       { 0xbb,0x77,0x41,0x99,0x17,0x89,0x5c,0x74,0x0f,0x39,0x61,0x60,0x1b,0x99,0xb5,0xc2,0x25,0x67,0x37,0xaa,0x6c,0x6e,0x88,0x27,0x48,0x5e,0x44,0x8e,0x69,0x74,0xb1,0x6b},
+       { 0xbb,0xaa,0x32,0x35,0x0e,0x2d,0xc5,0x06,0x07,0xaa,0xc6,0x5b,0x29,0x81,0xd3,0x97,0xc8,0xb9,0xaf,0x51,0x22,0x38,0xca,0xd4,0xcb,0xb3,0x10,0x07,0x64,0xe7,0xa3,0x94},
+       { 0xbb,0xad,0x8a,0x81,0x54,0xd7,0xab,0x8e,0x3f,0x3a,0x67,0x09,0x7b,0x4d,0xb7,0x44,0x8f,0x4b,0x07,0xe4,0x7c,0xda,0xa6,0xb8,0x36,0xed,0xd2,0x67,0x68,0xf9,0x64,0x92},
+       { 0xbb,0xe6,0xb5,0x24,0x36,0x69,0x0a,0x58,0x57,0x74,0x91,0x27,0xcc,0xb6,0xab,0x5b,0x16,0xd6,0xb3,0x06,0x6c,0x71,0x27,0x25,0xa2,0xc5,0xfc,0x4f,0x61,0xb8,0xa9,0x88},
+       { 0xbc,0x14,0x2e,0xba,0xc2,0x78,0xa8,0xfe,0x8c,0xa8,0xbc,0x2c,0x62,0xfb,0xcc,0x40,0x17,0xff,0x24,0x96,0x98,0xbe,0xed,0xfb,0x1e,0xf3,0x6f,0x37,0x5f,0xb3,0x9f,0x72},
+       { 0xbc,0x1a,0x3b,0x83,0x46,0xa5,0x18,0x4e,0x8f,0xe2,0xa9,0x36,0xd6,0xd9,0xce,0x2c,0xbe,0x3a,0x92,0x05,0x54,0xe0,0x60,0xf9,0x07,0x97,0xf9,0x8f,0xee,0x62,0xa8,0x52},
+       { 0xbc,0x3f,0x40,0xae,0xdc,0x2d,0xdf,0x00,0x3f,0x3a,0x5c,0xca,0x77,0xbf,0x3b,0x63,0x26,0xc9,0x3c,0xcf,0xa1,0x6d,0x1c,0xc1,0xbc,0xf1,0x3d,0x5e,0x46,0xea,0x0d,0xb6},
+       { 0xbc,0x98,0x39,0xc8,0xb9,0x22,0xf6,0x54,0x57,0x67,0xa2,0xba,0x46,0x5a,0x5b,0xea,0x9a,0xa1,0x84,0x11,0x52,0x99,0x4a,0x6c,0xf4,0x67,0x83,0xae,0x49,0x98,0xaf,0xcc},
+       { 0xbc,0xe9,0x07,0x86,0x57,0x91,0xae,0x71,0x57,0x9c,0x64,0xee,0x76,0xb1,0xae,0x09,0xf6,0x55,0x22,0x2d,0x38,0x7b,0xa7,0xc1,0x11,0xf6,0xa3,0x0b,0x7c,0xd3,0x98,0x4d},
+       { 0xbd,0x20,0x20,0x24,0x96,0x06,0xc0,0x1c,0xe7,0x70,0xb2,0x56,0xe3,0x8e,0x82,0x6b,0x87,0x42,0x04,0xcd,0x70,0x44,0x69,0x6e,0x6f,0xba,0x53,0x58,0xbd,0x44,0xd6,0x9a},
+       { 0xbd,0x2e,0x2f,0x37,0xc9,0x66,0xc3,0x86,0xd9,0x70,0x44,0xfd,0xe3,0xe3,0xf9,0x00,0xfb,0x1a,0x0b,0x04,0x03,0xb5,0x81,0x72,0x5f,0x34,0xe3,0xc1,0x90,0x05,0x60,0x56},
+       { 0xbd,0x4f,0x30,0xa1,0x05,0xd4,0xc4,0x5a,0x36,0x7f,0x55,0xda,0xe7,0x33,0x84,0x75,0x5e,0x01,0x67,0x8a,0x32,0x1f,0xf0,0x4c,0x99,0xd2,0xd5,0x2a,0x2b,0xfd,0x7a,0xcf},
+       { 0xbd,0xd5,0x42,0x49,0xdd,0xd5,0x4b,0xc7,0x2a,0xa7,0xa7,0x5f,0x77,0x63,0xa8,0x38,0xcf,0x4b,0xa1,0x7f,0xb3,0x64,0x72,0xba,0x12,0x69,0x8c,0x45,0xdf,0x88,0xe8,0x46},
+       { 0xbe,0x2e,0x88,0xc5,0xee,0x30,0x7b,0xa5,0x41,0x73,0xa6,0x00,0x2b,0x99,0x16,0x92,0xc8,0xbd,0x1d,0x40,0x8a,0x59,0x2f,0x70,0x7b,0xb1,0xaf,0x56,0xf5,0xb9,0xd7,0x42},
+       { 0xbe,0x34,0x75,0x8b,0x19,0xd4,0x31,0x2d,0x65,0xb9,0xe0,0x78,0xb6,0xf8,0xd9,0x27,0x7c,0x5e,0x52,0x1b,0xa1,0xf0,0xd3,0x15,0x20,0x9b,0x2b,0x56,0x2d,0x73,0x91,0x89},
+       { 0xbe,0x41,0x0a,0x51,0xd3,0x44,0x17,0x76,0x91,0xb3,0x42,0x64,0x10,0xa4,0x41,0xaf,0xd1,0xc9,0x40,0xb1,0xb2,0x7c,0xf5,0x29,0xee,0x87,0xa1,0x40,0x3b,0xb0,0x16,0xf4},
+       { 0xbe,0x5c,0x3c,0xd0,0x6e,0x3c,0x58,0x1a,0x4e,0x67,0xab,0x8f,0x77,0x85,0x51,0xbb,0x0f,0x41,0x24,0x4c,0x6b,0xbb,0x41,0x1d,0x9b,0xf1,0x27,0x19,0x0f,0x60,0x99,0x9d},
+       { 0xbe,0x68,0x35,0x4f,0x7c,0x36,0x24,0x2d,0xb6,0x20,0x4f,0x20,0x13,0x1b,0x01,0xff,0x28,0xb7,0xdd,0xff,0x36,0x2e,0x42,0x9b,0xfd,0xf8,0x8f,0x36,0x37,0x58,0x24,0x51},
+       { 0xbe,0xac,0x00,0x60,0x68,0x7e,0xb2,0x5a,0x9b,0xed,0x21,0xa1,0x99,0x97,0xaf,0xff,0x67,0x7c,0x89,0x61,0xdc,0x00,0xe2,0x3b,0x4c,0x1e,0x27,0x7f,0xf8,0x58,0xc0,0x92},
+       { 0xbe,0xb7,0x1d,0xaf,0x38,0x97,0x76,0xce,0x8b,0x4a,0xc8,0x18,0x90,0x1e,0x02,0xc0,0x6c,0xfe,0xf5,0x22,0x34,0xfc,0x49,0x20,0x3b,0x4a,0xa7,0x73,0x35,0xb6,0x63,0x9b},
+       { 0xbe,0xb9,0x09,0x0c,0x92,0xd1,0x6b,0xd0,0x5a,0xf3,0x91,0x5a,0x39,0xcc,0x2a,0xfa,0x9f,0x6a,0x8a,0x6f,0xbe,0xd4,0xfe,0x54,0xd9,0xde,0x32,0x49,0x23,0xb3,0x93,0x5a},
+       { 0xbe,0xd5,0xb6,0xad,0xe6,0xc9,0xc2,0x15,0xe4,0x14,0x53,0x21,0x9a,0xf2,0x9a,0x8b,0x8d,0x76,0x9d,0x36,0x43,0x8c,0x3f,0x96,0x61,0x76,0xe3,0xbc,0xc9,0x1f,0x2e,0xe8},
+       { 0xbe,0xd6,0xf8,0x1a,0xd8,0x5e,0x71,0x6b,0x60,0xd3,0xe9,0x7d,0x8b,0x90,0x81,0xe9,0xc1,0xb9,0xec,0x3b,0xe8,0xf3,0xfd,0x5b,0xad,0x55,0x40,0x2b,0x79,0x78,0x5b,0x37},
+       { 0xbe,0xe1,0xd6,0x40,0x7d,0x2f,0xe3,0xdb,0x76,0x64,0x4c,0x58,0xa4,0xf2,0xb6,0x4e,0x62,0xf8,0x93,0xf8,0x04,0xfb,0x9a,0x87,0xfe,0xa3,0x2c,0x4c,0x76,0x45,0x7f,0x3b},
+       { 0xbe,0xe5,0x93,0x20,0xce,0x39,0xb6,0xbb,0x7a,0xc7,0x72,0xcd,0xf3,0xd3,0x0d,0xfe,0x57,0xe0,0x60,0xcc,0xa9,0xe5,0x4a,0x62,0x99,0x96,0xaa,0x4f,0xcb,0xd4,0xaf,0x0e},
+       { 0xbe,0xe9,0x05,0xd6,0xa4,0x20,0x55,0x47,0x66,0x90,0xd3,0x89,0xd4,0x80,0x66,0x5d,0x10,0x29,0xd0,0xa0,0x24,0x75,0x35,0xe0,0xa1,0x4a,0x79,0x8e,0xe3,0xf5,0xa3,0x3d},
+       { 0xbf,0x38,0xe6,0xae,0x32,0x0f,0x69,0x16,0x16,0x0d,0xa6,0x06,0x86,0x83,0xbf,0x49,0xf2,0xb2,0x2b,0x25,0x24,0x84,0x63,0x68,0xf5,0x04,0x51,0x81,0x52,0x40,0x25,0x9a},
+       { 0xbf,0x60,0xae,0xb3,0x91,0xc0,0xfb,0xd0,0x49,0x53,0x52,0x6d,0xa9,0xfd,0x59,0x96,0x9a,0x82,0xf1,0xee,0x81,0xa7,0x97,0x98,0xa4,0x17,0x1e,0x14,0x59,0x39,0x19,0x67},
+       { 0xbf,0xc6,0x2c,0x0a,0x05,0x85,0xbc,0x32,0xd4,0x0c,0xbc,0x2e,0x24,0xa4,0x8e,0x26,0x43,0x4a,0xe3,0x33,0x27,0xd7,0xe9,0x8d,0x1c,0x57,0xb6,0xc5,0x28,0x4b,0x95,0x7a},
+       { 0xbf,0xf4,0x3a,0x97,0x20,0x48,0x2d,0x13,0x4c,0xd5,0xee,0x8a,0x88,0x99,0xe1,0xa7,0x36,0xbf,0x54,0xa2,0xb7,0x86,0x26,0x9c,0x0d,0xcb,0x8b,0xa1,0x92,0xa8,0x1f,0xa4},
+       { 0xc0,0x09,0xa1,0xbe,0x5b,0xe8,0xaf,0xb5,0x25,0x8e,0x12,0x85,0x5c,0x64,0xd0,0x4d,0x13,0xe8,0xcc,0xc4,0x7b,0x02,0xbf,0x3b,0x51,0xc6,0xe1,0x18,0x05,0xae,0xec,0xeb},
+       { 0xc0,0x52,0xe0,0x98,0xdd,0x04,0x2b,0x3d,0x44,0x0f,0x8f,0xfb,0xee,0x31,0x91,0x67,0x1f,0x5f,0x78,0x4b,0x94,0x9c,0x2d,0x23,0x3d,0x60,0xda,0x66,0xc5,0xc3,0x6c,0xfd},
+       { 0xc0,0x9f,0xfa,0x0e,0xdd,0x16,0xba,0x55,0xf2,0x3c,0xea,0xf7,0x2b,0x11,0x34,0xe9,0x28,0xdb,0xa1,0xc2,0x34,0x5a,0x5a,0xb5,0x63,0x1e,0x25,0x41,0x24,0x05,0x4a,0xdb},
+       { 0xc0,0xab,0xd1,0xc3,0x56,0x2f,0xbc,0x7f,0xf7,0xbd,0x38,0x95,0x54,0x60,0xc3,0xfc,0x43,0x55,0x0d,0x97,0x7f,0x25,0xe3,0x43,0xd4,0x9c,0xd4,0xaf,0xad,0xf2,0x09,0x3c},
+       { 0xc0,0xd3,0xdc,0x9a,0x2d,0x13,0x9d,0x38,0xce,0x02,0xc0,0x78,0xf3,0xc2,0x92,0x5d,0x89,0x1d,0x24,0xe4,0x36,0x13,0xcb,0xee,0x3f,0x18,0xa2,0xc8,0x60,0x98,0x84,0xb2},
+       { 0xc0,0xfe,0xb7,0x2a,0x5f,0x33,0x16,0x5c,0x0d,0xc7,0xc4,0x24,0x7e,0x23,0xf3,0x8c,0xc6,0x1f,0x25,0x24,0x42,0xb2,0xf6,0x13,0x40,0x92,0xde,0x3b,0xad,0x7e,0x45,0x0d},
+       { 0xc1,0x36,0x56,0xb8,0xb3,0xdd,0x77,0xcb,0x97,0x0d,0xb1,0x38,0x81,0x10,0x6f,0xb0,0x99,0x8e,0xc5,0x4e,0x94,0xf8,0x2e,0xe4,0x4d,0xea,0x1b,0x1a,0x65,0x90,0xfc,0xe7},
+       { 0xc1,0x53,0xe6,0x04,0xed,0xd6,0x55,0x50,0x5d,0xff,0x3f,0x04,0xb4,0xaa,0x95,0xa4,0x73,0xcd,0x3f,0xab,0x0a,0x4d,0xbc,0xb9,0x85,0x84,0xcd,0x4b,0x66,0x46,0x32,0xf9},
+       { 0xc1,0x63,0x98,0xba,0xc4,0xea,0x08,0x39,0xdf,0x12,0xeb,0x3d,0x6b,0xf3,0x98,0x6d,0x4c,0x69,0x78,0x04,0xe0,0x2a,0xb9,0x78,0x8d,0x3c,0xf3,0xb0,0x38,0x6e,0x64,0x10},
+       { 0xc1,0x73,0xb2,0x9f,0x14,0x85,0xee,0x0f,0x3f,0xe6,0x24,0xda,0xae,0xbf,0x21,0x45,0x14,0x1f,0x7c,0xd0,0xe4,0xc5,0xea,0x2f,0x46,0xb7,0xaf,0xe3,0x74,0x8c,0xc5,0x03},
+       { 0xc1,0x77,0x12,0x97,0xa4,0xe8,0xdc,0x53,0x75,0x19,0x5e,0x1b,0x63,0x04,0x2b,0x59,0x19,0x09,0xf1,0xd7,0xeb,0x5d,0x25,0xf2,0x97,0xae,0x7a,0x61,0xc1,0x53,0x8f,0x9e},
+       { 0xc1,0x7c,0xe3,0xbe,0xf9,0xcc,0x61,0x0b,0x71,0x3c,0xff,0x47,0xcc,0xbe,0x95,0x8a,0xa7,0x78,0x35,0x8d,0xcc,0x7c,0x52,0x63,0xc1,0xaa,0x7f,0xe4,0x22,0xf3,0x9b,0xc6},
+       { 0xc1,0x86,0xbe,0x26,0xe4,0x47,0x89,0x7c,0x48,0x3c,0x43,0xfd,0xc0,0x86,0xe2,0x60,0x74,0x17,0xeb,0x3e,0xa7,0x88,0xec,0x03,0x10,0xa7,0x9d,0xa9,0x24,0x1d,0x16,0xde},
+       { 0xc1,0xc3,0x03,0x06,0x23,0x16,0x38,0xea,0x57,0x60,0xaf,0xbe,0xf1,0x44,0x50,0x68,0x22,0x6c,0xa0,0x25,0xf5,0xe0,0x86,0xe2,0x21,0x21,0x54,0xda,0xc2,0xe5,0x48,0x49},
+       { 0xc1,0xde,0x5f,0xa3,0x92,0x13,0x68,0x58,0x11,0xa5,0xba,0x93,0x12,0x1d,0xe7,0xa3,0x95,0x98,0x4e,0x84,0x44,0x4e,0x58,0xf1,0x63,0xb7,0xa6,0x20,0xae,0x3b,0xbf,0xa8},
+       { 0xc1,0xe8,0x95,0xa8,0x27,0x96,0x4b,0x9c,0x04,0x91,0x69,0xad,0xff,0x9a,0x30,0x32,0xd8,0x70,0x6a,0x71,0x7a,0xcd,0xb6,0xf3,0x39,0x44,0xff,0xa9,0x62,0xc6,0x0d,0x44},
+       { 0xc2,0x17,0x03,0x01,0xd2,0x2f,0x8d,0xc0,0x42,0xdc,0xed,0xd8,0x3a,0x92,0x05,0xc6,0x95,0x25,0x6f,0x18,0x4e,0xd4,0xbd,0x5b,0x52,0x98,0x28,0x0a,0xa6,0x73,0xb3,0x7f},
+       { 0xc2,0x29,0xee,0xbb,0x9e,0x1a,0x91,0x38,0x80,0x87,0xa3,0xe0,0x5f,0x0c,0x8a,0x6b,0xb6,0x84,0x25,0x6e,0x34,0x06,0x68,0xee,0xa2,0x14,0x01,0x1d,0x75,0x2e,0xf6,0xb2},
+       { 0xc2,0xad,0xdf,0x99,0xcf,0xc4,0x2c,0xe0,0xe5,0xa0,0x93,0xbc,0xbf,0x87,0x40,0x7c,0x61,0x1f,0x9d,0x0a,0xbf,0x2a,0x35,0xd6,0xe8,0x03,0xa3,0x8e,0xcb,0x92,0xc7,0xb3},
+       { 0xc2,0xe7,0x92,0x11,0x6a,0x05,0x00,0x00,0xbd,0x47,0x59,0x1d,0x93,0x04,0x71,0xe6,0x17,0x4c,0x93,0x85,0xf5,0xdc,0x32,0xb7,0x62,0x31,0x65,0x5f,0xc8,0x5e,0x22,0xe2},
+       { 0xc2,0xe8,0x7a,0xf9,0xfe,0x26,0x55,0x64,0xe1,0x09,0xa3,0x9d,0x73,0xbc,0xd4,0x7a,0x4e,0x98,0x75,0x6f,0x76,0xeb,0xdf,0xb7,0xa6,0x57,0x0a,0xda,0xb9,0xdd,0xdd,0xfb},
+       { 0xc3,0x3a,0x14,0x69,0x59,0xf3,0x02,0x8b,0x97,0x1a,0x8d,0x3b,0xf0,0x30,0x38,0x7e,0x33,0xbc,0xc5,0xb5,0x2b,0xa9,0xa6,0x8a,0x7f,0x76,0x34,0x39,0x23,0x6d,0x61,0x1a},
+       { 0xc3,0x79,0x03,0xc5,0x3a,0xe6,0x02,0xec,0x96,0x9e,0xc3,0x3f,0x63,0xfe,0x9a,0xb2,0x0c,0x39,0x5f,0x83,0x0d,0x30,0xe4,0xee,0x9d,0x8d,0xd9,0x05,0x92,0x1e,0xc1,0xa0},
+       { 0xc3,0xcf,0x54,0x16,0xa5,0x31,0xaf,0x4b,0xfa,0xe8,0x9c,0x45,0x14,0x3f,0x20,0xcc,0x1b,0x3e,0x18,0x1d,0x29,0xc2,0xd0,0xe8,0xff,0x7d,0x3f,0x2a,0x66,0xb1,0x82,0xfe},
+       { 0xc3,0xde,0xf4,0xb0,0xd7,0xf0,0x81,0xc7,0xfb,0x88,0x91,0x0d,0xbd,0xa3,0x14,0xde,0x57,0xa9,0xcf,0xdb,0x40,0xf8,0x64,0x7e,0xf2,0x88,0xce,0xc9,0x67,0x3e,0x00,0x0c},
+       { 0xc4,0x21,0x98,0x61,0x93,0xf8,0x62,0xff,0x25,0x8c,0x1c,0xcc,0x94,0x9d,0x1b,0x3a,0xcb,0x67,0xb4,0xf6,0x38,0x31,0xc6,0x32,0xe6,0x9b,0xd0,0xfb,0x08,0xa2,0x69,0x67},
+       { 0xc4,0x85,0x0e,0x1c,0x62,0xb1,0x7c,0xef,0xd0,0xdc,0x64,0xd4,0xa8,0x66,0x95,0x3e,0x11,0x54,0xdc,0x88,0xd9,0xbd,0x96,0x16,0x47,0xb6,0xb2,0x34,0x1d,0x85,0xd9,0xba},
+       { 0xc4,0x87,0xa2,0x59,0x81,0x9b,0x56,0xd3,0x15,0x9d,0xd1,0x73,0x15,0x7e,0x86,0x45,0xb7,0x0b,0xca,0x29,0x08,0xcb,0x2c,0x5b,0xae,0x34,0x48,0x6e,0xa4,0xf6,0x14,0xff},
+       { 0xc4,0x98,0xa1,0xb6,0x9f,0x54,0x40,0x86,0x17,0x47,0x47,0x71,0x5a,0x27,0x4d,0x3f,0xb5,0x90,0x19,0xbe,0x09,0x21,0x31,0xbc,0xfa,0xa8,0x3a,0x39,0x5f,0x7e,0x57,0x3c},
+       { 0xc4,0xe2,0x8d,0xd8,0x3f,0xe3,0x0c,0x96,0x33,0x8c,0xef,0x77,0x73,0xc6,0xdf,0xca,0x6c,0xe4,0xfa,0x96,0x41,0xbe,0xab,0x38,0x05,0xa8,0xef,0xb6,0xcd,0xc3,0xcf,0x0a},
+       { 0xc4,0xf4,0x79,0x81,0xf4,0x5d,0x90,0x3b,0x56,0x2f,0x39,0xf6,0x17,0x45,0xf4,0xe1,0x90,0x48,0x1c,0x4b,0x56,0xa4,0xbd,0xf5,0xa0,0xe1,0x61,0xe3,0xe9,0x42,0x83,0x89},
+       { 0xc5,0x00,0xb8,0x3f,0x3e,0x06,0x6c,0xd1,0xdd,0x0e,0xbc,0xd7,0x3d,0xd4,0x01,0x61,0xb9,0x25,0x9a,0xa7,0x7a,0xb8,0xa6,0x47,0xe8,0x57,0x1f,0xf3,0x37,0xcf,0x94,0x6d},
+       { 0xc5,0x1e,0x9b,0x95,0x9a,0xcf,0x0d,0xda,0xff,0x54,0x64,0x9c,0xb5,0xfc,0x68,0xfc,0xdc,0xb2,0x70,0xb2,0x7a,0x53,0xd4,0x0a,0xda,0xbe,0xd0,0x8b,0x79,0x7b,0x14,0xb6},
+       { 0xc5,0x29,0x5b,0xa6,0xe2,0x7e,0x72,0x10,0x22,0xfe,0xb2,0x1e,0x78,0xeb,0x7b,0x03,0x57,0xc9,0xcd,0x56,0x5b,0xd0,0xe5,0x96,0x72,0xf6,0x66,0x34,0x2b,0x79,0x94,0x9d},
+       { 0xc5,0x82,0x1f,0xa0,0x9b,0x7a,0x3f,0x59,0x65,0xf3,0xc6,0x37,0xc6,0xdc,0x91,0x40,0xf4,0xc4,0x29,0x00,0x10,0x78,0xa5,0xee,0x2b,0x10,0x6f,0x87,0xbf,0xa2,0xc3,0x1a},
+       { 0xc5,0x9f,0x27,0xdf,0x84,0x0b,0xc2,0x18,0x71,0x35,0xcd,0x17,0xb6,0xf4,0x75,0x23,0xb4,0xd5,0x5c,0x47,0xbd,0x4d,0x8c,0x2c,0x4b,0x15,0x4c,0x14,0x65,0xc8,0x06,0xfe},
+       { 0xc6,0x12,0x75,0x6b,0xa5,0x42,0x34,0x4a,0xdc,0x1b,0x80,0xe9,0x38,0x84,0x5a,0x1e,0xd6,0xe9,0x38,0xfe,0xf4,0x0d,0x04,0xec,0x86,0x55,0x8f,0x4b,0x21,0x05,0x2f,0xd2},
+       { 0xc6,0x17,0xe0,0x85,0x5b,0xf1,0x4f,0xbf,0x21,0xaf,0x00,0x82,0x25,0xca,0xbe,0x40,0x4f,0x73,0x8c,0x27,0x8a,0x4a,0x42,0x87,0xf1,0xee,0x38,0x01,0x27,0xc5,0x61,0xfa},
+       { 0xc6,0x41,0x82,0xd6,0x05,0xc1,0xcb,0xe1,0x9b,0xd3,0xb7,0xfe,0x55,0x7f,0x58,0xcd,0x52,0x10,0x30,0x97,0xa3,0x3b,0xf8,0x4a,0xf2,0x22,0xc8,0xce,0x72,0x52,0x61,0x15},
+       { 0xc6,0x48,0x76,0x70,0x78,0x83,0x67,0x74,0x64,0x11,0xc9,0x38,0xbd,0xdb,0x5c,0xfc,0x0d,0x20,0xac,0xf8,0x29,0xd2,0xa1,0x39,0x12,0x7a,0x22,0x7b,0xc0,0x06,0x03,0xdc},
+       { 0xc6,0x67,0x05,0xfc,0xa8,0x55,0x10,0xfd,0x14,0x58,0xe2,0xf4,0x51,0xd4,0x54,0x43,0x55,0xd0,0xb1,0x03,0xfe,0x6d,0xb4,0x73,0x78,0xe7,0x28,0x37,0xed,0x9a,0x2e,0x6f},
+       { 0xc6,0x81,0x77,0x4b,0x31,0x13,0x72,0x97,0x0c,0x4e,0xca,0xed,0x00,0x22,0xeb,0x5e,0xf9,0xc2,0x32,0x80,0x35,0xc2,0x5b,0x00,0xd8,0xfa,0xf0,0x1e,0xcf,0x2c,0x03,0x9c},
+       { 0xc6,0x89,0xb9,0x95,0x6c,0x73,0x11,0xd7,0x34,0x6a,0x7f,0xa3,0x8b,0x2c,0xcd,0xe3,0xef,0xee,0x85,0x3d,0x7c,0x2c,0x41,0x4f,0x81,0xf3,0xb0,0x64,0xe6,0xaf,0x1f,0x49},
+       { 0xc6,0xa4,0x24,0xbf,0x7c,0xfe,0x31,0x72,0x74,0x7a,0x47,0x14,0xa0,0xef,0xb9,0x17,0x93,0x8c,0x5e,0xbd,0x59,0x12,0x9d,0xed,0x7a,0x81,0x18,0xc7,0xf6,0x59,0xd1,0x33},
+       { 0xc6,0xad,0x1d,0x7a,0x14,0x1a,0x91,0x75,0x2d,0x31,0xfb,0xc1,0x06,0x16,0xbf,0x1c,0xa2,0xfb,0x5b,0x02,0xe8,0x46,0xb5,0x9e,0x63,0x34,0x6b,0x31,0x92,0xa7,0x52,0x92},
+       { 0xc6,0xc6,0xb0,0x9a,0xfa,0x64,0x6e,0x4e,0x1d,0x75,0xc9,0x23,0xae,0xb0,0x2b,0x39,0xf8,0xf0,0x7a,0x74,0x33,0x59,0xdd,0x22,0xb4,0xb5,0x32,0x41,0xb7,0xb0,0x3d,0x63},
+       { 0xc7,0x01,0x83,0x64,0x38,0xf3,0x7b,0xea,0x8a,0x88,0x16,0x10,0x63,0x70,0x86,0xf8,0x8d,0x9a,0x11,0x5e,0x00,0x92,0x46,0xd2,0x7f,0x48,0x9f,0xa7,0x18,0x51,0x88,0xa8},
+       { 0xc7,0xa6,0xf4,0xe6,0xac,0xfa,0x70,0x88,0x7a,0xef,0xec,0x5c,0x75,0x66,0x9e,0x04,0x43,0xdb,0x00,0x2d,0xbd,0xb5,0xed,0x95,0xfb,0xbe,0x52,0xc5,0xc9,0xb8,0xf2,0x01},
+       { 0xc7,0xf8,0x85,0xe4,0x1a,0xa5,0x3b,0x8c,0xb8,0xe4,0xe5,0x59,0xc4,0x04,0x3a,0x87,0xda,0xfb,0x78,0x7a,0x0d,0x2b,0x2e,0xf1,0xbc,0xc0,0x55,0x71,0xb7,0x5d,0x4e,0x29},
+       { 0xc7,0xff,0x8e,0xfd,0xec,0xdf,0x00,0xd1,0xfc,0x8d,0x55,0x2d,0x2a,0x70,0x70,0xe5,0xe3,0x3d,0x42,0xe5,0x90,0xf5,0x86,0xc6,0xae,0xde,0x03,0x2b,0x2d,0x86,0x7b,0xd5},
+       { 0xc7,0xff,0xb4,0x9f,0xbc,0x94,0x72,0x24,0x5c,0x8e,0x95,0xde,0x62,0x9a,0xf5,0xc1,0xbf,0xea,0xc5,0x50,0x04,0xc1,0x54,0x82,0x3a,0x58,0xba,0xe8,0x05,0x6e,0x3c,0x64},
+       { 0xc8,0x26,0xbe,0xdd,0x88,0x6a,0x87,0x1d,0xd5,0xcf,0x3a,0x2a,0xe0,0xa5,0x1c,0x93,0xbc,0x2c,0xff,0x31,0x90,0xd1,0xcb,0x2c,0x13,0x13,0x97,0x29,0x5a,0x81,0x76,0xb5},
+       { 0xc8,0x37,0xd6,0xf2,0xab,0x14,0x79,0x91,0x42,0xed,0x3c,0x79,0xbe,0xd9,0x44,0x1e,0x92,0x50,0xbd,0x05,0x20,0x25,0xad,0x8a,0xf4,0x40,0x41,0xac,0x19,0xef,0xbb,0x4c},
+       { 0xc8,0xc6,0x92,0x81,0xbe,0x05,0xc4,0x14,0xea,0xa3,0x1c,0x61,0xb6,0x52,0x93,0xbe,0x72,0xb5,0x89,0xd1,0xd5,0xe4,0xb7,0x59,0xd5,0xed,0xaf,0x54,0x63,0x99,0xa2,0xef},
+       { 0xc8,0xf2,0x99,0x18,0xd3,0x41,0xee,0x02,0x20,0xa4,0x4d,0xb0,0xf0,0xc2,0xd9,0xc4,0x16,0x6e,0x02,0x3a,0x66,0xca,0x6d,0x1d,0x3f,0x78,0xf1,0x58,0x93,0x61,0x90,0x8e},
+       { 0xc9,0x38,0xcb,0x1d,0x50,0x3d,0xb6,0x2a,0xad,0xa8,0x80,0xed,0x95,0xc6,0x40,0x83,0xeb,0x89,0x55,0x31,0xf3,0xa6,0x85,0x5b,0x3f,0x25,0x20,0x3f,0xf7,0xcb,0x7c,0x72},
+       { 0xc9,0x43,0x10,0x03,0xbb,0xea,0xb5,0x8e,0x35,0x2f,0xde,0xb4,0x5b,0x7f,0xcf,0x15,0xc7,0x3f,0x07,0x34,0xa0,0x7d,0x6c,0xbd,0xf6,0x32,0x92,0x92,0xeb,0x81,0x2c,0x93},
+       { 0xc9,0x72,0xf4,0xf9,0x6e,0x71,0x33,0xe1,0x6e,0x55,0x57,0xa0,0x57,0xb1,0xd4,0x2b,0xa9,0x2d,0x98,0x5c,0xae,0xe7,0x3c,0xaf,0xda,0xeb,0x55,0xec,0xa2,0xe4,0xab,0xb0},
+       { 0xc9,0x78,0x37,0x2c,0x9e,0x11,0x60,0x71,0xb6,0x1b,0x90,0x92,0xa9,0xaa,0x96,0x81,0x62,0x36,0x55,0xa6,0x6f,0x4f,0xcb,0xc4,0xd3,0xa6,0x7e,0xfd,0x56,0x72,0x48,0x30},
+       { 0xc9,0x7e,0x4d,0x81,0xe7,0x4e,0x3d,0x0a,0x5e,0xe0,0x9c,0x6f,0x76,0x9b,0x95,0x7e,0x70,0x04,0xad,0x2c,0x9f,0xc6,0x66,0x8a,0x69,0xd6,0xca,0x29,0xe0,0x66,0xe7,0xfe},
+       { 0xc9,0x84,0x0b,0xfb,0x2c,0x2d,0x46,0x82,0x7c,0xc7,0x55,0xc7,0x5b,0x12,0x8a,0x4f,0x0b,0x7e,0x06,0xe5,0xac,0x44,0xee,0x8f,0xfb,0x92,0x9a,0xac,0xd9,0x58,0x3f,0x39},
+       { 0xc9,0xe5,0x7c,0x8f,0xe0,0x00,0x40,0x58,0x58,0xba,0x46,0xbe,0xcb,0x84,0x78,0xaa,0x8a,0xd8,0x24,0x90,0x8b,0x90,0xc4,0xb5,0xf4,0x73,0x8f,0xeb,0xd3,0x11,0x3b,0xe0},
+       { 0xca,0x18,0x88,0xdc,0x1c,0xee,0xc3,0x5f,0x92,0x31,0xd4,0x1d,0x23,0x07,0x77,0x82,0x91,0xdf,0x33,0x81,0xae,0x6f,0x3b,0xc4,0x17,0xa9,0xd9,0x94,0x4d,0xe3,0x06,0x48},
+       { 0xca,0x55,0x6f,0x82,0xc9,0x68,0x4c,0x9a,0xf3,0x55,0x7d,0x3e,0x2d,0x88,0xaf,0x92,0xed,0x25,0x9c,0x20,0xff,0xd1,0xdd,0xe9,0xf7,0x9d,0x6b,0x92,0xc6,0x1e,0xe1,0xb9},
+       { 0xca,0x5a,0x11,0x99,0xc9,0xa7,0xa3,0x7f,0xad,0xcf,0x8d,0xe9,0x88,0xdc,0xfe,0x55,0xbf,0x80,0x39,0x38,0x6d,0x60,0x34,0xc1,0xbd,0xd8,0x69,0x2d,0x49,0x2f,0x4c,0x6c},
+       { 0xca,0x5f,0x30,0x7a,0x0a,0xa2,0x8f,0xf4,0x33,0x29,0xcc,0xfd,0xc0,0x0d,0xe3,0x5e,0xed,0x83,0xda,0x0e,0x4b,0x15,0x1a,0x76,0xec,0x9e,0x1e,0x93,0x5a,0x5e,0x36,0xb0},
+       { 0xca,0x5f,0x8f,0x8a,0xf0,0xd9,0xfa,0x3f,0x80,0x03,0x88,0x49,0x54,0xe8,0xaa,0x1b,0x8a,0xad,0x4e,0xe8,0xd1,0x4e,0x82,0xf3,0x3f,0xba,0xe3,0xb4,0x59,0x8b,0x5f,0x90},
+       { 0xca,0x6c,0xc4,0xba,0x92,0x04,0x14,0x20,0x7a,0xa0,0xe0,0xf3,0x3f,0x27,0x44,0xc3,0x1a,0x37,0x78,0x27,0x50,0x89,0x24,0x6e,0x9e,0x98,0x4c,0xb7,0x2c,0x58,0x72,0xfc},
+       { 0xca,0x91,0x6e,0xa3,0xfa,0x04,0xfa,0x3d,0xa0,0xc0,0xb9,0x27,0xe8,0x1d,0xbd,0x77,0xc0,0xe4,0x1c,0xb8,0xff,0x04,0xad,0x95,0x33,0xb8,0x5d,0x87,0xbd,0x63,0x30,0x92},
+       { 0xca,0xbe,0x25,0x56,0xf1,0xbb,0x56,0x57,0x0c,0xef,0x3a,0x87,0x03,0x32,0x71,0xa1,0xf2,0x1d,0x09,0xb7,0xfd,0x04,0x12,0x83,0x18,0xe5,0xe7,0xbc,0xe3,0xa2,0x01,0xe2},
+       { 0xca,0xc4,0xbb,0x2c,0x3d,0x5f,0xc7,0xcb,0x19,0xc5,0x41,0x06,0x79,0x59,0xd7,0x20,0xef,0x4c,0xbf,0x52,0x98,0x01,0xbe,0xe1,0xc8,0xde,0xbf,0x42,0x75,0xfc,0x08,0x3b},
+       { 0xca,0xdc,0xd5,0xae,0x1b,0x75,0x6a,0xb7,0x41,0xb3,0x56,0x9c,0x42,0xa5,0x41,0x1f,0x09,0x3e,0x4e,0x1f,0x01,0x2e,0xc5,0x79,0x91,0xcb,0xd6,0xdb,0xe0,0x8f,0xaa,0xc1},
+       { 0xcb,0x51,0x19,0xd5,0x1a,0x4e,0xe8,0x5d,0x7d,0x4b,0xd0,0xd7,0xec,0xba,0xad,0x4e,0xc4,0x43,0x65,0x4d,0xa8,0x5d,0xd2,0x46,0xbb,0x5e,0x03,0x7f,0xe7,0x70,0x79,0xb6},
+       { 0xcb,0x7a,0x43,0x8d,0x16,0xe4,0xa5,0xf3,0xc5,0x6f,0xdf,0x19,0x1e,0x1d,0xaf,0x9f,0x32,0x5c,0x65,0x0b,0xd6,0x2f,0x07,0xc4,0x67,0x71,0x72,0x07,0x35,0x1a,0xe3,0x29},
+       { 0xcb,0x9c,0x10,0xf2,0xcb,0x7f,0x7c,0xdb,0xfd,0xb1,0xf8,0xed,0x6a,0x42,0x32,0xb4,0x4d,0x6f,0x7c,0x32,0x57,0xa5,0x94,0x99,0xe2,0x37,0xec,0x11,0x3a,0x2d,0xdc,0x1d},
+       { 0xcc,0x2a,0x70,0x6f,0xe6,0x8f,0x5d,0x17,0xf4,0xab,0xaf,0x60,0x86,0xe5,0xbd,0x97,0xae,0x35,0xeb,0x35,0x9f,0x75,0xc0,0x92,0xbb,0xa4,0x93,0xfe,0x11,0xf2,0x69,0xfd},
+       { 0xcc,0x30,0xd8,0x19,0xde,0x54,0x05,0xf6,0x49,0xc8,0xb7,0xa8,0x14,0x8f,0x26,0xd7,0x71,0x08,0x3e,0xc5,0x18,0xf9,0xb6,0x6f,0xf5,0x47,0xf2,0x82,0x2d,0x11,0x93,0x6d},
+       { 0xcc,0x4e,0x09,0x63,0x13,0xdf,0xa0,0xcc,0x24,0x77,0xa3,0xa5,0xb7,0x9a,0xef,0x0a,0x45,0x54,0x58,0x69,0xa7,0xf8,0x8a,0x29,0x14,0x96,0x06,0x4b,0x69,0x76,0xe1,0x4d},
+       { 0xcc,0x5c,0xbd,0xdb,0x14,0x85,0x91,0x00,0xf8,0x46,0x23,0xaf,0xbb,0x00,0x6d,0x90,0x6b,0x71,0xbc,0xc3,0xaa,0x84,0x07,0x44,0x0c,0x7f,0x10,0x47,0x0c,0xa9,0x29,0x21},
+       { 0xcc,0x65,0xcd,0xc5,0x33,0x62,0xd4,0x21,0x62,0x7e,0xae,0xf5,0xd0,0xc8,0xe4,0xc4,0xe2,0x40,0xad,0xe0,0xc9,0xd4,0x20,0xbe,0x67,0x1e,0x70,0xf0,0xfb,0xac,0x8d,0x0a},
+       { 0xcc,0xa9,0x7f,0x5e,0x4e,0x65,0xb6,0x11,0x97,0x5f,0xc4,0x4a,0xac,0xd4,0x3f,0x49,0x0e,0xb9,0x47,0x4d,0x15,0xff,0x07,0x40,0x55,0xb5,0x93,0x28,0x81,0xf1,0x1f,0x3f},
+       { 0xcc,0xcb,0x6f,0xa7,0xef,0x62,0x78,0x99,0xfa,0x6f,0xcc,0x96,0x50,0x9b,0x22,0x55,0x77,0x4e,0xd9,0x94,0xa0,0xb7,0xa5,0x74,0xb8,0x4e,0xbd,0xc1,0xae,0x59,0xa4,0xa8},
+       { 0xcd,0x12,0x53,0xff,0xc5,0x8d,0xc6,0x3d,0x0b,0xaf,0xbd,0xde,0x1b,0xbf,0xf0,0x33,0xae,0xab,0x63,0x30,0x9b,0x4d,0x72,0xe7,0x59,0xc4,0x79,0xc2,0xe5,0x5d,0x39,0xbd},
+       { 0xcd,0x51,0xed,0x79,0xb6,0x39,0x06,0x32,0x75,0x7f,0x8a,0xad,0x39,0xd3,0xbe,0xbd,0xdc,0x79,0xbb,0x90,0xd0,0x46,0xfd,0xf1,0x46,0xda,0x62,0xf6,0x9d,0x28,0x41,0x34},
+       { 0xcd,0x8e,0xa1,0x1f,0xf5,0x9f,0x00,0x9f,0xd3,0x02,0xd7,0x90,0xa2,0x89,0xb7,0x04,0x76,0x1e,0x01,0xcf,0x27,0x3f,0xd9,0x70,0xd9,0xc7,0xc1,0xec,0xa4,0x9d,0x48,0x51},
+       { 0xcd,0xb1,0x62,0x53,0xd2,0x2e,0xd5,0xd4,0x26,0xcf,0xa1,0xb0,0x5c,0xec,0xd8,0x6e,0xf1,0xb7,0xde,0xaa,0x07,0xc5,0x70,0x5e,0xbb,0xaf,0x7d,0x9a,0x80,0x7d,0x56,0x16},
+       { 0xcd,0xc0,0x39,0xf3,0xa2,0xd1,0xbb,0xa5,0xe8,0x09,0x4e,0x55,0x23,0xcf,0x60,0x47,0x09,0x7d,0x4b,0x3c,0xd4,0xec,0x4e,0xd6,0xaa,0x8e,0xb7,0xb4,0xd8,0xb5,0x77,0x7d},
+       { 0xcd,0xc4,0xea,0x92,0x02,0xe3,0x3e,0xdd,0x0f,0x2d,0x3a,0xe8,0x6a,0xca,0xc7,0xfb,0x25,0x35,0x4b,0x02,0x23,0x5b,0x09,0x33,0xaa,0x81,0xa3,0x13,0xb5,0xfd,0xfe,0xec},
+       { 0xce,0x2c,0xf2,0x55,0x72,0x57,0x21,0x30,0x71,0x73,0x68,0x19,0xb7,0xd2,0x88,0xa9,0x30,0x77,0x2b,0x9b,0x78,0x2e,0x61,0x60,0x03,0x8f,0xc6,0x7a,0x76,0x0d,0x7c,0xdc},
+       { 0xce,0x47,0xd5,0x29,0x14,0xef,0xaa,0xbe,0x41,0x80,0xd4,0xa0,0xf7,0xe1,0xbc,0xa4,0x72,0x0b,0x35,0xa4,0x43,0x11,0x93,0x61,0x26,0x57,0x99,0x71,0xbf,0x16,0x8c,0x71},
+       { 0xce,0x4c,0x2f,0x8f,0x16,0x46,0x8a,0x58,0x88,0xe9,0x0f,0x73,0x4e,0x4d,0x22,0x02,0xdf,0xad,0xbf,0xa6,0x6f,0x5b,0x35,0x75,0x2b,0xaa,0x76,0x21,0xa7,0x60,0xb0,0x88},
+       { 0xce,0x52,0x40,0xcb,0xac,0x28,0x6b,0x4e,0x87,0x69,0xce,0xdc,0x3f,0x79,0xd0,0x6d,0x9c,0x8d,0x15,0xd3,0xd6,0xc6,0x84,0x50,0xf7,0xc2,0x9d,0x44,0x1d,0x02,0xfa,0x50},
+       { 0xce,0x81,0x44,0x58,0x54,0x03,0x1f,0x3d,0x0f,0x5c,0x88,0x75,0x46,0x4d,0xcd,0x5b,0xa6,0xc8,0x90,0xf4,0x49,0xb3,0x20,0x7b,0xca,0x2b,0xc9,0x61,0x82,0x2d,0x27,0xc4},
+       { 0xce,0x83,0x25,0x83,0x1d,0xa3,0xaf,0x4d,0x77,0xac,0x41,0xce,0xd9,0x2a,0xed,0x17,0x95,0x8a,0x2b,0x27,0xaa,0xfd,0xef,0x64,0xdb,0x3e,0xa2,0x26,0x03,0x2c,0x0f,0x87},
+       { 0xce,0x84,0x19,0xa7,0xc8,0x87,0xfd,0x59,0x48,0xb1,0x0d,0xc2,0x64,0x5c,0x05,0xcf,0xa1,0xe1,0x69,0x06,0xac,0x83,0x35,0x02,0xa3,0x0c,0x42,0xad,0x3f,0x00,0x7f,0x17},
+       { 0xce,0x9d,0xe7,0xac,0x2e,0x0b,0x8a,0x4f,0x85,0xf5,0xb6,0x4e,0x65,0x22,0x8d,0x03,0xfc,0x77,0x93,0xd9,0x49,0x42,0xf8,0x8a,0x1c,0x72,0xbb,0x7b,0x61,0x14,0x51,0xd5},
+       { 0xcf,0x03,0x40,0x17,0x5b,0x25,0x03,0xc8,0xfa,0x5d,0x52,0xed,0x42,0x5b,0xf3,0x7e,0x69,0xc1,0x80,0xe5,0x75,0xad,0xc1,0xa2,0x6a,0x47,0x81,0x97,0x71,0xb6,0x8f,0x7d},
+       { 0xcf,0x10,0xfa,0xc3,0x54,0x4d,0xce,0xe1,0xbb,0x98,0x7e,0x92,0xe7,0x35,0x48,0xb1,0xc6,0xa8,0x65,0xe6,0x9c,0xd2,0x91,0x8a,0xd0,0x1d,0xaf,0x89,0xb1,0x04,0x6a,0x51},
+       { 0xcf,0x3c,0x62,0x0b,0x39,0xa4,0x91,0xb1,0xbd,0xc0,0x33,0x5f,0xa1,0x15,0xb4,0xf5,0xae,0xd7,0xd8,0xcd,0x8e,0xbb,0xf2,0xca,0x73,0x7e,0x7c,0x6a,0xc2,0x00,0x68,0x0e},
+       { 0xcf,0x3e,0xcb,0x41,0xa4,0xe8,0x1b,0x3a,0xc8,0x27,0xdc,0xbe,0x4e,0xb6,0xd1,0xcd,0x4c,0x53,0x4a,0xdf,0x8c,0x87,0xe4,0xaa,0x0c,0xb2,0x97,0x15,0x74,0x6f,0x04,0x0b},
+       { 0xcf,0x55,0x5e,0x56,0x05,0xdf,0xa7,0x42,0x35,0x33,0xdd,0xda,0xf7,0x48,0x72,0xd1,0x68,0x46,0xe2,0xcb,0xf0,0x30,0x7d,0x33,0xa1,0x0d,0xf5,0x72,0x40,0x67,0x2f,0x42},
+       { 0xcf,0x92,0x77,0xce,0xea,0x50,0x1a,0x49,0x66,0x04,0x3e,0xf2,0xb0,0xf8,0x86,0x2a,0xc9,0x00,0x93,0x89,0x78,0x08,0x26,0x22,0xc5,0x7a,0x50,0x07,0xc9,0xc6,0x53,0x9d},
+       { 0xcf,0xa0,0xc0,0x0c,0xb2,0xfb,0x4b,0x85,0x7a,0xad,0x22,0xb1,0x3a,0x90,0xe3,0x46,0xa0,0x3e,0x6b,0x79,0xab,0xd5,0xd2,0x75,0xb5,0x43,0x24,0x68,0x17,0x92,0xd6,0xd1},
+       { 0xcf,0xfc,0x37,0x2d,0xb5,0xda,0x47,0xac,0xdd,0xf3,0x1a,0x84,0x9b,0xd2,0xe2,0xbd,0x25,0xb6,0x58,0xee,0xb8,0xda,0x82,0x51,0x59,0x9a,0x97,0x51,0x89,0xb5,0xf8,0x24},
+       { 0xd0,0x71,0x14,0xb2,0x97,0xb2,0x9f,0xa2,0xe0,0xec,0xcd,0xf1,0x58,0x7c,0x0f,0x03,0xf8,0x81,0x63,0x95,0x46,0x1d,0x01,0x1c,0x47,0x7b,0xd7,0xfe,0x83,0x8a,0x3d,0x0b},
+       { 0xd0,0xc4,0x74,0xe4,0x47,0xe3,0x38,0xa5,0x4d,0x31,0xb3,0xa0,0xf4,0x47,0x43,0x75,0x1e,0x45,0xcb,0x92,0x87,0xa0,0x1f,0x2b,0x0a,0x51,0xe6,0x4f,0x16,0xc9,0xa7,0x5c},
+       { 0xd0,0xea,0x0e,0x9f,0xd1,0x80,0x10,0x0d,0xca,0xc8,0xb1,0xb3,0xfb,0x95,0xce,0xcb,0x9e,0xcb,0x1d,0xfd,0xcd,0x6d,0xf6,0x16,0xd8,0xe1,0x17,0x50,0x8a,0x5c,0xee,0xfd},
+       { 0xd0,0xf5,0x93,0xc1,0xa8,0x1b,0x1e,0xf8,0x51,0x69,0x81,0xee,0x56,0xf1,0xd5,0x98,0xa2,0xa6,0x03,0x48,0x8c,0x67,0x8c,0x1b,0x7b,0xbe,0xa6,0x44,0x6b,0x00,0x83,0xad},
+       { 0xd1,0x07,0x9a,0x99,0xf7,0x3a,0x01,0xc9,0x6e,0xa6,0x78,0x84,0x16,0x62,0xda,0x5e,0x74,0xca,0xb2,0xc4,0x1d,0x1f,0x83,0x45,0x47,0xfe,0x65,0x0f,0x28,0x50,0xcd,0x27},
+       { 0xd1,0x24,0xfc,0x30,0x54,0x79,0x1f,0x76,0xbb,0x8b,0xaf,0x57,0xf5,0xc4,0x5b,0x69,0x16,0x8c,0x3a,0x6e,0xe3,0xfb,0xcd,0xf3,0xec,0x2a,0x77,0xe8,0x7c,0x7c,0x50,0x09},
+       { 0xd1,0xba,0x62,0xac,0x65,0x17,0x92,0x3b,0x96,0x74,0xf6,0xa9,0x73,0xa1,0x13,0x17,0xc3,0x0c,0x20,0x4f,0x63,0x65,0xd1,0x03,0x00,0x21,0xb6,0xf1,0xf7,0xff,0xba,0xa5},
+       { 0xd1,0xfa,0xd9,0xa8,0xe6,0x2e,0x06,0xcf,0x9b,0x40,0x3a,0xdf,0x51,0xed,0x60,0x75,0xec,0xe7,0x61,0xa1,0x0d,0xd6,0xa4,0xd8,0xde,0x08,0x82,0x2f,0xbb,0x08,0x22,0xfd},
+       { 0xd2,0x29,0x2e,0x6f,0x6c,0x3a,0xf8,0xae,0xee,0x62,0xa8,0x14,0xb3,0x17,0x1d,0xe4,0xa6,0xd6,0x60,0xed,0x25,0xa2,0x01,0xb9,0xba,0x7d,0xe8,0x3f,0xdb,0xe3,0x95,0x5e},
+       { 0xd2,0x3f,0xeb,0x93,0x47,0x60,0xb8,0xdf,0x4e,0xe6,0xb0,0xe8,0xbb,0x4f,0x5d,0x31,0x5d,0x40,0x5b,0xf0,0x56,0x18,0x2e,0x5d,0x5f,0x70,0x20,0x31,0x94,0x61,0x8a,0x05},
+       { 0xd2,0x56,0x79,0xcb,0x58,0x3b,0xa0,0x10,0x8f,0x74,0x97,0xe3,0x21,0xc6,0x5c,0x4d,0xc2,0xca,0x0f,0x28,0x20,0xc7,0xfc,0xdb,0x11,0x3f,0x05,0x72,0xdf,0x44,0x79,0x34},
+       { 0xd2,0x90,0x3c,0xa2,0x55,0x17,0x27,0xed,0x01,0x71,0xcc,0x4a,0x43,0xb3,0xca,0xe0,0x09,0xb7,0x47,0xb9,0xf4,0xf8,0x48,0x72,0x92,0x27,0xbf,0x59,0x02,0xf2,0x3e,0x47},
+       { 0xd2,0xb9,0x70,0xf3,0x30,0x65,0x03,0xe7,0xd4,0xbc,0x63,0x04,0x64,0xb2,0xaf,0x39,0x20,0x66,0x06,0xd3,0x6f,0xf0,0x51,0xd9,0x7d,0x40,0xd5,0x8a,0xb5,0x37,0x72,0x83},
+       { 0xd2,0xc7,0x0a,0x4c,0x52,0xfb,0xfc,0x7b,0x4c,0x2d,0xfe,0x94,0xcb,0x44,0x50,0x37,0x1e,0x72,0x36,0xbd,0xbd,0x1c,0x81,0x13,0xff,0x36,0x0f,0xa4,0xa1,0x58,0x1e,0xfc},
+       { 0xd2,0xd1,0x84,0xca,0x5b,0x97,0xac,0x7b,0xd3,0x4e,0x78,0x42,0x4c,0xa0,0xc2,0xb3,0x9c,0x35,0x08,0x52,0xcc,0xb1,0x33,0xe5,0xa1,0x87,0xf7,0x61,0x7d,0x00,0xb0,0x2c},
+       { 0xd2,0xe8,0xa1,0x23,0x7a,0x93,0xf5,0x78,0xd1,0xba,0x8f,0x09,0xe4,0xff,0x10,0x7b,0x62,0x35,0x78,0x85,0x42,0xaa,0x61,0x83,0xd1,0x76,0xdb,0xf1,0xc8,0x8d,0xcf,0xb6},
+       { 0xd3,0x10,0x0b,0xc8,0x42,0x8b,0xa2,0x3a,0xe1,0x3b,0x41,0xea,0xa2,0x95,0xbf,0xbf,0xd6,0x97,0xf5,0x0b,0x81,0xca,0xef,0x6a,0x30,0xa4,0xd1,0x99,0x47,0x1b,0x9f,0x32},
+       { 0xd3,0x22,0xe0,0xc4,0x4e,0xa7,0x92,0xc0,0x00,0x13,0x01,0xa6,0x32,0xa1,0x1d,0x50,0x6e,0xa9,0x17,0xde,0xed,0xca,0x8e,0xd0,0x5f,0x9e,0x7a,0xf0,0xb6,0x08,0x55,0x8b},
+       { 0xd3,0x8e,0x25,0x54,0xa9,0xee,0x9b,0x6d,0xbc,0xc4,0x89,0x2d,0x71,0x44,0x7e,0xf1,0x78,0x92,0xf3,0xbc,0xa3,0x33,0x95,0x2d,0xaa,0x12,0x16,0xc9,0xe9,0x56,0x22,0x27},
+       { 0xd3,0xff,0x14,0xad,0xd8,0x86,0x5f,0xaa,0x9c,0x30,0x3a,0xed,0xf9,0x34,0x53,0x85,0x49,0x8d,0x44,0xe1,0xcd,0xe0,0x45,0x6f,0x1f,0x33,0xb4,0x54,0xc3,0x95,0x04,0x58},
+       { 0xd4,0xa8,0x3c,0x51,0x04,0x29,0x4f,0x6a,0xec,0x2a,0xa0,0x9f,0xa6,0xef,0x5f,0xa0,0xf1,0x72,0xfd,0xe6,0xc4,0xac,0xd9,0x97,0x2f,0x39,0xfe,0xe2,0x92,0x4b,0xe2,0x74},
+       { 0xd4,0xc3,0xfd,0x99,0x41,0x39,0x82,0x2a,0xf3,0x4d,0xed,0xf2,0xc0,0xe6,0x2a,0xe5,0xec,0x67,0x28,0xaa,0x6e,0xae,0x4b,0x65,0x8d,0x93,0xbd,0xaf,0x3e,0x4a,0x7c,0x0c},
+       { 0xd5,0x04,0x88,0x96,0x86,0x07,0x29,0xa8,0xfa,0x5d,0x23,0x57,0x81,0x2b,0xa5,0x6c,0xbe,0x84,0xc9,0xab,0x7d,0x14,0xdf,0x47,0x64,0xe0,0xb6,0x62,0x0f,0xa3,0x20,0x10},
+       { 0xd5,0x07,0x55,0x61,0x65,0x49,0x1e,0xb1,0x24,0x3d,0x9a,0x61,0xe2,0x5d,0x20,0x84,0x7c,0x57,0xbc,0xb2,0x98,0xe6,0xd8,0x5b,0x7c,0x45,0xbe,0xfb,0x3d,0x9c,0x7b,0x35},
+       { 0xd5,0x41,0xa7,0x7e,0x13,0x6e,0x9e,0x70,0x3b,0xb9,0x9f,0x80,0x68,0xcf,0xee,0x86,0xa4,0xb9,0xf0,0x89,0xe0,0x2d,0x0c,0x6c,0xb6,0xd4,0xa3,0x94,0x6c,0x6b,0x16,0x7a},
+       { 0xd5,0x50,0xb9,0xa6,0xd5,0xc3,0xf5,0x25,0x7c,0x99,0xb9,0x94,0x43,0x69,0x88,0x3d,0xa1,0x1d,0xbe,0x23,0xb9,0x6e,0x19,0x34,0xed,0xed,0x52,0x1b,0x73,0x55,0xe4,0x44},
+       { 0xd5,0x83,0x7f,0x79,0xad,0xb8,0x27,0x89,0x70,0xdf,0x46,0x7e,0xdf,0x42,0x5b,0x8a,0x31,0xb7,0x50,0xbc,0x3b,0x9c,0x07,0x57,0xd4,0xda,0x14,0xc5,0x0f,0xcf,0x76,0x88},
+       { 0xd5,0x83,0x94,0x96,0xcd,0xc8,0x5b,0xe3,0xd1,0xf1,0xac,0x65,0x2e,0xfa,0x92,0xbe,0xa3,0xb0,0x61,0xc1,0x3d,0xad,0x5a,0x82,0x11,0x22,0xcf,0xe9,0xc7,0x1a,0x5a,0x32},
+       { 0xd5,0xa4,0xee,0x46,0x95,0xb5,0x65,0xa6,0x7e,0x50,0x48,0x66,0xfe,0x5b,0xa3,0xc0,0xed,0xca,0xee,0xd5,0x2a,0xd0,0xaf,0x07,0xe6,0x79,0x17,0x73,0x85,0x12,0xc8,0xf5},
+       { 0xd5,0xcb,0xab,0xc2,0x61,0x1a,0x6c,0x55,0xaf,0xb0,0x43,0x27,0xe2,0x60,0x8c,0xec,0xf3,0x45,0x6c,0x9f,0xd8,0xc7,0x66,0x58,0x18,0xa5,0x4d,0x5d,0x93,0x24,0x97,0xab},
+       { 0xd6,0x25,0xc0,0x59,0x2b,0x25,0xdc,0x03,0xaa,0x7e,0x87,0x8e,0x6a,0x85,0x09,0x1b,0xaa,0x07,0x8d,0x26,0x8b,0xbd,0xb4,0x9f,0x09,0x67,0x94,0x08,0x61,0x2d,0x1e,0xfe},
+       { 0xd6,0x46,0x08,0xb1,0x5f,0x71,0xfc,0x3b,0x91,0x90,0xa2,0x00,0xee,0x3c,0xb5,0xbc,0xd9,0xfc,0x5b,0x99,0xfb,0x67,0x74,0x9d,0x18,0x87,0xd9,0x17,0xd8,0x50,0x01,0x0b},
+       { 0xd6,0x83,0xd0,0x6e,0xb9,0x28,0x74,0x43,0xe5,0x01,0xec,0xf7,0x1d,0xad,0xa6,0x80,0x35,0x88,0x71,0xd1,0x2a,0x53,0xfb,0xcc,0x44,0x09,0x2e,0x76,0x4e,0xe5,0xba,0x08},
+       { 0xd6,0xd1,0xb3,0x5c,0xbc,0x12,0xfb,0x1c,0x70,0xa0,0xb4,0x3b,0xa5,0x9a,0xb3,0xd3,0x22,0x5f,0x37,0x32,0x64,0xdd,0x87,0xfb,0xca,0x00,0x61,0xec,0x1c,0x4d,0xa1,0x1a},
+       { 0xd7,0x0e,0xb9,0xb3,0xfe,0xad,0xd3,0x05,0x3f,0x5b,0xbc,0xd5,0xbb,0xde,0x27,0x48,0xcc,0xcf,0xb3,0xe4,0x41,0x36,0x7c,0xe9,0x3b,0x76,0xcc,0x46,0xcc,0xe3,0x76,0xc8},
+       { 0xd7,0x2c,0x0e,0x02,0xa8,0x71,0xa9,0xc2,0x86,0x7d,0xb5,0x13,0x63,0x62,0x56,0x98,0x32,0xdc,0x3b,0x85,0xaa,0x05,0x4a,0x6c,0x9e,0xcc,0x19,0x01,0x0e,0xba,0x39,0x3a},
+       { 0xd7,0x32,0x49,0x74,0xb5,0x60,0x09,0x62,0x17,0x61,0xf7,0xc0,0xff,0x68,0x9d,0xde,0x47,0x74,0x99,0x85,0xe1,0xee,0x8b,0x5c,0x89,0x61,0xdd,0x8f,0x6a,0x78,0xbb,0xf5},
+       { 0xd8,0x18,0xa4,0x72,0x70,0xfd,0xcd,0x56,0x4c,0x8c,0xef,0xbc,0x28,0xf7,0x6d,0x93,0x0b,0x6c,0x0d,0xae,0x09,0xd9,0x3d,0x24,0x20,0xeb,0x7c,0xde,0x20,0x59,0xad,0xba},
+       { 0xd8,0x29,0xd3,0x8a,0xf1,0xc4,0x45,0x73,0x8b,0xd8,0x12,0xe2,0x8e,0x38,0x26,0xb3,0x32,0x27,0x32,0xab,0xe0,0x02,0x32,0x89,0xfe,0x5a,0x9e,0xa6,0x15,0xf4,0xf8,0x97},
+       { 0xd8,0x32,0x8d,0x2f,0xf8,0x7e,0xc3,0xe9,0x0b,0x84,0xd9,0xa1,0x7b,0x1e,0x90,0x24,0xf6,0x27,0xc1,0xec,0xc3,0x5e,0xc7,0xe6,0x71,0xc1,0x42,0x92,0xa7,0xb8,0x8b,0x43},
+       { 0xd8,0x55,0x49,0xfc,0xd2,0x4d,0x36,0xcb,0x3f,0x7c,0x18,0x06,0x3f,0x97,0x5a,0x16,0x9f,0xe3,0xa1,0xfb,0x8d,0x0a,0x35,0x9f,0xd3,0x5c,0x28,0x7b,0xb2,0xaf,0x50,0xca},
+       { 0xd8,0x7a,0x9d,0xf7,0x19,0x1e,0x29,0xc8,0x04,0x1e,0x4c,0x19,0x3c,0x03,0xa8,0xa7,0x12,0x5f,0x16,0x6e,0xa6,0xcb,0x21,0x1f,0xff,0x4b,0xee,0x45,0x0d,0x72,0x58,0x09},
+       { 0xd8,0x83,0xdd,0x00,0x1c,0x4e,0x5c,0x22,0x6e,0xe2,0xc1,0xf1,0x0a,0x66,0x6f,0xa1,0x6e,0x5a,0xa9,0x12,0x30,0x58,0x38,0xed,0x9c,0xdd,0xc1,0x56,0x4d,0xc6,0x49,0x64},
+       { 0xd8,0x8a,0xf2,0x27,0x5a,0x93,0x3c,0x2f,0x60,0x1c,0x76,0xad,0x92,0x07,0x41,0xf7,0x54,0x20,0x3b,0x0d,0xce,0xeb,0x7d,0x32,0x2e,0x98,0x77,0x94,0x89,0xb2,0x9e,0x89},
+       { 0xd8,0xf0,0xe4,0x50,0x14,0xd7,0x09,0x7d,0xb4,0xd6,0xf7,0x65,0xef,0xe8,0xb2,0xb1,0x3a,0x18,0xdd,0xe7,0x39,0xdf,0x2a,0xf7,0x72,0x73,0x50,0x26,0x47,0x04,0xf7,0x90},
+       { 0xd9,0x2e,0x3e,0xe3,0x82,0xc8,0xdc,0xaf,0xa0,0x39,0x3d,0x9f,0x9a,0x00,0xbf,0x4c,0xd9,0xd5,0x64,0x26,0x2b,0x18,0x0f,0x68,0x16,0x0b,0x20,0x34,0xc5,0x44,0xd1,0x0a},
+       { 0xd9,0x41,0x01,0xb0,0xdf,0x02,0xcd,0xfe,0xea,0xd5,0x21,0xd0,0xe2,0xcf,0x3a,0x69,0x46,0x1f,0x82,0x6b,0xb7,0xa4,0xab,0x50,0xba,0x36,0xa3,0xc1,0xf8,0x3a,0x52,0xc4},
+       { 0xd9,0x65,0xf7,0x41,0x62,0x04,0xda,0x83,0x1a,0xf6,0x6b,0xfa,0x8f,0x90,0xd1,0x41,0xe9,0x93,0xf0,0x00,0x21,0x33,0xf2,0x8d,0xe9,0x7f,0x56,0x4a,0x1d,0x60,0x4e,0xcc},
+       { 0xd9,0x7f,0x55,0xb9,0x57,0x9b,0x05,0xae,0x4a,0x3e,0xd7,0xfc,0x55,0x8c,0x58,0x45,0x64,0x51,0x60,0xda,0xb3,0x53,0x85,0xc1,0x38,0xbc,0x89,0x9c,0x4d,0xad,0x8b,0x36},
+       { 0xd9,0x81,0x67,0x9e,0x4e,0xcd,0xe9,0xc5,0xab,0x5b,0xef,0x9d,0x5f,0x97,0x7b,0x0f,0x32,0xf9,0x25,0x56,0xe2,0x06,0xb1,0x51,0x09,0xa9,0xbb,0xec,0x59,0x16,0xe2,0xd7},
+       { 0xd9,0x89,0x73,0x8d,0x2d,0xe5,0x06,0x5b,0x8e,0x7a,0x8c,0x07,0x44,0x88,0xbe,0x8e,0x7d,0x93,0xaa,0x82,0xa8,0x35,0x96,0x49,0x24,0xc5,0x8f,0x32,0x09,0xfb,0x56,0x9e},
+       { 0xd9,0xd0,0xd9,0x6e,0xb3,0x28,0xe0,0xc1,0x77,0x8b,0x56,0xa9,0x2f,0x71,0x24,0x3b,0x6c,0x0d,0xb4,0x5c,0x62,0x51,0x32,0xdd,0x82,0xca,0x11,0xa0,0x97,0xe7,0x91,0xc6},
+       { 0xd9,0xe8,0xcc,0xda,0x78,0xfb,0x8d,0x5d,0xbc,0xe6,0x94,0x15,0x57,0x61,0xf4,0xd0,0x2c,0x30,0xcc,0x8d,0x7a,0xea,0x0e,0x11,0x88,0x2d,0x79,0x37,0x6c,0x72,0x90,0xff},
+       { 0xda,0xa3,0x09,0xda,0xef,0xcb,0x5c,0xd3,0xbd,0xf6,0xe1,0x4b,0xa6,0x89,0x0b,0x4f,0x73,0xf2,0xec,0x1c,0xef,0xc1,0xd5,0x1f,0x45,0xcd,0x9f,0xc2,0x2b,0x01,0x9a,0x1e},
+       { 0xda,0xb2,0xf9,0xe8,0xb5,0xf8,0x56,0x47,0x90,0x93,0x2d,0x6b,0xdb,0x34,0x29,0x16,0x2d,0x5e,0x2c,0xb5,0xd0,0x10,0x2d,0x79,0xd8,0x89,0xad,0x5a,0xb6,0xee,0xc4,0x77},
+       { 0xda,0xdf,0x97,0x13,0x34,0x14,0xad,0x51,0x3f,0xc7,0x50,0x14,0xe9,0x56,0x65,0xda,0xd7,0x76,0xb1,0x50,0x4b,0x15,0x67,0x43,0x4f,0xd8,0x2a,0x79,0xa2,0x20,0xe9,0xa1},
+       { 0xda,0xff,0xd4,0x05,0x6f,0xc3,0x68,0xfa,0x64,0x8d,0x0e,0xd8,0x9b,0x5d,0xe0,0xee,0x93,0x1f,0x1b,0x33,0x84,0x78,0xab,0xf5,0x69,0x29,0xa9,0x4d,0x3b,0xd6,0x1d,0x46},
+       { 0xdb,0x1b,0x33,0x54,0x93,0xbe,0x68,0xd2,0x8e,0x3c,0x4d,0x3d,0x11,0x84,0x99,0x42,0x26,0x17,0x93,0x49,0xda,0xf1,0x79,0x5b,0x77,0x39,0x3e,0x2d,0xd9,0x87,0xbb,0x43},
+       { 0xdb,0x2d,0xb8,0x4b,0x17,0x3c,0xe2,0x83,0xba,0x18,0x0f,0xa2,0x2f,0x15,0xc5,0x5f,0x6a,0x2a,0x27,0x66,0x9c,0xa8,0x14,0xa0,0x3b,0x9e,0xd0,0x31,0x90,0xcf,0x92,0xf6},
+       { 0xdb,0x57,0x78,0x2a,0x14,0xe1,0x3c,0x3b,0xe5,0x38,0x9a,0x26,0x08,0x1c,0x99,0x8b,0x5f,0xfa,0x67,0xdd,0x45,0x97,0xf8,0xca,0x67,0xef,0x10,0x6a,0xd7,0x5f,0x34,0x9f},
+       { 0xdb,0xa1,0x23,0x67,0x1f,0xed,0x4b,0x28,0x70,0x33,0xa4,0xb0,0x06,0x8f,0xc7,0x14,0xa5,0xfc,0x9c,0x02,0x6e,0xf5,0x65,0x0b,0x42,0xde,0x25,0x85,0x9a,0x12,0x6a,0xd1},
+       { 0xdb,0xa2,0x21,0xc2,0xab,0x44,0xb5,0x2c,0x0b,0x83,0x36,0xc4,0x69,0xfa,0xa8,0x56,0xd6,0xc3,0xec,0xdc,0x6c,0x24,0x6b,0xe3,0xca,0xc7,0xe0,0xf6,0x28,0x4b,0x5b,0xda},
+       { 0xdc,0x30,0x45,0x1c,0xfb,0x1a,0x68,0x3f,0xc5,0xb2,0xf3,0x16,0x56,0x02,0x49,0x6a,0x8f,0xc1,0xed,0xa7,0xcd,0x1e,0x61,0xb3,0xe1,0x67,0x47,0x71,0xd1,0x4f,0x7a,0x0e},
+       { 0xdc,0x3d,0x81,0xc3,0x01,0xbc,0xde,0xc5,0x38,0xef,0xc7,0xfa,0x6a,0x4e,0x5a,0x13,0xe5,0x17,0xd2,0xa4,0x61,0x22,0x2d,0xed,0x98,0x3e,0x75,0x56,0x4d,0x0e,0x68,0x84},
+       { 0xdc,0x42,0x4a,0x70,0x87,0x80,0x95,0x98,0x7a,0x5b,0xcd,0x17,0x1a,0xa5,0x13,0x67,0x7b,0xda,0x56,0xdf,0x35,0xb6,0x81,0xc7,0x07,0x84,0x0f,0xdc,0xea,0xc5,0xe4,0x0f},
+       { 0xdc,0x69,0x58,0x6c,0xcd,0x6d,0x51,0x0d,0xd1,0xcf,0x79,0x56,0xa6,0x71,0xd0,0x84,0xee,0x14,0x99,0xda,0x54,0xb8,0xbc,0x79,0xeb,0x07,0x28,0x71,0xa9,0x18,0xc4,0x06},
+       { 0xdc,0x90,0x90,0x55,0x0c,0x93,0x42,0xe2,0xfa,0xe2,0x42,0x26,0xa4,0xf9,0xb3,0xf6,0x93,0xf4,0xd1,0x46,0x52,0x79,0xc3,0x7b,0x46,0x14,0x38,0xf4,0xf5,0x3c,0x0e,0x0b},
+       { 0xdc,0xb2,0x1d,0xef,0x3c,0x26,0x0b,0x20,0x50,0xf3,0x4c,0x5f,0x51,0xbe,0x30,0x9c,0x3c,0x76,0x36,0x30,0x6d,0x51,0xb9,0xbe,0x43,0xd8,0x9d,0xe0,0x8f,0x60,0xd9,0x4a},
+       { 0xdd,0x30,0xcb,0x75,0xc9,0x3e,0x01,0xfc,0xc6,0xe8,0x44,0x63,0xfd,0x47,0x78,0x15,0x8f,0x3a,0x18,0xce,0x89,0x67,0x7b,0x01,0xe6,0xff,0x5b,0xa7,0x2f,0xa4,0xd0,0xf6},
+       { 0xdd,0x9d,0xd7,0xc1,0x80,0xb2,0x73,0x50,0x83,0xf5,0xc7,0x29,0x3e,0xc8,0x64,0x07,0x4b,0x42,0x27,0xfe,0x0e,0xae,0x8d,0x4d,0xaf,0x66,0x54,0x0d,0x82,0x2f,0x81,0xa1},
+       { 0xde,0x01,0xa7,0x27,0x1a,0x95,0x3d,0xa2,0xf0,0xfd,0xdb,0x6b,0x37,0xfe,0x00,0x28,0xde,0x8b,0x7d,0x3c,0xe5,0x79,0x1b,0x45,0x0d,0xd2,0x83,0xb2,0x0a,0xdb,0x05,0xd2},
+       { 0xde,0x45,0x46,0xc0,0x24,0x51,0xa5,0xb5,0xad,0x85,0xea,0x53,0x2f,0x09,0x6f,0xdf,0x1e,0x2b,0x41,0x71,0xd9,0x6a,0x1d,0xc3,0x93,0x6a,0x19,0x74,0xf0,0x58,0xf0,0xb2},
+       { 0xde,0x5c,0x3d,0x09,0x58,0xa6,0x12,0xbd,0x6d,0x48,0x09,0x15,0x03,0x3d,0x97,0x15,0x58,0xdf,0x35,0xce,0xb1,0xc9,0x18,0xe6,0x9a,0x01,0x34,0x51,0xe4,0x50,0x95,0xb8},
+       { 0xde,0x77,0xea,0xdb,0xcb,0xc2,0x05,0xdd,0x55,0xa0,0xe1,0x18,0xca,0x67,0x74,0xf9,0x58,0x09,0xa8,0x2c,0xa0,0x1b,0x2d,0x5e,0x85,0x72,0xe6,0x17,0xb6,0xab,0xf4,0x72},
+       { 0xde,0xcd,0xb9,0xfc,0x1d,0xde,0xc9,0x7e,0x09,0xc3,0x02,0x6a,0xce,0xb7,0x6b,0xda,0xe9,0xde,0xb6,0x62,0x75,0x1d,0xda,0x34,0x9d,0x2f,0xa6,0xbd,0x75,0xca,0x59,0x14},
+       { 0xde,0xd1,0x9a,0xd5,0xde,0x99,0x65,0xd9,0x22,0x5c,0x1b,0xba,0x5f,0xb4,0xd8,0x90,0xc8,0xe5,0xc0,0x35,0xe4,0x85,0x27,0x52,0xb6,0x69,0xb0,0x40,0x0f,0x24,0xf1,0x74},
+       { 0xdf,0x12,0x39,0x4e,0x73,0xcb,0x8c,0x95,0xc5,0x7e,0x49,0x8b,0x96,0xff,0x65,0x2c,0x06,0xac,0x62,0xa9,0xa8,0xed,0x83,0x85,0x39,0x93,0xdc,0xbd,0xeb,0xc0,0x16,0xaa},
+       { 0xdf,0x30,0xbf,0x8d,0x1b,0xf9,0x37,0x8e,0x43,0x3e,0xf9,0xe1,0xb3,0xa2,0x28,0xa0,0x7e,0x36,0x58,0xa5,0xbc,0x43,0x88,0x23,0x45,0x4d,0xb0,0x6a,0x67,0x94,0x4c,0x6e},
+       { 0xdf,0x51,0x6d,0xa3,0xc8,0x2d,0x2d,0x71,0x17,0x77,0x76,0x59,0xcc,0x9d,0xbe,0x7c,0xec,0x22,0x70,0x8f,0x22,0x59,0x47,0x6f,0xfc,0x48,0x60,0x34,0x94,0xfc,0x87,0xd3},
+       { 0xdf,0xe5,0xe5,0x4f,0x77,0x04,0xbe,0xa9,0xce,0xc9,0xc3,0x36,0x85,0xe8,0x93,0x37,0x6f,0xe0,0x65,0xd3,0x3b,0xbc,0x23,0x5d,0x16,0xa4,0x35,0x3d,0x3c,0x28,0x41,0xed},
+       { 0xdf,0xfb,0x15,0x21,0xaa,0x2d,0x83,0x65,0x9a,0x85,0x8e,0x14,0x62,0x82,0x43,0xd7,0x23,0x14,0x5e,0xa8,0x13,0x77,0xde,0xd7,0x99,0x1a,0x3c,0x00,0xa3,0x88,0x9b,0xf5},
+       { 0xe0,0x0b,0xd7,0x86,0xd1,0xf2,0xf4,0x46,0xc4,0xba,0x83,0x99,0xd4,0xd8,0xd5,0xa0,0xd1,0x98,0x57,0x8f,0x42,0x99,0xfd,0xfd,0xaf,0xf7,0x8c,0x3f,0x67,0x71,0xf3,0x94},
+       { 0xe0,0x65,0x19,0x10,0x41,0x74,0x08,0xbe,0x2b,0x0c,0xfd,0x3d,0x9e,0xaa,0xeb,0xca,0x32,0x1f,0x61,0x6d,0xda,0x48,0xcb,0x4f,0x09,0x10,0x9d,0x67,0x19,0x45,0xa1,0x1c},
+       { 0xe0,0x8b,0x2c,0xc2,0x7a,0xe8,0xe2,0xef,0x1a,0x33,0x01,0x7a,0x9a,0xc2,0x5d,0xda,0xfb,0x5e,0xa1,0x12,0xc9,0x56,0xb0,0x02,0xfe,0x6c,0x79,0x80,0x14,0xaa,0x90,0x65},
+       { 0xe0,0xa0,0x7b,0x39,0x6d,0x25,0x7f,0xab,0xb4,0xe3,0x22,0xd8,0x79,0x94,0x88,0x37,0x28,0x7a,0xaa,0x99,0xad,0x14,0xd7,0x8d,0x3a,0x2f,0x9d,0xfe,0x5c,0x97,0x28,0xbf},
+       { 0xe0,0xa9,0xd9,0x63,0x6e,0xfa,0x36,0xa7,0x72,0xac,0xb5,0xd0,0x22,0xfc,0xa9,0x73,0x71,0xb4,0x4f,0x7b,0x80,0x4b,0x03,0x97,0xfb,0x6c,0x37,0x1a,0x22,0x5b,0xda,0x78},
+       { 0xe0,0xbb,0xef,0x7e,0xe4,0x37,0xb0,0x59,0xe0,0x3b,0x52,0x9b,0xe6,0xb4,0x09,0x6d,0x56,0xc7,0x4e,0x90,0x67,0xb0,0x5f,0x87,0xaa,0x6a,0x5a,0x61,0x93,0x40,0xa7,0xc3},
+       { 0xe0,0xdd,0xe1,0x29,0xd2,0x60,0xc3,0xda,0xb6,0x91,0xd8,0x1d,0xab,0xad,0x73,0x4c,0x9a,0xdc,0x61,0xd2,0x0c,0x1a,0xe1,0xb6,0x72,0x4e,0x7b,0x27,0x92,0x75,0xda,0x35},
+       { 0xe1,0xb2,0xe8,0x6b,0x0d,0xa8,0x69,0xe9,0x25,0x26,0x6c,0x1b,0x56,0x88,0x34,0x5a,0x17,0xb0,0xf6,0xe2,0xa2,0x14,0x94,0x54,0x7e,0xac,0x09,0x7c,0x8b,0xf5,0x3c,0x5a},
+       { 0xe1,0xd4,0xbb,0x78,0x58,0x58,0x9e,0x08,0x7e,0x01,0xae,0x85,0x99,0x5a,0x5c,0x2f,0xd0,0xac,0xed,0xf4,0x40,0x55,0xff,0x96,0x73,0x8f,0x2b,0x32,0xb3,0x31,0x6e,0xb0},
+       { 0xe1,0xd6,0x44,0xa0,0x96,0xbd,0x8a,0x6c,0xac,0xbb,0xda,0x3e,0x7f,0xc3,0x38,0xea,0xdd,0xc1,0x2f,0x23,0x6c,0x72,0x61,0xe4,0x5f,0x8a,0xd2,0xd8,0x42,0x42,0x4f,0x72},
+       { 0xe2,0x24,0x10,0xb5,0xa6,0x7f,0xed,0xc2,0x64,0x69,0x4c,0x44,0x9d,0x84,0xfa,0x1a,0x02,0xbc,0x8b,0x21,0x28,0xc1,0x25,0x60,0x71,0x58,0xc9,0x1b,0x05,0x38,0x6c,0x6a},
+       { 0xe2,0xa8,0x47,0xc3,0xf0,0x9b,0xeb,0x6f,0x05,0x68,0x6f,0x17,0x79,0x1b,0x05,0xf1,0xfe,0x25,0xf7,0x71,0x86,0x9c,0x42,0x63,0xa5,0x5b,0x94,0x18,0x77,0xe4,0x79,0x04},
+       { 0xe2,0xb4,0x03,0x32,0x0b,0x01,0xf6,0x03,0xd7,0xb0,0xca,0x1f,0x89,0xf0,0x8e,0x25,0xa7,0x95,0xe8,0xb6,0x04,0x36,0x8b,0xa0,0x78,0x69,0x68,0x46,0x8c,0x18,0xc3,0xf0},
+       { 0xe2,0xde,0x18,0x3e,0xae,0x35,0x4c,0xcf,0x68,0xf2,0x52,0x56,0x76,0xd7,0x26,0x46,0x06,0x01,0x38,0x43,0xac,0xb1,0xfb,0xff,0xa0,0x22,0x99,0xa7,0x4e,0xa0,0xdf,0x62},
+       { 0xe2,0xf3,0x9a,0x9d,0x48,0xa3,0x22,0x10,0x55,0xb3,0xc8,0xa3,0xeb,0x14,0x39,0xd6,0xb8,0x73,0x01,0x3e,0xe4,0xd0,0x97,0x12,0x20,0x64,0xf2,0x7e,0xc0,0x3d,0xd4,0xda},
+       { 0xe2,0xf5,0xde,0x57,0xcd,0x67,0x24,0x9a,0x7e,0x1f,0x45,0x5b,0x85,0xc0,0x6f,0x0d,0x80,0x9e,0x75,0xa5,0x5c,0x6b,0x05,0x48,0x16,0xe0,0x19,0x89,0x9a,0x3a,0x02,0xff},
+       { 0xe3,0x1f,0xa0,0xbd,0xe8,0x58,0x9e,0xdd,0xda,0x1c,0x5d,0x1a,0xa9,0xc5,0x81,0x86,0xc3,0x14,0x36,0x85,0x67,0xbd,0xf9,0xdc,0xd5,0x37,0xaa,0xe3,0xcf,0xf8,0x77,0x52},
+       { 0xe3,0xc8,0xfc,0x63,0x7b,0x7b,0xb0,0xcc,0x67,0x4a,0x5a,0x4c,0x3b,0x4d,0x35,0x62,0xeb,0x8a,0xa0,0x0d,0x7a,0xd2,0xc8,0xa9,0xc6,0x37,0x09,0xe4,0x51,0x06,0x52,0xd5},
+       { 0xe4,0x6c,0x8d,0x7e,0x4d,0x59,0x76,0x83,0x0b,0xe3,0x7a,0x22,0x25,0x75,0x55,0x42,0x20,0x81,0xe1,0xa8,0x4b,0x72,0x6b,0xcf,0x17,0xb0,0x43,0x54,0x1e,0x7c,0xa7,0x15},
+       { 0xe4,0xf1,0xde,0x31,0xcd,0xaa,0x6d,0x9e,0xb1,0xaa,0xfd,0x10,0x81,0x27,0xa2,0xf0,0xa8,0xfb,0x6d,0xa8,0x5a,0x04,0x14,0xad,0x24,0x99,0x47,0xc4,0x8d,0x24,0x92,0xc5},
+       { 0xe5,0x3c,0x7e,0xa6,0xb1,0x2d,0x3e,0xca,0xbf,0xb0,0x2f,0xe4,0x88,0x56,0xe6,0x38,0xbd,0x0c,0x6f,0xeb,0x35,0x75,0x7c,0x19,0xae,0xfa,0x3d,0x51,0x92,0x17,0xe2,0x9e},
+       { 0xe5,0x6b,0xf9,0xfa,0xf8,0xee,0x91,0xd8,0x2f,0xaf,0xdf,0x9b,0x51,0x20,0x64,0x7f,0x0d,0x67,0xf7,0x18,0xd7,0x55,0x49,0x87,0xfa,0x06,0x4b,0xb2,0x38,0xcb,0xe3,0x9a},
+       { 0xe5,0x70,0x93,0x54,0xaf,0x05,0x47,0x26,0x95,0x3f,0xc5,0xc3,0xbb,0x13,0x3e,0x16,0xc7,0xbb,0xb7,0xc3,0x5a,0xfc,0xc3,0x21,0xcd,0xa0,0x35,0x0b,0xeb,0x57,0x17,0x77},
+       { 0xe5,0x9a,0x43,0xb8,0x41,0x20,0x26,0x84,0x36,0xc3,0x5e,0xd8,0x6d,0x73,0x21,0x38,0x5f,0xb9,0x1f,0x89,0x82,0x83,0x3e,0x5f,0x54,0xd2,0xae,0xe2,0x09,0x56,0x2f,0x2f},
+       { 0xe5,0xaf,0x76,0xa5,0xa0,0xcc,0x06,0x75,0x0e,0x8c,0x17,0x76,0x9a,0xf3,0x4d,0x72,0x43,0x76,0x7f,0xbe,0x2a,0x9f,0x4a,0xbc,0x17,0x08,0xea,0x1c,0x86,0x2a,0x38,0xeb},
+       { 0xe5,0xf1,0x20,0xb8,0x78,0x63,0x43,0x1a,0xd8,0x34,0xd8,0x47,0x94,0x86,0x4a,0x90,0x0e,0x39,0x30,0xe0,0xce,0xce,0xa1,0x4b,0x0d,0x31,0x33,0xa9,0x87,0x74,0x48,0x89},
+       { 0xe6,0x17,0x7c,0x86,0xb8,0x35,0x58,0x0a,0x7a,0x09,0x50,0x34,0x78,0x98,0xab,0x63,0xaf,0x11,0xec,0x99,0x60,0x64,0x45,0x4c,0x04,0x62,0xbe,0x5d,0x4e,0xd5,0x22,0x48},
+       { 0xe6,0x44,0xd1,0x1c,0x37,0x07,0x0f,0x89,0x69,0x33,0x08,0x17,0x8d,0x6b,0xe4,0x95,0x94,0x96,0x92,0xc1,0xfb,0xeb,0x30,0xed,0x32,0x9b,0x74,0x02,0x7f,0xcf,0xfd,0x48},
+       { 0xe6,0x7e,0x9d,0xc8,0x17,0x8e,0x8d,0xad,0x62,0x91,0x40,0x22,0xae,0x76,0xd4,0x75,0x1e,0x9e,0x26,0xc6,0x32,0x68,0xd3,0xb9,0xdf,0xc8,0x86,0xe6,0x7a,0xaa,0x9e,0xeb},
+       { 0xe6,0xa7,0x10,0x85,0x6e,0x43,0x3d,0x4f,0x5f,0xaa,0xd2,0xae,0xf4,0x38,0x6f,0x17,0x46,0x02,0xc8,0xfa,0xe4,0x50,0x0f,0x34,0x40,0xdd,0x3c,0x78,0xf6,0xe8,0xda,0x6c},
+       { 0xe6,0xb0,0xf2,0xe2,0x5b,0xd5,0x16,0xe4,0xbb,0xa3,0x7a,0x2b,0xf2,0xe2,0xc7,0x2a,0x1e,0x53,0x9c,0x60,0x30,0xf3,0xcf,0x9b,0xbe,0x5e,0x79,0x72,0x8d,0x68,0x64,0x78},
+       { 0xe6,0xc9,0x32,0x43,0x98,0x7b,0x3b,0xb2,0x8a,0xb8,0x6f,0xdd,0x6b,0xf4,0xd9,0xa5,0x94,0xf8,0xd5,0xbc,0xe3,0xb2,0xf6,0xaf,0x51,0x97,0x15,0x53,0x08,0xc6,0x03,0x2d},
+       { 0xe6,0xe5,0x4d,0xe7,0xb4,0x97,0x54,0xd3,0x57,0xb0,0xa8,0xd9,0x4a,0x4d,0x4f,0x80,0xac,0xd1,0x99,0x4c,0xcc,0x1c,0x99,0x08,0xe9,0xf0,0xd9,0x21,0xe4,0x28,0xb8,0x38},
+       { 0xe7,0x0c,0xbb,0x7a,0xf7,0xaa,0x20,0xb9,0x89,0x0b,0xc1,0xf9,0xfa,0x00,0xd8,0x09,0x0b,0x5a,0xc9,0x82,0x5e,0xa9,0xd2,0xfd,0xf7,0x7c,0xa4,0xda,0xe9,0x44,0x51,0xb2},
+       { 0xe7,0x5d,0x32,0x90,0xa6,0x9a,0xb5,0x96,0xee,0x17,0x9d,0xc1,0x34,0xaa,0x07,0x1e,0x69,0xfd,0x98,0x25,0xfc,0x06,0x2e,0x33,0x8b,0xa2,0x23,0x5e,0xe3,0x25,0x56,0xd2},
+       { 0xe7,0xd5,0x73,0x8a,0xcd,0x7f,0x56,0x3d,0xd6,0x8e,0x86,0x75,0xc8,0x78,0xc6,0xc6,0x80,0x02,0xd6,0x40,0x60,0x46,0xaf,0x40,0x56,0x01,0x3a,0xa4,0x6e,0xa0,0x37,0x54},
+       { 0xe7,0xfd,0x58,0x39,0x86,0x80,0xfa,0xbd,0x43,0x21,0xcd,0xbe,0x23,0x33,0xcb,0xc2,0xc5,0x4a,0x32,0xff,0x76,0x6c,0x4a,0x94,0x43,0xc3,0x6e,0x2c,0xeb,0x46,0xc5,0xf0},
+       { 0xe8,0x02,0xcb,0x32,0x13,0x85,0x51,0xe5,0x57,0x44,0xd4,0x11,0xc4,0x8c,0x7d,0x5f,0x47,0xb8,0x15,0x47,0xb1,0x23,0x47,0x90,0xda,0x5d,0xa4,0x33,0x97,0x2e,0x57,0x27},
+       { 0xe8,0x16,0xf9,0x92,0x94,0xa1,0x3a,0xc2,0xfa,0x2b,0xfb,0x76,0xc2,0x2d,0xfa,0x71,0xbc,0x3d,0xa4,0x8f,0x67,0x1e,0xf7,0x7c,0x00,0xaa,0x8e,0x45,0x9b,0x7c,0xc8,0x2a},
+       { 0xe8,0x1a,0x87,0x45,0xad,0x86,0xf6,0x5f,0xa0,0xd8,0x51,0xfc,0xb7,0x2e,0x3e,0xf5,0x4d,0x51,0xbc,0x60,0xb9,0x68,0x0c,0xb2,0x5e,0xb2,0xf3,0xac,0x44,0xea,0xa7,0xa4},
+       { 0xe8,0x21,0x3c,0x45,0x51,0x81,0x61,0xbc,0x36,0x37,0x3d,0xcd,0x2d,0x4b,0x21,0xb7,0x6a,0x7c,0x06,0x6d,0xf5,0x52,0x6e,0x88,0x8b,0x6e,0xed,0x09,0xa9,0xee,0xd0,0x62},
+       { 0xe8,0x68,0xe4,0xe2,0x52,0xdc,0x95,0x87,0x75,0x75,0x6e,0xc0,0x10,0xfa,0xcf,0xb8,0x79,0x63,0x6a,0x35,0x27,0xb3,0xb8,0xdb,0x9b,0xf9,0x26,0x03,0x6a,0xd4,0x0e,0x92},
+       { 0xe8,0x6e,0xe6,0x9d,0x51,0xbe,0x64,0xf8,0x28,0xfc,0x22,0xcc,0xe5,0xbc,0xc1,0x1d,0x24,0xa5,0xf1,0x77,0xf9,0xba,0x99,0x51,0x92,0x71,0xa4,0xf3,0x9f,0x0c,0x51,0x7c},
+       { 0xe8,0xa6,0x09,0xec,0x44,0xf9,0x3c,0x12,0xe0,0x81,0xe5,0x94,0x3b,0x5e,0xa0,0x48,0x68,0x14,0x48,0x33,0x32,0x5d,0xaa,0x64,0x4f,0x3f,0x9f,0xb7,0x6a,0xa2,0x77,0xc8},
+       { 0xe9,0x52,0x76,0x76,0x30,0x2f,0xfb,0x14,0x91,0x15,0x65,0x19,0x28,0xf0,0x4d,0x9c,0x96,0xaf,0xef,0x18,0xb5,0x72,0x12,0x37,0x52,0x75,0x4b,0x38,0xa9,0x7c,0x8e,0xf0},
+       { 0xe9,0x65,0xdb,0x91,0x44,0x8e,0xff,0xc5,0x3d,0xef,0x1b,0x72,0x68,0xa2,0xf5,0xab,0x95,0xb1,0x4a,0x2a,0x90,0x2c,0x6a,0xc9,0xb2,0x54,0xec,0xaf,0xc7,0x9f,0x08,0xd8},
+       { 0xe9,0xc2,0x8f,0x7a,0x33,0xfb,0xc5,0xb4,0x49,0xc9,0x5a,0x88,0x47,0x1d,0x3f,0x71,0xfb,0x34,0x7a,0x02,0xce,0xb0,0x5e,0xb0,0xe7,0x1c,0x7b,0xb7,0x46,0x45,0xc8,0x92},
+       { 0xe9,0xd4,0x98,0x51,0xbf,0x78,0x37,0x6d,0x54,0x08,0x2d,0x1e,0xb8,0x2b,0xd2,0xdc,0x96,0x82,0x07,0x09,0xb7,0x77,0x2d,0x3f,0xbc,0xa3,0x90,0x08,0x8b,0x54,0xc4,0x53},
+       { 0xe9,0xf5,0x71,0xc7,0x71,0x64,0xab,0xea,0xe1,0x85,0x28,0x37,0x5c,0xfd,0xc7,0x21,0x9a,0x6b,0xde,0x46,0x1b,0x19,0x73,0xbe,0x2b,0xb8,0xbd,0xf0,0xda,0x78,0xb2,0xb4},
+       { 0xea,0x2e,0x8c,0x23,0xaa,0x7c,0xc3,0x7d,0x64,0xcf,0xc3,0x03,0xdd,0x9f,0x3f,0x92,0x1b,0xae,0x11,0x8c,0xa3,0xdf,0x81,0xe5,0x92,0xe3,0x0b,0xbb,0x03,0x71,0x4d,0x96},
+       { 0xea,0x51,0x8b,0x42,0x91,0x89,0x39,0xa6,0x22,0x63,0xa7,0xcc,0xd2,0xa9,0xb5,0x44,0x9c,0x58,0x1c,0x2e,0xa9,0x9c,0x2b,0x74,0x3f,0x6f,0x18,0x3d,0xfc,0x19,0xed,0xff},
+       { 0xea,0x5a,0xb6,0x6c,0xaf,0xde,0x63,0x38,0xc0,0x67,0x8d,0x74,0x54,0xd0,0x79,0x6d,0xde,0xa0,0xd2,0x84,0xdd,0xaa,0x79,0x4d,0x04,0x42,0x0e,0xda,0x97,0x71,0xc5,0x1a},
+       { 0xea,0x76,0x8a,0xf7,0x9b,0x07,0xce,0x21,0xc2,0x64,0x90,0xe9,0x4b,0xc0,0x7a,0x2a,0xae,0x96,0xbd,0x60,0xa4,0x19,0xe9,0x8b,0x03,0x63,0x87,0xf2,0x10,0x2d,0x28,0xf6},
+       { 0xea,0x81,0xee,0xeb,0x60,0x6b,0xc9,0x1c,0x0e,0x07,0xda,0x1f,0x86,0x04,0x89,0x3c,0x1d,0x17,0x84,0x60,0xde,0xe8,0x7e,0xd5,0x37,0xff,0x8d,0x85,0xe4,0x00,0x02,0xf5},
+       { 0xea,0xc1,0x29,0xdc,0x3a,0xe7,0xf5,0xcc,0x0f,0x13,0x46,0x57,0x0d,0x06,0x92,0x6a,0x85,0x01,0xb0,0xd2,0x06,0x9b,0xf7,0x17,0xaf,0x69,0xd1,0xbe,0x0e,0x3e,0x30,0xde},
+       { 0xeb,0x11,0x63,0xaa,0xef,0xe8,0xfd,0x88,0xe1,0x32,0x7b,0x48,0xa9,0xc0,0x06,0x2e,0x06,0xf0,0xa6,0xea,0xa0,0xa0,0x18,0x24,0x7f,0x9f,0xa4,0xe3,0x4e,0x3a,0x47,0x4c},
+       { 0xeb,0x43,0x76,0xb1,0xd2,0x38,0x2a,0xc1,0xc3,0xee,0x27,0xbe,0x86,0x67,0xec,0xf5,0xab,0x36,0x25,0x5a,0x3c,0x36,0xc7,0x22,0x74,0x33,0x8a,0xd7,0x17,0x56,0x25,0x11},
+       { 0xeb,0x5b,0x21,0x0f,0x76,0xa3,0xc4,0x5e,0x5a,0x76,0x07,0x64,0x3e,0x15,0x26,0x0d,0x1c,0x93,0xfd,0x9b,0xe0,0xfa,0xb1,0x0b,0x76,0xdc,0x96,0x86,0xf6,0x54,0xc6,0xe5},
+       { 0xeb,0x89,0x84,0xd1,0xa9,0xfe,0x26,0x7c,0x07,0x9a,0xe2,0xf2,0xf1,0x6f,0x01,0xe6,0x0c,0x4c,0xea,0x94,0x34,0xc5,0x29,0x7a,0x71,0x88,0xaa,0x09,0x25,0x1d,0x03,0xe0},
+       { 0xeb,0xb7,0xc4,0x12,0x58,0x17,0x82,0x26,0xad,0x37,0xcc,0xaf,0x01,0x1f,0xcf,0xf0,0x54,0xb7,0x7a,0xc4,0x9f,0xce,0x28,0x13,0x5f,0x5a,0xfc,0x51,0x63,0x15,0xea,0x4d},
+       { 0xec,0x01,0x78,0xd1,0xca,0x3b,0x94,0x52,0xaa,0x5c,0xd5,0xd3,0x75,0x45,0x6b,0xab,0xf0,0xdc,0x0e,0xd2,0x29,0x91,0x5d,0x1a,0x8f,0x49,0x6d,0xf2,0xa2,0xa0,0x98,0x71},
+       { 0xec,0x27,0x05,0x63,0xb0,0x5a,0x06,0xe5,0xaa,0xa5,0xe6,0xd5,0xbb,0xcc,0x17,0xcd,0x1c,0xb5,0xb2,0xa9,0x4d,0x93,0x84,0x75,0xf1,0x58,0x17,0x6f,0x4d,0x84,0xf4,0x53},
+       { 0xec,0x4b,0xbd,0xeb,0x15,0x12,0x1d,0x96,0x76,0x4d,0x6c,0x01,0xb2,0x7e,0xd5,0xae,0x86,0x46,0x5c,0x46,0xd5,0xa4,0x0e,0x34,0xae,0xfc,0x09,0x2d,0x3e,0x8b,0xb1,0x76},
+       { 0xec,0x5f,0xa4,0x73,0x12,0x1e,0x3f,0x49,0xf0,0x95,0x3a,0x2a,0x91,0x83,0x39,0xe3,0x6f,0x3c,0xb6,0xb8,0xd8,0xb8,0x9e,0x91,0x74,0x23,0xda,0xce,0xac,0xe6,0xd5,0x8a},
+       { 0xec,0x79,0x76,0xc2,0xb8,0x10,0x31,0xf5,0x88,0x49,0x5b,0xc1,0x9f,0x51,0xb0,0x36,0xf8,0x4f,0x48,0x1d,0x9b,0x15,0x73,0xd9,0x8a,0x7c,0x32,0x67,0xc0,0x63,0x1e,0x00},
+       { 0xec,0xce,0x4e,0x52,0x82,0xfd,0x2e,0xe0,0x03,0xa4,0x03,0x2c,0x80,0xd3,0x32,0x1a,0x69,0x47,0x25,0x98,0x94,0x59,0x09,0xcb,0x25,0x55,0x7a,0xa8,0x47,0x74,0x2d,0xdf},
+       { 0xed,0x2b,0x81,0xa0,0xf8,0xf1,0x46,0x5e,0xa2,0xf4,0x17,0xa4,0xe8,0x34,0xc2,0x2a,0x22,0xee,0x7a,0x9d,0xdf,0x59,0xa8,0x3b,0x89,0x82,0xb0,0xe1,0x07,0x19,0x64,0x42},
+       { 0xed,0x50,0xc1,0x22,0xaa,0x2a,0x49,0x53,0xf0,0x51,0xb7,0x81,0x41,0x33,0xab,0xbc,0x37,0xa0,0xc2,0x21,0x1b,0xf7,0x44,0x0d,0x75,0xb3,0x5e,0xe5,0x4e,0x5a,0x98,0x86},
+       { 0xed,0x57,0xfb,0x37,0xd8,0x73,0xd5,0x26,0xb1,0xb6,0xfd,0xc3,0x38,0x0f,0xa9,0x30,0x0d,0xa6,0x25,0x81,0x4c,0x35,0xf1,0x0a,0x04,0x93,0xee,0x19,0xff,0x09,0x60,0x29},
+       { 0xed,0x5b,0xb8,0x6a,0x95,0xa5,0xfe,0x2b,0x17,0x08,0xf2,0x56,0x75,0x4a,0x89,0xc4,0x29,0x67,0x9b,0x30,0x75,0x8e,0xe0,0x12,0x2b,0x9e,0x50,0x85,0x8d,0xe2,0x10,0x4b},
+       { 0xed,0x6d,0xda,0xe4,0xf4,0xaf,0xce,0x6b,0xaf,0x3a,0x63,0x7d,0x89,0x0a,0x0d,0x65,0x75,0x3e,0x45,0x97,0x14,0x5a,0xf8,0x97,0x53,0x9b,0xf9,0xf7,0xd3,0x42,0xa1,0xd1},
+       { 0xed,0xc1,0xbf,0x3e,0xfb,0xf7,0xe1,0xd9,0x5e,0x19,0xc5,0x5e,0xca,0xe7,0x7e,0x83,0x69,0x46,0xab,0x0a,0x26,0xa7,0x8e,0x32,0xa4,0x72,0xc9,0xd3,0x6c,0x69,0xce,0xcd},
+       { 0xed,0xf4,0xdf,0x97,0x2c,0xad,0x6c,0x47,0x0b,0xab,0x5d,0x66,0x42,0xf6,0x60,0xb8,0x42,0xd6,0xc9,0x73,0x07,0x44,0x93,0xe4,0xef,0x1b,0xbf,0x31,0x1a,0x92,0x79,0x95},
+       { 0xee,0x1a,0x2f,0xa9,0x58,0x37,0x5e,0x11,0x06,0xe2,0xc9,0x05,0xed,0x8a,0x26,0x4f,0x28,0x19,0xcb,0xb5,0x26,0x11,0x8d,0x30,0x68,0x9d,0x17,0x90,0x42,0x9a,0x46,0xa1},
+       { 0xee,0x34,0xe1,0xa1,0x9b,0xc8,0x89,0xf8,0x5f,0x7f,0x0f,0x5b,0xf8,0x72,0xb1,0xac,0x56,0x5e,0xc6,0xf1,0x9d,0xb5,0x17,0xba,0x4e,0xd7,0x55,0xc4,0x18,0x5f,0x69,0xe8},
+       { 0xee,0x35,0x71,0x37,0x61,0x52,0x7a,0xe4,0x8e,0x7e,0x40,0x94,0xb2,0xb9,0x1d,0x3d,0xd2,0x64,0x3f,0x38,0xe2,0x6d,0x34,0x36,0x36,0x52,0xfe,0x5c,0x2b,0xbc,0x41,0x6b},
+       { 0xee,0xe4,0x9f,0xcf,0x29,0x63,0x9e,0xd8,0x82,0xe0,0x1a,0xd1,0xf0,0xf5,0xa1,0xc5,0x55,0x09,0x26,0xaf,0xd4,0x23,0x4e,0xf1,0x46,0xbc,0x47,0x09,0xfe,0x5d,0x90,0xe8},
+       { 0xef,0x36,0xa2,0x29,0x89,0x65,0xe4,0x98,0x84,0x59,0xb9,0x21,0x6a,0xb3,0x3c,0x3c,0xa8,0x42,0xd2,0x16,0x83,0xb6,0x2a,0x2b,0xf1,0x53,0x0d,0x30,0xb0,0xae,0x78,0x25},
+       { 0xef,0x6d,0xe0,0xc4,0x85,0x70,0xbd,0x71,0x51,0x6b,0xf6,0x39,0x5d,0xbd,0x29,0x33,0x7c,0xfc,0xb7,0xd4,0x26,0x64,0x10,0xa1,0xf5,0xda,0x08,0x08,0xe0,0x96,0xf4,0x55},
+       { 0xef,0x7e,0x8c,0xcd,0x7b,0xcf,0xb7,0x1d,0x2a,0xa7,0xbc,0xdd,0x8f,0xd2,0xd2,0xd1,0x55,0x77,0x9d,0xe8,0x68,0x43,0x20,0x44,0x35,0x1e,0x98,0x02,0xcc,0xa2,0x90,0xaf},
+       { 0xef,0xaf,0xca,0x84,0x90,0x30,0x7b,0x0f,0x62,0x2b,0xf4,0x3a,0x0e,0xb3,0xc5,0x1a,0xcb,0xdd,0xde,0xdc,0x23,0x92,0xf1,0x61,0xac,0xed,0x16,0x71,0xa6,0x53,0x60,0x7e},
+       { 0xef,0xb5,0xbe,0x9f,0xa2,0xc6,0xee,0x48,0x9f,0x9e,0xb3,0xdd,0x55,0x42,0xa7,0x0c,0x22,0x57,0xb5,0x6b,0x24,0x0b,0x3b,0x4b,0x29,0xf3,0xb4,0xe6,0xba,0x8a,0xed,0xe3},
+       { 0xef,0xc1,0x72,0xee,0xab,0xe2,0xae,0x26,0xbc,0xbf,0x0e,0xdd,0x22,0x19,0xe6,0x62,0xe4,0x63,0xf9,0x58,0x03,0x40,0xf3,0x47,0x3d,0xad,0x35,0xe7,0x50,0xb0,0x70,0x68},
+       { 0xef,0xce,0x18,0x13,0x67,0x41,0x03,0xc4,0x43,0xaf,0x12,0x8f,0x84,0x81,0x8e,0x33,0x85,0x3e,0x3b,0x69,0x03,0x55,0x35,0x36,0x57,0x98,0xea,0xf7,0x5f,0x7e,0xaf,0x79},
+       { 0xef,0xd1,0xe0,0xe7,0x3f,0xa8,0x71,0x00,0xb7,0x6a,0x93,0x23,0x49,0xc4,0x5d,0x09,0xb2,0x8b,0x2d,0x8a,0x00,0x17,0x19,0xa5,0x8d,0xfa,0xcc,0x74,0x84,0xc7,0xcf,0x42},
+       { 0xf0,0x11,0xad,0x9e,0xdd,0x4f,0xe7,0x18,0x8d,0x77,0x2e,0xba,0xfa,0x5b,0xf5,0x32,0x92,0x47,0x77,0x88,0xdc,0x12,0x80,0x32,0x76,0xb0,0x00,0xc4,0x41,0x91,0x03,0xf0},
+       { 0xf0,0x15,0x95,0xf5,0xa4,0x66,0x88,0x78,0xf6,0xc7,0x98,0xa5,0xd2,0xf1,0x35,0x23,0xf3,0xaf,0xb2,0x0e,0xf7,0x6f,0xe5,0x77,0x6f,0xce,0x47,0xd3,0x40,0x9d,0xf3,0xc2},
+       { 0xf0,0x2f,0x9d,0xa4,0x5d,0x9e,0xb9,0x86,0x19,0x4e,0x06,0xf5,0xe6,0x18,0x95,0x45,0x12,0xc9,0x02,0x6e,0x7c,0xa7,0xb5,0x1e,0x66,0x5d,0xb6,0xad,0xba,0xc1,0xf6,0x00},
+       { 0xf0,0x6b,0x35,0x95,0x36,0xd1,0x34,0x32,0x8b,0x36,0x00,0x4d,0xa9,0xa9,0x19,0x0c,0x3a,0x76,0x69,0xe8,0x27,0x8d,0xb9,0xf7,0x58,0x57,0xc4,0x8d,0x64,0x4b,0xe2,0x03},
+       { 0xf0,0xcf,0xc7,0x79,0x13,0x39,0x7d,0xe2,0x38,0xed,0xb5,0x9f,0x0f,0x99,0x23,0xc6,0xd4,0x11,0x0a,0x4b,0x3a,0xc8,0xac,0x76,0x55,0x6a,0x0c,0x92,0x44,0xf0,0x3f,0xc1},
+       { 0xf1,0x13,0x93,0xaf,0xaa,0xcb,0x50,0x3a,0xe4,0xac,0xcc,0x3e,0xdf,0xc5,0x8f,0x9a,0xd8,0xa9,0x6a,0x01,0x2e,0x3a,0xc3,0x8e,0xcb,0xaa,0x28,0x62,0xb8,0x05,0x69,0x8b},
+       { 0xf1,0x46,0x85,0xc4,0xc1,0x0c,0x79,0xfc,0x97,0xe1,0x84,0xea,0x7d,0x22,0xf8,0xee,0x4a,0x81,0xd0,0x56,0x95,0xab,0x08,0xd2,0x5d,0x4a,0x73,0x3b,0x60,0xb4,0x70,0xdf},
+       { 0xf1,0x4b,0xf7,0x41,0x19,0x15,0xef,0x83,0x96,0xcc,0x04,0x0a,0x6f,0x30,0x12,0xbd,0x81,0x8c,0x11,0x9d,0x03,0x98,0xce,0xd6,0x1d,0x80,0x9e,0xf9,0x4b,0xd8,0x62,0xd8},
+       { 0xf1,0x9a,0xe4,0x7d,0x93,0x67,0x16,0x52,0x78,0xe1,0x66,0xed,0x44,0xff,0xc3,0x7e,0x5b,0x28,0x19,0x6c,0x01,0x4b,0xf1,0x18,0xcf,0xc6,0x4e,0xd5,0xfa,0x18,0x19,0x4d},
+       { 0xf1,0xb5,0xf4,0xb2,0x1e,0xa3,0x2d,0x06,0x26,0xaa,0x5a,0x6b,0xf5,0xc4,0xde,0x59,0x1c,0xf1,0x65,0x0f,0xa8,0x22,0xf1,0x34,0xd9,0x2d,0x54,0x8f,0x15,0x77,0x73,0xd6},
+       { 0xf2,0x06,0x59,0x72,0x49,0x8d,0x5e,0x12,0x79,0x8e,0x1e,0x1f,0xf3,0xe1,0x1d,0xe4,0x23,0x3a,0xbb,0xbd,0x30,0x8a,0x58,0x07,0x60,0x58,0x48,0x18,0x6e,0x44,0x11,0x7f},
+       { 0xf2,0x54,0x76,0xf3,0xab,0x8e,0x5e,0x0b,0x9b,0xb6,0x1d,0x4c,0xe4,0x50,0x7f,0xa3,0x52,0x93,0xc6,0x64,0x15,0xd7,0xd1,0x91,0x9b,0x29,0xbb,0x8c,0xbf,0xfd,0xa5,0x00},
+       { 0xf2,0x6f,0x08,0x73,0x87,0xbc,0x9b,0x62,0xf5,0x38,0xb0,0x76,0xd6,0xbd,0xfd,0x15,0x87,0x36,0xde,0x71,0x61,0xc6,0xbc,0xa3,0x86,0xf5,0x7d,0xd2,0xb0,0x0b,0x8f,0xe0},
+       { 0xf2,0xb1,0x95,0x84,0x6e,0xe2,0xb9,0xab,0x5f,0x18,0xe6,0x80,0x21,0xf8,0xdf,0x7c,0x0b,0x60,0x58,0xde,0xde,0x86,0xc5,0xd5,0x90,0xf2,0xe8,0x64,0x3a,0xfe,0x04,0x52},
+       { 0xf2,0xe3,0x0f,0xb6,0xcd,0x91,0x67,0x54,0x84,0x72,0xcc,0xdf,0x58,0x9f,0x3d,0x00,0x43,0x0c,0x22,0xb8,0x33,0x44,0xa1,0x16,0x5b,0x64,0xe6,0x87,0x4d,0xf3,0x5e,0xdc},
+       { 0xf2,0xe5,0x30,0x0c,0x39,0xf2,0x86,0xc6,0x78,0x99,0x90,0x9c,0x7c,0xe7,0x35,0x9b,0x09,0x45,0xd2,0xaf,0xd3,0x4a,0x6d,0xd6,0x9e,0x08,0xcd,0xa5,0x44,0xc8,0x7b,0x3a},
+       { 0xf3,0x0c,0x0a,0xed,0x70,0x6d,0x22,0x55,0x5f,0x07,0x09,0x6a,0xf4,0xb8,0xbe,0xdc,0x16,0x3c,0x0f,0x6e,0xd5,0x34,0x6e,0xfc,0x28,0xe8,0xcf,0xaf,0x84,0x2f,0xa5,0xd9},
+       { 0xf3,0x25,0x58,0x52,0x53,0xd2,0x8e,0x72,0x02,0x3f,0x04,0xda,0x0a,0x2c,0xb5,0x0f,0xbd,0x4b,0x75,0xc2,0x5a,0x3a,0x80,0x25,0x3f,0x70,0x36,0xce,0x71,0x74,0x1b,0x9b},
+       { 0xf3,0x48,0x7e,0x13,0xea,0xb9,0x5d,0xa9,0xaf,0xed,0xe0,0x74,0x84,0x4b,0xde,0x4c,0xa0,0x31,0x48,0x26,0xcc,0xbd,0x06,0x96,0x29,0x8c,0x35,0x32,0x4a,0x91,0xcb,0xeb},
+       { 0xf3,0x5f,0xe6,0x61,0xd1,0x88,0x65,0x29,0x35,0xe2,0xc0,0xe5,0x19,0x11,0x8f,0x7c,0x4e,0x45,0x7b,0x0c,0x65,0xc8,0xe1,0x4b,0xce,0xdc,0x7d,0x4c,0xc5,0x1e,0x81,0xd0},
+       { 0xf4,0x0c,0x5a,0x4f,0xe5,0xa7,0x08,0x81,0x08,0x7e,0x61,0x6a,0xad,0x68,0x23,0x09,0x21,0xda,0xf0,0x31,0x01,0xeb,0x91,0x2f,0x13,0x3a,0x8b,0xd1,0xc5,0xcf,0x0a,0xd0},
+       { 0xf4,0x2a,0x12,0xa1,0x43,0x57,0xc0,0xcf,0x12,0x2b,0xbd,0x82,0x77,0x69,0xfb,0x56,0xdb,0xf5,0xb6,0xee,0x89,0x4f,0x02,0x5b,0x9a,0xde,0x25,0x88,0xa9,0xb5,0x5d,0x9b},
+       { 0xf4,0x83,0x3e,0x73,0x82,0x42,0x02,0x18,0xff,0xa7,0x8d,0xfa,0x23,0x50,0x0e,0x7d,0x34,0x8f,0x80,0xfb,0x87,0xe9,0x82,0x48,0x61,0x3b,0x59,0x24,0x2d,0x99,0x1a,0x78},
+       { 0xf4,0x91,0x32,0x07,0xad,0xc7,0x68,0xec,0x7c,0xa6,0xb1,0xfe,0x03,0xef,0x9c,0xf1,0x0b,0x7d,0xb6,0x01,0xd7,0xf6,0x6c,0x10,0x2c,0x84,0xe4,0x70,0x92,0x9e,0xe4,0xa1},
+       { 0xf4,0xcc,0xa7,0x7f,0x70,0x42,0xd6,0x78,0x8a,0x04,0x5e,0xad,0x54,0x95,0x1a,0x25,0x4a,0x26,0x9e,0xd9,0x85,0x4a,0x62,0x06,0xb4,0xaa,0x5b,0xe9,0x9f,0xc7,0xd9,0xac},
+       { 0xf4,0xd1,0xd1,0x3c,0xfd,0x04,0x31,0x16,0x09,0x38,0xe8,0xe9,0xb2,0xe3,0x80,0x61,0x97,0xca,0x7f,0xfd,0xec,0x7a,0xad,0xfe,0xaf,0xfb,0x4d,0xa4,0x72,0x92,0x4e,0xdf},
+       { 0xf5,0x12,0x02,0xf2,0xdd,0x4c,0x4a,0xd1,0x04,0x3a,0xf5,0xa3,0x75,0xad,0xd0,0x69,0xe7,0x4b,0x4c,0x3e,0xfa,0xb5,0xe0,0xf6,0xdd,0xa9,0x20,0xd2,0x3d,0xb7,0xcc,0x73},
+       { 0xf5,0x82,0xf1,0x66,0xb8,0x2b,0xed,0x47,0xef,0xe3,0x66,0x1a,0xa8,0x02,0x32,0xfa,0x81,0x67,0xd2,0xe8,0x97,0x96,0xa3,0x66,0xea,0x35,0xad,0x40,0xa1,0xba,0x2f,0x66},
+       { 0xf5,0x98,0x77,0xc3,0xc9,0x03,0xf2,0x02,0xdd,0xb7,0x2c,0xe9,0x9b,0x18,0x02,0x63,0x9a,0xa6,0x53,0x9b,0x08,0x6e,0xaa,0x74,0xca,0xab,0x16,0xab,0x9b,0xf3,0x0d,0x95},
+       { 0xf5,0xca,0x51,0xe5,0xb2,0x72,0xd3,0x77,0x52,0x4a,0x38,0xd1,0xa0,0x3b,0x51,0x23,0x7c,0xa0,0x89,0x47,0x24,0x19,0xe5,0x61,0x9f,0xfd,0x71,0x7a,0x09,0x8b,0x5b,0x42},
+       { 0xf5,0xe1,0xf7,0xda,0x24,0x9d,0xb8,0x7d,0x6b,0xb8,0xf9,0x6e,0xe7,0x3d,0xd1,0x31,0xbd,0xdf,0xaf,0x62,0xcc,0x0b,0x46,0x5f,0x3a,0x47,0x4f,0x91,0xd3,0xe3,0xb5,0xec},
+       { 0xf6,0x13,0xd5,0x90,0x46,0xd1,0x66,0x71,0xd3,0xc5,0x60,0x17,0x6f,0x3d,0x77,0xfd,0xc5,0x1e,0x5f,0x57,0xb5,0xe4,0x8a,0xe7,0xa4,0xb9,0x70,0x0a,0x11,0xd4,0x69,0x3a},
+       { 0xf6,0x1e,0x88,0xe4,0x31,0x76,0x13,0x50,0x00,0x62,0x99,0x19,0xd9,0x39,0x82,0xdb,0x67,0xe9,0xd1,0x77,0x4e,0x7e,0xd0,0xb4,0xfa,0x03,0x8e,0x1b,0x24,0xec,0x0a,0xcf},
+       { 0xf6,0x41,0xe7,0xe0,0x1b,0xf4,0xf2,0xb0,0xd0,0xc4,0x8b,0xa6,0x38,0xa0,0x2e,0x26,0xbd,0xdb,0xd7,0x7b,0xc5,0xe9,0x72,0x61,0x94,0xdb,0x1a,0xea,0x4f,0x2f,0xd7,0x71},
+       { 0xf6,0x54,0x6b,0x2f,0xfe,0x2b,0xae,0xf7,0x35,0xe8,0x25,0x67,0xa6,0xe2,0x36,0x75,0x03,0x94,0xc1,0x19,0x14,0x09,0x87,0x0c,0x6f,0xbe,0x95,0x2d,0x08,0xa3,0x3a,0xba},
+       { 0xf6,0x6e,0xdf,0xf6,0xa3,0x94,0xc6,0x6d,0xf5,0xbf,0x9f,0xe7,0x84,0xe6,0x31,0xf7,0x9a,0xf3,0x9c,0xb1,0x4f,0x3a,0xc5,0x16,0x11,0xf6,0xfe,0x1d,0x9d,0x1e,0x1c,0xe9},
+       { 0xf6,0x93,0x79,0x9b,0xbd,0xf1,0xff,0x89,0xba,0x48,0xf2,0xbf,0xe2,0x8f,0x89,0x36,0x6a,0xc3,0xb4,0x13,0x54,0x7d,0xb8,0x06,0x0d,0xb5,0x07,0xab,0xc9,0x42,0x0b,0xa8},
+       { 0xf6,0x9d,0x95,0x42,0xdb,0x97,0xec,0x65,0xbf,0xf8,0x45,0x23,0x0a,0xdc,0x76,0xb0,0x3c,0x15,0x91,0x2f,0x6f,0x09,0x97,0x32,0x9d,0x5c,0x2d,0x14,0xf6,0xb2,0x5e,0xdf},
+       { 0xf6,0xa8,0x1f,0x59,0xb1,0x13,0xba,0xb9,0x52,0xd6,0x2b,0xda,0xb9,0x70,0xc8,0xee,0xd9,0xf7,0x26,0x22,0xfa,0x8a,0xc6,0xd8,0x48,0xc3,0xe2,0xc6,0x14,0x62,0xef,0x95},
+       { 0xf6,0xaa,0xef,0x12,0xfc,0x25,0x2d,0xd9,0xe7,0xf7,0x75,0x2c,0x2f,0x74,0x5d,0x59,0xd6,0x37,0x57,0xc6,0xcc,0x14,0xd2,0x25,0x3a,0x64,0x7c,0xd1,0x81,0x49,0x39,0x93},
+       { 0xf6,0xe3,0x03,0x5a,0xec,0xc9,0xc9,0x6b,0x03,0xe9,0x73,0x71,0xf3,0x60,0xf5,0xba,0x02,0x14,0x13,0x81,0x27,0x5d,0x71,0xc1,0x41,0xea,0xf6,0x3a,0x06,0x55,0x23,0x07},
+       { 0xf6,0xfe,0xb3,0x88,0x25,0xe6,0xee,0x7b,0xa5,0xbf,0xd9,0x4b,0xb5,0x77,0x12,0xa4,0x14,0x1e,0xb8,0xd0,0x92,0xbb,0x2d,0x5d,0xd1,0x64,0xf6,0x74,0xa2,0xe5,0xb0,0x64},
+       { 0xf7,0x22,0xe3,0x21,0x67,0xf0,0x0d,0x96,0xeb,0x35,0xf9,0xb9,0x43,0xd2,0x56,0x26,0x5b,0xa5,0x5e,0x70,0x34,0x6d,0x8c,0xee,0x54,0x48,0x29,0xc2,0xb0,0x9b,0x95,0x90},
+       { 0xf7,0x76,0x3b,0xe8,0x7e,0x67,0x8b,0x31,0x18,0x66,0x11,0x9a,0xd5,0xac,0xdf,0x8f,0xdb,0x3b,0xbb,0x46,0x5b,0x83,0x40,0x61,0x64,0xac,0x21,0x30,0x34,0xe8,0xad,0x0e},
+       { 0xf7,0x77,0x35,0xce,0xe3,0x38,0x5c,0xec,0xbc,0x88,0x4a,0x54,0xce,0x7f,0xb1,0x78,0xa0,0x40,0x3c,0x3e,0x2b,0x16,0x9e,0x49,0xf9,0x38,0xa8,0x1d,0xad,0x15,0xdc,0x1c},
+       { 0xf7,0xb5,0x97,0x11,0xca,0xe9,0x11,0xef,0x56,0xc8,0x1b,0x54,0x03,0x6f,0x21,0x32,0xec,0xfa,0x0f,0x09,0x08,0x90,0xaf,0xca,0x7e,0x16,0x39,0x4e,0xd4,0x99,0xe8,0x0c},
+       { 0xf7,0xd9,0x10,0xbc,0xe2,0xab,0x1a,0xca,0xa6,0x7b,0x66,0x3a,0x8a,0xdd,0xbd,0xa2,0x93,0xb5,0x1c,0xed,0xe7,0x86,0x8b,0x69,0xa3,0xce,0xa7,0xff,0xd0,0x10,0xb3,0xa8},
+       { 0xf8,0x0c,0x71,0x5b,0x84,0x49,0x5d,0xbe,0xda,0xbf,0xeb,0x1b,0x05,0x7f,0xa0,0x80,0x93,0x10,0x5d,0x74,0x6f,0x8d,0x4f,0x10,0x35,0xd4,0xe1,0xd8,0x6b,0xe2,0xb4,0x80},
+       { 0xf8,0x24,0x21,0x09,0xf2,0x80,0xe3,0x51,0xbf,0xd6,0x11,0x95,0xf8,0x84,0x52,0x5d,0xc8,0xe0,0x64,0xd6,0x85,0x07,0x57,0x49,0x52,0x08,0x3f,0xad,0xcd,0xcb,0x91,0x4b},
+       { 0xf8,0x2c,0xc3,0xc4,0x5e,0x9f,0x62,0x42,0x7d,0xff,0xe7,0x8f,0x48,0x8d,0x5b,0x5f,0x79,0x2a,0xf0,0xbe,0x06,0x5d,0xdd,0x59,0xca,0x2c,0x28,0x61,0xfb,0x32,0xc3,0x2a},
+       { 0xf8,0x64,0x44,0x3e,0x2f,0x63,0x9e,0x7c,0xff,0xd2,0x42,0x21,0xf6,0x1b,0xbf,0xf0,0x7c,0xce,0x5c,0x61,0xdd,0xb1,0x68,0xb3,0xb4,0x04,0xd7,0xc8,0xcd,0xca,0x18,0xb2},
+       { 0xf8,0x76,0xc7,0x3f,0xae,0x72,0x52,0x5d,0x4a,0xd5,0x26,0x69,0xbc,0x5a,0x34,0xdc,0x8d,0x46,0x14,0xe9,0x3b,0xfd,0xee,0xec,0xa3,0xd9,0xbe,0xca,0x97,0x2e,0xc6,0xb8},
+       { 0xf8,0x81,0x51,0xc3,0xd8,0x91,0x6b,0x1d,0x03,0xa0,0x5f,0x55,0x85,0xec,0x38,0xad,0x1c,0xc0,0x3a,0x36,0x2e,0x68,0x60,0x8e,0x39,0x13,0xed,0xdf,0xb1,0xfd,0xf1,0x27},
+       { 0xf8,0x94,0xf9,0x67,0x36,0x9c,0xe7,0xcf,0xa3,0x1a,0xc1,0x9a,0x66,0x65,0xb0,0xc4,0x24,0xba,0x40,0x8a,0xd5,0xd3,0x65,0xf1,0x68,0xd8,0xbe,0xeb,0x79,0xf4,0x89,0xf3},
+       { 0xf8,0xcf,0x1e,0x08,0x6a,0x6a,0x06,0x3f,0xad,0x25,0x74,0x25,0xaa,0xe7,0x20,0x01,0x40,0x05,0xb4,0x15,0x91,0x2d,0xbb,0x8c,0x0b,0xc9,0x99,0xaf,0x48,0x48,0xcf,0xe5},
+       { 0xf9,0x0e,0x7c,0x21,0x81,0xba,0x53,0x4d,0xcf,0x5b,0xb6,0xdb,0xf7,0xf9,0xad,0xa3,0xff,0x98,0xde,0x50,0x0c,0xbd,0x42,0x12,0xc0,0xd1,0xfa,0x05,0x82,0x80,0xfd,0x57},
+       { 0xf9,0x29,0xc1,0x0e,0x66,0x15,0xb3,0xe7,0x1f,0xda,0x31,0xf1,0xb7,0x1a,0x44,0x47,0x00,0x7e,0xe3,0x7a,0x39,0x3c,0x32,0xe0,0xfb,0x34,0xfc,0xf1,0x05,0x5d,0x51,0x8f},
+       { 0xf9,0x8b,0x43,0x93,0xf7,0xc3,0x1d,0x37,0x03,0x49,0x81,0x63,0xe7,0x77,0x9f,0x75,0xde,0xf6,0xaf,0x44,0x10,0x44,0x6a,0x03,0x4d,0x52,0x8c,0xb7,0x14,0x3a,0xa0,0x13},
+       { 0xf9,0xa7,0xdd,0xd3,0xff,0x51,0xaf,0x30,0x7f,0x95,0x4f,0x7b,0x44,0xdb,0xd2,0x42,0x83,0xcf,0x97,0xb6,0x25,0xbe,0x76,0x6b,0x43,0x5e,0x6c,0x26,0xd9,0xcc,0xac,0xc3},
+       { 0xf9,0xaf,0xe7,0x1b,0xf1,0xf4,0x1b,0xcd,0xe6,0x4f,0x3f,0x35,0x82,0x60,0xe7,0x74,0x18,0x76,0x18,0x8d,0xe6,0x99,0x04,0xa6,0xd0,0xb6,0x3a,0x32,0x93,0x02,0xfa,0x3d},
+       { 0xf9,0xf5,0xfd,0xae,0x79,0x59,0x07,0x40,0xb3,0x85,0xa8,0x33,0x12,0x7a,0x28,0x21,0xfb,0x9d,0x03,0xc0,0xc6,0xa1,0xbe,0x42,0xeb,0x2a,0xbf,0xd2,0x0d,0xf6,0xb7,0xb9},
+       { 0xf9,0xfb,0xfd,0xd0,0x91,0x50,0x4f,0x93,0x08,0xbc,0xa0,0xe3,0x03,0x1b,0xde,0x76,0x36,0x62,0x6b,0x1e,0x53,0x6e,0xcf,0xae,0x7b,0xb7,0x34,0xc2,0xe6,0xd0,0xe9,0xde},
+       { 0xfa,0x13,0xd2,0x6b,0x64,0xb9,0xf9,0x28,0x83,0xd8,0xe9,0x39,0xfa,0x1b,0x54,0x48,0xef,0xbe,0xde,0x98,0x65,0x1f,0xe4,0xcb,0x66,0xf3,0xc2,0x3c,0xbb,0x4b,0x3c,0x42},
+       { 0xfa,0x2a,0x2f,0x77,0x8c,0xbe,0xf9,0xf1,0xb4,0xa8,0xfc,0x57,0xbf,0x79,0x5f,0x1f,0x8c,0xf6,0x23,0xdb,0x15,0xbe,0x65,0x81,0xeb,0xa3,0x6b,0x2a,0x86,0x49,0xd2,0x1e},
+       { 0xfa,0x50,0x6b,0xd0,0x69,0x4b,0x92,0x94,0xb9,0x9f,0x7b,0x5c,0x90,0x07,0xce,0x13,0xa6,0x03,0x07,0xf4,0xc5,0x94,0xeb,0xfb,0xe7,0xb3,0x4a,0x05,0x50,0xae,0x3d,0x4f},
+       { 0xfa,0x83,0xfb,0xd3,0x29,0x80,0xb9,0x55,0x23,0xda,0xfa,0xed,0xfe,0x15,0x0e,0x91,0xff,0x80,0xeb,0xdc,0xb2,0xb7,0x8d,0x9e,0x9c,0x3a,0x70,0xfd,0x79,0x85,0x1b,0x69},
+       { 0xfa,0x95,0xb3,0xf9,0x6f,0xc9,0xc2,0xd3,0xa7,0x9b,0x05,0x48,0x67,0x6c,0x18,0x48,0x5a,0xf1,0x10,0x4c,0xca,0x9b,0xb6,0xb8,0xdd,0x9b,0x5a,0x54,0x3c,0xb6,0xc6,0x2e},
+       { 0xfa,0xe4,0x72,0x1e,0x39,0x47,0xa5,0x0d,0xd0,0x4d,0x16,0xac,0xef,0xf3,0x55,0xc0,0x87,0xb7,0xe2,0x24,0x6b,0xe6,0x0f,0xbc,0x26,0x2a,0x53,0x52,0xad,0xac,0x18,0x01},
+       { 0xfb,0x44,0x15,0x70,0x4c,0x1d,0x61,0x55,0x10,0x6d,0x88,0xf3,0xb2,0x0f,0xec,0x9f,0x6e,0x82,0x0c,0x82,0x24,0xfe,0xe3,0x5e,0x45,0x22,0x85,0x19,0x05,0xf3,0x28,0xd7},
+       { 0xfb,0x9a,0xf7,0x9d,0xea,0x18,0xaf,0x62,0x99,0x85,0x0e,0x25,0x15,0x9b,0x4f,0xb2,0x24,0xcb,0xb0,0xf1,0x4e,0xad,0x7e,0x85,0xf6,0x0c,0x2a,0xb2,0x09,0xea,0x45,0x0d},
+       { 0xfb,0xc4,0xc9,0xba,0xcf,0xe3,0xda,0x64,0x13,0x18,0x26,0x6b,0x72,0x58,0x56,0x00,0x35,0xbc,0x64,0x60,0x8e,0x34,0xb9,0x90,0xca,0x92,0xa5,0x52,0xf3,0x14,0x21,0x61},
+       { 0xfb,0xdd,0x65,0xd5,0x6e,0x48,0x0c,0xd2,0x53,0x1b,0xab,0xfb,0x98,0xad,0x6e,0x35,0x22,0x1e,0xb9,0x8a,0xe4,0x63,0x2c,0x43,0x12,0xdb,0x75,0x17,0xb1,0x36,0x54,0x72},
+       { 0xfb,0xed,0xd3,0x88,0x89,0xf0,0xb4,0x1f,0x73,0x4d,0xe2,0xf4,0xc9,0xd6,0xf2,0x7c,0x8d,0x4a,0xa9,0xab,0x73,0x64,0x91,0xe1,0x64,0xe1,0x21,0xb7,0xbc,0xaf,0x44,0xe8},
+       { 0xfc,0x01,0xa5,0x5a,0x36,0xcc,0x8b,0x7b,0x7c,0xa2,0xea,0xb0,0x84,0x60,0xc2,0x8d,0x1d,0x6c,0xd8,0x9c,0x57,0x59,0x94,0x05,0xd5,0x37,0x4b,0x91,0xaa,0xeb,0xc8,0x79},
+       { 0xfc,0x11,0xd0,0x51,0xc2,0x7a,0x33,0xa2,0xe8,0x1c,0xb7,0x20,0xa9,0xe6,0xd8,0xa7,0xfe,0x3c,0x5d,0x94,0x13,0x9c,0xba,0x0f,0x5e,0xaa,0x61,0xba,0xbe,0x34,0x1a,0x8b},
+       { 0xfc,0x2f,0x1e,0x84,0x29,0x82,0xc9,0x3b,0x85,0xd2,0x79,0xa8,0x3d,0xf2,0x13,0xc1,0xa3,0x33,0x29,0x7d,0x42,0xa3,0x1a,0x8c,0xc7,0x8a,0x3f,0x73,0xcd,0xf8,0xaf,0x9a},
+       { 0xfc,0x4d,0x9a,0x37,0xe5,0xf7,0x32,0x72,0xd0,0xa9,0xdf,0xcc,0xe9,0x03,0x12,0xc7,0x52,0xe1,0xb5,0x2e,0xb6,0x54,0xc4,0x2c,0x36,0x94,0x4b,0x90,0x2a,0x30,0x41,0x07},
+       { 0xfc,0x53,0x0d,0x33,0x87,0x60,0xb5,0x92,0x47,0x55,0xe1,0x55,0x62,0x34,0xf0,0x2d,0x84,0x04,0x71,0x11,0x08,0xf1,0xb7,0xc8,0xe4,0x8c,0x05,0xdb,0x84,0xf8,0xba,0x7f},
+       { 0xfc,0x55,0x86,0x91,0xda,0xff,0xe1,0xe3,0x53,0x8d,0x38,0xa6,0xd3,0xa9,0xe6,0xe7,0xc9,0x9d,0x24,0x0c,0x86,0x89,0x66,0x73,0x56,0x27,0x99,0x72,0xfb,0x4f,0x30,0x85},
+       { 0xfc,0x56,0xdb,0xa1,0xe7,0xaf,0xbd,0xaa,0x07,0x33,0xc6,0x91,0x1c,0x5f,0x1f,0x18,0x28,0xcb,0x12,0x98,0x31,0x40,0x1a,0x3c,0xfd,0xea,0xa7,0x24,0x62,0x95,0x35,0x94},
+       { 0xfc,0x83,0xc2,0x89,0x89,0x5a,0x92,0x08,0xc9,0xb1,0x7a,0x16,0xbc,0xe5,0xce,0x80,0xe8,0xf4,0xa0,0x77,0x21,0x25,0x29,0xce,0x0b,0xc7,0xf5,0x42,0xc6,0xcb,0xde,0x1a},
+       { 0xfc,0xa6,0x23,0x5d,0x2a,0xa4,0xb1,0xb2,0x51,0x50,0x78,0x57,0xb4,0xf0,0x08,0xdf,0xd5,0x27,0x04,0x2c,0xe0,0x45,0x01,0xaa,0xe2,0x9d,0xd2,0x05,0xbb,0xef,0xce,0x0d},
+       { 0xfc,0xb7,0xfe,0x6d,0x32,0x2d,0x87,0xc7,0x51,0x59,0x47,0x79,0x50,0x88,0x95,0x8a,0x5f,0x75,0xbf,0xf1,0x18,0x40,0x21,0xef,0x05,0xd6,0xf4,0xd3,0xc4,0x3b,0x85,0xc5},
+       { 0xfc,0xe5,0x47,0xe1,0x43,0x54,0x87,0x7f,0xed,0x93,0x0b,0x19,0xfd,0xe7,0xc6,0xf9,0xcb,0xf5,0xd4,0xb5,0x7b,0xa5,0x34,0x4a,0x0d,0x40,0x10,0xff,0x70,0x5a,0x03,0xde},
+       { 0xfc,0xe7,0x34,0xe1,0x2b,0x8e,0xfb,0x43,0x12,0x71,0xbf,0xf6,0x7a,0x7a,0x0a,0x93,0xb2,0x19,0xdd,0x5e,0x5d,0xcc,0x12,0x58,0x59,0x4d,0x96,0xfc,0xe1,0x93,0xb8,0x60},
+       { 0xfc,0xf6,0x81,0x39,0x64,0x2f,0x8d,0x79,0xa4,0x86,0x15,0xe4,0x44,0xce,0xd6,0x90,0xfa,0x60,0xeb,0xfd,0x0a,0x06,0x0a,0x49,0x93,0x89,0x98,0x8a,0x2c,0x2c,0x05,0xce},
+       { 0xfd,0x44,0x89,0xf0,0x27,0x27,0xdb,0x36,0xc1,0x84,0x35,0xe5,0xc4,0xa9,0xf8,0x63,0xac,0xd8,0x04,0xae,0x1b,0x39,0x7f,0xbb,0x83,0xd4,0x27,0x5a,0xf5,0x6d,0xf8,0x9f},
+       { 0xfd,0x85,0xcc,0x72,0x1b,0x77,0xc4,0x41,0xc8,0xb1,0xf1,0x4a,0xde,0x34,0x8a,0x3e,0xc9,0xfa,0xa6,0x26,0x4a,0x91,0x3f,0xb8,0xd3,0x4c,0x98,0x3b,0x43,0x60,0xe9,0x7b},
+       { 0xfd,0x9c,0xfe,0x14,0xda,0xd8,0x97,0x8c,0x5b,0xc8,0x88,0x93,0x8f,0x16,0xf3,0xb3,0x98,0xf7,0x63,0xa3,0xad,0xaf,0xaa,0x4a,0xd9,0x41,0xb7,0xe3,0x87,0xeb,0x4f,0x4a},
+       { 0xfd,0xed,0x92,0xcb,0x40,0x91,0x66,0x82,0x3a,0x35,0xe2,0x17,0xf3,0x0b,0x38,0xc4,0x86,0xf8,0x3e,0xf2,0xd4,0xf2,0x7b,0x05,0xf1,0x8c,0x74,0x49,0x81,0x33,0x9a,0x1c},
+       { 0xfe,0x0f,0x6a,0xdc,0x4c,0xb9,0xa1,0x3f,0xcb,0xaf,0xd8,0x98,0xc1,0xbb,0x53,0xb3,0xd9,0x33,0x74,0x49,0x9d,0xf3,0x47,0xb7,0x1f,0x13,0x4c,0x94,0x3c,0x4f,0xf1,0x20},
+       { 0xfe,0x26,0xb2,0xa6,0x45,0xa3,0x1a,0x91,0x11,0x00,0x09,0x9a,0xa9,0xa2,0x93,0x9f,0x49,0xe9,0xfb,0xea,0x64,0x48,0x7b,0xdf,0x68,0xa5,0x23,0x70,0x32,0x92,0xd6,0xa0},
+       { 0xfe,0x42,0x1b,0x24,0x4e,0x0e,0x81,0x6d,0x9f,0x26,0xb3,0x52,0xc8,0x31,0xd9,0x30,0xe1,0xc1,0xc5,0xd2,0xfa,0x4e,0x0a,0x1c,0x77,0x96,0xa1,0xf2,0x02,0x0e,0xf1,0x67},
+       { 0xfe,0x4f,0x35,0x6c,0x7f,0x9b,0xfc,0x17,0xff,0xcb,0x68,0xd0,0x76,0x4e,0xcb,0x2a,0x87,0xca,0xa0,0xae,0x4c,0xb5,0x66,0x62,0x21,0x04,0xd3,0x6f,0xfb,0x52,0xcb,0x29},
+       { 0xfe,0xaa,0xbd,0xd7,0x92,0xa4,0x31,0x68,0x99,0x98,0x3e,0xf5,0x7b,0xea,0x99,0xbe,0x81,0x15,0x6d,0x47,0x9c,0xdf,0x7b,0x81,0xf5,0x58,0x49,0x60,0x92,0xd3,0x17,0x16},
+       { 0xfe,0xb8,0xf0,0x0c,0x83,0xea,0x05,0xbd,0xa2,0x85,0x0e,0xc5,0xbb,0x77,0x43,0xe4,0x42,0xeb,0xf4,0x31,0xe3,0xba,0x75,0x4a,0xa2,0xd9,0x47,0x5e,0x98,0x0b,0x6e,0x3a},
+       { 0xfe,0xc5,0xff,0x1d,0x4e,0x56,0x49,0xb0,0x1f,0xba,0xab,0xd9,0x02,0x2d,0xbf,0x86,0xa7,0x60,0x2d,0x89,0x04,0x45,0x1b,0xf4,0x93,0xc4,0xaf,0xe1,0x1c,0x99,0xae,0x07},
+       { 0xfe,0xff,0x60,0xf2,0xda,0x22,0xc9,0xdb,0xbc,0x3d,0x10,0x13,0x1e,0xe4,0x39,0xba,0xe3,0xe0,0x0e,0x58,0xcc,0xe0,0xbd,0x07,0x4f,0x55,0xf7,0x7c,0x3b,0x00,0xf9,0x35},
+       { 0xff,0x0e,0x31,0x58,0x55,0x2a,0x28,0x10,0xa9,0x71,0x3d,0xe8,0x3b,0x03,0x25,0xa1,0x16,0x4a,0xa6,0x0e,0x9c,0xe5,0x74,0x20,0x1d,0x6b,0x9b,0x8b,0xea,0xba,0x1f,0x47},
+       { 0xff,0x4c,0x40,0xa0,0x13,0xa4,0x1e,0x5a,0xdb,0x23,0x1a,0x14,0xa9,0x77,0xb5,0x8c,0x4f,0xe7,0x8d,0x0c,0xa3,0x5c,0x59,0x35,0xe2,0x22,0x07,0x21,0xcc,0x54,0x14,0xf3},
+       { 0xff,0x82,0x6e,0x2d,0x0c,0xb7,0x71,0x68,0x68,0x67,0x5a,0xe4,0xb4,0x31,0xb6,0x37,0x1e,0x9f,0x0c,0xdf,0xcc,0xb4,0x9d,0x43,0xba,0x30,0x49,0xbf,0xdd,0x2c,0x41,0xb1},
+       { 0xff,0xc9,0x74,0x1a,0x5e,0x6a,0x5a,0x7c,0xc3,0xbb,0x10,0xca,0x31,0x3f,0x97,0x7a,0xa9,0xcc,0xc1,0x92,0x28,0xdb,0xe1,0x39,0xb0,0xc2,0xd9,0xf1,0xf4,0x1d,0x83,0x1b},
+       { 0xff,0xd5,0x3f,0x73,0x6d,0x4e,0x0d,0xc3,0xbe,0x8e,0x43,0xd9,0x15,0x09,0xe0,0x44,0x79,0x1d,0x36,0xd4,0x49,0x12,0xa6,0xfa,0xba,0x52,0x28,0x25,0x10,0x0e,0x0a,0x7c},
+       { 0xff,0xdc,0x6b,0x85,0xfe,0x7b,0x10,0x83,0xb5,0x41,0x6f,0x80,0x6f,0xc2,0x44,0xb9,0xe4,0xdf,0x42,0x99,0xfb,0xe3,0xf6,0x81,0xaf,0x3f,0x5c,0xf4,0x22,0x5a,0x8e,0xaf}
+};
+
+static const CertHash kCNNICEVHashes[] = {
+       { 0x0a,0x35,0xb0,0xda,0x94,0xb8,0xa4,0xb4,0xae,0xb6,0x32,0xb0,0x90,0xc8,0xa3,0xc0,0x81,0x9b,0xc6,0x74,0x99,0xf8,0x92,0x8b,0xf6,0x8e,0xb2,0xff,0x4e,0xd4,0x29,0x51},
+       { 0x0e,0x56,0x71,0x6d,0xd3,0xc1,0x83,0xaa,0x5d,0xe0,0xd3,0x96,0x89,0x88,0x94,0xf0,0x03,0xaa,0xff,0x06,0x2e,0x15,0x82,0x33,0xef,0xfb,0x5b,0xc9,0xe8,0x33,0x71,0x4b},
+       { 0x0f,0x07,0xaa,0xd7,0xac,0x55,0x6f,0x85,0x86,0xcb,0xf3,0x47,0x8f,0x2e,0xc0,0xb5,0x29,0xca,0x46,0x5b,0x19,0x3f,0xc2,0xa6,0xe1,0x93,0x28,0x3a,0xd8,0xd7,0xa5,0x50},
+       { 0x23,0x86,0x51,0xab,0x70,0xb7,0x11,0xa0,0x65,0x55,0x4e,0x5d,0x63,0x6a,0x34,0x2c,0x8a,0x6b,0xfe,0x46,0x0e,0x4e,0x7b,0x4c,0x9e,0xaf,0xb4,0x75,0xd5,0x68,0x51,0xd8},
+       { 0x25,0x50,0x90,0x44,0x10,0xae,0x84,0xa6,0xf8,0xad,0xf5,0x40,0x46,0x38,0x7e,0xbc,0x92,0x6f,0x0b,0x2f,0x66,0x94,0x61,0xd7,0xe6,0x1a,0xee,0x8d,0xce,0xb8,0x71,0x3b},
+       { 0x28,0x16,0x1f,0x94,0xd5,0xa3,0xfe,0x36,0x1f,0x3c,0xd8,0xbb,0xfa,0x8d,0x9d,0xb7,0x11,0x05,0x8b,0xa9,0x67,0xee,0xbd,0x8d,0x42,0xec,0xb9,0x27,0xbf,0x09,0xf4,0x40},
+       { 0x29,0x0c,0x79,0x6f,0x6d,0x23,0xde,0x2a,0xae,0x80,0x77,0xab,0xcc,0xfc,0x52,0xee,0x5c,0x71,0x35,0x3f,0x9a,0xb6,0xbd,0x56,0x5c,0x6a,0xbd,0x26,0x9f,0xf5,0xe9,0xba},
+       { 0x34,0x9b,0x72,0x1d,0x0b,0xb9,0xa4,0xc4,0xaa,0x33,0x43,0x60,0xa6,0x6a,0xc3,0xa7,0x3f,0xa8,0xd8,0xd3,0x60,0x0d,0x89,0x4e,0xb0,0xc7,0xd2,0x84,0x23,0xc6,0x78,0x57},
+       { 0x3e,0x82,0xbb,0xb9,0xb6,0x2c,0xf1,0xe7,0x7b,0xc8,0xb2,0x3b,0x63,0x26,0x5d,0x1e,0x57,0xc5,0xcd,0xef,0x9c,0x3d,0x20,0xe8,0x26,0x5f,0x7d,0x00,0xdc,0x06,0x40,0x57},
+       { 0x49,0x72,0x9b,0x40,0xd0,0xf2,0x7b,0x3b,0x1a,0x2f,0x57,0xd0,0x74,0x54,0xcb,0xf8,0xf5,0x6b,0xa9,0xd7,0xfc,0xf8,0x58,0x47,0xe1,0x1d,0x4a,0xc2,0x46,0x33,0xbf,0xef},
+       { 0x4b,0x2d,0xf9,0xfa,0xf4,0x2f,0x2b,0x06,0x61,0x28,0x80,0xd2,0x69,0x04,0x2b,0x6c,0x1c,0x51,0xe7,0xac,0xf0,0x45,0x91,0xb6,0x68,0x66,0x33,0x5f,0xce,0x7c,0xc6,0x84},
+       { 0x61,0xa7,0x62,0xef,0x47,0xbc,0xa4,0xee,0x77,0xa5,0xc8,0xaf,0x03,0x98,0x9a,0x9d,0xea,0xca,0x4d,0x82,0x8a,0x53,0xd9,0x23,0xe7,0x0b,0xfb,0xc7,0x25,0x4a,0xc7,0x70},
+       { 0x63,0x80,0x65,0xec,0x95,0xf1,0xea,0x81,0xd9,0x5b,0xa4,0xdb,0x9e,0xa9,0xa2,0xef,0xe2,0xd6,0xcd,0x78,0x75,0x88,0x67,0x04,0x5c,0x06,0xb6,0x48,0xa5,0xda,0x89,0xb2},
+       { 0x67,0xc3,0xc0,0xa1,0x60,0xe9,0x28,0x5e,0x35,0xa4,0x22,0xbb,0x43,0x4b,0xff,0xff,0xee,0x28,0x79,0xc6,0xc0,0xa5,0x69,0x36,0x56,0xe7,0x73,0xa6,0xdd,0x68,0x5f,0x0e},
+       { 0x80,0xf3,0xeb,0x58,0xea,0x6a,0xa2,0x85,0x11,0xb0,0x9b,0x68,0xf2,0xde,0xf9,0xb4,0xaf,0xa9,0x9c,0x97,0x44,0xc0,0xbe,0x4e,0x23,0x94,0x89,0xf0,0x4f,0x75,0xa3,0xa5},
+       { 0x82,0x33,0xde,0x42,0x18,0xe4,0xef,0x19,0x38,0xe6,0xa8,0xa3,0x8a,0xb0,0xbc,0x1a,0x96,0x4b,0xa5,0x76,0x1a,0x52,0x99,0x50,0x22,0x15,0x0c,0x86,0x02,0x6b,0x90,0xc9},
+       { 0x8a,0x74,0xc4,0x83,0xdb,0x8b,0x72,0xdc,0x6a,0x59,0x80,0xa4,0x8e,0x26,0x2a,0x5f,0x3b,0x7d,0xb2,0xbf,0xf7,0xae,0xb2,0xb9,0xc7,0xd7,0x28,0xf5,0x4e,0x55,0xd6,0xdd},
+       { 0x8c,0xcd,0x79,0x41,0x63,0x00,0xca,0x61,0xee,0x56,0xa6,0x0d,0xa1,0xc8,0x09,0x35,0xb8,0x6e,0x27,0x91,0x93,0xad,0x3d,0x05,0x65,0x72,0x9d,0x69,0xe0,0x8c,0x86,0x96},
+       { 0x9f,0xfa,0x4e,0xf4,0xfc,0xf2,0xcf,0xd1,0xb2,0x7c,0x6a,0x62,0xe3,0xc4,0x23,0x5b,0xd8,0x3c,0xc5,0xe0,0x06,0xe9,0x2a,0x55,0xe4,0xa9,0x86,0xe6,0x30,0x53,0x57,0xe3},
+       { 0xad,0xf9,0x1e,0x85,0x6e,0xca,0xa9,0xb5,0x1c,0x0a,0x4a,0x93,0xa1,0xaa,0x53,0xe5,0x2c,0x31,0x85,0xb6,0x7a,0x72,0xbd,0x2f,0x8f,0x5b,0x14,0xb5,0x84,0x0e,0x52,0x9f},
+       { 0xaf,0xbb,0x40,0x3c,0xad,0x0d,0x19,0xcc,0x26,0xae,0x5b,0x1e,0x31,0x0a,0xc1,0xae,0x79,0x47,0x1b,0xad,0x2b,0xd7,0x7b,0xe4,0x0f,0x12,0x50,0x4c,0x42,0xe5,0x22,0x0b},
+       { 0xb2,0xba,0x3b,0x49,0xb8,0xe5,0x84,0x51,0x81,0x6b,0x10,0x83,0x6c,0x4f,0x1c,0xa6,0xa3,0x39,0x37,0xce,0xb8,0xf0,0xc0,0x4b,0x9f,0x75,0x8c,0x5e,0xb4,0x78,0x41,0x1f},
+       { 0xb5,0x06,0x62,0x72,0x88,0x80,0xaa,0xc7,0x6d,0x2c,0xdb,0xde,0x62,0x56,0x82,0xbe,0x1c,0x03,0x20,0x75,0x92,0x41,0x0f,0xf2,0x9a,0xcd,0x5a,0xf2,0xa4,0x35,0x1e,0x60},
+       { 0xb5,0xef,0x42,0xc4,0xbc,0xed,0xf1,0x7b,0xec,0xc7,0x5b,0xf4,0x63,0x66,0x49,0xce,0xbf,0xf8,0x71,0x1b,0xce,0xff,0xfa,0x69,0x5c,0xc2,0x52,0xfa,0x57,0x4d,0x42,0x18},
+       { 0xb6,0x82,0x3c,0x9d,0xbc,0x8e,0x8c,0x05,0x4b,0xcf,0x60,0xf2,0x38,0x21,0xac,0x6c,0x58,0x19,0x73,0x51,0xea,0xcf,0xa5,0x57,0x4c,0xf0,0x41,0xb4,0xce,0x6b,0x84,0x04},
+       { 0xb7,0x02,0x1a,0x28,0x5d,0x89,0xa7,0xe9,0xde,0x1a,0xfc,0xfa,0x8f,0x66,0x6a,0x55,0x92,0xbb,0xa6,0xd2,0xac,0x28,0xdd,0x62,0x74,0x7e,0xc1,0x86,0x19,0x1c,0x57,0xf7},
+       { 0xba,0xcf,0x5e,0x99,0xf5,0x7f,0x78,0xcc,0x32,0xf2,0xaf,0x8d,0x4e,0x80,0x6a,0x0a,0x36,0xce,0x9b,0x42,0xe9,0xc7,0x5c,0x54,0x8d,0xed,0x55,0xd2,0x48,0x62,0xca,0x17},
+       { 0xca,0x21,0x0b,0x73,0x5d,0xc0,0x7f,0xfb,0xd2,0x3c,0x5b,0x61,0x30,0x76,0xe3,0xd5,0x1b,0xb3,0xce,0x53,0x52,0x6a,0x1a,0xdf,0xc7,0x32,0x54,0x25,0x49,0xd8,0xf9,0xda},
+       { 0xd8,0x0d,0x49,0xd7,0xc6,0x7a,0x19,0x3d,0xe4,0x4c,0x4a,0xd0,0xa2,0xf1,0x0d,0x04,0x33,0xbd,0x28,0xff,0x57,0x46,0xb4,0x2d,0x8d,0x27,0x7f,0x60,0x8d,0xab,0x7e,0xfd},
+       { 0xd8,0xff,0x73,0x93,0x1f,0x89,0x1d,0x94,0x70,0xbd,0x60,0xf4,0xc7,0x4a,0x0e,0x28,0x88,0xc8,0x0d,0xcb,0x1e,0xcf,0xb1,0x18,0xc3,0xdc,0x81,0x90,0xda,0x99,0x1a,0x70},
+       { 0xda,0x1d,0x8c,0x2f,0xe5,0x25,0xa6,0xad,0xd6,0xcd,0x0f,0xb4,0x0f,0xcd,0xbf,0xce,0x0d,0x19,0x72,0xed,0x61,0xac,0xdd,0x5a,0x0f,0xe0,0x19,0x7f,0x01,0x07,0x8d,0x7f},
+       { 0xdb,0x1d,0x05,0x4e,0xef,0x12,0xbd,0x34,0xa5,0xbd,0x99,0xcd,0xc5,0xb8,0x64,0x8d,0x8e,0x10,0xde,0xf9,0xc7,0x8a,0xfd,0x90,0xa4,0xb4,0xad,0x1e,0xd1,0xd9,0x09,0x06},
+       { 0xdf,0x69,0xf9,0x6a,0x85,0x67,0x8f,0x6c,0xaf,0x3f,0xde,0x25,0xec,0xfb,0x5d,0xf4,0x74,0x70,0x87,0xc2,0xaf,0x3b,0x00,0x65,0xfb,0x15,0x10,0x55,0xcb,0xcb,0xa8,0xc1},
+       { 0xe2,0x01,0x66,0xae,0x2b,0xf6,0x87,0xce,0xc6,0x01,0xde,0xf2,0xcb,0xf9,0x0c,0x7b,0x77,0xdf,0x9a,0xc2,0xa7,0x4f,0xe4,0xf4,0x9e,0x47,0xaf,0x02,0xc4,0x67,0x78,0xb9},
+       { 0xee,0x0c,0xf6,0x2b,0x9d,0x8e,0x42,0xa2,0x23,0xb9,0xa9,0x60,0xb5,0xe9,0x67,0x0c,0xcc,0x34,0x6d,0x89,0x93,0x8f,0xfa,0x5d,0xf7,0x98,0x65,0xe4,0x13,0xd6,0x31,0x54},
+       { 0xee,0x3d,0x0b,0xc5,0xa6,0x5a,0xf5,0x8d,0x43,0x2d,0x08,0x63,0x7b,0xe0,0xb7,0xba,0x49,0xc2,0x32,0x61,0x8d,0xa9,0xc8,0x97,0x3f,0x88,0x56,0x8c,0x88,0x89,0xd1,0xad},
+       { 0xf3,0xcb,0x8e,0xa4,0xe8,0xf2,0xa7,0x00,0x9c,0x23,0x3a,0x64,0x88,0x71,0xdb,0x46,0x04,0xd5,0x45,0x4b,0xc5,0x55,0x9e,0x9b,0xf1,0xbb,0x2e,0xb0,0x00,0x99,0x3b,0xdf}
+};
+
+const UInt8 kCNNICBasicName[] = {0x30,0x32,0x31,0xb,0x30,0x9,0x6,0x3,0x55,0x4,0x6,0x13,0x2,0x43,0x4e,0x31,0xe,0x30,0xc,0x6,0x3,0x55,0x4,0xa,0x13,0x5,0x43,0x4e,0x4e,0x49,0x43,0x31,0x13,0x30,0x11,0x6,0x3,0x55,0x4,0x3,0x13,0xa,0x43,0x4e,0x4e,0x49,0x43,0x20,0x52,0x4f,0x4f,0x54};
+
+const UInt8 kCNNICBasicAuthKeyID[] = {0x65,0xF2,0x31,0xAD,0x2A,0xF7,0xF7,0xDD,0x52,0x96,0x0A,0xC7,0x02,0xC1,0x0E,0xEF,0xA6,0xD5,0x3B,0x11};
+
+const UInt8 kCNNICEVName[] = {0x30,0x81,0x8a,0x31,0xb,0x30,0x9,0x6,0x3,0x55,0x4,0x6,0x13,0x2,0x43,0x4e,0x31,0x32,0x30,0x30,0x6,0x3,0x55,0x4,0xa,0xc,0x29,0x43,0x68,0x69,0x6e,0x61,0x20,0x49,0x6e,0x74,0x65,0x72,0x6e,0x65,0x74,0x20,0x4e,0x65,0x74,0x77,0x6f,0x72,0x6b,0x20,0x49,0x6e,0x66,0x6f,0x72,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x20,0x43,0x65,0x6e,0x74,0x65,0x72,0x31,0x47,0x30,0x45,0x6,0x3,0x55,0x4,0x3,0xc,0x3e,0x43,0x68,0x69,0x6e,0x61,0x20,0x49,0x6e,0x74,0x65,0x72,0x6e,0x65,0x74,0x20,0x4e,0x65,0x74,0x77,0x6f,0x72,0x6b,0x20,0x49,0x6e,0x66,0x6f,0x72,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x20,0x43,0x65,0x6e,0x74,0x65,0x72,0x20,0x45,0x56,0x20,0x43,0x65,0x72,0x74,0x69,0x66,0x69,0x63,0x61,0x74,0x65,0x73,0x20,0x52,0x6f,0x6f,0x74};
+
+const UInt8 kCNNICEVAuthKeyID[] = {0x7C,0x72,0x4B,0x39,0xC7,0xC0,0xDB,0x62,0xA5,0x4F,0x9B,0xAA,0x18,0x34,0x92,0xA2,0xCA,0x83,0x82,0x59};
+
+struct __AllowListEntry {
+       const UInt8     *issuerName;
+       const int       nameLength;
+       const UInt8     *authKeyID;
+       const int       authKeyIDLength;
+       const CertHash  *hashes;
+       const int       numhashes;
+};
+
+#define ALLOWLIST_ENTRIES 2
+struct __AllowListEntry kTpAllowList[ALLOWLIST_ENTRIES] = {
+       {
+               kCNNICBasicName,
+               sizeof(kCNNICBasicName),
+               kCNNICBasicAuthKeyID,
+               sizeof(kCNNICBasicAuthKeyID),
+               kCNNICBasicHashes,
+               sizeof(kCNNICBasicHashes) / CC_SHA256_DIGEST_LENGTH
+       },
+       {
+               kCNNICEVName,
+               sizeof(kCNNICEVName),
+               kCNNICEVAuthKeyID,
+               sizeof(kCNNICEVAuthKeyID),
+               kCNNICEVHashes,
+               sizeof(kCNNICEVHashes)/ CC_SHA256_DIGEST_LENGTH
+       }
+};
+
+
+static int trust_hash_compare(const void *hash1, const void *hash2) {
+       return memcmp(hash1, hash2, CC_SHA256_DIGEST_LENGTH);
+}
+
+CSSM_RETURN tpCheckCertificateAllowList(TPCertGroup &certGroup) {
+       CSSM_RETURN result = CSSMERR_TP_NOT_TRUSTED;
+       unsigned long ix = 0;
+       void *match = NULL;
+       UInt8 leafhash[CC_SHA256_DIGEST_LENGTH] = {0};
+       
+       TPCertInfo *leaf = certGroup.firstCert();
+       TPCertInfo *last = certGroup.lastCert();
+       
+       if (!leaf || !last) {
+               return result;
+       }
+       
+       /* Check whether last certificate in the chain claims to be issued by one of the restricted roots. */
+       const CSSM_DATA *issuerName = last->issuerName();
+       if (!issuerName || !issuerName->Data) {
+               return result;
+       }
+       
+       const CSSM_DATA *authKeyID = last->authorityKeyID();
+       if (!authKeyID || !authKeyID->Data) {
+               return result;
+       }
+       
+       CSSM_X509_EXTENSION *ake = (CSSM_X509_EXTENSION *)authKeyID->Data;
+       if (!ake || ake->format != CSSM_X509_DATAFORMAT_PARSED) {
+               return result;
+       }
+       
+       const CE_AuthorityKeyID *akid = (CE_AuthorityKeyID *)ake->value.parsedValue;
+       if (!akid || !akid->keyIdentifierPresent) {
+               return result;
+       }
+
+       for (ix = 0; ix < ALLOWLIST_ENTRIES; ix++) {
+               if ((akid->keyIdentifier.Length == kTpAllowList[ix].authKeyIDLength) &&
+                   (!memcmp(akid->keyIdentifier.Data, kTpAllowList[ix].authKeyID, kTpAllowList[ix].authKeyIDLength)) &&
+                   (issuerName->Length == kTpAllowList[ix].nameLength) &&
+                   !memcmp(issuerName->Data, kTpAllowList[ix].issuerName, kTpAllowList[ix].nameLength)) {
+                       /* matched issuer name and authority key ID */
+                       break;
+               }
+       }
+       
+       if (ix >= ALLOWLIST_ENTRIES) {
+               return result;
+       }
+       
+       /* Check whether this leaf certificate is whitelisted for the root */
+       const CSSM_DATA *leafData = leaf->itemData();
+       if (!leafData || !leafData->Data || (leafData->Length <= 0)) {
+               return result;
+       }
+       
+       int err = CCDigest(kCCDigestSHA256, leafData->Data, leafData->Length, leafhash);
+       if (err) {
+               return result;
+       };
+       
+       match = bsearch(&leafhash, kTpAllowList[ix].hashes, kTpAllowList[ix].numhashes,
+                       CC_SHA256_DIGEST_LENGTH, &trust_hash_compare);
+       if (match != NULL) {
+               result = CSSM_OK;
+       }
+       
+       return result;
+}
+
+
diff --git a/Security/libsecurity_apple_x509_tp/lib/tpCertAllowList.h b/Security/libsecurity_apple_x509_tp/lib/tpCertAllowList.h
new file mode 100644 (file)
index 0000000..ef17f5a
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2015 Apple Inc. All Rights Reserved.
+ * 
+ * @APPLE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_LICENSE_HEADER_END@
+ */
+
+/*!
+       @header tpCertAllowList.h
+*/
+
+
+#include <Security/cssmtype.h>
+#include <security_utilities/alloc.h>
+#include <security_utilities/threading.h>
+#include <security_utilities/globalizer.h>
+#include "TPCertInfo.h"
+#include "tpCrlVerify.h"
+
+#ifndef _SECURITY_TPCERTALLOWLIST_H_
+#define _SECURITY_TPCERTALLOWLIST_H_
+
+__BEGIN_DECLS
+
+CSSM_RETURN tpCheckCertificateAllowList(TPCertGroup &certGroup);
+
+__END_DECLS
+
+#endif /* _SECURITY_TPCERTALLOWLIST_H_ */
index bf50c70a5d5643a39bb8bcda2770dc58b6d0456c..67f9a47db70a28443fcf04100d3038e836362cc6 100644 (file)
@@ -24,6 +24,7 @@
 #include "certGroupUtils.h"
 #include "TPCertInfo.h"
 #include "TPCrlInfo.h"
+#include "tpCertAllowList.h"
 #include "tpPolicies.h"
 #include "tpdebugging.h"
 #include "tpCrlVerify.h"
@@ -179,7 +180,6 @@ errOut:
 }
 #endif /* TP_PKINIT_SERVER_HACK */
 
-
 /*-----------------------------------------------------------------------------
  * CertGroupConstruct
  *
@@ -724,7 +724,7 @@ void AppleTPSession::CertGroupVerify(CSSM_CL_HANDLE clHand,
                                constructReturn = CSSMERR_TP_NOT_TRUSTED;
                        }
 
-                       /*
+                       /*
                         * Those errors can be allowed, cert-chain-wide, per individual
                         * certs' allowedErrors
                         */
@@ -732,6 +732,13 @@ void AppleTPSession::CertGroupVerify(CSSM_CL_HANDLE clHand,
                            outCertGroup.isAllowedError(constructReturn)) {
                                constructReturn = CSSM_OK;
                        }
+            
+                       /*
+                        * Allow non-trusted root if whitelist check permits
+                        */
+                       if (constructReturn == CSSMERR_TP_NOT_TRUSTED) {
+                               constructReturn = tpCheckCertificateAllowList(outCertGroup);
+                       }
                        break;
        }
 
index 157cf8bd6b7bc23d1056ad71d3c751a961ba0ba3..7cc7043b9c5ae512a10d93a60ceb1e6119f660b4 100644 (file)
@@ -15,6 +15,8 @@
                0544C53A06A8718D00F54E48 /* tpOcspCertVfy.h in Headers */ = {isa = PBXBuildFile; fileRef = 0544C53206A8718D00F54E48 /* tpOcspCertVfy.h */; };
                0544C53B06A8718D00F54E48 /* tpOcspVerify.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0544C53306A8718D00F54E48 /* tpOcspVerify.cpp */; };
                0544C53C06A8718D00F54E48 /* tpOcspVerify.h in Headers */ = {isa = PBXBuildFile; fileRef = 0544C53406A8718D00F54E48 /* tpOcspVerify.h */; };
+               859345901B0A575D00DBAFCE /* tpCertAllowList.c in Sources */ = {isa = PBXBuildFile; fileRef = 8593458E1B0A575D00DBAFCE /* tpCertAllowList.c */; };
+               859345911B0A575D00DBAFCE /* tpCertAllowList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8593458F1B0A575D00DBAFCE /* tpCertAllowList.h */; };
                BE4866E211A21E3C00361B64 /* cuEnc64.c in Sources */ = {isa = PBXBuildFile; fileRef = BE4866E011A21E3C00361B64 /* cuEnc64.c */; };
                BE4866E311A21E3C00361B64 /* cuEnc64.h in Headers */ = {isa = PBXBuildFile; fileRef = BE4866E111A21E3C00361B64 /* cuEnc64.h */; };
                C2196B77053B5A2B005808D4 /* AppleX509TPBuiltin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C2196B76053B5A2B005808D4 /* AppleX509TPBuiltin.cpp */; };
@@ -78,6 +80,8 @@
                4094B06A057EA5B000B44BCC /* tp_policyOids.mdsinfo */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xml; path = tp_policyOids.mdsinfo; sourceTree = "<group>"; };
                4094B06B057EA5B000B44BCC /* tp_primary.mdsinfo */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xml; path = tp_primary.mdsinfo; sourceTree = "<group>"; };
                4CA1FEBE052A3C8100F22E42 /* libsecurity_apple_x509_tp.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libsecurity_apple_x509_tp.a; sourceTree = BUILT_PRODUCTS_DIR; };
+               8593458E1B0A575D00DBAFCE /* tpCertAllowList.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; indentWidth = 8; path = tpCertAllowList.c; sourceTree = "<group>"; tabWidth = 8; usesTabs = 1; };
+               8593458F1B0A575D00DBAFCE /* tpCertAllowList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tpCertAllowList.h; sourceTree = "<group>"; };
                BE4866E011A21E3C00361B64 /* cuEnc64.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cuEnc64.c; sourceTree = "<group>"; };
                BE4866E111A21E3C00361B64 /* cuEnc64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cuEnc64.h; sourceTree = "<group>"; };
                C2196B76053B5A2B005808D4 /* AppleX509TPBuiltin.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = AppleX509TPBuiltin.cpp; path = lib/AppleX509TPBuiltin.cpp; sourceTree = "<group>"; };
@@ -88,7 +92,7 @@
                C2B5C4D80534C6AA00AF53F5 /* AppleX509TPPlugin.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AppleX509TPPlugin.cpp; sourceTree = "<group>"; };
                C2B5C4D90534C6AA00AF53F5 /* certGroupUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = certGroupUtils.cpp; sourceTree = "<group>"; };
                C2B5C4DA0534C6AA00AF53F5 /* certGroupUtils.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = certGroupUtils.h; sourceTree = "<group>"; };
-               C2B5C4DF0534C6AA00AF53F5 /* tpCertGroup.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = tpCertGroup.cpp; sourceTree = "<group>"; };
+               C2B5C4DF0534C6AA00AF53F5 /* tpCertGroup.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 8; lastKnownFileType = sourcecode.cpp.cpp; path = tpCertGroup.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 1; };
                C2B5C4E00534C6AA00AF53F5 /* TPCertInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = TPCertInfo.cpp; sourceTree = "<group>"; };
                C2B5C4E10534C6AA00AF53F5 /* TPCertInfo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = TPCertInfo.h; sourceTree = "<group>"; };
                C2B5C4E20534C6AA00AF53F5 /* tpCredRequest.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = tpCredRequest.cpp; sourceTree = "<group>"; };
                                BE4866E111A21E3C00361B64 /* cuEnc64.h */,
                                C2B5C4DF0534C6AA00AF53F5 /* tpCertGroup.cpp */,
                                C2B5C4E00534C6AA00AF53F5 /* TPCertInfo.cpp */,
+                               8593458E1B0A575D00DBAFCE /* tpCertAllowList.c */,
+                               8593458F1B0A575D00DBAFCE /* tpCertAllowList.h */,
                                C2B5C4E10534C6AA00AF53F5 /* TPCertInfo.h */,
                                C2B5C4E20534C6AA00AF53F5 /* tpCredRequest.cpp */,
                                C2B5C4E30534C6AA00AF53F5 /* TPCrlInfo.cpp */,
                                C2B5C4F10534C6AA00AF53F5 /* AppleTP.h in Headers */,
                                C2B5C4F30534C6AA00AF53F5 /* AppleTPSession.h in Headers */,
                                C2B5C4F60534C6AA00AF53F5 /* certGroupUtils.h in Headers */,
+                               859345911B0A575D00DBAFCE /* tpCertAllowList.h in Headers */,
                                C2B5C4FD0534C6AA00AF53F5 /* TPCertInfo.h in Headers */,
                                C2B5C5000534C6AA00AF53F5 /* TPCrlInfo.h in Headers */,
                                C2B5C5020534C6AA00AF53F5 /* tpCrlVerify.h in Headers */,
                                0544C53906A8718D00F54E48 /* tpOcspCertVfy.cpp in Sources */,
                                0544C53B06A8718D00F54E48 /* tpOcspVerify.cpp in Sources */,
                                BE4866E211A21E3C00361B64 /* cuEnc64.c in Sources */,
+                               859345901B0A575D00DBAFCE /* tpCertAllowList.c in Sources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
index 86bb8d2e9559008cb8cc1356c191e43761ce113f..08bac8fb2686a6eac7e62ac301bbf2208c24c953 100644 (file)
@@ -115,6 +115,19 @@ void *SecNssCoder::malloc(size_t len)
        return rtn;
 }
 
+/* allocate space for num copies of specified type */
+void *SecNssCoder::malloc_T(
+                            size_t unit_bytesize,
+                            size_t num_units)
+{
+    if (num_units>=SIZE_MAX/unit_bytesize) {
+        THROW_ERROR;
+        return NULL;
+    }
+    return malloc(unit_bytesize * num_units);
+}
+
+
 /* malloc item.Data, set item.Length */
 void SecNssCoder::allocItem(
        SECItem                                 &item,
index 52d83ceceb075c85408ad0ebf5162f532bbbdee6..14effa89983b8654dd3cc6e807f63bc68881a004 100644 (file)
@@ -105,7 +105,7 @@ public:
                
        /* allocate space for num copies of specified type */
        template <class T> T *mallocn(unsigned num = 1) 
-               { return reinterpret_cast<T *>(malloc(sizeof(T) * num)); }
+               { return reinterpret_cast<T *>(malloc_T(sizeof(T),num)); }
 
        /* malloc item.Data, set item.Length */
        void allocItem(
@@ -132,6 +132,9 @@ public:
        
 private:
        PLArenaPool             *mPool;
+
+    void *malloc_T(size_t unit_bytesize,
+                   size_t num_units);
 };
 
 /*
index 0b8eb8a1f2a5c29bf41442db637e11980f9b7514..d7073980a2c0d751b20aa8ef6655c2f3c1a684b7 100644 (file)
@@ -99,6 +99,9 @@ PR_IMPLEMENT(void) PL_InitArenaPool(
 #endif
 }
 
+#if __APPLE__
+#define MAX_SIZE (PR_UINT32_MAX >> 1)
+#endif
 
 /*
 ** PL_ArenaAllocate() -- allocate space from an arena pool
@@ -125,14 +128,17 @@ PR_IMPLEMENT(void *) PL_ArenaAllocate(PLArenaPool *pool, PRUint32 nb)
     char *rp;     /* returned pointer */
 
     PR_ASSERT((nb & pool->mask) == 0);
-    
-    nb = (PRUint32)PL_ARENA_ALIGN(pool, nb); /* force alignment */
+#ifdef __APPLE__
+    nb = PL_ARENA_ALIGN(pool, nb); /* force alignment, cast is useless/causes warning. */
+#else
+    nb = (PRUword)PL_ARENA_ALIGN(pool, nb); /* force alignment */
+#endif
 
     /* attempt to allocate from arenas at pool->current */
     {
         a = pool->current;
         do {
-            if ( a->avail +nb <= a->limit )  {
+            if ( nb <= a->limit - a->avail )  {
                 pool->current = a;
                 rp = (char *)a->avail;
                 a->avail += nb;
@@ -143,12 +149,28 @@ PR_IMPLEMENT(void *) PL_ArenaAllocate(PLArenaPool *pool, PRUint32 nb)
 
     /* attempt to allocate from the heap */ 
     {  
-        PRSize sz = PR_MAX(pool->arenasize, nb);
-        sz += sizeof(*a) + pool->mask;  /* header and alignment slop */
-        a = (PLArena*)PR_MALLOC(sz);
+        PRUint32 sz = PR_MAX(pool->arenasize, nb);
+        if (PR_UINT32_MAX - sz < sizeof *a + pool->mask) {
+            a = NULL;
+        } else {
+            sz += sizeof *a + pool->mask;  /* header and alignment slop */
+            a = (PLArena*)PR_MALLOC(sz);
+        }
+#ifdef __APPLE__
+        // Check for integer overflow on a->avail += nb
+        PRUword a_avail_tmp=(PRUword)PL_ARENA_ALIGN(pool, a + 1);
+        if (a_avail_tmp + nb < a_avail_tmp)
+        {
+            PR_FREEIF(a); // Set a back to NULL
+        }
+#endif
         if ( NULL != a )  {
             a->limit = (PRUword)a + sz;
+#ifdef __APPLE__
+            a->base = a->avail = a_avail_tmp;
+#else
             a->base = a->avail = (PRUword)PL_ARENA_ALIGN(pool, a + 1);
+#endif
             rp = (char *)a->avail;
             a->avail += nb;
             /* the newly allocated arena is linked after pool->current 
@@ -184,14 +206,19 @@ PR_IMPLEMENT(void *) PL_ArenaGrow(
        PRUint32 newSize;                       // bytes actually mallocd here
        
        /* expand at least by 2x */
-       origAlignSize = PL_ARENA_ALIGN(pool, origSize); 
-       newSize = PR_MAX(origAlignSize+incr, 2*origAlignSize);
-       newSize = PL_ARENA_ALIGN(pool, newSize);        
+       origAlignSize = PL_ARENA_ALIGN(pool, origSize);
+    newSize = PR_MAX(origAlignSize+incr, 2*origAlignSize);
+    newSize = PL_ARENA_ALIGN(pool, newSize);
+#if __APPLE__
+    // Enforce maximal size before any potential implicit truncation
+    if (newSize>=MAX_SIZE || origSize>=MAX_SIZE || incr>=MAX_SIZE) {
+        return NULL;
+    }
+#endif
     PL_ARENA_ALLOCATE(newp, pool, newSize);
     if (newp == NULL) {
-               return NULL;
-       }
-       
+        return NULL;
+    }
        /* 
         * Trim back the memory we just allocated to the amount our caller really
         * needs, leaving the remainder for grow-in-place on subsequent calls
@@ -236,6 +263,21 @@ PR_IMPLEMENT(void *) PL_ArenaGrow(
     return newp;
 }
 
+static void ClearArenaList(PLArena *a, PRInt32 pattern)
+{
+
+    for (; a; a = a->next) {
+        PR_ASSERT(a->base <= a->avail && a->avail <= a->limit);
+        a->avail = a->base;
+        PL_CLEAR_UNUSED_PATTERN(a, pattern);
+    }
+}
+
+PR_IMPLEMENT(void) PL_ClearArenaPool(PLArenaPool *pool, PRInt32 pattern)
+{
+    ClearArenaList(pool->first.next, pattern);
+}
+
 /*
  * Free tail arenas linked after head, which may not be the true list head.
  * Reset pool->current to point to head in case it pointed at a tail arena.
index 944deb45dfa2c3e4ff0b122d354bb29d3fce5314..44eaf27d9aeab4076caf4503d6b5154db016bf56 100644 (file)
@@ -79,7 +79,7 @@ struct PLArenaStats {
 struct PLArenaPool {
     PLArena     first;          /* first arena in pool list */
     PLArena     *current;       /* arena from which to allocate space */
-    PRSize      arenasize;      /* net exact size of a new arena */
+    PRUint32    arenasize;      /* net exact size of a new arena */
     PRUword     mask;           /* alignment mask (power-of-2 - 1) */
 #ifdef PL_ARENAMETER
     PLArenaStats stats;
@@ -104,13 +104,14 @@ struct PLArenaPool {
 #define PL_ARENA_ALLOCATE(p, pool, nb) \
     PR_BEGIN_MACRO \
         PLArena *_a = (pool)->current; \
-        PRUint32 _nb = PL_ARENA_ALIGN(pool, nb); \
+        typeof((nb)) _nb = PL_ARENA_ALIGN(pool, nb); /* __APPLE__ more to be generic */ \
         PRUword _p = _a->avail; \
         PRUword _q = _p + _nb; \
-        if (_q > _a->limit) \
+        if (_nb > (_a->limit - _a->avail)) {/* __APPLE__ */ \
             _p = (PRUword)PL_ArenaAllocate(pool, _nb); \
-        else \
+        } else { \
             _a->avail = _q; \
+        } \
         p = (void *)_p; \
         PL_ArenaCountAllocation(pool, nb); \
     PR_END_MACRO
@@ -118,11 +119,12 @@ struct PLArenaPool {
 #define PL_ARENA_GROW(p, pool, size, incr) \
     PR_BEGIN_MACRO \
         PLArena *_a = (pool)->current; \
+        typeof((incr)) _incr = PL_ARENA_ALIGN(pool, incr); /* __APPLE__ more to be generic */ \
         PRUword _p = _a->avail; \
-        PRUword _q = (PRUword)p + size + incr; \
+        PRUword _q = _p + _incr; \
         if (_p == (PRUword)(p) + PL_ARENA_ALIGN(pool, size) && \
-            _q <= _a->limit) { \
-            _a->avail = PL_ARENA_ALIGN(pool, _q); \
+             _incr <= _a->limit - _a->avail) { /* __APPLE__ */\
+            _a->avail = _q; \
             PL_ArenaCountInplaceGrowth(pool, size, incr); \
         } else { \
             p = PL_ArenaGrow(pool, p, size, incr); \
@@ -133,13 +135,18 @@ struct PLArenaPool {
 #define PL_ARENA_MARK(pool) ((void *) (pool)->current->avail)
 #define PR_UPTRDIFF(p,q) ((PRUword)(p) - (PRUword)(q))
 
+#define PL_CLEAR_UNUSED_PATTERN(a, pattern) \
+    PR_BEGIN_MACRO \
+        PR_ASSERT((a)->avail <= (a)->limit); \
+        memset((void*)(a)->avail, (pattern), (a)->limit - (a)->avail); \
+    PR_END_MACRO
 #ifdef DEBUG
 #define PL_FREE_PATTERN 0xDA
-#define PL_CLEAR_UNUSED(a) (PR_ASSERT((a)->avail <= (a)->limit), \
-                           memset((void*)(a)->avail, PL_FREE_PATTERN, \
-                           (a)->limit - (a)->avail))
-#define PL_CLEAR_ARENA(a)  memset((void*)(a), PL_FREE_PATTERN, \
-                           (a)->limit - (PRUword)(a))
+#define PL_CLEAR_UNUSED(a) PL_CLEAR_UNUSED_PATTERN((a), PL_FREE_PATTERN)
+#define PL_CLEAR_ARENA(a) \
+    PR_BEGIN_MACRO \
+        memset((void*)(a), PL_FREE_PATTERN, (a)->limit - (PRUword)(a)); \
+    PR_END_MACRO
 #else
 #define PL_CLEAR_UNUSED(a)
 #define PL_CLEAR_ARENA(a)
index 9101a8f14c64a2824d19048fb9b78e26a088f68f..fa78eecb4d6701c8dbf5bae03bfd3404d702136e 100644 (file)
@@ -97,11 +97,15 @@ PR_EXTERN(void) PL_FinishArenaPool(PLArenaPool *pool);
 
 /*
 ** Compact all of the arenas in a pool so that no space is wasted.
+** NOT IMPLEMENTED.  Do not use.
 **/
 PR_EXTERN(void) PL_CompactArenaPool(PLArenaPool *pool);
 
 /*
 ** Friend functions used by the PL_ARENA_*() macros.
+**
+** WARNING: do not call these functions directly. Always use the
+** PL_ARENA_*() macros.
 **/
 PR_EXTERN(void *) PL_ArenaAllocate(PLArenaPool *pool, PRUint32 nb);
 
@@ -110,6 +114,11 @@ PR_EXTERN(void *) PL_ArenaGrow(
 
 PR_EXTERN(void) PL_ArenaRelease(PLArenaPool *pool, char *mark);
 
+/*
+ ** memset contents of all arenas in pool to pattern
+ */
+PR_EXTERN(void) PL_ClearArenaPool(PLArenaPool *pool, PRInt32 pattern);
+
 PR_END_EXTERN_C
 
 #endif /* defined(PLARENAS_H) */
index 6c65d0fda46dcd7bfd7edcc50dc58fc63bbc0b69..441ca69618e6467c1184aa3ded0286bbddbb66ae 100644 (file)
 
 #include <stddef.h>
 
+#ifdef __APPLE__
+#include <stdint.h>  // for uintptr_t
+#endif
+
 /***********************************************************************
 ** MACROS:      PR_EXTERN
 **              PR_IMPLEMENT
@@ -506,8 +510,14 @@ typedef PRUint16 PRUnichar;
 ** Specification, Addison-Wesley, September 1996.
 ** http://java.sun.com/docs/books/vmspec/index.html.)
 */
+
+#ifdef __APPLE__
+typedef intptr_t PRWord;
+typedef uintptr_t PRUword;
+#else
 typedef long PRWord;
-typedef size_t PRUword;
+typedef unsigned long PRUword;
+#endif
 
 #if defined(NO_NSPR_10_SUPPORT)
 #else
index 50a8b8ffed7c2705ccef0393bf4b71ae5d1d8b28..0d19a32d01867d941ca0ef44ec1ace4bdeb4724b 100644 (file)
@@ -108,13 +108,22 @@ PORTCharConversionFunc ucs2Utf8ConvertFunc;
 PORTCharConversionWSwapFunc  ucs2AsciiConvertFunc;
 #endif  /* __APPLE__ */
 
+/* NSPR memory allocation functions (PR_Malloc, PR_Calloc, and PR_Realloc)
+ * use the PRUint32 type for the size parameter. Before we pass a size_t or
+ * unsigned long size to these functions, we need to ensure it is <= half of
+ * the maximum PRUint32 value to avoid truncation and catch a negative size.
+ */
+#define MAX_SIZE (PR_UINT32_MAX >> 1)
+
 void *
 PORT_Alloc(size_t bytes)
 {
-    void *rv;
+    void *rv = NULL;
 
-    /* Always allocate a non-zero amount of bytes */
-    rv = (void *)PR_Malloc(bytes ? bytes : 1);
+    if (bytes <= MAX_SIZE) {
+       /* Always allocate a non-zero amount of bytes */
+       rv = PR_Malloc(bytes ? bytes : 1);
+    }
     if (!rv) {
        ++port_allocFailures;
        PORT_SetError(SEC_ERROR_NO_MEMORY);
@@ -125,9 +134,11 @@ PORT_Alloc(size_t bytes)
 void *
 PORT_Realloc(void *oldptr, size_t bytes)
 {
-    void *rv;
+    void *rv = NULL;
 
-    rv = (void *)PR_Realloc(oldptr, bytes);
+    if (bytes <= MAX_SIZE) {
+       rv = PR_Realloc(oldptr, bytes);
+    }
     if (!rv) {
        ++port_allocFailures;
        PORT_SetError(SEC_ERROR_NO_MEMORY);
@@ -138,10 +149,12 @@ PORT_Realloc(void *oldptr, size_t bytes)
 void *
 PORT_ZAlloc(size_t bytes)
 {
-    void *rv;
+    void *rv = NULL;
 
-    /* Always allocate a non-zero amount of bytes */
-    rv = (void *)PR_Calloc(1, bytes ? bytes : 1);
+    if (bytes <= MAX_SIZE) {
+       /* Always allocate a non-zero amount of bytes */
+       rv = PR_Calloc(1, bytes ? bytes : 1);
+    }
     if (!rv) {
        ++port_allocFailures;
        PORT_SetError(SEC_ERROR_NO_MEMORY);
@@ -199,9 +212,10 @@ PORT_NewArena(unsigned long chunksize)
 {
     PORTArenaPool *pool;
     
-    /* 64 bits cast: Safe. We only use chunksize 1024. */
-    PORT_Assert(chunksize<=PR_UINT32_MAX);
-
+    if (chunksize > MAX_SIZE) {
+       PORT_SetError(SEC_ERROR_NO_MEMORY);
+       return NULL;
+    }
     pool = PORT_ZNew(PORTArenaPool);
     if (!pool) {
        return NULL;
@@ -215,19 +229,24 @@ PORT_NewArena(unsigned long chunksize)
                return NULL;
     }
        #endif
-    PL_InitArenaPool(&pool->arena, "security", (PRUint32) chunksize, (PRUint32)sizeof(double));
+    PL_InitArenaPool(&pool->arena, "security", (PRUint32)chunksize, sizeof(double));
     return(&pool->arena);
 }
 
 void *
 PORT_ArenaAlloc(PLArenaPool *arena, size_t size)
 {
-    void *p;
+    void *p = NULL;
 
     PORTArenaPool *pool = (PORTArenaPool *)arena;
 
-    PORT_Assert(size<=PR_UINT32_MAX);
+    if (size <= 0) {
+       size = 1;
+    }
 
+    if (size > MAX_SIZE) {
+       /* you lose. */
+    } else 
     /* Is it one of ours?  Assume so and check the magic */
     if (ARENAPOOL_MAGIC == pool->magic ) {
                #if ARENA_POOL_LOCK
@@ -263,7 +282,12 @@ PORT_ArenaAlloc(PLArenaPool *arena, size_t size)
 void *
 PORT_ArenaZAlloc(PLArenaPool *arena, size_t size)
 {
-    void *p = PORT_ArenaAlloc(arena, size);
+    void *p;
+
+    if (size <= 0)
+        size = 1;
+
+    p = PORT_ArenaAlloc(arena, size);
 
     if (p) {
        PORT_Memset(p, 0, size);
@@ -272,7 +296,9 @@ PORT_ArenaZAlloc(PLArenaPool *arena, size_t size)
     return(p);
 }
 
-/* XXX - need to zeroize!! - jsw */
+/*
+ * If zero is true, zeroize the arena memory before freeing it.
+ */
 void
 PORT_FreeArena(PLArenaPool *arena, PRBool zero)
 {
@@ -313,6 +339,10 @@ PORT_FreeArena(PLArenaPool *arena, PRBool zero)
                }
     }
        #endif
+    if (zero) {
+        PL_ClearArenaPool(arena, 0);
+    }
+
     if (doFreeArenaPool) {
                PL_FreeArenaPool(arena);
     } else {
@@ -331,21 +361,28 @@ void *
 PORT_ArenaGrow(PLArenaPool *arena, void *ptr, size_t oldsize, size_t newsize)
 {
     PORTArenaPool *pool = (PORTArenaPool *)arena;
-    PORT_Assert(newsize >= oldsize);
-    PORT_Assert(oldsize <= PR_UINT32_MAX);
-    PORT_Assert(newsize <= PR_UINT32_MAX);
     
+    if (newsize > MAX_SIZE) {
+        PORT_SetError(SEC_ERROR_NO_MEMORY);
+        return NULL;
+    }
+#ifdef __APPLE__
+    if (newsize < oldsize) {
+        PORT_SetError(SEC_ERROR_LIBRARY_FAILURE); // Not expected
+        return NULL;
+    }
+#endif
     if (ARENAPOOL_MAGIC == pool->magic ) {
-               #if ARENA_POOL_LOCK
-               PZ_Lock(pool->lock);
-               #endif
-               /* Do we do a THREADMARK check here? */
-               PL_ARENA_GROW(ptr, arena, (PRUint32)oldsize, (PRUint32)( newsize - oldsize ) );
-               #if ARENA_POOL_LOCK
-               PZ_Unlock(pool->lock);
-               #endif
+        #if ARENA_POOL_LOCK
+            PZ_Lock(pool->lock);
+        #endif
+        /* Do we do a THREADMARK check here? */
+            PL_ARENA_GROW(ptr, arena, (PRUint32)oldsize, (PRUint32)( newsize - oldsize ) );
+        #if ARENA_POOL_LOCK
+            PZ_Unlock(pool->lock);
+        #endif
     } else {
-               PL_ARENA_GROW(ptr, arena, (PRUint32)oldsize, (PRUint32)( newsize - oldsize ) );
+        PL_ARENA_GROW(ptr, arena, (PRUint32)oldsize, (PRUint32)( newsize - oldsize ) );
     }
     
     return(ptr);
index 6d81ca12580a3a564ed0cf5b63f707885ad6f778..e6279fcc2fa364e7db68ab6a50f8d5088692630d 100644 (file)
@@ -111,6 +111,7 @@ enum {
        errSecCSUnsealedFrameworkRoot =         -67008, /* unsealed contents present in the root directory of an embedded framework */
        errSecCSWeakResourceEnvelope =          -67007, /* resource envelope is obsolete (version 1 signature) */
        errSecCSCancelled =                                     -67006, /* operation was terminated by explicit cancellation */
+       errSecCSTooBig =                    -67004, /* code is too big for current signing format */
 };
 
 
index f221e5bec4cda9fea916729866456ef5aaabaae2..b768c35effff426dbfd6f171e251da382932c126 100644 (file)
@@ -820,10 +820,7 @@ void SecStaticCode::validateResources(SecCSFlags flags)
                                (char*)this->mainExecutablePath().c_str(), 0);
                
                        // scan through the resources on disk, checking each against the resourceDirectory
-                       if (mValidationFlags & kSecCSFullReport)
-                               mResourcesValidContext = new CollectingContext(*this);          // collect all failures in here
-                       else
-                               mResourcesValidContext = new ValidationContext(*this);          // simple bug-out on first error
+                       mResourcesValidContext = new CollectingContext(*this);          // collect all failures in here
 
                        // use V2 resource seal if available, otherwise fall back to V1
                        CFDictionaryRef rules;
@@ -1119,6 +1116,8 @@ void SecStaticCode::validateResource(CFDictionaryRef files, string path, bool is
                        if (cfString(seal.link()) != target)
                                ctx.reportProblem(errSecCSBadResource, kSecCFErrorResourceAltered, fullpath);
                } else if (seal.hash()) {       // genuine file
+                       if (isSymlink)
+                               return ctx.reportProblem(errSecCSBadResource, kSecCFErrorResourceAltered, fullpath); // changed type
                        AutoFileDesc fd(cfString(fullpath), O_RDONLY, FileDesc::modeMissingOk); // open optional file
                        if (fd) {
                                MakeHash<CodeDirectory> hasher(this->codeDirectory());
@@ -1562,6 +1561,7 @@ void SecStaticCode::staticValidate(SecCSFlags flags, const SecRequirement *req)
        setValidationFlags(flags);
        
        // initialize progress/cancellation state
+       if (flags & kSecCSReportProgress)
        prepareProgress(estimateResourceWorkload() + 2);        // +1 head, +1 tail
 
        // core components: once per architecture (if any)
@@ -1589,7 +1589,7 @@ void SecStaticCode::staticValidate(SecCSFlags flags, const SecRequirement *req)
 
        // perform strict validation if desired
        if (flags & kSecCSStrictValidate)
-               mRep->strictValidate(mTolerateErrors);
+               mRep->strictValidate(codeDirectory(), mTolerateErrors);
        reportProgress();
 
        // allow monitor intervention
index b70059f1cc10dcd8eeaa4dc001722a00d1c964ed..d414ff310f9c35d3906221cdc8486fbc642d2c95 100644 (file)
@@ -563,13 +563,13 @@ size_t BundleDiskRep::pageSize(const SigningContext &ctx)
 // Strict validation.
 // Takes an array of CFNumbers of errors to tolerate.
 //
-void BundleDiskRep::strictValidate(const ToleratedErrors& tolerated)
+void BundleDiskRep::strictValidate(const CodeDirectory* cd, const ToleratedErrors& tolerated)
 {
        std::vector<OSStatus> fatalErrors;
        set_difference(mStrictErrors.begin(), mStrictErrors.end(), tolerated.begin(), tolerated.end(), back_inserter(fatalErrors));
        if (!fatalErrors.empty())
                MacOSError::throwMe(fatalErrors[0]);
-       mExecRep->strictValidate(tolerated);
+       mExecRep->strictValidate(cd, tolerated);
 }
 
 void BundleDiskRep::recordStrictError(OSStatus error)
index 3b810dd92f63964a64dd68c3b7721fb4eeea926f..b1b4db4b7ffc75d0383464ead23cf23ddc322741 100644 (file)
@@ -73,7 +73,7 @@ public:
        const Requirements *defaultRequirements(const Architecture *arch, const SigningContext &ctx);
        size_t pageSize(const SigningContext &ctx);
 
-       void strictValidate(const ToleratedErrors& tolerated);
+       void strictValidate(const CodeDirectory* cd, const ToleratedErrors& tolerated);
        CFArrayRef allowedResourceOmissions();
 
        CFBundleRef bundle() const { return mBundle; }
index 61900bc1f822c98b24d75033583aef15dad1fe72..45204a263c4a835684fe332504966854e6acda4d 100644 (file)
@@ -183,6 +183,9 @@ CodeDirectory *CodeDirectory::Builder::build()
        if (!(mDir = (CodeDirectory *)calloc(1, total)))        // initialize to zero
                UnixError::throwMe(ENOMEM);
        
+       if (mExecLength > UINT32_MAX)
+               MacOSError::throwMe(errSecCSTooBig);
+       
        // fill header
        mDir->initialize(total);
        mDir->version = version;
index d48d7dea9370f9369d0ae3a7edfbfab94490a193..28a91f07cc3ee90e18b81a9ecdbd6ff7ff63c7e7 100644 (file)
@@ -160,6 +160,18 @@ void CodeDirectory::checkIntegrity() const
                if (!contains((*this)[pagesConsumed-1], hashSize))      // referenced too many main hash slots
                        MacOSError::throwMe(errSecCSSignatureFailed);
        }
+       
+       // check consistency between the page-coverage fields
+       if (pageSize) {
+               if (codeLimit == 0)                                                                     // can't have paged signatures with no covered data
+                       MacOSError::throwMe(errSecCSSignatureFailed);
+               size_t coveredPages = ((codeLimit-1) >> pageSize) + 1; // page slots required to cover codeLimit
+               if (coveredPages != nCodeSlots)
+                       MacOSError::throwMe(errSecCSSignatureFailed);
+       } else {
+               if ((codeLimit > 0) != nCodeSlots)      // must have one code slot, or none if no code
+                       MacOSError::throwMe(errSecCSSignatureFailed);
+       }
 }
 
 
index a3e8ed06006ac4220efce27726ed723ee850f62c..af0a336b2a1c436940b0a6a4045b42aed7b7f976 100644 (file)
@@ -218,7 +218,7 @@ size_t DiskRep::pageSize(const SigningContext &)
 }
 
 
-void DiskRep::strictValidate(const ToleratedErrors&)
+void DiskRep::strictValidate(const CodeDirectory*, const ToleratedErrors&)
 {
        // do nothing
 }
index d158c7cf759917afd000ff5498d7bcc3717dd3d3..b92195218a01c6aec7af58194f004839883a7573 100644 (file)
@@ -80,7 +80,7 @@ public:
                const SigningContext &ctx);                                                     // default internal requirements [none]
        virtual size_t pageSize(const SigningContext &ctx);             // default main executable page size [infinite, i.e. no paging]
 
-       virtual void strictValidate(const ToleratedErrors& tolerated); // perform strict validation
+       virtual void strictValidate(const CodeDirectory* cd, const ToleratedErrors& tolerated); // perform strict validation
        virtual CFArrayRef allowedResourceOmissions();                  // allowed (default) resource omission rules
 
        bool mainExecutableIsMachO() { return mainExecutableImage() != NULL; }
@@ -220,7 +220,7 @@ public:
                { return mOriginal->defaultRequirements(arch, ctx); }
        size_t pageSize(const SigningContext &ctx) { return mOriginal->pageSize(ctx); }
 
-       void strictValidate(const ToleratedErrors& tolerated) { mOriginal->strictValidate(tolerated); }
+       void strictValidate(const CodeDirectory* cd, const ToleratedErrors& tolerated) { mOriginal->strictValidate(cd, tolerated); }
        CFArrayRef allowedResourceOmissions() { return mOriginal->allowedResourceOmissions(); }
 
 private:
index 07c70a9c42fce961ad68a28cf98547007ad51bea..b2f7caef2f7a90d7e560cff6a2cef7f6c64a6067 100644 (file)
@@ -368,10 +368,18 @@ size_t MachORep::pageSize(const SigningContext &)
 //
 // Strict validation
 //
-void MachORep::strictValidate(const ToleratedErrors& tolerated)
+void MachORep::strictValidate(const CodeDirectory* cd, const ToleratedErrors& tolerated)
 {
+       // if the constructor found suspicious issues, fail a struct validation now
        if (mExecutable->isSuspicious() && tolerated.find(errSecCSBadMainExecutable) == tolerated.end())
                MacOSError::throwMe(errSecCSBadMainExecutable);
+       
+       // the signature's code extent must be what we would have picked (no funny hand editing)
+       if (cd) {
+               auto_ptr<MachO> macho(mExecutable->architecture());
+               if (cd->codeLimit != macho->signingExtent())
+                       MacOSError::throwMe(errSecCSSignatureInvalid);
+       }
 }
 
 
index c338e91e16ee77f63e957140769d1964abb6e7c2..07bba9e42f9bcb76e3cdb5e8effe313317ec046c 100644 (file)
@@ -60,7 +60,7 @@ public:
        const Requirements *defaultRequirements(const Architecture *arch, const SigningContext &ctx);
        size_t pageSize(const SigningContext &ctx);
 
-       void strictValidate(const ToleratedErrors& tolerated);
+       void strictValidate(const CodeDirectory* cd, const ToleratedErrors& tolerated);
        
        void flush();           // flush cache
        
index 68b02b39f9054decba7eeece4eaced798a78f6f3..9c8d02fc45b55a3109ee3bd88ec45db6c011934d 100644 (file)
@@ -121,7 +121,7 @@ void SecCodeSigner::Signer::prepare(SecCSFlags flags)
 {
        // make sure the rep passes strict validation
        if (strict)
-               rep->strictValidate(MacOSErrorSet());
+               rep->strictValidate(NULL, MacOSErrorSet());
        
        // initialize progress/cancellation state
        code->prepareProgress(0);                       // totally fake workload - we don't know how many files we'll encounter
@@ -288,7 +288,10 @@ void SecCodeSigner::Signer::buildResources(std::string root, std::string relBase
 
        if (this->state.mLimitedAsync == NULL) {
                this->state.mLimitedAsync =
-            new LimitedAsync(rep->fd().mediumType() == kIOPropertyMediumTypeSolidStateKey);
+                       /* rdar://problem/20299541: Async workers (i.e. parallelization) are currently
+                        * turned off, because the paths for signing code are not ready for it yet. */
+                       // new LimitedAsync(rep->fd().mediumType() == kIOPropertyMediumTypeSolidStateKey);
+                       new LimitedAsync(false);
        }
 
        CFDictionaryRef files2 = NULL;
index e7ac3281fdcb9e70d8439ad4453774298c20a4c4..08a3b16bb27fbb9bec22ab22936a4f12bab158a6 100644 (file)
@@ -112,6 +112,18 @@ string SingleDiskRep::recommendedIdentifier(const SigningContext &)
 }
 
 
+//
+// Paranoid validation
+//
+void SingleDiskRep::strictValidate(const CodeDirectory* cd, const ToleratedErrors& tolerated)
+{
+       // code limit must cover (exactly) the entire file
+       if (cd && cd->codeLimit != signingLimit())
+               MacOSError::throwMe(errSecCSSignatureInvalid);
+}
+
+
+
 //
 // Prototype Writers
 //
index 7d802b615e1acf6a6bf2821c5bcb708756ad7c55..1992dc163a20090eb095361827aa9ae11e418aa4 100644 (file)
@@ -55,6 +55,8 @@ public:
        
        std::string recommendedIdentifier(const SigningContext &ctx); // basename(path)
 
+       void strictValidate(const CodeDirectory* cd, const ToleratedErrors& tolerated);
+
 public:
        class Writer;
        
index 1b625a497f47e65f9bf40a57c337c69b395c5707..b1da9e6f96bf7ce1d279e50b1acebe3adeff5909 100644 (file)
@@ -150,7 +150,7 @@ try
 
        if (mSha1Hash)
                CFRelease(mSha1Hash);
-}
+}    
 catch (...)
 {
 }
index 97c47c2aa26e117e1088f7faf9d23cc1206b4c5b..f9520c097aae86b27694906b8c51ab15a6a891cd 100644 (file)
                52E950D51509B48D00DA6511 /* tsaDERUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tsaDERUtilities.h; sourceTree = "<group>"; };
                52FB42C1113F056D006D3B0A /* debuggingP.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = debuggingP.h; sourceTree = "<group>"; };
                52FB44A81146D769006D3B0A /* SecCertificateOIDs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SecCertificateOIDs.h; sourceTree = "<group>"; };
+               85B946E01AF874B00075AE38 /* SecWhitelist.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SecWhitelist.c; sourceTree = "<group>"; };
+               85B946E11AF874B00075AE38 /* SecWhitelist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SecWhitelist.h; sourceTree = "<group>"; };
                AA31456E134B716B00133245 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = "<absolute>"; };
                AC9ADAD2199AD6BA00BDAF54 /* kc-42-trust-revocation.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "kc-42-trust-revocation.c"; path = "regressions/kc-42-trust-revocation.c"; sourceTree = "<group>"; };
                BE296DBE0EAC299C00FD22BE /* SecImportExport.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SecImportExport.c; sourceTree = "<group>"; };
                C2AA2B45052E099D006D0211 /* ACL.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ACL.h; sourceTree = "<group>"; };
                C2AA2B46052E099D006D0211 /* CCallbackMgr.cp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CCallbackMgr.cp; sourceTree = "<group>"; };
                C2AA2B47052E099D006D0211 /* CCallbackMgr.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CCallbackMgr.h; sourceTree = "<group>"; };
-               C2AA2B48052E099D006D0211 /* Certificate.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Certificate.cpp; sourceTree = "<group>"; };
+               C2AA2B48052E099D006D0211 /* Certificate.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Certificate.cpp; sourceTree = "<group>"; usesTabs = 1; };
                C2AA2B49052E099D006D0211 /* Certificate.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Certificate.h; sourceTree = "<group>"; };
                C2AA2B4A052E099D006D0211 /* CertificateRequest.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CertificateRequest.cpp; sourceTree = "<group>"; };
                C2AA2B4B052E099D006D0211 /* CertificateRequest.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CertificateRequest.h; sourceTree = "<group>"; };
                C2AA2BA5052E099D006D0211 /* Security.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Security.h; sourceTree = "<group>"; };
                C2AA2BAA052E099D006D0211 /* StorageManager.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = StorageManager.cpp; sourceTree = "<group>"; };
                C2AA2BAB052E099D006D0211 /* StorageManager.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = StorageManager.h; sourceTree = "<group>"; };
-               C2AA2BAC052E099D006D0211 /* Trust.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Trust.cpp; sourceTree = "<group>"; };
+               C2AA2BAC052E099D006D0211 /* Trust.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Trust.cpp; sourceTree = "<group>"; tabWidth = 4; usesTabs = 1; };
                C2AA2BAD052E099D006D0211 /* Trust.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Trust.h; sourceTree = "<group>"; };
                C2AA2BAE052E099D006D0211 /* TrustedApplication.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = TrustedApplication.cpp; sourceTree = "<group>"; };
                C2AA2BAF052E099D006D0211 /* TrustedApplication.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = TrustedApplication.h; sourceTree = "<group>"; };
                                5261C289112F0D570047EF8B /* SecFrameworkP.c */,
                                521DC57D1125FEE300937BF2 /* SecCertificateP.c */,
                                521DC57E1125FEE300937BF2 /* SecCertificateP.h */,
+                               85B946E01AF874B00075AE38 /* SecWhitelist.c */,
+                               85B946E11AF874B00075AE38 /* SecWhitelist.h */,
                                4CCB00430580089000981D43 /* security_keychain.exp */,
                                52008C6311496BD200E8CA78 /* SecCertificateInternalP.h */,
                                C2AA2B55052E099D006D0211 /* generateErrStrings.pl */,
index 56984fede596a6b44f72b1c17540a00a8a83579b..12395542f071d7556a7b0890c68a1d12e0a87c85 100644 (file)
@@ -58,6 +58,7 @@
 void **
 SecCmsArrayAlloc(PRArenaPool *poolp, int n)
 {
+    if (n>=(int)(INT_MAX/sizeof(void *))) {return (void **)NULL;} // Prevent under-allocation due to integer overflow
     return (void **)PORT_ArenaZAlloc(poolp, n * sizeof(void *));
 }
 
@@ -84,6 +85,10 @@ SecCmsArrayAdd(PRArenaPool *poolp, void ***array, void *obj)
        n = 0; p = *array;
        while (*p++)
            n++;
+       if (n>=(int)((INT_MAX/sizeof(void *))-2)) {
+               // Prevent under-allocation due to integer overflow
+               return SECFailure;
+       }
        dest = (void **)PORT_ArenaGrow (poolp, 
                              *array,
                              (n + 1) * sizeof(void *),
@@ -142,12 +147,20 @@ SecCmsArraySort(void **primary, int (*compare)(void *,void *), void **secondary,
 {
     int n, i, limit, lastxchg;
     void *tmp;
+    int n_2nd=0,n_3rd=0;
 
     n = SecCmsArrayCount(primary);
 
     PORT_Assert(secondary == NULL || SecCmsArrayCount(secondary) == n);
     PORT_Assert(tertiary == NULL || SecCmsArrayCount(tertiary) == n);
-    
+
+    if (secondary) {
+        n_2nd = SecCmsArrayCount(secondary);
+    }
+    if (tertiary) {
+        n_3rd = SecCmsArrayCount(tertiary);
+    }
+
     if (n <= 1)        /* ordering is fine */
        return;
     
@@ -161,12 +174,12 @@ SecCmsArraySort(void **primary, int (*compare)(void *,void *), void **secondary,
                tmp = primary[i+1];
                primary[i+1] = primary[i];
                primary[i] = tmp;
-               if (secondary) {                /* secondary array? */
-                   tmp = secondary[i+1];       /* exchange there as well */
+               if (secondary && ((i+1)<n_2nd)) {/* secondary array? */
+                   tmp = secondary[i+1];        /* exchange there as well */
                    secondary[i+1] = secondary[i];
                    secondary[i] = tmp;
                }
-               if (tertiary) {                 /* tertiary array? */
+               if (tertiary && ((i+1)<n_3rd)) {/* tertiary array? */
                    tmp = tertiary[i+1];        /* exchange there as well */
                    tertiary[i+1] = tertiary[i];
                    tertiary[i] = tmp;
index 6165481b0fe5047c136a045faab9f14e230825a9..496039920a48721b0c89baa176f8e4f78ab393ac 100644 (file)
@@ -83,13 +83,14 @@ SecCmsAttributeCreate(PRArenaPool *poolp, SECOidTag oidtag, CSSM_DATA_PTR value,
        goto loser;
 
     if (value != NULL) {
-       if ((copiedvalue = SECITEM_AllocItem(poolp, NULL, (unsigned int)value->Length)) == NULL)
+       if ((copiedvalue = SECITEM_AllocItem(poolp, NULL, value->Length)) == NULL)
            goto loser;
 
        if (SECITEM_CopyItem(poolp, copiedvalue, value) != SECSuccess)
            goto loser;
 
-       SecCmsArrayAdd(poolp, (void ***)&(attr->values), (void *)copiedvalue);
+        if (SecCmsArrayAdd(poolp, (void ***)&(attr->values), (void *)copiedvalue) != SECSuccess)
+            goto loser;
     }
 
     attr->encoded = encoded;
index f9ce1257a244860326c7fedb665495a4b9683f90..9975403fee1c6c51cccc30b841e375c7012edc43 100644 (file)
@@ -529,6 +529,13 @@ nss_cms_decoder_work_data(SecCmsDecoderRef p7dcx,
        storage = cinfo->content.data;
 
        offset = storage->Length;
+
+       /* check for potential overflow */
+       if (len >= (size_t)(INT_MAX - storage->Length)) {
+         p7dcx->error = SEC_ERROR_NO_MEMORY;
+         goto loser;
+       }
+
        if (storage->Length == 0) {
            dest = (unsigned char *)PORT_ArenaAlloc(p7dcx->cmsg->poolp, len);
        } else {
index edfe98e2b38ce43140a3eb1d3270f25e102d2089..0c16686e3688f9c21736c1cc4b75ac673d483c05 100644 (file)
@@ -45,6 +45,8 @@
 
 #include <Security/SecCmsDigestContext.h>
 
+/* Return the maximum value between S and T */
+#define MAX(S, T) ({__typeof__(S) _max_s = S; __typeof__(T) _max_t = T; _max_s > _max_t ? _max_s : _max_t;})
 
 struct SecCmsDigestContextStr {
     Boolean            saw_contents;
@@ -71,6 +73,10 @@ SecCmsDigestContextStartMultiple(SECAlgorithmID **digestalgs)
        return NULL;
 
     if (digcnt > 0) {
+        /* Security check to prevent under-allocation */
+        if (digcnt >= (int)(INT_MAX/sizeof(CSSM_CC_HANDLE))) {
+            goto loser;
+        }
        cmsdigcx->digobjs = (CSSM_CC_HANDLE *)PORT_Alloc(digcnt * sizeof(CSSM_CC_HANDLE));
        if (cmsdigcx->digobjs == NULL)
            goto loser;
@@ -187,6 +193,10 @@ SecCmsDigestContextFinishMultiple(SecCmsDigestContextRef cmsdigcx, SecArenaPoolR
 
     mark = PORT_ArenaMark ((PLArenaPool *)poolp);
 
+    /* Security check to prevent under-allocation */
+    if (cmsdigcx->digcnt >= (int)((INT_MAX/(MAX(sizeof(CSSM_DATA_PTR),sizeof(CSSM_DATA))))-1)) {
+        goto loser;
+    }
     /* allocate digest array & CSSM_DATAs on arena */
     digests = (CSSM_DATA_PTR *)PORT_ArenaAlloc((PLArenaPool *)poolp, (cmsdigcx->digcnt+1) * sizeof(CSSM_DATA_PTR));
     digest = (CSSM_DATA_PTR)PORT_ArenaZAlloc((PLArenaPool *)poolp, cmsdigcx->digcnt * sizeof(CSSM_DATA));
index cdc856998d71c99bdd769a840453bd25b5e2d115..2d0e51e614f5892d0a63e655c42424f4d89586e2 100644 (file)
@@ -437,7 +437,7 @@ nss_cms_encoder_work_data(SecCmsEncoderRef p7ecx, CSSM_DATA_PTR dest,
     /* Encrypt this chunk. */
     if (cinfo->ciphcx != NULL) {
        CSSM_SIZE inlen;        /* length of data being encrypted */
-       CSSM_SIZE outlen;       /* length of encrypted data */
+       CSSM_SIZE outlen = 0;   /* length of encrypted data */
        CSSM_SIZE buflen;       /* length available for encrypted data */
 
        inlen = len;
index 15f0942d406d2b09cd5045b1c2b8168b2496ffe5..f9b194bcd5d55bc7f68f45742a2127aedad8fb7a 100644 (file)
@@ -130,8 +130,8 @@ nss_cms_recipient_list_create(SecCmsRecipientInfoRef *recipientinfos)
 
     /* count the number of recipient identifiers */
     count = nss_cms_recipients_traverse(recipientinfos, NULL);
-    if (count <= 0) {
-       /* no recipients? */
+    if (count <= 0 || count>=(int)((INT_MAX/sizeof(SecCmsRecipient *))-1)) {
+       /* no recipients? or risk of underallocation 20130783 */
        PORT_SetError(SEC_ERROR_BAD_DATA);
 #if 0
        PORT_SetErrorString("Cannot find recipient data in envelope.");
index 1913239b3152a1ce794e7b94c9a5f0619d5ddf36..efb4eeb144743cb3e7c076b7c295181ffdefb829 100644 (file)
@@ -337,7 +337,7 @@ SecCmsSignerInfoSign(SecCmsSignerInfoRef signerinfo, CSSM_DATA_PTR digest, CSSM_
     SECOidTag pubkAlgTag;
     CSSM_DATA signature = { 0 };
     OSStatus rv;
-    PLArenaPool *poolp, *tmppoolp;
+    PLArenaPool *poolp, *tmppoolp = NULL;
     const SECAlgorithmID *algID;
     SECAlgorithmID freeAlgID;
     //CERTSubjectPublicKeyInfo *spki;
@@ -443,6 +443,7 @@ SecCmsSignerInfoSign(SecCmsSignerInfoRef signerinfo, CSSM_DATA_PTR digest, CSSM_
        rv = SEC_SignData(&signature, encoded_attrs.Data, (int)encoded_attrs.Length,
                          privkey, digestalgtag, pubkAlgTag);
        PORT_FreeArena(tmppoolp, PR_FALSE); /* awkward memory management :-( */
+       tmppoolp = 0;
     } else {
        rv = SGN_Digest(privkey, digestalgtag, pubkAlgTag, &signature, digest);
     }
@@ -491,6 +492,8 @@ loser:
         * by SecKey...it all boils down to a free() in the end though. */
        SECOID_DestroyAlgorithmID((SECAlgorithmID *)algID, PR_FALSE);
     }
+    if (tmppoolp)
+       PORT_FreeArena(tmppoolp, PR_FALSE);
     return SECFailure;
 }
 
index 020460cf61815096733b0440b71a87789b0e4c36..73587d852ada556fde4d1115daed7fc1a2180847 100644 (file)
@@ -81,6 +81,10 @@ SecCmsArraySortByDER(void **objs, const SecAsn1Template *objtemplate, void **obj
      * Allocate arrays to hold the individual encodings which we will use
      * for comparisons and the reordered attributes as they are sorted.
      */
+    // Security check to prevent under-allocation
+    if (num_objs<0 || num_objs>=(int)((INT_MAX/sizeof(CSSM_DATA_PTR))-1)) {
+        goto loser;
+    }
     enc_objs = (CSSM_DATA_PTR *)PORT_ArenaZAlloc(poolp, (num_objs + 1) * sizeof(CSSM_DATA_PTR));
     if (enc_objs == NULL)
        goto loser;
index fd31af5ab33f9c3f2f2d943dea1287e9207dc0e3..59070c65380d655d7ecfa6689c7d69556a430266 100644 (file)
@@ -40,7 +40,7 @@
 #include <security_asn1/secerr.h>
 
 SECItem *
-SECITEM_AllocItem(PRArenaPool *arena, SECItem *item, unsigned int len)
+SECITEM_AllocItem(PRArenaPool *arena, SECItem *item, size_t len)
 {
     SECItem *result = NULL;
     void *mark = NULL;
index e3bb92374004c2d3befbd0435d3e8e184408c3be..e02c33ce087e7da6c24985aae3bd3323fd54ae0a 100644 (file)
@@ -56,7 +56,7 @@ SEC_BEGIN_PROTOS
 ** unused and our improved APIs (aka Stan) are looming, I left it out.
 */
 extern SECItem *SECITEM_AllocItem(PRArenaPool *arena, SECItem *item,
-                                 unsigned int len);
+                                 size_t len);
 
 /*
 ** Reallocate the data for the specified "item".  If "arena" is not NULL,
index 76565d49d6490ef4afb5f78e2b3aa53559473d4a..39989b014a64db0ae16b91259f914f9dd018e7e6 100644 (file)
@@ -440,7 +440,12 @@ OSStatus SSLSetPSKIdentity(SSLContextRef ctx,
 OSStatus SSLGetPSKIdentity(SSLContextRef ctx,
                            const void **pskIdentity,
                            size_t *pskIdentityLen);
-    
+
+/* For client side, set the minimum allowed DH group size for DHE ciphersuites */
+OSStatus SSLSetMinimumDHGroupSize(SSLContextRef ctx, unsigned nbits);
+
+OSStatus SSLGetMinimumDHGroupSize(SSLContextRef ctx, unsigned *nbits);
+
 #if TARGET_OS_IPHONE
 
 /* Following are SPIs on iOS */
index 59efa1289dfd39ce004c3d3a2f2e5e84eb2ff1de..189d65aa760cadde42d48fdccfddfcafedcadf8e 100644 (file)
@@ -88,4 +88,6 @@ _SSLSetECDSACurves
 _SSLGetNumberOfClientAuthTypes
 _SSLGetClientAuthTypes
 _SSLGetNegotiatedClientAuthType
+_SSLSetMinimumDHGroupSize
+_SSLGetMinimumDHGroupSize
 
index b4161e70afd923ec9af7ae490a1563ca2f367b74..a0f35ae0d2b7a14b4708f6a6ed061313df87bc4d 100644 (file)
@@ -118,6 +118,30 @@ Boolean sslIsSessionActive(const SSLContext *ctx)
                                             underflow when calculating max write size */
 
 int kSplitDefaultValue;
+CFIndex kMinDhGroupSizeDefaultValue;
+
+#if TARGET_OS_IPHONE
+/*
+ * Instead of using CFPropertyListReadFromFile we use a
+ * CFPropertyListCreateWithStream directly
+ * here. CFPropertyListReadFromFile() uses
+ * CFURLCopyResourcePropertyForKey() andCF pulls in CoreServices for
+ * CFURLCopyResourcePropertyForKey() and that doesn't work in install
+ * enviroment.
+ */
+static CFPropertyListRef
+CopyPlistFromFile(CFURLRef url)
+{
+    CFDictionaryRef d = NULL;
+    CFReadStreamRef s = CFReadStreamCreateWithFile(kCFAllocatorDefault, url);
+    if (s && CFReadStreamOpen(s)) {
+        d = (CFDictionaryRef)CFPropertyListCreateWithStream(kCFAllocatorDefault, s, 0, kCFPropertyListImmutable, NULL, NULL);
+    }
+    CFReleaseSafe(s);
+
+    return d;
+}
+#endif
 
 static void _SSLContextReadDefault()
 {
@@ -144,6 +168,29 @@ static void _SSLContextReadDefault()
        else {
                kSplitDefaultValue = defaultSplitDefaultValue;
        }
+
+    /* Min DH Group Size */
+    kMinDhGroupSizeDefaultValue = CFPreferencesGetAppIntegerValue(CFSTR("SSLMinDhGroupSize"), kCFPreferencesCurrentApplication, NULL);
+
+#if TARGET_OS_IPHONE
+    /* on iOS, if the above returned nothing, we manually look into mobile's Managed Preferences */
+    /* Note that if the process is running as mobile, the above call will already have read the Managed Preference plist.
+       As a result, if you have some preferences set manually with defaults, which preference applies may be different for mobile vs not-mobile. */
+    if(kMinDhGroupSizeDefaultValue == 0) {
+        CFURLRef prefURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, CFSTR("/Library/Managed Preferences/mobile/.GlobalPreferences.plist"), kCFURLPOSIXPathStyle, false);
+        if(prefURL) {
+            CFPropertyListRef plist = CopyPlistFromFile(prefURL);
+            if (plist) {
+                value =  CFDictionaryGetValue(plist, CFSTR("SSLMinDhGroupSize"));
+                if (isNumber(value)) {
+                    CFNumberGetValue(value, kCFNumberCFIndexType, &kMinDhGroupSizeDefaultValue);
+                }
+            }
+            CFReleaseSafe(plist);
+        }
+        CFReleaseSafe(prefURL);
+    }
+#endif
 }
 
 CFGiblisWithHashFor(SSLContext)
@@ -243,8 +290,13 @@ SSLContextRef SSLCreateContextWithRecordFuncs(CFAllocatorRef alloc, SSLProtocolS
         */
        static pthread_once_t sReadDefault = PTHREAD_ONCE_INIT;
        pthread_once(&sReadDefault, _SSLContextReadDefault);
-       if (kSplitDefaultValue > 0)
+    if (kSplitDefaultValue > 0) {
                ctx->oneByteRecordEnable = true;
+    }
+
+    if(kMinDhGroupSizeDefaultValue) {
+        tls_handshake_set_min_dh_group_size(ctx->hdsk, (unsigned)kMinDhGroupSizeDefaultValue);
+    }
 
        /* default for anonymous ciphers is DISABLED */
        ctx->anonCipherEnable = false;
@@ -1916,6 +1968,16 @@ OSStatus SSLGetDiffieHellmanParams(
 #endif /* APPLE_DH */
 }
 
+OSStatus SSLSetMinimumDHGroupSize(SSLContextRef ctx, unsigned nbits)
+{
+    return tls_handshake_set_min_dh_group_size(ctx->hdsk, nbits);
+}
+
+OSStatus SSLGetMinimumDHGroupSize(SSLContextRef ctx, unsigned *nbits)
+{
+    return tls_handshake_get_min_dh_group_size(ctx->hdsk, nbits);
+}
+
 OSStatus SSLSetRsaBlinding(
        SSLContextRef   ctx,
        Boolean                 blinding)
index 9eadbcbca05e6c81b1e320f77daa64d78ab68374..b8920859add345457aa91c40c3173700c7aea1e5 100644 (file)
@@ -342,6 +342,7 @@ static SSLContextRef make_ssl_ref(bool server, int client_side_auth, bool dh_ano
     require_noerr(SSLSetPeerDomainName(ctx, peer_domain_name,
         strlen(peer_domain_name)), out);
 
+    require_noerr(SSLSetMinimumDHGroupSize(ctx, 512), out);
 
     if (!dh_anonymous) {
         if (server)
index a9dbaa671d0cf7805816500f9795f27e73f0aea3..f3721935f428b2fb4c5a77727abaf5a70a48d664 100644 (file)
@@ -586,6 +586,11 @@ static const int64_t kSyncTimerLeeway = (NSEC_PER_MSEC * 250);      // 250ms lee
         {
             _seenKVSStoreChange = YES;
             NSSet *keysChangedInCloud = [NSSet setWithArray:[userInfo objectForKey:NSUbiquitousKeyValueStoreChangedKeysKey]];
+
+            /* We are saying that we want to try processing a key no matter what,
+             * *if* it has changed in the cloud. */
+            [_pendingKeys minusSet:keysChangedInCloud];
+
             NSSet *keysOfInterestThatChanged = [self pendKeysAndGetPendingForCurrentLockState:keysChangedInCloud];
             NSMutableDictionary *changedValues = [self copyValues:keysOfInterestThatChanged];
             if ([reason integerValue] == NSUbiquitousKeyValueStoreInitialSyncChange)
@@ -669,9 +674,12 @@ static const int64_t kSyncTimerLeeway = (NSEC_PER_MSEC * 250);      // 250ms lee
             // Update pendingKeys and handle them
             [_pendingKeys minusSet: handledKeys];
             bool hadShadowPendingKeys = [_shadowPendingKeys count];
-            NSSet *filteredKeys = [self pendKeysAndGetPendingForCurrentLockState:_shadowPendingKeys];
+            // Move away shadownPendingKeys first, because pendKeysAndGetPendingForCurrentLockState
+            // will look at them. See rdar://problem/20733166.
+            NSSet *oldShadowPendingKeys = _shadowPendingKeys;
             _shadowPendingKeys = nil;
-            
+            NSSet *filteredKeys = [self pendKeysAndGetPendingForCurrentLockState:oldShadowPendingKeys];
+
             // Write state to disk
             [self persistState];
             
index 1fa5289e83baa570950258152932b6027918e552..601ba1bac7525207c84dc5d0d393c852dba5c0c9 100644 (file)
@@ -272,7 +272,7 @@ static CFStringRef dsGetName(SOSDataSourceRef ds) {
     return CFSTR("The sky is made of butterflies");
 }
 
-static void dsSetNotifyPhaseBlock(SOSDataSourceRef ds, SOSDataSourceNotifyBlock notifyBlock) {
+static void dsSetNotifyPhaseBlock(SOSDataSourceRef ds, dispatch_queue_t queue, SOSDataSourceNotifyBlock notifyBlock) {
     ((SOSTestDataSourceRef)ds)->notifyBlock = Block_copy(notifyBlock);
 }
 
index a23a138944d292b1410b786a290971bf02980fc7..5ff17606922f38df79e68a0699161359cee342a1 100644 (file)
@@ -36,6 +36,8 @@
 #include <SecureObjectSync/SOSManifest.h>
 #include <utilities/SecCFRelease.h>
 
+#include <dispatch/dispatch.h>
+
 __BEGIN_DECLS
 
 /* SOSDataSource protocol (non opaque). */
@@ -107,7 +109,7 @@ struct SOSDataSource {
 
     // General SOSDataSource methods
     CFStringRef (*dsGetName)(SOSDataSourceRef ds);
-    void (*dsSetNotifyPhaseBlock)(SOSDataSourceRef ds, SOSDataSourceNotifyBlock notifyBlock);
+    void (*dsSetNotifyPhaseBlock)(SOSDataSourceRef ds, dispatch_queue_t queue, SOSDataSourceNotifyBlock notifyBlock);
     SOSManifestRef (*dsCopyManifest)(SOSDataSourceRef ds, CFErrorRef *error);
     bool (*dsForEachObject)(SOSDataSourceRef ds, SOSManifestRef manifest, CFErrorRef *error, void (^handleObject)(CFDataRef key, SOSObjectRef object, bool *stop));
     CFDataRef (*dsCopyStateWithKey)(SOSDataSourceRef ds, CFStringRef key, CFStringRef pdmn, CFErrorRef *error);
@@ -138,8 +140,8 @@ static inline CFStringRef SOSDataSourceGetName(SOSDataSourceRef ds) {
     return ds->dsGetName(ds);
 }
 
-static inline void SOSDataSourceSetNotifyPhaseBlock(SOSDataSourceRef ds, SOSDataSourceNotifyBlock notifyBlock) {
-    ds->dsSetNotifyPhaseBlock(ds, notifyBlock);
+static inline void SOSDataSourceSetNotifyPhaseBlock(SOSDataSourceRef ds, dispatch_queue_t queue, SOSDataSourceNotifyBlock notifyBlock) {
+    ds->dsSetNotifyPhaseBlock(ds, queue, notifyBlock);
 }
 
 static inline SOSManifestRef SOSDataSourceCopyManifest(SOSDataSourceRef ds, CFErrorRef *error) {
index 4c8b7cebb3ee25c3b72f29b405451e2daf1ac23b..b33ae528f53df70e2bd665cc2b34ff6e135f5469 100644 (file)
@@ -339,32 +339,19 @@ static void SOSEngineSetTrustedPeers(SOSEngineRef engine, CFStringRef myPeerID,
                 secerror("failed to load manifest from datasource: %@", dsError);
                 CFReleaseNull(dsError);
             }
-            SOSDataSourceSetNotifyPhaseBlock(engine->dataSource, ^(SOSDataSourceRef ds, SOSTransactionRef txn, SOSDataSourceTransactionPhase phase, SOSDataSourceTransactionSource source, struct SOSDigestVector *removals, struct SOSDigestVector *additions) {
+            SOSDataSourceSetNotifyPhaseBlock(engine->dataSource, engine->queue, ^(SOSDataSourceRef ds, SOSTransactionRef txn, SOSDataSourceTransactionPhase phase, SOSDataSourceTransactionSource source, struct SOSDigestVector *removals, struct SOSDigestVector *additions) {
                 SOSManifestRef mfdel = SOSManifestCreateWithDigestVector(removals, NULL);
                 SOSManifestRef mfadd = SOSManifestCreateWithDigestVector(additions, NULL);
-                dispatch_block_t processUpdates = ^{
-                    CFErrorRef localError = NULL;
-                    if (!SOSEngineUpdateChanges(engine, txn, phase, source, mfdel, mfadd, &localError)) {
-                        secerror("updateChanged failed: %@", localError);
-                    }
-                    CFReleaseSafe(localError);
-                    CFReleaseSafe(mfdel);
-                    CFReleaseSafe(mfadd);
-                };
-
-                // WARNING: This will deadlock the engine if you call a
-                // SecItem API function while holding the engine lock!
-                // However making this async right now isn't safe yet either
-                // Due to some code in the enginer using Get v/s copy to
-                // access some of the values that would be modified
-                // asynchronously here since the engine is coded as if
-                // running on a serial queue.
-                dispatch_sync(engine->queue, processUpdates);
+                CFErrorRef localError = NULL;
+                if (!SOSEngineUpdateChanges(engine, txn, phase, source, mfdel, mfadd, &localError)) {
+                    secerror("updateChanged failed: %@", localError);
+                }
+                CFReleaseSafe(localError);
+                CFReleaseSafe(mfdel);
+                CFReleaseSafe(mfadd);
             });
         } else {
-            SOSDataSourceSetNotifyPhaseBlock(engine->dataSource, ^(SOSDataSourceRef ds, SOSTransactionRef txn, SOSDataSourceTransactionPhase phase, SOSDataSourceTransactionSource source, struct SOSDigestVector *removals, struct SOSDigestVector *additions) {
-                secnoticeq("engine", "No peers to notify");     // TODO: DEBUG - remove this
-            });
+            SOSDataSourceSetNotifyPhaseBlock(engine->dataSource, NULL, NULL);
             CFReleaseNull(engine->manifest);
         }
     }
index a0d4170e0c8d11ec05a92f70451bb15ad4c174fd..018b4f68faf5166f9e5059bf21dc9afb0f911eed 100644 (file)
 
 #include "Security_regressions.h"
 
+/* Test <rdar://problem/16669564>
+   Retrieving attributes and data when item contains no data crashed.
+ */
+
 static void tests(void)
 {
     CFDictionaryRef item = CFDictionaryCreateForCFTypes(NULL,
index e6307a5c5c70d549dcb4fd5d82f061c01292031a..a442f8635fa4446328909536156a5312561c8a32 100644 (file)
@@ -192,7 +192,8 @@ make_attr(PLArenaPool *poolp, SecAsn1Item *type, SecAsn1Item *value, bool encode
         if (SECITEM_CopyItem(poolp, copiedvalue, value) != SECSuccess)
             goto loser;
 
-        SecCmsArrayAdd(poolp, (void ***)&(attr->values), (void *)copiedvalue);
+        if (SecCmsArrayAdd(poolp, (void ***)&(attr->values), (void *)copiedvalue) != SECSuccess)
+            goto loser;
     }
 
     attr->encoded = encoded;
index f9b82190a1a21bec2466b5f1b1c49993027b223e..150022f640cff9c0dc3ca0e773fb2c6740ec6294 100644 (file)
@@ -88,13 +88,16 @@ static uint8_t * mod128_oid_encoding_ptr(uint8_t *ptr, uint32_t src, bool final)
 
 static uint8_t * oid_der_data(PRArenaPool *poolp, CFStringRef oid_string, size_t *oid_data_len)
 {
+    CFArrayRef oid = NULL;
     /* estimate encoded length from base 10 (4 bits) to base 128 (7 bits) */
-    size_t tmp_oid_length = ((CFStringGetLength(oid_string) * 4) / 7) + 1;
+    require(((size_t)CFStringGetLength(oid_string) < (SIZE_MAX/4)), out); // Guard against integer overflow on size_t
+    size_t tmp_oid_length = ((((size_t)CFStringGetLength(oid_string)) * 4) / 7) + 1;
     uint8_t *tmp_oid_data = PORT_ArenaAlloc(poolp, tmp_oid_length);
     uint8_t *tmp_oid_data_ptr = tmp_oid_data;
 
-    CFArrayRef oid = CFStringCreateArrayBySeparatingStrings(kCFAllocatorDefault,
-                                                            oid_string, CFSTR("."));
+    require(tmp_oid_data, out); // Allocation failure
+    oid = CFStringCreateArrayBySeparatingStrings(kCFAllocatorDefault,
+                                                oid_string, CFSTR("."));
     CFIndex i = 0, count = CFArrayGetCount(oid);
     SInt32 first_digit = 0, digit;
     for (i = 0; i < count; i++) {
index af0b3131b0728568db743daeef3c19d6085ec22a..191a33111aaf882aa75f413cd710080693c559e7 100644 (file)
@@ -190,15 +190,11 @@ static CFStringRef dsGetName(SOSDataSourceRef data_source) {
     return ds->name;
 }
 
-static void dsSetNotifyPhaseBlock(SOSDataSourceRef data_source, SOSDataSourceNotifyBlock notifyBlock) {
+static void dsSetNotifyPhaseBlock(SOSDataSourceRef data_source, dispatch_queue_t queue, SOSDataSourceNotifyBlock notifyBlock) {
     SecItemDataSourceRef ds = (SecItemDataSourceRef)data_source;
-    SecDbSetNotifyPhaseBlock(ds->db, ^(SecDbConnectionRef dbconn, SecDbTransactionPhase phase, SecDbTransactionSource source, struct SOSDigestVector *removals, struct SOSDigestVector *additions) {
-        if (notifyBlock) {
-            notifyBlock(&ds->ds, (SOSTransactionRef)dbconn, phase, source, removals, additions);
-        } else {
-            secerror("NULL notifyBlock");   // TODO: remove message; see SOSEngineSetTrustedPeers
-        }
-    });
+    SecDbSetNotifyPhaseBlock(ds->db, queue, notifyBlock ? ^(SecDbConnectionRef dbconn, SecDbTransactionPhase phase, SecDbTransactionSource source, struct SOSDigestVector *removals, struct SOSDigestVector *additions) {
+        notifyBlock(&ds->ds, (SOSTransactionRef)dbconn, phase, source, removals, additions);
+    } : NULL);
 }
 
 
index c1aa06404695a074b311bb2b34e698fe3f3972b9..572096c266777835f5c95d93121973f8e9126049 100644 (file)
@@ -79,6 +79,7 @@ struct __OpaqueSecDb {
     dispatch_semaphore_t read_semaphore;
     bool didFirstOpen;
     bool (^opened)(SecDbConnectionRef dbconn, bool did_create, CFErrorRef *error);
+    dispatch_queue_t notifyQueue;
     SecDBNotifyBlock notifyPhase;
 };
 
@@ -207,10 +208,22 @@ SecDbIdleConnectionCount(SecDbRef db) {
     return count;
 }
 
-void SecDbSetNotifyPhaseBlock(SecDbRef db, SecDBNotifyBlock notifyPhase) {
+void SecDbSetNotifyPhaseBlock(SecDbRef db, dispatch_queue_t queue, SecDBNotifyBlock notifyPhase) {
+    if (db->notifyQueue)
+        dispatch_release(db->notifyQueue);
     if (db->notifyPhase)
         Block_release(db->notifyPhase);
-    db->notifyPhase = Block_copy(notifyPhase);
+
+    if (queue) {
+        db->notifyQueue = queue;
+        dispatch_retain(db->notifyQueue);
+    } else {
+        db->notifyQueue = NULL;
+    }
+    if (notifyPhase)
+        db->notifyPhase = Block_copy(notifyPhase);
+    else
+        db->notifyPhase = NULL;
 }
 
 static void SecDbNotifyPhase(SecDbConnectionRef dbconn, SecDbTransactionPhase phase) {
@@ -222,6 +235,20 @@ static void SecDbNotifyPhase(SecDbConnectionRef dbconn, SecDbTransactionPhase ph
     }
 }
 
+static bool SecDbOnNotifyQueue(SecDbConnectionRef dbconn, bool (^perform)()) {
+    __block bool result = false;
+
+    if (dbconn->db->notifyPhase) {
+        dispatch_sync(dbconn->db->notifyQueue, ^{
+            result = perform();
+        });
+    } else {
+        result = perform();
+    }
+
+    return result;
+}
+
 CFStringRef SecDbGetPath(SecDbRef db) {
     return db->db_path;
 }
@@ -530,18 +557,20 @@ static bool SecDbBeginTransaction(SecDbConnectionRef dbconn, SecDbTransactionTyp
 
 static bool SecDbEndTransaction(SecDbConnectionRef dbconn, bool commit, CFErrorRef *error)
 {
-    bool ok = true, commited = false;
-    if (commit) {
-        SecDbNotifyPhase(dbconn, kSecDbTransactionWillCommit);
-        commited = ok = SecDbExec(dbconn, CFSTR("END"), error);
-    } else {
-        ok = SecDbExec(dbconn, CFSTR("ROLLBACK"), error);
-        commited = false;
-    }
-    dbconn->inTransaction = false;
-    SecDbNotifyPhase(dbconn, commited ? kSecDbTransactionDidCommit : kSecDbTransactionDidRollback);
-    dbconn->source = kSecDbAPITransaction;
-    return ok;
+    return SecDbOnNotifyQueue(dbconn, ^{
+        bool ok = true, commited = false;
+        if (commit) {
+            SecDbNotifyPhase(dbconn, kSecDbTransactionWillCommit);
+            commited = ok = SecDbExec(dbconn, CFSTR("END"), error);
+        } else {
+            ok = SecDbExec(dbconn, CFSTR("ROLLBACK"), error);
+            commited = false;
+        }
+        dbconn->inTransaction = false;
+        SecDbNotifyPhase(dbconn, commited ? kSecDbTransactionDidCommit : kSecDbTransactionDidRollback);
+        dbconn->source = kSecDbAPITransaction;
+        return ok;
+    });
 }
 
 bool SecDbTransaction(SecDbConnectionRef dbconn, SecDbTransactionType type,
index 55848de0af8b0a319bd88c9d6685e42051f1989e..3a11572f56dc6610af2edde33110d3956c815e63 100644 (file)
@@ -86,7 +86,7 @@ CFTypeID SecDbGetTypeID(void);
 
 SecDbRef SecDbCreate(CFStringRef dbName, bool (^opened)(SecDbConnectionRef dbconn, bool did_create, CFErrorRef *error));
 
-void SecDbSetNotifyPhaseBlock(SecDbRef db, SecDBNotifyBlock notifyPhase);
+void SecDbSetNotifyPhaseBlock(SecDbRef db, dispatch_queue_t queue, SecDBNotifyBlock notifyPhase);
 
 // Read only connections go to the end of the queue, writeable
 // connections go to the start of the queue.  Use SecDbPerformRead() and SecDbPerformWrite() if you
index f1641acc0d12de1d7ad1e107830057fe716be5f9..88f929b0b6db95b6493ac24bedb386ff12717ad3 100644 (file)
 # this directory, each containing exactly one of those certs. If you recreate the certs
 # be sure to replace the certs in the corresponding keychain.
 #
+# Note: since the RSA MD2 root which signed the amazon.com certificate has
+# been removed from the System Roots keychain (<rdar://7880748>),
+# we are no longer checking the CSSM_CERT_STATUS_IS_IN_ANCHORS bit for that cert.
+#
 globals
 allowUnverified = true
 crlNetFetchEnable = false
index cc1b71a68cab0bc2c8c9c0392affcad2bdae565b..af37804e3b164c7fa6aa841ca6ff8532ea33caf7 100644 (file)
@@ -59,6 +59,7 @@
 void **
 SecCmsArrayAlloc(PRArenaPool *poolp, int n)
 {
+    if (n>=(int)(INT_MAX/sizeof(void *))) {return (void **)NULL;} // Prevent under-allocation due to integer overflow
     return (void **)PORT_ArenaZAlloc(poolp, n * sizeof(void *));
 }
 
@@ -85,6 +86,10 @@ SecCmsArrayAdd(PRArenaPool *poolp, void ***array, void *obj)
        n = 0; p = *array;
        while (*p++)
            n++;
+       if (n>=(int)((INT_MAX/sizeof(void *))-2)) {
+               // Prevent under-allocation due to integer overflow
+               return SECFailure;
+       }
        dest = (void **)PORT_ArenaGrow (poolp, 
                              *array,
                              (n + 1) * sizeof(void *),
@@ -143,12 +148,19 @@ SecCmsArraySort(void **primary, int (*compare)(void *,void *), void **secondary,
 {
     int n, i, limit, lastxchg;
     void *tmp;
-
+    int n_2nd=0,n_3rd=0;
     n = SecCmsArrayCount(primary);
 
     PORT_Assert(secondary == NULL || SecCmsArrayCount(secondary) == n);
     PORT_Assert(tertiary == NULL || SecCmsArrayCount(tertiary) == n);
-    
+
+    if (secondary) {
+        n_2nd = SecCmsArrayCount(secondary);
+    }
+    if (tertiary) {
+        n_3rd = SecCmsArrayCount(tertiary);
+    }
+
     if (n <= 1)        /* ordering is fine */
        return;
     
@@ -162,12 +174,12 @@ SecCmsArraySort(void **primary, int (*compare)(void *,void *), void **secondary,
                tmp = primary[i+1];
                primary[i+1] = primary[i];
                primary[i] = tmp;
-               if (secondary) {                /* secondary array? */
-                   tmp = secondary[i+1];       /* exchange there as well */
+               if (secondary && ((i+1)<n_2nd)) {/* secondary array? */
+                   tmp = secondary[i+1];        /* exchange there as well */
                    secondary[i+1] = secondary[i];
                    secondary[i] = tmp;
                }
-               if (tertiary) {                 /* tertiary array? */
+               if (tertiary && ((i+1)<n_3rd)) {/* tertiary array? */
                    tmp = tertiary[i+1];        /* exchange there as well */
                    tertiary[i+1] = tertiary[i];
                    tertiary[i] = tmp;
index ba52167bc8a62e82e26bc0f815f6b908858450bc..a9a933a19858634469a72ff2e3339b1a601ac4cf 100644 (file)
@@ -92,7 +92,8 @@ SecCmsAttributeCreate(PRArenaPool *poolp, SECOidTag oidtag, SecAsn1Item * value,
        if (SECITEM_CopyItem(poolp, copiedvalue, value) != SECSuccess)
            goto loser;
 
-       SecCmsArrayAdd(poolp, (void ***)&(attr->values), (void *)copiedvalue);
+        if (SecCmsArrayAdd(poolp, (void ***)&(attr->values), (void *)copiedvalue) != SECSuccess)
+            goto loser;
     }
 
     attr->encoded = encoded;
index 2e149a25fe6aa43091ea3821d4aeba0292add66a..3c86da767499f8ab75d005303c983491d7cdd88c 100644 (file)
@@ -174,9 +174,6 @@ static unsigned long  rc2_unmap(unsigned long x)
 #ifndef kCCBlockSizeRC2
 #define kCCBlockSizeRC2 8
 #endif
-#ifndef kCCAlgorithmRC2
-#define kCCAlgorithmRC2 -1
-#endif
 #endif
 
 static SecCmsCipherContextRef
index 29f501c896304fc3a261a5e785b13897a5826766..891827f2b25e72957dc6d81985cd2f09da129018 100644 (file)
@@ -522,6 +522,13 @@ nss_cms_decoder_work_data(SecCmsDecoderRef p7dcx,
        storage = cinfo->content.data;
 
        offset = storage->Length;
+
+       /* check for potential overflow */
+       if (len >= (size_t)(INT_MAX - storage->Length)) {
+         p7dcx->error = SEC_ERROR_NO_MEMORY;
+         goto loser;
+       }
+
        if (storage->Length == 0) {
            dest = (unsigned char *)PORT_ArenaAlloc(p7dcx->cmsg->poolp, len);
        } else {
index 7e9c6b7fdcdd81690b33ce37ee3fea89762f7398..9c1e22c6acf3ad0b864c90b2f08deb0c0e815701 100644 (file)
 
 #include "SecCmsDigestContext.h"
 
+/* Return the maximum value between S and T (and U) */
+#define MAX(S, T) ({__typeof__(S) _max_s = S; __typeof__(T) _max_t = T; _max_s > _max_t ? _max_s : _max_t;})
+#define MAX_OF_3(S, T, U) ({__typeof__(U) _max_st = MAX(S,T); MAX(_max_st,U);})
+
 struct SecCmsDigestContextStr {
     PLArenaPool *      poolp;
     Boolean            saw_contents;
@@ -94,10 +98,18 @@ SecCmsDigestContextStartMultiple(SECAlgorithmID **digestalgs)
 
     if (digcnt > 0) {
 #if USE_CDSA_CRYPTO
+       /* Security check to prevent under-allocation */
+       if (digcnt >= (int)((INT_MAX/(MAX(sizeof(CSSM_CC_HANDLE),sizeof(SECAlgorithmID *))))-1)) {
+               goto loser;
+       }
        cmsdigcx->digobjs = (CSSM_CC_HANDLE *)PORT_ArenaAlloc(poolp, digcnt * sizeof(CSSM_CC_HANDLE));
        if (cmsdigcx->digobjs == NULL)
            goto loser;
 #else
+       /* Security check to prevent under-allocation */
+       if (digcnt >= (int)((INT_MAX/(MAX(sizeof(void *),sizeof(SECAlgorithmID *))))-1)) {
+               goto loser;
+       }
        cmsdigcx->digobjs = (void**)PORT_ArenaAlloc(poolp, digcnt * sizeof(void *));
        if (cmsdigcx->digobjs == NULL)
            goto loser;
@@ -186,6 +198,15 @@ SecCmsDigestContextUpdate(SecCmsDigestContextRef cmsdigcx, const unsigned char *
                This may cause an invalid CMS blob larger than 4GB to be validated. Unlikely, but
                possible security issue. There is no way to return an error here, but a check at
                the upper level may happen. */
+           /*
+             rdar://problem/20642513
+             Let's just die a horrible death rather than have the security issue.
+             CMS blob over 4GB?  Oh well.
+           */
+           if (len > UINT32_MAX) {
+             /* Ugh. */
+             abort();
+           }
             assert(len<=UINT32_MAX); /* Debug check. Correct as long as CC_LONG is uint32_t */
             switch (SECOID_GetAlgorithmTag(cmsdigcx->digestalgs[i])) {
             case SEC_OID_SHA1: CC_SHA1_Update((CC_SHA1_CTX *)cmsdigcx->digobjs[i], data, (CC_LONG)len); break;
@@ -274,6 +295,10 @@ SecCmsDigestContextFinishMultiple(SecCmsDigestContextRef cmsdigcx,
 
     mark = PORT_ArenaMark (cmsdigcx->poolp);
 
+    /* Security check to prevent under-allocation */
+    if (cmsdigcx->digcnt >= (int)((INT_MAX/(MAX_OF_3(sizeof(SECAlgorithmID *),sizeof(SecAsn1Item *),sizeof(SecAsn1Item))))-1)) {
+        goto loser;
+    }
     /* allocate digest array & SecAsn1Items on arena */
     digestalgs = (SECAlgorithmID **)PORT_ArenaZAlloc(cmsdigcx->poolp, (cmsdigcx->digcnt+1) * sizeof(SECAlgorithmID *));
     digests = (SecAsn1Item * *)PORT_ArenaZAlloc(cmsdigcx->poolp, (cmsdigcx->digcnt+1) * sizeof(SecAsn1Item *));
index 61638f26ce8bcfa947d8373bee34b23bcda6622d..687badc52206eba2ad27cd53f1980a1d6b4173ac 100644 (file)
@@ -417,7 +417,7 @@ nss_cms_encoder_work_data(SecCmsEncoderRef p7ecx, SecAsn1Item * dest,
     /* Encrypt this chunk. */
     if (cinfo->ciphcx != NULL) {
        unsigned int inlen;     /* length of data being encrypted */
-       unsigned int outlen;    /* length of encrypted data */
+       unsigned int outlen = 0;        /* length of encrypted data */
        unsigned int buflen;    /* length available for encrypted data */
 
         /* 64 bits cast: only an issue if unsigned int is smaller than size_t.
index bf3551e67515a035c0f955c047f6d502fe3f4bfa..5c2b356d6c075fbc0f3885838ff46627397e5e47 100644 (file)
@@ -288,6 +288,7 @@ loser:
 SecCmsRecipientInfoRef
 SecCmsRecipientInfoCreate(SecCmsEnvelopedDataRef envd, SecCertificateRef cert)
 {
+    /* TODO: we might want to prefer subjkeyid */
 #if 0
     SecCmsRecipientInfoRef info = SecCmsRecipientInfoCreateWithSubjKeyIDFromCert(envd, cert);
 
index 1b84dd5dbb2e836038f9f1c0ca768f277607f1a6..2563db402a0035557a5a11aecb33924d7ab951a3 100644 (file)
@@ -132,8 +132,8 @@ nss_cms_recipient_list_create(SecCmsRecipientInfoRef *recipientinfos)
 
     /* count the number of recipient identifiers */
     count = nss_cms_recipients_traverse(recipientinfos, NULL);
-    if (count <= 0) {
-       /* no recipients? */
+    if (count <= 0 || count>=(int)((INT_MAX/sizeof(SecCmsRecipient *))-1)) {
+       /* no recipients? or risk of underallocation 20130783 */
        PORT_SetError(SEC_ERROR_BAD_DATA);
 #if 0
        PORT_SetErrorString("Cannot find recipient data in envelope.");
index cce6955355bbdae6ae60987e5d3719d0af0505f2..8fe415b3b12b2d4573e28091f3277e2075301e8f 100644 (file)
@@ -320,7 +320,7 @@ SecCmsSignerInfoSign(SecCmsSignerInfoRef signerinfo, SecAsn1Item * digest, SecAs
     SECOidTag pubkAlgTag;
     SecAsn1Item signature = { 0 };
     OSStatus rv;
-    PLArenaPool *poolp, *tmppoolp;
+    PLArenaPool *poolp, *tmppoolp = NULL;
     const SECAlgorithmID *algID = NULL;
     //CERTSubjectPublicKeyInfo *spki;
 
@@ -444,6 +444,7 @@ SecCmsSignerInfoSign(SecCmsSignerInfoRef signerinfo, SecAsn1Item * digest, SecAs
 #endif
 
        PORT_FreeArena(tmppoolp, PR_FALSE); /* awkward memory management :-( */
+       tmppoolp = 0;
     } else {
         signature.Length = SecKeyGetSize(privkey, kSecKeySignatureSize);
         signature.Data = PORT_ZAlloc(signature.Length);
@@ -481,6 +482,8 @@ loser:
        SECITEM_FreeItem (&signature, PR_FALSE);
     if (privkey)
        SECKEY_DestroyPrivateKey(privkey);
+    if (tmppoolp)
+       PORT_FreeArena(tmppoolp, PR_FALSE);
     return SECFailure;
 }
 
index 31117217d6b04acbe2d099471e25d4b0ece60ff9..10faaea2a52154c3d84b9bd484352dc65bbde9bc 100644 (file)
@@ -91,6 +91,10 @@ SecCmsArraySortByDER(void **objs, const SecAsn1Template *objtemplate, void **obj
      * Allocate arrays to hold the individual encodings which we will use
      * for comparisons and the reordered attributes as they are sorted.
      */
+    // Security check to prevent under-allocation
+    if (num_objs<0 || num_objs>=(int)((INT_MAX/sizeof(SecAsn1Item *))-1)) {
+        goto loser;
+    }
     enc_objs = (SecAsn1Item **)PORT_ArenaZAlloc(poolp, (num_objs + 1) * sizeof(SecAsn1Item *));
     if (enc_objs == NULL)
        goto loser;
diff --git a/refs.txt b/refs.txt
deleted file mode 100644 (file)
index e69de29..0000000
index caeea7c951d8c564e23db71c283a6d43379f5c2a..c08779ef3cacfcebc5f8169b97fff53aa7909d30 100644 (file)
@@ -45,6 +45,7 @@ PCSCMonitor::PCSCMonitor(Server &server, const char* pathToCache, ServiceLevel l
        : Listener(kNotificationDomainPCSC, SecurityServer::kNotificationAllEvents),
       server(server),
          mServiceLevel(level),
+      MachServer::Timer(true),
          mCachePath(pathToCache),
          mTokenCache(NULL)
 {