summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Baryshkov <dbaryshkov@gmail.com>2020-06-15 20:55:39 +0000
committerDmitry Baryshkov <dbaryshkov@gmail.com>2020-06-15 20:55:39 +0000
commit7bfc148a587a69cf7faab4ef090031c91b6bb33a (patch)
tree93286d95c71a087f551360e77d35120295de3a69
parent9ec9fe6cc4d0ceab436a418dd1e52132967bb9c7 (diff)
parent5c7ec5abb8947795b35b18a91eaaf097ebff4d06 (diff)
downloadgnutls-7bfc148a587a69cf7faab4ef090031c91b6bb33a.tar.gz
Merge branch 'master' into 'tmp-mark-gost94-as-broken'
# Conflicts: # lib/crypto-selftests-pk.c
-rw-r--r--.gitignore38
-rw-r--r--.gitlab-ci.yml118
-rw-r--r--.gitmodules3
-rw-r--r--.lgtm.yml14
-rw-r--r--.mailmap1
-rw-r--r--.travis.yml22
-rw-r--r--NEWS139
-rw-r--r--RELEASES.md26
-rw-r--r--bootstrap.conf14
-rw-r--r--cfg.mk8
-rw-r--r--configure.ac192
-rwxr-xr-xdevel/import-ecc-from-nettle.sh (renamed from devel/import-curve448-from-nettle.sh)103
-rwxr-xr-xdevel/import-from-nettle.sh149
-rwxr-xr-xdevel/import-minitasn1.sh67
-rw-r--r--devel/libdane-latest-x86_64.abi1012
-rw-r--r--devel/libgnutls-latest-x86_64.abi9655
m---------devel/libtasn10
m---------devel/nettle0
-rw-r--r--devel/symbols.last16
-rw-r--r--doc/Makefile.am26
-rw-r--r--doc/cha-internals.texi22
-rw-r--r--doc/examples/ex-ocsp-client.c2
-rw-r--r--doc/examples/ex-pkcs12.c10
-rw-r--r--doc/manpages/Makefile.am13
-rw-r--r--fuzz/Makefile.am11
-rw-r--r--fuzz/README.md10
-rw-r--r--fuzz/gnutls_ocsp_resp_parser_fuzzer.repro/0b1ff2feb11e82901e7ba196270fa134e5169364bin0 -> 1609 bytes
-rw-r--r--fuzz/gnutls_pkcs12_key_parser_fuzzer.repro/dcbb6c7d385ddf87823849890768b022dc9e1effbin0 -> 1011 bytes
-rw-r--r--fuzz/gnutls_x509_crl_parser_fuzzer.c51
-rw-r--r--fuzz/gnutls_x509_crl_parser_fuzzer.in/027756c2bcbe9c7e40d84f1d95a1096869d2b88abin0 -> 554 bytes
-rw-r--r--fuzz/gnutls_x509_crl_parser_fuzzer.in/29ad4c879cc2d31eaf145c7a9dc8e1dfb2510b14bin0 -> 377613 bytes
-rw-r--r--fuzz/gnutls_x509_crl_parser_fuzzer.in/444a5c0edcfed360801be0cb99e1898e12c218d7bin0 -> 479 bytes
-rw-r--r--fuzz/gnutls_x509_crl_parser_fuzzer.in/48e9607eb3f073f7845690be49b6acd2547d7362bin0 -> 554 bytes
-rw-r--r--fuzz/gnutls_x509_crl_parser_fuzzer.in/4903c7d58c4077490c7c63d884b9993087298594bin0 -> 414 bytes
-rw-r--r--fuzz/gnutls_x509_crl_parser_fuzzer.in/4f58aabf04b92b0a91c643a80fccf42a22beec50bin0 -> 504 bytes
-rw-r--r--fuzz/gnutls_x509_crl_parser_fuzzer.in/50dca39ea79c6e5d3911d8b44d7328c8bfcfad08bin0 -> 596 bytes
-rw-r--r--fuzz/gnutls_x509_crl_parser_fuzzer.in/606fe2f10c22d77172998298d331155c5841fab6bin0 -> 169 bytes
-rw-r--r--fuzz/gnutls_x509_crl_parser_fuzzer.in/7ebae215244b160658517bde057f4a3653cbb32cbin0 -> 611 bytes
-rw-r--r--fuzz/gnutls_x509_crl_parser_fuzzer.in/c780cb0ee96a448f5af0e1bb09224674546c723abin0 -> 414 bytes
-rw-r--r--fuzz/gnutls_x509_crl_parser_fuzzer.repro/698e01fdc3f9a4c402424302768da75f2464a63fbin0 -> 554 bytes
-rw-r--r--fuzz/gnutls_x509_crq_parser_fuzzer.c51
-rw-r--r--fuzz/gnutls_x509_crq_parser_fuzzer.in/00da5667fcf94c6753aff43d0e8cf7a2c0e28233bin0 -> 924 bytes
-rw-r--r--fuzz/gnutls_x509_crq_parser_fuzzer.in/2ac00bb62cce4c5a85ba7d59d167e8cecbfb468dbin0 -> 690 bytes
-rw-r--r--fuzz/gnutls_x509_crq_parser_fuzzer.in/2e7defbf265715d2c2d5ea8bc464071ce19e667abin0 -> 590 bytes
-rw-r--r--fuzz/gnutls_x509_crq_parser_fuzzer.in/9a926fe3e62b45ba45705ef482a04289a942804fbin0 -> 830 bytes
-rw-r--r--fuzz/gnutls_x509_crq_parser_fuzzer.in/b63e395f3b22408f4c03a9ef249afedb48b64609bin0 -> 685 bytes
-rw-r--r--fuzz/gnutls_x509_crq_parser_fuzzer.in/d1e497073008aa907e2c79e236234eff7a21e43ebin0 -> 393 bytes
-rw-r--r--fuzz/gnutls_x509_crq_parser_fuzzer.in/d6cb1c75c08f4c6b76d4e37fefca392f403c7c4ebin0 -> 688 bytes
-rw-r--r--fuzz/gnutls_x509_crq_parser_fuzzer.repro/609921afff38ec5b52feb7e17aa3035bdce0e0d3bin0 -> 830 bytes
-rw-r--r--gl/override/m4/valgrind-tests.m4.diff2
m---------gnulib0
-rw-r--r--lib/Makefile.am6
-rw-r--r--lib/accelerated/aarch64/Makefile.am10
-rw-r--r--lib/accelerated/aarch64/aarch64-common.c8
-rw-r--r--lib/accelerated/aarch64/aes-gcm-aarch64.c1
-rw-r--r--lib/accelerated/cryptodev-gcm.c1
-rw-r--r--lib/accelerated/x86/Makefile.am2
-rw-r--r--lib/accelerated/x86/aes-gcm-x86-aesni.c12
-rw-r--r--lib/accelerated/x86/aes-gcm-x86-pclmul-avx.c1
-rw-r--r--lib/accelerated/x86/aes-gcm-x86-pclmul.c1
-rw-r--r--lib/accelerated/x86/aes-gcm-x86-ssse3.c12
-rw-r--r--lib/accelerated/x86/aes-padlock.c8
-rw-r--r--lib/accelerated/x86/aes-x86.h9
-rw-r--r--lib/accelerated/x86/aes-xts-x86-aesni.c160
-rw-r--r--lib/accelerated/x86/sha-padlock.c3
-rw-r--r--lib/accelerated/x86/x86-common.c48
-rw-r--r--lib/algorithms.h19
-rw-r--r--lib/algorithms/ciphers.c57
-rw-r--r--lib/algorithms/mac.c10
-rw-r--r--lib/algorithms/sign.c30
-rw-r--r--lib/auth/dhe_psk.c10
-rw-r--r--lib/auth/psk.c8
-rw-r--r--lib/auth/psk.h17
-rw-r--r--lib/auth/psk_passwd.c84
-rw-r--r--lib/auth/psk_passwd.h3
-rw-r--r--lib/auth/rsa_psk.c5
-rw-r--r--lib/auth/srp_passwd.c22
-rw-r--r--lib/cert-cred-rawpk.c13
-rw-r--r--lib/cert-cred-x509.c10
-rw-r--r--lib/cert-cred.c32
-rw-r--r--lib/cipher_int.c2
-rw-r--r--lib/cipher_int.h11
-rw-r--r--lib/constate.c16
-rw-r--r--lib/crypto-api.c193
-rw-r--r--lib/crypto-backend.h16
-rw-r--r--lib/crypto-selftests-pk.c690
-rw-r--r--lib/crypto-selftests.c895
-rw-r--r--lib/datum.h8
-rw-r--r--lib/ext/pre_shared_key.c30
-rw-r--r--lib/ext/session_ticket.c18
-rw-r--r--lib/file.c14
-rw-r--r--lib/fips.c17
-rw-r--r--lib/fips.h1
-rw-r--r--lib/global.c2
-rw-r--r--lib/gnutls.asn8
-rw-r--r--lib/gnutls.pc.in2
-rw-r--r--lib/gnutls_asn1_tab.c3
-rw-r--r--lib/gnutls_int.h54
-rw-r--r--lib/gthreads.h2
-rw-r--r--lib/handshake-checks.c16
-rw-r--r--lib/handshake-tls13.c16
-rw-r--r--lib/handshake.c17
-rw-r--r--lib/hash_int.c4
-rw-r--r--lib/hash_int.h9
-rw-r--r--lib/hello_ext.c27
-rw-r--r--lib/hello_ext.h4
-rw-r--r--lib/includes/gnutls/abstract.h9
-rw-r--r--lib/includes/gnutls/crypto.h18
-rw-r--r--lib/includes/gnutls/gnutls.h.in69
-rw-r--r--lib/includes/gnutls/pkcs7.h4
-rw-r--r--lib/includes/gnutls/x509.h6
-rw-r--r--lib/kx.c74
-rw-r--r--lib/kx.h7
-rw-r--r--lib/libgnutls.map30
-rw-r--r--lib/minitasn1/.gitignore2
-rw-r--r--lib/minitasn1/Makefile.am4
-rw-r--r--lib/minitasn1/coding.c1347
-rw-r--r--lib/minitasn1/decoding.c2369
-rw-r--r--lib/minitasn1/element.c1111
-rw-r--r--lib/minitasn1/element.h40
-rw-r--r--lib/minitasn1/errors.c99
-rw-r--r--lib/minitasn1/gstr.c74
-rw-r--r--lib/minitasn1/gstr.h42
-rw-r--r--lib/minitasn1/int.h222
-rw-r--r--lib/minitasn1/libtasn1.h405
-rw-r--r--lib/minitasn1/parser_aux.c1097
-rw-r--r--lib/minitasn1/parser_aux.h158
-rw-r--r--lib/minitasn1/structure.c1197
-rw-r--r--lib/minitasn1/structure.h40
-rw-r--r--lib/minitasn1/version.c51
-rw-r--r--lib/nettle/Makefile.am164
-rw-r--r--lib/nettle/backport/cfb8.c123
-rw-r--r--lib/nettle/backport/cfb8.h100
-rw-r--r--lib/nettle/backport/cmac.c217
-rw-r--r--lib/nettle/backport/cmac.h139
-rw-r--r--lib/nettle/backport/xts.c273
-rw-r--r--lib/nettle/backport/xts.h122
-rw-r--r--lib/nettle/cipher.c335
-rw-r--r--lib/nettle/ecc-gost-curve.h (renamed from lib/nettle/gost/ecc-gost-curve.h)20
-rw-r--r--lib/nettle/gost/acpkm.c83
-rw-r--r--lib/nettle/gost/acpkm.h68
-rw-r--r--lib/nettle/gost/cmac-kuznyechik.c58
-rw-r--r--lib/nettle/gost/cmac-magma.c59
-rw-r--r--lib/nettle/gost/cmac.h103
-rw-r--r--lib/nettle/gost/ecc-gost-hash.c2
-rw-r--r--lib/nettle/gost/ecc-gost256cpa-32.h1076
-rw-r--r--lib/nettle/gost/ecc-gost256cpa-64.h1076
-rw-r--r--lib/nettle/gost/ecc-gost256cpa.c146
-rw-r--r--lib/nettle/gost/ecc-gost512a-32.h1086
-rw-r--r--lib/nettle/gost/ecc-gost512a-64.h564
-rw-r--r--lib/nettle/gost/ecc-gost512a.c146
-rw-r--r--lib/nettle/gost/ecc-gostdsa-sign.c104
-rw-r--r--lib/nettle/gost/ecc-gostdsa-verify.c133
-rw-r--r--lib/nettle/gost/ecc-internal.h298
-rw-r--r--lib/nettle/gost/gmp-glue.h76
-rw-r--r--lib/nettle/gost/gost-point-mul-g.c58
-rw-r--r--lib/nettle/gost/gost-point.c112
-rw-r--r--lib/nettle/gost/gost28147.c23
-rw-r--r--lib/nettle/gost/gost28147.h3
-rw-r--r--lib/nettle/gost/gostdsa-keygen.c63
-rw-r--r--lib/nettle/gost/gostdsa-mask.c6
-rw-r--r--lib/nettle/gost/gostdsa-sign.c77
-rw-r--r--lib/nettle/gost/gostdsa-verify.c81
-rw-r--r--lib/nettle/gost/gostdsa-vko.c78
-rw-r--r--lib/nettle/gost/gostdsa.h114
-rw-r--r--lib/nettle/gost/gostdsa2.h (renamed from lib/nettle/gost/pbkdf2-hmac-gosthash94.c)42
-rw-r--r--lib/nettle/gost/kuznyechik.c244
-rw-r--r--lib/nettle/gost/kuznyechik.h80
-rw-r--r--lib/nettle/gost/kuztable.h12503
-rw-r--r--lib/nettle/gost/magma.c92
-rw-r--r--lib/nettle/gost/magma.h78
-rw-r--r--lib/nettle/gost/nettle-write.h3
-rw-r--r--lib/nettle/gost/pbkdf2-gost.h82
-rw-r--r--lib/nettle/gost/pbkdf2-hmac-streebog.c71
-rw-r--r--lib/nettle/gost/write-le32.c69
-rw-r--r--lib/nettle/int/block8.h61
-rw-r--r--lib/nettle/mac.c122
-rw-r--r--lib/nettle/nettle-alloca.h (renamed from lib/nettle/gost/nettle-internal.h)5
-rw-r--r--lib/nettle/pk.c86
-rw-r--r--lib/nettle/sysrng-bcrypt.c88
-rw-r--r--lib/pkcs11.c132
-rw-r--r--lib/pkcs11_int.h5
-rw-r--r--lib/pkcs11_write.c15
-rw-r--r--lib/priority.c10
-rw-r--r--lib/psk.c185
-rw-r--r--lib/pubkey.c146
-rw-r--r--lib/random.c4
-rw-r--r--lib/secrets.c45
-rw-r--r--lib/session_pack.c11
-rw-r--r--lib/state.c58
-rw-r--r--lib/stek.c25
-rw-r--r--lib/str-idna.c82
-rw-r--r--lib/str.h7
-rw-r--r--lib/system/keys-win.c326
-rw-r--r--lib/tls-sig.c4
-rw-r--r--lib/tls13-sig.c4
-rw-r--r--lib/tls13/finished.c2
-rw-r--r--lib/verify-tofu.c34
-rw-r--r--lib/x509/common.c91
-rw-r--r--lib/x509/common.h14
-rw-r--r--lib/x509/crl.c13
-rw-r--r--lib/x509/dn.c49
-rw-r--r--lib/x509/email-verify.c11
-rw-r--r--lib/x509/hostname-verify.c11
-rw-r--r--lib/x509/ocsp.c31
-rw-r--r--lib/x509/output.c80
-rw-r--r--lib/x509/pkcs12.c45
-rw-r--r--lib/x509/pkcs7-crypt.c46
-rw-r--r--lib/x509/pkcs7-output.c65
-rw-r--r--lib/x509/pkcs7.c2
-rw-r--r--lib/x509/privkey_pkcs8.c1
-rw-r--r--lib/x509/verify-high.c49
-rw-r--r--lib/x509/verify-high.h6
-rw-r--r--lib/x509/verify-high2.c6
-rw-r--r--lib/x509/verify.c140
-rw-r--r--lib/x509/x509.c19
-rw-r--r--lib/x509/x509_int.h33
-rw-r--r--m4/hooks.m46
-rw-r--r--src/args-std.def.in2
-rw-r--r--src/benchmark-cipher.c8
-rw-r--r--src/certtool-common.c38
-rw-r--r--src/certtool.c122
-rw-r--r--src/cli-args.def17
-rw-r--r--src/cli-debug.c10
-rw-r--r--src/cli.c119
-rw-r--r--src/ocsptool.c17
-rw-r--r--src/psk.c46
-rw-r--r--src/serv-args.def2
-rw-r--r--src/serv.c14
-rw-r--r--src/srptool.c98
-rw-r--r--src/tests.c57
-rw-r--r--src/tests.h2
-rw-r--r--tests/Makefile.am12
-rw-r--r--tests/aead-cipher-vec.c34
-rw-r--r--tests/atfork.c5
-rwxr-xr-xtests/cert-reencoding.sh2
-rw-r--r--tests/cert-tests/Makefile.am2
-rwxr-xr-xtests/cert-tests/alt-chain2
-rwxr-xr-xtests/cert-tests/cert-critical2
-rwxr-xr-xtests/cert-tests/cert-non-digits-time2
-rwxr-xr-xtests/cert-tests/certtool14
-rwxr-xr-xtests/cert-tests/certtool-eddsa2
-rwxr-xr-xtests/cert-tests/certtool-rsa-pss2
-rwxr-xr-xtests/cert-tests/certtool-verify-profiles2
-rwxr-xr-xtests/cert-tests/crl2
-rwxr-xr-xtests/cert-tests/crq2
-rw-r--r--tests/cert-tests/data/commonName.cer52
-rw-r--r--tests/cert-tests/data/crl-demo3.pem2
-rw-r--r--tests/cert-tests/data/full.p7b.out8
-rw-r--r--tests/cert-tests/data/grfc.crt6
-rw-r--r--tests/cert-tests/data/long-oids.pem2
-rw-r--r--tests/cert-tests/data/openssl-keyid.p7b.out8
-rw-r--r--tests/cert-tests/data/openssl.p7b.out8
-rw-r--r--tests/cert-tests/data/single-ca.p7b.out8
-rwxr-xr-xtests/cert-tests/inhibit-anypolicy2
-rwxr-xr-xtests/cert-tests/invalid-sig43
-rwxr-xr-xtests/cert-tests/krb5-test2
-rwxr-xr-xtests/cert-tests/md5-test2
-rwxr-xr-xtests/cert-tests/name-constraints2
-rwxr-xr-xtests/cert-tests/othername-test2
-rwxr-xr-xtests/cert-tests/pkcs1-pad2
-rwxr-xr-xtests/cert-tests/pkcs12-gost5
-rwxr-xr-xtests/cert-tests/pkcs74
-rwxr-xr-xtests/cert-tests/pkcs7-cat2
-rwxr-xr-xtests/cert-tests/pkcs7-constraints2
-rwxr-xr-xtests/cert-tests/pkcs7-constraints22
-rwxr-xr-xtests/cert-tests/pkcs7-eddsa4
-rwxr-xr-xtests/cert-tests/pkcs7-list-sign2
-rwxr-xr-xtests/cert-tests/rsa-pss-pad2
-rwxr-xr-xtests/cert-tests/sha3-test2
-rwxr-xr-xtests/cert-tests/smime2
-rwxr-xr-xtests/cert-tests/template-exts-test2
-rwxr-xr-xtests/cert-tests/template-test2
-rwxr-xr-xtests/cert-tests/tlsfeature-test2
-rwxr-xr-xtests/certtool-pkcs11.sh2
-rw-r--r--tests/data/test1.cat.out6
-rw-r--r--tests/data/test2.cat.out4
-rw-r--r--tests/dtls_hello_random_value.c336
-rwxr-xr-xtests/gnutls-cli-debug.sh2
-rwxr-xr-xtests/gnutls-cli-invalid-crl.sh2
-rwxr-xr-xtests/gnutls-cli-self-signed.sh2
-rw-r--r--tests/kdf-api.c160
-rw-r--r--tests/keylog-func.c351
-rw-r--r--tests/missingissuer.c241
-rw-r--r--tests/missingissuer_aia.c255
-rw-r--r--tests/mpi.c5
-rwxr-xr-xtests/ocsp-tests/ocsp-load-chain2
-rwxr-xr-xtests/ocsp-tests/ocsp-must-staple-connection2
-rwxr-xr-xtests/ocsp-tests/ocsp-test2
-rwxr-xr-xtests/ocsp-tests/ocsp-tls-connection2
-rw-r--r--tests/pkcs11/pkcs11-ec-privkey-test.c42
-rw-r--r--tests/pkcs11/pkcs11-eddsa-privkey-test.c43
-rw-r--r--tests/pkcs12_s2k.c5
-rwxr-xr-xtests/pkcs7-cat.sh2
-rw-r--r--tests/prf.c6
-rw-r--r--tests/psk-file.c241
-rw-r--r--tests/psk.passwd3
-rw-r--r--tests/pskself2.c347
-rw-r--r--tests/resume-with-previous-stek.c4
-rwxr-xr-xtests/rsa-md5-collision/rsa-md5-collision.sh2
-rw-r--r--tests/scripts/common.sh7
-rwxr-xr-xtests/server-multi-keys.sh2
-rwxr-xr-xtests/server-weak-keys.sh2
-rw-r--r--tests/sign-is-secure.c2
-rw-r--r--tests/slow/cipher-api-test.c2
-rw-r--r--tests/slow/cipher-openssl-compat.c1
-rw-r--r--tests/slow/hash-large.c2
-rw-r--r--tests/srp.c22
-rw-r--r--tests/status-request-revoked.c11
-rwxr-xr-xtests/suite/multi-ticket-reception.sh8
-rw-r--r--tests/suite/prime-check.c1
-rwxr-xr-xtests/suite/testcompat-main-openssl73
-rwxr-xr-xtests/suite/testcompat-oldgnutls.sh2
-rwxr-xr-xtests/suite/testcompat-openssl.sh2
-rwxr-xr-xtests/suite/testcompat-polarssl.sh2
-rwxr-xr-xtests/suite/testcompat-tls13-openssl.sh2
-rw-r--r--tests/suite/tls-fuzzer/gnutls-cert.json2
-rw-r--r--tests/suite/tls-fuzzer/gnutls-nocert-tls13.json18
m---------tests/suite/tls-fuzzer/tlsfuzzer0
m---------tests/suite/tls-fuzzer/tlslite-ng0
-rw-r--r--tests/suppressions.valgrind7
-rwxr-xr-xtests/system-override-profiles.sh2
-rwxr-xr-xtests/system-override-tls.sh2
-rw-r--r--tests/test-chains-issuer-aia.h107
-rw-r--r--tests/test-chains-issuer.h179
-rw-r--r--tests/test-chains.h114
-rw-r--r--tests/tls-session-ext-register.c9
-rw-r--r--tests/tls13/anti_replay.c5
-rw-r--r--tests/tls13/no-auto-send-ticket.c314
-rw-r--r--tests/tls13/prf-early.c8
-rwxr-xr-xtests/tls13/prf-early.sh2
-rw-r--r--tests/tls13/prf.c6
-rw-r--r--tests/tls_hello_random_value.c267
-rw-r--r--tests/utils.h8
-rw-r--r--tests/x509cert-dntypes.c134
335 files changed, 28303 insertions, 21462 deletions
diff --git a/.gitignore b/.gitignore
index 34d9af38a5..2b23292693 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
+/.#configure.ac
*~
/ABOUT-NLS
AUTHORS
@@ -188,7 +189,8 @@ fuzz/*_fuzzer
*.gcda
*.gcno
*.gcov
-gl
+/gl/*
+!/gl/override
/GNUmakefile
GnuTLS-*-coverage/
gnutls-*.tar.*
@@ -207,6 +209,7 @@ guile/src/Makefile.in
guile/tests/Makefile
guile/tests/Makefile.in
INSTALL
+ldd.sh
lib/accelerated/aarch64/libaarch64.la
lib/accelerated/libaccelerated.la
lib/accelerated/x86/libx86.la
@@ -231,7 +234,8 @@ lib/minitasn1/libminitasn1.la
lib/minitasn1/Makefile
lib/minitasn1/Makefile.in
lib/nettle/libcrypto.la
-lib/nettle/curve448
+lib/nettle/backport
+lib/nettle/ecc
lib/opencdk/libminiopencdk.la
lib/opencdk/Makefile
lib/opencdk/Makefile.in
@@ -340,6 +344,7 @@ tests/atfork
tests/auto-verify
tests/base64
tests/base64-raw
+tests/buffer
tests/cert
tests/cert-key-exchange
tests/cert-status
@@ -349,6 +354,7 @@ tests/certificate_set_x509_crl
tests/certuniqueid
tests/chainverify
tests/chainverify-unsorted
+tests/cipher-alignment
tests/cipher-test
tests/client
tests/client-fastopen
@@ -372,6 +378,7 @@ tests/cve-2009-1416
tests/dane
tests/dane-strcodes
tests/datefudge-check
+tests/dh-compute
tests/dh-params
tests/dhepskself
tests/dhex509self
@@ -382,6 +389,7 @@ tests/dtls-client-with-seccomp
tests/dtls-etm
tests/dtls-handshake-versions
tests/dtls-max-record
+tests/dtls-pthread
tests/dtls-record-check
tests/dtls-rehandshake-anon
tests/dtls-rehandshake-cert
@@ -398,9 +406,11 @@ tests/dtls1.0-cert-key-exchange
tests/dtls1.2-cert-key-exchange
tests/dtls10-cert-key-exchange
tests/dtls12-cert-key-exchange
+tests/dtls_hello_random_value
tests/duplicate-extensions
tests/eagain
tests/eagain-auto-auth
+tests/ecdh-compute
tests/empty_retrieve_function
tests/fallback-scsv
tests/finished
@@ -410,6 +420,7 @@ tests/fips-test
tests/gc
tests/global-init
tests/global-init-override
+tests/gnutls-ids
tests/gnutls-strcodes
tests/gnutls_ext_raw_parse
tests/gnutls_ext_raw_parse_dtls
@@ -436,6 +447,7 @@ tests/insecure_key
tests/iov
tests/ip-check
tests/ip-utils
+tests/kdf-api
tests/key-export-pkcs8
tests/key-id/Makefile
tests/key-id/Makefile.in
@@ -449,6 +461,7 @@ tests/key-usage-ecdhe-rsa
tests/key-usage-rsa
tests/keygen
tests/keylog-env
+tests/keylog-func
tests/libpkcs11mock1.la
tests/libpkcs11mock2.la
tests/libutils.la
@@ -516,6 +529,8 @@ tests/mini-x509-ipaddr
tests/mini-x509-kx
tests/mini-x509-rehandshake
tests/mini-xssl
+tests/missingissuer
+tests/missingissuer_aia
tests/moredn
tests/mpi
tests/multi-alerts
@@ -532,6 +547,7 @@ tests/ocsp
tests/ocsp-filename-memleak
tests/ocsp-resp
tests/oids
+tests/openconnect-dtls12
tests/openpgp-auth
tests/openpgp-auth2
tests/openpgp-callback
@@ -612,6 +628,7 @@ tests/privkey-keygen
tests/privkey-verify-broken
tests/psk-file
tests/pskself
+tests/pskself2
tests/pubkey-import-export
tests/random-art
tests/rawpk-api
@@ -638,6 +655,8 @@ tests/resume-with-previous-stek
tests/resume-with-record-size-limit
tests/resume-with-stek-expiration
tests/resume-x509
+tests/rfc7633-missing
+tests/rfc7633-ok
tests/rng-fork
tests/rng-no-onload
tests/rng-op-key
@@ -660,6 +679,7 @@ tests/safe-renegotiation/srn2
tests/safe-renegotiation/srn3
tests/sanity-cpp
tests/sec-params
+tests/secret-hook
tests/send-client-cert
tests/send-data-befor
tests/send-data-before-handshake
@@ -687,6 +707,7 @@ tests/set_x509_key_file_ocsp_multi
tests/set_x509_key_file_ocsp_multi2
tests/set_x509_key_mem
tests/set_x509_key_utf8
+tests/set_x509_ocsp_multi_cli
tests/set_x509_ocsp_multi_invalid
tests/set_x509_ocsp_multi_pem
tests/set_x509_ocsp_multi_unknown
@@ -699,10 +720,12 @@ tests/sign-md5-rep
tests/sign-pk-api
tests/sign-verify
tests/sign-verify-data
+tests/sign-verify-data-newapi
tests/sign-verify-deterministic
tests/sign-verify-ed25519-rfc8080
tests/sign-verify-ext
tests/sign-verify-ext4
+tests/sign-verify-newapi
tests/simple
tests/slow/cipher-api-test
tests/slow/cipher-compat
@@ -716,6 +739,8 @@ tests/slow/hash-large
tests/slow/keygen
tests/slow/mac-override
tests/softhsm-*.db/
+tests/softhsm-neg-no-key.config
+tests/softhsm-post-handshake-with-cert-pkcs11.config
tests/spki
tests/spki-abstract
tests/srp
@@ -761,7 +786,10 @@ tests/suite/testpkcs11.debug
tests/suite/testtpm.sh
tests/suite/tlslite
tests/suite/x509paths/X509tests
+tests/system-override-hash
+tests/system-override-sig
tests/system-prio-file
+tests/time
tests/tls-client-with-seccomp
tests/tls-crt_type-neg
tests/tls-etm
@@ -771,6 +799,7 @@ tests/tls-force-etm
tests/tls-max-record
tests/tls-neg-ext-key
tests/tls-neg-ext4-key
+tests/tls-pthread
tests/tls-record-size-limit
tests/tls-record-size-limit-asym
tests/tls-rehandshake-anon
@@ -821,6 +850,7 @@ tests/tls13-rehandshake-cert
tests/tls13-resume-psk
tests/tls13-resume-x509
tests/tls13-server-kx-neg
+tests/tls13-without-timeout-func
tests/tls13/anti_replay
tests/tls13/change_cipher_spec
tests/tls13/cookie
@@ -831,6 +861,7 @@ tests/tls13/key_share
tests/tls13/key_update
tests/tls13/key_update_multiple
tests/tls13/multi-ocsp
+tests/tls13/no-auto-send-ticket
tests/tls13/no-psk-exts
tests/tls13/ocsp-client
tests/tls13/post-handshake-with-cert
@@ -845,6 +876,7 @@ tests/tls13/psk-dumbfw
tests/tls13/psk-ext
tests/tls13/supported_versions
tests/tls13/tls12-no-tls13-exts
+tests/tls_hello_random_value
tests/tlsext-decoding
tests/tlsfeature-crt
tests/tlsfeature-ext
@@ -864,9 +896,11 @@ tests/x509-dn
tests/x509-dn-decode
tests/x509-dn-decode-compat
tests/x509-extensions
+tests/x509-server-verify
tests/x509-verify-with-crl
tests/x509_altname
tests/x509cert
+tests/x509cert-dntypes
tests/x509cert-invalid
tests/x509cert-tl
tests/x509dn
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5c1766de66..628dd367b1 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -7,7 +7,7 @@ stages:
# name to allow expiration of old caches.
cache:
- key: "$CI_JOB_NAME-ver14"
+ key: "$CI_JOB_NAME-ver16"
paths:
- cache/
@@ -42,7 +42,7 @@ variables:
FEDORA_BUILD: buildenv-fedora31
MINGW_BUILD: buildenv-mingw
ALPINE_BASE_BUILD: buildenv-alpine-base
- CPPCHECK_OPTIONS: "--enable=warning --enable=style --enable=performance --enable=portability --std=c99 --suppressions-list=devel/cppcheck.suppressions -i lib/nettle/curve448 --template='{id}:{file}:{line},{severity},{message}'"
+ CPPCHECK_OPTIONS: "--enable=warning --enable=style --enable=performance --enable=portability --std=c99 --suppressions-list=devel/cppcheck.suppressions --template='{id}:{file}:{line},{severity},{message}'"
GET_SOURCES_ATTEMPTS: "3"
##################################################
@@ -111,6 +111,7 @@ abi/coverage:
- make pic-check
- make -j$CHECKJOBS check
- make local-code-coverage-output || true
+ - if objdump -R lib/.libs/libgnutls.so | grep INTERNAL ; then false ; fi
tags:
- shared
- linux
@@ -289,7 +290,7 @@ static-analyzers.Fedora.x86_64:
- scan-build --status-bugs -o scan-build-lib make -j$BUILDJOBS -C libdane
- make -j$BUILDJOBS -C src/gl
- scan-build --status-bugs -o scan-build-lib make -j$BUILDJOBS -C src
- - cppcheck --force -q -Ilib/include -Igl/ -Ilib/ -I. --error-exitcode=1 lib/ -i lib/unistring -i lib/minitasn1 -i lib/nettle/backport -j2 $CPPCHECK_OPTIONS
+ - cppcheck --force -q -Ilib/include -Igl/ -Ilib/ -I. --error-exitcode=1 lib/ -i lib/unistring -i lib/minitasn1 -i lib/nettle/backport -i lib/nettle/ecc -j2 $CPPCHECK_OPTIONS
- cppcheck --force -q -Ilib/include -Igl/ -Ilibdane/ -I. --error-exitcode=1 libdane/ -j2 $CPPCHECK_OPTIONS
after_script:
- /bin/true
@@ -389,6 +390,85 @@ MinGW64.DLLs:
- win64-build/
retry: 1
+MinGW64.DLLs.Vista+:
+ stage: stage1-testing
+ image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$MINGW_BUILD
+ script:
+ - mount -t binfmt_misc binfmt_misc /proc/sys/fs/binfmt_misc
+ - echo ':DOSWin:M::MZ::/usr/bin/wine:' > /proc/sys/fs/binfmt_misc/register
+ - ./bootstrap
+ - export CC="ccache x86_64-w64-mingw32-gcc"
+ # Target Vista instead of XP, currently the default in mingw
+ - export CPPFLAGS="-D_WIN32_WINNT=0x600"
+ - export WINEPATH=/usr/x86_64-w64-mingw32/sys-root/mingw/bin
+ - dash ./configure --disable-gcc-warnings --host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --cache-file cache/config.cache --with-included-libtasn1 --disable-guile --disable-nls --with-included-unistring --enable-local-libopts --disable-non-suiteb-curves --disable-full-test-suite --disable-doc
+ - mingw64-make -j$BUILDJOBS
+ - mingw64-make -j$BUILDJOBS -C tests check
+# Combine generated apps and DLLs.
+#libwinpthread is required by libgcc
+#libffi is required by libp11-kit
+ - mkdir -p win64-build/bin win64-build/lib/includes
+ - cp lib/.libs/*.dll src/.libs/*.exe win64-build/bin
+ - x86_64-w64-mingw32-strip --strip-unneeded win64-build/bin/*.dll
+ - x86_64-w64-mingw32-strip win64-build/bin/*.exe
+ - cp /usr/x86_64-w64-mingw32/sys-root/mingw/bin/libp11-*.dll win64-build/bin
+ - cp /usr/x86_64-w64-mingw32/sys-root/mingw/bin/libnettle-*.dll win64-build/bin
+ - cp /usr/x86_64-w64-mingw32/sys-root/mingw/bin/libhogweed-*.dll win64-build/bin
+ - cp /usr/x86_64-w64-mingw32/sys-root/mingw/bin/libgmp-*.dll win64-build/bin
+ - cp /usr/x86_64-w64-mingw32/sys-root/mingw/bin/libgcc*.dll win64-build/bin
+ - cp /usr/x86_64-w64-mingw32/sys-root/mingw/bin/libwinpthread*.dll win64-build/bin
+ - cp /usr/x86_64-w64-mingw32/sys-root/mingw/bin/libidn2-*.dll win64-build/bin
+ - cp /usr/x86_64-w64-mingw32/sys-root/mingw/bin/libffi-*.dll win64-build/bin
+ - cp lib/.libs/*.a lib/*.def lib/gnutls.pc win64-build/lib
+ - cp lib/includes/gnutls/*.h win64-build/lib/includes
+ tags:
+ - shared
+ - docker
+ - linux
+ only:
+ - tags
+ artifacts:
+ name: "${CI_PROJECT_NAME}-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
+ paths:
+ - win64-build/
+ retry: 1
+
+MinGW64.Vista+:
+ stage: stage1-testing
+ image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$MINGW_BUILD
+ script:
+ - ./bootstrap
+ - export CC="ccache x86_64-w64-mingw32-gcc"
+ # Target Vista instead of XP, currently the default in mingw
+ - export CPPFLAGS="-D_WIN32_WINNT=0x600"
+ - export WINEPATH=/usr/x86_64-w64-mingw32/sys-root/mingw/bin
+ - mount -t binfmt_misc binfmt_misc /proc/sys/fs/binfmt_misc
+ - echo ':DOSWin:M::MZ::/usr/bin/wine64:' > /proc/sys/fs/binfmt_misc/register
+ - mkdir -p build
+ - cd build
+ - dash ../configure --disable-gcc-warnings --host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --cache-file ../cache/config.cache --with-included-libtasn1 --disable-guile --disable-nls --with-included-unistring --enable-local-libopts --disable-full-test-suite --disable-non-suiteb-curves --disable-doc
+ # generate the certtool autogen file to check whether later compilation will modify it
+ - mingw64-make -j$BUILDJOBS -C src certtool-args.c.bak
+ - mingw64-make -j$BUILDJOBS
+ - mingw64-make -j$CHECKJOBS -C tests check
+ - cd ..
+ # since we use --enable-local-libopts the generated files must equal the .bak
+ - cmp build/src/certtool-args.c build/src/certtool-args.c.bak || false
+ tags:
+ - shared
+ - docker
+ - linux
+ except:
+ - tags
+ artifacts:
+ expire_in: 1 week
+ when: on_failure
+ paths:
+ - build/*.log
+ - build/tests/*.log
+ - build/tests/*/*.log
+ retry: 1
+
MinGW64:
stage: stage1-testing
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$MINGW_BUILD
@@ -675,3 +755,35 @@ nettle-master.Fedora:
- tests/*/*.log
- tests/suite/*/*.log
retry: 1
+
+nettle-master-minigmp.Fedora:
+ stage: stage1-testing
+ image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
+ script:
+ - git clone --depth 1 --branch master https://gitlab.com/gnutls/nettle.git nettle-git
+ - export NETTLE_DIR=${PWD}/nettle
+ - pushd nettle-git
+ - ./.bootstrap
+ - ./configure --disable-documentation --enable-mini-gmp --prefix=$NETTLE_DIR
+ - make -j$BUILDJOBS
+ - make -j$BUILDJOBS install
+ - popd
+ - SUBMODULE_NOFETCH=1 ./bootstrap
+ - PKG_CONFIG_PATH=$NETTLE_DIR/lib64/pkgconfig dash ./configure --cache-file cache/config.cache --disable-gcc-warnings --disable-doc --disable-guile --disable-full-test-suite
+ - make -j$BUILDJOBS
+ - PKG_CONFIG_PATH=$NETTLE_DIR/lib64/pkgconfig LD_LIBRARY_PATH=$NETTLE_DIR/lib64 make -j$CHECKJOBS check
+ tags:
+ - shared
+ - linux
+ except:
+ - tags
+ artifacts:
+ expire_in: 1 week
+ when: on_failure
+ paths:
+ - ./*.log
+ - fuzz/*.log
+ - tests/*.log
+ - tests/*/*.log
+ - tests/suite/*/*.log
+ retry: 1
diff --git a/.gitmodules b/.gitmodules
index 672f483a31..911c918895 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -16,3 +16,6 @@
[submodule "devel/nettle"]
path = devel/nettle
url = https://gitlab.com/gnutls/nettle.git
+[submodule "devel/libtasn1"]
+ path = devel/libtasn1
+ url = https://gitlab.com/gnutls/libtasn1.git
diff --git a/.lgtm.yml b/.lgtm.yml
index 53c26acaad..be8dfe1e2e 100644
--- a/.lgtm.yml
+++ b/.lgtm.yml
@@ -2,15 +2,9 @@ extraction:
cpp:
configure:
command:
+ - sed 's/--with-tests/--without-tests/g' -i bootstrap.conf
- "./bootstrap --no-git --skip-po --no-bootstrap-sync --gnulib-srcdir=gnulib"
- - "wget -O nettle-master.zip https://git.lysator.liu.se/nettle/nettle/-/archive/master/nettle-master.zip?foo=`date +%Y%m%d`"
- - "unzip nettle-master.zip"
- - "mv nettle-master nettle"
- - "cd nettle"
- - "bash .bootstrap"
- - "./configure --enable-mini-gmp --disable-documentation"
- - "make"
- - "cd .."
- - "PKG_CONFIG_PATH=\"`pwd`/nettle\" LDFLAGS=\"-L`pwd`/nettle\" ./configure --disable-tests --disable-documentation"
+ - "./configure --disable-tests --disable-doc --disable-gtk-doc --disable-dependency-tracking"
index:
- build_command: "LD_LIBRARY_PATH=\"`pwd`/nettle/.lib\" make"
+ build_command:
+ - "make -j4"
diff --git a/.mailmap b/.mailmap
index 0a00a34071..e44ed4e4e0 100644
--- a/.mailmap
+++ b/.mailmap
@@ -19,3 +19,4 @@ Stefan Berger <stefanb@linux.ibm.com> <stefanb@linux.vnet.ibm.com>
Stef Walter <stefw@redhat.com> <stefw@collabora.co.uk>
Tim Rühsen <tim.ruehsen@gmx.de> Tim Ruehsen <tim.ruehsen@gmx.de>
Tom Vrancken <dev@tomvrancken.nl> <email@tomvrancken.nl>
+Dmitry Baryshkov <dbaryshkov@gmail.com>
diff --git a/.travis.yml b/.travis.yml
index 5673e2fea2..02f641b6a4 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,6 +1,16 @@
os:
- osx
+osx_image:
+ # MacOS X 10.15.4
+ - xcode11.5
+ # MacOS X 10.14.6
+ - xcode11.3
+ # MacOS X 10.13
+ - xcode10.1
+ # MacOS X 10.13, Default
+ - xcode9.4
+
language: c
compiler:
- clang
@@ -17,7 +27,7 @@ notifications:
before_install:
- if [[ "$TRAVIS_OS_NAME" = "osx" ]]; then
brew update;
- for pkg in openssl autoconf automake autogen libtool nettle p11-kit libtasn1 gettext;do
+ for pkg in openssl autoconf automake autogen libtool nettle p11-kit libtasn1 gettext bison;do
brew install $pkg || true;
done;
for pkg in nettle wget p11-kit libtasn1;do
@@ -26,12 +36,14 @@ before_install:
fi
script:
- - PATH=/usr/local/opt/gettext/bin:$PATH ./bootstrap
- - PATH=/usr/local/opt/gettext/bin:$PATH ./configure --disable-full-test-suite --disable-valgrind-tests --disable-doc --disable-guile --disable-dependency-tracking
- - make -j$(sysctl -n hw.ncpu)
+ - export PATH="/usr/local/opt/gettext/bin:$PATH"
+ - export PATH="/usr/local/opt/bison/bin:$PATH"
+ - ./bootstrap
+ - ./configure --disable-full-test-suite --disable-valgrind-tests --disable-doc --disable-guile --disable-dependency-tracking
+ - make -j$(sysctl -n hw.ncpu) || make -j$(sysctl -n hw.ncpu) V=1
- make -j$(sysctl -n hw.ncpu) check gl_public_submodule_commit=
after_failure:
- find . -name 'test-suite.log' -execdir grep -il "FAILED" {} \; -exec echo {} \; -exec cat {} \;
- for i in tests/*.log fuzz/*.log;do echo "" && echo $i && cat $i;done
-
+ - cat config.log
diff --git a/NEWS b/NEWS
index 25e52b59cf..4624e200f7 100644
--- a/NEWS
+++ b/NEWS
@@ -5,54 +5,136 @@ Copyright (C) 2000-2016 Free Software Foundation, Inc.
Copyright (C) 2013-2019 Nikos Mavrogiannopoulos
See the end for copying conditions.
-* Version 3.6.12 (unreleased)
+* Version 3.7.0 (unreleased)
-** libgnutls: Introduced flag of gnutls_session_get_flags() to identify
- sessions that client request OCSP status request (#829).
+** libgnutls: Added a new API that provides a callback function to
+ retrieve missing certificates from incomplete certificate chains (#202).
-** libgnutls: Introduced the gnutls_ocsp_req_const_t which is compatible
- with gnutls_ocsp_req_t but const.
+** API and ABI modifications:
+gnutls_x509_trust_list_set_getissuer_function: Added
-** libgnutls: Reject certificates with invalid time fields. That is we reject
- certificates with invalid characters in Time fields, or invalid time formatting
- To continue accepting the invalid form compile with --disable-strict-der-time
- (#207, #870).
+* Version 3.6.14 (released 2020-06-03)
+
+** libgnutls: Fixed insecure session ticket key construction, since 3.6.4.
+ The TLS server would not bind the session ticket encryption key with a
+ value supplied by the application until the initial key rotation, allowing
+ attacker to bypass authentication in TLS 1.3 and recover previous
+ conversations in TLS 1.2 (#1011).
+ [GNUTLS-SA-2020-06-03, CVSS: high]
+
+** libgnutls: Fixed handling of certificate chain with cross-signed
+ intermediate CA certificates (#1008).
+
+** libgnutls: Fixed reception of empty session ticket under TLS 1.2 (#997).
+
+** libgnutls: gnutls_x509_crt_print() is enhanced to recognizes commonName
+ (2.5.4.3), decodes certificate policy OIDs (!1245), and prints Authority
+ Key Identifier (AKI) properly (#989, #991).
+
+** certtool: PKCS #7 attributes are now printed with symbolic names (!1246).
+
+** libgnutls: Added several improvements on Windows Vista and later releases
+ (!1257, !1254, !1256). Most notably the system random number generator now
+ uses Windows BCrypt* API if available (!1255).
+
+** libgnutls: Use accelerated AES-XTS implementation if possible (!1244).
+ Also both accelerated and non-accelerated implementations check key block
+ according to FIPS-140-2 IG A.9 (!1233).
+
+** libgnutls: Added support for AES-SIV ciphers (#463).
+
+** libgnutls: Added support for 192-bit AES-GCM cipher (!1267).
+
+** libgnutls: No longer use internal symbols exported from Nettle (!1235)
+
+** API and ABI modifications:
+GNUTLS_CIPHER_AES_128_SIV: Added
+GNUTLS_CIPHER_AES_256_SIV: Added
+GNUTLS_CIPHER_AES_192_GCM: Added
+gnutls_pkcs7_print_signature_info: Added
+
+* Version 3.6.13 (released 2020-03-31)
+
+** libgnutls: Fix a DTLS-protocol regression (caused by TLS1.3 support), since 3.6.3.
+ The DTLS client would not contribute any randomness to the DTLS negotiation,
+ breaking the security guarantees of the DTLS protocol (#960)
+ [GNUTLS-SA-2020-03-31, CVSS: high]
+
+** libgnutls: Added new APIs to access KDF algorithms (#813).
+
+** libgnutls: Added new callback gnutls_keylog_func that enables a custom
+ logging functionality.
+
+** libgnutls: Added support for non-null terminated usernames in PSK
+ negotiation (#586).
+
+** gnutls-cli-debug: Improved support for old servers that only support
+ SSL 3.0.
+
+** API and ABI modifications:
+gnutls_hkdf_extract: Added
+gnutls_hkdf_expand: Added
+gnutls_pbkdf2: Added
+gnutls_session_get_keylog_function: Added
+gnutls_session_set_keylog_function: Added
+gnutls_prf_hash_get: Added
+gnutls_psk_server_get_username2: Added
+gnutls_psk_set_client_credentials2: Added
+gnutls_psk_set_client_credentials_function2: Added
+gnutls_psk_set_server_credentials_function2: Added
-** libgnutls: Added support for GOST CNT_IMIT ciphersuite (as defined by
- draft-smyshlyaev-tls12-gost-suites-06).
- By default this ciphersuite is disabled. One has to enable it by adding
- +GOST to priority string. It will enable this ciphersuite (and other GOST
- ciphersuites in future).
- Note, that server will fail to negotiate GOST ciphersuites if TLS 1.3 is
- enabled both on a server and a client. It is recommended for now to disable
- TLS 1.3 in setups where GOST ciphersuites are enabled on GnuTLS-based servers.
+
+* Version 3.6.12 (released 2020-02-01)
+
+** libgnutls: Introduced TLS session flag (gnutls_session_get_flags())
+ to identify sessions that client request OCSP status request (#829).
** libgnutls: Added support for X448 key exchange (RFC 7748) and Ed448
- signature algorithm (RFC 8032) under TLS (#984).
+ signature algorithm (RFC 8032) under TLS (#86).
-** libgnutls: The min-verification-profile from system configuration applies
- for all certificate verifications, not only under TLS. The configuration can
- be overriden using the GNUTLS_SYSTEM_PRIORITY_FILE environment variable.
+** libgnutls: Added the default-priority-string option to system configuration;
+ it allows overriding the compiled-in default-priority-string.
-** libgnutls: The stapled OCSP certificate verification adheres to the convention
- used throughout the library of setting the 'GNUTLS_CERT_INVALID' flag.
+** libgnutls: Added support for GOST CNT_IMIT ciphersuite (as defined by
+ draft-smyshlyaev-tls12-gost-suites-07).
+ By default this ciphersuite is disabled. It can be enabled by adding
+ +GOST to priority string. In the future this priority string may enable
+ other GOST ciphersuites as well. Note, that server will fail to negotiate
+ GOST ciphersuites if TLS 1.3 is enabled both on a server and a client. It
+ is recommended for now to disable TLS 1.3 in setups where GOST ciphersuites
+ are enabled on GnuTLS-based servers.
+
+** libgnutls: added priority shortcuts for different GOST categories like
+ CIPHER-GOST-ALL, MAC-GOST-ALL, KX-GOST-ALL, SIGN-GOST-ALL, GROUP-GOST-ALL.
+
+** libgnutls: Reject certificates with invalid time fields. That is we reject
+ certificates with invalid characters in Time fields, or invalid time formatting
+ To continue accepting the invalid form compile with --disable-strict-der-time
+ (#207, #870).
** libgnutls: Reject certificates which contain duplicate extensions. We were
previously printing warnings when printing such a certificate, but that is
- insufficient to flag such certificates as invalid. Instead we now refuse to
- import them (#887).
+ not always sufficient to flag such certificates as invalid. Instead we now
+ refuse to import them (#887).
** libgnutls: If a CA is found in the trusted list, check in addition to
time validity, whether the algorithms comply to the expected level prior
to accepting it. This addresses the problem of accepting CAs which would
have been marked as insecure otherwise (#877).
+** libgnutls: The min-verification-profile from system configuration applies
+ for all certificate verifications, not only under TLS. The configuration can
+ be overriden using the GNUTLS_SYSTEM_PRIORITY_FILE environment variable.
+
+** libgnutls: The stapled OCSP certificate verification adheres to the convention
+ used throughout the library of setting the 'GNUTLS_CERT_INVALID' flag.
+
** libgnutls: On client side only send OCSP staples if they have been requested
by the server, and on server side always advertise that we support OCSP stapling
(#876).
-** libgnutls: The default-priority-string added to system configuration
- to allow overriding compiled-in default-priority-string.
+** libgnutls: Introduced the gnutls_ocsp_req_const_t which is compatible
+ with gnutls_ocsp_req_t but const.
** certtool: Added the --verify-profile option to set a certificate
verification profile. Use '--verify-profile low' for certificate verification
@@ -61,9 +143,6 @@ See the end for copying conditions.
** certtool: The add_extension template option is considered even when generating
a certificate from a certificate request.
-** libgnutls: added priority shortcuts for different GOST categories like
- CIPHER-GOST-ALL, MAC-GOST-ALL, KX-GOST-ALL, SIGN-GOST-ALL, GROUP-GOST-ALL.
-
** API and ABI modifications:
GNUTLS_SFLAGS_CLI_REQUESTED_OCSP: Added
GNUTLS_SFLAGS_SERV_REQUESTED_OCSP: Added
diff --git a/RELEASES.md b/RELEASES.md
index c0a840c2c5..5922814900 100644
--- a/RELEASES.md
+++ b/RELEASES.md
@@ -16,3 +16,29 @@ cases change the API.
|:----:|:-----:|:--------------:|
|stable|3.6.x |bi-monthly |
|next |- | |
+
+
+# Release process
+
+ 0. Create a new 'milestone' for the next release and move all issues present in the
+ current release milestone.
+ 1. Verification of release notes: ensure that release notes ([NEWS](NEWS)) exist
+ for this release, and include all significant changes since last release.
+ 2. Update of release date in [NEWS](NEWS), and bump of version number in
+ [configure.ac](configure.ac) as well as soname numbers in [m4/hooks.m4](m4/hooks.m4).
+ 3. make distcheck
+ 4. git tag -s $(VERSION). The 3.6.12 was including both the 3.6.12 and
+ gnutls_3_6_12 tags, but it may make sense to only use the version from
+ now on.
+ 5. git push && git push --tags
+ 6. make dist && gpg --sign --detach gnutls-$(VERSION).tar.xz
+ 7. scp gnutls-$(VERSION).tar.xz* trithemius.gnupg.org:/home/ftp/gcrypt/v3.6/
+ 8. Create and send announcement email based on previously sent email to the list and
+ [NEWS](NEWS) file.
+ 9. Create a NEWS entry at [web-pages repository](https://gitlab.com/gnutls/web-pages/-/tree/master/news-entries),
+ and/or [a security advisory entry](https://gitlab.com/gnutls/web-pages/-/tree/master/security-entries)
+ if necessary. The NEWS entry is usually pointing to the announcement email.
+ A commit auto-generates the [gnutls web site](https://gnutls.gitlab.io/web-pages/)
+ which is mirrored twice a day by www.gnutls.org.
+10. Use the @GnuTLS twitter account to announce the release.
+11. Close the current release milestone.
diff --git a/bootstrap.conf b/bootstrap.conf
index f47b81aa68..3abfe10464 100644
--- a/bootstrap.conf
+++ b/bootstrap.conf
@@ -23,12 +23,12 @@ gnulib_tool_option_extras="--with-tests --avoid=alignof-tests --avoid=lock-tests
use_libtool=1
checkout_only_file=
local_gl_dir=gl/override/
-required_submodules="tests/suite/tls-fuzzer/python-ecdsa tests/suite/tls-fuzzer/tlsfuzzer tests/suite/tls-fuzzer/tlslite-ng devel/nettle"
+required_submodules="tests/suite/tls-fuzzer/python-ecdsa tests/suite/tls-fuzzer/tlsfuzzer tests/suite/tls-fuzzer/tlslite-ng devel/nettle devel/libtasn1"
-# Reproduce by: gnulib-tool --import --local-dir=gl/override --lib=libgnu --source-base=gl --m4-base=gl/m4 --doc-base=doc --tests-base=gl/tests --aux-dir=build-aux --with-tests --avoid=alignof-tests --avoid=lock-tests --avoid=lseek-tests --lgpl=2 --no-conditional-dependencies --libtool --macro-prefix=gl --no-vc-files alloca byteswap c-ctype extensions func gendocs getline gettext-h gettimeofday hash-pjw-bare havelib intprops lib-msvc-compat lib-symbol-versions maintainer-makefile manywarnings memmem-simple minmax netdb netinet_in pmccabe2html read-file secure_getenv snprintf stdint strcase strndup strtok_r strverscmp sys_socket sys_stat time_r unistd vasprintf vsnprintf warnings
+# Reproduce by: gnulib-tool --import --local-dir=gl/override --lib=libgnu --source-base=gl --m4-base=gl/m4 --doc-base=doc --tests-base=gl/tests --aux-dir=build-aux --with-tests --avoid=alignof-tests --avoid=lock-tests --avoid=lseek-tests --lgpl=2 --no-conditional-dependencies --libtool --macro-prefix=gl --no-vc-files alloca attribute byteswap c-ctype extensions fopen-gnu func gendocs getline gettext-h gettimeofday hash-pjw-bare havelib intprops ldd lib-msvc-compat lib-symbol-versions maintainer-makefile manywarnings memmem-simple minmax netdb netinet_in pmccabe2html read-file secure_getenv snprintf stdint strcase strndup strtok_r strverscmp sys_socket sys_stat time_r unistd vasprintf verify vsnprintf warnings
gnulib_modules="
-alloca byteswap c-ctype c-strcase extensions func gendocs getline gettext-h gettimeofday hash hash-pjw-bare havelib arpa_inet inet_ntop inet_pton intprops lib-msvc-compat lib-symbol-versions maintainer-makefile manywarnings memmem-simple minmax netdb netinet_in pmccabe2html read-file secure_getenv setsockopt snprintf stdint strcase strdup-posix strndup strtok_r strverscmp sys_socket sys_stat sys_types time_r unistd valgrind-tests vasprintf vsnprintf warnings
+alloca attribute byteswap c-ctype c-strcase extensions fopen-gnu func gendocs getline gettext-h gettimeofday hash hash-pjw-bare havelib arpa_inet inet_ntop inet_pton intprops ldd lib-msvc-compat lib-symbol-versions maintainer-makefile manywarnings memmem-simple minmax netdb netinet_in pmccabe2html read-file secure_getenv setsockopt snprintf stdint strcase strdup-posix strndup strtok_r strverscmp sys_socket sys_stat sys_types time_r unistd valgrind-tests vasprintf verify vsnprintf warnings
"
unistring_modules="
@@ -93,14 +93,16 @@ bootstrap_post_import_hook ()
# sed -i 's/malloc-posix//g' ${GNULIB_SRCDIR}/modules/$i
# done
- ${GNULIB_SRCDIR}/gnulib-tool --import --local-dir=lib/unistring/override --lib=libunistring --source-base=lib/unistring --m4-base=lib/unistring/m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --lgpl=3orGPLv2 --no-conditional-dependencies --libtool --macro-prefix=unistring ${unistring_modules}
+ ${GNULIB_SRCDIR}/gnulib-tool --import --local-dir=lib/unistring/override --lib=libunistring --source-base=lib/unistring --m4-base=lib/unistring/m4 --doc-base=doc --aux-dir=build-aux --lgpl=3orGPLv2 --no-conditional-dependencies --libtool --without-tests --macro-prefix=unistring ${unistring_modules}
- ${GNULIB_SRCDIR}/gnulib-tool --import --local-dir=src/gl/override --lib=libgnu_gpl --source-base=src/gl --m4-base=src/gl/m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --no-conditional-dependencies --libtool --macro-prefix=ggl --no-vc-files ${src_modules}
+ ${GNULIB_SRCDIR}/gnulib-tool --import --local-dir=src/gl/override --lib=libgnu_gpl --source-base=src/gl --m4-base=src/gl/m4 --doc-base=doc --aux-dir=build-aux --no-conditional-dependencies --libtool --macro-prefix=ggl --without-tests --no-vc-files ${src_modules}
# git -C ${GNULIB_SRCDIR} reset --hard
# Automake requires that ChangeLog exist.
touch ChangeLog || return 1
- devel/import-curve448-from-nettle.sh
+ devel/import-ecc-from-nettle.sh
+ devel/import-from-nettle.sh
+ devel/import-minitasn1.sh
}
diff --git a/cfg.mk b/cfg.mk
index a68a9fe561..3205378767 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -35,6 +35,7 @@ local-checks-to-skip = sc_GPL_version sc_bindtextdomain \
sc_immutable_NEWS sc_program_name sc_prohibit_atoi_atof \
sc_prohibit_always_true_header_tests \
sc_prohibit_empty_lines_at_EOF sc_prohibit_hash_without_use \
+ sc_prohibit_gnu_make_extensions \
sc_prohibit_have_config_h sc_prohibit_magic_number_exit \
sc_prohibit_strcmp sc_require_config_h \
sc_require_config_h_first sc_texinfo_acronym sc_trailing_blank \
@@ -42,7 +43,6 @@ local-checks-to-skip = sc_GPL_version sc_bindtextdomain \
sc_two_space_separator_in_usage
VC_LIST_ALWAYS_EXCLUDE_REGEX = ^maint.mk|gtk-doc.make|m4/pkg|doc/fdl-1.3.texi|src/.*\.bak|src/crywrap/|(devel/perlasm/|lib/accelerated/x86/|build-aux/|gl/|src/libopts/|tests/suite/ecore/|doc/protocol/).*$$
-update-copyright-env = UPDATE_COPYRIGHT_USE_INTERVALS=1
# Explicit syntax-check exceptions.
exclude_file_name_regexp--sc_copyright_check = ^./gnulib/.*$$
@@ -77,6 +77,12 @@ glimport:
echo "If everything looks well, commit the gnulib update with:"
echo " git commit -m "Update gnulib submodule" gnulib"
+# Update Copyright year in tools and docs
+
+update-copyright-year:
+ $(AM_V_at)$(SED) -i "s/\"2000-[0-9]\{4,\}\"/\"2000-`date +%Y`\"/g" src/args-std.def.in
+ $(AM_V_at)$(SED) -i "s/ 2001-[0-9]\{4,\} / 2001-`date +%Y` /g" doc/gnutls.texi
+
# Code Coverage
clang:
diff --git a/configure.ac b/configure.ac
index 2e73a904d6..f7766f38f2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@ dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.63)
dnl when updating version also update LT_REVISION in m4/hooks.m4
-AC_INIT([GnuTLS], [3.6.12], [bugs@gnutls.org])
+AC_INIT([GnuTLS], [3.6.14], [bugs@gnutls.org])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_MACRO_DIRS([m4 src/gl/m4 src/libopts/m4 lib/unistring/m4])
AC_CANONICAL_HOST
@@ -111,6 +111,7 @@ AM_CONDITIONAL(ENABLE_CXX, test "$use_cxx" != "no")
dnl Detect windows build
use_accel=yes
+have_vista_dynamic=yes
case "$host" in
*android*)
have_android=yes
@@ -119,6 +120,22 @@ case "$host" in
*mingw32* | *mingw64*)
have_win=yes
AC_DEFINE([_UNICODE], [1], [Defined to 1 for Unicode (wide chars) APIs])
+ GNUTLS_LIBS_PRIVATE="${GNUTLS_LIBS_PRIVATE} -lcrypt32"
+ AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
+ [[#include <windows.h>
+ #if defined(_WIN32_WINNT) && _WIN32_WINNT >= 0x0600
+ # error Vista APIs allowed statically
+ #endif
+ ]],[[;]])],[have_vista_dynamic=yes],[have_vista_dynamic=no])
+ AC_ARG_ENABLE(dyn_ncrypt,
+ AS_HELP_STRING([--enable-dyn-ncrypt], [use ncrypt dynamically]),
+ enable_dyn_ncrypt=$enableval, enable_dyn_ncrypt=$have_vista_dynamic
+ )
+ if test "x$enable_dyn_ncrypt" = "xyes"; then
+ AC_DEFINE([DYN_NCRYPT], 1, [Dynamic use of ncrypt API (win32)])
+ else
+ GNUTLS_LIBS_PRIVATE="${GNUTLS_LIBS_PRIVATE} -lncrypt"
+ fi
;;
*darwin*)
have_macosx=yes
@@ -128,7 +145,7 @@ case "$host" in
dnl intended minimum runtime version.
LDFLAGS="$LDFLAGS -Wl,-no_weak_imports"
AC_MSG_CHECKING([whether the linker supports -Wl,-no_weak_imports])
- AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <sys/select.h>], [fd_set rfds; FD_ZERO(&rfds); FD_SET(0, &rfds);])],
[AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no); LDFLAGS="$save_LDFLAGS"])
;;
*solaris*)
@@ -233,6 +250,8 @@ AS_IF([test "$ac_cv_search___atomic_load_4" = "none required" || test "$ac_cv_se
dnl We use its presence to detect C11 threads
AC_CHECK_HEADERS([threads.h])
+AC_CHECK_HEADERS([valgrind/memcheck.h])
+
AC_ARG_ENABLE(padlock,
AS_HELP_STRING([--disable-padlock], [unconditionally disable padlock acceleration]),
use_padlock=$enableval)
@@ -328,6 +347,9 @@ AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], false)
AM_GNU_GETTEXT([external])
AM_GNU_GETTEXT_VERSION([0.19])
+m4_ifdef([AM_GNU_GETTEXT_REQUIRE_VERSION],[
+AM_GNU_GETTEXT_REQUIRE_VERSION([0.19])
+])
AC_C_BIGENDIAN
@@ -511,6 +533,10 @@ if test "$gl_gcc_warnings" = yes; then
gl_WARN_ADD([-fdiagnostics-show-option])
fi
+if test "$gl_cv_opt_valgrind_tests" != no; then
+ gl_WARN_ADD([-fno-builtin-strcmp])
+fi
+
AC_SUBST([WERROR_CFLAGS])
AC_SUBST([WSTACK_CFLAGS])
AC_SUBST([WARN_CFLAGS])
@@ -559,30 +585,30 @@ idna_support=no
with_libidn2=no
if test "$try_libidn2" = yes;then
- save_LIBS=$LIBS
- AC_SEARCH_LIBS(idn2_lookup_u8, idn2, [
- with_libidn2=yes;
+ PKG_CHECK_MODULES(LIBIDN2, [libidn2 >= 2.0.0], [with_libidn2=yes], [with_libidn2=no])
+ if test "${with_libidn2}" = "yes";then
idna_support="IDNA 2008 (libidn2)"
AC_DEFINE([HAVE_LIBIDN2], 1, [Define if IDNA 2008 support is enabled.])
- AC_SUBST([LIBIDN2_CFLAGS], [])
- AC_SUBST([LIBIDN2_LIBS], [-lidn2]) dnl used in gnutls.pc.in
-dnl enable once libidn2.pc is widespread; and remove LIBIDN2_LIBS from gnutls.pc.in (Libs.private)
-dnl if test "x$GNUTLS_REQUIRES_PRIVATE" = "x"; then
-dnl GNUTLS_REQUIRES_PRIVATE="Requires.private: libidn2"
-dnl else
-dnl GNUTLS_REQUIRES_PRIVATE="${GNUTLS_REQUIRES_PRIVATE}, libidn2"
-dnl fi
- ],[
- with_libidn2=no;
+ if test "x$GNUTLS_REQUIRES_PRIVATE" = "x"; then
+ GNUTLS_REQUIRES_PRIVATE="Requires.private: libidn2"
+ else
+ GNUTLS_REQUIRES_PRIVATE="${GNUTLS_REQUIRES_PRIVATE}, libidn2"
+ fi
+ else
AC_MSG_WARN(*** LIBIDN2 was not found. You will not be able to use IDN2008 support)
- ])
- LIBS=$save_LIBS
-else
- with_libidn2=no
+ fi
fi
AM_CONDITIONAL(HAVE_LIBIDN2, test "$with_libidn2" != "no")
+if test "x$have_vista_dynamic" = "xno"; then
+ AC_CHECK_TYPES([BCRYPT_ALG_HANDLE],[
+ GNUTLS_LIBS_PRIVATE="${GNUTLS_LIBS_PRIVATE} -lbcrypt"
+ ],[],[#include <windows.h>
+ #include <bcrypt.h>])
+fi
+AM_CONDITIONAL(HAVE_BCRYPT, test "$ac_cv_type_BCRYPT_ALG_HANDLE" = "yes")
+
AC_ARG_ENABLE(non-suiteb-curves,
AS_HELP_STRING([--disable-non-suiteb-curves], [disable curves not in SuiteB]),
enable_non_suiteb=$enableval, enable_non_suiteb=yes)
@@ -608,9 +634,8 @@ LIBS=$save_LIBS
# Check if nettle has CFB8 support
if test -z "$ac_cv_func_nettle_cfb8_encrypt"; then
- # nettle_cfb8_decrypt in nettle 3.5 is known to be broken
- ver=`$PKG_CONFIG --modversion nettle`
- if expr "$ver" : '^3\.5\b' >/dev/null; then
+ # nettle_cfb8_decrypt in nettle upto 3.6 is known to be broken
+ if ! $PKG_CONFIG --atleast-version=3.6 nettle; then
ac_cv_func_nettle_cfb8_encrypt=no
fi
fi
@@ -619,18 +644,33 @@ save_LIBS=$LIBS
LIBS="$LIBS $NETTLE_LIBS"
AC_CHECK_FUNCS(nettle_cfb8_encrypt)
LIBS=$save_LIBS
+AM_CONDITIONAL(NEED_CFB, [test "$ac_cv_func_nettle_cfb8_encrypt" != "yes"])
# Check if nettle has CMAC support
+save_CFLAGS=$CFLAGS
+CFLAGS="$CFLAGS $NETTLE_CFLAGS"
+AC_CHECK_TYPES([union nettle_block8], , , [[#include <nettle/nettle-types.h>]])
+CFLAGS=$save_CFLAGS
+
save_LIBS=$LIBS
LIBS="$LIBS $NETTLE_LIBS"
AC_CHECK_FUNCS(nettle_cmac128_update)
LIBS=$save_LIBS
+AM_CONDITIONAL(NEED_CMAC, [test "$ac_cv_func_nettle_cmac128_update" != "yes"])
+
+# Check for CMAC-64 support
+save_LIBS=$LIBS
+LIBS="$LIBS $NETTLE_LIBS"
+AC_CHECK_FUNCS(nettle_cmac64_update)
+LIBS=$save_LIBS
+AM_CONDITIONAL(NEED_CMAC64, [test "$ac_cv_func_nettle_cmac64_update" != "yes"])
# Check if nettle has XTS support
save_LIBS=$LIBS
LIBS="$LIBS $NETTLE_LIBS"
AC_CHECK_FUNCS(nettle_xts_encrypt_message)
LIBS=$save_LIBS
+AM_CONDITIONAL(NEED_XTS, [test "$ac_cv_func_nettle_xts_encrypt_message" != "yes"])
# Check for Gosthash94 with CryptoPro S-box support
save_LIBS=$LIBS
@@ -651,14 +691,106 @@ AC_CHECK_FUNCS(nettle_streebog512_update)
LIBS=$save_LIBS
# Check for Curve448 and Ed448
-have_curve448=no
+have_new_ecc=yes
save_LIBS=$LIBS
LIBS="$LIBS $HOGWEED_LIBS $NETTLE_LIBS"
-AC_CHECK_FUNCS([nettle_curve448_mul nettle_ed448_shake256_sign],
- [AC_DEFINE([HAVE_CURVE448], 1, [Enable Curve448])
- have_curve448=yes])
+AC_CHECK_FUNCS([nettle_curve448_mul nettle_ed448_shake256_sign nettle_get_gost_gc256b nettle_get_gost_gc512a nettle_gostdsa_sign],
+ [], [have_new_ecc=no])
+LIBS=$save_LIBS
+AS_IF([test "$have_new_ecc" != "yes"], AC_DEFINE([NEED_INT_ECC], 1, [Use backported Curve448/GOST R 34.10 DSA support]))
+AM_CONDITIONAL(NEED_INT_ECC, test "$have_new_ecc" != "yes")
+
+# Check if nettle has ChaCha20 initial block counter support
+have_chacha_set_counter=no
+save_LIBS=$LIBS
+LIBS="$LIBS $NETTLE_LIBS"
+AC_CHECK_FUNCS([nettle_chacha_set_counter],
+ [have_chacha_set_counter=yes])
+LIBS=$save_LIBS
+AM_CONDITIONAL(NEED_CHACHA, [test "$have_chacha_set_counter" != "yes"])
+
+# Check for SIV-CMAC
+save_LIBS=$LIBS
+LIBS="$LIBS $NETTLE_LIBS"
+AC_CHECK_FUNCS(nettle_siv_cmac_aes128_set_key)
+LIBS=$save_LIBS
+AM_CONDITIONAL(NEED_SIV, [test "$ac_cv_func_nettle_siv_cmac_aes128_set_key" != "yes"])
+
+# Check for Magma
+save_LIBS=$LIBS
+LIBS="$LIBS $NETTLE_LIBS"
+AC_CHECK_FUNCS(nettle_magma_set_key)
LIBS=$save_LIBS
-AM_CONDITIONAL(NEED_CURVE448, test "$have_curve448" != "yes")
+
+# Check for Kuznyechik
+save_LIBS=$LIBS
+LIBS="$LIBS $NETTLE_LIBS"
+AC_CHECK_FUNCS(nettle_kuznyechik_set_key)
+LIBS=$save_LIBS
+
+# Check for CMAC MAGMA support
+save_LIBS=$LIBS
+LIBS="$LIBS $NETTLE_LIBS"
+AC_CHECK_FUNCS(nettle_cmac_magma_update)
+LIBS=$save_LIBS
+
+# Check for CMAC KUZNYECHIK support
+save_LIBS=$LIBS
+LIBS="$LIBS $NETTLE_LIBS"
+AC_CHECK_FUNCS(nettle_cmac_kuznyechik_update)
+LIBS=$save_LIBS
+
+# Check sonames of the linked libraries needed for FIPS selftests.
+save_LIBS=$LIBS
+LIBS="$LIBS $GMP_LIBS"
+AC_MSG_CHECKING([gmp soname])
+AC_LINK_IFELSE([AC_LANG_PROGRAM([
+ #include <gmp.h>],[
+ mpz_t n;
+ mpz_init(n);])],
+ [gmp_so=`(eval "$LDDPROG conftest$EXEEXT $LDDPOSTPROC") | grep '^libgmp\.so'`],
+ [gmp_so=none])
+if test -z "$gmp_so"; then
+ gmp_so=none
+fi
+AC_MSG_RESULT($gmp_so)
+AC_DEFINE_UNQUOTED([GMP_LIBRARY_SONAME], ["$gmp_so"], [The soname of gmp library])
+LIBS=$save_LIBS
+
+save_LIBS=$LIBS
+LIBS="$LIBS $NETTLE_LIBS"
+AC_MSG_CHECKING([nettle soname])
+AC_LINK_IFELSE([AC_LANG_PROGRAM([
+ #include <nettle/sha2.h>],[
+ struct sha256_ctx ctx;
+ sha256_init(&ctx);])],
+ [nettle_so=`(eval "$LDDPROG conftest$EXEEXT $LDDPOSTPROC") | grep '^libnettle\.so'`],
+ [nettle_so=none])
+if test -z "$nettle_so"; then
+ nettle_so=none
+fi
+AC_MSG_RESULT($nettle_so)
+AC_DEFINE_UNQUOTED([NETTLE_LIBRARY_SONAME], ["$nettle_so"], [The soname of nettle library])
+LIBS=$save_LIBS
+
+save_LIBS=$LIBS
+LIBS="$LIBS $HOGWEED_LIBS"
+AC_MSG_CHECKING([hogweed soname])
+AC_LINK_IFELSE([AC_LANG_PROGRAM([
+ #include <nettle/rsa.h>],[
+ struct rsa_private_key priv;
+ nettle_rsa_private_key_init(&priv);])],
+ [hogweed_so=`(eval "$LDDPROG conftest$EXEEXT $LDDPOSTPROC") | grep '^libhogweed\.so'`],
+ [hogweed_so=none])
+if test -z "$hogweed_so"; then
+ hogweed_so=none
+fi
+AC_MSG_RESULT($hogweed_so)
+AC_DEFINE_UNQUOTED([HOGWEED_LIBRARY_SONAME], ["$hogweed_so"], [The soname of hogweed library])
+LIBS=$save_LIBS
+
+gnutls_so=libgnutls.so.`expr "$LT_CURRENT" - "$LT_AGE"`
+AC_DEFINE_UNQUOTED([GNUTLS_LIBRARY_SONAME], ["$gnutls_so"], [The soname of gnutls library])
AC_MSG_CHECKING([whether to build libdane])
AC_ARG_ENABLE(libdane,
@@ -847,6 +979,7 @@ AC_CHECK_SIZEOF(time_t, 4)
# export for use in scripts
AC_SUBST(ac_cv_sizeof_time_t)
+AC_SUBST(GNUTLS_LIBS_PRIVATE)
AC_SUBST(GNUTLS_REQUIRES_PRIVATE)
@@ -1044,11 +1177,6 @@ AC_DEFINE([GNUTLS_INTERNAL_BUILD], 1, [We allow temporarily usage of deprecated
AC_DEFINE([fread_file], [_gnutls_fread_file], [static lib rename])
AC_DEFINE([read_file], [_gnutls_read_file], [static lib rename])
-AC_DEFINE([read_binary_file], [_gnutls_read_binary_file], [static lib rename])
-
-dnl Some variables needed in makefiles
-YEAR=`date +%Y`
-AC_SUBST([YEAR], $YEAR)
dnl configuration options for config file parsing (inih)
AC_DEFINE([INI_MAX_LINE], 2048, [inih maximum line size])
diff --git a/devel/import-curve448-from-nettle.sh b/devel/import-ecc-from-nettle.sh
index 7cd974302a..da121786dd 100755
--- a/devel/import-curve448-from-nettle.sh
+++ b/devel/import-ecc-from-nettle.sh
@@ -1,13 +1,13 @@
#!/bin/sh
-# This script copies the Curve448 and Ed448 implementation from the
+# This script copies the Curve448 and Ed448, GOST 34.10 implementation from the
# nettle upstream, with necessary adjustments for bundling in GnuTLS.
set +e
: ${srcdir=.}
SRC=$srcdir/devel/nettle
-DST=$srcdir/lib/nettle/curve448
+DST=$srcdir/lib/nettle/ecc
IMPORTS="
cnd-copy.c
@@ -19,16 +19,27 @@ eccdata.c
ecc-curve448.c
ecc-add-eh.c
ecc-add-ehh.c
+ecc-add-jja.c
+ecc-add-jjj.c
ecc-a-to-j.c
ecc-dup-eh.c
+ecc-dup-jj.c
ecc-eh-to-a.c
+ecc-gost-gc256b.c
+ecc-gost-gc512a.c
+ecc-gostdsa-sign.c
+ecc-gostdsa-verify.c
ecc-internal.h
+ecc-j-to-a.c
ecc-mod-arith.c
ecc-mod.c
ecc-mod-inv.c
+ecc-mul-a.c
ecc-mul-a-eh.c
+ecc-mul-g.c
ecc-mul-g-eh.c
ecc-mul-m.c
+ecc-random.c
ed448-shake256.c
ed448-shake256-pubkey.c
ed448-shake256-sign.c
@@ -42,6 +53,10 @@ eddsa-internal.h
eddsa-pubkey.c
eddsa-sign.c
eddsa-verify.c
+gostdsa.h
+gostdsa-sign.c
+gostdsa-verify.c
+gostdsa-vko.c
gmp-glue.h
gmp-glue.c
nettle-write.h
@@ -53,12 +68,15 @@ sha3-256.c
sha3-internal.h
sha3-permute.c
shake256.c
+write-le64.c
"
PUBLIC="
bignum.h
+dsa.h
ecc-curve.h
ecc.h
+ecdsa.h
macros.h
memxor.h
nettle-meta.h
@@ -97,26 +115,24 @@ for f in $IMPORTS; do
# Rename header guard so as not to conflict with the public ones.
if grep '^#ifndef NETTLE_.*_H\(_INCLUDED\)*' $dst 2>&1 >/dev/null; then
g=$(sed -n 's/^#ifndef NETTLE_\(.*_H\(_INCLUDED\)*\)/\1/p' $dst)
- sed 's/\(NETTLE_'$g'\)/GNUTLS_LIB_NETTLE_CURVE448_\1/' $dst > $dst-t && \
+ sed 's/\(NETTLE_'$g'\)/GNUTLS_LIB_NETTLE_ECC_\1/' $dst > $dst-t && \
mv $dst-t $dst
fi
- ;;
- esac
- case $dst in
- *.h)
# Add prefix to function symbols avoid clashing with the public ones.
- sed -e 's/^#define \(.*\) nettle_\1/#define \1 gnutls_nettle_curve448_\1/' \
- -e 's/^#define \(.*\) _nettle_\1/#define \1 _gnutls_nettle_curve448_\1/' $dst > $dst-t && \
+ sed -e 's/^#define \(.*\) nettle_\1/#define \1 gnutls_nettle_ecc_\1/' \
+ -e 's/^#define \(.*\) _nettle_\1/#define \1 _gnutls_nettle_ecc_\1/' \
+ -e 's/^#define _\(.*\) _nettle_\1/#define _\1 _gnutls_nettle_ecc_\1/' \
+ -e '/^_nettle_/ { h ; s/^_nettle_\(.*\)(.*/#define _nettle_\1 _gnutls_nettle_ecc_\1/g ; p; x; }' \
+ -e '/^extern const struct ecc_curve _nettle_\(.*\);/ { h ; s/.*_nettle\(.*\);/#define _nettle_\1 _gnutls_nettle_ecc_\1/ ; p; x; }' \
+ -e '/^extern const struct ecc_eddsa _nettle_\(.*\);/ { h ; s/.*_nettle\(.*\);/#define _nettle_\1 _gnutls_nettle_ecc_\1/ ; p; x; }' \
+ -e '/gostdsa_generate_keypair/d' \
+ $dst > $dst-t && \
mv $dst-t $dst
;;
- esac
- case $dst in
*/eccdata.c)
sed 's/^#include "mini-gmp.c"/#include <gmp.h>/' $dst > $dst-t && \
mv $dst-t $dst
;;
- esac
- case $dst in
*/ecc-curve448.c)
# The generated file is arch dependent, conditionalize the
# inclusion.
@@ -125,27 +141,76 @@ for f in $IMPORTS; do
# pragma GCC diagnostic ignored "-Wunused-const-variable"\
#endif\
#if GMP_NUMB_BITS == 32\
-#include "curve448/ecc-curve448-32.h"\
+#include "ecc/ecc-curve448-32.h"\
#elif GMP_NUMB_BITS == 64\
-#include "curve448/ecc-curve448-64.h"\
+#include "ecc/ecc-curve448-64.h"\
#else\
#error unsupported configuration\
#endif
; d
}' $dst > $dst-t && mv $dst-t $dst
;;
- esac
- case $dst in
+ */ecc-gost-gc256b.c)
+ # The generated file is arch dependent, conditionalize the
+ # inclusion.
+ sed -e '/^#include "ecc-gost-gc256b\.h"/ { i\
+#if defined __clang__ || __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)\
+# pragma GCC diagnostic ignored "-Wunused-const-variable"\
+#endif\
+#if GMP_NUMB_BITS == 32\
+#include "ecc/ecc-gost-gc256b-32.h"\
+#elif GMP_NUMB_BITS == 64\
+#include "ecc/ecc-gost-gc256b-64.h"\
+#else\
+#error unsupported configuration\
+#endif
+; d
+}' \
+ -e '/#include "ecc-internal.h"/ { i\
+#include "ecc-gost-curve.h"
+; }' \
+ $dst > $dst-t && mv $dst-t $dst
+ ;;
+ */ecc-gost-gc512a.c)
+ # The generated file is arch dependent, conditionalize the
+ # inclusion.
+ sed -e '/^#include "ecc-gost-gc512a\.h"/ { i\
+#if defined __clang__ || __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)\
+# pragma GCC diagnostic ignored "-Wunused-const-variable"\
+#endif\
+#if GMP_NUMB_BITS == 32\
+#include "ecc/ecc-gost-gc512a-32.h"\
+#elif GMP_NUMB_BITS == 64\
+#include "ecc/ecc-gost-gc512a-64.h"\
+#else\
+#error unsupported configuration\
+#endif
+; d
+}' \
+ -e '/#include "ecc-internal.h"/ { i\
+#include "ecc-gost-curve.h"
+; }' \
+ $dst > $dst-t && mv $dst-t $dst
+ ;;
*/eddsa-hash.c)
# Known to be unnecessary.
sed '/^#include "nettle-internal\.h"/d' $dst > $dst-t && mv $dst-t $dst
;;
- esac
- case $dst in
*/ecc-add-eh*.c)
# Suppress whitespace errors in 'make syntax-check'.
sed 's/ * / /g' $dst > $dst-t && mv $dst-t $dst
;;
+ */ecc-random.c )
+ sed \
+ -e 's/"nettle-internal\.h"/"nettle-alloca.h"/' \
+ -e 's/^ & (mpn_sub_n/ \& (int)(mpn_sub_n/' \
+ $dst > $dst-t && mv $dst-t $dst
+ ;;
+ */gostdsa-sign.c)
+ sed \
+ -e 's/"nettle-internal\.h"/"nettle-alloca.h"/' \
+ $dst > $dst-t && mv $dst-t $dst
+ ;;
esac
else
echo "Error: $src not found" 1>&2
diff --git a/devel/import-from-nettle.sh b/devel/import-from-nettle.sh
new file mode 100755
index 0000000000..9e370ad2dd
--- /dev/null
+++ b/devel/import-from-nettle.sh
@@ -0,0 +1,149 @@
+#!/bin/sh
+
+# This script copies files from the nettle upstream, with necessary
+# adjustments for bundling in GnuTLS.
+
+set +e
+
+: ${srcdir=.}
+SRC=$srcdir/devel/nettle
+DST=$srcdir/lib/nettle/backport
+
+IMPORTS="
+block-internal.h
+cfb.c
+cfb.h
+cmac.c
+cmac.h
+cmac64.c
+cmac64.h
+cmac-aes128.c
+cmac-aes256.c
+chacha-core-internal.c
+chacha-crypt.c
+chacha-internal.h
+chacha-poly1305.c
+chacha-poly1305.h
+chacha-set-key.c
+chacha-set-nonce.c
+chacha.h
+poly1305-internal.c
+poly1305-internal.h
+poly1305.h
+xts.c
+xts.h
+xts-aes128.c
+xts-aes256.c
+siv-cmac.c
+siv-cmac.h
+siv-cmac-aes128.c
+siv-cmac-aes256.c
+"
+
+PUBLIC="
+aes.h
+bignum.h
+ctr.h
+des.h
+ecc-curve.h
+ecc.h
+macros.h
+memops.h
+memxor.h
+nettle-meta.h
+nettle-types.h
+"
+
+test -d $DST || mkdir $DST
+
+for f in $IMPORTS; do
+ src=$SRC/$f
+ dst=$DST/$f
+ if test "$f" = "cmac64.h"; then
+ src=$SRC/cmac.h
+ fi
+ if test -f $src; then
+ if test -f $dst; then
+ echo "Replacing $dst (existing file backed up in $dst~)"
+ mv $dst $dst~
+ else
+ echo "Copying file $dst"
+ fi
+ cp $src $dst
+ # Use <nettle/*.h> for public headers.
+ for h in $PUBLIC; do
+ p=$(echo $h | sed 's/\./\\./g')
+ if grep '^#include "'$p'"' $dst 2>&1 >/dev/null; then
+ sed 's!^#include "'$p'"!#include <nettle/'$h'>!' $dst > $dst-t && \
+ mv $dst-t $dst
+ fi
+ done
+ # Remove unused <assert.h>.
+ if grep '^#include <assert\.h>' $dst 2>&1 >/dev/null; then
+ if ! grep 'assert *(' $dst 2>&1 >/dev/null; then
+ sed '/^#include <assert\.h>/d' $dst > $dst-t && mv $dst-t $dst
+ fi
+ fi
+ case $dst in
+ *.h)
+ # Rename header guard so as not to conflict with the public ones.
+ if grep '^#ifndef NETTLE_.*_H\(_INCLUDED\)*' $dst 2>&1 >/dev/null; then
+ g=$(sed -n 's/^#ifndef NETTLE_\(.*_H\(_INCLUDED\)*\)/\1/p' $dst)
+ sed 's/\(NETTLE_'$g'\)/GNUTLS_LIB_NETTLE_BACKPORT_\1/' $dst > $dst-t && \
+ mv $dst-t $dst
+ fi
+ ;;
+ esac
+ case $dst in
+ *.h)
+ # Add prefix to function symbols avoid clashing with the public ones.
+ sed -e 's/^#define \(.*\) nettle_\1/#define \1 gnutls_nettle_backport_\1/' \
+ -e 's/^#define _\(.*\) _nettle_\1/#define _\1 _gnutls_nettle_backport_\1/' \
+ -e 's/^#define \(.*\) _nettle_\1/#define \1 _gnutls_nettle_backport_\1/' \
+ $dst > $dst-t && \
+ mv $dst-t $dst
+ ;;
+ esac
+ case $dst in
+ */cfb.c | */cmac.c | */cmac64.c | */xts.c | */siv-cmac.c)
+ sed \
+ -e 's/"nettle-internal\.h"/"nettle-alloca.h"/' \
+ $dst > $dst-t && mv $dst-t $dst
+ ;;
+ esac
+ case $dst in
+ */*.[ch])
+ sed \
+ -e '/^#include <nettle\/nettle-types\.h>/a\
+#include "block8.h"
+' \
+ $dst > $dst-t && mv $dst-t $dst
+ ;;
+ esac
+ case $dst in
+ # Special file that can be included in parallel with nettle's cmac.h defininig 128-bit CMAC
+ */cmac64.h)
+ sed \
+ -e 's/CMAC128/_FOO_CMAC128/g' \
+ -e 's/cmac128/_foo_cmac128/g' \
+ -e 's/cmac_aes/_foo_cmac_aes/g' \
+ $dst > $dst-t && mv $dst-t $dst
+ ;;
+ */siv-cmac*.[ch])
+ sed \
+ -e '/^#include "cmac\.h"/ { i\
+#ifdef HAVE_NETTLE_CMAC128_UPDATE\
+#include <nettle/cmac.h>\
+#else\
+#include "cmac.h"\
+#endif
+; d
+}' \
+ $dst > $dst-t && mv $dst-t $dst
+ ;;
+ esac
+ else
+ echo "Error: $src not found" 1>&2
+ exit 1
+ fi
+done
diff --git a/devel/import-minitasn1.sh b/devel/import-minitasn1.sh
new file mode 100755
index 0000000000..d8b48daac8
--- /dev/null
+++ b/devel/import-minitasn1.sh
@@ -0,0 +1,67 @@
+#!/bin/sh
+
+# This script copies files from the libtasn1 upstream, with necessary
+# adjustments for bundling in GnuTLS.
+
+set +e
+
+: ${srcdir=.}
+SRC=$srcdir/devel/libtasn1/lib
+DST=$srcdir/lib/minitasn1
+
+IMPORTS="
+coding.c
+decoding.c
+element.c
+element.h
+errors.c
+gstr.c
+gstr.h
+int.h
+parser_aux.c
+parser_aux.h
+structure.c
+structure.h
+version.c
+libtasn1.h
+"
+
+test -d $DST || mkdir $DST
+
+ASN1_VERSION=`grep AC_INIT $SRC/../configure.ac | sed -e 's/.*\],\[\([^]]*\)\],\[.*/\1/g'`
+ASN1_VERSION_MAJOR=`echo ${ASN1_VERSION} | cut -d . -f 1`
+ASN1_VERSION_MINOR=`echo ${ASN1_VERSION} | cut -d . -f 2`
+ASN1_VERSION_PATCH=`echo ${ASN1_VERSION} | cut -d . -f 3`
+ASN1_VERSION_NUMBER=`printf '0x%02x%02x%02x' $ASN1_VERSION_MAJOR $ASN1_VERSION_MINOR $ASN1_VERSION_PATCH`
+
+for f in $IMPORTS; do
+ src=$SRC/$f
+ dst=$DST/$f
+ if test "$f" = "libtasn1.h"; then
+ src=$SRC/includes/$f.in
+ fi
+ if test -f $src; then
+ if test -f $dst; then
+ echo "Replacing $dst (existing file backed up in $dst~)"
+ mv $dst $dst~
+ else
+ echo "Copying file $dst"
+ fi
+ cp $src $dst
+ case $dst in
+ */libtasn1.h)
+ sed \
+ -e 's/@VERSION@/'${ASN1_VERSION}'/g' \
+ -e 's/@ASN1_VERSION_MAJOR@/'${ASN1_VERSION_MAJOR}'/g' \
+ -e 's/@ASN1_VERSION_MINOR@/'${ASN1_VERSION_MINOR}'/g' \
+ -e 's/@ASN1_VERSION_PATCH@/'${ASN1_VERSION_PATCH}'/g' \
+ -e 's/@ASN1_VERSION_NUMBER@/'${ASN1_VERSION_NUMBER}'/g' \
+ $dst > $dst-t && \
+ mv $dst-t $dst
+ ;;
+ esac
+ else
+ echo "Error: $src not found" 1>&2
+ exit 1
+ fi
+done
diff --git a/devel/libdane-latest-x86_64.abi b/devel/libdane-latest-x86_64.abi
index 9e66a95bee..cf25f40e1e 100644
--- a/devel/libdane-latest-x86_64.abi
+++ b/devel/libdane-latest-x86_64.abi
@@ -1,14 +1,6 @@
<abi-corpus architecture='elf-amd-x86_64' soname='libgnutls-dane.so.0'>
<elf-needed>
<dependency name='libgnutls.so.30'/>
- <dependency name='libp11-kit.so.0'/>
- <dependency name='libidn2.so.0'/>
- <dependency name='libunistring.so.2'/>
- <dependency name='libdl.so.2'/>
- <dependency name='libtasn1.so.6'/>
- <dependency name='libnettle.so.7'/>
- <dependency name='libhogweed.so.5'/>
- <dependency name='libgmp.so.10'/>
<dependency name='libunbound.so.8'/>
<dependency name='libc.so.6'/>
</elf-needed>
@@ -32,7 +24,7 @@
<elf-symbol name='dane_verify_crt_raw' version='DANE_0_0' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='dane_verify_session_crt' version='DANE_0_0' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
</elf-function-symbols>
- <abi-instr version='1.0' address-size='64' path='dane.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/libdane' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='dane.c' comp-dir-path='/root/gnutls/libdane' language='LANG_C99'>
<type-decl name='int' size-in-bits='32' id='type-id-1'/>
<type-decl name='unsigned int' size-in-bits='32' id='type-id-2'/>
<class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-3' visibility='default' id='type-id-4'>
@@ -65,7 +57,7 @@
<pointer-type-def type-id='type-id-10' size-in-bits='64' id='type-id-9'/>
<pointer-type-def type-id='type-id-8' size-in-bits='64' id='type-id-11'/>
<typedef-decl name='dane_state_t' type-id='type-id-11' id='type-id-12'/>
- <class-decl name='gnutls_session_int' size-in-bits='52736' is-struct='yes' visibility='default' id='type-id-13'>
+ <class-decl name='gnutls_session_int' size-in-bits='52800' is-struct='yes' visibility='default' id='type-id-13'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='security_parameters' type-id='type-id-14' visibility='default'/>
</data-member>
@@ -75,7 +67,7 @@
<data-member access='public' layout-offset-in-bits='2304'>
<var-decl name='internals' type-id='type-id-16' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='30080'>
+ <data-member access='public' layout-offset-in-bits='30144'>
<var-decl name='key' type-id='type-id-17' visibility='default'/>
</data-member>
</class-decl>
@@ -260,6 +252,10 @@
<enumerator name='GNUTLS_CIPHER_AES_128_XTS' value='32'/>
<enumerator name='GNUTLS_CIPHER_AES_256_XTS' value='33'/>
<enumerator name='GNUTLS_CIPHER_GOST28147_TC26Z_CNT' value='34'/>
+ <enumerator name='GNUTLS_CIPHER_CHACHA20_64' value='35'/>
+ <enumerator name='GNUTLS_CIPHER_CHACHA20_32' value='36'/>
+ <enumerator name='GNUTLS_CIPHER_AES_128_SIV' value='37'/>
+ <enumerator name='GNUTLS_CIPHER_AES_256_SIV' value='38'/>
<enumerator name='GNUTLS_CIPHER_IDEA_PGP_CFB' value='200'/>
<enumerator name='GNUTLS_CIPHER_3DES_PGP_CFB' value='201'/>
<enumerator name='GNUTLS_CIPHER_CAST5_PGP_CFB' value='202'/>
@@ -615,6 +611,9 @@
<var-decl name='key_shares' type-id='type-id-79' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='280'>
+ <var-decl name='multi_ocsp' type-id='type-id-79' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='288'>
<var-decl name='tls_sig_sem' type-id='type-id-24' visibility='default'/>
</data-member>
</class-decl>
@@ -917,7 +916,7 @@
<subrange length='4' type-id='type-id-44' id='type-id-140'/>
</array-type-def>
- <class-decl name='__anonymous_struct__' size-in-bits='27776' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-16' visibility='default' id='type-id-141'>
+ <class-decl name='__anonymous_struct__' size-in-bits='27840' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-16' visibility='default' id='type-id-141'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='record_buffer' type-id='type-id-142' visibility='default'/>
</data-member>
@@ -1120,240 +1119,243 @@
<var-decl name='h_post' type-id='type-id-164' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10496'>
- <var-decl name='selected_cert_list' type-id='type-id-165' visibility='default'/>
+ <var-decl name='keylog_func' type-id='type-id-165' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10560'>
- <var-decl name='selected_cert_list_length' type-id='type-id-19' visibility='default'/>
+ <var-decl name='selected_cert_list' type-id='type-id-166' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10624'>
- <var-decl name='selected_key' type-id='type-id-166' visibility='default'/>
+ <var-decl name='selected_cert_list_length' type-id='type-id-19' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10688'>
- <var-decl name='selected_ocsp' type-id='type-id-167' visibility='default'/>
+ <var-decl name='selected_key' type-id='type-id-167' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10752'>
- <var-decl name='selected_ocsp_length' type-id='type-id-19' visibility='default'/>
+ <var-decl name='selected_ocsp' type-id='type-id-168' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10816'>
- <var-decl name='selected_ocsp_func' type-id='type-id-168' visibility='default'/>
+ <var-decl name='selected_ocsp_length' type-id='type-id-19' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10880'>
- <var-decl name='selected_ocsp_func_ptr' type-id='type-id-105' visibility='default'/>
+ <var-decl name='selected_ocsp_func' type-id='type-id-169' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10944'>
+ <var-decl name='selected_ocsp_func_ptr' type-id='type-id-105' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='11008'>
<var-decl name='selected_need_free' type-id='type-id-79' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='10952'>
- <var-decl name='default_record_version' type-id='type-id-169' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='11016'>
+ <var-decl name='default_record_version' type-id='type-id-170' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='10968'>
- <var-decl name='default_hello_version' type-id='type-id-169' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='11032'>
+ <var-decl name='default_hello_version' type-id='type-id-170' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11008'>
+ <data-member access='public' layout-offset-in-bits='11072'>
<var-decl name='user_ptr' type-id='type-id-105' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11072'>
+ <data-member access='public' layout-offset-in-bits='11136'>
<var-decl name='direction' type-id='type-id-79' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11080'>
+ <data-member access='public' layout-offset-in-bits='11144'>
<var-decl name='ignore_rdn_sequence' type-id='type-id-79' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11088'>
- <var-decl name='rsa_pms_version' type-id='type-id-169' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='11152'>
+ <var-decl name='rsa_pms_version' type-id='type-id-170' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11104'>
+ <data-member access='public' layout-offset-in-bits='11168'>
<var-decl name='errnum' type-id='type-id-1' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11136'>
+ <data-member access='public' layout-offset-in-bits='11200'>
<var-decl name='initial_negotiation_completed' type-id='type-id-79' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11200'>
+ <data-member access='public' layout-offset-in-bits='11264'>
<var-decl name='post_negotiation_lock' type-id='type-id-105' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11264'>
+ <data-member access='public' layout-offset-in-bits='11328'>
<var-decl name='transport' type-id='type-id-78' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11328'>
- <var-decl name='dtls' type-id='type-id-170' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='11392'>
+ <var-decl name='dtls' type-id='type-id-171' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11904'>
+ <data-member access='public' layout-offset-in-bits='11968'>
<var-decl name='handshake_suspicious_loops' type-id='type-id-2' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11936'>
+ <data-member access='public' layout-offset-in-bits='12000'>
<var-decl name='handshake_in_progress' type-id='type-id-79' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11944'>
+ <data-member access='public' layout-offset-in-bits='12008'>
<var-decl name='premaster_set' type-id='type-id-79' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11968'>
+ <data-member access='public' layout-offset-in-bits='12032'>
<var-decl name='cb_tls_unique_len' type-id='type-id-2' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='12000'>
- <var-decl name='cb_tls_unique' type-id='type-id-171' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='12064'>
+ <var-decl name='cb_tls_unique' type-id='type-id-172' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='12288'>
- <var-decl name='handshake_start_time' type-id='type-id-172' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='12352'>
+ <var-decl name='handshake_start_time' type-id='type-id-173' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='12416'>
- <var-decl name='handshake_abs_timeout' type-id='type-id-172' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='12480'>
+ <var-decl name='handshake_abs_timeout' type-id='type-id-173' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='12544'>
+ <data-member access='public' layout-offset-in-bits='12608'>
<var-decl name='ertt' type-id='type-id-2' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='12576'>
+ <data-member access='public' layout-offset-in-bits='12640'>
<var-decl name='handshake_timeout_ms' type-id='type-id-2' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='12608'>
+ <data-member access='public' layout-offset-in-bits='12672'>
<var-decl name='record_timeout_ms' type-id='type-id-2' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='12672'>
+ <data-member access='public' layout-offset-in-bits='12736'>
<var-decl name='post_handshake_cr_context' type-id='type-id-3' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='12800'>
+ <data-member access='public' layout-offset-in-bits='12864'>
<var-decl name='post_handshake_hash_buffer' type-id='type-id-143' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='13056'>
+ <data-member access='public' layout-offset-in-bits='13120'>
<var-decl name='hsk_flags' type-id='type-id-2' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='13120'>
- <var-decl name='last_key_update' type-id='type-id-172' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='13184'>
+ <var-decl name='last_key_update' type-id='type-id-173' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='13248'>
+ <data-member access='public' layout-offset-in-bits='13312'>
<var-decl name='key_update_count' type-id='type-id-2' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='13312'>
+ <data-member access='public' layout-offset-in-bits='13376'>
<var-decl name='full_client_hello' type-id='type-id-143' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='13568'>
+ <data-member access='public' layout-offset-in-bits='13632'>
<var-decl name='extensions_offset' type-id='type-id-1' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='13632'>
+ <data-member access='public' layout-offset-in-bits='13696'>
<var-decl name='hb_local_data' type-id='type-id-143' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='13888'>
+ <data-member access='public' layout-offset-in-bits='13952'>
<var-decl name='hb_remote_data' type-id='type-id-143' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='14144'>
- <var-decl name='hb_ping_start' type-id='type-id-172' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='14208'>
+ <var-decl name='hb_ping_start' type-id='type-id-173' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='14272'>
- <var-decl name='hb_ping_sent' type-id='type-id-172' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='14400'>
- <var-decl name='hb_actual_retrans_timeout_ms' type-id='type-id-2' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='14432'>
- <var-decl name='hb_retrans_timeout_ms' type-id='type-id-2' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='14336'>
+ <var-decl name='hb_ping_sent' type-id='type-id-173' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='14464'>
- <var-decl name='hb_total_timeout_ms' type-id='type-id-2' visibility='default'/>
+ <var-decl name='hb_actual_retrans_timeout_ms' type-id='type-id-2' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='14496'>
- <var-decl name='ocsp_check_ok' type-id='type-id-79' visibility='default'/>
+ <var-decl name='hb_retrans_timeout_ms' type-id='type-id-2' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='14528'>
- <var-decl name='hb_state' type-id='type-id-173' visibility='default'/>
+ <var-decl name='hb_total_timeout_ms' type-id='type-id-2' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='14560'>
- <var-decl name='recv_state' type-id='type-id-174' visibility='default'/>
+ <var-decl name='ocsp_check_ok' type-id='type-id-79' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='14592'>
- <var-decl name='sc_random_set' type-id='type-id-79' visibility='default'/>
+ <var-decl name='hb_state' type-id='type-id-174' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='14624'>
+ <var-decl name='recv_state' type-id='type-id-175' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='14656'>
- <var-decl name='flags' type-id='type-id-84' visibility='default'/>
+ <var-decl name='sc_random_set' type-id='type-id-79' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='14720'>
- <var-decl name='verify_callback' type-id='type-id-175' visibility='default'/>
+ <var-decl name='flags' type-id='type-id-84' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='14784'>
- <var-decl name='vc_data' type-id='type-id-176' visibility='default'/>
+ <var-decl name='verify_callback' type-id='type-id-176' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='14848'>
- <var-decl name='vc_sdata' type-id='type-id-177' visibility='default'/>
+ <var-decl name='vc_data' type-id='type-id-177' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='15040'>
+ <data-member access='public' layout-offset-in-bits='14912'>
+ <var-decl name='vc_sdata' type-id='type-id-178' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='15104'>
<var-decl name='vc_elements' type-id='type-id-2' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='15072'>
+ <data-member access='public' layout-offset-in-bits='15136'>
<var-decl name='vc_status' type-id='type-id-2' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='15104'>
+ <data-member access='public' layout-offset-in-bits='15168'>
<var-decl name='additional_verify_flags' type-id='type-id-2' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='15136'>
+ <data-member access='public' layout-offset-in-bits='15200'>
<var-decl name='cert_hash' type-id='type-id-23' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='15392'>
+ <data-member access='public' layout-offset-in-bits='15456'>
<var-decl name='cert_hash_set' type-id='type-id-79' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='15400'>
- <var-decl name='saved_username' type-id='type-id-178' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='15464'>
+ <var-decl name='saved_username' type-id='type-id-179' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='16432'>
+ <data-member access='public' layout-offset-in-bits='16496'>
<var-decl name='saved_username_set' type-id='type-id-79' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='16448'>
- <var-decl name='tfo' type-id='type-id-179' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='17664'>
- <var-decl name='rsup' type-id='type-id-180' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='16512'>
+ <var-decl name='tfo' type-id='type-id-180' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='17728'>
- <var-decl name='rsup_size' type-id='type-id-2' visibility='default'/>
+ <var-decl name='rsup' type-id='type-id-181' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='17792'>
- <var-decl name='rexts' type-id='type-id-181' visibility='default'/>
+ <var-decl name='rsup_size' type-id='type-id-2' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='17856'>
- <var-decl name='rexts_size' type-id='type-id-2' visibility='default'/>
+ <var-decl name='rexts' type-id='type-id-182' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='17920'>
- <var-decl name='ext_data' type-id='type-id-182' visibility='default'/>
+ <var-decl name='rexts_size' type-id='type-id-2' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='17984'>
+ <var-decl name='ext_data' type-id='type-id-183' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='24064'>
+ <data-member access='public' layout-offset-in-bits='24128'>
<var-decl name='used_exts' type-id='type-id-26' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='24096'>
- <var-decl name='ext_msg' type-id='type-id-183' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='24160'>
+ <var-decl name='ext_msg' type-id='type-id-184' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='24128'>
+ <data-member access='public' layout-offset-in-bits='24192'>
<var-decl name='max_recv_size' type-id='type-id-2' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='24192'>
+ <data-member access='public' layout-offset-in-bits='24256'>
<var-decl name='cand_ec_group' type-id='type-id-28' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='24256'>
+ <data-member access='public' layout-offset-in-bits='24320'>
<var-decl name='cand_dh_group' type-id='type-id-28' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='24320'>
+ <data-member access='public' layout-offset-in-bits='24384'>
<var-decl name='cand_group' type-id='type-id-28' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='24384'>
- <var-decl name='hrr_cs' type-id='type-id-169' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='24448'>
+ <var-decl name='hrr_cs' type-id='type-id-170' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='24416'>
+ <data-member access='public' layout-offset-in-bits='24480'>
<var-decl name='session_ticket_renew' type-id='type-id-1' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='24448'>
- <var-decl name='tls13_ticket' type-id='type-id-184' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='27584'>
- <var-decl name='early_data_received' type-id='type-id-26' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='24512'>
+ <var-decl name='tls13_ticket' type-id='type-id-185' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='27648'>
- <var-decl name='anti_replay' type-id='type-id-185' visibility='default'/>
+ <var-decl name='early_data_received' type-id='type-id-26' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='27712'>
+ <var-decl name='anti_replay' type-id='type-id-186' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='27776'>
<var-decl name='epoch_lock' type-id='type-id-105' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='mbuffer_head_st' size-in-bits='256' is-struct='yes' visibility='default' id='type-id-186'>
+ <class-decl name='mbuffer_head_st' size-in-bits='256' is-struct='yes' visibility='default' id='type-id-187'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='head' type-id='type-id-187' visibility='default'/>
+ <var-decl name='head' type-id='type-id-188' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='tail' type-id='type-id-187' visibility='default'/>
+ <var-decl name='tail' type-id='type-id-188' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
<var-decl name='length' type-id='type-id-2' visibility='default'/>
@@ -1362,12 +1364,12 @@
<var-decl name='byte_length' type-id='type-id-103' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='mbuffer_st' size-in-bits='640' is-struct='yes' visibility='default' id='type-id-188'>
+ <class-decl name='mbuffer_st' size-in-bits='640' is-struct='yes' visibility='default' id='type-id-189'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='next' type-id='type-id-187' visibility='default'/>
+ <var-decl name='next' type-id='type-id-188' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='prev' type-id='type-id-187' visibility='default'/>
+ <var-decl name='prev' type-id='type-id-188' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
<var-decl name='mark' type-id='type-id-103' visibility='default'/>
@@ -1382,7 +1384,7 @@
<var-decl name='uhead_mark' type-id='type-id-2' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='416'>
- <var-decl name='type' type-id='type-id-189' visibility='default'/>
+ <var-decl name='type' type-id='type-id-190' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
<var-decl name='record_sequence' type-id='type-id-84' visibility='default'/>
@@ -1391,14 +1393,14 @@
<var-decl name='epoch' type-id='type-id-19' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='544'>
- <var-decl name='htype' type-id='type-id-190' visibility='default'/>
+ <var-decl name='htype' type-id='type-id-191' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
<var-decl name='handshake_sequence' type-id='type-id-19' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-188' size-in-bits='64' id='type-id-187'/>
- <enum-decl name='content_type_t' id='type-id-191'>
+ <pointer-type-def type-id='type-id-189' size-in-bits='64' id='type-id-188'/>
+ <enum-decl name='content_type_t' id='type-id-192'>
<underlying-type type-id='type-id-47'/>
<enumerator name='GNUTLS_CHANGE_CIPHER_SPEC' value='20'/>
<enumerator name='GNUTLS_ALERT' value='21'/>
@@ -1406,8 +1408,8 @@
<enumerator name='GNUTLS_APPLICATION_DATA' value='23'/>
<enumerator name='GNUTLS_HEARTBEAT' value='24'/>
</enum-decl>
- <typedef-decl name='content_type_t' type-id='type-id-191' id='type-id-189'/>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-192'>
+ <typedef-decl name='content_type_t' type-id='type-id-192' id='type-id-190'/>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-193'>
<underlying-type type-id='type-id-47'/>
<enumerator name='GNUTLS_HANDSHAKE_HELLO_REQUEST' value='0'/>
<enumerator name='GNUTLS_HANDSHAKE_CLIENT_HELLO' value='1'/>
@@ -1430,15 +1432,15 @@
<enumerator name='GNUTLS_HANDSHAKE_CLIENT_HELLO_V2' value='1024'/>
<enumerator name='GNUTLS_HANDSHAKE_HELLO_RETRY_REQUEST' value='1025'/>
</enum-decl>
- <typedef-decl name='gnutls_handshake_description_t' type-id='type-id-192' id='type-id-190'/>
- <typedef-decl name='mbuffer_st' type-id='type-id-188' id='type-id-193'/>
- <typedef-decl name='mbuffer_head_st' type-id='type-id-186' id='type-id-142'/>
- <class-decl name='gnutls_buffer_st' size-in-bits='256' is-struct='yes' visibility='default' id='type-id-194'>
+ <typedef-decl name='gnutls_handshake_description_t' type-id='type-id-193' id='type-id-191'/>
+ <typedef-decl name='mbuffer_st' type-id='type-id-189' id='type-id-194'/>
+ <typedef-decl name='mbuffer_head_st' type-id='type-id-187' id='type-id-142'/>
+ <class-decl name='gnutls_buffer_st' size-in-bits='256' is-struct='yes' visibility='default' id='type-id-195'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='allocd' type-id='type-id-195' visibility='default'/>
+ <var-decl name='allocd' type-id='type-id-196' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='data' type-id='type-id-195' visibility='default'/>
+ <var-decl name='data' type-id='type-id-196' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
<var-decl name='max_length' type-id='type-id-103' visibility='default'/>
@@ -1447,22 +1449,22 @@
<var-decl name='length' type-id='type-id-103' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-24' size-in-bits='64' id='type-id-195'/>
- <typedef-decl name='gnutls_buffer_st' type-id='type-id-194' id='type-id-143'/>
- <enum-decl name='send_ticket_state_t' id='type-id-196'>
+ <pointer-type-def type-id='type-id-24' size-in-bits='64' id='type-id-196'/>
+ <typedef-decl name='gnutls_buffer_st' type-id='type-id-195' id='type-id-143'/>
+ <enum-decl name='send_ticket_state_t' id='type-id-197'>
<underlying-type type-id='type-id-47'/>
<enumerator name='TICKET_STATE0' value='0'/>
<enumerator name='TICKET_STATE1' value='1'/>
</enum-decl>
- <typedef-decl name='send_ticket_state_t' type-id='type-id-196' id='type-id-144'/>
- <enum-decl name='bye_state_t' id='type-id-197'>
+ <typedef-decl name='send_ticket_state_t' type-id='type-id-197' id='type-id-144'/>
+ <enum-decl name='bye_state_t' id='type-id-198'>
<underlying-type type-id='type-id-47'/>
<enumerator name='BYE_STATE0' value='0'/>
<enumerator name='BYE_STATE1' value='1'/>
<enumerator name='BYE_STATE2' value='2'/>
</enum-decl>
- <typedef-decl name='bye_state_t' type-id='type-id-197' id='type-id-145'/>
- <enum-decl name='reauth_state_t' id='type-id-198'>
+ <typedef-decl name='bye_state_t' type-id='type-id-198' id='type-id-145'/>
+ <enum-decl name='reauth_state_t' id='type-id-199'>
<underlying-type type-id='type-id-47'/>
<enumerator name='REAUTH_STATE0' value='0'/>
<enumerator name='REAUTH_STATE1' value='1'/>
@@ -1471,8 +1473,8 @@
<enumerator name='REAUTH_STATE4' value='4'/>
<enumerator name='REAUTH_STATE5' value='5'/>
</enum-decl>
- <typedef-decl name='reauth_state_t' type-id='type-id-198' id='type-id-146'/>
- <enum-decl name='handshake_state_t' id='type-id-199'>
+ <typedef-decl name='reauth_state_t' type-id='type-id-199' id='type-id-146'/>
+ <enum-decl name='handshake_state_t' id='type-id-200'>
<underlying-type type-id='type-id-47'/>
<enumerator name='STATE0' value='0'/>
<enumerator name='STATE1' value='1'/>
@@ -1526,46 +1528,46 @@
<enumerator name='STATE115' value='115'/>
<enumerator name='STATE150' value='116'/>
</enum-decl>
- <typedef-decl name='handshake_state_t' type-id='type-id-199' id='type-id-147'/>
- <class-decl name='gnutls_priority_st' size-in-bits='41792' is-struct='yes' visibility='default' id='type-id-200'>
+ <typedef-decl name='handshake_state_t' type-id='type-id-200' id='type-id-147'/>
+ <class-decl name='gnutls_priority_st' size-in-bits='41792' is-struct='yes' visibility='default' id='type-id-201'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='protocol' type-id='type-id-201' visibility='default'/>
+ <var-decl name='protocol' type-id='type-id-202' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2080'>
- <var-decl name='client_ctype' type-id='type-id-201' visibility='default'/>
+ <var-decl name='client_ctype' type-id='type-id-202' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='4160'>
- <var-decl name='server_ctype' type-id='type-id-201' visibility='default'/>
+ <var-decl name='server_ctype' type-id='type-id-202' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='6240'>
- <var-decl name='_cipher' type-id='type-id-201' visibility='default'/>
+ <var-decl name='_cipher' type-id='type-id-202' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='8320'>
- <var-decl name='_mac' type-id='type-id-201' visibility='default'/>
+ <var-decl name='_mac' type-id='type-id-202' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10400'>
- <var-decl name='_kx' type-id='type-id-201' visibility='default'/>
+ <var-decl name='_kx' type-id='type-id-202' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='12480'>
- <var-decl name='_sign_algo' type-id='type-id-201' visibility='default'/>
+ <var-decl name='_sign_algo' type-id='type-id-202' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='14560'>
- <var-decl name='_supported_ecc' type-id='type-id-201' visibility='default'/>
+ <var-decl name='_supported_ecc' type-id='type-id-202' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='16640'>
- <var-decl name='groups' type-id='type-id-202' visibility='default'/>
+ <var-decl name='groups' type-id='type-id-203' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='20800'>
- <var-decl name='sigalg' type-id='type-id-203' visibility='default'/>
+ <var-decl name='sigalg' type-id='type-id-204' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='24960'>
- <var-decl name='cs' type-id='type-id-204' visibility='default'/>
+ <var-decl name='cs' type-id='type-id-205' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='41408'>
<var-decl name='no_extensions' type-id='type-id-79' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='41440'>
- <var-decl name='sr' type-id='type-id-205' visibility='default'/>
+ <var-decl name='sr' type-id='type-id-206' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='41472'>
<var-decl name='min_record_version' type-id='type-id-79' visibility='default'/>
@@ -1595,7 +1597,7 @@
<var-decl name='fallback' type-id='type-id-79' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='41600'>
- <var-decl name='level' type-id='type-id-206' visibility='default'/>
+ <var-decl name='level' type-id='type-id-207' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='41632'>
<var-decl name='_allow_large_records' type-id='type-id-79' visibility='default'/>
@@ -1622,26 +1624,26 @@
<var-decl name='_dh_prime_bits' type-id='type-id-2' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='41728'>
- <var-decl name='usage_cnt' type-id='type-id-207' visibility='default'/>
+ <var-decl name='usage_cnt' type-id='type-id-208' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='2080' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-201' visibility='default' id='type-id-208'>
+ <class-decl name='__anonymous_struct__' size-in-bits='2080' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-202' visibility='default' id='type-id-209'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='priorities' type-id='type-id-209' visibility='default'/>
+ <var-decl name='priorities' type-id='type-id-210' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2048'>
<var-decl name='num_priorities' type-id='type-id-2' visibility='default'/>
</data-member>
</class-decl>
- <array-type-def dimensions='1' type-id='type-id-2' size-in-bits='2048' id='type-id-209'>
+ <array-type-def dimensions='1' type-id='type-id-2' size-in-bits='2048' id='type-id-210'>
<subrange length='64' type-id='type-id-44' id='type-id-96'/>
</array-type-def>
- <typedef-decl name='priority_st' type-id='type-id-208' id='type-id-201'/>
- <class-decl name='group_list_st' size-in-bits='4160' is-struct='yes' visibility='default' id='type-id-210'>
+ <typedef-decl name='priority_st' type-id='type-id-209' id='type-id-202'/>
+ <class-decl name='group_list_st' size-in-bits='4160' is-struct='yes' visibility='default' id='type-id-211'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='entry' type-id='type-id-211' visibility='default'/>
+ <var-decl name='entry' type-id='type-id-212' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='4096'>
<var-decl name='size' type-id='type-id-2' visibility='default'/>
@@ -1651,20 +1653,20 @@
</data-member>
</class-decl>
- <array-type-def dimensions='1' type-id='type-id-28' size-in-bits='4096' id='type-id-211'>
+ <array-type-def dimensions='1' type-id='type-id-28' size-in-bits='4096' id='type-id-212'>
<subrange length='64' type-id='type-id-44' id='type-id-96'/>
</array-type-def>
- <typedef-decl name='group_list_st' type-id='type-id-210' id='type-id-202'/>
- <class-decl name='sign_algo_list_st' size-in-bits='4160' is-struct='yes' visibility='default' id='type-id-212'>
+ <typedef-decl name='group_list_st' type-id='type-id-211' id='type-id-203'/>
+ <class-decl name='sign_algo_list_st' size-in-bits='4160' is-struct='yes' visibility='default' id='type-id-213'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='entry' type-id='type-id-213' visibility='default'/>
+ <var-decl name='entry' type-id='type-id-214' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='4096'>
<var-decl name='size' type-id='type-id-2' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='gnutls_sign_entry_st' size-in-bits='448' is-struct='yes' visibility='default' id='type-id-214'>
+ <class-decl name='gnutls_sign_entry_st' size-in-bits='448' is-struct='yes' visibility='default' id='type-id-215'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='name' type-id='type-id-34' visibility='default'/>
</data-member>
@@ -1678,7 +1680,7 @@
<var-decl name='pk' type-id='type-id-67' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='hash' type-id='type-id-215' visibility='default'/>
+ <var-decl name='hash' type-id='type-id-216' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='224'>
<var-decl name='priv_pk' type-id='type-id-67' visibility='default'/>
@@ -1693,13 +1695,13 @@
<var-decl name='curve' type-id='type-id-66' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='352'>
- <var-decl name='aid' type-id='type-id-216' visibility='default'/>
+ <var-decl name='aid' type-id='type-id-217' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='slevel' type-id='type-id-217' visibility='default'/>
+ <var-decl name='slevel' type-id='type-id-218' visibility='default'/>
</data-member>
</class-decl>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-218'>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-219'>
<underlying-type type-id='type-id-47'/>
<enumerator name='GNUTLS_DIG_UNKNOWN' value='0'/>
<enumerator name='GNUTLS_DIG_NULL' value='1'/>
@@ -1722,61 +1724,61 @@
<enumerator name='GNUTLS_DIG_SHAKE_128' value='209'/>
<enumerator name='GNUTLS_DIG_SHAKE_256' value='210'/>
</enum-decl>
- <typedef-decl name='gnutls_digest_algorithm_t' type-id='type-id-218' id='type-id-215'/>
- <class-decl name='__anonymous_struct__' size-in-bits='24' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-219' visibility='default' id='type-id-220'>
+ <typedef-decl name='gnutls_digest_algorithm_t' type-id='type-id-219' id='type-id-216'/>
+ <class-decl name='__anonymous_struct__' size-in-bits='24' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-220' visibility='default' id='type-id-221'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='id' type-id='type-id-169' visibility='default'/>
+ <var-decl name='id' type-id='type-id-170' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='16'>
<var-decl name='tls_sem' type-id='type-id-24' visibility='default'/>
</data-member>
</class-decl>
- <array-type-def dimensions='1' type-id='type-id-24' size-in-bits='16' id='type-id-169'>
+ <array-type-def dimensions='1' type-id='type-id-24' size-in-bits='16' id='type-id-170'>
<subrange length='2' type-id='type-id-44' id='type-id-46'/>
</array-type-def>
- <typedef-decl name='sign_algorithm_st' type-id='type-id-220' id='type-id-219'/>
- <qualified-type-def type-id='type-id-219' const='yes' id='type-id-216'/>
- <enum-decl name='hash_security_level_t' id='type-id-221'>
+ <typedef-decl name='sign_algorithm_st' type-id='type-id-221' id='type-id-220'/>
+ <qualified-type-def type-id='type-id-220' const='yes' id='type-id-217'/>
+ <enum-decl name='hash_security_level_t' id='type-id-222'>
<underlying-type type-id='type-id-47'/>
<enumerator name='_SECURE' value='0'/>
<enumerator name='_INSECURE_FOR_CERTS' value='1'/>
<enumerator name='_INSECURE' value='2'/>
</enum-decl>
- <typedef-decl name='hash_security_level_t' type-id='type-id-221' id='type-id-217'/>
- <qualified-type-def type-id='type-id-214' const='yes' id='type-id-222'/>
- <pointer-type-def type-id='type-id-222' size-in-bits='64' id='type-id-223'/>
+ <typedef-decl name='hash_security_level_t' type-id='type-id-222' id='type-id-218'/>
+ <qualified-type-def type-id='type-id-215' const='yes' id='type-id-223'/>
+ <pointer-type-def type-id='type-id-223' size-in-bits='64' id='type-id-224'/>
- <array-type-def dimensions='1' type-id='type-id-223' size-in-bits='4096' id='type-id-213'>
+ <array-type-def dimensions='1' type-id='type-id-224' size-in-bits='4096' id='type-id-214'>
<subrange length='64' type-id='type-id-44' id='type-id-96'/>
</array-type-def>
- <typedef-decl name='sign_algo_list_st' type-id='type-id-212' id='type-id-203'/>
- <class-decl name='ciphersuite_list_st' size-in-bits='16448' is-struct='yes' visibility='default' id='type-id-224'>
+ <typedef-decl name='sign_algo_list_st' type-id='type-id-213' id='type-id-204'/>
+ <class-decl name='ciphersuite_list_st' size-in-bits='16448' is-struct='yes' visibility='default' id='type-id-225'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='entry' type-id='type-id-225' visibility='default'/>
+ <var-decl name='entry' type-id='type-id-226' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='16384'>
<var-decl name='size' type-id='type-id-2' visibility='default'/>
</data-member>
</class-decl>
- <typedef-decl name='gnutls_cipher_suite_entry_st' type-id='type-id-33' id='type-id-226'/>
+ <typedef-decl name='gnutls_cipher_suite_entry_st' type-id='type-id-33' id='type-id-227'/>
- <array-type-def dimensions='1' type-id='type-id-20' size-in-bits='16384' id='type-id-225'>
- <subrange length='256' type-id='type-id-44' id='type-id-227'/>
+ <array-type-def dimensions='1' type-id='type-id-20' size-in-bits='16384' id='type-id-226'>
+ <subrange length='256' type-id='type-id-44' id='type-id-228'/>
</array-type-def>
- <typedef-decl name='ciphersuite_list_st' type-id='type-id-224' id='type-id-204'/>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-228'>
+ <typedef-decl name='ciphersuite_list_st' type-id='type-id-225' id='type-id-205'/>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-229'>
<underlying-type type-id='type-id-47'/>
<enumerator name='SR_DISABLED' value='0'/>
<enumerator name='SR_UNSAFE' value='1'/>
<enumerator name='SR_PARTIAL' value='2'/>
<enumerator name='SR_SAFE' value='3'/>
</enum-decl>
- <typedef-decl name='safe_renegotiation_t' type-id='type-id-228' id='type-id-205'/>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-229'>
+ <typedef-decl name='safe_renegotiation_t' type-id='type-id-229' id='type-id-206'/>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-230'>
<underlying-type type-id='type-id-47'/>
<enumerator name='GNUTLS_SEC_PARAM_UNKNOWN' value='0'/>
<enumerator name='GNUTLS_SEC_PARAM_INSECURE' value='5'/>
@@ -1791,15 +1793,15 @@
<enumerator name='GNUTLS_SEC_PARAM_FUTURE' value='50'/>
<enumerator name='GNUTLS_SEC_PARAM_MAX' value='50'/>
</enum-decl>
- <typedef-decl name='gnutls_sec_param_t' type-id='type-id-229' id='type-id-206'/>
- <type-decl name='atomic_uint' size-in-bits='32' id='type-id-207'/>
- <pointer-type-def type-id='type-id-200' size-in-bits='64' id='type-id-148'/>
- <class-decl name='__anonymous_struct__' size-in-bits='576' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-230' visibility='default' id='type-id-231'>
+ <typedef-decl name='gnutls_sec_param_t' type-id='type-id-230' id='type-id-207'/>
+ <type-decl name='atomic_uint' size-in-bits='32' id='type-id-208'/>
+ <pointer-type-def type-id='type-id-201' size-in-bits='64' id='type-id-148'/>
+ <class-decl name='__anonymous_struct__' size-in-bits='576' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-231' visibility='default' id='type-id-232'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='htype' type-id='type-id-190' visibility='default'/>
+ <var-decl name='htype' type-id='type-id-191' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='rtype' type-id='type-id-190' visibility='default'/>
+ <var-decl name='rtype' type-id='type-id-191' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='length' type-id='type-id-26' visibility='default'/>
@@ -1814,7 +1816,7 @@
<var-decl name='end_offset' type-id='type-id-26' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='header' type-id='type-id-232' visibility='default'/>
+ <var-decl name='header' type-id='type-id-233' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='288'>
<var-decl name='header_size' type-id='type-id-1' visibility='default'/>
@@ -1824,17 +1826,17 @@
</data-member>
</class-decl>
- <array-type-def dimensions='1' type-id='type-id-24' size-in-bits='96' id='type-id-232'>
- <subrange length='12' type-id='type-id-44' id='type-id-233'/>
+ <array-type-def dimensions='1' type-id='type-id-24' size-in-bits='96' id='type-id-233'>
+ <subrange length='12' type-id='type-id-44' id='type-id-234'/>
</array-type-def>
- <typedef-decl name='handshake_buffer_st' type-id='type-id-231' id='type-id-230'/>
+ <typedef-decl name='handshake_buffer_st' type-id='type-id-232' id='type-id-231'/>
- <array-type-def dimensions='1' type-id='type-id-230' size-in-bits='3456' id='type-id-149'>
- <subrange length='6' type-id='type-id-44' id='type-id-234'/>
+ <array-type-def dimensions='1' type-id='type-id-231' size-in-bits='3456' id='type-id-149'>
+ <subrange length='6' type-id='type-id-44' id='type-id-235'/>
</array-type-def>
- <enum-decl name='record_send_state_t' id='type-id-235'>
+ <enum-decl name='record_send_state_t' id='type-id-236'>
<underlying-type type-id='type-id-47'/>
<enumerator name='RECORD_SEND_NORMAL' value='0'/>
<enumerator name='RECORD_SEND_CORKED' value='1'/>
@@ -1843,71 +1845,71 @@
<enumerator name='RECORD_SEND_KEY_UPDATE_2' value='4'/>
<enumerator name='RECORD_SEND_KEY_UPDATE_3' value='5'/>
</enum-decl>
- <typedef-decl name='record_send_state_t' type-id='type-id-235' id='type-id-150'/>
- <class-decl name='mod_auth_st_int' size-in-bits='832' is-struct='yes' visibility='default' id='type-id-236'>
+ <typedef-decl name='record_send_state_t' type-id='type-id-236' id='type-id-150'/>
+ <class-decl name='mod_auth_st_int' size-in-bits='832' is-struct='yes' visibility='default' id='type-id-237'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='name' type-id='type-id-34' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='gnutls_generate_server_certificate' type-id='type-id-237' visibility='default'/>
+ <var-decl name='gnutls_generate_server_certificate' type-id='type-id-238' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='gnutls_generate_client_certificate' type-id='type-id-237' visibility='default'/>
+ <var-decl name='gnutls_generate_client_certificate' type-id='type-id-238' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='gnutls_generate_server_kx' type-id='type-id-237' visibility='default'/>
+ <var-decl name='gnutls_generate_server_kx' type-id='type-id-238' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='gnutls_generate_client_kx' type-id='type-id-237' visibility='default'/>
+ <var-decl name='gnutls_generate_client_kx' type-id='type-id-238' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='gnutls_generate_client_crt_vrfy' type-id='type-id-237' visibility='default'/>
+ <var-decl name='gnutls_generate_client_crt_vrfy' type-id='type-id-238' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='gnutls_generate_server_crt_request' type-id='type-id-237' visibility='default'/>
+ <var-decl name='gnutls_generate_server_crt_request' type-id='type-id-238' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
- <var-decl name='gnutls_process_server_certificate' type-id='type-id-238' visibility='default'/>
+ <var-decl name='gnutls_process_server_certificate' type-id='type-id-239' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='gnutls_process_client_certificate' type-id='type-id-238' visibility='default'/>
+ <var-decl name='gnutls_process_client_certificate' type-id='type-id-239' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
- <var-decl name='gnutls_process_server_kx' type-id='type-id-238' visibility='default'/>
+ <var-decl name='gnutls_process_server_kx' type-id='type-id-239' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='640'>
- <var-decl name='gnutls_process_client_kx' type-id='type-id-238' visibility='default'/>
+ <var-decl name='gnutls_process_client_kx' type-id='type-id-239' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='704'>
- <var-decl name='gnutls_process_client_crt_vrfy' type-id='type-id-238' visibility='default'/>
+ <var-decl name='gnutls_process_client_crt_vrfy' type-id='type-id-239' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='768'>
- <var-decl name='gnutls_process_server_crt_request' type-id='type-id-238' visibility='default'/>
+ <var-decl name='gnutls_process_server_crt_request' type-id='type-id-239' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-13' size-in-bits='64' id='type-id-239'/>
- <typedef-decl name='gnutls_session_t' type-id='type-id-239' id='type-id-240'/>
- <pointer-type-def type-id='type-id-143' size-in-bits='64' id='type-id-241'/>
- <pointer-type-def type-id='type-id-242' size-in-bits='64' id='type-id-237'/>
+ <pointer-type-def type-id='type-id-13' size-in-bits='64' id='type-id-240'/>
+ <typedef-decl name='gnutls_session_t' type-id='type-id-240' id='type-id-241'/>
+ <pointer-type-def type-id='type-id-143' size-in-bits='64' id='type-id-242'/>
<pointer-type-def type-id='type-id-243' size-in-bits='64' id='type-id-238'/>
- <qualified-type-def type-id='type-id-236' const='yes' id='type-id-244'/>
- <pointer-type-def type-id='type-id-244' size-in-bits='64' id='type-id-151'/>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-245'>
+ <pointer-type-def type-id='type-id-244' size-in-bits='64' id='type-id-239'/>
+ <qualified-type-def type-id='type-id-237' const='yes' id='type-id-245'/>
+ <pointer-type-def type-id='type-id-245' size-in-bits='64' id='type-id-151'/>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-246'>
<underlying-type type-id='type-id-47'/>
<enumerator name='GNUTLS_CERT_IGNORE' value='0'/>
<enumerator name='GNUTLS_CERT_REQUEST' value='1'/>
<enumerator name='GNUTLS_CERT_REQUIRE' value='2'/>
</enum-decl>
- <typedef-decl name='gnutls_certificate_request_t' type-id='type-id-245' id='type-id-152'/>
+ <typedef-decl name='gnutls_certificate_request_t' type-id='type-id-246' id='type-id-152'/>
<typedef-decl name='gnutls_transport_ptr_t' type-id='type-id-105' id='type-id-158'/>
- <pointer-type-def type-id='type-id-246' size-in-bits='64' id='type-id-247'/>
- <typedef-decl name='gnutls_pull_timeout_func' type-id='type-id-247' id='type-id-153'/>
- <typedef-decl name='__ssize_t' type-id='type-id-58' id='type-id-248'/>
- <typedef-decl name='ssize_t' type-id='type-id-248' id='type-id-249'/>
- <pointer-type-def type-id='type-id-250' size-in-bits='64' id='type-id-251'/>
- <typedef-decl name='gnutls_pull_func' type-id='type-id-251' id='type-id-154'/>
- <typedef-decl name='gnutls_push_func' type-id='type-id-251' id='type-id-155'/>
- <class-decl name='iovec' size-in-bits='128' is-struct='yes' visibility='default' id='type-id-252'>
+ <pointer-type-def type-id='type-id-247' size-in-bits='64' id='type-id-248'/>
+ <typedef-decl name='gnutls_pull_timeout_func' type-id='type-id-248' id='type-id-153'/>
+ <typedef-decl name='__ssize_t' type-id='type-id-58' id='type-id-249'/>
+ <typedef-decl name='ssize_t' type-id='type-id-249' id='type-id-250'/>
+ <pointer-type-def type-id='type-id-251' size-in-bits='64' id='type-id-252'/>
+ <typedef-decl name='gnutls_pull_func' type-id='type-id-252' id='type-id-154'/>
+ <typedef-decl name='gnutls_push_func' type-id='type-id-252' id='type-id-155'/>
+ <class-decl name='iovec' size-in-bits='128' is-struct='yes' visibility='default' id='type-id-253'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='iov_base' type-id='type-id-105' visibility='default'/>
</data-member>
@@ -1915,29 +1917,31 @@
<var-decl name='iov_len' type-id='type-id-103' visibility='default'/>
</data-member>
</class-decl>
- <typedef-decl name='giovec_t' type-id='type-id-252' id='type-id-253'/>
- <qualified-type-def type-id='type-id-253' const='yes' id='type-id-254'/>
- <pointer-type-def type-id='type-id-254' size-in-bits='64' id='type-id-255'/>
- <pointer-type-def type-id='type-id-256' size-in-bits='64' id='type-id-257'/>
- <typedef-decl name='gnutls_vec_push_func' type-id='type-id-257' id='type-id-156'/>
- <pointer-type-def type-id='type-id-258' size-in-bits='64' id='type-id-259'/>
- <typedef-decl name='gnutls_errno_func' type-id='type-id-259' id='type-id-157'/>
- <pointer-type-def type-id='type-id-260' size-in-bits='64' id='type-id-261'/>
- <typedef-decl name='gnutls_db_store_func' type-id='type-id-261' id='type-id-159'/>
- <pointer-type-def type-id='type-id-262' size-in-bits='64' id='type-id-263'/>
- <typedef-decl name='gnutls_db_retr_func' type-id='type-id-263' id='type-id-160'/>
- <pointer-type-def type-id='type-id-264' size-in-bits='64' id='type-id-265'/>
- <typedef-decl name='gnutls_db_remove_func' type-id='type-id-265' id='type-id-161'/>
- <pointer-type-def type-id='type-id-266' size-in-bits='64' id='type-id-267'/>
- <typedef-decl name='gnutls_handshake_simple_hook_func' type-id='type-id-267' id='type-id-162'/>
- <pointer-type-def type-id='type-id-268' size-in-bits='64' id='type-id-269'/>
- <typedef-decl name='gnutls_handshake_hook_func' type-id='type-id-269' id='type-id-163'/>
- <type-decl name='short int' size-in-bits='16' id='type-id-270'/>
- <typedef-decl name='__int16_t' type-id='type-id-270' id='type-id-271'/>
- <typedef-decl name='int16_t' type-id='type-id-271' id='type-id-164'/>
- <class-decl name='gnutls_pcert_st' size-in-bits='256' is-struct='yes' visibility='default' id='type-id-272'>
+ <typedef-decl name='giovec_t' type-id='type-id-253' id='type-id-254'/>
+ <qualified-type-def type-id='type-id-254' const='yes' id='type-id-255'/>
+ <pointer-type-def type-id='type-id-255' size-in-bits='64' id='type-id-256'/>
+ <pointer-type-def type-id='type-id-257' size-in-bits='64' id='type-id-258'/>
+ <typedef-decl name='gnutls_vec_push_func' type-id='type-id-258' id='type-id-156'/>
+ <pointer-type-def type-id='type-id-259' size-in-bits='64' id='type-id-260'/>
+ <typedef-decl name='gnutls_errno_func' type-id='type-id-260' id='type-id-157'/>
+ <pointer-type-def type-id='type-id-261' size-in-bits='64' id='type-id-262'/>
+ <typedef-decl name='gnutls_db_store_func' type-id='type-id-262' id='type-id-159'/>
+ <pointer-type-def type-id='type-id-263' size-in-bits='64' id='type-id-264'/>
+ <typedef-decl name='gnutls_db_retr_func' type-id='type-id-264' id='type-id-160'/>
+ <pointer-type-def type-id='type-id-265' size-in-bits='64' id='type-id-266'/>
+ <typedef-decl name='gnutls_db_remove_func' type-id='type-id-266' id='type-id-161'/>
+ <pointer-type-def type-id='type-id-267' size-in-bits='64' id='type-id-268'/>
+ <typedef-decl name='gnutls_handshake_simple_hook_func' type-id='type-id-268' id='type-id-162'/>
+ <pointer-type-def type-id='type-id-269' size-in-bits='64' id='type-id-270'/>
+ <typedef-decl name='gnutls_handshake_hook_func' type-id='type-id-270' id='type-id-163'/>
+ <type-decl name='short int' size-in-bits='16' id='type-id-271'/>
+ <typedef-decl name='__int16_t' type-id='type-id-271' id='type-id-272'/>
+ <typedef-decl name='int16_t' type-id='type-id-272' id='type-id-164'/>
+ <pointer-type-def type-id='type-id-273' size-in-bits='64' id='type-id-274'/>
+ <typedef-decl name='gnutls_keylog_func' type-id='type-id-274' id='type-id-165'/>
+ <class-decl name='gnutls_pcert_st' size-in-bits='256' is-struct='yes' visibility='default' id='type-id-275'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='pubkey' type-id='type-id-273' visibility='default'/>
+ <var-decl name='pubkey' type-id='type-id-276' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='cert' type-id='type-id-3' visibility='default'/>
@@ -1946,14 +1950,14 @@
<var-decl name='type' type-id='type-id-27' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='gnutls_pubkey_st' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-274'/>
- <pointer-type-def type-id='type-id-274' size-in-bits='64' id='type-id-275'/>
- <typedef-decl name='gnutls_pubkey_t' type-id='type-id-275' id='type-id-273'/>
- <typedef-decl name='gnutls_pcert_st' type-id='type-id-272' id='type-id-276'/>
- <pointer-type-def type-id='type-id-276' size-in-bits='64' id='type-id-165'/>
- <class-decl name='gnutls_privkey_st' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-277'/>
- <pointer-type-def type-id='type-id-277' size-in-bits='64' id='type-id-166'/>
- <class-decl name='gnutls_ocsp_data_st' size-in-bits='512' is-struct='yes' visibility='default' id='type-id-278'>
+ <class-decl name='gnutls_pubkey_st' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-277'/>
+ <pointer-type-def type-id='type-id-277' size-in-bits='64' id='type-id-278'/>
+ <typedef-decl name='gnutls_pubkey_t' type-id='type-id-278' id='type-id-276'/>
+ <typedef-decl name='gnutls_pcert_st' type-id='type-id-275' id='type-id-279'/>
+ <pointer-type-def type-id='type-id-279' size-in-bits='64' id='type-id-166'/>
+ <class-decl name='gnutls_privkey_st' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-280'/>
+ <pointer-type-def type-id='type-id-280' size-in-bits='64' id='type-id-167'/>
+ <class-decl name='gnutls_ocsp_data_st' size-in-bits='512' is-struct='yes' visibility='default' id='type-id-281'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='version' type-id='type-id-2' visibility='default'/>
</data-member>
@@ -1964,19 +1968,19 @@
<var-decl name='exptime' type-id='type-id-25' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='padding' type-id='type-id-279' visibility='default'/>
+ <var-decl name='padding' type-id='type-id-282' visibility='default'/>
</data-member>
</class-decl>
- <array-type-def dimensions='1' type-id='type-id-6' size-in-bits='256' id='type-id-279'>
+ <array-type-def dimensions='1' type-id='type-id-6' size-in-bits='256' id='type-id-282'>
<subrange length='32' type-id='type-id-44' id='type-id-57'/>
</array-type-def>
- <typedef-decl name='gnutls_ocsp_data_st' type-id='type-id-278' id='type-id-280'/>
- <pointer-type-def type-id='type-id-280' size-in-bits='64' id='type-id-167'/>
- <pointer-type-def type-id='type-id-281' size-in-bits='64' id='type-id-282'/>
- <typedef-decl name='gnutls_status_request_ocsp_func' type-id='type-id-282' id='type-id-168'/>
- <class-decl name='__anonymous_struct__' size-in-bits='576' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-170' visibility='default' id='type-id-283'>
+ <typedef-decl name='gnutls_ocsp_data_st' type-id='type-id-281' id='type-id-283'/>
+ <pointer-type-def type-id='type-id-283' size-in-bits='64' id='type-id-168'/>
+ <pointer-type-def type-id='type-id-284' size-in-bits='64' id='type-id-285'/>
+ <typedef-decl name='gnutls_status_request_ocsp_func' type-id='type-id-285' id='type-id-169'/>
+ <class-decl name='__anonymous_struct__' size-in-bits='576' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-171' visibility='default' id='type-id-286'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='dcookie' type-id='type-id-3' visibility='default'/>
</data-member>
@@ -2008,35 +2012,35 @@
<var-decl name='async_term' type-id='type-id-25' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='last_retransmit' type-id='type-id-172' visibility='default'/>
+ <var-decl name='last_retransmit' type-id='type-id-173' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
<var-decl name='packets_dropped' type-id='type-id-2' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' id='type-id-172'>
+ <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' id='type-id-173'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='tv_sec' type-id='type-id-59' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='tv_nsec' type-id='type-id-284' visibility='default'/>
+ <var-decl name='tv_nsec' type-id='type-id-287' visibility='default'/>
</data-member>
</class-decl>
- <typedef-decl name='__syscall_slong_t' type-id='type-id-58' id='type-id-284'/>
- <typedef-decl name='dtls_st' type-id='type-id-283' id='type-id-170'/>
+ <typedef-decl name='__syscall_slong_t' type-id='type-id-58' id='type-id-287'/>
+ <typedef-decl name='dtls_st' type-id='type-id-286' id='type-id-171'/>
- <array-type-def dimensions='1' type-id='type-id-6' size-in-bits='288' id='type-id-171'>
- <subrange length='36' type-id='type-id-44' id='type-id-285'/>
+ <array-type-def dimensions='1' type-id='type-id-6' size-in-bits='288' id='type-id-172'>
+ <subrange length='36' type-id='type-id-44' id='type-id-288'/>
</array-type-def>
- <enum-decl name='heartbeat_state_t' id='type-id-286'>
+ <enum-decl name='heartbeat_state_t' id='type-id-289'>
<underlying-type type-id='type-id-47'/>
<enumerator name='SHB_SEND1' value='0'/>
<enumerator name='SHB_SEND2' value='1'/>
<enumerator name='SHB_RECV' value='2'/>
</enum-decl>
- <typedef-decl name='heartbeat_state_t' type-id='type-id-286' id='type-id-173'/>
- <enum-decl name='recv_state_t' id='type-id-287'>
+ <typedef-decl name='heartbeat_state_t' type-id='type-id-289' id='type-id-174'/>
+ <enum-decl name='recv_state_t' id='type-id-290'>
<underlying-type type-id='type-id-47'/>
<enumerator name='RECV_STATE_0' value='0'/>
<enumerator name='RECV_STATE_DTLS_RETRANSMIT' value='1'/>
@@ -2048,12 +2052,12 @@
<enumerator name='RECV_STATE_REHANDSHAKE' value='7'/>
<enumerator name='RECV_STATE_REAUTH' value='8'/>
</enum-decl>
- <typedef-decl name='recv_state_t' type-id='type-id-287' id='type-id-174'/>
- <typedef-decl name='gnutls_certificate_verify_function' type-id='type-id-266' id='type-id-288'/>
- <pointer-type-def type-id='type-id-288' size-in-bits='64' id='type-id-175'/>
- <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-177' visibility='default' id='type-id-289'>
+ <typedef-decl name='recv_state_t' type-id='type-id-290' id='type-id-175'/>
+ <typedef-decl name='gnutls_certificate_verify_function' type-id='type-id-267' id='type-id-291'/>
+ <pointer-type-def type-id='type-id-291' size-in-bits='64' id='type-id-176'/>
+ <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-178' visibility='default' id='type-id-292'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='type' type-id='type-id-290' visibility='default'/>
+ <var-decl name='type' type-id='type-id-293' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='data' type-id='type-id-5' visibility='default'/>
@@ -2062,7 +2066,7 @@
<var-decl name='size' type-id='type-id-2' visibility='default'/>
</data-member>
</class-decl>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-291'>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-294'>
<underlying-type type-id='type-id-47'/>
<enumerator name='GNUTLS_DT_UNKNOWN' value='0'/>
<enumerator name='GNUTLS_DT_DNS_HOSTNAME' value='1'/>
@@ -2070,15 +2074,15 @@
<enumerator name='GNUTLS_DT_RFC822NAME' value='3'/>
<enumerator name='GNUTLS_DT_IP_ADDRESS' value='4'/>
</enum-decl>
- <typedef-decl name='gnutls_vdata_types_t' type-id='type-id-291' id='type-id-290'/>
- <typedef-decl name='gnutls_typed_vdata_st' type-id='type-id-289' id='type-id-177'/>
- <pointer-type-def type-id='type-id-177' size-in-bits='64' id='type-id-176'/>
+ <typedef-decl name='gnutls_vdata_types_t' type-id='type-id-294' id='type-id-293'/>
+ <typedef-decl name='gnutls_typed_vdata_st' type-id='type-id-292' id='type-id-178'/>
+ <pointer-type-def type-id='type-id-178' size-in-bits='64' id='type-id-177'/>
- <array-type-def dimensions='1' type-id='type-id-40' size-in-bits='1032' id='type-id-178'>
- <subrange length='129' type-id='type-id-44' id='type-id-292'/>
+ <array-type-def dimensions='1' type-id='type-id-40' size-in-bits='1032' id='type-id-179'>
+ <subrange length='129' type-id='type-id-44' id='type-id-295'/>
</array-type-def>
- <class-decl name='tfo_st' size-in-bits='1216' is-struct='yes' visibility='default' id='type-id-293'>
+ <class-decl name='tfo_st' size-in-bits='1216' is-struct='yes' visibility='default' id='type-id-296'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='fd' type-id='type-id-1' visibility='default'/>
</data-member>
@@ -2089,42 +2093,42 @@
<var-decl name='connect_only' type-id='type-id-79' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='connect_addr' type-id='type-id-294' visibility='default'/>
+ <var-decl name='connect_addr' type-id='type-id-297' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1152'>
- <var-decl name='connect_addrlen' type-id='type-id-295' visibility='default'/>
+ <var-decl name='connect_addrlen' type-id='type-id-298' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='sockaddr_storage' size-in-bits='1024' is-struct='yes' visibility='default' id='type-id-294'>
+ <class-decl name='sockaddr_storage' size-in-bits='1024' is-struct='yes' visibility='default' id='type-id-297'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='ss_family' type-id='type-id-296' visibility='default'/>
+ <var-decl name='ss_family' type-id='type-id-299' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='16'>
- <var-decl name='__ss_padding' type-id='type-id-297' visibility='default'/>
+ <var-decl name='__ss_padding' type-id='type-id-300' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='960'>
<var-decl name='__ss_align' type-id='type-id-44' visibility='default'/>
</data-member>
</class-decl>
- <typedef-decl name='sa_family_t' type-id='type-id-31' id='type-id-296'/>
+ <typedef-decl name='sa_family_t' type-id='type-id-31' id='type-id-299'/>
- <array-type-def dimensions='1' type-id='type-id-40' size-in-bits='944' id='type-id-297'>
- <subrange length='118' type-id='type-id-44' id='type-id-298'/>
+ <array-type-def dimensions='1' type-id='type-id-40' size-in-bits='944' id='type-id-300'>
+ <subrange length='118' type-id='type-id-44' id='type-id-301'/>
</array-type-def>
- <typedef-decl name='__socklen_t' type-id='type-id-2' id='type-id-299'/>
- <typedef-decl name='socklen_t' type-id='type-id-299' id='type-id-295'/>
- <typedef-decl name='tfo_st' type-id='type-id-293' id='type-id-179'/>
- <class-decl name='gnutls_supplemental_entry_st' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-300'/>
- <pointer-type-def type-id='type-id-300' size-in-bits='64' id='type-id-180'/>
- <class-decl name='hello_ext_entry_st' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-301'/>
- <pointer-type-def type-id='type-id-301' size-in-bits='64' id='type-id-181'/>
- <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-302'>
+ <typedef-decl name='__socklen_t' type-id='type-id-2' id='type-id-302'/>
+ <typedef-decl name='socklen_t' type-id='type-id-302' id='type-id-298'/>
+ <typedef-decl name='tfo_st' type-id='type-id-296' id='type-id-180'/>
+ <class-decl name='gnutls_supplemental_entry_st' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-303'/>
+ <pointer-type-def type-id='type-id-303' size-in-bits='64' id='type-id-181'/>
+ <class-decl name='hello_ext_entry_st' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-304'/>
+ <pointer-type-def type-id='type-id-304' size-in-bits='64' id='type-id-182'/>
+ <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-305'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='priv' type-id='type-id-303' visibility='default'/>
+ <var-decl name='priv' type-id='type-id-306' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='resumed_priv' type-id='type-id-303' visibility='default'/>
+ <var-decl name='resumed_priv' type-id='type-id-306' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
<var-decl name='set' type-id='type-id-24' visibility='default'/>
@@ -2133,13 +2137,13 @@
<var-decl name='resumed_set' type-id='type-id-24' visibility='default'/>
</data-member>
</class-decl>
- <typedef-decl name='gnutls_ext_priv_data_t' type-id='type-id-105' id='type-id-303'/>
+ <typedef-decl name='gnutls_ext_priv_data_t' type-id='type-id-105' id='type-id-306'/>
- <array-type-def dimensions='1' type-id='type-id-302' size-in-bits='6144' id='type-id-182'>
+ <array-type-def dimensions='1' type-id='type-id-305' size-in-bits='6144' id='type-id-183'>
<subrange length='32' type-id='type-id-44' id='type-id-57'/>
</array-type-def>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-304'>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-307'>
<underlying-type type-id='type-id-47'/>
<enumerator name='GNUTLS_EXT_FLAG_OVERRIDE_INTERNAL' value='1'/>
<enumerator name='GNUTLS_EXT_FLAG_CLIENT_HELLO' value='2'/>
@@ -2151,13 +2155,13 @@
<enumerator name='GNUTLS_EXT_FLAG_TLS' value='128'/>
<enumerator name='GNUTLS_EXT_FLAG_DTLS' value='256'/>
</enum-decl>
- <typedef-decl name='gnutls_ext_flags_t' type-id='type-id-304' id='type-id-183'/>
- <class-decl name='__anonymous_struct__' size-in-bits='3136' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-184' visibility='default' id='type-id-305'>
+ <typedef-decl name='gnutls_ext_flags_t' type-id='type-id-307' id='type-id-184'/>
+ <class-decl name='__anonymous_struct__' size-in-bits='3136' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-185' visibility='default' id='type-id-308'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='arrival_time' type-id='type-id-172' visibility='default'/>
+ <var-decl name='arrival_time' type-id='type-id-173' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='creation_time' type-id='type-id-172' visibility='default'/>
+ <var-decl name='creation_time' type-id='type-id-173' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
<var-decl name='lifetime' type-id='type-id-26' visibility='default'/>
@@ -2166,7 +2170,7 @@
<var-decl name='age_add' type-id='type-id-26' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='nonce' type-id='type-id-306' visibility='default'/>
+ <var-decl name='nonce' type-id='type-id-309' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2368'>
<var-decl name='nonce_size' type-id='type-id-103' visibility='default'/>
@@ -2182,24 +2186,24 @@
</data-member>
</class-decl>
- <array-type-def dimensions='1' type-id='type-id-24' size-in-bits='2040' id='type-id-306'>
- <subrange length='255' type-id='type-id-44' id='type-id-307'/>
+ <array-type-def dimensions='1' type-id='type-id-24' size-in-bits='2040' id='type-id-309'>
+ <subrange length='255' type-id='type-id-44' id='type-id-310'/>
</array-type-def>
- <typedef-decl name='tls13_ticket_st' type-id='type-id-305' id='type-id-184'/>
- <class-decl name='gnutls_anti_replay_st' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-308'/>
- <pointer-type-def type-id='type-id-308' size-in-bits='64' id='type-id-309'/>
- <typedef-decl name='gnutls_anti_replay_t' type-id='type-id-309' id='type-id-185'/>
+ <typedef-decl name='tls13_ticket_st' type-id='type-id-308' id='type-id-185'/>
+ <class-decl name='gnutls_anti_replay_st' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-311'/>
+ <pointer-type-def type-id='type-id-311' size-in-bits='64' id='type-id-312'/>
+ <typedef-decl name='gnutls_anti_replay_t' type-id='type-id-312' id='type-id-186'/>
<typedef-decl name='internals_st' type-id='type-id-141' id='type-id-16'/>
- <class-decl name='gnutls_key_st' size-in-bits='22656' is-struct='yes' visibility='default' id='type-id-310'>
+ <class-decl name='gnutls_key_st' size-in-bits='22656' is-struct='yes' visibility='default' id='type-id-313'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='kshare' type-id='type-id-311' visibility='default'/>
+ <var-decl name='kshare' type-id='type-id-314' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='11520'>
- <var-decl name='proto' type-id='type-id-312' visibility='default'/>
+ <var-decl name='proto' type-id='type-id-315' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='20096'>
- <var-decl name='binders' type-id='type-id-313' visibility='default'/>
+ <var-decl name='binders' type-id='type-id-316' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='20608'>
<var-decl name='key' type-id='type-id-3' visibility='default'/>
@@ -2217,32 +2221,32 @@
<var-decl name='auth_info' type-id='type-id-105' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='22336'>
- <var-decl name='auth_info_type' type-id='type-id-314' visibility='default'/>
+ <var-decl name='auth_info_type' type-id='type-id-317' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='22368'>
<var-decl name='auth_info_size' type-id='type-id-1' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='22400'>
- <var-decl name='cred' type-id='type-id-315' visibility='default'/>
+ <var-decl name='cred' type-id='type-id-318' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='22464'>
- <var-decl name='totp' type-id='type-id-316' visibility='default'/>
+ <var-decl name='totp' type-id='type-id-319' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='11520' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-311'>
+ <class-decl name='__anonymous_struct__' size-in-bits='11520' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-314'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='ecdh_params' type-id='type-id-317' visibility='default'/>
+ <var-decl name='ecdh_params' type-id='type-id-320' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3840'>
- <var-decl name='ecdhx_params' type-id='type-id-317' visibility='default'/>
+ <var-decl name='ecdhx_params' type-id='type-id-320' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='7680'>
- <var-decl name='dh_params' type-id='type-id-317' visibility='default'/>
+ <var-decl name='dh_params' type-id='type-id-320' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='3840' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-317' visibility='default' id='type-id-318'>
+ <class-decl name='__anonymous_struct__' size-in-bits='3840' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-320' visibility='default' id='type-id-321'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='params' type-id='type-id-319' visibility='default'/>
+ <var-decl name='params' type-id='type-id-322' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1024'>
<var-decl name='params_nr' type-id='type-id-2' visibility='default'/>
@@ -2260,7 +2264,7 @@
<var-decl name='dh_group' type-id='type-id-63' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1184'>
- <var-decl name='gost_params' type-id='type-id-320' visibility='default'/>
+ <var-decl name='gost_params' type-id='type-id-323' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1216'>
<var-decl name='raw_pub' type-id='type-id-3' visibility='default'/>
@@ -2272,25 +2276,25 @@
<var-decl name='seed_size' type-id='type-id-2' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1504'>
- <var-decl name='seed' type-id='type-id-321' visibility='default'/>
+ <var-decl name='seed' type-id='type-id-324' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3552'>
- <var-decl name='palgo' type-id='type-id-215' visibility='default'/>
+ <var-decl name='palgo' type-id='type-id-216' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3584'>
- <var-decl name='spki' type-id='type-id-322' visibility='default'/>
+ <var-decl name='spki' type-id='type-id-325' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3776'>
<var-decl name='algo' type-id='type-id-67' visibility='default'/>
</data-member>
</class-decl>
- <typedef-decl name='bigint_t' type-id='type-id-105' id='type-id-323'/>
+ <typedef-decl name='bigint_t' type-id='type-id-105' id='type-id-326'/>
- <array-type-def dimensions='1' type-id='type-id-323' size-in-bits='1024' id='type-id-319'>
+ <array-type-def dimensions='1' type-id='type-id-326' size-in-bits='1024' id='type-id-322'>
<subrange length='16' type-id='type-id-44' id='type-id-97'/>
</array-type-def>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-324'>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-327'>
<underlying-type type-id='type-id-47'/>
<enumerator name='GNUTLS_GOST_PARAMSET_UNKNOWN' value='0'/>
<enumerator name='GNUTLS_GOST_PARAMSET_TC26_Z' value='1'/>
@@ -2299,18 +2303,18 @@
<enumerator name='GNUTLS_GOST_PARAMSET_CP_C' value='4'/>
<enumerator name='GNUTLS_GOST_PARAMSET_CP_D' value='5'/>
</enum-decl>
- <typedef-decl name='gnutls_gost_paramset_t' type-id='type-id-324' id='type-id-320'/>
+ <typedef-decl name='gnutls_gost_paramset_t' type-id='type-id-327' id='type-id-323'/>
- <array-type-def dimensions='1' type-id='type-id-24' size-in-bits='2048' id='type-id-321'>
- <subrange length='256' type-id='type-id-44' id='type-id-227'/>
+ <array-type-def dimensions='1' type-id='type-id-24' size-in-bits='2048' id='type-id-324'>
+ <subrange length='256' type-id='type-id-44' id='type-id-228'/>
</array-type-def>
- <class-decl name='gnutls_x509_spki_st' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-325'>
+ <class-decl name='gnutls_x509_spki_st' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-328'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='pk' type-id='type-id-67' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='rsa_pss_dig' type-id='type-id-215' visibility='default'/>
+ <var-decl name='rsa_pss_dig' type-id='type-id-216' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='salt_size' type-id='type-id-2' visibility='default'/>
@@ -2319,23 +2323,23 @@
<var-decl name='legacy' type-id='type-id-2' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='dsa_dig' type-id='type-id-215' visibility='default'/>
+ <var-decl name='dsa_dig' type-id='type-id-216' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='160'>
<var-decl name='flags' type-id='type-id-2' visibility='default'/>
</data-member>
</class-decl>
- <typedef-decl name='gnutls_x509_spki_st' type-id='type-id-325' id='type-id-322'/>
- <typedef-decl name='gnutls_pk_params_st' type-id='type-id-318' id='type-id-317'/>
- <union-decl name='__anonymous_union__' size-in-bits='8576' is-anonymous='yes' visibility='default' id='type-id-312'>
+ <typedef-decl name='gnutls_x509_spki_st' type-id='type-id-328' id='type-id-325'/>
+ <typedef-decl name='gnutls_pk_params_st' type-id='type-id-321' id='type-id-320'/>
+ <union-decl name='__anonymous_union__' size-in-bits='8576' is-anonymous='yes' visibility='default' id='type-id-315'>
<data-member access='private'>
- <var-decl name='tls13' type-id='type-id-326' visibility='default'/>
+ <var-decl name='tls13' type-id='type-id-329' visibility='default'/>
</data-member>
<data-member access='private'>
- <var-decl name='tls12' type-id='type-id-327' visibility='default'/>
+ <var-decl name='tls12' type-id='type-id-330' visibility='default'/>
</data-member>
</union-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='4128' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-326'>
+ <class-decl name='__anonymous_struct__' size-in-bits='4128' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-329'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='temp_secret' type-id='type-id-93' visibility='default'/>
</data-member>
@@ -2364,69 +2368,69 @@
<var-decl name='ap_rms' type-id='type-id-93' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='8576' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-327'>
+ <class-decl name='__anonymous_struct__' size-in-bits='8576' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-330'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='ecdh' type-id='type-id-328' visibility='default'/>
+ <var-decl name='ecdh' type-id='type-id-331' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='4096'>
- <var-decl name='dh' type-id='type-id-329' visibility='default'/>
+ <var-decl name='dh' type-id='type-id-332' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='8000'>
- <var-decl name='srp' type-id='type-id-330' visibility='default'/>
+ <var-decl name='srp' type-id='type-id-333' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='4096' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-328'>
+ <class-decl name='__anonymous_struct__' size-in-bits='4096' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-331'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='params' type-id='type-id-317' visibility='default'/>
+ <var-decl name='params' type-id='type-id-320' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3840'>
- <var-decl name='x' type-id='type-id-323' visibility='default'/>
+ <var-decl name='x' type-id='type-id-326' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3904'>
- <var-decl name='y' type-id='type-id-323' visibility='default'/>
+ <var-decl name='y' type-id='type-id-326' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3968'>
<var-decl name='raw' type-id='type-id-3' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='3904' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-329'>
+ <class-decl name='__anonymous_struct__' size-in-bits='3904' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-332'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='params' type-id='type-id-317' visibility='default'/>
+ <var-decl name='params' type-id='type-id-320' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3840'>
- <var-decl name='client_Y' type-id='type-id-323' visibility='default'/>
+ <var-decl name='client_Y' type-id='type-id-326' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='576' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-330'>
+ <class-decl name='__anonymous_struct__' size-in-bits='576' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-333'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='srp_key' type-id='type-id-323' visibility='default'/>
+ <var-decl name='srp_key' type-id='type-id-326' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='srp_g' type-id='type-id-323' visibility='default'/>
+ <var-decl name='srp_g' type-id='type-id-326' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='srp_p' type-id='type-id-323' visibility='default'/>
+ <var-decl name='srp_p' type-id='type-id-326' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='A' type-id='type-id-323' visibility='default'/>
+ <var-decl name='A' type-id='type-id-326' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='B' type-id='type-id-323' visibility='default'/>
+ <var-decl name='B' type-id='type-id-326' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='u' type-id='type-id-323' visibility='default'/>
+ <var-decl name='u' type-id='type-id-326' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='b' type-id='type-id-323' visibility='default'/>
+ <var-decl name='b' type-id='type-id-326' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
- <var-decl name='a' type-id='type-id-323' visibility='default'/>
+ <var-decl name='a' type-id='type-id-326' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='x' type-id='type-id-323' visibility='default'/>
+ <var-decl name='x' type-id='type-id-326' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='binder_data_st' size-in-bits='256' is-struct='yes' visibility='default' id='type-id-331'>
+ <class-decl name='binder_data_st' size-in-bits='256' is-struct='yes' visibility='default' id='type-id-334'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='prf' type-id='type-id-21' visibility='default'/>
</data-member>
@@ -2441,11 +2445,11 @@
</data-member>
</class-decl>
- <array-type-def dimensions='1' type-id='type-id-331' size-in-bits='512' id='type-id-313'>
+ <array-type-def dimensions='1' type-id='type-id-334' size-in-bits='512' id='type-id-316'>
<subrange length='2' type-id='type-id-44' id='type-id-46'/>
</array-type-def>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-332'>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-335'>
<underlying-type type-id='type-id-47'/>
<enumerator name='GNUTLS_CRD_CERTIFICATE' value='1'/>
<enumerator name='GNUTLS_CRD_ANON' value='2'/>
@@ -2453,21 +2457,21 @@
<enumerator name='GNUTLS_CRD_PSK' value='4'/>
<enumerator name='GNUTLS_CRD_IA' value='5'/>
</enum-decl>
- <typedef-decl name='gnutls_credentials_type_t' type-id='type-id-332' id='type-id-314'/>
- <class-decl name='auth_cred_st' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-333'>
+ <typedef-decl name='gnutls_credentials_type_t' type-id='type-id-335' id='type-id-317'/>
+ <class-decl name='auth_cred_st' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-336'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='algorithm' type-id='type-id-314' visibility='default'/>
+ <var-decl name='algorithm' type-id='type-id-317' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='credentials' type-id='type-id-105' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='next' type-id='type-id-315' visibility='default'/>
+ <var-decl name='next' type-id='type-id-318' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-333' size-in-bits='64' id='type-id-315'/>
- <typedef-decl name='auth_cred_st' type-id='type-id-333' id='type-id-334'/>
- <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-316'>
+ <pointer-type-def type-id='type-id-336' size-in-bits='64' id='type-id-318'/>
+ <typedef-decl name='auth_cred_st' type-id='type-id-336' id='type-id-337'/>
+ <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-319'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='last_result' type-id='type-id-84' visibility='default'/>
</data-member>
@@ -2475,22 +2479,22 @@
<var-decl name='was_rotated' type-id='type-id-24' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='cb' type-id='type-id-335' visibility='default'/>
+ <var-decl name='cb' type-id='type-id-338' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-336' size-in-bits='64' id='type-id-337'/>
- <typedef-decl name='gnutls_stek_rotation_callback_t' type-id='type-id-337' id='type-id-335'/>
- <typedef-decl name='gnutls_key_st' type-id='type-id-310' id='type-id-17'/>
- <pointer-type-def type-id='type-id-2' size-in-bits='64' id='type-id-338'/>
+ <pointer-type-def type-id='type-id-339' size-in-bits='64' id='type-id-340'/>
+ <typedef-decl name='gnutls_stek_rotation_callback_t' type-id='type-id-340' id='type-id-338'/>
+ <typedef-decl name='gnutls_key_st' type-id='type-id-313' id='type-id-17'/>
+ <pointer-type-def type-id='type-id-2' size-in-bits='64' id='type-id-341'/>
<function-decl name='dane_verify_session_crt' mangled-name='dane_verify_session_crt' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dane_verify_session_crt@@DANE_0_0'>
<parameter type-id='type-id-12' name='s'/>
- <parameter type-id='type-id-240' name='session'/>
+ <parameter type-id='type-id-241' name='session'/>
<parameter type-id='type-id-34' name='hostname'/>
<parameter type-id='type-id-34' name='proto'/>
<parameter type-id='type-id-2' name='port'/>
<parameter type-id='type-id-2' name='sflags'/>
<parameter type-id='type-id-2' name='vflags'/>
- <parameter type-id='type-id-338' name='verify'/>
+ <parameter type-id='type-id-341' name='verify'/>
<return type-id='type-id-1'/>
</function-decl>
<function-decl name='dane_verify_crt' mangled-name='dane_verify_crt' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dane_verify_crt@@DANE_0_0'>
@@ -2503,38 +2507,38 @@
<parameter type-id='type-id-2' name='port'/>
<parameter type-id='type-id-2' name='sflags'/>
<parameter type-id='type-id-2' name='vflags'/>
- <parameter type-id='type-id-338' name='verify'/>
+ <parameter type-id='type-id-341' name='verify'/>
<return type-id='type-id-1'/>
</function-decl>
- <class-decl name='dane_query_st' size-in-bits='22592' is-struct='yes' visibility='default' id='type-id-339'>
+ <class-decl name='dane_query_st' size-in-bits='22592' is-struct='yes' visibility='default' id='type-id-342'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='result' type-id='type-id-340' visibility='default'/>
+ <var-decl name='result' type-id='type-id-343' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='data_entries' type-id='type-id-2' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='96'>
- <var-decl name='usage' type-id='type-id-341' visibility='default'/>
+ <var-decl name='usage' type-id='type-id-344' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3296'>
- <var-decl name='type' type-id='type-id-342' visibility='default'/>
+ <var-decl name='type' type-id='type-id-345' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='6496'>
- <var-decl name='match' type-id='type-id-343' visibility='default'/>
+ <var-decl name='match' type-id='type-id-346' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='9728'>
- <var-decl name='data' type-id='type-id-344' visibility='default'/>
+ <var-decl name='data' type-id='type-id-347' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='22528'>
<var-decl name='flags' type-id='type-id-2' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='22560'>
- <var-decl name='status' type-id='type-id-345' visibility='default'/>
+ <var-decl name='status' type-id='type-id-348' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='ub_result' size-in-bits='768' is-struct='yes' visibility='default' id='type-id-346'>
+ <class-decl name='ub_result' size-in-bits='768' is-struct='yes' visibility='default' id='type-id-349'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='qname' type-id='type-id-347' visibility='default'/>
+ <var-decl name='qname' type-id='type-id-350' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='qtype' type-id='type-id-1' visibility='default'/>
@@ -2543,13 +2547,13 @@
<var-decl name='qclass' type-id='type-id-1' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='data' type-id='type-id-348' visibility='default'/>
+ <var-decl name='data' type-id='type-id-351' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='len' type-id='type-id-349' visibility='default'/>
+ <var-decl name='len' type-id='type-id-352' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='canonname' type-id='type-id-347' visibility='default'/>
+ <var-decl name='canonname' type-id='type-id-350' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
<var-decl name='rcode' type-id='type-id-1' visibility='default'/>
@@ -2573,7 +2577,7 @@
<var-decl name='bogus' type-id='type-id-1' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='640'>
- <var-decl name='why_bogus' type-id='type-id-347' visibility='default'/>
+ <var-decl name='why_bogus' type-id='type-id-350' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='704'>
<var-decl name='was_ratelimited' type-id='type-id-1' visibility='default'/>
@@ -2582,85 +2586,85 @@
<var-decl name='ttl' type-id='type-id-1' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-40' size-in-bits='64' id='type-id-347'/>
- <pointer-type-def type-id='type-id-347' size-in-bits='64' id='type-id-348'/>
- <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-349'/>
- <pointer-type-def type-id='type-id-346' size-in-bits='64' id='type-id-340'/>
- <enum-decl name='dane_cert_usage_t' id='type-id-350'>
+ <pointer-type-def type-id='type-id-40' size-in-bits='64' id='type-id-350'/>
+ <pointer-type-def type-id='type-id-350' size-in-bits='64' id='type-id-351'/>
+ <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-352'/>
+ <pointer-type-def type-id='type-id-349' size-in-bits='64' id='type-id-343'/>
+ <enum-decl name='dane_cert_usage_t' id='type-id-353'>
<underlying-type type-id='type-id-47'/>
<enumerator name='DANE_CERT_USAGE_CA' value='0'/>
<enumerator name='DANE_CERT_USAGE_EE' value='1'/>
<enumerator name='DANE_CERT_USAGE_LOCAL_CA' value='2'/>
<enumerator name='DANE_CERT_USAGE_LOCAL_EE' value='3'/>
</enum-decl>
- <typedef-decl name='dane_cert_usage_t' type-id='type-id-350' id='type-id-351'/>
+ <typedef-decl name='dane_cert_usage_t' type-id='type-id-353' id='type-id-354'/>
- <array-type-def dimensions='1' type-id='type-id-351' size-in-bits='3200' alignment-in-bits='32' id='type-id-341'>
- <subrange length='100' type-id='type-id-44' id='type-id-352'/>
+ <array-type-def dimensions='1' type-id='type-id-354' size-in-bits='3200' alignment-in-bits='32' id='type-id-344'>
+ <subrange length='100' type-id='type-id-44' id='type-id-355'/>
</array-type-def>
- <enum-decl name='dane_cert_type_t' id='type-id-353'>
+ <enum-decl name='dane_cert_type_t' id='type-id-356'>
<underlying-type type-id='type-id-47'/>
<enumerator name='DANE_CERT_X509' value='0'/>
<enumerator name='DANE_CERT_PK' value='1'/>
</enum-decl>
- <typedef-decl name='dane_cert_type_t' type-id='type-id-353' id='type-id-354'/>
+ <typedef-decl name='dane_cert_type_t' type-id='type-id-356' id='type-id-357'/>
- <array-type-def dimensions='1' type-id='type-id-354' size-in-bits='3200' alignment-in-bits='32' id='type-id-342'>
- <subrange length='100' type-id='type-id-44' id='type-id-352'/>
+ <array-type-def dimensions='1' type-id='type-id-357' size-in-bits='3200' alignment-in-bits='32' id='type-id-345'>
+ <subrange length='100' type-id='type-id-44' id='type-id-355'/>
</array-type-def>
- <enum-decl name='dane_match_type_t' id='type-id-355'>
+ <enum-decl name='dane_match_type_t' id='type-id-358'>
<underlying-type type-id='type-id-47'/>
<enumerator name='DANE_MATCH_EXACT' value='0'/>
<enumerator name='DANE_MATCH_SHA2_256' value='1'/>
<enumerator name='DANE_MATCH_SHA2_512' value='2'/>
</enum-decl>
- <typedef-decl name='dane_match_type_t' type-id='type-id-355' id='type-id-356'/>
+ <typedef-decl name='dane_match_type_t' type-id='type-id-358' id='type-id-359'/>
- <array-type-def dimensions='1' type-id='type-id-356' size-in-bits='3200' alignment-in-bits='32' id='type-id-343'>
- <subrange length='100' type-id='type-id-44' id='type-id-352'/>
+ <array-type-def dimensions='1' type-id='type-id-359' size-in-bits='3200' alignment-in-bits='32' id='type-id-346'>
+ <subrange length='100' type-id='type-id-44' id='type-id-355'/>
</array-type-def>
- <array-type-def dimensions='1' type-id='type-id-3' size-in-bits='12800' id='type-id-344'>
- <subrange length='100' type-id='type-id-44' id='type-id-352'/>
+ <array-type-def dimensions='1' type-id='type-id-3' size-in-bits='12800' id='type-id-347'>
+ <subrange length='100' type-id='type-id-44' id='type-id-355'/>
</array-type-def>
- <enum-decl name='dane_query_status_t' id='type-id-357'>
+ <enum-decl name='dane_query_status_t' id='type-id-360'>
<underlying-type type-id='type-id-47'/>
<enumerator name='DANE_QUERY_UNKNOWN' value='0'/>
<enumerator name='DANE_QUERY_DNSSEC_VERIFIED' value='1'/>
<enumerator name='DANE_QUERY_BOGUS' value='2'/>
<enumerator name='DANE_QUERY_NO_DNSSEC' value='3'/>
</enum-decl>
- <typedef-decl name='dane_query_status_t' type-id='type-id-357' id='type-id-345'/>
- <pointer-type-def type-id='type-id-339' size-in-bits='64' id='type-id-358'/>
- <typedef-decl name='dane_query_t' type-id='type-id-358' id='type-id-359'/>
- <pointer-type-def type-id='type-id-359' size-in-bits='64' id='type-id-360'/>
+ <typedef-decl name='dane_query_status_t' type-id='type-id-360' id='type-id-348'/>
+ <pointer-type-def type-id='type-id-342' size-in-bits='64' id='type-id-361'/>
+ <typedef-decl name='dane_query_t' type-id='type-id-361' id='type-id-362'/>
+ <pointer-type-def type-id='type-id-362' size-in-bits='64' id='type-id-363'/>
<function-decl name='dane_query_tlsa' mangled-name='dane_query_tlsa' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dane_query_tlsa@@DANE_0_0'>
<parameter type-id='type-id-12' name='s'/>
- <parameter type-id='type-id-360' name='r'/>
+ <parameter type-id='type-id-363' name='r'/>
<parameter type-id='type-id-34' name='host'/>
<parameter type-id='type-id-34' name='proto'/>
<parameter type-id='type-id-2' name='port'/>
<return type-id='type-id-1'/>
</function-decl>
- <qualified-type-def type-id='type-id-347' const='yes' id='type-id-361'/>
- <pointer-type-def type-id='type-id-361' size-in-bits='64' id='type-id-362'/>
- <qualified-type-def type-id='type-id-1' const='yes' id='type-id-363'/>
- <pointer-type-def type-id='type-id-363' size-in-bits='64' id='type-id-364'/>
+ <qualified-type-def type-id='type-id-350' const='yes' id='type-id-364'/>
+ <pointer-type-def type-id='type-id-364' size-in-bits='64' id='type-id-365'/>
+ <qualified-type-def type-id='type-id-1' const='yes' id='type-id-366'/>
+ <pointer-type-def type-id='type-id-366' size-in-bits='64' id='type-id-367'/>
<function-decl name='dane_raw_tlsa' mangled-name='dane_raw_tlsa' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dane_raw_tlsa@@DANE_0_0'>
<parameter type-id='type-id-12' name='s'/>
- <parameter type-id='type-id-360' name='r'/>
- <parameter type-id='type-id-362' name='dane_data'/>
- <parameter type-id='type-id-364' name='dane_data_len'/>
+ <parameter type-id='type-id-363' name='r'/>
+ <parameter type-id='type-id-365' name='dane_data'/>
+ <parameter type-id='type-id-367' name='dane_data_len'/>
<parameter type-id='type-id-1' name='secure'/>
<parameter type-id='type-id-1' name='bogus'/>
<return type-id='type-id-1'/>
</function-decl>
<function-decl name='dane_query_deinit' mangled-name='dane_query_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dane_query_deinit@@DANE_0_0'>
- <parameter type-id='type-id-359' name='q'/>
+ <parameter type-id='type-id-362' name='q'/>
<return type-id='type-id-115'/>
</function-decl>
<function-decl name='dane_state_set_dlv_file' mangled-name='dane_state_set_dlv_file' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dane_state_set_dlv_file@@DANE_0_0'>
@@ -2672,49 +2676,49 @@
<parameter type-id='type-id-12' name='s'/>
<return type-id='type-id-115'/>
</function-decl>
- <pointer-type-def type-id='type-id-12' size-in-bits='64' id='type-id-365'/>
+ <pointer-type-def type-id='type-id-12' size-in-bits='64' id='type-id-368'/>
<function-decl name='dane_state_init' mangled-name='dane_state_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dane_state_init@@DANE_0_0'>
- <parameter type-id='type-id-365' name='s'/>
+ <parameter type-id='type-id-368' name='s'/>
<parameter type-id='type-id-2' name='flags'/>
<return type-id='type-id-1'/>
</function-decl>
- <pointer-type-def type-id='type-id-348' size-in-bits='64' id='type-id-366'/>
- <pointer-type-def type-id='type-id-349' size-in-bits='64' id='type-id-367'/>
+ <pointer-type-def type-id='type-id-351' size-in-bits='64' id='type-id-369'/>
+ <pointer-type-def type-id='type-id-352' size-in-bits='64' id='type-id-370'/>
<function-decl name='dane_query_to_raw_tlsa' mangled-name='dane_query_to_raw_tlsa' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dane_query_to_raw_tlsa@@DANE_0_0'>
- <parameter type-id='type-id-359' name='q'/>
- <parameter type-id='type-id-338' name='data_entries'/>
- <parameter type-id='type-id-366' name='dane_data'/>
- <parameter type-id='type-id-367' name='dane_data_len'/>
- <parameter type-id='type-id-349' name='secure'/>
- <parameter type-id='type-id-349' name='bogus'/>
+ <parameter type-id='type-id-362' name='q'/>
+ <parameter type-id='type-id-341' name='data_entries'/>
+ <parameter type-id='type-id-369' name='dane_data'/>
+ <parameter type-id='type-id-370' name='dane_data_len'/>
+ <parameter type-id='type-id-352' name='secure'/>
+ <parameter type-id='type-id-352' name='bogus'/>
<return type-id='type-id-1'/>
</function-decl>
<function-decl name='dane_query_data' mangled-name='dane_query_data' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dane_query_data@@DANE_0_0'>
- <parameter type-id='type-id-359' name='q'/>
+ <parameter type-id='type-id-362' name='q'/>
<parameter type-id='type-id-2' name='idx'/>
- <parameter type-id='type-id-338' name='usage'/>
- <parameter type-id='type-id-338' name='type'/>
- <parameter type-id='type-id-338' name='match'/>
+ <parameter type-id='type-id-341' name='usage'/>
+ <parameter type-id='type-id-341' name='type'/>
+ <parameter type-id='type-id-341' name='match'/>
<parameter type-id='type-id-7' name='data'/>
<return type-id='type-id-1'/>
</function-decl>
<function-decl name='dane_query_entries' mangled-name='dane_query_entries' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dane_query_entries@@DANE_0_0'>
- <parameter type-id='type-id-359' name='q'/>
+ <parameter type-id='type-id-362' name='q'/>
<return type-id='type-id-2'/>
</function-decl>
<function-decl name='dane_query_status' mangled-name='dane_query_status' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dane_query_status@@DANE_0_0'>
- <parameter type-id='type-id-359' name='q'/>
- <return type-id='type-id-345'/>
+ <parameter type-id='type-id-362' name='q'/>
+ <return type-id='type-id-348'/>
</function-decl>
<function-decl name='dane_verify_crt_raw' mangled-name='dane_verify_crt_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dane_verify_crt_raw@@DANE_0_0'>
<parameter type-id='type-id-12' name='s'/>
<parameter type-id='type-id-64' name='chain'/>
<parameter type-id='type-id-2' name='chain_size'/>
<parameter type-id='type-id-27' name='chain_type'/>
- <parameter type-id='type-id-359' name='r'/>
+ <parameter type-id='type-id-362' name='r'/>
<parameter type-id='type-id-2' name='sflags'/>
<parameter type-id='type-id-2' name='vflags'/>
- <parameter type-id='type-id-338' name='verify'/>
+ <parameter type-id='type-id-341' name='verify'/>
<return type-id='type-id-1'/>
</function-decl>
<function-decl name='_gnutls_buffer_init' mangled-name='_gnutls_buffer_init' visibility='default' binding='global' size-in-bits='64'>
@@ -2729,6 +2733,12 @@
<function-decl name='_gnutls_buffer_to_datum' mangled-name='_gnutls_buffer_to_datum' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-115'/>
</function-decl>
+ <function-decl name='__stack_chk_fail' mangled-name='__stack_chk_fail' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-115'/>
+ </function-decl>
+ <function-decl name='__builtin_memcpy' mangled-name='memcpy' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-115'/>
+ </function-decl>
<function-decl name='gnutls_x509_crt_init' mangled-name='gnutls_x509_crt_init' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-115'/>
</function-decl>
@@ -2744,9 +2754,6 @@
<function-decl name='gnutls_certificate_get_issuer' mangled-name='gnutls_certificate_get_issuer' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-115'/>
</function-decl>
- <function-decl name='__builtin_memcpy' mangled-name='memcpy' visibility='default' binding='global' size-in-bits='64'>
- <return type-id='type-id-115'/>
- </function-decl>
<function-decl name='gnutls_x509_crt_export2' mangled-name='gnutls_x509_crt_export2' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-115'/>
</function-decl>
@@ -2774,7 +2781,7 @@
<function-decl name='gnutls_pubkey_deinit' mangled-name='gnutls_pubkey_deinit' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-115'/>
</function-decl>
- <function-decl name='snprintf' mangled-name='snprintf' visibility='default' binding='global' size-in-bits='64'>
+ <function-decl name='__builtin___snprintf_chk' mangled-name='__snprintf_chk' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-115'/>
</function-decl>
<function-decl name='ub_resolve' mangled-name='ub_resolve' visibility='default' binding='global' size-in-bits='64'>
@@ -2816,50 +2823,56 @@
<function-decl name='gnutls_x509_crt_verify' mangled-name='gnutls_x509_crt_verify' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-115'/>
</function-decl>
- <function-type size-in-bits='64' id='type-id-266'>
- <parameter type-id='type-id-240'/>
+ <function-type size-in-bits='64' id='type-id-267'>
+ <parameter type-id='type-id-241'/>
<return type-id='type-id-1'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-242'>
- <parameter type-id='type-id-240'/>
+ <function-type size-in-bits='64' id='type-id-273'>
<parameter type-id='type-id-241'/>
+ <parameter type-id='type-id-34'/>
+ <parameter type-id='type-id-64'/>
<return type-id='type-id-1'/>
</function-type>
<function-type size-in-bits='64' id='type-id-243'>
- <parameter type-id='type-id-240'/>
- <parameter type-id='type-id-195'/>
+ <parameter type-id='type-id-241'/>
+ <parameter type-id='type-id-242'/>
+ <return type-id='type-id-1'/>
+ </function-type>
+ <function-type size-in-bits='64' id='type-id-244'>
+ <parameter type-id='type-id-241'/>
+ <parameter type-id='type-id-196'/>
<parameter type-id='type-id-103'/>
<return type-id='type-id-1'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-268'>
- <parameter type-id='type-id-240'/>
+ <function-type size-in-bits='64' id='type-id-269'>
+ <parameter type-id='type-id-241'/>
<parameter type-id='type-id-2'/>
<parameter type-id='type-id-2'/>
<parameter type-id='type-id-2'/>
<parameter type-id='type-id-64'/>
<return type-id='type-id-1'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-281'>
- <parameter type-id='type-id-240'/>
+ <function-type size-in-bits='64' id='type-id-284'>
+ <parameter type-id='type-id-241'/>
<parameter type-id='type-id-105'/>
<parameter type-id='type-id-7'/>
<return type-id='type-id-1'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-258'>
+ <function-type size-in-bits='64' id='type-id-259'>
<parameter type-id='type-id-158'/>
<return type-id='type-id-1'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-246'>
+ <function-type size-in-bits='64' id='type-id-247'>
<parameter type-id='type-id-158'/>
<parameter type-id='type-id-2'/>
<return type-id='type-id-1'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-264'>
+ <function-type size-in-bits='64' id='type-id-265'>
<parameter type-id='type-id-105'/>
<parameter type-id='type-id-3'/>
<return type-id='type-id-1'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-260'>
+ <function-type size-in-bits='64' id='type-id-261'>
<parameter type-id='type-id-105'/>
<parameter type-id='type-id-3'/>
<parameter type-id='type-id-3'/>
@@ -2892,24 +2905,24 @@
<parameter type-id='type-id-103'/>
<return type-id='type-id-1'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-262'>
+ <function-type size-in-bits='64' id='type-id-263'>
<parameter type-id='type-id-105'/>
<parameter type-id='type-id-3'/>
<return type-id='type-id-3'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-256'>
+ <function-type size-in-bits='64' id='type-id-257'>
<parameter type-id='type-id-158'/>
- <parameter type-id='type-id-255'/>
+ <parameter type-id='type-id-256'/>
<parameter type-id='type-id-1'/>
- <return type-id='type-id-249'/>
+ <return type-id='type-id-250'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-250'>
+ <function-type size-in-bits='64' id='type-id-251'>
<parameter type-id='type-id-158'/>
<parameter type-id='type-id-105'/>
<parameter type-id='type-id-103'/>
- <return type-id='type-id-249'/>
+ <return type-id='type-id-250'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-336'>
+ <function-type size-in-bits='64' id='type-id-339'>
<parameter type-id='type-id-64'/>
<parameter type-id='type-id-64'/>
<parameter type-id='type-id-84'/>
@@ -2930,27 +2943,38 @@
<return type-id='type-id-105'/>
</function-type>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='dane-params.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/libdane' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='dane-params.c' comp-dir-path='/root/gnutls/libdane' language='LANG_C99'>
<function-decl name='dane_cert_usage_name' mangled-name='dane_cert_usage_name' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dane_cert_usage_name@@DANE_0_0'>
- <parameter type-id='type-id-351' name='usage'/>
+ <parameter type-id='type-id-354' name='usage'/>
<return type-id='type-id-34'/>
</function-decl>
<function-decl name='dane_match_type_name' mangled-name='dane_match_type_name' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dane_match_type_name@@DANE_0_0'>
- <parameter type-id='type-id-356' name='type'/>
+ <parameter type-id='type-id-359' name='type'/>
<return type-id='type-id-34'/>
</function-decl>
<function-decl name='dane_cert_type_name' mangled-name='dane_cert_type_name' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dane_cert_type_name@@DANE_0_0'>
- <parameter type-id='type-id-354' name='type'/>
+ <parameter type-id='type-id-357' name='type'/>
<return type-id='type-id-34'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='errors.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/libdane' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='errors.c' comp-dir-path='/root/gnutls/libdane' language='LANG_C99'>
<function-decl name='dane_strerror' mangled-name='dane_strerror' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dane_strerror@@DANE_0_0'>
<parameter type-id='type-id-1' name='error'/>
<return type-id='type-id-34'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='read-file.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/gl' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='hash.c' comp-dir-path='/root/gnutls/gl' language='LANG_C99'>
+ <function-decl name='malloc' mangled-name='malloc' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-115'/>
+ </function-decl>
+ <function-decl name='abort' mangled-name='abort' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-115'/>
+ </function-decl>
+ <function-decl name='__fprintf_chk' mangled-name='__fprintf_chk' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-115'/>
+ </function-decl>
+ </abi-instr>
+ <abi-instr version='1.0' address-size='64' path='read-file.c' comp-dir-path='/root/gnutls/gl' language='LANG_C99'>
<function-decl name='fopen' mangled-name='fopen' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-115'/>
</function-decl>
@@ -2972,25 +2996,19 @@
<function-decl name='realloc' mangled-name='realloc' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-115'/>
</function-decl>
- <function-decl name='fread' mangled-name='fread' visibility='default' binding='global' size-in-bits='64'>
+ <function-decl name='__fread_alias' mangled-name='fread' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-115'/>
</function-decl>
<function-decl name='ferror' mangled-name='ferror' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-115'/>
</function-decl>
- <function-decl name='malloc' mangled-name='malloc' visibility='default' binding='global' size-in-bits='64'>
- <return type-id='type-id-115'/>
- </function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='asnprintf.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/gl' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='asnprintf.c' comp-dir-path='/root/gnutls/gl' language='LANG_C99'>
<function-decl name='vasnprintf' mangled-name='vasnprintf' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-115'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='vasnprintf.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/gl' language='LANG_C99'>
- <function-decl name='abort' mangled-name='abort' visibility='default' binding='global' size-in-bits='64'>
- <return type-id='type-id-115'/>
- </function-decl>
+ <abi-instr version='1.0' address-size='64' path='vasnprintf.c' comp-dir-path='/root/gnutls/gl' language='LANG_C99'>
<function-decl name='printf_parse' mangled-name='printf_parse' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-115'/>
</function-decl>
diff --git a/devel/libgnutls-latest-x86_64.abi b/devel/libgnutls-latest-x86_64.abi
index cab31da9a8..2242bcc785 100644
--- a/devel/libgnutls-latest-x86_64.abi
+++ b/devel/libgnutls-latest-x86_64.abi
@@ -48,6 +48,7 @@
<elf-symbol name='_gnutls_mpi_log' version='GNUTLS_PRIVATE_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_gnutls_pkcs11_token_get_url' version='GNUTLS_PRIVATE_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_gnutls_pkcs12_string_to_key' version='GNUTLS_PRIVATE_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+ <elf-symbol name='gnutls_prf_hash_get' version='GNUTLS_3_6_13' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_gnutls_prf_raw' version='GNUTLS_FIPS140_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_gnutls_record_overhead' version='GNUTLS_PRIVATE_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_gnutls_record_set_default_version' version='GNUTLS_PRIVATE_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
@@ -270,6 +271,7 @@
<elf-symbol name='gnutls_ext_get_current_msg' version='GNUTLS_3_6_3' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_ext_get_data' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_ext_get_name' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+ <elf-symbol name='gnutls_ext_get_name2' version='GNUTLS_3_6_14' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_ext_raw_parse' version='GNUTLS_3_6_3' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_ext_register' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_ext_set_data' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
@@ -319,6 +321,8 @@
<elf-symbol name='gnutls_hex_decode' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_hex_encode2' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_hex_encode' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+ <elf-symbol name='gnutls_hkdf_expand' version='GNUTLS_3_6_13' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+ <elf-symbol name='gnutls_hkdf_extract' version='GNUTLS_3_6_13' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_hmac' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_hmac_copy' version='GNUTLS_3_6_9' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_hmac_deinit' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
@@ -465,6 +469,7 @@
<elf-symbol name='gnutls_openpgp_set_recv_key_function' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_packet_deinit' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_packet_get' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+ <elf-symbol name='gnutls_pbkdf2' version='GNUTLS_3_6_13' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_pcert_deinit' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_pcert_export_openpgp' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_pcert_export_x509' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
@@ -594,6 +599,7 @@
<elf-symbol name='gnutls_pkcs7_import' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_pkcs7_init' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_pkcs7_print' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+ <elf-symbol name='gnutls_pkcs7_print_signature_info' version='GNUTLS_3_6_14' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_pkcs7_set_crl' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_pkcs7_set_crl_raw' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_pkcs7_set_crt' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
@@ -681,11 +687,15 @@
<elf-symbol name='gnutls_psk_client_get_hint' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_psk_free_client_credentials' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_psk_free_server_credentials' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+ <elf-symbol name='gnutls_psk_server_get_username2' version='GNUTLS_3_6_13' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_psk_server_get_username' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+ <elf-symbol name='gnutls_psk_set_client_credentials2' version='GNUTLS_3_6_13' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_psk_set_client_credentials' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+ <elf-symbol name='gnutls_psk_set_client_credentials_function2' version='GNUTLS_3_6_13' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_psk_set_client_credentials_function' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_psk_set_params_function' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_psk_set_server_credentials_file' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+ <elf-symbol name='gnutls_psk_set_server_credentials_function2' version='GNUTLS_3_6_13' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_psk_set_server_credentials_function' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_psk_set_server_credentials_hint' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_psk_set_server_dh_params' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
@@ -784,6 +794,7 @@
<elf-symbol name='gnutls_session_get_flags' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_session_get_id2' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_session_get_id' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+ <elf-symbol name='gnutls_session_get_keylog_function' version='GNUTLS_3_6_13' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_session_get_master_secret' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_session_get_ptr' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_session_get_random' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
@@ -793,6 +804,7 @@
<elf-symbol name='gnutls_session_resumption_requested' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_session_set_data' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_session_set_id' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+ <elf-symbol name='gnutls_session_set_keylog_function' version='GNUTLS_3_6_13' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_session_set_premaster' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_session_set_ptr' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_session_set_verify_cert2' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
@@ -1253,6 +1265,7 @@
<elf-symbol name='gnutls_x509_trust_list_remove_cas' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_x509_trust_list_remove_trust_file' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_x509_trust_list_remove_trust_mem' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+ <elf-symbol name='gnutls_x509_trust_list_set_getissuer_function' version='GNUTLS_3_7_0' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_x509_trust_list_verify_crt2' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_x509_trust_list_verify_crt' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_x509_trust_list_verify_named_crt' version='GNUTLS_3_4' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
@@ -1301,11 +1314,11 @@
<elf-symbol name='gnutls_srp_8192_group_prime' size='16' version='GNUTLS_3_6_2' is-default-version='yes' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='gnutls_strdup' size='8' version='GNUTLS_3_4' is-default-version='yes' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
</elf-variable-symbols>
- <abi-instr version='1.0' address-size='64' path='range.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='range.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<type-decl name='long int' size-in-bits='64' id='type-id-1'/>
<typedef-decl name='__ssize_t' type-id='type-id-1' id='type-id-2'/>
<typedef-decl name='ssize_t' type-id='type-id-2' id='type-id-3'/>
- <class-decl name='gnutls_session_int' size-in-bits='52736' is-struct='yes' visibility='default' id='type-id-4'>
+ <class-decl name='gnutls_session_int' size-in-bits='52800' is-struct='yes' visibility='default' id='type-id-4'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='security_parameters' type-id='type-id-5' visibility='default'/>
</data-member>
@@ -1315,7 +1328,7 @@
<data-member access='public' layout-offset-in-bits='2304'>
<var-decl name='internals' type-id='type-id-7' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='30080'>
+ <data-member access='public' layout-offset-in-bits='30144'>
<var-decl name='key' type-id='type-id-8' visibility='default'/>
</data-member>
</class-decl>
@@ -1502,6 +1515,13 @@
<enumerator name='GNUTLS_CIPHER_AES_128_XTS' value='32'/>
<enumerator name='GNUTLS_CIPHER_AES_256_XTS' value='33'/>
<enumerator name='GNUTLS_CIPHER_GOST28147_TC26Z_CNT' value='34'/>
+ <enumerator name='GNUTLS_CIPHER_CHACHA20_64' value='35'/>
+ <enumerator name='GNUTLS_CIPHER_CHACHA20_32' value='36'/>
+ <enumerator name='GNUTLS_CIPHER_AES_128_SIV' value='37'/>
+ <enumerator name='GNUTLS_CIPHER_AES_256_SIV' value='38'/>
+ <enumerator name='GNUTLS_CIPHER_AES_192_GCM' value='39'/>
+ <enumerator name='GNUTLS_CIPHER_MAGMA_CTR_ACPKM' value='40'/>
+ <enumerator name='GNUTLS_CIPHER_KUZNYECHIK_CTR_ACPKM' value='41'/>
<enumerator name='GNUTLS_CIPHER_IDEA_PGP_CFB' value='200'/>
<enumerator name='GNUTLS_CIPHER_3DES_PGP_CFB' value='201'/>
<enumerator name='GNUTLS_CIPHER_CAST5_PGP_CFB' value='202'/>
@@ -1565,6 +1585,8 @@
<enumerator name='GNUTLS_MAC_GOST28147_TC26Z_IMIT' value='208'/>
<enumerator name='GNUTLS_MAC_SHAKE_128' value='209'/>
<enumerator name='GNUTLS_MAC_SHAKE_256' value='210'/>
+ <enumerator name='GNUTLS_MAC_MAGMA_OMAC' value='211'/>
+ <enumerator name='GNUTLS_MAC_KUZNYECHIK_OMAC' value='212'/>
</enum-decl>
<typedef-decl name='gnutls_mac_algorithm_t' type-id='type-id-44' id='type-id-31'/>
<enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-45'>
@@ -1867,6 +1889,9 @@
<var-decl name='key_shares' type-id='type-id-75' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='280'>
+ <var-decl name='multi_ocsp' type-id='type-id-75' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='288'>
<var-decl name='tls_sig_sem' type-id='type-id-16' visibility='default'/>
</data-member>
</class-decl>
@@ -2169,7 +2194,7 @@
<subrange length='4' type-id='type-id-38' id='type-id-136'/>
</array-type-def>
- <class-decl name='__anonymous_struct__' size-in-bits='27776' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-7' visibility='default' id='type-id-137'>
+ <class-decl name='__anonymous_struct__' size-in-bits='27840' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-7' visibility='default' id='type-id-137'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='record_buffer' type-id='type-id-138' visibility='default'/>
</data-member>
@@ -2372,240 +2397,243 @@
<var-decl name='h_post' type-id='type-id-160' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10496'>
- <var-decl name='selected_cert_list' type-id='type-id-161' visibility='default'/>
+ <var-decl name='keylog_func' type-id='type-id-161' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10560'>
- <var-decl name='selected_cert_list_length' type-id='type-id-11' visibility='default'/>
+ <var-decl name='selected_cert_list' type-id='type-id-162' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10624'>
- <var-decl name='selected_key' type-id='type-id-162' visibility='default'/>
+ <var-decl name='selected_cert_list_length' type-id='type-id-11' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10688'>
- <var-decl name='selected_ocsp' type-id='type-id-163' visibility='default'/>
+ <var-decl name='selected_key' type-id='type-id-163' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10752'>
- <var-decl name='selected_ocsp_length' type-id='type-id-11' visibility='default'/>
+ <var-decl name='selected_ocsp' type-id='type-id-164' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10816'>
- <var-decl name='selected_ocsp_func' type-id='type-id-164' visibility='default'/>
+ <var-decl name='selected_ocsp_length' type-id='type-id-11' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10880'>
- <var-decl name='selected_ocsp_func_ptr' type-id='type-id-101' visibility='default'/>
+ <var-decl name='selected_ocsp_func' type-id='type-id-165' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10944'>
+ <var-decl name='selected_ocsp_func_ptr' type-id='type-id-101' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='11008'>
<var-decl name='selected_need_free' type-id='type-id-75' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='10952'>
- <var-decl name='default_record_version' type-id='type-id-165' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='11016'>
+ <var-decl name='default_record_version' type-id='type-id-166' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='10968'>
- <var-decl name='default_hello_version' type-id='type-id-165' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='11032'>
+ <var-decl name='default_hello_version' type-id='type-id-166' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11008'>
+ <data-member access='public' layout-offset-in-bits='11072'>
<var-decl name='user_ptr' type-id='type-id-101' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11072'>
+ <data-member access='public' layout-offset-in-bits='11136'>
<var-decl name='direction' type-id='type-id-75' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11080'>
+ <data-member access='public' layout-offset-in-bits='11144'>
<var-decl name='ignore_rdn_sequence' type-id='type-id-75' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11088'>
- <var-decl name='rsa_pms_version' type-id='type-id-165' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='11152'>
+ <var-decl name='rsa_pms_version' type-id='type-id-166' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11104'>
+ <data-member access='public' layout-offset-in-bits='11168'>
<var-decl name='errnum' type-id='type-id-22' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11136'>
+ <data-member access='public' layout-offset-in-bits='11200'>
<var-decl name='initial_negotiation_completed' type-id='type-id-75' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11200'>
+ <data-member access='public' layout-offset-in-bits='11264'>
<var-decl name='post_negotiation_lock' type-id='type-id-101' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11264'>
+ <data-member access='public' layout-offset-in-bits='11328'>
<var-decl name='transport' type-id='type-id-74' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11328'>
- <var-decl name='dtls' type-id='type-id-166' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='11392'>
+ <var-decl name='dtls' type-id='type-id-167' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11904'>
+ <data-member access='public' layout-offset-in-bits='11968'>
<var-decl name='handshake_suspicious_loops' type-id='type-id-10' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11936'>
+ <data-member access='public' layout-offset-in-bits='12000'>
<var-decl name='handshake_in_progress' type-id='type-id-75' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11944'>
+ <data-member access='public' layout-offset-in-bits='12008'>
<var-decl name='premaster_set' type-id='type-id-75' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11968'>
+ <data-member access='public' layout-offset-in-bits='12032'>
<var-decl name='cb_tls_unique_len' type-id='type-id-10' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='12000'>
- <var-decl name='cb_tls_unique' type-id='type-id-167' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='12064'>
+ <var-decl name='cb_tls_unique' type-id='type-id-168' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='12288'>
- <var-decl name='handshake_start_time' type-id='type-id-168' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='12352'>
+ <var-decl name='handshake_start_time' type-id='type-id-169' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='12416'>
- <var-decl name='handshake_abs_timeout' type-id='type-id-168' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='12480'>
+ <var-decl name='handshake_abs_timeout' type-id='type-id-169' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='12544'>
+ <data-member access='public' layout-offset-in-bits='12608'>
<var-decl name='ertt' type-id='type-id-10' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='12576'>
+ <data-member access='public' layout-offset-in-bits='12640'>
<var-decl name='handshake_timeout_ms' type-id='type-id-10' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='12608'>
+ <data-member access='public' layout-offset-in-bits='12672'>
<var-decl name='record_timeout_ms' type-id='type-id-10' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='12672'>
+ <data-member access='public' layout-offset-in-bits='12736'>
<var-decl name='post_handshake_cr_context' type-id='type-id-62' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='12800'>
+ <data-member access='public' layout-offset-in-bits='12864'>
<var-decl name='post_handshake_hash_buffer' type-id='type-id-139' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='13056'>
+ <data-member access='public' layout-offset-in-bits='13120'>
<var-decl name='hsk_flags' type-id='type-id-10' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='13120'>
- <var-decl name='last_key_update' type-id='type-id-168' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='13184'>
+ <var-decl name='last_key_update' type-id='type-id-169' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='13248'>
+ <data-member access='public' layout-offset-in-bits='13312'>
<var-decl name='key_update_count' type-id='type-id-10' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='13312'>
+ <data-member access='public' layout-offset-in-bits='13376'>
<var-decl name='full_client_hello' type-id='type-id-139' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='13568'>
+ <data-member access='public' layout-offset-in-bits='13632'>
<var-decl name='extensions_offset' type-id='type-id-22' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='13632'>
+ <data-member access='public' layout-offset-in-bits='13696'>
<var-decl name='hb_local_data' type-id='type-id-139' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='13888'>
+ <data-member access='public' layout-offset-in-bits='13952'>
<var-decl name='hb_remote_data' type-id='type-id-139' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='14144'>
- <var-decl name='hb_ping_start' type-id='type-id-168' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='14272'>
- <var-decl name='hb_ping_sent' type-id='type-id-168' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='14400'>
- <var-decl name='hb_actual_retrans_timeout_ms' type-id='type-id-10' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='14208'>
+ <var-decl name='hb_ping_start' type-id='type-id-169' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='14432'>
- <var-decl name='hb_retrans_timeout_ms' type-id='type-id-10' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='14336'>
+ <var-decl name='hb_ping_sent' type-id='type-id-169' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='14464'>
- <var-decl name='hb_total_timeout_ms' type-id='type-id-10' visibility='default'/>
+ <var-decl name='hb_actual_retrans_timeout_ms' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='14496'>
- <var-decl name='ocsp_check_ok' type-id='type-id-75' visibility='default'/>
+ <var-decl name='hb_retrans_timeout_ms' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='14528'>
- <var-decl name='hb_state' type-id='type-id-169' visibility='default'/>
+ <var-decl name='hb_total_timeout_ms' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='14560'>
- <var-decl name='recv_state' type-id='type-id-170' visibility='default'/>
+ <var-decl name='ocsp_check_ok' type-id='type-id-75' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='14592'>
- <var-decl name='sc_random_set' type-id='type-id-75' visibility='default'/>
+ <var-decl name='hb_state' type-id='type-id-170' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='14624'>
+ <var-decl name='recv_state' type-id='type-id-171' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='14656'>
- <var-decl name='flags' type-id='type-id-80' visibility='default'/>
+ <var-decl name='sc_random_set' type-id='type-id-75' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='14720'>
- <var-decl name='verify_callback' type-id='type-id-171' visibility='default'/>
+ <var-decl name='flags' type-id='type-id-80' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='14784'>
- <var-decl name='vc_data' type-id='type-id-172' visibility='default'/>
+ <var-decl name='verify_callback' type-id='type-id-172' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='14848'>
- <var-decl name='vc_sdata' type-id='type-id-173' visibility='default'/>
+ <var-decl name='vc_data' type-id='type-id-173' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='14912'>
+ <var-decl name='vc_sdata' type-id='type-id-174' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='15040'>
+ <data-member access='public' layout-offset-in-bits='15104'>
<var-decl name='vc_elements' type-id='type-id-10' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='15072'>
+ <data-member access='public' layout-offset-in-bits='15136'>
<var-decl name='vc_status' type-id='type-id-10' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='15104'>
+ <data-member access='public' layout-offset-in-bits='15168'>
<var-decl name='additional_verify_flags' type-id='type-id-10' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='15136'>
+ <data-member access='public' layout-offset-in-bits='15200'>
<var-decl name='cert_hash' type-id='type-id-15' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='15392'>
+ <data-member access='public' layout-offset-in-bits='15456'>
<var-decl name='cert_hash_set' type-id='type-id-75' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='15400'>
- <var-decl name='saved_username' type-id='type-id-174' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='15464'>
+ <var-decl name='saved_username' type-id='type-id-175' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='16432'>
+ <data-member access='public' layout-offset-in-bits='16496'>
<var-decl name='saved_username_set' type-id='type-id-75' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='16448'>
- <var-decl name='tfo' type-id='type-id-175' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='17664'>
- <var-decl name='rsup' type-id='type-id-176' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='16512'>
+ <var-decl name='tfo' type-id='type-id-176' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='17728'>
- <var-decl name='rsup_size' type-id='type-id-10' visibility='default'/>
+ <var-decl name='rsup' type-id='type-id-177' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='17792'>
- <var-decl name='rexts' type-id='type-id-177' visibility='default'/>
+ <var-decl name='rsup_size' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='17856'>
- <var-decl name='rexts_size' type-id='type-id-10' visibility='default'/>
+ <var-decl name='rexts' type-id='type-id-178' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='17920'>
- <var-decl name='ext_data' type-id='type-id-178' visibility='default'/>
+ <var-decl name='rexts_size' type-id='type-id-10' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='17984'>
+ <var-decl name='ext_data' type-id='type-id-179' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='24064'>
+ <data-member access='public' layout-offset-in-bits='24128'>
<var-decl name='used_exts' type-id='type-id-18' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='24096'>
- <var-decl name='ext_msg' type-id='type-id-179' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='24160'>
+ <var-decl name='ext_msg' type-id='type-id-180' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='24128'>
+ <data-member access='public' layout-offset-in-bits='24192'>
<var-decl name='max_recv_size' type-id='type-id-10' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='24192'>
+ <data-member access='public' layout-offset-in-bits='24256'>
<var-decl name='cand_ec_group' type-id='type-id-20' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='24256'>
+ <data-member access='public' layout-offset-in-bits='24320'>
<var-decl name='cand_dh_group' type-id='type-id-20' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='24320'>
+ <data-member access='public' layout-offset-in-bits='24384'>
<var-decl name='cand_group' type-id='type-id-20' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='24384'>
- <var-decl name='hrr_cs' type-id='type-id-165' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='24448'>
+ <var-decl name='hrr_cs' type-id='type-id-166' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='24416'>
+ <data-member access='public' layout-offset-in-bits='24480'>
<var-decl name='session_ticket_renew' type-id='type-id-22' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='24448'>
- <var-decl name='tls13_ticket' type-id='type-id-180' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='27584'>
- <var-decl name='early_data_received' type-id='type-id-18' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='24512'>
+ <var-decl name='tls13_ticket' type-id='type-id-181' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='27648'>
- <var-decl name='anti_replay' type-id='type-id-181' visibility='default'/>
+ <var-decl name='early_data_received' type-id='type-id-18' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='27712'>
+ <var-decl name='anti_replay' type-id='type-id-182' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='27776'>
<var-decl name='epoch_lock' type-id='type-id-101' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='mbuffer_head_st' size-in-bits='256' is-struct='yes' visibility='default' id='type-id-182'>
+ <class-decl name='mbuffer_head_st' size-in-bits='256' is-struct='yes' visibility='default' id='type-id-183'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='head' type-id='type-id-183' visibility='default'/>
+ <var-decl name='head' type-id='type-id-184' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='tail' type-id='type-id-183' visibility='default'/>
+ <var-decl name='tail' type-id='type-id-184' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
<var-decl name='length' type-id='type-id-10' visibility='default'/>
@@ -2614,12 +2642,12 @@
<var-decl name='byte_length' type-id='type-id-99' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='mbuffer_st' size-in-bits='640' is-struct='yes' visibility='default' id='type-id-184'>
+ <class-decl name='mbuffer_st' size-in-bits='640' is-struct='yes' visibility='default' id='type-id-185'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='next' type-id='type-id-183' visibility='default'/>
+ <var-decl name='next' type-id='type-id-184' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='prev' type-id='type-id-183' visibility='default'/>
+ <var-decl name='prev' type-id='type-id-184' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
<var-decl name='mark' type-id='type-id-99' visibility='default'/>
@@ -2634,7 +2662,7 @@
<var-decl name='uhead_mark' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='416'>
- <var-decl name='type' type-id='type-id-185' visibility='default'/>
+ <var-decl name='type' type-id='type-id-186' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
<var-decl name='record_sequence' type-id='type-id-80' visibility='default'/>
@@ -2643,14 +2671,14 @@
<var-decl name='epoch' type-id='type-id-11' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='544'>
- <var-decl name='htype' type-id='type-id-186' visibility='default'/>
+ <var-decl name='htype' type-id='type-id-187' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
<var-decl name='handshake_sequence' type-id='type-id-11' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-184' size-in-bits='64' id='type-id-183'/>
- <enum-decl name='content_type_t' id='type-id-187'>
+ <pointer-type-def type-id='type-id-185' size-in-bits='64' id='type-id-184'/>
+ <enum-decl name='content_type_t' id='type-id-188'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_CHANGE_CIPHER_SPEC' value='20'/>
<enumerator name='GNUTLS_ALERT' value='21'/>
@@ -2658,8 +2686,8 @@
<enumerator name='GNUTLS_APPLICATION_DATA' value='23'/>
<enumerator name='GNUTLS_HEARTBEAT' value='24'/>
</enum-decl>
- <typedef-decl name='content_type_t' type-id='type-id-187' id='type-id-185'/>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-188'>
+ <typedef-decl name='content_type_t' type-id='type-id-188' id='type-id-186'/>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-189'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_HANDSHAKE_HELLO_REQUEST' value='0'/>
<enumerator name='GNUTLS_HANDSHAKE_CLIENT_HELLO' value='1'/>
@@ -2682,15 +2710,15 @@
<enumerator name='GNUTLS_HANDSHAKE_CLIENT_HELLO_V2' value='1024'/>
<enumerator name='GNUTLS_HANDSHAKE_HELLO_RETRY_REQUEST' value='1025'/>
</enum-decl>
- <typedef-decl name='gnutls_handshake_description_t' type-id='type-id-188' id='type-id-186'/>
- <typedef-decl name='mbuffer_st' type-id='type-id-184' id='type-id-189'/>
- <typedef-decl name='mbuffer_head_st' type-id='type-id-182' id='type-id-138'/>
- <class-decl name='gnutls_buffer_st' size-in-bits='256' is-struct='yes' visibility='default' id='type-id-190'>
+ <typedef-decl name='gnutls_handshake_description_t' type-id='type-id-189' id='type-id-187'/>
+ <typedef-decl name='mbuffer_st' type-id='type-id-185' id='type-id-190'/>
+ <typedef-decl name='mbuffer_head_st' type-id='type-id-183' id='type-id-138'/>
+ <class-decl name='gnutls_buffer_st' size-in-bits='256' is-struct='yes' visibility='default' id='type-id-191'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='allocd' type-id='type-id-191' visibility='default'/>
+ <var-decl name='allocd' type-id='type-id-192' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='data' type-id='type-id-191' visibility='default'/>
+ <var-decl name='data' type-id='type-id-192' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
<var-decl name='max_length' type-id='type-id-99' visibility='default'/>
@@ -2699,22 +2727,22 @@
<var-decl name='length' type-id='type-id-99' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-16' size-in-bits='64' id='type-id-191'/>
- <typedef-decl name='gnutls_buffer_st' type-id='type-id-190' id='type-id-139'/>
- <enum-decl name='send_ticket_state_t' id='type-id-192'>
+ <pointer-type-def type-id='type-id-16' size-in-bits='64' id='type-id-192'/>
+ <typedef-decl name='gnutls_buffer_st' type-id='type-id-191' id='type-id-139'/>
+ <enum-decl name='send_ticket_state_t' id='type-id-193'>
<underlying-type type-id='type-id-41'/>
<enumerator name='TICKET_STATE0' value='0'/>
<enumerator name='TICKET_STATE1' value='1'/>
</enum-decl>
- <typedef-decl name='send_ticket_state_t' type-id='type-id-192' id='type-id-140'/>
- <enum-decl name='bye_state_t' id='type-id-193'>
+ <typedef-decl name='send_ticket_state_t' type-id='type-id-193' id='type-id-140'/>
+ <enum-decl name='bye_state_t' id='type-id-194'>
<underlying-type type-id='type-id-41'/>
<enumerator name='BYE_STATE0' value='0'/>
<enumerator name='BYE_STATE1' value='1'/>
<enumerator name='BYE_STATE2' value='2'/>
</enum-decl>
- <typedef-decl name='bye_state_t' type-id='type-id-193' id='type-id-141'/>
- <enum-decl name='reauth_state_t' id='type-id-194'>
+ <typedef-decl name='bye_state_t' type-id='type-id-194' id='type-id-141'/>
+ <enum-decl name='reauth_state_t' id='type-id-195'>
<underlying-type type-id='type-id-41'/>
<enumerator name='REAUTH_STATE0' value='0'/>
<enumerator name='REAUTH_STATE1' value='1'/>
@@ -2723,8 +2751,8 @@
<enumerator name='REAUTH_STATE4' value='4'/>
<enumerator name='REAUTH_STATE5' value='5'/>
</enum-decl>
- <typedef-decl name='reauth_state_t' type-id='type-id-194' id='type-id-142'/>
- <enum-decl name='handshake_state_t' id='type-id-195'>
+ <typedef-decl name='reauth_state_t' type-id='type-id-195' id='type-id-142'/>
+ <enum-decl name='handshake_state_t' id='type-id-196'>
<underlying-type type-id='type-id-41'/>
<enumerator name='STATE0' value='0'/>
<enumerator name='STATE1' value='1'/>
@@ -2778,46 +2806,46 @@
<enumerator name='STATE115' value='115'/>
<enumerator name='STATE150' value='116'/>
</enum-decl>
- <typedef-decl name='handshake_state_t' type-id='type-id-195' id='type-id-143'/>
- <class-decl name='gnutls_priority_st' size-in-bits='41792' is-struct='yes' visibility='default' id='type-id-196'>
+ <typedef-decl name='handshake_state_t' type-id='type-id-196' id='type-id-143'/>
+ <class-decl name='gnutls_priority_st' size-in-bits='41792' is-struct='yes' visibility='default' id='type-id-197'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='protocol' type-id='type-id-197' visibility='default'/>
+ <var-decl name='protocol' type-id='type-id-198' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2080'>
- <var-decl name='client_ctype' type-id='type-id-197' visibility='default'/>
+ <var-decl name='client_ctype' type-id='type-id-198' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='4160'>
- <var-decl name='server_ctype' type-id='type-id-197' visibility='default'/>
+ <var-decl name='server_ctype' type-id='type-id-198' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='6240'>
- <var-decl name='_cipher' type-id='type-id-197' visibility='default'/>
+ <var-decl name='_cipher' type-id='type-id-198' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='8320'>
- <var-decl name='_mac' type-id='type-id-197' visibility='default'/>
+ <var-decl name='_mac' type-id='type-id-198' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10400'>
- <var-decl name='_kx' type-id='type-id-197' visibility='default'/>
+ <var-decl name='_kx' type-id='type-id-198' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='12480'>
- <var-decl name='_sign_algo' type-id='type-id-197' visibility='default'/>
+ <var-decl name='_sign_algo' type-id='type-id-198' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='14560'>
- <var-decl name='_supported_ecc' type-id='type-id-197' visibility='default'/>
+ <var-decl name='_supported_ecc' type-id='type-id-198' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='16640'>
- <var-decl name='groups' type-id='type-id-198' visibility='default'/>
+ <var-decl name='groups' type-id='type-id-199' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='20800'>
- <var-decl name='sigalg' type-id='type-id-199' visibility='default'/>
+ <var-decl name='sigalg' type-id='type-id-200' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='24960'>
- <var-decl name='cs' type-id='type-id-200' visibility='default'/>
+ <var-decl name='cs' type-id='type-id-201' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='41408'>
<var-decl name='no_extensions' type-id='type-id-75' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='41440'>
- <var-decl name='sr' type-id='type-id-201' visibility='default'/>
+ <var-decl name='sr' type-id='type-id-202' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='41472'>
<var-decl name='min_record_version' type-id='type-id-75' visibility='default'/>
@@ -2847,7 +2875,7 @@
<var-decl name='fallback' type-id='type-id-75' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='41600'>
- <var-decl name='level' type-id='type-id-202' visibility='default'/>
+ <var-decl name='level' type-id='type-id-203' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='41632'>
<var-decl name='_allow_large_records' type-id='type-id-75' visibility='default'/>
@@ -2874,26 +2902,26 @@
<var-decl name='_dh_prime_bits' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='41728'>
- <var-decl name='usage_cnt' type-id='type-id-203' visibility='default'/>
+ <var-decl name='usage_cnt' type-id='type-id-204' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='2080' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-197' visibility='default' id='type-id-204'>
+ <class-decl name='__anonymous_struct__' size-in-bits='2080' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-198' visibility='default' id='type-id-205'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='priorities' type-id='type-id-205' visibility='default'/>
+ <var-decl name='priorities' type-id='type-id-206' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2048'>
<var-decl name='num_priorities' type-id='type-id-10' visibility='default'/>
</data-member>
</class-decl>
- <array-type-def dimensions='1' type-id='type-id-10' size-in-bits='2048' id='type-id-205'>
+ <array-type-def dimensions='1' type-id='type-id-10' size-in-bits='2048' id='type-id-206'>
<subrange length='64' type-id='type-id-38' id='type-id-92'/>
</array-type-def>
- <typedef-decl name='priority_st' type-id='type-id-204' id='type-id-197'/>
- <class-decl name='group_list_st' size-in-bits='4160' is-struct='yes' visibility='default' id='type-id-206'>
+ <typedef-decl name='priority_st' type-id='type-id-205' id='type-id-198'/>
+ <class-decl name='group_list_st' size-in-bits='4160' is-struct='yes' visibility='default' id='type-id-207'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='entry' type-id='type-id-207' visibility='default'/>
+ <var-decl name='entry' type-id='type-id-208' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='4096'>
<var-decl name='size' type-id='type-id-10' visibility='default'/>
@@ -2903,20 +2931,20 @@
</data-member>
</class-decl>
- <array-type-def dimensions='1' type-id='type-id-20' size-in-bits='4096' id='type-id-207'>
+ <array-type-def dimensions='1' type-id='type-id-20' size-in-bits='4096' id='type-id-208'>
<subrange length='64' type-id='type-id-38' id='type-id-92'/>
</array-type-def>
- <typedef-decl name='group_list_st' type-id='type-id-206' id='type-id-198'/>
- <class-decl name='sign_algo_list_st' size-in-bits='4160' is-struct='yes' visibility='default' id='type-id-208'>
+ <typedef-decl name='group_list_st' type-id='type-id-207' id='type-id-199'/>
+ <class-decl name='sign_algo_list_st' size-in-bits='4160' is-struct='yes' visibility='default' id='type-id-209'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='entry' type-id='type-id-209' visibility='default'/>
+ <var-decl name='entry' type-id='type-id-210' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='4096'>
<var-decl name='size' type-id='type-id-10' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='gnutls_sign_entry_st' size-in-bits='448' is-struct='yes' visibility='default' id='type-id-210'>
+ <class-decl name='gnutls_sign_entry_st' size-in-bits='448' is-struct='yes' visibility='default' id='type-id-211'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='name' type-id='type-id-27' visibility='default'/>
</data-member>
@@ -2930,7 +2958,7 @@
<var-decl name='pk' type-id='type-id-60' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='hash' type-id='type-id-211' visibility='default'/>
+ <var-decl name='hash' type-id='type-id-212' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='224'>
<var-decl name='priv_pk' type-id='type-id-60' visibility='default'/>
@@ -2945,13 +2973,13 @@
<var-decl name='curve' type-id='type-id-59' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='352'>
- <var-decl name='aid' type-id='type-id-212' visibility='default'/>
+ <var-decl name='aid' type-id='type-id-213' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='slevel' type-id='type-id-213' visibility='default'/>
+ <var-decl name='slevel' type-id='type-id-214' visibility='default'/>
</data-member>
</class-decl>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-214'>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-215'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_DIG_UNKNOWN' value='0'/>
<enumerator name='GNUTLS_DIG_NULL' value='1'/>
@@ -2974,61 +3002,61 @@
<enumerator name='GNUTLS_DIG_SHAKE_128' value='209'/>
<enumerator name='GNUTLS_DIG_SHAKE_256' value='210'/>
</enum-decl>
- <typedef-decl name='gnutls_digest_algorithm_t' type-id='type-id-214' id='type-id-211'/>
- <class-decl name='__anonymous_struct__' size-in-bits='24' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-215' visibility='default' id='type-id-216'>
+ <typedef-decl name='gnutls_digest_algorithm_t' type-id='type-id-215' id='type-id-212'/>
+ <class-decl name='__anonymous_struct__' size-in-bits='24' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-216' visibility='default' id='type-id-217'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='id' type-id='type-id-165' visibility='default'/>
+ <var-decl name='id' type-id='type-id-166' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='16'>
<var-decl name='tls_sem' type-id='type-id-16' visibility='default'/>
</data-member>
</class-decl>
- <array-type-def dimensions='1' type-id='type-id-16' size-in-bits='16' id='type-id-165'>
+ <array-type-def dimensions='1' type-id='type-id-16' size-in-bits='16' id='type-id-166'>
<subrange length='2' type-id='type-id-38' id='type-id-40'/>
</array-type-def>
- <typedef-decl name='sign_algorithm_st' type-id='type-id-216' id='type-id-215'/>
- <qualified-type-def type-id='type-id-215' const='yes' id='type-id-212'/>
- <enum-decl name='hash_security_level_t' id='type-id-217'>
+ <typedef-decl name='sign_algorithm_st' type-id='type-id-217' id='type-id-216'/>
+ <qualified-type-def type-id='type-id-216' const='yes' id='type-id-213'/>
+ <enum-decl name='hash_security_level_t' id='type-id-218'>
<underlying-type type-id='type-id-41'/>
<enumerator name='_SECURE' value='0'/>
<enumerator name='_INSECURE_FOR_CERTS' value='1'/>
<enumerator name='_INSECURE' value='2'/>
</enum-decl>
- <typedef-decl name='hash_security_level_t' type-id='type-id-217' id='type-id-213'/>
- <qualified-type-def type-id='type-id-210' const='yes' id='type-id-218'/>
- <pointer-type-def type-id='type-id-218' size-in-bits='64' id='type-id-219'/>
+ <typedef-decl name='hash_security_level_t' type-id='type-id-218' id='type-id-214'/>
+ <qualified-type-def type-id='type-id-211' const='yes' id='type-id-219'/>
+ <pointer-type-def type-id='type-id-219' size-in-bits='64' id='type-id-220'/>
- <array-type-def dimensions='1' type-id='type-id-219' size-in-bits='4096' id='type-id-209'>
+ <array-type-def dimensions='1' type-id='type-id-220' size-in-bits='4096' id='type-id-210'>
<subrange length='64' type-id='type-id-38' id='type-id-92'/>
</array-type-def>
- <typedef-decl name='sign_algo_list_st' type-id='type-id-208' id='type-id-199'/>
- <class-decl name='ciphersuite_list_st' size-in-bits='16448' is-struct='yes' visibility='default' id='type-id-220'>
+ <typedef-decl name='sign_algo_list_st' type-id='type-id-209' id='type-id-200'/>
+ <class-decl name='ciphersuite_list_st' size-in-bits='16448' is-struct='yes' visibility='default' id='type-id-221'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='entry' type-id='type-id-221' visibility='default'/>
+ <var-decl name='entry' type-id='type-id-222' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='16384'>
<var-decl name='size' type-id='type-id-10' visibility='default'/>
</data-member>
</class-decl>
- <typedef-decl name='gnutls_cipher_suite_entry_st' type-id='type-id-26' id='type-id-222'/>
+ <typedef-decl name='gnutls_cipher_suite_entry_st' type-id='type-id-26' id='type-id-223'/>
- <array-type-def dimensions='1' type-id='type-id-12' size-in-bits='16384' id='type-id-221'>
- <subrange length='256' type-id='type-id-38' id='type-id-223'/>
+ <array-type-def dimensions='1' type-id='type-id-12' size-in-bits='16384' id='type-id-222'>
+ <subrange length='256' type-id='type-id-38' id='type-id-224'/>
</array-type-def>
- <typedef-decl name='ciphersuite_list_st' type-id='type-id-220' id='type-id-200'/>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-224'>
+ <typedef-decl name='ciphersuite_list_st' type-id='type-id-221' id='type-id-201'/>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-225'>
<underlying-type type-id='type-id-41'/>
<enumerator name='SR_DISABLED' value='0'/>
<enumerator name='SR_UNSAFE' value='1'/>
<enumerator name='SR_PARTIAL' value='2'/>
<enumerator name='SR_SAFE' value='3'/>
</enum-decl>
- <typedef-decl name='safe_renegotiation_t' type-id='type-id-224' id='type-id-201'/>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-225'>
+ <typedef-decl name='safe_renegotiation_t' type-id='type-id-225' id='type-id-202'/>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-226'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_SEC_PARAM_UNKNOWN' value='0'/>
<enumerator name='GNUTLS_SEC_PARAM_INSECURE' value='5'/>
@@ -3043,15 +3071,15 @@
<enumerator name='GNUTLS_SEC_PARAM_FUTURE' value='50'/>
<enumerator name='GNUTLS_SEC_PARAM_MAX' value='50'/>
</enum-decl>
- <typedef-decl name='gnutls_sec_param_t' type-id='type-id-225' id='type-id-202'/>
- <type-decl name='atomic_uint' size-in-bits='32' id='type-id-203'/>
- <pointer-type-def type-id='type-id-196' size-in-bits='64' id='type-id-144'/>
- <class-decl name='__anonymous_struct__' size-in-bits='576' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-226' visibility='default' id='type-id-227'>
+ <typedef-decl name='gnutls_sec_param_t' type-id='type-id-226' id='type-id-203'/>
+ <type-decl name='atomic_uint' size-in-bits='32' id='type-id-204'/>
+ <pointer-type-def type-id='type-id-197' size-in-bits='64' id='type-id-144'/>
+ <class-decl name='__anonymous_struct__' size-in-bits='576' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-227' visibility='default' id='type-id-228'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='htype' type-id='type-id-186' visibility='default'/>
+ <var-decl name='htype' type-id='type-id-187' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='rtype' type-id='type-id-186' visibility='default'/>
+ <var-decl name='rtype' type-id='type-id-187' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='length' type-id='type-id-18' visibility='default'/>
@@ -3066,7 +3094,7 @@
<var-decl name='end_offset' type-id='type-id-18' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='header' type-id='type-id-228' visibility='default'/>
+ <var-decl name='header' type-id='type-id-229' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='288'>
<var-decl name='header_size' type-id='type-id-22' visibility='default'/>
@@ -3076,17 +3104,17 @@
</data-member>
</class-decl>
- <array-type-def dimensions='1' type-id='type-id-16' size-in-bits='96' id='type-id-228'>
- <subrange length='12' type-id='type-id-38' id='type-id-229'/>
+ <array-type-def dimensions='1' type-id='type-id-16' size-in-bits='96' id='type-id-229'>
+ <subrange length='12' type-id='type-id-38' id='type-id-230'/>
</array-type-def>
- <typedef-decl name='handshake_buffer_st' type-id='type-id-227' id='type-id-226'/>
+ <typedef-decl name='handshake_buffer_st' type-id='type-id-228' id='type-id-227'/>
- <array-type-def dimensions='1' type-id='type-id-226' size-in-bits='3456' id='type-id-145'>
- <subrange length='6' type-id='type-id-38' id='type-id-230'/>
+ <array-type-def dimensions='1' type-id='type-id-227' size-in-bits='3456' id='type-id-145'>
+ <subrange length='6' type-id='type-id-38' id='type-id-231'/>
</array-type-def>
- <enum-decl name='record_send_state_t' id='type-id-231'>
+ <enum-decl name='record_send_state_t' id='type-id-232'>
<underlying-type type-id='type-id-41'/>
<enumerator name='RECORD_SEND_NORMAL' value='0'/>
<enumerator name='RECORD_SEND_CORKED' value='1'/>
@@ -3095,69 +3123,69 @@
<enumerator name='RECORD_SEND_KEY_UPDATE_2' value='4'/>
<enumerator name='RECORD_SEND_KEY_UPDATE_3' value='5'/>
</enum-decl>
- <typedef-decl name='record_send_state_t' type-id='type-id-231' id='type-id-146'/>
- <class-decl name='mod_auth_st_int' size-in-bits='832' is-struct='yes' visibility='default' id='type-id-232'>
+ <typedef-decl name='record_send_state_t' type-id='type-id-232' id='type-id-146'/>
+ <class-decl name='mod_auth_st_int' size-in-bits='832' is-struct='yes' visibility='default' id='type-id-233'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='name' type-id='type-id-27' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='gnutls_generate_server_certificate' type-id='type-id-233' visibility='default'/>
+ <var-decl name='gnutls_generate_server_certificate' type-id='type-id-234' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='gnutls_generate_client_certificate' type-id='type-id-233' visibility='default'/>
+ <var-decl name='gnutls_generate_client_certificate' type-id='type-id-234' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='gnutls_generate_server_kx' type-id='type-id-233' visibility='default'/>
+ <var-decl name='gnutls_generate_server_kx' type-id='type-id-234' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='gnutls_generate_client_kx' type-id='type-id-233' visibility='default'/>
+ <var-decl name='gnutls_generate_client_kx' type-id='type-id-234' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='gnutls_generate_client_crt_vrfy' type-id='type-id-233' visibility='default'/>
+ <var-decl name='gnutls_generate_client_crt_vrfy' type-id='type-id-234' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='gnutls_generate_server_crt_request' type-id='type-id-233' visibility='default'/>
+ <var-decl name='gnutls_generate_server_crt_request' type-id='type-id-234' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
- <var-decl name='gnutls_process_server_certificate' type-id='type-id-234' visibility='default'/>
+ <var-decl name='gnutls_process_server_certificate' type-id='type-id-235' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='gnutls_process_client_certificate' type-id='type-id-234' visibility='default'/>
+ <var-decl name='gnutls_process_client_certificate' type-id='type-id-235' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
- <var-decl name='gnutls_process_server_kx' type-id='type-id-234' visibility='default'/>
+ <var-decl name='gnutls_process_server_kx' type-id='type-id-235' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='640'>
- <var-decl name='gnutls_process_client_kx' type-id='type-id-234' visibility='default'/>
+ <var-decl name='gnutls_process_client_kx' type-id='type-id-235' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='704'>
- <var-decl name='gnutls_process_client_crt_vrfy' type-id='type-id-234' visibility='default'/>
+ <var-decl name='gnutls_process_client_crt_vrfy' type-id='type-id-235' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='768'>
- <var-decl name='gnutls_process_server_crt_request' type-id='type-id-234' visibility='default'/>
+ <var-decl name='gnutls_process_server_crt_request' type-id='type-id-235' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-4' size-in-bits='64' id='type-id-235'/>
- <typedef-decl name='gnutls_session_t' type-id='type-id-235' id='type-id-236'/>
- <pointer-type-def type-id='type-id-139' size-in-bits='64' id='type-id-237'/>
- <pointer-type-def type-id='type-id-238' size-in-bits='64' id='type-id-233'/>
+ <pointer-type-def type-id='type-id-4' size-in-bits='64' id='type-id-236'/>
+ <typedef-decl name='gnutls_session_t' type-id='type-id-236' id='type-id-237'/>
+ <pointer-type-def type-id='type-id-139' size-in-bits='64' id='type-id-238'/>
<pointer-type-def type-id='type-id-239' size-in-bits='64' id='type-id-234'/>
- <qualified-type-def type-id='type-id-232' const='yes' id='type-id-240'/>
- <pointer-type-def type-id='type-id-240' size-in-bits='64' id='type-id-147'/>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-241'>
+ <pointer-type-def type-id='type-id-240' size-in-bits='64' id='type-id-235'/>
+ <qualified-type-def type-id='type-id-233' const='yes' id='type-id-241'/>
+ <pointer-type-def type-id='type-id-241' size-in-bits='64' id='type-id-147'/>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-242'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_CERT_IGNORE' value='0'/>
<enumerator name='GNUTLS_CERT_REQUEST' value='1'/>
<enumerator name='GNUTLS_CERT_REQUIRE' value='2'/>
</enum-decl>
- <typedef-decl name='gnutls_certificate_request_t' type-id='type-id-241' id='type-id-148'/>
+ <typedef-decl name='gnutls_certificate_request_t' type-id='type-id-242' id='type-id-148'/>
<typedef-decl name='gnutls_transport_ptr_t' type-id='type-id-101' id='type-id-154'/>
- <pointer-type-def type-id='type-id-242' size-in-bits='64' id='type-id-243'/>
- <typedef-decl name='gnutls_pull_timeout_func' type-id='type-id-243' id='type-id-149'/>
- <pointer-type-def type-id='type-id-244' size-in-bits='64' id='type-id-245'/>
- <typedef-decl name='gnutls_pull_func' type-id='type-id-245' id='type-id-150'/>
- <typedef-decl name='gnutls_push_func' type-id='type-id-245' id='type-id-151'/>
- <class-decl name='iovec' size-in-bits='128' is-struct='yes' visibility='default' id='type-id-246'>
+ <pointer-type-def type-id='type-id-243' size-in-bits='64' id='type-id-244'/>
+ <typedef-decl name='gnutls_pull_timeout_func' type-id='type-id-244' id='type-id-149'/>
+ <pointer-type-def type-id='type-id-245' size-in-bits='64' id='type-id-246'/>
+ <typedef-decl name='gnutls_pull_func' type-id='type-id-246' id='type-id-150'/>
+ <typedef-decl name='gnutls_push_func' type-id='type-id-246' id='type-id-151'/>
+ <class-decl name='iovec' size-in-bits='128' is-struct='yes' visibility='default' id='type-id-247'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='iov_base' type-id='type-id-101' visibility='default'/>
</data-member>
@@ -3165,29 +3193,31 @@
<var-decl name='iov_len' type-id='type-id-99' visibility='default'/>
</data-member>
</class-decl>
- <typedef-decl name='giovec_t' type-id='type-id-246' id='type-id-247'/>
- <qualified-type-def type-id='type-id-247' const='yes' id='type-id-248'/>
- <pointer-type-def type-id='type-id-248' size-in-bits='64' id='type-id-249'/>
- <pointer-type-def type-id='type-id-250' size-in-bits='64' id='type-id-251'/>
- <typedef-decl name='gnutls_vec_push_func' type-id='type-id-251' id='type-id-152'/>
- <pointer-type-def type-id='type-id-252' size-in-bits='64' id='type-id-253'/>
- <typedef-decl name='gnutls_errno_func' type-id='type-id-253' id='type-id-153'/>
- <pointer-type-def type-id='type-id-254' size-in-bits='64' id='type-id-255'/>
- <typedef-decl name='gnutls_db_store_func' type-id='type-id-255' id='type-id-155'/>
- <pointer-type-def type-id='type-id-256' size-in-bits='64' id='type-id-257'/>
- <typedef-decl name='gnutls_db_retr_func' type-id='type-id-257' id='type-id-156'/>
- <pointer-type-def type-id='type-id-258' size-in-bits='64' id='type-id-259'/>
- <typedef-decl name='gnutls_db_remove_func' type-id='type-id-259' id='type-id-157'/>
- <pointer-type-def type-id='type-id-260' size-in-bits='64' id='type-id-261'/>
- <typedef-decl name='gnutls_handshake_simple_hook_func' type-id='type-id-261' id='type-id-158'/>
- <pointer-type-def type-id='type-id-262' size-in-bits='64' id='type-id-263'/>
- <typedef-decl name='gnutls_handshake_hook_func' type-id='type-id-263' id='type-id-159'/>
- <type-decl name='short int' size-in-bits='16' id='type-id-264'/>
- <typedef-decl name='__int16_t' type-id='type-id-264' id='type-id-265'/>
- <typedef-decl name='int16_t' type-id='type-id-265' id='type-id-160'/>
- <class-decl name='gnutls_pcert_st' size-in-bits='256' is-struct='yes' visibility='default' id='type-id-266'>
+ <typedef-decl name='giovec_t' type-id='type-id-247' id='type-id-248'/>
+ <qualified-type-def type-id='type-id-248' const='yes' id='type-id-249'/>
+ <pointer-type-def type-id='type-id-249' size-in-bits='64' id='type-id-250'/>
+ <pointer-type-def type-id='type-id-251' size-in-bits='64' id='type-id-252'/>
+ <typedef-decl name='gnutls_vec_push_func' type-id='type-id-252' id='type-id-152'/>
+ <pointer-type-def type-id='type-id-253' size-in-bits='64' id='type-id-254'/>
+ <typedef-decl name='gnutls_errno_func' type-id='type-id-254' id='type-id-153'/>
+ <pointer-type-def type-id='type-id-255' size-in-bits='64' id='type-id-256'/>
+ <typedef-decl name='gnutls_db_store_func' type-id='type-id-256' id='type-id-155'/>
+ <pointer-type-def type-id='type-id-257' size-in-bits='64' id='type-id-258'/>
+ <typedef-decl name='gnutls_db_retr_func' type-id='type-id-258' id='type-id-156'/>
+ <pointer-type-def type-id='type-id-259' size-in-bits='64' id='type-id-260'/>
+ <typedef-decl name='gnutls_db_remove_func' type-id='type-id-260' id='type-id-157'/>
+ <pointer-type-def type-id='type-id-261' size-in-bits='64' id='type-id-262'/>
+ <typedef-decl name='gnutls_handshake_simple_hook_func' type-id='type-id-262' id='type-id-158'/>
+ <pointer-type-def type-id='type-id-263' size-in-bits='64' id='type-id-264'/>
+ <typedef-decl name='gnutls_handshake_hook_func' type-id='type-id-264' id='type-id-159'/>
+ <type-decl name='short int' size-in-bits='16' id='type-id-265'/>
+ <typedef-decl name='__int16_t' type-id='type-id-265' id='type-id-266'/>
+ <typedef-decl name='int16_t' type-id='type-id-266' id='type-id-160'/>
+ <pointer-type-def type-id='type-id-267' size-in-bits='64' id='type-id-268'/>
+ <typedef-decl name='gnutls_keylog_func' type-id='type-id-268' id='type-id-161'/>
+ <class-decl name='gnutls_pcert_st' size-in-bits='256' is-struct='yes' visibility='default' id='type-id-269'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='pubkey' type-id='type-id-267' visibility='default'/>
+ <var-decl name='pubkey' type-id='type-id-270' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='cert' type-id='type-id-62' visibility='default'/>
@@ -3196,14 +3226,14 @@
<var-decl name='type' type-id='type-id-19' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='gnutls_pubkey_st' size-in-bits='4096' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-268'/>
- <pointer-type-def type-id='type-id-268' size-in-bits='64' id='type-id-269'/>
- <typedef-decl name='gnutls_pubkey_t' type-id='type-id-269' id='type-id-267'/>
- <typedef-decl name='gnutls_pcert_st' type-id='type-id-266' id='type-id-270'/>
- <pointer-type-def type-id='type-id-270' size-in-bits='64' id='type-id-161'/>
- <class-decl name='gnutls_privkey_st' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-271'/>
- <pointer-type-def type-id='type-id-271' size-in-bits='64' id='type-id-162'/>
- <class-decl name='gnutls_ocsp_data_st' size-in-bits='512' is-struct='yes' visibility='default' id='type-id-272'>
+ <class-decl name='gnutls_pubkey_st' size-in-bits='4096' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-271'/>
+ <pointer-type-def type-id='type-id-271' size-in-bits='64' id='type-id-272'/>
+ <typedef-decl name='gnutls_pubkey_t' type-id='type-id-272' id='type-id-270'/>
+ <typedef-decl name='gnutls_pcert_st' type-id='type-id-269' id='type-id-273'/>
+ <pointer-type-def type-id='type-id-273' size-in-bits='64' id='type-id-162'/>
+ <class-decl name='gnutls_privkey_st' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-274'/>
+ <pointer-type-def type-id='type-id-274' size-in-bits='64' id='type-id-163'/>
+ <class-decl name='gnutls_ocsp_data_st' size-in-bits='512' is-struct='yes' visibility='default' id='type-id-275'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='version' type-id='type-id-10' visibility='default'/>
</data-member>
@@ -3214,20 +3244,20 @@
<var-decl name='exptime' type-id='type-id-17' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='padding' type-id='type-id-273' visibility='default'/>
+ <var-decl name='padding' type-id='type-id-276' visibility='default'/>
</data-member>
</class-decl>
- <array-type-def dimensions='1' type-id='type-id-35' size-in-bits='256' id='type-id-273'>
+ <array-type-def dimensions='1' type-id='type-id-35' size-in-bits='256' id='type-id-276'>
<subrange length='32' type-id='type-id-38' id='type-id-51'/>
</array-type-def>
- <typedef-decl name='gnutls_ocsp_data_st' type-id='type-id-272' id='type-id-274'/>
- <pointer-type-def type-id='type-id-274' size-in-bits='64' id='type-id-163'/>
- <pointer-type-def type-id='type-id-62' size-in-bits='64' id='type-id-275'/>
- <pointer-type-def type-id='type-id-276' size-in-bits='64' id='type-id-277'/>
- <typedef-decl name='gnutls_status_request_ocsp_func' type-id='type-id-277' id='type-id-164'/>
- <class-decl name='__anonymous_struct__' size-in-bits='576' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-166' visibility='default' id='type-id-278'>
+ <typedef-decl name='gnutls_ocsp_data_st' type-id='type-id-275' id='type-id-277'/>
+ <pointer-type-def type-id='type-id-277' size-in-bits='64' id='type-id-164'/>
+ <pointer-type-def type-id='type-id-62' size-in-bits='64' id='type-id-278'/>
+ <pointer-type-def type-id='type-id-279' size-in-bits='64' id='type-id-280'/>
+ <typedef-decl name='gnutls_status_request_ocsp_func' type-id='type-id-280' id='type-id-165'/>
+ <class-decl name='__anonymous_struct__' size-in-bits='576' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-167' visibility='default' id='type-id-281'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='dcookie' type-id='type-id-62' visibility='default'/>
</data-member>
@@ -3259,35 +3289,35 @@
<var-decl name='async_term' type-id='type-id-17' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='last_retransmit' type-id='type-id-168' visibility='default'/>
+ <var-decl name='last_retransmit' type-id='type-id-169' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
<var-decl name='packets_dropped' type-id='type-id-10' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' id='type-id-168'>
+ <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' id='type-id-169'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='tv_sec' type-id='type-id-52' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='tv_nsec' type-id='type-id-279' visibility='default'/>
+ <var-decl name='tv_nsec' type-id='type-id-282' visibility='default'/>
</data-member>
</class-decl>
- <typedef-decl name='__syscall_slong_t' type-id='type-id-1' id='type-id-279'/>
- <typedef-decl name='dtls_st' type-id='type-id-278' id='type-id-166'/>
+ <typedef-decl name='__syscall_slong_t' type-id='type-id-1' id='type-id-282'/>
+ <typedef-decl name='dtls_st' type-id='type-id-281' id='type-id-167'/>
- <array-type-def dimensions='1' type-id='type-id-35' size-in-bits='288' id='type-id-167'>
- <subrange length='36' type-id='type-id-38' id='type-id-280'/>
+ <array-type-def dimensions='1' type-id='type-id-35' size-in-bits='288' id='type-id-168'>
+ <subrange length='36' type-id='type-id-38' id='type-id-283'/>
</array-type-def>
- <enum-decl name='heartbeat_state_t' id='type-id-281'>
+ <enum-decl name='heartbeat_state_t' id='type-id-284'>
<underlying-type type-id='type-id-41'/>
<enumerator name='SHB_SEND1' value='0'/>
<enumerator name='SHB_SEND2' value='1'/>
<enumerator name='SHB_RECV' value='2'/>
</enum-decl>
- <typedef-decl name='heartbeat_state_t' type-id='type-id-281' id='type-id-169'/>
- <enum-decl name='recv_state_t' id='type-id-282'>
+ <typedef-decl name='heartbeat_state_t' type-id='type-id-284' id='type-id-170'/>
+ <enum-decl name='recv_state_t' id='type-id-285'>
<underlying-type type-id='type-id-41'/>
<enumerator name='RECV_STATE_0' value='0'/>
<enumerator name='RECV_STATE_DTLS_RETRANSMIT' value='1'/>
@@ -3299,12 +3329,12 @@
<enumerator name='RECV_STATE_REHANDSHAKE' value='7'/>
<enumerator name='RECV_STATE_REAUTH' value='8'/>
</enum-decl>
- <typedef-decl name='recv_state_t' type-id='type-id-282' id='type-id-170'/>
- <typedef-decl name='gnutls_certificate_verify_function' type-id='type-id-260' id='type-id-283'/>
- <pointer-type-def type-id='type-id-283' size-in-bits='64' id='type-id-171'/>
- <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-173' visibility='default' id='type-id-284'>
+ <typedef-decl name='recv_state_t' type-id='type-id-285' id='type-id-171'/>
+ <typedef-decl name='gnutls_certificate_verify_function' type-id='type-id-261' id='type-id-286'/>
+ <pointer-type-def type-id='type-id-286' size-in-bits='64' id='type-id-172'/>
+ <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-174' visibility='default' id='type-id-287'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='type' type-id='type-id-285' visibility='default'/>
+ <var-decl name='type' type-id='type-id-288' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='data' type-id='type-id-64' visibility='default'/>
@@ -3313,7 +3343,7 @@
<var-decl name='size' type-id='type-id-10' visibility='default'/>
</data-member>
</class-decl>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-286'>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-289'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_DT_UNKNOWN' value='0'/>
<enumerator name='GNUTLS_DT_DNS_HOSTNAME' value='1'/>
@@ -3321,15 +3351,15 @@
<enumerator name='GNUTLS_DT_RFC822NAME' value='3'/>
<enumerator name='GNUTLS_DT_IP_ADDRESS' value='4'/>
</enum-decl>
- <typedef-decl name='gnutls_vdata_types_t' type-id='type-id-286' id='type-id-285'/>
- <typedef-decl name='gnutls_typed_vdata_st' type-id='type-id-284' id='type-id-173'/>
- <pointer-type-def type-id='type-id-173' size-in-bits='64' id='type-id-172'/>
+ <typedef-decl name='gnutls_vdata_types_t' type-id='type-id-289' id='type-id-288'/>
+ <typedef-decl name='gnutls_typed_vdata_st' type-id='type-id-287' id='type-id-174'/>
+ <pointer-type-def type-id='type-id-174' size-in-bits='64' id='type-id-173'/>
- <array-type-def dimensions='1' type-id='type-id-33' size-in-bits='1032' id='type-id-174'>
- <subrange length='129' type-id='type-id-38' id='type-id-287'/>
+ <array-type-def dimensions='1' type-id='type-id-33' size-in-bits='1032' id='type-id-175'>
+ <subrange length='129' type-id='type-id-38' id='type-id-290'/>
</array-type-def>
- <class-decl name='tfo_st' size-in-bits='1216' is-struct='yes' visibility='default' id='type-id-288'>
+ <class-decl name='tfo_st' size-in-bits='1216' is-struct='yes' visibility='default' id='type-id-291'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='fd' type-id='type-id-22' visibility='default'/>
</data-member>
@@ -3340,42 +3370,42 @@
<var-decl name='connect_only' type-id='type-id-75' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='connect_addr' type-id='type-id-289' visibility='default'/>
+ <var-decl name='connect_addr' type-id='type-id-292' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1152'>
- <var-decl name='connect_addrlen' type-id='type-id-290' visibility='default'/>
+ <var-decl name='connect_addrlen' type-id='type-id-293' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='sockaddr_storage' size-in-bits='1024' is-struct='yes' visibility='default' id='type-id-289'>
+ <class-decl name='sockaddr_storage' size-in-bits='1024' is-struct='yes' visibility='default' id='type-id-292'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='ss_family' type-id='type-id-291' visibility='default'/>
+ <var-decl name='ss_family' type-id='type-id-294' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='16'>
- <var-decl name='__ss_padding' type-id='type-id-292' visibility='default'/>
+ <var-decl name='__ss_padding' type-id='type-id-295' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='960'>
<var-decl name='__ss_align' type-id='type-id-38' visibility='default'/>
</data-member>
</class-decl>
- <typedef-decl name='sa_family_t' type-id='type-id-24' id='type-id-291'/>
+ <typedef-decl name='sa_family_t' type-id='type-id-24' id='type-id-294'/>
- <array-type-def dimensions='1' type-id='type-id-33' size-in-bits='944' id='type-id-292'>
- <subrange length='118' type-id='type-id-38' id='type-id-293'/>
+ <array-type-def dimensions='1' type-id='type-id-33' size-in-bits='944' id='type-id-295'>
+ <subrange length='118' type-id='type-id-38' id='type-id-296'/>
</array-type-def>
- <typedef-decl name='__socklen_t' type-id='type-id-10' id='type-id-294'/>
- <typedef-decl name='socklen_t' type-id='type-id-294' id='type-id-290'/>
- <typedef-decl name='tfo_st' type-id='type-id-288' id='type-id-175'/>
- <class-decl name='gnutls_supplemental_entry_st' size-in-bits='256' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-295'/>
- <pointer-type-def type-id='type-id-295' size-in-bits='64' id='type-id-176'/>
- <class-decl name='hello_ext_entry_st' size-in-bits='640' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-296'/>
- <pointer-type-def type-id='type-id-296' size-in-bits='64' id='type-id-177'/>
- <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-297'>
+ <typedef-decl name='__socklen_t' type-id='type-id-10' id='type-id-297'/>
+ <typedef-decl name='socklen_t' type-id='type-id-297' id='type-id-293'/>
+ <typedef-decl name='tfo_st' type-id='type-id-291' id='type-id-176'/>
+ <class-decl name='gnutls_supplemental_entry_st' size-in-bits='256' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-298'/>
+ <pointer-type-def type-id='type-id-298' size-in-bits='64' id='type-id-177'/>
+ <class-decl name='hello_ext_entry_st' size-in-bits='640' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-299'/>
+ <pointer-type-def type-id='type-id-299' size-in-bits='64' id='type-id-178'/>
+ <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-300'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='priv' type-id='type-id-298' visibility='default'/>
+ <var-decl name='priv' type-id='type-id-301' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='resumed_priv' type-id='type-id-298' visibility='default'/>
+ <var-decl name='resumed_priv' type-id='type-id-301' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
<var-decl name='set' type-id='type-id-16' visibility='default'/>
@@ -3384,13 +3414,13 @@
<var-decl name='resumed_set' type-id='type-id-16' visibility='default'/>
</data-member>
</class-decl>
- <typedef-decl name='gnutls_ext_priv_data_t' type-id='type-id-101' id='type-id-298'/>
+ <typedef-decl name='gnutls_ext_priv_data_t' type-id='type-id-101' id='type-id-301'/>
- <array-type-def dimensions='1' type-id='type-id-297' size-in-bits='6144' id='type-id-178'>
+ <array-type-def dimensions='1' type-id='type-id-300' size-in-bits='6144' id='type-id-179'>
<subrange length='32' type-id='type-id-38' id='type-id-51'/>
</array-type-def>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-299'>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-302'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_EXT_FLAG_OVERRIDE_INTERNAL' value='1'/>
<enumerator name='GNUTLS_EXT_FLAG_CLIENT_HELLO' value='2'/>
@@ -3402,13 +3432,13 @@
<enumerator name='GNUTLS_EXT_FLAG_TLS' value='128'/>
<enumerator name='GNUTLS_EXT_FLAG_DTLS' value='256'/>
</enum-decl>
- <typedef-decl name='gnutls_ext_flags_t' type-id='type-id-299' id='type-id-179'/>
- <class-decl name='__anonymous_struct__' size-in-bits='3136' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-180' visibility='default' id='type-id-300'>
+ <typedef-decl name='gnutls_ext_flags_t' type-id='type-id-302' id='type-id-180'/>
+ <class-decl name='__anonymous_struct__' size-in-bits='3136' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-181' visibility='default' id='type-id-303'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='arrival_time' type-id='type-id-168' visibility='default'/>
+ <var-decl name='arrival_time' type-id='type-id-169' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='creation_time' type-id='type-id-168' visibility='default'/>
+ <var-decl name='creation_time' type-id='type-id-169' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
<var-decl name='lifetime' type-id='type-id-18' visibility='default'/>
@@ -3417,7 +3447,7 @@
<var-decl name='age_add' type-id='type-id-18' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='nonce' type-id='type-id-301' visibility='default'/>
+ <var-decl name='nonce' type-id='type-id-304' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2368'>
<var-decl name='nonce_size' type-id='type-id-99' visibility='default'/>
@@ -3433,24 +3463,24 @@
</data-member>
</class-decl>
- <array-type-def dimensions='1' type-id='type-id-16' size-in-bits='2040' id='type-id-301'>
- <subrange length='255' type-id='type-id-38' id='type-id-302'/>
+ <array-type-def dimensions='1' type-id='type-id-16' size-in-bits='2040' id='type-id-304'>
+ <subrange length='255' type-id='type-id-38' id='type-id-305'/>
</array-type-def>
- <typedef-decl name='tls13_ticket_st' type-id='type-id-300' id='type-id-180'/>
- <class-decl name='gnutls_anti_replay_st' size-in-bits='320' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-303'/>
- <pointer-type-def type-id='type-id-303' size-in-bits='64' id='type-id-304'/>
- <typedef-decl name='gnutls_anti_replay_t' type-id='type-id-304' id='type-id-181'/>
+ <typedef-decl name='tls13_ticket_st' type-id='type-id-303' id='type-id-181'/>
+ <class-decl name='gnutls_anti_replay_st' size-in-bits='320' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-306'/>
+ <pointer-type-def type-id='type-id-306' size-in-bits='64' id='type-id-307'/>
+ <typedef-decl name='gnutls_anti_replay_t' type-id='type-id-307' id='type-id-182'/>
<typedef-decl name='internals_st' type-id='type-id-137' id='type-id-7'/>
- <class-decl name='gnutls_key_st' size-in-bits='22656' is-struct='yes' visibility='default' id='type-id-305'>
+ <class-decl name='gnutls_key_st' size-in-bits='22656' is-struct='yes' visibility='default' id='type-id-308'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='kshare' type-id='type-id-306' visibility='default'/>
+ <var-decl name='kshare' type-id='type-id-309' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='11520'>
- <var-decl name='proto' type-id='type-id-307' visibility='default'/>
+ <var-decl name='proto' type-id='type-id-310' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='20096'>
- <var-decl name='binders' type-id='type-id-308' visibility='default'/>
+ <var-decl name='binders' type-id='type-id-311' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='20608'>
<var-decl name='key' type-id='type-id-62' visibility='default'/>
@@ -3468,32 +3498,32 @@
<var-decl name='auth_info' type-id='type-id-101' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='22336'>
- <var-decl name='auth_info_type' type-id='type-id-309' visibility='default'/>
+ <var-decl name='auth_info_type' type-id='type-id-312' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='22368'>
<var-decl name='auth_info_size' type-id='type-id-22' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='22400'>
- <var-decl name='cred' type-id='type-id-310' visibility='default'/>
+ <var-decl name='cred' type-id='type-id-313' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='22464'>
- <var-decl name='totp' type-id='type-id-311' visibility='default'/>
+ <var-decl name='totp' type-id='type-id-314' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='11520' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-306'>
+ <class-decl name='__anonymous_struct__' size-in-bits='11520' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-309'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='ecdh_params' type-id='type-id-312' visibility='default'/>
+ <var-decl name='ecdh_params' type-id='type-id-315' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3840'>
- <var-decl name='ecdhx_params' type-id='type-id-312' visibility='default'/>
+ <var-decl name='ecdhx_params' type-id='type-id-315' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='7680'>
- <var-decl name='dh_params' type-id='type-id-312' visibility='default'/>
+ <var-decl name='dh_params' type-id='type-id-315' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='3840' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-312' visibility='default' id='type-id-313'>
+ <class-decl name='__anonymous_struct__' size-in-bits='3840' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-315' visibility='default' id='type-id-316'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='params' type-id='type-id-314' visibility='default'/>
+ <var-decl name='params' type-id='type-id-317' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1024'>
<var-decl name='params_nr' type-id='type-id-10' visibility='default'/>
@@ -3511,7 +3541,7 @@
<var-decl name='dh_group' type-id='type-id-56' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1184'>
- <var-decl name='gost_params' type-id='type-id-315' visibility='default'/>
+ <var-decl name='gost_params' type-id='type-id-318' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1216'>
<var-decl name='raw_pub' type-id='type-id-62' visibility='default'/>
@@ -3523,25 +3553,25 @@
<var-decl name='seed_size' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1504'>
- <var-decl name='seed' type-id='type-id-316' visibility='default'/>
+ <var-decl name='seed' type-id='type-id-319' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3552'>
- <var-decl name='palgo' type-id='type-id-211' visibility='default'/>
+ <var-decl name='palgo' type-id='type-id-212' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3584'>
- <var-decl name='spki' type-id='type-id-317' visibility='default'/>
+ <var-decl name='spki' type-id='type-id-320' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3776'>
<var-decl name='algo' type-id='type-id-60' visibility='default'/>
</data-member>
</class-decl>
- <typedef-decl name='bigint_t' type-id='type-id-101' id='type-id-318'/>
+ <typedef-decl name='bigint_t' type-id='type-id-101' id='type-id-321'/>
- <array-type-def dimensions='1' type-id='type-id-318' size-in-bits='1024' id='type-id-314'>
+ <array-type-def dimensions='1' type-id='type-id-321' size-in-bits='1024' id='type-id-317'>
<subrange length='16' type-id='type-id-38' id='type-id-93'/>
</array-type-def>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-319'>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-322'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_GOST_PARAMSET_UNKNOWN' value='0'/>
<enumerator name='GNUTLS_GOST_PARAMSET_TC26_Z' value='1'/>
@@ -3550,18 +3580,18 @@
<enumerator name='GNUTLS_GOST_PARAMSET_CP_C' value='4'/>
<enumerator name='GNUTLS_GOST_PARAMSET_CP_D' value='5'/>
</enum-decl>
- <typedef-decl name='gnutls_gost_paramset_t' type-id='type-id-319' id='type-id-315'/>
+ <typedef-decl name='gnutls_gost_paramset_t' type-id='type-id-322' id='type-id-318'/>
- <array-type-def dimensions='1' type-id='type-id-16' size-in-bits='2048' id='type-id-316'>
- <subrange length='256' type-id='type-id-38' id='type-id-223'/>
+ <array-type-def dimensions='1' type-id='type-id-16' size-in-bits='2048' id='type-id-319'>
+ <subrange length='256' type-id='type-id-38' id='type-id-224'/>
</array-type-def>
- <class-decl name='gnutls_x509_spki_st' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-320'>
+ <class-decl name='gnutls_x509_spki_st' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-323'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='pk' type-id='type-id-60' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='rsa_pss_dig' type-id='type-id-211' visibility='default'/>
+ <var-decl name='rsa_pss_dig' type-id='type-id-212' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='salt_size' type-id='type-id-10' visibility='default'/>
@@ -3570,23 +3600,23 @@
<var-decl name='legacy' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='dsa_dig' type-id='type-id-211' visibility='default'/>
+ <var-decl name='dsa_dig' type-id='type-id-212' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='160'>
<var-decl name='flags' type-id='type-id-10' visibility='default'/>
</data-member>
</class-decl>
- <typedef-decl name='gnutls_x509_spki_st' type-id='type-id-320' id='type-id-317'/>
- <typedef-decl name='gnutls_pk_params_st' type-id='type-id-313' id='type-id-312'/>
- <union-decl name='__anonymous_union__' size-in-bits='8576' is-anonymous='yes' visibility='default' id='type-id-307'>
+ <typedef-decl name='gnutls_x509_spki_st' type-id='type-id-323' id='type-id-320'/>
+ <typedef-decl name='gnutls_pk_params_st' type-id='type-id-316' id='type-id-315'/>
+ <union-decl name='__anonymous_union__' size-in-bits='8576' is-anonymous='yes' visibility='default' id='type-id-310'>
<data-member access='private'>
- <var-decl name='tls13' type-id='type-id-321' visibility='default'/>
+ <var-decl name='tls13' type-id='type-id-324' visibility='default'/>
</data-member>
<data-member access='private'>
- <var-decl name='tls12' type-id='type-id-322' visibility='default'/>
+ <var-decl name='tls12' type-id='type-id-325' visibility='default'/>
</data-member>
</union-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='4128' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-321'>
+ <class-decl name='__anonymous_struct__' size-in-bits='4128' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-324'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='temp_secret' type-id='type-id-89' visibility='default'/>
</data-member>
@@ -3615,69 +3645,69 @@
<var-decl name='ap_rms' type-id='type-id-89' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='8576' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-322'>
+ <class-decl name='__anonymous_struct__' size-in-bits='8576' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-325'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='ecdh' type-id='type-id-323' visibility='default'/>
+ <var-decl name='ecdh' type-id='type-id-326' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='4096'>
- <var-decl name='dh' type-id='type-id-324' visibility='default'/>
+ <var-decl name='dh' type-id='type-id-327' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='8000'>
- <var-decl name='srp' type-id='type-id-325' visibility='default'/>
+ <var-decl name='srp' type-id='type-id-328' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='4096' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-323'>
+ <class-decl name='__anonymous_struct__' size-in-bits='4096' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-326'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='params' type-id='type-id-312' visibility='default'/>
+ <var-decl name='params' type-id='type-id-315' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3840'>
- <var-decl name='x' type-id='type-id-318' visibility='default'/>
+ <var-decl name='x' type-id='type-id-321' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3904'>
- <var-decl name='y' type-id='type-id-318' visibility='default'/>
+ <var-decl name='y' type-id='type-id-321' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3968'>
<var-decl name='raw' type-id='type-id-62' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='3904' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-324'>
+ <class-decl name='__anonymous_struct__' size-in-bits='3904' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-327'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='params' type-id='type-id-312' visibility='default'/>
+ <var-decl name='params' type-id='type-id-315' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3840'>
- <var-decl name='client_Y' type-id='type-id-318' visibility='default'/>
+ <var-decl name='client_Y' type-id='type-id-321' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='576' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-325'>
+ <class-decl name='__anonymous_struct__' size-in-bits='576' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-328'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='srp_key' type-id='type-id-318' visibility='default'/>
+ <var-decl name='srp_key' type-id='type-id-321' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='srp_g' type-id='type-id-318' visibility='default'/>
+ <var-decl name='srp_g' type-id='type-id-321' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='srp_p' type-id='type-id-318' visibility='default'/>
+ <var-decl name='srp_p' type-id='type-id-321' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='A' type-id='type-id-318' visibility='default'/>
+ <var-decl name='A' type-id='type-id-321' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='B' type-id='type-id-318' visibility='default'/>
+ <var-decl name='B' type-id='type-id-321' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='u' type-id='type-id-318' visibility='default'/>
+ <var-decl name='u' type-id='type-id-321' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='b' type-id='type-id-318' visibility='default'/>
+ <var-decl name='b' type-id='type-id-321' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
- <var-decl name='a' type-id='type-id-318' visibility='default'/>
+ <var-decl name='a' type-id='type-id-321' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='x' type-id='type-id-318' visibility='default'/>
+ <var-decl name='x' type-id='type-id-321' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='binder_data_st' size-in-bits='256' is-struct='yes' visibility='default' id='type-id-326'>
+ <class-decl name='binder_data_st' size-in-bits='256' is-struct='yes' visibility='default' id='type-id-329'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='prf' type-id='type-id-13' visibility='default'/>
</data-member>
@@ -3692,11 +3722,11 @@
</data-member>
</class-decl>
- <array-type-def dimensions='1' type-id='type-id-326' size-in-bits='512' id='type-id-308'>
+ <array-type-def dimensions='1' type-id='type-id-329' size-in-bits='512' id='type-id-311'>
<subrange length='2' type-id='type-id-38' id='type-id-40'/>
</array-type-def>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-327'>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-330'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_CRD_CERTIFICATE' value='1'/>
<enumerator name='GNUTLS_CRD_ANON' value='2'/>
@@ -3704,21 +3734,21 @@
<enumerator name='GNUTLS_CRD_PSK' value='4'/>
<enumerator name='GNUTLS_CRD_IA' value='5'/>
</enum-decl>
- <typedef-decl name='gnutls_credentials_type_t' type-id='type-id-327' id='type-id-309'/>
- <class-decl name='auth_cred_st' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-328'>
+ <typedef-decl name='gnutls_credentials_type_t' type-id='type-id-330' id='type-id-312'/>
+ <class-decl name='auth_cred_st' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-331'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='algorithm' type-id='type-id-309' visibility='default'/>
+ <var-decl name='algorithm' type-id='type-id-312' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='credentials' type-id='type-id-101' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='next' type-id='type-id-310' visibility='default'/>
+ <var-decl name='next' type-id='type-id-313' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-328' size-in-bits='64' id='type-id-310'/>
- <typedef-decl name='auth_cred_st' type-id='type-id-328' id='type-id-329'/>
- <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-311'>
+ <pointer-type-def type-id='type-id-331' size-in-bits='64' id='type-id-313'/>
+ <typedef-decl name='auth_cred_st' type-id='type-id-331' id='type-id-332'/>
+ <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-314'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='last_result' type-id='type-id-80' visibility='default'/>
</data-member>
@@ -3726,13 +3756,13 @@
<var-decl name='was_rotated' type-id='type-id-16' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='cb' type-id='type-id-330' visibility='default'/>
+ <var-decl name='cb' type-id='type-id-333' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-331' size-in-bits='64' id='type-id-332'/>
- <typedef-decl name='gnutls_stek_rotation_callback_t' type-id='type-id-332' id='type-id-330'/>
- <typedef-decl name='gnutls_key_st' type-id='type-id-305' id='type-id-8'/>
- <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-333' visibility='default' id='type-id-334'>
+ <pointer-type-def type-id='type-id-334' size-in-bits='64' id='type-id-335'/>
+ <typedef-decl name='gnutls_stek_rotation_callback_t' type-id='type-id-335' id='type-id-333'/>
+ <typedef-decl name='gnutls_key_st' type-id='type-id-308' id='type-id-8'/>
+ <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-336' visibility='default' id='type-id-337'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='low' type-id='type-id-99' visibility='default'/>
</data-member>
@@ -3740,26 +3770,26 @@
<var-decl name='high' type-id='type-id-99' visibility='default'/>
</data-member>
</class-decl>
- <typedef-decl name='gnutls_range_st' type-id='type-id-334' id='type-id-333'/>
- <qualified-type-def type-id='type-id-333' const='yes' id='type-id-335'/>
- <pointer-type-def type-id='type-id-335' size-in-bits='64' id='type-id-336'/>
+ <typedef-decl name='gnutls_range_st' type-id='type-id-337' id='type-id-336'/>
+ <qualified-type-def type-id='type-id-336' const='yes' id='type-id-338'/>
+ <pointer-type-def type-id='type-id-338' size-in-bits='64' id='type-id-339'/>
<function-decl name='gnutls_record_send_range' mangled-name='gnutls_record_send_range' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_record_send_range@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-101' name='data'/>
<parameter type-id='type-id-99' name='data_size'/>
- <parameter type-id='type-id-336' name='range'/>
+ <parameter type-id='type-id-339' name='range'/>
<return type-id='type-id-3'/>
</function-decl>
- <pointer-type-def type-id='type-id-333' size-in-bits='64' id='type-id-337'/>
+ <pointer-type-def type-id='type-id-336' size-in-bits='64' id='type-id-340'/>
<function-decl name='gnutls_range_split' mangled-name='gnutls_range_split' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_range_split@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
- <parameter type-id='type-id-336' name='orig'/>
- <parameter type-id='type-id-337' name='next'/>
- <parameter type-id='type-id-337' name='remainder'/>
+ <parameter type-id='type-id-237' name='session'/>
+ <parameter type-id='type-id-339' name='orig'/>
+ <parameter type-id='type-id-340' name='next'/>
+ <parameter type-id='type-id-340' name='remainder'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_record_can_use_length_hiding' mangled-name='gnutls_record_can_use_length_hiding' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_record_can_use_length_hiding@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<return type-id='type-id-10'/>
</function-decl>
<function-decl name='_gnutls_log' mangled-name='_gnutls_log' visibility='default' binding='global' size-in-bits='64'>
@@ -3768,56 +3798,65 @@
<function-decl name='_gnutls_send_tlen_int' mangled-name='_gnutls_send_tlen_int' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
+ <function-decl name='__stack_chk_fail' mangled-name='__stack_chk_fail' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
<function-decl name='gnutls_dtls_get_data_mtu' mangled-name='gnutls_dtls_get_data_mtu' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='_gnutls_epoch_get' mangled-name='_gnutls_epoch_get' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-type size-in-bits='64' id='type-id-260'>
- <parameter type-id='type-id-236'/>
+ <function-type size-in-bits='64' id='type-id-261'>
+ <parameter type-id='type-id-237'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-238'>
- <parameter type-id='type-id-236'/>
+ <function-type size-in-bits='64' id='type-id-267'>
<parameter type-id='type-id-237'/>
+ <parameter type-id='type-id-27'/>
+ <parameter type-id='type-id-57'/>
<return type-id='type-id-22'/>
</function-type>
<function-type size-in-bits='64' id='type-id-239'>
- <parameter type-id='type-id-236'/>
- <parameter type-id='type-id-191'/>
+ <parameter type-id='type-id-237'/>
+ <parameter type-id='type-id-238'/>
+ <return type-id='type-id-22'/>
+ </function-type>
+ <function-type size-in-bits='64' id='type-id-240'>
+ <parameter type-id='type-id-237'/>
+ <parameter type-id='type-id-192'/>
<parameter type-id='type-id-99'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-262'>
- <parameter type-id='type-id-236'/>
+ <function-type size-in-bits='64' id='type-id-263'>
+ <parameter type-id='type-id-237'/>
<parameter type-id='type-id-10'/>
<parameter type-id='type-id-10'/>
<parameter type-id='type-id-10'/>
<parameter type-id='type-id-57'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-276'>
- <parameter type-id='type-id-236'/>
+ <function-type size-in-bits='64' id='type-id-279'>
+ <parameter type-id='type-id-237'/>
<parameter type-id='type-id-101'/>
- <parameter type-id='type-id-275'/>
+ <parameter type-id='type-id-278'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-252'>
+ <function-type size-in-bits='64' id='type-id-253'>
<parameter type-id='type-id-154'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-242'>
+ <function-type size-in-bits='64' id='type-id-243'>
<parameter type-id='type-id-154'/>
<parameter type-id='type-id-10'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-258'>
+ <function-type size-in-bits='64' id='type-id-259'>
<parameter type-id='type-id-101'/>
<parameter type-id='type-id-62'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-254'>
+ <function-type size-in-bits='64' id='type-id-255'>
<parameter type-id='type-id-101'/>
<parameter type-id='type-id-62'/>
<parameter type-id='type-id-62'/>
@@ -3850,24 +3889,24 @@
<parameter type-id='type-id-99'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-256'>
+ <function-type size-in-bits='64' id='type-id-257'>
<parameter type-id='type-id-101'/>
<parameter type-id='type-id-62'/>
<return type-id='type-id-62'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-250'>
+ <function-type size-in-bits='64' id='type-id-251'>
<parameter type-id='type-id-154'/>
- <parameter type-id='type-id-249'/>
+ <parameter type-id='type-id-250'/>
<parameter type-id='type-id-22'/>
<return type-id='type-id-3'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-244'>
+ <function-type size-in-bits='64' id='type-id-245'>
<parameter type-id='type-id-154'/>
<parameter type-id='type-id-101'/>
<parameter type-id='type-id-99'/>
<return type-id='type-id-3'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-331'>
+ <function-type size-in-bits='64' id='type-id-334'>
<parameter type-id='type-id-57'/>
<parameter type-id='type-id-57'/>
<parameter type-id='type-id-80'/>
@@ -3888,8 +3927,8 @@
<return type-id='type-id-101'/>
</function-type>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='record.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
- <class-decl name='hello_ext_entry_st' size-in-bits='640' is-struct='yes' visibility='default' id='type-id-296'>
+ <abi-instr version='1.0' address-size='64' path='record.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
+ <class-decl name='hello_ext_entry_st' size-in-bits='640' is-struct='yes' visibility='default' id='type-id-299'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='name' type-id='type-id-27' visibility='default'/>
</data-member>
@@ -3903,34 +3942,34 @@
<var-decl name='gid' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='160'>
- <var-decl name='client_parse_point' type-id='type-id-338' visibility='default'/>
+ <var-decl name='client_parse_point' type-id='type-id-341' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='server_parse_point' type-id='type-id-338' visibility='default'/>
+ <var-decl name='server_parse_point' type-id='type-id-341' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='224'>
<var-decl name='validity' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='recv_func' type-id='type-id-339' visibility='default'/>
+ <var-decl name='recv_func' type-id='type-id-342' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='send_func' type-id='type-id-340' visibility='default'/>
+ <var-decl name='send_func' type-id='type-id-343' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='deinit_func' type-id='type-id-341' visibility='default'/>
+ <var-decl name='deinit_func' type-id='type-id-344' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
- <var-decl name='pack_func' type-id='type-id-342' visibility='default'/>
+ <var-decl name='pack_func' type-id='type-id-345' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='unpack_func' type-id='type-id-343' visibility='default'/>
+ <var-decl name='unpack_func' type-id='type-id-346' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
<var-decl name='cannot_be_overriden' type-id='type-id-10' visibility='default'/>
</data-member>
</class-decl>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-344'>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-347'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_EXT_ANY' value='0'/>
<enumerator name='GNUTLS_EXT_APPLICATION' value='1'/>
@@ -3939,63 +3978,63 @@
<enumerator name='GNUTLS_EXT_NONE' value='4'/>
<enumerator name='GNUTLS_EXT_VERSION_NEG' value='5'/>
</enum-decl>
- <typedef-decl name='gnutls_ext_parse_type_t' type-id='type-id-344' id='type-id-338'/>
- <qualified-type-def type-id='type-id-35' const='yes' id='type-id-345'/>
- <pointer-type-def type-id='type-id-345' size-in-bits='64' id='type-id-346'/>
- <pointer-type-def type-id='type-id-347' size-in-bits='64' id='type-id-348'/>
- <typedef-decl name='gnutls_ext_recv_func' type-id='type-id-348' id='type-id-339'/>
- <pointer-type-def type-id='type-id-190' size-in-bits='64' id='type-id-349'/>
- <typedef-decl name='gnutls_buffer_t' type-id='type-id-349' id='type-id-350'/>
- <pointer-type-def type-id='type-id-351' size-in-bits='64' id='type-id-352'/>
- <typedef-decl name='gnutls_ext_send_func' type-id='type-id-352' id='type-id-340'/>
- <pointer-type-def type-id='type-id-353' size-in-bits='64' id='type-id-354'/>
- <typedef-decl name='gnutls_ext_deinit_data_func' type-id='type-id-354' id='type-id-341'/>
- <pointer-type-def type-id='type-id-355' size-in-bits='64' id='type-id-356'/>
- <typedef-decl name='gnutls_ext_pack_func' type-id='type-id-356' id='type-id-342'/>
- <pointer-type-def type-id='type-id-298' size-in-bits='64' id='type-id-357'/>
+ <typedef-decl name='gnutls_ext_parse_type_t' type-id='type-id-347' id='type-id-341'/>
+ <qualified-type-def type-id='type-id-35' const='yes' id='type-id-348'/>
+ <pointer-type-def type-id='type-id-348' size-in-bits='64' id='type-id-349'/>
+ <pointer-type-def type-id='type-id-350' size-in-bits='64' id='type-id-351'/>
+ <typedef-decl name='gnutls_ext_recv_func' type-id='type-id-351' id='type-id-342'/>
+ <pointer-type-def type-id='type-id-191' size-in-bits='64' id='type-id-352'/>
+ <typedef-decl name='gnutls_buffer_t' type-id='type-id-352' id='type-id-353'/>
+ <pointer-type-def type-id='type-id-354' size-in-bits='64' id='type-id-355'/>
+ <typedef-decl name='gnutls_ext_send_func' type-id='type-id-355' id='type-id-343'/>
+ <pointer-type-def type-id='type-id-356' size-in-bits='64' id='type-id-357'/>
+ <typedef-decl name='gnutls_ext_deinit_data_func' type-id='type-id-357' id='type-id-344'/>
<pointer-type-def type-id='type-id-358' size-in-bits='64' id='type-id-359'/>
- <typedef-decl name='gnutls_ext_unpack_func' type-id='type-id-359' id='type-id-343'/>
+ <typedef-decl name='gnutls_ext_pack_func' type-id='type-id-359' id='type-id-345'/>
+ <pointer-type-def type-id='type-id-301' size-in-bits='64' id='type-id-360'/>
+ <pointer-type-def type-id='type-id-361' size-in-bits='64' id='type-id-362'/>
+ <typedef-decl name='gnutls_ext_unpack_func' type-id='type-id-362' id='type-id-346'/>
<function-decl name='gnutls_record_set_timeout' mangled-name='gnutls_record_set_timeout' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_record_set_timeout@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-10' name='ms'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_record_recv_seq' mangled-name='gnutls_record_recv_seq' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_record_recv_seq@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-101' name='data'/>
<parameter type-id='type-id-99' name='data_size'/>
<parameter type-id='type-id-64' name='seq'/>
<return type-id='type-id-3'/>
</function-decl>
<function-decl name='gnutls_record_recv' mangled-name='gnutls_record_recv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_record_recv@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-101' name='data'/>
<parameter type-id='type-id-99' name='data_size'/>
<return type-id='type-id-3'/>
</function-decl>
<function-decl name='gnutls_record_uncork' mangled-name='gnutls_record_uncork' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_record_uncork@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_record_cork' mangled-name='gnutls_record_cork' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_record_cork@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_record_recv_early_data' mangled-name='gnutls_record_recv_early_data' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_record_recv_early_data@@GNUTLS_3_6_5'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-101' name='data'/>
<parameter type-id='type-id-99' name='data_size'/>
<return type-id='type-id-3'/>
</function-decl>
<function-decl name='gnutls_record_send_early_data' mangled-name='gnutls_record_send_early_data' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_record_send_early_data@@GNUTLS_3_6_5'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-101' name='data'/>
<parameter type-id='type-id-99' name='data_size'/>
<return type-id='type-id-3'/>
</function-decl>
<function-decl name='gnutls_record_send2' mangled-name='gnutls_record_send2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_record_send2@@GNUTLS_3_6_3'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-101' name='data'/>
<parameter type-id='type-id-99' name='data_size'/>
<parameter type-id='type-id-99' name='pad'/>
@@ -4003,90 +4042,90 @@
<return type-id='type-id-3'/>
</function-decl>
<function-decl name='gnutls_record_send' mangled-name='gnutls_record_send' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_record_send@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-101' name='data'/>
<parameter type-id='type-id-99' name='data_size'/>
<return type-id='type-id-3'/>
</function-decl>
- <typedef-decl name='gnutls_packet_t' type-id='type-id-183' id='type-id-360'/>
- <pointer-type-def type-id='type-id-360' size-in-bits='64' id='type-id-361'/>
+ <typedef-decl name='gnutls_packet_t' type-id='type-id-184' id='type-id-363'/>
+ <pointer-type-def type-id='type-id-363' size-in-bits='64' id='type-id-364'/>
<function-decl name='gnutls_record_recv_packet' mangled-name='gnutls_record_recv_packet' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_record_recv_packet@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
- <parameter type-id='type-id-361' name='packet'/>
+ <parameter type-id='type-id-237' name='session'/>
+ <parameter type-id='type-id-364' name='packet'/>
<return type-id='type-id-3'/>
</function-decl>
<function-decl name='gnutls_record_discard_queued' mangled-name='gnutls_record_discard_queued' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_record_discard_queued@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<return type-id='type-id-99'/>
</function-decl>
<function-decl name='gnutls_packet_deinit' mangled-name='gnutls_packet_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_packet_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-360' name='packet'/>
+ <parameter type-id='type-id-363' name='packet'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_packet_get' mangled-name='gnutls_packet_get' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_packet_get@@GNUTLS_3_4'>
- <parameter type-id='type-id-360' name='packet'/>
- <parameter type-id='type-id-275' name='data'/>
+ <parameter type-id='type-id-363' name='packet'/>
+ <parameter type-id='type-id-278' name='data'/>
<parameter type-id='type-id-64' name='sequence'/>
<return type-id='type-id-111'/>
</function-decl>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-362'>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-365'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_SHUT_RDWR' value='0'/>
<enumerator name='GNUTLS_SHUT_WR' value='1'/>
</enum-decl>
- <typedef-decl name='gnutls_close_request_t' type-id='type-id-362' id='type-id-363'/>
+ <typedef-decl name='gnutls_close_request_t' type-id='type-id-365' id='type-id-366'/>
<function-decl name='gnutls_bye' mangled-name='gnutls_bye' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_bye@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
- <parameter type-id='type-id-363' name='how'/>
+ <parameter type-id='type-id-237' name='session'/>
+ <parameter type-id='type-id-366' name='how'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_transport_get_int' mangled-name='gnutls_transport_get_int' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_transport_get_int@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<return type-id='type-id-22'/>
</function-decl>
- <pointer-type-def type-id='type-id-22' size-in-bits='64' id='type-id-364'/>
+ <pointer-type-def type-id='type-id-22' size-in-bits='64' id='type-id-367'/>
<function-decl name='gnutls_transport_get_int2' mangled-name='gnutls_transport_get_int2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_transport_get_int2@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
- <parameter type-id='type-id-364' name='recv_int'/>
- <parameter type-id='type-id-364' name='send_int'/>
+ <parameter type-id='type-id-237' name='session'/>
+ <parameter type-id='type-id-367' name='recv_int'/>
+ <parameter type-id='type-id-367' name='send_int'/>
<return type-id='type-id-111'/>
</function-decl>
- <pointer-type-def type-id='type-id-154' size-in-bits='64' id='type-id-365'/>
+ <pointer-type-def type-id='type-id-154' size-in-bits='64' id='type-id-368'/>
<function-decl name='gnutls_transport_get_ptr2' mangled-name='gnutls_transport_get_ptr2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_transport_get_ptr2@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
- <parameter type-id='type-id-365' name='recv_ptr'/>
- <parameter type-id='type-id-365' name='send_ptr'/>
+ <parameter type-id='type-id-237' name='session'/>
+ <parameter type-id='type-id-368' name='recv_ptr'/>
+ <parameter type-id='type-id-368' name='send_ptr'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_transport_get_ptr' mangled-name='gnutls_transport_get_ptr' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_transport_get_ptr@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<return type-id='type-id-154'/>
</function-decl>
<function-decl name='gnutls_transport_set_int2' mangled-name='gnutls_transport_set_int2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_transport_set_int2@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-22' name='recv_fd'/>
<parameter type-id='type-id-22' name='send_fd'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_transport_set_ptr2' mangled-name='gnutls_transport_set_ptr2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_transport_set_ptr2@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-154' name='recv_ptr'/>
<parameter type-id='type-id-154' name='send_ptr'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_transport_set_ptr' mangled-name='gnutls_transport_set_ptr' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_transport_set_ptr@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-154' name='ptr'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_record_disable_padding' mangled-name='gnutls_record_disable_padding' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_record_disable_padding@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<return type-id='type-id-111'/>
</function-decl>
- <function-decl name='_mbuffer_head_get_first' mangled-name='_mbuffer_head_get_first' visibility='default' binding='global' size-in-bits='64'>
+ <function-decl name='__builtin_memcpy' mangled-name='memcpy' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-decl name='__builtin_memcpy' mangled-name='memcpy' visibility='default' binding='global' size-in-bits='64'>
+ <function-decl name='_mbuffer_head_get_first' mangled-name='_mbuffer_head_get_first' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='_mbuffer_head_remove_bytes' mangled-name='_mbuffer_head_remove_bytes' visibility='default' binding='global' size-in-bits='64'>
@@ -4197,65 +4236,68 @@
<function-decl name='gnutls_handshake' mangled-name='gnutls_handshake' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-type size-in-bits='64' id='type-id-358'>
- <parameter type-id='type-id-350'/>
- <parameter type-id='type-id-357'/>
+ <function-type size-in-bits='64' id='type-id-361'>
+ <parameter type-id='type-id-353'/>
+ <parameter type-id='type-id-360'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-355'>
- <parameter type-id='type-id-298'/>
- <parameter type-id='type-id-350'/>
+ <function-type size-in-bits='64' id='type-id-358'>
+ <parameter type-id='type-id-301'/>
+ <parameter type-id='type-id-353'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-347'>
- <parameter type-id='type-id-236'/>
- <parameter type-id='type-id-346'/>
+ <function-type size-in-bits='64' id='type-id-350'>
+ <parameter type-id='type-id-237'/>
+ <parameter type-id='type-id-349'/>
<parameter type-id='type-id-99'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-351'>
- <parameter type-id='type-id-236'/>
- <parameter type-id='type-id-350'/>
+ <function-type size-in-bits='64' id='type-id-354'>
+ <parameter type-id='type-id-237'/>
+ <parameter type-id='type-id-353'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-353'>
- <parameter type-id='type-id-298'/>
+ <function-type size-in-bits='64' id='type-id-356'>
+ <parameter type-id='type-id-301'/>
<return type-id='type-id-111'/>
</function-type>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='compress.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-366'>
+ <abi-instr version='1.0' address-size='64' path='compress.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-369'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_COMP_UNKNOWN' value='0'/>
<enumerator name='GNUTLS_COMP_NULL' value='1'/>
<enumerator name='GNUTLS_COMP_DEFLATE' value='2'/>
<enumerator name='GNUTLS_COMP_ZLIB' value='2'/>
</enum-decl>
- <typedef-decl name='gnutls_compression_method_t' type-id='type-id-366' id='type-id-367'/>
- <qualified-type-def type-id='type-id-367' const='yes' id='type-id-368'/>
- <pointer-type-def type-id='type-id-368' size-in-bits='64' id='type-id-369'/>
+ <typedef-decl name='gnutls_compression_method_t' type-id='type-id-369' id='type-id-370'/>
+ <qualified-type-def type-id='type-id-370' const='yes' id='type-id-371'/>
+ <pointer-type-def type-id='type-id-371' size-in-bits='64' id='type-id-372'/>
<function-decl name='gnutls_compression_list' mangled-name='gnutls_compression_list' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_compression_list@@GNUTLS_3_4'>
- <return type-id='type-id-369'/>
+ <return type-id='type-id-372'/>
</function-decl>
<function-decl name='gnutls_compression_get_id' mangled-name='gnutls_compression_get_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_compression_get_id@@GNUTLS_3_4'>
<parameter type-id='type-id-27' name='name'/>
- <return type-id='type-id-367'/>
+ <return type-id='type-id-370'/>
</function-decl>
<function-decl name='gnutls_compression_get_name' mangled-name='gnutls_compression_get_name' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_compression_get_name@@GNUTLS_3_4'>
- <parameter type-id='type-id-367' name='algorithm'/>
+ <parameter type-id='type-id-370' name='algorithm'/>
<return type-id='type-id-27'/>
</function-decl>
<function-decl name='c_strcasecmp' mangled-name='c_strcasecmp' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='debug.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='debug.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_handshake_description_get_name' mangled-name='gnutls_handshake_description_get_name' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_handshake_description_get_name@@GNUTLS_3_4'>
- <parameter type-id='type-id-186' name='type'/>
+ <parameter type-id='type-id-187' name='type'/>
<return type-id='type-id-27'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='cipher.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='cipher.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
+ <function-decl name='__builtin___memcpy_chk' mangled-name='__memcpy_chk' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
<function-decl name='_gnutls_auth_cipher_add_auth' mangled-name='_gnutls_auth_cipher_add_auth' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -4274,7 +4316,7 @@
<function-decl name='cbc_mac_verify' mangled-name='cbc_mac_verify' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-decl name='__builtin_memset' mangled-name='memset' visibility='default' binding='global' size-in-bits='64'>
+ <function-decl name='__builtin___memset_chk' mangled-name='__memset_chk' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_aead_cipher_decrypt' mangled-name='gnutls_aead_cipher_decrypt' visibility='default' binding='global' size-in-bits='64'>
@@ -4290,8 +4332,8 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='handshake-tls13.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
- <class-decl name='gnutls_session_int' size-in-bits='52736' is-struct='yes' visibility='default' id='type-id-370'>
+ <abi-instr version='1.0' address-size='64' path='handshake-tls13.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
+ <class-decl name='gnutls_session_int' size-in-bits='52800' is-struct='yes' visibility='default' id='type-id-373'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='security_parameters' type-id='type-id-5' visibility='default'/>
</data-member>
@@ -4299,13 +4341,13 @@
<var-decl name='record_parameters' type-id='type-id-6' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2304'>
- <var-decl name='internals' type-id='type-id-371' visibility='default'/>
+ <var-decl name='internals' type-id='type-id-374' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='30080'>
+ <data-member access='public' layout-offset-in-bits='30144'>
<var-decl name='key' type-id='type-id-8' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='27776' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-371' visibility='default' id='type-id-372'>
+ <class-decl name='__anonymous_struct__' size-in-bits='27840' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-374' visibility='default' id='type-id-375'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='record_buffer' type-id='type-id-138' visibility='default'/>
</data-member>
@@ -4508,298 +4550,301 @@
<var-decl name='h_post' type-id='type-id-160' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10496'>
- <var-decl name='selected_cert_list' type-id='type-id-161' visibility='default'/>
+ <var-decl name='keylog_func' type-id='type-id-161' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10560'>
- <var-decl name='selected_cert_list_length' type-id='type-id-11' visibility='default'/>
+ <var-decl name='selected_cert_list' type-id='type-id-162' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10624'>
- <var-decl name='selected_key' type-id='type-id-373' visibility='default'/>
+ <var-decl name='selected_cert_list_length' type-id='type-id-11' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10688'>
- <var-decl name='selected_ocsp' type-id='type-id-163' visibility='default'/>
+ <var-decl name='selected_key' type-id='type-id-376' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10752'>
- <var-decl name='selected_ocsp_length' type-id='type-id-11' visibility='default'/>
+ <var-decl name='selected_ocsp' type-id='type-id-164' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10816'>
- <var-decl name='selected_ocsp_func' type-id='type-id-164' visibility='default'/>
+ <var-decl name='selected_ocsp_length' type-id='type-id-11' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10880'>
- <var-decl name='selected_ocsp_func_ptr' type-id='type-id-101' visibility='default'/>
+ <var-decl name='selected_ocsp_func' type-id='type-id-165' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10944'>
+ <var-decl name='selected_ocsp_func_ptr' type-id='type-id-101' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='11008'>
<var-decl name='selected_need_free' type-id='type-id-75' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='10952'>
- <var-decl name='default_record_version' type-id='type-id-165' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='11016'>
+ <var-decl name='default_record_version' type-id='type-id-166' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='10968'>
- <var-decl name='default_hello_version' type-id='type-id-165' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='11032'>
+ <var-decl name='default_hello_version' type-id='type-id-166' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11008'>
+ <data-member access='public' layout-offset-in-bits='11072'>
<var-decl name='user_ptr' type-id='type-id-101' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11072'>
+ <data-member access='public' layout-offset-in-bits='11136'>
<var-decl name='direction' type-id='type-id-75' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11080'>
+ <data-member access='public' layout-offset-in-bits='11144'>
<var-decl name='ignore_rdn_sequence' type-id='type-id-75' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11088'>
- <var-decl name='rsa_pms_version' type-id='type-id-165' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='11152'>
+ <var-decl name='rsa_pms_version' type-id='type-id-166' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11104'>
+ <data-member access='public' layout-offset-in-bits='11168'>
<var-decl name='errnum' type-id='type-id-22' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11136'>
+ <data-member access='public' layout-offset-in-bits='11200'>
<var-decl name='initial_negotiation_completed' type-id='type-id-75' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11200'>
+ <data-member access='public' layout-offset-in-bits='11264'>
<var-decl name='post_negotiation_lock' type-id='type-id-101' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11264'>
+ <data-member access='public' layout-offset-in-bits='11328'>
<var-decl name='transport' type-id='type-id-74' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11328'>
- <var-decl name='dtls' type-id='type-id-166' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='11392'>
+ <var-decl name='dtls' type-id='type-id-167' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11904'>
+ <data-member access='public' layout-offset-in-bits='11968'>
<var-decl name='handshake_suspicious_loops' type-id='type-id-10' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11936'>
+ <data-member access='public' layout-offset-in-bits='12000'>
<var-decl name='handshake_in_progress' type-id='type-id-75' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11944'>
+ <data-member access='public' layout-offset-in-bits='12008'>
<var-decl name='premaster_set' type-id='type-id-75' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='11968'>
+ <data-member access='public' layout-offset-in-bits='12032'>
<var-decl name='cb_tls_unique_len' type-id='type-id-10' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='12000'>
- <var-decl name='cb_tls_unique' type-id='type-id-167' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='12064'>
+ <var-decl name='cb_tls_unique' type-id='type-id-168' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='12288'>
- <var-decl name='handshake_start_time' type-id='type-id-168' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='12352'>
+ <var-decl name='handshake_start_time' type-id='type-id-169' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='12416'>
- <var-decl name='handshake_abs_timeout' type-id='type-id-168' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='12480'>
+ <var-decl name='handshake_abs_timeout' type-id='type-id-169' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='12544'>
+ <data-member access='public' layout-offset-in-bits='12608'>
<var-decl name='ertt' type-id='type-id-10' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='12576'>
+ <data-member access='public' layout-offset-in-bits='12640'>
<var-decl name='handshake_timeout_ms' type-id='type-id-10' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='12608'>
+ <data-member access='public' layout-offset-in-bits='12672'>
<var-decl name='record_timeout_ms' type-id='type-id-10' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='12672'>
+ <data-member access='public' layout-offset-in-bits='12736'>
<var-decl name='post_handshake_cr_context' type-id='type-id-62' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='12800'>
+ <data-member access='public' layout-offset-in-bits='12864'>
<var-decl name='post_handshake_hash_buffer' type-id='type-id-139' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='13056'>
+ <data-member access='public' layout-offset-in-bits='13120'>
<var-decl name='hsk_flags' type-id='type-id-10' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='13120'>
- <var-decl name='last_key_update' type-id='type-id-168' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='13184'>
+ <var-decl name='last_key_update' type-id='type-id-169' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='13248'>
+ <data-member access='public' layout-offset-in-bits='13312'>
<var-decl name='key_update_count' type-id='type-id-10' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='13312'>
+ <data-member access='public' layout-offset-in-bits='13376'>
<var-decl name='full_client_hello' type-id='type-id-139' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='13568'>
+ <data-member access='public' layout-offset-in-bits='13632'>
<var-decl name='extensions_offset' type-id='type-id-22' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='13632'>
+ <data-member access='public' layout-offset-in-bits='13696'>
<var-decl name='hb_local_data' type-id='type-id-139' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='13888'>
+ <data-member access='public' layout-offset-in-bits='13952'>
<var-decl name='hb_remote_data' type-id='type-id-139' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='14144'>
- <var-decl name='hb_ping_start' type-id='type-id-168' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='14272'>
- <var-decl name='hb_ping_sent' type-id='type-id-168' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='14208'>
+ <var-decl name='hb_ping_start' type-id='type-id-169' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='14400'>
- <var-decl name='hb_actual_retrans_timeout_ms' type-id='type-id-10' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='14432'>
- <var-decl name='hb_retrans_timeout_ms' type-id='type-id-10' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='14336'>
+ <var-decl name='hb_ping_sent' type-id='type-id-169' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='14464'>
- <var-decl name='hb_total_timeout_ms' type-id='type-id-10' visibility='default'/>
+ <var-decl name='hb_actual_retrans_timeout_ms' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='14496'>
- <var-decl name='ocsp_check_ok' type-id='type-id-75' visibility='default'/>
+ <var-decl name='hb_retrans_timeout_ms' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='14528'>
- <var-decl name='hb_state' type-id='type-id-169' visibility='default'/>
+ <var-decl name='hb_total_timeout_ms' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='14560'>
- <var-decl name='recv_state' type-id='type-id-170' visibility='default'/>
+ <var-decl name='ocsp_check_ok' type-id='type-id-75' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='14592'>
- <var-decl name='sc_random_set' type-id='type-id-75' visibility='default'/>
+ <var-decl name='hb_state' type-id='type-id-170' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='14624'>
+ <var-decl name='recv_state' type-id='type-id-171' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='14656'>
- <var-decl name='flags' type-id='type-id-80' visibility='default'/>
+ <var-decl name='sc_random_set' type-id='type-id-75' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='14720'>
- <var-decl name='verify_callback' type-id='type-id-171' visibility='default'/>
+ <var-decl name='flags' type-id='type-id-80' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='14784'>
- <var-decl name='vc_data' type-id='type-id-172' visibility='default'/>
+ <var-decl name='verify_callback' type-id='type-id-172' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='14848'>
- <var-decl name='vc_sdata' type-id='type-id-173' visibility='default'/>
+ <var-decl name='vc_data' type-id='type-id-173' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='14912'>
+ <var-decl name='vc_sdata' type-id='type-id-174' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='15040'>
+ <data-member access='public' layout-offset-in-bits='15104'>
<var-decl name='vc_elements' type-id='type-id-10' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='15072'>
+ <data-member access='public' layout-offset-in-bits='15136'>
<var-decl name='vc_status' type-id='type-id-10' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='15104'>
+ <data-member access='public' layout-offset-in-bits='15168'>
<var-decl name='additional_verify_flags' type-id='type-id-10' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='15136'>
+ <data-member access='public' layout-offset-in-bits='15200'>
<var-decl name='cert_hash' type-id='type-id-15' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='15392'>
+ <data-member access='public' layout-offset-in-bits='15456'>
<var-decl name='cert_hash_set' type-id='type-id-75' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='15400'>
- <var-decl name='saved_username' type-id='type-id-174' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='15464'>
+ <var-decl name='saved_username' type-id='type-id-175' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='16432'>
+ <data-member access='public' layout-offset-in-bits='16496'>
<var-decl name='saved_username_set' type-id='type-id-75' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='16448'>
- <var-decl name='tfo' type-id='type-id-175' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='17664'>
- <var-decl name='rsup' type-id='type-id-176' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='16512'>
+ <var-decl name='tfo' type-id='type-id-176' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='17728'>
- <var-decl name='rsup_size' type-id='type-id-10' visibility='default'/>
+ <var-decl name='rsup' type-id='type-id-177' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='17792'>
- <var-decl name='rexts' type-id='type-id-177' visibility='default'/>
+ <var-decl name='rsup_size' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='17856'>
- <var-decl name='rexts_size' type-id='type-id-10' visibility='default'/>
+ <var-decl name='rexts' type-id='type-id-178' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='17920'>
- <var-decl name='ext_data' type-id='type-id-178' visibility='default'/>
+ <var-decl name='rexts_size' type-id='type-id-10' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='17984'>
+ <var-decl name='ext_data' type-id='type-id-179' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='24064'>
+ <data-member access='public' layout-offset-in-bits='24128'>
<var-decl name='used_exts' type-id='type-id-18' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='24096'>
- <var-decl name='ext_msg' type-id='type-id-179' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='24160'>
+ <var-decl name='ext_msg' type-id='type-id-180' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='24128'>
+ <data-member access='public' layout-offset-in-bits='24192'>
<var-decl name='max_recv_size' type-id='type-id-10' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='24192'>
+ <data-member access='public' layout-offset-in-bits='24256'>
<var-decl name='cand_ec_group' type-id='type-id-20' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='24256'>
+ <data-member access='public' layout-offset-in-bits='24320'>
<var-decl name='cand_dh_group' type-id='type-id-20' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='24320'>
+ <data-member access='public' layout-offset-in-bits='24384'>
<var-decl name='cand_group' type-id='type-id-20' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='24384'>
- <var-decl name='hrr_cs' type-id='type-id-165' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='24448'>
+ <var-decl name='hrr_cs' type-id='type-id-166' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='24416'>
+ <data-member access='public' layout-offset-in-bits='24480'>
<var-decl name='session_ticket_renew' type-id='type-id-22' visibility='default'/>
</data-member>
- <data-member access='public' layout-offset-in-bits='24448'>
- <var-decl name='tls13_ticket' type-id='type-id-180' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='27584'>
- <var-decl name='early_data_received' type-id='type-id-18' visibility='default'/>
+ <data-member access='public' layout-offset-in-bits='24512'>
+ <var-decl name='tls13_ticket' type-id='type-id-181' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='27648'>
- <var-decl name='anti_replay' type-id='type-id-181' visibility='default'/>
+ <var-decl name='early_data_received' type-id='type-id-18' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='27712'>
+ <var-decl name='anti_replay' type-id='type-id-182' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='27776'>
<var-decl name='epoch_lock' type-id='type-id-101' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='gnutls_pubkey_st' size-in-bits='4096' is-struct='yes' visibility='default' id='type-id-268'>
+ <class-decl name='gnutls_pubkey_st' size-in-bits='4096' is-struct='yes' visibility='default' id='type-id-271'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='bits' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='params' type-id='type-id-312' visibility='default'/>
+ <var-decl name='params' type-id='type-id-315' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3904'>
<var-decl name='key_usage' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3968'>
- <var-decl name='pin' type-id='type-id-374' visibility='default'/>
+ <var-decl name='pin' type-id='type-id-377' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='pin_info_st' size-in-bits='128' is-struct='yes' visibility='default' id='type-id-374'>
+ <class-decl name='pin_info_st' size-in-bits='128' is-struct='yes' visibility='default' id='type-id-377'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='cb' type-id='type-id-375' visibility='default'/>
+ <var-decl name='cb' type-id='type-id-378' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='data' type-id='type-id-101' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-33' size-in-bits='64' id='type-id-376'/>
- <pointer-type-def type-id='type-id-377' size-in-bits='64' id='type-id-378'/>
- <typedef-decl name='gnutls_pin_callback_t' type-id='type-id-378' id='type-id-375'/>
- <class-decl name='gnutls_privkey_st' size-in-bits='832' is-struct='yes' visibility='default' id='type-id-379'>
+ <pointer-type-def type-id='type-id-33' size-in-bits='64' id='type-id-379'/>
+ <pointer-type-def type-id='type-id-380' size-in-bits='64' id='type-id-381'/>
+ <typedef-decl name='gnutls_pin_callback_t' type-id='type-id-381' id='type-id-378'/>
+ <class-decl name='gnutls_privkey_st' size-in-bits='832' is-struct='yes' visibility='default' id='type-id-382'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='type' type-id='type-id-380' visibility='default'/>
+ <var-decl name='type' type-id='type-id-383' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
<var-decl name='pk_algorithm' type-id='type-id-60' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='key' type-id='type-id-381' visibility='default'/>
+ <var-decl name='key' type-id='type-id-384' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='640'>
<var-decl name='flags' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='704'>
- <var-decl name='pin' type-id='type-id-374' visibility='default'/>
+ <var-decl name='pin' type-id='type-id-377' visibility='default'/>
</data-member>
</class-decl>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-382'>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-385'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_PRIVKEY_X509' value='0'/>
<enumerator name='GNUTLS_PRIVKEY_OPENPGP' value='1'/>
<enumerator name='GNUTLS_PRIVKEY_PKCS11' value='2'/>
<enumerator name='GNUTLS_PRIVKEY_EXT' value='3'/>
</enum-decl>
- <typedef-decl name='gnutls_privkey_type_t' type-id='type-id-382' id='type-id-380'/>
- <union-decl name='__anonymous_union__' size-in-bits='576' is-anonymous='yes' visibility='default' id='type-id-381'>
+ <typedef-decl name='gnutls_privkey_type_t' type-id='type-id-385' id='type-id-383'/>
+ <union-decl name='__anonymous_union__' size-in-bits='576' is-anonymous='yes' visibility='default' id='type-id-384'>
<data-member access='private'>
- <var-decl name='x509' type-id='type-id-383' visibility='default'/>
+ <var-decl name='x509' type-id='type-id-386' visibility='default'/>
</data-member>
<data-member access='private'>
- <var-decl name='pkcs11' type-id='type-id-384' visibility='default'/>
+ <var-decl name='pkcs11' type-id='type-id-387' visibility='default'/>
</data-member>
<data-member access='private'>
- <var-decl name='ext' type-id='type-id-385' visibility='default'/>
+ <var-decl name='ext' type-id='type-id-388' visibility='default'/>
</data-member>
</union-decl>
- <class-decl name='gnutls_x509_privkey_int' size-in-bits='4096' is-struct='yes' visibility='default' id='type-id-386'>
+ <class-decl name='gnutls_x509_privkey_int' size-in-bits='4096' is-struct='yes' visibility='default' id='type-id-389'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='params' type-id='type-id-312' visibility='default'/>
+ <var-decl name='params' type-id='type-id-315' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3840'>
<var-decl name='expanded' type-id='type-id-10' visibility='default'/>
@@ -4808,42 +4853,42 @@
<var-decl name='flags' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3904'>
- <var-decl name='key' type-id='type-id-387' visibility='default'/>
+ <var-decl name='key' type-id='type-id-390' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3968'>
- <var-decl name='pin' type-id='type-id-374' visibility='default'/>
+ <var-decl name='pin' type-id='type-id-377' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='asn1_node_st' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-388'/>
- <typedef-decl name='asn1_node_st' type-id='type-id-388' id='type-id-389'/>
- <pointer-type-def type-id='type-id-389' size-in-bits='64' id='type-id-390'/>
- <typedef-decl name='asn1_node' type-id='type-id-390' id='type-id-387'/>
- <pointer-type-def type-id='type-id-386' size-in-bits='64' id='type-id-391'/>
- <typedef-decl name='gnutls_x509_privkey_t' type-id='type-id-391' id='type-id-383'/>
- <class-decl name='gnutls_pkcs11_privkey_st' size-in-bits='3392' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-392'/>
+ <class-decl name='asn1_node_st' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-391'/>
+ <typedef-decl name='asn1_node_st' type-id='type-id-391' id='type-id-392'/>
<pointer-type-def type-id='type-id-392' size-in-bits='64' id='type-id-393'/>
- <typedef-decl name='gnutls_pkcs11_privkey_t' type-id='type-id-393' id='type-id-384'/>
- <class-decl name='__anonymous_struct__' size-in-bits='576' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-385'>
+ <typedef-decl name='asn1_node' type-id='type-id-393' id='type-id-390'/>
+ <pointer-type-def type-id='type-id-389' size-in-bits='64' id='type-id-394'/>
+ <typedef-decl name='gnutls_x509_privkey_t' type-id='type-id-394' id='type-id-386'/>
+ <class-decl name='gnutls_pkcs11_privkey_st' size-in-bits='3392' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-395'/>
+ <pointer-type-def type-id='type-id-395' size-in-bits='64' id='type-id-396'/>
+ <typedef-decl name='gnutls_pkcs11_privkey_t' type-id='type-id-396' id='type-id-387'/>
+ <class-decl name='__anonymous_struct__' size-in-bits='576' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-388'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='sign_func' type-id='type-id-394' visibility='default'/>
+ <var-decl name='sign_func' type-id='type-id-397' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='sign_data_func' type-id='type-id-395' visibility='default'/>
+ <var-decl name='sign_data_func' type-id='type-id-398' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='sign_hash_func' type-id='type-id-396' visibility='default'/>
+ <var-decl name='sign_hash_func' type-id='type-id-399' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='decrypt_func' type-id='type-id-397' visibility='default'/>
+ <var-decl name='decrypt_func' type-id='type-id-400' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='decrypt_func2' type-id='type-id-398' visibility='default'/>
+ <var-decl name='decrypt_func2' type-id='type-id-401' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='deinit_func' type-id='type-id-399' visibility='default'/>
+ <var-decl name='deinit_func' type-id='type-id-402' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='info_func' type-id='type-id-400' visibility='default'/>
+ <var-decl name='info_func' type-id='type-id-403' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
<var-decl name='userdata' type-id='type-id-101' visibility='default'/>
@@ -4852,25 +4897,25 @@
<var-decl name='bits' type-id='type-id-10' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-379' size-in-bits='64' id='type-id-373'/>
- <typedef-decl name='gnutls_privkey_t' type-id='type-id-373' id='type-id-401'/>
- <pointer-type-def type-id='type-id-402' size-in-bits='64' id='type-id-403'/>
- <typedef-decl name='gnutls_privkey_sign_func' type-id='type-id-403' id='type-id-394'/>
- <pointer-type-def type-id='type-id-404' size-in-bits='64' id='type-id-405'/>
- <typedef-decl name='gnutls_privkey_sign_data_func' type-id='type-id-405' id='type-id-395'/>
- <typedef-decl name='gnutls_privkey_sign_hash_func' type-id='type-id-405' id='type-id-396'/>
- <typedef-decl name='gnutls_privkey_decrypt_func' type-id='type-id-403' id='type-id-397'/>
- <pointer-type-def type-id='type-id-406' size-in-bits='64' id='type-id-407'/>
- <typedef-decl name='gnutls_privkey_decrypt_func2' type-id='type-id-407' id='type-id-398'/>
- <pointer-type-def type-id='type-id-408' size-in-bits='64' id='type-id-409'/>
- <typedef-decl name='gnutls_privkey_deinit_func' type-id='type-id-409' id='type-id-399'/>
- <pointer-type-def type-id='type-id-410' size-in-bits='64' id='type-id-411'/>
- <typedef-decl name='gnutls_privkey_info_func' type-id='type-id-411' id='type-id-400'/>
- <typedef-decl name='internals_st' type-id='type-id-372' id='type-id-371'/>
- <pointer-type-def type-id='type-id-370' size-in-bits='64' id='type-id-412'/>
- <typedef-decl name='gnutls_session_t' type-id='type-id-412' id='type-id-413'/>
+ <pointer-type-def type-id='type-id-382' size-in-bits='64' id='type-id-376'/>
+ <typedef-decl name='gnutls_privkey_t' type-id='type-id-376' id='type-id-404'/>
+ <pointer-type-def type-id='type-id-405' size-in-bits='64' id='type-id-406'/>
+ <typedef-decl name='gnutls_privkey_sign_func' type-id='type-id-406' id='type-id-397'/>
+ <pointer-type-def type-id='type-id-407' size-in-bits='64' id='type-id-408'/>
+ <typedef-decl name='gnutls_privkey_sign_data_func' type-id='type-id-408' id='type-id-398'/>
+ <typedef-decl name='gnutls_privkey_sign_hash_func' type-id='type-id-408' id='type-id-399'/>
+ <typedef-decl name='gnutls_privkey_decrypt_func' type-id='type-id-406' id='type-id-400'/>
+ <pointer-type-def type-id='type-id-409' size-in-bits='64' id='type-id-410'/>
+ <typedef-decl name='gnutls_privkey_decrypt_func2' type-id='type-id-410' id='type-id-401'/>
+ <pointer-type-def type-id='type-id-411' size-in-bits='64' id='type-id-412'/>
+ <typedef-decl name='gnutls_privkey_deinit_func' type-id='type-id-412' id='type-id-402'/>
+ <pointer-type-def type-id='type-id-413' size-in-bits='64' id='type-id-414'/>
+ <typedef-decl name='gnutls_privkey_info_func' type-id='type-id-414' id='type-id-403'/>
+ <typedef-decl name='internals_st' type-id='type-id-375' id='type-id-374'/>
+ <pointer-type-def type-id='type-id-373' size-in-bits='64' id='type-id-415'/>
+ <typedef-decl name='gnutls_session_t' type-id='type-id-415' id='type-id-416'/>
<function-decl name='gnutls_session_ticket_send' mangled-name='gnutls_session_ticket_send' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_session_ticket_send@@GNUTLS_3_6_3'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<parameter type-id='type-id-10' name='nr'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
@@ -4965,7 +5010,7 @@
<function-decl name='_tls13_update_secret' mangled-name='_tls13_update_secret' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-decl name='_gnutls_nss_keylog_write' mangled-name='_gnutls_nss_keylog_write' visibility='default' binding='global' size-in-bits='64'>
+ <function-decl name='_gnutls_call_keylog_func' mangled-name='_gnutls_call_keylog_func' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='_gnutls13_send_early_data' mangled-name='_gnutls13_send_early_data' visibility='default' binding='global' size-in-bits='64'>
@@ -4980,59 +5025,59 @@
<function-decl name='_gnutls13_send_end_of_early_data' mangled-name='_gnutls13_send_end_of_early_data' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-type size-in-bits='64' id='type-id-404'>
- <parameter type-id='type-id-401'/>
+ <function-type size-in-bits='64' id='type-id-407'>
+ <parameter type-id='type-id-404'/>
<parameter type-id='type-id-21'/>
<parameter type-id='type-id-101'/>
<parameter type-id='type-id-10'/>
<parameter type-id='type-id-57'/>
- <parameter type-id='type-id-275'/>
+ <parameter type-id='type-id-278'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-410'>
- <parameter type-id='type-id-401'/>
+ <function-type size-in-bits='64' id='type-id-413'>
+ <parameter type-id='type-id-404'/>
<parameter type-id='type-id-10'/>
<parameter type-id='type-id-101'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-402'>
- <parameter type-id='type-id-401'/>
+ <function-type size-in-bits='64' id='type-id-405'>
+ <parameter type-id='type-id-404'/>
<parameter type-id='type-id-101'/>
<parameter type-id='type-id-57'/>
- <parameter type-id='type-id-275'/>
+ <parameter type-id='type-id-278'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-406'>
- <parameter type-id='type-id-401'/>
+ <function-type size-in-bits='64' id='type-id-409'>
+ <parameter type-id='type-id-404'/>
<parameter type-id='type-id-101'/>
<parameter type-id='type-id-57'/>
<parameter type-id='type-id-64'/>
<parameter type-id='type-id-99'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-377'>
+ <function-type size-in-bits='64' id='type-id-380'>
<parameter type-id='type-id-101'/>
<parameter type-id='type-id-22'/>
<parameter type-id='type-id-27'/>
<parameter type-id='type-id-27'/>
<parameter type-id='type-id-10'/>
- <parameter type-id='type-id-376'/>
+ <parameter type-id='type-id-379'/>
<parameter type-id='type-id-99'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-408'>
- <parameter type-id='type-id-401'/>
+ <function-type size-in-bits='64' id='type-id-411'>
+ <parameter type-id='type-id-404'/>
<parameter type-id='type-id-101'/>
<return type-id='type-id-111'/>
</function-type>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='buffers.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='buffers.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_record_check_corked' mangled-name='gnutls_record_check_corked' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_record_check_corked@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<return type-id='type-id-99'/>
</function-decl>
<function-decl name='gnutls_record_check_pending' mangled-name='gnutls_record_check_pending' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_record_check_pending@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<return type-id='type-id-99'/>
</function-decl>
<function-decl name='_gnutls_recv_in_buffers' mangled-name='_gnutls_recv_in_buffers' visibility='default' binding='global' size-in-bits='64'>
@@ -5041,10 +5086,10 @@
<function-decl name='_mbuffer_head_push_first' mangled-name='_mbuffer_head_push_first' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-decl name='_gnutls_buffer_resize' mangled-name='_gnutls_buffer_resize' visibility='default' binding='global' size-in-bits='64'>
+ <function-decl name='__builtin_memmove' mangled-name='memmove' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-decl name='memmove' mangled-name='memmove' visibility='default' binding='global' size-in-bits='64'>
+ <function-decl name='_gnutls_buffer_resize' mangled-name='_gnutls_buffer_resize' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='_mbuffer_head_get_next' mangled-name='_mbuffer_head_get_next' visibility='default' binding='global' size-in-bits='64'>
@@ -5063,31 +5108,31 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='handshake.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='handshake.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_handshake_get_last_out' mangled-name='gnutls_handshake_get_last_out' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_handshake_get_last_out@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
- <return type-id='type-id-186'/>
+ <parameter type-id='type-id-416' name='session'/>
+ <return type-id='type-id-187'/>
</function-decl>
<function-decl name='gnutls_handshake_get_last_in' mangled-name='gnutls_handshake_get_last_in' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_handshake_get_last_in@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
- <return type-id='type-id-186'/>
+ <parameter type-id='type-id-416' name='session'/>
+ <return type-id='type-id-187'/>
</function-decl>
<function-decl name='gnutls_handshake_set_max_packet_length' mangled-name='gnutls_handshake_set_max_packet_length' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_handshake_set_max_packet_length@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<parameter type-id='type-id-99' name='max'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_handshake_set_timeout' mangled-name='gnutls_handshake_set_timeout' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_handshake_set_timeout@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<parameter type-id='type-id-10' name='ms'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_handshake' mangled-name='gnutls_handshake' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_handshake@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_rehandshake' mangled-name='gnutls_rehandshake' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_rehandshake@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='_gnutls_hash_fast' mangled-name='_gnutls_hash_fast' visibility='default' binding='global' size-in-bits='64'>
@@ -5177,10 +5222,10 @@
<function-decl name='_gnutls_send_server_crt_request' mangled-name='_gnutls_send_server_crt_request' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-decl name='_gnutls_send_server_certificate_status' mangled-name='_gnutls_send_server_certificate_status' visibility='default' binding='global' size-in-bits='64'>
+ <function-decl name='_gnutls_recv_client_certificate_verify_message' mangled-name='_gnutls_recv_client_certificate_verify_message' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-decl name='_gnutls_recv_client_certificate_verify_message' mangled-name='_gnutls_recv_client_certificate_verify_message' visibility='default' binding='global' size-in-bits='64'>
+ <function-decl name='_gnutls_send_server_certificate_status' mangled-name='_gnutls_send_server_certificate_status' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='_gnutls_send_server_kx_message' mangled-name='_gnutls_send_server_kx_message' visibility='default' binding='global' size-in-bits='64'>
@@ -5328,7 +5373,7 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='errors.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='errors.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='_gnutls_log' mangled-name='_gnutls_log' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls_log@@GNUTLS_PRIVATE_3_4'>
<parameter type-id='type-id-22' name='level'/>
<parameter type-id='type-id-27' name='fmt'/>
@@ -5337,7 +5382,7 @@
</function-decl>
<function-decl name='_gnutls_mpi_log' mangled-name='_gnutls_mpi_log' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls_mpi_log@@GNUTLS_PRIVATE_3_4'>
<parameter type-id='type-id-27' name='prefix'/>
- <parameter type-id='type-id-318' name='a'/>
+ <parameter type-id='type-id-321' name='a'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_strerror_name' mangled-name='gnutls_strerror_name' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_strerror_name@@GNUTLS_3_4'>
@@ -5356,109 +5401,109 @@
<parameter type-id='type-id-22' name='error'/>
<return type-id='type-id-27'/>
</function-decl>
- <function-decl name='vasprintf' mangled-name='vasprintf' visibility='default' binding='global' size-in-bits='64'>
+ <function-decl name='__vasprintf_chk' mangled-name='__vasprintf_chk' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='free' mangled-name='free' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-decl name='fprintf' mangled-name='fprintf' visibility='default' binding='global' size-in-bits='64'>
+ <function-decl name='__fprintf_chk' mangled-name='__fprintf_chk' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='dcgettext' mangled-name='dcgettext' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='dh.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
- <class-decl name='gnutls_dh_params_int' size-in-bits='256' is-struct='yes' visibility='default' id='type-id-414'>
+ <abi-instr version='1.0' address-size='64' path='dh.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
+ <class-decl name='gnutls_dh_params_int' size-in-bits='256' is-struct='yes' visibility='default' id='type-id-417'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='params' type-id='type-id-415' visibility='default'/>
+ <var-decl name='params' type-id='type-id-418' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
<var-decl name='q_bits' type-id='type-id-22' visibility='default'/>
</data-member>
</class-decl>
- <array-type-def dimensions='1' type-id='type-id-318' size-in-bits='192' id='type-id-415'>
- <subrange length='3' type-id='type-id-38' id='type-id-416'/>
+ <array-type-def dimensions='1' type-id='type-id-321' size-in-bits='192' id='type-id-418'>
+ <subrange length='3' type-id='type-id-38' id='type-id-419'/>
</array-type-def>
- <pointer-type-def type-id='type-id-414' size-in-bits='64' id='type-id-417'/>
- <typedef-decl name='gnutls_dh_params_t' type-id='type-id-417' id='type-id-418'/>
- <pointer-type-def type-id='type-id-10' size-in-bits='64' id='type-id-419'/>
+ <pointer-type-def type-id='type-id-417' size-in-bits='64' id='type-id-420'/>
+ <typedef-decl name='gnutls_dh_params_t' type-id='type-id-420' id='type-id-421'/>
+ <pointer-type-def type-id='type-id-10' size-in-bits='64' id='type-id-422'/>
<function-decl name='gnutls_dh_params_export_raw' mangled-name='gnutls_dh_params_export_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_dh_params_export_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-418' name='params'/>
- <parameter type-id='type-id-275' name='prime'/>
- <parameter type-id='type-id-275' name='generator'/>
- <parameter type-id='type-id-419' name='bits'/>
+ <parameter type-id='type-id-421' name='params'/>
+ <parameter type-id='type-id-278' name='prime'/>
+ <parameter type-id='type-id-278' name='generator'/>
+ <parameter type-id='type-id-422' name='bits'/>
<return type-id='type-id-22'/>
</function-decl>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-420'>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-423'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_X509_FMT_DER' value='0'/>
<enumerator name='GNUTLS_X509_FMT_PEM' value='1'/>
</enum-decl>
- <typedef-decl name='gnutls_x509_crt_fmt_t' type-id='type-id-420' id='type-id-421'/>
+ <typedef-decl name='gnutls_x509_crt_fmt_t' type-id='type-id-423' id='type-id-424'/>
<function-decl name='gnutls_dh_params_export2_pkcs3' mangled-name='gnutls_dh_params_export2_pkcs3' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_dh_params_export2_pkcs3@@GNUTLS_3_4'>
- <parameter type-id='type-id-418' name='params'/>
- <parameter type-id='type-id-421' name='format'/>
- <parameter type-id='type-id-275' name='out'/>
+ <parameter type-id='type-id-421' name='params'/>
+ <parameter type-id='type-id-424' name='format'/>
+ <parameter type-id='type-id-278' name='out'/>
<return type-id='type-id-22'/>
</function-decl>
- <pointer-type-def type-id='type-id-99' size-in-bits='64' id='type-id-422'/>
+ <pointer-type-def type-id='type-id-99' size-in-bits='64' id='type-id-425'/>
<function-decl name='gnutls_dh_params_export_pkcs3' mangled-name='gnutls_dh_params_export_pkcs3' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_dh_params_export_pkcs3@@GNUTLS_3_4'>
- <parameter type-id='type-id-418' name='params'/>
- <parameter type-id='type-id-421' name='format'/>
+ <parameter type-id='type-id-421' name='params'/>
+ <parameter type-id='type-id-424' name='format'/>
<parameter type-id='type-id-64' name='params_data'/>
- <parameter type-id='type-id-422' name='params_data_size'/>
+ <parameter type-id='type-id-425' name='params_data_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_dh_params_import_pkcs3' mangled-name='gnutls_dh_params_import_pkcs3' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_dh_params_import_pkcs3@@GNUTLS_3_4'>
- <parameter type-id='type-id-418' name='params'/>
+ <parameter type-id='type-id-421' name='params'/>
<parameter type-id='type-id-57' name='pkcs3_params'/>
- <parameter type-id='type-id-421' name='format'/>
+ <parameter type-id='type-id-424' name='format'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_dh_params_generate2' mangled-name='gnutls_dh_params_generate2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_dh_params_generate2@@GNUTLS_3_4'>
- <parameter type-id='type-id-418' name='dparams'/>
+ <parameter type-id='type-id-421' name='dparams'/>
<parameter type-id='type-id-10' name='bits'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_dh_params_cpy' mangled-name='gnutls_dh_params_cpy' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_dh_params_cpy@@GNUTLS_3_4'>
- <parameter type-id='type-id-418' name='dst'/>
- <parameter type-id='type-id-418' name='src'/>
+ <parameter type-id='type-id-421' name='dst'/>
+ <parameter type-id='type-id-421' name='src'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_dh_params_deinit' mangled-name='gnutls_dh_params_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_dh_params_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-418' name='dh_params'/>
+ <parameter type-id='type-id-421' name='dh_params'/>
<return type-id='type-id-111'/>
</function-decl>
- <pointer-type-def type-id='type-id-418' size-in-bits='64' id='type-id-423'/>
+ <pointer-type-def type-id='type-id-421' size-in-bits='64' id='type-id-426'/>
<function-decl name='gnutls_dh_params_init' mangled-name='gnutls_dh_params_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_dh_params_init@@GNUTLS_3_4'>
- <parameter type-id='type-id-423' name='dh_params'/>
+ <parameter type-id='type-id-426' name='dh_params'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_dh_params_import_raw3' mangled-name='gnutls_dh_params_import_raw3' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_dh_params_import_raw3@@GNUTLS_3_6_8'>
- <parameter type-id='type-id-418' name='dh_params'/>
+ <parameter type-id='type-id-421' name='dh_params'/>
<parameter type-id='type-id-57' name='prime'/>
<parameter type-id='type-id-57' name='q'/>
<parameter type-id='type-id-57' name='generator'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_dh_params_import_raw2' mangled-name='gnutls_dh_params_import_raw2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_dh_params_import_raw2@@GNUTLS_3_4'>
- <parameter type-id='type-id-418' name='dh_params'/>
+ <parameter type-id='type-id-421' name='dh_params'/>
<parameter type-id='type-id-57' name='prime'/>
<parameter type-id='type-id-57' name='generator'/>
<parameter type-id='type-id-10' name='key_bits'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_dh_params_import_dsa' mangled-name='gnutls_dh_params_import_dsa' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_dh_params_import_dsa@@GNUTLS_3_4'>
- <parameter type-id='type-id-418' name='dh_params'/>
- <parameter type-id='type-id-383' name='key'/>
+ <parameter type-id='type-id-421' name='dh_params'/>
+ <parameter type-id='type-id-386' name='key'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_dh_params_import_raw' mangled-name='gnutls_dh_params_import_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_dh_params_import_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-418' name='dh_params'/>
+ <parameter type-id='type-id-421' name='dh_params'/>
<parameter type-id='type-id-57' name='prime'/>
<parameter type-id='type-id-57' name='generator'/>
<return type-id='type-id-22'/>
@@ -5518,7 +5563,12 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='kx.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='kx.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
+ <function-decl name='gnutls_session_set_keylog_function' mangled-name='gnutls_session_set_keylog_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_session_set_keylog_function@@GNUTLS_3_6_13'>
+ <parameter type-id='type-id-237' name='session'/>
+ <parameter type-id='type-id-161' name='func'/>
+ <return type-id='type-id-111'/>
+ </function-decl>
<function-decl name='_gnutls_session_is_psk' mangled-name='_gnutls_session_is_psk' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -5547,125 +5597,125 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='cipher-cbc.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='cipher-cbc.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='_gnutls_make_preamble' mangled-name='_gnutls_make_preamble' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='priority.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='priority.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<var-decl name='_gnutls_default_priority_string' type-id='type-id-27' mangled-name='_gnutls_default_priority_string' visibility='default' elf-symbol-id='_gnutls_default_priority_string@@GNUTLS_PRIVATE_3_4'/>
<function-decl name='gnutls_priority_string_list' mangled-name='gnutls_priority_string_list' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_priority_string_list@@GNUTLS_3_4'>
<parameter type-id='type-id-10' name='iter'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-27'/>
</function-decl>
- <typedef-decl name='gnutls_priority_t' type-id='type-id-144' id='type-id-424'/>
- <pointer-type-def type-id='type-id-58' size-in-bits='64' id='type-id-425'/>
+ <typedef-decl name='gnutls_priority_t' type-id='type-id-144' id='type-id-427'/>
+ <pointer-type-def type-id='type-id-58' size-in-bits='64' id='type-id-428'/>
<function-decl name='gnutls_priority_certificate_type_list' mangled-name='gnutls_priority_certificate_type_list' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_priority_certificate_type_list@@GNUTLS_3_4'>
- <parameter type-id='type-id-424' name='pcache'/>
- <parameter type-id='type-id-425' name='list'/>
+ <parameter type-id='type-id-427' name='pcache'/>
+ <parameter type-id='type-id-428' name='list'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_priority_sign_list' mangled-name='gnutls_priority_sign_list' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_priority_sign_list@@GNUTLS_3_4'>
- <parameter type-id='type-id-424' name='pcache'/>
- <parameter type-id='type-id-425' name='list'/>
+ <parameter type-id='type-id-427' name='pcache'/>
+ <parameter type-id='type-id-428' name='list'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_priority_protocol_list' mangled-name='gnutls_priority_protocol_list' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_priority_protocol_list@@GNUTLS_3_4'>
- <parameter type-id='type-id-424' name='pcache'/>
- <parameter type-id='type-id-425' name='list'/>
+ <parameter type-id='type-id-427' name='pcache'/>
+ <parameter type-id='type-id-428' name='list'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_priority_compression_list' mangled-name='gnutls_priority_compression_list' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_priority_compression_list@@GNUTLS_3_4'>
- <parameter type-id='type-id-424' name='pcache'/>
- <parameter type-id='type-id-425' name='list'/>
+ <parameter type-id='type-id-427' name='pcache'/>
+ <parameter type-id='type-id-428' name='list'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_priority_mac_list' mangled-name='gnutls_priority_mac_list' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_priority_mac_list@@GNUTLS_3_4'>
- <parameter type-id='type-id-424' name='pcache'/>
- <parameter type-id='type-id-425' name='list'/>
+ <parameter type-id='type-id-427' name='pcache'/>
+ <parameter type-id='type-id-428' name='list'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_priority_cipher_list' mangled-name='gnutls_priority_cipher_list' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_priority_cipher_list@@GNUTLS_3_4'>
- <parameter type-id='type-id-424' name='pcache'/>
- <parameter type-id='type-id-425' name='list'/>
+ <parameter type-id='type-id-427' name='pcache'/>
+ <parameter type-id='type-id-428' name='list'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_priority_kx_list' mangled-name='gnutls_priority_kx_list' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_priority_kx_list@@GNUTLS_3_4'>
- <parameter type-id='type-id-424' name='pcache'/>
- <parameter type-id='type-id-425' name='list'/>
+ <parameter type-id='type-id-427' name='pcache'/>
+ <parameter type-id='type-id-428' name='list'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_priority_group_list' mangled-name='gnutls_priority_group_list' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_priority_group_list@@GNUTLS_3_6_0'>
- <parameter type-id='type-id-424' name='pcache'/>
- <parameter type-id='type-id-425' name='list'/>
+ <parameter type-id='type-id-427' name='pcache'/>
+ <parameter type-id='type-id-428' name='list'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_priority_ecc_curve_list' mangled-name='gnutls_priority_ecc_curve_list' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_priority_ecc_curve_list@@GNUTLS_3_4'>
- <parameter type-id='type-id-424' name='pcache'/>
- <parameter type-id='type-id-425' name='list'/>
+ <parameter type-id='type-id-427' name='pcache'/>
+ <parameter type-id='type-id-428' name='list'/>
<return type-id='type-id-22'/>
</function-decl>
- <pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-426'/>
+ <pointer-type-def type-id='type-id-27' size-in-bits='64' id='type-id-429'/>
<function-decl name='gnutls_set_default_priority_append' mangled-name='gnutls_set_default_priority_append' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_set_default_priority_append@@GNUTLS_3_6_3'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-27' name='add_prio'/>
- <parameter type-id='type-id-426' name='err_pos'/>
+ <parameter type-id='type-id-429' name='err_pos'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_set_default_priority' mangled-name='gnutls_set_default_priority' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_set_default_priority@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_priority_set_direct' mangled-name='gnutls_priority_set_direct' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_priority_set_direct@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-27' name='priorities'/>
- <parameter type-id='type-id-426' name='err_pos'/>
+ <parameter type-id='type-id-429' name='err_pos'/>
<return type-id='type-id-22'/>
</function-decl>
- <pointer-type-def type-id='type-id-424' size-in-bits='64' id='type-id-427'/>
+ <pointer-type-def type-id='type-id-427' size-in-bits='64' id='type-id-430'/>
<function-decl name='gnutls_priority_init' mangled-name='gnutls_priority_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_priority_init@@GNUTLS_3_4'>
- <parameter type-id='type-id-427' name='priority_cache'/>
+ <parameter type-id='type-id-430' name='priority_cache'/>
<parameter type-id='type-id-27' name='priorities'/>
- <parameter type-id='type-id-426' name='err_pos'/>
+ <parameter type-id='type-id-429' name='err_pos'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_priority_init2' mangled-name='gnutls_priority_init2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_priority_init2@@GNUTLS_3_6_3'>
- <parameter type-id='type-id-427' name='priority_cache'/>
+ <parameter type-id='type-id-430' name='priority_cache'/>
<parameter type-id='type-id-27' name='priorities'/>
- <parameter type-id='type-id-426' name='err_pos'/>
+ <parameter type-id='type-id-429' name='err_pos'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='_gnutls_resolve_priorities' mangled-name='_gnutls_resolve_priorities' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls_resolve_priorities@@GNUTLS_PRIVATE_3_4'>
<parameter type-id='type-id-27' name='priorities'/>
- <return type-id='type-id-376'/>
+ <return type-id='type-id-379'/>
</function-decl>
<function-decl name='gnutls_get_system_config_file' mangled-name='gnutls_get_system_config_file' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_get_system_config_file@@GNUTLS_3_6_9'>
<return type-id='type-id-27'/>
</function-decl>
<function-decl name='gnutls_priority_set' mangled-name='gnutls_priority_set' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_priority_set@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
- <parameter type-id='type-id-424' name='priority'/>
+ <parameter type-id='type-id-237' name='session'/>
+ <parameter type-id='type-id-427' name='priority'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_priority_deinit' mangled-name='gnutls_priority_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_priority_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-424' name='priority_cache'/>
+ <parameter type-id='type-id-427' name='priority_cache'/>
<return type-id='type-id-111'/>
</function-decl>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-428'>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-431'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_CTYPE_CLIENT' value='0'/>
<enumerator name='GNUTLS_CTYPE_SERVER' value='1'/>
<enumerator name='GNUTLS_CTYPE_OURS' value='2'/>
<enumerator name='GNUTLS_CTYPE_PEERS' value='3'/>
</enum-decl>
- <typedef-decl name='gnutls_ctype_target_t' type-id='type-id-428' id='type-id-429'/>
+ <typedef-decl name='gnutls_ctype_target_t' type-id='type-id-431' id='type-id-432'/>
<function-decl name='gnutls_priority_certificate_type_list2' mangled-name='gnutls_priority_certificate_type_list2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_priority_certificate_type_list2@@GNUTLS_3_6_4'>
- <parameter type-id='type-id-424' name='pcache'/>
- <parameter type-id='type-id-425' name='list'/>
- <parameter type-id='type-id-429' name='target'/>
+ <parameter type-id='type-id-427' name='pcache'/>
+ <parameter type-id='type-id-428' name='list'/>
+ <parameter type-id='type-id-432' name='target'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='strcmp' mangled-name='strcmp' visibility='default' binding='global' size-in-bits='64'>
@@ -5707,19 +5757,16 @@
<function-decl name='gnutls_ecc_curve_get_id' mangled-name='gnutls_ecc_curve_get_id' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-decl name='strncasecmp' mangled-name='strncasecmp' visibility='default' binding='global' size-in-bits='64'>
- <return type-id='type-id-111'/>
- </function-decl>
<function-decl name='gnutls_protocol_get_id' mangled-name='gnutls_protocol_get_id' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-decl name='gnutls_sign_get_id' mangled-name='gnutls_sign_get_id' visibility='default' binding='global' size-in-bits='64'>
+ <function-decl name='gnutls_group_get_id' mangled-name='gnutls_group_get_id' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_certificate_type_get_id' mangled-name='gnutls_certificate_type_get_id' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-decl name='gnutls_group_get_id' mangled-name='gnutls_group_get_id' visibility='default' binding='global' size-in-bits='64'>
+ <function-decl name='gnutls_sign_get_id' mangled-name='gnutls_sign_get_id' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='_gnutls_buffer_append_str' mangled-name='_gnutls_buffer_append_str' visibility='default' binding='global' size-in-bits='64'>
@@ -5743,10 +5790,10 @@
<function-decl name='gnutls_kx_get_id' mangled-name='gnutls_kx_get_id' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-decl name='_gnutls_sign_mark_insecure' mangled-name='_gnutls_sign_mark_insecure' visibility='default' binding='global' size-in-bits='64'>
+ <function-decl name='_gnutls_digest_mark_insecure' mangled-name='_gnutls_digest_mark_insecure' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-decl name='_gnutls_digest_mark_insecure' mangled-name='_gnutls_digest_mark_insecure' visibility='default' binding='global' size-in-bits='64'>
+ <function-decl name='_gnutls_sign_mark_insecure' mangled-name='_gnutls_sign_mark_insecure' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='_gnutls_version_mark_disabled' mangled-name='_gnutls_version_mark_disabled' visibility='default' binding='global' size-in-bits='64'>
@@ -5756,9 +5803,9 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='hash_int.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='hash_int.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='_gnutls_digest_exists' mangled-name='_gnutls_digest_exists' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls_digest_exists@@GNUTLS_PRIVATE_3_4'>
- <parameter type-id='type-id-211' name='algo'/>
+ <parameter type-id='type-id-212' name='algo'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='_gnutls_get_crypto_mac' mangled-name='_gnutls_get_crypto_mac' visibility='default' binding='global' size-in-bits='64'>
@@ -5768,13 +5815,16 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='cipher_int.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='cipher_int.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='_gnutls_mac_deinit' mangled-name='_gnutls_mac_deinit' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='_gnutls_mac_copy' mangled-name='_gnutls_mac_copy' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
+ <function-decl name='__builtin_memset' mangled-name='memset' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
<function-decl name='_gnutls_mac_init' mangled-name='_gnutls_mac_init' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -5782,48 +5832,54 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='session.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='session.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_session_set_id' mangled-name='gnutls_session_set_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_session_set_id@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-57' name='sid'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_session_get_desc' mangled-name='gnutls_session_get_desc' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_session_get_desc@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
- <return type-id='type-id-376'/>
+ <parameter type-id='type-id-237' name='session'/>
+ <return type-id='type-id-379'/>
</function-decl>
<function-decl name='gnutls_session_force_valid' mangled-name='gnutls_session_force_valid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_session_force_valid@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_session_set_data' mangled-name='gnutls_session_set_data' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_session_set_data@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-101' name='session_data'/>
<parameter type-id='type-id-99' name='session_data_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_session_get_id2' mangled-name='gnutls_session_get_id2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_session_get_id2@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
- <parameter type-id='type-id-275' name='session_id'/>
+ <parameter type-id='type-id-237' name='session'/>
+ <parameter type-id='type-id-278' name='session_id'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_session_get_id' mangled-name='gnutls_session_get_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_session_get_id@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-101' name='session_id'/>
- <parameter type-id='type-id-422' name='session_id_size'/>
+ <parameter type-id='type-id-425' name='session_id_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_session_get_data2' mangled-name='gnutls_session_get_data2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_session_get_data2@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
- <parameter type-id='type-id-275' name='data'/>
+ <parameter type-id='type-id-237' name='session'/>
+ <parameter type-id='type-id-278' name='data'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_session_get_data' mangled-name='gnutls_session_get_data' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_session_get_data@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-101' name='session_data'/>
- <parameter type-id='type-id-422' name='session_data_size'/>
+ <parameter type-id='type-id-425' name='session_data_size'/>
<return type-id='type-id-22'/>
</function-decl>
+ <function-decl name='__builtin___snprintf_chk' mangled-name='__snprintf_chk' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ <function-decl name='__builtin_snprintf' mangled-name='snprintf' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
<function-decl name='gnutls_sign_algorithm_get' mangled-name='gnutls_sign_algorithm_get' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -5833,9 +5889,6 @@
<function-decl name='gnutls_kx_get_name' mangled-name='gnutls_kx_get_name' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-decl name='snprintf' mangled-name='snprintf' visibility='default' binding='global' size-in-bits='64'>
- <return type-id='type-id-111'/>
- </function-decl>
<function-decl name='gnutls_certificate_type_get_name' mangled-name='gnutls_certificate_type_get_name' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -5867,21 +5920,21 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='db.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='db.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_db_remove_session' mangled-name='gnutls_db_remove_session' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_db_remove_session@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_db_check_entry_expire_time' mangled-name='gnutls_db_check_entry_expire_time' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_db_check_entry_expire_time@@GNUTLS_3_6_5'>
- <parameter type-id='type-id-275' name='entry'/>
+ <parameter type-id='type-id-278' name='entry'/>
<return type-id='type-id-17'/>
</function-decl>
<function-decl name='gnutls_db_check_entry_time' mangled-name='gnutls_db_check_entry_time' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_db_check_entry_time@@GNUTLS_3_4'>
- <parameter type-id='type-id-275' name='entry'/>
+ <parameter type-id='type-id-278' name='entry'/>
<return type-id='type-id-17'/>
</function-decl>
<function-decl name='gnutls_db_check_entry' mangled-name='gnutls_db_check_entry' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_db_check_entry@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-62' name='session_entry'/>
<return type-id='type-id-22'/>
</function-decl>
@@ -5889,31 +5942,31 @@
<return type-id='type-id-10'/>
</function-decl>
<function-decl name='gnutls_db_set_cache_expiration' mangled-name='gnutls_db_set_cache_expiration' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_db_set_cache_expiration@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-22' name='seconds'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_db_get_ptr' mangled-name='gnutls_db_get_ptr' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_db_get_ptr@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<return type-id='type-id-101'/>
</function-decl>
<function-decl name='gnutls_db_set_ptr' mangled-name='gnutls_db_set_ptr' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_db_set_ptr@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-101' name='ptr'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_db_set_store_function' mangled-name='gnutls_db_set_store_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_db_set_store_function@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-155' name='store_func'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_db_set_remove_function' mangled-name='gnutls_db_set_remove_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_db_set_remove_function@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-157' name='rem_func'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_db_set_retrieve_function' mangled-name='gnutls_db_set_retrieve_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_db_set_retrieve_function@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-156' name='retr_func'/>
<return type-id='type-id-111'/>
</function-decl>
@@ -5924,41 +5977,41 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='x509_b64.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='x509_b64.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_base64_encode2' mangled-name='gnutls_base64_encode2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_base64_encode2@@GNUTLS_3_6_0'>
<parameter type-id='type-id-57' name='data'/>
- <parameter type-id='type-id-275' name='result'/>
+ <parameter type-id='type-id-278' name='result'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_base64_decode2' mangled-name='gnutls_base64_decode2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_base64_decode2@@GNUTLS_3_6_0'>
<parameter type-id='type-id-57' name='base64'/>
- <parameter type-id='type-id-275' name='result'/>
+ <parameter type-id='type-id-278' name='result'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pem_base64_decode2' mangled-name='gnutls_pem_base64_decode2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pem_base64_decode2@@GNUTLS_3_4'>
<parameter type-id='type-id-27' name='header'/>
<parameter type-id='type-id-57' name='b64_data'/>
- <parameter type-id='type-id-275' name='result'/>
+ <parameter type-id='type-id-278' name='result'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pem_base64_decode' mangled-name='gnutls_pem_base64_decode' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pem_base64_decode@@GNUTLS_3_4'>
<parameter type-id='type-id-27' name='header'/>
<parameter type-id='type-id-57' name='b64_data'/>
<parameter type-id='type-id-64' name='result'/>
- <parameter type-id='type-id-422' name='result_size'/>
+ <parameter type-id='type-id-425' name='result_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pem_base64_encode2' mangled-name='gnutls_pem_base64_encode2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pem_base64_encode2@@GNUTLS_3_4'>
<parameter type-id='type-id-27' name='header'/>
<parameter type-id='type-id-57' name='b64_data'/>
- <parameter type-id='type-id-275' name='result'/>
+ <parameter type-id='type-id-278' name='result'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pem_base64_encode' mangled-name='gnutls_pem_base64_encode' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pem_base64_encode@@GNUTLS_3_4'>
<parameter type-id='type-id-27' name='msg'/>
<parameter type-id='type-id-57' name='data'/>
- <parameter type-id='type-id-376' name='result'/>
- <parameter type-id='type-id-422' name='result_size'/>
+ <parameter type-id='type-id-379' name='result'/>
+ <parameter type-id='type-id-425' name='result_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='_gnutls_str_cpy' mangled-name='_gnutls_str_cpy' visibility='default' binding='global' size-in-bits='64'>
@@ -5983,45 +6036,45 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='hello_ext.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='hello_ext.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_ext_get_current_msg' mangled-name='gnutls_ext_get_current_msg' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ext_get_current_msg@@GNUTLS_3_6_3'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<return type-id='type-id-10'/>
</function-decl>
<function-decl name='gnutls_ext_get_data' mangled-name='gnutls_ext_get_data' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ext_get_data@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-10' name='tls_id'/>
- <parameter type-id='type-id-357' name='data'/>
+ <parameter type-id='type-id-360' name='data'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_ext_set_data' mangled-name='gnutls_ext_set_data' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ext_set_data@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-10' name='tls_id'/>
- <parameter type-id='type-id-298' name='data'/>
+ <parameter type-id='type-id-301' name='data'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_session_ext_register' mangled-name='gnutls_session_ext_register' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_session_ext_register@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-27' name='name'/>
<parameter type-id='type-id-22' name='id'/>
- <parameter type-id='type-id-338' name='parse_point'/>
- <parameter type-id='type-id-339' name='recv_func'/>
- <parameter type-id='type-id-340' name='send_func'/>
- <parameter type-id='type-id-341' name='deinit_func'/>
- <parameter type-id='type-id-342' name='pack_func'/>
- <parameter type-id='type-id-343' name='unpack_func'/>
+ <parameter type-id='type-id-341' name='parse_point'/>
+ <parameter type-id='type-id-342' name='recv_func'/>
+ <parameter type-id='type-id-343' name='send_func'/>
+ <parameter type-id='type-id-344' name='deinit_func'/>
+ <parameter type-id='type-id-345' name='pack_func'/>
+ <parameter type-id='type-id-346' name='unpack_func'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_ext_register' mangled-name='gnutls_ext_register' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ext_register@@GNUTLS_3_4'>
<parameter type-id='type-id-27' name='name'/>
<parameter type-id='type-id-22' name='id'/>
- <parameter type-id='type-id-338' name='parse_point'/>
- <parameter type-id='type-id-339' name='recv_func'/>
- <parameter type-id='type-id-340' name='send_func'/>
- <parameter type-id='type-id-341' name='deinit_func'/>
- <parameter type-id='type-id-342' name='pack_func'/>
- <parameter type-id='type-id-343' name='unpack_func'/>
+ <parameter type-id='type-id-341' name='parse_point'/>
+ <parameter type-id='type-id-342' name='recv_func'/>
+ <parameter type-id='type-id-343' name='send_func'/>
+ <parameter type-id='type-id-344' name='deinit_func'/>
+ <parameter type-id='type-id-345' name='pack_func'/>
+ <parameter type-id='type-id-346' name='unpack_func'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_ext_get_name' mangled-name='gnutls_ext_get_name' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ext_get_name@@GNUTLS_3_4'>
@@ -6038,34 +6091,34 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='auth.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='auth.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_auth_client_get_type' mangled-name='gnutls_auth_client_get_type' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_auth_client_get_type@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
- <return type-id='type-id-309'/>
+ <parameter type-id='type-id-416' name='session'/>
+ <return type-id='type-id-312'/>
</function-decl>
<function-decl name='gnutls_auth_server_get_type' mangled-name='gnutls_auth_server_get_type' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_auth_server_get_type@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
- <return type-id='type-id-309'/>
+ <parameter type-id='type-id-416' name='session'/>
+ <return type-id='type-id-312'/>
</function-decl>
<function-decl name='gnutls_auth_get_type' mangled-name='gnutls_auth_get_type' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_auth_get_type@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
- <return type-id='type-id-309'/>
+ <parameter type-id='type-id-416' name='session'/>
+ <return type-id='type-id-312'/>
</function-decl>
- <pointer-type-def type-id='type-id-101' size-in-bits='64' id='type-id-430'/>
+ <pointer-type-def type-id='type-id-101' size-in-bits='64' id='type-id-433'/>
<function-decl name='gnutls_credentials_get' mangled-name='gnutls_credentials_get' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_credentials_get@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
- <parameter type-id='type-id-309' name='type'/>
- <parameter type-id='type-id-430' name='cred'/>
+ <parameter type-id='type-id-416' name='session'/>
+ <parameter type-id='type-id-312' name='type'/>
+ <parameter type-id='type-id-433' name='cred'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_credentials_set' mangled-name='gnutls_credentials_set' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_credentials_set@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
- <parameter type-id='type-id-309' name='type'/>
+ <parameter type-id='type-id-416' name='session'/>
+ <parameter type-id='type-id-312' name='type'/>
<parameter type-id='type-id-101' name='cred'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_credentials_clear' mangled-name='gnutls_credentials_clear' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_credentials_clear@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='calloc' mangled-name='calloc' visibility='default' binding='global' size-in-bits='64'>
@@ -6075,7 +6128,7 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='sslv2_compat.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='sslv2_compat.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='_gnutls_server_select_suite' mangled-name='_gnutls_server_select_suite' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -6095,15 +6148,15 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='session_pack.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='session_pack.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_session_set_premaster' mangled-name='gnutls_session_set_premaster' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_session_set_premaster@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<parameter type-id='type-id-10' name='entity'/>
<parameter type-id='type-id-32' name='version'/>
<parameter type-id='type-id-30' name='kx'/>
<parameter type-id='type-id-29' name='cipher'/>
<parameter type-id='type-id-31' name='mac'/>
- <parameter type-id='type-id-367' name='comp'/>
+ <parameter type-id='type-id-370' name='comp'/>
<parameter type-id='type-id-57' name='master'/>
<parameter type-id='type-id-57' name='session_id'/>
<return type-id='type-id-22'/>
@@ -6142,58 +6195,58 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='mpi.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='mpi.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='asn1_read_value' mangled-name='asn1_read_value' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='pk.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
- <pointer-type-def type-id='type-id-211' size-in-bits='64' id='type-id-431'/>
+ <abi-instr version='1.0' address-size='64' path='pk.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
+ <pointer-type-def type-id='type-id-212' size-in-bits='64' id='type-id-434'/>
<function-decl name='gnutls_decode_ber_digest_info' mangled-name='gnutls_decode_ber_digest_info' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_decode_ber_digest_info@@GNUTLS_3_4'>
<parameter type-id='type-id-57' name='info'/>
- <parameter type-id='type-id-431' name='hash'/>
+ <parameter type-id='type-id-434' name='hash'/>
<parameter type-id='type-id-64' name='digest'/>
- <parameter type-id='type-id-419' name='digest_size'/>
+ <parameter type-id='type-id-422' name='digest_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_encode_ber_digest_info' mangled-name='gnutls_encode_ber_digest_info' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_encode_ber_digest_info@@GNUTLS_3_4'>
- <parameter type-id='type-id-211' name='hash'/>
+ <parameter type-id='type-id-212' name='hash'/>
<parameter type-id='type-id-57' name='digest'/>
- <parameter type-id='type-id-275' name='output'/>
+ <parameter type-id='type-id-278' name='output'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_decode_gost_rs_value' mangled-name='gnutls_decode_gost_rs_value' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_decode_gost_rs_value@@GNUTLS_3_6_3'>
<parameter type-id='type-id-57' name='sig_value'/>
- <parameter type-id='type-id-275' name='r'/>
- <parameter type-id='type-id-275' name='s'/>
+ <parameter type-id='type-id-278' name='r'/>
+ <parameter type-id='type-id-278' name='s'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_encode_gost_rs_value' mangled-name='gnutls_encode_gost_rs_value' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_encode_gost_rs_value@@GNUTLS_3_6_3'>
- <parameter type-id='type-id-275' name='sig_value'/>
+ <parameter type-id='type-id-278' name='sig_value'/>
<parameter type-id='type-id-57' name='r'/>
<parameter type-id='type-id-57' name='s'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='_gnutls_decode_ber_rs_raw' mangled-name='_gnutls_decode_ber_rs_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls_decode_ber_rs_raw@@GNUTLS_FIPS140_3_4'>
<parameter type-id='type-id-57' name='sig_value'/>
- <parameter type-id='type-id-275' name='r'/>
- <parameter type-id='type-id-275' name='s'/>
+ <parameter type-id='type-id-278' name='r'/>
+ <parameter type-id='type-id-278' name='s'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_decode_rs_value' mangled-name='gnutls_decode_rs_value' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_decode_rs_value@@GNUTLS_3_6_0'>
<parameter type-id='type-id-57' name='sig_value'/>
- <parameter type-id='type-id-275' name='r'/>
- <parameter type-id='type-id-275' name='s'/>
+ <parameter type-id='type-id-278' name='r'/>
+ <parameter type-id='type-id-278' name='s'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='_gnutls_encode_ber_rs_raw' mangled-name='_gnutls_encode_ber_rs_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls_encode_ber_rs_raw@@GNUTLS_FIPS140_3_4'>
- <parameter type-id='type-id-275' name='sig_value'/>
+ <parameter type-id='type-id-278' name='sig_value'/>
<parameter type-id='type-id-57' name='r'/>
<parameter type-id='type-id-57' name='s'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_encode_rs_value' mangled-name='gnutls_encode_rs_value' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_encode_rs_value@@GNUTLS_3_6_0'>
- <parameter type-id='type-id-275' name='sig_value'/>
+ <parameter type-id='type-id-278' name='sig_value'/>
<parameter type-id='type-id-57' name='r'/>
<parameter type-id='type-id-57' name='s'/>
<return type-id='type-id-22'/>
@@ -6223,31 +6276,31 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='cert-cred.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
- <class-decl name='gnutls_certificate_credentials_st' size-in-bits='1408' is-struct='yes' visibility='default' id='type-id-432'>
+ <abi-instr version='1.0' address-size='64' path='cert-cred.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
+ <class-decl name='gnutls_certificate_credentials_st' size-in-bits='1408' is-struct='yes' visibility='default' id='type-id-435'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='dh_params' type-id='type-id-418' visibility='default'/>
+ <var-decl name='dh_params' type-id='type-id-421' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='deinit_dh_params' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='96'>
- <var-decl name='dh_sec_param' type-id='type-id-202' visibility='default'/>
+ <var-decl name='dh_sec_param' type-id='type-id-203' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='params_func' type-id='type-id-433' visibility='default'/>
+ <var-decl name='params_func' type-id='type-id-436' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='certs' type-id='type-id-434' visibility='default'/>
+ <var-decl name='certs' type-id='type-id-437' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
<var-decl name='ncerts' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='sorted_cert_idx' type-id='type-id-419' visibility='default'/>
+ <var-decl name='sorted_cert_idx' type-id='type-id-422' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='tlist' type-id='type-id-435' visibility='default'/>
+ <var-decl name='tlist' type-id='type-id-438' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
<var-decl name='flags' type-id='type-id-10' visibility='default'/>
@@ -6262,25 +6315,25 @@
<var-decl name='verify_bits' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
- <var-decl name='legacy_cert_cb1' type-id='type-id-436' visibility='default'/>
+ <var-decl name='legacy_cert_cb1' type-id='type-id-439' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='640'>
- <var-decl name='legacy_cert_cb2' type-id='type-id-437' visibility='default'/>
+ <var-decl name='legacy_cert_cb2' type-id='type-id-440' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='704'>
- <var-decl name='get_cert_callback3' type-id='type-id-438' visibility='default'/>
+ <var-decl name='get_cert_callback3' type-id='type-id-441' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='768'>
- <var-decl name='verify_callback' type-id='type-id-171' visibility='default'/>
+ <var-decl name='verify_callback' type-id='type-id-172' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='832'>
- <var-decl name='pin' type-id='type-id-374' visibility='default'/>
+ <var-decl name='pin' type-id='type-id-377' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='960'>
- <var-decl name='pin_tmp' type-id='type-id-439' visibility='default'/>
+ <var-decl name='pin_tmp' type-id='type-id-442' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1216'>
- <var-decl name='glob_ocsp_func' type-id='type-id-164' visibility='default'/>
+ <var-decl name='glob_ocsp_func' type-id='type-id-165' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1280'>
<var-decl name='glob_ocsp_func_ptr' type-id='type-id-101' visibility='default'/>
@@ -6289,114 +6342,114 @@
<var-decl name='tls13_ok' type-id='type-id-75' visibility='default'/>
</data-member>
</class-decl>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-440'>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-443'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_PARAMS_RSA_EXPORT' value='1'/>
<enumerator name='GNUTLS_PARAMS_DH' value='2'/>
<enumerator name='GNUTLS_PARAMS_ECDH' value='3'/>
</enum-decl>
- <typedef-decl name='gnutls_params_type_t' type-id='type-id-440' id='type-id-441'/>
- <class-decl name='gnutls_params_st' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-442'>
+ <typedef-decl name='gnutls_params_type_t' type-id='type-id-443' id='type-id-444'/>
+ <class-decl name='gnutls_params_st' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-445'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='type' type-id='type-id-441' visibility='default'/>
+ <var-decl name='type' type-id='type-id-444' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='params' type-id='type-id-443' visibility='default'/>
+ <var-decl name='params' type-id='type-id-446' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
<var-decl name='deinit' type-id='type-id-22' visibility='default'/>
</data-member>
</class-decl>
- <union-decl name='params' size-in-bits='64' visibility='default' id='type-id-443'>
+ <union-decl name='params' size-in-bits='64' visibility='default' id='type-id-446'>
<data-member access='private'>
- <var-decl name='dh' type-id='type-id-418' visibility='default'/>
+ <var-decl name='dh' type-id='type-id-421' visibility='default'/>
</data-member>
<data-member access='private'>
- <var-decl name='rsa_export' type-id='type-id-444' visibility='default'/>
+ <var-decl name='rsa_export' type-id='type-id-447' visibility='default'/>
</data-member>
</union-decl>
- <typedef-decl name='gnutls_rsa_params_t' type-id='type-id-391' id='type-id-444'/>
- <typedef-decl name='gnutls_params_st' type-id='type-id-442' id='type-id-445'/>
- <pointer-type-def type-id='type-id-445' size-in-bits='64' id='type-id-446'/>
- <typedef-decl name='gnutls_params_function' type-id='type-id-447' id='type-id-448'/>
- <pointer-type-def type-id='type-id-448' size-in-bits='64' id='type-id-433'/>
- <class-decl name='__anonymous_struct__' size-in-bits='4544' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-449' visibility='default' id='type-id-450'>
+ <typedef-decl name='gnutls_rsa_params_t' type-id='type-id-394' id='type-id-447'/>
+ <typedef-decl name='gnutls_params_st' type-id='type-id-445' id='type-id-448'/>
+ <pointer-type-def type-id='type-id-448' size-in-bits='64' id='type-id-449'/>
+ <typedef-decl name='gnutls_params_function' type-id='type-id-450' id='type-id-451'/>
+ <pointer-type-def type-id='type-id-451' size-in-bits='64' id='type-id-436'/>
+ <class-decl name='__anonymous_struct__' size-in-bits='4544' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-452' visibility='default' id='type-id-453'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='cert_list' type-id='type-id-161' visibility='default'/>
+ <var-decl name='cert_list' type-id='type-id-162' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='cert_list_length' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='names' type-id='type-id-451' visibility='default'/>
+ <var-decl name='names' type-id='type-id-454' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='ocsp_func' type-id='type-id-164' visibility='default'/>
+ <var-decl name='ocsp_func' type-id='type-id-165' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
<var-decl name='ocsp_func_ptr' type-id='type-id-101' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='ocsp_data' type-id='type-id-452' visibility='default'/>
+ <var-decl name='ocsp_data' type-id='type-id-455' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='4416'>
<var-decl name='ocsp_data_length' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='4480'>
- <var-decl name='pkey' type-id='type-id-401' visibility='default'/>
+ <var-decl name='pkey' type-id='type-id-404' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='gnutls_str_array_st' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-453'>
+ <class-decl name='gnutls_str_array_st' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-456'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='str' type-id='type-id-376' visibility='default'/>
+ <var-decl name='str' type-id='type-id-379' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='len' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='next' type-id='type-id-454' visibility='default'/>
+ <var-decl name='next' type-id='type-id-457' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-453' size-in-bits='64' id='type-id-454'/>
- <typedef-decl name='gnutls_str_array_t' type-id='type-id-454' id='type-id-451'/>
+ <pointer-type-def type-id='type-id-456' size-in-bits='64' id='type-id-457'/>
+ <typedef-decl name='gnutls_str_array_t' type-id='type-id-457' id='type-id-454'/>
- <array-type-def dimensions='1' type-id='type-id-274' size-in-bits='4096' id='type-id-452'>
- <subrange length='8' type-id='type-id-38' id='type-id-455'/>
+ <array-type-def dimensions='1' type-id='type-id-277' size-in-bits='4096' id='type-id-455'>
+ <subrange length='8' type-id='type-id-38' id='type-id-458'/>
</array-type-def>
- <typedef-decl name='certs_st' type-id='type-id-450' id='type-id-449'/>
- <pointer-type-def type-id='type-id-449' size-in-bits='64' id='type-id-434'/>
- <class-decl name='gnutls_x509_trust_list_st' size-in-bits='576' is-struct='yes' visibility='default' id='type-id-456'>
+ <typedef-decl name='certs_st' type-id='type-id-453' id='type-id-452'/>
+ <pointer-type-def type-id='type-id-452' size-in-bits='64' id='type-id-437'/>
+ <class-decl name='gnutls_x509_trust_list_st' size-in-bits='576' is-struct='yes' visibility='default' id='type-id-459'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='size' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='node' type-id='type-id-457' visibility='default'/>
+ <var-decl name='node' type-id='type-id-460' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
<var-decl name='x509_rdn_sequence' type-id='type-id-62' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='blacklisted' type-id='type-id-458' visibility='default'/>
+ <var-decl name='blacklisted' type-id='type-id-461' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
<var-decl name='blacklisted_size' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='keep_certs' type-id='type-id-458' visibility='default'/>
+ <var-decl name='keep_certs' type-id='type-id-461' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
<var-decl name='keep_certs_size' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='pkcs11_token' type-id='type-id-376' visibility='default'/>
+ <var-decl name='pkcs11_token' type-id='type-id-379' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='node_st' size-in-bits='384' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-459'/>
- <pointer-type-def type-id='type-id-459' size-in-bits='64' id='type-id-457'/>
- <class-decl name='gnutls_x509_crt_int' size-in-bits='1088' is-struct='yes' visibility='default' id='type-id-460'>
+ <class-decl name='node_st' size-in-bits='384' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-462'/>
+ <pointer-type-def type-id='type-id-462' size-in-bits='64' id='type-id-460'/>
+ <class-decl name='gnutls_x509_crt_int' size-in-bits='1088' is-struct='yes' visibility='default' id='type-id-463'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='cert' type-id='type-id-387' visibility='default'/>
+ <var-decl name='cert' type-id='type-id-390' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='use_extensions' type-id='type-id-22' visibility='default'/>
@@ -6411,7 +6464,7 @@
<var-decl name='flags' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='pin' type-id='type-id-374' visibility='default'/>
+ <var-decl name='pin' type-id='type-id-377' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
<var-decl name='raw_dn' type-id='type-id-62' visibility='default'/>
@@ -6426,93 +6479,93 @@
<var-decl name='der' type-id='type-id-62' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='832'>
- <var-decl name='san' type-id='type-id-461' visibility='default'/>
+ <var-decl name='san' type-id='type-id-464' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='896'>
- <var-decl name='ian' type-id='type-id-461' visibility='default'/>
+ <var-decl name='ian' type-id='type-id-464' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='960'>
- <var-decl name='dn' type-id='type-id-462' visibility='default'/>
+ <var-decl name='dn' type-id='type-id-465' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1024'>
- <var-decl name='idn' type-id='type-id-462' visibility='default'/>
+ <var-decl name='idn' type-id='type-id-465' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='gnutls_subject_alt_names_st' size-in-bits='128' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-463'/>
- <pointer-type-def type-id='type-id-463' size-in-bits='64' id='type-id-464'/>
- <typedef-decl name='gnutls_subject_alt_names_t' type-id='type-id-464' id='type-id-461'/>
- <class-decl name='gnutls_x509_dn_st' size-in-bits='64' is-struct='yes' visibility='default' id='type-id-465'>
+ <class-decl name='gnutls_subject_alt_names_st' size-in-bits='128' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-466'/>
+ <pointer-type-def type-id='type-id-466' size-in-bits='64' id='type-id-467'/>
+ <typedef-decl name='gnutls_subject_alt_names_t' type-id='type-id-467' id='type-id-464'/>
+ <class-decl name='gnutls_x509_dn_st' size-in-bits='64' is-struct='yes' visibility='default' id='type-id-468'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='asn' type-id='type-id-387' visibility='default'/>
+ <var-decl name='asn' type-id='type-id-390' visibility='default'/>
</data-member>
</class-decl>
- <typedef-decl name='gnutls_x509_dn_st' type-id='type-id-465' id='type-id-462'/>
- <pointer-type-def type-id='type-id-460' size-in-bits='64' id='type-id-466'/>
- <typedef-decl name='gnutls_x509_crt_t' type-id='type-id-466' id='type-id-467'/>
- <pointer-type-def type-id='type-id-467' size-in-bits='64' id='type-id-458'/>
- <pointer-type-def type-id='type-id-456' size-in-bits='64' id='type-id-468'/>
- <typedef-decl name='gnutls_x509_trust_list_t' type-id='type-id-468' id='type-id-435'/>
- <qualified-type-def type-id='type-id-60' const='yes' id='type-id-469'/>
- <pointer-type-def type-id='type-id-469' size-in-bits='64' id='type-id-470'/>
- <class-decl name='gnutls_retr2_st' size-in-bits='320' is-struct='yes' visibility='default' id='type-id-471'>
+ <typedef-decl name='gnutls_x509_dn_st' type-id='type-id-468' id='type-id-465'/>
+ <pointer-type-def type-id='type-id-463' size-in-bits='64' id='type-id-469'/>
+ <typedef-decl name='gnutls_x509_crt_t' type-id='type-id-469' id='type-id-470'/>
+ <pointer-type-def type-id='type-id-470' size-in-bits='64' id='type-id-461'/>
+ <pointer-type-def type-id='type-id-459' size-in-bits='64' id='type-id-471'/>
+ <typedef-decl name='gnutls_x509_trust_list_t' type-id='type-id-471' id='type-id-438'/>
+ <qualified-type-def type-id='type-id-60' const='yes' id='type-id-472'/>
+ <pointer-type-def type-id='type-id-472' size-in-bits='64' id='type-id-473'/>
+ <class-decl name='gnutls_retr2_st' size-in-bits='320' is-struct='yes' visibility='default' id='type-id-474'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='cert_type' type-id='type-id-19' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='key_type' type-id='type-id-380' visibility='default'/>
+ <var-decl name='key_type' type-id='type-id-383' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='cert' type-id='type-id-472' visibility='default'/>
+ <var-decl name='cert' type-id='type-id-475' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
<var-decl name='ncerts' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='key' type-id='type-id-473' visibility='default'/>
+ <var-decl name='key' type-id='type-id-476' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
<var-decl name='deinit_all' type-id='type-id-10' visibility='default'/>
</data-member>
</class-decl>
- <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' id='type-id-472'>
+ <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' id='type-id-475'>
<data-member access='private'>
- <var-decl name='x509' type-id='type-id-458' visibility='default'/>
+ <var-decl name='x509' type-id='type-id-461' visibility='default'/>
</data-member>
<data-member access='private'>
- <var-decl name='pgp' type-id='type-id-474' visibility='default'/>
+ <var-decl name='pgp' type-id='type-id-477' visibility='default'/>
</data-member>
</union-decl>
- <class-decl name='gnutls_openpgp_crt_int' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-475'/>
- <pointer-type-def type-id='type-id-475' size-in-bits='64' id='type-id-476'/>
- <typedef-decl name='gnutls_openpgp_crt_t' type-id='type-id-476' id='type-id-474'/>
- <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' id='type-id-473'>
+ <class-decl name='gnutls_openpgp_crt_int' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-478'/>
+ <pointer-type-def type-id='type-id-478' size-in-bits='64' id='type-id-479'/>
+ <typedef-decl name='gnutls_openpgp_crt_t' type-id='type-id-479' id='type-id-477'/>
+ <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' id='type-id-476'>
<data-member access='private'>
- <var-decl name='x509' type-id='type-id-383' visibility='default'/>
+ <var-decl name='x509' type-id='type-id-386' visibility='default'/>
</data-member>
<data-member access='private'>
- <var-decl name='pgp' type-id='type-id-477' visibility='default'/>
+ <var-decl name='pgp' type-id='type-id-480' visibility='default'/>
</data-member>
<data-member access='private'>
- <var-decl name='pkcs11' type-id='type-id-384' visibility='default'/>
+ <var-decl name='pkcs11' type-id='type-id-387' visibility='default'/>
</data-member>
</union-decl>
- <class-decl name='gnutls_openpgp_privkey_int' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-478'/>
- <pointer-type-def type-id='type-id-478' size-in-bits='64' id='type-id-479'/>
- <typedef-decl name='gnutls_openpgp_privkey_t' type-id='type-id-479' id='type-id-477'/>
- <typedef-decl name='gnutls_retr2_st' type-id='type-id-471' id='type-id-480'/>
- <pointer-type-def type-id='type-id-480' size-in-bits='64' id='type-id-481'/>
- <typedef-decl name='gnutls_certificate_retrieve_function' type-id='type-id-482' id='type-id-483'/>
- <pointer-type-def type-id='type-id-483' size-in-bits='64' id='type-id-436'/>
- <pointer-type-def type-id='type-id-161' size-in-bits='64' id='type-id-484'/>
- <pointer-type-def type-id='type-id-401' size-in-bits='64' id='type-id-485'/>
- <typedef-decl name='gnutls_certificate_retrieve_function2' type-id='type-id-486' id='type-id-487'/>
- <pointer-type-def type-id='type-id-487' size-in-bits='64' id='type-id-437'/>
- <class-decl name='gnutls_cert_retr_st' size-in-bits='896' is-struct='yes' visibility='default' id='type-id-488'>
+ <class-decl name='gnutls_openpgp_privkey_int' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-481'/>
+ <pointer-type-def type-id='type-id-481' size-in-bits='64' id='type-id-482'/>
+ <typedef-decl name='gnutls_openpgp_privkey_t' type-id='type-id-482' id='type-id-480'/>
+ <typedef-decl name='gnutls_retr2_st' type-id='type-id-474' id='type-id-483'/>
+ <pointer-type-def type-id='type-id-483' size-in-bits='64' id='type-id-484'/>
+ <typedef-decl name='gnutls_certificate_retrieve_function' type-id='type-id-485' id='type-id-486'/>
+ <pointer-type-def type-id='type-id-486' size-in-bits='64' id='type-id-439'/>
+ <pointer-type-def type-id='type-id-162' size-in-bits='64' id='type-id-487'/>
+ <pointer-type-def type-id='type-id-404' size-in-bits='64' id='type-id-488'/>
+ <typedef-decl name='gnutls_certificate_retrieve_function2' type-id='type-id-489' id='type-id-490'/>
+ <pointer-type-def type-id='type-id-490' size-in-bits='64' id='type-id-440'/>
+ <class-decl name='gnutls_cert_retr_st' size-in-bits='896' is-struct='yes' visibility='default' id='type-id-491'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='version' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='cred' type-id='type-id-489' visibility='default'/>
+ <var-decl name='cred' type-id='type-id-492' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
<var-decl name='req_ca_rdn' type-id='type-id-57' visibility='default'/>
@@ -6521,116 +6574,116 @@
<var-decl name='nreqs' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='pk_algos' type-id='type-id-470' visibility='default'/>
+ <var-decl name='pk_algos' type-id='type-id-473' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
<var-decl name='pk_algos_length' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='352'>
- <var-decl name='padding' type-id='type-id-490' visibility='default'/>
+ <var-decl name='padding' type-id='type-id-493' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-432' size-in-bits='64' id='type-id-491'/>
- <typedef-decl name='gnutls_certificate_credentials_t' type-id='type-id-491' id='type-id-489'/>
+ <pointer-type-def type-id='type-id-435' size-in-bits='64' id='type-id-494'/>
+ <typedef-decl name='gnutls_certificate_credentials_t' type-id='type-id-494' id='type-id-492'/>
- <array-type-def dimensions='1' type-id='type-id-35' size-in-bits='512' id='type-id-490'>
+ <array-type-def dimensions='1' type-id='type-id-35' size-in-bits='512' id='type-id-493'>
<subrange length='64' type-id='type-id-38' id='type-id-92'/>
</array-type-def>
- <qualified-type-def type-id='type-id-488' const='yes' id='type-id-492'/>
- <pointer-type-def type-id='type-id-492' size-in-bits='64' id='type-id-493'/>
- <pointer-type-def type-id='type-id-163' size-in-bits='64' id='type-id-494'/>
- <typedef-decl name='gnutls_certificate_retrieve_function3' type-id='type-id-495' id='type-id-496'/>
- <pointer-type-def type-id='type-id-496' size-in-bits='64' id='type-id-438'/>
+ <qualified-type-def type-id='type-id-491' const='yes' id='type-id-495'/>
+ <pointer-type-def type-id='type-id-495' size-in-bits='64' id='type-id-496'/>
+ <pointer-type-def type-id='type-id-164' size-in-bits='64' id='type-id-497'/>
+ <typedef-decl name='gnutls_certificate_retrieve_function3' type-id='type-id-498' id='type-id-499'/>
+ <pointer-type-def type-id='type-id-499' size-in-bits='64' id='type-id-441'/>
- <array-type-def dimensions='1' type-id='type-id-33' size-in-bits='256' id='type-id-439'>
+ <array-type-def dimensions='1' type-id='type-id-33' size-in-bits='256' id='type-id-442'>
<subrange length='32' type-id='type-id-38' id='type-id-51'/>
</array-type-def>
<function-decl name='gnutls_certificate_set_known_dh_params' mangled-name='gnutls_certificate_set_known_dh_params' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_known_dh_params@@GNUTLS_3_4'>
- <parameter type-id='type-id-489' name='res'/>
- <parameter type-id='type-id-202' name='sec_param'/>
+ <parameter type-id='type-id-492' name='res'/>
+ <parameter type-id='type-id-203' name='sec_param'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_certificate_set_dh_params' mangled-name='gnutls_certificate_set_dh_params' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_dh_params@@GNUTLS_3_4'>
- <parameter type-id='type-id-489' name='res'/>
- <parameter type-id='type-id-418' name='dh_params'/>
+ <parameter type-id='type-id-492' name='res'/>
+ <parameter type-id='type-id-421' name='dh_params'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_certificate_verification_status_print' mangled-name='gnutls_certificate_verification_status_print' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_verification_status_print@@GNUTLS_3_4'>
<parameter type-id='type-id-10' name='status'/>
<parameter type-id='type-id-19' name='type'/>
- <parameter type-id='type-id-275' name='out'/>
+ <parameter type-id='type-id-278' name='out'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_certificate_set_verify_function' mangled-name='gnutls_certificate_set_verify_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_verify_function@@GNUTLS_3_4'>
- <parameter type-id='type-id-489' name='cred'/>
- <parameter type-id='type-id-171' name='func'/>
+ <parameter type-id='type-id-492' name='cred'/>
+ <parameter type-id='type-id-172' name='func'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_certificate_set_retrieve_function3' mangled-name='gnutls_certificate_set_retrieve_function3' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_retrieve_function3@@GNUTLS_3_6_3'>
- <parameter type-id='type-id-489' name='cred'/>
- <parameter type-id='type-id-438' name='func'/>
+ <parameter type-id='type-id-492' name='cred'/>
+ <parameter type-id='type-id-441' name='func'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_certificate_set_retrieve_function2' mangled-name='gnutls_certificate_set_retrieve_function2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_retrieve_function2@@GNUTLS_3_4'>
- <parameter type-id='type-id-489' name='cred'/>
- <parameter type-id='type-id-437' name='func'/>
+ <parameter type-id='type-id-492' name='cred'/>
+ <parameter type-id='type-id-440' name='func'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_certificate_set_retrieve_function' mangled-name='gnutls_certificate_set_retrieve_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_retrieve_function@@GNUTLS_3_4'>
- <parameter type-id='type-id-489' name='cred'/>
- <parameter type-id='type-id-436' name='func'/>
+ <parameter type-id='type-id-492' name='cred'/>
+ <parameter type-id='type-id-439' name='func'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_certificate_server_set_request' mangled-name='gnutls_certificate_server_set_request' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_server_set_request@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<parameter type-id='type-id-148' name='req'/>
<return type-id='type-id-111'/>
</function-decl>
- <pointer-type-def type-id='type-id-489' size-in-bits='64' id='type-id-497'/>
+ <pointer-type-def type-id='type-id-492' size-in-bits='64' id='type-id-500'/>
<function-decl name='gnutls_certificate_allocate_credentials' mangled-name='gnutls_certificate_allocate_credentials' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_allocate_credentials@@GNUTLS_3_4'>
- <parameter type-id='type-id-497' name='res'/>
+ <parameter type-id='type-id-500' name='res'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_certificate_free_credentials' mangled-name='gnutls_certificate_free_credentials' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_free_credentials@@GNUTLS_3_4'>
- <parameter type-id='type-id-489' name='sc'/>
+ <parameter type-id='type-id-492' name='sc'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_certificate_free_ca_names' mangled-name='gnutls_certificate_free_ca_names' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_free_ca_names@@GNUTLS_3_4'>
- <parameter type-id='type-id-489' name='sc'/>
+ <parameter type-id='type-id-492' name='sc'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_certificate_get_crt_raw' mangled-name='gnutls_certificate_get_crt_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_get_crt_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-489' name='sc'/>
+ <parameter type-id='type-id-492' name='sc'/>
<parameter type-id='type-id-10' name='idx1'/>
<parameter type-id='type-id-10' name='idx2'/>
- <parameter type-id='type-id-275' name='cert'/>
+ <parameter type-id='type-id-278' name='cert'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_certificate_get_issuer' mangled-name='gnutls_certificate_get_issuer' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_get_issuer@@GNUTLS_3_4'>
- <parameter type-id='type-id-489' name='sc'/>
- <parameter type-id='type-id-467' name='cert'/>
- <parameter type-id='type-id-458' name='issuer'/>
+ <parameter type-id='type-id-492' name='sc'/>
+ <parameter type-id='type-id-470' name='cert'/>
+ <parameter type-id='type-id-461' name='issuer'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_certificate_free_cas' mangled-name='gnutls_certificate_free_cas' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_free_cas@@GNUTLS_3_4'>
- <parameter type-id='type-id-489' name='sc'/>
+ <parameter type-id='type-id-492' name='sc'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_certificate_free_keys' mangled-name='gnutls_certificate_free_keys' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_free_keys@@GNUTLS_3_4'>
- <parameter type-id='type-id-489' name='sc'/>
+ <parameter type-id='type-id-492' name='sc'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_certificate_set_key' mangled-name='gnutls_certificate_set_key' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_key@@GNUTLS_3_4'>
- <parameter type-id='type-id-489' name='res'/>
- <parameter type-id='type-id-426' name='names'/>
+ <parameter type-id='type-id-492' name='res'/>
+ <parameter type-id='type-id-429' name='names'/>
<parameter type-id='type-id-22' name='names_size'/>
- <parameter type-id='type-id-161' name='pcert_list'/>
+ <parameter type-id='type-id-162' name='pcert_list'/>
<parameter type-id='type-id-22' name='pcert_list_size'/>
- <parameter type-id='type-id-401' name='key'/>
+ <parameter type-id='type-id-404' name='key'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pk_bits_to_sec_param' mangled-name='gnutls_pk_bits_to_sec_param' visibility='default' binding='global' size-in-bits='64'>
@@ -6708,53 +6761,53 @@
<function-decl name='_gnutls13_sign_get_compatible_with_privkey' mangled-name='_gnutls13_sign_get_compatible_with_privkey' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-type size-in-bits='64' id='type-id-495'>
- <parameter type-id='type-id-413'/>
- <parameter type-id='type-id-493'/>
- <parameter type-id='type-id-484'/>
- <parameter type-id='type-id-419'/>
- <parameter type-id='type-id-494'/>
- <parameter type-id='type-id-419'/>
- <parameter type-id='type-id-485'/>
- <parameter type-id='type-id-419'/>
+ <function-type size-in-bits='64' id='type-id-498'>
+ <parameter type-id='type-id-416'/>
+ <parameter type-id='type-id-496'/>
+ <parameter type-id='type-id-487'/>
+ <parameter type-id='type-id-422'/>
+ <parameter type-id='type-id-497'/>
+ <parameter type-id='type-id-422'/>
+ <parameter type-id='type-id-488'/>
+ <parameter type-id='type-id-422'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-486'>
- <parameter type-id='type-id-413'/>
+ <function-type size-in-bits='64' id='type-id-489'>
+ <parameter type-id='type-id-416'/>
<parameter type-id='type-id-57'/>
<parameter type-id='type-id-22'/>
- <parameter type-id='type-id-470'/>
+ <parameter type-id='type-id-473'/>
<parameter type-id='type-id-22'/>
- <parameter type-id='type-id-484'/>
- <parameter type-id='type-id-419'/>
- <parameter type-id='type-id-485'/>
+ <parameter type-id='type-id-487'/>
+ <parameter type-id='type-id-422'/>
+ <parameter type-id='type-id-488'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-482'>
- <parameter type-id='type-id-413'/>
+ <function-type size-in-bits='64' id='type-id-485'>
+ <parameter type-id='type-id-416'/>
<parameter type-id='type-id-57'/>
<parameter type-id='type-id-22'/>
- <parameter type-id='type-id-470'/>
+ <parameter type-id='type-id-473'/>
<parameter type-id='type-id-22'/>
- <parameter type-id='type-id-481'/>
+ <parameter type-id='type-id-484'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-447'>
- <parameter type-id='type-id-413'/>
- <parameter type-id='type-id-441'/>
- <parameter type-id='type-id-446'/>
+ <function-type size-in-bits='64' id='type-id-450'>
+ <parameter type-id='type-id-416'/>
+ <parameter type-id='type-id-444'/>
+ <parameter type-id='type-id-449'/>
<return type-id='type-id-22'/>
</function-type>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='global.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
- <var-decl name='_gnutls_pkix1_asn' type-id='type-id-387' visibility='default'/>
- <var-decl name='_gnutls_gnutls_asn' type-id='type-id-387' visibility='default'/>
- <pointer-type-def type-id='type-id-498' size-in-bits='64' id='type-id-499'/>
- <typedef-decl name='gnutls_log_func' type-id='type-id-499' id='type-id-500'/>
- <var-decl name='_gnutls_log_func' type-id='type-id-500' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='global.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
+ <var-decl name='_gnutls_pkix1_asn' type-id='type-id-390' visibility='default'/>
+ <var-decl name='_gnutls_gnutls_asn' type-id='type-id-390' visibility='default'/>
<pointer-type-def type-id='type-id-501' size-in-bits='64' id='type-id-502'/>
- <typedef-decl name='gnutls_audit_log_func' type-id='type-id-502' id='type-id-503'/>
- <var-decl name='_gnutls_audit_log_func' type-id='type-id-503' visibility='default'/>
+ <typedef-decl name='gnutls_log_func' type-id='type-id-502' id='type-id-503'/>
+ <var-decl name='_gnutls_log_func' type-id='type-id-503' visibility='default'/>
+ <pointer-type-def type-id='type-id-504' size-in-bits='64' id='type-id-505'/>
+ <typedef-decl name='gnutls_audit_log_func' type-id='type-id-505' id='type-id-506'/>
+ <var-decl name='_gnutls_audit_log_func' type-id='type-id-506' visibility='default'/>
<var-decl name='_gnutls_log_level' type-id='type-id-22' mangled-name='_gnutls_log_level' visibility='default' elf-symbol-id='_gnutls_log_level@@GNUTLS_PRIVATE_3_4'/>
<var-decl name='_gnutls_global_version' type-id='type-id-10' mangled-name='_gnutls_global_version' visibility='default' elf-symbol-id='_gnutls_global_version@@GNUTLS_PRIVATE_3_4'/>
<function-decl name='gnutls_check_version' mangled-name='gnutls_check_version' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_check_version@@GNUTLS_3_4'>
@@ -6767,38 +6820,38 @@
<function-decl name='gnutls_global_init' mangled-name='gnutls_global_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_global_init@@GNUTLS_3_4'>
<return type-id='type-id-22'/>
</function-decl>
- <pointer-type-def type-id='type-id-504' size-in-bits='64' id='type-id-505'/>
- <typedef-decl name='gnutls_alloc_function' type-id='type-id-505' id='type-id-506'/>
<pointer-type-def type-id='type-id-507' size-in-bits='64' id='type-id-508'/>
- <typedef-decl name='gnutls_is_secure_function' type-id='type-id-508' id='type-id-509'/>
+ <typedef-decl name='gnutls_alloc_function' type-id='type-id-508' id='type-id-509'/>
<pointer-type-def type-id='type-id-510' size-in-bits='64' id='type-id-511'/>
- <typedef-decl name='gnutls_realloc_function' type-id='type-id-511' id='type-id-512'/>
- <typedef-decl name='gnutls_free_function' type-id='type-id-121' id='type-id-513'/>
+ <typedef-decl name='gnutls_is_secure_function' type-id='type-id-511' id='type-id-512'/>
+ <pointer-type-def type-id='type-id-513' size-in-bits='64' id='type-id-514'/>
+ <typedef-decl name='gnutls_realloc_function' type-id='type-id-514' id='type-id-515'/>
+ <typedef-decl name='gnutls_free_function' type-id='type-id-121' id='type-id-516'/>
<function-decl name='gnutls_global_set_mem_functions' mangled-name='gnutls_global_set_mem_functions' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_global_set_mem_functions@@GNUTLS_3_4'>
- <parameter type-id='type-id-506' name='alloc_func'/>
- <parameter type-id='type-id-506' name='secure_alloc_func'/>
- <parameter type-id='type-id-509' name='is_secure_func'/>
- <parameter type-id='type-id-512' name='realloc_func'/>
- <parameter type-id='type-id-513' name='free_func'/>
+ <parameter type-id='type-id-509' name='alloc_func'/>
+ <parameter type-id='type-id-509' name='secure_alloc_func'/>
+ <parameter type-id='type-id-512' name='is_secure_func'/>
+ <parameter type-id='type-id-515' name='realloc_func'/>
+ <parameter type-id='type-id-516' name='free_func'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_global_set_log_level' mangled-name='gnutls_global_set_log_level' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_global_set_log_level@@GNUTLS_3_4'>
<parameter type-id='type-id-22' name='level'/>
<return type-id='type-id-111'/>
</function-decl>
- <pointer-type-def type-id='type-id-17' size-in-bits='64' id='type-id-514'/>
- <pointer-type-def type-id='type-id-515' size-in-bits='64' id='type-id-516'/>
- <typedef-decl name='gnutls_time_func' type-id='type-id-516' id='type-id-517'/>
+ <pointer-type-def type-id='type-id-17' size-in-bits='64' id='type-id-517'/>
+ <pointer-type-def type-id='type-id-518' size-in-bits='64' id='type-id-519'/>
+ <typedef-decl name='gnutls_time_func' type-id='type-id-519' id='type-id-520'/>
<function-decl name='gnutls_global_set_time_function' mangled-name='gnutls_global_set_time_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_global_set_time_function@@GNUTLS_3_4'>
- <parameter type-id='type-id-517' name='time_func'/>
+ <parameter type-id='type-id-520' name='time_func'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_global_set_audit_log_function' mangled-name='gnutls_global_set_audit_log_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_global_set_audit_log_function@@GNUTLS_3_4'>
- <parameter type-id='type-id-503' name='log_func'/>
+ <parameter type-id='type-id-506' name='log_func'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_global_set_log_function' mangled-name='gnutls_global_set_log_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_global_set_log_function@@GNUTLS_3_4'>
- <parameter type-id='type-id-500' name='log_func'/>
+ <parameter type-id='type-id-503' name='log_func'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='_gnutls_global_init_skip' mangled-name='_gnutls_global_init_skip' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls_global_init_skip@@GNUTLS_3_4'>
@@ -6888,35 +6941,35 @@
<function-decl name='_gnutls_load_system_priorities' mangled-name='_gnutls_load_system_priorities' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-type size-in-bits='64' id='type-id-507'>
+ <function-type size-in-bits='64' id='type-id-510'>
<parameter type-id='type-id-101'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-515'>
- <parameter type-id='type-id-514'/>
+ <function-type size-in-bits='64' id='type-id-518'>
+ <parameter type-id='type-id-517'/>
<return type-id='type-id-17'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-498'>
+ <function-type size-in-bits='64' id='type-id-501'>
<parameter type-id='type-id-22'/>
<parameter type-id='type-id-27'/>
<return type-id='type-id-111'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-501'>
- <parameter type-id='type-id-236'/>
+ <function-type size-in-bits='64' id='type-id-504'>
+ <parameter type-id='type-id-237'/>
<parameter type-id='type-id-27'/>
<return type-id='type-id-111'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-504'>
+ <function-type size-in-bits='64' id='type-id-507'>
<parameter type-id='type-id-99'/>
<return type-id='type-id-101'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-510'>
+ <function-type size-in-bits='64' id='type-id-513'>
<parameter type-id='type-id-101'/>
<parameter type-id='type-id-99'/>
<return type-id='type-id-101'/>
</function-type>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='constate.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='constate.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='_gnutls_cipher_init' mangled-name='_gnutls_cipher_init' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -6942,94 +6995,94 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='anon_cred.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
- <class-decl name='gnutls_anon_server_credentials_st' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-518'>
+ <abi-instr version='1.0' address-size='64' path='anon_cred.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
+ <class-decl name='gnutls_anon_server_credentials_st' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-521'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='dh_params' type-id='type-id-418' visibility='default'/>
+ <var-decl name='dh_params' type-id='type-id-421' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='deinit_dh_params' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='96'>
- <var-decl name='dh_sec_param' type-id='type-id-202' visibility='default'/>
+ <var-decl name='dh_sec_param' type-id='type-id-203' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='params_func' type-id='type-id-433' visibility='default'/>
+ <var-decl name='params_func' type-id='type-id-436' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-518' size-in-bits='64' id='type-id-519'/>
- <typedef-decl name='gnutls_anon_server_credentials_t' type-id='type-id-519' id='type-id-520'/>
+ <pointer-type-def type-id='type-id-521' size-in-bits='64' id='type-id-522'/>
+ <typedef-decl name='gnutls_anon_server_credentials_t' type-id='type-id-522' id='type-id-523'/>
<function-decl name='gnutls_anon_set_server_known_dh_params' mangled-name='gnutls_anon_set_server_known_dh_params' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_anon_set_server_known_dh_params@@GNUTLS_3_4'>
- <parameter type-id='type-id-520' name='res'/>
- <parameter type-id='type-id-202' name='sec_param'/>
+ <parameter type-id='type-id-523' name='res'/>
+ <parameter type-id='type-id-203' name='sec_param'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_anon_set_server_dh_params' mangled-name='gnutls_anon_set_server_dh_params' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_anon_set_server_dh_params@@GNUTLS_3_4'>
- <parameter type-id='type-id-520' name='res'/>
- <parameter type-id='type-id-418' name='dh_params'/>
+ <parameter type-id='type-id-523' name='res'/>
+ <parameter type-id='type-id-421' name='dh_params'/>
<return type-id='type-id-111'/>
</function-decl>
- <class-decl name='gnutls_anon_client_credentials_st' size-in-bits='32' is-struct='yes' visibility='default' id='type-id-521'>
+ <class-decl name='gnutls_anon_client_credentials_st' size-in-bits='32' is-struct='yes' visibility='default' id='type-id-524'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='dummy' type-id='type-id-22' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-521' size-in-bits='64' id='type-id-522'/>
- <typedef-decl name='gnutls_anon_client_credentials_t' type-id='type-id-522' id='type-id-523'/>
- <pointer-type-def type-id='type-id-523' size-in-bits='64' id='type-id-524'/>
+ <pointer-type-def type-id='type-id-524' size-in-bits='64' id='type-id-525'/>
+ <typedef-decl name='gnutls_anon_client_credentials_t' type-id='type-id-525' id='type-id-526'/>
+ <pointer-type-def type-id='type-id-526' size-in-bits='64' id='type-id-527'/>
<function-decl name='gnutls_anon_allocate_client_credentials' mangled-name='gnutls_anon_allocate_client_credentials' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_anon_allocate_client_credentials@@GNUTLS_3_4'>
- <parameter type-id='type-id-524' name='sc'/>
+ <parameter type-id='type-id-527' name='sc'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_anon_free_client_credentials' mangled-name='gnutls_anon_free_client_credentials' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_anon_free_client_credentials@@GNUTLS_3_4'>
- <parameter type-id='type-id-523' name='sc'/>
+ <parameter type-id='type-id-526' name='sc'/>
<return type-id='type-id-111'/>
</function-decl>
- <pointer-type-def type-id='type-id-520' size-in-bits='64' id='type-id-525'/>
+ <pointer-type-def type-id='type-id-523' size-in-bits='64' id='type-id-528'/>
<function-decl name='gnutls_anon_allocate_server_credentials' mangled-name='gnutls_anon_allocate_server_credentials' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_anon_allocate_server_credentials@@GNUTLS_3_4'>
- <parameter type-id='type-id-525' name='sc'/>
+ <parameter type-id='type-id-528' name='sc'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_anon_free_server_credentials' mangled-name='gnutls_anon_free_server_credentials' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_anon_free_server_credentials@@GNUTLS_3_4'>
- <parameter type-id='type-id-520' name='sc'/>
+ <parameter type-id='type-id-523' name='sc'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_anon_set_server_params_function' mangled-name='gnutls_anon_set_server_params_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_anon_set_server_params_function@@GNUTLS_3_4'>
- <parameter type-id='type-id-520' name='res'/>
- <parameter type-id='type-id-433' name='func'/>
+ <parameter type-id='type-id-523' name='res'/>
+ <parameter type-id='type-id-436' name='func'/>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='mem.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
- <var-decl name='gnutls_secure_malloc' type-id='type-id-506' mangled-name='gnutls_secure_malloc' visibility='default' elf-symbol-id='gnutls_secure_malloc@@GNUTLS_3_4'/>
- <var-decl name='gnutls_malloc' type-id='type-id-506' mangled-name='gnutls_malloc' visibility='default' elf-symbol-id='gnutls_malloc@@GNUTLS_3_4'/>
- <var-decl name='gnutls_free' type-id='type-id-513' mangled-name='gnutls_free' visibility='default' elf-symbol-id='gnutls_free@@GNUTLS_3_4'/>
- <var-decl name='gnutls_realloc' type-id='type-id-512' mangled-name='gnutls_realloc' visibility='default' elf-symbol-id='gnutls_realloc@@GNUTLS_3_4'/>
- <pointer-type-def type-id='type-id-526' size-in-bits='64' id='type-id-527'/>
- <typedef-decl name='gnutls_calloc_function' type-id='type-id-527' id='type-id-528'/>
- <var-decl name='gnutls_calloc' type-id='type-id-528' mangled-name='gnutls_calloc' visibility='default' elf-symbol-id='gnutls_calloc@@GNUTLS_3_4'/>
+ <abi-instr version='1.0' address-size='64' path='mem.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
+ <var-decl name='gnutls_secure_malloc' type-id='type-id-509' mangled-name='gnutls_secure_malloc' visibility='default' elf-symbol-id='gnutls_secure_malloc@@GNUTLS_3_4'/>
+ <var-decl name='gnutls_malloc' type-id='type-id-509' mangled-name='gnutls_malloc' visibility='default' elf-symbol-id='gnutls_malloc@@GNUTLS_3_4'/>
+ <var-decl name='gnutls_free' type-id='type-id-516' mangled-name='gnutls_free' visibility='default' elf-symbol-id='gnutls_free@@GNUTLS_3_4'/>
+ <var-decl name='gnutls_realloc' type-id='type-id-515' mangled-name='gnutls_realloc' visibility='default' elf-symbol-id='gnutls_realloc@@GNUTLS_3_4'/>
<pointer-type-def type-id='type-id-529' size-in-bits='64' id='type-id-530'/>
- <var-decl name='gnutls_strdup' type-id='type-id-530' mangled-name='gnutls_strdup' visibility='default' elf-symbol-id='gnutls_strdup@@GNUTLS_3_4'/>
- <function-type size-in-bits='64' id='type-id-529'>
+ <typedef-decl name='gnutls_calloc_function' type-id='type-id-530' id='type-id-531'/>
+ <var-decl name='gnutls_calloc' type-id='type-id-531' mangled-name='gnutls_calloc' visibility='default' elf-symbol-id='gnutls_calloc@@GNUTLS_3_4'/>
+ <pointer-type-def type-id='type-id-532' size-in-bits='64' id='type-id-533'/>
+ <var-decl name='gnutls_strdup' type-id='type-id-533' mangled-name='gnutls_strdup' visibility='default' elf-symbol-id='gnutls_strdup@@GNUTLS_3_4'/>
+ <function-type size-in-bits='64' id='type-id-532'>
<parameter type-id='type-id-27'/>
- <return type-id='type-id-376'/>
+ <return type-id='type-id-379'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-526'>
+ <function-type size-in-bits='64' id='type-id-529'>
<parameter type-id='type-id-99'/>
<parameter type-id='type-id-99'/>
<return type-id='type-id-101'/>
</function-type>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='fingerprint.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='fingerprint.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_fingerprint' mangled-name='gnutls_fingerprint' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_fingerprint@@GNUTLS_3_4'>
- <parameter type-id='type-id-211' name='algo'/>
+ <parameter type-id='type-id-212' name='algo'/>
<parameter type-id='type-id-57' name='data'/>
<parameter type-id='type-id-101' name='result'/>
- <parameter type-id='type-id-422' name='result_size'/>
+ <parameter type-id='type-id-425' name='result_size'/>
<return type-id='type-id-22'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='tls-sig.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='tls-sig.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='_gnutls_pubkey_compatible_with_sig' mangled-name='_gnutls_pubkey_compatible_with_sig' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -7064,13 +7117,13 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='ecc.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='ecc.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_ecc_curve_get_size' mangled-name='gnutls_ecc_curve_get_size' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='alert.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-531'>
+ <abi-instr version='1.0' address-size='64' path='alert.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-534'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_A_CLOSE_NOTIFY' value='0'/>
<enumerator name='GNUTLS_A_UNEXPECTED_MESSAGE' value='10'/>
@@ -7106,44 +7159,44 @@
<enumerator name='GNUTLS_A_NO_APPLICATION_PROTOCOL' value='120'/>
<enumerator name='GNUTLS_A_MAX' value='120'/>
</enum-decl>
- <typedef-decl name='gnutls_alert_description_t' type-id='type-id-531' id='type-id-532'/>
+ <typedef-decl name='gnutls_alert_description_t' type-id='type-id-534' id='type-id-535'/>
<function-decl name='gnutls_alert_get' mangled-name='gnutls_alert_get' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_alert_get@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
- <return type-id='type-id-532'/>
+ <parameter type-id='type-id-237' name='session'/>
+ <return type-id='type-id-535'/>
</function-decl>
<function-decl name='gnutls_alert_send_appropriate' mangled-name='gnutls_alert_send_appropriate' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_alert_send_appropriate@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-22' name='err'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_error_to_alert' mangled-name='gnutls_error_to_alert' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_error_to_alert@@GNUTLS_3_4'>
<parameter type-id='type-id-22' name='err'/>
- <parameter type-id='type-id-364' name='level'/>
+ <parameter type-id='type-id-367' name='level'/>
<return type-id='type-id-22'/>
</function-decl>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-533'>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-536'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_AL_WARNING' value='1'/>
<enumerator name='GNUTLS_AL_FATAL' value='2'/>
</enum-decl>
- <typedef-decl name='gnutls_alert_level_t' type-id='type-id-533' id='type-id-534'/>
+ <typedef-decl name='gnutls_alert_level_t' type-id='type-id-536' id='type-id-537'/>
<function-decl name='gnutls_alert_send' mangled-name='gnutls_alert_send' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_alert_send@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
- <parameter type-id='type-id-534' name='level'/>
- <parameter type-id='type-id-532' name='desc'/>
+ <parameter type-id='type-id-237' name='session'/>
+ <parameter type-id='type-id-537' name='level'/>
+ <parameter type-id='type-id-535' name='desc'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_alert_get_strname' mangled-name='gnutls_alert_get_strname' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_alert_get_strname@@GNUTLS_3_4'>
- <parameter type-id='type-id-532' name='alert'/>
+ <parameter type-id='type-id-535' name='alert'/>
<return type-id='type-id-27'/>
</function-decl>
<function-decl name='gnutls_alert_get_name' mangled-name='gnutls_alert_get_name' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_alert_get_name@@GNUTLS_3_4'>
- <parameter type-id='type-id-532' name='alert'/>
+ <parameter type-id='type-id-535' name='alert'/>
<return type-id='type-id-27'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='privkey_raw.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
- <class-decl name='gnutls_pkcs11_privkey_st' size-in-bits='3392' is-struct='yes' visibility='default' id='type-id-392'>
+ <abi-instr version='1.0' address-size='64' path='privkey_raw.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
+ <class-decl name='gnutls_pkcs11_privkey_st' size-in-bits='3392' is-struct='yes' visibility='default' id='type-id-395'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='pk_algorithm' type-id='type-id-60' visibility='default'/>
</data-member>
@@ -7157,16 +7210,16 @@
<var-decl name='flags' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='uinfo' type-id='type-id-535' visibility='default'/>
+ <var-decl name='uinfo' type-id='type-id-538' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='url' type-id='type-id-376' visibility='default'/>
+ <var-decl name='url' type-id='type-id-379' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='sinfo' type-id='type-id-536' visibility='default'/>
+ <var-decl name='sinfo' type-id='type-id-539' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3072'>
- <var-decl name='ref' type-id='type-id-537' visibility='default'/>
+ <var-decl name='ref' type-id='type-id-540' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3136'>
<var-decl name='reauth' type-id='type-id-10' visibility='default'/>
@@ -7175,26 +7228,26 @@
<var-decl name='mutex' type-id='type-id-101' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3264'>
- <var-decl name='pin' type-id='type-id-374' visibility='default'/>
+ <var-decl name='pin' type-id='type-id-377' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='p11_kit_uri' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-538'/>
- <pointer-type-def type-id='type-id-538' size-in-bits='64' id='type-id-535'/>
- <class-decl name='pkcs11_session_info' size-in-bits='2816' is-struct='yes' visibility='default' id='type-id-536'>
+ <class-decl name='p11_kit_uri' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-541'/>
+ <pointer-type-def type-id='type-id-541' size-in-bits='64' id='type-id-538'/>
+ <class-decl name='pkcs11_session_info' size-in-bits='2816' is-struct='yes' visibility='default' id='type-id-539'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='module' type-id='type-id-539' visibility='default'/>
+ <var-decl name='module' type-id='type-id-542' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='tinfo' type-id='type-id-540' visibility='default'/>
+ <var-decl name='tinfo' type-id='type-id-543' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1728'>
- <var-decl name='slot_info' type-id='type-id-541' visibility='default'/>
+ <var-decl name='slot_info' type-id='type-id-544' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2624'>
- <var-decl name='pks' type-id='type-id-542' visibility='default'/>
+ <var-decl name='pks' type-id='type-id-545' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2688'>
- <var-decl name='sid' type-id='type-id-543' visibility='default'/>
+ <var-decl name='sid' type-id='type-id-546' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2752'>
<var-decl name='init' type-id='type-id-10' visibility='default'/>
@@ -7203,216 +7256,216 @@
<var-decl name='trusted' type-id='type-id-10' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='ck_function_list' size-in-bits='4416' is-struct='yes' visibility='default' id='type-id-544'>
+ <class-decl name='ck_function_list' size-in-bits='4416' is-struct='yes' visibility='default' id='type-id-547'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='version' type-id='type-id-545' visibility='default'/>
+ <var-decl name='version' type-id='type-id-548' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='C_Initialize' type-id='type-id-546' visibility='default'/>
+ <var-decl name='C_Initialize' type-id='type-id-549' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='C_Finalize' type-id='type-id-547' visibility='default'/>
+ <var-decl name='C_Finalize' type-id='type-id-550' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='C_GetInfo' type-id='type-id-548' visibility='default'/>
+ <var-decl name='C_GetInfo' type-id='type-id-551' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='C_GetFunctionList' type-id='type-id-549' visibility='default'/>
+ <var-decl name='C_GetFunctionList' type-id='type-id-552' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='C_GetSlotList' type-id='type-id-550' visibility='default'/>
+ <var-decl name='C_GetSlotList' type-id='type-id-553' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='C_GetSlotInfo' type-id='type-id-551' visibility='default'/>
+ <var-decl name='C_GetSlotInfo' type-id='type-id-554' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
- <var-decl name='C_GetTokenInfo' type-id='type-id-552' visibility='default'/>
+ <var-decl name='C_GetTokenInfo' type-id='type-id-555' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='C_GetMechanismList' type-id='type-id-553' visibility='default'/>
+ <var-decl name='C_GetMechanismList' type-id='type-id-556' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
- <var-decl name='C_GetMechanismInfo' type-id='type-id-554' visibility='default'/>
+ <var-decl name='C_GetMechanismInfo' type-id='type-id-557' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='640'>
- <var-decl name='C_InitToken' type-id='type-id-555' visibility='default'/>
+ <var-decl name='C_InitToken' type-id='type-id-558' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='704'>
- <var-decl name='C_InitPIN' type-id='type-id-556' visibility='default'/>
+ <var-decl name='C_InitPIN' type-id='type-id-559' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='768'>
- <var-decl name='C_SetPIN' type-id='type-id-557' visibility='default'/>
+ <var-decl name='C_SetPIN' type-id='type-id-560' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='832'>
- <var-decl name='C_OpenSession' type-id='type-id-558' visibility='default'/>
+ <var-decl name='C_OpenSession' type-id='type-id-561' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='896'>
- <var-decl name='C_CloseSession' type-id='type-id-559' visibility='default'/>
+ <var-decl name='C_CloseSession' type-id='type-id-562' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='960'>
- <var-decl name='C_CloseAllSessions' type-id='type-id-560' visibility='default'/>
+ <var-decl name='C_CloseAllSessions' type-id='type-id-563' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1024'>
- <var-decl name='C_GetSessionInfo' type-id='type-id-561' visibility='default'/>
+ <var-decl name='C_GetSessionInfo' type-id='type-id-564' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1088'>
- <var-decl name='C_GetOperationState' type-id='type-id-562' visibility='default'/>
+ <var-decl name='C_GetOperationState' type-id='type-id-565' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1152'>
- <var-decl name='C_SetOperationState' type-id='type-id-563' visibility='default'/>
+ <var-decl name='C_SetOperationState' type-id='type-id-566' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1216'>
- <var-decl name='C_Login' type-id='type-id-564' visibility='default'/>
+ <var-decl name='C_Login' type-id='type-id-567' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1280'>
- <var-decl name='C_Logout' type-id='type-id-565' visibility='default'/>
+ <var-decl name='C_Logout' type-id='type-id-568' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1344'>
- <var-decl name='C_CreateObject' type-id='type-id-566' visibility='default'/>
+ <var-decl name='C_CreateObject' type-id='type-id-569' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1408'>
- <var-decl name='C_CopyObject' type-id='type-id-567' visibility='default'/>
+ <var-decl name='C_CopyObject' type-id='type-id-570' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1472'>
- <var-decl name='C_DestroyObject' type-id='type-id-568' visibility='default'/>
+ <var-decl name='C_DestroyObject' type-id='type-id-571' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1536'>
- <var-decl name='C_GetObjectSize' type-id='type-id-569' visibility='default'/>
+ <var-decl name='C_GetObjectSize' type-id='type-id-572' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1600'>
- <var-decl name='C_GetAttributeValue' type-id='type-id-570' visibility='default'/>
+ <var-decl name='C_GetAttributeValue' type-id='type-id-573' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1664'>
- <var-decl name='C_SetAttributeValue' type-id='type-id-571' visibility='default'/>
+ <var-decl name='C_SetAttributeValue' type-id='type-id-574' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1728'>
- <var-decl name='C_FindObjectsInit' type-id='type-id-572' visibility='default'/>
+ <var-decl name='C_FindObjectsInit' type-id='type-id-575' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1792'>
- <var-decl name='C_FindObjects' type-id='type-id-573' visibility='default'/>
+ <var-decl name='C_FindObjects' type-id='type-id-576' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1856'>
- <var-decl name='C_FindObjectsFinal' type-id='type-id-574' visibility='default'/>
+ <var-decl name='C_FindObjectsFinal' type-id='type-id-577' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1920'>
- <var-decl name='C_EncryptInit' type-id='type-id-575' visibility='default'/>
+ <var-decl name='C_EncryptInit' type-id='type-id-578' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1984'>
- <var-decl name='C_Encrypt' type-id='type-id-576' visibility='default'/>
+ <var-decl name='C_Encrypt' type-id='type-id-579' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2048'>
- <var-decl name='C_EncryptUpdate' type-id='type-id-577' visibility='default'/>
+ <var-decl name='C_EncryptUpdate' type-id='type-id-580' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2112'>
- <var-decl name='C_EncryptFinal' type-id='type-id-578' visibility='default'/>
+ <var-decl name='C_EncryptFinal' type-id='type-id-581' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2176'>
- <var-decl name='C_DecryptInit' type-id='type-id-579' visibility='default'/>
+ <var-decl name='C_DecryptInit' type-id='type-id-582' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2240'>
- <var-decl name='C_Decrypt' type-id='type-id-580' visibility='default'/>
+ <var-decl name='C_Decrypt' type-id='type-id-583' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2304'>
- <var-decl name='C_DecryptUpdate' type-id='type-id-581' visibility='default'/>
+ <var-decl name='C_DecryptUpdate' type-id='type-id-584' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2368'>
- <var-decl name='C_DecryptFinal' type-id='type-id-582' visibility='default'/>
+ <var-decl name='C_DecryptFinal' type-id='type-id-585' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2432'>
- <var-decl name='C_DigestInit' type-id='type-id-583' visibility='default'/>
+ <var-decl name='C_DigestInit' type-id='type-id-586' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2496'>
- <var-decl name='C_Digest' type-id='type-id-584' visibility='default'/>
+ <var-decl name='C_Digest' type-id='type-id-587' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2560'>
- <var-decl name='C_DigestUpdate' type-id='type-id-585' visibility='default'/>
+ <var-decl name='C_DigestUpdate' type-id='type-id-588' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2624'>
- <var-decl name='C_DigestKey' type-id='type-id-586' visibility='default'/>
+ <var-decl name='C_DigestKey' type-id='type-id-589' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2688'>
- <var-decl name='C_DigestFinal' type-id='type-id-587' visibility='default'/>
+ <var-decl name='C_DigestFinal' type-id='type-id-590' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2752'>
- <var-decl name='C_SignInit' type-id='type-id-588' visibility='default'/>
+ <var-decl name='C_SignInit' type-id='type-id-591' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2816'>
- <var-decl name='C_Sign' type-id='type-id-589' visibility='default'/>
+ <var-decl name='C_Sign' type-id='type-id-592' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2880'>
- <var-decl name='C_SignUpdate' type-id='type-id-590' visibility='default'/>
+ <var-decl name='C_SignUpdate' type-id='type-id-593' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2944'>
- <var-decl name='C_SignFinal' type-id='type-id-591' visibility='default'/>
+ <var-decl name='C_SignFinal' type-id='type-id-594' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3008'>
- <var-decl name='C_SignRecoverInit' type-id='type-id-592' visibility='default'/>
+ <var-decl name='C_SignRecoverInit' type-id='type-id-595' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3072'>
- <var-decl name='C_SignRecover' type-id='type-id-593' visibility='default'/>
+ <var-decl name='C_SignRecover' type-id='type-id-596' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3136'>
- <var-decl name='C_VerifyInit' type-id='type-id-594' visibility='default'/>
+ <var-decl name='C_VerifyInit' type-id='type-id-597' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3200'>
- <var-decl name='C_Verify' type-id='type-id-595' visibility='default'/>
+ <var-decl name='C_Verify' type-id='type-id-598' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3264'>
- <var-decl name='C_VerifyUpdate' type-id='type-id-596' visibility='default'/>
+ <var-decl name='C_VerifyUpdate' type-id='type-id-599' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3328'>
- <var-decl name='C_VerifyFinal' type-id='type-id-597' visibility='default'/>
+ <var-decl name='C_VerifyFinal' type-id='type-id-600' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3392'>
- <var-decl name='C_VerifyRecoverInit' type-id='type-id-598' visibility='default'/>
+ <var-decl name='C_VerifyRecoverInit' type-id='type-id-601' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3456'>
- <var-decl name='C_VerifyRecover' type-id='type-id-599' visibility='default'/>
+ <var-decl name='C_VerifyRecover' type-id='type-id-602' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3520'>
- <var-decl name='C_DigestEncryptUpdate' type-id='type-id-600' visibility='default'/>
+ <var-decl name='C_DigestEncryptUpdate' type-id='type-id-603' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3584'>
- <var-decl name='C_DecryptDigestUpdate' type-id='type-id-601' visibility='default'/>
+ <var-decl name='C_DecryptDigestUpdate' type-id='type-id-604' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3648'>
- <var-decl name='C_SignEncryptUpdate' type-id='type-id-602' visibility='default'/>
+ <var-decl name='C_SignEncryptUpdate' type-id='type-id-605' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3712'>
- <var-decl name='C_DecryptVerifyUpdate' type-id='type-id-603' visibility='default'/>
+ <var-decl name='C_DecryptVerifyUpdate' type-id='type-id-606' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3776'>
- <var-decl name='C_GenerateKey' type-id='type-id-604' visibility='default'/>
+ <var-decl name='C_GenerateKey' type-id='type-id-607' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3840'>
- <var-decl name='C_GenerateKeyPair' type-id='type-id-605' visibility='default'/>
+ <var-decl name='C_GenerateKeyPair' type-id='type-id-608' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3904'>
- <var-decl name='C_WrapKey' type-id='type-id-606' visibility='default'/>
+ <var-decl name='C_WrapKey' type-id='type-id-609' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3968'>
- <var-decl name='C_UnwrapKey' type-id='type-id-607' visibility='default'/>
+ <var-decl name='C_UnwrapKey' type-id='type-id-610' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='4032'>
- <var-decl name='C_DeriveKey' type-id='type-id-608' visibility='default'/>
+ <var-decl name='C_DeriveKey' type-id='type-id-611' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='4096'>
- <var-decl name='C_SeedRandom' type-id='type-id-609' visibility='default'/>
+ <var-decl name='C_SeedRandom' type-id='type-id-612' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='4160'>
- <var-decl name='C_GenerateRandom' type-id='type-id-610' visibility='default'/>
+ <var-decl name='C_GenerateRandom' type-id='type-id-613' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='4224'>
- <var-decl name='C_GetFunctionStatus' type-id='type-id-611' visibility='default'/>
+ <var-decl name='C_GetFunctionStatus' type-id='type-id-614' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='4288'>
- <var-decl name='C_CancelFunction' type-id='type-id-612' visibility='default'/>
+ <var-decl name='C_CancelFunction' type-id='type-id-615' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='4352'>
- <var-decl name='C_WaitForSlotEvent' type-id='type-id-613' visibility='default'/>
+ <var-decl name='C_WaitForSlotEvent' type-id='type-id-616' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='ck_version' size-in-bits='16' is-struct='yes' visibility='default' id='type-id-545'>
+ <class-decl name='ck_version' size-in-bits='16' is-struct='yes' visibility='default' id='type-id-548'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='major' type-id='type-id-35' visibility='default'/>
</data-member>
@@ -7420,75 +7473,75 @@
<var-decl name='minor' type-id='type-id-35' visibility='default'/>
</data-member>
</class-decl>
- <typedef-decl name='ck_rv_t' type-id='type-id-38' id='type-id-614'/>
- <pointer-type-def type-id='type-id-615' size-in-bits='64' id='type-id-616'/>
- <typedef-decl name='CK_C_Initialize' type-id='type-id-616' id='type-id-546'/>
- <typedef-decl name='CK_C_Finalize' type-id='type-id-616' id='type-id-547'/>
- <class-decl name='ck_info' size-in-bits='704' is-struct='yes' visibility='default' id='type-id-617'>
+ <typedef-decl name='ck_rv_t' type-id='type-id-38' id='type-id-617'/>
+ <pointer-type-def type-id='type-id-618' size-in-bits='64' id='type-id-619'/>
+ <typedef-decl name='CK_C_Initialize' type-id='type-id-619' id='type-id-549'/>
+ <typedef-decl name='CK_C_Finalize' type-id='type-id-619' id='type-id-550'/>
+ <class-decl name='ck_info' size-in-bits='704' is-struct='yes' visibility='default' id='type-id-620'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='cryptoki_version' type-id='type-id-545' visibility='default'/>
+ <var-decl name='cryptoki_version' type-id='type-id-548' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='16'>
- <var-decl name='manufacturer_id' type-id='type-id-273' visibility='default'/>
+ <var-decl name='manufacturer_id' type-id='type-id-276' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='flags' type-id='type-id-618' visibility='default'/>
+ <var-decl name='flags' type-id='type-id-621' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='library_description' type-id='type-id-273' visibility='default'/>
+ <var-decl name='library_description' type-id='type-id-276' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='640'>
- <var-decl name='library_version' type-id='type-id-545' visibility='default'/>
+ <var-decl name='library_version' type-id='type-id-548' visibility='default'/>
</data-member>
</class-decl>
- <typedef-decl name='ck_flags_t' type-id='type-id-38' id='type-id-618'/>
- <pointer-type-def type-id='type-id-617' size-in-bits='64' id='type-id-619'/>
- <pointer-type-def type-id='type-id-620' size-in-bits='64' id='type-id-621'/>
- <typedef-decl name='CK_C_GetInfo' type-id='type-id-621' id='type-id-548'/>
- <pointer-type-def type-id='type-id-544' size-in-bits='64' id='type-id-539'/>
- <pointer-type-def type-id='type-id-539' size-in-bits='64' id='type-id-622'/>
+ <typedef-decl name='ck_flags_t' type-id='type-id-38' id='type-id-621'/>
+ <pointer-type-def type-id='type-id-620' size-in-bits='64' id='type-id-622'/>
<pointer-type-def type-id='type-id-623' size-in-bits='64' id='type-id-624'/>
- <typedef-decl name='CK_C_GetFunctionList' type-id='type-id-624' id='type-id-549'/>
- <typedef-decl name='ck_slot_id_t' type-id='type-id-38' id='type-id-543'/>
- <pointer-type-def type-id='type-id-543' size-in-bits='64' id='type-id-625'/>
- <pointer-type-def type-id='type-id-38' size-in-bits='64' id='type-id-626'/>
- <pointer-type-def type-id='type-id-627' size-in-bits='64' id='type-id-628'/>
- <typedef-decl name='CK_C_GetSlotList' type-id='type-id-628' id='type-id-550'/>
- <class-decl name='ck_slot_info' size-in-bits='896' is-struct='yes' visibility='default' id='type-id-541'>
+ <typedef-decl name='CK_C_GetInfo' type-id='type-id-624' id='type-id-551'/>
+ <pointer-type-def type-id='type-id-547' size-in-bits='64' id='type-id-542'/>
+ <pointer-type-def type-id='type-id-542' size-in-bits='64' id='type-id-625'/>
+ <pointer-type-def type-id='type-id-626' size-in-bits='64' id='type-id-627'/>
+ <typedef-decl name='CK_C_GetFunctionList' type-id='type-id-627' id='type-id-552'/>
+ <typedef-decl name='ck_slot_id_t' type-id='type-id-38' id='type-id-546'/>
+ <pointer-type-def type-id='type-id-546' size-in-bits='64' id='type-id-628'/>
+ <pointer-type-def type-id='type-id-38' size-in-bits='64' id='type-id-629'/>
+ <pointer-type-def type-id='type-id-630' size-in-bits='64' id='type-id-631'/>
+ <typedef-decl name='CK_C_GetSlotList' type-id='type-id-631' id='type-id-553'/>
+ <class-decl name='ck_slot_info' size-in-bits='896' is-struct='yes' visibility='default' id='type-id-544'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='slot_description' type-id='type-id-490' visibility='default'/>
+ <var-decl name='slot_description' type-id='type-id-493' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='manufacturer_id' type-id='type-id-273' visibility='default'/>
+ <var-decl name='manufacturer_id' type-id='type-id-276' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='768'>
- <var-decl name='flags' type-id='type-id-618' visibility='default'/>
+ <var-decl name='flags' type-id='type-id-621' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='832'>
- <var-decl name='hardware_version' type-id='type-id-545' visibility='default'/>
+ <var-decl name='hardware_version' type-id='type-id-548' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='848'>
- <var-decl name='firmware_version' type-id='type-id-545' visibility='default'/>
+ <var-decl name='firmware_version' type-id='type-id-548' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-541' size-in-bits='64' id='type-id-629'/>
- <pointer-type-def type-id='type-id-630' size-in-bits='64' id='type-id-631'/>
- <typedef-decl name='CK_C_GetSlotInfo' type-id='type-id-631' id='type-id-551'/>
- <class-decl name='ck_token_info' size-in-bits='1664' is-struct='yes' visibility='default' id='type-id-540'>
+ <pointer-type-def type-id='type-id-544' size-in-bits='64' id='type-id-632'/>
+ <pointer-type-def type-id='type-id-633' size-in-bits='64' id='type-id-634'/>
+ <typedef-decl name='CK_C_GetSlotInfo' type-id='type-id-634' id='type-id-554'/>
+ <class-decl name='ck_token_info' size-in-bits='1664' is-struct='yes' visibility='default' id='type-id-543'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='label' type-id='type-id-273' visibility='default'/>
+ <var-decl name='label' type-id='type-id-276' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='manufacturer_id' type-id='type-id-273' visibility='default'/>
+ <var-decl name='manufacturer_id' type-id='type-id-276' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='model' type-id='type-id-632' visibility='default'/>
+ <var-decl name='model' type-id='type-id-635' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='640'>
- <var-decl name='serial_number' type-id='type-id-632' visibility='default'/>
+ <var-decl name='serial_number' type-id='type-id-635' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='768'>
- <var-decl name='flags' type-id='type-id-618' visibility='default'/>
+ <var-decl name='flags' type-id='type-id-621' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='832'>
<var-decl name='max_session_count' type-id='type-id-38' visibility='default'/>
@@ -7521,28 +7574,28 @@
<var-decl name='free_private_memory' type-id='type-id-38' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1472'>
- <var-decl name='hardware_version' type-id='type-id-545' visibility='default'/>
+ <var-decl name='hardware_version' type-id='type-id-548' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1488'>
- <var-decl name='firmware_version' type-id='type-id-545' visibility='default'/>
+ <var-decl name='firmware_version' type-id='type-id-548' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1504'>
- <var-decl name='utc_time' type-id='type-id-632' visibility='default'/>
+ <var-decl name='utc_time' type-id='type-id-635' visibility='default'/>
</data-member>
</class-decl>
- <array-type-def dimensions='1' type-id='type-id-35' size-in-bits='128' id='type-id-632'>
+ <array-type-def dimensions='1' type-id='type-id-35' size-in-bits='128' id='type-id-635'>
<subrange length='16' type-id='type-id-38' id='type-id-93'/>
</array-type-def>
- <pointer-type-def type-id='type-id-540' size-in-bits='64' id='type-id-633'/>
- <pointer-type-def type-id='type-id-634' size-in-bits='64' id='type-id-635'/>
- <typedef-decl name='CK_C_GetTokenInfo' type-id='type-id-635' id='type-id-552'/>
- <typedef-decl name='ck_mechanism_type_t' type-id='type-id-38' id='type-id-636'/>
- <pointer-type-def type-id='type-id-636' size-in-bits='64' id='type-id-637'/>
- <pointer-type-def type-id='type-id-638' size-in-bits='64' id='type-id-639'/>
- <typedef-decl name='CK_C_GetMechanismList' type-id='type-id-639' id='type-id-553'/>
- <class-decl name='ck_mechanism_info' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-640'>
+ <pointer-type-def type-id='type-id-543' size-in-bits='64' id='type-id-636'/>
+ <pointer-type-def type-id='type-id-637' size-in-bits='64' id='type-id-638'/>
+ <typedef-decl name='CK_C_GetTokenInfo' type-id='type-id-638' id='type-id-555'/>
+ <typedef-decl name='ck_mechanism_type_t' type-id='type-id-38' id='type-id-639'/>
+ <pointer-type-def type-id='type-id-639' size-in-bits='64' id='type-id-640'/>
+ <pointer-type-def type-id='type-id-641' size-in-bits='64' id='type-id-642'/>
+ <typedef-decl name='CK_C_GetMechanismList' type-id='type-id-642' id='type-id-556'/>
+ <class-decl name='ck_mechanism_info' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-643'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='min_key_size' type-id='type-id-38' visibility='default'/>
</data-member>
@@ -7550,59 +7603,59 @@
<var-decl name='max_key_size' type-id='type-id-38' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='flags' type-id='type-id-618' visibility='default'/>
+ <var-decl name='flags' type-id='type-id-621' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-640' size-in-bits='64' id='type-id-641'/>
- <pointer-type-def type-id='type-id-642' size-in-bits='64' id='type-id-643'/>
- <typedef-decl name='CK_C_GetMechanismInfo' type-id='type-id-643' id='type-id-554'/>
- <pointer-type-def type-id='type-id-644' size-in-bits='64' id='type-id-645'/>
- <typedef-decl name='CK_C_InitToken' type-id='type-id-645' id='type-id-555'/>
- <typedef-decl name='ck_session_handle_t' type-id='type-id-38' id='type-id-542'/>
- <pointer-type-def type-id='type-id-646' size-in-bits='64' id='type-id-647'/>
- <typedef-decl name='CK_C_InitPIN' type-id='type-id-647' id='type-id-556'/>
- <pointer-type-def type-id='type-id-648' size-in-bits='64' id='type-id-649'/>
- <typedef-decl name='CK_C_SetPIN' type-id='type-id-649' id='type-id-557'/>
- <typedef-decl name='ck_notification_t' type-id='type-id-38' id='type-id-650'/>
+ <pointer-type-def type-id='type-id-643' size-in-bits='64' id='type-id-644'/>
+ <pointer-type-def type-id='type-id-645' size-in-bits='64' id='type-id-646'/>
+ <typedef-decl name='CK_C_GetMechanismInfo' type-id='type-id-646' id='type-id-557'/>
+ <pointer-type-def type-id='type-id-647' size-in-bits='64' id='type-id-648'/>
+ <typedef-decl name='CK_C_InitToken' type-id='type-id-648' id='type-id-558'/>
+ <typedef-decl name='ck_session_handle_t' type-id='type-id-38' id='type-id-545'/>
+ <pointer-type-def type-id='type-id-649' size-in-bits='64' id='type-id-650'/>
+ <typedef-decl name='CK_C_InitPIN' type-id='type-id-650' id='type-id-559'/>
<pointer-type-def type-id='type-id-651' size-in-bits='64' id='type-id-652'/>
- <typedef-decl name='ck_notify_t' type-id='type-id-652' id='type-id-653'/>
- <pointer-type-def type-id='type-id-542' size-in-bits='64' id='type-id-654'/>
- <pointer-type-def type-id='type-id-655' size-in-bits='64' id='type-id-656'/>
- <typedef-decl name='CK_C_OpenSession' type-id='type-id-656' id='type-id-558'/>
- <pointer-type-def type-id='type-id-657' size-in-bits='64' id='type-id-658'/>
- <typedef-decl name='CK_C_CloseSession' type-id='type-id-658' id='type-id-559'/>
- <pointer-type-def type-id='type-id-659' size-in-bits='64' id='type-id-660'/>
- <typedef-decl name='CK_C_CloseAllSessions' type-id='type-id-660' id='type-id-560'/>
- <class-decl name='ck_session_info' size-in-bits='256' is-struct='yes' visibility='default' id='type-id-661'>
+ <typedef-decl name='CK_C_SetPIN' type-id='type-id-652' id='type-id-560'/>
+ <typedef-decl name='ck_notification_t' type-id='type-id-38' id='type-id-653'/>
+ <pointer-type-def type-id='type-id-654' size-in-bits='64' id='type-id-655'/>
+ <typedef-decl name='ck_notify_t' type-id='type-id-655' id='type-id-656'/>
+ <pointer-type-def type-id='type-id-545' size-in-bits='64' id='type-id-657'/>
+ <pointer-type-def type-id='type-id-658' size-in-bits='64' id='type-id-659'/>
+ <typedef-decl name='CK_C_OpenSession' type-id='type-id-659' id='type-id-561'/>
+ <pointer-type-def type-id='type-id-660' size-in-bits='64' id='type-id-661'/>
+ <typedef-decl name='CK_C_CloseSession' type-id='type-id-661' id='type-id-562'/>
+ <pointer-type-def type-id='type-id-662' size-in-bits='64' id='type-id-663'/>
+ <typedef-decl name='CK_C_CloseAllSessions' type-id='type-id-663' id='type-id-563'/>
+ <class-decl name='ck_session_info' size-in-bits='256' is-struct='yes' visibility='default' id='type-id-664'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='slot_id' type-id='type-id-543' visibility='default'/>
+ <var-decl name='slot_id' type-id='type-id-546' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='state' type-id='type-id-662' visibility='default'/>
+ <var-decl name='state' type-id='type-id-665' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='flags' type-id='type-id-618' visibility='default'/>
+ <var-decl name='flags' type-id='type-id-621' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
<var-decl name='device_error' type-id='type-id-38' visibility='default'/>
</data-member>
</class-decl>
- <typedef-decl name='ck_state_t' type-id='type-id-38' id='type-id-662'/>
- <pointer-type-def type-id='type-id-661' size-in-bits='64' id='type-id-663'/>
- <pointer-type-def type-id='type-id-664' size-in-bits='64' id='type-id-665'/>
- <typedef-decl name='CK_C_GetSessionInfo' type-id='type-id-665' id='type-id-561'/>
- <pointer-type-def type-id='type-id-666' size-in-bits='64' id='type-id-667'/>
- <typedef-decl name='CK_C_GetOperationState' type-id='type-id-667' id='type-id-562'/>
- <typedef-decl name='ck_object_handle_t' type-id='type-id-38' id='type-id-537'/>
- <pointer-type-def type-id='type-id-668' size-in-bits='64' id='type-id-669'/>
- <typedef-decl name='CK_C_SetOperationState' type-id='type-id-669' id='type-id-563'/>
- <typedef-decl name='ck_user_type_t' type-id='type-id-38' id='type-id-670'/>
+ <typedef-decl name='ck_state_t' type-id='type-id-38' id='type-id-665'/>
+ <pointer-type-def type-id='type-id-664' size-in-bits='64' id='type-id-666'/>
+ <pointer-type-def type-id='type-id-667' size-in-bits='64' id='type-id-668'/>
+ <typedef-decl name='CK_C_GetSessionInfo' type-id='type-id-668' id='type-id-564'/>
+ <pointer-type-def type-id='type-id-669' size-in-bits='64' id='type-id-670'/>
+ <typedef-decl name='CK_C_GetOperationState' type-id='type-id-670' id='type-id-565'/>
+ <typedef-decl name='ck_object_handle_t' type-id='type-id-38' id='type-id-540'/>
<pointer-type-def type-id='type-id-671' size-in-bits='64' id='type-id-672'/>
- <typedef-decl name='CK_C_Login' type-id='type-id-672' id='type-id-564'/>
- <typedef-decl name='CK_C_Logout' type-id='type-id-658' id='type-id-565'/>
- <class-decl name='ck_attribute' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-673'>
+ <typedef-decl name='CK_C_SetOperationState' type-id='type-id-672' id='type-id-566'/>
+ <typedef-decl name='ck_user_type_t' type-id='type-id-38' id='type-id-673'/>
+ <pointer-type-def type-id='type-id-674' size-in-bits='64' id='type-id-675'/>
+ <typedef-decl name='CK_C_Login' type-id='type-id-675' id='type-id-567'/>
+ <typedef-decl name='CK_C_Logout' type-id='type-id-661' id='type-id-568'/>
+ <class-decl name='ck_attribute' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-676'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='type' type-id='type-id-674' visibility='default'/>
+ <var-decl name='type' type-id='type-id-677' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='value' type-id='type-id-101' visibility='default'/>
@@ -7611,28 +7664,28 @@
<var-decl name='value_len' type-id='type-id-38' visibility='default'/>
</data-member>
</class-decl>
- <typedef-decl name='ck_attribute_type_t' type-id='type-id-38' id='type-id-674'/>
- <pointer-type-def type-id='type-id-673' size-in-bits='64' id='type-id-675'/>
- <pointer-type-def type-id='type-id-537' size-in-bits='64' id='type-id-676'/>
- <pointer-type-def type-id='type-id-677' size-in-bits='64' id='type-id-678'/>
- <typedef-decl name='CK_C_CreateObject' type-id='type-id-678' id='type-id-566'/>
- <pointer-type-def type-id='type-id-679' size-in-bits='64' id='type-id-680'/>
- <typedef-decl name='CK_C_CopyObject' type-id='type-id-680' id='type-id-567'/>
- <pointer-type-def type-id='type-id-681' size-in-bits='64' id='type-id-682'/>
- <typedef-decl name='CK_C_DestroyObject' type-id='type-id-682' id='type-id-568'/>
- <pointer-type-def type-id='type-id-683' size-in-bits='64' id='type-id-684'/>
- <typedef-decl name='CK_C_GetObjectSize' type-id='type-id-684' id='type-id-569'/>
- <pointer-type-def type-id='type-id-685' size-in-bits='64' id='type-id-686'/>
- <typedef-decl name='CK_C_GetAttributeValue' type-id='type-id-686' id='type-id-570'/>
- <typedef-decl name='CK_C_SetAttributeValue' type-id='type-id-686' id='type-id-571'/>
- <pointer-type-def type-id='type-id-687' size-in-bits='64' id='type-id-688'/>
- <typedef-decl name='CK_C_FindObjectsInit' type-id='type-id-688' id='type-id-572'/>
- <pointer-type-def type-id='type-id-689' size-in-bits='64' id='type-id-690'/>
- <typedef-decl name='CK_C_FindObjects' type-id='type-id-690' id='type-id-573'/>
- <typedef-decl name='CK_C_FindObjectsFinal' type-id='type-id-658' id='type-id-574'/>
- <class-decl name='ck_mechanism' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-691'>
+ <typedef-decl name='ck_attribute_type_t' type-id='type-id-38' id='type-id-677'/>
+ <pointer-type-def type-id='type-id-676' size-in-bits='64' id='type-id-678'/>
+ <pointer-type-def type-id='type-id-540' size-in-bits='64' id='type-id-679'/>
+ <pointer-type-def type-id='type-id-680' size-in-bits='64' id='type-id-681'/>
+ <typedef-decl name='CK_C_CreateObject' type-id='type-id-681' id='type-id-569'/>
+ <pointer-type-def type-id='type-id-682' size-in-bits='64' id='type-id-683'/>
+ <typedef-decl name='CK_C_CopyObject' type-id='type-id-683' id='type-id-570'/>
+ <pointer-type-def type-id='type-id-684' size-in-bits='64' id='type-id-685'/>
+ <typedef-decl name='CK_C_DestroyObject' type-id='type-id-685' id='type-id-571'/>
+ <pointer-type-def type-id='type-id-686' size-in-bits='64' id='type-id-687'/>
+ <typedef-decl name='CK_C_GetObjectSize' type-id='type-id-687' id='type-id-572'/>
+ <pointer-type-def type-id='type-id-688' size-in-bits='64' id='type-id-689'/>
+ <typedef-decl name='CK_C_GetAttributeValue' type-id='type-id-689' id='type-id-573'/>
+ <typedef-decl name='CK_C_SetAttributeValue' type-id='type-id-689' id='type-id-574'/>
+ <pointer-type-def type-id='type-id-690' size-in-bits='64' id='type-id-691'/>
+ <typedef-decl name='CK_C_FindObjectsInit' type-id='type-id-691' id='type-id-575'/>
+ <pointer-type-def type-id='type-id-692' size-in-bits='64' id='type-id-693'/>
+ <typedef-decl name='CK_C_FindObjects' type-id='type-id-693' id='type-id-576'/>
+ <typedef-decl name='CK_C_FindObjectsFinal' type-id='type-id-661' id='type-id-577'/>
+ <class-decl name='ck_mechanism' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-694'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='mechanism' type-id='type-id-636' visibility='default'/>
+ <var-decl name='mechanism' type-id='type-id-639' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='parameter' type-id='type-id-101' visibility='default'/>
@@ -7641,67 +7694,67 @@
<var-decl name='parameter_len' type-id='type-id-38' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-691' size-in-bits='64' id='type-id-692'/>
- <pointer-type-def type-id='type-id-693' size-in-bits='64' id='type-id-694'/>
- <typedef-decl name='CK_C_EncryptInit' type-id='type-id-694' id='type-id-575'/>
- <pointer-type-def type-id='type-id-695' size-in-bits='64' id='type-id-696'/>
- <typedef-decl name='CK_C_Encrypt' type-id='type-id-696' id='type-id-576'/>
- <typedef-decl name='CK_C_EncryptUpdate' type-id='type-id-696' id='type-id-577'/>
- <typedef-decl name='CK_C_EncryptFinal' type-id='type-id-667' id='type-id-578'/>
- <typedef-decl name='CK_C_DecryptInit' type-id='type-id-694' id='type-id-579'/>
- <typedef-decl name='CK_C_Decrypt' type-id='type-id-696' id='type-id-580'/>
- <typedef-decl name='CK_C_DecryptUpdate' type-id='type-id-696' id='type-id-581'/>
- <typedef-decl name='CK_C_DecryptFinal' type-id='type-id-667' id='type-id-582'/>
- <pointer-type-def type-id='type-id-697' size-in-bits='64' id='type-id-698'/>
- <typedef-decl name='CK_C_DigestInit' type-id='type-id-698' id='type-id-583'/>
- <typedef-decl name='CK_C_Digest' type-id='type-id-696' id='type-id-584'/>
- <typedef-decl name='CK_C_DigestUpdate' type-id='type-id-647' id='type-id-585'/>
- <typedef-decl name='CK_C_DigestKey' type-id='type-id-682' id='type-id-586'/>
- <typedef-decl name='CK_C_DigestFinal' type-id='type-id-667' id='type-id-587'/>
- <typedef-decl name='CK_C_SignInit' type-id='type-id-694' id='type-id-588'/>
- <typedef-decl name='CK_C_Sign' type-id='type-id-696' id='type-id-589'/>
- <typedef-decl name='CK_C_SignUpdate' type-id='type-id-647' id='type-id-590'/>
- <typedef-decl name='CK_C_SignFinal' type-id='type-id-667' id='type-id-591'/>
- <typedef-decl name='CK_C_SignRecoverInit' type-id='type-id-694' id='type-id-592'/>
- <typedef-decl name='CK_C_SignRecover' type-id='type-id-696' id='type-id-593'/>
- <typedef-decl name='CK_C_VerifyInit' type-id='type-id-694' id='type-id-594'/>
- <typedef-decl name='CK_C_Verify' type-id='type-id-649' id='type-id-595'/>
- <typedef-decl name='CK_C_VerifyUpdate' type-id='type-id-647' id='type-id-596'/>
- <typedef-decl name='CK_C_VerifyFinal' type-id='type-id-647' id='type-id-597'/>
- <typedef-decl name='CK_C_VerifyRecoverInit' type-id='type-id-694' id='type-id-598'/>
- <typedef-decl name='CK_C_VerifyRecover' type-id='type-id-696' id='type-id-599'/>
- <typedef-decl name='CK_C_DigestEncryptUpdate' type-id='type-id-696' id='type-id-600'/>
- <typedef-decl name='CK_C_DecryptDigestUpdate' type-id='type-id-696' id='type-id-601'/>
- <typedef-decl name='CK_C_SignEncryptUpdate' type-id='type-id-696' id='type-id-602'/>
- <typedef-decl name='CK_C_DecryptVerifyUpdate' type-id='type-id-696' id='type-id-603'/>
- <pointer-type-def type-id='type-id-699' size-in-bits='64' id='type-id-700'/>
- <typedef-decl name='CK_C_GenerateKey' type-id='type-id-700' id='type-id-604'/>
- <pointer-type-def type-id='type-id-701' size-in-bits='64' id='type-id-702'/>
- <typedef-decl name='CK_C_GenerateKeyPair' type-id='type-id-702' id='type-id-605'/>
- <pointer-type-def type-id='type-id-703' size-in-bits='64' id='type-id-704'/>
- <typedef-decl name='CK_C_WrapKey' type-id='type-id-704' id='type-id-606'/>
- <pointer-type-def type-id='type-id-705' size-in-bits='64' id='type-id-706'/>
- <typedef-decl name='CK_C_UnwrapKey' type-id='type-id-706' id='type-id-607'/>
- <pointer-type-def type-id='type-id-707' size-in-bits='64' id='type-id-708'/>
- <typedef-decl name='CK_C_DeriveKey' type-id='type-id-708' id='type-id-608'/>
- <typedef-decl name='CK_C_SeedRandom' type-id='type-id-647' id='type-id-609'/>
- <typedef-decl name='CK_C_GenerateRandom' type-id='type-id-647' id='type-id-610'/>
- <typedef-decl name='CK_C_GetFunctionStatus' type-id='type-id-658' id='type-id-611'/>
- <typedef-decl name='CK_C_CancelFunction' type-id='type-id-658' id='type-id-612'/>
- <pointer-type-def type-id='type-id-709' size-in-bits='64' id='type-id-710'/>
- <typedef-decl name='CK_C_WaitForSlotEvent' type-id='type-id-710' id='type-id-613'/>
+ <pointer-type-def type-id='type-id-694' size-in-bits='64' id='type-id-695'/>
+ <pointer-type-def type-id='type-id-696' size-in-bits='64' id='type-id-697'/>
+ <typedef-decl name='CK_C_EncryptInit' type-id='type-id-697' id='type-id-578'/>
+ <pointer-type-def type-id='type-id-698' size-in-bits='64' id='type-id-699'/>
+ <typedef-decl name='CK_C_Encrypt' type-id='type-id-699' id='type-id-579'/>
+ <typedef-decl name='CK_C_EncryptUpdate' type-id='type-id-699' id='type-id-580'/>
+ <typedef-decl name='CK_C_EncryptFinal' type-id='type-id-670' id='type-id-581'/>
+ <typedef-decl name='CK_C_DecryptInit' type-id='type-id-697' id='type-id-582'/>
+ <typedef-decl name='CK_C_Decrypt' type-id='type-id-699' id='type-id-583'/>
+ <typedef-decl name='CK_C_DecryptUpdate' type-id='type-id-699' id='type-id-584'/>
+ <typedef-decl name='CK_C_DecryptFinal' type-id='type-id-670' id='type-id-585'/>
+ <pointer-type-def type-id='type-id-700' size-in-bits='64' id='type-id-701'/>
+ <typedef-decl name='CK_C_DigestInit' type-id='type-id-701' id='type-id-586'/>
+ <typedef-decl name='CK_C_Digest' type-id='type-id-699' id='type-id-587'/>
+ <typedef-decl name='CK_C_DigestUpdate' type-id='type-id-650' id='type-id-588'/>
+ <typedef-decl name='CK_C_DigestKey' type-id='type-id-685' id='type-id-589'/>
+ <typedef-decl name='CK_C_DigestFinal' type-id='type-id-670' id='type-id-590'/>
+ <typedef-decl name='CK_C_SignInit' type-id='type-id-697' id='type-id-591'/>
+ <typedef-decl name='CK_C_Sign' type-id='type-id-699' id='type-id-592'/>
+ <typedef-decl name='CK_C_SignUpdate' type-id='type-id-650' id='type-id-593'/>
+ <typedef-decl name='CK_C_SignFinal' type-id='type-id-670' id='type-id-594'/>
+ <typedef-decl name='CK_C_SignRecoverInit' type-id='type-id-697' id='type-id-595'/>
+ <typedef-decl name='CK_C_SignRecover' type-id='type-id-699' id='type-id-596'/>
+ <typedef-decl name='CK_C_VerifyInit' type-id='type-id-697' id='type-id-597'/>
+ <typedef-decl name='CK_C_Verify' type-id='type-id-652' id='type-id-598'/>
+ <typedef-decl name='CK_C_VerifyUpdate' type-id='type-id-650' id='type-id-599'/>
+ <typedef-decl name='CK_C_VerifyFinal' type-id='type-id-650' id='type-id-600'/>
+ <typedef-decl name='CK_C_VerifyRecoverInit' type-id='type-id-697' id='type-id-601'/>
+ <typedef-decl name='CK_C_VerifyRecover' type-id='type-id-699' id='type-id-602'/>
+ <typedef-decl name='CK_C_DigestEncryptUpdate' type-id='type-id-699' id='type-id-603'/>
+ <typedef-decl name='CK_C_DecryptDigestUpdate' type-id='type-id-699' id='type-id-604'/>
+ <typedef-decl name='CK_C_SignEncryptUpdate' type-id='type-id-699' id='type-id-605'/>
+ <typedef-decl name='CK_C_DecryptVerifyUpdate' type-id='type-id-699' id='type-id-606'/>
+ <pointer-type-def type-id='type-id-702' size-in-bits='64' id='type-id-703'/>
+ <typedef-decl name='CK_C_GenerateKey' type-id='type-id-703' id='type-id-607'/>
+ <pointer-type-def type-id='type-id-704' size-in-bits='64' id='type-id-705'/>
+ <typedef-decl name='CK_C_GenerateKeyPair' type-id='type-id-705' id='type-id-608'/>
+ <pointer-type-def type-id='type-id-706' size-in-bits='64' id='type-id-707'/>
+ <typedef-decl name='CK_C_WrapKey' type-id='type-id-707' id='type-id-609'/>
+ <pointer-type-def type-id='type-id-708' size-in-bits='64' id='type-id-709'/>
+ <typedef-decl name='CK_C_UnwrapKey' type-id='type-id-709' id='type-id-610'/>
+ <pointer-type-def type-id='type-id-710' size-in-bits='64' id='type-id-711'/>
+ <typedef-decl name='CK_C_DeriveKey' type-id='type-id-711' id='type-id-611'/>
+ <typedef-decl name='CK_C_SeedRandom' type-id='type-id-650' id='type-id-612'/>
+ <typedef-decl name='CK_C_GenerateRandom' type-id='type-id-650' id='type-id-613'/>
+ <typedef-decl name='CK_C_GetFunctionStatus' type-id='type-id-661' id='type-id-614'/>
+ <typedef-decl name='CK_C_CancelFunction' type-id='type-id-661' id='type-id-615'/>
+ <pointer-type-def type-id='type-id-712' size-in-bits='64' id='type-id-713'/>
+ <typedef-decl name='CK_C_WaitForSlotEvent' type-id='type-id-713' id='type-id-616'/>
<function-decl name='gnutls_privkey_import_gost_raw' mangled-name='gnutls_privkey_import_gost_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_import_gost_raw@@GNUTLS_3_6_3'>
- <parameter type-id='type-id-401' name='key'/>
+ <parameter type-id='type-id-404' name='key'/>
<parameter type-id='type-id-59' name='curve'/>
- <parameter type-id='type-id-211' name='digest'/>
- <parameter type-id='type-id-315' name='paramset'/>
+ <parameter type-id='type-id-212' name='digest'/>
+ <parameter type-id='type-id-318' name='paramset'/>
<parameter type-id='type-id-57' name='x'/>
<parameter type-id='type-id-57' name='y'/>
<parameter type-id='type-id-57' name='k'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_privkey_import_ecc_raw' mangled-name='gnutls_privkey_import_ecc_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_import_ecc_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-401' name='key'/>
+ <parameter type-id='type-id-404' name='key'/>
<parameter type-id='type-id-59' name='curve'/>
<parameter type-id='type-id-57' name='x'/>
<parameter type-id='type-id-57' name='y'/>
@@ -7709,7 +7762,7 @@
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_privkey_import_dsa_raw' mangled-name='gnutls_privkey_import_dsa_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_import_dsa_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-401' name='key'/>
+ <parameter type-id='type-id-404' name='key'/>
<parameter type-id='type-id-57' name='p'/>
<parameter type-id='type-id-57' name='q'/>
<parameter type-id='type-id-57' name='g'/>
@@ -7718,7 +7771,7 @@
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_privkey_import_rsa_raw' mangled-name='gnutls_privkey_import_rsa_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_import_rsa_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-401' name='key'/>
+ <parameter type-id='type-id-404' name='key'/>
<parameter type-id='type-id-57' name='m'/>
<parameter type-id='type-id-57' name='e'/>
<parameter type-id='type-id-57' name='d'/>
@@ -7729,77 +7782,77 @@
<parameter type-id='type-id-57' name='e2'/>
<return type-id='type-id-22'/>
</function-decl>
- <pointer-type-def type-id='type-id-59' size-in-bits='64' id='type-id-711'/>
- <pointer-type-def type-id='type-id-315' size-in-bits='64' id='type-id-712'/>
+ <pointer-type-def type-id='type-id-59' size-in-bits='64' id='type-id-714'/>
+ <pointer-type-def type-id='type-id-318' size-in-bits='64' id='type-id-715'/>
<function-decl name='gnutls_privkey_export_gost_raw2' mangled-name='gnutls_privkey_export_gost_raw2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_export_gost_raw2@@GNUTLS_3_6_3'>
- <parameter type-id='type-id-401' name='key'/>
- <parameter type-id='type-id-711' name='curve'/>
- <parameter type-id='type-id-431' name='digest'/>
- <parameter type-id='type-id-712' name='paramset'/>
- <parameter type-id='type-id-275' name='x'/>
- <parameter type-id='type-id-275' name='y'/>
- <parameter type-id='type-id-275' name='k'/>
+ <parameter type-id='type-id-404' name='key'/>
+ <parameter type-id='type-id-714' name='curve'/>
+ <parameter type-id='type-id-434' name='digest'/>
+ <parameter type-id='type-id-715' name='paramset'/>
+ <parameter type-id='type-id-278' name='x'/>
+ <parameter type-id='type-id-278' name='y'/>
+ <parameter type-id='type-id-278' name='k'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_privkey_export_ecc_raw' mangled-name='gnutls_privkey_export_ecc_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_export_ecc_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-401' name='key'/>
- <parameter type-id='type-id-711' name='curve'/>
- <parameter type-id='type-id-275' name='x'/>
- <parameter type-id='type-id-275' name='y'/>
- <parameter type-id='type-id-275' name='k'/>
+ <parameter type-id='type-id-404' name='key'/>
+ <parameter type-id='type-id-714' name='curve'/>
+ <parameter type-id='type-id-278' name='x'/>
+ <parameter type-id='type-id-278' name='y'/>
+ <parameter type-id='type-id-278' name='k'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_privkey_export_dsa_raw' mangled-name='gnutls_privkey_export_dsa_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_export_dsa_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-401' name='key'/>
- <parameter type-id='type-id-275' name='p'/>
- <parameter type-id='type-id-275' name='q'/>
- <parameter type-id='type-id-275' name='g'/>
- <parameter type-id='type-id-275' name='y'/>
- <parameter type-id='type-id-275' name='x'/>
+ <parameter type-id='type-id-404' name='key'/>
+ <parameter type-id='type-id-278' name='p'/>
+ <parameter type-id='type-id-278' name='q'/>
+ <parameter type-id='type-id-278' name='g'/>
+ <parameter type-id='type-id-278' name='y'/>
+ <parameter type-id='type-id-278' name='x'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_privkey_export_rsa_raw' mangled-name='gnutls_privkey_export_rsa_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_export_rsa_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-401' name='key'/>
- <parameter type-id='type-id-275' name='m'/>
- <parameter type-id='type-id-275' name='e'/>
- <parameter type-id='type-id-275' name='d'/>
- <parameter type-id='type-id-275' name='p'/>
- <parameter type-id='type-id-275' name='q'/>
- <parameter type-id='type-id-275' name='u'/>
- <parameter type-id='type-id-275' name='e1'/>
- <parameter type-id='type-id-275' name='e2'/>
+ <parameter type-id='type-id-404' name='key'/>
+ <parameter type-id='type-id-278' name='m'/>
+ <parameter type-id='type-id-278' name='e'/>
+ <parameter type-id='type-id-278' name='d'/>
+ <parameter type-id='type-id-278' name='p'/>
+ <parameter type-id='type-id-278' name='q'/>
+ <parameter type-id='type-id-278' name='u'/>
+ <parameter type-id='type-id-278' name='e1'/>
+ <parameter type-id='type-id-278' name='e2'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_privkey_export_rsa_raw2' mangled-name='gnutls_privkey_export_rsa_raw2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_export_rsa_raw2@@GNUTLS_3_6_0'>
- <parameter type-id='type-id-401' name='key'/>
- <parameter type-id='type-id-275' name='m'/>
- <parameter type-id='type-id-275' name='e'/>
- <parameter type-id='type-id-275' name='d'/>
- <parameter type-id='type-id-275' name='p'/>
- <parameter type-id='type-id-275' name='q'/>
- <parameter type-id='type-id-275' name='u'/>
- <parameter type-id='type-id-275' name='e1'/>
- <parameter type-id='type-id-275' name='e2'/>
+ <parameter type-id='type-id-404' name='key'/>
+ <parameter type-id='type-id-278' name='m'/>
+ <parameter type-id='type-id-278' name='e'/>
+ <parameter type-id='type-id-278' name='d'/>
+ <parameter type-id='type-id-278' name='p'/>
+ <parameter type-id='type-id-278' name='q'/>
+ <parameter type-id='type-id-278' name='u'/>
+ <parameter type-id='type-id-278' name='e1'/>
+ <parameter type-id='type-id-278' name='e2'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_privkey_export_dsa_raw2' mangled-name='gnutls_privkey_export_dsa_raw2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_export_dsa_raw2@@GNUTLS_3_6_0'>
- <parameter type-id='type-id-401' name='key'/>
- <parameter type-id='type-id-275' name='p'/>
- <parameter type-id='type-id-275' name='q'/>
- <parameter type-id='type-id-275' name='g'/>
- <parameter type-id='type-id-275' name='y'/>
- <parameter type-id='type-id-275' name='x'/>
+ <parameter type-id='type-id-404' name='key'/>
+ <parameter type-id='type-id-278' name='p'/>
+ <parameter type-id='type-id-278' name='q'/>
+ <parameter type-id='type-id-278' name='g'/>
+ <parameter type-id='type-id-278' name='y'/>
+ <parameter type-id='type-id-278' name='x'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_privkey_export_ecc_raw2' mangled-name='gnutls_privkey_export_ecc_raw2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_export_ecc_raw2@@GNUTLS_3_6_0'>
- <parameter type-id='type-id-401' name='key'/>
- <parameter type-id='type-id-711' name='curve'/>
- <parameter type-id='type-id-275' name='x'/>
- <parameter type-id='type-id-275' name='y'/>
- <parameter type-id='type-id-275' name='k'/>
+ <parameter type-id='type-id-404' name='key'/>
+ <parameter type-id='type-id-714' name='curve'/>
+ <parameter type-id='type-id-278' name='x'/>
+ <parameter type-id='type-id-278' name='y'/>
+ <parameter type-id='type-id-278' name='k'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
@@ -7836,241 +7889,241 @@
<function-decl name='_gnutls_params_get_ecc_raw' mangled-name='_gnutls_params_get_ecc_raw' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
+ <function-type size-in-bits='64' id='type-id-626'>
+ <parameter type-id='type-id-625'/>
+ <return type-id='type-id-617'/>
+ </function-type>
<function-type size-in-bits='64' id='type-id-623'>
<parameter type-id='type-id-622'/>
- <return type-id='type-id-614'/>
- </function-type>
- <function-type size-in-bits='64' id='type-id-620'>
- <parameter type-id='type-id-619'/>
- <return type-id='type-id-614'/>
+ <return type-id='type-id-617'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-709'>
- <parameter type-id='type-id-618'/>
- <parameter type-id='type-id-625'/>
+ <function-type size-in-bits='64' id='type-id-712'>
+ <parameter type-id='type-id-621'/>
+ <parameter type-id='type-id-628'/>
<parameter type-id='type-id-101'/>
- <return type-id='type-id-614'/>
+ <return type-id='type-id-617'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-657'>
- <parameter type-id='type-id-542'/>
- <return type-id='type-id-614'/>
+ <function-type size-in-bits='64' id='type-id-660'>
+ <parameter type-id='type-id-545'/>
+ <return type-id='type-id-617'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-687'>
- <parameter type-id='type-id-542'/>
- <parameter type-id='type-id-675'/>
+ <function-type size-in-bits='64' id='type-id-690'>
+ <parameter type-id='type-id-545'/>
+ <parameter type-id='type-id-678'/>
<parameter type-id='type-id-38'/>
- <return type-id='type-id-614'/>
+ <return type-id='type-id-617'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-677'>
- <parameter type-id='type-id-542'/>
- <parameter type-id='type-id-675'/>
+ <function-type size-in-bits='64' id='type-id-680'>
+ <parameter type-id='type-id-545'/>
+ <parameter type-id='type-id-678'/>
<parameter type-id='type-id-38'/>
- <parameter type-id='type-id-676'/>
- <return type-id='type-id-614'/>
+ <parameter type-id='type-id-679'/>
+ <return type-id='type-id-617'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-697'>
- <parameter type-id='type-id-542'/>
- <parameter type-id='type-id-692'/>
- <return type-id='type-id-614'/>
+ <function-type size-in-bits='64' id='type-id-700'>
+ <parameter type-id='type-id-545'/>
+ <parameter type-id='type-id-695'/>
+ <return type-id='type-id-617'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-701'>
- <parameter type-id='type-id-542'/>
- <parameter type-id='type-id-692'/>
- <parameter type-id='type-id-675'/>
+ <function-type size-in-bits='64' id='type-id-704'>
+ <parameter type-id='type-id-545'/>
+ <parameter type-id='type-id-695'/>
+ <parameter type-id='type-id-678'/>
<parameter type-id='type-id-38'/>
- <parameter type-id='type-id-675'/>
+ <parameter type-id='type-id-678'/>
<parameter type-id='type-id-38'/>
- <parameter type-id='type-id-676'/>
- <parameter type-id='type-id-676'/>
- <return type-id='type-id-614'/>
+ <parameter type-id='type-id-679'/>
+ <parameter type-id='type-id-679'/>
+ <return type-id='type-id-617'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-699'>
- <parameter type-id='type-id-542'/>
- <parameter type-id='type-id-692'/>
- <parameter type-id='type-id-675'/>
+ <function-type size-in-bits='64' id='type-id-702'>
+ <parameter type-id='type-id-545'/>
+ <parameter type-id='type-id-695'/>
+ <parameter type-id='type-id-678'/>
<parameter type-id='type-id-38'/>
- <parameter type-id='type-id-676'/>
- <return type-id='type-id-614'/>
+ <parameter type-id='type-id-679'/>
+ <return type-id='type-id-617'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-693'>
- <parameter type-id='type-id-542'/>
- <parameter type-id='type-id-692'/>
- <parameter type-id='type-id-537'/>
- <return type-id='type-id-614'/>
+ <function-type size-in-bits='64' id='type-id-696'>
+ <parameter type-id='type-id-545'/>
+ <parameter type-id='type-id-695'/>
+ <parameter type-id='type-id-540'/>
+ <return type-id='type-id-617'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-707'>
- <parameter type-id='type-id-542'/>
- <parameter type-id='type-id-692'/>
- <parameter type-id='type-id-537'/>
- <parameter type-id='type-id-675'/>
+ <function-type size-in-bits='64' id='type-id-710'>
+ <parameter type-id='type-id-545'/>
+ <parameter type-id='type-id-695'/>
+ <parameter type-id='type-id-540'/>
+ <parameter type-id='type-id-678'/>
<parameter type-id='type-id-38'/>
- <parameter type-id='type-id-676'/>
- <return type-id='type-id-614'/>
+ <parameter type-id='type-id-679'/>
+ <return type-id='type-id-617'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-703'>
- <parameter type-id='type-id-542'/>
- <parameter type-id='type-id-692'/>
- <parameter type-id='type-id-537'/>
- <parameter type-id='type-id-537'/>
+ <function-type size-in-bits='64' id='type-id-706'>
+ <parameter type-id='type-id-545'/>
+ <parameter type-id='type-id-695'/>
+ <parameter type-id='type-id-540'/>
+ <parameter type-id='type-id-540'/>
<parameter type-id='type-id-64'/>
- <parameter type-id='type-id-626'/>
- <return type-id='type-id-614'/>
+ <parameter type-id='type-id-629'/>
+ <return type-id='type-id-617'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-705'>
- <parameter type-id='type-id-542'/>
- <parameter type-id='type-id-692'/>
- <parameter type-id='type-id-537'/>
+ <function-type size-in-bits='64' id='type-id-708'>
+ <parameter type-id='type-id-545'/>
+ <parameter type-id='type-id-695'/>
+ <parameter type-id='type-id-540'/>
<parameter type-id='type-id-64'/>
<parameter type-id='type-id-38'/>
- <parameter type-id='type-id-675'/>
+ <parameter type-id='type-id-678'/>
<parameter type-id='type-id-38'/>
- <parameter type-id='type-id-676'/>
- <return type-id='type-id-614'/>
+ <parameter type-id='type-id-679'/>
+ <return type-id='type-id-617'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-689'>
- <parameter type-id='type-id-542'/>
- <parameter type-id='type-id-676'/>
+ <function-type size-in-bits='64' id='type-id-692'>
+ <parameter type-id='type-id-545'/>
+ <parameter type-id='type-id-679'/>
<parameter type-id='type-id-38'/>
- <parameter type-id='type-id-626'/>
- <return type-id='type-id-614'/>
+ <parameter type-id='type-id-629'/>
+ <return type-id='type-id-617'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-664'>
- <parameter type-id='type-id-542'/>
- <parameter type-id='type-id-663'/>
- <return type-id='type-id-614'/>
+ <function-type size-in-bits='64' id='type-id-667'>
+ <parameter type-id='type-id-545'/>
+ <parameter type-id='type-id-666'/>
+ <return type-id='type-id-617'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-651'>
- <parameter type-id='type-id-542'/>
- <parameter type-id='type-id-650'/>
+ <function-type size-in-bits='64' id='type-id-654'>
+ <parameter type-id='type-id-545'/>
+ <parameter type-id='type-id-653'/>
<parameter type-id='type-id-101'/>
- <return type-id='type-id-614'/>
+ <return type-id='type-id-617'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-681'>
- <parameter type-id='type-id-542'/>
- <parameter type-id='type-id-537'/>
- <return type-id='type-id-614'/>
+ <function-type size-in-bits='64' id='type-id-684'>
+ <parameter type-id='type-id-545'/>
+ <parameter type-id='type-id-540'/>
+ <return type-id='type-id-617'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-685'>
- <parameter type-id='type-id-542'/>
- <parameter type-id='type-id-537'/>
- <parameter type-id='type-id-675'/>
+ <function-type size-in-bits='64' id='type-id-688'>
+ <parameter type-id='type-id-545'/>
+ <parameter type-id='type-id-540'/>
+ <parameter type-id='type-id-678'/>
<parameter type-id='type-id-38'/>
- <return type-id='type-id-614'/>
+ <return type-id='type-id-617'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-679'>
- <parameter type-id='type-id-542'/>
- <parameter type-id='type-id-537'/>
- <parameter type-id='type-id-675'/>
+ <function-type size-in-bits='64' id='type-id-682'>
+ <parameter type-id='type-id-545'/>
+ <parameter type-id='type-id-540'/>
+ <parameter type-id='type-id-678'/>
<parameter type-id='type-id-38'/>
- <parameter type-id='type-id-676'/>
- <return type-id='type-id-614'/>
+ <parameter type-id='type-id-679'/>
+ <return type-id='type-id-617'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-683'>
- <parameter type-id='type-id-542'/>
- <parameter type-id='type-id-537'/>
- <parameter type-id='type-id-626'/>
- <return type-id='type-id-614'/>
+ <function-type size-in-bits='64' id='type-id-686'>
+ <parameter type-id='type-id-545'/>
+ <parameter type-id='type-id-540'/>
+ <parameter type-id='type-id-629'/>
+ <return type-id='type-id-617'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-671'>
- <parameter type-id='type-id-542'/>
- <parameter type-id='type-id-670'/>
+ <function-type size-in-bits='64' id='type-id-674'>
+ <parameter type-id='type-id-545'/>
+ <parameter type-id='type-id-673'/>
<parameter type-id='type-id-64'/>
<parameter type-id='type-id-38'/>
- <return type-id='type-id-614'/>
+ <return type-id='type-id-617'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-646'>
- <parameter type-id='type-id-542'/>
+ <function-type size-in-bits='64' id='type-id-649'>
+ <parameter type-id='type-id-545'/>
<parameter type-id='type-id-64'/>
<parameter type-id='type-id-38'/>
- <return type-id='type-id-614'/>
+ <return type-id='type-id-617'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-666'>
- <parameter type-id='type-id-542'/>
+ <function-type size-in-bits='64' id='type-id-669'>
+ <parameter type-id='type-id-545'/>
<parameter type-id='type-id-64'/>
- <parameter type-id='type-id-626'/>
- <return type-id='type-id-614'/>
+ <parameter type-id='type-id-629'/>
+ <return type-id='type-id-617'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-668'>
- <parameter type-id='type-id-542'/>
+ <function-type size-in-bits='64' id='type-id-671'>
+ <parameter type-id='type-id-545'/>
<parameter type-id='type-id-64'/>
<parameter type-id='type-id-38'/>
- <parameter type-id='type-id-537'/>
- <parameter type-id='type-id-537'/>
- <return type-id='type-id-614'/>
+ <parameter type-id='type-id-540'/>
+ <parameter type-id='type-id-540'/>
+ <return type-id='type-id-617'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-648'>
- <parameter type-id='type-id-542'/>
+ <function-type size-in-bits='64' id='type-id-651'>
+ <parameter type-id='type-id-545'/>
<parameter type-id='type-id-64'/>
<parameter type-id='type-id-38'/>
<parameter type-id='type-id-64'/>
<parameter type-id='type-id-38'/>
- <return type-id='type-id-614'/>
+ <return type-id='type-id-617'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-695'>
- <parameter type-id='type-id-542'/>
+ <function-type size-in-bits='64' id='type-id-698'>
+ <parameter type-id='type-id-545'/>
<parameter type-id='type-id-64'/>
<parameter type-id='type-id-38'/>
<parameter type-id='type-id-64'/>
- <parameter type-id='type-id-626'/>
- <return type-id='type-id-614'/>
- </function-type>
- <function-type size-in-bits='64' id='type-id-659'>
- <parameter type-id='type-id-543'/>
- <return type-id='type-id-614'/>
+ <parameter type-id='type-id-629'/>
+ <return type-id='type-id-617'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-638'>
- <parameter type-id='type-id-543'/>
- <parameter type-id='type-id-637'/>
- <parameter type-id='type-id-626'/>
- <return type-id='type-id-614'/>
+ <function-type size-in-bits='64' id='type-id-662'>
+ <parameter type-id='type-id-546'/>
+ <return type-id='type-id-617'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-630'>
- <parameter type-id='type-id-543'/>
+ <function-type size-in-bits='64' id='type-id-641'>
+ <parameter type-id='type-id-546'/>
+ <parameter type-id='type-id-640'/>
<parameter type-id='type-id-629'/>
- <return type-id='type-id-614'/>
+ <return type-id='type-id-617'/>
+ </function-type>
+ <function-type size-in-bits='64' id='type-id-633'>
+ <parameter type-id='type-id-546'/>
+ <parameter type-id='type-id-632'/>
+ <return type-id='type-id-617'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-634'>
- <parameter type-id='type-id-543'/>
- <parameter type-id='type-id-633'/>
- <return type-id='type-id-614'/>
+ <function-type size-in-bits='64' id='type-id-637'>
+ <parameter type-id='type-id-546'/>
+ <parameter type-id='type-id-636'/>
+ <return type-id='type-id-617'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-655'>
- <parameter type-id='type-id-543'/>
- <parameter type-id='type-id-618'/>
+ <function-type size-in-bits='64' id='type-id-658'>
+ <parameter type-id='type-id-546'/>
+ <parameter type-id='type-id-621'/>
<parameter type-id='type-id-101'/>
- <parameter type-id='type-id-653'/>
- <parameter type-id='type-id-654'/>
- <return type-id='type-id-614'/>
+ <parameter type-id='type-id-656'/>
+ <parameter type-id='type-id-657'/>
+ <return type-id='type-id-617'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-642'>
- <parameter type-id='type-id-543'/>
- <parameter type-id='type-id-636'/>
- <parameter type-id='type-id-641'/>
- <return type-id='type-id-614'/>
+ <function-type size-in-bits='64' id='type-id-645'>
+ <parameter type-id='type-id-546'/>
+ <parameter type-id='type-id-639'/>
+ <parameter type-id='type-id-644'/>
+ <return type-id='type-id-617'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-644'>
- <parameter type-id='type-id-543'/>
+ <function-type size-in-bits='64' id='type-id-647'>
+ <parameter type-id='type-id-546'/>
<parameter type-id='type-id-64'/>
<parameter type-id='type-id-38'/>
<parameter type-id='type-id-64'/>
- <return type-id='type-id-614'/>
+ <return type-id='type-id-617'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-627'>
+ <function-type size-in-bits='64' id='type-id-630'>
<parameter type-id='type-id-35'/>
- <parameter type-id='type-id-625'/>
- <parameter type-id='type-id-626'/>
- <return type-id='type-id-614'/>
+ <parameter type-id='type-id-628'/>
+ <parameter type-id='type-id-629'/>
+ <return type-id='type-id-617'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-615'>
+ <function-type size-in-bits='64' id='type-id-618'>
<parameter type-id='type-id-101'/>
- <return type-id='type-id-614'/>
+ <return type-id='type-id-617'/>
</function-type>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='system/certs.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
- <class-decl name='gnutls_x509_trust_list_st' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-713'/>
- <pointer-type-def type-id='type-id-713' size-in-bits='64' id='type-id-714'/>
- <typedef-decl name='gnutls_x509_trust_list_t' type-id='type-id-714' id='type-id-715'/>
+ <abi-instr version='1.0' address-size='64' path='system/certs.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
+ <class-decl name='gnutls_x509_trust_list_st' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-716'/>
+ <pointer-type-def type-id='type-id-716' size-in-bits='64' id='type-id-717'/>
+ <typedef-decl name='gnutls_x509_trust_list_t' type-id='type-id-717' id='type-id-718'/>
<function-decl name='gnutls_x509_trust_list_add_system_trust' mangled-name='gnutls_x509_trust_list_add_system_trust' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_trust_list_add_system_trust@@GNUTLS_3_4'>
- <parameter type-id='type-id-715' name='list'/>
+ <parameter type-id='type-id-718' name='list'/>
<parameter type-id='type-id-10' name='tl_flags'/>
<parameter type-id='type-id-10' name='tl_vflags'/>
<return type-id='type-id-22'/>
@@ -8085,7 +8138,7 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='system/threads.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='system/threads.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='pthread_mutex_destroy' mangled-name='pthread_mutex_destroy' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -8096,7 +8149,7 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='system/fastopen.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='system/fastopen.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_transport_set_pull_function' mangled-name='gnutls_transport_set_pull_function' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -8112,7 +8165,7 @@
<function-decl name='abort' mangled-name='abort' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-decl name='recv' mangled-name='recv' visibility='default' binding='global' size-in-bits='64'>
+ <function-decl name='__recv_alias' mangled-name='recv' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_system_recv_timeout' mangled-name='gnutls_system_recv_timeout' visibility='default' binding='global' size-in-bits='64'>
@@ -8128,28 +8181,28 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='system/sockets.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='system/sockets.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_system_recv_timeout' mangled-name='gnutls_system_recv_timeout' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_system_recv_timeout@@GNUTLS_3_4'>
<parameter type-id='type-id-154' name='ptr'/>
<parameter type-id='type-id-10' name='ms'/>
<return type-id='type-id-22'/>
</function-decl>
- <function-decl name='poll' mangled-name='poll' visibility='default' binding='global' size-in-bits='64'>
+ <function-decl name='__poll_alias' mangled-name='poll' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='str-iconv.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='str-iconv.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='_gnutls_utf8_to_ucs2' mangled-name='_gnutls_utf8_to_ucs2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls_utf8_to_ucs2@@GNUTLS_PRIVATE_3_4'>
<parameter type-id='type-id-101' name='data'/>
<parameter type-id='type-id-99' name='size'/>
- <parameter type-id='type-id-275' name='output'/>
+ <parameter type-id='type-id-278' name='output'/>
<parameter type-id='type-id-10' name='be'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='_gnutls_ucs2_to_utf8' mangled-name='_gnutls_ucs2_to_utf8' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls_ucs2_to_utf8@@GNUTLS_PRIVATE_3_4'>
<parameter type-id='type-id-101' name='data'/>
<parameter type-id='type-id-99' name='size'/>
- <parameter type-id='type-id-275' name='output'/>
+ <parameter type-id='type-id-278' name='output'/>
<parameter type-id='type-id-10' name='be'/>
<return type-id='type-id-22'/>
</function-decl>
@@ -8163,26 +8216,26 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='system.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
- <var-decl name='gnutls_time' type-id='type-id-517' visibility='default'/>
- <pointer-type-def type-id='type-id-168' size-in-bits='64' id='type-id-716'/>
- <pointer-type-def type-id='type-id-717' size-in-bits='64' id='type-id-718'/>
- <typedef-decl name='gnutls_gettime_func' type-id='type-id-718' id='type-id-719'/>
- <var-decl name='gnutls_gettime' type-id='type-id-719' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='system.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
+ <var-decl name='gnutls_time' type-id='type-id-520' visibility='default'/>
+ <pointer-type-def type-id='type-id-169' size-in-bits='64' id='type-id-719'/>
+ <pointer-type-def type-id='type-id-720' size-in-bits='64' id='type-id-721'/>
+ <typedef-decl name='gnutls_gettime_func' type-id='type-id-721' id='type-id-722'/>
+ <var-decl name='gnutls_gettime' type-id='type-id-722' visibility='default'/>
<function-decl name='_gnutls_global_set_gettime_function' mangled-name='_gnutls_global_set_gettime_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls_global_set_gettime_function@@GNUTLS_PRIVATE_3_4'>
- <parameter type-id='type-id-719' name='gettime_func'/>
+ <parameter type-id='type-id-722' name='gettime_func'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='clock_gettime' mangled-name='clock_gettime' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-type size-in-bits='64' id='type-id-717'>
- <parameter type-id='type-id-716'/>
+ <function-type size-in-bits='64' id='type-id-720'>
+ <parameter type-id='type-id-719'/>
<return type-id='type-id-111'/>
</function-type>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='profiles.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
- <enum-decl name='gnutls_certificate_verification_profiles_t' id='type-id-720'>
+ <abi-instr version='1.0' address-size='64' path='profiles.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
+ <enum-decl name='gnutls_certificate_verification_profiles_t' id='type-id-723'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_PROFILE_UNKNOWN' value='0'/>
<enumerator name='GNUTLS_PROFILE_VERY_WEAK' value='1'/>
@@ -8195,95 +8248,95 @@
<enumerator name='GNUTLS_PROFILE_SUITEB128' value='32'/>
<enumerator name='GNUTLS_PROFILE_SUITEB192' value='33'/>
</enum-decl>
- <typedef-decl name='gnutls_certificate_verification_profiles_t' type-id='type-id-720' id='type-id-721'/>
+ <typedef-decl name='gnutls_certificate_verification_profiles_t' type-id='type-id-723' id='type-id-724'/>
<function-decl name='gnutls_certificate_verification_profile_get_name' mangled-name='gnutls_certificate_verification_profile_get_name' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_verification_profile_get_name@@GNUTLS_3_6_12'>
- <parameter type-id='type-id-721' name='id'/>
+ <parameter type-id='type-id-724' name='id'/>
<return type-id='type-id-27'/>
</function-decl>
<function-decl name='gnutls_certificate_verification_profile_get_id' mangled-name='gnutls_certificate_verification_profile_get_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_verification_profile_get_id@@GNUTLS_3_6_12'>
<parameter type-id='type-id-27' name='name'/>
- <return type-id='type-id-721'/>
+ <return type-id='type-id-724'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='inih/ini.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
- <function-decl name='strncpy' mangled-name='strncpy' visibility='default' binding='global' size-in-bits='64'>
+ <abi-instr version='1.0' address-size='64' path='inih/ini.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
+ <function-decl name='__builtin_strncpy' mangled-name='strncpy' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='__ctype_b_loc' mangled-name='__ctype_b_loc' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='str.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='str.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_hex_encode2' mangled-name='gnutls_hex_encode2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_hex_encode2@@GNUTLS_3_4'>
<parameter type-id='type-id-57' name='data'/>
- <parameter type-id='type-id-275' name='result'/>
+ <parameter type-id='type-id-278' name='result'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_hex_encode' mangled-name='gnutls_hex_encode' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_hex_encode@@GNUTLS_3_4'>
<parameter type-id='type-id-57' name='data'/>
- <parameter type-id='type-id-376' name='result'/>
- <parameter type-id='type-id-422' name='result_size'/>
+ <parameter type-id='type-id-379' name='result'/>
+ <parameter type-id='type-id-425' name='result_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_hex_decode' mangled-name='gnutls_hex_decode' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_hex_decode@@GNUTLS_3_4'>
<parameter type-id='type-id-57' name='hex_data'/>
<parameter type-id='type-id-101' name='result'/>
- <parameter type-id='type-id-422' name='result_size'/>
+ <parameter type-id='type-id-425' name='result_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_hex_decode2' mangled-name='gnutls_hex_decode2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_hex_decode2@@GNUTLS_3_4'>
<parameter type-id='type-id-57' name='hex_data'/>
- <parameter type-id='type-id-275' name='result'/>
+ <parameter type-id='type-id-278' name='result'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_hex2bin' mangled-name='gnutls_hex2bin' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_hex2bin@@GNUTLS_3_4'>
<parameter type-id='type-id-27' name='hex_data'/>
<parameter type-id='type-id-99' name='hex_size'/>
<parameter type-id='type-id-101' name='bin_data'/>
- <parameter type-id='type-id-422' name='bin_size'/>
+ <parameter type-id='type-id-425' name='bin_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='_gnutls_bin2hex' mangled-name='_gnutls_bin2hex' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls_bin2hex@@GNUTLS_PRIVATE_3_4'>
<parameter type-id='type-id-101' name='_old'/>
<parameter type-id='type-id-99' name='oldlen'/>
- <parameter type-id='type-id-376' name='buffer'/>
+ <parameter type-id='type-id-379' name='buffer'/>
<parameter type-id='type-id-99' name='buffer_size'/>
<parameter type-id='type-id-27' name='separator'/>
- <return type-id='type-id-376'/>
+ <return type-id='type-id-379'/>
</function-decl>
<function-decl name='_gnutls_buffer_unescape' mangled-name='_gnutls_buffer_unescape' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls_buffer_unescape@@GNUTLS_PRIVATE_3_4'>
- <parameter type-id='type-id-237' name='dest'/>
+ <parameter type-id='type-id-238' name='dest'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='_gnutls_buffer_to_datum' mangled-name='_gnutls_buffer_to_datum' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls_buffer_to_datum@@GNUTLS_PRIVATE_3_4'>
- <parameter type-id='type-id-237' name='str'/>
- <parameter type-id='type-id-275' name='data'/>
+ <parameter type-id='type-id-238' name='str'/>
+ <parameter type-id='type-id-278' name='data'/>
<parameter type-id='type-id-10' name='is_str'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='_gnutls_buffer_pop_datum' mangled-name='_gnutls_buffer_pop_datum' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls_buffer_pop_datum@@GNUTLS_PRIVATE_3_4'>
- <parameter type-id='type-id-237' name='str'/>
- <parameter type-id='type-id-275' name='data'/>
+ <parameter type-id='type-id-238' name='str'/>
+ <parameter type-id='type-id-278' name='data'/>
<parameter type-id='type-id-99' name='req_size'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='_gnutls_buffer_append_str' mangled-name='_gnutls_buffer_append_str' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls_buffer_append_str@@GNUTLS_PRIVATE_3_4'>
- <parameter type-id='type-id-237' name='dest'/>
+ <parameter type-id='type-id-238' name='dest'/>
<parameter type-id='type-id-27' name='src'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_buffer_append_data' mangled-name='gnutls_buffer_append_data' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_buffer_append_data@@GNUTLS_3_4'>
- <parameter type-id='type-id-350' name='dest'/>
+ <parameter type-id='type-id-353' name='dest'/>
<parameter type-id='type-id-101' name='data'/>
<parameter type-id='type-id-99' name='data_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='_gnutls_buffer_clear' mangled-name='_gnutls_buffer_clear' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls_buffer_clear@@GNUTLS_PRIVATE_3_4'>
- <parameter type-id='type-id-237' name='str'/>
+ <parameter type-id='type-id-238' name='str'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='_gnutls_buffer_init' mangled-name='_gnutls_buffer_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls_buffer_init@@GNUTLS_PRIVATE_3_4'>
- <parameter type-id='type-id-237' name='str'/>
+ <parameter type-id='type-id-238' name='str'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='_gnutls_mpi_dprint_lz' mangled-name='_gnutls_mpi_dprint_lz' visibility='default' binding='global' size-in-bits='64'>
@@ -8301,18 +8354,18 @@
<function-decl name='strtoul' mangled-name='strtoul' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-decl name='sprintf' mangled-name='sprintf' visibility='default' binding='global' size-in-bits='64'>
+ <function-decl name='__builtin___sprintf_chk' mangled-name='__sprintf_chk' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-decl name='strncat' mangled-name='strncat' visibility='default' binding='global' size-in-bits='64'>
+ <function-decl name='__builtin_strncat' mangled-name='strncat' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='str-unicode.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='str-unicode.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_utf8_password_normalize' mangled-name='gnutls_utf8_password_normalize' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_utf8_password_normalize@@GNUTLS_3_4'>
- <parameter type-id='type-id-346' name='password'/>
+ <parameter type-id='type-id-349' name='password'/>
<parameter type-id='type-id-10' name='plen'/>
- <parameter type-id='type-id-275' name='out'/>
+ <parameter type-id='type-id-278' name='out'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
@@ -8347,18 +8400,18 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='str-idna.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='str-idna.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_idna_reverse_map' mangled-name='gnutls_idna_reverse_map' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_idna_reverse_map@@GNUTLS_3_4'>
<parameter type-id='type-id-27' name='input'/>
<parameter type-id='type-id-10' name='ilen'/>
- <parameter type-id='type-id-275' name='out'/>
+ <parameter type-id='type-id-278' name='out'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_idna_map' mangled-name='gnutls_idna_map' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_idna_map@@GNUTLS_3_4'>
<parameter type-id='type-id-27' name='input'/>
<parameter type-id='type-id-10' name='ilen'/>
- <parameter type-id='type-id-275' name='out'/>
+ <parameter type-id='type-id-278' name='out'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
@@ -8378,169 +8431,169 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='state.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='state.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<var-decl name='_gnutls_disable_tls13' type-id='type-id-10' visibility='default'/>
<function-decl name='gnutls_session_get_flags' mangled-name='gnutls_session_get_flags' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_session_get_flags@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<return type-id='type-id-10'/>
</function-decl>
<function-decl name='gnutls_record_set_state' mangled-name='gnutls_record_set_state' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_record_set_state@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<parameter type-id='type-id-10' name='read'/>
- <parameter type-id='type-id-346' name='seq_number'/>
+ <parameter type-id='type-id-349' name='seq_number'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_record_get_state' mangled-name='gnutls_record_get_state' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_record_get_state@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<parameter type-id='type-id-10' name='read'/>
- <parameter type-id='type-id-275' name='mac_key'/>
- <parameter type-id='type-id-275' name='IV'/>
- <parameter type-id='type-id-275' name='cipher_key'/>
+ <parameter type-id='type-id-278' name='mac_key'/>
+ <parameter type-id='type-id-278' name='IV'/>
+ <parameter type-id='type-id-278' name='cipher_key'/>
<parameter type-id='type-id-64' name='seq_number'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_handshake_set_hook_function' mangled-name='gnutls_handshake_set_hook_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_handshake_set_hook_function@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<parameter type-id='type-id-10' name='htype'/>
<parameter type-id='type-id-22' name='when'/>
<parameter type-id='type-id-159' name='func'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_handshake_set_random' mangled-name='gnutls_handshake_set_random' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_handshake_set_random@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<parameter type-id='type-id-57' name='random'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_session_get_master_secret' mangled-name='gnutls_session_get_master_secret' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_session_get_master_secret@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
- <parameter type-id='type-id-275' name='secret'/>
+ <parameter type-id='type-id-416' name='session'/>
+ <parameter type-id='type-id-278' name='secret'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_session_get_random' mangled-name='gnutls_session_get_random' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_session_get_random@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
- <parameter type-id='type-id-275' name='client'/>
- <parameter type-id='type-id-275' name='server'/>
+ <parameter type-id='type-id-416' name='session'/>
+ <parameter type-id='type-id-278' name='client'/>
+ <parameter type-id='type-id-278' name='server'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_protocol_get_version' mangled-name='gnutls_protocol_get_version' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_protocol_get_version@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<return type-id='type-id-32'/>
</function-decl>
<function-decl name='gnutls_group_get' mangled-name='gnutls_group_get' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_group_get@@GNUTLS_3_6_0'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<return type-id='type-id-56'/>
</function-decl>
<function-decl name='gnutls_ecc_curve_get' mangled-name='gnutls_ecc_curve_get' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ecc_curve_get@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<return type-id='type-id-59'/>
</function-decl>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-722'>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-725'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_CB_TLS_UNIQUE' value='0'/>
</enum-decl>
- <typedef-decl name='gnutls_channel_binding_t' type-id='type-id-722' id='type-id-723'/>
+ <typedef-decl name='gnutls_channel_binding_t' type-id='type-id-725' id='type-id-726'/>
<function-decl name='gnutls_session_channel_binding' mangled-name='gnutls_session_channel_binding' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_session_channel_binding@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
- <parameter type-id='type-id-723' name='cbtype'/>
- <parameter type-id='type-id-275' name='cb'/>
+ <parameter type-id='type-id-416' name='session'/>
+ <parameter type-id='type-id-726' name='cbtype'/>
+ <parameter type-id='type-id-278' name='cb'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_session_enable_compatibility_mode' mangled-name='gnutls_session_enable_compatibility_mode' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_session_enable_compatibility_mode@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_handshake_set_post_client_hello_function' mangled-name='gnutls_handshake_set_post_client_hello_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_handshake_set_post_client_hello_function@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<parameter type-id='type-id-158' name='func'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='_gnutls_rsa_pms_set_version' mangled-name='_gnutls_rsa_pms_set_version' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls_rsa_pms_set_version@@GNUTLS_PRIVATE_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<parameter type-id='type-id-35' name='major'/>
<parameter type-id='type-id-35' name='minor'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_record_get_direction' mangled-name='gnutls_record_get_direction' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_record_get_direction@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_session_set_verify_function' mangled-name='gnutls_session_set_verify_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_session_set_verify_function@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
- <parameter type-id='type-id-171' name='func'/>
+ <parameter type-id='type-id-416' name='session'/>
+ <parameter type-id='type-id-172' name='func'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_session_set_ptr' mangled-name='gnutls_session_set_ptr' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_session_set_ptr@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<parameter type-id='type-id-101' name='ptr'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_session_get_ptr' mangled-name='gnutls_session_get_ptr' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_session_get_ptr@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<return type-id='type-id-101'/>
</function-decl>
<function-decl name='gnutls_session_resumption_requested' mangled-name='gnutls_session_resumption_requested' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_session_resumption_requested@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_session_is_resumed' mangled-name='gnutls_session_is_resumed' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_session_is_resumed@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_handshake_set_private_extensions' mangled-name='gnutls_handshake_set_private_extensions' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_handshake_set_private_extensions@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<parameter type-id='type-id-22' name='allow'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='_gnutls_hello_set_default_version' mangled-name='_gnutls_hello_set_default_version' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls_hello_set_default_version@@GNUTLS_PRIVATE_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<parameter type-id='type-id-35' name='major'/>
<parameter type-id='type-id-35' name='minor'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='_gnutls_record_set_default_version' mangled-name='_gnutls_record_set_default_version' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls_record_set_default_version@@GNUTLS_PRIVATE_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<parameter type-id='type-id-35' name='major'/>
<parameter type-id='type-id-35' name='minor'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_certificate_send_x509_rdn_sequence' mangled-name='gnutls_certificate_send_x509_rdn_sequence' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_send_x509_rdn_sequence@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<parameter type-id='type-id-22' name='allow'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_deinit' mangled-name='gnutls_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<return type-id='type-id-111'/>
</function-decl>
- <pointer-type-def type-id='type-id-413' size-in-bits='64' id='type-id-724'/>
+ <pointer-type-def type-id='type-id-416' size-in-bits='64' id='type-id-727'/>
<function-decl name='gnutls_init' mangled-name='gnutls_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_init@@GNUTLS_3_4'>
- <parameter type-id='type-id-724' name='session'/>
+ <parameter type-id='type-id-727' name='session'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_compression_get' mangled-name='gnutls_compression_get' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_compression_get@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
- <return type-id='type-id-367'/>
+ <parameter type-id='type-id-416' name='session'/>
+ <return type-id='type-id-370'/>
</function-decl>
<function-decl name='gnutls_mac_get' mangled-name='gnutls_mac_get' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_mac_get@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<return type-id='type-id-31'/>
</function-decl>
<function-decl name='gnutls_kx_get' mangled-name='gnutls_kx_get' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_kx_get@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<return type-id='type-id-30'/>
</function-decl>
<function-decl name='gnutls_certificate_type_get' mangled-name='gnutls_certificate_type_get' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_type_get@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<return type-id='type-id-19'/>
</function-decl>
<function-decl name='gnutls_cipher_get' mangled-name='gnutls_cipher_get' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_cipher_get@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<return type-id='type-id-29'/>
</function-decl>
<function-decl name='gnutls_certificate_type_get2' mangled-name='gnutls_certificate_type_get2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_type_get2@@GNUTLS_3_6_4'>
- <parameter type-id='type-id-413' name='session'/>
- <parameter type-id='type-id-429' name='target'/>
+ <parameter type-id='type-id-416' name='session'/>
+ <parameter type-id='type-id-432' name='target'/>
<return type-id='type-id-19'/>
</function-decl>
<function-decl name='gnutls_safe_renegotiation_status' mangled-name='gnutls_safe_renegotiation_status' visibility='default' binding='global' size-in-bits='64'>
@@ -8576,35 +8629,38 @@
<function-decl name='gnutls_handshake_set_max_packet_length' mangled-name='gnutls_handshake_set_max_packet_length' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
+ <function-decl name='gnutls_session_set_keylog_function' mangled-name='gnutls_session_set_keylog_function' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
<function-decl name='gnutls_ocsp_status_request_enable_client' mangled-name='gnutls_ocsp_status_request_enable_client' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='cert-cred-x509.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
- <class-decl name='gnutls_certificate_credentials_st' size-in-bits='1408' is-struct='yes' visibility='default' id='type-id-725'>
+ <abi-instr version='1.0' address-size='64' path='cert-cred-x509.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
+ <class-decl name='gnutls_certificate_credentials_st' size-in-bits='1408' is-struct='yes' visibility='default' id='type-id-728'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='dh_params' type-id='type-id-418' visibility='default'/>
+ <var-decl name='dh_params' type-id='type-id-421' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='deinit_dh_params' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='96'>
- <var-decl name='dh_sec_param' type-id='type-id-202' visibility='default'/>
+ <var-decl name='dh_sec_param' type-id='type-id-203' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='params_func' type-id='type-id-433' visibility='default'/>
+ <var-decl name='params_func' type-id='type-id-436' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='certs' type-id='type-id-434' visibility='default'/>
+ <var-decl name='certs' type-id='type-id-437' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
<var-decl name='ncerts' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='sorted_cert_idx' type-id='type-id-419' visibility='default'/>
+ <var-decl name='sorted_cert_idx' type-id='type-id-422' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='tlist' type-id='type-id-715' visibility='default'/>
+ <var-decl name='tlist' type-id='type-id-718' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
<var-decl name='flags' type-id='type-id-10' visibility='default'/>
@@ -8619,25 +8675,25 @@
<var-decl name='verify_bits' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
- <var-decl name='legacy_cert_cb1' type-id='type-id-436' visibility='default'/>
+ <var-decl name='legacy_cert_cb1' type-id='type-id-439' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='640'>
- <var-decl name='legacy_cert_cb2' type-id='type-id-437' visibility='default'/>
+ <var-decl name='legacy_cert_cb2' type-id='type-id-440' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='704'>
- <var-decl name='get_cert_callback3' type-id='type-id-438' visibility='default'/>
+ <var-decl name='get_cert_callback3' type-id='type-id-441' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='768'>
- <var-decl name='verify_callback' type-id='type-id-171' visibility='default'/>
+ <var-decl name='verify_callback' type-id='type-id-172' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='832'>
- <var-decl name='pin' type-id='type-id-374' visibility='default'/>
+ <var-decl name='pin' type-id='type-id-377' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='960'>
- <var-decl name='pin_tmp' type-id='type-id-439' visibility='default'/>
+ <var-decl name='pin_tmp' type-id='type-id-442' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1216'>
- <var-decl name='glob_ocsp_func' type-id='type-id-164' visibility='default'/>
+ <var-decl name='glob_ocsp_func' type-id='type-id-165' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1280'>
<var-decl name='glob_ocsp_func_ptr' type-id='type-id-101' visibility='default'/>
@@ -8646,47 +8702,47 @@
<var-decl name='tls13_ok' type-id='type-id-75' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-725' size-in-bits='64' id='type-id-726'/>
- <typedef-decl name='gnutls_certificate_credentials_t' type-id='type-id-726' id='type-id-727'/>
+ <pointer-type-def type-id='type-id-728' size-in-bits='64' id='type-id-729'/>
+ <typedef-decl name='gnutls_certificate_credentials_t' type-id='type-id-729' id='type-id-730'/>
<function-decl name='gnutls_certificate_set_pin_function' mangled-name='gnutls_certificate_set_pin_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_pin_function@@GNUTLS_3_4'>
- <parameter type-id='type-id-727' name='cred'/>
- <parameter type-id='type-id-375' name='fn'/>
+ <parameter type-id='type-id-730' name='cred'/>
+ <parameter type-id='type-id-378' name='fn'/>
<parameter type-id='type-id-101' name='userdata'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_certificate_free_crls' mangled-name='gnutls_certificate_free_crls' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_free_crls@@GNUTLS_3_4'>
- <parameter type-id='type-id-727' name='sc'/>
+ <parameter type-id='type-id-730' name='sc'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_certificate_set_x509_simple_pkcs12_mem' mangled-name='gnutls_certificate_set_x509_simple_pkcs12_mem' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_x509_simple_pkcs12_mem@@GNUTLS_3_4'>
- <parameter type-id='type-id-727' name='res'/>
+ <parameter type-id='type-id-730' name='res'/>
<parameter type-id='type-id-57' name='p12blob'/>
- <parameter type-id='type-id-421' name='type'/>
+ <parameter type-id='type-id-424' name='type'/>
<parameter type-id='type-id-27' name='password'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_certificate_set_x509_simple_pkcs12_file' mangled-name='gnutls_certificate_set_x509_simple_pkcs12_file' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_x509_simple_pkcs12_file@@GNUTLS_3_4'>
- <parameter type-id='type-id-727' name='res'/>
+ <parameter type-id='type-id-730' name='res'/>
<parameter type-id='type-id-27' name='pkcs12file'/>
- <parameter type-id='type-id-421' name='type'/>
+ <parameter type-id='type-id-424' name='type'/>
<parameter type-id='type-id-27' name='password'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_certificate_set_x509_crl_file' mangled-name='gnutls_certificate_set_x509_crl_file' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_x509_crl_file@@GNUTLS_3_4'>
- <parameter type-id='type-id-727' name='res'/>
+ <parameter type-id='type-id-730' name='res'/>
<parameter type-id='type-id-27' name='crlfile'/>
- <parameter type-id='type-id-421' name='type'/>
+ <parameter type-id='type-id-424' name='type'/>
<return type-id='type-id-22'/>
</function-decl>
- <class-decl name='gnutls_x509_crl_int' size-in-bits='512' is-struct='yes' visibility='default' id='type-id-728'>
+ <class-decl name='gnutls_x509_crl_int' size-in-bits='512' is-struct='yes' visibility='default' id='type-id-731'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='crl' type-id='type-id-387' visibility='default'/>
+ <var-decl name='crl' type-id='type-id-390' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='expanded' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='rcache' type-id='type-id-387' visibility='default'/>
+ <var-decl name='rcache' type-id='type-id-390' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
<var-decl name='rcache_idx' type-id='type-id-10' visibility='default'/>
@@ -8701,111 +8757,111 @@
<var-decl name='raw_issuer_dn' type-id='type-id-62' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-728' size-in-bits='64' id='type-id-729'/>
- <typedef-decl name='gnutls_x509_crl_t' type-id='type-id-729' id='type-id-730'/>
- <pointer-type-def type-id='type-id-730' size-in-bits='64' id='type-id-731'/>
+ <pointer-type-def type-id='type-id-731' size-in-bits='64' id='type-id-732'/>
+ <typedef-decl name='gnutls_x509_crl_t' type-id='type-id-732' id='type-id-733'/>
+ <pointer-type-def type-id='type-id-733' size-in-bits='64' id='type-id-734'/>
<function-decl name='gnutls_certificate_set_x509_crl' mangled-name='gnutls_certificate_set_x509_crl' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_x509_crl@@GNUTLS_3_4'>
- <parameter type-id='type-id-727' name='res'/>
- <parameter type-id='type-id-731' name='crl_list'/>
+ <parameter type-id='type-id-730' name='res'/>
+ <parameter type-id='type-id-734' name='crl_list'/>
<parameter type-id='type-id-22' name='crl_list_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_certificate_set_x509_crl_mem' mangled-name='gnutls_certificate_set_x509_crl_mem' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_x509_crl_mem@@GNUTLS_3_4'>
- <parameter type-id='type-id-727' name='res'/>
+ <parameter type-id='type-id-730' name='res'/>
<parameter type-id='type-id-57' name='CRL'/>
- <parameter type-id='type-id-421' name='type'/>
+ <parameter type-id='type-id-424' name='type'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_certificate_set_x509_system_trust' mangled-name='gnutls_certificate_set_x509_system_trust' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_x509_system_trust@@GNUTLS_3_4'>
- <parameter type-id='type-id-727' name='cred'/>
+ <parameter type-id='type-id-730' name='cred'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_certificate_set_x509_trust_dir' mangled-name='gnutls_certificate_set_x509_trust_dir' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_x509_trust_dir@@GNUTLS_3_4'>
- <parameter type-id='type-id-727' name='cred'/>
+ <parameter type-id='type-id-730' name='cred'/>
<parameter type-id='type-id-27' name='ca_dir'/>
- <parameter type-id='type-id-421' name='type'/>
+ <parameter type-id='type-id-424' name='type'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_certificate_set_x509_trust_file' mangled-name='gnutls_certificate_set_x509_trust_file' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_x509_trust_file@@GNUTLS_3_4'>
- <parameter type-id='type-id-727' name='cred'/>
+ <parameter type-id='type-id-730' name='cred'/>
<parameter type-id='type-id-27' name='ca_dir'/>
- <parameter type-id='type-id-421' name='type'/>
+ <parameter type-id='type-id-424' name='type'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_certificate_set_x509_trust' mangled-name='gnutls_certificate_set_x509_trust' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_x509_trust@@GNUTLS_3_4'>
- <parameter type-id='type-id-727' name='res'/>
- <parameter type-id='type-id-458' name='ca_list'/>
+ <parameter type-id='type-id-730' name='res'/>
+ <parameter type-id='type-id-461' name='ca_list'/>
<parameter type-id='type-id-22' name='ca_list_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_certificate_set_x509_trust_mem' mangled-name='gnutls_certificate_set_x509_trust_mem' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_x509_trust_mem@@GNUTLS_3_4'>
- <parameter type-id='type-id-727' name='res'/>
+ <parameter type-id='type-id-730' name='res'/>
<parameter type-id='type-id-57' name='ca'/>
- <parameter type-id='type-id-421' name='type'/>
+ <parameter type-id='type-id-424' name='type'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_certificate_set_x509_key_file' mangled-name='gnutls_certificate_set_x509_key_file' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_x509_key_file@@GNUTLS_3_4'>
- <parameter type-id='type-id-727' name='res'/>
+ <parameter type-id='type-id-730' name='res'/>
<parameter type-id='type-id-27' name='certfile'/>
<parameter type-id='type-id-27' name='keyfile'/>
- <parameter type-id='type-id-421' name='type'/>
+ <parameter type-id='type-id-424' name='type'/>
<return type-id='type-id-22'/>
</function-decl>
- <pointer-type-def type-id='type-id-715' size-in-bits='64' id='type-id-732'/>
+ <pointer-type-def type-id='type-id-718' size-in-bits='64' id='type-id-735'/>
<function-decl name='gnutls_certificate_get_trust_list' mangled-name='gnutls_certificate_get_trust_list' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_get_trust_list@@GNUTLS_3_4'>
- <parameter type-id='type-id-727' name='res'/>
- <parameter type-id='type-id-732' name='tlist'/>
+ <parameter type-id='type-id-730' name='res'/>
+ <parameter type-id='type-id-735' name='tlist'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_certificate_set_trust_list' mangled-name='gnutls_certificate_set_trust_list' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_trust_list@@GNUTLS_3_4'>
- <parameter type-id='type-id-727' name='res'/>
- <parameter type-id='type-id-715' name='tlist'/>
+ <parameter type-id='type-id-730' name='res'/>
+ <parameter type-id='type-id-718' name='tlist'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-111'/>
</function-decl>
- <pointer-type-def type-id='type-id-458' size-in-bits='64' id='type-id-733'/>
+ <pointer-type-def type-id='type-id-461' size-in-bits='64' id='type-id-736'/>
<function-decl name='gnutls_certificate_get_x509_crt' mangled-name='gnutls_certificate_get_x509_crt' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_get_x509_crt@@GNUTLS_3_4'>
- <parameter type-id='type-id-727' name='res'/>
+ <parameter type-id='type-id-730' name='res'/>
<parameter type-id='type-id-10' name='index'/>
- <parameter type-id='type-id-733' name='crt_list'/>
- <parameter type-id='type-id-419' name='crt_list_size'/>
+ <parameter type-id='type-id-736' name='crt_list'/>
+ <parameter type-id='type-id-422' name='crt_list_size'/>
<return type-id='type-id-22'/>
</function-decl>
- <pointer-type-def type-id='type-id-383' size-in-bits='64' id='type-id-734'/>
+ <pointer-type-def type-id='type-id-386' size-in-bits='64' id='type-id-737'/>
<function-decl name='gnutls_certificate_get_x509_key' mangled-name='gnutls_certificate_get_x509_key' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_get_x509_key@@GNUTLS_3_4'>
- <parameter type-id='type-id-727' name='res'/>
+ <parameter type-id='type-id-730' name='res'/>
<parameter type-id='type-id-10' name='index'/>
- <parameter type-id='type-id-734' name='key'/>
+ <parameter type-id='type-id-737' name='key'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_certificate_set_x509_key' mangled-name='gnutls_certificate_set_x509_key' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_x509_key@@GNUTLS_3_4'>
- <parameter type-id='type-id-727' name='res'/>
- <parameter type-id='type-id-458' name='cert_list'/>
+ <parameter type-id='type-id-730' name='res'/>
+ <parameter type-id='type-id-461' name='cert_list'/>
<parameter type-id='type-id-22' name='cert_list_size'/>
- <parameter type-id='type-id-383' name='key'/>
+ <parameter type-id='type-id-386' name='key'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_certificate_set_x509_key_mem' mangled-name='gnutls_certificate_set_x509_key_mem' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_x509_key_mem@@GNUTLS_3_4'>
- <parameter type-id='type-id-727' name='res'/>
+ <parameter type-id='type-id-730' name='res'/>
<parameter type-id='type-id-57' name='cert'/>
<parameter type-id='type-id-57' name='key'/>
- <parameter type-id='type-id-421' name='type'/>
+ <parameter type-id='type-id-424' name='type'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_certificate_set_x509_key_mem2' mangled-name='gnutls_certificate_set_x509_key_mem2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_x509_key_mem2@@GNUTLS_3_4'>
- <parameter type-id='type-id-727' name='res'/>
+ <parameter type-id='type-id-730' name='res'/>
<parameter type-id='type-id-57' name='cert'/>
<parameter type-id='type-id-57' name='key'/>
- <parameter type-id='type-id-421' name='type'/>
+ <parameter type-id='type-id-424' name='type'/>
<parameter type-id='type-id-27' name='pass'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_certificate_set_x509_key_file2' mangled-name='gnutls_certificate_set_x509_key_file2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_x509_key_file2@@GNUTLS_3_4'>
- <parameter type-id='type-id-727' name='res'/>
+ <parameter type-id='type-id-730' name='res'/>
<parameter type-id='type-id-27' name='certfile'/>
<parameter type-id='type-id-27' name='keyfile'/>
- <parameter type-id='type-id-421' name='type'/>
+ <parameter type-id='type-id-424' name='type'/>
<parameter type-id='type-id-27' name='pass'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
@@ -8901,79 +8957,79 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='file.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='file.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_load_file' mangled-name='gnutls_load_file' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_load_file@@GNUTLS_3_4'>
<parameter type-id='type-id-27' name='filename'/>
- <parameter type-id='type-id-275' name='data'/>
+ <parameter type-id='type-id-278' name='data'/>
<return type-id='type-id-22'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='supplemental.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
- <class-decl name='gnutls_supplemental_entry_st' size-in-bits='256' is-struct='yes' visibility='default' id='type-id-295'>
+ <abi-instr version='1.0' address-size='64' path='supplemental.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
+ <class-decl name='gnutls_supplemental_entry_st' size-in-bits='256' is-struct='yes' visibility='default' id='type-id-298'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='name' type-id='type-id-376' visibility='default'/>
+ <var-decl name='name' type-id='type-id-379' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='type' type-id='type-id-735' visibility='default'/>
+ <var-decl name='type' type-id='type-id-738' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='supp_recv_func' type-id='type-id-736' visibility='default'/>
+ <var-decl name='supp_recv_func' type-id='type-id-739' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='supp_send_func' type-id='type-id-737' visibility='default'/>
+ <var-decl name='supp_send_func' type-id='type-id-740' visibility='default'/>
</data-member>
</class-decl>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-738'>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-741'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_SUPPLEMENTAL_UNKNOWN' value='0'/>
</enum-decl>
- <typedef-decl name='gnutls_supplemental_data_format_type_t' type-id='type-id-738' id='type-id-735'/>
- <typedef-decl name='gnutls_supp_recv_func' type-id='type-id-348' id='type-id-736'/>
- <typedef-decl name='gnutls_supp_send_func' type-id='type-id-352' id='type-id-737'/>
+ <typedef-decl name='gnutls_supplemental_data_format_type_t' type-id='type-id-741' id='type-id-738'/>
+ <typedef-decl name='gnutls_supp_recv_func' type-id='type-id-351' id='type-id-739'/>
+ <typedef-decl name='gnutls_supp_send_func' type-id='type-id-355' id='type-id-740'/>
<function-decl name='gnutls_supplemental_send' mangled-name='gnutls_supplemental_send' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_supplemental_send@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-10' name='do_send_supplemental'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_supplemental_recv' mangled-name='gnutls_supplemental_recv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_supplemental_recv@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-10' name='do_send_supplemental'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_session_supplemental_register' mangled-name='gnutls_session_supplemental_register' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_session_supplemental_register@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-27' name='name'/>
- <parameter type-id='type-id-735' name='type'/>
- <parameter type-id='type-id-736' name='recv_func'/>
- <parameter type-id='type-id-737' name='send_func'/>
+ <parameter type-id='type-id-738' name='type'/>
+ <parameter type-id='type-id-739' name='recv_func'/>
+ <parameter type-id='type-id-740' name='send_func'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_supplemental_register' mangled-name='gnutls_supplemental_register' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_supplemental_register@@GNUTLS_3_4'>
<parameter type-id='type-id-27' name='name'/>
- <parameter type-id='type-id-735' name='type'/>
- <parameter type-id='type-id-736' name='recv_func'/>
- <parameter type-id='type-id-737' name='send_func'/>
+ <parameter type-id='type-id-738' name='type'/>
+ <parameter type-id='type-id-739' name='recv_func'/>
+ <parameter type-id='type-id-740' name='send_func'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_supplemental_get_name' mangled-name='gnutls_supplemental_get_name' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_supplemental_get_name@@GNUTLS_3_4'>
- <parameter type-id='type-id-735' name='type'/>
+ <parameter type-id='type-id-738' name='type'/>
<return type-id='type-id-27'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='random.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='random.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_rnd_refresh' mangled-name='gnutls_rnd_refresh' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_rnd_refresh@@GNUTLS_3_4'>
<return type-id='type-id-111'/>
</function-decl>
- <enum-decl name='gnutls_rnd_level' id='type-id-739'>
+ <enum-decl name='gnutls_rnd_level' id='type-id-742'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_RND_NONCE' value='0'/>
<enumerator name='GNUTLS_RND_RANDOM' value='1'/>
<enumerator name='GNUTLS_RND_KEY' value='2'/>
</enum-decl>
- <typedef-decl name='gnutls_rnd_level_t' type-id='type-id-739' id='type-id-740'/>
+ <typedef-decl name='gnutls_rnd_level_t' type-id='type-id-742' id='type-id-743'/>
<function-decl name='gnutls_rnd' mangled-name='gnutls_rnd' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_rnd@@GNUTLS_3_4'>
- <parameter type-id='type-id-740' name='level'/>
+ <parameter type-id='type-id-743' name='level'/>
<parameter type-id='type-id-101' name='data'/>
<parameter type-id='type-id-99' name='len'/>
<return type-id='type-id-22'/>
@@ -8985,52 +9041,76 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='crypto-api.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
- <pointer-type-def type-id='type-id-133' size-in-bits='64' id='type-id-741'/>
- <typedef-decl name='gnutls_aead_cipher_hd_t' type-id='type-id-741' id='type-id-742'/>
+ <abi-instr version='1.0' address-size='64' path='crypto-api.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
+ <function-decl name='gnutls_pbkdf2' mangled-name='gnutls_pbkdf2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pbkdf2@@GNUTLS_3_6_13'>
+ <parameter type-id='type-id-31' name='mac'/>
+ <parameter type-id='type-id-57' name='key'/>
+ <parameter type-id='type-id-57' name='salt'/>
+ <parameter type-id='type-id-10' name='iter_count'/>
+ <parameter type-id='type-id-101' name='output'/>
+ <parameter type-id='type-id-99' name='length'/>
+ <return type-id='type-id-22'/>
+ </function-decl>
+ <function-decl name='gnutls_hkdf_expand' mangled-name='gnutls_hkdf_expand' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_hkdf_expand@@GNUTLS_3_6_13'>
+ <parameter type-id='type-id-31' name='mac'/>
+ <parameter type-id='type-id-57' name='key'/>
+ <parameter type-id='type-id-57' name='info'/>
+ <parameter type-id='type-id-101' name='output'/>
+ <parameter type-id='type-id-99' name='length'/>
+ <return type-id='type-id-22'/>
+ </function-decl>
+ <function-decl name='gnutls_hkdf_extract' mangled-name='gnutls_hkdf_extract' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_hkdf_extract@@GNUTLS_3_6_13'>
+ <parameter type-id='type-id-31' name='mac'/>
+ <parameter type-id='type-id-57' name='key'/>
+ <parameter type-id='type-id-57' name='salt'/>
+ <parameter type-id='type-id-101' name='output'/>
+ <return type-id='type-id-22'/>
+ </function-decl>
+ <pointer-type-def type-id='type-id-133' size-in-bits='64' id='type-id-744'/>
+ <typedef-decl name='gnutls_aead_cipher_hd_t' type-id='type-id-744' id='type-id-745'/>
<function-decl name='gnutls_aead_cipher_deinit' mangled-name='gnutls_aead_cipher_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_aead_cipher_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-742' name='handle'/>
+ <parameter type-id='type-id-745' name='handle'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_aead_cipher_decryptv2' mangled-name='gnutls_aead_cipher_decryptv2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_aead_cipher_decryptv2@@GNUTLS_3_6_10'>
- <parameter type-id='type-id-742' name='handle'/>
+ <parameter type-id='type-id-745' name='handle'/>
<parameter type-id='type-id-101' name='nonce'/>
<parameter type-id='type-id-99' name='nonce_len'/>
- <parameter type-id='type-id-249' name='auth_iov'/>
+ <parameter type-id='type-id-250' name='auth_iov'/>
<parameter type-id='type-id-22' name='auth_iovcnt'/>
- <parameter type-id='type-id-249' name='iov'/>
+ <parameter type-id='type-id-250' name='iov'/>
<parameter type-id='type-id-22' name='iovcnt'/>
<parameter type-id='type-id-101' name='tag'/>
<parameter type-id='type-id-99' name='tag_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_aead_cipher_encryptv2' mangled-name='gnutls_aead_cipher_encryptv2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_aead_cipher_encryptv2@@GNUTLS_3_6_10'>
- <parameter type-id='type-id-742' name='handle'/>
+ <parameter type-id='type-id-745' name='handle'/>
<parameter type-id='type-id-101' name='nonce'/>
<parameter type-id='type-id-99' name='nonce_len'/>
- <parameter type-id='type-id-249' name='auth_iov'/>
+ <parameter type-id='type-id-250' name='auth_iov'/>
<parameter type-id='type-id-22' name='auth_iovcnt'/>
- <parameter type-id='type-id-249' name='iov'/>
+ <parameter type-id='type-id-250' name='iov'/>
<parameter type-id='type-id-22' name='iovcnt'/>
<parameter type-id='type-id-101' name='tag'/>
- <parameter type-id='type-id-422' name='tag_size'/>
+ <parameter type-id='type-id-425' name='tag_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_aead_cipher_encryptv' mangled-name='gnutls_aead_cipher_encryptv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_aead_cipher_encryptv@@GNUTLS_3_6_3'>
- <parameter type-id='type-id-742' name='handle'/>
+ <parameter type-id='type-id-745' name='handle'/>
<parameter type-id='type-id-101' name='nonce'/>
<parameter type-id='type-id-99' name='nonce_len'/>
- <parameter type-id='type-id-249' name='auth_iov'/>
+ <parameter type-id='type-id-250' name='auth_iov'/>
<parameter type-id='type-id-22' name='auth_iovcnt'/>
<parameter type-id='type-id-99' name='tag_size'/>
- <parameter type-id='type-id-249' name='iov'/>
+ <parameter type-id='type-id-250' name='iov'/>
<parameter type-id='type-id-22' name='iovcnt'/>
<parameter type-id='type-id-101' name='ctext'/>
- <parameter type-id='type-id-422' name='ctext_len'/>
+ <parameter type-id='type-id-425' name='ctext_len'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_aead_cipher_encrypt' mangled-name='gnutls_aead_cipher_encrypt' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_aead_cipher_encrypt@@GNUTLS_3_4'>
- <parameter type-id='type-id-742' name='handle'/>
+ <parameter type-id='type-id-745' name='handle'/>
<parameter type-id='type-id-101' name='nonce'/>
<parameter type-id='type-id-99' name='nonce_len'/>
<parameter type-id='type-id-101' name='auth'/>
@@ -9039,11 +9119,11 @@
<parameter type-id='type-id-101' name='ptext'/>
<parameter type-id='type-id-99' name='ptext_len'/>
<parameter type-id='type-id-101' name='ctext'/>
- <parameter type-id='type-id-422' name='ctext_len'/>
+ <parameter type-id='type-id-425' name='ctext_len'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_aead_cipher_decrypt' mangled-name='gnutls_aead_cipher_decrypt' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_aead_cipher_decrypt@@GNUTLS_3_4'>
- <parameter type-id='type-id-742' name='handle'/>
+ <parameter type-id='type-id-745' name='handle'/>
<parameter type-id='type-id-101' name='nonce'/>
<parameter type-id='type-id-99' name='nonce_len'/>
<parameter type-id='type-id-101' name='auth'/>
@@ -9052,63 +9132,63 @@
<parameter type-id='type-id-101' name='ptext'/>
<parameter type-id='type-id-99' name='ptext_len'/>
<parameter type-id='type-id-101' name='ctext'/>
- <parameter type-id='type-id-422' name='ctext_len'/>
+ <parameter type-id='type-id-425' name='ctext_len'/>
<return type-id='type-id-22'/>
</function-decl>
- <pointer-type-def type-id='type-id-742' size-in-bits='64' id='type-id-743'/>
+ <pointer-type-def type-id='type-id-745' size-in-bits='64' id='type-id-746'/>
<function-decl name='gnutls_aead_cipher_init' mangled-name='gnutls_aead_cipher_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_aead_cipher_init@@GNUTLS_3_4'>
- <parameter type-id='type-id-743' name='handle'/>
+ <parameter type-id='type-id-746' name='handle'/>
<parameter type-id='type-id-29' name='cipher'/>
<parameter type-id='type-id-57' name='key'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_key_generate' mangled-name='gnutls_key_generate' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_key_generate@@GNUTLS_3_4'>
- <parameter type-id='type-id-275' name='key'/>
+ <parameter type-id='type-id-278' name='key'/>
<parameter type-id='type-id-10' name='key_size'/>
<return type-id='type-id-22'/>
</function-decl>
- <class-decl name='hash_hd_st' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-744'/>
- <pointer-type-def type-id='type-id-744' size-in-bits='64' id='type-id-745'/>
- <typedef-decl name='gnutls_hash_hd_t' type-id='type-id-745' id='type-id-746'/>
+ <class-decl name='hash_hd_st' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-747'/>
+ <pointer-type-def type-id='type-id-747' size-in-bits='64' id='type-id-748'/>
+ <typedef-decl name='gnutls_hash_hd_t' type-id='type-id-748' id='type-id-749'/>
<function-decl name='gnutls_hash_copy' mangled-name='gnutls_hash_copy' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_hash_copy@@GNUTLS_3_6_9'>
- <parameter type-id='type-id-746' name='handle'/>
- <return type-id='type-id-746'/>
+ <parameter type-id='type-id-749' name='handle'/>
+ <return type-id='type-id-749'/>
</function-decl>
<function-decl name='gnutls_hash_fast' mangled-name='gnutls_hash_fast' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_hash_fast@@GNUTLS_3_4'>
- <parameter type-id='type-id-211' name='algorithm'/>
+ <parameter type-id='type-id-212' name='algorithm'/>
<parameter type-id='type-id-101' name='ptext'/>
<parameter type-id='type-id-99' name='ptext_len'/>
<parameter type-id='type-id-101' name='digest'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_hash_deinit' mangled-name='gnutls_hash_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_hash_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-746' name='handle'/>
+ <parameter type-id='type-id-749' name='handle'/>
<parameter type-id='type-id-101' name='digest'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_hash_output' mangled-name='gnutls_hash_output' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_hash_output@@GNUTLS_3_4'>
- <parameter type-id='type-id-746' name='handle'/>
+ <parameter type-id='type-id-749' name='handle'/>
<parameter type-id='type-id-101' name='digest'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_hash' mangled-name='gnutls_hash' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_hash@@GNUTLS_3_4'>
- <parameter type-id='type-id-746' name='handle'/>
+ <parameter type-id='type-id-749' name='handle'/>
<parameter type-id='type-id-101' name='ptext'/>
<parameter type-id='type-id-99' name='ptext_len'/>
<return type-id='type-id-22'/>
</function-decl>
- <pointer-type-def type-id='type-id-746' size-in-bits='64' id='type-id-747'/>
+ <pointer-type-def type-id='type-id-749' size-in-bits='64' id='type-id-750'/>
<function-decl name='gnutls_hash_init' mangled-name='gnutls_hash_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_hash_init@@GNUTLS_3_4'>
- <parameter type-id='type-id-747' name='dig'/>
- <parameter type-id='type-id-211' name='algorithm'/>
+ <parameter type-id='type-id-750' name='dig'/>
+ <parameter type-id='type-id-212' name='algorithm'/>
<return type-id='type-id-22'/>
</function-decl>
- <class-decl name='hmac_hd_st' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-748'/>
- <pointer-type-def type-id='type-id-748' size-in-bits='64' id='type-id-749'/>
- <typedef-decl name='gnutls_hmac_hd_t' type-id='type-id-749' id='type-id-750'/>
+ <class-decl name='hmac_hd_st' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-751'/>
+ <pointer-type-def type-id='type-id-751' size-in-bits='64' id='type-id-752'/>
+ <typedef-decl name='gnutls_hmac_hd_t' type-id='type-id-752' id='type-id-753'/>
<function-decl name='gnutls_hmac_copy' mangled-name='gnutls_hmac_copy' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_hmac_copy@@GNUTLS_3_6_9'>
- <parameter type-id='type-id-750' name='handle'/>
- <return type-id='type-id-750'/>
+ <parameter type-id='type-id-753' name='handle'/>
+ <return type-id='type-id-753'/>
</function-decl>
<function-decl name='gnutls_hmac_fast' mangled-name='gnutls_hmac_fast' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_hmac_fast@@GNUTLS_3_4'>
<parameter type-id='type-id-31' name='algorithm'/>
@@ -9119,41 +9199,45 @@
<parameter type-id='type-id-101' name='digest'/>
<return type-id='type-id-22'/>
</function-decl>
+ <function-decl name='gnutls_hmac_get_key_size' mangled-name='gnutls_hmac_get_key_size' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_hmac_get_key_size@@GNUTLS_3_6_12'>
+ <parameter type-id='type-id-31' name='algorithm'/>
+ <return type-id='type-id-10'/>
+ </function-decl>
<function-decl name='gnutls_hmac_get_len' mangled-name='gnutls_hmac_get_len' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_hmac_get_len@@GNUTLS_3_4'>
<parameter type-id='type-id-31' name='algorithm'/>
<return type-id='type-id-10'/>
</function-decl>
<function-decl name='gnutls_hmac_deinit' mangled-name='gnutls_hmac_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_hmac_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-750' name='handle'/>
+ <parameter type-id='type-id-753' name='handle'/>
<parameter type-id='type-id-101' name='digest'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_hmac_output' mangled-name='gnutls_hmac_output' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_hmac_output@@GNUTLS_3_4'>
- <parameter type-id='type-id-750' name='handle'/>
+ <parameter type-id='type-id-753' name='handle'/>
<parameter type-id='type-id-101' name='digest'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_hmac' mangled-name='gnutls_hmac' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_hmac@@GNUTLS_3_4'>
- <parameter type-id='type-id-750' name='handle'/>
+ <parameter type-id='type-id-753' name='handle'/>
<parameter type-id='type-id-101' name='ptext'/>
<parameter type-id='type-id-99' name='ptext_len'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_hmac_set_nonce' mangled-name='gnutls_hmac_set_nonce' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_hmac_set_nonce@@GNUTLS_3_4'>
- <parameter type-id='type-id-750' name='handle'/>
+ <parameter type-id='type-id-753' name='handle'/>
<parameter type-id='type-id-101' name='nonce'/>
<parameter type-id='type-id-99' name='nonce_len'/>
<return type-id='type-id-111'/>
</function-decl>
- <pointer-type-def type-id='type-id-750' size-in-bits='64' id='type-id-751'/>
+ <pointer-type-def type-id='type-id-753' size-in-bits='64' id='type-id-754'/>
<function-decl name='gnutls_hmac_init' mangled-name='gnutls_hmac_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_hmac_init@@GNUTLS_3_4'>
- <parameter type-id='type-id-751' name='dig'/>
+ <parameter type-id='type-id-754' name='dig'/>
<parameter type-id='type-id-31' name='algorithm'/>
<parameter type-id='type-id-101' name='key'/>
<parameter type-id='type-id-99' name='keylen'/>
<return type-id='type-id-22'/>
</function-decl>
- <class-decl name='api_cipher_hd_st' size-in-bits='1408' is-struct='yes' visibility='default' id='type-id-752'>
+ <class-decl name='api_cipher_hd_st' size-in-bits='1408' is-struct='yes' visibility='default' id='type-id-755'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='ctx_enc' type-id='type-id-97' visibility='default'/>
</data-member>
@@ -9161,14 +9245,14 @@
<var-decl name='ctx_dec' type-id='type-id-97' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-752' size-in-bits='64' id='type-id-753'/>
- <typedef-decl name='gnutls_cipher_hd_t' type-id='type-id-753' id='type-id-754'/>
+ <pointer-type-def type-id='type-id-755' size-in-bits='64' id='type-id-756'/>
+ <typedef-decl name='gnutls_cipher_hd_t' type-id='type-id-756' id='type-id-757'/>
<function-decl name='gnutls_cipher_deinit' mangled-name='gnutls_cipher_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_cipher_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-754' name='handle'/>
+ <parameter type-id='type-id-757' name='handle'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_cipher_decrypt2' mangled-name='gnutls_cipher_decrypt2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_cipher_decrypt2@@GNUTLS_3_4'>
- <parameter type-id='type-id-754' name='handle'/>
+ <parameter type-id='type-id-757' name='handle'/>
<parameter type-id='type-id-101' name='ctext'/>
<parameter type-id='type-id-99' name='ctext_len'/>
<parameter type-id='type-id-101' name='ptext'/>
@@ -9176,7 +9260,7 @@
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_cipher_encrypt2' mangled-name='gnutls_cipher_encrypt2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_cipher_encrypt2@@GNUTLS_3_4'>
- <parameter type-id='type-id-754' name='handle'/>
+ <parameter type-id='type-id-757' name='handle'/>
<parameter type-id='type-id-101' name='ptext'/>
<parameter type-id='type-id-99' name='ptext_len'/>
<parameter type-id='type-id-101' name='ctext'/>
@@ -9184,44 +9268,44 @@
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_cipher_decrypt' mangled-name='gnutls_cipher_decrypt' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_cipher_decrypt@@GNUTLS_3_4'>
- <parameter type-id='type-id-754' name='handle'/>
+ <parameter type-id='type-id-757' name='handle'/>
<parameter type-id='type-id-101' name='ctext'/>
<parameter type-id='type-id-99' name='ctext_len'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_cipher_encrypt' mangled-name='gnutls_cipher_encrypt' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_cipher_encrypt@@GNUTLS_3_4'>
- <parameter type-id='type-id-754' name='handle'/>
+ <parameter type-id='type-id-757' name='handle'/>
<parameter type-id='type-id-101' name='ptext'/>
<parameter type-id='type-id-99' name='ptext_len'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='_gnutls_cipher_get_iv' mangled-name='_gnutls_cipher_get_iv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls_cipher_get_iv@@GNUTLS_FIPS140_3_4'>
- <parameter type-id='type-id-754' name='handle'/>
+ <parameter type-id='type-id-757' name='handle'/>
<parameter type-id='type-id-101' name='ptext'/>
<parameter type-id='type-id-99' name='ptext_len'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_cipher_set_iv' mangled-name='gnutls_cipher_set_iv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_cipher_set_iv@@GNUTLS_3_4'>
- <parameter type-id='type-id-754' name='handle'/>
+ <parameter type-id='type-id-757' name='handle'/>
<parameter type-id='type-id-101' name='iv'/>
<parameter type-id='type-id-99' name='ivlen'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_cipher_add_auth' mangled-name='gnutls_cipher_add_auth' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_cipher_add_auth@@GNUTLS_3_4'>
- <parameter type-id='type-id-754' name='handle'/>
+ <parameter type-id='type-id-757' name='handle'/>
<parameter type-id='type-id-101' name='ptext'/>
<parameter type-id='type-id-99' name='ptext_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_cipher_tag' mangled-name='gnutls_cipher_tag' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_cipher_tag@@GNUTLS_3_4'>
- <parameter type-id='type-id-754' name='handle'/>
+ <parameter type-id='type-id-757' name='handle'/>
<parameter type-id='type-id-101' name='tag'/>
<parameter type-id='type-id-99' name='tag_size'/>
<return type-id='type-id-22'/>
</function-decl>
- <pointer-type-def type-id='type-id-754' size-in-bits='64' id='type-id-755'/>
+ <pointer-type-def type-id='type-id-757' size-in-bits='64' id='type-id-758'/>
<function-decl name='gnutls_cipher_init' mangled-name='gnutls_cipher_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_cipher_init@@GNUTLS_3_4'>
- <parameter type-id='type-id-755' name='handle'/>
+ <parameter type-id='type-id-758' name='handle'/>
<parameter type-id='type-id-29' name='cipher'/>
<parameter type-id='type-id-57' name='key'/>
<parameter type-id='type-id-57' name='iv'/>
@@ -9243,57 +9327,57 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='privkey.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
- <pointer-type-def type-id='type-id-320' size-in-bits='64' id='type-id-756'/>
- <typedef-decl name='gnutls_x509_spki_t' type-id='type-id-756' id='type-id-757'/>
- <qualified-type-def type-id='type-id-757' const='yes' id='type-id-758'/>
+ <abi-instr version='1.0' address-size='64' path='privkey.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
+ <pointer-type-def type-id='type-id-323' size-in-bits='64' id='type-id-759'/>
+ <typedef-decl name='gnutls_x509_spki_t' type-id='type-id-759' id='type-id-760'/>
+ <qualified-type-def type-id='type-id-760' const='yes' id='type-id-761'/>
<function-decl name='gnutls_privkey_set_spki' mangled-name='gnutls_privkey_set_spki' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_set_spki@@GNUTLS_3_6_0'>
- <parameter type-id='type-id-401' name='privkey'/>
- <parameter type-id='type-id-758' name='spki'/>
+ <parameter type-id='type-id-404' name='privkey'/>
+ <parameter type-id='type-id-761' name='spki'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_privkey_get_spki' mangled-name='gnutls_privkey_get_spki' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_get_spki@@GNUTLS_3_6_0'>
- <parameter type-id='type-id-401' name='privkey'/>
- <parameter type-id='type-id-757' name='spki'/>
+ <parameter type-id='type-id-404' name='privkey'/>
+ <parameter type-id='type-id-760' name='spki'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_privkey_verify_params' mangled-name='gnutls_privkey_verify_params' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_verify_params@@GNUTLS_3_4'>
- <parameter type-id='type-id-401' name='key'/>
+ <parameter type-id='type-id-404' name='key'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_privkey_status' mangled-name='gnutls_privkey_status' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_status@@GNUTLS_3_4'>
- <parameter type-id='type-id-401' name='key'/>
+ <parameter type-id='type-id-404' name='key'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_privkey_set_flags' mangled-name='gnutls_privkey_set_flags' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_set_flags@@GNUTLS_3_4'>
- <parameter type-id='type-id-401' name='key'/>
+ <parameter type-id='type-id-404' name='key'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_privkey_set_pin_function' mangled-name='gnutls_privkey_set_pin_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_set_pin_function@@GNUTLS_3_4'>
- <parameter type-id='type-id-401' name='key'/>
- <parameter type-id='type-id-375' name='fn'/>
+ <parameter type-id='type-id-404' name='key'/>
+ <parameter type-id='type-id-378' name='fn'/>
<parameter type-id='type-id-101' name='userdata'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_privkey_import_url' mangled-name='gnutls_privkey_import_url' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_import_url@@GNUTLS_3_4'>
- <parameter type-id='type-id-401' name='key'/>
+ <parameter type-id='type-id-404' name='key'/>
<parameter type-id='type-id-27' name='url'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_privkey_import_x509_raw' mangled-name='gnutls_privkey_import_x509_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_import_x509_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-401' name='pkey'/>
+ <parameter type-id='type-id-404' name='pkey'/>
<parameter type-id='type-id-57' name='data'/>
- <parameter type-id='type-id-421' name='format'/>
+ <parameter type-id='type-id-424' name='format'/>
<parameter type-id='type-id-27' name='password'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_privkey_decrypt_data2' mangled-name='gnutls_privkey_decrypt_data2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_decrypt_data2@@GNUTLS_3_6_5'>
- <parameter type-id='type-id-401' name='key'/>
+ <parameter type-id='type-id-404' name='key'/>
<parameter type-id='type-id-10' name='flags'/>
<parameter type-id='type-id-57' name='ciphertext'/>
<parameter type-id='type-id-64' name='plaintext'/>
@@ -9301,148 +9385,148 @@
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_privkey_decrypt_data' mangled-name='gnutls_privkey_decrypt_data' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_decrypt_data@@GNUTLS_3_4'>
- <parameter type-id='type-id-401' name='key'/>
+ <parameter type-id='type-id-404' name='key'/>
<parameter type-id='type-id-10' name='flags'/>
<parameter type-id='type-id-57' name='ciphertext'/>
- <parameter type-id='type-id-275' name='plaintext'/>
+ <parameter type-id='type-id-278' name='plaintext'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_privkey_sign_hash' mangled-name='gnutls_privkey_sign_hash' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_sign_hash@@GNUTLS_3_4'>
- <parameter type-id='type-id-401' name='signer'/>
- <parameter type-id='type-id-211' name='hash_algo'/>
+ <parameter type-id='type-id-404' name='signer'/>
+ <parameter type-id='type-id-212' name='hash_algo'/>
<parameter type-id='type-id-10' name='flags'/>
<parameter type-id='type-id-57' name='hash_data'/>
- <parameter type-id='type-id-275' name='signature'/>
+ <parameter type-id='type-id-278' name='signature'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_privkey_sign_hash2' mangled-name='gnutls_privkey_sign_hash2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_sign_hash2@@GNUTLS_3_6_0'>
- <parameter type-id='type-id-401' name='signer'/>
+ <parameter type-id='type-id-404' name='signer'/>
<parameter type-id='type-id-21' name='algo'/>
<parameter type-id='type-id-10' name='flags'/>
<parameter type-id='type-id-57' name='hash_data'/>
- <parameter type-id='type-id-275' name='signature'/>
+ <parameter type-id='type-id-278' name='signature'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_privkey_sign_data2' mangled-name='gnutls_privkey_sign_data2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_sign_data2@@GNUTLS_3_6_0'>
- <parameter type-id='type-id-401' name='signer'/>
+ <parameter type-id='type-id-404' name='signer'/>
<parameter type-id='type-id-21' name='algo'/>
<parameter type-id='type-id-10' name='flags'/>
<parameter type-id='type-id-57' name='data'/>
- <parameter type-id='type-id-275' name='signature'/>
+ <parameter type-id='type-id-278' name='signature'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_privkey_sign_data' mangled-name='gnutls_privkey_sign_data' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_sign_data@@GNUTLS_3_4'>
- <parameter type-id='type-id-401' name='signer'/>
- <parameter type-id='type-id-211' name='hash'/>
+ <parameter type-id='type-id-404' name='signer'/>
+ <parameter type-id='type-id-212' name='hash'/>
<parameter type-id='type-id-10' name='flags'/>
<parameter type-id='type-id-57' name='data'/>
- <parameter type-id='type-id-275' name='signature'/>
+ <parameter type-id='type-id-278' name='signature'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_privkey_generate' mangled-name='gnutls_privkey_generate' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_generate@@GNUTLS_3_4'>
- <parameter type-id='type-id-401' name='pkey'/>
+ <parameter type-id='type-id-404' name='pkey'/>
<parameter type-id='type-id-60' name='algo'/>
<parameter type-id='type-id-10' name='bits'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_privkey_export_x509' mangled-name='gnutls_privkey_export_x509' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_export_x509@@GNUTLS_3_4'>
- <parameter type-id='type-id-401' name='pkey'/>
- <parameter type-id='type-id-734' name='key'/>
+ <parameter type-id='type-id-404' name='pkey'/>
+ <parameter type-id='type-id-737' name='key'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_privkey_import_x509' mangled-name='gnutls_privkey_import_x509' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_import_x509@@GNUTLS_3_4'>
- <parameter type-id='type-id-401' name='pkey'/>
- <parameter type-id='type-id-383' name='key'/>
+ <parameter type-id='type-id-404' name='pkey'/>
+ <parameter type-id='type-id-386' name='key'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_privkey_import_ext4' mangled-name='gnutls_privkey_import_ext4' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_import_ext4@@GNUTLS_3_6_0'>
- <parameter type-id='type-id-401' name='pkey'/>
+ <parameter type-id='type-id-404' name='pkey'/>
<parameter type-id='type-id-101' name='userdata'/>
- <parameter type-id='type-id-395' name='sign_data_fn'/>
- <parameter type-id='type-id-396' name='sign_hash_fn'/>
- <parameter type-id='type-id-397' name='decrypt_fn'/>
- <parameter type-id='type-id-399' name='deinit_fn'/>
- <parameter type-id='type-id-400' name='info_fn'/>
+ <parameter type-id='type-id-398' name='sign_data_fn'/>
+ <parameter type-id='type-id-399' name='sign_hash_fn'/>
+ <parameter type-id='type-id-400' name='decrypt_fn'/>
+ <parameter type-id='type-id-402' name='deinit_fn'/>
+ <parameter type-id='type-id-403' name='info_fn'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_privkey_import_ext3' mangled-name='gnutls_privkey_import_ext3' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_import_ext3@@GNUTLS_3_4'>
- <parameter type-id='type-id-401' name='pkey'/>
+ <parameter type-id='type-id-404' name='pkey'/>
<parameter type-id='type-id-101' name='userdata'/>
- <parameter type-id='type-id-394' name='sign_fn'/>
- <parameter type-id='type-id-397' name='decrypt_fn'/>
- <parameter type-id='type-id-399' name='deinit_fn'/>
- <parameter type-id='type-id-400' name='info_fn'/>
+ <parameter type-id='type-id-397' name='sign_fn'/>
+ <parameter type-id='type-id-400' name='decrypt_fn'/>
+ <parameter type-id='type-id-402' name='deinit_fn'/>
+ <parameter type-id='type-id-403' name='info_fn'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_privkey_import_ext2' mangled-name='gnutls_privkey_import_ext2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_import_ext2@@GNUTLS_3_4'>
- <parameter type-id='type-id-401' name='pkey'/>
+ <parameter type-id='type-id-404' name='pkey'/>
<parameter type-id='type-id-60' name='pk'/>
<parameter type-id='type-id-101' name='userdata'/>
- <parameter type-id='type-id-394' name='sign_fn'/>
- <parameter type-id='type-id-397' name='decrypt_fn'/>
- <parameter type-id='type-id-399' name='deinit_fn'/>
+ <parameter type-id='type-id-397' name='sign_fn'/>
+ <parameter type-id='type-id-400' name='decrypt_fn'/>
+ <parameter type-id='type-id-402' name='deinit_fn'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_privkey_import_ext' mangled-name='gnutls_privkey_import_ext' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_import_ext@@GNUTLS_3_4'>
- <parameter type-id='type-id-401' name='pkey'/>
+ <parameter type-id='type-id-404' name='pkey'/>
<parameter type-id='type-id-60' name='pk'/>
<parameter type-id='type-id-101' name='userdata'/>
- <parameter type-id='type-id-394' name='sign_func'/>
- <parameter type-id='type-id-397' name='decrypt_func'/>
+ <parameter type-id='type-id-397' name='sign_func'/>
+ <parameter type-id='type-id-400' name='decrypt_func'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
- <pointer-type-def type-id='type-id-384' size-in-bits='64' id='type-id-759'/>
+ <pointer-type-def type-id='type-id-387' size-in-bits='64' id='type-id-762'/>
<function-decl name='gnutls_privkey_export_pkcs11' mangled-name='gnutls_privkey_export_pkcs11' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_export_pkcs11@@GNUTLS_3_4'>
- <parameter type-id='type-id-401' name='pkey'/>
- <parameter type-id='type-id-759' name='key'/>
+ <parameter type-id='type-id-404' name='pkey'/>
+ <parameter type-id='type-id-762' name='key'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_privkey_deinit' mangled-name='gnutls_privkey_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-401' name='key'/>
+ <parameter type-id='type-id-404' name='key'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_privkey_init' mangled-name='gnutls_privkey_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_init@@GNUTLS_3_4'>
- <parameter type-id='type-id-485' name='key'/>
+ <parameter type-id='type-id-488' name='key'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_privkey_verify_seed' mangled-name='gnutls_privkey_verify_seed' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_verify_seed@@GNUTLS_3_4'>
- <parameter type-id='type-id-401' name='key'/>
- <parameter type-id='type-id-211' name='digest'/>
+ <parameter type-id='type-id-404' name='key'/>
+ <parameter type-id='type-id-212' name='digest'/>
<parameter type-id='type-id-101' name='seed'/>
<parameter type-id='type-id-99' name='seed_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_privkey_get_seed' mangled-name='gnutls_privkey_get_seed' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_get_seed@@GNUTLS_3_4'>
- <parameter type-id='type-id-401' name='key'/>
- <parameter type-id='type-id-431' name='digest'/>
+ <parameter type-id='type-id-404' name='key'/>
+ <parameter type-id='type-id-434' name='digest'/>
<parameter type-id='type-id-101' name='seed'/>
- <parameter type-id='type-id-422' name='seed_size'/>
+ <parameter type-id='type-id-425' name='seed_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_privkey_get_type' mangled-name='gnutls_privkey_get_type' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_get_type@@GNUTLS_3_4'>
- <parameter type-id='type-id-401' name='key'/>
- <return type-id='type-id-380'/>
+ <parameter type-id='type-id-404' name='key'/>
+ <return type-id='type-id-383'/>
</function-decl>
<function-decl name='gnutls_privkey_get_pk_algorithm' mangled-name='gnutls_privkey_get_pk_algorithm' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_get_pk_algorithm@@GNUTLS_3_4'>
- <parameter type-id='type-id-401' name='key'/>
- <parameter type-id='type-id-419' name='bits'/>
+ <parameter type-id='type-id-404' name='key'/>
+ <parameter type-id='type-id-422' name='bits'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_privkey_import_pkcs11' mangled-name='gnutls_privkey_import_pkcs11' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_import_pkcs11@@GNUTLS_3_4'>
- <parameter type-id='type-id-401' name='pkey'/>
- <parameter type-id='type-id-384' name='key'/>
+ <parameter type-id='type-id-404' name='pkey'/>
+ <parameter type-id='type-id-387' name='key'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-760' visibility='default' id='type-id-761'>
+ <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-763' visibility='default' id='type-id-764'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='type' type-id='type-id-762' visibility='default'/>
+ <var-decl name='type' type-id='type-id-765' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='data' type-id='type-id-64' visibility='default'/>
@@ -9451,22 +9535,22 @@
<var-decl name='size' type-id='type-id-10' visibility='default'/>
</data-member>
</class-decl>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-763'>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-766'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_KEYGEN_SEED' value='1'/>
<enumerator name='GNUTLS_KEYGEN_DIGEST' value='2'/>
<enumerator name='GNUTLS_KEYGEN_SPKI' value='3'/>
</enum-decl>
- <typedef-decl name='gnutls_keygen_types_t' type-id='type-id-763' id='type-id-762'/>
- <typedef-decl name='gnutls_keygen_data_st' type-id='type-id-761' id='type-id-760'/>
- <qualified-type-def type-id='type-id-760' const='yes' id='type-id-764'/>
- <pointer-type-def type-id='type-id-764' size-in-bits='64' id='type-id-765'/>
+ <typedef-decl name='gnutls_keygen_types_t' type-id='type-id-766' id='type-id-765'/>
+ <typedef-decl name='gnutls_keygen_data_st' type-id='type-id-764' id='type-id-763'/>
+ <qualified-type-def type-id='type-id-763' const='yes' id='type-id-767'/>
+ <pointer-type-def type-id='type-id-767' size-in-bits='64' id='type-id-768'/>
<function-decl name='gnutls_privkey_generate2' mangled-name='gnutls_privkey_generate2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_generate2@@GNUTLS_3_4'>
- <parameter type-id='type-id-401' name='pkey'/>
+ <parameter type-id='type-id-404' name='pkey'/>
<parameter type-id='type-id-60' name='algo'/>
<parameter type-id='type-id-10' name='bits'/>
<parameter type-id='type-id-10' name='flags'/>
- <parameter type-id='type-id-765' name='data'/>
+ <parameter type-id='type-id-768' name='data'/>
<parameter type-id='type-id-10' name='data_size'/>
<return type-id='type-id-22'/>
</function-decl>
@@ -9573,64 +9657,64 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='pcert.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='pcert.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_pcert_deinit' mangled-name='gnutls_pcert_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pcert_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-161' name='pcert'/>
+ <parameter type-id='type-id-162' name='pcert'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_pcert_export_x509' mangled-name='gnutls_pcert_export_x509' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pcert_export_x509@@GNUTLS_3_4'>
- <parameter type-id='type-id-161' name='pcert'/>
- <parameter type-id='type-id-458' name='crt'/>
+ <parameter type-id='type-id-162' name='pcert'/>
+ <parameter type-id='type-id-461' name='crt'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pcert_import_rawpk' mangled-name='gnutls_pcert_import_rawpk' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pcert_import_rawpk@@GNUTLS_3_6_6'>
- <parameter type-id='type-id-161' name='pcert'/>
- <parameter type-id='type-id-267' name='pubkey'/>
+ <parameter type-id='type-id-162' name='pcert'/>
+ <parameter type-id='type-id-270' name='pubkey'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pcert_import_x509_raw' mangled-name='gnutls_pcert_import_x509_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pcert_import_x509_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-161' name='pcert'/>
+ <parameter type-id='type-id-162' name='pcert'/>
<parameter type-id='type-id-57' name='cert'/>
- <parameter type-id='type-id-421' name='format'/>
+ <parameter type-id='type-id-424' name='format'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pcert_list_import_x509_file' mangled-name='gnutls_pcert_list_import_x509_file' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pcert_list_import_x509_file@@GNUTLS_3_6_3'>
- <parameter type-id='type-id-161' name='pcert_list'/>
- <parameter type-id='type-id-419' name='pcert_list_size'/>
+ <parameter type-id='type-id-162' name='pcert_list'/>
+ <parameter type-id='type-id-422' name='pcert_list_size'/>
<parameter type-id='type-id-27' name='file'/>
- <parameter type-id='type-id-421' name='format'/>
- <parameter type-id='type-id-375' name='pin_fn'/>
+ <parameter type-id='type-id-424' name='format'/>
+ <parameter type-id='type-id-378' name='pin_fn'/>
<parameter type-id='type-id-101' name='pin_fn_userdata'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pcert_list_import_x509_raw' mangled-name='gnutls_pcert_list_import_x509_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pcert_list_import_x509_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-161' name='pcert_list'/>
- <parameter type-id='type-id-419' name='pcert_list_size'/>
+ <parameter type-id='type-id-162' name='pcert_list'/>
+ <parameter type-id='type-id-422' name='pcert_list_size'/>
<parameter type-id='type-id-57' name='data'/>
- <parameter type-id='type-id-421' name='format'/>
+ <parameter type-id='type-id-424' name='format'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pcert_import_x509_list' mangled-name='gnutls_pcert_import_x509_list' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pcert_import_x509_list@@GNUTLS_3_4'>
- <parameter type-id='type-id-161' name='pcert_list'/>
- <parameter type-id='type-id-458' name='crt'/>
- <parameter type-id='type-id-419' name='ncrt'/>
+ <parameter type-id='type-id-162' name='pcert_list'/>
+ <parameter type-id='type-id-461' name='crt'/>
+ <parameter type-id='type-id-422' name='ncrt'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pcert_import_x509' mangled-name='gnutls_pcert_import_x509' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pcert_import_x509@@GNUTLS_3_4'>
- <parameter type-id='type-id-161' name='pcert'/>
- <parameter type-id='type-id-467' name='crt'/>
+ <parameter type-id='type-id-162' name='pcert'/>
+ <parameter type-id='type-id-470' name='crt'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pcert_import_rawpk_raw' mangled-name='gnutls_pcert_import_rawpk_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pcert_import_rawpk_raw@@GNUTLS_3_6_6'>
- <parameter type-id='type-id-161' name='pcert'/>
+ <parameter type-id='type-id-162' name='pcert'/>
<parameter type-id='type-id-57' name='rawpubkey'/>
- <parameter type-id='type-id-421' name='format'/>
+ <parameter type-id='type-id-424' name='format'/>
<parameter type-id='type-id-10' name='key_usage'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
@@ -9669,45 +9753,45 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='pubkey.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='pubkey.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_pubkey_set_spki' mangled-name='gnutls_pubkey_set_spki' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_set_spki@@GNUTLS_3_6_0'>
- <parameter type-id='type-id-267' name='pubkey'/>
- <parameter type-id='type-id-758' name='spki'/>
+ <parameter type-id='type-id-270' name='pubkey'/>
+ <parameter type-id='type-id-761' name='spki'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pubkey_get_spki' mangled-name='gnutls_pubkey_get_spki' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_get_spki@@GNUTLS_3_6_0'>
- <parameter type-id='type-id-267' name='pubkey'/>
- <parameter type-id='type-id-757' name='spki'/>
+ <parameter type-id='type-id-270' name='pubkey'/>
+ <parameter type-id='type-id-760' name='spki'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pubkey_verify_params' mangled-name='gnutls_pubkey_verify_params' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_verify_params@@GNUTLS_3_4'>
- <parameter type-id='type-id-267' name='key'/>
+ <parameter type-id='type-id-270' name='key'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pubkey_import_x509_raw' mangled-name='gnutls_pubkey_import_x509_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_import_x509_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-267' name='pkey'/>
+ <parameter type-id='type-id-270' name='pkey'/>
<parameter type-id='type-id-57' name='data'/>
- <parameter type-id='type-id-421' name='format'/>
+ <parameter type-id='type-id-424' name='format'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pubkey_set_pin_function' mangled-name='gnutls_pubkey_set_pin_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_set_pin_function@@GNUTLS_3_4'>
- <parameter type-id='type-id-267' name='key'/>
- <parameter type-id='type-id-375' name='fn'/>
+ <parameter type-id='type-id-270' name='key'/>
+ <parameter type-id='type-id-378' name='fn'/>
<parameter type-id='type-id-101' name='userdata'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_pubkey_encrypt_data' mangled-name='gnutls_pubkey_encrypt_data' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_encrypt_data@@GNUTLS_3_4'>
- <parameter type-id='type-id-267' name='key'/>
+ <parameter type-id='type-id-270' name='key'/>
<parameter type-id='type-id-10' name='flags'/>
<parameter type-id='type-id-57' name='plaintext'/>
- <parameter type-id='type-id-275' name='ciphertext'/>
+ <parameter type-id='type-id-278' name='ciphertext'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pubkey_verify_hash2' mangled-name='gnutls_pubkey_verify_hash2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_verify_hash2@@GNUTLS_3_4'>
- <parameter type-id='type-id-267' name='key'/>
+ <parameter type-id='type-id-270' name='key'/>
<parameter type-id='type-id-21' name='algo'/>
<parameter type-id='type-id-10' name='flags'/>
<parameter type-id='type-id-57' name='hash'/>
@@ -9715,7 +9799,7 @@
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pubkey_verify_data2' mangled-name='gnutls_pubkey_verify_data2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_verify_data2@@GNUTLS_3_4'>
- <parameter type-id='type-id-267' name='pubkey'/>
+ <parameter type-id='type-id-270' name='pubkey'/>
<parameter type-id='type-id-21' name='algo'/>
<parameter type-id='type-id-10' name='flags'/>
<parameter type-id='type-id-57' name='data'/>
@@ -9723,7 +9807,7 @@
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pubkey_import_dsa_raw' mangled-name='gnutls_pubkey_import_dsa_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_import_dsa_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-267' name='key'/>
+ <parameter type-id='type-id-270' name='key'/>
<parameter type-id='type-id-57' name='p'/>
<parameter type-id='type-id-57' name='q'/>
<parameter type-id='type-id-57' name='g'/>
@@ -9731,166 +9815,166 @@
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pubkey_import_gost_raw' mangled-name='gnutls_pubkey_import_gost_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_import_gost_raw@@GNUTLS_3_6_3'>
- <parameter type-id='type-id-267' name='key'/>
+ <parameter type-id='type-id-270' name='key'/>
<parameter type-id='type-id-59' name='curve'/>
- <parameter type-id='type-id-211' name='digest'/>
- <parameter type-id='type-id-315' name='paramset'/>
+ <parameter type-id='type-id-212' name='digest'/>
+ <parameter type-id='type-id-318' name='paramset'/>
<parameter type-id='type-id-57' name='x'/>
<parameter type-id='type-id-57' name='y'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pubkey_import_ecc_x962' mangled-name='gnutls_pubkey_import_ecc_x962' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_import_ecc_x962@@GNUTLS_3_4'>
- <parameter type-id='type-id-267' name='key'/>
+ <parameter type-id='type-id-270' name='key'/>
<parameter type-id='type-id-57' name='parameters'/>
<parameter type-id='type-id-57' name='ecpoint'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pubkey_import_ecc_raw' mangled-name='gnutls_pubkey_import_ecc_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_import_ecc_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-267' name='key'/>
+ <parameter type-id='type-id-270' name='key'/>
<parameter type-id='type-id-59' name='curve'/>
<parameter type-id='type-id-57' name='x'/>
<parameter type-id='type-id-57' name='y'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pubkey_import_rsa_raw' mangled-name='gnutls_pubkey_import_rsa_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_import_rsa_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-267' name='key'/>
+ <parameter type-id='type-id-270' name='key'/>
<parameter type-id='type-id-57' name='m'/>
<parameter type-id='type-id-57' name='e'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pubkey_import_url' mangled-name='gnutls_pubkey_import_url' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_import_url@@GNUTLS_3_4'>
- <parameter type-id='type-id-267' name='key'/>
+ <parameter type-id='type-id-270' name='key'/>
<parameter type-id='type-id-27' name='url'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pubkey_set_key_usage' mangled-name='gnutls_pubkey_set_key_usage' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_set_key_usage@@GNUTLS_3_4'>
- <parameter type-id='type-id-267' name='key'/>
+ <parameter type-id='type-id-270' name='key'/>
<parameter type-id='type-id-10' name='usage'/>
<return type-id='type-id-22'/>
</function-decl>
- <class-decl name='gnutls_x509_crq_int' size-in-bits='64' is-struct='yes' visibility='default' id='type-id-766'>
+ <class-decl name='gnutls_x509_crq_int' size-in-bits='64' is-struct='yes' visibility='default' id='type-id-769'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='crq' type-id='type-id-387' visibility='default'/>
+ <var-decl name='crq' type-id='type-id-390' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-766' size-in-bits='64' id='type-id-767'/>
- <typedef-decl name='gnutls_x509_crq_t' type-id='type-id-767' id='type-id-768'/>
+ <pointer-type-def type-id='type-id-769' size-in-bits='64' id='type-id-770'/>
+ <typedef-decl name='gnutls_x509_crq_t' type-id='type-id-770' id='type-id-771'/>
<function-decl name='gnutls_x509_crq_set_pubkey' mangled-name='gnutls_x509_crq_set_pubkey' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_set_pubkey@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
- <parameter type-id='type-id-267' name='key'/>
+ <parameter type-id='type-id-771' name='crq'/>
+ <parameter type-id='type-id-270' name='key'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_set_pubkey' mangled-name='gnutls_x509_crt_set_pubkey' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_pubkey@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
- <parameter type-id='type-id-267' name='key'/>
+ <parameter type-id='type-id-470' name='crt'/>
+ <parameter type-id='type-id-270' name='key'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pubkey_import' mangled-name='gnutls_pubkey_import' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_import@@GNUTLS_3_4'>
- <parameter type-id='type-id-267' name='key'/>
+ <parameter type-id='type-id-270' name='key'/>
<parameter type-id='type-id-57' name='data'/>
- <parameter type-id='type-id-421' name='format'/>
+ <parameter type-id='type-id-424' name='format'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pubkey_export_gost_raw2' mangled-name='gnutls_pubkey_export_gost_raw2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_export_gost_raw2@@GNUTLS_3_6_3'>
- <parameter type-id='type-id-267' name='key'/>
- <parameter type-id='type-id-711' name='curve'/>
- <parameter type-id='type-id-431' name='digest'/>
- <parameter type-id='type-id-712' name='paramset'/>
- <parameter type-id='type-id-275' name='x'/>
- <parameter type-id='type-id-275' name='y'/>
+ <parameter type-id='type-id-270' name='key'/>
+ <parameter type-id='type-id-714' name='curve'/>
+ <parameter type-id='type-id-434' name='digest'/>
+ <parameter type-id='type-id-715' name='paramset'/>
+ <parameter type-id='type-id-278' name='x'/>
+ <parameter type-id='type-id-278' name='y'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pubkey_export_ecc_x962' mangled-name='gnutls_pubkey_export_ecc_x962' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_export_ecc_x962@@GNUTLS_3_4'>
- <parameter type-id='type-id-267' name='key'/>
- <parameter type-id='type-id-275' name='parameters'/>
- <parameter type-id='type-id-275' name='ecpoint'/>
+ <parameter type-id='type-id-270' name='key'/>
+ <parameter type-id='type-id-278' name='parameters'/>
+ <parameter type-id='type-id-278' name='ecpoint'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pubkey_export_ecc_raw2' mangled-name='gnutls_pubkey_export_ecc_raw2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_export_ecc_raw2@@GNUTLS_3_6_0'>
- <parameter type-id='type-id-267' name='key'/>
- <parameter type-id='type-id-711' name='curve'/>
- <parameter type-id='type-id-275' name='x'/>
- <parameter type-id='type-id-275' name='y'/>
+ <parameter type-id='type-id-270' name='key'/>
+ <parameter type-id='type-id-714' name='curve'/>
+ <parameter type-id='type-id-278' name='x'/>
+ <parameter type-id='type-id-278' name='y'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pubkey_export_ecc_raw' mangled-name='gnutls_pubkey_export_ecc_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_export_ecc_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-267' name='key'/>
- <parameter type-id='type-id-711' name='curve'/>
- <parameter type-id='type-id-275' name='x'/>
- <parameter type-id='type-id-275' name='y'/>
+ <parameter type-id='type-id-270' name='key'/>
+ <parameter type-id='type-id-714' name='curve'/>
+ <parameter type-id='type-id-278' name='x'/>
+ <parameter type-id='type-id-278' name='y'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pubkey_export_dsa_raw2' mangled-name='gnutls_pubkey_export_dsa_raw2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_export_dsa_raw2@@GNUTLS_3_6_0'>
- <parameter type-id='type-id-267' name='key'/>
- <parameter type-id='type-id-275' name='p'/>
- <parameter type-id='type-id-275' name='q'/>
- <parameter type-id='type-id-275' name='g'/>
- <parameter type-id='type-id-275' name='y'/>
+ <parameter type-id='type-id-270' name='key'/>
+ <parameter type-id='type-id-278' name='p'/>
+ <parameter type-id='type-id-278' name='q'/>
+ <parameter type-id='type-id-278' name='g'/>
+ <parameter type-id='type-id-278' name='y'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pubkey_export_dsa_raw' mangled-name='gnutls_pubkey_export_dsa_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_export_dsa_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-267' name='key'/>
- <parameter type-id='type-id-275' name='p'/>
- <parameter type-id='type-id-275' name='q'/>
- <parameter type-id='type-id-275' name='g'/>
- <parameter type-id='type-id-275' name='y'/>
+ <parameter type-id='type-id-270' name='key'/>
+ <parameter type-id='type-id-278' name='p'/>
+ <parameter type-id='type-id-278' name='q'/>
+ <parameter type-id='type-id-278' name='g'/>
+ <parameter type-id='type-id-278' name='y'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pubkey_export_rsa_raw' mangled-name='gnutls_pubkey_export_rsa_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_export_rsa_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-267' name='key'/>
- <parameter type-id='type-id-275' name='m'/>
- <parameter type-id='type-id-275' name='e'/>
+ <parameter type-id='type-id-270' name='key'/>
+ <parameter type-id='type-id-278' name='m'/>
+ <parameter type-id='type-id-278' name='e'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pubkey_export_rsa_raw2' mangled-name='gnutls_pubkey_export_rsa_raw2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_export_rsa_raw2@@GNUTLS_3_6_0'>
- <parameter type-id='type-id-267' name='key'/>
- <parameter type-id='type-id-275' name='m'/>
- <parameter type-id='type-id-275' name='e'/>
+ <parameter type-id='type-id-270' name='key'/>
+ <parameter type-id='type-id-278' name='m'/>
+ <parameter type-id='type-id-278' name='e'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pubkey_get_key_id' mangled-name='gnutls_pubkey_get_key_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_get_key_id@@GNUTLS_3_4'>
- <parameter type-id='type-id-267' name='key'/>
+ <parameter type-id='type-id-270' name='key'/>
<parameter type-id='type-id-10' name='flags'/>
<parameter type-id='type-id-64' name='output_data'/>
- <parameter type-id='type-id-422' name='output_data_size'/>
+ <parameter type-id='type-id-425' name='output_data_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pubkey_export2' mangled-name='gnutls_pubkey_export2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_export2@@GNUTLS_3_4'>
- <parameter type-id='type-id-267' name='key'/>
- <parameter type-id='type-id-421' name='format'/>
- <parameter type-id='type-id-275' name='out'/>
+ <parameter type-id='type-id-270' name='key'/>
+ <parameter type-id='type-id-424' name='format'/>
+ <parameter type-id='type-id-278' name='out'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pubkey_export' mangled-name='gnutls_pubkey_export' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_export@@GNUTLS_3_4'>
- <parameter type-id='type-id-267' name='key'/>
- <parameter type-id='type-id-421' name='format'/>
+ <parameter type-id='type-id-270' name='key'/>
+ <parameter type-id='type-id-424' name='format'/>
<parameter type-id='type-id-101' name='output_data'/>
- <parameter type-id='type-id-422' name='output_data_size'/>
+ <parameter type-id='type-id-425' name='output_data_size'/>
<return type-id='type-id-22'/>
</function-decl>
- <class-decl name='gnutls_pkcs11_obj_st' size-in-bits='1152' is-struct='yes' visibility='default' id='type-id-769'>
+ <class-decl name='gnutls_pkcs11_obj_st' size-in-bits='1152' is-struct='yes' visibility='default' id='type-id-772'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='raw' type-id='type-id-62' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='type' type-id='type-id-770' visibility='default'/>
+ <var-decl name='type' type-id='type-id-773' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='class' type-id='type-id-771' visibility='default'/>
+ <var-decl name='class' type-id='type-id-774' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
<var-decl name='flags' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='info' type-id='type-id-535' visibility='default'/>
+ <var-decl name='info' type-id='type-id-538' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='pubkey' type-id='type-id-772' visibility='default'/>
+ <var-decl name='pubkey' type-id='type-id-775' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='896'>
<var-decl name='pubkey_size' type-id='type-id-10' visibility='default'/>
@@ -9902,10 +9986,10 @@
<var-decl name='key_usage' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1024'>
- <var-decl name='pin' type-id='type-id-374' visibility='default'/>
+ <var-decl name='pin' type-id='type-id-377' visibility='default'/>
</data-member>
</class-decl>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-773'>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-776'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_PKCS11_OBJ_UNKNOWN' value='0'/>
<enumerator name='GNUTLS_PKCS11_OBJ_X509_CRT' value='1'/>
@@ -9915,63 +9999,63 @@
<enumerator name='GNUTLS_PKCS11_OBJ_DATA' value='5'/>
<enumerator name='GNUTLS_PKCS11_OBJ_X509_CRT_EXTENSION' value='6'/>
</enum-decl>
- <typedef-decl name='gnutls_pkcs11_obj_type_t' type-id='type-id-773' id='type-id-770'/>
- <typedef-decl name='ck_object_class_t' type-id='type-id-38' id='type-id-771'/>
+ <typedef-decl name='gnutls_pkcs11_obj_type_t' type-id='type-id-776' id='type-id-773'/>
+ <typedef-decl name='ck_object_class_t' type-id='type-id-38' id='type-id-774'/>
- <array-type-def dimensions='1' type-id='type-id-62' size-in-bits='512' id='type-id-772'>
+ <array-type-def dimensions='1' type-id='type-id-62' size-in-bits='512' id='type-id-775'>
<subrange length='4' type-id='type-id-38' id='type-id-136'/>
</array-type-def>
- <pointer-type-def type-id='type-id-769' size-in-bits='64' id='type-id-774'/>
- <typedef-decl name='gnutls_pkcs11_obj_t' type-id='type-id-774' id='type-id-775'/>
+ <pointer-type-def type-id='type-id-772' size-in-bits='64' id='type-id-777'/>
+ <typedef-decl name='gnutls_pkcs11_obj_t' type-id='type-id-777' id='type-id-778'/>
<function-decl name='gnutls_pubkey_import_pkcs11' mangled-name='gnutls_pubkey_import_pkcs11' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_import_pkcs11@@GNUTLS_3_4'>
- <parameter type-id='type-id-267' name='key'/>
- <parameter type-id='type-id-775' name='obj'/>
+ <parameter type-id='type-id-270' name='key'/>
+ <parameter type-id='type-id-778' name='obj'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pubkey_get_preferred_hash_algorithm' mangled-name='gnutls_pubkey_get_preferred_hash_algorithm' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_get_preferred_hash_algorithm@@GNUTLS_3_4'>
- <parameter type-id='type-id-267' name='key'/>
- <parameter type-id='type-id-431' name='hash'/>
- <parameter type-id='type-id-419' name='mand'/>
+ <parameter type-id='type-id-270' name='key'/>
+ <parameter type-id='type-id-434' name='hash'/>
+ <parameter type-id='type-id-422' name='mand'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pubkey_import_privkey' mangled-name='gnutls_pubkey_import_privkey' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_import_privkey@@GNUTLS_3_4'>
- <parameter type-id='type-id-267' name='key'/>
- <parameter type-id='type-id-401' name='pkey'/>
+ <parameter type-id='type-id-270' name='key'/>
+ <parameter type-id='type-id-404' name='pkey'/>
<parameter type-id='type-id-10' name='usage'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pubkey_import_x509_crq' mangled-name='gnutls_pubkey_import_x509_crq' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_import_x509_crq@@GNUTLS_3_4'>
- <parameter type-id='type-id-267' name='key'/>
- <parameter type-id='type-id-768' name='crq'/>
+ <parameter type-id='type-id-270' name='key'/>
+ <parameter type-id='type-id-771' name='crq'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pubkey_import_x509' mangled-name='gnutls_pubkey_import_x509' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_import_x509@@GNUTLS_3_4'>
- <parameter type-id='type-id-267' name='key'/>
- <parameter type-id='type-id-467' name='crt'/>
+ <parameter type-id='type-id-270' name='key'/>
+ <parameter type-id='type-id-470' name='crt'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pubkey_deinit' mangled-name='gnutls_pubkey_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-267' name='key'/>
+ <parameter type-id='type-id-270' name='key'/>
<return type-id='type-id-111'/>
</function-decl>
- <pointer-type-def type-id='type-id-267' size-in-bits='64' id='type-id-776'/>
+ <pointer-type-def type-id='type-id-270' size-in-bits='64' id='type-id-779'/>
<function-decl name='gnutls_pubkey_init' mangled-name='gnutls_pubkey_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_init@@GNUTLS_3_4'>
- <parameter type-id='type-id-776' name='key'/>
+ <parameter type-id='type-id-779' name='key'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pubkey_get_key_usage' mangled-name='gnutls_pubkey_get_key_usage' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_get_key_usage@@GNUTLS_3_4'>
- <parameter type-id='type-id-267' name='key'/>
- <parameter type-id='type-id-419' name='usage'/>
+ <parameter type-id='type-id-270' name='key'/>
+ <parameter type-id='type-id-422' name='usage'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pubkey_get_pk_algorithm' mangled-name='gnutls_pubkey_get_pk_algorithm' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_get_pk_algorithm@@GNUTLS_3_4'>
- <parameter type-id='type-id-267' name='key'/>
- <parameter type-id='type-id-419' name='usage'/>
+ <parameter type-id='type-id-270' name='key'/>
+ <parameter type-id='type-id-422' name='usage'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='_gnutls_pk_are_compat' mangled-name='_gnutls_pk_are_compat' visibility='default' binding='global' size-in-bits='64'>
@@ -10089,33 +10173,33 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='locks.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
- <pointer-type-def type-id='type-id-777' size-in-bits='64' id='type-id-778'/>
- <typedef-decl name='mutex_init_func' type-id='type-id-778' id='type-id-779'/>
- <typedef-decl name='mutex_deinit_func' type-id='type-id-778' id='type-id-780'/>
- <typedef-decl name='mutex_lock_func' type-id='type-id-778' id='type-id-781'/>
- <typedef-decl name='mutex_unlock_func' type-id='type-id-778' id='type-id-782'/>
+ <abi-instr version='1.0' address-size='64' path='locks.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
+ <pointer-type-def type-id='type-id-780' size-in-bits='64' id='type-id-781'/>
+ <typedef-decl name='mutex_init_func' type-id='type-id-781' id='type-id-782'/>
+ <typedef-decl name='mutex_deinit_func' type-id='type-id-781' id='type-id-783'/>
+ <typedef-decl name='mutex_lock_func' type-id='type-id-781' id='type-id-784'/>
+ <typedef-decl name='mutex_unlock_func' type-id='type-id-781' id='type-id-785'/>
<function-decl name='gnutls_global_set_mutex' mangled-name='gnutls_global_set_mutex' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_global_set_mutex@@GNUTLS_3_4'>
- <parameter type-id='type-id-779' name='init'/>
- <parameter type-id='type-id-780' name='deinit'/>
- <parameter type-id='type-id-781' name='lock'/>
- <parameter type-id='type-id-782' name='unlock'/>
+ <parameter type-id='type-id-782' name='init'/>
+ <parameter type-id='type-id-783' name='deinit'/>
+ <parameter type-id='type-id-784' name='lock'/>
+ <parameter type-id='type-id-785' name='unlock'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_global_init' mangled-name='gnutls_global_init' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-type size-in-bits='64' id='type-id-777'>
- <parameter type-id='type-id-430'/>
+ <function-type size-in-bits='64' id='type-id-780'>
+ <parameter type-id='type-id-433'/>
<return type-id='type-id-22'/>
</function-type>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='dtls.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='dtls.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_record_get_discarded' mangled-name='gnutls_record_get_discarded' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_record_get_discarded@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<return type-id='type-id-10'/>
</function-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-783' visibility='default' id='type-id-784'>
+ <class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-786' visibility='default' id='type-id-787'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='record_seq' type-id='type-id-10' visibility='default'/>
</data-member>
@@ -10126,57 +10210,57 @@
<var-decl name='hsk_write_seq' type-id='type-id-10' visibility='default'/>
</data-member>
</class-decl>
- <typedef-decl name='gnutls_dtls_prestate_st' type-id='type-id-784' id='type-id-783'/>
- <pointer-type-def type-id='type-id-783' size-in-bits='64' id='type-id-785'/>
+ <typedef-decl name='gnutls_dtls_prestate_st' type-id='type-id-787' id='type-id-786'/>
+ <pointer-type-def type-id='type-id-786' size-in-bits='64' id='type-id-788'/>
<function-decl name='gnutls_dtls_prestate_set' mangled-name='gnutls_dtls_prestate_set' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_dtls_prestate_set@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
- <parameter type-id='type-id-785' name='prestate'/>
+ <parameter type-id='type-id-237' name='session'/>
+ <parameter type-id='type-id-788' name='prestate'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_dtls_cookie_verify' mangled-name='gnutls_dtls_cookie_verify' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_dtls_cookie_verify@@GNUTLS_3_4'>
- <parameter type-id='type-id-275' name='key'/>
+ <parameter type-id='type-id-278' name='key'/>
<parameter type-id='type-id-101' name='client_data'/>
<parameter type-id='type-id-99' name='client_data_size'/>
<parameter type-id='type-id-101' name='_msg'/>
<parameter type-id='type-id-99' name='msg_size'/>
- <parameter type-id='type-id-785' name='prestate'/>
+ <parameter type-id='type-id-788' name='prestate'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_dtls_cookie_send' mangled-name='gnutls_dtls_cookie_send' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_dtls_cookie_send@@GNUTLS_3_4'>
- <parameter type-id='type-id-275' name='key'/>
+ <parameter type-id='type-id-278' name='key'/>
<parameter type-id='type-id-101' name='client_data'/>
<parameter type-id='type-id-99' name='client_data_size'/>
- <parameter type-id='type-id-785' name='prestate'/>
+ <parameter type-id='type-id-788' name='prestate'/>
<parameter type-id='type-id-154' name='ptr'/>
<parameter type-id='type-id-151' name='push_func'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_dtls_get_timeout' mangled-name='gnutls_dtls_get_timeout' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_dtls_get_timeout@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<return type-id='type-id-10'/>
</function-decl>
<function-decl name='gnutls_dtls_get_mtu' mangled-name='gnutls_dtls_get_mtu' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_dtls_get_mtu@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<return type-id='type-id-10'/>
</function-decl>
<function-decl name='gnutls_dtls_set_data_mtu' mangled-name='gnutls_dtls_set_data_mtu' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_dtls_set_data_mtu@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-10' name='mtu'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_dtls_get_data_mtu' mangled-name='gnutls_dtls_get_data_mtu' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_dtls_get_data_mtu@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<return type-id='type-id-10'/>
</function-decl>
<function-decl name='gnutls_record_overhead_size' mangled-name='gnutls_record_overhead_size' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_record_overhead_size@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<return type-id='type-id-99'/>
</function-decl>
<function-decl name='gnutls_est_record_overhead_size' mangled-name='gnutls_est_record_overhead_size' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_est_record_overhead_size@@GNUTLS_3_4'>
<parameter type-id='type-id-32' name='version'/>
<parameter type-id='type-id-29' name='cipher'/>
<parameter type-id='type-id-31' name='mac'/>
- <parameter type-id='type-id-367' name='comp'/>
+ <parameter type-id='type-id-370' name='comp'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-99'/>
</function-decl>
@@ -10188,12 +10272,12 @@
<return type-id='type-id-10'/>
</function-decl>
<function-decl name='gnutls_dtls_set_mtu' mangled-name='gnutls_dtls_set_mtu' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_dtls_set_mtu@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-10' name='mtu'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_dtls_set_timeouts' mangled-name='gnutls_dtls_set_timeouts' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_dtls_set_timeouts@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-10' name='retrans_timeout'/>
<parameter type-id='type-id-10' name='total_timeout'/>
<return type-id='type-id-111'/>
@@ -10205,134 +10289,134 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='system_override.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='system_override.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_transport_set_errno_function' mangled-name='gnutls_transport_set_errno_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_transport_set_errno_function@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-153' name='errno_func'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_transport_set_vec_push_function' mangled-name='gnutls_transport_set_vec_push_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_transport_set_vec_push_function@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-152' name='vec_func'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_transport_set_push_function' mangled-name='gnutls_transport_set_push_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_transport_set_push_function@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-151' name='push_func'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_transport_set_pull_timeout_function' mangled-name='gnutls_transport_set_pull_timeout_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_transport_set_pull_timeout_function@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-149' name='func'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_transport_set_pull_function' mangled-name='gnutls_transport_set_pull_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_transport_set_pull_function@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-150' name='pull_func'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_transport_set_errno' mangled-name='gnutls_transport_set_errno' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_transport_set_errno@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-22' name='err'/>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='crypto-backend.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='crypto-backend.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<var-decl name='crypto_mac_prio' type-id='type-id-22' visibility='default'/>
<var-decl name='crypto_digest_prio' type-id='type-id-22' visibility='default'/>
<var-decl name='crypto_cipher_prio' type-id='type-id-22' visibility='default'/>
- <pointer-type-def type-id='type-id-786' size-in-bits='64' id='type-id-787'/>
- <typedef-decl name='gnutls_digest_init_func' type-id='type-id-787' id='type-id-788'/>
- <typedef-decl name='gnutls_digest_hash_func' type-id='type-id-117' id='type-id-789'/>
- <typedef-decl name='gnutls_digest_output_func' type-id='type-id-117' id='type-id-790'/>
- <typedef-decl name='gnutls_digest_deinit_func' type-id='type-id-121' id='type-id-791'/>
- <pointer-type-def type-id='type-id-792' size-in-bits='64' id='type-id-793'/>
- <typedef-decl name='gnutls_digest_fast_func' type-id='type-id-793' id='type-id-794'/>
+ <pointer-type-def type-id='type-id-789' size-in-bits='64' id='type-id-790'/>
+ <typedef-decl name='gnutls_digest_init_func' type-id='type-id-790' id='type-id-791'/>
+ <typedef-decl name='gnutls_digest_hash_func' type-id='type-id-117' id='type-id-792'/>
+ <typedef-decl name='gnutls_digest_output_func' type-id='type-id-117' id='type-id-793'/>
+ <typedef-decl name='gnutls_digest_deinit_func' type-id='type-id-121' id='type-id-794'/>
+ <pointer-type-def type-id='type-id-795' size-in-bits='64' id='type-id-796'/>
+ <typedef-decl name='gnutls_digest_fast_func' type-id='type-id-796' id='type-id-797'/>
<function-decl name='gnutls_crypto_register_digest' mangled-name='gnutls_crypto_register_digest' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_crypto_register_digest@@GNUTLS_3_4'>
- <parameter type-id='type-id-211' name='algorithm'/>
+ <parameter type-id='type-id-212' name='algorithm'/>
<parameter type-id='type-id-22' name='priority'/>
- <parameter type-id='type-id-788' name='init'/>
- <parameter type-id='type-id-789' name='hash'/>
- <parameter type-id='type-id-790' name='output'/>
- <parameter type-id='type-id-791' name='deinit'/>
- <parameter type-id='type-id-794' name='hash_fast'/>
- <return type-id='type-id-22'/>
- </function-decl>
- <pointer-type-def type-id='type-id-795' size-in-bits='64' id='type-id-796'/>
- <typedef-decl name='gnutls_mac_init_func' type-id='type-id-796' id='type-id-797'/>
- <typedef-decl name='gnutls_mac_setkey_func' type-id='type-id-117' id='type-id-798'/>
- <typedef-decl name='gnutls_mac_setnonce_func' type-id='type-id-117' id='type-id-799'/>
- <typedef-decl name='gnutls_mac_hash_func' type-id='type-id-117' id='type-id-800'/>
- <typedef-decl name='gnutls_mac_output_func' type-id='type-id-117' id='type-id-801'/>
- <typedef-decl name='gnutls_mac_deinit_func' type-id='type-id-121' id='type-id-802'/>
- <pointer-type-def type-id='type-id-803' size-in-bits='64' id='type-id-804'/>
- <typedef-decl name='gnutls_mac_fast_func' type-id='type-id-804' id='type-id-805'/>
+ <parameter type-id='type-id-791' name='init'/>
+ <parameter type-id='type-id-792' name='hash'/>
+ <parameter type-id='type-id-793' name='output'/>
+ <parameter type-id='type-id-794' name='deinit'/>
+ <parameter type-id='type-id-797' name='hash_fast'/>
+ <return type-id='type-id-22'/>
+ </function-decl>
+ <pointer-type-def type-id='type-id-798' size-in-bits='64' id='type-id-799'/>
+ <typedef-decl name='gnutls_mac_init_func' type-id='type-id-799' id='type-id-800'/>
+ <typedef-decl name='gnutls_mac_setkey_func' type-id='type-id-117' id='type-id-801'/>
+ <typedef-decl name='gnutls_mac_setnonce_func' type-id='type-id-117' id='type-id-802'/>
+ <typedef-decl name='gnutls_mac_hash_func' type-id='type-id-117' id='type-id-803'/>
+ <typedef-decl name='gnutls_mac_output_func' type-id='type-id-117' id='type-id-804'/>
+ <typedef-decl name='gnutls_mac_deinit_func' type-id='type-id-121' id='type-id-805'/>
+ <pointer-type-def type-id='type-id-806' size-in-bits='64' id='type-id-807'/>
+ <typedef-decl name='gnutls_mac_fast_func' type-id='type-id-807' id='type-id-808'/>
<function-decl name='gnutls_crypto_register_mac' mangled-name='gnutls_crypto_register_mac' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_crypto_register_mac@@GNUTLS_3_4'>
<parameter type-id='type-id-31' name='algorithm'/>
<parameter type-id='type-id-22' name='priority'/>
- <parameter type-id='type-id-797' name='init'/>
- <parameter type-id='type-id-798' name='setkey'/>
- <parameter type-id='type-id-799' name='setnonce'/>
- <parameter type-id='type-id-800' name='hash'/>
- <parameter type-id='type-id-801' name='output'/>
- <parameter type-id='type-id-802' name='deinit'/>
- <parameter type-id='type-id-805' name='hash_fast'/>
- <return type-id='type-id-22'/>
- </function-decl>
- <pointer-type-def type-id='type-id-806' size-in-bits='64' id='type-id-807'/>
- <typedef-decl name='gnutls_cipher_init_func' type-id='type-id-807' id='type-id-808'/>
- <typedef-decl name='gnutls_cipher_setkey_func' type-id='type-id-117' id='type-id-809'/>
- <typedef-decl name='gnutls_cipher_aead_encrypt_func' type-id='type-id-115' id='type-id-810'/>
- <typedef-decl name='gnutls_cipher_aead_decrypt_func' type-id='type-id-115' id='type-id-811'/>
- <typedef-decl name='gnutls_cipher_deinit_func' type-id='type-id-121' id='type-id-812'/>
+ <parameter type-id='type-id-800' name='init'/>
+ <parameter type-id='type-id-801' name='setkey'/>
+ <parameter type-id='type-id-802' name='setnonce'/>
+ <parameter type-id='type-id-803' name='hash'/>
+ <parameter type-id='type-id-804' name='output'/>
+ <parameter type-id='type-id-805' name='deinit'/>
+ <parameter type-id='type-id-808' name='hash_fast'/>
+ <return type-id='type-id-22'/>
+ </function-decl>
+ <pointer-type-def type-id='type-id-809' size-in-bits='64' id='type-id-810'/>
+ <typedef-decl name='gnutls_cipher_init_func' type-id='type-id-810' id='type-id-811'/>
+ <typedef-decl name='gnutls_cipher_setkey_func' type-id='type-id-117' id='type-id-812'/>
+ <typedef-decl name='gnutls_cipher_aead_encrypt_func' type-id='type-id-115' id='type-id-813'/>
+ <typedef-decl name='gnutls_cipher_aead_decrypt_func' type-id='type-id-115' id='type-id-814'/>
+ <typedef-decl name='gnutls_cipher_deinit_func' type-id='type-id-121' id='type-id-815'/>
<function-decl name='gnutls_crypto_register_aead_cipher' mangled-name='gnutls_crypto_register_aead_cipher' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_crypto_register_aead_cipher@@GNUTLS_3_4'>
<parameter type-id='type-id-29' name='algorithm'/>
<parameter type-id='type-id-22' name='priority'/>
- <parameter type-id='type-id-808' name='init'/>
- <parameter type-id='type-id-809' name='setkey'/>
- <parameter type-id='type-id-810' name='aead_encrypt'/>
- <parameter type-id='type-id-811' name='aead_decrypt'/>
- <parameter type-id='type-id-812' name='deinit'/>
+ <parameter type-id='type-id-811' name='init'/>
+ <parameter type-id='type-id-812' name='setkey'/>
+ <parameter type-id='type-id-813' name='aead_encrypt'/>
+ <parameter type-id='type-id-814' name='aead_decrypt'/>
+ <parameter type-id='type-id-815' name='deinit'/>
<return type-id='type-id-22'/>
</function-decl>
- <typedef-decl name='gnutls_cipher_setiv_func' type-id='type-id-117' id='type-id-813'/>
- <typedef-decl name='gnutls_cipher_encrypt_func' type-id='type-id-113' id='type-id-814'/>
- <typedef-decl name='gnutls_cipher_decrypt_func' type-id='type-id-113' id='type-id-815'/>
+ <typedef-decl name='gnutls_cipher_setiv_func' type-id='type-id-117' id='type-id-816'/>
+ <typedef-decl name='gnutls_cipher_encrypt_func' type-id='type-id-113' id='type-id-817'/>
+ <typedef-decl name='gnutls_cipher_decrypt_func' type-id='type-id-113' id='type-id-818'/>
<function-decl name='gnutls_crypto_register_cipher' mangled-name='gnutls_crypto_register_cipher' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_crypto_register_cipher@@GNUTLS_3_4'>
<parameter type-id='type-id-29' name='algorithm'/>
<parameter type-id='type-id-22' name='priority'/>
- <parameter type-id='type-id-808' name='init'/>
- <parameter type-id='type-id-809' name='setkey'/>
- <parameter type-id='type-id-813' name='setiv'/>
- <parameter type-id='type-id-814' name='encrypt'/>
- <parameter type-id='type-id-815' name='decrypt'/>
- <parameter type-id='type-id-812' name='deinit'/>
+ <parameter type-id='type-id-811' name='init'/>
+ <parameter type-id='type-id-812' name='setkey'/>
+ <parameter type-id='type-id-816' name='setiv'/>
+ <parameter type-id='type-id-817' name='encrypt'/>
+ <parameter type-id='type-id-818' name='decrypt'/>
+ <parameter type-id='type-id-815' name='deinit'/>
<return type-id='type-id-22'/>
</function-decl>
- <function-type size-in-bits='64' id='type-id-806'>
+ <function-type size-in-bits='64' id='type-id-809'>
<parameter type-id='type-id-29'/>
- <parameter type-id='type-id-430'/>
+ <parameter type-id='type-id-433'/>
<parameter type-id='type-id-22'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-786'>
- <parameter type-id='type-id-211'/>
- <parameter type-id='type-id-430'/>
+ <function-type size-in-bits='64' id='type-id-789'>
+ <parameter type-id='type-id-212'/>
+ <parameter type-id='type-id-433'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-792'>
- <parameter type-id='type-id-211'/>
+ <function-type size-in-bits='64' id='type-id-795'>
+ <parameter type-id='type-id-212'/>
<parameter type-id='type-id-101'/>
<parameter type-id='type-id-99'/>
<parameter type-id='type-id-101'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-795'>
+ <function-type size-in-bits='64' id='type-id-798'>
<parameter type-id='type-id-31'/>
- <parameter type-id='type-id-430'/>
+ <parameter type-id='type-id-433'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-803'>
+ <function-type size-in-bits='64' id='type-id-806'>
<parameter type-id='type-id-31'/>
<parameter type-id='type-id-101'/>
<parameter type-id='type-id-99'/>
@@ -10344,56 +10428,56 @@
<return type-id='type-id-22'/>
</function-type>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='verify-tofu.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
- <class-decl name='gnutls_tdb_int' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-816'>
+ <abi-instr version='1.0' address-size='64' path='verify-tofu.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
+ <class-decl name='gnutls_tdb_int' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-819'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='store' type-id='type-id-817' visibility='default'/>
+ <var-decl name='store' type-id='type-id-820' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='cstore' type-id='type-id-818' visibility='default'/>
+ <var-decl name='cstore' type-id='type-id-821' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='verify' type-id='type-id-819' visibility='default'/>
+ <var-decl name='verify' type-id='type-id-822' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-820' size-in-bits='64' id='type-id-821'/>
- <typedef-decl name='gnutls_tdb_store_func' type-id='type-id-821' id='type-id-817'/>
- <pointer-type-def type-id='type-id-822' size-in-bits='64' id='type-id-823'/>
- <typedef-decl name='gnutls_tdb_store_commitment_func' type-id='type-id-823' id='type-id-818'/>
- <pointer-type-def type-id='type-id-824' size-in-bits='64' id='type-id-825'/>
- <typedef-decl name='gnutls_tdb_verify_func' type-id='type-id-825' id='type-id-819'/>
- <pointer-type-def type-id='type-id-816' size-in-bits='64' id='type-id-826'/>
- <typedef-decl name='gnutls_tdb_t' type-id='type-id-826' id='type-id-827'/>
+ <pointer-type-def type-id='type-id-823' size-in-bits='64' id='type-id-824'/>
+ <typedef-decl name='gnutls_tdb_store_func' type-id='type-id-824' id='type-id-820'/>
+ <pointer-type-def type-id='type-id-825' size-in-bits='64' id='type-id-826'/>
+ <typedef-decl name='gnutls_tdb_store_commitment_func' type-id='type-id-826' id='type-id-821'/>
+ <pointer-type-def type-id='type-id-827' size-in-bits='64' id='type-id-828'/>
+ <typedef-decl name='gnutls_tdb_verify_func' type-id='type-id-828' id='type-id-822'/>
+ <pointer-type-def type-id='type-id-819' size-in-bits='64' id='type-id-829'/>
+ <typedef-decl name='gnutls_tdb_t' type-id='type-id-829' id='type-id-830'/>
<function-decl name='gnutls_tdb_deinit' mangled-name='gnutls_tdb_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_tdb_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-827' name='tdb'/>
+ <parameter type-id='type-id-830' name='tdb'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_tdb_set_verify_func' mangled-name='gnutls_tdb_set_verify_func' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_tdb_set_verify_func@@GNUTLS_3_4'>
- <parameter type-id='type-id-827' name='tdb'/>
- <parameter type-id='type-id-819' name='verify'/>
+ <parameter type-id='type-id-830' name='tdb'/>
+ <parameter type-id='type-id-822' name='verify'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_tdb_set_store_commitment_func' mangled-name='gnutls_tdb_set_store_commitment_func' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_tdb_set_store_commitment_func@@GNUTLS_3_4'>
- <parameter type-id='type-id-827' name='tdb'/>
- <parameter type-id='type-id-818' name='cstore'/>
+ <parameter type-id='type-id-830' name='tdb'/>
+ <parameter type-id='type-id-821' name='cstore'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_tdb_set_store_func' mangled-name='gnutls_tdb_set_store_func' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_tdb_set_store_func@@GNUTLS_3_4'>
- <parameter type-id='type-id-827' name='tdb'/>
- <parameter type-id='type-id-817' name='store'/>
+ <parameter type-id='type-id-830' name='tdb'/>
+ <parameter type-id='type-id-820' name='store'/>
<return type-id='type-id-111'/>
</function-decl>
- <pointer-type-def type-id='type-id-827' size-in-bits='64' id='type-id-828'/>
+ <pointer-type-def type-id='type-id-830' size-in-bits='64' id='type-id-831'/>
<function-decl name='gnutls_tdb_init' mangled-name='gnutls_tdb_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_tdb_init@@GNUTLS_3_4'>
- <parameter type-id='type-id-828' name='tdb'/>
+ <parameter type-id='type-id-831' name='tdb'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_store_commitment' mangled-name='gnutls_store_commitment' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_store_commitment@@GNUTLS_3_4'>
<parameter type-id='type-id-27' name='db_name'/>
- <parameter type-id='type-id-827' name='tdb'/>
+ <parameter type-id='type-id-830' name='tdb'/>
<parameter type-id='type-id-27' name='host'/>
<parameter type-id='type-id-27' name='service'/>
- <parameter type-id='type-id-211' name='hash_algo'/>
+ <parameter type-id='type-id-212' name='hash_algo'/>
<parameter type-id='type-id-57' name='hash'/>
<parameter type-id='type-id-17' name='expiration'/>
<parameter type-id='type-id-10' name='flags'/>
@@ -10401,7 +10485,7 @@
</function-decl>
<function-decl name='gnutls_store_pubkey' mangled-name='gnutls_store_pubkey' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_store_pubkey@@GNUTLS_3_4'>
<parameter type-id='type-id-27' name='db_name'/>
- <parameter type-id='type-id-827' name='tdb'/>
+ <parameter type-id='type-id-830' name='tdb'/>
<parameter type-id='type-id-27' name='host'/>
<parameter type-id='type-id-27' name='service'/>
<parameter type-id='type-id-19' name='cert_type'/>
@@ -10412,7 +10496,7 @@
</function-decl>
<function-decl name='gnutls_verify_stored_pubkey' mangled-name='gnutls_verify_stored_pubkey' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_verify_stored_pubkey@@GNUTLS_3_4'>
<parameter type-id='type-id-27' name='db_name'/>
- <parameter type-id='type-id-827' name='tdb'/>
+ <parameter type-id='type-id-830' name='tdb'/>
<parameter type-id='type-id-27' name='host'/>
<parameter type-id='type-id-27' name='service'/>
<parameter type-id='type-id-19' name='cert_type'/>
@@ -10438,14 +10522,14 @@
<function-decl name='__getdelim' mangled-name='__getdelim' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-type size-in-bits='64' id='type-id-824'>
+ <function-type size-in-bits='64' id='type-id-827'>
<parameter type-id='type-id-27'/>
<parameter type-id='type-id-27'/>
<parameter type-id='type-id-27'/>
<parameter type-id='type-id-57'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-820'>
+ <function-type size-in-bits='64' id='type-id-823'>
<parameter type-id='type-id-27'/>
<parameter type-id='type-id-27'/>
<parameter type-id='type-id-27'/>
@@ -10453,176 +10537,176 @@
<parameter type-id='type-id-57'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-822'>
+ <function-type size-in-bits='64' id='type-id-825'>
<parameter type-id='type-id-27'/>
<parameter type-id='type-id-27'/>
<parameter type-id='type-id-27'/>
<parameter type-id='type-id-17'/>
- <parameter type-id='type-id-211'/>
+ <parameter type-id='type-id-212'/>
<parameter type-id='type-id-57'/>
<return type-id='type-id-22'/>
</function-type>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='pin.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
- <var-decl name='_gnutls_pin_func' type-id='type-id-375' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='pin.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
+ <var-decl name='_gnutls_pin_func' type-id='type-id-378' visibility='default'/>
<var-decl name='_gnutls_pin_data' type-id='type-id-101' visibility='default'/>
<function-decl name='gnutls_pkcs11_get_pin_function' mangled-name='gnutls_pkcs11_get_pin_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_get_pin_function@@GNUTLS_3_4'>
- <parameter type-id='type-id-430' name='userdata'/>
- <return type-id='type-id-375'/>
+ <parameter type-id='type-id-433' name='userdata'/>
+ <return type-id='type-id-378'/>
</function-decl>
<function-decl name='gnutls_pkcs11_set_pin_function' mangled-name='gnutls_pkcs11_set_pin_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_set_pin_function@@GNUTLS_3_4'>
- <parameter type-id='type-id-375' name='fn'/>
+ <parameter type-id='type-id-378' name='fn'/>
<parameter type-id='type-id-101' name='userdata'/>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='tpm.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='tpm.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_tpm_privkey_delete' mangled-name='gnutls_tpm_privkey_delete' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_tpm_privkey_delete@@GNUTLS_3_4'>
<parameter type-id='type-id-27' name='url'/>
<parameter type-id='type-id-27' name='srk_password'/>
<return type-id='type-id-22'/>
</function-decl>
- <class-decl name='tpm_key_list_st' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-829'>
+ <class-decl name='tpm_key_list_st' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-832'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='size' type-id='type-id-830' visibility='default'/>
+ <var-decl name='size' type-id='type-id-833' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='ki' type-id='type-id-831' visibility='default'/>
+ <var-decl name='ki' type-id='type-id-834' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='tpm_ctx' type-id='type-id-832' visibility='default'/>
+ <var-decl name='tpm_ctx' type-id='type-id-835' visibility='default'/>
</data-member>
</class-decl>
- <typedef-decl name='UINT32' type-id='type-id-18' id='type-id-830'/>
- <class-decl name='tdTSS_KM_KEYINFO2' size-in-bits='512' is-struct='yes' visibility='default' id='type-id-833'>
+ <typedef-decl name='UINT32' type-id='type-id-18' id='type-id-833'/>
+ <class-decl name='tdTSS_KM_KEYINFO2' size-in-bits='512' is-struct='yes' visibility='default' id='type-id-836'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='versionInfo' type-id='type-id-834' visibility='default'/>
+ <var-decl name='versionInfo' type-id='type-id-837' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='keyUUID' type-id='type-id-835' visibility='default'/>
+ <var-decl name='keyUUID' type-id='type-id-838' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='160'>
- <var-decl name='parentKeyUUID' type-id='type-id-835' visibility='default'/>
+ <var-decl name='parentKeyUUID' type-id='type-id-838' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='288'>
- <var-decl name='bAuthDataUsage' type-id='type-id-836' visibility='default'/>
+ <var-decl name='bAuthDataUsage' type-id='type-id-839' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='persistentStorageType' type-id='type-id-837' visibility='default'/>
+ <var-decl name='persistentStorageType' type-id='type-id-840' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='352'>
- <var-decl name='persistentStorageTypeParent' type-id='type-id-837' visibility='default'/>
+ <var-decl name='persistentStorageTypeParent' type-id='type-id-840' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='fIsLoaded' type-id='type-id-838' visibility='default'/>
+ <var-decl name='fIsLoaded' type-id='type-id-841' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='416'>
- <var-decl name='ulVendorDataLength' type-id='type-id-830' visibility='default'/>
+ <var-decl name='ulVendorDataLength' type-id='type-id-833' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
- <var-decl name='rgbVendorData' type-id='type-id-839' visibility='default'/>
+ <var-decl name='rgbVendorData' type-id='type-id-842' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='tdTSS_VERSION' size-in-bits='32' is-struct='yes' visibility='default' id='type-id-840'>
+ <class-decl name='tdTSS_VERSION' size-in-bits='32' is-struct='yes' visibility='default' id='type-id-843'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='bMajor' type-id='type-id-836' visibility='default'/>
+ <var-decl name='bMajor' type-id='type-id-839' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='8'>
- <var-decl name='bMinor' type-id='type-id-836' visibility='default'/>
+ <var-decl name='bMinor' type-id='type-id-839' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='16'>
- <var-decl name='bRevMajor' type-id='type-id-836' visibility='default'/>
+ <var-decl name='bRevMajor' type-id='type-id-839' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='24'>
- <var-decl name='bRevMinor' type-id='type-id-836' visibility='default'/>
+ <var-decl name='bRevMinor' type-id='type-id-839' visibility='default'/>
</data-member>
</class-decl>
- <typedef-decl name='BYTE' type-id='type-id-16' id='type-id-836'/>
- <typedef-decl name='TSS_VERSION' type-id='type-id-840' id='type-id-834'/>
- <class-decl name='tdTSS_UUID' size-in-bits='128' is-struct='yes' visibility='default' id='type-id-841'>
+ <typedef-decl name='BYTE' type-id='type-id-16' id='type-id-839'/>
+ <typedef-decl name='TSS_VERSION' type-id='type-id-843' id='type-id-837'/>
+ <class-decl name='tdTSS_UUID' size-in-bits='128' is-struct='yes' visibility='default' id='type-id-844'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='ulTimeLow' type-id='type-id-830' visibility='default'/>
+ <var-decl name='ulTimeLow' type-id='type-id-833' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='usTimeMid' type-id='type-id-842' visibility='default'/>
+ <var-decl name='usTimeMid' type-id='type-id-845' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='48'>
- <var-decl name='usTimeHigh' type-id='type-id-842' visibility='default'/>
+ <var-decl name='usTimeHigh' type-id='type-id-845' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='bClockSeqHigh' type-id='type-id-836' visibility='default'/>
+ <var-decl name='bClockSeqHigh' type-id='type-id-839' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='72'>
- <var-decl name='bClockSeqLow' type-id='type-id-836' visibility='default'/>
+ <var-decl name='bClockSeqLow' type-id='type-id-839' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='80'>
- <var-decl name='rgbNode' type-id='type-id-843' visibility='default'/>
+ <var-decl name='rgbNode' type-id='type-id-846' visibility='default'/>
</data-member>
</class-decl>
- <typedef-decl name='UINT16' type-id='type-id-11' id='type-id-842'/>
+ <typedef-decl name='UINT16' type-id='type-id-11' id='type-id-845'/>
- <array-type-def dimensions='1' type-id='type-id-836' size-in-bits='48' id='type-id-843'>
- <subrange length='6' type-id='type-id-38' id='type-id-230'/>
+ <array-type-def dimensions='1' type-id='type-id-839' size-in-bits='48' id='type-id-846'>
+ <subrange length='6' type-id='type-id-38' id='type-id-231'/>
</array-type-def>
- <typedef-decl name='TSS_UUID' type-id='type-id-841' id='type-id-835'/>
- <typedef-decl name='TSS_FLAG' type-id='type-id-830' id='type-id-837'/>
- <type-decl name='signed char' size-in-bits='8' id='type-id-844'/>
- <typedef-decl name='__int8_t' type-id='type-id-844' id='type-id-845'/>
- <typedef-decl name='int8_t' type-id='type-id-845' id='type-id-846'/>
- <typedef-decl name='TSS_BOOL' type-id='type-id-846' id='type-id-838'/>
- <pointer-type-def type-id='type-id-836' size-in-bits='64' id='type-id-839'/>
- <typedef-decl name='TSS_KM_KEYINFO2' type-id='type-id-833' id='type-id-847'/>
- <pointer-type-def type-id='type-id-847' size-in-bits='64' id='type-id-831'/>
- <typedef-decl name='TSS_HOBJECT' type-id='type-id-830' id='type-id-848'/>
- <typedef-decl name='TSS_HCONTEXT' type-id='type-id-848' id='type-id-832'/>
- <pointer-type-def type-id='type-id-829' size-in-bits='64' id='type-id-849'/>
- <typedef-decl name='gnutls_tpm_key_list_t' type-id='type-id-849' id='type-id-850'/>
- <pointer-type-def type-id='type-id-850' size-in-bits='64' id='type-id-851'/>
+ <typedef-decl name='TSS_UUID' type-id='type-id-844' id='type-id-838'/>
+ <typedef-decl name='TSS_FLAG' type-id='type-id-833' id='type-id-840'/>
+ <type-decl name='signed char' size-in-bits='8' id='type-id-847'/>
+ <typedef-decl name='__int8_t' type-id='type-id-847' id='type-id-848'/>
+ <typedef-decl name='int8_t' type-id='type-id-848' id='type-id-849'/>
+ <typedef-decl name='TSS_BOOL' type-id='type-id-849' id='type-id-841'/>
+ <pointer-type-def type-id='type-id-839' size-in-bits='64' id='type-id-842'/>
+ <typedef-decl name='TSS_KM_KEYINFO2' type-id='type-id-836' id='type-id-850'/>
+ <pointer-type-def type-id='type-id-850' size-in-bits='64' id='type-id-834'/>
+ <typedef-decl name='TSS_HOBJECT' type-id='type-id-833' id='type-id-851'/>
+ <typedef-decl name='TSS_HCONTEXT' type-id='type-id-851' id='type-id-835'/>
+ <pointer-type-def type-id='type-id-832' size-in-bits='64' id='type-id-852'/>
+ <typedef-decl name='gnutls_tpm_key_list_t' type-id='type-id-852' id='type-id-853'/>
+ <pointer-type-def type-id='type-id-853' size-in-bits='64' id='type-id-854'/>
<function-decl name='gnutls_tpm_get_registered' mangled-name='gnutls_tpm_get_registered' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_tpm_get_registered@@GNUTLS_3_4'>
- <parameter type-id='type-id-851' name='list'/>
+ <parameter type-id='type-id-854' name='list'/>
<return type-id='type-id-22'/>
</function-decl>
- <pointer-type-def type-id='type-id-376' size-in-bits='64' id='type-id-852'/>
+ <pointer-type-def type-id='type-id-379' size-in-bits='64' id='type-id-855'/>
<function-decl name='gnutls_tpm_key_list_get_url' mangled-name='gnutls_tpm_key_list_get_url' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_tpm_key_list_get_url@@GNUTLS_3_4'>
- <parameter type-id='type-id-850' name='list'/>
+ <parameter type-id='type-id-853' name='list'/>
<parameter type-id='type-id-10' name='idx'/>
- <parameter type-id='type-id-852' name='url'/>
+ <parameter type-id='type-id-855' name='url'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_tpm_key_list_deinit' mangled-name='gnutls_tpm_key_list_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_tpm_key_list_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-850' name='list'/>
+ <parameter type-id='type-id-853' name='list'/>
<return type-id='type-id-111'/>
</function-decl>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-853'>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-856'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_TPMKEY_FMT_RAW' value='0'/>
<enumerator name='GNUTLS_TPMKEY_FMT_DER' value='0'/>
<enumerator name='GNUTLS_TPMKEY_FMT_CTK_PEM' value='1'/>
</enum-decl>
- <typedef-decl name='gnutls_tpmkey_fmt_t' type-id='type-id-853' id='type-id-854'/>
+ <typedef-decl name='gnutls_tpmkey_fmt_t' type-id='type-id-856' id='type-id-857'/>
<function-decl name='gnutls_tpm_privkey_generate' mangled-name='gnutls_tpm_privkey_generate' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_tpm_privkey_generate@@GNUTLS_3_4'>
<parameter type-id='type-id-60' name='pk'/>
<parameter type-id='type-id-10' name='bits'/>
<parameter type-id='type-id-27' name='srk_password'/>
<parameter type-id='type-id-27' name='key_password'/>
- <parameter type-id='type-id-854' name='format'/>
- <parameter type-id='type-id-421' name='pub_format'/>
- <parameter type-id='type-id-275' name='privkey'/>
- <parameter type-id='type-id-275' name='pubkey'/>
+ <parameter type-id='type-id-857' name='format'/>
+ <parameter type-id='type-id-424' name='pub_format'/>
+ <parameter type-id='type-id-278' name='privkey'/>
+ <parameter type-id='type-id-278' name='pubkey'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pubkey_import_tpm_url' mangled-name='gnutls_pubkey_import_tpm_url' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_import_tpm_url@@GNUTLS_3_4'>
- <parameter type-id='type-id-267' name='pkey'/>
+ <parameter type-id='type-id-270' name='pkey'/>
<parameter type-id='type-id-27' name='url'/>
<parameter type-id='type-id-27' name='srk_password'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_privkey_import_tpm_url' mangled-name='gnutls_privkey_import_tpm_url' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_import_tpm_url@@GNUTLS_3_4'>
- <parameter type-id='type-id-401' name='pkey'/>
+ <parameter type-id='type-id-404' name='pkey'/>
<parameter type-id='type-id-27' name='url'/>
<parameter type-id='type-id-27' name='srk_password'/>
<parameter type-id='type-id-27' name='key_password'/>
@@ -10630,18 +10714,18 @@
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_privkey_import_tpm_raw' mangled-name='gnutls_privkey_import_tpm_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_import_tpm_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-401' name='pkey'/>
+ <parameter type-id='type-id-404' name='pkey'/>
<parameter type-id='type-id-57' name='fdata'/>
- <parameter type-id='type-id-854' name='format'/>
+ <parameter type-id='type-id-857' name='format'/>
<parameter type-id='type-id-27' name='srk_password'/>
<parameter type-id='type-id-27' name='key_password'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pubkey_import_tpm_raw' mangled-name='gnutls_pubkey_import_tpm_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_import_tpm_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-267' name='pkey'/>
+ <parameter type-id='type-id-270' name='pkey'/>
<parameter type-id='type-id-57' name='fdata'/>
- <parameter type-id='type-id-854' name='format'/>
+ <parameter type-id='type-id-857' name='format'/>
<parameter type-id='type-id-27' name='srk_password'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
@@ -10692,7 +10776,7 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='fips.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='fips.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<var-decl name='_gnutls_lib_state' type-id='type-id-10' visibility='default'/>
<function-decl name='_gnutls_lib_force_operational' mangled-name='_gnutls_lib_force_operational' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls_lib_force_operational@@GNUTLS_PRIVATE_3_4'>
<return type-id='type-id-111'/>
@@ -10700,7 +10784,7 @@
<function-decl name='_gnutls_lib_simulate_error' mangled-name='_gnutls_lib_simulate_error' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls_lib_simulate_error@@GNUTLS_PRIVATE_3_4'>
<return type-id='type-id-111'/>
</function-decl>
- <enum-decl name='gnutls_fips_mode_t' id='type-id-855'>
+ <enum-decl name='gnutls_fips_mode_t' id='type-id-858'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_FIPS140_DISABLED' value='0'/>
<enumerator name='GNUTLS_FIPS140_STRICT' value='1'/>
@@ -10708,9 +10792,9 @@
<enumerator name='GNUTLS_FIPS140_LAX' value='3'/>
<enumerator name='GNUTLS_FIPS140_LOG' value='4'/>
</enum-decl>
- <typedef-decl name='gnutls_fips_mode_t' type-id='type-id-855' id='type-id-856'/>
+ <typedef-decl name='gnutls_fips_mode_t' type-id='type-id-858' id='type-id-859'/>
<function-decl name='gnutls_fips140_set_mode' mangled-name='gnutls_fips140_set_mode' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_fips140_set_mode@@GNUTLS_3_6_3'>
- <parameter type-id='type-id-856' name='mode'/>
+ <parameter type-id='type-id-859' name='mode'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-111'/>
</function-decl>
@@ -10718,7 +10802,7 @@
<return type-id='type-id-10'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='safe-memfuncs.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='safe-memfuncs.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_memcmp' mangled-name='gnutls_memcmp' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_memcmp@@GNUTLS_3_4'>
<parameter type-id='type-id-101' name='s1'/>
<parameter type-id='type-id-101' name='s2'/>
@@ -10731,37 +10815,37 @@
<parameter type-id='type-id-99' name='size'/>
<return type-id='type-id-111'/>
</function-decl>
- <function-decl name='explicit_bzero' mangled-name='explicit_bzero' visibility='default' binding='global' size-in-bits='64'>
+ <function-decl name='__explicit_bzero_chk' mangled-name='__explicit_bzero_chk' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='atfork.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='atfork.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<var-decl name='_gnutls_forkid' type-id='type-id-10' visibility='default'/>
<function-decl name='__register_atfork' mangled-name='__register_atfork' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='randomart.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
- <enum-decl name='gnutls_random_art' id='type-id-857'>
+ <abi-instr version='1.0' address-size='64' path='randomart.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
+ <enum-decl name='gnutls_random_art' id='type-id-860'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_RANDOM_ART_OPENSSH' value='1'/>
</enum-decl>
- <typedef-decl name='gnutls_random_art_t' type-id='type-id-857' id='type-id-858'/>
+ <typedef-decl name='gnutls_random_art_t' type-id='type-id-860' id='type-id-861'/>
<function-decl name='gnutls_random_art' mangled-name='gnutls_random_art' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_random_art@@GNUTLS_3_4'>
- <parameter type-id='type-id-858' name='type'/>
+ <parameter type-id='type-id-861' name='type'/>
<parameter type-id='type-id-27' name='key_type'/>
<parameter type-id='type-id-10' name='key_size'/>
<parameter type-id='type-id-101' name='fpr'/>
<parameter type-id='type-id-99' name='fpr_size'/>
- <parameter type-id='type-id-275' name='art'/>
+ <parameter type-id='type-id-278' name='art'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='_gnutls_key_fingerprint_randomart' mangled-name='_gnutls_key_fingerprint_randomart' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='urls.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
- <class-decl name='gnutls_custom_url_st' size-in-bits='512' is-struct='yes' visibility='default' id='type-id-859'>
+ <abi-instr version='1.0' address-size='64' path='urls.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
+ <class-decl name='gnutls_custom_url_st' size-in-bits='512' is-struct='yes' visibility='default' id='type-id-862'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='name' type-id='type-id-27' visibility='default'/>
</data-member>
@@ -10769,16 +10853,16 @@
<var-decl name='name_size' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='import_key' type-id='type-id-860' visibility='default'/>
+ <var-decl name='import_key' type-id='type-id-863' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='import_crt' type-id='type-id-861' visibility='default'/>
+ <var-decl name='import_crt' type-id='type-id-864' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='import_pubkey' type-id='type-id-862' visibility='default'/>
+ <var-decl name='import_pubkey' type-id='type-id-865' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='get_issuer' type-id='type-id-863' visibility='default'/>
+ <var-decl name='get_issuer' type-id='type-id-866' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
<var-decl name='future1' type-id='type-id-101' visibility='default'/>
@@ -10787,30 +10871,30 @@
<var-decl name='future2' type-id='type-id-101' visibility='default'/>
</data-member>
</class-decl>
- <typedef-decl name='gnutls_privkey_t' type-id='type-id-162' id='type-id-864'/>
- <pointer-type-def type-id='type-id-865' size-in-bits='64' id='type-id-866'/>
- <typedef-decl name='gnutls_privkey_import_url_func' type-id='type-id-866' id='type-id-860'/>
- <class-decl name='gnutls_x509_crt_int' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-867'/>
- <pointer-type-def type-id='type-id-867' size-in-bits='64' id='type-id-868'/>
- <typedef-decl name='gnutls_x509_crt_t' type-id='type-id-868' id='type-id-869'/>
+ <typedef-decl name='gnutls_privkey_t' type-id='type-id-163' id='type-id-867'/>
+ <pointer-type-def type-id='type-id-868' size-in-bits='64' id='type-id-869'/>
+ <typedef-decl name='gnutls_privkey_import_url_func' type-id='type-id-869' id='type-id-863'/>
+ <class-decl name='gnutls_x509_crt_int' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-870'/>
<pointer-type-def type-id='type-id-870' size-in-bits='64' id='type-id-871'/>
- <typedef-decl name='gnutls_x509_crt_import_url_func' type-id='type-id-871' id='type-id-861'/>
- <pointer-type-def type-id='type-id-872' size-in-bits='64' id='type-id-873'/>
- <typedef-decl name='gnutls_pubkey_import_url_func' type-id='type-id-873' id='type-id-862'/>
- <pointer-type-def type-id='type-id-874' size-in-bits='64' id='type-id-875'/>
- <typedef-decl name='gnutls_get_raw_issuer_func' type-id='type-id-875' id='type-id-863'/>
- <typedef-decl name='gnutls_custom_url_st' type-id='type-id-859' id='type-id-876'/>
+ <typedef-decl name='gnutls_x509_crt_t' type-id='type-id-871' id='type-id-872'/>
+ <pointer-type-def type-id='type-id-873' size-in-bits='64' id='type-id-874'/>
+ <typedef-decl name='gnutls_x509_crt_import_url_func' type-id='type-id-874' id='type-id-864'/>
+ <pointer-type-def type-id='type-id-875' size-in-bits='64' id='type-id-876'/>
+ <typedef-decl name='gnutls_pubkey_import_url_func' type-id='type-id-876' id='type-id-865'/>
+ <pointer-type-def type-id='type-id-877' size-in-bits='64' id='type-id-878'/>
+ <typedef-decl name='gnutls_get_raw_issuer_func' type-id='type-id-878' id='type-id-866'/>
+ <typedef-decl name='gnutls_custom_url_st' type-id='type-id-862' id='type-id-879'/>
- <array-type-def dimensions='1' type-id='type-id-876' size-in-bits='infinite' id='type-id-877'>
- <subrange length='infinite' id='type-id-878'/>
+ <array-type-def dimensions='1' type-id='type-id-879' size-in-bits='infinite' id='type-id-880'>
+ <subrange length='infinite' id='type-id-881'/>
</array-type-def>
- <var-decl name='_gnutls_custom_urls' type-id='type-id-877' visibility='default'/>
+ <var-decl name='_gnutls_custom_urls' type-id='type-id-880' visibility='default'/>
<var-decl name='_gnutls_custom_urls_size' type-id='type-id-10' visibility='default'/>
- <qualified-type-def type-id='type-id-876' const='yes' id='type-id-879'/>
- <pointer-type-def type-id='type-id-879' size-in-bits='64' id='type-id-880'/>
+ <qualified-type-def type-id='type-id-879' const='yes' id='type-id-882'/>
+ <pointer-type-def type-id='type-id-882' size-in-bits='64' id='type-id-883'/>
<function-decl name='gnutls_register_custom_url' mangled-name='gnutls_register_custom_url' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_register_custom_url@@GNUTLS_3_4'>
- <parameter type-id='type-id-880' name='st'/>
+ <parameter type-id='type-id-883' name='st'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_url_is_supported' mangled-name='gnutls_url_is_supported' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_url_is_supported@@GNUTLS_3_4'>
@@ -10820,72 +10904,72 @@
<function-decl name='gnutls_pkcs11_get_raw_issuer' mangled-name='gnutls_pkcs11_get_raw_issuer' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-type size-in-bits='64' id='type-id-874'>
+ <function-type size-in-bits='64' id='type-id-877'>
<parameter type-id='type-id-27'/>
- <parameter type-id='type-id-869'/>
- <parameter type-id='type-id-275'/>
+ <parameter type-id='type-id-872'/>
+ <parameter type-id='type-id-278'/>
<parameter type-id='type-id-10'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-865'>
- <parameter type-id='type-id-864'/>
+ <function-type size-in-bits='64' id='type-id-868'>
+ <parameter type-id='type-id-867'/>
<parameter type-id='type-id-27'/>
<parameter type-id='type-id-10'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-872'>
- <parameter type-id='type-id-267'/>
+ <function-type size-in-bits='64' id='type-id-875'>
+ <parameter type-id='type-id-270'/>
<parameter type-id='type-id-27'/>
<parameter type-id='type-id-10'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-870'>
- <parameter type-id='type-id-869'/>
+ <function-type size-in-bits='64' id='type-id-873'>
+ <parameter type-id='type-id-872'/>
<parameter type-id='type-id-27'/>
<parameter type-id='type-id-10'/>
<return type-id='type-id-22'/>
</function-type>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='prf.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='prf.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_prf' mangled-name='gnutls_prf' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_prf@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-99' name='label_size'/>
<parameter type-id='type-id-27' name='label'/>
<parameter type-id='type-id-22' name='server_random_first'/>
<parameter type-id='type-id-99' name='extra_size'/>
<parameter type-id='type-id-27' name='extra'/>
<parameter type-id='type-id-99' name='outsize'/>
- <parameter type-id='type-id-376' name='out'/>
+ <parameter type-id='type-id-379' name='out'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_prf_early' mangled-name='gnutls_prf_early' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_prf_early@@GNUTLS_3_6_8'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-99' name='label_size'/>
<parameter type-id='type-id-27' name='label'/>
<parameter type-id='type-id-99' name='context_size'/>
<parameter type-id='type-id-27' name='context'/>
<parameter type-id='type-id-99' name='outsize'/>
- <parameter type-id='type-id-376' name='out'/>
+ <parameter type-id='type-id-379' name='out'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_prf_rfc5705' mangled-name='gnutls_prf_rfc5705' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_prf_rfc5705@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-99' name='label_size'/>
<parameter type-id='type-id-27' name='label'/>
<parameter type-id='type-id-99' name='context_size'/>
<parameter type-id='type-id-27' name='context'/>
<parameter type-id='type-id-99' name='outsize'/>
- <parameter type-id='type-id-376' name='out'/>
+ <parameter type-id='type-id-379' name='out'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_prf_raw' mangled-name='gnutls_prf_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_prf_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-99' name='label_size'/>
<parameter type-id='type-id-27' name='label'/>
<parameter type-id='type-id-99' name='seed_size'/>
<parameter type-id='type-id-27' name='seed'/>
<parameter type-id='type-id-99' name='outsize'/>
- <parameter type-id='type-id-376' name='out'/>
+ <parameter type-id='type-id-379' name='out'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='_tls13_derive_secret2' mangled-name='_tls13_derive_secret2' visibility='default' binding='global' size-in-bits='64'>
@@ -10895,20 +10979,20 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='auto-verify.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='auto-verify.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_session_get_verify_cert_status' mangled-name='gnutls_session_get_verify_cert_status' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_session_get_verify_cert_status@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<return type-id='type-id-10'/>
</function-decl>
<function-decl name='gnutls_session_set_verify_cert2' mangled-name='gnutls_session_set_verify_cert2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_session_set_verify_cert2@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
- <parameter type-id='type-id-172' name='data'/>
+ <parameter type-id='type-id-416' name='session'/>
+ <parameter type-id='type-id-173' name='data'/>
<parameter type-id='type-id-10' name='elements'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_session_set_verify_cert' mangled-name='gnutls_session_set_verify_cert' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_session_set_verify_cert@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<parameter type-id='type-id-27' name='hostname'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-111'/>
@@ -10923,99 +11007,99 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='dh-session.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='dh-session.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_dh_get_peers_public_bits' mangled-name='gnutls_dh_get_peers_public_bits' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_dh_get_peers_public_bits@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_dh_get_prime_bits' mangled-name='gnutls_dh_get_prime_bits' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_dh_get_prime_bits@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_dh_get_secret_bits' mangled-name='gnutls_dh_get_secret_bits' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_dh_get_secret_bits@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_dh_get_pubkey' mangled-name='gnutls_dh_get_pubkey' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_dh_get_pubkey@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
- <parameter type-id='type-id-275' name='raw_key'/>
+ <parameter type-id='type-id-416' name='session'/>
+ <parameter type-id='type-id-278' name='raw_key'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_dh_get_group' mangled-name='gnutls_dh_get_group' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_dh_get_group@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
- <parameter type-id='type-id-275' name='raw_gen'/>
- <parameter type-id='type-id-275' name='raw_prime'/>
+ <parameter type-id='type-id-416' name='session'/>
+ <parameter type-id='type-id-278' name='raw_gen'/>
+ <parameter type-id='type-id-278' name='raw_prime'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_dh_set_prime_bits' mangled-name='gnutls_dh_set_prime_bits' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_dh_set_prime_bits@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<parameter type-id='type-id-10' name='bits'/>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='cert-session.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='cert-session.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_certificate_activation_time_peers' mangled-name='gnutls_certificate_activation_time_peers' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_activation_time_peers@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<return type-id='type-id-17'/>
</function-decl>
<function-decl name='gnutls_certificate_expiration_time_peers' mangled-name='gnutls_certificate_expiration_time_peers' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_expiration_time_peers@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<return type-id='type-id-17'/>
</function-decl>
<function-decl name='gnutls_certificate_verify_peers3' mangled-name='gnutls_certificate_verify_peers3' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_verify_peers3@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<parameter type-id='type-id-27' name='hostname'/>
- <parameter type-id='type-id-419' name='status'/>
+ <parameter type-id='type-id-422' name='status'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_certificate_verify_peers2' mangled-name='gnutls_certificate_verify_peers2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_verify_peers2@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
- <parameter type-id='type-id-419' name='status'/>
+ <parameter type-id='type-id-416' name='session'/>
+ <parameter type-id='type-id-422' name='status'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_certificate_set_verify_limits' mangled-name='gnutls_certificate_set_verify_limits' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_verify_limits@@GNUTLS_3_4'>
- <parameter type-id='type-id-727' name='res'/>
+ <parameter type-id='type-id-730' name='res'/>
<parameter type-id='type-id-10' name='max_bits'/>
<parameter type-id='type-id-10' name='max_depth'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_certificate_get_verify_flags' mangled-name='gnutls_certificate_get_verify_flags' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_get_verify_flags@@GNUTLS_3_4'>
- <parameter type-id='type-id-727' name='res'/>
+ <parameter type-id='type-id-730' name='res'/>
<return type-id='type-id-10'/>
</function-decl>
<function-decl name='gnutls_certificate_set_verify_flags' mangled-name='gnutls_certificate_set_verify_flags' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_verify_flags@@GNUTLS_3_4'>
- <parameter type-id='type-id-727' name='res'/>
+ <parameter type-id='type-id-730' name='res'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_certificate_set_flags' mangled-name='gnutls_certificate_set_flags' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_flags@@GNUTLS_3_4'>
- <parameter type-id='type-id-727' name='res'/>
+ <parameter type-id='type-id-730' name='res'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_certificate_set_params_function' mangled-name='gnutls_certificate_set_params_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_params_function@@GNUTLS_3_4'>
- <parameter type-id='type-id-727' name='res'/>
- <parameter type-id='type-id-433' name='func'/>
+ <parameter type-id='type-id-730' name='res'/>
+ <parameter type-id='type-id-436' name='func'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_certificate_client_get_request_status' mangled-name='gnutls_certificate_client_get_request_status' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_client_get_request_status@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<return type-id='type-id-10'/>
</function-decl>
<function-decl name='gnutls_certificate_get_peers' mangled-name='gnutls_certificate_get_peers' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_get_peers@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
- <parameter type-id='type-id-419' name='list_size'/>
+ <parameter type-id='type-id-416' name='session'/>
+ <parameter type-id='type-id-422' name='list_size'/>
<return type-id='type-id-57'/>
</function-decl>
<function-decl name='gnutls_certificate_get_ours' mangled-name='gnutls_certificate_get_ours' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_get_ours@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<return type-id='type-id-57'/>
</function-decl>
<function-decl name='gnutls_certificate_verify_peers' mangled-name='gnutls_certificate_verify_peers' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_verify_peers@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
- <parameter type-id='type-id-172' name='data'/>
+ <parameter type-id='type-id-416' name='session'/>
+ <parameter type-id='type-id-173' name='data'/>
<parameter type-id='type-id-10' name='elements'/>
- <parameter type-id='type-id-419' name='status'/>
+ <parameter type-id='type-id-422' name='status'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_activation_time' mangled-name='gnutls_x509_crt_get_activation_time' visibility='default' binding='global' size-in-bits='64'>
@@ -11067,7 +11151,7 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='dh-primes.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='dh-primes.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<var-decl name='gnutls_ffdhe_2048_group_prime' type-id='type-id-65' mangled-name='gnutls_ffdhe_2048_group_prime' visibility='default' elf-symbol-id='gnutls_ffdhe_2048_group_prime@@GNUTLS_3_4'/>
<var-decl name='gnutls_ffdhe_2048_group_q' type-id='type-id-65' mangled-name='gnutls_ffdhe_2048_group_q' visibility='default' elf-symbol-id='gnutls_ffdhe_2048_group_q@@GNUTLS_3_6_8'/>
<var-decl name='gnutls_ffdhe_2048_group_generator' type-id='type-id-65' mangled-name='gnutls_ffdhe_2048_group_generator' visibility='default' elf-symbol-id='gnutls_ffdhe_2048_group_generator@@GNUTLS_3_4'/>
@@ -11089,257 +11173,257 @@
<var-decl name='gnutls_ffdhe_8192_group_generator' type-id='type-id-65' mangled-name='gnutls_ffdhe_8192_group_generator' visibility='default' elf-symbol-id='gnutls_ffdhe_8192_group_generator@@GNUTLS_3_4'/>
<var-decl name='gnutls_ffdhe_8192_key_bits' type-id='type-id-66' mangled-name='gnutls_ffdhe_8192_key_bits' visibility='default' elf-symbol-id='gnutls_ffdhe_8192_key_bits@@GNUTLS_3_4'/>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='openpgp_compat.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='openpgp_compat.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_openpgp_privkey_sign_hash' mangled-name='gnutls_openpgp_privkey_sign_hash' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_openpgp_privkey_sign_hash@@GNUTLS_3_4'>
- <parameter type-id='type-id-477' name='key'/>
+ <parameter type-id='type-id-480' name='key'/>
<parameter type-id='type-id-57' name='hash'/>
- <parameter type-id='type-id-275' name='signature'/>
+ <parameter type-id='type-id-278' name='signature'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_certificate_get_peers_subkey_id' mangled-name='gnutls_certificate_get_peers_subkey_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_get_peers_subkey_id@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
- <parameter type-id='type-id-275' name='session_id'/>
+ <parameter type-id='type-id-237' name='session'/>
+ <parameter type-id='type-id-278' name='session_id'/>
<return type-id='type-id-22'/>
</function-decl>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-881'>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-884'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_OPENPGP_CERT' value='0'/>
<enumerator name='GNUTLS_OPENPGP_CERT_FINGERPRINT' value='1'/>
</enum-decl>
- <typedef-decl name='gnutls_openpgp_crt_status_t' type-id='type-id-881' id='type-id-882'/>
+ <typedef-decl name='gnutls_openpgp_crt_status_t' type-id='type-id-884' id='type-id-885'/>
<function-decl name='gnutls_openpgp_send_cert' mangled-name='gnutls_openpgp_send_cert' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_openpgp_send_cert@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
- <parameter type-id='type-id-882' name='status'/>
+ <parameter type-id='type-id-237' name='session'/>
+ <parameter type-id='type-id-885' name='status'/>
<return type-id='type-id-111'/>
</function-decl>
- <enum-decl name='gnutls_openpgp_crt_fmt' id='type-id-883'>
+ <enum-decl name='gnutls_openpgp_crt_fmt' id='type-id-886'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_OPENPGP_FMT_RAW' value='0'/>
<enumerator name='GNUTLS_OPENPGP_FMT_BASE64' value='1'/>
</enum-decl>
- <typedef-decl name='gnutls_openpgp_crt_fmt_t' type-id='type-id-883' id='type-id-884'/>
+ <typedef-decl name='gnutls_openpgp_crt_fmt_t' type-id='type-id-886' id='type-id-887'/>
<function-decl name='gnutls_privkey_import_openpgp_raw' mangled-name='gnutls_privkey_import_openpgp_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_privkey_import_openpgp_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-864' name='pkey'/>
+ <parameter type-id='type-id-867' name='pkey'/>
<parameter type-id='type-id-57' name='data'/>
- <parameter type-id='type-id-884' name='format'/>
- <parameter type-id='type-id-346' name='keyid'/>
+ <parameter type-id='type-id-887' name='format'/>
+ <parameter type-id='type-id-349' name='keyid'/>
<parameter type-id='type-id-27' name='password'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pubkey_get_openpgp_key_id' mangled-name='gnutls_pubkey_get_openpgp_key_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_get_openpgp_key_id@@GNUTLS_3_4'>
- <parameter type-id='type-id-267' name='key'/>
+ <parameter type-id='type-id-270' name='key'/>
<parameter type-id='type-id-10' name='flags'/>
<parameter type-id='type-id-64' name='output_data'/>
- <parameter type-id='type-id-422' name='output_data_size'/>
- <parameter type-id='type-id-419' name='subkey'/>
+ <parameter type-id='type-id-425' name='output_data_size'/>
+ <parameter type-id='type-id-422' name='subkey'/>
<return type-id='type-id-22'/>
</function-decl>
- <class-decl name='gnutls_certificate_credentials_st' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-885'/>
- <pointer-type-def type-id='type-id-885' size-in-bits='64' id='type-id-886'/>
- <typedef-decl name='gnutls_certificate_credentials_t' type-id='type-id-886' id='type-id-887'/>
+ <class-decl name='gnutls_certificate_credentials_st' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-888'/>
+ <pointer-type-def type-id='type-id-888' size-in-bits='64' id='type-id-889'/>
+ <typedef-decl name='gnutls_certificate_credentials_t' type-id='type-id-889' id='type-id-890'/>
<function-decl name='gnutls_certificate_set_openpgp_keyring_mem' mangled-name='gnutls_certificate_set_openpgp_keyring_mem' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_openpgp_keyring_mem@@GNUTLS_3_4'>
- <parameter type-id='type-id-887' name='c'/>
- <parameter type-id='type-id-346' name='data'/>
+ <parameter type-id='type-id-890' name='c'/>
+ <parameter type-id='type-id-349' name='data'/>
<parameter type-id='type-id-99' name='dlen'/>
- <parameter type-id='type-id-884' name='format'/>
+ <parameter type-id='type-id-887' name='format'/>
<return type-id='type-id-22'/>
</function-decl>
- <pointer-type-def type-id='type-id-888' size-in-bits='64' id='type-id-889'/>
- <typedef-decl name='gnutls_openpgp_recv_key_func' type-id='type-id-889' id='type-id-890'/>
+ <pointer-type-def type-id='type-id-891' size-in-bits='64' id='type-id-892'/>
+ <typedef-decl name='gnutls_openpgp_recv_key_func' type-id='type-id-892' id='type-id-893'/>
<function-decl name='gnutls_openpgp_set_recv_key_function' mangled-name='gnutls_openpgp_set_recv_key_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_openpgp_set_recv_key_function@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
- <parameter type-id='type-id-890' name='func'/>
+ <parameter type-id='type-id-237' name='session'/>
+ <parameter type-id='type-id-893' name='func'/>
<return type-id='type-id-111'/>
</function-decl>
- <class-decl name='gnutls_openpgp_keyring_int' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-891'/>
- <pointer-type-def type-id='type-id-891' size-in-bits='64' id='type-id-892'/>
- <typedef-decl name='gnutls_openpgp_keyring_t' type-id='type-id-892' id='type-id-893'/>
+ <class-decl name='gnutls_openpgp_keyring_int' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-894'/>
+ <pointer-type-def type-id='type-id-894' size-in-bits='64' id='type-id-895'/>
+ <typedef-decl name='gnutls_openpgp_keyring_t' type-id='type-id-895' id='type-id-896'/>
<function-decl name='gnutls_openpgp_crt_verify_ring' mangled-name='gnutls_openpgp_crt_verify_ring' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_openpgp_crt_verify_ring@@GNUTLS_3_4'>
- <parameter type-id='type-id-474' name='key'/>
- <parameter type-id='type-id-893' name='keyring'/>
+ <parameter type-id='type-id-477' name='key'/>
+ <parameter type-id='type-id-896' name='keyring'/>
<parameter type-id='type-id-10' name='flags'/>
- <parameter type-id='type-id-419' name='verify'/>
+ <parameter type-id='type-id-422' name='verify'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_openpgp_privkey_export2' mangled-name='gnutls_openpgp_privkey_export2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_openpgp_privkey_export2@@GNUTLS_3_4'>
- <parameter type-id='type-id-477' name='key'/>
- <parameter type-id='type-id-884' name='format'/>
+ <parameter type-id='type-id-480' name='key'/>
+ <parameter type-id='type-id-887' name='format'/>
<parameter type-id='type-id-27' name='password'/>
<parameter type-id='type-id-10' name='flags'/>
- <parameter type-id='type-id-275' name='out'/>
+ <parameter type-id='type-id-278' name='out'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_openpgp_privkey_export' mangled-name='gnutls_openpgp_privkey_export' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_openpgp_privkey_export@@GNUTLS_3_4'>
- <parameter type-id='type-id-477' name='key'/>
- <parameter type-id='type-id-884' name='format'/>
+ <parameter type-id='type-id-480' name='key'/>
+ <parameter type-id='type-id-887' name='format'/>
<parameter type-id='type-id-27' name='password'/>
<parameter type-id='type-id-10' name='flags'/>
<parameter type-id='type-id-101' name='output_data'/>
- <parameter type-id='type-id-422' name='output_data_size'/>
+ <parameter type-id='type-id-425' name='output_data_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_openpgp_privkey_export_rsa_raw' mangled-name='gnutls_openpgp_privkey_export_rsa_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_openpgp_privkey_export_rsa_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-477' name='pkey'/>
- <parameter type-id='type-id-275' name='m'/>
- <parameter type-id='type-id-275' name='e'/>
- <parameter type-id='type-id-275' name='d'/>
- <parameter type-id='type-id-275' name='p'/>
- <parameter type-id='type-id-275' name='q'/>
- <parameter type-id='type-id-275' name='u'/>
+ <parameter type-id='type-id-480' name='pkey'/>
+ <parameter type-id='type-id-278' name='m'/>
+ <parameter type-id='type-id-278' name='e'/>
+ <parameter type-id='type-id-278' name='d'/>
+ <parameter type-id='type-id-278' name='p'/>
+ <parameter type-id='type-id-278' name='q'/>
+ <parameter type-id='type-id-278' name='u'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_openpgp_privkey_export_dsa_raw' mangled-name='gnutls_openpgp_privkey_export_dsa_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_openpgp_privkey_export_dsa_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-477' name='pkey'/>
- <parameter type-id='type-id-275' name='p'/>
- <parameter type-id='type-id-275' name='q'/>
- <parameter type-id='type-id-275' name='g'/>
- <parameter type-id='type-id-275' name='y'/>
- <parameter type-id='type-id-275' name='x'/>
+ <parameter type-id='type-id-480' name='pkey'/>
+ <parameter type-id='type-id-278' name='p'/>
+ <parameter type-id='type-id-278' name='q'/>
+ <parameter type-id='type-id-278' name='g'/>
+ <parameter type-id='type-id-278' name='y'/>
+ <parameter type-id='type-id-278' name='x'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_openpgp_privkey_export_subkey_rsa_raw' mangled-name='gnutls_openpgp_privkey_export_subkey_rsa_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_openpgp_privkey_export_subkey_rsa_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-477' name='pkey'/>
+ <parameter type-id='type-id-480' name='pkey'/>
<parameter type-id='type-id-10' name='idx'/>
- <parameter type-id='type-id-275' name='m'/>
- <parameter type-id='type-id-275' name='e'/>
- <parameter type-id='type-id-275' name='d'/>
- <parameter type-id='type-id-275' name='p'/>
- <parameter type-id='type-id-275' name='q'/>
- <parameter type-id='type-id-275' name='u'/>
+ <parameter type-id='type-id-278' name='m'/>
+ <parameter type-id='type-id-278' name='e'/>
+ <parameter type-id='type-id-278' name='d'/>
+ <parameter type-id='type-id-278' name='p'/>
+ <parameter type-id='type-id-278' name='q'/>
+ <parameter type-id='type-id-278' name='u'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_openpgp_privkey_export_subkey_dsa_raw' mangled-name='gnutls_openpgp_privkey_export_subkey_dsa_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_openpgp_privkey_export_subkey_dsa_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-477' name='pkey'/>
+ <parameter type-id='type-id-480' name='pkey'/>
<parameter type-id='type-id-10' name='idx'/>
- <parameter type-id='type-id-275' name='p'/>
- <parameter type-id='type-id-275' name='q'/>
- <parameter type-id='type-id-275' name='g'/>
- <parameter type-id='type-id-275' name='y'/>
- <parameter type-id='type-id-275' name='x'/>
+ <parameter type-id='type-id-278' name='p'/>
+ <parameter type-id='type-id-278' name='q'/>
+ <parameter type-id='type-id-278' name='g'/>
+ <parameter type-id='type-id-278' name='y'/>
+ <parameter type-id='type-id-278' name='x'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_openpgp_privkey_get_subkey_pk_algorithm' mangled-name='gnutls_openpgp_privkey_get_subkey_pk_algorithm' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_openpgp_privkey_get_subkey_pk_algorithm@@GNUTLS_3_4'>
- <parameter type-id='type-id-477' name='key'/>
+ <parameter type-id='type-id-480' name='key'/>
<parameter type-id='type-id-10' name='idx'/>
- <parameter type-id='type-id-419' name='bits'/>
+ <parameter type-id='type-id-422' name='bits'/>
<return type-id='type-id-60'/>
</function-decl>
<function-decl name='gnutls_openpgp_privkey_sec_param' mangled-name='gnutls_openpgp_privkey_sec_param' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_openpgp_privkey_sec_param@@GNUTLS_3_4'>
- <parameter type-id='type-id-477' name='key'/>
- <return type-id='type-id-202'/>
+ <parameter type-id='type-id-480' name='key'/>
+ <return type-id='type-id-203'/>
</function-decl>
<function-decl name='gnutls_openpgp_crt_get_pk_dsa_raw' mangled-name='gnutls_openpgp_crt_get_pk_dsa_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_openpgp_crt_get_pk_dsa_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-474' name='crt'/>
- <parameter type-id='type-id-275' name='p'/>
- <parameter type-id='type-id-275' name='q'/>
- <parameter type-id='type-id-275' name='g'/>
- <parameter type-id='type-id-275' name='y'/>
+ <parameter type-id='type-id-477' name='crt'/>
+ <parameter type-id='type-id-278' name='p'/>
+ <parameter type-id='type-id-278' name='q'/>
+ <parameter type-id='type-id-278' name='g'/>
+ <parameter type-id='type-id-278' name='y'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_openpgp_crt_get_subkey_pk_dsa_raw' mangled-name='gnutls_openpgp_crt_get_subkey_pk_dsa_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_openpgp_crt_get_subkey_pk_dsa_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-474' name='crt'/>
+ <parameter type-id='type-id-477' name='crt'/>
<parameter type-id='type-id-10' name='idx'/>
- <parameter type-id='type-id-275' name='p'/>
- <parameter type-id='type-id-275' name='q'/>
- <parameter type-id='type-id-275' name='g'/>
- <parameter type-id='type-id-275' name='y'/>
+ <parameter type-id='type-id-278' name='p'/>
+ <parameter type-id='type-id-278' name='q'/>
+ <parameter type-id='type-id-278' name='g'/>
+ <parameter type-id='type-id-278' name='y'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_openpgp_crt_get_subkey_pk_algorithm' mangled-name='gnutls_openpgp_crt_get_subkey_pk_algorithm' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_openpgp_crt_get_subkey_pk_algorithm@@GNUTLS_3_4'>
- <parameter type-id='type-id-474' name='key'/>
+ <parameter type-id='type-id-477' name='key'/>
<parameter type-id='type-id-10' name='idx'/>
- <parameter type-id='type-id-419' name='bits'/>
+ <parameter type-id='type-id-422' name='bits'/>
<return type-id='type-id-60'/>
</function-decl>
<function-decl name='gnutls_openpgp_crt_get_name' mangled-name='gnutls_openpgp_crt_get_name' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_openpgp_crt_get_name@@GNUTLS_3_4'>
- <parameter type-id='type-id-474' name='key'/>
+ <parameter type-id='type-id-477' name='key'/>
<parameter type-id='type-id-22' name='idx'/>
- <parameter type-id='type-id-376' name='buf'/>
- <parameter type-id='type-id-422' name='sizeof_buf'/>
+ <parameter type-id='type-id-379' name='buf'/>
+ <parameter type-id='type-id-425' name='sizeof_buf'/>
<return type-id='type-id-22'/>
</function-decl>
- <pointer-type-def type-id='type-id-474' size-in-bits='64' id='type-id-894'/>
+ <pointer-type-def type-id='type-id-477' size-in-bits='64' id='type-id-897'/>
<function-decl name='gnutls_openpgp_crt_init' mangled-name='gnutls_openpgp_crt_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_openpgp_crt_init@@GNUTLS_3_4'>
- <parameter type-id='type-id-894' name='key'/>
+ <parameter type-id='type-id-897' name='key'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_openpgp_crt_deinit' mangled-name='gnutls_openpgp_crt_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_openpgp_crt_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-474' name='key'/>
+ <parameter type-id='type-id-477' name='key'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_openpgp_crt_import' mangled-name='gnutls_openpgp_crt_import' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_openpgp_crt_import@@GNUTLS_3_4'>
- <parameter type-id='type-id-474' name='key'/>
+ <parameter type-id='type-id-477' name='key'/>
<parameter type-id='type-id-57' name='data'/>
- <parameter type-id='type-id-884' name='format'/>
+ <parameter type-id='type-id-887' name='format'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_openpgp_crt_export' mangled-name='gnutls_openpgp_crt_export' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_openpgp_crt_export@@GNUTLS_3_4'>
- <parameter type-id='type-id-474' name='key'/>
- <parameter type-id='type-id-884' name='format'/>
+ <parameter type-id='type-id-477' name='key'/>
+ <parameter type-id='type-id-887' name='format'/>
<parameter type-id='type-id-101' name='output_data'/>
- <parameter type-id='type-id-422' name='output_data_size'/>
+ <parameter type-id='type-id-425' name='output_data_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_openpgp_crt_export2' mangled-name='gnutls_openpgp_crt_export2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_openpgp_crt_export2@@GNUTLS_3_4'>
- <parameter type-id='type-id-474' name='key'/>
- <parameter type-id='type-id-884' name='format'/>
- <parameter type-id='type-id-275' name='out'/>
+ <parameter type-id='type-id-477' name='key'/>
+ <parameter type-id='type-id-887' name='format'/>
+ <parameter type-id='type-id-278' name='out'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_openpgp_crt_get_pk_algorithm' mangled-name='gnutls_openpgp_crt_get_pk_algorithm' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_openpgp_crt_get_pk_algorithm@@GNUTLS_3_4'>
- <parameter type-id='type-id-474' name='key'/>
- <parameter type-id='type-id-419' name='bits'/>
+ <parameter type-id='type-id-477' name='key'/>
+ <parameter type-id='type-id-422' name='bits'/>
<return type-id='type-id-60'/>
</function-decl>
<function-decl name='gnutls_openpgp_crt_get_creation_time' mangled-name='gnutls_openpgp_crt_get_creation_time' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_openpgp_crt_get_creation_time@@GNUTLS_3_4'>
- <parameter type-id='type-id-474' name='key'/>
+ <parameter type-id='type-id-477' name='key'/>
<return type-id='type-id-17'/>
</function-decl>
<function-decl name='gnutls_openpgp_crt_get_subkey_revoked_status' mangled-name='gnutls_openpgp_crt_get_subkey_revoked_status' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_openpgp_crt_get_subkey_revoked_status@@GNUTLS_3_4'>
- <parameter type-id='type-id-474' name='key'/>
+ <parameter type-id='type-id-477' name='key'/>
<parameter type-id='type-id-10' name='idx'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_openpgp_crt_get_subkey_creation_time' mangled-name='gnutls_openpgp_crt_get_subkey_creation_time' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_openpgp_crt_get_subkey_creation_time@@GNUTLS_3_4'>
- <parameter type-id='type-id-474' name='key'/>
+ <parameter type-id='type-id-477' name='key'/>
<parameter type-id='type-id-10' name='idx'/>
<return type-id='type-id-17'/>
</function-decl>
<function-decl name='gnutls_openpgp_privkey_import' mangled-name='gnutls_openpgp_privkey_import' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_openpgp_privkey_import@@GNUTLS_3_4'>
- <parameter type-id='type-id-477' name='key'/>
+ <parameter type-id='type-id-480' name='key'/>
<parameter type-id='type-id-57' name='data'/>
- <parameter type-id='type-id-884' name='format'/>
+ <parameter type-id='type-id-887' name='format'/>
<parameter type-id='type-id-27' name='password'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_certificate_set_openpgp_key_file' mangled-name='gnutls_certificate_set_openpgp_key_file' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_openpgp_key_file@@GNUTLS_3_4'>
- <parameter type-id='type-id-887' name='res'/>
+ <parameter type-id='type-id-890' name='res'/>
<parameter type-id='type-id-27' name='certfile'/>
<parameter type-id='type-id-27' name='keyfile'/>
- <parameter type-id='type-id-884' name='format'/>
+ <parameter type-id='type-id-887' name='format'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_certificate_set_openpgp_key_file2' mangled-name='gnutls_certificate_set_openpgp_key_file2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_openpgp_key_file2@@GNUTLS_3_4'>
- <parameter type-id='type-id-887' name='res'/>
+ <parameter type-id='type-id-890' name='res'/>
<parameter type-id='type-id-27' name='certfile'/>
<parameter type-id='type-id-27' name='keyfile'/>
<parameter type-id='type-id-27' name='subkey_id'/>
- <parameter type-id='type-id-884' name='format'/>
+ <parameter type-id='type-id-887' name='format'/>
<return type-id='type-id-22'/>
</function-decl>
- <function-type size-in-bits='64' id='type-id-888'>
- <parameter type-id='type-id-236'/>
- <parameter type-id='type-id-346'/>
+ <function-type size-in-bits='64' id='type-id-891'>
+ <parameter type-id='type-id-237'/>
+ <parameter type-id='type-id-349'/>
<parameter type-id='type-id-10'/>
- <parameter type-id='type-id-275'/>
+ <parameter type-id='type-id-278'/>
<return type-id='type-id-22'/>
</function-type>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='crypto-selftests.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='crypto-selftests.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_digest_self_test' mangled-name='gnutls_digest_self_test' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_digest_self_test@@GNUTLS_FIPS140_3_4'>
<parameter type-id='type-id-10' name='flags'/>
- <parameter type-id='type-id-211' name='digest'/>
+ <parameter type-id='type-id-212' name='digest'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_mac_self_test' mangled-name='gnutls_mac_self_test' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_mac_self_test@@GNUTLS_FIPS140_3_4'>
@@ -11434,7 +11518,7 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='crypto-selftests-pk.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='crypto-selftests-pk.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_pk_self_test' mangled-name='gnutls_pk_self_test' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pk_self_test@@GNUTLS_FIPS140_3_4'>
<parameter type-id='type-id-10' name='flags'/>
<parameter type-id='type-id-60' name='pk'/>
@@ -11453,39 +11537,36 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='secrets.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
- <function-decl name='nettle_hmac_sha256_set_key' mangled-name='nettle_hmac_sha256_set_key' visibility='default' binding='global' size-in-bits='64'>
+ <abi-instr version='1.0' address-size='64' path='secrets.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
+ <function-decl name='gnutls_hkdf_expand' mangled-name='gnutls_hkdf_expand' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-decl name='nettle_hkdf_expand' mangled-name='nettle_hkdf_expand' visibility='default' binding='global' size-in-bits='64'>
- <return type-id='type-id-111'/>
- </function-decl>
- <function-decl name='nettle_hmac_sha384_set_key' mangled-name='nettle_hmac_sha384_set_key' visibility='default' binding='global' size-in-bits='64'>
+ <function-decl name='gnutls_hkdf_extract' mangled-name='gnutls_hkdf_extract' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_hmac_fast' mangled-name='gnutls_hmac_fast' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='extv.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
- <pointer-type-def type-id='type-id-895' size-in-bits='64' id='type-id-896'/>
- <typedef-decl name='gnutls_ext_raw_process_func' type-id='type-id-896' id='type-id-897'/>
+ <abi-instr version='1.0' address-size='64' path='extv.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
+ <pointer-type-def type-id='type-id-898' size-in-bits='64' id='type-id-899'/>
+ <typedef-decl name='gnutls_ext_raw_process_func' type-id='type-id-899' id='type-id-900'/>
<function-decl name='gnutls_ext_raw_parse' mangled-name='gnutls_ext_raw_parse' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ext_raw_parse@@GNUTLS_3_6_3'>
<parameter type-id='type-id-101' name='ctx'/>
- <parameter type-id='type-id-897' name='cb'/>
+ <parameter type-id='type-id-900' name='cb'/>
<parameter type-id='type-id-57' name='data'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
- <function-type size-in-bits='64' id='type-id-895'>
+ <function-type size-in-bits='64' id='type-id-898'>
<parameter type-id='type-id-101'/>
<parameter type-id='type-id-10'/>
- <parameter type-id='type-id-346'/>
+ <parameter type-id='type-id-349'/>
<parameter type-id='type-id-10'/>
<return type-id='type-id-22'/>
</function-type>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='hello_ext_lib.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='hello_ext_lib.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='_gnutls_buffer_pop_datum_prefix16' mangled-name='_gnutls_buffer_pop_datum_prefix16' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -11499,61 +11580,61 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='ocsp-api.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='ocsp-api.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_ocsp_status_request_is_checked' mangled-name='gnutls_ocsp_status_request_is_checked' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_status_request_is_checked@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<parameter type-id='type-id-10' name='flags'/>
- <return type-id='type-id-22'/>
+ <return type-id='type-id-10'/>
</function-decl>
<function-decl name='gnutls_certificate_get_ocsp_expiration' mangled-name='gnutls_certificate_get_ocsp_expiration' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_get_ocsp_expiration@@GNUTLS_3_6_3'>
- <parameter type-id='type-id-727' name='sc'/>
+ <parameter type-id='type-id-730' name='sc'/>
<parameter type-id='type-id-10' name='idx'/>
<parameter type-id='type-id-22' name='oidx'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-17'/>
</function-decl>
<function-decl name='gnutls_certificate_set_ocsp_status_request_mem' mangled-name='gnutls_certificate_set_ocsp_status_request_mem' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_ocsp_status_request_mem@@GNUTLS_3_6_3'>
- <parameter type-id='type-id-727' name='sc'/>
+ <parameter type-id='type-id-730' name='sc'/>
<parameter type-id='type-id-57' name='resp_data'/>
<parameter type-id='type-id-10' name='idx'/>
- <parameter type-id='type-id-421' name='fmt'/>
+ <parameter type-id='type-id-424' name='fmt'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_certificate_set_ocsp_status_request_file' mangled-name='gnutls_certificate_set_ocsp_status_request_file' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_ocsp_status_request_file@@GNUTLS_3_4'>
- <parameter type-id='type-id-727' name='sc'/>
+ <parameter type-id='type-id-730' name='sc'/>
<parameter type-id='type-id-27' name='response_file'/>
<parameter type-id='type-id-10' name='idx'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_certificate_set_ocsp_status_request_function2' mangled-name='gnutls_certificate_set_ocsp_status_request_function2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_ocsp_status_request_function2@@GNUTLS_3_4'>
- <parameter type-id='type-id-727' name='sc'/>
+ <parameter type-id='type-id-730' name='sc'/>
<parameter type-id='type-id-10' name='idx'/>
- <parameter type-id='type-id-164' name='ocsp_func'/>
+ <parameter type-id='type-id-165' name='ocsp_func'/>
<parameter type-id='type-id-101' name='ptr'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_certificate_set_ocsp_status_request_function' mangled-name='gnutls_certificate_set_ocsp_status_request_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_ocsp_status_request_function@@GNUTLS_3_4'>
- <parameter type-id='type-id-727' name='sc'/>
- <parameter type-id='type-id-164' name='ocsp_func'/>
+ <parameter type-id='type-id-730' name='sc'/>
+ <parameter type-id='type-id-165' name='ocsp_func'/>
<parameter type-id='type-id-101' name='ptr'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_ocsp_status_request_get2' mangled-name='gnutls_ocsp_status_request_get2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_status_request_get2@@GNUTLS_3_6_3'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<parameter type-id='type-id-10' name='idx'/>
- <parameter type-id='type-id-275' name='response'/>
+ <parameter type-id='type-id-278' name='response'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_ocsp_status_request_get' mangled-name='gnutls_ocsp_status_request_get' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_status_request_get@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
- <parameter type-id='type-id-275' name='response'/>
+ <parameter type-id='type-id-416' name='session'/>
+ <parameter type-id='type-id-278' name='response'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_certificate_set_ocsp_status_request_file2' mangled-name='gnutls_certificate_set_ocsp_status_request_file2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_ocsp_status_request_file2@@GNUTLS_3_6_3'>
- <parameter type-id='type-id-727' name='sc'/>
+ <parameter type-id='type-id-730' name='sc'/>
<parameter type-id='type-id-27' name='response_file'/>
<parameter type-id='type-id-10' name='idx'/>
- <parameter type-id='type-id-421' name='fmt'/>
+ <parameter type-id='type-id-424' name='fmt'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='_gnutls_ocsp_get_validity' mangled-name='_gnutls_ocsp_get_validity' visibility='default' binding='global' size-in-bits='64'>
@@ -11563,35 +11644,35 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='stek.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='stek.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='_gnutls_set_session_ticket_key_rotation_callback' mangled-name='_gnutls_set_session_ticket_key_rotation_callback' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls_set_session_ticket_key_rotation_callback@@GNUTLS_PRIVATE_3_4'>
- <parameter type-id='type-id-236' name='session'/>
- <parameter type-id='type-id-330' name='cb'/>
+ <parameter type-id='type-id-237' name='session'/>
+ <parameter type-id='type-id-333' name='cb'/>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='cert-cred-rawpk.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='cert-cred-rawpk.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_certificate_set_rawpk_key_file' mangled-name='gnutls_certificate_set_rawpk_key_file' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_rawpk_key_file@@GNUTLS_3_6_6'>
- <parameter type-id='type-id-727' name='cred'/>
+ <parameter type-id='type-id-730' name='cred'/>
<parameter type-id='type-id-27' name='rawpkfile'/>
<parameter type-id='type-id-27' name='privkeyfile'/>
- <parameter type-id='type-id-421' name='format'/>
+ <parameter type-id='type-id-424' name='format'/>
<parameter type-id='type-id-27' name='pass'/>
<parameter type-id='type-id-10' name='key_usage'/>
- <parameter type-id='type-id-426' name='names'/>
+ <parameter type-id='type-id-429' name='names'/>
<parameter type-id='type-id-10' name='names_length'/>
<parameter type-id='type-id-10' name='privkey_flags'/>
<parameter type-id='type-id-10' name='pkcs11_flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_certificate_set_rawpk_key_mem' mangled-name='gnutls_certificate_set_rawpk_key_mem' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_set_rawpk_key_mem@@GNUTLS_3_6_6'>
- <parameter type-id='type-id-727' name='cred'/>
+ <parameter type-id='type-id-730' name='cred'/>
<parameter type-id='type-id-57' name='spki'/>
<parameter type-id='type-id-57' name='pkey'/>
- <parameter type-id='type-id-421' name='format'/>
+ <parameter type-id='type-id-424' name='format'/>
<parameter type-id='type-id-27' name='pass'/>
<parameter type-id='type-id-10' name='key_usage'/>
- <parameter type-id='type-id-426' name='names'/>
+ <parameter type-id='type-id-429' name='names'/>
<parameter type-id='type-id-10' name='names_length'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
@@ -11612,10 +11693,10 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='iov.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
- <class-decl name='iov_iter_st' size-in-bits='896' is-struct='yes' visibility='default' id='type-id-898'>
+ <abi-instr version='1.0' address-size='64' path='iov.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
+ <class-decl name='iov_iter_st' size-in-bits='896' is-struct='yes' visibility='default' id='type-id-901'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='iov' type-id='type-id-249' visibility='default'/>
+ <var-decl name='iov' type-id='type-id-250' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='iov_count' type-id='type-id-99' visibility='default'/>
@@ -11636,29 +11717,29 @@
<var-decl name='block_offset' type-id='type-id-99' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-898' size-in-bits='64' id='type-id-899'/>
- <pointer-type-def type-id='type-id-37' size-in-bits='64' id='type-id-900'/>
+ <pointer-type-def type-id='type-id-901' size-in-bits='64' id='type-id-902'/>
+ <pointer-type-def type-id='type-id-37' size-in-bits='64' id='type-id-903'/>
<function-decl name='_gnutls_iov_iter_sync' mangled-name='_gnutls_iov_iter_sync' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls_iov_iter_sync@@GNUTLS_PRIVATE_3_4'>
- <parameter type-id='type-id-899' name='iter'/>
- <parameter type-id='type-id-900' name='data'/>
+ <parameter type-id='type-id-902' name='iter'/>
+ <parameter type-id='type-id-903' name='data'/>
<parameter type-id='type-id-99' name='data_size'/>
<return type-id='type-id-22'/>
</function-decl>
- <pointer-type-def type-id='type-id-191' size-in-bits='64' id='type-id-901'/>
+ <pointer-type-def type-id='type-id-192' size-in-bits='64' id='type-id-904'/>
<function-decl name='_gnutls_iov_iter_next' mangled-name='_gnutls_iov_iter_next' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls_iov_iter_next@@GNUTLS_PRIVATE_3_4'>
- <parameter type-id='type-id-899' name='iter'/>
- <parameter type-id='type-id-901' name='data'/>
+ <parameter type-id='type-id-902' name='iter'/>
+ <parameter type-id='type-id-904' name='data'/>
<return type-id='type-id-3'/>
</function-decl>
<function-decl name='_gnutls_iov_iter_init' mangled-name='_gnutls_iov_iter_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls_iov_iter_init@@GNUTLS_PRIVATE_3_4'>
- <parameter type-id='type-id-899' name='iter'/>
- <parameter type-id='type-id-249' name='iov'/>
+ <parameter type-id='type-id-902' name='iter'/>
+ <parameter type-id='type-id-250' name='iov'/>
<parameter type-id='type-id-99' name='iov_count'/>
<parameter type-id='type-id-99' name='block_size'/>
<return type-id='type-id-22'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='vko.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='vko.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_oid_to_gost_paramset' mangled-name='gnutls_oid_to_gost_paramset' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -11675,31 +11756,31 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='system/keys-dummy.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='system/keys-dummy.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_system_key_add_x509' mangled-name='gnutls_system_key_add_x509' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_system_key_add_x509@@GNUTLS_3_4'>
- <parameter type-id='type-id-869' name='crt'/>
- <parameter type-id='type-id-383' name='privkey'/>
+ <parameter type-id='type-id-872' name='crt'/>
+ <parameter type-id='type-id-386' name='privkey'/>
<parameter type-id='type-id-27' name='label'/>
- <parameter type-id='type-id-852' name='cert_url'/>
- <parameter type-id='type-id-852' name='key_url'/>
+ <parameter type-id='type-id-855' name='cert_url'/>
+ <parameter type-id='type-id-855' name='key_url'/>
<return type-id='type-id-22'/>
</function-decl>
- <class-decl name='system_key_iter_st' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-902'/>
- <pointer-type-def type-id='type-id-902' size-in-bits='64' id='type-id-903'/>
- <typedef-decl name='gnutls_system_key_iter_t' type-id='type-id-903' id='type-id-904'/>
- <pointer-type-def type-id='type-id-904' size-in-bits='64' id='type-id-905'/>
+ <class-decl name='system_key_iter_st' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-905'/>
+ <pointer-type-def type-id='type-id-905' size-in-bits='64' id='type-id-906'/>
+ <typedef-decl name='gnutls_system_key_iter_t' type-id='type-id-906' id='type-id-907'/>
+ <pointer-type-def type-id='type-id-907' size-in-bits='64' id='type-id-908'/>
<function-decl name='gnutls_system_key_iter_get_info' mangled-name='gnutls_system_key_iter_get_info' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_system_key_iter_get_info@@GNUTLS_3_4'>
- <parameter type-id='type-id-905' name='iter'/>
+ <parameter type-id='type-id-908' name='iter'/>
<parameter type-id='type-id-10' name='cert_type'/>
- <parameter type-id='type-id-852' name='cert_url'/>
- <parameter type-id='type-id-852' name='key_url'/>
- <parameter type-id='type-id-852' name='label'/>
- <parameter type-id='type-id-275' name='der'/>
+ <parameter type-id='type-id-855' name='cert_url'/>
+ <parameter type-id='type-id-855' name='key_url'/>
+ <parameter type-id='type-id-855' name='label'/>
+ <parameter type-id='type-id-278' name='der'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_system_key_iter_deinit' mangled-name='gnutls_system_key_iter_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_system_key_iter_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-904' name='iter'/>
+ <parameter type-id='type-id-907' name='iter'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_system_key_delete' mangled-name='gnutls_system_key_delete' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_system_key_delete@@GNUTLS_3_4'>
@@ -11708,7 +11789,7 @@
<return type-id='type-id-22'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='tls13/certificate_request.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='tls13/certificate_request.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='_gnutls_select_client_cert' mangled-name='_gnutls_select_client_cert' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -11722,7 +11803,7 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='tls13/certificate_verify.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='tls13/certificate_verify.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='_gnutls13_handshake_sign_data' mangled-name='_gnutls13_handshake_sign_data' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -11736,24 +11817,24 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='tls13-sig.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='tls13-sig.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='_gnutls_check_key_usage_for_sig' mangled-name='_gnutls_check_key_usage_for_sig' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='tls13/finished.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='tls13/finished.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='_mbuffer_append_data' mangled-name='_mbuffer_append_data' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='tls13/key_update.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='tls13/key_update.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_session_key_update' mangled-name='gnutls_session_key_update' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_session_key_update@@GNUTLS_3_6_3'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='tls13/session_ticket.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='tls13/session_ticket.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='_gnutls_decrypt_session_ticket' mangled-name='_gnutls_decrypt_session_ticket' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -11770,20 +11851,20 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='tls13/certificate.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='tls13/certificate.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='_gnutls_parse_ocsp_response' mangled-name='_gnutls_parse_ocsp_response' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='tls13/early_data.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='tls13/early_data.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_record_send' mangled-name='gnutls_record_send' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='tls13/post_handshake.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='tls13/post_handshake.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_reauth' mangled-name='gnutls_reauth' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_reauth@@GNUTLS_3_6_3'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
@@ -11791,29 +11872,29 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='tls13/psk_ext_parser.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
- <class-decl name='psk_ext_parser_st' size-in-bits='256' is-struct='yes' visibility='default' id='type-id-906'>
+ <abi-instr version='1.0' address-size='64' path='tls13/psk_ext_parser.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
+ <class-decl name='psk_ext_parser_st' size-in-bits='256' is-struct='yes' visibility='default' id='type-id-909'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='identities_data' type-id='type-id-346' visibility='default'/>
+ <var-decl name='identities_data' type-id='type-id-349' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='identities_len' type-id='type-id-99' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='binders_data' type-id='type-id-346' visibility='default'/>
+ <var-decl name='binders_data' type-id='type-id-349' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
<var-decl name='binders_len' type-id='type-id-99' visibility='default'/>
</data-member>
</class-decl>
- <typedef-decl name='psk_ext_iter_st' type-id='type-id-906' id='type-id-907'/>
- <pointer-type-def type-id='type-id-907' size-in-bits='64' id='type-id-908'/>
+ <typedef-decl name='psk_ext_iter_st' type-id='type-id-909' id='type-id-910'/>
+ <pointer-type-def type-id='type-id-910' size-in-bits='64' id='type-id-911'/>
<function-decl name='_gnutls13_psk_ext_iter_next_binder' mangled-name='_gnutls13_psk_ext_iter_next_binder' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls13_psk_ext_iter_next_binder@@GNUTLS_PRIVATE_3_4'>
- <parameter type-id='type-id-908' name='iter'/>
- <parameter type-id='type-id-275' name='binder'/>
+ <parameter type-id='type-id-911' name='iter'/>
+ <parameter type-id='type-id-278' name='binder'/>
<return type-id='type-id-22'/>
</function-decl>
- <class-decl name='psk_st' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-909'>
+ <class-decl name='psk_st' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-912'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='identity' type-id='type-id-62' visibility='default'/>
</data-member>
@@ -11821,75 +11902,75 @@
<var-decl name='ob_ticket_age' type-id='type-id-18' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-909' size-in-bits='64' id='type-id-910'/>
+ <pointer-type-def type-id='type-id-912' size-in-bits='64' id='type-id-913'/>
<function-decl name='_gnutls13_psk_ext_iter_next_identity' mangled-name='_gnutls13_psk_ext_iter_next_identity' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls13_psk_ext_iter_next_identity@@GNUTLS_PRIVATE_3_4'>
- <parameter type-id='type-id-908' name='iter'/>
- <parameter type-id='type-id-910' name='psk'/>
+ <parameter type-id='type-id-911' name='iter'/>
+ <parameter type-id='type-id-913' name='psk'/>
<return type-id='type-id-22'/>
</function-decl>
- <typedef-decl name='psk_ext_parser_st' type-id='type-id-906' id='type-id-911'/>
- <pointer-type-def type-id='type-id-911' size-in-bits='64' id='type-id-912'/>
+ <typedef-decl name='psk_ext_parser_st' type-id='type-id-909' id='type-id-914'/>
+ <pointer-type-def type-id='type-id-914' size-in-bits='64' id='type-id-915'/>
<function-decl name='_gnutls13_psk_ext_parser_init' mangled-name='_gnutls13_psk_ext_parser_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls13_psk_ext_parser_init@@GNUTLS_PRIVATE_3_4'>
- <parameter type-id='type-id-912' name='p'/>
- <parameter type-id='type-id-346' name='data'/>
+ <parameter type-id='type-id-915' name='p'/>
+ <parameter type-id='type-id-349' name='data'/>
<parameter type-id='type-id-99' name='len'/>
<return type-id='type-id-22'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='tls13/anti_replay.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
- <class-decl name='gnutls_anti_replay_st' size-in-bits='320' is-struct='yes' visibility='default' id='type-id-303'>
+ <abi-instr version='1.0' address-size='64' path='tls13/anti_replay.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
+ <class-decl name='gnutls_anti_replay_st' size-in-bits='320' is-struct='yes' visibility='default' id='type-id-306'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='window' type-id='type-id-18' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='start_time' type-id='type-id-168' visibility='default'/>
+ <var-decl name='start_time' type-id='type-id-169' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='db_add_func' type-id='type-id-913' visibility='default'/>
+ <var-decl name='db_add_func' type-id='type-id-916' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
<var-decl name='db_ptr' type-id='type-id-101' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-914' size-in-bits='64' id='type-id-915'/>
- <typedef-decl name='gnutls_db_add_func' type-id='type-id-915' id='type-id-913'/>
+ <pointer-type-def type-id='type-id-917' size-in-bits='64' id='type-id-918'/>
+ <typedef-decl name='gnutls_db_add_func' type-id='type-id-918' id='type-id-916'/>
<function-decl name='gnutls_anti_replay_set_add_function' mangled-name='gnutls_anti_replay_set_add_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_anti_replay_set_add_function@@GNUTLS_3_6_5'>
- <parameter type-id='type-id-181' name='anti_replay'/>
- <parameter type-id='type-id-913' name='add_func'/>
+ <parameter type-id='type-id-182' name='anti_replay'/>
+ <parameter type-id='type-id-916' name='add_func'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_anti_replay_set_ptr' mangled-name='gnutls_anti_replay_set_ptr' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_anti_replay_set_ptr@@GNUTLS_3_6_5'>
- <parameter type-id='type-id-181' name='anti_replay'/>
+ <parameter type-id='type-id-182' name='anti_replay'/>
<parameter type-id='type-id-101' name='ptr'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='_gnutls_anti_replay_check' mangled-name='_gnutls_anti_replay_check' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls_anti_replay_check@@GNUTLS_PRIVATE_3_4'>
- <parameter type-id='type-id-181' name='anti_replay'/>
+ <parameter type-id='type-id-182' name='anti_replay'/>
<parameter type-id='type-id-18' name='client_ticket_age'/>
- <parameter type-id='type-id-716' name='ticket_creation_time'/>
- <parameter type-id='type-id-275' name='id'/>
+ <parameter type-id='type-id-719' name='ticket_creation_time'/>
+ <parameter type-id='type-id-278' name='id'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_anti_replay_enable' mangled-name='gnutls_anti_replay_enable' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_anti_replay_enable@@GNUTLS_3_6_5'>
- <parameter type-id='type-id-236' name='session'/>
- <parameter type-id='type-id-181' name='anti_replay'/>
+ <parameter type-id='type-id-237' name='session'/>
+ <parameter type-id='type-id-182' name='anti_replay'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_anti_replay_deinit' mangled-name='gnutls_anti_replay_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_anti_replay_deinit@@GNUTLS_3_6_5'>
- <parameter type-id='type-id-181' name='anti_replay'/>
+ <parameter type-id='type-id-182' name='anti_replay'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_anti_replay_set_window' mangled-name='gnutls_anti_replay_set_window' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_anti_replay_set_window@@GNUTLS_3_6_5'>
- <parameter type-id='type-id-181' name='anti_replay'/>
+ <parameter type-id='type-id-182' name='anti_replay'/>
<parameter type-id='type-id-10' name='window'/>
<return type-id='type-id-111'/>
</function-decl>
- <pointer-type-def type-id='type-id-181' size-in-bits='64' id='type-id-916'/>
+ <pointer-type-def type-id='type-id-182' size-in-bits='64' id='type-id-919'/>
<function-decl name='gnutls_anti_replay_init' mangled-name='gnutls_anti_replay_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_anti_replay_init@@GNUTLS_3_6_5'>
- <parameter type-id='type-id-916' name='anti_replay'/>
+ <parameter type-id='type-id-919' name='anti_replay'/>
<return type-id='type-id-22'/>
</function-decl>
- <function-type size-in-bits='64' id='type-id-914'>
+ <function-type size-in-bits='64' id='type-id-917'>
<parameter type-id='type-id-101'/>
<parameter type-id='type-id-17'/>
<parameter type-id='type-id-57'/>
@@ -11897,25 +11978,25 @@
<return type-id='type-id-22'/>
</function-type>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='pkcs11.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
- <qualified-type-def type-id='type-id-101' const='yes' id='type-id-917'/>
- <qualified-type-def type-id='type-id-27' const='yes' id='type-id-918'/>
- <pointer-type-def type-id='type-id-919' size-in-bits='64' id='type-id-920'/>
- <typedef-decl name='gnutls_pkcs11_token_callback_t' type-id='type-id-920' id='type-id-921'/>
- <var-decl name='_gnutls_token_func' type-id='type-id-921' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='pkcs11.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
+ <qualified-type-def type-id='type-id-101' const='yes' id='type-id-920'/>
+ <qualified-type-def type-id='type-id-27' const='yes' id='type-id-921'/>
+ <pointer-type-def type-id='type-id-922' size-in-bits='64' id='type-id-923'/>
+ <typedef-decl name='gnutls_pkcs11_token_callback_t' type-id='type-id-923' id='type-id-924'/>
+ <var-decl name='_gnutls_token_func' type-id='type-id-924' visibility='default'/>
<var-decl name='_gnutls_token_data' type-id='type-id-101' visibility='default'/>
<function-decl name='gnutls_pkcs11_obj_flags_get_str' mangled-name='gnutls_pkcs11_obj_flags_get_str' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_obj_flags_get_str@@GNUTLS_3_4'>
<parameter type-id='type-id-10' name='flags'/>
- <return type-id='type-id-376'/>
+ <return type-id='type-id-379'/>
</function-decl>
<function-decl name='gnutls_pkcs11_obj_get_flags' mangled-name='gnutls_pkcs11_obj_get_flags' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_obj_get_flags@@GNUTLS_3_4'>
- <parameter type-id='type-id-775' name='obj'/>
- <parameter type-id='type-id-419' name='oflags'/>
+ <parameter type-id='type-id-778' name='obj'/>
+ <parameter type-id='type-id-422' name='oflags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs11_crt_is_known' mangled-name='gnutls_pkcs11_crt_is_known' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_crt_is_known@@GNUTLS_3_4'>
<parameter type-id='type-id-27' name='url'/>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-10'/>
</function-decl>
@@ -11923,29 +12004,29 @@
<parameter type-id='type-id-27' name='url'/>
<parameter type-id='type-id-57' name='dn'/>
<parameter type-id='type-id-57' name='spki'/>
- <parameter type-id='type-id-275' name='issuer'/>
- <parameter type-id='type-id-421' name='fmt'/>
+ <parameter type-id='type-id-278' name='issuer'/>
+ <parameter type-id='type-id-424' name='fmt'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs11_get_raw_issuer_by_dn' mangled-name='gnutls_pkcs11_get_raw_issuer_by_dn' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_get_raw_issuer_by_dn@@GNUTLS_3_4'>
<parameter type-id='type-id-27' name='url'/>
<parameter type-id='type-id-57' name='dn'/>
- <parameter type-id='type-id-275' name='issuer'/>
- <parameter type-id='type-id-421' name='fmt'/>
+ <parameter type-id='type-id-278' name='issuer'/>
+ <parameter type-id='type-id-424' name='fmt'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs11_get_raw_issuer' mangled-name='gnutls_pkcs11_get_raw_issuer' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_get_raw_issuer@@GNUTLS_3_4'>
<parameter type-id='type-id-27' name='url'/>
- <parameter type-id='type-id-467' name='cert'/>
- <parameter type-id='type-id-275' name='issuer'/>
- <parameter type-id='type-id-421' name='fmt'/>
+ <parameter type-id='type-id-470' name='cert'/>
+ <parameter type-id='type-id-278' name='issuer'/>
+ <parameter type-id='type-id-424' name='fmt'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs11_type_get_name' mangled-name='gnutls_pkcs11_type_get_name' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_type_get_name@@GNUTLS_3_4'>
- <parameter type-id='type-id-770' name='type'/>
+ <parameter type-id='type-id-773' name='type'/>
<return type-id='type-id-27'/>
</function-decl>
<function-decl name='gnutls_pkcs11_token_check_mechanism' mangled-name='gnutls_pkcs11_token_check_mechanism' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_token_check_mechanism@@GNUTLS_3_6_0'>
@@ -11959,60 +12040,60 @@
<function-decl name='gnutls_pkcs11_token_get_mechanism' mangled-name='gnutls_pkcs11_token_get_mechanism' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_token_get_mechanism@@GNUTLS_3_4'>
<parameter type-id='type-id-27' name='url'/>
<parameter type-id='type-id-10' name='idx'/>
- <parameter type-id='type-id-626' name='mechanism'/>
+ <parameter type-id='type-id-629' name='mechanism'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs11_token_get_flags' mangled-name='gnutls_pkcs11_token_get_flags' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_token_get_flags@@GNUTLS_3_4'>
<parameter type-id='type-id-27' name='url'/>
- <parameter type-id='type-id-419' name='flags'/>
+ <parameter type-id='type-id-422' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
- <pointer-type-def type-id='type-id-775' size-in-bits='64' id='type-id-922'/>
- <qualified-type-def type-id='type-id-922' const='yes' id='type-id-923'/>
+ <pointer-type-def type-id='type-id-778' size-in-bits='64' id='type-id-925'/>
+ <qualified-type-def type-id='type-id-925' const='yes' id='type-id-926'/>
<function-decl name='gnutls_x509_crt_list_import_pkcs11' mangled-name='gnutls_x509_crt_list_import_pkcs11' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_list_import_pkcs11@@GNUTLS_3_4'>
- <parameter type-id='type-id-458' name='certs'/>
+ <parameter type-id='type-id-461' name='certs'/>
<parameter type-id='type-id-10' name='cert_max'/>
- <parameter type-id='type-id-923' name='objs'/>
+ <parameter type-id='type-id-926' name='objs'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_import_pkcs11' mangled-name='gnutls_x509_crt_import_pkcs11' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_import_pkcs11@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
- <parameter type-id='type-id-775' name='pkcs11_crt'/>
+ <parameter type-id='type-id-470' name='crt'/>
+ <parameter type-id='type-id-778' name='pkcs11_crt'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs11_obj_list_import_url3' mangled-name='gnutls_pkcs11_obj_list_import_url3' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_obj_list_import_url3@@GNUTLS_3_4'>
- <parameter type-id='type-id-922' name='p_list'/>
- <parameter type-id='type-id-419' name='n_list'/>
+ <parameter type-id='type-id-925' name='p_list'/>
+ <parameter type-id='type-id-422' name='n_list'/>
<parameter type-id='type-id-27' name='url'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs11_obj_get_type' mangled-name='gnutls_pkcs11_obj_get_type' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_obj_get_type@@GNUTLS_3_4'>
- <parameter type-id='type-id-775' name='obj'/>
- <return type-id='type-id-770'/>
+ <parameter type-id='type-id-778' name='obj'/>
+ <return type-id='type-id-773'/>
</function-decl>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-924'>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-927'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_PKCS11_URL_GENERIC' value='0'/>
<enumerator name='GNUTLS_PKCS11_URL_LIB' value='1'/>
<enumerator name='GNUTLS_PKCS11_URL_LIB_VERSION' value='2'/>
</enum-decl>
- <typedef-decl name='gnutls_pkcs11_url_type_t' type-id='type-id-924' id='type-id-925'/>
+ <typedef-decl name='gnutls_pkcs11_url_type_t' type-id='type-id-927' id='type-id-928'/>
<function-decl name='gnutls_pkcs11_obj_export_url' mangled-name='gnutls_pkcs11_obj_export_url' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_obj_export_url@@GNUTLS_3_4'>
- <parameter type-id='type-id-775' name='obj'/>
- <parameter type-id='type-id-925' name='detailed'/>
- <parameter type-id='type-id-852' name='url'/>
+ <parameter type-id='type-id-778' name='obj'/>
+ <parameter type-id='type-id-928' name='detailed'/>
+ <parameter type-id='type-id-855' name='url'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs11_token_get_ptr' mangled-name='gnutls_pkcs11_token_get_ptr' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_token_get_ptr@@GNUTLS_3_6_3'>
<parameter type-id='type-id-27' name='url'/>
- <parameter type-id='type-id-430' name='ptr'/>
- <parameter type-id='type-id-626' name='slot_id'/>
+ <parameter type-id='type-id-433' name='ptr'/>
+ <parameter type-id='type-id-629' name='slot_id'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-926'>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-929'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_PKCS11_TOKEN_LABEL' value='0'/>
<enumerator name='GNUTLS_PKCS11_TOKEN_SERIAL' value='1'/>
@@ -12020,56 +12101,56 @@
<enumerator name='GNUTLS_PKCS11_TOKEN_MODEL' value='3'/>
<enumerator name='GNUTLS_PKCS11_TOKEN_MODNAME' value='4'/>
</enum-decl>
- <typedef-decl name='gnutls_pkcs11_token_info_t' type-id='type-id-926' id='type-id-927'/>
+ <typedef-decl name='gnutls_pkcs11_token_info_t' type-id='type-id-929' id='type-id-930'/>
<function-decl name='gnutls_pkcs11_token_get_info' mangled-name='gnutls_pkcs11_token_get_info' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_token_get_info@@GNUTLS_3_4'>
<parameter type-id='type-id-27' name='url'/>
- <parameter type-id='type-id-927' name='ttype'/>
+ <parameter type-id='type-id-930' name='ttype'/>
<parameter type-id='type-id-101' name='output'/>
- <parameter type-id='type-id-422' name='output_size'/>
+ <parameter type-id='type-id-425' name='output_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs11_token_get_url' mangled-name='gnutls_pkcs11_token_get_url' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_token_get_url@@GNUTLS_3_4'>
<parameter type-id='type-id-10' name='seq'/>
- <parameter type-id='type-id-925' name='detailed'/>
- <parameter type-id='type-id-852' name='url'/>
+ <parameter type-id='type-id-928' name='detailed'/>
+ <parameter type-id='type-id-855' name='url'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='_gnutls_pkcs11_token_get_url' mangled-name='_gnutls_pkcs11_token_get_url' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls_pkcs11_token_get_url@@GNUTLS_PRIVATE_3_4'>
<parameter type-id='type-id-10' name='seq'/>
- <parameter type-id='type-id-925' name='detailed'/>
- <parameter type-id='type-id-852' name='url'/>
+ <parameter type-id='type-id-928' name='detailed'/>
+ <parameter type-id='type-id-855' name='url'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs11_obj_export3' mangled-name='gnutls_pkcs11_obj_export3' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_obj_export3@@GNUTLS_3_4'>
- <parameter type-id='type-id-775' name='obj'/>
- <parameter type-id='type-id-421' name='fmt'/>
- <parameter type-id='type-id-275' name='out'/>
+ <parameter type-id='type-id-778' name='obj'/>
+ <parameter type-id='type-id-424' name='fmt'/>
+ <parameter type-id='type-id-278' name='out'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs11_obj_export2' mangled-name='gnutls_pkcs11_obj_export2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_obj_export2@@GNUTLS_3_4'>
- <parameter type-id='type-id-775' name='obj'/>
- <parameter type-id='type-id-275' name='out'/>
+ <parameter type-id='type-id-778' name='obj'/>
+ <parameter type-id='type-id-278' name='out'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs11_obj_export' mangled-name='gnutls_pkcs11_obj_export' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_obj_export@@GNUTLS_3_4'>
- <parameter type-id='type-id-775' name='obj'/>
+ <parameter type-id='type-id-778' name='obj'/>
<parameter type-id='type-id-101' name='output_data'/>
- <parameter type-id='type-id-422' name='output_data_size'/>
+ <parameter type-id='type-id-425' name='output_data_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs11_obj_deinit' mangled-name='gnutls_pkcs11_obj_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_obj_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-775' name='obj'/>
+ <parameter type-id='type-id-778' name='obj'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_pkcs11_obj_set_pin_function' mangled-name='gnutls_pkcs11_obj_set_pin_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_obj_set_pin_function@@GNUTLS_3_4'>
- <parameter type-id='type-id-775' name='obj'/>
- <parameter type-id='type-id-375' name='fn'/>
+ <parameter type-id='type-id-778' name='obj'/>
+ <parameter type-id='type-id-378' name='fn'/>
<parameter type-id='type-id-101' name='userdata'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_pkcs11_set_token_function' mangled-name='gnutls_pkcs11_set_token_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_set_token_function@@GNUTLS_3_4'>
- <parameter type-id='type-id-921' name='fn'/>
+ <parameter type-id='type-id-924' name='fn'/>
<parameter type-id='type-id-101' name='userdata'/>
<return type-id='type-id-111'/>
</function-decl>
@@ -12077,15 +12158,15 @@
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs11_obj_get_ptr' mangled-name='gnutls_pkcs11_obj_get_ptr' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_obj_get_ptr@@GNUTLS_3_6_3'>
- <parameter type-id='type-id-775' name='obj'/>
- <parameter type-id='type-id-430' name='ptr'/>
- <parameter type-id='type-id-430' name='session'/>
- <parameter type-id='type-id-430' name='ohandle'/>
- <parameter type-id='type-id-626' name='slot_id'/>
+ <parameter type-id='type-id-778' name='obj'/>
+ <parameter type-id='type-id-433' name='ptr'/>
+ <parameter type-id='type-id-433' name='session'/>
+ <parameter type-id='type-id-433' name='ohandle'/>
+ <parameter type-id='type-id-629' name='slot_id'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-928'>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-931'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_PKCS11_OBJ_ID_HEX' value='1'/>
<enumerator name='GNUTLS_PKCS11_OBJ_LABEL' value='2'/>
@@ -12098,17 +12179,17 @@
<enumerator name='GNUTLS_PKCS11_OBJ_LIBRARY_DESCRIPTION' value='9'/>
<enumerator name='GNUTLS_PKCS11_OBJ_LIBRARY_MANUFACTURER' value='10'/>
</enum-decl>
- <typedef-decl name='gnutls_pkcs11_obj_info_t' type-id='type-id-928' id='type-id-929'/>
+ <typedef-decl name='gnutls_pkcs11_obj_info_t' type-id='type-id-931' id='type-id-932'/>
<function-decl name='gnutls_pkcs11_obj_get_info' mangled-name='gnutls_pkcs11_obj_get_info' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_obj_get_info@@GNUTLS_3_4'>
- <parameter type-id='type-id-775' name='obj'/>
- <parameter type-id='type-id-929' name='itype'/>
+ <parameter type-id='type-id-778' name='obj'/>
+ <parameter type-id='type-id-932' name='itype'/>
<parameter type-id='type-id-101' name='output'/>
- <parameter type-id='type-id-422' name='output_size'/>
+ <parameter type-id='type-id-425' name='output_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs11_obj_set_info' mangled-name='gnutls_pkcs11_obj_set_info' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_obj_set_info@@GNUTLS_3_4'>
- <parameter type-id='type-id-775' name='obj'/>
- <parameter type-id='type-id-929' name='itype'/>
+ <parameter type-id='type-id-778' name='obj'/>
+ <parameter type-id='type-id-932' name='itype'/>
<parameter type-id='type-id-101' name='data'/>
<parameter type-id='type-id-99' name='data_size'/>
<parameter type-id='type-id-10' name='flags'/>
@@ -12125,19 +12206,19 @@
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs11_obj_init' mangled-name='gnutls_pkcs11_obj_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_obj_init@@GNUTLS_3_4'>
- <parameter type-id='type-id-922' name='obj'/>
+ <parameter type-id='type-id-925' name='obj'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs11_obj_import_url' mangled-name='gnutls_pkcs11_obj_import_url' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_obj_import_url@@GNUTLS_3_4'>
- <parameter type-id='type-id-775' name='obj'/>
+ <parameter type-id='type-id-778' name='obj'/>
<parameter type-id='type-id-27' name='url'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
- <pointer-type-def type-id='type-id-922' size-in-bits='64' id='type-id-930'/>
+ <pointer-type-def type-id='type-id-925' size-in-bits='64' id='type-id-933'/>
<function-decl name='gnutls_pkcs11_obj_list_import_url4' mangled-name='gnutls_pkcs11_obj_list_import_url4' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_obj_list_import_url4@@GNUTLS_3_4'>
- <parameter type-id='type-id-930' name='p_list'/>
- <parameter type-id='type-id-419' name='n_list'/>
+ <parameter type-id='type-id-933' name='p_list'/>
+ <parameter type-id='type-id-422' name='n_list'/>
<parameter type-id='type-id-27' name='url'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
@@ -12277,7 +12358,7 @@
<function-decl name='p11_kit_message' mangled-name='p11_kit_message' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-decl name='fgets' mangled-name='fgets' visibility='default' binding='global' size-in-bits='64'>
+ <function-decl name='__fgets_alias' mangled-name='fgets' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='_gnutls_hex2bin' mangled-name='_gnutls_hex2bin' visibility='default' binding='global' size-in-bits='64'>
@@ -12310,17 +12391,17 @@
<function-decl name='p11_kit_pin_unref' mangled-name='p11_kit_pin_unref' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-type size-in-bits='64' id='type-id-919'>
- <parameter type-id='type-id-917'/>
- <parameter type-id='type-id-918'/>
+ <function-type size-in-bits='64' id='type-id-922'>
+ <parameter type-id='type-id-920'/>
+ <parameter type-id='type-id-921'/>
<parameter type-id='type-id-10'/>
<return type-id='type-id-22'/>
</function-type>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='pkcs11x.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
- <class-decl name='gnutls_x509_ext_st' size-in-bits='256' is-struct='yes' visibility='default' id='type-id-931'>
+ <abi-instr version='1.0' address-size='64' path='pkcs11x.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
+ <class-decl name='gnutls_x509_ext_st' size-in-bits='256' is-struct='yes' visibility='default' id='type-id-934'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='oid' type-id='type-id-376' visibility='default'/>
+ <var-decl name='oid' type-id='type-id-379' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='critical' type-id='type-id-10' visibility='default'/>
@@ -12329,13 +12410,13 @@
<var-decl name='data' type-id='type-id-62' visibility='default'/>
</data-member>
</class-decl>
- <typedef-decl name='gnutls_x509_ext_st' type-id='type-id-931' id='type-id-932'/>
- <pointer-type-def type-id='type-id-932' size-in-bits='64' id='type-id-933'/>
- <pointer-type-def type-id='type-id-933' size-in-bits='64' id='type-id-934'/>
+ <typedef-decl name='gnutls_x509_ext_st' type-id='type-id-934' id='type-id-935'/>
+ <pointer-type-def type-id='type-id-935' size-in-bits='64' id='type-id-936'/>
+ <pointer-type-def type-id='type-id-936' size-in-bits='64' id='type-id-937'/>
<function-decl name='gnutls_pkcs11_obj_get_exts' mangled-name='gnutls_pkcs11_obj_get_exts' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_obj_get_exts@@GNUTLS_3_4'>
- <parameter type-id='type-id-775' name='obj'/>
- <parameter type-id='type-id-934' name='exts'/>
- <parameter type-id='type-id-419' name='exts_size'/>
+ <parameter type-id='type-id-778' name='obj'/>
+ <parameter type-id='type-id-937' name='exts'/>
+ <parameter type-id='type-id-422' name='exts_size'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
@@ -12361,17 +12442,17 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='pkcs11_privkey.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='pkcs11_privkey.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_pkcs11_privkey_set_pin_function' mangled-name='gnutls_pkcs11_privkey_set_pin_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_privkey_set_pin_function@@GNUTLS_3_4'>
- <parameter type-id='type-id-384' name='key'/>
- <parameter type-id='type-id-375' name='fn'/>
+ <parameter type-id='type-id-387' name='key'/>
+ <parameter type-id='type-id-378' name='fn'/>
<parameter type-id='type-id-101' name='userdata'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_pkcs11_privkey_export_pubkey' mangled-name='gnutls_pkcs11_privkey_export_pubkey' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_privkey_export_pubkey@@GNUTLS_3_4'>
- <parameter type-id='type-id-384' name='pkey'/>
- <parameter type-id='type-id-421' name='fmt'/>
- <parameter type-id='type-id-275' name='data'/>
+ <parameter type-id='type-id-387' name='pkey'/>
+ <parameter type-id='type-id-424' name='fmt'/>
+ <parameter type-id='type-id-278' name='data'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
@@ -12381,51 +12462,51 @@
<parameter type-id='type-id-10' name='bits'/>
<parameter type-id='type-id-27' name='label'/>
<parameter type-id='type-id-57' name='cid'/>
- <parameter type-id='type-id-421' name='fmt'/>
- <parameter type-id='type-id-275' name='pubkey'/>
+ <parameter type-id='type-id-424' name='fmt'/>
+ <parameter type-id='type-id-278' name='pubkey'/>
<parameter type-id='type-id-10' name='key_usage'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs11_privkey_export_url' mangled-name='gnutls_pkcs11_privkey_export_url' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_privkey_export_url@@GNUTLS_3_4'>
- <parameter type-id='type-id-384' name='key'/>
- <parameter type-id='type-id-925' name='detailed'/>
- <parameter type-id='type-id-852' name='url'/>
+ <parameter type-id='type-id-387' name='key'/>
+ <parameter type-id='type-id-928' name='detailed'/>
+ <parameter type-id='type-id-855' name='url'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs11_privkey_import_url' mangled-name='gnutls_pkcs11_privkey_import_url' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_privkey_import_url@@GNUTLS_3_4'>
- <parameter type-id='type-id-384' name='pkey'/>
+ <parameter type-id='type-id-387' name='pkey'/>
<parameter type-id='type-id-27' name='url'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs11_privkey_status' mangled-name='gnutls_pkcs11_privkey_status' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_privkey_status@@GNUTLS_3_4'>
- <parameter type-id='type-id-384' name='key'/>
+ <parameter type-id='type-id-387' name='key'/>
<return type-id='type-id-10'/>
</function-decl>
<function-decl name='gnutls_pkcs11_privkey_get_info' mangled-name='gnutls_pkcs11_privkey_get_info' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_privkey_get_info@@GNUTLS_3_4'>
- <parameter type-id='type-id-384' name='pkey'/>
- <parameter type-id='type-id-929' name='itype'/>
+ <parameter type-id='type-id-387' name='pkey'/>
+ <parameter type-id='type-id-932' name='itype'/>
<parameter type-id='type-id-101' name='output'/>
- <parameter type-id='type-id-422' name='output_size'/>
+ <parameter type-id='type-id-425' name='output_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs11_privkey_get_pk_algorithm' mangled-name='gnutls_pkcs11_privkey_get_pk_algorithm' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_privkey_get_pk_algorithm@@GNUTLS_3_4'>
- <parameter type-id='type-id-384' name='key'/>
- <parameter type-id='type-id-419' name='bits'/>
+ <parameter type-id='type-id-387' name='key'/>
+ <parameter type-id='type-id-422' name='bits'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs11_privkey_deinit' mangled-name='gnutls_pkcs11_privkey_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_privkey_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-384' name='key'/>
+ <parameter type-id='type-id-387' name='key'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_pkcs11_privkey_cpy' mangled-name='gnutls_pkcs11_privkey_cpy' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_privkey_cpy@@GNUTLS_3_4'>
- <parameter type-id='type-id-384' name='dst'/>
- <parameter type-id='type-id-384' name='src'/>
+ <parameter type-id='type-id-387' name='dst'/>
+ <parameter type-id='type-id-387' name='src'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs11_privkey_init' mangled-name='gnutls_pkcs11_privkey_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_privkey_init@@GNUTLS_3_4'>
- <parameter type-id='type-id-759' name='key'/>
+ <parameter type-id='type-id-762' name='key'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pubkey_set_pin_function' mangled-name='gnutls_pubkey_set_pin_function' visibility='default' binding='global' size-in-bits='64'>
@@ -12486,7 +12567,7 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='pkcs11_write.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='pkcs11_write.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_pkcs11_token_get_random' mangled-name='gnutls_pkcs11_token_get_random' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_token_get_random@@GNUTLS_3_4'>
<parameter type-id='type-id-27' name='token_url'/>
<parameter type-id='type-id-101' name='rnddata'/>
@@ -12513,7 +12594,7 @@
</function-decl>
<function-decl name='gnutls_pkcs11_copy_x509_privkey2' mangled-name='gnutls_pkcs11_copy_x509_privkey2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_copy_x509_privkey2@@GNUTLS_3_4'>
<parameter type-id='type-id-27' name='token_url'/>
- <parameter type-id='type-id-383' name='key'/>
+ <parameter type-id='type-id-386' name='key'/>
<parameter type-id='type-id-27' name='label'/>
<parameter type-id='type-id-57' name='cid'/>
<parameter type-id='type-id-10' name='key_usage'/>
@@ -12522,15 +12603,15 @@
</function-decl>
<function-decl name='gnutls_pkcs11_copy_attached_extension' mangled-name='gnutls_pkcs11_copy_attached_extension' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_copy_attached_extension@@GNUTLS_3_4'>
<parameter type-id='type-id-27' name='token_url'/>
- <parameter type-id='type-id-467' name='crt'/>
- <parameter type-id='type-id-275' name='data'/>
+ <parameter type-id='type-id-470' name='crt'/>
+ <parameter type-id='type-id-278' name='data'/>
<parameter type-id='type-id-27' name='label'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs11_copy_pubkey' mangled-name='gnutls_pkcs11_copy_pubkey' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_copy_pubkey@@GNUTLS_3_4'>
<parameter type-id='type-id-27' name='token_url'/>
- <parameter type-id='type-id-267' name='pubkey'/>
+ <parameter type-id='type-id-270' name='pubkey'/>
<parameter type-id='type-id-27' name='label'/>
<parameter type-id='type-id-57' name='cid'/>
<parameter type-id='type-id-10' name='key_usage'/>
@@ -12539,7 +12620,7 @@
</function-decl>
<function-decl name='gnutls_pkcs11_copy_x509_crt2' mangled-name='gnutls_pkcs11_copy_x509_crt2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_copy_x509_crt2@@GNUTLS_3_4'>
<parameter type-id='type-id-27' name='token_url'/>
- <parameter type-id='type-id-467' name='crt'/>
+ <parameter type-id='type-id-470' name='crt'/>
<parameter type-id='type-id-27' name='label'/>
<parameter type-id='type-id-57' name='cid'/>
<parameter type-id='type-id-10' name='flags'/>
@@ -12597,29 +12678,29 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='pkcs11_secret.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='pkcs11_secret.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
<function-decl name='gnutls_pkcs11_copy_secret_key' mangled-name='gnutls_pkcs11_copy_secret_key' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs11_copy_secret_key@@GNUTLS_3_4'>
<parameter type-id='type-id-27' name='token_url'/>
- <parameter type-id='type-id-275' name='key'/>
+ <parameter type-id='type-id-278' name='key'/>
<parameter type-id='type-id-27' name='label'/>
<parameter type-id='type-id-10' name='key_usage'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='srp.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
- <class-decl name='gnutls_srp_server_credentials_st' size-in-bits='768' is-struct='yes' visibility='default' id='type-id-935'>
+ <abi-instr version='1.0' address-size='64' path='srp.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
+ <class-decl name='gnutls_srp_server_credentials_st' size-in-bits='768' is-struct='yes' visibility='default' id='type-id-938'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='password_file' type-id='type-id-376' visibility='default'/>
+ <var-decl name='password_file' type-id='type-id-379' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='password_conf_file' type-id='type-id-376' visibility='default'/>
+ <var-decl name='password_conf_file' type-id='type-id-379' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='pwd_callback' type-id='type-id-936' visibility='default'/>
+ <var-decl name='pwd_callback' type-id='type-id-939' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='fake_salt_seed' type-id='type-id-490' visibility='default'/>
+ <var-decl name='fake_salt_seed' type-id='type-id-493' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='704'>
<var-decl name='fake_salt_seed_size' type-id='type-id-10' visibility='default'/>
@@ -12628,18 +12709,18 @@
<var-decl name='fake_salt_length' type-id='type-id-10' visibility='default'/>
</data-member>
</class-decl>
- <typedef-decl name='gnutls_srp_server_credentials_function' type-id='type-id-937' id='type-id-938'/>
- <pointer-type-def type-id='type-id-938' size-in-bits='64' id='type-id-936'/>
- <pointer-type-def type-id='type-id-935' size-in-bits='64' id='type-id-939'/>
- <typedef-decl name='gnutls_srp_server_credentials_t' type-id='type-id-939' id='type-id-940'/>
+ <typedef-decl name='gnutls_srp_server_credentials_function' type-id='type-id-940' id='type-id-941'/>
+ <pointer-type-def type-id='type-id-941' size-in-bits='64' id='type-id-939'/>
+ <pointer-type-def type-id='type-id-938' size-in-bits='64' id='type-id-942'/>
+ <typedef-decl name='gnutls_srp_server_credentials_t' type-id='type-id-942' id='type-id-943'/>
<function-decl name='gnutls_srp_set_server_fake_salt_seed' mangled-name='gnutls_srp_set_server_fake_salt_seed' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_srp_set_server_fake_salt_seed@@GNUTLS_3_4'>
- <parameter type-id='type-id-940' name='cred'/>
+ <parameter type-id='type-id-943' name='cred'/>
<parameter type-id='type-id-57' name='seed'/>
<parameter type-id='type-id-10' name='salt_length'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_srp_set_prime_bits' mangled-name='gnutls_srp_set_prime_bits' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_srp_set_prime_bits@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-10' name='mtu'/>
<return type-id='type-id-111'/>
</function-decl>
@@ -12649,66 +12730,66 @@
<parameter type-id='type-id-57' name='salt'/>
<parameter type-id='type-id-57' name='generator'/>
<parameter type-id='type-id-57' name='prime'/>
- <parameter type-id='type-id-275' name='res'/>
+ <parameter type-id='type-id-278' name='res'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_srp_server_get_username' mangled-name='gnutls_srp_server_get_username' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_srp_server_get_username@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<return type-id='type-id-27'/>
</function-decl>
- <class-decl name='gnutls_srp_client_credentials_st' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-941'>
+ <class-decl name='gnutls_srp_client_credentials_st' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-944'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='username' type-id='type-id-376' visibility='default'/>
+ <var-decl name='username' type-id='type-id-379' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='password' type-id='type-id-376' visibility='default'/>
+ <var-decl name='password' type-id='type-id-379' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='get_function' type-id='type-id-942' visibility='default'/>
+ <var-decl name='get_function' type-id='type-id-945' visibility='default'/>
</data-member>
</class-decl>
- <typedef-decl name='gnutls_srp_client_credentials_function' type-id='type-id-943' id='type-id-944'/>
- <pointer-type-def type-id='type-id-944' size-in-bits='64' id='type-id-942'/>
- <pointer-type-def type-id='type-id-941' size-in-bits='64' id='type-id-945'/>
- <typedef-decl name='gnutls_srp_client_credentials_t' type-id='type-id-945' id='type-id-946'/>
+ <typedef-decl name='gnutls_srp_client_credentials_function' type-id='type-id-946' id='type-id-947'/>
+ <pointer-type-def type-id='type-id-947' size-in-bits='64' id='type-id-945'/>
+ <pointer-type-def type-id='type-id-944' size-in-bits='64' id='type-id-948'/>
+ <typedef-decl name='gnutls_srp_client_credentials_t' type-id='type-id-948' id='type-id-949'/>
<function-decl name='gnutls_srp_set_client_credentials_function' mangled-name='gnutls_srp_set_client_credentials_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_srp_set_client_credentials_function@@GNUTLS_3_4'>
- <parameter type-id='type-id-946' name='cred'/>
- <parameter type-id='type-id-942' name='func'/>
+ <parameter type-id='type-id-949' name='cred'/>
+ <parameter type-id='type-id-945' name='func'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_srp_set_server_credentials_function' mangled-name='gnutls_srp_set_server_credentials_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_srp_set_server_credentials_function@@GNUTLS_3_4'>
- <parameter type-id='type-id-940' name='cred'/>
- <parameter type-id='type-id-936' name='func'/>
+ <parameter type-id='type-id-943' name='cred'/>
+ <parameter type-id='type-id-939' name='func'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_srp_set_server_credentials_file' mangled-name='gnutls_srp_set_server_credentials_file' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_srp_set_server_credentials_file@@GNUTLS_3_4'>
- <parameter type-id='type-id-940' name='res'/>
+ <parameter type-id='type-id-943' name='res'/>
<parameter type-id='type-id-27' name='password_file'/>
<parameter type-id='type-id-27' name='password_conf_file'/>
<return type-id='type-id-22'/>
</function-decl>
- <pointer-type-def type-id='type-id-940' size-in-bits='64' id='type-id-947'/>
+ <pointer-type-def type-id='type-id-943' size-in-bits='64' id='type-id-950'/>
<function-decl name='gnutls_srp_allocate_server_credentials' mangled-name='gnutls_srp_allocate_server_credentials' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_srp_allocate_server_credentials@@GNUTLS_3_4'>
- <parameter type-id='type-id-947' name='sc'/>
+ <parameter type-id='type-id-950' name='sc'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_srp_free_server_credentials' mangled-name='gnutls_srp_free_server_credentials' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_srp_free_server_credentials@@GNUTLS_3_4'>
- <parameter type-id='type-id-940' name='sc'/>
+ <parameter type-id='type-id-943' name='sc'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_srp_set_client_credentials' mangled-name='gnutls_srp_set_client_credentials' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_srp_set_client_credentials@@GNUTLS_3_4'>
- <parameter type-id='type-id-946' name='res'/>
+ <parameter type-id='type-id-949' name='res'/>
<parameter type-id='type-id-27' name='username'/>
<parameter type-id='type-id-27' name='password'/>
<return type-id='type-id-22'/>
</function-decl>
- <pointer-type-def type-id='type-id-946' size-in-bits='64' id='type-id-948'/>
+ <pointer-type-def type-id='type-id-949' size-in-bits='64' id='type-id-951'/>
<function-decl name='gnutls_srp_allocate_client_credentials' mangled-name='gnutls_srp_allocate_client_credentials' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_srp_allocate_client_credentials@@GNUTLS_3_4'>
- <parameter type-id='type-id-948' name='sc'/>
+ <parameter type-id='type-id-951' name='sc'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_srp_free_client_credentials' mangled-name='gnutls_srp_free_client_credentials' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_srp_free_client_credentials@@GNUTLS_3_4'>
- <parameter type-id='type-id-946' name='sc'/>
+ <parameter type-id='type-id-949' name='sc'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='_gnutls_file_exists' mangled-name='_gnutls_file_exists' visibility='default' binding='global' size-in-bits='64'>
@@ -12717,72 +12798,82 @@
<function-decl name='_gnutls_mpi_random_modp' mangled-name='_gnutls_mpi_random_modp' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-type size-in-bits='64' id='type-id-943'>
- <parameter type-id='type-id-236'/>
- <parameter type-id='type-id-852'/>
- <parameter type-id='type-id-852'/>
+ <function-type size-in-bits='64' id='type-id-946'>
+ <parameter type-id='type-id-237'/>
+ <parameter type-id='type-id-855'/>
+ <parameter type-id='type-id-855'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-937'>
- <parameter type-id='type-id-236'/>
+ <function-type size-in-bits='64' id='type-id-940'>
+ <parameter type-id='type-id-237'/>
<parameter type-id='type-id-27'/>
- <parameter type-id='type-id-275'/>
- <parameter type-id='type-id-275'/>
- <parameter type-id='type-id-275'/>
- <parameter type-id='type-id-275'/>
+ <parameter type-id='type-id-278'/>
+ <parameter type-id='type-id-278'/>
+ <parameter type-id='type-id-278'/>
+ <parameter type-id='type-id-278'/>
<return type-id='type-id-22'/>
</function-type>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='psk.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib' language='LANG_C99'>
- <class-decl name='gnutls_psk_server_credentials_st' size-in-bits='448' is-struct='yes' visibility='default' id='type-id-949'>
+ <abi-instr version='1.0' address-size='64' path='psk.c' comp-dir-path='/root/gnutls/lib' language='LANG_C99'>
+ <class-decl name='gnutls_psk_server_credentials_st' size-in-bits='512' is-struct='yes' visibility='default' id='type-id-952'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='password_file' type-id='type-id-376' visibility='default'/>
+ <var-decl name='password_file' type-id='type-id-379' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='pwd_callback' type-id='type-id-950' visibility='default'/>
+ <var-decl name='pwd_callback' type-id='type-id-953' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='dh_params' type-id='type-id-418' visibility='default'/>
+ <var-decl name='pwd_callback_legacy' type-id='type-id-954' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='deinit_dh_params' type-id='type-id-10' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='224'>
- <var-decl name='dh_sec_param' type-id='type-id-202' visibility='default'/>
+ <var-decl name='dh_params' type-id='type-id-421' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='params_func' type-id='type-id-433' visibility='default'/>
+ <var-decl name='deinit_dh_params' type-id='type-id-10' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='288'>
+ <var-decl name='dh_sec_param' type-id='type-id-203' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='hint' type-id='type-id-376' visibility='default'/>
+ <var-decl name='params_func' type-id='type-id-436' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
+ <var-decl name='hint' type-id='type-id-379' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='448'>
<var-decl name='binder_algo' type-id='type-id-13' visibility='default'/>
</data-member>
</class-decl>
- <typedef-decl name='gnutls_psk_server_credentials_function' type-id='type-id-951' id='type-id-952'/>
- <pointer-type-def type-id='type-id-952' size-in-bits='64' id='type-id-950'/>
- <pointer-type-def type-id='type-id-949' size-in-bits='64' id='type-id-953'/>
- <typedef-decl name='gnutls_psk_server_credentials_t' type-id='type-id-953' id='type-id-954'/>
+ <typedef-decl name='gnutls_psk_server_credentials_function2' type-id='type-id-955' id='type-id-956'/>
+ <pointer-type-def type-id='type-id-956' size-in-bits='64' id='type-id-953'/>
+ <typedef-decl name='gnutls_psk_server_credentials_function' type-id='type-id-957' id='type-id-958'/>
+ <pointer-type-def type-id='type-id-958' size-in-bits='64' id='type-id-954'/>
+ <pointer-type-def type-id='type-id-952' size-in-bits='64' id='type-id-959'/>
+ <typedef-decl name='gnutls_psk_server_credentials_t' type-id='type-id-959' id='type-id-960'/>
<function-decl name='gnutls_psk_set_server_known_dh_params' mangled-name='gnutls_psk_set_server_known_dh_params' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_psk_set_server_known_dh_params@@GNUTLS_3_4'>
- <parameter type-id='type-id-954' name='res'/>
- <parameter type-id='type-id-202' name='sec_param'/>
+ <parameter type-id='type-id-960' name='res'/>
+ <parameter type-id='type-id-203' name='sec_param'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_psk_set_server_dh_params' mangled-name='gnutls_psk_set_server_dh_params' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_psk_set_server_dh_params@@GNUTLS_3_4'>
- <parameter type-id='type-id-954' name='res'/>
- <parameter type-id='type-id-418' name='dh_params'/>
+ <parameter type-id='type-id-960' name='res'/>
+ <parameter type-id='type-id-421' name='dh_params'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_psk_client_get_hint' mangled-name='gnutls_psk_client_get_hint' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_psk_client_get_hint@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<return type-id='type-id-27'/>
</function-decl>
+ <function-decl name='gnutls_psk_server_get_username2' mangled-name='gnutls_psk_server_get_username2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_psk_server_get_username2@@GNUTLS_3_6_13'>
+ <parameter type-id='type-id-237' name='session'/>
+ <parameter type-id='type-id-278' name='username'/>
+ <return type-id='type-id-22'/>
+ </function-decl>
<function-decl name='gnutls_psk_server_get_username' mangled-name='gnutls_psk_server_get_username' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_psk_server_get_username@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<return type-id='type-id-27'/>
</function-decl>
- <class-decl name='gnutls_psk_client_credentials_st' size-in-bits='384' is-struct='yes' visibility='default' id='type-id-955'>
+ <class-decl name='gnutls_psk_client_credentials_st' size-in-bits='448' is-struct='yes' visibility='default' id='type-id-961'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='username' type-id='type-id-62' visibility='default'/>
</data-member>
@@ -12790,86 +12881,120 @@
<var-decl name='key' type-id='type-id-62' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='get_function' type-id='type-id-956' visibility='default'/>
+ <var-decl name='get_function' type-id='type-id-962' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
+ <var-decl name='get_function_legacy' type-id='type-id-963' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='384'>
<var-decl name='binder_algo' type-id='type-id-13' visibility='default'/>
</data-member>
</class-decl>
- <typedef-decl name='gnutls_psk_client_credentials_function' type-id='type-id-957' id='type-id-958'/>
- <pointer-type-def type-id='type-id-958' size-in-bits='64' id='type-id-956'/>
- <pointer-type-def type-id='type-id-955' size-in-bits='64' id='type-id-959'/>
- <typedef-decl name='gnutls_psk_client_credentials_t' type-id='type-id-959' id='type-id-960'/>
+ <typedef-decl name='gnutls_psk_client_credentials_function2' type-id='type-id-964' id='type-id-965'/>
+ <pointer-type-def type-id='type-id-965' size-in-bits='64' id='type-id-962'/>
+ <typedef-decl name='gnutls_psk_client_credentials_function' type-id='type-id-966' id='type-id-967'/>
+ <pointer-type-def type-id='type-id-967' size-in-bits='64' id='type-id-963'/>
+ <pointer-type-def type-id='type-id-961' size-in-bits='64' id='type-id-968'/>
+ <typedef-decl name='gnutls_psk_client_credentials_t' type-id='type-id-968' id='type-id-969'/>
+ <function-decl name='gnutls_psk_set_client_credentials_function2' mangled-name='gnutls_psk_set_client_credentials_function2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_psk_set_client_credentials_function2@@GNUTLS_3_6_13'>
+ <parameter type-id='type-id-969' name='cred'/>
+ <parameter type-id='type-id-962' name='func'/>
+ <return type-id='type-id-111'/>
+ </function-decl>
<function-decl name='gnutls_psk_set_client_credentials_function' mangled-name='gnutls_psk_set_client_credentials_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_psk_set_client_credentials_function@@GNUTLS_3_4'>
+ <parameter type-id='type-id-969' name='cred'/>
+ <parameter type-id='type-id-963' name='func'/>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ <function-decl name='gnutls_psk_set_server_credentials_function2' mangled-name='gnutls_psk_set_server_credentials_function2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_psk_set_server_credentials_function2@@GNUTLS_3_6_13'>
<parameter type-id='type-id-960' name='cred'/>
- <parameter type-id='type-id-956' name='func'/>
+ <parameter type-id='type-id-953' name='func'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_psk_set_server_credentials_function' mangled-name='gnutls_psk_set_server_credentials_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_psk_set_server_credentials_function@@GNUTLS_3_4'>
- <parameter type-id='type-id-954' name='cred'/>
- <parameter type-id='type-id-950' name='func'/>
+ <parameter type-id='type-id-960' name='cred'/>
+ <parameter type-id='type-id-954' name='func'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_psk_set_server_credentials_hint' mangled-name='gnutls_psk_set_server_credentials_hint' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_psk_set_server_credentials_hint@@GNUTLS_3_4'>
- <parameter type-id='type-id-954' name='res'/>
+ <parameter type-id='type-id-960' name='res'/>
<parameter type-id='type-id-27' name='hint'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_psk_set_server_credentials_file' mangled-name='gnutls_psk_set_server_credentials_file' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_psk_set_server_credentials_file@@GNUTLS_3_4'>
- <parameter type-id='type-id-954' name='res'/>
+ <parameter type-id='type-id-960' name='res'/>
<parameter type-id='type-id-27' name='password_file'/>
<return type-id='type-id-22'/>
</function-decl>
- <pointer-type-def type-id='type-id-954' size-in-bits='64' id='type-id-961'/>
+ <pointer-type-def type-id='type-id-960' size-in-bits='64' id='type-id-970'/>
<function-decl name='gnutls_psk_allocate_server_credentials' mangled-name='gnutls_psk_allocate_server_credentials' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_psk_allocate_server_credentials@@GNUTLS_3_4'>
- <parameter type-id='type-id-961' name='sc'/>
+ <parameter type-id='type-id-970' name='sc'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_psk_free_server_credentials' mangled-name='gnutls_psk_free_server_credentials' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_psk_free_server_credentials@@GNUTLS_3_4'>
- <parameter type-id='type-id-954' name='sc'/>
+ <parameter type-id='type-id-960' name='sc'/>
<return type-id='type-id-111'/>
</function-decl>
- <enum-decl name='gnutls_psk_key_flags' id='type-id-962'>
+ <enum-decl name='gnutls_psk_key_flags' id='type-id-971'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_PSK_KEY_RAW' value='0'/>
<enumerator name='GNUTLS_PSK_KEY_HEX' value='1'/>
</enum-decl>
- <typedef-decl name='gnutls_psk_key_flags' type-id='type-id-962' id='type-id-963'/>
+ <typedef-decl name='gnutls_psk_key_flags' type-id='type-id-971' id='type-id-972'/>
+ <function-decl name='gnutls_psk_set_client_credentials2' mangled-name='gnutls_psk_set_client_credentials2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_psk_set_client_credentials2@@GNUTLS_3_6_13'>
+ <parameter type-id='type-id-969' name='res'/>
+ <parameter type-id='type-id-57' name='username'/>
+ <parameter type-id='type-id-57' name='key'/>
+ <parameter type-id='type-id-972' name='flags'/>
+ <return type-id='type-id-22'/>
+ </function-decl>
<function-decl name='gnutls_psk_set_client_credentials' mangled-name='gnutls_psk_set_client_credentials' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_psk_set_client_credentials@@GNUTLS_3_4'>
- <parameter type-id='type-id-960' name='res'/>
+ <parameter type-id='type-id-969' name='res'/>
<parameter type-id='type-id-27' name='username'/>
<parameter type-id='type-id-57' name='key'/>
- <parameter type-id='type-id-963' name='flags'/>
+ <parameter type-id='type-id-972' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
- <pointer-type-def type-id='type-id-960' size-in-bits='64' id='type-id-964'/>
+ <pointer-type-def type-id='type-id-969' size-in-bits='64' id='type-id-973'/>
<function-decl name='gnutls_psk_allocate_client_credentials' mangled-name='gnutls_psk_allocate_client_credentials' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_psk_allocate_client_credentials@@GNUTLS_3_4'>
- <parameter type-id='type-id-964' name='sc'/>
+ <parameter type-id='type-id-973' name='sc'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_psk_free_client_credentials' mangled-name='gnutls_psk_free_client_credentials' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_psk_free_client_credentials@@GNUTLS_3_4'>
- <parameter type-id='type-id-960' name='sc'/>
+ <parameter type-id='type-id-969' name='sc'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_psk_set_server_params_function' mangled-name='gnutls_psk_set_server_params_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_psk_set_server_params_function@@GNUTLS_3_4'>
- <parameter type-id='type-id-954' name='res'/>
- <parameter type-id='type-id-433' name='func'/>
+ <parameter type-id='type-id-960' name='res'/>
+ <parameter type-id='type-id-436' name='func'/>
<return type-id='type-id-111'/>
</function-decl>
- <function-type size-in-bits='64' id='type-id-957'>
- <parameter type-id='type-id-236'/>
- <parameter type-id='type-id-852'/>
- <parameter type-id='type-id-275'/>
+ <function-type size-in-bits='64' id='type-id-966'>
+ <parameter type-id='type-id-237'/>
+ <parameter type-id='type-id-855'/>
+ <parameter type-id='type-id-278'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-951'>
- <parameter type-id='type-id-236'/>
+ <function-type size-in-bits='64' id='type-id-957'>
+ <parameter type-id='type-id-237'/>
<parameter type-id='type-id-27'/>
- <parameter type-id='type-id-275'/>
+ <parameter type-id='type-id-278'/>
+ <return type-id='type-id-22'/>
+ </function-type>
+ <function-type size-in-bits='64' id='type-id-955'>
+ <parameter type-id='type-id-237'/>
+ <parameter type-id='type-id-57'/>
+ <parameter type-id='type-id-278'/>
+ <return type-id='type-id-22'/>
+ </function-type>
+ <function-type size-in-bits='64' id='type-id-964'>
+ <parameter type-id='type-id-237'/>
+ <parameter type-id='type-id-278'/>
+ <parameter type-id='type-id-278'/>
<return type-id='type-id-22'/>
</function-type>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='read-file.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/gl' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='read-file.c' comp-dir-path='/root/gnutls/gl' language='LANG_C99'>
<function-decl name='ftello' mangled-name='ftello' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -12882,19 +13007,19 @@
<function-decl name='realloc' mangled-name='realloc' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-decl name='fread' mangled-name='fread' visibility='default' binding='global' size-in-bits='64'>
+ <function-decl name='__fread_alias' mangled-name='fread' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='ferror' mangled-name='ferror' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='asnprintf.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/gl' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='asnprintf.c' comp-dir-path='/root/gnutls/gl' language='LANG_C99'>
<function-decl name='vasnprintf' mangled-name='vasnprintf' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='vasnprintf.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/gl' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='vasnprintf.c' comp-dir-path='/root/gnutls/gl' language='LANG_C99'>
<function-decl name='printf_parse' mangled-name='printf_parse' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -12902,17 +13027,17 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='common.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='common.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
<function-decl name='gnutls_oid_to_gost_paramset' mangled-name='gnutls_oid_to_gost_paramset' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_oid_to_gost_paramset@@GNUTLS_3_6_3'>
<parameter type-id='type-id-27' name='oid'/>
- <return type-id='type-id-315'/>
+ <return type-id='type-id-318'/>
</function-decl>
<function-decl name='gnutls_gost_paramset_get_oid' mangled-name='gnutls_gost_paramset_get_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_gost_paramset_get_oid@@GNUTLS_3_6_3'>
- <parameter type-id='type-id-315' name='param'/>
+ <parameter type-id='type-id-318' name='param'/>
<return type-id='type-id-27'/>
</function-decl>
<function-decl name='gnutls_gost_paramset_get_name' mangled-name='gnutls_gost_paramset_get_name' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_gost_paramset_get_name@@GNUTLS_3_6_3'>
- <parameter type-id='type-id-315' name='param'/>
+ <parameter type-id='type-id-318' name='param'/>
<return type-id='type-id-27'/>
</function-decl>
<function-decl name='gnutls_x509_dn_oid_name' mangled-name='gnutls_x509_dn_oid_name' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_dn_oid_name@@GNUTLS_3_4'>
@@ -12964,7 +13089,7 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='key_encode.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='key_encode.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
<function-decl name='asn1_delete_structure2' mangled-name='asn1_delete_structure2' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -12990,7 +13115,7 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='key_decode.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='key_decode.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
<function-decl name='asn1_get_length_der' mangled-name='asn1_get_length_der' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -13001,7 +13126,7 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='time.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='time.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
<function-decl name='_gnutls_x509_generalTime2gtime' mangled-name='_gnutls_x509_generalTime2gtime' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls_x509_generalTime2gtime@@GNUTLS_PRIVATE_3_4'>
<parameter type-id='type-id-27' name='ttime'/>
<return type-id='type-id-17'/>
@@ -13017,197 +13142,197 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='crl.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='crl.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
<function-decl name='gnutls_x509_crl_list_import' mangled-name='gnutls_x509_crl_list_import' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_list_import@@GNUTLS_3_4'>
- <parameter type-id='type-id-731' name='crls'/>
- <parameter type-id='type-id-419' name='crl_max'/>
+ <parameter type-id='type-id-734' name='crls'/>
+ <parameter type-id='type-id-422' name='crl_max'/>
<parameter type-id='type-id-57' name='data'/>
- <parameter type-id='type-id-421' name='format'/>
+ <parameter type-id='type-id-424' name='format'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
- <pointer-type-def type-id='type-id-731' size-in-bits='64' id='type-id-965'/>
+ <pointer-type-def type-id='type-id-734' size-in-bits='64' id='type-id-974'/>
<function-decl name='gnutls_x509_crl_list_import2' mangled-name='gnutls_x509_crl_list_import2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_list_import2@@GNUTLS_3_4'>
- <parameter type-id='type-id-965' name='crls'/>
- <parameter type-id='type-id-419' name='size'/>
+ <parameter type-id='type-id-974' name='crls'/>
+ <parameter type-id='type-id-422' name='size'/>
<parameter type-id='type-id-57' name='data'/>
- <parameter type-id='type-id-421' name='format'/>
+ <parameter type-id='type-id-424' name='format'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crl_get_extension_data' mangled-name='gnutls_x509_crl_get_extension_data' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_get_extension_data@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
+ <parameter type-id='type-id-733' name='crl'/>
<parameter type-id='type-id-10' name='indx'/>
<parameter type-id='type-id-101' name='data'/>
- <parameter type-id='type-id-422' name='sizeof_data'/>
+ <parameter type-id='type-id-425' name='sizeof_data'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crl_get_extension_info' mangled-name='gnutls_x509_crl_get_extension_info' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_get_extension_info@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
+ <parameter type-id='type-id-733' name='crl'/>
<parameter type-id='type-id-10' name='indx'/>
<parameter type-id='type-id-101' name='oid'/>
- <parameter type-id='type-id-422' name='sizeof_oid'/>
- <parameter type-id='type-id-419' name='critical'/>
+ <parameter type-id='type-id-425' name='sizeof_oid'/>
+ <parameter type-id='type-id-422' name='critical'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crl_get_extension_oid' mangled-name='gnutls_x509_crl_get_extension_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_get_extension_oid@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
+ <parameter type-id='type-id-733' name='crl'/>
<parameter type-id='type-id-10' name='indx'/>
<parameter type-id='type-id-101' name='oid'/>
- <parameter type-id='type-id-422' name='sizeof_oid'/>
+ <parameter type-id='type-id-425' name='sizeof_oid'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crl_get_number' mangled-name='gnutls_x509_crl_get_number' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_get_number@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
+ <parameter type-id='type-id-733' name='crl'/>
<parameter type-id='type-id-101' name='ret'/>
- <parameter type-id='type-id-422' name='ret_size'/>
- <parameter type-id='type-id-419' name='critical'/>
+ <parameter type-id='type-id-425' name='ret_size'/>
+ <parameter type-id='type-id-422' name='critical'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crl_get_authority_key_id' mangled-name='gnutls_x509_crl_get_authority_key_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_get_authority_key_id@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
+ <parameter type-id='type-id-733' name='crl'/>
<parameter type-id='type-id-101' name='id'/>
- <parameter type-id='type-id-422' name='id_size'/>
- <parameter type-id='type-id-419' name='critical'/>
+ <parameter type-id='type-id-425' name='id_size'/>
+ <parameter type-id='type-id-422' name='critical'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crl_get_authority_key_gn_serial' mangled-name='gnutls_x509_crl_get_authority_key_gn_serial' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_get_authority_key_gn_serial@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
+ <parameter type-id='type-id-733' name='crl'/>
<parameter type-id='type-id-10' name='seq'/>
<parameter type-id='type-id-101' name='alt'/>
- <parameter type-id='type-id-422' name='alt_size'/>
- <parameter type-id='type-id-419' name='alt_type'/>
+ <parameter type-id='type-id-425' name='alt_size'/>
+ <parameter type-id='type-id-422' name='alt_type'/>
<parameter type-id='type-id-101' name='serial'/>
- <parameter type-id='type-id-422' name='serial_size'/>
- <parameter type-id='type-id-419' name='critical'/>
+ <parameter type-id='type-id-425' name='serial_size'/>
+ <parameter type-id='type-id-422' name='critical'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crl_export' mangled-name='gnutls_x509_crl_export' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_export@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
- <parameter type-id='type-id-421' name='format'/>
+ <parameter type-id='type-id-733' name='crl'/>
+ <parameter type-id='type-id-424' name='format'/>
<parameter type-id='type-id-101' name='output_data'/>
- <parameter type-id='type-id-422' name='output_data_size'/>
+ <parameter type-id='type-id-425' name='output_data_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crl_get_raw_issuer_dn' mangled-name='gnutls_x509_crl_get_raw_issuer_dn' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_get_raw_issuer_dn@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
- <parameter type-id='type-id-275' name='dn'/>
+ <parameter type-id='type-id-733' name='crl'/>
+ <parameter type-id='type-id-278' name='dn'/>
<return type-id='type-id-22'/>
</function-decl>
- <class-decl name='gnutls_x509_crl_iter' size-in-bits='128' is-struct='yes' visibility='default' id='type-id-966'>
+ <class-decl name='gnutls_x509_crl_iter' size-in-bits='128' is-struct='yes' visibility='default' id='type-id-975'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='rcache' type-id='type-id-387' visibility='default'/>
+ <var-decl name='rcache' type-id='type-id-390' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='rcache_idx' type-id='type-id-10' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-966' size-in-bits='64' id='type-id-967'/>
- <typedef-decl name='gnutls_x509_crl_iter_t' type-id='type-id-967' id='type-id-968'/>
- <pointer-type-def type-id='type-id-968' size-in-bits='64' id='type-id-969'/>
+ <pointer-type-def type-id='type-id-975' size-in-bits='64' id='type-id-976'/>
+ <typedef-decl name='gnutls_x509_crl_iter_t' type-id='type-id-976' id='type-id-977'/>
+ <pointer-type-def type-id='type-id-977' size-in-bits='64' id='type-id-978'/>
<function-decl name='gnutls_x509_crl_iter_crt_serial' mangled-name='gnutls_x509_crl_iter_crt_serial' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_iter_crt_serial@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
- <parameter type-id='type-id-969' name='iter'/>
+ <parameter type-id='type-id-733' name='crl'/>
+ <parameter type-id='type-id-978' name='iter'/>
<parameter type-id='type-id-64' name='serial'/>
- <parameter type-id='type-id-422' name='serial_size'/>
- <parameter type-id='type-id-514' name='t'/>
+ <parameter type-id='type-id-425' name='serial_size'/>
+ <parameter type-id='type-id-517' name='t'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crl_iter_deinit' mangled-name='gnutls_x509_crl_iter_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_iter_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-968' name='iter'/>
+ <parameter type-id='type-id-977' name='iter'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_x509_crl_get_crt_serial' mangled-name='gnutls_x509_crl_get_crt_serial' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_get_crt_serial@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
+ <parameter type-id='type-id-733' name='crl'/>
<parameter type-id='type-id-10' name='indx'/>
<parameter type-id='type-id-64' name='serial'/>
- <parameter type-id='type-id-422' name='serial_size'/>
- <parameter type-id='type-id-514' name='t'/>
+ <parameter type-id='type-id-425' name='serial_size'/>
+ <parameter type-id='type-id-517' name='t'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crl_get_crt_count' mangled-name='gnutls_x509_crl_get_crt_count' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_get_crt_count@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
+ <parameter type-id='type-id-733' name='crl'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crl_get_next_update' mangled-name='gnutls_x509_crl_get_next_update' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_get_next_update@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
+ <parameter type-id='type-id-733' name='crl'/>
<return type-id='type-id-17'/>
</function-decl>
<function-decl name='gnutls_x509_crl_get_this_update' mangled-name='gnutls_x509_crl_get_this_update' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_get_this_update@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
+ <parameter type-id='type-id-733' name='crl'/>
<return type-id='type-id-17'/>
</function-decl>
<function-decl name='gnutls_x509_crl_get_version' mangled-name='gnutls_x509_crl_get_version' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_get_version@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
+ <parameter type-id='type-id-733' name='crl'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crl_get_signature' mangled-name='gnutls_x509_crl_get_signature' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_get_signature@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
- <parameter type-id='type-id-376' name='sig'/>
- <parameter type-id='type-id-422' name='sizeof_sig'/>
+ <parameter type-id='type-id-733' name='crl'/>
+ <parameter type-id='type-id-379' name='sig'/>
+ <parameter type-id='type-id-425' name='sizeof_sig'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crl_get_signature_oid' mangled-name='gnutls_x509_crl_get_signature_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_get_signature_oid@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
- <parameter type-id='type-id-376' name='oid'/>
- <parameter type-id='type-id-422' name='oid_size'/>
+ <parameter type-id='type-id-733' name='crl'/>
+ <parameter type-id='type-id-379' name='oid'/>
+ <parameter type-id='type-id-425' name='oid_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crl_get_signature_algorithm' mangled-name='gnutls_x509_crl_get_signature_algorithm' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_get_signature_algorithm@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
+ <parameter type-id='type-id-733' name='crl'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crl_get_issuer_dn3' mangled-name='gnutls_x509_crl_get_issuer_dn3' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_get_issuer_dn3@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
- <parameter type-id='type-id-275' name='dn'/>
+ <parameter type-id='type-id-733' name='crl'/>
+ <parameter type-id='type-id-278' name='dn'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crl_get_issuer_dn2' mangled-name='gnutls_x509_crl_get_issuer_dn2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_get_issuer_dn2@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
- <parameter type-id='type-id-275' name='dn'/>
+ <parameter type-id='type-id-733' name='crl'/>
+ <parameter type-id='type-id-278' name='dn'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crl_get_dn_oid' mangled-name='gnutls_x509_crl_get_dn_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_get_dn_oid@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
+ <parameter type-id='type-id-733' name='crl'/>
<parameter type-id='type-id-10' name='indx'/>
<parameter type-id='type-id-101' name='oid'/>
- <parameter type-id='type-id-422' name='sizeof_oid'/>
+ <parameter type-id='type-id-425' name='sizeof_oid'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crl_get_issuer_dn_by_oid' mangled-name='gnutls_x509_crl_get_issuer_dn_by_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_get_issuer_dn_by_oid@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
+ <parameter type-id='type-id-733' name='crl'/>
<parameter type-id='type-id-27' name='oid'/>
<parameter type-id='type-id-10' name='indx'/>
<parameter type-id='type-id-10' name='raw_flag'/>
<parameter type-id='type-id-101' name='buf'/>
- <parameter type-id='type-id-422' name='sizeof_buf'/>
+ <parameter type-id='type-id-425' name='sizeof_buf'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crl_get_issuer_dn' mangled-name='gnutls_x509_crl_get_issuer_dn' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_get_issuer_dn@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
- <parameter type-id='type-id-376' name='buf'/>
- <parameter type-id='type-id-422' name='sizeof_buf'/>
+ <parameter type-id='type-id-733' name='crl'/>
+ <parameter type-id='type-id-379' name='buf'/>
+ <parameter type-id='type-id-425' name='sizeof_buf'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crl_import' mangled-name='gnutls_x509_crl_import' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_import@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
+ <parameter type-id='type-id-733' name='crl'/>
<parameter type-id='type-id-57' name='data'/>
- <parameter type-id='type-id-421' name='format'/>
+ <parameter type-id='type-id-424' name='format'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crl_deinit' mangled-name='gnutls_x509_crl_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
+ <parameter type-id='type-id-733' name='crl'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_x509_crl_init' mangled-name='gnutls_x509_crl_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_init@@GNUTLS_3_4'>
- <parameter type-id='type-id-731' name='crl'/>
+ <parameter type-id='type-id-734' name='crl'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crl_export2' mangled-name='gnutls_x509_crl_export2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_export2@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
- <parameter type-id='type-id-421' name='format'/>
- <parameter type-id='type-id-275' name='out'/>
+ <parameter type-id='type-id-733' name='crl'/>
+ <parameter type-id='type-id-424' name='format'/>
+ <parameter type-id='type-id-278' name='out'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='_gnutls_x509_crl_get_extension_oid' mangled-name='_gnutls_x509_crl_get_extension_oid' visibility='default' binding='global' size-in-bits='64'>
@@ -13256,66 +13381,66 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='crl_write.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='crl_write.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
<function-decl name='gnutls_x509_crl_privkey_sign' mangled-name='gnutls_x509_crl_privkey_sign' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_privkey_sign@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
- <parameter type-id='type-id-467' name='issuer'/>
- <parameter type-id='type-id-401' name='issuer_key'/>
- <parameter type-id='type-id-211' name='dig'/>
+ <parameter type-id='type-id-733' name='crl'/>
+ <parameter type-id='type-id-470' name='issuer'/>
+ <parameter type-id='type-id-404' name='issuer_key'/>
+ <parameter type-id='type-id-212' name='dig'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crl_set_number' mangled-name='gnutls_x509_crl_set_number' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_set_number@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
+ <parameter type-id='type-id-733' name='crl'/>
<parameter type-id='type-id-101' name='nr'/>
<parameter type-id='type-id-99' name='nr_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crl_set_authority_key_id' mangled-name='gnutls_x509_crl_set_authority_key_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_set_authority_key_id@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
+ <parameter type-id='type-id-733' name='crl'/>
<parameter type-id='type-id-101' name='nr'/>
<parameter type-id='type-id-99' name='nr_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crl_set_crt' mangled-name='gnutls_x509_crl_set_crt' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_set_crt@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
- <parameter type-id='type-id-467' name='crt'/>
+ <parameter type-id='type-id-733' name='crl'/>
+ <parameter type-id='type-id-470' name='crt'/>
<parameter type-id='type-id-17' name='revocation_time'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crl_set_crt_serial' mangled-name='gnutls_x509_crl_set_crt_serial' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_set_crt_serial@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
+ <parameter type-id='type-id-733' name='crl'/>
<parameter type-id='type-id-101' name='serial'/>
<parameter type-id='type-id-99' name='serial_size'/>
<parameter type-id='type-id-17' name='revocation_time'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crl_set_next_update' mangled-name='gnutls_x509_crl_set_next_update' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_set_next_update@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
+ <parameter type-id='type-id-733' name='crl'/>
<parameter type-id='type-id-17' name='exp_time'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crl_set_this_update' mangled-name='gnutls_x509_crl_set_this_update' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_set_this_update@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
+ <parameter type-id='type-id-733' name='crl'/>
<parameter type-id='type-id-17' name='exp_time'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crl_sign' mangled-name='gnutls_x509_crl_sign' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_sign@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
- <parameter type-id='type-id-467' name='issuer'/>
- <parameter type-id='type-id-383' name='issuer_key'/>
+ <parameter type-id='type-id-733' name='crl'/>
+ <parameter type-id='type-id-470' name='issuer'/>
+ <parameter type-id='type-id-386' name='issuer_key'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crl_sign2' mangled-name='gnutls_x509_crl_sign2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_sign2@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
- <parameter type-id='type-id-467' name='issuer'/>
- <parameter type-id='type-id-383' name='issuer_key'/>
- <parameter type-id='type-id-211' name='dig'/>
+ <parameter type-id='type-id-733' name='crl'/>
+ <parameter type-id='type-id-470' name='issuer'/>
+ <parameter type-id='type-id-386' name='issuer_key'/>
+ <parameter type-id='type-id-212' name='dig'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crl_set_version' mangled-name='gnutls_x509_crl_set_version' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_set_version@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
+ <parameter type-id='type-id-733' name='crl'/>
<parameter type-id='type-id-10' name='version'/>
<return type-id='type-id-22'/>
</function-decl>
@@ -13335,107 +13460,107 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='crq.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='crq.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
<function-decl name='gnutls_x509_crq_set_spki' mangled-name='gnutls_x509_crq_set_spki' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_set_spki@@GNUTLS_3_6_0'>
- <parameter type-id='type-id-768' name='crq'/>
- <parameter type-id='type-id-758' name='spki'/>
+ <parameter type-id='type-id-771' name='crq'/>
+ <parameter type-id='type-id-761' name='spki'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_set_extension_by_oid' mangled-name='gnutls_x509_crq_set_extension_by_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_set_extension_by_oid@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
+ <parameter type-id='type-id-771' name='crq'/>
<parameter type-id='type-id-27' name='oid'/>
<parameter type-id='type-id-101' name='buf'/>
<parameter type-id='type-id-99' name='sizeof_buf'/>
<parameter type-id='type-id-10' name='critical'/>
<return type-id='type-id-22'/>
</function-decl>
- <class-decl name='gnutls_x509_tlsfeatures_st' size-in-bits='544' is-struct='yes' visibility='default' id='type-id-970'>
+ <class-decl name='gnutls_x509_tlsfeatures_st' size-in-bits='544' is-struct='yes' visibility='default' id='type-id-979'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='feature' type-id='type-id-971' visibility='default'/>
+ <var-decl name='feature' type-id='type-id-980' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
<var-decl name='size' type-id='type-id-10' visibility='default'/>
</data-member>
</class-decl>
- <array-type-def dimensions='1' type-id='type-id-11' size-in-bits='512' id='type-id-971'>
+ <array-type-def dimensions='1' type-id='type-id-11' size-in-bits='512' id='type-id-980'>
<subrange length='32' type-id='type-id-38' id='type-id-51'/>
</array-type-def>
- <pointer-type-def type-id='type-id-970' size-in-bits='64' id='type-id-972'/>
- <typedef-decl name='gnutls_x509_tlsfeatures_t' type-id='type-id-972' id='type-id-973'/>
+ <pointer-type-def type-id='type-id-979' size-in-bits='64' id='type-id-981'/>
+ <typedef-decl name='gnutls_x509_tlsfeatures_t' type-id='type-id-981' id='type-id-982'/>
<function-decl name='gnutls_x509_crq_set_tlsfeatures' mangled-name='gnutls_x509_crq_set_tlsfeatures' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_set_tlsfeatures@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
- <parameter type-id='type-id-973' name='features'/>
+ <parameter type-id='type-id-771' name='crq'/>
+ <parameter type-id='type-id-982' name='features'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_get_tlsfeatures' mangled-name='gnutls_x509_crq_get_tlsfeatures' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_get_tlsfeatures@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
- <parameter type-id='type-id-973' name='features'/>
+ <parameter type-id='type-id-771' name='crq'/>
+ <parameter type-id='type-id-982' name='features'/>
<parameter type-id='type-id-10' name='flags'/>
- <parameter type-id='type-id-419' name='critical'/>
+ <parameter type-id='type-id-422' name='critical'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_set_private_key_usage_period' mangled-name='gnutls_x509_crq_set_private_key_usage_period' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_set_private_key_usage_period@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
+ <parameter type-id='type-id-771' name='crq'/>
<parameter type-id='type-id-17' name='activation'/>
<parameter type-id='type-id-17' name='expiration'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_verify' mangled-name='gnutls_x509_crq_verify' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_verify@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
+ <parameter type-id='type-id-771' name='crq'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_privkey_sign' mangled-name='gnutls_x509_crq_privkey_sign' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_privkey_sign@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
- <parameter type-id='type-id-401' name='key'/>
- <parameter type-id='type-id-211' name='dig'/>
+ <parameter type-id='type-id-771' name='crq'/>
+ <parameter type-id='type-id-404' name='key'/>
+ <parameter type-id='type-id-212' name='dig'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_get_key_id' mangled-name='gnutls_x509_crq_get_key_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_get_key_id@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
+ <parameter type-id='type-id-771' name='crq'/>
<parameter type-id='type-id-10' name='flags'/>
<parameter type-id='type-id-64' name='output_data'/>
- <parameter type-id='type-id-422' name='output_data_size'/>
+ <parameter type-id='type-id-425' name='output_data_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_set_key_purpose_oid' mangled-name='gnutls_x509_crq_set_key_purpose_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_set_key_purpose_oid@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
+ <parameter type-id='type-id-771' name='crq'/>
<parameter type-id='type-id-101' name='oid'/>
<parameter type-id='type-id-10' name='critical'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_get_key_purpose_oid' mangled-name='gnutls_x509_crq_get_key_purpose_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_get_key_purpose_oid@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
+ <parameter type-id='type-id-771' name='crq'/>
<parameter type-id='type-id-10' name='indx'/>
<parameter type-id='type-id-101' name='oid'/>
- <parameter type-id='type-id-422' name='sizeof_oid'/>
- <parameter type-id='type-id-419' name='critical'/>
+ <parameter type-id='type-id-425' name='sizeof_oid'/>
+ <parameter type-id='type-id-422' name='critical'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_set_key_usage' mangled-name='gnutls_x509_crq_set_key_usage' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_set_key_usage@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
+ <parameter type-id='type-id-771' name='crq'/>
<parameter type-id='type-id-10' name='usage'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_set_basic_constraints' mangled-name='gnutls_x509_crq_set_basic_constraints' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_set_basic_constraints@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
+ <parameter type-id='type-id-771' name='crq'/>
<parameter type-id='type-id-10' name='ca'/>
<parameter type-id='type-id-22' name='pathLenConstraint'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_set_subject_alt_othername' mangled-name='gnutls_x509_crq_set_subject_alt_othername' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_set_subject_alt_othername@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
+ <parameter type-id='type-id-771' name='crq'/>
<parameter type-id='type-id-27' name='oid'/>
<parameter type-id='type-id-101' name='data'/>
<parameter type-id='type-id-10' name='data_size'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
- <enum-decl name='gnutls_x509_subject_alt_name_t' id='type-id-974'>
+ <enum-decl name='gnutls_x509_subject_alt_name_t' id='type-id-983'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_SAN_DNSNAME' value='1'/>
<enumerator name='GNUTLS_SAN_RFC822NAME' value='2'/>
@@ -13448,163 +13573,163 @@
<enumerator name='GNUTLS_SAN_OTHERNAME_XMPP' value='1000'/>
<enumerator name='GNUTLS_SAN_OTHERNAME_KRB5PRINCIPAL' value='1001'/>
</enum-decl>
- <typedef-decl name='gnutls_x509_subject_alt_name_t' type-id='type-id-974' id='type-id-975'/>
+ <typedef-decl name='gnutls_x509_subject_alt_name_t' type-id='type-id-983' id='type-id-984'/>
<function-decl name='gnutls_x509_crq_set_subject_alt_name' mangled-name='gnutls_x509_crq_set_subject_alt_name' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_set_subject_alt_name@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
- <parameter type-id='type-id-975' name='nt'/>
+ <parameter type-id='type-id-771' name='crq'/>
+ <parameter type-id='type-id-984' name='nt'/>
<parameter type-id='type-id-101' name='data'/>
<parameter type-id='type-id-10' name='data_size'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_get_extension_by_oid2' mangled-name='gnutls_x509_crq_get_extension_by_oid2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_get_extension_by_oid2@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
+ <parameter type-id='type-id-771' name='crq'/>
<parameter type-id='type-id-27' name='oid'/>
<parameter type-id='type-id-10' name='indx'/>
- <parameter type-id='type-id-275' name='output'/>
- <parameter type-id='type-id-419' name='critical'/>
+ <parameter type-id='type-id-278' name='output'/>
+ <parameter type-id='type-id-422' name='critical'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_get_extension_by_oid' mangled-name='gnutls_x509_crq_get_extension_by_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_get_extension_by_oid@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
+ <parameter type-id='type-id-771' name='crq'/>
<parameter type-id='type-id-27' name='oid'/>
<parameter type-id='type-id-10' name='indx'/>
<parameter type-id='type-id-101' name='buf'/>
- <parameter type-id='type-id-422' name='buf_size'/>
- <parameter type-id='type-id-419' name='critical'/>
+ <parameter type-id='type-id-425' name='buf_size'/>
+ <parameter type-id='type-id-422' name='critical'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_get_subject_alt_othername_oid' mangled-name='gnutls_x509_crq_get_subject_alt_othername_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_get_subject_alt_othername_oid@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
+ <parameter type-id='type-id-771' name='crq'/>
<parameter type-id='type-id-10' name='seq'/>
<parameter type-id='type-id-101' name='ret'/>
- <parameter type-id='type-id-422' name='ret_size'/>
+ <parameter type-id='type-id-425' name='ret_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_get_subject_alt_name' mangled-name='gnutls_x509_crq_get_subject_alt_name' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_get_subject_alt_name@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
+ <parameter type-id='type-id-771' name='crq'/>
<parameter type-id='type-id-10' name='seq'/>
<parameter type-id='type-id-101' name='ret'/>
- <parameter type-id='type-id-422' name='ret_size'/>
- <parameter type-id='type-id-419' name='ret_type'/>
- <parameter type-id='type-id-419' name='critical'/>
+ <parameter type-id='type-id-425' name='ret_size'/>
+ <parameter type-id='type-id-422' name='ret_type'/>
+ <parameter type-id='type-id-422' name='critical'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_get_basic_constraints' mangled-name='gnutls_x509_crq_get_basic_constraints' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_get_basic_constraints@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
- <parameter type-id='type-id-419' name='critical'/>
- <parameter type-id='type-id-419' name='ca'/>
- <parameter type-id='type-id-364' name='pathlen'/>
+ <parameter type-id='type-id-771' name='crq'/>
+ <parameter type-id='type-id-422' name='critical'/>
+ <parameter type-id='type-id-422' name='ca'/>
+ <parameter type-id='type-id-367' name='pathlen'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_get_key_usage' mangled-name='gnutls_x509_crq_get_key_usage' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_get_key_usage@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
- <parameter type-id='type-id-419' name='key_usage'/>
- <parameter type-id='type-id-419' name='critical'/>
+ <parameter type-id='type-id-771' name='crq'/>
+ <parameter type-id='type-id-422' name='key_usage'/>
+ <parameter type-id='type-id-422' name='critical'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_get_extension_data2' mangled-name='gnutls_x509_crq_get_extension_data2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_get_extension_data2@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
+ <parameter type-id='type-id-771' name='crq'/>
<parameter type-id='type-id-10' name='indx'/>
- <parameter type-id='type-id-275' name='data'/>
+ <parameter type-id='type-id-278' name='data'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_get_extension_data' mangled-name='gnutls_x509_crq_get_extension_data' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_get_extension_data@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
+ <parameter type-id='type-id-771' name='crq'/>
<parameter type-id='type-id-10' name='indx'/>
<parameter type-id='type-id-101' name='data'/>
- <parameter type-id='type-id-422' name='sizeof_data'/>
+ <parameter type-id='type-id-425' name='sizeof_data'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_get_extension_info' mangled-name='gnutls_x509_crq_get_extension_info' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_get_extension_info@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
+ <parameter type-id='type-id-771' name='crq'/>
<parameter type-id='type-id-10' name='indx'/>
<parameter type-id='type-id-101' name='oid'/>
- <parameter type-id='type-id-422' name='sizeof_oid'/>
- <parameter type-id='type-id-419' name='critical'/>
+ <parameter type-id='type-id-425' name='sizeof_oid'/>
+ <parameter type-id='type-id-422' name='critical'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_get_attribute_data' mangled-name='gnutls_x509_crq_get_attribute_data' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_get_attribute_data@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
+ <parameter type-id='type-id-771' name='crq'/>
<parameter type-id='type-id-10' name='indx'/>
<parameter type-id='type-id-101' name='data'/>
- <parameter type-id='type-id-422' name='sizeof_data'/>
+ <parameter type-id='type-id-425' name='sizeof_data'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_get_attribute_info' mangled-name='gnutls_x509_crq_get_attribute_info' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_get_attribute_info@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
+ <parameter type-id='type-id-771' name='crq'/>
<parameter type-id='type-id-10' name='indx'/>
<parameter type-id='type-id-101' name='data'/>
- <parameter type-id='type-id-422' name='sizeof_data'/>
+ <parameter type-id='type-id-425' name='sizeof_data'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_get_pk_oid' mangled-name='gnutls_x509_crq_get_pk_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_get_pk_oid@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
- <parameter type-id='type-id-376' name='oid'/>
- <parameter type-id='type-id-422' name='oid_size'/>
+ <parameter type-id='type-id-771' name='crq'/>
+ <parameter type-id='type-id-379' name='oid'/>
+ <parameter type-id='type-id-425' name='oid_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_get_signature_oid' mangled-name='gnutls_x509_crq_get_signature_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_get_signature_oid@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
- <parameter type-id='type-id-376' name='oid'/>
- <parameter type-id='type-id-422' name='oid_size'/>
+ <parameter type-id='type-id-771' name='crq'/>
+ <parameter type-id='type-id-379' name='oid'/>
+ <parameter type-id='type-id-425' name='oid_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_get_spki' mangled-name='gnutls_x509_crq_get_spki' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_get_spki@@GNUTLS_3_6_0'>
- <parameter type-id='type-id-768' name='crq'/>
- <parameter type-id='type-id-757' name='spki'/>
+ <parameter type-id='type-id-771' name='crq'/>
+ <parameter type-id='type-id-760' name='spki'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_export2' mangled-name='gnutls_x509_crq_export2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_export2@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
- <parameter type-id='type-id-421' name='format'/>
- <parameter type-id='type-id-275' name='out'/>
+ <parameter type-id='type-id-771' name='crq'/>
+ <parameter type-id='type-id-424' name='format'/>
+ <parameter type-id='type-id-278' name='out'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_export' mangled-name='gnutls_x509_crq_export' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_export@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
- <parameter type-id='type-id-421' name='format'/>
+ <parameter type-id='type-id-771' name='crq'/>
+ <parameter type-id='type-id-424' name='format'/>
<parameter type-id='type-id-101' name='output_data'/>
- <parameter type-id='type-id-422' name='output_data_size'/>
+ <parameter type-id='type-id-425' name='output_data_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_sign' mangled-name='gnutls_x509_crq_sign' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_sign@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
- <parameter type-id='type-id-383' name='key'/>
+ <parameter type-id='type-id-771' name='crq'/>
+ <parameter type-id='type-id-386' name='key'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_sign2' mangled-name='gnutls_x509_crq_sign2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_sign2@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
- <parameter type-id='type-id-383' name='key'/>
- <parameter type-id='type-id-211' name='dig'/>
+ <parameter type-id='type-id-771' name='crq'/>
+ <parameter type-id='type-id-386' name='key'/>
+ <parameter type-id='type-id-212' name='dig'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_set_challenge_password' mangled-name='gnutls_x509_crq_set_challenge_password' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_set_challenge_password@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
+ <parameter type-id='type-id-771' name='crq'/>
<parameter type-id='type-id-27' name='pass'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_set_key_rsa_raw' mangled-name='gnutls_x509_crq_set_key_rsa_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_set_key_rsa_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
+ <parameter type-id='type-id-771' name='crq'/>
<parameter type-id='type-id-57' name='m'/>
<parameter type-id='type-id-57' name='e'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_get_key_rsa_raw' mangled-name='gnutls_x509_crq_get_key_rsa_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_get_key_rsa_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
- <parameter type-id='type-id-275' name='m'/>
- <parameter type-id='type-id-275' name='e'/>
+ <parameter type-id='type-id-771' name='crq'/>
+ <parameter type-id='type-id-278' name='m'/>
+ <parameter type-id='type-id-278' name='e'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_set_key' mangled-name='gnutls_x509_crq_set_key' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_set_key@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
- <parameter type-id='type-id-383' name='key'/>
+ <parameter type-id='type-id-771' name='crq'/>
+ <parameter type-id='type-id-386' name='key'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_set_dn_by_oid' mangled-name='gnutls_x509_crq_set_dn_by_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_set_dn_by_oid@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
+ <parameter type-id='type-id-771' name='crq'/>
<parameter type-id='type-id-27' name='oid'/>
<parameter type-id='type-id-10' name='raw_flag'/>
<parameter type-id='type-id-101' name='data'/>
@@ -13612,97 +13737,97 @@
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_set_attribute_by_oid' mangled-name='gnutls_x509_crq_set_attribute_by_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_set_attribute_by_oid@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
+ <parameter type-id='type-id-771' name='crq'/>
<parameter type-id='type-id-27' name='oid'/>
<parameter type-id='type-id-101' name='buf'/>
<parameter type-id='type-id-99' name='buf_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_get_challenge_password' mangled-name='gnutls_x509_crq_get_challenge_password' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_get_challenge_password@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
- <parameter type-id='type-id-376' name='pass'/>
- <parameter type-id='type-id-422' name='pass_size'/>
+ <parameter type-id='type-id-771' name='crq'/>
+ <parameter type-id='type-id-379' name='pass'/>
+ <parameter type-id='type-id-425' name='pass_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_get_dn_oid' mangled-name='gnutls_x509_crq_get_dn_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_get_dn_oid@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
+ <parameter type-id='type-id-771' name='crq'/>
<parameter type-id='type-id-10' name='indx'/>
<parameter type-id='type-id-101' name='oid'/>
- <parameter type-id='type-id-422' name='sizeof_oid'/>
+ <parameter type-id='type-id-425' name='sizeof_oid'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_get_dn_by_oid' mangled-name='gnutls_x509_crq_get_dn_by_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_get_dn_by_oid@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
+ <parameter type-id='type-id-771' name='crq'/>
<parameter type-id='type-id-27' name='oid'/>
<parameter type-id='type-id-10' name='indx'/>
<parameter type-id='type-id-10' name='raw_flag'/>
<parameter type-id='type-id-101' name='buf'/>
- <parameter type-id='type-id-422' name='buf_size'/>
+ <parameter type-id='type-id-425' name='buf_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_get_dn3' mangled-name='gnutls_x509_crq_get_dn3' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_get_dn3@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
- <parameter type-id='type-id-275' name='dn'/>
+ <parameter type-id='type-id-771' name='crq'/>
+ <parameter type-id='type-id-278' name='dn'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_get_dn2' mangled-name='gnutls_x509_crq_get_dn2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_get_dn2@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
- <parameter type-id='type-id-275' name='dn'/>
+ <parameter type-id='type-id-771' name='crq'/>
+ <parameter type-id='type-id-278' name='dn'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_get_dn' mangled-name='gnutls_x509_crq_get_dn' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_get_dn@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
- <parameter type-id='type-id-376' name='buf'/>
- <parameter type-id='type-id-422' name='buf_size'/>
+ <parameter type-id='type-id-771' name='crq'/>
+ <parameter type-id='type-id-379' name='buf'/>
+ <parameter type-id='type-id-425' name='buf_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_get_private_key_usage_period' mangled-name='gnutls_x509_crq_get_private_key_usage_period' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_get_private_key_usage_period@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
- <parameter type-id='type-id-514' name='activation'/>
- <parameter type-id='type-id-514' name='expiration'/>
- <parameter type-id='type-id-419' name='critical'/>
+ <parameter type-id='type-id-771' name='crq'/>
+ <parameter type-id='type-id-517' name='activation'/>
+ <parameter type-id='type-id-517' name='expiration'/>
+ <parameter type-id='type-id-422' name='critical'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_get_signature_algorithm' mangled-name='gnutls_x509_crq_get_signature_algorithm' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_get_signature_algorithm@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
+ <parameter type-id='type-id-771' name='crq'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_import' mangled-name='gnutls_x509_crq_import' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_import@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
+ <parameter type-id='type-id-771' name='crq'/>
<parameter type-id='type-id-57' name='data'/>
- <parameter type-id='type-id-421' name='format'/>
+ <parameter type-id='type-id-424' name='format'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_deinit' mangled-name='gnutls_x509_crq_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
+ <parameter type-id='type-id-771' name='crq'/>
<return type-id='type-id-111'/>
</function-decl>
- <pointer-type-def type-id='type-id-768' size-in-bits='64' id='type-id-976'/>
+ <pointer-type-def type-id='type-id-771' size-in-bits='64' id='type-id-985'/>
<function-decl name='gnutls_x509_crq_init' mangled-name='gnutls_x509_crq_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_init@@GNUTLS_3_4'>
- <parameter type-id='type-id-976' name='crq'/>
+ <parameter type-id='type-id-985' name='crq'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_get_attribute_by_oid' mangled-name='gnutls_x509_crq_get_attribute_by_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_get_attribute_by_oid@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
+ <parameter type-id='type-id-771' name='crq'/>
<parameter type-id='type-id-27' name='oid'/>
<parameter type-id='type-id-10' name='indx'/>
<parameter type-id='type-id-101' name='buf'/>
- <parameter type-id='type-id-422' name='buf_size'/>
+ <parameter type-id='type-id-425' name='buf_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_set_version' mangled-name='gnutls_x509_crq_set_version' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_set_version@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
+ <parameter type-id='type-id-771' name='crq'/>
<parameter type-id='type-id-10' name='version'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_get_version' mangled-name='gnutls_x509_crq_get_version' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_get_version@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
+ <parameter type-id='type-id-771' name='crq'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_get_pk_algorithm' mangled-name='gnutls_x509_crq_get_pk_algorithm' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_get_pk_algorithm@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
- <parameter type-id='type-id-419' name='bits'/>
+ <parameter type-id='type-id-771' name='crq'/>
+ <parameter type-id='type-id-422' name='bits'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='_gnutls_x509_read_pkalgo_params' mangled-name='_gnutls_x509_read_pkalgo_params' visibility='default' binding='global' size-in-bits='64'>
@@ -13787,12 +13912,12 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='dn.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='dn.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
<function-decl name='gnutls_x509_rdn_get_oid' mangled-name='gnutls_x509_rdn_get_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_rdn_get_oid@@GNUTLS_3_4'>
<parameter type-id='type-id-57' name='idn'/>
<parameter type-id='type-id-10' name='indx'/>
<parameter type-id='type-id-101' name='buf'/>
- <parameter type-id='type-id-422' name='buf_size'/>
+ <parameter type-id='type-id-425' name='buf_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_rdn_get_by_oid' mangled-name='gnutls_x509_rdn_get_by_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_rdn_get_by_oid@@GNUTLS_3_4'>
@@ -13801,19 +13926,19 @@
<parameter type-id='type-id-10' name='indx'/>
<parameter type-id='type-id-10' name='raw_flag'/>
<parameter type-id='type-id-101' name='buf'/>
- <parameter type-id='type-id-422' name='buf_size'/>
+ <parameter type-id='type-id-425' name='buf_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_rdn_get2' mangled-name='gnutls_x509_rdn_get2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_rdn_get2@@GNUTLS_3_4'>
<parameter type-id='type-id-57' name='idn'/>
- <parameter type-id='type-id-275' name='str'/>
+ <parameter type-id='type-id-278' name='str'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_rdn_get' mangled-name='gnutls_x509_rdn_get' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_rdn_get@@GNUTLS_3_4'>
<parameter type-id='type-id-57' name='idn'/>
- <parameter type-id='type-id-376' name='buf'/>
- <parameter type-id='type-id-422' name='buf_size'/>
+ <parameter type-id='type-id-379' name='buf'/>
+ <parameter type-id='type-id-425' name='buf_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_dn_init' mangled-name='gnutls_x509_dn_init' visibility='default' binding='global' size-in-bits='64'>
@@ -13838,17 +13963,17 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='extensions.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='extensions.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
<function-decl name='gnutls_x509_crl_get_extension_data2' mangled-name='gnutls_x509_crl_get_extension_data2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_get_extension_data2@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
+ <parameter type-id='type-id-733' name='crl'/>
<parameter type-id='type-id-10' name='indx'/>
- <parameter type-id='type-id-275' name='data'/>
+ <parameter type-id='type-id-278' name='data'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_extension_data2' mangled-name='gnutls_x509_crt_get_extension_data2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_extension_data2@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-10' name='indx'/>
- <parameter type-id='type-id-275' name='data'/>
+ <parameter type-id='type-id-278' name='data'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_aki_init' mangled-name='gnutls_x509_aki_init' visibility='default' binding='global' size-in-bits='64'>
@@ -13885,22 +14010,22 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='mpi.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='mpi.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
<function-decl name='_gnutls_x509_write_rsa_pss_params' mangled-name='_gnutls_x509_write_rsa_pss_params' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='_asnstr_append_name' mangled-name='_asnstr_append_name' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-decl name='_gnutls_x509_read_pubkey' mangled-name='_gnutls_x509_read_pubkey' visibility='default' binding='global' size-in-bits='64'>
+ <function-decl name='_gnutls_x509_read_pubkey_params' mangled-name='_gnutls_x509_read_pubkey_params' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-decl name='_gnutls_x509_read_pubkey_params' mangled-name='_gnutls_x509_read_pubkey_params' visibility='default' binding='global' size-in-bits='64'>
+ <function-decl name='_gnutls_x509_read_pubkey' mangled-name='_gnutls_x509_read_pubkey' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='output.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
- <enum-decl name='gnutls_certificate_print_formats' id='type-id-977'>
+ <abi-instr version='1.0' address-size='64' path='output.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
+ <enum-decl name='gnutls_certificate_print_formats' id='type-id-986'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_CRT_PRINT_FULL' value='0'/>
<enumerator name='GNUTLS_CRT_PRINT_ONELINE' value='1'/>
@@ -13908,36 +14033,36 @@
<enumerator name='GNUTLS_CRT_PRINT_COMPACT' value='3'/>
<enumerator name='GNUTLS_CRT_PRINT_FULL_NUMBERS' value='4'/>
</enum-decl>
- <typedef-decl name='gnutls_certificate_print_formats_t' type-id='type-id-977' id='type-id-978'/>
+ <typedef-decl name='gnutls_certificate_print_formats_t' type-id='type-id-986' id='type-id-987'/>
<function-decl name='gnutls_x509_ext_print' mangled-name='gnutls_x509_ext_print' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_ext_print@@GNUTLS_3_4'>
- <parameter type-id='type-id-933' name='exts'/>
+ <parameter type-id='type-id-936' name='exts'/>
<parameter type-id='type-id-10' name='exts_size'/>
- <parameter type-id='type-id-978' name='format'/>
- <parameter type-id='type-id-275' name='out'/>
+ <parameter type-id='type-id-987' name='format'/>
+ <parameter type-id='type-id-278' name='out'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pubkey_print' mangled-name='gnutls_pubkey_print' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pubkey_print@@GNUTLS_3_4'>
- <parameter type-id='type-id-267' name='pubkey'/>
- <parameter type-id='type-id-978' name='format'/>
- <parameter type-id='type-id-275' name='out'/>
+ <parameter type-id='type-id-270' name='pubkey'/>
+ <parameter type-id='type-id-987' name='format'/>
+ <parameter type-id='type-id-278' name='out'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_print' mangled-name='gnutls_x509_crq_print' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_print@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
- <parameter type-id='type-id-978' name='format'/>
- <parameter type-id='type-id-275' name='out'/>
+ <parameter type-id='type-id-771' name='crq'/>
+ <parameter type-id='type-id-987' name='format'/>
+ <parameter type-id='type-id-278' name='out'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crl_print' mangled-name='gnutls_x509_crl_print' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_print@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
- <parameter type-id='type-id-978' name='format'/>
- <parameter type-id='type-id-275' name='out'/>
+ <parameter type-id='type-id-733' name='crl'/>
+ <parameter type-id='type-id-987' name='format'/>
+ <parameter type-id='type-id-278' name='out'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_print' mangled-name='gnutls_x509_crt_print' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_print@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
- <parameter type-id='type-id-978' name='format'/>
- <parameter type-id='type-id-275' name='out'/>
+ <parameter type-id='type-id-470' name='cert'/>
+ <parameter type-id='type-id-987' name='format'/>
+ <parameter type-id='type-id-278' name='out'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_get_version' mangled-name='gnutls_x509_crq_get_version' visibility='default' binding='global' size-in-bits='64'>
@@ -14199,77 +14324,77 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='pkcs12.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
- <class-decl name='gnutls_pkcs12_int' size-in-bits='128' is-struct='yes' visibility='default' id='type-id-979'>
+ <abi-instr version='1.0' address-size='64' path='pkcs12.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
+ <class-decl name='gnutls_pkcs12_int' size-in-bits='128' is-struct='yes' visibility='default' id='type-id-988'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='pkcs12' type-id='type-id-387' visibility='default'/>
+ <var-decl name='pkcs12' type-id='type-id-390' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='expanded' type-id='type-id-10' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-979' size-in-bits='64' id='type-id-980'/>
- <typedef-decl name='gnutls_pkcs12_t' type-id='type-id-980' id='type-id-981'/>
+ <pointer-type-def type-id='type-id-988' size-in-bits='64' id='type-id-989'/>
+ <typedef-decl name='gnutls_pkcs12_t' type-id='type-id-989' id='type-id-990'/>
<function-decl name='gnutls_pkcs12_mac_info' mangled-name='gnutls_pkcs12_mac_info' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs12_mac_info@@GNUTLS_3_4'>
- <parameter type-id='type-id-981' name='pkcs12'/>
- <parameter type-id='type-id-419' name='mac'/>
+ <parameter type-id='type-id-990' name='pkcs12'/>
+ <parameter type-id='type-id-422' name='mac'/>
<parameter type-id='type-id-101' name='salt'/>
- <parameter type-id='type-id-419' name='salt_size'/>
- <parameter type-id='type-id-419' name='iter_count'/>
- <parameter type-id='type-id-852' name='oid'/>
+ <parameter type-id='type-id-422' name='salt_size'/>
+ <parameter type-id='type-id-422' name='iter_count'/>
+ <parameter type-id='type-id-855' name='oid'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs12_simple_parse' mangled-name='gnutls_pkcs12_simple_parse' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs12_simple_parse@@GNUTLS_3_4'>
- <parameter type-id='type-id-981' name='p12'/>
+ <parameter type-id='type-id-990' name='p12'/>
<parameter type-id='type-id-27' name='password'/>
- <parameter type-id='type-id-734' name='key'/>
- <parameter type-id='type-id-733' name='chain'/>
- <parameter type-id='type-id-419' name='chain_len'/>
- <parameter type-id='type-id-733' name='extra_certs'/>
- <parameter type-id='type-id-419' name='extra_certs_len'/>
- <parameter type-id='type-id-731' name='crl'/>
+ <parameter type-id='type-id-737' name='key'/>
+ <parameter type-id='type-id-736' name='chain'/>
+ <parameter type-id='type-id-422' name='chain_len'/>
+ <parameter type-id='type-id-736' name='extra_certs'/>
+ <parameter type-id='type-id-422' name='extra_certs_len'/>
+ <parameter type-id='type-id-734' name='crl'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs12_verify_mac' mangled-name='gnutls_pkcs12_verify_mac' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs12_verify_mac@@GNUTLS_3_4'>
- <parameter type-id='type-id-981' name='pkcs12'/>
+ <parameter type-id='type-id-990' name='pkcs12'/>
<parameter type-id='type-id-27' name='pass'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs12_generate_mac' mangled-name='gnutls_pkcs12_generate_mac' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs12_generate_mac@@GNUTLS_3_4'>
- <parameter type-id='type-id-981' name='pkcs12'/>
+ <parameter type-id='type-id-990' name='pkcs12'/>
<parameter type-id='type-id-27' name='pass'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs12_generate_mac2' mangled-name='gnutls_pkcs12_generate_mac2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs12_generate_mac2@@GNUTLS_3_4'>
- <parameter type-id='type-id-981' name='pkcs12'/>
+ <parameter type-id='type-id-990' name='pkcs12'/>
<parameter type-id='type-id-31' name='mac'/>
<parameter type-id='type-id-27' name='pass'/>
<return type-id='type-id-22'/>
</function-decl>
- <class-decl name='gnutls_pkcs12_bag_int' size-in-bits='12352' is-struct='yes' visibility='default' id='type-id-982'>
+ <class-decl name='gnutls_pkcs12_bag_int' size-in-bits='12352' is-struct='yes' visibility='default' id='type-id-991'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='element' type-id='type-id-983' visibility='default'/>
+ <var-decl name='element' type-id='type-id-992' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='12288'>
<var-decl name='bag_elements' type-id='type-id-10' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='bag_element' size-in-bits='384' is-struct='yes' visibility='default' id='type-id-984'>
+ <class-decl name='bag_element' size-in-bits='384' is-struct='yes' visibility='default' id='type-id-993'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='data' type-id='type-id-62' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='type' type-id='type-id-985' visibility='default'/>
+ <var-decl name='type' type-id='type-id-994' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
<var-decl name='local_key_id' type-id='type-id-62' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='friendly_name' type-id='type-id-376' visibility='default'/>
+ <var-decl name='friendly_name' type-id='type-id-379' visibility='default'/>
</data-member>
</class-decl>
- <enum-decl name='gnutls_pkcs12_bag_type_t' id='type-id-986'>
+ <enum-decl name='gnutls_pkcs12_bag_type_t' id='type-id-995'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_BAG_EMPTY' value='0'/>
<enumerator name='GNUTLS_BAG_PKCS8_ENCRYPTED_KEY' value='1'/>
@@ -14280,52 +14405,52 @@
<enumerator name='GNUTLS_BAG_ENCRYPTED' value='10'/>
<enumerator name='GNUTLS_BAG_UNKNOWN' value='20'/>
</enum-decl>
- <typedef-decl name='gnutls_pkcs12_bag_type_t' type-id='type-id-986' id='type-id-985'/>
+ <typedef-decl name='gnutls_pkcs12_bag_type_t' type-id='type-id-995' id='type-id-994'/>
- <array-type-def dimensions='1' type-id='type-id-984' size-in-bits='12288' id='type-id-983'>
+ <array-type-def dimensions='1' type-id='type-id-993' size-in-bits='12288' id='type-id-992'>
<subrange length='32' type-id='type-id-38' id='type-id-51'/>
</array-type-def>
- <pointer-type-def type-id='type-id-982' size-in-bits='64' id='type-id-987'/>
- <typedef-decl name='gnutls_pkcs12_bag_t' type-id='type-id-987' id='type-id-988'/>
+ <pointer-type-def type-id='type-id-991' size-in-bits='64' id='type-id-996'/>
+ <typedef-decl name='gnutls_pkcs12_bag_t' type-id='type-id-996' id='type-id-997'/>
<function-decl name='gnutls_pkcs12_set_bag' mangled-name='gnutls_pkcs12_set_bag' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs12_set_bag@@GNUTLS_3_4'>
- <parameter type-id='type-id-981' name='pkcs12'/>
- <parameter type-id='type-id-988' name='bag'/>
+ <parameter type-id='type-id-990' name='pkcs12'/>
+ <parameter type-id='type-id-997' name='bag'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs12_get_bag' mangled-name='gnutls_pkcs12_get_bag' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs12_get_bag@@GNUTLS_3_4'>
- <parameter type-id='type-id-981' name='pkcs12'/>
+ <parameter type-id='type-id-990' name='pkcs12'/>
<parameter type-id='type-id-22' name='indx'/>
- <parameter type-id='type-id-988' name='bag'/>
+ <parameter type-id='type-id-997' name='bag'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs12_export2' mangled-name='gnutls_pkcs12_export2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs12_export2@@GNUTLS_3_4'>
- <parameter type-id='type-id-981' name='pkcs12'/>
- <parameter type-id='type-id-421' name='format'/>
- <parameter type-id='type-id-275' name='out'/>
+ <parameter type-id='type-id-990' name='pkcs12'/>
+ <parameter type-id='type-id-424' name='format'/>
+ <parameter type-id='type-id-278' name='out'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs12_export' mangled-name='gnutls_pkcs12_export' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs12_export@@GNUTLS_3_4'>
- <parameter type-id='type-id-981' name='pkcs12'/>
- <parameter type-id='type-id-421' name='format'/>
+ <parameter type-id='type-id-990' name='pkcs12'/>
+ <parameter type-id='type-id-424' name='format'/>
<parameter type-id='type-id-101' name='output_data'/>
- <parameter type-id='type-id-422' name='output_data_size'/>
+ <parameter type-id='type-id-425' name='output_data_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs12_import' mangled-name='gnutls_pkcs12_import' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs12_import@@GNUTLS_3_4'>
- <parameter type-id='type-id-981' name='pkcs12'/>
+ <parameter type-id='type-id-990' name='pkcs12'/>
<parameter type-id='type-id-57' name='data'/>
- <parameter type-id='type-id-421' name='format'/>
+ <parameter type-id='type-id-424' name='format'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs12_deinit' mangled-name='gnutls_pkcs12_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs12_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-981' name='pkcs12'/>
+ <parameter type-id='type-id-990' name='pkcs12'/>
<return type-id='type-id-111'/>
</function-decl>
- <pointer-type-def type-id='type-id-981' size-in-bits='64' id='type-id-989'/>
+ <pointer-type-def type-id='type-id-990' size-in-bits='64' id='type-id-998'/>
<function-decl name='gnutls_pkcs12_init' mangled-name='gnutls_pkcs12_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs12_init@@GNUTLS_3_4'>
- <parameter type-id='type-id-989' name='pkcs12'/>
+ <parameter type-id='type-id-998' name='pkcs12'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='_gnutls_x509_read_null_value' mangled-name='_gnutls_x509_read_null_value' visibility='default' binding='global' size-in-bits='64'>
@@ -14361,15 +14486,6 @@
<function-decl name='_gnutls_pkcs12_string_to_key' mangled-name='_gnutls_pkcs12_string_to_key' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-decl name='_gnutls_pbkdf2_hmac_streebog512' mangled-name='_gnutls_pbkdf2_hmac_streebog512' visibility='default' binding='global' size-in-bits='64'>
- <return type-id='type-id-111'/>
- </function-decl>
- <function-decl name='_gnutls_pbkdf2_hmac_gosthash94cp' mangled-name='_gnutls_pbkdf2_hmac_gosthash94cp' visibility='default' binding='global' size-in-bits='64'>
- <return type-id='type-id-111'/>
- </function-decl>
- <function-decl name='_gnutls_pbkdf2_hmac_streebog256' mangled-name='_gnutls_pbkdf2_hmac_streebog256' visibility='default' binding='global' size-in-bits='64'>
- <return type-id='type-id-111'/>
- </function-decl>
<function-decl name='_gnutls_x509_der_encode_and_copy' mangled-name='_gnutls_x509_der_encode_and_copy' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -14379,98 +14495,101 @@
<function-decl name='_gnutls_x509_decode_and_read_attribute' mangled-name='_gnutls_x509_decode_and_read_attribute' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
+ <function-decl name='gnutls_pbkdf2' mangled-name='gnutls_pbkdf2' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='pkcs12_bag.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='pkcs12_bag.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
<function-decl name='gnutls_pkcs12_bag_set_privkey' mangled-name='gnutls_pkcs12_bag_set_privkey' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs12_bag_set_privkey@@GNUTLS_3_4'>
- <parameter type-id='type-id-988' name='bag'/>
- <parameter type-id='type-id-383' name='privkey'/>
+ <parameter type-id='type-id-997' name='bag'/>
+ <parameter type-id='type-id-386' name='privkey'/>
<parameter type-id='type-id-27' name='password'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs12_bag_enc_info' mangled-name='gnutls_pkcs12_bag_enc_info' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs12_bag_enc_info@@GNUTLS_3_4'>
- <parameter type-id='type-id-988' name='bag'/>
- <parameter type-id='type-id-419' name='schema'/>
- <parameter type-id='type-id-419' name='cipher'/>
+ <parameter type-id='type-id-997' name='bag'/>
+ <parameter type-id='type-id-422' name='schema'/>
+ <parameter type-id='type-id-422' name='cipher'/>
<parameter type-id='type-id-101' name='salt'/>
- <parameter type-id='type-id-419' name='salt_size'/>
- <parameter type-id='type-id-419' name='iter_count'/>
- <parameter type-id='type-id-852' name='oid'/>
+ <parameter type-id='type-id-422' name='salt_size'/>
+ <parameter type-id='type-id-422' name='iter_count'/>
+ <parameter type-id='type-id-855' name='oid'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs12_bag_encrypt' mangled-name='gnutls_pkcs12_bag_encrypt' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs12_bag_encrypt@@GNUTLS_3_4'>
- <parameter type-id='type-id-988' name='bag'/>
+ <parameter type-id='type-id-997' name='bag'/>
<parameter type-id='type-id-27' name='pass'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs12_bag_decrypt' mangled-name='gnutls_pkcs12_bag_decrypt' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs12_bag_decrypt@@GNUTLS_3_4'>
- <parameter type-id='type-id-988' name='bag'/>
+ <parameter type-id='type-id-997' name='bag'/>
<parameter type-id='type-id-27' name='pass'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs12_bag_set_friendly_name' mangled-name='gnutls_pkcs12_bag_set_friendly_name' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs12_bag_set_friendly_name@@GNUTLS_3_4'>
- <parameter type-id='type-id-988' name='bag'/>
+ <parameter type-id='type-id-997' name='bag'/>
<parameter type-id='type-id-10' name='indx'/>
<parameter type-id='type-id-27' name='name'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs12_bag_get_friendly_name' mangled-name='gnutls_pkcs12_bag_get_friendly_name' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs12_bag_get_friendly_name@@GNUTLS_3_4'>
- <parameter type-id='type-id-988' name='bag'/>
+ <parameter type-id='type-id-997' name='bag'/>
<parameter type-id='type-id-10' name='indx'/>
- <parameter type-id='type-id-852' name='name'/>
+ <parameter type-id='type-id-855' name='name'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs12_bag_get_key_id' mangled-name='gnutls_pkcs12_bag_get_key_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs12_bag_get_key_id@@GNUTLS_3_4'>
- <parameter type-id='type-id-988' name='bag'/>
+ <parameter type-id='type-id-997' name='bag'/>
<parameter type-id='type-id-10' name='indx'/>
- <parameter type-id='type-id-275' name='id'/>
+ <parameter type-id='type-id-278' name='id'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs12_bag_set_key_id' mangled-name='gnutls_pkcs12_bag_set_key_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs12_bag_set_key_id@@GNUTLS_3_4'>
- <parameter type-id='type-id-988' name='bag'/>
+ <parameter type-id='type-id-997' name='bag'/>
<parameter type-id='type-id-10' name='indx'/>
<parameter type-id='type-id-57' name='id'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs12_bag_set_crl' mangled-name='gnutls_pkcs12_bag_set_crl' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs12_bag_set_crl@@GNUTLS_3_4'>
- <parameter type-id='type-id-988' name='bag'/>
- <parameter type-id='type-id-730' name='crl'/>
+ <parameter type-id='type-id-997' name='bag'/>
+ <parameter type-id='type-id-733' name='crl'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs12_bag_set_crt' mangled-name='gnutls_pkcs12_bag_set_crt' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs12_bag_set_crt@@GNUTLS_3_4'>
- <parameter type-id='type-id-988' name='bag'/>
- <parameter type-id='type-id-467' name='crt'/>
+ <parameter type-id='type-id-997' name='bag'/>
+ <parameter type-id='type-id-470' name='crt'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs12_bag_set_data' mangled-name='gnutls_pkcs12_bag_set_data' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs12_bag_set_data@@GNUTLS_3_4'>
- <parameter type-id='type-id-988' name='bag'/>
- <parameter type-id='type-id-985' name='type'/>
+ <parameter type-id='type-id-997' name='bag'/>
+ <parameter type-id='type-id-994' name='type'/>
<parameter type-id='type-id-57' name='data'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs12_bag_get_data' mangled-name='gnutls_pkcs12_bag_get_data' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs12_bag_get_data@@GNUTLS_3_4'>
- <parameter type-id='type-id-988' name='bag'/>
+ <parameter type-id='type-id-997' name='bag'/>
<parameter type-id='type-id-10' name='indx'/>
- <parameter type-id='type-id-275' name='id'/>
+ <parameter type-id='type-id-278' name='id'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs12_bag_get_count' mangled-name='gnutls_pkcs12_bag_get_count' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs12_bag_get_count@@GNUTLS_3_4'>
- <parameter type-id='type-id-988' name='bag'/>
+ <parameter type-id='type-id-997' name='bag'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs12_bag_get_type' mangled-name='gnutls_pkcs12_bag_get_type' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs12_bag_get_type@@GNUTLS_3_4'>
- <parameter type-id='type-id-988' name='bag'/>
+ <parameter type-id='type-id-997' name='bag'/>
<parameter type-id='type-id-10' name='indx'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs12_bag_deinit' mangled-name='gnutls_pkcs12_bag_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs12_bag_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-988' name='bag'/>
+ <parameter type-id='type-id-997' name='bag'/>
<return type-id='type-id-111'/>
</function-decl>
- <pointer-type-def type-id='type-id-988' size-in-bits='64' id='type-id-990'/>
+ <pointer-type-def type-id='type-id-997' size-in-bits='64' id='type-id-999'/>
<function-decl name='gnutls_pkcs12_bag_init' mangled-name='gnutls_pkcs12_bag_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs12_bag_init@@GNUTLS_3_4'>
- <parameter type-id='type-id-990' name='bag'/>
+ <parameter type-id='type-id-999' name='bag'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_privkey_export2_pkcs8' mangled-name='gnutls_x509_privkey_export2_pkcs8' visibility='default' binding='global' size-in-bits='64'>
@@ -14498,135 +14617,135 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='pkcs12_encr.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='pkcs12_encr.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
<function-decl name='_gnutls_pkcs12_string_to_key' mangled-name='_gnutls_pkcs12_string_to_key' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls_pkcs12_string_to_key@@GNUTLS_PRIVATE_3_4'>
<parameter type-id='type-id-13' name='me'/>
<parameter type-id='type-id-10' name='id'/>
- <parameter type-id='type-id-900' name='salt'/>
+ <parameter type-id='type-id-903' name='salt'/>
<parameter type-id='type-id-10' name='salt_size'/>
<parameter type-id='type-id-10' name='iter'/>
<parameter type-id='type-id-27' name='pw'/>
<parameter type-id='type-id-10' name='req_keylen'/>
- <parameter type-id='type-id-191' name='keybuf'/>
+ <parameter type-id='type-id-192' name='keybuf'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='_gnutls_utf8_to_ucs2' mangled-name='_gnutls_utf8_to_ucs2' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='pkcs7.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
- <class-decl name='gnutls_pkcs7_int' size-in-bits='1344' is-struct='yes' visibility='default' id='type-id-991'>
+ <abi-instr version='1.0' address-size='64' path='pkcs7.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
+ <class-decl name='gnutls_pkcs7_int' size-in-bits='1344' is-struct='yes' visibility='default' id='type-id-1000'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='pkcs7' type-id='type-id-387' visibility='default'/>
+ <var-decl name='pkcs7' type-id='type-id-390' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='encap_data_oid' type-id='type-id-992' visibility='default'/>
+ <var-decl name='encap_data_oid' type-id='type-id-1001' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1088'>
<var-decl name='der_signed_data' type-id='type-id-62' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1216'>
- <var-decl name='signed_data' type-id='type-id-387' visibility='default'/>
+ <var-decl name='signed_data' type-id='type-id-390' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1280'>
<var-decl name='expanded' type-id='type-id-10' visibility='default'/>
</data-member>
</class-decl>
- <array-type-def dimensions='1' type-id='type-id-33' size-in-bits='1024' id='type-id-992'>
- <subrange length='128' type-id='type-id-38' id='type-id-993'/>
+ <array-type-def dimensions='1' type-id='type-id-33' size-in-bits='1024' id='type-id-1001'>
+ <subrange length='128' type-id='type-id-38' id='type-id-1002'/>
</array-type-def>
- <pointer-type-def type-id='type-id-991' size-in-bits='64' id='type-id-994'/>
- <typedef-decl name='gnutls_pkcs7_t' type-id='type-id-994' id='type-id-995'/>
- <class-decl name='gnutls_pkcs7_attrs_st' size-in-bits='256' is-struct='yes' visibility='default' id='type-id-996'>
+ <pointer-type-def type-id='type-id-1000' size-in-bits='64' id='type-id-1003'/>
+ <typedef-decl name='gnutls_pkcs7_t' type-id='type-id-1003' id='type-id-1004'/>
+ <class-decl name='gnutls_pkcs7_attrs_st' size-in-bits='256' is-struct='yes' visibility='default' id='type-id-1005'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='oid' type-id='type-id-376' visibility='default'/>
+ <var-decl name='oid' type-id='type-id-379' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='data' type-id='type-id-62' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='next' type-id='type-id-997' visibility='default'/>
+ <var-decl name='next' type-id='type-id-1006' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-996' size-in-bits='64' id='type-id-997'/>
- <typedef-decl name='gnutls_pkcs7_attrs_t' type-id='type-id-997' id='type-id-998'/>
+ <pointer-type-def type-id='type-id-1005' size-in-bits='64' id='type-id-1006'/>
+ <typedef-decl name='gnutls_pkcs7_attrs_t' type-id='type-id-1006' id='type-id-1007'/>
<function-decl name='gnutls_pkcs7_sign' mangled-name='gnutls_pkcs7_sign' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs7_sign@@GNUTLS_3_4'>
- <parameter type-id='type-id-995' name='pkcs7'/>
- <parameter type-id='type-id-467' name='signer'/>
- <parameter type-id='type-id-401' name='signer_key'/>
+ <parameter type-id='type-id-1004' name='pkcs7'/>
+ <parameter type-id='type-id-470' name='signer'/>
+ <parameter type-id='type-id-404' name='signer_key'/>
<parameter type-id='type-id-57' name='data'/>
- <parameter type-id='type-id-998' name='signed_attrs'/>
- <parameter type-id='type-id-998' name='unsigned_attrs'/>
- <parameter type-id='type-id-211' name='dig'/>
+ <parameter type-id='type-id-1007' name='signed_attrs'/>
+ <parameter type-id='type-id-1007' name='unsigned_attrs'/>
+ <parameter type-id='type-id-212' name='dig'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs7_delete_crl' mangled-name='gnutls_pkcs7_delete_crl' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs7_delete_crl@@GNUTLS_3_4'>
- <parameter type-id='type-id-995' name='pkcs7'/>
+ <parameter type-id='type-id-1004' name='pkcs7'/>
<parameter type-id='type-id-22' name='indx'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs7_set_crl' mangled-name='gnutls_pkcs7_set_crl' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs7_set_crl@@GNUTLS_3_4'>
- <parameter type-id='type-id-995' name='pkcs7'/>
- <parameter type-id='type-id-730' name='crl'/>
+ <parameter type-id='type-id-1004' name='pkcs7'/>
+ <parameter type-id='type-id-733' name='crl'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs7_set_crl_raw' mangled-name='gnutls_pkcs7_set_crl_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs7_set_crl_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-995' name='pkcs7'/>
+ <parameter type-id='type-id-1004' name='pkcs7'/>
<parameter type-id='type-id-57' name='crl'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs7_get_crl_count' mangled-name='gnutls_pkcs7_get_crl_count' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs7_get_crl_count@@GNUTLS_3_4'>
- <parameter type-id='type-id-995' name='pkcs7'/>
+ <parameter type-id='type-id-1004' name='pkcs7'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs7_get_crl_raw' mangled-name='gnutls_pkcs7_get_crl_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs7_get_crl_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-995' name='pkcs7'/>
+ <parameter type-id='type-id-1004' name='pkcs7'/>
<parameter type-id='type-id-10' name='indx'/>
<parameter type-id='type-id-101' name='crl'/>
- <parameter type-id='type-id-422' name='crl_size'/>
+ <parameter type-id='type-id-425' name='crl_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs7_get_crl_raw2' mangled-name='gnutls_pkcs7_get_crl_raw2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs7_get_crl_raw2@@GNUTLS_3_4'>
- <parameter type-id='type-id-995' name='pkcs7'/>
+ <parameter type-id='type-id-1004' name='pkcs7'/>
<parameter type-id='type-id-10' name='indx'/>
- <parameter type-id='type-id-275' name='crl'/>
+ <parameter type-id='type-id-278' name='crl'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs7_delete_crt' mangled-name='gnutls_pkcs7_delete_crt' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs7_delete_crt@@GNUTLS_3_4'>
- <parameter type-id='type-id-995' name='pkcs7'/>
+ <parameter type-id='type-id-1004' name='pkcs7'/>
<parameter type-id='type-id-22' name='indx'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs7_set_crt' mangled-name='gnutls_pkcs7_set_crt' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs7_set_crt@@GNUTLS_3_4'>
- <parameter type-id='type-id-995' name='pkcs7'/>
- <parameter type-id='type-id-467' name='crt'/>
+ <parameter type-id='type-id-1004' name='pkcs7'/>
+ <parameter type-id='type-id-470' name='crt'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs7_set_crt_raw' mangled-name='gnutls_pkcs7_set_crt_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs7_set_crt_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-995' name='pkcs7'/>
+ <parameter type-id='type-id-1004' name='pkcs7'/>
<parameter type-id='type-id-57' name='crl'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs7_export2' mangled-name='gnutls_pkcs7_export2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs7_export2@@GNUTLS_3_4'>
- <parameter type-id='type-id-995' name='pkcs7'/>
- <parameter type-id='type-id-421' name='format'/>
- <parameter type-id='type-id-275' name='out'/>
+ <parameter type-id='type-id-1004' name='pkcs7'/>
+ <parameter type-id='type-id-424' name='format'/>
+ <parameter type-id='type-id-278' name='out'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs7_export' mangled-name='gnutls_pkcs7_export' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs7_export@@GNUTLS_3_4'>
- <parameter type-id='type-id-995' name='pkcs7'/>
- <parameter type-id='type-id-421' name='format'/>
+ <parameter type-id='type-id-1004' name='pkcs7'/>
+ <parameter type-id='type-id-424' name='format'/>
<parameter type-id='type-id-101' name='output_data'/>
- <parameter type-id='type-id-422' name='output_data_size'/>
+ <parameter type-id='type-id-425' name='output_data_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs7_verify' mangled-name='gnutls_pkcs7_verify' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs7_verify@@GNUTLS_3_4'>
- <parameter type-id='type-id-995' name='pkcs7'/>
- <parameter type-id='type-id-715' name='tl'/>
- <parameter type-id='type-id-172' name='vdata'/>
+ <parameter type-id='type-id-1004' name='pkcs7'/>
+ <parameter type-id='type-id-718' name='tl'/>
+ <parameter type-id='type-id-173' name='vdata'/>
<parameter type-id='type-id-10' name='vdata_size'/>
<parameter type-id='type-id-10' name='idx'/>
<parameter type-id='type-id-57' name='data'/>
@@ -14634,24 +14753,24 @@
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs7_verify_direct' mangled-name='gnutls_pkcs7_verify_direct' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs7_verify_direct@@GNUTLS_3_4'>
- <parameter type-id='type-id-995' name='pkcs7'/>
- <parameter type-id='type-id-467' name='signer'/>
+ <parameter type-id='type-id-1004' name='pkcs7'/>
+ <parameter type-id='type-id-470' name='signer'/>
<parameter type-id='type-id-10' name='idx'/>
<parameter type-id='type-id-57' name='data'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs7_get_embedded_data_oid' mangled-name='gnutls_pkcs7_get_embedded_data_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs7_get_embedded_data_oid@@GNUTLS_3_4'>
- <parameter type-id='type-id-995' name='pkcs7'/>
+ <parameter type-id='type-id-1004' name='pkcs7'/>
<return type-id='type-id-27'/>
</function-decl>
<function-decl name='gnutls_pkcs7_get_embedded_data' mangled-name='gnutls_pkcs7_get_embedded_data' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs7_get_embedded_data@@GNUTLS_3_4'>
- <parameter type-id='type-id-995' name='pkcs7'/>
+ <parameter type-id='type-id-1004' name='pkcs7'/>
<parameter type-id='type-id-10' name='flags'/>
- <parameter type-id='type-id-275' name='data'/>
+ <parameter type-id='type-id-278' name='data'/>
<return type-id='type-id-22'/>
</function-decl>
- <class-decl name='gnutls_pkcs7_signature_info_st' size-in-bits='1280' is-struct='yes' visibility='default' id='type-id-999'>
+ <class-decl name='gnutls_pkcs7_signature_info_st' size-in-bits='1280' is-struct='yes' visibility='default' id='type-id-1008'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='algo' type-id='type-id-21' visibility='default'/>
</data-member>
@@ -14671,66 +14790,66 @@
<var-decl name='signing_time' type-id='type-id-17' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='640'>
- <var-decl name='signed_attrs' type-id='type-id-998' visibility='default'/>
+ <var-decl name='signed_attrs' type-id='type-id-1007' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='704'>
- <var-decl name='unsigned_attrs' type-id='type-id-998' visibility='default'/>
+ <var-decl name='unsigned_attrs' type-id='type-id-1007' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='768'>
- <var-decl name='pad' type-id='type-id-1000' visibility='default'/>
+ <var-decl name='pad' type-id='type-id-1009' visibility='default'/>
</data-member>
</class-decl>
- <array-type-def dimensions='1' type-id='type-id-33' size-in-bits='512' id='type-id-1000'>
+ <array-type-def dimensions='1' type-id='type-id-33' size-in-bits='512' id='type-id-1009'>
<subrange length='64' type-id='type-id-38' id='type-id-92'/>
</array-type-def>
- <typedef-decl name='gnutls_pkcs7_signature_info_st' type-id='type-id-999' id='type-id-1001'/>
- <pointer-type-def type-id='type-id-1001' size-in-bits='64' id='type-id-1002'/>
+ <typedef-decl name='gnutls_pkcs7_signature_info_st' type-id='type-id-1008' id='type-id-1010'/>
+ <pointer-type-def type-id='type-id-1010' size-in-bits='64' id='type-id-1011'/>
<function-decl name='gnutls_pkcs7_get_signature_info' mangled-name='gnutls_pkcs7_get_signature_info' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs7_get_signature_info@@GNUTLS_3_4'>
- <parameter type-id='type-id-995' name='pkcs7'/>
+ <parameter type-id='type-id-1004' name='pkcs7'/>
<parameter type-id='type-id-10' name='idx'/>
- <parameter type-id='type-id-1002' name='info'/>
+ <parameter type-id='type-id-1011' name='info'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs7_get_signature_count' mangled-name='gnutls_pkcs7_get_signature_count' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs7_get_signature_count@@GNUTLS_3_4'>
- <parameter type-id='type-id-995' name='pkcs7'/>
+ <parameter type-id='type-id-1004' name='pkcs7'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs7_signature_info_deinit' mangled-name='gnutls_pkcs7_signature_info_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs7_signature_info_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-1002' name='info'/>
+ <parameter type-id='type-id-1011' name='info'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_pkcs7_get_crt_raw' mangled-name='gnutls_pkcs7_get_crt_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs7_get_crt_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-995' name='pkcs7'/>
+ <parameter type-id='type-id-1004' name='pkcs7'/>
<parameter type-id='type-id-10' name='indx'/>
<parameter type-id='type-id-101' name='certificate'/>
- <parameter type-id='type-id-422' name='certificate_size'/>
+ <parameter type-id='type-id-425' name='certificate_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs7_get_crt_raw2' mangled-name='gnutls_pkcs7_get_crt_raw2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs7_get_crt_raw2@@GNUTLS_3_4'>
- <parameter type-id='type-id-995' name='pkcs7'/>
+ <parameter type-id='type-id-1004' name='pkcs7'/>
<parameter type-id='type-id-10' name='indx'/>
- <parameter type-id='type-id-275' name='cert'/>
+ <parameter type-id='type-id-278' name='cert'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs7_import' mangled-name='gnutls_pkcs7_import' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs7_import@@GNUTLS_3_4'>
- <parameter type-id='type-id-995' name='pkcs7'/>
+ <parameter type-id='type-id-1004' name='pkcs7'/>
<parameter type-id='type-id-57' name='data'/>
- <parameter type-id='type-id-421' name='format'/>
+ <parameter type-id='type-id-424' name='format'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs7_deinit' mangled-name='gnutls_pkcs7_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs7_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-995' name='pkcs7'/>
+ <parameter type-id='type-id-1004' name='pkcs7'/>
<return type-id='type-id-111'/>
</function-decl>
- <pointer-type-def type-id='type-id-995' size-in-bits='64' id='type-id-1003'/>
+ <pointer-type-def type-id='type-id-1004' size-in-bits='64' id='type-id-1012'/>
<function-decl name='gnutls_pkcs7_init' mangled-name='gnutls_pkcs7_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs7_init@@GNUTLS_3_4'>
- <parameter type-id='type-id-1003' name='pkcs7'/>
+ <parameter type-id='type-id-1012' name='pkcs7'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs7_get_crt_count' mangled-name='gnutls_pkcs7_get_crt_count' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs7_get_crt_count@@GNUTLS_3_4'>
- <parameter type-id='type-id-995' name='pkcs7'/>
+ <parameter type-id='type-id-1004' name='pkcs7'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='asn1_copy_node' mangled-name='asn1_copy_node' visibility='default' binding='global' size-in-bits='64'>
@@ -14782,29 +14901,29 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='pkcs7-attrs.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='pkcs7-attrs.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
<function-decl name='gnutls_pkcs7_attrs_deinit' mangled-name='gnutls_pkcs7_attrs_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs7_attrs_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-998' name='list'/>
+ <parameter type-id='type-id-1007' name='list'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_pkcs7_get_attr' mangled-name='gnutls_pkcs7_get_attr' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs7_get_attr@@GNUTLS_3_4'>
- <parameter type-id='type-id-998' name='list'/>
+ <parameter type-id='type-id-1007' name='list'/>
<parameter type-id='type-id-10' name='idx'/>
- <parameter type-id='type-id-852' name='oid'/>
- <parameter type-id='type-id-275' name='data'/>
+ <parameter type-id='type-id-855' name='oid'/>
+ <parameter type-id='type-id-278' name='data'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
- <pointer-type-def type-id='type-id-998' size-in-bits='64' id='type-id-1004'/>
+ <pointer-type-def type-id='type-id-1007' size-in-bits='64' id='type-id-1013'/>
<function-decl name='gnutls_pkcs7_add_attr' mangled-name='gnutls_pkcs7_add_attr' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs7_add_attr@@GNUTLS_3_4'>
- <parameter type-id='type-id-1004' name='list'/>
+ <parameter type-id='type-id-1013' name='list'/>
<parameter type-id='type-id-27' name='oid'/>
- <parameter type-id='type-id-275' name='data'/>
+ <parameter type-id='type-id-278' name='data'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='pkcs7-crypt.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='pkcs7-crypt.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
<function-decl name='gnutls_pkcs_schema_get_oid' mangled-name='gnutls_pkcs_schema_get_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs_schema_get_oid@@GNUTLS_3_4'>
<parameter type-id='type-id-10' name='schema'/>
<return type-id='type-id-27'/>
@@ -14819,12 +14938,6 @@
<function-decl name='_gnutls_decrypt_pbes1_des_md5_data' mangled-name='_gnutls_decrypt_pbes1_des_md5_data' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-decl name='nettle_pbkdf2_hmac_sha1' mangled-name='nettle_pbkdf2_hmac_sha1' visibility='default' binding='global' size-in-bits='64'>
- <return type-id='type-id-111'/>
- </function-decl>
- <function-decl name='nettle_pbkdf2_hmac_sha256' mangled-name='nettle_pbkdf2_hmac_sha256' visibility='default' binding='global' size-in-bits='64'>
- <return type-id='type-id-111'/>
- </function-decl>
<function-decl name='gnutls_oid_to_mac' mangled-name='gnutls_oid_to_mac' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -14832,61 +14945,61 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='privkey.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='privkey.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
<function-decl name='gnutls_x509_privkey_set_flags' mangled-name='gnutls_x509_privkey_set_flags' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_privkey_set_flags@@GNUTLS_3_4'>
- <parameter type-id='type-id-383' name='key'/>
+ <parameter type-id='type-id-386' name='key'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_x509_privkey_set_pin_function' mangled-name='gnutls_x509_privkey_set_pin_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_privkey_set_pin_function@@GNUTLS_3_4'>
- <parameter type-id='type-id-383' name='privkey'/>
- <parameter type-id='type-id-375' name='fn'/>
+ <parameter type-id='type-id-386' name='privkey'/>
+ <parameter type-id='type-id-378' name='fn'/>
<parameter type-id='type-id-101' name='userdata'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_x509_privkey_sign_data' mangled-name='gnutls_x509_privkey_sign_data' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_privkey_sign_data@@GNUTLS_3_4'>
- <parameter type-id='type-id-383' name='key'/>
- <parameter type-id='type-id-211' name='digest'/>
+ <parameter type-id='type-id-386' name='key'/>
+ <parameter type-id='type-id-212' name='digest'/>
<parameter type-id='type-id-10' name='flags'/>
<parameter type-id='type-id-57' name='data'/>
<parameter type-id='type-id-101' name='signature'/>
- <parameter type-id='type-id-422' name='signature_size'/>
+ <parameter type-id='type-id-425' name='signature_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_privkey_sign_hash' mangled-name='gnutls_x509_privkey_sign_hash' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_privkey_sign_hash@@GNUTLS_3_4'>
- <parameter type-id='type-id-383' name='key'/>
+ <parameter type-id='type-id-386' name='key'/>
<parameter type-id='type-id-57' name='hash'/>
- <parameter type-id='type-id-275' name='signature'/>
+ <parameter type-id='type-id-278' name='signature'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_privkey_get_key_id' mangled-name='gnutls_x509_privkey_get_key_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_privkey_get_key_id@@GNUTLS_3_4'>
- <parameter type-id='type-id-383' name='key'/>
+ <parameter type-id='type-id-386' name='key'/>
<parameter type-id='type-id-10' name='flags'/>
<parameter type-id='type-id-64' name='output_data'/>
- <parameter type-id='type-id-422' name='output_data_size'/>
+ <parameter type-id='type-id-425' name='output_data_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_privkey_verify_params' mangled-name='gnutls_x509_privkey_verify_params' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_privkey_verify_params@@GNUTLS_3_4'>
- <parameter type-id='type-id-383' name='key'/>
+ <parameter type-id='type-id-386' name='key'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_privkey_verify_seed' mangled-name='gnutls_x509_privkey_verify_seed' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_privkey_verify_seed@@GNUTLS_3_4'>
- <parameter type-id='type-id-383' name='key'/>
- <parameter type-id='type-id-211' name='digest'/>
+ <parameter type-id='type-id-386' name='key'/>
+ <parameter type-id='type-id-212' name='digest'/>
<parameter type-id='type-id-101' name='seed'/>
<parameter type-id='type-id-99' name='seed_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_privkey_get_seed' mangled-name='gnutls_x509_privkey_get_seed' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_privkey_get_seed@@GNUTLS_3_4'>
- <parameter type-id='type-id-383' name='key'/>
- <parameter type-id='type-id-431' name='digest'/>
+ <parameter type-id='type-id-386' name='key'/>
+ <parameter type-id='type-id-434' name='digest'/>
<parameter type-id='type-id-101' name='seed'/>
- <parameter type-id='type-id-422' name='seed_size'/>
+ <parameter type-id='type-id-425' name='seed_size'/>
<return type-id='type-id-22'/>
</function-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-1005'>
+ <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-1014'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='type' type-id='type-id-762' visibility='default'/>
+ <var-decl name='type' type-id='type-id-765' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='data' type-id='type-id-64' visibility='default'/>
@@ -14896,115 +15009,115 @@
</data-member>
</class-decl>
<function-decl name='gnutls_x509_privkey_generate2' mangled-name='gnutls_x509_privkey_generate2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_privkey_generate2@@GNUTLS_3_4'>
- <parameter type-id='type-id-383' name='key'/>
+ <parameter type-id='type-id-386' name='key'/>
<parameter type-id='type-id-60' name='algo'/>
<parameter type-id='type-id-10' name='bits'/>
<parameter type-id='type-id-10' name='flags'/>
- <parameter type-id='type-id-765' name='data'/>
+ <parameter type-id='type-id-768' name='data'/>
<parameter type-id='type-id-10' name='data_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_privkey_generate' mangled-name='gnutls_x509_privkey_generate' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_privkey_generate@@GNUTLS_3_4'>
- <parameter type-id='type-id-383' name='key'/>
+ <parameter type-id='type-id-386' name='key'/>
<parameter type-id='type-id-60' name='algo'/>
<parameter type-id='type-id-10' name='bits'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_privkey_export_dsa_raw' mangled-name='gnutls_x509_privkey_export_dsa_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_privkey_export_dsa_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-383' name='key'/>
- <parameter type-id='type-id-275' name='p'/>
- <parameter type-id='type-id-275' name='q'/>
- <parameter type-id='type-id-275' name='g'/>
- <parameter type-id='type-id-275' name='y'/>
- <parameter type-id='type-id-275' name='x'/>
+ <parameter type-id='type-id-386' name='key'/>
+ <parameter type-id='type-id-278' name='p'/>
+ <parameter type-id='type-id-278' name='q'/>
+ <parameter type-id='type-id-278' name='g'/>
+ <parameter type-id='type-id-278' name='y'/>
+ <parameter type-id='type-id-278' name='x'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_privkey_export_rsa_raw2' mangled-name='gnutls_x509_privkey_export_rsa_raw2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_privkey_export_rsa_raw2@@GNUTLS_3_4'>
- <parameter type-id='type-id-383' name='key'/>
- <parameter type-id='type-id-275' name='m'/>
- <parameter type-id='type-id-275' name='e'/>
- <parameter type-id='type-id-275' name='d'/>
- <parameter type-id='type-id-275' name='p'/>
- <parameter type-id='type-id-275' name='q'/>
- <parameter type-id='type-id-275' name='u'/>
- <parameter type-id='type-id-275' name='e1'/>
- <parameter type-id='type-id-275' name='e2'/>
+ <parameter type-id='type-id-386' name='key'/>
+ <parameter type-id='type-id-278' name='m'/>
+ <parameter type-id='type-id-278' name='e'/>
+ <parameter type-id='type-id-278' name='d'/>
+ <parameter type-id='type-id-278' name='p'/>
+ <parameter type-id='type-id-278' name='q'/>
+ <parameter type-id='type-id-278' name='u'/>
+ <parameter type-id='type-id-278' name='e1'/>
+ <parameter type-id='type-id-278' name='e2'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_privkey_export_rsa_raw' mangled-name='gnutls_x509_privkey_export_rsa_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_privkey_export_rsa_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-383' name='key'/>
- <parameter type-id='type-id-275' name='m'/>
- <parameter type-id='type-id-275' name='e'/>
- <parameter type-id='type-id-275' name='d'/>
- <parameter type-id='type-id-275' name='p'/>
- <parameter type-id='type-id-275' name='q'/>
- <parameter type-id='type-id-275' name='u'/>
+ <parameter type-id='type-id-386' name='key'/>
+ <parameter type-id='type-id-278' name='m'/>
+ <parameter type-id='type-id-278' name='e'/>
+ <parameter type-id='type-id-278' name='d'/>
+ <parameter type-id='type-id-278' name='p'/>
+ <parameter type-id='type-id-278' name='q'/>
+ <parameter type-id='type-id-278' name='u'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_privkey_export_gost_raw' mangled-name='gnutls_x509_privkey_export_gost_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_privkey_export_gost_raw@@GNUTLS_3_6_3'>
- <parameter type-id='type-id-383' name='key'/>
- <parameter type-id='type-id-711' name='curve'/>
- <parameter type-id='type-id-431' name='digest'/>
- <parameter type-id='type-id-712' name='paramset'/>
- <parameter type-id='type-id-275' name='x'/>
- <parameter type-id='type-id-275' name='y'/>
- <parameter type-id='type-id-275' name='k'/>
+ <parameter type-id='type-id-386' name='key'/>
+ <parameter type-id='type-id-714' name='curve'/>
+ <parameter type-id='type-id-434' name='digest'/>
+ <parameter type-id='type-id-715' name='paramset'/>
+ <parameter type-id='type-id-278' name='x'/>
+ <parameter type-id='type-id-278' name='y'/>
+ <parameter type-id='type-id-278' name='k'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_privkey_export_ecc_raw' mangled-name='gnutls_x509_privkey_export_ecc_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_privkey_export_ecc_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-383' name='key'/>
- <parameter type-id='type-id-711' name='curve'/>
- <parameter type-id='type-id-275' name='x'/>
- <parameter type-id='type-id-275' name='y'/>
- <parameter type-id='type-id-275' name='k'/>
+ <parameter type-id='type-id-386' name='key'/>
+ <parameter type-id='type-id-714' name='curve'/>
+ <parameter type-id='type-id-278' name='x'/>
+ <parameter type-id='type-id-278' name='y'/>
+ <parameter type-id='type-id-278' name='k'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_privkey_sec_param' mangled-name='gnutls_x509_privkey_sec_param' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_privkey_sec_param@@GNUTLS_3_4'>
- <parameter type-id='type-id-383' name='key'/>
- <return type-id='type-id-202'/>
+ <parameter type-id='type-id-386' name='key'/>
+ <return type-id='type-id-203'/>
</function-decl>
<function-decl name='gnutls_x509_privkey_export2' mangled-name='gnutls_x509_privkey_export2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_privkey_export2@@GNUTLS_3_4'>
- <parameter type-id='type-id-383' name='key'/>
- <parameter type-id='type-id-421' name='format'/>
- <parameter type-id='type-id-275' name='out'/>
+ <parameter type-id='type-id-386' name='key'/>
+ <parameter type-id='type-id-424' name='format'/>
+ <parameter type-id='type-id-278' name='out'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_privkey_export' mangled-name='gnutls_x509_privkey_export' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_privkey_export@@GNUTLS_3_4'>
- <parameter type-id='type-id-383' name='key'/>
- <parameter type-id='type-id-421' name='format'/>
+ <parameter type-id='type-id-386' name='key'/>
+ <parameter type-id='type-id-424' name='format'/>
<parameter type-id='type-id-101' name='output_data'/>
- <parameter type-id='type-id-422' name='output_data_size'/>
+ <parameter type-id='type-id-425' name='output_data_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_privkey_set_spki' mangled-name='gnutls_x509_privkey_set_spki' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_privkey_set_spki@@GNUTLS_3_6_0'>
- <parameter type-id='type-id-383' name='key'/>
- <parameter type-id='type-id-758' name='spki'/>
+ <parameter type-id='type-id-386' name='key'/>
+ <parameter type-id='type-id-761' name='spki'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_privkey_get_spki' mangled-name='gnutls_x509_privkey_get_spki' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_privkey_get_spki@@GNUTLS_3_6_0'>
- <parameter type-id='type-id-383' name='key'/>
- <parameter type-id='type-id-757' name='spki'/>
+ <parameter type-id='type-id-386' name='key'/>
+ <parameter type-id='type-id-760' name='spki'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_privkey_get_pk_algorithm' mangled-name='gnutls_x509_privkey_get_pk_algorithm' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_privkey_get_pk_algorithm@@GNUTLS_3_4'>
- <parameter type-id='type-id-383' name='key'/>
+ <parameter type-id='type-id-386' name='key'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_privkey_import_gost_raw' mangled-name='gnutls_x509_privkey_import_gost_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_privkey_import_gost_raw@@GNUTLS_3_6_3'>
- <parameter type-id='type-id-383' name='key'/>
+ <parameter type-id='type-id-386' name='key'/>
<parameter type-id='type-id-59' name='curve'/>
- <parameter type-id='type-id-211' name='digest'/>
- <parameter type-id='type-id-315' name='paramset'/>
+ <parameter type-id='type-id-212' name='digest'/>
+ <parameter type-id='type-id-318' name='paramset'/>
<parameter type-id='type-id-57' name='x'/>
<parameter type-id='type-id-57' name='y'/>
<parameter type-id='type-id-57' name='k'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_privkey_import_ecc_raw' mangled-name='gnutls_x509_privkey_import_ecc_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_privkey_import_ecc_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-383' name='key'/>
+ <parameter type-id='type-id-386' name='key'/>
<parameter type-id='type-id-59' name='curve'/>
<parameter type-id='type-id-57' name='x'/>
<parameter type-id='type-id-57' name='y'/>
@@ -15012,7 +15125,7 @@
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_privkey_import_dsa_raw' mangled-name='gnutls_x509_privkey_import_dsa_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_privkey_import_dsa_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-383' name='key'/>
+ <parameter type-id='type-id-386' name='key'/>
<parameter type-id='type-id-57' name='p'/>
<parameter type-id='type-id-57' name='q'/>
<parameter type-id='type-id-57' name='g'/>
@@ -15021,7 +15134,7 @@
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_privkey_import_rsa_raw2' mangled-name='gnutls_x509_privkey_import_rsa_raw2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_privkey_import_rsa_raw2@@GNUTLS_3_4'>
- <parameter type-id='type-id-383' name='key'/>
+ <parameter type-id='type-id-386' name='key'/>
<parameter type-id='type-id-57' name='m'/>
<parameter type-id='type-id-57' name='e'/>
<parameter type-id='type-id-57' name='d'/>
@@ -15033,7 +15146,7 @@
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_privkey_import_rsa_raw' mangled-name='gnutls_x509_privkey_import_rsa_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_privkey_import_rsa_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-383' name='key'/>
+ <parameter type-id='type-id-386' name='key'/>
<parameter type-id='type-id-57' name='m'/>
<parameter type-id='type-id-57' name='e'/>
<parameter type-id='type-id-57' name='d'/>
@@ -15043,45 +15156,45 @@
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_privkey_import2' mangled-name='gnutls_x509_privkey_import2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_privkey_import2@@GNUTLS_3_4'>
- <parameter type-id='type-id-383' name='key'/>
+ <parameter type-id='type-id-386' name='key'/>
<parameter type-id='type-id-57' name='data'/>
- <parameter type-id='type-id-421' name='format'/>
+ <parameter type-id='type-id-424' name='format'/>
<parameter type-id='type-id-27' name='password'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_privkey_import' mangled-name='gnutls_x509_privkey_import' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_privkey_import@@GNUTLS_3_4'>
- <parameter type-id='type-id-383' name='key'/>
+ <parameter type-id='type-id-386' name='key'/>
<parameter type-id='type-id-57' name='data'/>
- <parameter type-id='type-id-421' name='format'/>
+ <parameter type-id='type-id-424' name='format'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_privkey_cpy' mangled-name='gnutls_x509_privkey_cpy' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_privkey_cpy@@GNUTLS_3_4'>
- <parameter type-id='type-id-383' name='dst'/>
- <parameter type-id='type-id-383' name='src'/>
+ <parameter type-id='type-id-386' name='dst'/>
+ <parameter type-id='type-id-386' name='src'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_privkey_init' mangled-name='gnutls_x509_privkey_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_privkey_init@@GNUTLS_3_4'>
- <parameter type-id='type-id-734' name='key'/>
+ <parameter type-id='type-id-737' name='key'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_privkey_deinit' mangled-name='gnutls_x509_privkey_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_privkey_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-383' name='key'/>
+ <parameter type-id='type-id-386' name='key'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_x509_privkey_get_pk_algorithm2' mangled-name='gnutls_x509_privkey_get_pk_algorithm2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_privkey_get_pk_algorithm2@@GNUTLS_3_4'>
- <parameter type-id='type-id-383' name='key'/>
- <parameter type-id='type-id-419' name='bits'/>
+ <parameter type-id='type-id-386' name='key'/>
+ <parameter type-id='type-id-422' name='bits'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_privkey_fix' mangled-name='gnutls_x509_privkey_fix' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_privkey_fix@@GNUTLS_3_4'>
- <parameter type-id='type-id-383' name='key'/>
+ <parameter type-id='type-id-386' name='key'/>
<return type-id='type-id-22'/>
</function-decl>
- <function-decl name='_gnutls_asn1_encode_privkey' mangled-name='_gnutls_asn1_encode_privkey' visibility='default' binding='global' size-in-bits='64'>
+ <function-decl name='gnutls_ecc_curve_get_pk' mangled-name='gnutls_ecc_curve_get_pk' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-decl name='gnutls_ecc_curve_get_pk' mangled-name='gnutls_ecc_curve_get_pk' visibility='default' binding='global' size-in-bits='64'>
+ <function-decl name='_gnutls_asn1_encode_privkey' mangled-name='_gnutls_asn1_encode_privkey' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_x509_privkey_import_openssl' mangled-name='gnutls_x509_privkey_import_openssl' visibility='default' binding='global' size-in-bits='64'>
@@ -15091,41 +15204,41 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='privkey_pkcs8.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='privkey_pkcs8.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
<function-decl name='gnutls_x509_privkey_import_pkcs8' mangled-name='gnutls_x509_privkey_import_pkcs8' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_privkey_import_pkcs8@@GNUTLS_3_4'>
- <parameter type-id='type-id-383' name='key'/>
+ <parameter type-id='type-id-386' name='key'/>
<parameter type-id='type-id-57' name='data'/>
- <parameter type-id='type-id-421' name='format'/>
+ <parameter type-id='type-id-424' name='format'/>
<parameter type-id='type-id-27' name='password'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_privkey_export2_pkcs8' mangled-name='gnutls_x509_privkey_export2_pkcs8' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_privkey_export2_pkcs8@@GNUTLS_3_4'>
- <parameter type-id='type-id-383' name='key'/>
- <parameter type-id='type-id-421' name='format'/>
+ <parameter type-id='type-id-386' name='key'/>
+ <parameter type-id='type-id-424' name='format'/>
<parameter type-id='type-id-27' name='password'/>
<parameter type-id='type-id-10' name='flags'/>
- <parameter type-id='type-id-275' name='out'/>
+ <parameter type-id='type-id-278' name='out'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs8_info' mangled-name='gnutls_pkcs8_info' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs8_info@@GNUTLS_3_4'>
<parameter type-id='type-id-57' name='data'/>
- <parameter type-id='type-id-421' name='format'/>
- <parameter type-id='type-id-419' name='schema'/>
- <parameter type-id='type-id-419' name='cipher'/>
+ <parameter type-id='type-id-424' name='format'/>
+ <parameter type-id='type-id-422' name='schema'/>
+ <parameter type-id='type-id-422' name='cipher'/>
<parameter type-id='type-id-101' name='salt'/>
- <parameter type-id='type-id-419' name='salt_size'/>
- <parameter type-id='type-id-419' name='iter_count'/>
- <parameter type-id='type-id-852' name='oid'/>
+ <parameter type-id='type-id-422' name='salt_size'/>
+ <parameter type-id='type-id-422' name='iter_count'/>
+ <parameter type-id='type-id-855' name='oid'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_privkey_export_pkcs8' mangled-name='gnutls_x509_privkey_export_pkcs8' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_privkey_export_pkcs8@@GNUTLS_3_4'>
- <parameter type-id='type-id-383' name='key'/>
- <parameter type-id='type-id-421' name='format'/>
+ <parameter type-id='type-id-386' name='key'/>
+ <parameter type-id='type-id-424' name='format'/>
<parameter type-id='type-id-27' name='password'/>
<parameter type-id='type-id-10' name='flags'/>
<parameter type-id='type-id-101' name='output_data'/>
- <parameter type-id='type-id-422' name='output_data_size'/>
+ <parameter type-id='type-id-425' name='output_data_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='_gnutls_x509_privkey_reinit' mangled-name='_gnutls_x509_privkey_reinit' visibility='default' binding='global' size-in-bits='64'>
@@ -15171,7 +15284,7 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='privkey_pkcs8_pbes1.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='privkey_pkcs8_pbes1.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
<function-decl name='nettle_md5_init' mangled-name='nettle_md5_init' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -15182,9 +15295,9 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='privkey_openssl.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='privkey_openssl.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
<function-decl name='gnutls_x509_privkey_import_openssl' mangled-name='gnutls_x509_privkey_import_openssl' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_privkey_import_openssl@@GNUTLS_3_4'>
- <parameter type-id='type-id-383' name='key'/>
+ <parameter type-id='type-id-386' name='key'/>
<parameter type-id='type-id-57' name='data'/>
<parameter type-id='type-id-27' name='password'/>
<return type-id='type-id-22'/>
@@ -15199,22 +15312,22 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='hostname-verify.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='hostname-verify.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
<function-decl name='gnutls_x509_crt_check_hostname2' mangled-name='gnutls_x509_crt_check_hostname2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_check_hostname2@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-27' name='hostname'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-10'/>
</function-decl>
<function-decl name='gnutls_x509_crt_check_ip' mangled-name='gnutls_x509_crt_check_ip' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_check_ip@@GNUTLS_3_6_0'>
- <parameter type-id='type-id-467' name='cert'/>
- <parameter type-id='type-id-346' name='ip'/>
+ <parameter type-id='type-id-470' name='cert'/>
+ <parameter type-id='type-id-349' name='ip'/>
<parameter type-id='type-id-10' name='ip_size'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-10'/>
</function-decl>
<function-decl name='gnutls_x509_crt_check_hostname' mangled-name='gnutls_x509_crt_check_hostname' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_check_hostname@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-27' name='hostname'/>
<return type-id='type-id-10'/>
</function-decl>
@@ -15225,51 +15338,51 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='sign.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='sign.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
<function-decl name='privkey_sign_raw_data' mangled-name='privkey_sign_raw_data' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='verify.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
- <qualified-type-def type-id='type-id-467' const='yes' id='type-id-1006'/>
- <pointer-type-def type-id='type-id-1006' size-in-bits='64' id='type-id-1007'/>
+ <abi-instr version='1.0' address-size='64' path='verify.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
+ <qualified-type-def type-id='type-id-470' const='yes' id='type-id-1015'/>
+ <pointer-type-def type-id='type-id-1015' size-in-bits='64' id='type-id-1016'/>
<function-decl name='gnutls_x509_crl_verify' mangled-name='gnutls_x509_crl_verify' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_verify@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
- <parameter type-id='type-id-1007' name='trusted_cas'/>
+ <parameter type-id='type-id-733' name='crl'/>
+ <parameter type-id='type-id-1016' name='trusted_cas'/>
<parameter type-id='type-id-10' name='tcas_size'/>
<parameter type-id='type-id-10' name='flags'/>
- <parameter type-id='type-id-419' name='verify'/>
+ <parameter type-id='type-id-422' name='verify'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crl_check_issuer' mangled-name='gnutls_x509_crl_check_issuer' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_check_issuer@@GNUTLS_3_4'>
- <parameter type-id='type-id-730' name='crl'/>
- <parameter type-id='type-id-467' name='issuer'/>
+ <parameter type-id='type-id-733' name='crl'/>
+ <parameter type-id='type-id-470' name='issuer'/>
<return type-id='type-id-10'/>
</function-decl>
<function-decl name='gnutls_x509_crt_verify' mangled-name='gnutls_x509_crt_verify' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_verify@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
- <parameter type-id='type-id-1007' name='CA_list'/>
+ <parameter type-id='type-id-470' name='cert'/>
+ <parameter type-id='type-id-1016' name='CA_list'/>
<parameter type-id='type-id-10' name='CA_list_length'/>
<parameter type-id='type-id-10' name='flags'/>
- <parameter type-id='type-id-419' name='verify'/>
+ <parameter type-id='type-id-422' name='verify'/>
<return type-id='type-id-22'/>
</function-decl>
- <qualified-type-def type-id='type-id-730' const='yes' id='type-id-1008'/>
- <pointer-type-def type-id='type-id-1008' size-in-bits='64' id='type-id-1009'/>
+ <qualified-type-def type-id='type-id-733' const='yes' id='type-id-1017'/>
+ <pointer-type-def type-id='type-id-1017' size-in-bits='64' id='type-id-1018'/>
<function-decl name='gnutls_x509_crt_list_verify' mangled-name='gnutls_x509_crt_list_verify' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_list_verify@@GNUTLS_3_4'>
- <parameter type-id='type-id-1007' name='cert_list'/>
+ <parameter type-id='type-id-1016' name='cert_list'/>
<parameter type-id='type-id-10' name='cert_list_length'/>
- <parameter type-id='type-id-1007' name='CA_list'/>
+ <parameter type-id='type-id-1016' name='CA_list'/>
<parameter type-id='type-id-10' name='CA_list_length'/>
- <parameter type-id='type-id-1009' name='CRL_list'/>
+ <parameter type-id='type-id-1018' name='CRL_list'/>
<parameter type-id='type-id-10' name='CRL_list_length'/>
<parameter type-id='type-id-10' name='flags'/>
- <parameter type-id='type-id-419' name='verify'/>
+ <parameter type-id='type-id-422' name='verify'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_check_issuer' mangled-name='gnutls_x509_crt_check_issuer' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_check_issuer@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
- <parameter type-id='type-id-467' name='issuer'/>
+ <parameter type-id='type-id-470' name='cert'/>
+ <parameter type-id='type-id-470' name='issuer'/>
<return type-id='type-id-10'/>
</function-decl>
<function-decl name='_gnutls_x509_compare_raw_dn' mangled-name='_gnutls_x509_compare_raw_dn' visibility='default' binding='global' size-in-bits='64'>
@@ -15306,14 +15419,14 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='x509.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='x509.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
<function-decl name='gnutls_x509_crt_set_flags' mangled-name='gnutls_x509_crt_set_flags' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_flags@@GNUTLS_3_6_0'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_x509_crt_verify_data2' mangled-name='gnutls_x509_crt_verify_data2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_verify_data2@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
+ <parameter type-id='type-id-470' name='crt'/>
<parameter type-id='type-id-21' name='algo'/>
<parameter type-id='type-id-10' name='flags'/>
<parameter type-id='type-id-57' name='data'/>
@@ -15321,513 +15434,513 @@
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_list_import_url' mangled-name='gnutls_x509_crt_list_import_url' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_list_import_url@@GNUTLS_3_6_3'>
- <parameter type-id='type-id-733' name='certs'/>
- <parameter type-id='type-id-419' name='size'/>
+ <parameter type-id='type-id-736' name='certs'/>
+ <parameter type-id='type-id-422' name='size'/>
<parameter type-id='type-id-27' name='url'/>
- <parameter type-id='type-id-375' name='pin_fn'/>
+ <parameter type-id='type-id-378' name='pin_fn'/>
<parameter type-id='type-id-101' name='pin_fn_userdata'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_import_url' mangled-name='gnutls_x509_crt_import_url' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_import_url@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
+ <parameter type-id='type-id-470' name='crt'/>
<parameter type-id='type-id-27' name='url'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_set_pin_function' mangled-name='gnutls_x509_crt_set_pin_function' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_pin_function@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
- <parameter type-id='type-id-375' name='fn'/>
+ <parameter type-id='type-id-470' name='crt'/>
+ <parameter type-id='type-id-378' name='fn'/>
<parameter type-id='type-id-101' name='userdata'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_authority_info_access' mangled-name='gnutls_x509_crt_get_authority_info_access' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_authority_info_access@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
+ <parameter type-id='type-id-470' name='crt'/>
<parameter type-id='type-id-10' name='seq'/>
<parameter type-id='type-id-22' name='what'/>
- <parameter type-id='type-id-275' name='data'/>
- <parameter type-id='type-id-419' name='critical'/>
+ <parameter type-id='type-id-278' name='data'/>
+ <parameter type-id='type-id-422' name='critical'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_issuer_unique_id' mangled-name='gnutls_x509_crt_get_issuer_unique_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_issuer_unique_id@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
- <parameter type-id='type-id-376' name='buf'/>
- <parameter type-id='type-id-422' name='buf_size'/>
+ <parameter type-id='type-id-470' name='crt'/>
+ <parameter type-id='type-id-379' name='buf'/>
+ <parameter type-id='type-id-425' name='buf_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_subject_unique_id' mangled-name='gnutls_x509_crt_get_subject_unique_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_subject_unique_id@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
- <parameter type-id='type-id-376' name='buf'/>
- <parameter type-id='type-id-422' name='buf_size'/>
+ <parameter type-id='type-id-470' name='crt'/>
+ <parameter type-id='type-id-379' name='buf'/>
+ <parameter type-id='type-id-425' name='buf_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_list_import' mangled-name='gnutls_x509_crt_list_import' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_list_import@@GNUTLS_3_4'>
- <parameter type-id='type-id-458' name='certs'/>
- <parameter type-id='type-id-419' name='cert_max'/>
+ <parameter type-id='type-id-461' name='certs'/>
+ <parameter type-id='type-id-422' name='cert_max'/>
<parameter type-id='type-id-57' name='data'/>
- <parameter type-id='type-id-421' name='format'/>
+ <parameter type-id='type-id-424' name='format'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_list_import2' mangled-name='gnutls_x509_crt_list_import2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_list_import2@@GNUTLS_3_4'>
- <parameter type-id='type-id-733' name='certs'/>
- <parameter type-id='type-id-419' name='size'/>
+ <parameter type-id='type-id-736' name='certs'/>
+ <parameter type-id='type-id-422' name='size'/>
<parameter type-id='type-id-57' name='data'/>
- <parameter type-id='type-id-421' name='format'/>
+ <parameter type-id='type-id-424' name='format'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_pk_dsa_raw' mangled-name='gnutls_x509_crt_get_pk_dsa_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_pk_dsa_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
- <parameter type-id='type-id-275' name='p'/>
- <parameter type-id='type-id-275' name='q'/>
- <parameter type-id='type-id-275' name='g'/>
- <parameter type-id='type-id-275' name='y'/>
+ <parameter type-id='type-id-470' name='crt'/>
+ <parameter type-id='type-id-278' name='p'/>
+ <parameter type-id='type-id-278' name='q'/>
+ <parameter type-id='type-id-278' name='g'/>
+ <parameter type-id='type-id-278' name='y'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_pk_gost_raw' mangled-name='gnutls_x509_crt_get_pk_gost_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_pk_gost_raw@@GNUTLS_3_6_3'>
- <parameter type-id='type-id-467' name='crt'/>
- <parameter type-id='type-id-711' name='curve'/>
- <parameter type-id='type-id-431' name='digest'/>
- <parameter type-id='type-id-712' name='paramset'/>
- <parameter type-id='type-id-275' name='x'/>
- <parameter type-id='type-id-275' name='y'/>
+ <parameter type-id='type-id-470' name='crt'/>
+ <parameter type-id='type-id-714' name='curve'/>
+ <parameter type-id='type-id-434' name='digest'/>
+ <parameter type-id='type-id-715' name='paramset'/>
+ <parameter type-id='type-id-278' name='x'/>
+ <parameter type-id='type-id-278' name='y'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_pk_ecc_raw' mangled-name='gnutls_x509_crt_get_pk_ecc_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_pk_ecc_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
- <parameter type-id='type-id-711' name='curve'/>
- <parameter type-id='type-id-275' name='x'/>
- <parameter type-id='type-id-275' name='y'/>
+ <parameter type-id='type-id-470' name='crt'/>
+ <parameter type-id='type-id-714' name='curve'/>
+ <parameter type-id='type-id-278' name='x'/>
+ <parameter type-id='type-id-278' name='y'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_pk_rsa_raw' mangled-name='gnutls_x509_crt_get_pk_rsa_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_pk_rsa_raw@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
- <parameter type-id='type-id-275' name='m'/>
- <parameter type-id='type-id-275' name='e'/>
+ <parameter type-id='type-id-470' name='crt'/>
+ <parameter type-id='type-id-278' name='m'/>
+ <parameter type-id='type-id-278' name='e'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_key_purpose_oid' mangled-name='gnutls_x509_crt_get_key_purpose_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_key_purpose_oid@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-10' name='indx'/>
<parameter type-id='type-id-101' name='oid'/>
- <parameter type-id='type-id-422' name='oid_size'/>
- <parameter type-id='type-id-419' name='critical'/>
+ <parameter type-id='type-id-425' name='oid_size'/>
+ <parameter type-id='type-id-422' name='critical'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_crl_dist_points' mangled-name='gnutls_x509_crt_get_crl_dist_points' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_crl_dist_points@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-10' name='seq'/>
<parameter type-id='type-id-101' name='san'/>
- <parameter type-id='type-id-422' name='san_size'/>
- <parameter type-id='type-id-419' name='reason_flags'/>
- <parameter type-id='type-id-419' name='critical'/>
+ <parameter type-id='type-id-425' name='san_size'/>
+ <parameter type-id='type-id-422' name='reason_flags'/>
+ <parameter type-id='type-id-422' name='critical'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_preferred_hash_algorithm' mangled-name='gnutls_x509_crt_get_preferred_hash_algorithm' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_preferred_hash_algorithm@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
- <parameter type-id='type-id-431' name='hash'/>
- <parameter type-id='type-id-419' name='mand'/>
+ <parameter type-id='type-id-470' name='crt'/>
+ <parameter type-id='type-id-434' name='hash'/>
+ <parameter type-id='type-id-422' name='mand'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_check_key_purpose' mangled-name='gnutls_x509_crt_check_key_purpose' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_check_key_purpose@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-27' name='purpose'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-10'/>
</function-decl>
<function-decl name='gnutls_x509_crt_check_revocation' mangled-name='gnutls_x509_crt_check_revocation' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_check_revocation@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
- <parameter type-id='type-id-1009' name='crl_list'/>
+ <parameter type-id='type-id-470' name='cert'/>
+ <parameter type-id='type-id-1018' name='crl_list'/>
<parameter type-id='type-id-10' name='crl_list_length'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_key_id' mangled-name='gnutls_x509_crt_get_key_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_key_id@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
+ <parameter type-id='type-id-470' name='crt'/>
<parameter type-id='type-id-10' name='flags'/>
<parameter type-id='type-id-64' name='output_data'/>
- <parameter type-id='type-id-422' name='output_data_size'/>
+ <parameter type-id='type-id-425' name='output_data_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_export' mangled-name='gnutls_x509_crt_export' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_export@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
- <parameter type-id='type-id-421' name='format'/>
+ <parameter type-id='type-id-470' name='cert'/>
+ <parameter type-id='type-id-424' name='format'/>
<parameter type-id='type-id-101' name='output_data'/>
- <parameter type-id='type-id-422' name='output_data_size'/>
+ <parameter type-id='type-id-425' name='output_data_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_fingerprint' mangled-name='gnutls_x509_crt_get_fingerprint' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_fingerprint@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
- <parameter type-id='type-id-211' name='algo'/>
+ <parameter type-id='type-id-470' name='cert'/>
+ <parameter type-id='type-id-212' name='algo'/>
<parameter type-id='type-id-101' name='buf'/>
- <parameter type-id='type-id-422' name='buf_size'/>
+ <parameter type-id='type-id-425' name='buf_size'/>
<return type-id='type-id-22'/>
</function-decl>
- <pointer-type-def type-id='type-id-465' size-in-bits='64' id='type-id-1010'/>
- <typedef-decl name='gnutls_x509_dn_t' type-id='type-id-1010' id='type-id-1011'/>
- <pointer-type-def type-id='type-id-1011' size-in-bits='64' id='type-id-1012'/>
+ <pointer-type-def type-id='type-id-468' size-in-bits='64' id='type-id-1019'/>
+ <typedef-decl name='gnutls_x509_dn_t' type-id='type-id-1019' id='type-id-1020'/>
+ <pointer-type-def type-id='type-id-1020' size-in-bits='64' id='type-id-1021'/>
<function-decl name='gnutls_x509_crt_get_issuer' mangled-name='gnutls_x509_crt_get_issuer' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_issuer@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
- <parameter type-id='type-id-1012' name='dn'/>
+ <parameter type-id='type-id-470' name='cert'/>
+ <parameter type-id='type-id-1021' name='dn'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_subject' mangled-name='gnutls_x509_crt_get_subject' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_subject@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
- <parameter type-id='type-id-1012' name='dn'/>
+ <parameter type-id='type-id-470' name='cert'/>
+ <parameter type-id='type-id-1021' name='dn'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_raw_dn' mangled-name='gnutls_x509_crt_get_raw_dn' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_raw_dn@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
- <parameter type-id='type-id-275' name='dn'/>
+ <parameter type-id='type-id-470' name='cert'/>
+ <parameter type-id='type-id-278' name='dn'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_raw_issuer_dn' mangled-name='gnutls_x509_crt_get_raw_issuer_dn' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_raw_issuer_dn@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
- <parameter type-id='type-id-275' name='dn'/>
+ <parameter type-id='type-id-470' name='cert'/>
+ <parameter type-id='type-id-278' name='dn'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_extension_data' mangled-name='gnutls_x509_crt_get_extension_data' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_extension_data@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-10' name='indx'/>
<parameter type-id='type-id-101' name='data'/>
- <parameter type-id='type-id-422' name='sizeof_data'/>
+ <parameter type-id='type-id-425' name='sizeof_data'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_extension_info' mangled-name='gnutls_x509_crt_get_extension_info' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_extension_info@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-10' name='indx'/>
<parameter type-id='type-id-101' name='oid'/>
- <parameter type-id='type-id-422' name='oid_size'/>
- <parameter type-id='type-id-419' name='critical'/>
+ <parameter type-id='type-id-425' name='oid_size'/>
+ <parameter type-id='type-id-422' name='critical'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_extension_oid' mangled-name='gnutls_x509_crt_get_extension_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_extension_oid@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-10' name='indx'/>
<parameter type-id='type-id-101' name='oid'/>
- <parameter type-id='type-id-422' name='oid_size'/>
+ <parameter type-id='type-id-425' name='oid_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_extension_by_oid2' mangled-name='gnutls_x509_crt_get_extension_by_oid2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_extension_by_oid2@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-27' name='oid'/>
<parameter type-id='type-id-10' name='indx'/>
- <parameter type-id='type-id-275' name='output'/>
- <parameter type-id='type-id-419' name='critical'/>
+ <parameter type-id='type-id-278' name='output'/>
+ <parameter type-id='type-id-422' name='critical'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_extension_by_oid' mangled-name='gnutls_x509_crt_get_extension_by_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_extension_by_oid@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-27' name='oid'/>
<parameter type-id='type-id-10' name='indx'/>
<parameter type-id='type-id-101' name='buf'/>
- <parameter type-id='type-id-422' name='buf_size'/>
- <parameter type-id='type-id-419' name='critical'/>
+ <parameter type-id='type-id-425' name='buf_size'/>
+ <parameter type-id='type-id-422' name='critical'/>
<return type-id='type-id-22'/>
</function-decl>
- <class-decl name='gnutls_x509_policy_st' size-in-bits='1664' is-struct='yes' visibility='default' id='type-id-1013'>
+ <class-decl name='gnutls_x509_policy_st' size-in-bits='1664' is-struct='yes' visibility='default' id='type-id-1022'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='oid' type-id='type-id-376' visibility='default'/>
+ <var-decl name='oid' type-id='type-id-379' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='qualifiers' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='qualifier' type-id='type-id-1014' visibility='default'/>
+ <var-decl name='qualifier' type-id='type-id-1023' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-1015'>
+ <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-1024'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='type' type-id='type-id-1016' visibility='default'/>
+ <var-decl name='type' type-id='type-id-1025' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='data' type-id='type-id-376' visibility='default'/>
+ <var-decl name='data' type-id='type-id-379' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
<var-decl name='size' type-id='type-id-10' visibility='default'/>
</data-member>
</class-decl>
- <enum-decl name='gnutls_x509_qualifier_t' id='type-id-1017'>
+ <enum-decl name='gnutls_x509_qualifier_t' id='type-id-1026'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_X509_QUALIFIER_UNKNOWN' value='0'/>
<enumerator name='GNUTLS_X509_QUALIFIER_URI' value='1'/>
<enumerator name='GNUTLS_X509_QUALIFIER_NOTICE' value='2'/>
</enum-decl>
- <typedef-decl name='gnutls_x509_qualifier_t' type-id='type-id-1017' id='type-id-1016'/>
+ <typedef-decl name='gnutls_x509_qualifier_t' type-id='type-id-1026' id='type-id-1025'/>
- <array-type-def dimensions='1' type-id='type-id-1015' size-in-bits='1536' id='type-id-1014'>
- <subrange length='8' type-id='type-id-38' id='type-id-455'/>
+ <array-type-def dimensions='1' type-id='type-id-1024' size-in-bits='1536' id='type-id-1023'>
+ <subrange length='8' type-id='type-id-38' id='type-id-458'/>
</array-type-def>
- <pointer-type-def type-id='type-id-1013' size-in-bits='64' id='type-id-1018'/>
+ <pointer-type-def type-id='type-id-1022' size-in-bits='64' id='type-id-1027'/>
<function-decl name='gnutls_x509_crt_get_policy' mangled-name='gnutls_x509_crt_get_policy' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_policy@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
+ <parameter type-id='type-id-470' name='crt'/>
<parameter type-id='type-id-10' name='indx'/>
- <parameter type-id='type-id-1018' name='policy'/>
- <parameter type-id='type-id-419' name='critical'/>
+ <parameter type-id='type-id-1027' name='policy'/>
+ <parameter type-id='type-id-422' name='critical'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_policy_release' mangled-name='gnutls_x509_policy_release' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_policy_release@@GNUTLS_3_4'>
- <parameter type-id='type-id-1018' name='policy'/>
+ <parameter type-id='type-id-1027' name='policy'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_proxy' mangled-name='gnutls_x509_crt_get_proxy' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_proxy@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
- <parameter type-id='type-id-419' name='critical'/>
- <parameter type-id='type-id-364' name='pathlen'/>
- <parameter type-id='type-id-852' name='policyLanguage'/>
- <parameter type-id='type-id-852' name='policy'/>
- <parameter type-id='type-id-422' name='sizeof_policy'/>
+ <parameter type-id='type-id-470' name='cert'/>
+ <parameter type-id='type-id-422' name='critical'/>
+ <parameter type-id='type-id-367' name='pathlen'/>
+ <parameter type-id='type-id-855' name='policyLanguage'/>
+ <parameter type-id='type-id-855' name='policy'/>
+ <parameter type-id='type-id-425' name='sizeof_policy'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_inhibit_anypolicy' mangled-name='gnutls_x509_crt_get_inhibit_anypolicy' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_inhibit_anypolicy@@GNUTLS_3_6_0'>
- <parameter type-id='type-id-467' name='cert'/>
- <parameter type-id='type-id-419' name='skipcerts'/>
- <parameter type-id='type-id-419' name='critical'/>
+ <parameter type-id='type-id-470' name='cert'/>
+ <parameter type-id='type-id-422' name='skipcerts'/>
+ <parameter type-id='type-id-422' name='critical'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_key_usage' mangled-name='gnutls_x509_crt_get_key_usage' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_key_usage@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
- <parameter type-id='type-id-419' name='skipcerts'/>
- <parameter type-id='type-id-419' name='critical'/>
+ <parameter type-id='type-id-470' name='cert'/>
+ <parameter type-id='type-id-422' name='skipcerts'/>
+ <parameter type-id='type-id-422' name='critical'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_ca_status' mangled-name='gnutls_x509_crt_get_ca_status' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_ca_status@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
- <parameter type-id='type-id-419' name='critical'/>
+ <parameter type-id='type-id-470' name='cert'/>
+ <parameter type-id='type-id-422' name='critical'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_basic_constraints' mangled-name='gnutls_x509_crt_get_basic_constraints' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_basic_constraints@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
- <parameter type-id='type-id-419' name='critical'/>
- <parameter type-id='type-id-419' name='ca'/>
- <parameter type-id='type-id-364' name='pathlen'/>
+ <parameter type-id='type-id-470' name='cert'/>
+ <parameter type-id='type-id-422' name='critical'/>
+ <parameter type-id='type-id-422' name='ca'/>
+ <parameter type-id='type-id-367' name='pathlen'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_issuer_alt_othername_oid' mangled-name='gnutls_x509_crt_get_issuer_alt_othername_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_issuer_alt_othername_oid@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-10' name='seq'/>
<parameter type-id='type-id-101' name='ret'/>
- <parameter type-id='type-id-422' name='ret_size'/>
+ <parameter type-id='type-id-425' name='ret_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_subject_alt_othername_oid' mangled-name='gnutls_x509_crt_get_subject_alt_othername_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_subject_alt_othername_oid@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-10' name='seq'/>
<parameter type-id='type-id-101' name='ret'/>
- <parameter type-id='type-id-422' name='ret_size'/>
+ <parameter type-id='type-id-425' name='ret_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_issuer_alt_name2' mangled-name='gnutls_x509_crt_get_issuer_alt_name2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_issuer_alt_name2@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-10' name='seq'/>
<parameter type-id='type-id-101' name='ian'/>
- <parameter type-id='type-id-422' name='ian_size'/>
- <parameter type-id='type-id-419' name='ian_type'/>
- <parameter type-id='type-id-419' name='critical'/>
+ <parameter type-id='type-id-425' name='ian_size'/>
+ <parameter type-id='type-id-422' name='ian_type'/>
+ <parameter type-id='type-id-422' name='critical'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_subject_alt_name2' mangled-name='gnutls_x509_crt_get_subject_alt_name2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_subject_alt_name2@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-10' name='seq'/>
<parameter type-id='type-id-101' name='ian'/>
- <parameter type-id='type-id-422' name='ian_size'/>
- <parameter type-id='type-id-419' name='ian_type'/>
- <parameter type-id='type-id-419' name='critical'/>
+ <parameter type-id='type-id-425' name='ian_size'/>
+ <parameter type-id='type-id-422' name='ian_type'/>
+ <parameter type-id='type-id-422' name='critical'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_issuer_alt_name' mangled-name='gnutls_x509_crt_get_issuer_alt_name' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_issuer_alt_name@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-10' name='seq'/>
<parameter type-id='type-id-101' name='ian'/>
- <parameter type-id='type-id-422' name='ian_size'/>
- <parameter type-id='type-id-419' name='critical'/>
+ <parameter type-id='type-id-425' name='ian_size'/>
+ <parameter type-id='type-id-422' name='critical'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_subject_alt_name' mangled-name='gnutls_x509_crt_get_subject_alt_name' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_subject_alt_name@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-10' name='seq'/>
<parameter type-id='type-id-101' name='ian'/>
- <parameter type-id='type-id-422' name='ian_size'/>
- <parameter type-id='type-id-419' name='critical'/>
+ <parameter type-id='type-id-425' name='ian_size'/>
+ <parameter type-id='type-id-422' name='critical'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_spki' mangled-name='gnutls_x509_crt_get_spki' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_spki@@GNUTLS_3_6_0'>
- <parameter type-id='type-id-467' name='cert'/>
- <parameter type-id='type-id-757' name='spki'/>
+ <parameter type-id='type-id-470' name='cert'/>
+ <parameter type-id='type-id-760' name='spki'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_authority_key_id' mangled-name='gnutls_x509_crt_get_authority_key_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_authority_key_id@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-101' name='id'/>
- <parameter type-id='type-id-422' name='id_size'/>
- <parameter type-id='type-id-419' name='critical'/>
+ <parameter type-id='type-id-425' name='id_size'/>
+ <parameter type-id='type-id-422' name='critical'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_authority_key_gn_serial' mangled-name='gnutls_x509_crt_get_authority_key_gn_serial' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_authority_key_gn_serial@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-10' name='seq'/>
<parameter type-id='type-id-101' name='alt'/>
- <parameter type-id='type-id-422' name='alt_size'/>
- <parameter type-id='type-id-419' name='alt_type'/>
+ <parameter type-id='type-id-425' name='alt_size'/>
+ <parameter type-id='type-id-422' name='alt_type'/>
<parameter type-id='type-id-101' name='serial'/>
- <parameter type-id='type-id-422' name='serial_size'/>
- <parameter type-id='type-id-419' name='critical'/>
+ <parameter type-id='type-id-425' name='serial_size'/>
+ <parameter type-id='type-id-422' name='critical'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_subject_key_id' mangled-name='gnutls_x509_crt_get_subject_key_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_subject_key_id@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-101' name='ret'/>
- <parameter type-id='type-id-422' name='ret_size'/>
- <parameter type-id='type-id-419' name='critical'/>
+ <parameter type-id='type-id-425' name='ret_size'/>
+ <parameter type-id='type-id-422' name='critical'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_private_key_usage_period' mangled-name='gnutls_x509_crt_get_private_key_usage_period' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_private_key_usage_period@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
- <parameter type-id='type-id-514' name='activation'/>
- <parameter type-id='type-id-514' name='expiration'/>
- <parameter type-id='type-id-419' name='critical'/>
+ <parameter type-id='type-id-470' name='cert'/>
+ <parameter type-id='type-id-517' name='activation'/>
+ <parameter type-id='type-id-517' name='expiration'/>
+ <parameter type-id='type-id-422' name='critical'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_version' mangled-name='gnutls_x509_crt_get_version' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_version@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_signature' mangled-name='gnutls_x509_crt_get_signature' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_signature@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
- <parameter type-id='type-id-376' name='sig'/>
- <parameter type-id='type-id-422' name='sig_size'/>
+ <parameter type-id='type-id-470' name='cert'/>
+ <parameter type-id='type-id-379' name='sig'/>
+ <parameter type-id='type-id-425' name='sig_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_pk_oid' mangled-name='gnutls_x509_crt_get_pk_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_pk_oid@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
- <parameter type-id='type-id-376' name='oid'/>
- <parameter type-id='type-id-422' name='oid_size'/>
+ <parameter type-id='type-id-470' name='cert'/>
+ <parameter type-id='type-id-379' name='oid'/>
+ <parameter type-id='type-id-425' name='oid_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_signature_oid' mangled-name='gnutls_x509_crt_get_signature_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_signature_oid@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
- <parameter type-id='type-id-376' name='oid'/>
- <parameter type-id='type-id-422' name='oid_size'/>
+ <parameter type-id='type-id-470' name='cert'/>
+ <parameter type-id='type-id-379' name='oid'/>
+ <parameter type-id='type-id-425' name='oid_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_signature_algorithm' mangled-name='gnutls_x509_crt_get_signature_algorithm' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_signature_algorithm@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_dn_oid' mangled-name='gnutls_x509_crt_get_dn_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_dn_oid@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-10' name='indx'/>
<parameter type-id='type-id-101' name='oid'/>
- <parameter type-id='type-id-422' name='oid_size'/>
+ <parameter type-id='type-id-425' name='oid_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_dn_by_oid' mangled-name='gnutls_x509_crt_get_dn_by_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_dn_by_oid@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-27' name='oid'/>
<parameter type-id='type-id-10' name='indx'/>
<parameter type-id='type-id-10' name='raw_flag'/>
<parameter type-id='type-id-101' name='buf'/>
- <parameter type-id='type-id-422' name='buf_size'/>
+ <parameter type-id='type-id-425' name='buf_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_dn3' mangled-name='gnutls_x509_crt_get_dn3' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_dn3@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
- <parameter type-id='type-id-275' name='dn'/>
+ <parameter type-id='type-id-470' name='cert'/>
+ <parameter type-id='type-id-278' name='dn'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_dn2' mangled-name='gnutls_x509_crt_get_dn2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_dn2@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
- <parameter type-id='type-id-275' name='dn'/>
+ <parameter type-id='type-id-470' name='cert'/>
+ <parameter type-id='type-id-278' name='dn'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_dn' mangled-name='gnutls_x509_crt_get_dn' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_dn@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
- <parameter type-id='type-id-376' name='buf'/>
- <parameter type-id='type-id-422' name='buf_size'/>
+ <parameter type-id='type-id-470' name='cert'/>
+ <parameter type-id='type-id-379' name='buf'/>
+ <parameter type-id='type-id-425' name='buf_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_issuer_dn_oid' mangled-name='gnutls_x509_crt_get_issuer_dn_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_issuer_dn_oid@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-10' name='indx'/>
<parameter type-id='type-id-101' name='oid'/>
- <parameter type-id='type-id-422' name='oid_size'/>
+ <parameter type-id='type-id-425' name='oid_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_issuer_dn_by_oid' mangled-name='gnutls_x509_crt_get_issuer_dn_by_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_issuer_dn_by_oid@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-27' name='oid'/>
<parameter type-id='type-id-10' name='indx'/>
<parameter type-id='type-id-10' name='raw_flag'/>
<parameter type-id='type-id-101' name='buf'/>
- <parameter type-id='type-id-422' name='buf_size'/>
+ <parameter type-id='type-id-425' name='buf_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_issuer_dn3' mangled-name='gnutls_x509_crt_get_issuer_dn3' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_issuer_dn3@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
- <parameter type-id='type-id-275' name='dn'/>
+ <parameter type-id='type-id-470' name='cert'/>
+ <parameter type-id='type-id-278' name='dn'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_issuer_dn2' mangled-name='gnutls_x509_crt_get_issuer_dn2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_issuer_dn2@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
- <parameter type-id='type-id-275' name='dn'/>
+ <parameter type-id='type-id-470' name='cert'/>
+ <parameter type-id='type-id-278' name='dn'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_issuer_dn' mangled-name='gnutls_x509_crt_get_issuer_dn' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_issuer_dn@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
- <parameter type-id='type-id-376' name='buf'/>
- <parameter type-id='type-id-422' name='buf_size'/>
+ <parameter type-id='type-id-470' name='cert'/>
+ <parameter type-id='type-id-379' name='buf'/>
+ <parameter type-id='type-id-425' name='buf_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_import' mangled-name='gnutls_x509_crt_import' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_import@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-57' name='data'/>
- <parameter type-id='type-id-421' name='format'/>
+ <parameter type-id='type-id-424' name='format'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_deinit' mangled-name='gnutls_x509_crt_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_x509_crt_init' mangled-name='gnutls_x509_crt_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_init@@GNUTLS_3_4'>
- <parameter type-id='type-id-458' name='cert'/>
+ <parameter type-id='type-id-461' name='cert'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_equals' mangled-name='gnutls_x509_crt_equals' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_equals@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert1'/>
- <parameter type-id='type-id-467' name='cert2'/>
+ <parameter type-id='type-id-470' name='cert1'/>
+ <parameter type-id='type-id-470' name='cert2'/>
<return type-id='type-id-10'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_activation_time' mangled-name='gnutls_x509_crt_get_activation_time' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_activation_time@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<return type-id='type-id-17'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_expiration_time' mangled-name='gnutls_x509_crt_get_expiration_time' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_expiration_time@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<return type-id='type-id-17'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_serial' mangled-name='gnutls_x509_crt_get_serial' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_serial@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-101' name='result'/>
- <parameter type-id='type-id-422' name='result_size'/>
+ <parameter type-id='type-id-425' name='result_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_pk_algorithm' mangled-name='gnutls_x509_crt_get_pk_algorithm' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_pk_algorithm@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
- <parameter type-id='type-id-419' name='bits'/>
+ <parameter type-id='type-id-470' name='cert'/>
+ <parameter type-id='type-id-422' name='bits'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_export2' mangled-name='gnutls_x509_crt_export2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_export2@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
- <parameter type-id='type-id-421' name='format'/>
- <parameter type-id='type-id-275' name='out'/>
+ <parameter type-id='type-id-470' name='cert'/>
+ <parameter type-id='type-id-424' name='format'/>
+ <parameter type-id='type-id-278' name='out'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_equals2' mangled-name='gnutls_x509_crt_equals2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_equals2@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert1'/>
+ <parameter type-id='type-id-470' name='cert1'/>
<parameter type-id='type-id-57' name='der'/>
<return type-id='type-id-10'/>
</function-decl>
@@ -15858,20 +15971,32 @@
<function-decl name='_gnutls_is_same_dn' mangled-name='_gnutls_is_same_dn' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
+ <function-decl name='hash_pjw_bare' mangled-name='hash_pjw_bare' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ <function-decl name='hash_initialize' mangled-name='hash_initialize' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ <function-decl name='hash_insert_if_absent' mangled-name='hash_insert_if_absent' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ <function-decl name='hash_free' mangled-name='hash_free' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='x509_dn.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='x509_dn.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
<function-decl name='gnutls_x509_dn_get_str2' mangled-name='gnutls_x509_dn_get_str2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_dn_get_str2@@GNUTLS_3_4'>
- <parameter type-id='type-id-1011' name='dn'/>
- <parameter type-id='type-id-275' name='str'/>
+ <parameter type-id='type-id-1020' name='dn'/>
+ <parameter type-id='type-id-278' name='str'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_dn_get_str' mangled-name='gnutls_x509_dn_get_str' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_dn_get_str@@GNUTLS_3_4'>
- <parameter type-id='type-id-1011' name='dn'/>
- <parameter type-id='type-id-275' name='str'/>
+ <parameter type-id='type-id-1020' name='dn'/>
+ <parameter type-id='type-id-278' name='str'/>
<return type-id='type-id-22'/>
</function-decl>
- <class-decl name='gnutls_x509_ava_st' size-in-bits='320' is-struct='yes' visibility='default' id='type-id-1019'>
+ <class-decl name='gnutls_x509_ava_st' size-in-bits='320' is-struct='yes' visibility='default' id='type-id-1028'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='oid' type-id='type-id-62' visibility='default'/>
</data-member>
@@ -15882,63 +16007,63 @@
<var-decl name='value_tag' type-id='type-id-38' visibility='default'/>
</data-member>
</class-decl>
- <typedef-decl name='gnutls_x509_ava_st' type-id='type-id-1019' id='type-id-1020'/>
- <pointer-type-def type-id='type-id-1020' size-in-bits='64' id='type-id-1021'/>
+ <typedef-decl name='gnutls_x509_ava_st' type-id='type-id-1028' id='type-id-1029'/>
+ <pointer-type-def type-id='type-id-1029' size-in-bits='64' id='type-id-1030'/>
<function-decl name='gnutls_x509_dn_get_rdn_ava' mangled-name='gnutls_x509_dn_get_rdn_ava' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_dn_get_rdn_ava@@GNUTLS_3_4'>
- <parameter type-id='type-id-1011' name='dn'/>
+ <parameter type-id='type-id-1020' name='dn'/>
<parameter type-id='type-id-22' name='irdn'/>
<parameter type-id='type-id-22' name='iava'/>
- <parameter type-id='type-id-1021' name='ava'/>
+ <parameter type-id='type-id-1030' name='ava'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_dn_export2' mangled-name='gnutls_x509_dn_export2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_dn_export2@@GNUTLS_3_4'>
- <parameter type-id='type-id-1011' name='dn'/>
- <parameter type-id='type-id-421' name='format'/>
- <parameter type-id='type-id-275' name='out'/>
+ <parameter type-id='type-id-1020' name='dn'/>
+ <parameter type-id='type-id-424' name='format'/>
+ <parameter type-id='type-id-278' name='out'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_dn_export' mangled-name='gnutls_x509_dn_export' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_dn_export@@GNUTLS_3_4'>
- <parameter type-id='type-id-1011' name='dn'/>
- <parameter type-id='type-id-421' name='format'/>
+ <parameter type-id='type-id-1020' name='dn'/>
+ <parameter type-id='type-id-424' name='format'/>
<parameter type-id='type-id-101' name='output_data'/>
- <parameter type-id='type-id-422' name='output_data_size'/>
+ <parameter type-id='type-id-425' name='output_data_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_dn_deinit' mangled-name='gnutls_x509_dn_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_dn_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-1011' name='dn'/>
+ <parameter type-id='type-id-1020' name='dn'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_x509_dn_import' mangled-name='gnutls_x509_dn_import' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_dn_import@@GNUTLS_3_4'>
- <parameter type-id='type-id-1011' name='dn'/>
+ <parameter type-id='type-id-1020' name='dn'/>
<parameter type-id='type-id-57' name='data'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_dn_init' mangled-name='gnutls_x509_dn_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_dn_init@@GNUTLS_3_4'>
- <parameter type-id='type-id-1012' name='dn'/>
+ <parameter type-id='type-id-1021' name='dn'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_dn_set_str' mangled-name='gnutls_x509_dn_set_str' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_dn_set_str@@GNUTLS_3_4'>
- <parameter type-id='type-id-1011' name='dn'/>
+ <parameter type-id='type-id-1020' name='dn'/>
<parameter type-id='type-id-27' name='str'/>
- <parameter type-id='type-id-426' name='err'/>
+ <parameter type-id='type-id-429' name='err'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crq_set_dn' mangled-name='gnutls_x509_crq_set_dn' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crq_set_dn@@GNUTLS_3_4'>
- <parameter type-id='type-id-768' name='crq'/>
+ <parameter type-id='type-id-771' name='crq'/>
<parameter type-id='type-id-27' name='dn'/>
- <parameter type-id='type-id-426' name='err'/>
+ <parameter type-id='type-id-429' name='err'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_set_issuer_dn' mangled-name='gnutls_x509_crt_set_issuer_dn' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_issuer_dn@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
+ <parameter type-id='type-id-470' name='crt'/>
<parameter type-id='type-id-27' name='dn'/>
- <parameter type-id='type-id-426' name='err'/>
+ <parameter type-id='type-id-429' name='err'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_set_dn' mangled-name='gnutls_x509_crt_set_dn' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_dn@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
+ <parameter type-id='type-id-470' name='crt'/>
<parameter type-id='type-id-27' name='dn'/>
- <parameter type-id='type-id-426' name='err'/>
+ <parameter type-id='type-id-429' name='err'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='asn1_read_node_value' mangled-name='asn1_read_node_value' visibility='default' binding='global' size-in-bits='64'>
@@ -15954,123 +16079,123 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='x509_write.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='x509_write.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
<function-decl name='gnutls_x509_crt_set_spki' mangled-name='gnutls_x509_crt_set_spki' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_spki@@GNUTLS_3_6_0'>
- <parameter type-id='type-id-467' name='crt'/>
- <parameter type-id='type-id-758' name='spki'/>
+ <parameter type-id='type-id-470' name='crt'/>
+ <parameter type-id='type-id-761' name='spki'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
- <qualified-type-def type-id='type-id-1013' const='yes' id='type-id-1022'/>
- <pointer-type-def type-id='type-id-1022' size-in-bits='64' id='type-id-1023'/>
+ <qualified-type-def type-id='type-id-1022' const='yes' id='type-id-1031'/>
+ <pointer-type-def type-id='type-id-1031' size-in-bits='64' id='type-id-1032'/>
<function-decl name='gnutls_x509_crt_set_policy' mangled-name='gnutls_x509_crt_set_policy' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_policy@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
- <parameter type-id='type-id-1023' name='policy'/>
+ <parameter type-id='type-id-470' name='crt'/>
+ <parameter type-id='type-id-1032' name='policy'/>
<parameter type-id='type-id-10' name='critical'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_set_authority_info_access' mangled-name='gnutls_x509_crt_set_authority_info_access' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_authority_info_access@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
+ <parameter type-id='type-id-470' name='crt'/>
<parameter type-id='type-id-22' name='what'/>
- <parameter type-id='type-id-275' name='data'/>
+ <parameter type-id='type-id-278' name='data'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_privkey_sign' mangled-name='gnutls_x509_crt_privkey_sign' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_privkey_sign@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
- <parameter type-id='type-id-467' name='issuer'/>
- <parameter type-id='type-id-401' name='issuer_key'/>
- <parameter type-id='type-id-211' name='dig'/>
+ <parameter type-id='type-id-470' name='crt'/>
+ <parameter type-id='type-id-470' name='issuer'/>
+ <parameter type-id='type-id-404' name='issuer_key'/>
+ <parameter type-id='type-id-212' name='dig'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_set_key_purpose_oid' mangled-name='gnutls_x509_crt_set_key_purpose_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_key_purpose_oid@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-101' name='oid'/>
<parameter type-id='type-id-10' name='critical'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_set_authority_key_id' mangled-name='gnutls_x509_crt_set_authority_key_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_authority_key_id@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-101' name='id'/>
<parameter type-id='type-id-99' name='id_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_set_subject_key_id' mangled-name='gnutls_x509_crt_set_subject_key_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_subject_key_id@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-101' name='id'/>
<parameter type-id='type-id-99' name='id_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_cpy_crl_dist_points' mangled-name='gnutls_x509_crt_cpy_crl_dist_points' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_cpy_crl_dist_points@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='dst'/>
- <parameter type-id='type-id-467' name='src'/>
+ <parameter type-id='type-id-470' name='dst'/>
+ <parameter type-id='type-id-470' name='src'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_set_crl_dist_points2' mangled-name='gnutls_x509_crt_set_crl_dist_points2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_crl_dist_points2@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
- <parameter type-id='type-id-975' name='type'/>
+ <parameter type-id='type-id-470' name='crt'/>
+ <parameter type-id='type-id-984' name='type'/>
<parameter type-id='type-id-101' name='data'/>
<parameter type-id='type-id-10' name='data_size'/>
<parameter type-id='type-id-10' name='reason_flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_set_crl_dist_points' mangled-name='gnutls_x509_crt_set_crl_dist_points' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_crl_dist_points@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
- <parameter type-id='type-id-975' name='type'/>
+ <parameter type-id='type-id-470' name='crt'/>
+ <parameter type-id='type-id-984' name='type'/>
<parameter type-id='type-id-101' name='data_string'/>
<parameter type-id='type-id-10' name='reason_flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_set_subject_unique_id' mangled-name='gnutls_x509_crt_set_subject_unique_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_subject_unique_id@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-101' name='id'/>
<parameter type-id='type-id-99' name='id_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_set_issuer_unique_id' mangled-name='gnutls_x509_crt_set_issuer_unique_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_issuer_unique_id@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-101' name='id'/>
<parameter type-id='type-id-99' name='id_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_set_serial' mangled-name='gnutls_x509_crt_set_serial' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_serial@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-101' name='serial'/>
<parameter type-id='type-id-99' name='serial_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_set_expiration_time' mangled-name='gnutls_x509_crt_set_expiration_time' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_expiration_time@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-17' name='exp_time'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_set_activation_time' mangled-name='gnutls_x509_crt_set_activation_time' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_activation_time@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-17' name='exp_time'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_sign' mangled-name='gnutls_x509_crt_sign' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_sign@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
- <parameter type-id='type-id-467' name='issuer'/>
- <parameter type-id='type-id-383' name='issuer_key'/>
+ <parameter type-id='type-id-470' name='crt'/>
+ <parameter type-id='type-id-470' name='issuer'/>
+ <parameter type-id='type-id-386' name='issuer_key'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_sign2' mangled-name='gnutls_x509_crt_sign2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_sign2@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
- <parameter type-id='type-id-467' name='issuer'/>
- <parameter type-id='type-id-383' name='issuer_key'/>
- <parameter type-id='type-id-211' name='dig'/>
+ <parameter type-id='type-id-470' name='crt'/>
+ <parameter type-id='type-id-470' name='issuer'/>
+ <parameter type-id='type-id-386' name='issuer_key'/>
+ <parameter type-id='type-id-212' name='dig'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_set_private_key_usage_period' mangled-name='gnutls_x509_crt_set_private_key_usage_period' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_private_key_usage_period@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
+ <parameter type-id='type-id-470' name='crt'/>
<parameter type-id='type-id-17' name='activation'/>
<parameter type-id='type-id-17' name='expiration'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_set_proxy' mangled-name='gnutls_x509_crt_set_proxy' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_proxy@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
+ <parameter type-id='type-id-470' name='crt'/>
<parameter type-id='type-id-22' name='pathLenConstraint'/>
<parameter type-id='type-id-27' name='policyLanguage'/>
<parameter type-id='type-id-27' name='policy'/>
@@ -16078,7 +16203,7 @@
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_set_issuer_alt_othername' mangled-name='gnutls_x509_crt_set_issuer_alt_othername' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_issuer_alt_othername@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
+ <parameter type-id='type-id-470' name='crt'/>
<parameter type-id='type-id-27' name='oid'/>
<parameter type-id='type-id-101' name='data'/>
<parameter type-id='type-id-10' name='data_size'/>
@@ -16086,7 +16211,7 @@
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_set_subject_alt_othername' mangled-name='gnutls_x509_crt_set_subject_alt_othername' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_subject_alt_othername@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
+ <parameter type-id='type-id-470' name='crt'/>
<parameter type-id='type-id-27' name='oid'/>
<parameter type-id='type-id-101' name='data'/>
<parameter type-id='type-id-10' name='data_size'/>
@@ -16094,50 +16219,50 @@
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_set_issuer_alt_name' mangled-name='gnutls_x509_crt_set_issuer_alt_name' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_issuer_alt_name@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
- <parameter type-id='type-id-975' name='type'/>
+ <parameter type-id='type-id-470' name='crt'/>
+ <parameter type-id='type-id-984' name='type'/>
<parameter type-id='type-id-101' name='data'/>
<parameter type-id='type-id-10' name='data_size'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_set_subject_alt_name' mangled-name='gnutls_x509_crt_set_subject_alt_name' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_subject_alt_name@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
- <parameter type-id='type-id-975' name='type'/>
+ <parameter type-id='type-id-470' name='crt'/>
+ <parameter type-id='type-id-984' name='type'/>
<parameter type-id='type-id-101' name='data'/>
<parameter type-id='type-id-10' name='data_size'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_set_subject_alternative_name' mangled-name='gnutls_x509_crt_set_subject_alternative_name' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_subject_alternative_name@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
- <parameter type-id='type-id-975' name='type'/>
+ <parameter type-id='type-id-470' name='crt'/>
+ <parameter type-id='type-id-984' name='type'/>
<parameter type-id='type-id-27' name='data_string'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_set_inhibit_anypolicy' mangled-name='gnutls_x509_crt_set_inhibit_anypolicy' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_inhibit_anypolicy@@GNUTLS_3_6_0'>
- <parameter type-id='type-id-467' name='crt'/>
+ <parameter type-id='type-id-470' name='crt'/>
<parameter type-id='type-id-10' name='skipcerts'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_set_key_usage' mangled-name='gnutls_x509_crt_set_key_usage' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_key_usage@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
+ <parameter type-id='type-id-470' name='crt'/>
<parameter type-id='type-id-10' name='skipcerts'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_set_ca_status' mangled-name='gnutls_x509_crt_set_ca_status' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_ca_status@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
+ <parameter type-id='type-id-470' name='crt'/>
<parameter type-id='type-id-10' name='ca'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_set_basic_constraints' mangled-name='gnutls_x509_crt_set_basic_constraints' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_basic_constraints@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
+ <parameter type-id='type-id-470' name='crt'/>
<parameter type-id='type-id-10' name='ca'/>
<parameter type-id='type-id-22' name='pathLenConstraint'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_set_extension_by_oid' mangled-name='gnutls_x509_crt_set_extension_by_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_extension_by_oid@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
+ <parameter type-id='type-id-470' name='crt'/>
<parameter type-id='type-id-27' name='oid'/>
<parameter type-id='type-id-101' name='buf'/>
<parameter type-id='type-id-99' name='sizeof_buf'/>
@@ -16145,35 +16270,35 @@
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_set_crq_extensions' mangled-name='gnutls_x509_crt_set_crq_extensions' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_crq_extensions@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
- <parameter type-id='type-id-768' name='crq'/>
+ <parameter type-id='type-id-470' name='crt'/>
+ <parameter type-id='type-id-771' name='crq'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_set_crq' mangled-name='gnutls_x509_crt_set_crq' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_crq@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
- <parameter type-id='type-id-768' name='crq'/>
+ <parameter type-id='type-id-470' name='crt'/>
+ <parameter type-id='type-id-771' name='crq'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_set_key' mangled-name='gnutls_x509_crt_set_key' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_key@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
- <parameter type-id='type-id-383' name='key'/>
+ <parameter type-id='type-id-470' name='crt'/>
+ <parameter type-id='type-id-386' name='key'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_set_version' mangled-name='gnutls_x509_crt_set_version' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_version@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
+ <parameter type-id='type-id-470' name='crt'/>
<parameter type-id='type-id-10' name='version'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_set_proxy_dn' mangled-name='gnutls_x509_crt_set_proxy_dn' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_proxy_dn@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
- <parameter type-id='type-id-467' name='eecrt'/>
+ <parameter type-id='type-id-470' name='crt'/>
+ <parameter type-id='type-id-470' name='eecrt'/>
<parameter type-id='type-id-10' name='raw_flag'/>
<parameter type-id='type-id-101' name='name'/>
<parameter type-id='type-id-10' name='sizeof_name'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_set_issuer_dn_by_oid' mangled-name='gnutls_x509_crt_set_issuer_dn_by_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_issuer_dn_by_oid@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
+ <parameter type-id='type-id-470' name='crt'/>
<parameter type-id='type-id-27' name='oid'/>
<parameter type-id='type-id-10' name='raw_flag'/>
<parameter type-id='type-id-101' name='name'/>
@@ -16181,7 +16306,7 @@
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_set_dn_by_oid' mangled-name='gnutls_x509_crt_set_dn_by_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_dn_by_oid@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
+ <parameter type-id='type-id-470' name='crt'/>
<parameter type-id='type-id-27' name='oid'/>
<parameter type-id='type-id-10' name='raw_flag'/>
<parameter type-id='type-id-101' name='name'/>
@@ -16189,8 +16314,8 @@
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_set_crq_extension_by_oid' mangled-name='gnutls_x509_crt_set_crq_extension_by_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_crq_extension_by_oid@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
- <parameter type-id='type-id-768' name='crq'/>
+ <parameter type-id='type-id-470' name='crt'/>
+ <parameter type-id='type-id-771' name='crq'/>
<parameter type-id='type-id-27' name='oid'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
@@ -16241,16 +16366,16 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='name_constraints.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
- <class-decl name='gnutls_name_constraints_st' size-in-bits='128' is-struct='yes' visibility='default' id='type-id-1024'>
+ <abi-instr version='1.0' address-size='64' path='name_constraints.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
+ <class-decl name='gnutls_name_constraints_st' size-in-bits='128' is-struct='yes' visibility='default' id='type-id-1033'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='permitted' type-id='type-id-1025' visibility='default'/>
+ <var-decl name='permitted' type-id='type-id-1034' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='excluded' type-id='type-id-1025' visibility='default'/>
+ <var-decl name='excluded' type-id='type-id-1034' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='name_constraints_node_st' size-in-bits='256' is-struct='yes' visibility='default' id='type-id-1026'>
+ <class-decl name='name_constraints_node_st' size-in-bits='256' is-struct='yes' visibility='default' id='type-id-1035'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='type' type-id='type-id-10' visibility='default'/>
</data-member>
@@ -16258,75 +16383,75 @@
<var-decl name='name' type-id='type-id-62' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='next' type-id='type-id-1025' visibility='default'/>
+ <var-decl name='next' type-id='type-id-1034' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-1026' size-in-bits='64' id='type-id-1025'/>
- <pointer-type-def type-id='type-id-1024' size-in-bits='64' id='type-id-1027'/>
- <typedef-decl name='gnutls_x509_name_constraints_t' type-id='type-id-1027' id='type-id-1028'/>
+ <pointer-type-def type-id='type-id-1035' size-in-bits='64' id='type-id-1034'/>
+ <pointer-type-def type-id='type-id-1033' size-in-bits='64' id='type-id-1036'/>
+ <typedef-decl name='gnutls_x509_name_constraints_t' type-id='type-id-1036' id='type-id-1037'/>
<function-decl name='gnutls_x509_name_constraints_check_crt' mangled-name='gnutls_x509_name_constraints_check_crt' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_name_constraints_check_crt@@GNUTLS_3_4'>
- <parameter type-id='type-id-1028' name='nc'/>
- <parameter type-id='type-id-975' name='type'/>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-1037' name='nc'/>
+ <parameter type-id='type-id-984' name='type'/>
+ <parameter type-id='type-id-470' name='cert'/>
<return type-id='type-id-10'/>
</function-decl>
<function-decl name='gnutls_x509_name_constraints_check' mangled-name='gnutls_x509_name_constraints_check' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_name_constraints_check@@GNUTLS_3_4'>
- <parameter type-id='type-id-1028' name='nc'/>
- <parameter type-id='type-id-975' name='type'/>
+ <parameter type-id='type-id-1037' name='nc'/>
+ <parameter type-id='type-id-984' name='type'/>
<parameter type-id='type-id-57' name='name'/>
<return type-id='type-id-10'/>
</function-decl>
<function-decl name='gnutls_x509_crt_set_name_constraints' mangled-name='gnutls_x509_crt_set_name_constraints' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_name_constraints@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
- <parameter type-id='type-id-1028' name='nc'/>
+ <parameter type-id='type-id-470' name='crt'/>
+ <parameter type-id='type-id-1037' name='nc'/>
<parameter type-id='type-id-10' name='critical'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_name_constraints_add_excluded' mangled-name='gnutls_x509_name_constraints_add_excluded' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_name_constraints_add_excluded@@GNUTLS_3_4'>
- <parameter type-id='type-id-1028' name='nc'/>
- <parameter type-id='type-id-975' name='type'/>
+ <parameter type-id='type-id-1037' name='nc'/>
+ <parameter type-id='type-id-984' name='type'/>
<parameter type-id='type-id-57' name='name'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_name_constraints_add_permitted' mangled-name='gnutls_x509_name_constraints_add_permitted' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_name_constraints_add_permitted@@GNUTLS_3_4'>
- <parameter type-id='type-id-1028' name='nc'/>
- <parameter type-id='type-id-975' name='type'/>
+ <parameter type-id='type-id-1037' name='nc'/>
+ <parameter type-id='type-id-984' name='type'/>
<parameter type-id='type-id-57' name='name'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='_gnutls_x509_name_constraints_merge' mangled-name='_gnutls_x509_name_constraints_merge' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls_x509_name_constraints_merge@@GNUTLS_PRIVATE_3_4'>
- <parameter type-id='type-id-1028' name='nc'/>
- <parameter type-id='type-id-1028' name='nc2'/>
+ <parameter type-id='type-id-1037' name='nc'/>
+ <parameter type-id='type-id-1037' name='nc2'/>
<return type-id='type-id-22'/>
</function-decl>
- <pointer-type-def type-id='type-id-1028' size-in-bits='64' id='type-id-1029'/>
+ <pointer-type-def type-id='type-id-1037' size-in-bits='64' id='type-id-1038'/>
<function-decl name='gnutls_x509_name_constraints_init' mangled-name='gnutls_x509_name_constraints_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_name_constraints_init@@GNUTLS_3_4'>
- <parameter type-id='type-id-1029' name='nc'/>
+ <parameter type-id='type-id-1038' name='nc'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_name_constraints_deinit' mangled-name='gnutls_x509_name_constraints_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_name_constraints_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-1028' name='nc'/>
+ <parameter type-id='type-id-1037' name='nc'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_name_constraints' mangled-name='gnutls_x509_crt_get_name_constraints' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_name_constraints@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
- <parameter type-id='type-id-1028' name='nc'/>
+ <parameter type-id='type-id-470' name='crt'/>
+ <parameter type-id='type-id-1037' name='nc'/>
<parameter type-id='type-id-10' name='flags'/>
- <parameter type-id='type-id-419' name='critical'/>
+ <parameter type-id='type-id-422' name='critical'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_name_constraints_get_permitted' mangled-name='gnutls_x509_name_constraints_get_permitted' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_name_constraints_get_permitted@@GNUTLS_3_4'>
- <parameter type-id='type-id-1028' name='nc'/>
+ <parameter type-id='type-id-1037' name='nc'/>
<parameter type-id='type-id-10' name='idx'/>
- <parameter type-id='type-id-419' name='type'/>
- <parameter type-id='type-id-275' name='name'/>
+ <parameter type-id='type-id-422' name='type'/>
+ <parameter type-id='type-id-278' name='name'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_name_constraints_get_excluded' mangled-name='gnutls_x509_name_constraints_get_excluded' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_name_constraints_get_excluded@@GNUTLS_3_4'>
- <parameter type-id='type-id-1028' name='nc'/>
+ <parameter type-id='type-id-1037' name='nc'/>
<parameter type-id='type-id-10' name='idx'/>
- <parameter type-id='type-id-419' name='type'/>
- <parameter type-id='type-id-275' name='name'/>
+ <parameter type-id='type-id-422' name='type'/>
+ <parameter type-id='type-id-278' name='name'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_subject_alt_name2' mangled-name='gnutls_x509_crt_get_subject_alt_name2' visibility='default' binding='global' size-in-bits='64'>
@@ -16345,116 +16470,116 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='verify-high.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
- <class-decl name='node_st' size-in-bits='384' is-struct='yes' visibility='default' id='type-id-459'>
+ <abi-instr version='1.0' address-size='64' path='verify-high.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
+ <class-decl name='node_st' size-in-bits='384' is-struct='yes' visibility='default' id='type-id-462'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='trusted_cas' type-id='type-id-458' visibility='default'/>
+ <var-decl name='trusted_cas' type-id='type-id-461' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='trusted_ca_size' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='named_certs' type-id='type-id-1030' visibility='default'/>
+ <var-decl name='named_certs' type-id='type-id-1039' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
<var-decl name='named_cert_size' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='crls' type-id='type-id-731' visibility='default'/>
+ <var-decl name='crls' type-id='type-id-734' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
<var-decl name='crl_size' type-id='type-id-10' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='named_cert_st' size-in-bits='2176' is-struct='yes' visibility='default' id='type-id-1031'>
+ <class-decl name='named_cert_st' size-in-bits='2176' is-struct='yes' visibility='default' id='type-id-1040'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='cert' type-id='type-id-467' visibility='default'/>
+ <var-decl name='cert' type-id='type-id-470' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='name' type-id='type-id-316' visibility='default'/>
+ <var-decl name='name' type-id='type-id-319' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2112'>
<var-decl name='name_size' type-id='type-id-10' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-1031' size-in-bits='64' id='type-id-1030'/>
- <typedef-decl name='gnutls_verify_output_function' type-id='type-id-1032' id='type-id-1033'/>
- <pointer-type-def type-id='type-id-1033' size-in-bits='64' id='type-id-1034'/>
+ <pointer-type-def type-id='type-id-1040' size-in-bits='64' id='type-id-1039'/>
+ <typedef-decl name='gnutls_verify_output_function' type-id='type-id-1041' id='type-id-1042'/>
+ <pointer-type-def type-id='type-id-1042' size-in-bits='64' id='type-id-1043'/>
<function-decl name='gnutls_x509_trust_list_verify_named_crt' mangled-name='gnutls_x509_trust_list_verify_named_crt' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_trust_list_verify_named_crt@@GNUTLS_3_4'>
- <parameter type-id='type-id-435' name='list'/>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-438' name='list'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-101' name='name'/>
<parameter type-id='type-id-99' name='name_size'/>
<parameter type-id='type-id-10' name='flags'/>
- <parameter type-id='type-id-419' name='voutput'/>
- <parameter type-id='type-id-1034' name='func'/>
+ <parameter type-id='type-id-422' name='voutput'/>
+ <parameter type-id='type-id-1043' name='func'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_trust_list_verify_crt2' mangled-name='gnutls_x509_trust_list_verify_crt2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_trust_list_verify_crt2@@GNUTLS_3_4'>
- <parameter type-id='type-id-435' name='list'/>
- <parameter type-id='type-id-458' name='cert_list'/>
+ <parameter type-id='type-id-438' name='list'/>
+ <parameter type-id='type-id-461' name='cert_list'/>
<parameter type-id='type-id-10' name='cert_list_size'/>
- <parameter type-id='type-id-172' name='data'/>
+ <parameter type-id='type-id-173' name='data'/>
<parameter type-id='type-id-10' name='elements'/>
<parameter type-id='type-id-10' name='flags'/>
- <parameter type-id='type-id-419' name='voutput'/>
- <parameter type-id='type-id-1034' name='func'/>
+ <parameter type-id='type-id-422' name='voutput'/>
+ <parameter type-id='type-id-1043' name='func'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_trust_list_verify_crt' mangled-name='gnutls_x509_trust_list_verify_crt' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_trust_list_verify_crt@@GNUTLS_3_4'>
- <parameter type-id='type-id-435' name='list'/>
- <parameter type-id='type-id-458' name='cert_list'/>
+ <parameter type-id='type-id-438' name='list'/>
+ <parameter type-id='type-id-461' name='cert_list'/>
<parameter type-id='type-id-10' name='cert_list_size'/>
<parameter type-id='type-id-10' name='flags'/>
- <parameter type-id='type-id-419' name='voutput'/>
- <parameter type-id='type-id-1034' name='func'/>
+ <parameter type-id='type-id-422' name='voutput'/>
+ <parameter type-id='type-id-1043' name='func'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_trust_list_get_issuer_by_subject_key_id' mangled-name='gnutls_x509_trust_list_get_issuer_by_subject_key_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_trust_list_get_issuer_by_subject_key_id@@GNUTLS_3_4'>
- <parameter type-id='type-id-435' name='list'/>
+ <parameter type-id='type-id-438' name='list'/>
<parameter type-id='type-id-57' name='dn'/>
<parameter type-id='type-id-57' name='spki'/>
- <parameter type-id='type-id-458' name='issuer'/>
+ <parameter type-id='type-id-461' name='issuer'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_trust_list_get_issuer_by_dn' mangled-name='gnutls_x509_trust_list_get_issuer_by_dn' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_trust_list_get_issuer_by_dn@@GNUTLS_3_4'>
- <parameter type-id='type-id-435' name='list'/>
+ <parameter type-id='type-id-438' name='list'/>
<parameter type-id='type-id-57' name='dn'/>
- <parameter type-id='type-id-458' name='issuer'/>
+ <parameter type-id='type-id-461' name='issuer'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_trust_list_get_issuer' mangled-name='gnutls_x509_trust_list_get_issuer' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_trust_list_get_issuer@@GNUTLS_3_4'>
- <parameter type-id='type-id-435' name='list'/>
- <parameter type-id='type-id-467' name='cert'/>
- <parameter type-id='type-id-458' name='issuer'/>
+ <parameter type-id='type-id-438' name='list'/>
+ <parameter type-id='type-id-470' name='cert'/>
+ <parameter type-id='type-id-461' name='issuer'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_trust_list_add_crls' mangled-name='gnutls_x509_trust_list_add_crls' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_trust_list_add_crls@@GNUTLS_3_4'>
- <parameter type-id='type-id-435' name='list'/>
- <parameter type-id='type-id-1009' name='crl_list'/>
+ <parameter type-id='type-id-438' name='list'/>
+ <parameter type-id='type-id-1018' name='crl_list'/>
<parameter type-id='type-id-10' name='crl_size'/>
<parameter type-id='type-id-10' name='flags'/>
<parameter type-id='type-id-10' name='verification_flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_trust_list_add_named_crt' mangled-name='gnutls_x509_trust_list_add_named_crt' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_trust_list_add_named_crt@@GNUTLS_3_4'>
- <parameter type-id='type-id-435' name='list'/>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-438' name='list'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-101' name='name'/>
<parameter type-id='type-id-99' name='name_size'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_trust_list_remove_cas' mangled-name='gnutls_x509_trust_list_remove_cas' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_trust_list_remove_cas@@GNUTLS_3_4'>
- <parameter type-id='type-id-435' name='list'/>
- <parameter type-id='type-id-1007' name='clist'/>
+ <parameter type-id='type-id-438' name='list'/>
+ <parameter type-id='type-id-1016' name='clist'/>
<parameter type-id='type-id-10' name='clist_size'/>
<return type-id='type-id-22'/>
</function-decl>
- <class-decl name='gnutls_x509_trust_list_iter' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-1035'>
+ <class-decl name='gnutls_x509_trust_list_iter' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-1044'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='node_index' type-id='type-id-10' visibility='default'/>
</data-member>
@@ -16462,7 +16587,7 @@
<var-decl name='ca_index' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='pkcs11_list' type-id='type-id-922' visibility='default'/>
+ <var-decl name='pkcs11_list' type-id='type-id-925' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
<var-decl name='pkcs11_index' type-id='type-id-10' visibility='default'/>
@@ -16471,40 +16596,37 @@
<var-decl name='pkcs11_size' type-id='type-id-10' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-1035' size-in-bits='64' id='type-id-1036'/>
- <typedef-decl name='gnutls_x509_trust_list_iter_t' type-id='type-id-1036' id='type-id-1037'/>
+ <pointer-type-def type-id='type-id-1044' size-in-bits='64' id='type-id-1045'/>
+ <typedef-decl name='gnutls_x509_trust_list_iter_t' type-id='type-id-1045' id='type-id-1046'/>
<function-decl name='gnutls_x509_trust_list_iter_deinit' mangled-name='gnutls_x509_trust_list_iter_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_trust_list_iter_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-1037' name='iter'/>
+ <parameter type-id='type-id-1046' name='iter'/>
<return type-id='type-id-111'/>
</function-decl>
- <pointer-type-def type-id='type-id-1037' size-in-bits='64' id='type-id-1038'/>
+ <pointer-type-def type-id='type-id-1046' size-in-bits='64' id='type-id-1047'/>
<function-decl name='gnutls_x509_trust_list_iter_get_ca' mangled-name='gnutls_x509_trust_list_iter_get_ca' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_trust_list_iter_get_ca@@GNUTLS_3_4'>
- <parameter type-id='type-id-435' name='list'/>
- <parameter type-id='type-id-1038' name='iter'/>
- <parameter type-id='type-id-458' name='crt'/>
+ <parameter type-id='type-id-438' name='list'/>
+ <parameter type-id='type-id-1047' name='iter'/>
+ <parameter type-id='type-id-461' name='crt'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_trust_list_add_cas' mangled-name='gnutls_x509_trust_list_add_cas' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_trust_list_add_cas@@GNUTLS_3_4'>
- <parameter type-id='type-id-435' name='list'/>
- <parameter type-id='type-id-1007' name='clist'/>
+ <parameter type-id='type-id-438' name='list'/>
+ <parameter type-id='type-id-1016' name='clist'/>
<parameter type-id='type-id-10' name='clist_size'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_trust_list_deinit' mangled-name='gnutls_x509_trust_list_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_trust_list_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-435' name='list'/>
+ <parameter type-id='type-id-438' name='list'/>
<parameter type-id='type-id-10' name='all'/>
<return type-id='type-id-111'/>
</function-decl>
- <pointer-type-def type-id='type-id-435' size-in-bits='64' id='type-id-1039'/>
+ <pointer-type-def type-id='type-id-438' size-in-bits='64' id='type-id-1048'/>
<function-decl name='gnutls_x509_trust_list_init' mangled-name='gnutls_x509_trust_list_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_trust_list_init@@GNUTLS_3_4'>
- <parameter type-id='type-id-1039' name='list'/>
+ <parameter type-id='type-id-1048' name='list'/>
<parameter type-id='type-id-10' name='size'/>
<return type-id='type-id-22'/>
</function-decl>
- <function-decl name='hash_pjw_bare' mangled-name='hash_pjw_bare' visibility='default' binding='global' size-in-bits='64'>
- <return type-id='type-id-111'/>
- </function-decl>
<function-decl name='_gnutls_x509_crt_check_revocation' mangled-name='_gnutls_x509_crt_check_revocation' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -16538,50 +16660,50 @@
<function-decl name='gnutls_x509_crt_get_dn2' mangled-name='gnutls_x509_crt_get_dn2' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-type size-in-bits='64' id='type-id-1032'>
- <parameter type-id='type-id-467'/>
- <parameter type-id='type-id-467'/>
- <parameter type-id='type-id-730'/>
+ <function-type size-in-bits='64' id='type-id-1041'>
+ <parameter type-id='type-id-470'/>
+ <parameter type-id='type-id-470'/>
+ <parameter type-id='type-id-733'/>
<parameter type-id='type-id-10'/>
<return type-id='type-id-22'/>
</function-type>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='verify-high2.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='verify-high2.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
<function-decl name='gnutls_x509_trust_list_remove_trust_file' mangled-name='gnutls_x509_trust_list_remove_trust_file' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_trust_list_remove_trust_file@@GNUTLS_3_4'>
- <parameter type-id='type-id-435' name='list'/>
+ <parameter type-id='type-id-438' name='list'/>
<parameter type-id='type-id-27' name='ca_file'/>
- <parameter type-id='type-id-421' name='type'/>
+ <parameter type-id='type-id-424' name='type'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_trust_list_add_trust_dir' mangled-name='gnutls_x509_trust_list_add_trust_dir' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_trust_list_add_trust_dir@@GNUTLS_3_4'>
- <parameter type-id='type-id-435' name='list'/>
+ <parameter type-id='type-id-438' name='list'/>
<parameter type-id='type-id-27' name='ca_dir'/>
<parameter type-id='type-id-27' name='crl_dir'/>
- <parameter type-id='type-id-421' name='type'/>
+ <parameter type-id='type-id-424' name='type'/>
<parameter type-id='type-id-10' name='tl_flags'/>
<parameter type-id='type-id-10' name='tl_vflags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_trust_list_add_trust_file' mangled-name='gnutls_x509_trust_list_add_trust_file' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_trust_list_add_trust_file@@GNUTLS_3_4'>
- <parameter type-id='type-id-435' name='list'/>
+ <parameter type-id='type-id-438' name='list'/>
<parameter type-id='type-id-27' name='ca_file'/>
<parameter type-id='type-id-27' name='crl_file'/>
- <parameter type-id='type-id-421' name='type'/>
+ <parameter type-id='type-id-424' name='type'/>
<parameter type-id='type-id-10' name='tl_flags'/>
<parameter type-id='type-id-10' name='tl_vflags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_trust_list_remove_trust_mem' mangled-name='gnutls_x509_trust_list_remove_trust_mem' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_trust_list_remove_trust_mem@@GNUTLS_3_4'>
- <parameter type-id='type-id-435' name='list'/>
+ <parameter type-id='type-id-438' name='list'/>
<parameter type-id='type-id-57' name='cas'/>
- <parameter type-id='type-id-421' name='type'/>
+ <parameter type-id='type-id-424' name='type'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_trust_list_add_trust_mem' mangled-name='gnutls_x509_trust_list_add_trust_mem' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_trust_list_add_trust_mem@@GNUTLS_3_4'>
- <parameter type-id='type-id-435' name='list'/>
+ <parameter type-id='type-id-438' name='list'/>
<parameter type-id='type-id-57' name='cas'/>
<parameter type-id='type-id-57' name='crls'/>
- <parameter type-id='type-id-421' name='type'/>
+ <parameter type-id='type-id-424' name='type'/>
<parameter type-id='type-id-10' name='tl_flags'/>
<parameter type-id='type-id-10' name='tl_vflags'/>
<return type-id='type-id-22'/>
@@ -16608,82 +16730,82 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='x509_ext.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='x509_ext.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
<function-decl name='gnutls_x509_tlsfeatures_add' mangled-name='gnutls_x509_tlsfeatures_add' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_tlsfeatures_add@@GNUTLS_3_4'>
- <parameter type-id='type-id-973' name='f'/>
+ <parameter type-id='type-id-982' name='f'/>
<parameter type-id='type-id-10' name='feature'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_ext_export_tlsfeatures' mangled-name='gnutls_x509_ext_export_tlsfeatures' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_ext_export_tlsfeatures@@GNUTLS_3_4'>
- <parameter type-id='type-id-973' name='f'/>
- <parameter type-id='type-id-275' name='ext'/>
+ <parameter type-id='type-id-982' name='f'/>
+ <parameter type-id='type-id-278' name='ext'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_ext_import_tlsfeatures' mangled-name='gnutls_x509_ext_import_tlsfeatures' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_ext_import_tlsfeatures@@GNUTLS_3_4'>
<parameter type-id='type-id-57' name='ext'/>
- <parameter type-id='type-id-973' name='f'/>
+ <parameter type-id='type-id-982' name='f'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_ext_deinit' mangled-name='gnutls_x509_ext_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_ext_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-933' name='ext'/>
+ <parameter type-id='type-id-936' name='ext'/>
<return type-id='type-id-111'/>
</function-decl>
- <class-decl name='gnutls_x509_key_purposes_st' size-in-bits='8256' is-struct='yes' visibility='default' id='type-id-1040'>
+ <class-decl name='gnutls_x509_key_purposes_st' size-in-bits='8256' is-struct='yes' visibility='default' id='type-id-1049'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='oid' type-id='type-id-1041' visibility='default'/>
+ <var-decl name='oid' type-id='type-id-1050' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='8192'>
<var-decl name='size' type-id='type-id-10' visibility='default'/>
</data-member>
</class-decl>
- <array-type-def dimensions='1' type-id='type-id-62' size-in-bits='8192' id='type-id-1041'>
+ <array-type-def dimensions='1' type-id='type-id-62' size-in-bits='8192' id='type-id-1050'>
<subrange length='64' type-id='type-id-38' id='type-id-92'/>
</array-type-def>
- <pointer-type-def type-id='type-id-1040' size-in-bits='64' id='type-id-1042'/>
- <typedef-decl name='gnutls_x509_key_purposes_t' type-id='type-id-1042' id='type-id-1043'/>
+ <pointer-type-def type-id='type-id-1049' size-in-bits='64' id='type-id-1051'/>
+ <typedef-decl name='gnutls_x509_key_purposes_t' type-id='type-id-1051' id='type-id-1052'/>
<function-decl name='gnutls_x509_ext_export_key_purposes' mangled-name='gnutls_x509_ext_export_key_purposes' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_ext_export_key_purposes@@GNUTLS_3_4'>
- <parameter type-id='type-id-1043' name='p'/>
- <parameter type-id='type-id-275' name='ext'/>
+ <parameter type-id='type-id-1052' name='p'/>
+ <parameter type-id='type-id-278' name='ext'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_ext_import_key_purposes' mangled-name='gnutls_x509_ext_import_key_purposes' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_ext_import_key_purposes@@GNUTLS_3_4'>
<parameter type-id='type-id-57' name='ext'/>
- <parameter type-id='type-id-1043' name='p'/>
+ <parameter type-id='type-id-1052' name='p'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_key_purpose_get' mangled-name='gnutls_x509_key_purpose_get' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_key_purpose_get@@GNUTLS_3_4'>
- <parameter type-id='type-id-1043' name='p'/>
+ <parameter type-id='type-id-1052' name='p'/>
<parameter type-id='type-id-10' name='idx'/>
- <parameter type-id='type-id-275' name='oid'/>
+ <parameter type-id='type-id-278' name='oid'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_key_purpose_set' mangled-name='gnutls_x509_key_purpose_set' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_key_purpose_set@@GNUTLS_3_4'>
- <parameter type-id='type-id-1043' name='p'/>
+ <parameter type-id='type-id-1052' name='p'/>
<parameter type-id='type-id-27' name='oid'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_key_purpose_deinit' mangled-name='gnutls_x509_key_purpose_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_key_purpose_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-1043' name='p'/>
+ <parameter type-id='type-id-1052' name='p'/>
<return type-id='type-id-111'/>
</function-decl>
- <pointer-type-def type-id='type-id-1043' size-in-bits='64' id='type-id-1044'/>
+ <pointer-type-def type-id='type-id-1052' size-in-bits='64' id='type-id-1053'/>
<function-decl name='gnutls_x509_key_purpose_init' mangled-name='gnutls_x509_key_purpose_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_key_purpose_init@@GNUTLS_3_4'>
- <parameter type-id='type-id-1044' name='p'/>
+ <parameter type-id='type-id-1053' name='p'/>
<return type-id='type-id-22'/>
</function-decl>
- <class-decl name='gnutls_x509_aia_st' size-in-bits='128' is-struct='yes' visibility='default' id='type-id-1045'>
+ <class-decl name='gnutls_x509_aia_st' size-in-bits='128' is-struct='yes' visibility='default' id='type-id-1054'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='aia' type-id='type-id-1046' visibility='default'/>
+ <var-decl name='aia' type-id='type-id-1055' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='size' type-id='type-id-10' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-1047'>
+ <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' visibility='default' id='type-id-1056'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='oid' type-id='type-id-62' visibility='default'/>
</data-member>
@@ -16694,53 +16816,53 @@
<var-decl name='san' type-id='type-id-62' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-1047' size-in-bits='64' id='type-id-1046'/>
- <pointer-type-def type-id='type-id-1045' size-in-bits='64' id='type-id-1048'/>
- <typedef-decl name='gnutls_x509_aia_t' type-id='type-id-1048' id='type-id-1049'/>
+ <pointer-type-def type-id='type-id-1056' size-in-bits='64' id='type-id-1055'/>
+ <pointer-type-def type-id='type-id-1054' size-in-bits='64' id='type-id-1057'/>
+ <typedef-decl name='gnutls_x509_aia_t' type-id='type-id-1057' id='type-id-1058'/>
<function-decl name='gnutls_x509_ext_export_aia' mangled-name='gnutls_x509_ext_export_aia' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_ext_export_aia@@GNUTLS_3_4'>
- <parameter type-id='type-id-1049' name='aia'/>
- <parameter type-id='type-id-275' name='ext'/>
+ <parameter type-id='type-id-1058' name='aia'/>
+ <parameter type-id='type-id-278' name='ext'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_ext_import_aia' mangled-name='gnutls_x509_ext_import_aia' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_ext_import_aia@@GNUTLS_3_4'>
<parameter type-id='type-id-57' name='ext'/>
- <parameter type-id='type-id-1049' name='aia'/>
+ <parameter type-id='type-id-1058' name='aia'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_aia_set' mangled-name='gnutls_x509_aia_set' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_aia_set@@GNUTLS_3_4'>
- <parameter type-id='type-id-1049' name='aia'/>
+ <parameter type-id='type-id-1058' name='aia'/>
<parameter type-id='type-id-27' name='oid'/>
<parameter type-id='type-id-10' name='san_type'/>
<parameter type-id='type-id-57' name='san'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_aia_get' mangled-name='gnutls_x509_aia_get' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_aia_get@@GNUTLS_3_4'>
- <parameter type-id='type-id-1049' name='aia'/>
+ <parameter type-id='type-id-1058' name='aia'/>
<parameter type-id='type-id-10' name='seq'/>
- <parameter type-id='type-id-275' name='oid'/>
- <parameter type-id='type-id-419' name='san_type'/>
- <parameter type-id='type-id-275' name='san'/>
+ <parameter type-id='type-id-278' name='oid'/>
+ <parameter type-id='type-id-422' name='san_type'/>
+ <parameter type-id='type-id-278' name='san'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_aia_deinit' mangled-name='gnutls_x509_aia_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_aia_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-1049' name='aia'/>
+ <parameter type-id='type-id-1058' name='aia'/>
<return type-id='type-id-111'/>
</function-decl>
- <pointer-type-def type-id='type-id-1049' size-in-bits='64' id='type-id-1050'/>
+ <pointer-type-def type-id='type-id-1058' size-in-bits='64' id='type-id-1059'/>
<function-decl name='gnutls_x509_aia_init' mangled-name='gnutls_x509_aia_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_aia_init@@GNUTLS_3_4'>
- <parameter type-id='type-id-1050' name='aia'/>
+ <parameter type-id='type-id-1059' name='aia'/>
<return type-id='type-id-22'/>
</function-decl>
- <class-decl name='gnutls_x509_crl_dist_points_st' size-in-bits='128' is-struct='yes' visibility='default' id='type-id-1051'>
+ <class-decl name='gnutls_x509_crl_dist_points_st' size-in-bits='128' is-struct='yes' visibility='default' id='type-id-1060'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='points' type-id='type-id-1052' visibility='default'/>
+ <var-decl name='points' type-id='type-id-1061' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='size' type-id='type-id-10' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='crl_dist_point_st' size-in-bits='256' is-struct='yes' visibility='default' id='type-id-1053'>
+ <class-decl name='crl_dist_point_st' size-in-bits='256' is-struct='yes' visibility='default' id='type-id-1062'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='type' type-id='type-id-10' visibility='default'/>
</data-member>
@@ -16751,88 +16873,88 @@
<var-decl name='reasons' type-id='type-id-10' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-1053' size-in-bits='64' id='type-id-1052'/>
- <pointer-type-def type-id='type-id-1051' size-in-bits='64' id='type-id-1054'/>
- <typedef-decl name='gnutls_x509_crl_dist_points_t' type-id='type-id-1054' id='type-id-1055'/>
+ <pointer-type-def type-id='type-id-1062' size-in-bits='64' id='type-id-1061'/>
+ <pointer-type-def type-id='type-id-1060' size-in-bits='64' id='type-id-1063'/>
+ <typedef-decl name='gnutls_x509_crl_dist_points_t' type-id='type-id-1063' id='type-id-1064'/>
<function-decl name='gnutls_x509_ext_export_crl_dist_points' mangled-name='gnutls_x509_ext_export_crl_dist_points' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_ext_export_crl_dist_points@@GNUTLS_3_4'>
- <parameter type-id='type-id-1055' name='cdp'/>
- <parameter type-id='type-id-275' name='ext'/>
+ <parameter type-id='type-id-1064' name='cdp'/>
+ <parameter type-id='type-id-278' name='ext'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_ext_import_crl_dist_points' mangled-name='gnutls_x509_ext_import_crl_dist_points' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_ext_import_crl_dist_points@@GNUTLS_3_4'>
<parameter type-id='type-id-57' name='ext'/>
- <parameter type-id='type-id-1055' name='cdp'/>
+ <parameter type-id='type-id-1064' name='cdp'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crl_dist_points_set' mangled-name='gnutls_x509_crl_dist_points_set' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_dist_points_set@@GNUTLS_3_4'>
- <parameter type-id='type-id-1055' name='cdp'/>
- <parameter type-id='type-id-975' name='type'/>
+ <parameter type-id='type-id-1064' name='cdp'/>
+ <parameter type-id='type-id-984' name='type'/>
<parameter type-id='type-id-57' name='san'/>
<parameter type-id='type-id-10' name='reasons'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crl_dist_points_get' mangled-name='gnutls_x509_crl_dist_points_get' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_dist_points_get@@GNUTLS_3_4'>
- <parameter type-id='type-id-1055' name='cdp'/>
+ <parameter type-id='type-id-1064' name='cdp'/>
<parameter type-id='type-id-10' name='seq'/>
- <parameter type-id='type-id-419' name='type'/>
- <parameter type-id='type-id-275' name='san'/>
- <parameter type-id='type-id-419' name='reasons'/>
+ <parameter type-id='type-id-422' name='type'/>
+ <parameter type-id='type-id-278' name='san'/>
+ <parameter type-id='type-id-422' name='reasons'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crl_dist_points_deinit' mangled-name='gnutls_x509_crl_dist_points_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_dist_points_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-1055' name='cdp'/>
+ <parameter type-id='type-id-1064' name='cdp'/>
<return type-id='type-id-111'/>
</function-decl>
- <pointer-type-def type-id='type-id-1055' size-in-bits='64' id='type-id-1056'/>
+ <pointer-type-def type-id='type-id-1064' size-in-bits='64' id='type-id-1065'/>
<function-decl name='gnutls_x509_crl_dist_points_init' mangled-name='gnutls_x509_crl_dist_points_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crl_dist_points_init@@GNUTLS_3_4'>
- <parameter type-id='type-id-1056' name='cdp'/>
+ <parameter type-id='type-id-1065' name='cdp'/>
<return type-id='type-id-22'/>
</function-decl>
- <class-decl name='gnutls_x509_policies_st' size-in-bits='106560' is-struct='yes' visibility='default' id='type-id-1057'>
+ <class-decl name='gnutls_x509_policies_st' size-in-bits='106560' is-struct='yes' visibility='default' id='type-id-1066'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='policy' type-id='type-id-1058' visibility='default'/>
+ <var-decl name='policy' type-id='type-id-1067' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='106496'>
<var-decl name='size' type-id='type-id-10' visibility='default'/>
</data-member>
</class-decl>
- <array-type-def dimensions='1' type-id='type-id-1013' size-in-bits='106496' id='type-id-1058'>
+ <array-type-def dimensions='1' type-id='type-id-1022' size-in-bits='106496' id='type-id-1067'>
<subrange length='64' type-id='type-id-38' id='type-id-92'/>
</array-type-def>
- <pointer-type-def type-id='type-id-1057' size-in-bits='64' id='type-id-1059'/>
- <typedef-decl name='gnutls_x509_policies_t' type-id='type-id-1059' id='type-id-1060'/>
+ <pointer-type-def type-id='type-id-1066' size-in-bits='64' id='type-id-1068'/>
+ <typedef-decl name='gnutls_x509_policies_t' type-id='type-id-1068' id='type-id-1069'/>
<function-decl name='gnutls_x509_ext_export_policies' mangled-name='gnutls_x509_ext_export_policies' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_ext_export_policies@@GNUTLS_3_4'>
- <parameter type-id='type-id-1060' name='policies'/>
- <parameter type-id='type-id-275' name='ext'/>
+ <parameter type-id='type-id-1069' name='policies'/>
+ <parameter type-id='type-id-278' name='ext'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_ext_import_policies' mangled-name='gnutls_x509_ext_import_policies' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_ext_import_policies@@GNUTLS_3_4'>
<parameter type-id='type-id-57' name='ext'/>
- <parameter type-id='type-id-1060' name='policies'/>
+ <parameter type-id='type-id-1069' name='policies'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_policies_set' mangled-name='gnutls_x509_policies_set' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_policies_set@@GNUTLS_3_4'>
- <parameter type-id='type-id-1060' name='policies'/>
- <parameter type-id='type-id-1023' name='policy'/>
+ <parameter type-id='type-id-1069' name='policies'/>
+ <parameter type-id='type-id-1032' name='policy'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_policies_get' mangled-name='gnutls_x509_policies_get' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_policies_get@@GNUTLS_3_4'>
- <parameter type-id='type-id-1060' name='policies'/>
+ <parameter type-id='type-id-1069' name='policies'/>
<parameter type-id='type-id-10' name='seq'/>
- <parameter type-id='type-id-1018' name='policy'/>
+ <parameter type-id='type-id-1027' name='policy'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_policies_deinit' mangled-name='gnutls_x509_policies_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_policies_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-1060' name='policies'/>
+ <parameter type-id='type-id-1069' name='policies'/>
<return type-id='type-id-111'/>
</function-decl>
- <pointer-type-def type-id='type-id-1060' size-in-bits='64' id='type-id-1061'/>
+ <pointer-type-def type-id='type-id-1069' size-in-bits='64' id='type-id-1070'/>
<function-decl name='gnutls_x509_policies_init' mangled-name='gnutls_x509_policies_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_policies_init@@GNUTLS_3_4'>
- <parameter type-id='type-id-1061' name='policies'/>
+ <parameter type-id='type-id-1070' name='policies'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_ext_export_proxy' mangled-name='gnutls_x509_ext_export_proxy' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_ext_export_proxy@@GNUTLS_3_4'>
@@ -16840,81 +16962,81 @@
<parameter type-id='type-id-27' name='policyLanguage'/>
<parameter type-id='type-id-27' name='policy'/>
<parameter type-id='type-id-99' name='sizeof_policy'/>
- <parameter type-id='type-id-275' name='ext'/>
+ <parameter type-id='type-id-278' name='ext'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_ext_import_proxy' mangled-name='gnutls_x509_ext_import_proxy' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_ext_import_proxy@@GNUTLS_3_4'>
<parameter type-id='type-id-57' name='ext'/>
- <parameter type-id='type-id-364' name='pathlen'/>
- <parameter type-id='type-id-852' name='policyLanguage'/>
- <parameter type-id='type-id-852' name='policy'/>
- <parameter type-id='type-id-422' name='sizeof_policy'/>
+ <parameter type-id='type-id-367' name='pathlen'/>
+ <parameter type-id='type-id-855' name='policyLanguage'/>
+ <parameter type-id='type-id-855' name='policy'/>
+ <parameter type-id='type-id-425' name='sizeof_policy'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_ext_export_basic_constraints' mangled-name='gnutls_x509_ext_export_basic_constraints' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_ext_export_basic_constraints@@GNUTLS_3_4'>
<parameter type-id='type-id-10' name='ca'/>
<parameter type-id='type-id-22' name='pathlen'/>
- <parameter type-id='type-id-275' name='ext'/>
+ <parameter type-id='type-id-278' name='ext'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_ext_import_basic_constraints' mangled-name='gnutls_x509_ext_import_basic_constraints' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_ext_import_basic_constraints@@GNUTLS_3_4'>
<parameter type-id='type-id-57' name='ext'/>
- <parameter type-id='type-id-419' name='ca'/>
- <parameter type-id='type-id-364' name='pathlen'/>
+ <parameter type-id='type-id-422' name='ca'/>
+ <parameter type-id='type-id-367' name='pathlen'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_ext_export_private_key_usage_period' mangled-name='gnutls_x509_ext_export_private_key_usage_period' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_ext_export_private_key_usage_period@@GNUTLS_3_4'>
<parameter type-id='type-id-17' name='activation'/>
<parameter type-id='type-id-17' name='expiration'/>
- <parameter type-id='type-id-275' name='ext'/>
+ <parameter type-id='type-id-278' name='ext'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_ext_import_private_key_usage_period' mangled-name='gnutls_x509_ext_import_private_key_usage_period' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_ext_import_private_key_usage_period@@GNUTLS_3_4'>
<parameter type-id='type-id-57' name='ext'/>
- <parameter type-id='type-id-514' name='activation'/>
- <parameter type-id='type-id-514' name='expiration'/>
+ <parameter type-id='type-id-517' name='activation'/>
+ <parameter type-id='type-id-517' name='expiration'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_ext_export_inhibit_anypolicy' mangled-name='gnutls_x509_ext_export_inhibit_anypolicy' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_ext_export_inhibit_anypolicy@@GNUTLS_3_6_0'>
<parameter type-id='type-id-10' name='skipcerts'/>
- <parameter type-id='type-id-275' name='ext'/>
+ <parameter type-id='type-id-278' name='ext'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_ext_import_inhibit_anypolicy' mangled-name='gnutls_x509_ext_import_inhibit_anypolicy' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_ext_import_inhibit_anypolicy@@GNUTLS_3_6_0'>
<parameter type-id='type-id-57' name='ext'/>
- <parameter type-id='type-id-419' name='skipcerts'/>
+ <parameter type-id='type-id-422' name='skipcerts'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_ext_export_key_usage' mangled-name='gnutls_x509_ext_export_key_usage' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_ext_export_key_usage@@GNUTLS_3_4'>
<parameter type-id='type-id-10' name='usage'/>
- <parameter type-id='type-id-275' name='ext'/>
+ <parameter type-id='type-id-278' name='ext'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_ext_import_key_usage' mangled-name='gnutls_x509_ext_import_key_usage' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_ext_import_key_usage@@GNUTLS_3_4'>
<parameter type-id='type-id-57' name='ext'/>
- <parameter type-id='type-id-419' name='key_usage'/>
+ <parameter type-id='type-id-422' name='key_usage'/>
<return type-id='type-id-22'/>
</function-decl>
- <class-decl name='gnutls_x509_aki_st' size-in-bits='384' is-struct='yes' visibility='default' id='type-id-1062'>
+ <class-decl name='gnutls_x509_aki_st' size-in-bits='384' is-struct='yes' visibility='default' id='type-id-1071'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='id' type-id='type-id-62' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='cert_issuer' type-id='type-id-463' visibility='default'/>
+ <var-decl name='cert_issuer' type-id='type-id-466' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
<var-decl name='serial' type-id='type-id-62' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='gnutls_subject_alt_names_st' size-in-bits='128' is-struct='yes' visibility='default' id='type-id-463'>
+ <class-decl name='gnutls_subject_alt_names_st' size-in-bits='128' is-struct='yes' visibility='default' id='type-id-466'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='names' type-id='type-id-1063' visibility='default'/>
+ <var-decl name='names' type-id='type-id-1072' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='size' type-id='type-id-10' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='name_st' size-in-bits='320' is-struct='yes' visibility='default' id='type-id-1064'>
+ <class-decl name='name_st' size-in-bits='320' is-struct='yes' visibility='default' id='type-id-1073'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='type' type-id='type-id-10' visibility='default'/>
</data-member>
@@ -16925,31 +17047,31 @@
<var-decl name='othername_oid' type-id='type-id-62' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-1064' size-in-bits='64' id='type-id-1063'/>
- <pointer-type-def type-id='type-id-1062' size-in-bits='64' id='type-id-1065'/>
- <typedef-decl name='gnutls_x509_aki_t' type-id='type-id-1065' id='type-id-1066'/>
+ <pointer-type-def type-id='type-id-1073' size-in-bits='64' id='type-id-1072'/>
+ <pointer-type-def type-id='type-id-1071' size-in-bits='64' id='type-id-1074'/>
+ <typedef-decl name='gnutls_x509_aki_t' type-id='type-id-1074' id='type-id-1075'/>
<function-decl name='gnutls_x509_ext_export_authority_key_id' mangled-name='gnutls_x509_ext_export_authority_key_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_ext_export_authority_key_id@@GNUTLS_3_4'>
- <parameter type-id='type-id-1066' name='aki'/>
- <parameter type-id='type-id-275' name='ext'/>
+ <parameter type-id='type-id-1075' name='aki'/>
+ <parameter type-id='type-id-278' name='ext'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_ext_import_authority_key_id' mangled-name='gnutls_x509_ext_import_authority_key_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_ext_import_authority_key_id@@GNUTLS_3_4'>
<parameter type-id='type-id-57' name='ext'/>
- <parameter type-id='type-id-1066' name='aki'/>
+ <parameter type-id='type-id-1075' name='aki'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_aki_get_cert_issuer' mangled-name='gnutls_x509_aki_get_cert_issuer' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_aki_get_cert_issuer@@GNUTLS_3_4'>
- <parameter type-id='type-id-1066' name='aki'/>
+ <parameter type-id='type-id-1075' name='aki'/>
<parameter type-id='type-id-10' name='seq'/>
- <parameter type-id='type-id-419' name='san_type'/>
- <parameter type-id='type-id-275' name='san'/>
- <parameter type-id='type-id-275' name='othername_oid'/>
- <parameter type-id='type-id-275' name='serial'/>
+ <parameter type-id='type-id-422' name='san_type'/>
+ <parameter type-id='type-id-278' name='san'/>
+ <parameter type-id='type-id-278' name='othername_oid'/>
+ <parameter type-id='type-id-278' name='serial'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_aki_set_cert_issuer' mangled-name='gnutls_x509_aki_set_cert_issuer' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_aki_set_cert_issuer@@GNUTLS_3_4'>
- <parameter type-id='type-id-1066' name='aki'/>
+ <parameter type-id='type-id-1075' name='aki'/>
<parameter type-id='type-id-10' name='san_type'/>
<parameter type-id='type-id-57' name='san'/>
<parameter type-id='type-id-27' name='othername_oid'/>
@@ -16957,78 +17079,78 @@
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_aki_set_id' mangled-name='gnutls_x509_aki_set_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_aki_set_id@@GNUTLS_3_4'>
- <parameter type-id='type-id-1066' name='aki'/>
+ <parameter type-id='type-id-1075' name='aki'/>
<parameter type-id='type-id-57' name='id'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_aki_get_id' mangled-name='gnutls_x509_aki_get_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_aki_get_id@@GNUTLS_3_4'>
- <parameter type-id='type-id-1066' name='aki'/>
- <parameter type-id='type-id-275' name='id'/>
+ <parameter type-id='type-id-1075' name='aki'/>
+ <parameter type-id='type-id-278' name='id'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_aki_deinit' mangled-name='gnutls_x509_aki_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_aki_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-1066' name='aki'/>
+ <parameter type-id='type-id-1075' name='aki'/>
<return type-id='type-id-111'/>
</function-decl>
- <pointer-type-def type-id='type-id-1066' size-in-bits='64' id='type-id-1067'/>
+ <pointer-type-def type-id='type-id-1075' size-in-bits='64' id='type-id-1076'/>
<function-decl name='gnutls_x509_aki_init' mangled-name='gnutls_x509_aki_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_aki_init@@GNUTLS_3_4'>
- <parameter type-id='type-id-1067' name='aki'/>
+ <parameter type-id='type-id-1076' name='aki'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_ext_export_subject_key_id' mangled-name='gnutls_x509_ext_export_subject_key_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_ext_export_subject_key_id@@GNUTLS_3_4'>
<parameter type-id='type-id-57' name='id'/>
- <parameter type-id='type-id-275' name='ext'/>
+ <parameter type-id='type-id-278' name='ext'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_ext_import_subject_key_id' mangled-name='gnutls_x509_ext_import_subject_key_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_ext_import_subject_key_id@@GNUTLS_3_4'>
<parameter type-id='type-id-57' name='ext'/>
- <parameter type-id='type-id-275' name='id'/>
+ <parameter type-id='type-id-278' name='id'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_ext_export_name_constraints' mangled-name='gnutls_x509_ext_export_name_constraints' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_ext_export_name_constraints@@GNUTLS_3_4'>
- <parameter type-id='type-id-1028' name='nc'/>
- <parameter type-id='type-id-275' name='ext'/>
+ <parameter type-id='type-id-1037' name='nc'/>
+ <parameter type-id='type-id-278' name='ext'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_ext_import_name_constraints' mangled-name='gnutls_x509_ext_import_name_constraints' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_ext_import_name_constraints@@GNUTLS_3_4'>
<parameter type-id='type-id-57' name='ext'/>
- <parameter type-id='type-id-1028' name='nc'/>
+ <parameter type-id='type-id-1037' name='nc'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_ext_export_subject_alt_names' mangled-name='gnutls_x509_ext_export_subject_alt_names' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_ext_export_subject_alt_names@@GNUTLS_3_4'>
- <parameter type-id='type-id-461' name='sans'/>
- <parameter type-id='type-id-275' name='ext'/>
+ <parameter type-id='type-id-464' name='sans'/>
+ <parameter type-id='type-id-278' name='ext'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_ext_import_subject_alt_names' mangled-name='gnutls_x509_ext_import_subject_alt_names' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_ext_import_subject_alt_names@@GNUTLS_3_4'>
<parameter type-id='type-id-57' name='ext'/>
- <parameter type-id='type-id-461' name='sans'/>
+ <parameter type-id='type-id-464' name='sans'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_subject_alt_names_set' mangled-name='gnutls_subject_alt_names_set' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_subject_alt_names_set@@GNUTLS_3_4'>
- <parameter type-id='type-id-461' name='sans'/>
+ <parameter type-id='type-id-464' name='sans'/>
<parameter type-id='type-id-10' name='san_type'/>
<parameter type-id='type-id-57' name='san'/>
<parameter type-id='type-id-27' name='othername_oid'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_subject_alt_names_get' mangled-name='gnutls_subject_alt_names_get' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_subject_alt_names_get@@GNUTLS_3_4'>
- <parameter type-id='type-id-461' name='sans'/>
+ <parameter type-id='type-id-464' name='sans'/>
<parameter type-id='type-id-10' name='seq'/>
- <parameter type-id='type-id-419' name='san_type'/>
- <parameter type-id='type-id-275' name='san'/>
- <parameter type-id='type-id-275' name='othername_oid'/>
+ <parameter type-id='type-id-422' name='san_type'/>
+ <parameter type-id='type-id-278' name='san'/>
+ <parameter type-id='type-id-278' name='othername_oid'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_subject_alt_names_deinit' mangled-name='gnutls_subject_alt_names_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_subject_alt_names_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-461' name='sans'/>
+ <parameter type-id='type-id-464' name='sans'/>
<return type-id='type-id-111'/>
</function-decl>
- <pointer-type-def type-id='type-id-461' size-in-bits='64' id='type-id-1068'/>
+ <pointer-type-def type-id='type-id-464' size-in-bits='64' id='type-id-1077'/>
<function-decl name='gnutls_subject_alt_names_init' mangled-name='gnutls_subject_alt_names_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_subject_alt_names_init@@GNUTLS_3_4'>
- <parameter type-id='type-id-1068' name='sans'/>
+ <parameter type-id='type-id-1077' name='sans'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='_gnutls_write_general_name' mangled-name='_gnutls_write_general_name' visibility='default' binding='global' size-in-bits='64'>
@@ -17062,19 +17184,19 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='email-verify.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='email-verify.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
<function-decl name='gnutls_x509_crt_check_email' mangled-name='gnutls_x509_crt_check_email' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_check_email@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-470' name='cert'/>
<parameter type-id='type-id-27' name='email'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-10'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='pkcs7-output.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='pkcs7-output.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
<function-decl name='gnutls_pkcs7_print' mangled-name='gnutls_pkcs7_print' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pkcs7_print@@GNUTLS_3_4'>
- <parameter type-id='type-id-995' name='pkcs7'/>
- <parameter type-id='type-id-978' name='format'/>
- <parameter type-id='type-id-275' name='out'/>
+ <parameter type-id='type-id-1004' name='pkcs7'/>
+ <parameter type-id='type-id-987' name='format'/>
+ <parameter type-id='type-id-278' name='out'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_pkcs7_get_crt_count' mangled-name='gnutls_pkcs7_get_crt_count' visibility='default' binding='global' size-in-bits='64'>
@@ -17105,12 +17227,12 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='virt-san.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='virt-san.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
<function-decl name='gnutls_x509_othername_to_virtual' mangled-name='gnutls_x509_othername_to_virtual' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_othername_to_virtual@@GNUTLS_3_4'>
<parameter type-id='type-id-27' name='oid'/>
<parameter type-id='type-id-57' name='othername'/>
- <parameter type-id='type-id-419' name='virt_type'/>
- <parameter type-id='type-id-275' name='virt'/>
+ <parameter type-id='type-id-422' name='virt_type'/>
+ <parameter type-id='type-id-278' name='virt'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='_gnutls_krb5_der_to_principal' mangled-name='_gnutls_krb5_der_to_principal' visibility='default' binding='global' size-in-bits='64'>
@@ -17123,80 +17245,80 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='spki.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='spki.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
<function-decl name='gnutls_x509_spki_get_rsa_pss_params' mangled-name='gnutls_x509_spki_get_rsa_pss_params' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_spki_get_rsa_pss_params@@GNUTLS_3_6_0'>
- <parameter type-id='type-id-757' name='spki'/>
- <parameter type-id='type-id-431' name='dig'/>
- <parameter type-id='type-id-419' name='salt_size'/>
+ <parameter type-id='type-id-760' name='spki'/>
+ <parameter type-id='type-id-434' name='dig'/>
+ <parameter type-id='type-id-422' name='salt_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_spki_set_rsa_pss_params' mangled-name='gnutls_x509_spki_set_rsa_pss_params' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_spki_set_rsa_pss_params@@GNUTLS_3_6_0'>
- <parameter type-id='type-id-757' name='spki'/>
- <parameter type-id='type-id-211' name='dig'/>
+ <parameter type-id='type-id-760' name='spki'/>
+ <parameter type-id='type-id-212' name='dig'/>
<parameter type-id='type-id-10' name='salt_size'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_x509_spki_deinit' mangled-name='gnutls_x509_spki_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_spki_deinit@@GNUTLS_3_6_0'>
- <parameter type-id='type-id-757' name='spki'/>
+ <parameter type-id='type-id-760' name='spki'/>
<return type-id='type-id-111'/>
</function-decl>
- <pointer-type-def type-id='type-id-757' size-in-bits='64' id='type-id-1069'/>
+ <pointer-type-def type-id='type-id-760' size-in-bits='64' id='type-id-1078'/>
<function-decl name='gnutls_x509_spki_init' mangled-name='gnutls_x509_spki_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_spki_init@@GNUTLS_3_6_0'>
- <parameter type-id='type-id-1069' name='spki'/>
+ <parameter type-id='type-id-1078' name='spki'/>
<return type-id='type-id-22'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='tls_features.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='tls_features.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
<function-decl name='gnutls_x509_tlsfeatures_check_crt' mangled-name='gnutls_x509_tlsfeatures_check_crt' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_tlsfeatures_check_crt@@GNUTLS_3_4'>
- <parameter type-id='type-id-973' name='feat'/>
- <parameter type-id='type-id-467' name='cert'/>
+ <parameter type-id='type-id-982' name='feat'/>
+ <parameter type-id='type-id-470' name='cert'/>
<return type-id='type-id-10'/>
</function-decl>
<function-decl name='gnutls_x509_crt_set_tlsfeatures' mangled-name='gnutls_x509_crt_set_tlsfeatures' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_set_tlsfeatures@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
- <parameter type-id='type-id-973' name='features'/>
+ <parameter type-id='type-id-470' name='crt'/>
+ <parameter type-id='type-id-982' name='features'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_crt_get_tlsfeatures' mangled-name='gnutls_x509_crt_get_tlsfeatures' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_crt_get_tlsfeatures@@GNUTLS_3_4'>
- <parameter type-id='type-id-467' name='crt'/>
- <parameter type-id='type-id-973' name='features'/>
+ <parameter type-id='type-id-470' name='crt'/>
+ <parameter type-id='type-id-982' name='features'/>
<parameter type-id='type-id-10' name='flags'/>
- <parameter type-id='type-id-419' name='critical'/>
+ <parameter type-id='type-id-422' name='critical'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_tlsfeatures_get' mangled-name='gnutls_x509_tlsfeatures_get' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_tlsfeatures_get@@GNUTLS_3_4'>
- <parameter type-id='type-id-973' name='f'/>
+ <parameter type-id='type-id-982' name='f'/>
<parameter type-id='type-id-10' name='idx'/>
- <parameter type-id='type-id-419' name='feature'/>
+ <parameter type-id='type-id-422' name='feature'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_x509_tlsfeatures_deinit' mangled-name='gnutls_x509_tlsfeatures_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_tlsfeatures_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-973' name='f'/>
+ <parameter type-id='type-id-982' name='f'/>
<return type-id='type-id-111'/>
</function-decl>
- <pointer-type-def type-id='type-id-973' size-in-bits='64' id='type-id-1070'/>
+ <pointer-type-def type-id='type-id-982' size-in-bits='64' id='type-id-1079'/>
<function-decl name='gnutls_x509_tlsfeatures_init' mangled-name='gnutls_x509_tlsfeatures_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_tlsfeatures_init@@GNUTLS_3_4'>
- <parameter type-id='type-id-1070' name='f'/>
+ <parameter type-id='type-id-1079' name='f'/>
<return type-id='type-id-22'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='ip.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='ip.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
<function-decl name='gnutls_x509_cidr_to_rfc5280' mangled-name='gnutls_x509_cidr_to_rfc5280' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_x509_cidr_to_rfc5280@@GNUTLS_3_4'>
<parameter type-id='type-id-27' name='cidr'/>
- <parameter type-id='type-id-275' name='cidr_rfc5280'/>
+ <parameter type-id='type-id-278' name='cidr_rfc5280'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='_gnutls_cidr_to_string' mangled-name='_gnutls_cidr_to_string' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls_cidr_to_string@@GNUTLS_PRIVATE_3_4'>
<parameter type-id='type-id-101' name='_ip'/>
<parameter type-id='type-id-10' name='ip_size'/>
- <parameter type-id='type-id-376' name='out'/>
+ <parameter type-id='type-id-379' name='out'/>
<parameter type-id='type-id-10' name='out_size'/>
<return type-id='type-id-27'/>
</function-decl>
<function-decl name='_gnutls_ip_to_string' mangled-name='_gnutls_ip_to_string' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls_ip_to_string@@GNUTLS_PRIVATE_3_4'>
<parameter type-id='type-id-101' name='_ip'/>
<parameter type-id='type-id-10' name='ip_size'/>
- <parameter type-id='type-id-376' name='out'/>
+ <parameter type-id='type-id-379' name='out'/>
<parameter type-id='type-id-10' name='out_size'/>
<return type-id='type-id-27'/>
</function-decl>
@@ -17204,16 +17326,16 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='ocsp.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
- <class-decl name='gnutls_ocsp_resp_int' size-in-bits='448' is-struct='yes' visibility='default' id='type-id-1071'>
+ <abi-instr version='1.0' address-size='64' path='ocsp.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
+ <class-decl name='gnutls_ocsp_resp_int' size-in-bits='448' is-struct='yes' visibility='default' id='type-id-1080'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='resp' type-id='type-id-387' visibility='default'/>
+ <var-decl name='resp' type-id='type-id-390' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='response_type_oid' type-id='type-id-62' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='basicresp' type-id='type-id-387' visibility='default'/>
+ <var-decl name='basicresp' type-id='type-id-390' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
<var-decl name='der' type-id='type-id-62' visibility='default'/>
@@ -17222,268 +17344,238 @@
<var-decl name='init' type-id='type-id-10' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-1071' size-in-bits='64' id='type-id-1072'/>
- <typedef-decl name='gnutls_ocsp_resp_t' type-id='type-id-1072' id='type-id-1073'/>
- <pointer-type-def type-id='type-id-1073' size-in-bits='64' id='type-id-1074'/>
- <pointer-type-def type-id='type-id-1074' size-in-bits='64' id='type-id-1075'/>
+ <pointer-type-def type-id='type-id-1080' size-in-bits='64' id='type-id-1081'/>
+ <typedef-decl name='gnutls_ocsp_resp_t' type-id='type-id-1081' id='type-id-1082'/>
+ <pointer-type-def type-id='type-id-1082' size-in-bits='64' id='type-id-1083'/>
+ <pointer-type-def type-id='type-id-1083' size-in-bits='64' id='type-id-1084'/>
<function-decl name='gnutls_ocsp_resp_list_import2' mangled-name='gnutls_ocsp_resp_list_import2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_resp_list_import2@@GNUTLS_3_6_3'>
- <parameter type-id='type-id-1075' name='ocsps'/>
- <parameter type-id='type-id-419' name='size'/>
+ <parameter type-id='type-id-1084' name='ocsps'/>
+ <parameter type-id='type-id-422' name='size'/>
<parameter type-id='type-id-57' name='resp_data'/>
- <parameter type-id='type-id-421' name='format'/>
+ <parameter type-id='type-id-424' name='format'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
- <qualified-type-def type-id='type-id-1071' const='yes' id='type-id-1076'/>
- <pointer-type-def type-id='type-id-1076' size-in-bits='64' id='type-id-1077'/>
- <typedef-decl name='gnutls_ocsp_resp_const_t' type-id='type-id-1077' id='type-id-1078'/>
- <class-decl name='gnutls_x509_trust_list_st' size-in-bits='576' is-struct='yes' visibility='default' id='type-id-1079'>
- <data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='size' type-id='type-id-10' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='node' type-id='type-id-457' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='x509_rdn_sequence' type-id='type-id-62' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='blacklisted' type-id='type-id-1080' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='blacklisted_size' type-id='type-id-10' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='keep_certs' type-id='type-id-1080' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='448'>
- <var-decl name='keep_certs_size' type-id='type-id-10' visibility='default'/>
- </data-member>
- <data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='pkcs11_token' type-id='type-id-376' visibility='default'/>
- </data-member>
- </class-decl>
- <pointer-type-def type-id='type-id-869' size-in-bits='64' id='type-id-1080'/>
- <pointer-type-def type-id='type-id-1079' size-in-bits='64' id='type-id-1081'/>
- <typedef-decl name='gnutls_x509_trust_list_t' type-id='type-id-1081' id='type-id-1082'/>
+ <qualified-type-def type-id='type-id-1080' const='yes' id='type-id-1085'/>
+ <pointer-type-def type-id='type-id-1085' size-in-bits='64' id='type-id-1086'/>
+ <typedef-decl name='gnutls_ocsp_resp_const_t' type-id='type-id-1086' id='type-id-1087'/>
<function-decl name='gnutls_ocsp_resp_verify' mangled-name='gnutls_ocsp_resp_verify' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_resp_verify@@GNUTLS_3_4'>
- <parameter type-id='type-id-1078' name='resp'/>
- <parameter type-id='type-id-1082' name='trustlist'/>
- <parameter type-id='type-id-419' name='verify'/>
+ <parameter type-id='type-id-1087' name='resp'/>
+ <parameter type-id='type-id-438' name='trustlist'/>
+ <parameter type-id='type-id-422' name='verify'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_ocsp_resp_verify_direct' mangled-name='gnutls_ocsp_resp_verify_direct' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_resp_verify_direct@@GNUTLS_3_4'>
- <parameter type-id='type-id-1078' name='resp'/>
- <parameter type-id='type-id-869' name='issuer'/>
- <parameter type-id='type-id-419' name='verify'/>
+ <parameter type-id='type-id-1087' name='resp'/>
+ <parameter type-id='type-id-470' name='issuer'/>
+ <parameter type-id='type-id-422' name='verify'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
- <pointer-type-def type-id='type-id-1080' size-in-bits='64' id='type-id-1083'/>
<function-decl name='gnutls_ocsp_resp_get_certs' mangled-name='gnutls_ocsp_resp_get_certs' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_resp_get_certs@@GNUTLS_3_4'>
- <parameter type-id='type-id-1078' name='resp'/>
- <parameter type-id='type-id-1083' name='certs'/>
- <parameter type-id='type-id-422' name='ncerts'/>
+ <parameter type-id='type-id-1087' name='resp'/>
+ <parameter type-id='type-id-736' name='certs'/>
+ <parameter type-id='type-id-425' name='ncerts'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_ocsp_resp_get_signature_algorithm' mangled-name='gnutls_ocsp_resp_get_signature_algorithm' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_resp_get_signature_algorithm@@GNUTLS_3_4'>
- <parameter type-id='type-id-1078' name='resp'/>
+ <parameter type-id='type-id-1087' name='resp'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_ocsp_resp_get_nonce' mangled-name='gnutls_ocsp_resp_get_nonce' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_resp_get_nonce@@GNUTLS_3_4'>
- <parameter type-id='type-id-1078' name='resp'/>
- <parameter type-id='type-id-419' name='critical'/>
- <parameter type-id='type-id-275' name='nonce'/>
+ <parameter type-id='type-id-1087' name='resp'/>
+ <parameter type-id='type-id-422' name='critical'/>
+ <parameter type-id='type-id-278' name='nonce'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_ocsp_resp_get_extension' mangled-name='gnutls_ocsp_resp_get_extension' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_resp_get_extension@@GNUTLS_3_4'>
- <parameter type-id='type-id-1078' name='resp'/>
+ <parameter type-id='type-id-1087' name='resp'/>
<parameter type-id='type-id-10' name='indx'/>
- <parameter type-id='type-id-275' name='oid'/>
- <parameter type-id='type-id-419' name='critical'/>
- <parameter type-id='type-id-275' name='data'/>
+ <parameter type-id='type-id-278' name='oid'/>
+ <parameter type-id='type-id-422' name='critical'/>
+ <parameter type-id='type-id-278' name='data'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_ocsp_resp_get_single' mangled-name='gnutls_ocsp_resp_get_single' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_resp_get_single@@GNUTLS_3_4'>
- <parameter type-id='type-id-1078' name='resp'/>
+ <parameter type-id='type-id-1087' name='resp'/>
<parameter type-id='type-id-10' name='indx'/>
- <parameter type-id='type-id-431' name='digest'/>
- <parameter type-id='type-id-275' name='issuer_name_hash'/>
- <parameter type-id='type-id-275' name='issuer_key_hash'/>
- <parameter type-id='type-id-275' name='serial_number'/>
- <parameter type-id='type-id-419' name='cert_status'/>
- <parameter type-id='type-id-514' name='this_update'/>
- <parameter type-id='type-id-514' name='next_update'/>
- <parameter type-id='type-id-514' name='revocation_time'/>
- <parameter type-id='type-id-419' name='revocation_reason'/>
+ <parameter type-id='type-id-434' name='digest'/>
+ <parameter type-id='type-id-278' name='issuer_name_hash'/>
+ <parameter type-id='type-id-278' name='issuer_key_hash'/>
+ <parameter type-id='type-id-278' name='serial_number'/>
+ <parameter type-id='type-id-422' name='cert_status'/>
+ <parameter type-id='type-id-517' name='this_update'/>
+ <parameter type-id='type-id-517' name='next_update'/>
+ <parameter type-id='type-id-517' name='revocation_time'/>
+ <parameter type-id='type-id-422' name='revocation_reason'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_ocsp_resp_check_crt' mangled-name='gnutls_ocsp_resp_check_crt' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_resp_check_crt@@GNUTLS_3_4'>
- <parameter type-id='type-id-1078' name='resp'/>
+ <parameter type-id='type-id-1087' name='resp'/>
<parameter type-id='type-id-10' name='indx'/>
- <parameter type-id='type-id-869' name='crt'/>
+ <parameter type-id='type-id-470' name='crt'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_ocsp_resp_get_produced' mangled-name='gnutls_ocsp_resp_get_produced' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_resp_get_produced@@GNUTLS_3_4'>
- <parameter type-id='type-id-1078' name='resp'/>
+ <parameter type-id='type-id-1087' name='resp'/>
<return type-id='type-id-17'/>
</function-decl>
<function-decl name='gnutls_ocsp_resp_get_responder_raw_id' mangled-name='gnutls_ocsp_resp_get_responder_raw_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_resp_get_responder_raw_id@@GNUTLS_3_4'>
- <parameter type-id='type-id-1078' name='resp'/>
+ <parameter type-id='type-id-1087' name='resp'/>
<parameter type-id='type-id-10' name='type'/>
- <parameter type-id='type-id-275' name='raw'/>
+ <parameter type-id='type-id-278' name='raw'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_ocsp_resp_get_responder' mangled-name='gnutls_ocsp_resp_get_responder' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_resp_get_responder@@GNUTLS_3_4'>
- <parameter type-id='type-id-1078' name='resp'/>
- <parameter type-id='type-id-275' name='dn'/>
+ <parameter type-id='type-id-1087' name='resp'/>
+ <parameter type-id='type-id-278' name='dn'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_ocsp_resp_get_version' mangled-name='gnutls_ocsp_resp_get_version' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_resp_get_version@@GNUTLS_3_4'>
- <parameter type-id='type-id-1078' name='resp'/>
+ <parameter type-id='type-id-1087' name='resp'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_ocsp_resp_get_response' mangled-name='gnutls_ocsp_resp_get_response' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_resp_get_response@@GNUTLS_3_4'>
- <parameter type-id='type-id-1078' name='resp'/>
- <parameter type-id='type-id-275' name='response_type_oid'/>
- <parameter type-id='type-id-275' name='response'/>
+ <parameter type-id='type-id-1087' name='resp'/>
+ <parameter type-id='type-id-278' name='response_type_oid'/>
+ <parameter type-id='type-id-278' name='response'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_ocsp_resp_get_status' mangled-name='gnutls_ocsp_resp_get_status' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_resp_get_status@@GNUTLS_3_4'>
- <parameter type-id='type-id-1078' name='resp'/>
+ <parameter type-id='type-id-1087' name='resp'/>
<return type-id='type-id-22'/>
</function-decl>
- <class-decl name='gnutls_ocsp_req_int' size-in-bits='128' is-struct='yes' visibility='default' id='type-id-1084'>
+ <class-decl name='gnutls_ocsp_req_int' size-in-bits='128' is-struct='yes' visibility='default' id='type-id-1088'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='req' type-id='type-id-387' visibility='default'/>
+ <var-decl name='req' type-id='type-id-390' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='init' type-id='type-id-10' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-1084' size-in-bits='64' id='type-id-1085'/>
- <typedef-decl name='gnutls_ocsp_req_t' type-id='type-id-1085' id='type-id-1086'/>
+ <pointer-type-def type-id='type-id-1088' size-in-bits='64' id='type-id-1089'/>
+ <typedef-decl name='gnutls_ocsp_req_t' type-id='type-id-1089' id='type-id-1090'/>
<function-decl name='gnutls_ocsp_req_randomize_nonce' mangled-name='gnutls_ocsp_req_randomize_nonce' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_req_randomize_nonce@@GNUTLS_3_4'>
- <parameter type-id='type-id-1086' name='req'/>
+ <parameter type-id='type-id-1090' name='req'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_ocsp_req_set_nonce' mangled-name='gnutls_ocsp_req_set_nonce' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_req_set_nonce@@GNUTLS_3_4'>
- <parameter type-id='type-id-1086' name='req'/>
+ <parameter type-id='type-id-1090' name='req'/>
<parameter type-id='type-id-10' name='critical'/>
<parameter type-id='type-id-57' name='nonce'/>
<return type-id='type-id-22'/>
</function-decl>
- <qualified-type-def type-id='type-id-1084' const='yes' id='type-id-1087'/>
- <pointer-type-def type-id='type-id-1087' size-in-bits='64' id='type-id-1088'/>
- <typedef-decl name='gnutls_ocsp_req_const_t' type-id='type-id-1088' id='type-id-1089'/>
+ <qualified-type-def type-id='type-id-1088' const='yes' id='type-id-1091'/>
+ <pointer-type-def type-id='type-id-1091' size-in-bits='64' id='type-id-1092'/>
+ <typedef-decl name='gnutls_ocsp_req_const_t' type-id='type-id-1092' id='type-id-1093'/>
<function-decl name='gnutls_ocsp_req_get_nonce' mangled-name='gnutls_ocsp_req_get_nonce' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_req_get_nonce@@GNUTLS_3_4'>
- <parameter type-id='type-id-1089' name='req'/>
- <parameter type-id='type-id-419' name='critical'/>
- <parameter type-id='type-id-275' name='nonce'/>
+ <parameter type-id='type-id-1093' name='req'/>
+ <parameter type-id='type-id-422' name='critical'/>
+ <parameter type-id='type-id-278' name='nonce'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_ocsp_req_set_extension' mangled-name='gnutls_ocsp_req_set_extension' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_req_set_extension@@GNUTLS_3_4'>
- <parameter type-id='type-id-1086' name='req'/>
+ <parameter type-id='type-id-1090' name='req'/>
<parameter type-id='type-id-27' name='oid'/>
<parameter type-id='type-id-10' name='critical'/>
<parameter type-id='type-id-57' name='data'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_ocsp_req_get_extension' mangled-name='gnutls_ocsp_req_get_extension' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_req_get_extension@@GNUTLS_3_4'>
- <parameter type-id='type-id-1089' name='req'/>
+ <parameter type-id='type-id-1093' name='req'/>
<parameter type-id='type-id-10' name='indx'/>
- <parameter type-id='type-id-275' name='oid'/>
- <parameter type-id='type-id-419' name='critical'/>
- <parameter type-id='type-id-275' name='data'/>
+ <parameter type-id='type-id-278' name='oid'/>
+ <parameter type-id='type-id-422' name='critical'/>
+ <parameter type-id='type-id-278' name='data'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_ocsp_req_add_cert' mangled-name='gnutls_ocsp_req_add_cert' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_req_add_cert@@GNUTLS_3_4'>
- <parameter type-id='type-id-1086' name='req'/>
- <parameter type-id='type-id-211' name='digest'/>
- <parameter type-id='type-id-869' name='issuer'/>
- <parameter type-id='type-id-869' name='cert'/>
+ <parameter type-id='type-id-1090' name='req'/>
+ <parameter type-id='type-id-212' name='digest'/>
+ <parameter type-id='type-id-470' name='issuer'/>
+ <parameter type-id='type-id-470' name='cert'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_ocsp_req_add_cert_id' mangled-name='gnutls_ocsp_req_add_cert_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_req_add_cert_id@@GNUTLS_3_4'>
- <parameter type-id='type-id-1086' name='req'/>
- <parameter type-id='type-id-211' name='digest'/>
+ <parameter type-id='type-id-1090' name='req'/>
+ <parameter type-id='type-id-212' name='digest'/>
<parameter type-id='type-id-57' name='issuer_name_hash'/>
<parameter type-id='type-id-57' name='issuer_key_hash'/>
<parameter type-id='type-id-57' name='serial_number'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_ocsp_req_get_cert_id' mangled-name='gnutls_ocsp_req_get_cert_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_req_get_cert_id@@GNUTLS_3_4'>
- <parameter type-id='type-id-1089' name='req'/>
+ <parameter type-id='type-id-1093' name='req'/>
<parameter type-id='type-id-10' name='indx'/>
- <parameter type-id='type-id-431' name='digest'/>
- <parameter type-id='type-id-275' name='issuer_name_hash'/>
- <parameter type-id='type-id-275' name='issuer_key_hash'/>
- <parameter type-id='type-id-275' name='serial_number'/>
+ <parameter type-id='type-id-434' name='digest'/>
+ <parameter type-id='type-id-278' name='issuer_name_hash'/>
+ <parameter type-id='type-id-278' name='issuer_key_hash'/>
+ <parameter type-id='type-id-278' name='serial_number'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_ocsp_req_get_version' mangled-name='gnutls_ocsp_req_get_version' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_req_get_version@@GNUTLS_3_4'>
- <parameter type-id='type-id-1089' name='req'/>
+ <parameter type-id='type-id-1093' name='req'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_ocsp_resp_export2' mangled-name='gnutls_ocsp_resp_export2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_resp_export2@@GNUTLS_3_6_3'>
- <parameter type-id='type-id-1078' name='resp'/>
- <parameter type-id='type-id-275' name='data'/>
- <parameter type-id='type-id-421' name='fmt'/>
+ <parameter type-id='type-id-1087' name='resp'/>
+ <parameter type-id='type-id-278' name='data'/>
+ <parameter type-id='type-id-424' name='fmt'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_ocsp_resp_export' mangled-name='gnutls_ocsp_resp_export' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_resp_export@@GNUTLS_3_4'>
- <parameter type-id='type-id-1078' name='resp'/>
- <parameter type-id='type-id-275' name='data'/>
+ <parameter type-id='type-id-1087' name='resp'/>
+ <parameter type-id='type-id-278' name='data'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_ocsp_req_export' mangled-name='gnutls_ocsp_req_export' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_req_export@@GNUTLS_3_4'>
- <parameter type-id='type-id-1089' name='req'/>
- <parameter type-id='type-id-275' name='data'/>
+ <parameter type-id='type-id-1093' name='req'/>
+ <parameter type-id='type-id-278' name='data'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_ocsp_resp_import2' mangled-name='gnutls_ocsp_resp_import2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_resp_import2@@GNUTLS_3_6_3'>
- <parameter type-id='type-id-1073' name='resp'/>
+ <parameter type-id='type-id-1082' name='resp'/>
<parameter type-id='type-id-57' name='data'/>
- <parameter type-id='type-id-421' name='fmt'/>
+ <parameter type-id='type-id-424' name='fmt'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_ocsp_resp_import' mangled-name='gnutls_ocsp_resp_import' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_resp_import@@GNUTLS_3_4'>
- <parameter type-id='type-id-1073' name='resp'/>
+ <parameter type-id='type-id-1082' name='resp'/>
<parameter type-id='type-id-57' name='data'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_ocsp_req_import' mangled-name='gnutls_ocsp_req_import' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_req_import@@GNUTLS_3_4'>
- <parameter type-id='type-id-1086' name='req'/>
+ <parameter type-id='type-id-1090' name='req'/>
<parameter type-id='type-id-57' name='data'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_ocsp_resp_deinit' mangled-name='gnutls_ocsp_resp_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_resp_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-1073' name='resp'/>
+ <parameter type-id='type-id-1082' name='resp'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_ocsp_resp_init' mangled-name='gnutls_ocsp_resp_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_resp_init@@GNUTLS_3_4'>
- <parameter type-id='type-id-1074' name='resp'/>
+ <parameter type-id='type-id-1083' name='resp'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_ocsp_req_deinit' mangled-name='gnutls_ocsp_req_deinit' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_req_deinit@@GNUTLS_3_4'>
- <parameter type-id='type-id-1086' name='req'/>
+ <parameter type-id='type-id-1090' name='req'/>
<return type-id='type-id-111'/>
</function-decl>
- <pointer-type-def type-id='type-id-1086' size-in-bits='64' id='type-id-1090'/>
+ <pointer-type-def type-id='type-id-1090' size-in-bits='64' id='type-id-1094'/>
<function-decl name='gnutls_ocsp_req_init' mangled-name='gnutls_ocsp_req_init' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_req_init@@GNUTLS_3_4'>
- <parameter type-id='type-id-1090' name='req'/>
+ <parameter type-id='type-id-1094' name='req'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_ocsp_resp_get_responder2' mangled-name='gnutls_ocsp_resp_get_responder2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_resp_get_responder2@@GNUTLS_3_4'>
- <parameter type-id='type-id-1078' name='resp'/>
- <parameter type-id='type-id-275' name='dn'/>
+ <parameter type-id='type-id-1087' name='resp'/>
+ <parameter type-id='type-id-278' name='dn'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_ocsp_resp_get_signature' mangled-name='gnutls_ocsp_resp_get_signature' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_resp_get_signature@@GNUTLS_3_4'>
- <parameter type-id='type-id-1078' name='resp'/>
- <parameter type-id='type-id-275' name='sig'/>
+ <parameter type-id='type-id-1087' name='resp'/>
+ <parameter type-id='type-id-278' name='sig'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='_gnutls_trustlist_inlist' mangled-name='_gnutls_trustlist_inlist' visibility='default' binding='global' size-in-bits='64'>
@@ -17502,23 +17594,23 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='ocsp_output.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/x509' language='LANG_C99'>
- <enum-decl name='gnutls_ocsp_print_formats_t' id='type-id-1091'>
+ <abi-instr version='1.0' address-size='64' path='ocsp_output.c' comp-dir-path='/root/gnutls/lib/x509' language='LANG_C99'>
+ <enum-decl name='gnutls_ocsp_print_formats_t' id='type-id-1095'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_OCSP_PRINT_FULL' value='0'/>
<enumerator name='GNUTLS_OCSP_PRINT_COMPACT' value='1'/>
</enum-decl>
- <typedef-decl name='gnutls_ocsp_print_formats_t' type-id='type-id-1091' id='type-id-1092'/>
+ <typedef-decl name='gnutls_ocsp_print_formats_t' type-id='type-id-1095' id='type-id-1096'/>
<function-decl name='gnutls_ocsp_resp_print' mangled-name='gnutls_ocsp_resp_print' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_resp_print@@GNUTLS_3_4'>
- <parameter type-id='type-id-1078' name='resp'/>
- <parameter type-id='type-id-1092' name='format'/>
- <parameter type-id='type-id-275' name='out'/>
+ <parameter type-id='type-id-1087' name='resp'/>
+ <parameter type-id='type-id-1096' name='format'/>
+ <parameter type-id='type-id-278' name='out'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_ocsp_req_print' mangled-name='gnutls_ocsp_req_print' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_req_print@@GNUTLS_3_4'>
- <parameter type-id='type-id-1089' name='req'/>
- <parameter type-id='type-id-1092' name='format'/>
- <parameter type-id='type-id-275' name='out'/>
+ <parameter type-id='type-id-1093' name='req'/>
+ <parameter type-id='type-id-1096' name='format'/>
+ <parameter type-id='type-id-278' name='out'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_ocsp_resp_get_response' mangled-name='gnutls_ocsp_resp_get_response' visibility='default' binding='global' size-in-bits='64'>
@@ -17570,51 +17662,51 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='max_record.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/ext' language='LANG_C99'>
- <typedef-decl name='hello_ext_entry_st' type-id='type-id-296' id='type-id-1093'/>
- <qualified-type-def type-id='type-id-1093' const='yes' id='type-id-1094'/>
- <var-decl name='ext_mod_max_record_size' type-id='type-id-1094' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='max_record.c' comp-dir-path='/root/gnutls/lib/ext' language='LANG_C99'>
+ <typedef-decl name='hello_ext_entry_st' type-id='type-id-299' id='type-id-1097'/>
+ <qualified-type-def type-id='type-id-1097' const='yes' id='type-id-1098'/>
+ <var-decl name='ext_mod_max_record_size' type-id='type-id-1098' visibility='default'/>
<function-decl name='gnutls_record_set_max_recv_size' mangled-name='gnutls_record_set_max_recv_size' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_record_set_max_recv_size@@GNUTLS_3_6_8'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-99' name='size'/>
<return type-id='type-id-3'/>
</function-decl>
<function-decl name='gnutls_record_set_max_size' mangled-name='gnutls_record_set_max_size' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_record_set_max_size@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-99' name='size'/>
<return type-id='type-id-3'/>
</function-decl>
<function-decl name='gnutls_record_get_max_size' mangled-name='gnutls_record_get_max_size' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_record_get_max_size@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<return type-id='type-id-99'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='server_name.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/ext' language='LANG_C99'>
- <var-decl name='ext_mod_server_name' type-id='type-id-1094' visibility='default'/>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-1095'>
+ <abi-instr version='1.0' address-size='64' path='server_name.c' comp-dir-path='/root/gnutls/lib/ext' language='LANG_C99'>
+ <var-decl name='ext_mod_server_name' type-id='type-id-1098' visibility='default'/>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-1099'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_NAME_DNS' value='1'/>
</enum-decl>
- <typedef-decl name='gnutls_server_name_type_t' type-id='type-id-1095' id='type-id-1096'/>
+ <typedef-decl name='gnutls_server_name_type_t' type-id='type-id-1099' id='type-id-1100'/>
<function-decl name='gnutls_server_name_set' mangled-name='gnutls_server_name_set' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_server_name_set@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
- <parameter type-id='type-id-1096' name='type'/>
+ <parameter type-id='type-id-237' name='session'/>
+ <parameter type-id='type-id-1100' name='type'/>
<parameter type-id='type-id-101' name='name'/>
<parameter type-id='type-id-99' name='name_length'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='_gnutls_server_name_set_raw' mangled-name='_gnutls_server_name_set_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls_server_name_set_raw@@GNUTLS_PRIVATE_3_4'>
- <parameter type-id='type-id-236' name='session'/>
- <parameter type-id='type-id-1096' name='type'/>
+ <parameter type-id='type-id-237' name='session'/>
+ <parameter type-id='type-id-1100' name='type'/>
<parameter type-id='type-id-101' name='name'/>
<parameter type-id='type-id-99' name='name_length'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_server_name_get' mangled-name='gnutls_server_name_get' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_server_name_get@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-101' name='data'/>
- <parameter type-id='type-id-422' name='data_length'/>
- <parameter type-id='type-id-419' name='type'/>
+ <parameter type-id='type-id-425' name='data_length'/>
+ <parameter type-id='type-id-422' name='type'/>
<parameter type-id='type-id-10' name='indx'/>
<return type-id='type-id-22'/>
</function-decl>
@@ -17631,21 +17723,21 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='signature.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/ext' language='LANG_C99'>
- <var-decl name='ext_mod_sig' type-id='type-id-1094' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='signature.c' comp-dir-path='/root/gnutls/lib/ext' language='LANG_C99'>
+ <var-decl name='ext_mod_sig' type-id='type-id-1098' visibility='default'/>
<function-decl name='gnutls_sign_algorithm_get_client' mangled-name='gnutls_sign_algorithm_get_client' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_sign_algorithm_get_client@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_sign_algorithm_get' mangled-name='gnutls_sign_algorithm_get' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_sign_algorithm_get@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<return type-id='type-id-22'/>
</function-decl>
- <pointer-type-def type-id='type-id-21' size-in-bits='64' id='type-id-1097'/>
+ <pointer-type-def type-id='type-id-21' size-in-bits='64' id='type-id-1101'/>
<function-decl name='gnutls_sign_algorithm_get_requested' mangled-name='gnutls_sign_algorithm_get_requested' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_sign_algorithm_get_requested@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
+ <parameter type-id='type-id-416' name='session'/>
<parameter type-id='type-id-99' name='indx'/>
- <parameter type-id='type-id-1097' name='algo'/>
+ <parameter type-id='type-id-1101' name='algo'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='_gnutls_privkey_compatible_with_sig' mangled-name='_gnutls_privkey_compatible_with_sig' visibility='default' binding='global' size-in-bits='64'>
@@ -17655,26 +17747,26 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='safe_renegotiation.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/ext' language='LANG_C99'>
- <var-decl name='ext_mod_sr' type-id='type-id-1094' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='safe_renegotiation.c' comp-dir-path='/root/gnutls/lib/ext' language='LANG_C99'>
+ <var-decl name='ext_mod_sr' type-id='type-id-1098' visibility='default'/>
<function-decl name='gnutls_safe_renegotiation_status' mangled-name='gnutls_safe_renegotiation_status' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_safe_renegotiation_status@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<return type-id='type-id-10'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='session_ticket.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/ext' language='LANG_C99'>
- <var-decl name='ext_mod_session_ticket' type-id='type-id-1094' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='session_ticket.c' comp-dir-path='/root/gnutls/lib/ext' language='LANG_C99'>
+ <var-decl name='ext_mod_session_ticket' type-id='type-id-1098' visibility='default'/>
<function-decl name='gnutls_session_ticket_enable_server' mangled-name='gnutls_session_ticket_enable_server' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_session_ticket_enable_server@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-57' name='key'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_session_ticket_enable_client' mangled-name='gnutls_session_ticket_enable_client' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_session_ticket_enable_client@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_session_ticket_key_generate' mangled-name='gnutls_session_ticket_key_generate' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_session_ticket_key_generate@@GNUTLS_3_4'>
- <parameter type-id='type-id-275' name='key'/>
+ <parameter type-id='type-id-278' name='key'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='_gnutls_epoch_set_keys' mangled-name='_gnutls_epoch_set_keys' visibility='default' binding='global' size-in-bits='64'>
@@ -17693,81 +17785,81 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='srp.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/ext' language='LANG_C99'>
- <var-decl name='ext_mod_srp' type-id='type-id-1094' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='srp.c' comp-dir-path='/root/gnutls/lib/ext' language='LANG_C99'>
+ <var-decl name='ext_mod_srp' type-id='type-id-1098' visibility='default'/>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='heartbeat.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/ext' language='LANG_C99'>
- <var-decl name='ext_mod_heartbeat' type-id='type-id-1094' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='heartbeat.c' comp-dir-path='/root/gnutls/lib/ext' language='LANG_C99'>
+ <var-decl name='ext_mod_heartbeat' type-id='type-id-1098' visibility='default'/>
<function-decl name='gnutls_heartbeat_set_timeouts' mangled-name='gnutls_heartbeat_set_timeouts' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_heartbeat_set_timeouts@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-10' name='retrans_timeout'/>
<parameter type-id='type-id-10' name='total_timeout'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_heartbeat_get_timeout' mangled-name='gnutls_heartbeat_get_timeout' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_heartbeat_get_timeout@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<return type-id='type-id-10'/>
</function-decl>
<function-decl name='gnutls_heartbeat_pong' mangled-name='gnutls_heartbeat_pong' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_heartbeat_pong@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_heartbeat_ping' mangled-name='gnutls_heartbeat_ping' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_heartbeat_ping@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-99' name='data_size'/>
<parameter type-id='type-id-10' name='max_tries'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_heartbeat_enable' mangled-name='gnutls_heartbeat_enable' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_heartbeat_enable@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-10' name='type'/>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='gnutls_heartbeat_allowed' mangled-name='gnutls_heartbeat_allowed' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_heartbeat_allowed@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-10' name='type'/>
<return type-id='type-id-10'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='status_request.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/ext' language='LANG_C99'>
- <var-decl name='ext_mod_status_request' type-id='type-id-1094' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='status_request.c' comp-dir-path='/root/gnutls/lib/ext' language='LANG_C99'>
+ <var-decl name='ext_mod_status_request' type-id='type-id-1098' visibility='default'/>
<function-decl name='gnutls_ocsp_status_request_enable_client' mangled-name='gnutls_ocsp_status_request_enable_client' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ocsp_status_request_enable_client@@GNUTLS_3_4'>
- <parameter type-id='type-id-413' name='session'/>
- <parameter type-id='type-id-275' name='responder_id'/>
+ <parameter type-id='type-id-237' name='session'/>
+ <parameter type-id='type-id-278' name='responder_id'/>
<parameter type-id='type-id-99' name='responder_id_size'/>
- <parameter type-id='type-id-275' name='extensions'/>
+ <parameter type-id='type-id-278' name='extensions'/>
<return type-id='type-id-22'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='dumbfw.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/ext' language='LANG_C99'>
- <var-decl name='ext_mod_dumbfw' type-id='type-id-1094' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='dumbfw.c' comp-dir-path='/root/gnutls/lib/ext' language='LANG_C99'>
+ <var-decl name='ext_mod_dumbfw' type-id='type-id-1098' visibility='default'/>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='ext_master_secret.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/ext' language='LANG_C99'>
- <var-decl name='ext_mod_ext_master_secret' type-id='type-id-1094' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='ext_master_secret.c' comp-dir-path='/root/gnutls/lib/ext' language='LANG_C99'>
+ <var-decl name='ext_mod_ext_master_secret' type-id='type-id-1098' visibility='default'/>
<function-decl name='gnutls_session_ext_master_secret_status' mangled-name='gnutls_session_ext_master_secret_status' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_session_ext_master_secret_status@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<return type-id='type-id-10'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='etm.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/ext' language='LANG_C99'>
- <var-decl name='ext_mod_etm' type-id='type-id-1094' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='etm.c' comp-dir-path='/root/gnutls/lib/ext' language='LANG_C99'>
+ <var-decl name='ext_mod_etm' type-id='type-id-1098' visibility='default'/>
<function-decl name='gnutls_session_etm_status' mangled-name='gnutls_session_etm_status' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_session_etm_status@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<return type-id='type-id-10'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='supported_versions.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/ext' language='LANG_C99'>
- <var-decl name='ext_mod_supported_versions' type-id='type-id-1094' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='supported_versions.c' comp-dir-path='/root/gnutls/lib/ext' language='LANG_C99'>
+ <var-decl name='ext_mod_supported_versions' type-id='type-id-1098' visibility='default'/>
<function-decl name='_gnutls_write_supported_versions' mangled-name='_gnutls_write_supported_versions' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='post_handshake.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/ext' language='LANG_C99'>
- <var-decl name='ext_mod_post_handshake' type-id='type-id-1094' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='post_handshake.c' comp-dir-path='/root/gnutls/lib/ext' language='LANG_C99'>
+ <var-decl name='ext_mod_post_handshake' type-id='type-id-1098' visibility='default'/>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='key_share.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/ext' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='key_share.c' comp-dir-path='/root/gnutls/lib/ext' language='LANG_C99'>
<function-decl name='_gnutls_buffer_append_fixed_mpi' mangled-name='_gnutls_buffer_append_fixed_mpi' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -17778,17 +17870,14 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='cookie.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/ext' language='LANG_C99'>
- <var-decl name='ext_mod_cookie' type-id='type-id-1094' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='cookie.c' comp-dir-path='/root/gnutls/lib/ext' language='LANG_C99'>
+ <var-decl name='ext_mod_cookie' type-id='type-id-1098' visibility='default'/>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='psk_ke_modes.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/ext' language='LANG_C99'>
- <var-decl name='ext_mod_psk_ke_modes' type-id='type-id-1094' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='psk_ke_modes.c' comp-dir-path='/root/gnutls/lib/ext' language='LANG_C99'>
+ <var-decl name='ext_mod_psk_ke_modes' type-id='type-id-1098' visibility='default'/>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='pre_shared_key.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/ext' language='LANG_C99'>
- <var-decl name='ext_mod_pre_shared_key' type-id='type-id-1094' visibility='default'/>
- <function-decl name='_gnutls_psk_pwd_find_entry' mangled-name='_gnutls_psk_pwd_find_entry' visibility='default' binding='global' size-in-bits='64'>
- <return type-id='type-id-111'/>
- </function-decl>
+ <abi-instr version='1.0' address-size='64' path='pre_shared_key.c' comp-dir-path='/root/gnutls/lib/ext' language='LANG_C99'>
+ <var-decl name='ext_mod_pre_shared_key' type-id='type-id-1098' visibility='default'/>
<function-decl name='_gnutls13_psk_ext_parser_init' mangled-name='_gnutls13_psk_ext_parser_init' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -17804,6 +17893,9 @@
<function-decl name='_gnutls_ext_get_full_client_hello' mangled-name='_gnutls_ext_get_full_client_hello' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
+ <function-decl name='_gnutls_psk_pwd_find_entry' mangled-name='_gnutls_psk_pwd_find_entry' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
<function-decl name='_gnutls_anti_replay_check' mangled-name='_gnutls_anti_replay_check' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -17814,32 +17906,32 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='supported_groups.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/ext' language='LANG_C99'>
- <var-decl name='ext_mod_supported_groups' type-id='type-id-1094' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='supported_groups.c' comp-dir-path='/root/gnutls/lib/ext' language='LANG_C99'>
+ <var-decl name='ext_mod_supported_groups' type-id='type-id-1098' visibility='default'/>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='ec_point_formats.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/ext' language='LANG_C99'>
- <var-decl name='ext_mod_supported_ec_point_formats' type-id='type-id-1094' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='ec_point_formats.c' comp-dir-path='/root/gnutls/lib/ext' language='LANG_C99'>
+ <var-decl name='ext_mod_supported_ec_point_formats' type-id='type-id-1098' visibility='default'/>
<function-decl name='_gnutls_session_is_ecc' mangled-name='_gnutls_session_is_ecc' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='early_data.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/ext' language='LANG_C99'>
- <var-decl name='ext_mod_early_data' type-id='type-id-1094' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='early_data.c' comp-dir-path='/root/gnutls/lib/ext' language='LANG_C99'>
+ <var-decl name='ext_mod_early_data' type-id='type-id-1098' visibility='default'/>
<function-decl name='gnutls_record_set_max_early_data_size' mangled-name='gnutls_record_set_max_early_data_size' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_record_set_max_early_data_size@@GNUTLS_3_6_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-99' name='size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_record_get_max_early_data_size' mangled-name='gnutls_record_get_max_early_data_size' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_record_get_max_early_data_size@@GNUTLS_3_6_5'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<return type-id='type-id-99'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='record_size_limit.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/ext' language='LANG_C99'>
- <var-decl name='ext_mod_record_size_limit' type-id='type-id-1094' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='record_size_limit.c' comp-dir-path='/root/gnutls/lib/ext' language='LANG_C99'>
+ <var-decl name='ext_mod_record_size_limit' type-id='type-id-1098' visibility='default'/>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='client_cert_type.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/ext' language='LANG_C99'>
- <var-decl name='ext_mod_client_cert_type' type-id='type-id-1094' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='client_cert_type.c' comp-dir-path='/root/gnutls/lib/ext' language='LANG_C99'>
+ <var-decl name='ext_mod_client_cert_type' type-id='type-id-1098' visibility='default'/>
<function-decl name='_gnutls_session_cert_type_supported' mangled-name='_gnutls_session_cert_type_supported' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -17847,88 +17939,88 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='server_cert_type.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/ext' language='LANG_C99'>
- <var-decl name='ext_mod_server_cert_type' type-id='type-id-1094' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='server_cert_type.c' comp-dir-path='/root/gnutls/lib/ext' language='LANG_C99'>
+ <var-decl name='ext_mod_server_cert_type' type-id='type-id-1098' visibility='default'/>
<function-decl name='_gnutls_session_server_cert_type_set' mangled-name='_gnutls_session_server_cert_type_set' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='alpn.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/ext' language='LANG_C99'>
- <var-decl name='ext_mod_alpn' type-id='type-id-1094' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='alpn.c' comp-dir-path='/root/gnutls/lib/ext' language='LANG_C99'>
+ <var-decl name='ext_mod_alpn' type-id='type-id-1098' visibility='default'/>
<function-decl name='gnutls_alpn_set_protocols' mangled-name='gnutls_alpn_set_protocols' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_alpn_set_protocols@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-57' name='protocols'/>
<parameter type-id='type-id-10' name='protocols_size'/>
<parameter type-id='type-id-10' name='flags'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_alpn_get_selected_protocol' mangled-name='gnutls_alpn_get_selected_protocol' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_alpn_get_selected_protocol@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
- <parameter type-id='type-id-275' name='protocol'/>
+ <parameter type-id='type-id-237' name='session'/>
+ <parameter type-id='type-id-278' name='protocol'/>
<return type-id='type-id-22'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='srtp.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/ext' language='LANG_C99'>
- <var-decl name='ext_mod_srtp' type-id='type-id-1094' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='srtp.c' comp-dir-path='/root/gnutls/lib/ext' language='LANG_C99'>
+ <var-decl name='ext_mod_srtp' type-id='type-id-1098' visibility='default'/>
<function-decl name='gnutls_srtp_get_keys' mangled-name='gnutls_srtp_get_keys' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_srtp_get_keys@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-101' name='key_material'/>
<parameter type-id='type-id-10' name='key_material_size'/>
- <parameter type-id='type-id-275' name='client_key'/>
- <parameter type-id='type-id-275' name='client_salt'/>
- <parameter type-id='type-id-275' name='server_key'/>
- <parameter type-id='type-id-275' name='server_salt'/>
+ <parameter type-id='type-id-278' name='client_key'/>
+ <parameter type-id='type-id-278' name='client_salt'/>
+ <parameter type-id='type-id-278' name='server_key'/>
+ <parameter type-id='type-id-278' name='server_salt'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_srtp_set_profile_direct' mangled-name='gnutls_srtp_set_profile_direct' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_srtp_set_profile_direct@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-27' name='profiles'/>
- <parameter type-id='type-id-426' name='err_pos'/>
+ <parameter type-id='type-id-429' name='err_pos'/>
<return type-id='type-id-22'/>
</function-decl>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-1098'>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-1102'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_SRTP_AES128_CM_HMAC_SHA1_80' value='1'/>
<enumerator name='GNUTLS_SRTP_AES128_CM_HMAC_SHA1_32' value='2'/>
<enumerator name='GNUTLS_SRTP_NULL_HMAC_SHA1_80' value='5'/>
<enumerator name='GNUTLS_SRTP_NULL_HMAC_SHA1_32' value='6'/>
</enum-decl>
- <typedef-decl name='gnutls_srtp_profile_t' type-id='type-id-1098' id='type-id-1099'/>
+ <typedef-decl name='gnutls_srtp_profile_t' type-id='type-id-1102' id='type-id-1103'/>
<function-decl name='gnutls_srtp_set_profile' mangled-name='gnutls_srtp_set_profile' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_srtp_set_profile@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
- <parameter type-id='type-id-1099' name='profile'/>
+ <parameter type-id='type-id-237' name='session'/>
+ <parameter type-id='type-id-1103' name='profile'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_srtp_set_mki' mangled-name='gnutls_srtp_set_mki' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_srtp_set_mki@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
+ <parameter type-id='type-id-237' name='session'/>
<parameter type-id='type-id-57' name='mki'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_srtp_get_mki' mangled-name='gnutls_srtp_get_mki' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_srtp_get_mki@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
- <parameter type-id='type-id-275' name='mki'/>
+ <parameter type-id='type-id-237' name='session'/>
+ <parameter type-id='type-id-278' name='mki'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_srtp_get_profile_name' mangled-name='gnutls_srtp_get_profile_name' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_srtp_get_profile_name@@GNUTLS_3_4'>
- <parameter type-id='type-id-1099' name='profile'/>
+ <parameter type-id='type-id-1103' name='profile'/>
<return type-id='type-id-27'/>
</function-decl>
- <pointer-type-def type-id='type-id-1099' size-in-bits='64' id='type-id-1100'/>
+ <pointer-type-def type-id='type-id-1103' size-in-bits='64' id='type-id-1104'/>
<function-decl name='gnutls_srtp_get_profile_id' mangled-name='gnutls_srtp_get_profile_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_srtp_get_profile_id@@GNUTLS_3_4'>
<parameter type-id='type-id-27' name='name'/>
- <parameter type-id='type-id-1100' name='profile'/>
+ <parameter type-id='type-id-1104' name='profile'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_srtp_get_selected_profile' mangled-name='gnutls_srtp_get_selected_profile' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_srtp_get_selected_profile@@GNUTLS_3_4'>
- <parameter type-id='type-id-236' name='session'/>
- <parameter type-id='type-id-1100' name='profile'/>
+ <parameter type-id='type-id-237' name='session'/>
+ <parameter type-id='type-id-1104' name='profile'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_prf' mangled-name='gnutls_prf' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='anon.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/auth' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='anon.c' comp-dir-path='/root/gnutls/lib/auth' language='LANG_C99'>
<function-decl name='_gnutls_proc_dh_common_client_kx' mangled-name='_gnutls_proc_dh_common_client_kx' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -17942,7 +18034,7 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='cert.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/auth' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='cert.c' comp-dir-path='/root/gnutls/lib/auth' language='LANG_C99'>
<function-decl name='_gnutls_handshake_verify_data' mangled-name='_gnutls_handshake_verify_data' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -17980,7 +18072,7 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='dh_common.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/auth' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='dh_common.c' comp-dir-path='/root/gnutls/lib/auth' language='LANG_C99'>
<function-decl name='_gnutls_dh_set_secret_bits' mangled-name='_gnutls_dh_set_secret_bits' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -17994,7 +18086,7 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='dhe.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/auth' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='dhe.c' comp-dir-path='/root/gnutls/lib/auth' language='LANG_C99'>
<function-decl name='_gnutls_proc_dhe_signature' mangled-name='_gnutls_proc_dhe_signature' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -18002,12 +18094,12 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='rsa_psk.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/auth' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='rsa_psk.c' comp-dir-path='/root/gnutls/lib/auth' language='LANG_C99'>
<function-decl name='_gnutls_get_public_rsa_params' mangled-name='_gnutls_get_public_rsa_params' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='dhe_psk.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/auth' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='dhe_psk.c' comp-dir-path='/root/gnutls/lib/auth' language='LANG_C99'>
<function-decl name='_gnutls_proc_ecdh_common_server_kx' mangled-name='_gnutls_proc_ecdh_common_server_kx' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -18024,7 +18116,7 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='srp_kx.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/auth' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='srp_kx.c' comp-dir-path='/root/gnutls/lib/auth' language='LANG_C99'>
<var-decl name='gnutls_srp_1024_group_prime' type-id='type-id-65' mangled-name='gnutls_srp_1024_group_prime' visibility='default' elf-symbol-id='gnutls_srp_1024_group_prime@@GNUTLS_3_4'/>
<var-decl name='gnutls_srp_1024_group_generator' type-id='type-id-65' mangled-name='gnutls_srp_1024_group_generator' visibility='default' elf-symbol-id='gnutls_srp_1024_group_generator@@GNUTLS_3_4'/>
<var-decl name='gnutls_srp_1536_group_prime' type-id='type-id-65' mangled-name='gnutls_srp_1536_group_prime' visibility='default' elf-symbol-id='gnutls_srp_1536_group_prime@@GNUTLS_3_4'/>
@@ -18065,12 +18157,12 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='srp_passwd.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/auth' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='srp_passwd.c' comp-dir-path='/root/gnutls/lib/auth' language='LANG_C99'>
<function-decl name='_gnutls_sbase64_decode' mangled-name='_gnutls_sbase64_decode' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='srp_rsa.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/auth' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='srp_rsa.c' comp-dir-path='/root/gnutls/lib/auth' language='LANG_C99'>
<function-decl name='_gnutls_proc_srp_server_kx' mangled-name='_gnutls_proc_srp_server_kx' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -18078,31 +18170,31 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='srp_sb64.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/auth' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='srp_sb64.c' comp-dir-path='/root/gnutls/lib/auth' language='LANG_C99'>
<function-decl name='gnutls_srp_base64_decode2' mangled-name='gnutls_srp_base64_decode2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_srp_base64_decode2@@GNUTLS_3_4'>
<parameter type-id='type-id-57' name='b64_data'/>
- <parameter type-id='type-id-275' name='result'/>
+ <parameter type-id='type-id-278' name='result'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_srp_base64_decode' mangled-name='gnutls_srp_base64_decode' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_srp_base64_decode@@GNUTLS_3_4'>
<parameter type-id='type-id-57' name='b64_data'/>
- <parameter type-id='type-id-376' name='result'/>
- <parameter type-id='type-id-422' name='result_size'/>
+ <parameter type-id='type-id-379' name='result'/>
+ <parameter type-id='type-id-425' name='result_size'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_srp_base64_encode2' mangled-name='gnutls_srp_base64_encode2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_srp_base64_encode2@@GNUTLS_3_4'>
<parameter type-id='type-id-57' name='b64_data'/>
- <parameter type-id='type-id-275' name='result'/>
+ <parameter type-id='type-id-278' name='result'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='gnutls_srp_base64_encode' mangled-name='gnutls_srp_base64_encode' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_srp_base64_encode@@GNUTLS_3_4'>
<parameter type-id='type-id-57' name='b64_data'/>
- <parameter type-id='type-id-376' name='result'/>
- <parameter type-id='type-id-422' name='result_size'/>
+ <parameter type-id='type-id-379' name='result'/>
+ <parameter type-id='type-id-425' name='result_size'/>
<return type-id='type-id-22'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='vko_gost.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/auth' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='vko_gost.c' comp-dir-path='/root/gnutls/lib/auth' language='LANG_C99'>
<function-decl name='_gnutls_ecc_curve_get_group' mangled-name='_gnutls_ecc_curve_get_group' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -18113,11 +18205,11 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='cert_types.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/algorithms' language='LANG_C99'>
- <qualified-type-def type-id='type-id-19' const='yes' id='type-id-1101'/>
- <pointer-type-def type-id='type-id-1101' size-in-bits='64' id='type-id-1102'/>
+ <abi-instr version='1.0' address-size='64' path='cert_types.c' comp-dir-path='/root/gnutls/lib/algorithms' language='LANG_C99'>
+ <qualified-type-def type-id='type-id-19' const='yes' id='type-id-1105'/>
+ <pointer-type-def type-id='type-id-1105' size-in-bits='64' id='type-id-1106'/>
<function-decl name='gnutls_certificate_type_list' mangled-name='gnutls_certificate_type_list' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_type_list@@GNUTLS_3_4'>
- <return type-id='type-id-1102'/>
+ <return type-id='type-id-1106'/>
</function-decl>
<function-decl name='gnutls_certificate_type_get_id' mangled-name='gnutls_certificate_type_get_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_certificate_type_get_id@@GNUTLS_3_4'>
<parameter type-id='type-id-27' name='name'/>
@@ -18128,11 +18220,11 @@
<return type-id='type-id-27'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='ciphers.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/algorithms' language='LANG_C99'>
- <qualified-type-def type-id='type-id-29' const='yes' id='type-id-1103'/>
- <pointer-type-def type-id='type-id-1103' size-in-bits='64' id='type-id-1104'/>
+ <abi-instr version='1.0' address-size='64' path='ciphers.c' comp-dir-path='/root/gnutls/lib/algorithms' language='LANG_C99'>
+ <qualified-type-def type-id='type-id-29' const='yes' id='type-id-1107'/>
+ <pointer-type-def type-id='type-id-1107' size-in-bits='64' id='type-id-1108'/>
<function-decl name='gnutls_cipher_list' mangled-name='gnutls_cipher_list' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_cipher_list@@GNUTLS_3_4'>
- <return type-id='type-id-1104'/>
+ <return type-id='type-id-1108'/>
</function-decl>
<function-decl name='gnutls_cipher_get_id' mangled-name='gnutls_cipher_get_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_cipher_get_id@@GNUTLS_3_4'>
<parameter type-id='type-id-27' name='name'/>
@@ -18163,24 +18255,24 @@
<return type-id='type-id-79'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='ciphersuites.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/algorithms' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='ciphersuites.c' comp-dir-path='/root/gnutls/lib/algorithms' language='LANG_C99'>
<function-decl name='gnutls_priority_get_cipher_suite_index' mangled-name='gnutls_priority_get_cipher_suite_index' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_priority_get_cipher_suite_index@@GNUTLS_3_4'>
- <parameter type-id='type-id-424' name='pcache'/>
+ <parameter type-id='type-id-427' name='pcache'/>
<parameter type-id='type-id-10' name='idx'/>
- <parameter type-id='type-id-419' name='sidx'/>
+ <parameter type-id='type-id-422' name='sidx'/>
<return type-id='type-id-22'/>
</function-decl>
- <pointer-type-def type-id='type-id-30' size-in-bits='64' id='type-id-1105'/>
- <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-1106'/>
- <pointer-type-def type-id='type-id-31' size-in-bits='64' id='type-id-1107'/>
- <pointer-type-def type-id='type-id-32' size-in-bits='64' id='type-id-1108'/>
+ <pointer-type-def type-id='type-id-30' size-in-bits='64' id='type-id-1109'/>
+ <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-1110'/>
+ <pointer-type-def type-id='type-id-31' size-in-bits='64' id='type-id-1111'/>
+ <pointer-type-def type-id='type-id-32' size-in-bits='64' id='type-id-1112'/>
<function-decl name='gnutls_cipher_suite_info' mangled-name='gnutls_cipher_suite_info' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_cipher_suite_info@@GNUTLS_3_4'>
<parameter type-id='type-id-99' name='idx'/>
<parameter type-id='type-id-64' name='cs_id'/>
- <parameter type-id='type-id-1105' name='kx'/>
- <parameter type-id='type-id-1106' name='cipher'/>
- <parameter type-id='type-id-1107' name='mac'/>
- <parameter type-id='type-id-1108' name='min_version'/>
+ <parameter type-id='type-id-1109' name='kx'/>
+ <parameter type-id='type-id-1110' name='cipher'/>
+ <parameter type-id='type-id-1111' name='mac'/>
+ <parameter type-id='type-id-1112' name='min_version'/>
<return type-id='type-id-27'/>
</function-decl>
<function-decl name='gnutls_cipher_suite_get_name' mangled-name='gnutls_cipher_suite_get_name' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_cipher_suite_get_name@@GNUTLS_3_4'>
@@ -18199,7 +18291,7 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='ecc.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/algorithms' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='ecc.c' comp-dir-path='/root/gnutls/lib/algorithms' language='LANG_C99'>
<function-decl name='gnutls_ecc_curve_get_pk' mangled-name='gnutls_ecc_curve_get_pk' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ecc_curve_get_pk@@GNUTLS_3_4'>
<parameter type-id='type-id-59' name='curve'/>
<return type-id='type-id-60'/>
@@ -18228,17 +18320,17 @@
<parameter type-id='type-id-59' name='curve'/>
<return type-id='type-id-10'/>
</function-decl>
- <qualified-type-def type-id='type-id-59' const='yes' id='type-id-1109'/>
- <pointer-type-def type-id='type-id-1109' size-in-bits='64' id='type-id-1110'/>
+ <qualified-type-def type-id='type-id-59' const='yes' id='type-id-1113'/>
+ <pointer-type-def type-id='type-id-1113' size-in-bits='64' id='type-id-1114'/>
<function-decl name='gnutls_ecc_curve_list' mangled-name='gnutls_ecc_curve_list' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_ecc_curve_list@@GNUTLS_3_4'>
- <return type-id='type-id-1110'/>
+ <return type-id='type-id-1114'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='kx.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/algorithms' language='LANG_C99'>
- <qualified-type-def type-id='type-id-30' const='yes' id='type-id-1111'/>
- <pointer-type-def type-id='type-id-1111' size-in-bits='64' id='type-id-1112'/>
+ <abi-instr version='1.0' address-size='64' path='kx.c' comp-dir-path='/root/gnutls/lib/algorithms' language='LANG_C99'>
+ <qualified-type-def type-id='type-id-30' const='yes' id='type-id-1115'/>
+ <pointer-type-def type-id='type-id-1115' size-in-bits='64' id='type-id-1116'/>
<function-decl name='gnutls_kx_list' mangled-name='gnutls_kx_list' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_kx_list@@GNUTLS_3_4'>
- <return type-id='type-id-1112'/>
+ <return type-id='type-id-1116'/>
</function-decl>
<function-decl name='gnutls_kx_get_id' mangled-name='gnutls_kx_get_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_kx_get_id@@GNUTLS_3_4'>
<parameter type-id='type-id-27' name='name'/>
@@ -18249,9 +18341,9 @@
<return type-id='type-id-27'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='mac.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/algorithms' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='mac.c' comp-dir-path='/root/gnutls/lib/algorithms' language='LANG_C99'>
<function-decl name='gnutls_digest_get_oid' mangled-name='gnutls_digest_get_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_digest_get_oid@@GNUTLS_3_4'>
- <parameter type-id='type-id-211' name='algorithm'/>
+ <parameter type-id='type-id-212' name='algorithm'/>
<return type-id='type-id-27'/>
</function-decl>
<function-decl name='gnutls_oid_to_mac' mangled-name='gnutls_oid_to_mac' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_oid_to_mac@@GNUTLS_3_4'>
@@ -18260,17 +18352,17 @@
</function-decl>
<function-decl name='gnutls_oid_to_digest' mangled-name='gnutls_oid_to_digest' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_oid_to_digest@@GNUTLS_3_4'>
<parameter type-id='type-id-27' name='oid'/>
- <return type-id='type-id-211'/>
+ <return type-id='type-id-212'/>
</function-decl>
- <qualified-type-def type-id='type-id-211' const='yes' id='type-id-1113'/>
- <pointer-type-def type-id='type-id-1113' size-in-bits='64' id='type-id-1114'/>
+ <qualified-type-def type-id='type-id-212' const='yes' id='type-id-1117'/>
+ <pointer-type-def type-id='type-id-1117' size-in-bits='64' id='type-id-1118'/>
<function-decl name='gnutls_digest_list' mangled-name='gnutls_digest_list' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_digest_list@@GNUTLS_3_4'>
- <return type-id='type-id-1114'/>
+ <return type-id='type-id-1118'/>
</function-decl>
- <qualified-type-def type-id='type-id-31' const='yes' id='type-id-1115'/>
- <pointer-type-def type-id='type-id-1115' size-in-bits='64' id='type-id-1116'/>
+ <qualified-type-def type-id='type-id-31' const='yes' id='type-id-1119'/>
+ <pointer-type-def type-id='type-id-1119' size-in-bits='64' id='type-id-1120'/>
<function-decl name='gnutls_mac_list' mangled-name='gnutls_mac_list' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_mac_list@@GNUTLS_3_4'>
- <return type-id='type-id-1116'/>
+ <return type-id='type-id-1120'/>
</function-decl>
<function-decl name='gnutls_mac_get_nonce_size' mangled-name='gnutls_mac_get_nonce_size' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_mac_get_nonce_size@@GNUTLS_3_4'>
<parameter type-id='type-id-31' name='algorithm'/>
@@ -18286,10 +18378,10 @@
</function-decl>
<function-decl name='gnutls_digest_get_id' mangled-name='gnutls_digest_get_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_digest_get_id@@GNUTLS_3_4'>
<parameter type-id='type-id-27' name='name'/>
- <return type-id='type-id-211'/>
+ <return type-id='type-id-212'/>
</function-decl>
<function-decl name='gnutls_digest_get_name' mangled-name='gnutls_digest_get_name' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_digest_get_name@@GNUTLS_3_4'>
- <parameter type-id='type-id-211' name='algorithm'/>
+ <parameter type-id='type-id-212' name='algorithm'/>
<return type-id='type-id-27'/>
</function-decl>
<function-decl name='gnutls_mac_get_name' mangled-name='gnutls_mac_get_name' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_mac_get_name@@GNUTLS_3_4'>
@@ -18301,11 +18393,11 @@
<return type-id='type-id-13'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='protocols.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/algorithms' language='LANG_C99'>
- <qualified-type-def type-id='type-id-32' const='yes' id='type-id-1117'/>
- <pointer-type-def type-id='type-id-1117' size-in-bits='64' id='type-id-1118'/>
+ <abi-instr version='1.0' address-size='64' path='protocols.c' comp-dir-path='/root/gnutls/lib/algorithms' language='LANG_C99'>
+ <qualified-type-def type-id='type-id-32' const='yes' id='type-id-1121'/>
+ <pointer-type-def type-id='type-id-1121' size-in-bits='64' id='type-id-1122'/>
<function-decl name='gnutls_protocol_list' mangled-name='gnutls_protocol_list' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_protocol_list@@GNUTLS_3_4'>
- <return type-id='type-id-1118'/>
+ <return type-id='type-id-1122'/>
</function-decl>
<function-decl name='gnutls_protocol_get_id' mangled-name='gnutls_protocol_get_id' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_protocol_get_id@@GNUTLS_3_4'>
<parameter type-id='type-id-27' name='name'/>
@@ -18320,7 +18412,7 @@
<return type-id='type-id-23'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='publickey.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/algorithms' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='publickey.c' comp-dir-path='/root/gnutls/lib/algorithms' language='LANG_C99'>
<function-decl name='gnutls_pk_get_oid' mangled-name='gnutls_pk_get_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pk_get_oid@@GNUTLS_3_4'>
<parameter type-id='type-id-60' name='algorithm'/>
<return type-id='type-id-27'/>
@@ -18338,34 +18430,34 @@
<return type-id='type-id-60'/>
</function-decl>
<function-decl name='gnutls_pk_list' mangled-name='gnutls_pk_list' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pk_list@@GNUTLS_3_4'>
- <return type-id='type-id-470'/>
+ <return type-id='type-id-473'/>
</function-decl>
<function-decl name='gnutls_pk_algorithm_get_name' mangled-name='gnutls_pk_algorithm_get_name' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pk_algorithm_get_name@@GNUTLS_3_4'>
<parameter type-id='type-id-60' name='algorithm'/>
<return type-id='type-id-27'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='secparams.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/algorithms' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='secparams.c' comp-dir-path='/root/gnutls/lib/algorithms' language='LANG_C99'>
<function-decl name='gnutls_pk_bits_to_sec_param' mangled-name='gnutls_pk_bits_to_sec_param' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pk_bits_to_sec_param@@GNUTLS_3_4'>
<parameter type-id='type-id-60' name='algo'/>
<parameter type-id='type-id-10' name='bits'/>
- <return type-id='type-id-202'/>
+ <return type-id='type-id-203'/>
</function-decl>
<function-decl name='gnutls_sec_param_get_name' mangled-name='gnutls_sec_param_get_name' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_sec_param_get_name@@GNUTLS_3_4'>
- <parameter type-id='type-id-202' name='param'/>
+ <parameter type-id='type-id-203' name='param'/>
<return type-id='type-id-27'/>
</function-decl>
<function-decl name='gnutls_sec_param_to_symmetric_bits' mangled-name='gnutls_sec_param_to_symmetric_bits' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_sec_param_to_symmetric_bits@@GNUTLS_3_4'>
- <parameter type-id='type-id-202' name='param'/>
+ <parameter type-id='type-id-203' name='param'/>
<return type-id='type-id-10'/>
</function-decl>
<function-decl name='gnutls_sec_param_to_pk_bits' mangled-name='gnutls_sec_param_to_pk_bits' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_sec_param_to_pk_bits@@GNUTLS_3_4'>
<parameter type-id='type-id-60' name='algo'/>
- <parameter type-id='type-id-202' name='param'/>
+ <parameter type-id='type-id-203' name='param'/>
<return type-id='type-id-10'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='sign.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/algorithms' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='sign.c' comp-dir-path='/root/gnutls/lib/algorithms' language='LANG_C99'>
<function-decl name='gnutls_sign_supports_pk_algorithm' mangled-name='gnutls_sign_supports_pk_algorithm' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_sign_supports_pk_algorithm@@GNUTLS_3_6_0'>
<parameter type-id='type-id-21' name='sign'/>
<parameter type-id='type-id-60' name='pk'/>
@@ -18377,7 +18469,7 @@
</function-decl>
<function-decl name='gnutls_sign_get_hash_algorithm' mangled-name='gnutls_sign_get_hash_algorithm' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_sign_get_hash_algorithm@@GNUTLS_3_4'>
<parameter type-id='type-id-21' name='sign'/>
- <return type-id='type-id-211'/>
+ <return type-id='type-id-212'/>
</function-decl>
<function-decl name='gnutls_sign_get_oid' mangled-name='gnutls_sign_get_oid' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_sign_get_oid@@GNUTLS_3_4'>
<parameter type-id='type-id-21' name='sign'/>
@@ -18385,7 +18477,7 @@
</function-decl>
<function-decl name='gnutls_pk_to_sign' mangled-name='gnutls_pk_to_sign' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_pk_to_sign@@GNUTLS_3_4'>
<parameter type-id='type-id-60' name='pk'/>
- <parameter type-id='type-id-211' name='hash'/>
+ <parameter type-id='type-id-212' name='hash'/>
<return type-id='type-id-21'/>
</function-decl>
<function-decl name='gnutls_oid_to_sign' mangled-name='gnutls_oid_to_sign' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_oid_to_sign@@GNUTLS_3_4'>
@@ -18396,10 +18488,10 @@
<parameter type-id='type-id-27' name='name'/>
<return type-id='type-id-21'/>
</function-decl>
- <qualified-type-def type-id='type-id-21' const='yes' id='type-id-1119'/>
- <pointer-type-def type-id='type-id-1119' size-in-bits='64' id='type-id-1120'/>
+ <qualified-type-def type-id='type-id-21' const='yes' id='type-id-1123'/>
+ <pointer-type-def type-id='type-id-1123' size-in-bits='64' id='type-id-1124'/>
<function-decl name='gnutls_sign_list' mangled-name='gnutls_sign_list' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_sign_list@@GNUTLS_3_4'>
- <return type-id='type-id-1120'/>
+ <return type-id='type-id-1124'/>
</function-decl>
<function-decl name='gnutls_sign_is_secure2' mangled-name='gnutls_sign_is_secure2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_sign_is_secure2@@GNUTLS_3_6_0'>
<parameter type-id='type-id-21' name='algorithm'/>
@@ -18418,7 +18510,7 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='groups.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/algorithms' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='groups.c' comp-dir-path='/root/gnutls/lib/algorithms' language='LANG_C99'>
<function-decl name='gnutls_group_get_name' mangled-name='gnutls_group_get_name' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_group_get_name@@GNUTLS_3_6_0'>
<parameter type-id='type-id-56' name='group'/>
<return type-id='type-id-27'/>
@@ -18427,66 +18519,66 @@
<parameter type-id='type-id-27' name='name'/>
<return type-id='type-id-56'/>
</function-decl>
- <qualified-type-def type-id='type-id-56' const='yes' id='type-id-1121'/>
- <pointer-type-def type-id='type-id-1121' size-in-bits='64' id='type-id-1122'/>
+ <qualified-type-def type-id='type-id-56' const='yes' id='type-id-1125'/>
+ <pointer-type-def type-id='type-id-1125' size-in-bits='64' id='type-id-1126'/>
<function-decl name='gnutls_group_list' mangled-name='gnutls_group_list' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gnutls_group_list@@GNUTLS_3_6_0'>
- <return type-id='type-id-1122'/>
+ <return type-id='type-id-1126'/>
</function-decl>
<function-decl name='_gnutls_ecc_curve_is_supported' mangled-name='_gnutls_ecc_curve_is_supported' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='accelerated.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/accelerated' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='accelerated.c' comp-dir-path='/root/gnutls/lib/accelerated' language='LANG_C99'>
<function-decl name='register_x86_crypto' mangled-name='register_x86_crypto' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='aes-cbc-x86-aesni.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/accelerated/x86' language='LANG_C99'>
- <class-decl name='__anonymous_struct__' size-in-bits='768' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-1123' visibility='default' id='type-id-1124'>
+ <abi-instr version='1.0' address-size='64' path='aes-cbc-x86-aesni.c' comp-dir-path='/root/gnutls/lib/accelerated/x86' language='LANG_C99'>
+ <class-decl name='__anonymous_struct__' size-in-bits='768' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-1127' visibility='default' id='type-id-1128'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='init' type-id='type-id-808' visibility='default'/>
+ <var-decl name='init' type-id='type-id-811' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='setkey' type-id='type-id-809' visibility='default'/>
+ <var-decl name='setkey' type-id='type-id-812' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='setiv' type-id='type-id-813' visibility='default'/>
+ <var-decl name='setiv' type-id='type-id-816' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='getiv' type-id='type-id-1125' visibility='default'/>
+ <var-decl name='getiv' type-id='type-id-1129' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='encrypt' type-id='type-id-814' visibility='default'/>
+ <var-decl name='encrypt' type-id='type-id-817' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='decrypt' type-id='type-id-815' visibility='default'/>
+ <var-decl name='decrypt' type-id='type-id-818' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='aead_encrypt' type-id='type-id-810' visibility='default'/>
+ <var-decl name='aead_encrypt' type-id='type-id-813' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
- <var-decl name='aead_decrypt' type-id='type-id-811' visibility='default'/>
+ <var-decl name='aead_decrypt' type-id='type-id-814' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='deinit' type-id='type-id-812' visibility='default'/>
+ <var-decl name='deinit' type-id='type-id-815' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
- <var-decl name='auth' type-id='type-id-1126' visibility='default'/>
+ <var-decl name='auth' type-id='type-id-1130' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='640'>
- <var-decl name='tag' type-id='type-id-1127' visibility='default'/>
+ <var-decl name='tag' type-id='type-id-1131' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='704'>
- <var-decl name='exists' type-id='type-id-1128' visibility='default'/>
+ <var-decl name='exists' type-id='type-id-1132' visibility='default'/>
</data-member>
</class-decl>
- <typedef-decl name='gnutls_cipher_getiv_func' type-id='type-id-117' id='type-id-1125'/>
- <typedef-decl name='gnutls_cipher_auth_func' type-id='type-id-117' id='type-id-1126'/>
- <typedef-decl name='gnutls_cipher_tag_func' type-id='type-id-119' id='type-id-1127'/>
- <pointer-type-def type-id='type-id-1129' size-in-bits='64' id='type-id-1128'/>
- <typedef-decl name='gnutls_crypto_cipher_st' type-id='type-id-1124' id='type-id-1123'/>
- <qualified-type-def type-id='type-id-1123' const='yes' id='type-id-1130'/>
- <var-decl name='_gnutls_aesni_x86' type-id='type-id-1130' visibility='default'/>
+ <typedef-decl name='gnutls_cipher_getiv_func' type-id='type-id-117' id='type-id-1129'/>
+ <typedef-decl name='gnutls_cipher_auth_func' type-id='type-id-117' id='type-id-1130'/>
+ <typedef-decl name='gnutls_cipher_tag_func' type-id='type-id-119' id='type-id-1131'/>
+ <pointer-type-def type-id='type-id-1133' size-in-bits='64' id='type-id-1132'/>
+ <typedef-decl name='gnutls_crypto_cipher_st' type-id='type-id-1128' id='type-id-1127'/>
+ <qualified-type-def type-id='type-id-1127' const='yes' id='type-id-1134'/>
+ <var-decl name='_gnutls_aesni_x86' type-id='type-id-1134' visibility='default'/>
<function-decl name='aesni_cbc_encrypt' mangled-name='aesni_cbc_encrypt' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -18496,13 +18588,13 @@
<function-decl name='aesni_set_encrypt_key' mangled-name='aesni_set_encrypt_key' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-type size-in-bits='64' id='type-id-1129'>
+ <function-type size-in-bits='64' id='type-id-1133'>
<parameter type-id='type-id-29'/>
<return type-id='type-id-22'/>
</function-type>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='aes-cbc-x86-ssse3.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/accelerated/x86' language='LANG_C99'>
- <var-decl name='_gnutls_aes_ssse3' type-id='type-id-1130' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='aes-cbc-x86-ssse3.c' comp-dir-path='/root/gnutls/lib/accelerated/x86' language='LANG_C99'>
+ <var-decl name='_gnutls_aes_ssse3' type-id='type-id-1134' visibility='default'/>
<function-decl name='vpaes_cbc_encrypt' mangled-name='vpaes_cbc_encrypt' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -18513,8 +18605,8 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='aes-ccm-x86-aesni.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/accelerated/x86' language='LANG_C99'>
- <var-decl name='_gnutls_aes_ccm_x86_aesni' type-id='type-id-1130' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='aes-ccm-x86-aesni.c' comp-dir-path='/root/gnutls/lib/accelerated/x86' language='LANG_C99'>
+ <var-decl name='_gnutls_aes_ccm_x86_aesni' type-id='type-id-1134' visibility='default'/>
<function-decl name='aesni_ecb_encrypt' mangled-name='aesni_ecb_encrypt' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -18525,8 +18617,8 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='aes-gcm-padlock.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/accelerated/x86' language='LANG_C99'>
- <var-decl name='_gnutls_aes_gcm_padlock' type-id='type-id-1130' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='aes-gcm-padlock.c' comp-dir-path='/root/gnutls/lib/accelerated/x86' language='LANG_C99'>
+ <var-decl name='_gnutls_aes_gcm_padlock' type-id='type-id-1134' visibility='default'/>
<function-decl name='nettle_gcm_update' mangled-name='nettle_gcm_update' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -18552,11 +18644,11 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='aes-gcm-x86-aesni.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/accelerated/x86' language='LANG_C99'>
- <var-decl name='_gnutls_aes_gcm_x86_aesni' type-id='type-id-1130' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='aes-gcm-x86-aesni.c' comp-dir-path='/root/gnutls/lib/accelerated/x86' language='LANG_C99'>
+ <var-decl name='_gnutls_aes_gcm_x86_aesni' type-id='type-id-1134' visibility='default'/>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='aes-gcm-x86-pclmul-avx.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/accelerated/x86' language='LANG_C99'>
- <var-decl name='_gnutls_aes_gcm_pclmul_avx' type-id='type-id-1130' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='aes-gcm-x86-pclmul-avx.c' comp-dir-path='/root/gnutls/lib/accelerated/x86' language='LANG_C99'>
+ <var-decl name='_gnutls_aes_gcm_pclmul_avx' type-id='type-id-1134' visibility='default'/>
<function-decl name='aesni_gcm_decrypt' mangled-name='aesni_gcm_decrypt' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -18576,8 +18668,8 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='aes-gcm-x86-pclmul.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/accelerated/x86' language='LANG_C99'>
- <var-decl name='_gnutls_aes_gcm_pclmul' type-id='type-id-1130' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='aes-gcm-x86-pclmul.c' comp-dir-path='/root/gnutls/lib/accelerated/x86' language='LANG_C99'>
+ <var-decl name='_gnutls_aes_gcm_pclmul' type-id='type-id-1134' visibility='default'/>
<function-decl name='gcm_ghash_clmul' mangled-name='gcm_ghash_clmul' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -18588,14 +18680,14 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='aes-gcm-x86-ssse3.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/accelerated/x86' language='LANG_C99'>
- <var-decl name='_gnutls_aes_gcm_x86_ssse3' type-id='type-id-1130' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='aes-gcm-x86-ssse3.c' comp-dir-path='/root/gnutls/lib/accelerated/x86' language='LANG_C99'>
+ <var-decl name='_gnutls_aes_gcm_x86_ssse3' type-id='type-id-1134' visibility='default'/>
<function-decl name='vpaes_encrypt' mangled-name='vpaes_encrypt' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='aes-padlock.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/accelerated/x86' language='LANG_C99'>
- <var-decl name='_gnutls_aes_padlock' type-id='type-id-1130' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='aes-padlock.c' comp-dir-path='/root/gnutls/lib/accelerated/x86' language='LANG_C99'>
+ <var-decl name='_gnutls_aes_padlock' type-id='type-id-1134' visibility='default'/>
<function-decl name='padlock_cbc_encrypt' mangled-name='padlock_cbc_encrypt' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -18609,42 +18701,42 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='hmac-padlock.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/accelerated/x86' language='LANG_C99'>
- <class-decl name='__anonymous_struct__' size-in-bits='576' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-1131' visibility='default' id='type-id-1132'>
+ <abi-instr version='1.0' address-size='64' path='hmac-padlock.c' comp-dir-path='/root/gnutls/lib/accelerated/x86' language='LANG_C99'>
+ <class-decl name='__anonymous_struct__' size-in-bits='576' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-1135' visibility='default' id='type-id-1136'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='init' type-id='type-id-797' visibility='default'/>
+ <var-decl name='init' type-id='type-id-800' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='setkey' type-id='type-id-798' visibility='default'/>
+ <var-decl name='setkey' type-id='type-id-801' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='setnonce' type-id='type-id-799' visibility='default'/>
+ <var-decl name='setnonce' type-id='type-id-802' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='hash' type-id='type-id-800' visibility='default'/>
+ <var-decl name='hash' type-id='type-id-803' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='output' type-id='type-id-801' visibility='default'/>
+ <var-decl name='output' type-id='type-id-804' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='deinit' type-id='type-id-802' visibility='default'/>
+ <var-decl name='deinit' type-id='type-id-805' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='fast' type-id='type-id-805' visibility='default'/>
+ <var-decl name='fast' type-id='type-id-808' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
- <var-decl name='copy' type-id='type-id-1133' visibility='default'/>
+ <var-decl name='copy' type-id='type-id-1137' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='exists' type-id='type-id-1134' visibility='default'/>
+ <var-decl name='exists' type-id='type-id-1138' visibility='default'/>
</data-member>
</class-decl>
- <typedef-decl name='gnutls_mac_copy_func' type-id='type-id-130' id='type-id-1133'/>
- <pointer-type-def type-id='type-id-1135' size-in-bits='64' id='type-id-1134'/>
- <typedef-decl name='gnutls_crypto_mac_st' type-id='type-id-1132' id='type-id-1131'/>
- <qualified-type-def type-id='type-id-1131' const='yes' id='type-id-1136'/>
- <var-decl name='_gnutls_hmac_sha_padlock' type-id='type-id-1136' visibility='default'/>
- <var-decl name='_gnutls_hmac_sha_padlock_nano' type-id='type-id-1136' visibility='default'/>
+ <typedef-decl name='gnutls_mac_copy_func' type-id='type-id-130' id='type-id-1137'/>
+ <pointer-type-def type-id='type-id-1139' size-in-bits='64' id='type-id-1138'/>
+ <typedef-decl name='gnutls_crypto_mac_st' type-id='type-id-1136' id='type-id-1135'/>
+ <qualified-type-def type-id='type-id-1135' const='yes' id='type-id-1140'/>
+ <var-decl name='_gnutls_hmac_sha_padlock' type-id='type-id-1140' visibility='default'/>
+ <var-decl name='_gnutls_hmac_sha_padlock_nano' type-id='type-id-1140' visibility='default'/>
<function-decl name='wrap_padlock_hash_fast' mangled-name='wrap_padlock_hash_fast' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -18663,13 +18755,13 @@
<function-decl name='padlock_sha1_update' mangled-name='padlock_sha1_update' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-type size-in-bits='64' id='type-id-1135'>
+ <function-type size-in-bits='64' id='type-id-1139'>
<parameter type-id='type-id-31'/>
<return type-id='type-id-22'/>
</function-type>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='hmac-x86-ssse3.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/accelerated/x86' language='LANG_C99'>
- <var-decl name='_gnutls_hmac_sha_x86_ssse3' type-id='type-id-1136' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='hmac-x86-ssse3.c' comp-dir-path='/root/gnutls/lib/accelerated/x86' language='LANG_C99'>
+ <var-decl name='_gnutls_hmac_sha_x86_ssse3' type-id='type-id-1140' visibility='default'/>
<function-decl name='x86_sha512_update' mangled-name='x86_sha512_update' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -18680,8 +18772,8 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='sha-padlock.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/accelerated/x86' language='LANG_C99'>
- <class-decl name='nettle_hash' size-in-bits='384' is-struct='yes' visibility='default' id='type-id-1137'>
+ <abi-instr version='1.0' address-size='64' path='sha-padlock.c' comp-dir-path='/root/gnutls/lib/accelerated/x86' language='LANG_C99'>
+ <class-decl name='nettle_hash' size-in-bits='384' is-struct='yes' visibility='default' id='type-id-1141'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='name' type-id='type-id-27' visibility='default'/>
</data-member>
@@ -18695,56 +18787,56 @@
<var-decl name='block_size' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='init' type-id='type-id-1138' visibility='default'/>
+ <var-decl name='init' type-id='type-id-1142' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='update' type-id='type-id-1139' visibility='default'/>
+ <var-decl name='update' type-id='type-id-1143' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='digest' type-id='type-id-1140' visibility='default'/>
+ <var-decl name='digest' type-id='type-id-1144' visibility='default'/>
</data-member>
</class-decl>
- <typedef-decl name='nettle_hash_init_func' type-id='type-id-120' id='type-id-1141'/>
- <pointer-type-def type-id='type-id-1141' size-in-bits='64' id='type-id-1138'/>
- <typedef-decl name='nettle_hash_update_func' type-id='type-id-1142' id='type-id-1143'/>
- <pointer-type-def type-id='type-id-1143' size-in-bits='64' id='type-id-1139'/>
- <typedef-decl name='nettle_hash_digest_func' type-id='type-id-1144' id='type-id-1145'/>
- <pointer-type-def type-id='type-id-1145' size-in-bits='64' id='type-id-1140'/>
- <qualified-type-def type-id='type-id-1137' const='yes' id='type-id-1146'/>
- <var-decl name='padlock_sha1' type-id='type-id-1146' visibility='default'/>
- <var-decl name='padlock_sha224' type-id='type-id-1146' visibility='default'/>
- <var-decl name='padlock_sha256' type-id='type-id-1146' visibility='default'/>
- <var-decl name='padlock_sha384' type-id='type-id-1146' visibility='default'/>
- <var-decl name='padlock_sha512' type-id='type-id-1146' visibility='default'/>
- <class-decl name='__anonymous_struct__' size-in-bits='448' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-1147' visibility='default' id='type-id-1148'>
+ <typedef-decl name='nettle_hash_init_func' type-id='type-id-120' id='type-id-1145'/>
+ <pointer-type-def type-id='type-id-1145' size-in-bits='64' id='type-id-1142'/>
+ <typedef-decl name='nettle_hash_update_func' type-id='type-id-1146' id='type-id-1147'/>
+ <pointer-type-def type-id='type-id-1147' size-in-bits='64' id='type-id-1143'/>
+ <typedef-decl name='nettle_hash_digest_func' type-id='type-id-1148' id='type-id-1149'/>
+ <pointer-type-def type-id='type-id-1149' size-in-bits='64' id='type-id-1144'/>
+ <qualified-type-def type-id='type-id-1141' const='yes' id='type-id-1150'/>
+ <var-decl name='padlock_sha1' type-id='type-id-1150' visibility='default'/>
+ <var-decl name='padlock_sha224' type-id='type-id-1150' visibility='default'/>
+ <var-decl name='padlock_sha256' type-id='type-id-1150' visibility='default'/>
+ <var-decl name='padlock_sha384' type-id='type-id-1150' visibility='default'/>
+ <var-decl name='padlock_sha512' type-id='type-id-1150' visibility='default'/>
+ <class-decl name='__anonymous_struct__' size-in-bits='448' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-1151' visibility='default' id='type-id-1152'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='init' type-id='type-id-788' visibility='default'/>
+ <var-decl name='init' type-id='type-id-791' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='hash' type-id='type-id-789' visibility='default'/>
+ <var-decl name='hash' type-id='type-id-792' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='output' type-id='type-id-790' visibility='default'/>
+ <var-decl name='output' type-id='type-id-793' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='deinit' type-id='type-id-791' visibility='default'/>
+ <var-decl name='deinit' type-id='type-id-794' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='fast' type-id='type-id-794' visibility='default'/>
+ <var-decl name='fast' type-id='type-id-797' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='copy' type-id='type-id-1149' visibility='default'/>
+ <var-decl name='copy' type-id='type-id-1153' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='exists' type-id='type-id-1150' visibility='default'/>
+ <var-decl name='exists' type-id='type-id-1154' visibility='default'/>
</data-member>
</class-decl>
- <typedef-decl name='gnutls_digest_copy_func' type-id='type-id-130' id='type-id-1149'/>
- <pointer-type-def type-id='type-id-1151' size-in-bits='64' id='type-id-1150'/>
- <typedef-decl name='gnutls_crypto_digest_st' type-id='type-id-1148' id='type-id-1147'/>
- <qualified-type-def type-id='type-id-1147' const='yes' id='type-id-1152'/>
- <var-decl name='_gnutls_sha_padlock' type-id='type-id-1152' visibility='default'/>
- <var-decl name='_gnutls_sha_padlock_nano' type-id='type-id-1152' visibility='default'/>
+ <typedef-decl name='gnutls_digest_copy_func' type-id='type-id-130' id='type-id-1153'/>
+ <pointer-type-def type-id='type-id-1155' size-in-bits='64' id='type-id-1154'/>
+ <typedef-decl name='gnutls_crypto_digest_st' type-id='type-id-1152' id='type-id-1151'/>
+ <qualified-type-def type-id='type-id-1151' const='yes' id='type-id-1156'/>
+ <var-decl name='_gnutls_sha_padlock' type-id='type-id-1156' visibility='default'/>
+ <var-decl name='_gnutls_sha_padlock_nano' type-id='type-id-1156' visibility='default'/>
<function-decl name='padlock_sha1_oneshot' mangled-name='padlock_sha1_oneshot' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -18775,30 +18867,30 @@
<function-decl name='padlock_sha1_blocks' mangled-name='padlock_sha1_blocks' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-type size-in-bits='64' id='type-id-1151'>
- <parameter type-id='type-id-211'/>
+ <function-type size-in-bits='64' id='type-id-1155'>
+ <parameter type-id='type-id-212'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-1142'>
+ <function-type size-in-bits='64' id='type-id-1146'>
<parameter type-id='type-id-101'/>
<parameter type-id='type-id-99'/>
- <parameter type-id='type-id-900'/>
+ <parameter type-id='type-id-903'/>
<return type-id='type-id-111'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-1144'>
+ <function-type size-in-bits='64' id='type-id-1148'>
<parameter type-id='type-id-101'/>
<parameter type-id='type-id-99'/>
- <parameter type-id='type-id-191'/>
+ <parameter type-id='type-id-192'/>
<return type-id='type-id-111'/>
</function-type>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='sha-x86-ssse3.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/accelerated/x86' language='LANG_C99'>
- <var-decl name='x86_sha1' type-id='type-id-1146' visibility='default'/>
- <var-decl name='x86_sha224' type-id='type-id-1146' visibility='default'/>
- <var-decl name='x86_sha256' type-id='type-id-1146' visibility='default'/>
- <var-decl name='x86_sha384' type-id='type-id-1146' visibility='default'/>
- <var-decl name='x86_sha512' type-id='type-id-1146' visibility='default'/>
- <var-decl name='_gnutls_sha_x86_ssse3' type-id='type-id-1152' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='sha-x86-ssse3.c' comp-dir-path='/root/gnutls/lib/accelerated/x86' language='LANG_C99'>
+ <var-decl name='x86_sha1' type-id='type-id-1150' visibility='default'/>
+ <var-decl name='x86_sha224' type-id='type-id-1150' visibility='default'/>
+ <var-decl name='x86_sha256' type-id='type-id-1150' visibility='default'/>
+ <var-decl name='x86_sha384' type-id='type-id-1150' visibility='default'/>
+ <var-decl name='x86_sha512' type-id='type-id-1150' visibility='default'/>
+ <var-decl name='_gnutls_sha_x86_ssse3' type-id='type-id-1156' visibility='default'/>
<function-decl name='nettle_sha512_update' mangled-name='nettle_sha512_update' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -18818,7 +18910,7 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='x86-common.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/accelerated/x86' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='x86-common.c' comp-dir-path='/root/gnutls/lib/accelerated/x86' language='LANG_C99'>
<function-decl name='gnutls_crypto_single_cipher_register' mangled-name='gnutls_crypto_single_cipher_register' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -18835,75 +18927,81 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='pk.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/nettle' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='pk.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
<var-decl name='crypto_pk_prio' type-id='type-id-22' visibility='default'/>
- <class-decl name='gnutls_crypto_pk' size-in-bits='768' is-struct='yes' visibility='default' id='type-id-1153'>
+ <class-decl name='gnutls_crypto_pk' size-in-bits='768' is-struct='yes' visibility='default' id='type-id-1157'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='encrypt' type-id='type-id-1154' visibility='default'/>
+ <var-decl name='encrypt' type-id='type-id-1158' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='decrypt' type-id='type-id-1154' visibility='default'/>
+ <var-decl name='decrypt' type-id='type-id-1158' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='decrypt2' type-id='type-id-1155' visibility='default'/>
+ <var-decl name='decrypt2' type-id='type-id-1159' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='sign' type-id='type-id-1156' visibility='default'/>
+ <var-decl name='sign' type-id='type-id-1160' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='verify' type-id='type-id-1157' visibility='default'/>
+ <var-decl name='verify' type-id='type-id-1161' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='verify_priv_params' type-id='type-id-1158' visibility='default'/>
+ <var-decl name='verify_priv_params' type-id='type-id-1162' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='verify_pub_params' type-id='type-id-1158' visibility='default'/>
+ <var-decl name='verify_pub_params' type-id='type-id-1162' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
- <var-decl name='generate_keys' type-id='type-id-1159' visibility='default'/>
+ <var-decl name='generate_keys' type-id='type-id-1163' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='generate_params' type-id='type-id-1160' visibility='default'/>
+ <var-decl name='generate_params' type-id='type-id-1164' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
- <var-decl name='pk_fixup_private_params' type-id='type-id-1161' visibility='default'/>
+ <var-decl name='pk_fixup_private_params' type-id='type-id-1165' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='640'>
- <var-decl name='derive' type-id='type-id-1162' visibility='default'/>
+ <var-decl name='derive' type-id='type-id-1166' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='704'>
- <var-decl name='curve_exists' type-id='type-id-1163' visibility='default'/>
+ <var-decl name='curve_exists' type-id='type-id-1167' visibility='default'/>
</data-member>
</class-decl>
- <qualified-type-def type-id='type-id-312' const='yes' id='type-id-1164'/>
- <pointer-type-def type-id='type-id-1164' size-in-bits='64' id='type-id-1165'/>
- <pointer-type-def type-id='type-id-1166' size-in-bits='64' id='type-id-1154'/>
- <pointer-type-def type-id='type-id-1167' size-in-bits='64' id='type-id-1155'/>
- <qualified-type-def type-id='type-id-317' const='yes' id='type-id-1168'/>
+ <qualified-type-def type-id='type-id-315' const='yes' id='type-id-1168'/>
<pointer-type-def type-id='type-id-1168' size-in-bits='64' id='type-id-1169'/>
- <pointer-type-def type-id='type-id-1170' size-in-bits='64' id='type-id-1156'/>
- <pointer-type-def type-id='type-id-1171' size-in-bits='64' id='type-id-1157'/>
- <pointer-type-def type-id='type-id-1172' size-in-bits='64' id='type-id-1158'/>
- <pointer-type-def type-id='type-id-312' size-in-bits='64' id='type-id-1173'/>
- <pointer-type-def type-id='type-id-1174' size-in-bits='64' id='type-id-1159'/>
- <pointer-type-def type-id='type-id-1175' size-in-bits='64' id='type-id-1160'/>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-1176'>
+ <pointer-type-def type-id='type-id-1170' size-in-bits='64' id='type-id-1158'/>
+ <pointer-type-def type-id='type-id-1171' size-in-bits='64' id='type-id-1159'/>
+ <qualified-type-def type-id='type-id-320' const='yes' id='type-id-1172'/>
+ <pointer-type-def type-id='type-id-1172' size-in-bits='64' id='type-id-1173'/>
+ <pointer-type-def type-id='type-id-1174' size-in-bits='64' id='type-id-1160'/>
+ <pointer-type-def type-id='type-id-1175' size-in-bits='64' id='type-id-1161'/>
+ <pointer-type-def type-id='type-id-1176' size-in-bits='64' id='type-id-1162'/>
+ <pointer-type-def type-id='type-id-315' size-in-bits='64' id='type-id-1177'/>
+ <pointer-type-def type-id='type-id-1178' size-in-bits='64' id='type-id-1163'/>
+ <pointer-type-def type-id='type-id-1179' size-in-bits='64' id='type-id-1164'/>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-1180'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_IMPORT' value='0'/>
<enumerator name='GNUTLS_EXPORT' value='1'/>
</enum-decl>
- <typedef-decl name='gnutls_direction_t' type-id='type-id-1176' id='type-id-1177'/>
- <pointer-type-def type-id='type-id-1178' size-in-bits='64' id='type-id-1161'/>
- <pointer-type-def type-id='type-id-1179' size-in-bits='64' id='type-id-1162'/>
- <pointer-type-def type-id='type-id-1180' size-in-bits='64' id='type-id-1163'/>
- <typedef-decl name='gnutls_crypto_pk_st' type-id='type-id-1153' id='type-id-1181'/>
- <var-decl name='_gnutls_pk_ops' type-id='type-id-1181' visibility='default'/>
- <function-decl name='nettle_get_secp_256r1' mangled-name='nettle_get_secp_256r1' visibility='default' binding='global' size-in-bits='64'>
+ <typedef-decl name='gnutls_direction_t' type-id='type-id-1180' id='type-id-1181'/>
+ <pointer-type-def type-id='type-id-1182' size-in-bits='64' id='type-id-1165'/>
+ <pointer-type-def type-id='type-id-1183' size-in-bits='64' id='type-id-1166'/>
+ <pointer-type-def type-id='type-id-1184' size-in-bits='64' id='type-id-1167'/>
+ <typedef-decl name='gnutls_crypto_pk_st' type-id='type-id-1157' id='type-id-1185'/>
+ <var-decl name='_gnutls_pk_ops' type-id='type-id-1185' visibility='default'/>
+ <function-decl name='nettle_get_secp_192r1' mangled-name='nettle_get_secp_192r1' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='nettle_get_secp_521r1' mangled-name='nettle_get_secp_521r1' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
+ <function-decl name='nettle_get_secp_256r1' mangled-name='nettle_get_secp_256r1' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ <function-decl name='nettle_get_secp_224r1' mangled-name='nettle_get_secp_224r1' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
<function-decl name='nettle_get_secp_384r1' mangled-name='nettle_get_secp_384r1' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -18913,10 +19011,10 @@
<function-decl name='nettle_ecc_point_set' mangled-name='nettle_ecc_point_set' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-decl name='_gnutls_get_gost_256cpa' mangled-name='_gnutls_get_gost_256cpa' visibility='default' binding='global' size-in-bits='64'>
+ <function-decl name='_gnutls_get_gost_gc256b' mangled-name='_gnutls_get_gost_gc256b' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-decl name='_gnutls_get_gost_512a' mangled-name='_gnutls_get_gost_512a' visibility='default' binding='global' size-in-bits='64'>
+ <function-decl name='_gnutls_get_gost_gc512a' mangled-name='_gnutls_get_gost_gc512a' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='nettle_ecc_point_clear' mangled-name='nettle_ecc_point_clear' visibility='default' binding='global' size-in-bits='64'>
@@ -18937,6 +19035,9 @@
<function-decl name='__gmpz_cmp' mangled-name='__gmpz_cmp' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
+ <function-decl name='gnutls_nettle_curve448_ed448_shake256_public_key' mangled-name='gnutls_nettle_curve448_ed448_shake256_public_key' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
<function-decl name='nettle_ed25519_sha512_public_key' mangled-name='nettle_ed25519_sha512_public_key' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -19012,6 +19113,9 @@
<function-decl name='nettle_ecc_scalar_get' mangled-name='nettle_ecc_scalar_get' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
+ <function-decl name='gnutls_nettle_curve448_curve448_mul_g' mangled-name='gnutls_nettle_curve448_curve448_mul_g' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
<function-decl name='nettle_curve25519_mul_g' mangled-name='nettle_curve25519_mul_g' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -19036,6 +19140,9 @@
<function-decl name='nettle_ed25519_sha512_verify' mangled-name='nettle_ed25519_sha512_verify' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
+ <function-decl name='gnutls_nettle_curve448_ed448_shake256_verify' mangled-name='gnutls_nettle_curve448_ed448_shake256_verify' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
<function-decl name='_gnutls_decode_gost_rs' mangled-name='_gnutls_decode_gost_rs' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -19057,6 +19164,9 @@
<function-decl name='nettle_rsa_pkcs1_verify' mangled-name='nettle_rsa_pkcs1_verify' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
+ <function-decl name='gnutls_nettle_curve448_ed448_shake256_sign' mangled-name='gnutls_nettle_curve448_ed448_shake256_sign' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
<function-decl name='nettle_ed25519_sha512_sign' mangled-name='nettle_ed25519_sha512_sign' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -19108,6 +19218,9 @@
<function-decl name='nettle_mpz_get_str_256' mangled-name='nettle_mpz_get_str_256' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
+ <function-decl name='gnutls_nettle_curve448_curve448_mul' mangled-name='gnutls_nettle_curve448_curve448_mul' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
<function-decl name='nettle_curve25519_mul' mangled-name='nettle_curve25519_mul' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -19138,180 +19251,180 @@
<function-decl name='nettle_rsa_private_key_prepare' mangled-name='nettle_rsa_private_key_prepare' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-type size-in-bits='64' id='type-id-1180'>
+ <function-type size-in-bits='64' id='type-id-1184'>
<parameter type-id='type-id-59'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-1171'>
+ <function-type size-in-bits='64' id='type-id-1175'>
<parameter type-id='type-id-60'/>
<parameter type-id='type-id-57'/>
<parameter type-id='type-id-57'/>
- <parameter type-id='type-id-1165'/>
<parameter type-id='type-id-1169'/>
+ <parameter type-id='type-id-1173'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-1167'>
+ <function-type size-in-bits='64' id='type-id-1171'>
<parameter type-id='type-id-60'/>
<parameter type-id='type-id-57'/>
<parameter type-id='type-id-64'/>
<parameter type-id='type-id-99'/>
- <parameter type-id='type-id-1165'/>
+ <parameter type-id='type-id-1169'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-1172'>
+ <function-type size-in-bits='64' id='type-id-1176'>
<parameter type-id='type-id-60'/>
- <parameter type-id='type-id-1165'/>
+ <parameter type-id='type-id-1169'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-1166'>
+ <function-type size-in-bits='64' id='type-id-1170'>
<parameter type-id='type-id-60'/>
- <parameter type-id='type-id-275'/>
+ <parameter type-id='type-id-278'/>
<parameter type-id='type-id-57'/>
- <parameter type-id='type-id-1165'/>
+ <parameter type-id='type-id-1169'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-1170'>
+ <function-type size-in-bits='64' id='type-id-1174'>
<parameter type-id='type-id-60'/>
- <parameter type-id='type-id-275'/>
+ <parameter type-id='type-id-278'/>
<parameter type-id='type-id-57'/>
- <parameter type-id='type-id-1165'/>
<parameter type-id='type-id-1169'/>
+ <parameter type-id='type-id-1173'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-1179'>
+ <function-type size-in-bits='64' id='type-id-1183'>
<parameter type-id='type-id-60'/>
- <parameter type-id='type-id-275'/>
- <parameter type-id='type-id-1165'/>
- <parameter type-id='type-id-1165'/>
+ <parameter type-id='type-id-278'/>
+ <parameter type-id='type-id-1169'/>
+ <parameter type-id='type-id-1169'/>
<parameter type-id='type-id-57'/>
<parameter type-id='type-id-10'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-1178'>
+ <function-type size-in-bits='64' id='type-id-1182'>
<parameter type-id='type-id-60'/>
+ <parameter type-id='type-id-1181'/>
<parameter type-id='type-id-1177'/>
- <parameter type-id='type-id-1173'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-1175'>
+ <function-type size-in-bits='64' id='type-id-1179'>
<parameter type-id='type-id-60'/>
<parameter type-id='type-id-10'/>
- <parameter type-id='type-id-1173'/>
+ <parameter type-id='type-id-1177'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-1174'>
+ <function-type size-in-bits='64' id='type-id-1178'>
<parameter type-id='type-id-60'/>
<parameter type-id='type-id-10'/>
- <parameter type-id='type-id-1173'/>
+ <parameter type-id='type-id-1177'/>
<parameter type-id='type-id-10'/>
<return type-id='type-id-22'/>
</function-type>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='mpi.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/nettle' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='mpi.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
<var-decl name='crypto_bigint_prio' type-id='type-id-22' visibility='default'/>
- <class-decl name='gnutls_crypto_bigint' size-in-bits='1600' is-struct='yes' visibility='default' id='type-id-1182'>
+ <class-decl name='gnutls_crypto_bigint' size-in-bits='1600' is-struct='yes' visibility='default' id='type-id-1186'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='bigint_init' type-id='type-id-1183' visibility='default'/>
+ <var-decl name='bigint_init' type-id='type-id-1187' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='bigint_init_multi' type-id='type-id-1184' visibility='default'/>
+ <var-decl name='bigint_init_multi' type-id='type-id-1188' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='bigint_release' type-id='type-id-1185' visibility='default'/>
+ <var-decl name='bigint_release' type-id='type-id-1189' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='bigint_clear' type-id='type-id-1185' visibility='default'/>
+ <var-decl name='bigint_clear' type-id='type-id-1189' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='bigint_cmp' type-id='type-id-1186' visibility='default'/>
+ <var-decl name='bigint_cmp' type-id='type-id-1190' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='bigint_cmp_ui' type-id='type-id-1187' visibility='default'/>
+ <var-decl name='bigint_cmp_ui' type-id='type-id-1191' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='bigint_modm' type-id='type-id-1188' visibility='default'/>
+ <var-decl name='bigint_modm' type-id='type-id-1192' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
- <var-decl name='bigint_set' type-id='type-id-1189' visibility='default'/>
+ <var-decl name='bigint_set' type-id='type-id-1193' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='bigint_copy' type-id='type-id-1190' visibility='default'/>
+ <var-decl name='bigint_copy' type-id='type-id-1194' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
- <var-decl name='bigint_set_ui' type-id='type-id-1191' visibility='default'/>
+ <var-decl name='bigint_set_ui' type-id='type-id-1195' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='640'>
- <var-decl name='bigint_get_nbits' type-id='type-id-1192' visibility='default'/>
+ <var-decl name='bigint_get_nbits' type-id='type-id-1196' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='704'>
- <var-decl name='bigint_powm' type-id='type-id-1193' visibility='default'/>
+ <var-decl name='bigint_powm' type-id='type-id-1197' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='768'>
- <var-decl name='bigint_addm' type-id='type-id-1193' visibility='default'/>
+ <var-decl name='bigint_addm' type-id='type-id-1197' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='832'>
- <var-decl name='bigint_subm' type-id='type-id-1193' visibility='default'/>
+ <var-decl name='bigint_subm' type-id='type-id-1197' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='896'>
- <var-decl name='bigint_mulm' type-id='type-id-1193' visibility='default'/>
+ <var-decl name='bigint_mulm' type-id='type-id-1197' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='960'>
- <var-decl name='bigint_add' type-id='type-id-1188' visibility='default'/>
+ <var-decl name='bigint_add' type-id='type-id-1192' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1024'>
- <var-decl name='bigint_sub' type-id='type-id-1188' visibility='default'/>
+ <var-decl name='bigint_sub' type-id='type-id-1192' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1088'>
- <var-decl name='bigint_mul' type-id='type-id-1188' visibility='default'/>
+ <var-decl name='bigint_mul' type-id='type-id-1192' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1152'>
- <var-decl name='bigint_add_ui' type-id='type-id-1194' visibility='default'/>
+ <var-decl name='bigint_add_ui' type-id='type-id-1198' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1216'>
- <var-decl name='bigint_sub_ui' type-id='type-id-1194' visibility='default'/>
+ <var-decl name='bigint_sub_ui' type-id='type-id-1198' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1280'>
- <var-decl name='bigint_mul_ui' type-id='type-id-1194' visibility='default'/>
+ <var-decl name='bigint_mul_ui' type-id='type-id-1198' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1344'>
- <var-decl name='bigint_div' type-id='type-id-1188' visibility='default'/>
+ <var-decl name='bigint_div' type-id='type-id-1192' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1408'>
- <var-decl name='bigint_prime_check' type-id='type-id-1195' visibility='default'/>
+ <var-decl name='bigint_prime_check' type-id='type-id-1199' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1472'>
- <var-decl name='bigint_scan' type-id='type-id-1196' visibility='default'/>
+ <var-decl name='bigint_scan' type-id='type-id-1200' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1536'>
- <var-decl name='bigint_print' type-id='type-id-1197' visibility='default'/>
+ <var-decl name='bigint_print' type-id='type-id-1201' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-318' size-in-bits='64' id='type-id-1198'/>
- <pointer-type-def type-id='type-id-1199' size-in-bits='64' id='type-id-1183'/>
- <pointer-type-def type-id='type-id-1200' size-in-bits='64' id='type-id-1184'/>
- <pointer-type-def type-id='type-id-1201' size-in-bits='64' id='type-id-1185'/>
- <qualified-type-def type-id='type-id-318' const='yes' id='type-id-1202'/>
- <pointer-type-def type-id='type-id-1203' size-in-bits='64' id='type-id-1186'/>
- <pointer-type-def type-id='type-id-1204' size-in-bits='64' id='type-id-1187'/>
- <pointer-type-def type-id='type-id-1205' size-in-bits='64' id='type-id-1188'/>
- <pointer-type-def type-id='type-id-1206' size-in-bits='64' id='type-id-1189'/>
+ <pointer-type-def type-id='type-id-321' size-in-bits='64' id='type-id-1202'/>
+ <pointer-type-def type-id='type-id-1203' size-in-bits='64' id='type-id-1187'/>
+ <pointer-type-def type-id='type-id-1204' size-in-bits='64' id='type-id-1188'/>
+ <pointer-type-def type-id='type-id-1205' size-in-bits='64' id='type-id-1189'/>
+ <qualified-type-def type-id='type-id-321' const='yes' id='type-id-1206'/>
<pointer-type-def type-id='type-id-1207' size-in-bits='64' id='type-id-1190'/>
<pointer-type-def type-id='type-id-1208' size-in-bits='64' id='type-id-1191'/>
<pointer-type-def type-id='type-id-1209' size-in-bits='64' id='type-id-1192'/>
<pointer-type-def type-id='type-id-1210' size-in-bits='64' id='type-id-1193'/>
<pointer-type-def type-id='type-id-1211' size-in-bits='64' id='type-id-1194'/>
<pointer-type-def type-id='type-id-1212' size-in-bits='64' id='type-id-1195'/>
- <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-1213'>
+ <pointer-type-def type-id='type-id-1213' size-in-bits='64' id='type-id-1196'/>
+ <pointer-type-def type-id='type-id-1214' size-in-bits='64' id='type-id-1197'/>
+ <pointer-type-def type-id='type-id-1215' size-in-bits='64' id='type-id-1198'/>
+ <pointer-type-def type-id='type-id-1216' size-in-bits='64' id='type-id-1199'/>
+ <enum-decl name='__anonymous_enum__' is-anonymous='yes' id='type-id-1217'>
<underlying-type type-id='type-id-41'/>
<enumerator name='GNUTLS_MPI_FORMAT_USG' value='0'/>
<enumerator name='GNUTLS_MPI_FORMAT_STD' value='1'/>
<enumerator name='GNUTLS_MPI_FORMAT_ULE' value='2'/>
</enum-decl>
- <typedef-decl name='gnutls_bigint_format_t' type-id='type-id-1213' id='type-id-1214'/>
- <pointer-type-def type-id='type-id-1215' size-in-bits='64' id='type-id-1196'/>
- <pointer-type-def type-id='type-id-1216' size-in-bits='64' id='type-id-1197'/>
- <typedef-decl name='gnutls_crypto_bigint_st' type-id='type-id-1182' id='type-id-1217'/>
- <var-decl name='_gnutls_mpi_ops' type-id='type-id-1217' mangled-name='_gnutls_mpi_ops' visibility='default' elf-symbol-id='_gnutls_mpi_ops@@GNUTLS_PRIVATE_3_4'/>
+ <typedef-decl name='gnutls_bigint_format_t' type-id='type-id-1217' id='type-id-1218'/>
+ <pointer-type-def type-id='type-id-1219' size-in-bits='64' id='type-id-1200'/>
+ <pointer-type-def type-id='type-id-1220' size-in-bits='64' id='type-id-1201'/>
+ <typedef-decl name='gnutls_crypto_bigint_st' type-id='type-id-1186' id='type-id-1221'/>
+ <var-decl name='_gnutls_mpi_ops' type-id='type-id-1221' mangled-name='_gnutls_mpi_ops' visibility='default' elf-symbol-id='_gnutls_mpi_ops@@GNUTLS_PRIVATE_3_4'/>
<function-decl name='__gmpz_probab_prime_p' mangled-name='__gmpz_probab_prime_p' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -19348,88 +19461,97 @@
<function-decl name='nettle_mpz_set_str_256_s' mangled-name='nettle_mpz_set_str_256_s' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-type size-in-bits='64' id='type-id-1199'>
- <parameter type-id='type-id-1198'/>
+ <function-type size-in-bits='64' id='type-id-1203'>
+ <parameter type-id='type-id-1202'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-1200'>
- <parameter type-id='type-id-1198'/>
+ <function-type size-in-bits='64' id='type-id-1204'>
+ <parameter type-id='type-id-1202'/>
<parameter is-variadic='yes'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-1212'>
- <parameter type-id='type-id-1202'/>
+ <function-type size-in-bits='64' id='type-id-1216'>
+ <parameter type-id='type-id-1206'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-1203'>
- <parameter type-id='type-id-1202'/>
- <parameter type-id='type-id-1202'/>
+ <function-type size-in-bits='64' id='type-id-1207'>
+ <parameter type-id='type-id-1206'/>
+ <parameter type-id='type-id-1206'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-1204'>
- <parameter type-id='type-id-1202'/>
+ <function-type size-in-bits='64' id='type-id-1208'>
+ <parameter type-id='type-id-1206'/>
<parameter type-id='type-id-38'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-1216'>
- <parameter type-id='type-id-1202'/>
+ <function-type size-in-bits='64' id='type-id-1220'>
+ <parameter type-id='type-id-1206'/>
<parameter type-id='type-id-101'/>
- <parameter type-id='type-id-422'/>
- <parameter type-id='type-id-1214'/>
+ <parameter type-id='type-id-425'/>
+ <parameter type-id='type-id-1218'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-1206'>
- <parameter type-id='type-id-318'/>
- <parameter type-id='type-id-1202'/>
+ <function-type size-in-bits='64' id='type-id-1210'>
+ <parameter type-id='type-id-321'/>
+ <parameter type-id='type-id-1206'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-1205'>
- <parameter type-id='type-id-318'/>
- <parameter type-id='type-id-1202'/>
- <parameter type-id='type-id-1202'/>
+ <function-type size-in-bits='64' id='type-id-1209'>
+ <parameter type-id='type-id-321'/>
+ <parameter type-id='type-id-1206'/>
+ <parameter type-id='type-id-1206'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-1210'>
- <parameter type-id='type-id-318'/>
- <parameter type-id='type-id-1202'/>
- <parameter type-id='type-id-1202'/>
- <parameter type-id='type-id-1202'/>
+ <function-type size-in-bits='64' id='type-id-1214'>
+ <parameter type-id='type-id-321'/>
+ <parameter type-id='type-id-1206'/>
+ <parameter type-id='type-id-1206'/>
+ <parameter type-id='type-id-1206'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-1211'>
- <parameter type-id='type-id-318'/>
- <parameter type-id='type-id-1202'/>
+ <function-type size-in-bits='64' id='type-id-1215'>
+ <parameter type-id='type-id-321'/>
+ <parameter type-id='type-id-1206'/>
<parameter type-id='type-id-38'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-1208'>
- <parameter type-id='type-id-318'/>
+ <function-type size-in-bits='64' id='type-id-1212'>
+ <parameter type-id='type-id-321'/>
<parameter type-id='type-id-38'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-1215'>
- <parameter type-id='type-id-318'/>
+ <function-type size-in-bits='64' id='type-id-1219'>
+ <parameter type-id='type-id-321'/>
<parameter type-id='type-id-101'/>
<parameter type-id='type-id-99'/>
- <parameter type-id='type-id-1214'/>
+ <parameter type-id='type-id-1218'/>
<return type-id='type-id-22'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-1207'>
- <parameter type-id='type-id-1202'/>
- <return type-id='type-id-318'/>
+ <function-type size-in-bits='64' id='type-id-1211'>
+ <parameter type-id='type-id-1206'/>
+ <return type-id='type-id-321'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-1209'>
- <parameter type-id='type-id-1202'/>
+ <function-type size-in-bits='64' id='type-id-1213'>
+ <parameter type-id='type-id-1206'/>
<return type-id='type-id-10'/>
</function-type>
- <function-type size-in-bits='64' id='type-id-1201'>
- <parameter type-id='type-id-318'/>
+ <function-type size-in-bits='64' id='type-id-1205'>
+ <parameter type-id='type-id-321'/>
<return type-id='type-id-111'/>
</function-type>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='mac.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/nettle' language='LANG_C99'>
- <var-decl name='_gnutls_mac_ops' type-id='type-id-1131' visibility='default'/>
- <var-decl name='_gnutls_digest_ops' type-id='type-id-1147' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='mac.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
+ <var-decl name='_gnutls_mac_ops' type-id='type-id-1135' visibility='default'/>
+ <var-decl name='_gnutls_digest_ops' type-id='type-id-1151' visibility='default'/>
+ <function-decl name='nettle_pbkdf2' mangled-name='nettle_pbkdf2' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ <function-decl name='nettle_hkdf_expand' mangled-name='nettle_hkdf_expand' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ <function-decl name='nettle_hkdf_extract' mangled-name='nettle_hkdf_extract' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
<function-decl name='_gnutls_streebog512_init' mangled-name='_gnutls_streebog512_init' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -19472,18 +19594,18 @@
<function-decl name='nettle_umac96_set_key' mangled-name='nettle_umac96_set_key' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-decl name='_gnutls_gost28147_imit_set_key' mangled-name='_gnutls_gost28147_imit_set_key' visibility='default' binding='global' size-in-bits='64'>
+ <function-decl name='_gnutls_gost28147_imit_set_param' mangled-name='_gnutls_gost28147_imit_set_param' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-decl name='_gnutls_gost28147_imit_set_param' mangled-name='_gnutls_gost28147_imit_set_param' visibility='default' binding='global' size-in-bits='64'>
+ <function-decl name='_gnutls_gost28147_imit_set_key' mangled-name='_gnutls_gost28147_imit_set_key' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='nettle_sha1_digest' mangled-name='nettle_sha1_digest' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='cipher.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/nettle' language='LANG_C99'>
- <var-decl name='_gnutls_cipher_ops' type-id='type-id-1123' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='cipher.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
+ <var-decl name='_gnutls_cipher_ops' type-id='type-id-1127' visibility='default'/>
<function-decl name='nettle_xts_aes256_decrypt_message' mangled-name='nettle_xts_aes256_decrypt_message' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -19520,10 +19642,10 @@
<function-decl name='_gnutls_gost28147_cnt_init' mangled-name='_gnutls_gost28147_cnt_init' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-decl name='_gnutls_gost28147_set_key' mangled-name='_gnutls_gost28147_set_key' visibility='default' binding='global' size-in-bits='64'>
+ <function-decl name='_gnutls_gost28147_set_param' mangled-name='_gnutls_gost28147_set_param' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-decl name='_gnutls_gost28147_set_param' mangled-name='_gnutls_gost28147_set_param' visibility='default' binding='global' size-in-bits='64'>
+ <function-decl name='_gnutls_gost28147_set_key' mangled-name='_gnutls_gost28147_set_key' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='nettle_cfb_decrypt' mangled-name='nettle_cfb_decrypt' visibility='default' binding='global' size-in-bits='64'>
@@ -19539,7 +19661,7 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='prf.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/nettle' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='prf.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
<function-decl name='_gnutls_prf_raw' mangled-name='_gnutls_prf_raw' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gnutls_prf_raw@@GNUTLS_FIPS140_3_4'>
<parameter type-id='type-id-31' name='mac'/>
<parameter type-id='type-id-99' name='master_size'/>
@@ -19547,14 +19669,20 @@
<parameter type-id='type-id-99' name='label_size'/>
<parameter type-id='type-id-27' name='label'/>
<parameter type-id='type-id-99' name='seed_size'/>
- <parameter type-id='type-id-900' name='seed'/>
+ <parameter type-id='type-id-903' name='seed'/>
<parameter type-id='type-id-99' name='outsize'/>
- <parameter type-id='type-id-376' name='out'/>
+ <parameter type-id='type-id-379' name='out'/>
<return type-id='type-id-22'/>
</function-decl>
+ <function-decl name='nettle_hmac_sha256_set_key' mangled-name='nettle_hmac_sha256_set_key' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
<function-decl name='nettle_tls12_prf' mangled-name='nettle_tls12_prf' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
+ <function-decl name='nettle_hmac_sha384_set_key' mangled-name='nettle_hmac_sha384_set_key' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
<function-decl name='_gnutls_hmac_streebog256_set_key' mangled-name='_gnutls_hmac_streebog256_set_key' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -19565,12 +19693,12 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='backport/cfb8.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/nettle' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='backport/cfb8.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
<function-decl name='nettle_memxor3' mangled-name='nettle_memxor3' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='rnd.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/nettle' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='rnd.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
<function-decl name='nettle_chacha_crypt' mangled-name='nettle_chacha_crypt' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -19581,19 +19709,19 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='int/rsa-keygen-fips186.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/nettle' language='LANG_C99'>
- <class-decl name='rsa_public_key' size-in-bits='320' is-struct='yes' visibility='default' id='type-id-1218'>
+ <abi-instr version='1.0' address-size='64' path='int/rsa-keygen-fips186.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
+ <class-decl name='rsa_public_key' size-in-bits='320' is-struct='yes' visibility='default' id='type-id-1222'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='size' type-id='type-id-99' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='n' type-id='type-id-1219' visibility='default'/>
+ <var-decl name='n' type-id='type-id-1223' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='e' type-id='type-id-1219' visibility='default'/>
+ <var-decl name='e' type-id='type-id-1223' visibility='default'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-1220' visibility='default' id='type-id-1221'>
+ <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-1224' visibility='default' id='type-id-1225'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='_mp_alloc' type-id='type-id-22' visibility='default'/>
</data-member>
@@ -19601,52 +19729,52 @@
<var-decl name='_mp_size' type-id='type-id-22' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='_mp_d' type-id='type-id-1222' visibility='default'/>
+ <var-decl name='_mp_d' type-id='type-id-1226' visibility='default'/>
</data-member>
</class-decl>
- <typedef-decl name='mp_limb_t' type-id='type-id-38' id='type-id-1223'/>
- <pointer-type-def type-id='type-id-1223' size-in-bits='64' id='type-id-1222'/>
- <typedef-decl name='__mpz_struct' type-id='type-id-1221' id='type-id-1220'/>
+ <typedef-decl name='mp_limb_t' type-id='type-id-38' id='type-id-1227'/>
+ <pointer-type-def type-id='type-id-1227' size-in-bits='64' id='type-id-1226'/>
+ <typedef-decl name='__mpz_struct' type-id='type-id-1225' id='type-id-1224'/>
- <array-type-def dimensions='1' type-id='type-id-1220' size-in-bits='128' id='type-id-1224'>
- <subrange length='1' type-id='type-id-38' id='type-id-1225'/>
+ <array-type-def dimensions='1' type-id='type-id-1224' size-in-bits='128' id='type-id-1228'>
+ <subrange length='1' type-id='type-id-38' id='type-id-1229'/>
</array-type-def>
- <typedef-decl name='mpz_t' type-id='type-id-1224' id='type-id-1219'/>
- <pointer-type-def type-id='type-id-1218' size-in-bits='64' id='type-id-1226'/>
- <class-decl name='rsa_private_key' size-in-bits='832' is-struct='yes' visibility='default' id='type-id-1227'>
+ <typedef-decl name='mpz_t' type-id='type-id-1228' id='type-id-1223'/>
+ <pointer-type-def type-id='type-id-1222' size-in-bits='64' id='type-id-1230'/>
+ <class-decl name='rsa_private_key' size-in-bits='832' is-struct='yes' visibility='default' id='type-id-1231'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='size' type-id='type-id-99' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='d' type-id='type-id-1219' visibility='default'/>
+ <var-decl name='d' type-id='type-id-1223' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='p' type-id='type-id-1219' visibility='default'/>
+ <var-decl name='p' type-id='type-id-1223' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='q' type-id='type-id-1219' visibility='default'/>
+ <var-decl name='q' type-id='type-id-1223' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
- <var-decl name='a' type-id='type-id-1219' visibility='default'/>
+ <var-decl name='a' type-id='type-id-1223' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
- <var-decl name='b' type-id='type-id-1219' visibility='default'/>
+ <var-decl name='b' type-id='type-id-1223' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='704'>
- <var-decl name='c' type-id='type-id-1219' visibility='default'/>
+ <var-decl name='c' type-id='type-id-1223' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-1227' size-in-bits='64' id='type-id-1228'/>
- <typedef-decl name='nettle_progress_func' type-id='type-id-1229' id='type-id-1230'/>
- <pointer-type-def type-id='type-id-1230' size-in-bits='64' id='type-id-1231'/>
+ <pointer-type-def type-id='type-id-1231' size-in-bits='64' id='type-id-1232'/>
+ <typedef-decl name='nettle_progress_func' type-id='type-id-1233' id='type-id-1234'/>
+ <pointer-type-def type-id='type-id-1234' size-in-bits='64' id='type-id-1235'/>
<function-decl name='_rsa_generate_fips186_4_keypair' mangled-name='_rsa_generate_fips186_4_keypair' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_rsa_generate_fips186_4_keypair@@GNUTLS_FIPS140_3_4'>
- <parameter type-id='type-id-1226' name='pub'/>
- <parameter type-id='type-id-1228' name='key'/>
+ <parameter type-id='type-id-1230' name='pub'/>
+ <parameter type-id='type-id-1232' name='key'/>
<parameter type-id='type-id-10' name='seed_length'/>
- <parameter type-id='type-id-191' name='seed'/>
+ <parameter type-id='type-id-192' name='seed'/>
<parameter type-id='type-id-101' name='progress_ctx'/>
- <parameter type-id='type-id-1231' name='progress'/>
+ <parameter type-id='type-id-1235' name='progress'/>
<parameter type-id='type-id-10' name='n_size'/>
<return type-id='type-id-22'/>
</function-decl>
@@ -19674,13 +19802,13 @@
<function-decl name='__gmpz_gcd' mangled-name='__gmpz_gcd' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-type size-in-bits='64' id='type-id-1229'>
+ <function-type size-in-bits='64' id='type-id-1233'>
<parameter type-id='type-id-101'/>
<parameter type-id='type-id-22'/>
<return type-id='type-id-111'/>
</function-type>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='int/provable-prime.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/nettle' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='int/provable-prime.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
<function-decl name='__gmpz_fdiv_r_2exp' mangled-name='__gmpz_fdiv_r_2exp' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -19688,50 +19816,50 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='int/dsa-keygen-fips186.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/nettle' language='LANG_C99'>
- <class-decl name='dsa_params' size-in-bits='384' is-struct='yes' visibility='default' id='type-id-1232'>
+ <abi-instr version='1.0' address-size='64' path='int/dsa-keygen-fips186.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
+ <class-decl name='dsa_params' size-in-bits='384' is-struct='yes' visibility='default' id='type-id-1236'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='p' type-id='type-id-1219' visibility='default'/>
+ <var-decl name='p' type-id='type-id-1223' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='q' type-id='type-id-1219' visibility='default'/>
+ <var-decl name='q' type-id='type-id-1223' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='g' type-id='type-id-1219' visibility='default'/>
+ <var-decl name='g' type-id='type-id-1223' visibility='default'/>
</data-member>
</class-decl>
- <pointer-type-def type-id='type-id-1232' size-in-bits='64' id='type-id-1233'/>
- <pointer-type-def type-id='type-id-1220' size-in-bits='64' id='type-id-1234'/>
- <typedef-decl name='nettle_random_func' type-id='type-id-1144' id='type-id-1235'/>
- <pointer-type-def type-id='type-id-1235' size-in-bits='64' id='type-id-1236'/>
+ <pointer-type-def type-id='type-id-1236' size-in-bits='64' id='type-id-1237'/>
+ <pointer-type-def type-id='type-id-1224' size-in-bits='64' id='type-id-1238'/>
+ <typedef-decl name='nettle_random_func' type-id='type-id-1148' id='type-id-1239'/>
+ <pointer-type-def type-id='type-id-1239' size-in-bits='64' id='type-id-1240'/>
<function-decl name='dsa_generate_dss_keypair' mangled-name='dsa_generate_dss_keypair' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dsa_generate_dss_keypair@@GNUTLS_FIPS140_3_4'>
- <parameter type-id='type-id-1233' name='params'/>
- <parameter type-id='type-id-1234' name='y'/>
- <parameter type-id='type-id-1234' name='x'/>
+ <parameter type-id='type-id-1237' name='params'/>
+ <parameter type-id='type-id-1238' name='y'/>
+ <parameter type-id='type-id-1238' name='x'/>
<parameter type-id='type-id-101' name='random_ctx'/>
- <parameter type-id='type-id-1236' name='random'/>
+ <parameter type-id='type-id-1240' name='random'/>
<parameter type-id='type-id-101' name='progress_ctx'/>
- <parameter type-id='type-id-1231' name='progress'/>
+ <parameter type-id='type-id-1235' name='progress'/>
<return type-id='type-id-22'/>
</function-decl>
- <class-decl name='dss_params_validation_seeds' size-in-bits='6400' is-struct='yes' visibility='default' id='type-id-1237'>
+ <class-decl name='dss_params_validation_seeds' size-in-bits='6400' is-struct='yes' visibility='default' id='type-id-1241'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='seed_length' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='seed' type-id='type-id-1238' visibility='default'/>
+ <var-decl name='seed' type-id='type-id-1242' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2112'>
<var-decl name='pseed_length' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2144'>
- <var-decl name='pseed' type-id='type-id-1238' visibility='default'/>
+ <var-decl name='pseed' type-id='type-id-1242' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='4224'>
<var-decl name='qseed_length' type-id='type-id-10' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='4256'>
- <var-decl name='qseed' type-id='type-id-1238' visibility='default'/>
+ <var-decl name='qseed' type-id='type-id-1242' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='6336'>
<var-decl name='pgen_counter' type-id='type-id-10' visibility='default'/>
@@ -19741,28 +19869,28 @@
</data-member>
</class-decl>
- <array-type-def dimensions='1' type-id='type-id-16' size-in-bits='2056' id='type-id-1238'>
- <subrange length='257' type-id='type-id-38' id='type-id-1239'/>
+ <array-type-def dimensions='1' type-id='type-id-16' size-in-bits='2056' id='type-id-1242'>
+ <subrange length='257' type-id='type-id-38' id='type-id-1243'/>
</array-type-def>
- <pointer-type-def type-id='type-id-1237' size-in-bits='64' id='type-id-1240'/>
+ <pointer-type-def type-id='type-id-1241' size-in-bits='64' id='type-id-1244'/>
<function-decl name='_dsa_generate_dss_pq' mangled-name='_dsa_generate_dss_pq' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_dsa_generate_dss_pq@@GNUTLS_FIPS140_3_4'>
- <parameter type-id='type-id-1233' name='params'/>
- <parameter type-id='type-id-1240' name='cert'/>
+ <parameter type-id='type-id-1237' name='params'/>
+ <parameter type-id='type-id-1244' name='cert'/>
<parameter type-id='type-id-10' name='seed_length'/>
<parameter type-id='type-id-101' name='seed'/>
<parameter type-id='type-id-101' name='progress_ctx'/>
- <parameter type-id='type-id-1231' name='progress'/>
+ <parameter type-id='type-id-1235' name='progress'/>
<parameter type-id='type-id-10' name='p_bits'/>
<parameter type-id='type-id-10' name='q_bits'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='_dsa_generate_dss_g' mangled-name='_dsa_generate_dss_g' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_dsa_generate_dss_g@@GNUTLS_FIPS140_3_4'>
- <parameter type-id='type-id-1233' name='params'/>
+ <parameter type-id='type-id-1237' name='params'/>
<parameter type-id='type-id-10' name='domain_seed_size'/>
- <parameter type-id='type-id-900' name='domain_seed'/>
+ <parameter type-id='type-id-903' name='domain_seed'/>
<parameter type-id='type-id-101' name='progress_ctx'/>
- <parameter type-id='type-id-1231' name='progress'/>
+ <parameter type-id='type-id-1235' name='progress'/>
<parameter type-id='type-id-10' name='index'/>
<return type-id='type-id-22'/>
</function-decl>
@@ -19770,16 +19898,16 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='int/dsa-validate.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/nettle' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='int/dsa-validate.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
<function-decl name='_dsa_validate_dss_pq' mangled-name='_dsa_validate_dss_pq' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_dsa_validate_dss_pq@@GNUTLS_FIPS140_3_4'>
- <parameter type-id='type-id-1233' name='pub'/>
- <parameter type-id='type-id-1240' name='cert'/>
+ <parameter type-id='type-id-1237' name='pub'/>
+ <parameter type-id='type-id-1244' name='cert'/>
<return type-id='type-id-22'/>
</function-decl>
<function-decl name='_dsa_validate_dss_g' mangled-name='_dsa_validate_dss_g' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_dsa_validate_dss_g@@GNUTLS_FIPS140_3_4'>
- <parameter type-id='type-id-1233' name='pub'/>
+ <parameter type-id='type-id-1237' name='pub'/>
<parameter type-id='type-id-10' name='domain_seed_size'/>
- <parameter type-id='type-id-900' name='domain_seed'/>
+ <parameter type-id='type-id-903' name='domain_seed'/>
<parameter type-id='type-id-10' name='index'/>
<return type-id='type-id-22'/>
</function-decl>
@@ -19793,7 +19921,7 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='int/tls1-prf.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/nettle' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='int/tls1-prf.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
<function-decl name='nettle_hmac_md5_set_key' mangled-name='nettle_hmac_md5_set_key' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -19801,7 +19929,7 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='int/dsa-compute-k.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/nettle' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='int/dsa-compute-k.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
<function-decl name='__gmpn_rshift' mangled-name='__gmpn_rshift' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -19833,73 +19961,70 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='int/ecdsa-compute-k.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/nettle' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='int/ecdsa-compute-k.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
<function-decl name='__gmpz_init_set_str' mangled-name='__gmpz_init_set_str' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='sysrng-linux.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/nettle' language='LANG_C99'>
- <pointer-type-def type-id='type-id-1241' size-in-bits='64' id='type-id-1242'/>
- <typedef-decl name='get_entropy_func' type-id='type-id-1242' id='type-id-1243'/>
- <var-decl name='_rnd_get_system_entropy' type-id='type-id-1243' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='sysrng-linux.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
+ <pointer-type-def type-id='type-id-1245' size-in-bits='64' id='type-id-1246'/>
+ <typedef-decl name='get_entropy_func' type-id='type-id-1246' id='type-id-1247'/>
+ <var-decl name='_rnd_get_system_entropy' type-id='type-id-1247' visibility='default'/>
<function-decl name='close' mangled-name='close' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='strerror' mangled-name='strerror' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-decl name='read' mangled-name='read' visibility='default' binding='global' size-in-bits='64'>
+ <function-decl name='__read_alias' mangled-name='read' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='getrandom' mangled-name='getrandom' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-decl name='open' mangled-name='open' visibility='default' binding='global' size-in-bits='64'>
+ <function-decl name='__open_alias' mangled-name='open' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
<function-decl name='fcntl' mangled-name='fcntl' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-type size-in-bits='64' id='type-id-1241'>
+ <function-type size-in-bits='64' id='type-id-1245'>
<parameter type-id='type-id-101'/>
<parameter type-id='type-id-99'/>
<return type-id='type-id-22'/>
</function-type>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='gost/gost28147.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/nettle' language='LANG_C99'>
- <class-decl name='gost28147_param' size-in-bits='32800' is-struct='yes' visibility='default' id='type-id-1244'>
+ <abi-instr version='1.0' address-size='64' path='gost/gost28147.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
+ <class-decl name='gost28147_param' size-in-bits='32800' is-struct='yes' visibility='default' id='type-id-1248'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='key_meshing' type-id='type-id-22' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='sbox' type-id='type-id-1245' visibility='default'/>
+ <var-decl name='sbox' type-id='type-id-1249' visibility='default'/>
</data-member>
</class-decl>
- <array-type-def dimensions='1' type-id='type-id-18' size-in-bits='32768' id='type-id-1245'>
- <subrange length='1024' type-id='type-id-38' id='type-id-1246'/>
+ <array-type-def dimensions='1' type-id='type-id-18' size-in-bits='32768' id='type-id-1249'>
+ <subrange length='1024' type-id='type-id-38' id='type-id-1250'/>
</array-type-def>
- <qualified-type-def type-id='type-id-1244' const='yes' id='type-id-1247'/>
- <var-decl name='_gnutls_gost28147_param_test_3411' type-id='type-id-1247' visibility='default'/>
- <var-decl name='_gnutls_gost28147_param_CryptoPro_3411' type-id='type-id-1247' visibility='default'/>
- <var-decl name='_gnutls_gost28147_param_Test_89' type-id='type-id-1247' visibility='default'/>
- <var-decl name='_gnutls_gost28147_param_CryptoPro_A' type-id='type-id-1247' visibility='default'/>
- <var-decl name='_gnutls_gost28147_param_CryptoPro_B' type-id='type-id-1247' visibility='default'/>
- <var-decl name='_gnutls_gost28147_param_CryptoPro_C' type-id='type-id-1247' visibility='default'/>
- <var-decl name='_gnutls_gost28147_param_CryptoPro_D' type-id='type-id-1247' visibility='default'/>
- <var-decl name='_gnutls_gost28147_param_TC26_Z' type-id='type-id-1247' visibility='default'/>
+ <qualified-type-def type-id='type-id-1248' const='yes' id='type-id-1251'/>
+ <var-decl name='_gnutls_gost28147_param_test_3411' type-id='type-id-1251' visibility='default'/>
+ <var-decl name='_gnutls_gost28147_param_CryptoPro_3411' type-id='type-id-1251' visibility='default'/>
+ <var-decl name='_gnutls_gost28147_param_Test_89' type-id='type-id-1251' visibility='default'/>
+ <var-decl name='_gnutls_gost28147_param_CryptoPro_A' type-id='type-id-1251' visibility='default'/>
+ <var-decl name='_gnutls_gost28147_param_CryptoPro_B' type-id='type-id-1251' visibility='default'/>
+ <var-decl name='_gnutls_gost28147_param_CryptoPro_C' type-id='type-id-1251' visibility='default'/>
+ <var-decl name='_gnutls_gost28147_param_CryptoPro_D' type-id='type-id-1251' visibility='default'/>
+ <var-decl name='_gnutls_gost28147_param_TC26_Z' type-id='type-id-1251' visibility='default'/>
<function-decl name='_nettle_write_le32' mangled-name='_nettle_write_le32' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='gost/gost-wrap.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/nettle' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='gost/gost-wrap.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
<function-decl name='_gnutls_gost28147_decrypt' mangled-name='_gnutls_gost28147_decrypt' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
- <function-decl name='_gnutls_gost28147_imit_init' mangled-name='_gnutls_gost28147_imit_init' visibility='default' binding='global' size-in-bits='64'>
- <return type-id='type-id-111'/>
- </function-decl>
<function-decl name='_gnutls_gost28147_imit_set_nonce' mangled-name='_gnutls_gost28147_imit_set_nonce' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -19916,29 +20041,29 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='gost/gosthash94.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/nettle' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='gost/gosthash94.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
<function-decl name='_gnutls_gost28147_encrypt_simple' mangled-name='_gnutls_gost28147_encrypt_simple' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='gost/gosthash94-meta.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/nettle' language='LANG_C99'>
- <var-decl name='_gnutls_gosthash94cp' type-id='type-id-1146' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='gost/gosthash94-meta.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
+ <var-decl name='_gnutls_gosthash94cp' type-id='type-id-1150' visibility='default'/>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='gost/streebog-meta.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/nettle' language='LANG_C99'>
- <var-decl name='_gnutls_streebog512' type-id='type-id-1146' visibility='default'/>
- <var-decl name='_gnutls_streebog256' type-id='type-id-1146' visibility='default'/>
+ <abi-instr version='1.0' address-size='64' path='gost/streebog-meta.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
+ <var-decl name='_gnutls_streebog512' type-id='type-id-1150' visibility='default'/>
+ <var-decl name='_gnutls_streebog256' type-id='type-id-1150' visibility='default'/>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='gost/hmac-gosthash94.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/nettle' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='gost/hmac-gosthash94.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
<function-decl name='_gnutls_gosthash94cp_update' mangled-name='_gnutls_gosthash94cp_update' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='gost/hmac-streebog.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/nettle' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='gost/hmac-streebog.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
<function-decl name='_gnutls_streebog512_update' mangled-name='_gnutls_streebog512_update' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='gost/bignum-le.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/nettle' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='gost/bignum-le.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
<function-decl name='__gmpz_import' mangled-name='__gmpz_import' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -19946,15 +20071,7 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='gost/pbkdf2-hmac-gosthash94.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/nettle' language='LANG_C99'>
- <function-decl name='_gnutls_hmac_gosthash94cp_set_key' mangled-name='_gnutls_hmac_gosthash94cp_set_key' visibility='default' binding='global' size-in-bits='64'>
- <return type-id='type-id-111'/>
- </function-decl>
- <function-decl name='nettle_pbkdf2' mangled-name='nettle_pbkdf2' visibility='default' binding='global' size-in-bits='64'>
- <return type-id='type-id-111'/>
- </function-decl>
- </abi-instr>
- <abi-instr version='1.0' address-size='64' path='gost/ecc-gostdsa-sign.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/nettle' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='gost/ecc-gostdsa-sign.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
<function-decl name='_gnutls_gost_hash' mangled-name='_gnutls_gost_hash' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -19968,18 +20085,7 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='gost/gostdsa-mask.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/nettle' language='LANG_C99'>
- <function-decl name='__gmpz_roinit_n' mangled-name='__gmpz_roinit_n' visibility='default' binding='global' size-in-bits='64'>
- <return type-id='type-id-111'/>
- </function-decl>
- <function-decl name='__gmpz_tdiv_r_2exp' mangled-name='__gmpz_tdiv_r_2exp' visibility='default' binding='global' size-in-bits='64'>
- <return type-id='type-id-111'/>
- </function-decl>
- <function-decl name='__gmpz_tdiv_q_2exp' mangled-name='__gmpz_tdiv_q_2exp' visibility='default' binding='global' size-in-bits='64'>
- <return type-id='type-id-111'/>
- </function-decl>
- </abi-instr>
- <abi-instr version='1.0' address-size='64' path='gost/gostdsa-sign.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/nettle' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='gost/gostdsa-sign.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
<function-decl name='_nettle_ecc_mod_random' mangled-name='_nettle_ecc_mod_random' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -19987,7 +20093,7 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='gost/gostdsa-verify.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/nettle' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='gost/gostdsa-verify.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
<function-decl name='_gnutls_ecc_gostdsa_verify_itch' mangled-name='_gnutls_ecc_gostdsa_verify_itch' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -20004,15 +20110,28 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='gost/gostdsa-vko.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/nettle' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='gost/ecc-gost-hash.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
<function-decl name='_nettle_mpn_set_base256_le' mangled-name='_nettle_mpn_set_base256_le' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
+ </abi-instr>
+ <abi-instr version='1.0' address-size='64' path='gost/gostdsa-mask.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
+ <function-decl name='__gmpz_roinit_n' mangled-name='__gmpz_roinit_n' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ <function-decl name='__gmpz_tdiv_r_2exp' mangled-name='__gmpz_tdiv_r_2exp' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ <function-decl name='__gmpz_tdiv_q_2exp' mangled-name='__gmpz_tdiv_q_2exp' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ </abi-instr>
+ <abi-instr version='1.0' address-size='64' path='gost/gostdsa-vko.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
<function-decl name='_nettle_mpn_get_base256_le' mangled-name='_nettle_mpn_get_base256_le' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
- <abi-instr version='1.0' address-size='64' path='gost_keywrap.c' comp-dir-path='/home/nmav/cvs/gnutls-mine/lib/nettle' language='LANG_C99'>
+ <abi-instr version='1.0' address-size='64' path='gost_keywrap.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
<function-decl name='_gnutls_gost28147_key_unwrap_cryptopro' mangled-name='_gnutls_gost28147_key_unwrap_cryptopro' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-111'/>
</function-decl>
@@ -20020,4 +20139,380 @@
<return type-id='type-id-111'/>
</function-decl>
</abi-instr>
+ <abi-instr version='1.0' address-size='64' path='curve448/gmp-glue.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
+ <function-decl name='__gmp_get_memory_functions' mangled-name='__gmp_get_memory_functions' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ <function-decl name='__gmpz_limbs_modify' mangled-name='__gmpz_limbs_modify' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ </abi-instr>
+ <abi-instr version='1.0' address-size='64' path='curve448/sha3.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
+ <function-decl name='gnutls_nettle_curve448_sha3_permute' mangled-name='gnutls_nettle_curve448_sha3_permute' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ </abi-instr>
+ <abi-instr version='1.0' address-size='64' path='curve448/sha3-256.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
+ <function-decl name='_nettle_sha3_pad' mangled-name='_nettle_sha3_pad' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ <function-decl name='_nettle_write_le64' mangled-name='_nettle_write_le64' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ <function-decl name='_nettle_sha3_update' mangled-name='_nettle_sha3_update' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ </abi-instr>
+ <abi-instr version='1.0' address-size='64' path='curve448/shake256.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
+ <function-decl name='gnutls_nettle_curve448_sha3_256_init' mangled-name='gnutls_nettle_curve448_sha3_256_init' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ </abi-instr>
+ <abi-instr version='1.0' address-size='64' path='curve448/ecc-add-eh.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
+ <function-decl name='_gnutls_nettle_curve448_ecc_mod_mul' mangled-name='_gnutls_nettle_curve448_ecc_mod_mul' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ <function-decl name='_gnutls_nettle_curve448_ecc_mod_add' mangled-name='_gnutls_nettle_curve448_ecc_mod_add' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ <function-decl name='_gnutls_nettle_curve448_ecc_mod_sub' mangled-name='_gnutls_nettle_curve448_ecc_mod_sub' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ <function-decl name='_gnutls_nettle_curve448_ecc_mod_sqr' mangled-name='_gnutls_nettle_curve448_ecc_mod_sqr' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ </abi-instr>
+ <abi-instr version='1.0' address-size='64' path='curve448/ecc-eh-to-a.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
+ <function-decl name='_gnutls_nettle_curve448_cnd_copy' mangled-name='_gnutls_nettle_curve448_cnd_copy' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ </abi-instr>
+ <abi-instr version='1.0' address-size='64' path='curve448/ecc-mul-a-eh.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
+ <function-decl name='_gnutls_nettle_curve448_sec_tabselect' mangled-name='_gnutls_nettle_curve448_sec_tabselect' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ <function-decl name='_gnutls_nettle_curve448_ecc_a_to_j' mangled-name='_gnutls_nettle_curve448_ecc_a_to_j' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ </abi-instr>
+ <abi-instr version='1.0' address-size='64' path='curve448/ecc-mul-m.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
+ <function-decl name='_gnutls_nettle_curve448_cnd_swap' mangled-name='_gnutls_nettle_curve448_cnd_swap' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ <function-decl name='_gnutls_nettle_curve448_ecc_mod_addmul_1' mangled-name='_gnutls_nettle_curve448_ecc_mod_addmul_1' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ </abi-instr>
+ <abi-instr version='1.0' address-size='64' path='curve448/ecc-mod.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
+ <function-decl name='__gmpn_addmul_1' mangled-name='__gmpn_addmul_1' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ <function-decl name='__gmpn_add_n' mangled-name='__gmpn_add_n' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ <function-decl name='_gnutls_nettle_curve448_sec_add_1' mangled-name='_gnutls_nettle_curve448_sec_add_1' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ </abi-instr>
+ <abi-instr version='1.0' address-size='64' path='curve448/ecc-mod-arith.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
+ <function-decl name='__gmpn_sqr' mangled-name='__gmpn_sqr' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ <function-decl name='__gmpn_mul_n' mangled-name='__gmpn_mul_n' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ <function-decl name='__gmpn_submul_1' mangled-name='__gmpn_submul_1' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ <function-decl name='__gmpn_cnd_sub_n' mangled-name='__gmpn_cnd_sub_n' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ <function-decl name='__gmpn_mul_1' mangled-name='__gmpn_mul_1' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ </abi-instr>
+ <abi-instr version='1.0' address-size='64' path='curve448/ecc-a-to-j.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
+ <function-decl name='__gmpn_copyd' mangled-name='__gmpn_copyd' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ </abi-instr>
+ <abi-instr version='1.0' address-size='64' path='curve448/ecc-curve448.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
+ <class-decl name='ecc_curve' size-in-bits='2240' is-struct='yes' visibility='default' id='type-id-1252'>
+ <data-member access='public' layout-offset-in-bits='0'>
+ <var-decl name='p' type-id='type-id-1253' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='704'>
+ <var-decl name='q' type-id='type-id-1253' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='1408'>
+ <var-decl name='use_redc' type-id='type-id-24' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='1424'>
+ <var-decl name='pippenger_k' type-id='type-id-24' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='1440'>
+ <var-decl name='pippenger_c' type-id='type-id-24' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='1456'>
+ <var-decl name='add_hh_itch' type-id='type-id-24' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='1472'>
+ <var-decl name='add_hhh_itch' type-id='type-id-24' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='1488'>
+ <var-decl name='dup_itch' type-id='type-id-24' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='1504'>
+ <var-decl name='mul_itch' type-id='type-id-24' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='1520'>
+ <var-decl name='mul_g_itch' type-id='type-id-24' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='1536'>
+ <var-decl name='h_to_a_itch' type-id='type-id-24' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='1600'>
+ <var-decl name='add_hh' type-id='type-id-1254' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='1664'>
+ <var-decl name='add_hhh' type-id='type-id-1254' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='1728'>
+ <var-decl name='dup' type-id='type-id-1255' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='1792'>
+ <var-decl name='mul' type-id='type-id-1256' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='1856'>
+ <var-decl name='mul_g' type-id='type-id-1257' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='1920'>
+ <var-decl name='h_to_a' type-id='type-id-1258' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='1984'>
+ <var-decl name='b' type-id='type-id-1259' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='2048'>
+ <var-decl name='g' type-id='type-id-1259' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='2112'>
+ <var-decl name='unit' type-id='type-id-1259' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='2176'>
+ <var-decl name='pippenger_table' type-id='type-id-1259' visibility='default'/>
+ </data-member>
+ </class-decl>
+ <class-decl name='ecc_modulo' size-in-bits='704' is-struct='yes' visibility='default' id='type-id-1253'>
+ <data-member access='public' layout-offset-in-bits='0'>
+ <var-decl name='bit_size' type-id='type-id-24' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='16'>
+ <var-decl name='size' type-id='type-id-24' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='32'>
+ <var-decl name='B_size' type-id='type-id-24' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='48'>
+ <var-decl name='redc_size' type-id='type-id-24' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='64'>
+ <var-decl name='invert_itch' type-id='type-id-24' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='80'>
+ <var-decl name='sqrt_itch' type-id='type-id-24' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='128'>
+ <var-decl name='m' type-id='type-id-1259' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='192'>
+ <var-decl name='B' type-id='type-id-1259' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='256'>
+ <var-decl name='B_shifted' type-id='type-id-1259' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='320'>
+ <var-decl name='redc_mpm1' type-id='type-id-1259' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='384'>
+ <var-decl name='mp1h' type-id='type-id-1259' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='448'>
+ <var-decl name='mod' type-id='type-id-1260' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='512'>
+ <var-decl name='reduce' type-id='type-id-1260' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='576'>
+ <var-decl name='invert' type-id='type-id-1261' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='640'>
+ <var-decl name='sqrt' type-id='type-id-1262' visibility='default'/>
+ </data-member>
+ </class-decl>
+ <qualified-type-def type-id='type-id-1227' const='yes' id='type-id-1263'/>
+ <pointer-type-def type-id='type-id-1263' size-in-bits='64' id='type-id-1259'/>
+ <qualified-type-def type-id='type-id-1253' const='yes' id='type-id-1264'/>
+ <pointer-type-def type-id='type-id-1264' size-in-bits='64' id='type-id-1265'/>
+ <typedef-decl name='ecc_mod_func' type-id='type-id-1266' id='type-id-1267'/>
+ <pointer-type-def type-id='type-id-1267' size-in-bits='64' id='type-id-1260'/>
+ <typedef-decl name='ecc_mod_inv_func' type-id='type-id-1268' id='type-id-1269'/>
+ <pointer-type-def type-id='type-id-1269' size-in-bits='64' id='type-id-1261'/>
+ <typedef-decl name='ecc_mod_sqrt_func' type-id='type-id-1270' id='type-id-1271'/>
+ <pointer-type-def type-id='type-id-1271' size-in-bits='64' id='type-id-1262'/>
+ <qualified-type-def type-id='type-id-1252' const='yes' id='type-id-1272'/>
+ <pointer-type-def type-id='type-id-1272' size-in-bits='64' id='type-id-1273'/>
+ <typedef-decl name='ecc_add_func' type-id='type-id-1274' id='type-id-1275'/>
+ <pointer-type-def type-id='type-id-1275' size-in-bits='64' id='type-id-1254'/>
+ <typedef-decl name='ecc_dup_func' type-id='type-id-1276' id='type-id-1277'/>
+ <pointer-type-def type-id='type-id-1277' size-in-bits='64' id='type-id-1255'/>
+ <typedef-decl name='ecc_mul_func' type-id='type-id-1274' id='type-id-1278'/>
+ <pointer-type-def type-id='type-id-1278' size-in-bits='64' id='type-id-1256'/>
+ <typedef-decl name='ecc_mul_g_func' type-id='type-id-1276' id='type-id-1279'/>
+ <pointer-type-def type-id='type-id-1279' size-in-bits='64' id='type-id-1257'/>
+ <typedef-decl name='ecc_h_to_a_func' type-id='type-id-1280' id='type-id-1281'/>
+ <pointer-type-def type-id='type-id-1281' size-in-bits='64' id='type-id-1258'/>
+ <var-decl name='_nettle_curve448' type-id='type-id-1272' visibility='default'/>
+ <function-type size-in-bits='64' id='type-id-1270'>
+ <parameter type-id='type-id-1265'/>
+ <parameter type-id='type-id-1226'/>
+ <parameter type-id='type-id-1259'/>
+ <parameter type-id='type-id-1259'/>
+ <parameter type-id='type-id-1226'/>
+ <return type-id='type-id-22'/>
+ </function-type>
+ <function-type size-in-bits='64' id='type-id-1280'>
+ <parameter type-id='type-id-1273'/>
+ <parameter type-id='type-id-22'/>
+ <parameter type-id='type-id-1226'/>
+ <parameter type-id='type-id-1259'/>
+ <parameter type-id='type-id-1226'/>
+ <return type-id='type-id-111'/>
+ </function-type>
+ <function-type size-in-bits='64' id='type-id-1274'>
+ <parameter type-id='type-id-1273'/>
+ <parameter type-id='type-id-1226'/>
+ <parameter type-id='type-id-1259'/>
+ <parameter type-id='type-id-1259'/>
+ <parameter type-id='type-id-1226'/>
+ <return type-id='type-id-111'/>
+ </function-type>
+ <function-type size-in-bits='64' id='type-id-1276'>
+ <parameter type-id='type-id-1273'/>
+ <parameter type-id='type-id-1226'/>
+ <parameter type-id='type-id-1259'/>
+ <parameter type-id='type-id-1226'/>
+ <return type-id='type-id-111'/>
+ </function-type>
+ <function-type size-in-bits='64' id='type-id-1266'>
+ <parameter type-id='type-id-1265'/>
+ <parameter type-id='type-id-1226'/>
+ <return type-id='type-id-111'/>
+ </function-type>
+ <function-type size-in-bits='64' id='type-id-1268'>
+ <parameter type-id='type-id-1265'/>
+ <parameter type-id='type-id-1226'/>
+ <parameter type-id='type-id-1259'/>
+ <parameter type-id='type-id-1226'/>
+ <return type-id='type-id-111'/>
+ </function-type>
+ </abi-instr>
+ <abi-instr version='1.0' address-size='64' path='curve448/curve448-mul.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
+ <function-decl name='_gnutls_nettle_curve448_gmp_alloc_limbs' mangled-name='_gnutls_nettle_curve448_gmp_alloc_limbs' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ <function-decl name='_gnutls_nettle_curve448_mpn_set_base256_le' mangled-name='_gnutls_nettle_curve448_mpn_set_base256_le' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ <function-decl name='_gnutls_nettle_curve448_ecc_mul_m' mangled-name='_gnutls_nettle_curve448_ecc_mul_m' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ <function-decl name='_gnutls_nettle_curve448_mpn_get_base256_le' mangled-name='_gnutls_nettle_curve448_mpn_get_base256_le' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ <function-decl name='_gnutls_nettle_curve448_gmp_free_limbs' mangled-name='_gnutls_nettle_curve448_gmp_free_limbs' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ </abi-instr>
+ <abi-instr version='1.0' address-size='64' path='curve448/curve448-mul-g.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
+ <function-decl name='_gnutls_nettle_curve448_ecc_mul_g_eh' mangled-name='_gnutls_nettle_curve448_ecc_mul_g_eh' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ <function-decl name='_gnutls_nettle_curve448_curve448_eh_to_x' mangled-name='_gnutls_nettle_curve448_curve448_eh_to_x' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ </abi-instr>
+ <abi-instr version='1.0' address-size='64' path='curve448/eddsa-pubkey.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
+ <function-decl name='_nettle_eddsa_compress' mangled-name='_nettle_eddsa_compress' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ <function-decl name='_nettle_eddsa_compress_itch' mangled-name='_nettle_eddsa_compress_itch' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ </abi-instr>
+ <abi-instr version='1.0' address-size='64' path='curve448/eddsa-sign.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
+ <function-decl name='_nettle_eddsa_hash' mangled-name='_nettle_eddsa_hash' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ </abi-instr>
+ <abi-instr version='1.0' address-size='64' path='curve448/eddsa-verify.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
+ <function-decl name='_nettle_eddsa_decompress' mangled-name='_nettle_eddsa_decompress' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ <function-decl name='_nettle_eddsa_decompress_itch' mangled-name='_nettle_eddsa_decompress_itch' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ </abi-instr>
+ <abi-instr version='1.0' address-size='64' path='curve448/ed448-shake256.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
+ <class-decl name='ecc_eddsa' size-in-bits='320' is-struct='yes' visibility='default' id='type-id-1282'>
+ <data-member access='public' layout-offset-in-bits='0'>
+ <var-decl name='update' type-id='type-id-1143' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='64'>
+ <var-decl name='digest' type-id='type-id-1144' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='128'>
+ <var-decl name='dom' type-id='type-id-1283' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='192'>
+ <var-decl name='low_mask' type-id='type-id-1227' visibility='default'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='256'>
+ <var-decl name='high_bit' type-id='type-id-1227' visibility='default'/>
+ </data-member>
+ </class-decl>
+ <typedef-decl name='nettle_eddsa_dom_func' type-id='type-id-120' id='type-id-1284'/>
+ <pointer-type-def type-id='type-id-1284' size-in-bits='64' id='type-id-1283'/>
+ <qualified-type-def type-id='type-id-1282' const='yes' id='type-id-1285'/>
+ <var-decl name='_nettle_ed448_shake256' type-id='type-id-1285' visibility='default'/>
+ <function-decl name='gnutls_nettle_curve448_sha3_256_update' mangled-name='gnutls_nettle_curve448_sha3_256_update' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ </abi-instr>
+ <abi-instr version='1.0' address-size='64' path='curve448/ed448-shake256-pubkey.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
+ <function-decl name='_nettle_eddsa_public_key_itch' mangled-name='_nettle_eddsa_public_key_itch' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ <function-decl name='_nettle_eddsa_expand_key' mangled-name='_nettle_eddsa_expand_key' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ <function-decl name='_nettle_eddsa_public_key' mangled-name='_nettle_eddsa_public_key' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ </abi-instr>
+ <abi-instr version='1.0' address-size='64' path='curve448/ed448-shake256-sign.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
+ <function-decl name='_nettle_eddsa_sign_itch' mangled-name='_nettle_eddsa_sign_itch' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ <function-decl name='_nettle_eddsa_sign' mangled-name='_nettle_eddsa_sign' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ </abi-instr>
+ <abi-instr version='1.0' address-size='64' path='curve448/ed448-shake256-verify.c' comp-dir-path='/root/gnutls/lib/nettle' language='LANG_C99'>
+ <function-decl name='_nettle_eddsa_verify_itch' mangled-name='_nettle_eddsa_verify_itch' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ <function-decl name='_nettle_eddsa_verify' mangled-name='_nettle_eddsa_verify' visibility='default' binding='global' size-in-bits='64'>
+ <return type-id='type-id-111'/>
+ </function-decl>
+ </abi-instr>
</abi-corpus>
diff --git a/devel/libtasn1 b/devel/libtasn1
new file mode 160000
+Subproject 78204593822b4c1a8e0ca87f57c48e5936b0fe2
diff --git a/devel/nettle b/devel/nettle
-Subproject d1dbba1e7fcf4ad54e5d3435e381ae336c36cf2
+Subproject 228ae2618cfeb84b8d4b189cc428fc55fac462e
diff --git a/devel/symbols.last b/devel/symbols.last
index 1e0e56d5c0..d9a5289b7d 100644
--- a/devel/symbols.last
+++ b/devel/symbols.last
@@ -2,6 +2,8 @@ GNUTLS_3_4@GNUTLS_3_4
GNUTLS_3_6_0@GNUTLS_3_6_0
GNUTLS_3_6_10@GNUTLS_3_6_10
GNUTLS_3_6_12@GNUTLS_3_6_12
+GNUTLS_3_6_13@GNUTLS_3_6_13
+GNUTLS_3_6_14@GNUTLS_3_6_14
GNUTLS_3_6_2@GNUTLS_3_6_2
GNUTLS_3_6_3@GNUTLS_3_6_3
GNUTLS_3_6_4@GNUTLS_3_6_4
@@ -9,6 +11,7 @@ GNUTLS_3_6_5@GNUTLS_3_6_5
GNUTLS_3_6_6@GNUTLS_3_6_6
GNUTLS_3_6_8@GNUTLS_3_6_8
GNUTLS_3_6_9@GNUTLS_3_6_9
+GNUTLS_3_7_0@GNUTLS_3_7_0
_gnutls_global_init_skip@GNUTLS_3_4
gnutls_aead_cipher_decrypt@GNUTLS_3_4
gnutls_aead_cipher_decryptv2@GNUTLS_3_6_10
@@ -214,6 +217,7 @@ gnutls_error_to_alert@GNUTLS_3_4
gnutls_est_record_overhead_size@GNUTLS_3_4
gnutls_ext_get_current_msg@GNUTLS_3_6_3
gnutls_ext_get_data@GNUTLS_3_4
+gnutls_ext_get_name2@GNUTLS_3_6_14
gnutls_ext_get_name@GNUTLS_3_4
gnutls_ext_raw_parse@GNUTLS_3_6_3
gnutls_ext_register@GNUTLS_3_4
@@ -285,6 +289,8 @@ gnutls_hex_decode2@GNUTLS_3_4
gnutls_hex_decode@GNUTLS_3_4
gnutls_hex_encode2@GNUTLS_3_4
gnutls_hex_encode@GNUTLS_3_4
+gnutls_hkdf_expand@GNUTLS_3_6_13
+gnutls_hkdf_extract@GNUTLS_3_6_13
gnutls_hmac@GNUTLS_3_4
gnutls_hmac_copy@GNUTLS_3_6_9
gnutls_hmac_deinit@GNUTLS_3_4
@@ -431,6 +437,7 @@ gnutls_openpgp_send_cert@GNUTLS_3_4
gnutls_openpgp_set_recv_key_function@GNUTLS_3_4
gnutls_packet_deinit@GNUTLS_3_4
gnutls_packet_get@GNUTLS_3_4
+gnutls_pbkdf2@GNUTLS_3_6_13
gnutls_pcert_deinit@GNUTLS_3_4
gnutls_pcert_export_openpgp@GNUTLS_3_4
gnutls_pcert_export_x509@GNUTLS_3_4
@@ -559,6 +566,7 @@ gnutls_pkcs7_get_signature_info@GNUTLS_3_4
gnutls_pkcs7_import@GNUTLS_3_4
gnutls_pkcs7_init@GNUTLS_3_4
gnutls_pkcs7_print@GNUTLS_3_4
+gnutls_pkcs7_print_signature_info@GNUTLS_3_6_14
gnutls_pkcs7_set_crl@GNUTLS_3_4
gnutls_pkcs7_set_crl_raw@GNUTLS_3_4
gnutls_pkcs7_set_crt@GNUTLS_3_4
@@ -572,6 +580,7 @@ gnutls_pkcs_schema_get_name@GNUTLS_3_4
gnutls_pkcs_schema_get_oid@GNUTLS_3_4
gnutls_prf@GNUTLS_3_4
gnutls_prf_early@GNUTLS_3_6_8
+gnutls_prf_hash_get@GNUTLS_3_6_13
gnutls_prf_raw@GNUTLS_3_4
gnutls_prf_rfc5705@GNUTLS_3_4
gnutls_priority_certificate_type_list2@GNUTLS_3_6_4
@@ -646,11 +655,15 @@ gnutls_psk_allocate_server_credentials@GNUTLS_3_4
gnutls_psk_client_get_hint@GNUTLS_3_4
gnutls_psk_free_client_credentials@GNUTLS_3_4
gnutls_psk_free_server_credentials@GNUTLS_3_4
+gnutls_psk_server_get_username2@GNUTLS_3_6_13
gnutls_psk_server_get_username@GNUTLS_3_4
+gnutls_psk_set_client_credentials2@GNUTLS_3_6_13
gnutls_psk_set_client_credentials@GNUTLS_3_4
+gnutls_psk_set_client_credentials_function2@GNUTLS_3_6_13
gnutls_psk_set_client_credentials_function@GNUTLS_3_4
gnutls_psk_set_params_function@GNUTLS_3_4
gnutls_psk_set_server_credentials_file@GNUTLS_3_4
+gnutls_psk_set_server_credentials_function2@GNUTLS_3_6_13
gnutls_psk_set_server_credentials_function@GNUTLS_3_4
gnutls_psk_set_server_credentials_hint@GNUTLS_3_4
gnutls_psk_set_server_dh_params@GNUTLS_3_4
@@ -751,6 +764,7 @@ gnutls_session_get_desc@GNUTLS_3_4
gnutls_session_get_flags@GNUTLS_3_4
gnutls_session_get_id2@GNUTLS_3_4
gnutls_session_get_id@GNUTLS_3_4
+gnutls_session_get_keylog_function@GNUTLS_3_6_13
gnutls_session_get_master_secret@GNUTLS_3_4
gnutls_session_get_ptr@GNUTLS_3_4
gnutls_session_get_random@GNUTLS_3_4
@@ -760,6 +774,7 @@ gnutls_session_key_update@GNUTLS_3_6_3
gnutls_session_resumption_requested@GNUTLS_3_4
gnutls_session_set_data@GNUTLS_3_4
gnutls_session_set_id@GNUTLS_3_4
+gnutls_session_set_keylog_function@GNUTLS_3_6_13
gnutls_session_set_premaster@GNUTLS_3_4
gnutls_session_set_ptr@GNUTLS_3_4
gnutls_session_set_verify_cert2@GNUTLS_3_4
@@ -1233,6 +1248,7 @@ gnutls_x509_trust_list_iter_get_ca@GNUTLS_3_4
gnutls_x509_trust_list_remove_cas@GNUTLS_3_4
gnutls_x509_trust_list_remove_trust_file@GNUTLS_3_4
gnutls_x509_trust_list_remove_trust_mem@GNUTLS_3_4
+gnutls_x509_trust_list_set_getissuer_function@GNUTLS_3_7_0
gnutls_x509_trust_list_verify_crt2@GNUTLS_3_4
gnutls_x509_trust_list_verify_crt@GNUTLS_3_4
gnutls_x509_trust_list_verify_named_crt@GNUTLS_3_4
diff --git a/doc/Makefile.am b/doc/Makefile.am
index aa3984ffe1..d8b2d02ce5 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -1023,6 +1023,8 @@ FUNCS += functions/gnutls_ext_get_data
FUNCS += functions/gnutls_ext_get_data.short
FUNCS += functions/gnutls_ext_get_name
FUNCS += functions/gnutls_ext_get_name.short
+FUNCS += functions/gnutls_ext_get_name2
+FUNCS += functions/gnutls_ext_get_name2.short
FUNCS += functions/gnutls_ext_raw_parse
FUNCS += functions/gnutls_ext_raw_parse.short
FUNCS += functions/gnutls_ext_register
@@ -1121,6 +1123,10 @@ FUNCS += functions/gnutls_hex_encode
FUNCS += functions/gnutls_hex_encode.short
FUNCS += functions/gnutls_hex_encode2
FUNCS += functions/gnutls_hex_encode2.short
+FUNCS += functions/gnutls_hkdf_expand
+FUNCS += functions/gnutls_hkdf_expand.short
+FUNCS += functions/gnutls_hkdf_extract
+FUNCS += functions/gnutls_hkdf_extract.short
FUNCS += functions/gnutls_hmac
FUNCS += functions/gnutls_hmac.short
FUNCS += functions/gnutls_hmac_copy
@@ -1277,6 +1283,8 @@ FUNCS += functions/gnutls_packet_deinit
FUNCS += functions/gnutls_packet_deinit.short
FUNCS += functions/gnutls_packet_get
FUNCS += functions/gnutls_packet_get.short
+FUNCS += functions/gnutls_pbkdf2
+FUNCS += functions/gnutls_pbkdf2.short
FUNCS += functions/gnutls_pcert_deinit
FUNCS += functions/gnutls_pcert_deinit.short
FUNCS += functions/gnutls_pcert_export_openpgp
@@ -1531,6 +1539,8 @@ FUNCS += functions/gnutls_pkcs7_init
FUNCS += functions/gnutls_pkcs7_init.short
FUNCS += functions/gnutls_pkcs7_print
FUNCS += functions/gnutls_pkcs7_print.short
+FUNCS += functions/gnutls_pkcs7_print_signature_info
+FUNCS += functions/gnutls_pkcs7_print_signature_info.short
FUNCS += functions/gnutls_pkcs7_set_crl
FUNCS += functions/gnutls_pkcs7_set_crl.short
FUNCS += functions/gnutls_pkcs7_set_crl_raw
@@ -1567,6 +1577,8 @@ FUNCS += functions/gnutls_prf
FUNCS += functions/gnutls_prf.short
FUNCS += functions/gnutls_prf_early
FUNCS += functions/gnutls_prf_early.short
+FUNCS += functions/gnutls_prf_hash_get
+FUNCS += functions/gnutls_prf_hash_get.short
FUNCS += functions/gnutls_prf_raw
FUNCS += functions/gnutls_prf_raw.short
FUNCS += functions/gnutls_prf_rfc5705
@@ -1719,16 +1731,24 @@ FUNCS += functions/gnutls_psk_free_server_credentials
FUNCS += functions/gnutls_psk_free_server_credentials.short
FUNCS += functions/gnutls_psk_server_get_username
FUNCS += functions/gnutls_psk_server_get_username.short
+FUNCS += functions/gnutls_psk_server_get_username2
+FUNCS += functions/gnutls_psk_server_get_username2.short
FUNCS += functions/gnutls_psk_set_client_credentials
FUNCS += functions/gnutls_psk_set_client_credentials.short
+FUNCS += functions/gnutls_psk_set_client_credentials2
+FUNCS += functions/gnutls_psk_set_client_credentials2.short
FUNCS += functions/gnutls_psk_set_client_credentials_function
FUNCS += functions/gnutls_psk_set_client_credentials_function.short
+FUNCS += functions/gnutls_psk_set_client_credentials_function2
+FUNCS += functions/gnutls_psk_set_client_credentials_function2.short
FUNCS += functions/gnutls_psk_set_params_function
FUNCS += functions/gnutls_psk_set_params_function.short
FUNCS += functions/gnutls_psk_set_server_credentials_file
FUNCS += functions/gnutls_psk_set_server_credentials_file.short
FUNCS += functions/gnutls_psk_set_server_credentials_function
FUNCS += functions/gnutls_psk_set_server_credentials_function.short
+FUNCS += functions/gnutls_psk_set_server_credentials_function2
+FUNCS += functions/gnutls_psk_set_server_credentials_function2.short
FUNCS += functions/gnutls_psk_set_server_credentials_hint
FUNCS += functions/gnutls_psk_set_server_credentials_hint.short
FUNCS += functions/gnutls_psk_set_server_dh_params
@@ -1923,6 +1943,8 @@ FUNCS += functions/gnutls_session_get_id
FUNCS += functions/gnutls_session_get_id.short
FUNCS += functions/gnutls_session_get_id2
FUNCS += functions/gnutls_session_get_id2.short
+FUNCS += functions/gnutls_session_get_keylog_function
+FUNCS += functions/gnutls_session_get_keylog_function.short
FUNCS += functions/gnutls_session_get_master_secret
FUNCS += functions/gnutls_session_get_master_secret.short
FUNCS += functions/gnutls_session_get_ptr
@@ -1941,6 +1963,8 @@ FUNCS += functions/gnutls_session_set_data
FUNCS += functions/gnutls_session_set_data.short
FUNCS += functions/gnutls_session_set_id
FUNCS += functions/gnutls_session_set_id.short
+FUNCS += functions/gnutls_session_set_keylog_function
+FUNCS += functions/gnutls_session_set_keylog_function.short
FUNCS += functions/gnutls_session_set_premaster
FUNCS += functions/gnutls_session_set_premaster.short
FUNCS += functions/gnutls_session_set_ptr
@@ -2863,6 +2887,8 @@ FUNCS += functions/gnutls_x509_trust_list_remove_trust_file
FUNCS += functions/gnutls_x509_trust_list_remove_trust_file.short
FUNCS += functions/gnutls_x509_trust_list_remove_trust_mem
FUNCS += functions/gnutls_x509_trust_list_remove_trust_mem.short
+FUNCS += functions/gnutls_x509_trust_list_set_getissuer_function
+FUNCS += functions/gnutls_x509_trust_list_set_getissuer_function.short
FUNCS += functions/gnutls_x509_trust_list_verify_crt
FUNCS += functions/gnutls_x509_trust_list_verify_crt.short
FUNCS += functions/gnutls_x509_trust_list_verify_crt2
diff --git a/doc/cha-internals.texi b/doc/cha-internals.texi
index 2a9bc1a45b..f188caecc9 100644
--- a/doc/cha-internals.texi
+++ b/doc/cha-internals.texi
@@ -667,15 +667,29 @@ is for the conformance to NIST's FIPS140-2 publication, which consists of polici
for cryptographic modules (such as software libraries). Its implementation in
GnuTLS is designed for Red Hat Enterprise Linux, and can only be enabled
when the library is explicitly compiled with the '--enable-fips140-mode'
-configure option. The operation of the library is then modified, as follows.
+configure option.
+
+There are two distinct library states with regard to FIPS140-2: the FIPS140-2
+mode is @emph{installed} if @code{/etc/system-fips} is present, and the
+FIPS140-2 mode is @emph{enabled} if @code{/proc/sys/crypto/fips_enabled}
+contains '1', which is typically set with the ``fips=1'' kernel command line
+option.
+
+When the FIPS140-2 mode is installed, the operation of the library is modified
+as follows.
@itemize
-@item FIPS140-2 mode is enabled when @code{/proc/sys/crypto/fips_enabled} contains '1' and @code{/etc/system-fips} is present.
-@item Only approved by FIPS140-2 algorithms are enabled
-@item Only approved by FIPS140-2 key lengths are allowed for key generation
@item The random generator used switches to DRBG-AES
@item The integrity of the GnuTLS and dependent libraries is checked on startup
@item Algorithm self-tests are run on library load
+@end itemize
+
+When the FIPS140-2 mode is enabled, The operation of the library is in addition
+modified as follows.
+
+@itemize
+@item Only approved by FIPS140-2 algorithms are enabled
+@item Only approved by FIPS140-2 key lengths are allowed for key generation
@item Any cryptographic operation will be refused if any of the self-tests failed
@end itemize
diff --git a/doc/examples/ex-ocsp-client.c b/doc/examples/ex-ocsp-client.c
index 33eff67a6c..f0b56fffe2 100644
--- a/doc/examples/ex-ocsp-client.c
+++ b/doc/examples/ex-ocsp-client.c
@@ -183,7 +183,7 @@ static gnutls_x509_crt_t load_cert(const char *cert_file)
if (ret < 0)
exit(1);
- data.data = (void *) read_binary_file(cert_file, &size);
+ data.data = (void *) read_file(cert_file, RF_BINARY, &size);
data.size = size;
if (!data.data) {
diff --git a/doc/examples/ex-pkcs12.c b/doc/examples/ex-pkcs12.c
index 7890518f94..0e2b64ee1c 100644
--- a/doc/examples/ex-pkcs12.c
+++ b/doc/examples/ex-pkcs12.c
@@ -28,7 +28,7 @@ write_pkcs12(const gnutls_datum_t * cert,
gnutls_pkcs12_bag_t bag, key_bag;
char pkcs12_struct[10 * 1024];
size_t pkcs12_struct_size;
- FILE *fd;
+ FILE *fp;
/* A good idea might be to use gnutls_x509_privkey_get_key_id()
* to obtain a unique ID.
@@ -116,13 +116,13 @@ write_pkcs12(const gnutls_datum_t * cert,
return 1;
}
- fd = fopen(OUTFILE, "w");
- if (fd == NULL) {
+ fp = fopen(OUTFILE, "w");
+ if (fp == NULL) {
fprintf(stderr, "cannot open file\n");
return 1;
}
- fwrite(pkcs12_struct, 1, pkcs12_struct_size, fd);
- fclose(fd);
+ fwrite(pkcs12_struct, 1, pkcs12_struct_size, fp);
+ fclose(fp);
gnutls_pkcs12_bag_deinit(bag);
gnutls_pkcs12_bag_deinit(key_bag);
diff --git a/doc/manpages/Makefile.am b/doc/manpages/Makefile.am
index 85d0f7f0e4..6a16687c01 100644
--- a/doc/manpages/Makefile.am
+++ b/doc/manpages/Makefile.am
@@ -313,6 +313,7 @@ APIMANS += gnutls_est_record_overhead_size.3
APIMANS += gnutls_ext_get_current_msg.3
APIMANS += gnutls_ext_get_data.3
APIMANS += gnutls_ext_get_name.3
+APIMANS += gnutls_ext_get_name2.3
APIMANS += gnutls_ext_raw_parse.3
APIMANS += gnutls_ext_register.3
APIMANS += gnutls_ext_set_data.3
@@ -362,6 +363,8 @@ APIMANS += gnutls_hex_decode.3
APIMANS += gnutls_hex_decode2.3
APIMANS += gnutls_hex_encode.3
APIMANS += gnutls_hex_encode2.3
+APIMANS += gnutls_hkdf_expand.3
+APIMANS += gnutls_hkdf_extract.3
APIMANS += gnutls_hmac.3
APIMANS += gnutls_hmac_copy.3
APIMANS += gnutls_hmac_deinit.3
@@ -440,6 +443,7 @@ APIMANS += gnutls_openpgp_privkey_sign_hash.3
APIMANS += gnutls_openpgp_send_cert.3
APIMANS += gnutls_packet_deinit.3
APIMANS += gnutls_packet_get.3
+APIMANS += gnutls_pbkdf2.3
APIMANS += gnutls_pcert_deinit.3
APIMANS += gnutls_pcert_export_openpgp.3
APIMANS += gnutls_pcert_export_x509.3
@@ -567,6 +571,7 @@ APIMANS += gnutls_pkcs7_get_signature_info.3
APIMANS += gnutls_pkcs7_import.3
APIMANS += gnutls_pkcs7_init.3
APIMANS += gnutls_pkcs7_print.3
+APIMANS += gnutls_pkcs7_print_signature_info.3
APIMANS += gnutls_pkcs7_set_crl.3
APIMANS += gnutls_pkcs7_set_crl_raw.3
APIMANS += gnutls_pkcs7_set_crt.3
@@ -585,6 +590,7 @@ APIMANS += gnutls_pk_list.3
APIMANS += gnutls_pk_to_sign.3
APIMANS += gnutls_prf.3
APIMANS += gnutls_prf_early.3
+APIMANS += gnutls_prf_hash_get.3
APIMANS += gnutls_prf_raw.3
APIMANS += gnutls_prf_rfc5705.3
APIMANS += gnutls_priority_certificate_type_list.3
@@ -661,11 +667,15 @@ APIMANS += gnutls_psk_client_get_hint.3
APIMANS += gnutls_psk_free_client_credentials.3
APIMANS += gnutls_psk_free_server_credentials.3
APIMANS += gnutls_psk_server_get_username.3
+APIMANS += gnutls_psk_server_get_username2.3
APIMANS += gnutls_psk_set_client_credentials.3
+APIMANS += gnutls_psk_set_client_credentials2.3
APIMANS += gnutls_psk_set_client_credentials_function.3
+APIMANS += gnutls_psk_set_client_credentials_function2.3
APIMANS += gnutls_psk_set_params_function.3
APIMANS += gnutls_psk_set_server_credentials_file.3
APIMANS += gnutls_psk_set_server_credentials_function.3
+APIMANS += gnutls_psk_set_server_credentials_function2.3
APIMANS += gnutls_psk_set_server_credentials_hint.3
APIMANS += gnutls_psk_set_server_dh_params.3
APIMANS += gnutls_psk_set_server_known_dh_params.3
@@ -763,6 +773,7 @@ APIMANS += gnutls_session_get_desc.3
APIMANS += gnutls_session_get_flags.3
APIMANS += gnutls_session_get_id.3
APIMANS += gnutls_session_get_id2.3
+APIMANS += gnutls_session_get_keylog_function.3
APIMANS += gnutls_session_get_master_secret.3
APIMANS += gnutls_session_get_ptr.3
APIMANS += gnutls_session_get_random.3
@@ -772,6 +783,7 @@ APIMANS += gnutls_session_key_update.3
APIMANS += gnutls_session_resumption_requested.3
APIMANS += gnutls_session_set_data.3
APIMANS += gnutls_session_set_id.3
+APIMANS += gnutls_session_set_keylog_function.3
APIMANS += gnutls_session_set_premaster.3
APIMANS += gnutls_session_set_ptr.3
APIMANS += gnutls_session_set_verify_cert.3
@@ -1233,6 +1245,7 @@ APIMANS += gnutls_x509_trust_list_iter_get_ca.3
APIMANS += gnutls_x509_trust_list_remove_cas.3
APIMANS += gnutls_x509_trust_list_remove_trust_file.3
APIMANS += gnutls_x509_trust_list_remove_trust_mem.3
+APIMANS += gnutls_x509_trust_list_set_getissuer_function.3
APIMANS += gnutls_x509_trust_list_verify_crt.3
APIMANS += gnutls_x509_trust_list_verify_crt2.3
APIMANS += gnutls_x509_trust_list_verify_named_crt.3
diff --git a/fuzz/Makefile.am b/fuzz/Makefile.am
index 295e30a950..cf7fab1072 100644
--- a/fuzz/Makefile.am
+++ b/fuzz/Makefile.am
@@ -30,6 +30,8 @@ FUZZERS = \
gnutls_srp_client_fuzzer$(EXEEXT) \
gnutls_srp_server_fuzzer$(EXEEXT) \
gnutls_set_trust_file_fuzzer$(EXEEXT) \
+ gnutls_x509_crl_parser_fuzzer$(EXEEXT) \
+ gnutls_x509_crq_parser_fuzzer$(EXEEXT) \
gnutls_x509_parser_fuzzer$(EXEEXT) \
gnutls_ext_raw_parse_fuzzer$(EXEEXT)
@@ -57,6 +59,8 @@ gnutls_server_rawpk_fuzzer_SOURCES = gnutls_server_rawpk_fuzzer.c $(COMMON_SOURC
gnutls_srp_client_fuzzer_SOURCES = gnutls_srp_client_fuzzer.c $(COMMON_SOURCES) mem.h srp.h
gnutls_srp_server_fuzzer_SOURCES = gnutls_srp_server_fuzzer.c $(COMMON_SOURCES) mem.h srp.h
gnutls_set_trust_file_fuzzer_SOURCES = gnutls_set_trust_file_fuzzer.c $(COMMON_SOURCES)
+gnutls_x509_crl_parser_fuzzer_SOURCES = gnutls_x509_crq_parser_fuzzer.c $(COMMON_SOURCES)
+gnutls_x509_crq_parser_fuzzer_SOURCES = gnutls_x509_crq_parser_fuzzer.c $(COMMON_SOURCES)
gnutls_x509_parser_fuzzer_SOURCES = gnutls_x509_parser_fuzzer.c $(COMMON_SOURCES)
gnutls_ext_raw_parse_fuzzer_SOURCES = gnutls_ext_raw_parse_fuzzer.c $(COMMON_SOURCES)
@@ -84,12 +88,13 @@ oss-fuzz:
for ccfile in *_fuzzer.c; do \
fuzzer=$$(basename $$ccfile .c); \
XLIBS="-lhogweed -lnettle -ltasn1 -lgmp -lidn2 -lunistring"; \
- $$CXX $$CXXFLAGS -I$(top_srcdir)/lib/includes/ -I$(top_srcdir) \
- "$${fuzzer}.c" -o "$${fuzzer}" \
+ $$CC $$CFLAGS -I$(top_srcdir)/lib/includes/ -I$(top_srcdir) \
+ -c "$${fuzzer}.c" -o "$${fuzzer}.o" ; \
+ $$CXX $$CXXFLAGS "$${fuzzer}.o" -o "$${fuzzer}" \
../lib/.libs/libgnutls.a $${LIB_FUZZING_ENGINE} \
-Wl,-Bstatic \
$${XLIBS} \
- -Wl,-Bdynamic; \
+ -Wl,-Bdynamic || exit $?; \
done; \
fi
diff --git a/fuzz/README.md b/fuzz/README.md
index b2766623c7..fecd62405c 100644
--- a/fuzz/README.md
+++ b/fuzz/README.md
@@ -35,15 +35,17 @@ me new corpora after 1-2 days.
Use the following commands on top dir:
```
export CC=clang
-export CFLAGS="-O1 -g -fno-omit-frame-pointer -gline-tables-only -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=undefined,integer,nullability -fsanitize=address -fsanitize-address-use-after-scope -fsanitize-coverage=trace-pc-guard,trace-cmp"
+export CXX=clang++
+export CFLAGS="-O1 -g -fno-omit-frame-pointer -gline-tables-only -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=undefined,integer,nullability,bool,alignment,null,enum,address,leak,nonnull-attribute -fno-sanitize-recover=all -fsanitize-recover=unsigned-integer-overflow -fsanitize-address-use-after-scope -fsanitize=fuzzer-no-link"
+export CXXFLAGS="$CFLAGS"
./configure --disable-guile --enable-fuzzer-target --enable-static --disable-doc --disable-gcc-warnings --disable-hardware-acceleration
make clean
make
cd fuzz
-# build and run gnutls_base64_decode_fuzzer (change ASAN path if not using clang-8)
-export UBSAN_OPTIONS=print_stacktrace=1
-export ASAN_SYMBOLIZER_PATH=/usr/lib/llvm-8/bin/llvm-symbolizer
+# build and run gnutls_base64_decode_fuzzer
+export UBSAN_OPTIONS=print_stacktrace=1:report_error_type=1
+export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer
./run-clang.sh gnutls_base64_decoder_fuzzer
```
diff --git a/fuzz/gnutls_ocsp_resp_parser_fuzzer.repro/0b1ff2feb11e82901e7ba196270fa134e5169364 b/fuzz/gnutls_ocsp_resp_parser_fuzzer.repro/0b1ff2feb11e82901e7ba196270fa134e5169364
new file mode 100644
index 0000000000..f454bf40c8
--- /dev/null
+++ b/fuzz/gnutls_ocsp_resp_parser_fuzzer.repro/0b1ff2feb11e82901e7ba196270fa134e5169364
Binary files differ
diff --git a/fuzz/gnutls_pkcs12_key_parser_fuzzer.repro/dcbb6c7d385ddf87823849890768b022dc9e1eff b/fuzz/gnutls_pkcs12_key_parser_fuzzer.repro/dcbb6c7d385ddf87823849890768b022dc9e1eff
new file mode 100644
index 0000000000..ebc03d30dc
--- /dev/null
+++ b/fuzz/gnutls_pkcs12_key_parser_fuzzer.repro/dcbb6c7d385ddf87823849890768b022dc9e1eff
Binary files differ
diff --git a/fuzz/gnutls_x509_crl_parser_fuzzer.c b/fuzz/gnutls_x509_crl_parser_fuzzer.c
new file mode 100644
index 0000000000..b306501df2
--- /dev/null
+++ b/fuzz/gnutls_x509_crl_parser_fuzzer.c
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2020 Dmitry Baryshkov
+ *
+ * This file is part of GnuTLS.
+ *
+ * The GnuTLS is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>
+ *
+ */
+
+#include <assert.h>
+#include <stdint.h>
+
+#include <gnutls/gnutls.h>
+#include <gnutls/x509.h>
+
+#include "fuzzer.h"
+
+int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+{
+ gnutls_datum_t raw;
+ gnutls_datum_t out;
+ gnutls_x509_crl_t crl;
+ int ret;
+
+ raw.data = (unsigned char *)data;
+ raw.size = size;
+
+ ret = gnutls_x509_crl_init(&crl);
+ assert(ret >= 0);
+
+ ret = gnutls_x509_crl_import(crl, &raw, GNUTLS_X509_FMT_DER);
+ if (ret >= 0) {
+ ret = gnutls_x509_crl_print(crl, GNUTLS_CRT_PRINT_FULL, &out);
+ assert(ret >= 0);
+ gnutls_free(out.data);
+ }
+ gnutls_x509_crl_deinit(crl);
+
+ return 0;
+}
diff --git a/fuzz/gnutls_x509_crl_parser_fuzzer.in/027756c2bcbe9c7e40d84f1d95a1096869d2b88a b/fuzz/gnutls_x509_crl_parser_fuzzer.in/027756c2bcbe9c7e40d84f1d95a1096869d2b88a
new file mode 100644
index 0000000000..ceb8b555c6
--- /dev/null
+++ b/fuzz/gnutls_x509_crl_parser_fuzzer.in/027756c2bcbe9c7e40d84f1d95a1096869d2b88a
Binary files differ
diff --git a/fuzz/gnutls_x509_crl_parser_fuzzer.in/29ad4c879cc2d31eaf145c7a9dc8e1dfb2510b14 b/fuzz/gnutls_x509_crl_parser_fuzzer.in/29ad4c879cc2d31eaf145c7a9dc8e1dfb2510b14
new file mode 100644
index 0000000000..5dea927e7f
--- /dev/null
+++ b/fuzz/gnutls_x509_crl_parser_fuzzer.in/29ad4c879cc2d31eaf145c7a9dc8e1dfb2510b14
Binary files differ
diff --git a/fuzz/gnutls_x509_crl_parser_fuzzer.in/444a5c0edcfed360801be0cb99e1898e12c218d7 b/fuzz/gnutls_x509_crl_parser_fuzzer.in/444a5c0edcfed360801be0cb99e1898e12c218d7
new file mode 100644
index 0000000000..56c880f737
--- /dev/null
+++ b/fuzz/gnutls_x509_crl_parser_fuzzer.in/444a5c0edcfed360801be0cb99e1898e12c218d7
Binary files differ
diff --git a/fuzz/gnutls_x509_crl_parser_fuzzer.in/48e9607eb3f073f7845690be49b6acd2547d7362 b/fuzz/gnutls_x509_crl_parser_fuzzer.in/48e9607eb3f073f7845690be49b6acd2547d7362
new file mode 100644
index 0000000000..287019cbbd
--- /dev/null
+++ b/fuzz/gnutls_x509_crl_parser_fuzzer.in/48e9607eb3f073f7845690be49b6acd2547d7362
Binary files differ
diff --git a/fuzz/gnutls_x509_crl_parser_fuzzer.in/4903c7d58c4077490c7c63d884b9993087298594 b/fuzz/gnutls_x509_crl_parser_fuzzer.in/4903c7d58c4077490c7c63d884b9993087298594
new file mode 100644
index 0000000000..cd46aa1d73
--- /dev/null
+++ b/fuzz/gnutls_x509_crl_parser_fuzzer.in/4903c7d58c4077490c7c63d884b9993087298594
Binary files differ
diff --git a/fuzz/gnutls_x509_crl_parser_fuzzer.in/4f58aabf04b92b0a91c643a80fccf42a22beec50 b/fuzz/gnutls_x509_crl_parser_fuzzer.in/4f58aabf04b92b0a91c643a80fccf42a22beec50
new file mode 100644
index 0000000000..7ab7752000
--- /dev/null
+++ b/fuzz/gnutls_x509_crl_parser_fuzzer.in/4f58aabf04b92b0a91c643a80fccf42a22beec50
Binary files differ
diff --git a/fuzz/gnutls_x509_crl_parser_fuzzer.in/50dca39ea79c6e5d3911d8b44d7328c8bfcfad08 b/fuzz/gnutls_x509_crl_parser_fuzzer.in/50dca39ea79c6e5d3911d8b44d7328c8bfcfad08
new file mode 100644
index 0000000000..2aa75adcb8
--- /dev/null
+++ b/fuzz/gnutls_x509_crl_parser_fuzzer.in/50dca39ea79c6e5d3911d8b44d7328c8bfcfad08
Binary files differ
diff --git a/fuzz/gnutls_x509_crl_parser_fuzzer.in/606fe2f10c22d77172998298d331155c5841fab6 b/fuzz/gnutls_x509_crl_parser_fuzzer.in/606fe2f10c22d77172998298d331155c5841fab6
new file mode 100644
index 0000000000..148b47815d
--- /dev/null
+++ b/fuzz/gnutls_x509_crl_parser_fuzzer.in/606fe2f10c22d77172998298d331155c5841fab6
Binary files differ
diff --git a/fuzz/gnutls_x509_crl_parser_fuzzer.in/7ebae215244b160658517bde057f4a3653cbb32c b/fuzz/gnutls_x509_crl_parser_fuzzer.in/7ebae215244b160658517bde057f4a3653cbb32c
new file mode 100644
index 0000000000..92ae4584dd
--- /dev/null
+++ b/fuzz/gnutls_x509_crl_parser_fuzzer.in/7ebae215244b160658517bde057f4a3653cbb32c
Binary files differ
diff --git a/fuzz/gnutls_x509_crl_parser_fuzzer.in/c780cb0ee96a448f5af0e1bb09224674546c723a b/fuzz/gnutls_x509_crl_parser_fuzzer.in/c780cb0ee96a448f5af0e1bb09224674546c723a
new file mode 100644
index 0000000000..3823a45aea
--- /dev/null
+++ b/fuzz/gnutls_x509_crl_parser_fuzzer.in/c780cb0ee96a448f5af0e1bb09224674546c723a
Binary files differ
diff --git a/fuzz/gnutls_x509_crl_parser_fuzzer.repro/698e01fdc3f9a4c402424302768da75f2464a63f b/fuzz/gnutls_x509_crl_parser_fuzzer.repro/698e01fdc3f9a4c402424302768da75f2464a63f
new file mode 100644
index 0000000000..9cc53a3e7d
--- /dev/null
+++ b/fuzz/gnutls_x509_crl_parser_fuzzer.repro/698e01fdc3f9a4c402424302768da75f2464a63f
Binary files differ
diff --git a/fuzz/gnutls_x509_crq_parser_fuzzer.c b/fuzz/gnutls_x509_crq_parser_fuzzer.c
new file mode 100644
index 0000000000..4f7ebee78d
--- /dev/null
+++ b/fuzz/gnutls_x509_crq_parser_fuzzer.c
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2020 Dmitry Baryshkov
+ *
+ * This file is part of GnuTLS.
+ *
+ * The GnuTLS is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>
+ *
+ */
+
+#include <assert.h>
+#include <stdint.h>
+
+#include <gnutls/gnutls.h>
+#include <gnutls/x509.h>
+
+#include "fuzzer.h"
+
+int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+{
+ gnutls_datum_t raw;
+ gnutls_datum_t out;
+ gnutls_x509_crq_t crq;
+ int ret;
+
+ raw.data = (unsigned char *)data;
+ raw.size = size;
+
+ ret = gnutls_x509_crq_init(&crq);
+ assert(ret >= 0);
+
+ ret = gnutls_x509_crq_import(crq, &raw, GNUTLS_X509_FMT_DER);
+ if (ret >= 0) {
+ ret = gnutls_x509_crq_print(crq, GNUTLS_CRT_PRINT_FULL, &out);
+ assert(ret >= 0);
+ gnutls_free(out.data);
+ }
+ gnutls_x509_crq_deinit(crq);
+
+ return 0;
+}
diff --git a/fuzz/gnutls_x509_crq_parser_fuzzer.in/00da5667fcf94c6753aff43d0e8cf7a2c0e28233 b/fuzz/gnutls_x509_crq_parser_fuzzer.in/00da5667fcf94c6753aff43d0e8cf7a2c0e28233
new file mode 100644
index 0000000000..7631bd7e56
--- /dev/null
+++ b/fuzz/gnutls_x509_crq_parser_fuzzer.in/00da5667fcf94c6753aff43d0e8cf7a2c0e28233
Binary files differ
diff --git a/fuzz/gnutls_x509_crq_parser_fuzzer.in/2ac00bb62cce4c5a85ba7d59d167e8cecbfb468d b/fuzz/gnutls_x509_crq_parser_fuzzer.in/2ac00bb62cce4c5a85ba7d59d167e8cecbfb468d
new file mode 100644
index 0000000000..b728d2c5ed
--- /dev/null
+++ b/fuzz/gnutls_x509_crq_parser_fuzzer.in/2ac00bb62cce4c5a85ba7d59d167e8cecbfb468d
Binary files differ
diff --git a/fuzz/gnutls_x509_crq_parser_fuzzer.in/2e7defbf265715d2c2d5ea8bc464071ce19e667a b/fuzz/gnutls_x509_crq_parser_fuzzer.in/2e7defbf265715d2c2d5ea8bc464071ce19e667a
new file mode 100644
index 0000000000..2e9e772027
--- /dev/null
+++ b/fuzz/gnutls_x509_crq_parser_fuzzer.in/2e7defbf265715d2c2d5ea8bc464071ce19e667a
Binary files differ
diff --git a/fuzz/gnutls_x509_crq_parser_fuzzer.in/9a926fe3e62b45ba45705ef482a04289a942804f b/fuzz/gnutls_x509_crq_parser_fuzzer.in/9a926fe3e62b45ba45705ef482a04289a942804f
new file mode 100644
index 0000000000..c15f868bab
--- /dev/null
+++ b/fuzz/gnutls_x509_crq_parser_fuzzer.in/9a926fe3e62b45ba45705ef482a04289a942804f
Binary files differ
diff --git a/fuzz/gnutls_x509_crq_parser_fuzzer.in/b63e395f3b22408f4c03a9ef249afedb48b64609 b/fuzz/gnutls_x509_crq_parser_fuzzer.in/b63e395f3b22408f4c03a9ef249afedb48b64609
new file mode 100644
index 0000000000..59694b83c4
--- /dev/null
+++ b/fuzz/gnutls_x509_crq_parser_fuzzer.in/b63e395f3b22408f4c03a9ef249afedb48b64609
Binary files differ
diff --git a/fuzz/gnutls_x509_crq_parser_fuzzer.in/d1e497073008aa907e2c79e236234eff7a21e43e b/fuzz/gnutls_x509_crq_parser_fuzzer.in/d1e497073008aa907e2c79e236234eff7a21e43e
new file mode 100644
index 0000000000..1bbee926a8
--- /dev/null
+++ b/fuzz/gnutls_x509_crq_parser_fuzzer.in/d1e497073008aa907e2c79e236234eff7a21e43e
Binary files differ
diff --git a/fuzz/gnutls_x509_crq_parser_fuzzer.in/d6cb1c75c08f4c6b76d4e37fefca392f403c7c4e b/fuzz/gnutls_x509_crq_parser_fuzzer.in/d6cb1c75c08f4c6b76d4e37fefca392f403c7c4e
new file mode 100644
index 0000000000..b5fc84abe7
--- /dev/null
+++ b/fuzz/gnutls_x509_crq_parser_fuzzer.in/d6cb1c75c08f4c6b76d4e37fefca392f403c7c4e
Binary files differ
diff --git a/fuzz/gnutls_x509_crq_parser_fuzzer.repro/609921afff38ec5b52feb7e17aa3035bdce0e0d3 b/fuzz/gnutls_x509_crq_parser_fuzzer.repro/609921afff38ec5b52feb7e17aa3035bdce0e0d3
new file mode 100644
index 0000000000..4fe047d3c3
--- /dev/null
+++ b/fuzz/gnutls_x509_crq_parser_fuzzer.repro/609921afff38ec5b52feb7e17aa3035bdce0e0d3
Binary files differ
diff --git a/gl/override/m4/valgrind-tests.m4.diff b/gl/override/m4/valgrind-tests.m4.diff
index a1e6686964..4e31532e75 100644
--- a/gl/override/m4/valgrind-tests.m4.diff
+++ b/gl/override/m4/valgrind-tests.m4.diff
@@ -18,7 +18,7 @@
AC_CACHE_CHECK([for valgrind options for tests],
[gl_cv_opt_valgrind_tests],
- [gl_cv_opt_valgrind_tests="-q --error-exitcode=1 --leak-check=full"
-+ [gl_cv_opt_valgrind_tests="-q --error-exitcode=1 --leak-check=full --suppressions=\$(srcdir)/suppressions.valgrind"
++ [gl_cv_opt_valgrind_tests="-q --error-exitcode=1 --leak-check=full --track-origins=yes --gen-suppressions=all --suppressions=\$(srcdir)/suppressions.valgrind"
$VALGRIND $gl_valgrind_opts ls > /dev/null 2>&1 ||
gl_cv_opt_valgrind_tests=no])
diff --git a/gnulib b/gnulib
-Subproject 07fb4954db5032be9c61af7e014521efb6f7d20
+Subproject fb64a78174042189f4d012cbd748d565f021cd6
diff --git a/lib/Makefile.am b/lib/Makefile.am
index eddd1167a7..fa47ac5e62 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -151,7 +151,7 @@ libgnutls_la_LIBADD = ../gl/libgnu.la x509/libgnutls_x509.la \
auth/libgnutls_auth.la algorithms/libgnutls_alg.la \
extras/libgnutls_extras.la
thirdparty_libadd = $(LTLIBZ) $(LTLIBINTL) $(LIBSOCKET) $(LTLIBNSL) \
- $(P11_KIT_LIBS) $(LIB_SELECT)
+ $(P11_KIT_LIBS) $(LIB_SELECT) $(GNUTLS_LIBS_PRIVATE)
if HAVE_LIBIDN2
thirdparty_libadd += $(LIBIDN2_LIBS)
@@ -208,10 +208,6 @@ defexec_DATA = libgnutls-$(DLL_VERSION).def
DISTCLEANFILES += $(defexec_DATA)
endif
-if WINDOWS
-thirdparty_libadd += -lcrypt32
-endif
-
if MACOSX
libgnutls_la_LDFLAGS += -framework Security -framework CoreFoundation
endif
diff --git a/lib/accelerated/aarch64/Makefile.am b/lib/accelerated/aarch64/Makefile.am
index 90443bb36b..0c245aca40 100644
--- a/lib/accelerated/aarch64/Makefile.am
+++ b/lib/accelerated/aarch64/Makefile.am
@@ -44,11 +44,9 @@ libaarch64_la_SOURCES = aarch64-common.c aarch64-common.h sha-aarch64.h sha-aarc
hmac-sha-aarch64.c aes-cbc-aarch64.c aes-gcm-aarch64.c aes-aarch64.h aes-ccm-aarch64.c
if MACOSX
-ADIR=macosx
+libaarch64_la_SOURCES += macosx/sha1-armv8.s macosx/sha512-armv8.s macosx/sha256-armv8.s \
+ macosx/aes-aarch64.s macosx/ghash-aarch64.s
else
-ADIR=elf
+libaarch64_la_SOURCES += elf/sha1-armv8.s elf/sha512-armv8.s elf/sha256-armv8.s \
+ elf/aes-aarch64.s elf/ghash-aarch64.s
endif
-
-libaarch64_la_SOURCES += $(ADIR)/sha1-armv8.s $(ADIR)/sha512-armv8.s $(ADIR)/sha256-armv8.s \
- $(ADIR)/aes-aarch64.s $(ADIR)/ghash-aarch64.s
-
diff --git a/lib/accelerated/aarch64/aarch64-common.c b/lib/accelerated/aarch64/aarch64-common.c
index 38cff360b6..82cd8715fe 100644
--- a/lib/accelerated/aarch64/aarch64-common.c
+++ b/lib/accelerated/aarch64/aarch64-common.c
@@ -207,6 +207,14 @@ void _register_aarch64_crypto(unsigned capabilities)
ret =
gnutls_crypto_single_cipher_register
+ (GNUTLS_CIPHER_AES_192_GCM, 90,
+ &_gnutls_aes_gcm_aarch64, 0);
+ if (ret < 0) {
+ gnutls_assert();
+ }
+
+ ret =
+ gnutls_crypto_single_cipher_register
(GNUTLS_CIPHER_AES_256_GCM, 90,
&_gnutls_aes_gcm_aarch64, 0);
if (ret < 0) {
diff --git a/lib/accelerated/aarch64/aes-gcm-aarch64.c b/lib/accelerated/aarch64/aes-gcm-aarch64.c
index c88fe9759f..01f22136a6 100644
--- a/lib/accelerated/aarch64/aes-gcm-aarch64.c
+++ b/lib/accelerated/aarch64/aes-gcm-aarch64.c
@@ -83,6 +83,7 @@ aes_gcm_cipher_init(gnutls_cipher_algorithm_t algorithm, void **_ctx,
{
/* we use key size to distinguish */
if (algorithm != GNUTLS_CIPHER_AES_128_GCM &&
+ algorithm != GNUTLS_CIPHER_AES_192_GCM &&
algorithm != GNUTLS_CIPHER_AES_256_GCM)
return GNUTLS_E_INVALID_REQUEST;
diff --git a/lib/accelerated/cryptodev-gcm.c b/lib/accelerated/cryptodev-gcm.c
index bd9f1a025d..876756094e 100644
--- a/lib/accelerated/cryptodev-gcm.c
+++ b/lib/accelerated/cryptodev-gcm.c
@@ -69,6 +69,7 @@ static void aes_gcm_deinit(void *_ctx)
static const int cipher_map[] = {
[GNUTLS_CIPHER_AES_128_GCM] = CRYPTO_AES_GCM,
+ [GNUTLS_CIPHER_AES_192_GCM] = CRYPTO_AES_GCM,
[GNUTLS_CIPHER_AES_256_GCM] = CRYPTO_AES_GCM,
};
diff --git a/lib/accelerated/x86/Makefile.am b/lib/accelerated/x86/Makefile.am
index 9ee9d0ac2e..58698af300 100644
--- a/lib/accelerated/x86/Makefile.am
+++ b/lib/accelerated/x86/Makefile.am
@@ -39,7 +39,7 @@ noinst_LTLIBRARIES = libx86.la
libx86_la_SOURCES = x86-common.c aes-x86.h x86-common.h sha-x86-ssse3.c sha-x86.h hmac-x86-ssse3.c \
aes-gcm-x86-ssse3.c aes-gcm-x86-aesni.c aes-cbc-x86-ssse3.c aes-cbc-x86-aesni.c aes-gcm-aead.h \
- aes-ccm-x86-aesni.c
+ aes-ccm-x86-aesni.c aes-xts-x86-aesni.c
if ENABLE_PADLOCK
libx86_la_SOURCES += sha-padlock.c hmac-padlock.c aes-padlock.c aes-gcm-padlock.c \
diff --git a/lib/accelerated/x86/aes-gcm-x86-aesni.c b/lib/accelerated/x86/aes-gcm-x86-aesni.c
index e5110ef528..6c1bb1f6fd 100644
--- a/lib/accelerated/x86/aes-gcm-x86-aesni.c
+++ b/lib/accelerated/x86/aes-gcm-x86-aesni.c
@@ -60,6 +60,14 @@ static void x86_aes128_set_encrypt_key(void *_ctx,
aesni_set_encrypt_key(key, 16*8, ctx);
}
+static void x86_aes192_set_encrypt_key(void *_ctx,
+ const uint8_t * key)
+{
+ AES_KEY *ctx = _ctx;
+
+ aesni_set_encrypt_key(key, 24*8, ctx);
+}
+
static void x86_aes256_set_encrypt_key(void *_ctx,
const uint8_t * key)
{
@@ -74,6 +82,7 @@ aes_gcm_cipher_init(gnutls_cipher_algorithm_t algorithm, void **_ctx,
{
/* we use key size to distinguish */
if (algorithm != GNUTLS_CIPHER_AES_128_GCM &&
+ algorithm != GNUTLS_CIPHER_AES_192_GCM &&
algorithm != GNUTLS_CIPHER_AES_256_GCM)
return GNUTLS_E_INVALID_REQUEST;
@@ -94,6 +103,9 @@ aes_gcm_cipher_setkey(void *_ctx, const void *key, size_t length)
if (length == 16) {
GCM_SET_KEY(ctx, x86_aes128_set_encrypt_key, x86_aes_encrypt,
key);
+ } else if (length == 24) {
+ GCM_SET_KEY(ctx, x86_aes192_set_encrypt_key, x86_aes_encrypt,
+ key);
} else if (length == 32) {
GCM_SET_KEY(ctx, x86_aes256_set_encrypt_key, x86_aes_encrypt,
key);
diff --git a/lib/accelerated/x86/aes-gcm-x86-pclmul-avx.c b/lib/accelerated/x86/aes-gcm-x86-pclmul-avx.c
index 747a894921..3b4140acb2 100644
--- a/lib/accelerated/x86/aes-gcm-x86-pclmul-avx.c
+++ b/lib/accelerated/x86/aes-gcm-x86-pclmul-avx.c
@@ -81,6 +81,7 @@ aes_gcm_cipher_init(gnutls_cipher_algorithm_t algorithm, void **_ctx,
{
/* we use key size to distinguish */
if (algorithm != GNUTLS_CIPHER_AES_128_GCM &&
+ algorithm != GNUTLS_CIPHER_AES_192_GCM &&
algorithm != GNUTLS_CIPHER_AES_256_GCM)
return GNUTLS_E_INVALID_REQUEST;
diff --git a/lib/accelerated/x86/aes-gcm-x86-pclmul.c b/lib/accelerated/x86/aes-gcm-x86-pclmul.c
index 2225b93376..dc1e68dfe8 100644
--- a/lib/accelerated/x86/aes-gcm-x86-pclmul.c
+++ b/lib/accelerated/x86/aes-gcm-x86-pclmul.c
@@ -81,6 +81,7 @@ aes_gcm_cipher_init(gnutls_cipher_algorithm_t algorithm, void **_ctx,
{
/* we use key size to distinguish */
if (algorithm != GNUTLS_CIPHER_AES_128_GCM &&
+ algorithm != GNUTLS_CIPHER_AES_192_GCM &&
algorithm != GNUTLS_CIPHER_AES_256_GCM)
return GNUTLS_E_INVALID_REQUEST;
diff --git a/lib/accelerated/x86/aes-gcm-x86-ssse3.c b/lib/accelerated/x86/aes-gcm-x86-ssse3.c
index 5580cc2214..f6b14681c9 100644
--- a/lib/accelerated/x86/aes-gcm-x86-ssse3.c
+++ b/lib/accelerated/x86/aes-gcm-x86-ssse3.c
@@ -69,6 +69,14 @@ static void x86_aes_128_set_encrypt_key(void *_ctx,
vpaes_set_encrypt_key(key, 16*8, ctx);
}
+static void x86_aes_192_set_encrypt_key(void *_ctx,
+ const uint8_t * key)
+{
+ AES_KEY *ctx = _ctx;
+
+ vpaes_set_encrypt_key(key, 24*8, ctx);
+}
+
static void x86_aes_256_set_encrypt_key(void *_ctx,
const uint8_t * key)
{
@@ -83,6 +91,7 @@ aes_gcm_cipher_init(gnutls_cipher_algorithm_t algorithm, void **_ctx,
{
/* we use key size to distinguish */
if (algorithm != GNUTLS_CIPHER_AES_128_GCM &&
+ algorithm != GNUTLS_CIPHER_AES_192_GCM &&
algorithm != GNUTLS_CIPHER_AES_256_GCM)
return GNUTLS_E_INVALID_REQUEST;
@@ -103,6 +112,9 @@ aes_gcm_cipher_setkey(void *_ctx, const void *key, size_t keysize)
if (keysize == 16) {
GCM_SET_KEY(ctx, x86_aes_128_set_encrypt_key, x86_aes_encrypt,
key);
+ } else if (keysize == 24) {
+ GCM_SET_KEY(ctx, x86_aes_192_set_encrypt_key, x86_aes_encrypt,
+ key);
} else if (keysize == 32) {
GCM_SET_KEY(ctx, x86_aes_256_set_encrypt_key, x86_aes_encrypt,
key);
diff --git a/lib/accelerated/x86/aes-padlock.c b/lib/accelerated/x86/aes-padlock.c
index f10b5c555d..018764bc67 100644
--- a/lib/accelerated/x86/aes-padlock.c
+++ b/lib/accelerated/x86/aes-padlock.c
@@ -119,13 +119,14 @@ padlock_aes_cbc_encrypt(void *_ctx, const void *src, size_t src_size,
{
struct padlock_ctx *ctx = _ctx;
struct padlock_cipher_data *pce;
+ int ret = 1;
pce = ALIGN16(&ctx->expanded_key);
if (src_size > 0)
- padlock_cbc_encrypt(dst, src, pce, src_size);
+ ret = padlock_cbc_encrypt(dst, src, pce, src_size);
- return 0;
+ return ret ? 0 : GNUTLS_E_ENCRYPTION_FAILED;
}
@@ -135,13 +136,14 @@ padlock_aes_cbc_decrypt(void *_ctx, const void *src, size_t src_size,
{
struct padlock_ctx *ctx = _ctx;
struct padlock_cipher_data *pcd;
+ int ret = 1;
pcd = ALIGN16(&ctx->expanded_key);
if (src_size > 0)
padlock_cbc_encrypt(dst, src, pcd, src_size);
- return 0;
+ return ret ? 0 : GNUTLS_E_ENCRYPTION_FAILED;
}
static void aes_deinit(void *_ctx)
diff --git a/lib/accelerated/x86/aes-x86.h b/lib/accelerated/x86/aes-x86.h
index 92f54a6a90..023b5f7be6 100644
--- a/lib/accelerated/x86/aes-x86.h
+++ b/lib/accelerated/x86/aes-x86.h
@@ -45,6 +45,14 @@ size_t aesni_gcm_encrypt(const void *inp, void *out, size_t len,
size_t aesni_gcm_decrypt(const void *inp, void *out, size_t len,
const AES_KEY *key, const unsigned char iv[16], uint64_t* Xi);
+void aesni_xts_encrypt(const unsigned char *in, unsigned char *out,
+ size_t len, const AES_KEY * key, const AES_KEY * key2,
+ const unsigned char iv[16]);
+
+void aesni_xts_decrypt(const unsigned char *in, unsigned char *out,
+ size_t len, const AES_KEY * key, const AES_KEY * key2,
+ const unsigned char iv[16]);
+
int vpaes_set_encrypt_key(const unsigned char *userKey, int bits, AES_KEY *key);
int vpaes_set_decrypt_key(const unsigned char *userKey, int bits, AES_KEY *key);
void vpaes_cbc_encrypt(const unsigned char *in, unsigned char *out,
@@ -56,6 +64,7 @@ extern const gnutls_crypto_cipher_st _gnutls_aes_gcm_pclmul;
extern const gnutls_crypto_cipher_st _gnutls_aes_gcm_pclmul_avx;
extern const gnutls_crypto_cipher_st _gnutls_aes_gcm_x86_aesni;
extern const gnutls_crypto_cipher_st _gnutls_aes_ccm_x86_aesni;
+extern const gnutls_crypto_cipher_st _gnutls_aes_xts_x86_aesni;
extern const gnutls_crypto_cipher_st _gnutls_aes_gcm_x86_ssse3;
extern const gnutls_crypto_cipher_st _gnutls_aes_ssse3;
diff --git a/lib/accelerated/x86/aes-xts-x86-aesni.c b/lib/accelerated/x86/aes-xts-x86-aesni.c
new file mode 100644
index 0000000000..3371d0812d
--- /dev/null
+++ b/lib/accelerated/x86/aes-xts-x86-aesni.c
@@ -0,0 +1,160 @@
+/*
+ * Copyright (C) 2011-2012 Free Software Foundation, Inc.
+ * Copyright (C) 2020 Red Hat, Inc.
+ *
+ * Authors: Nikos Mavrogiannopoulos, Anderson Toshiyuki Sasaki
+ *
+ * This file is part of GnuTLS.
+ *
+ * The GnuTLS is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>
+ *
+ */
+
+/*
+ * The following code wraps the CRYPTOGAMS implementation of the AES-XTS cipher
+ * using Intel's AES instruction set.
+ */
+
+#include "errors.h"
+#include "gnutls_int.h"
+#include "fips.h"
+#include <gnutls/crypto.h>
+#include <aes-x86.h>
+#include <x86-common.h>
+
+struct x86_aes_xts_ctx {
+ AES_KEY block_key;
+ AES_KEY tweak_key;
+ uint8_t iv[16];
+ int enc;
+};
+
+static int
+x86_aes_xts_cipher_init(gnutls_cipher_algorithm_t algorithm, void **_ctx,
+ int enc)
+{
+ if (algorithm != GNUTLS_CIPHER_AES_128_XTS &&
+ algorithm != GNUTLS_CIPHER_AES_256_XTS)
+ return GNUTLS_E_INVALID_REQUEST;
+
+ *_ctx = gnutls_calloc(1, sizeof(struct x86_aes_xts_ctx));
+ if (*_ctx == NULL) {
+ gnutls_assert();
+ return GNUTLS_E_MEMORY_ERROR;
+ }
+
+ ((struct x86_aes_xts_ctx *) (*_ctx))->enc = enc;
+
+ return 0;
+}
+
+static int
+x86_aes_xts_cipher_setkey(void *_ctx, const void *userkey, size_t keysize)
+{
+ struct x86_aes_xts_ctx *ctx = _ctx;
+ int ret;
+ size_t keybits;
+ const uint8_t *key = userkey;
+
+ if ((keysize != 32) && (keysize != 64))
+ return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+
+ /* Check key block according to FIPS-140-2 IG A.9 */
+ if (_gnutls_fips_mode_enabled()){
+ if (safe_memcmp(key, key + (keysize / 2), keysize / 2) == 0) {
+ _gnutls_switch_lib_state(LIB_STATE_ERROR);
+ return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ }
+ }
+
+ /* Size in bits of each half for block and tweak (=keysize * 8 / 2) */
+ keybits = keysize * 4;
+
+ if (ctx->enc)
+ ret =
+ aesni_set_encrypt_key(key, keybits,
+ ALIGN16(&ctx->block_key));
+ else
+ ret =
+ aesni_set_decrypt_key(key, keybits,
+ ALIGN16(&ctx->block_key));
+
+ if (ret != 0)
+ return gnutls_assert_val(GNUTLS_E_ENCRYPTION_FAILED);
+
+ ret =
+ aesni_set_encrypt_key(key + (keysize / 2), keybits,
+ ALIGN16(&ctx->tweak_key));
+ if (ret != 0)
+ return gnutls_assert_val(GNUTLS_E_ENCRYPTION_FAILED);
+
+ return 0;
+}
+
+static int x86_aes_xts_setiv(void *_ctx, const void *iv, size_t iv_size)
+{
+ struct x86_aes_xts_ctx *ctx = _ctx;
+
+ if (iv_size != 16)
+ return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+
+ memcpy(ctx->iv, iv, 16);
+ return 0;
+}
+
+static int
+x86_aes_xts_encrypt(void *_ctx, const void *src, size_t src_size,
+ void *dst, size_t dst_size)
+{
+ struct x86_aes_xts_ctx *ctx = _ctx;
+
+ if (src_size < 16)
+ return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+
+ aesni_xts_encrypt(src, dst, src_size, ALIGN16(&ctx->block_key),
+ ALIGN16(&ctx->tweak_key), ctx->iv);
+ return 0;
+}
+
+static int
+x86_aes_xts_decrypt(void *_ctx, const void *src, size_t src_size,
+ void *dst, size_t dst_size)
+{
+ struct x86_aes_xts_ctx *ctx = _ctx;
+
+ if (src_size < 16)
+ return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+
+ aesni_xts_decrypt(src, dst, src_size, ALIGN16(&ctx->block_key),
+ ALIGN16(&ctx->tweak_key), ctx->iv);
+ return 0;
+}
+
+static void x86_aes_xts_deinit(void *_ctx)
+{
+ struct x86_aes_xts_ctx *ctx = _ctx;
+
+ zeroize_temp_key(ctx, sizeof(*ctx));
+ gnutls_free(ctx);
+}
+
+const gnutls_crypto_cipher_st _gnutls_aes_xts_x86_aesni = {
+ .init = x86_aes_xts_cipher_init,
+ .setkey = x86_aes_xts_cipher_setkey,
+ .setiv = x86_aes_xts_setiv,
+ .encrypt = x86_aes_xts_encrypt,
+ .decrypt = x86_aes_xts_decrypt,
+ .deinit = x86_aes_xts_deinit,
+};
+
diff --git a/lib/accelerated/x86/sha-padlock.c b/lib/accelerated/x86/sha-padlock.c
index e878ebe310..1030d4f63e 100644
--- a/lib/accelerated/x86/sha-padlock.c
+++ b/lib/accelerated/x86/sha-padlock.c
@@ -331,6 +331,8 @@ int wrap_padlock_hash_fast(gnutls_digest_algorithm_t algo,
const void *text, size_t text_size,
void *digest)
{
+ if (text_size == 0 && text == NULL)
+ text = digest;
if (algo == GNUTLS_DIG_SHA1) {
uint32_t iv[5] = {
0x67452301UL,
@@ -362,7 +364,6 @@ int wrap_padlock_hash_fast(gnutls_digest_algorithm_t algo,
wrap_padlock_hash_update(&ctx, text, text_size);
wrap_padlock_hash_output(&ctx, digest, ctx.length);
- wrap_padlock_hash_deinit(&ctx);
}
return 0;
diff --git a/lib/accelerated/x86/x86-common.c b/lib/accelerated/x86/x86-common.c
index 516d6776c5..3845c6b4c9 100644
--- a/lib/accelerated/x86/x86-common.c
+++ b/lib/accelerated/x86/x86-common.c
@@ -562,6 +562,14 @@ void register_x86_intel_crypto(unsigned capabilities)
ret =
gnutls_crypto_single_cipher_register
+ (GNUTLS_CIPHER_AES_192_GCM, 90,
+ &_gnutls_aes_gcm_x86_ssse3, 0);
+ if (ret < 0) {
+ gnutls_assert();
+ }
+
+ ret =
+ gnutls_crypto_single_cipher_register
(GNUTLS_CIPHER_AES_256_GCM, 90,
&_gnutls_aes_gcm_x86_ssse3, 0);
if (ret < 0) {
@@ -723,6 +731,22 @@ void register_x86_intel_crypto(unsigned capabilities)
gnutls_assert();
}
+ ret =
+ gnutls_crypto_single_cipher_register
+ (GNUTLS_CIPHER_AES_128_XTS, 80,
+ &_gnutls_aes_xts_x86_aesni, 0);
+ if (ret < 0) {
+ gnutls_assert();
+ }
+
+ ret =
+ gnutls_crypto_single_cipher_register
+ (GNUTLS_CIPHER_AES_256_XTS, 80,
+ &_gnutls_aes_xts_x86_aesni, 0);
+ if (ret < 0) {
+ gnutls_assert();
+ }
+
#ifdef ASM_X86_64
if (check_pclmul()) {
/* register GCM ciphers */
@@ -739,6 +763,14 @@ void register_x86_intel_crypto(unsigned capabilities)
ret =
gnutls_crypto_single_cipher_register
+ (GNUTLS_CIPHER_AES_192_GCM, 80,
+ &_gnutls_aes_gcm_pclmul_avx, 0);
+ if (ret < 0) {
+ gnutls_assert();
+ }
+
+ ret =
+ gnutls_crypto_single_cipher_register
(GNUTLS_CIPHER_AES_256_GCM, 80,
&_gnutls_aes_gcm_pclmul_avx, 0);
if (ret < 0) {
@@ -757,6 +789,14 @@ void register_x86_intel_crypto(unsigned capabilities)
ret =
gnutls_crypto_single_cipher_register
+ (GNUTLS_CIPHER_AES_192_GCM, 80,
+ &_gnutls_aes_gcm_pclmul, 0);
+ if (ret < 0) {
+ gnutls_assert();
+ }
+
+ ret =
+ gnutls_crypto_single_cipher_register
(GNUTLS_CIPHER_AES_256_GCM, 80,
&_gnutls_aes_gcm_pclmul, 0);
if (ret < 0) {
@@ -776,6 +816,14 @@ void register_x86_intel_crypto(unsigned capabilities)
ret =
gnutls_crypto_single_cipher_register
+ (GNUTLS_CIPHER_AES_192_GCM, 80,
+ &_gnutls_aes_gcm_x86_aesni, 0);
+ if (ret < 0) {
+ gnutls_assert();
+ }
+
+ ret =
+ gnutls_crypto_single_cipher_register
(GNUTLS_CIPHER_AES_256_GCM, 80,
&_gnutls_aes_gcm_x86_aesni, 0);
if (ret < 0) {
diff --git a/lib/algorithms.h b/lib/algorithms.h
index c68a266cc9..7a051b6365 100644
--- a/lib/algorithms.h
+++ b/lib/algorithms.h
@@ -174,11 +174,24 @@ inline static int _gnutls_mac_get_key_size(const mac_entry_st * e)
return e->key_size;
}
+inline static gnutls_digest_algorithm_t
+_gnutls_mac_to_dig(gnutls_mac_algorithm_t mac)
+{
+ if (unlikely(mac >= GNUTLS_MAC_AEAD))
+ return GNUTLS_DIG_UNKNOWN;
+
+ return (gnutls_digest_algorithm_t)mac;
+}
+
+#define MAC_TO_DIG(mac) _gnutls_mac_to_dig(mac)
+
/* Functions for digests. */
#define _gnutls_x509_digest_to_oid _gnutls_x509_mac_to_oid
#define _gnutls_digest_get_name _gnutls_mac_get_name
#define _gnutls_hash_get_algo_len _gnutls_mac_get_algo_len
+#define DIG_TO_MAC(dig) (gnutls_mac_algorithm_t)(dig)
+
/* Security against pre-image attacks */
inline static int _gnutls_digest_is_secure(const mac_entry_st * e)
{
@@ -367,6 +380,10 @@ struct gnutls_sign_entry_st {
for values to use in aid struct. */
const sign_algorithm_st aid;
hash_security_level_t slevel; /* contains values of hash_security_level_t */
+
+ /* 0 if it matches the predefined hash output size, otherwise
+ * it is truncated or expanded (with XOF) */
+ unsigned hash_output_size;
};
typedef struct gnutls_sign_entry_st gnutls_sign_entry_st;
@@ -521,4 +538,6 @@ static inline int _sig_is_ecdsa(gnutls_sign_algorithm_t sig)
bool _gnutls_pk_are_compat(gnutls_pk_algorithm_t pk1, gnutls_pk_algorithm_t pk2);
+unsigned _gnutls_sign_get_hash_strength(gnutls_sign_algorithm_t sign);
+
#endif /* GNUTLS_LIB_ALGORITHMS_H */
diff --git a/lib/algorithms/ciphers.c b/lib/algorithms/ciphers.c
index fd47c13b66..0ffa1f651f 100644
--- a/lib/algorithms/ciphers.c
+++ b/lib/algorithms/ciphers.c
@@ -69,6 +69,15 @@ static const cipher_entry_st algorithms[] = {
.explicit_iv = 8,
.cipher_iv = 12,
.tagsize = 16},
+ { .name = "AES-192-GCM",
+ .id = GNUTLS_CIPHER_AES_192_GCM,
+ .blocksize = 16,
+ .keysize = 24,
+ .type = CIPHER_AEAD,
+ .implicit_iv = 4,
+ .explicit_iv = 8,
+ .cipher_iv = 12,
+ .tagsize = 16},
{ .name = "AES-256-GCM",
.id = GNUTLS_CIPHER_AES_256_GCM,
.blocksize = 16,
@@ -136,6 +145,22 @@ static const cipher_entry_st algorithms[] = {
.type = CIPHER_STREAM,
.explicit_iv = 0,
.cipher_iv = 8},
+ { .name = "CHACHA20-32",
+ .id = GNUTLS_CIPHER_CHACHA20_32,
+ .blocksize = 64,
+ .keysize = 32,
+ .type = CIPHER_STREAM,
+ .explicit_iv = 0,
+ /* IV includes counter */
+ .cipher_iv = 16},
+ { .name = "CHACHA20-64",
+ .id = GNUTLS_CIPHER_CHACHA20_64,
+ .blocksize = 64,
+ .keysize = 32,
+ .type = CIPHER_STREAM,
+ .explicit_iv = 0,
+ /* IV includes counter */
+ .cipher_iv = 16},
{ .name = "CAMELLIA-256-CBC",
.id = GNUTLS_CIPHER_CAMELLIA_256_CBC,
.blocksize = 16,
@@ -254,6 +279,24 @@ static const cipher_entry_st algorithms[] = {
.type = CIPHER_BLOCK,
.explicit_iv = 16,
.cipher_iv = 16},
+ { .name = "AES-128-SIV",
+ .id = GNUTLS_CIPHER_AES_128_SIV,
+ .blocksize = 16,
+ .keysize = 32,
+ .type = CIPHER_AEAD,
+ .explicit_iv = 16,
+ .cipher_iv = 16,
+ .flags = GNUTLS_CIPHER_FLAG_ONLY_AEAD,
+ .tagsize = 16},
+ { .name = "AES-256-SIV",
+ .id = GNUTLS_CIPHER_AES_256_SIV,
+ .blocksize = 16,
+ .keysize = 64,
+ .type = CIPHER_AEAD,
+ .explicit_iv = 16,
+ .cipher_iv = 16,
+ .flags = GNUTLS_CIPHER_FLAG_ONLY_AEAD,
+ .tagsize = 16},
{ .name = "GOST28147-TC26Z-CNT",
.id = GNUTLS_CIPHER_GOST28147_TC26Z_CNT,
.blocksize = 8,
@@ -261,6 +304,20 @@ static const cipher_entry_st algorithms[] = {
.type = CIPHER_STREAM,
.implicit_iv = 8,
.cipher_iv = 8},
+ { .name = "MAGMA-CTR-ACPKM",
+ .id = GNUTLS_CIPHER_MAGMA_CTR_ACPKM,
+ .blocksize = 8,
+ .keysize = 32,
+ .type = CIPHER_STREAM,
+ .implicit_iv = 4,
+ .cipher_iv = 8},
+ { .name = "KUZNYECHIK-CTR-ACPKM",
+ .id = GNUTLS_CIPHER_KUZNYECHIK_CTR_ACPKM,
+ .blocksize = 16,
+ .keysize = 32,
+ .type = CIPHER_STREAM,
+ .implicit_iv = 8,
+ .cipher_iv = 16},
{ .name = "3DES-CBC",
.id = GNUTLS_CIPHER_3DES_CBC,
.blocksize = 8,
diff --git a/lib/algorithms/mac.c b/lib/algorithms/mac.c
index a9b0358ac0..518323bca1 100644
--- a/lib/algorithms/mac.c
+++ b/lib/algorithms/mac.c
@@ -194,6 +194,16 @@ mac_entry_st hash_algorithms[] = {
.oid = HASH_OID_SHAKE_256,
.id = GNUTLS_MAC_SHAKE_256,
.block_size = 136},
+ {.name = "OMAC-MAGMA",
+ .id = GNUTLS_MAC_MAGMA_OMAC,
+ .output_size = 8,
+ .key_size = 32,
+ .block_size = 8},
+ {.name = "OMAC-KUZNYECHIK",
+ .id = GNUTLS_MAC_KUZNYECHIK_OMAC,
+ .output_size = 16,
+ .key_size = 32,
+ .block_size = 16},
{.name = "MAC-NULL",
.id = GNUTLS_MAC_NULL},
{0, 0, 0, 0, 0, 0, 0, 0, 0}
diff --git a/lib/algorithms/sign.c b/lib/algorithms/sign.c
index 9c95e388ae..2728a54478 100644
--- a/lib/algorithms/sign.c
+++ b/lib/algorithms/sign.c
@@ -134,7 +134,8 @@ gnutls_sign_entry_st sign_algorithms[] = {
.pk = GNUTLS_PK_EDDSA_ED448,
.hash = GNUTLS_DIG_SHAKE_256,
.flags = GNUTLS_SIGN_FLAG_TLS13_OK,
- .aid = {{8, 8}, SIG_SEM_DEFAULT}},
+ .aid = {{8, 8}, SIG_SEM_DEFAULT},
+ .hash_output_size = 114},
/* ECDSA */
/* The following three signature algorithms
@@ -785,3 +786,30 @@ _gnutls13_sign_get_compatible_with_privkey(gnutls_privkey_t privkey)
return NULL;
}
+
+unsigned
+_gnutls_sign_get_hash_strength(gnutls_sign_algorithm_t sign)
+{
+ const gnutls_sign_entry_st *se = _gnutls_sign_to_entry(sign);
+ const mac_entry_st *me;
+ unsigned hash_output_size;
+
+ if (unlikely(se == NULL))
+ return 0;
+
+ me = hash_to_entry(se->hash);
+ if (unlikely(me == NULL))
+ return 0;
+
+ if (se->hash_output_size > 0)
+ hash_output_size = se->hash_output_size;
+ else
+ hash_output_size = _gnutls_mac_get_algo_len(me);
+
+ if (me->id == GNUTLS_MAC_SHAKE_128)
+ return MIN(hash_output_size*8/2, 128);
+ else if (me->id == GNUTLS_MAC_SHAKE_256)
+ return MIN(hash_output_size*8/2, 256);
+
+ return hash_output_size*8/2;
+}
diff --git a/lib/auth/dhe_psk.c b/lib/auth/dhe_psk.c
index 6d66a6bb8b..a98ef9c9ef 100644
--- a/lib/auth/dhe_psk.c
+++ b/lib/auth/dhe_psk.c
@@ -316,14 +316,13 @@ proc_dhe_psk_client_kx(gnutls_session_t session, uint8_t * data,
return GNUTLS_E_ILLEGAL_SRP_USERNAME;
}
- memcpy(info->username, username.data, username.size);
- info->username[username.size] = 0;
+ _gnutls_copy_psk_username(info, &username);
/* Adjust the data */
data += username.size + 2;
ret =
- _gnutls_psk_pwd_find_entry(session, info->username, &psk_key);
+ _gnutls_psk_pwd_find_entry(session, info->username, info->username_len, &psk_key);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -383,8 +382,7 @@ proc_ecdhe_psk_client_kx(gnutls_session_t session, uint8_t * data,
return GNUTLS_E_ILLEGAL_SRP_USERNAME;
}
- memcpy(info->username, username.data, username.size);
- info->username[username.size] = 0;
+ _gnutls_copy_psk_username(info, &username);
/* Adjust the data */
data += username.size + 2;
@@ -392,7 +390,7 @@ proc_ecdhe_psk_client_kx(gnutls_session_t session, uint8_t * data,
/* should never fail. It will always return a key even if it is
* a random one */
ret =
- _gnutls_psk_pwd_find_entry(session, info->username, &psk_key);
+ _gnutls_psk_pwd_find_entry(session, info->username, info->username_len, &psk_key);
if (ret < 0)
return gnutls_assert_val(ret);
diff --git a/lib/auth/psk.c b/lib/auth/psk.c
index 769510af4f..6f220b6382 100644
--- a/lib/auth/psk.c
+++ b/lib/auth/psk.c
@@ -169,8 +169,7 @@ _gnutls_gen_psk_client_kx(gnutls_session_t session,
}
assert(username.data != NULL);
- memcpy(info->username, username.data, username.size);
- info->username[username.size] = 0;
+ _gnutls_copy_psk_username(info, &username);
cleanup:
@@ -231,11 +230,10 @@ _gnutls_proc_psk_client_kx(gnutls_session_t session, uint8_t * data,
return GNUTLS_E_ILLEGAL_SRP_USERNAME;
}
- memcpy(info->username, username.data, username.size);
- info->username[username.size] = 0;
+ _gnutls_copy_psk_username(info, &username);
ret =
- _gnutls_psk_pwd_find_entry(session, info->username, &psk_key);
+ _gnutls_psk_pwd_find_entry(session, info->username, info->username_len, &psk_key);
if (ret < 0)
return gnutls_assert_val(ret);
diff --git a/lib/auth/psk.h b/lib/auth/psk.h
index 1592035bb1..b0e511f7fe 100644
--- a/lib/auth/psk.h
+++ b/lib/auth/psk.h
@@ -29,7 +29,8 @@
typedef struct gnutls_psk_client_credentials_st {
gnutls_datum_t username;
gnutls_datum_t key;
- gnutls_psk_client_credentials_function *get_function;
+ gnutls_psk_client_credentials_function2 *get_function;
+ gnutls_psk_client_credentials_function *get_function_legacy;
/* TLS 1.3 - The HMAC algorithm to use to compute the binder values */
const mac_entry_st *binder_algo;
} psk_client_credentials_st;
@@ -39,7 +40,8 @@ typedef struct gnutls_psk_server_credentials_st {
/* callback function, instead of reading the
* password files.
*/
- gnutls_psk_server_credentials_function *pwd_callback;
+ gnutls_psk_server_credentials_function2 *pwd_callback;
+ gnutls_psk_server_credentials_function *pwd_callback_legacy;
/* For DHE_PSK */
gnutls_dh_params_t dh_params;
@@ -59,12 +61,22 @@ typedef struct gnutls_psk_server_credentials_st {
/* these structures should not use allocated data */
typedef struct psk_auth_info_st {
char username[MAX_USERNAME_SIZE + 1];
+ uint16_t username_len;
dh_info_st dh;
char hint[MAX_USERNAME_SIZE + 1];
} *psk_auth_info_t;
typedef struct psk_auth_info_st psk_auth_info_st;
+inline static
+void _gnutls_copy_psk_username(psk_auth_info_t info, const gnutls_datum_t *username)
+{
+ assert(sizeof(info->username) > username->size);
+ memcpy(info->username, username->data, username->size);
+ info->username[username->size] = 0;
+ info->username_len = username->size;
+}
+
#ifdef ENABLE_PSK
int
@@ -74,7 +86,6 @@ int _gnutls_gen_psk_server_kx(gnutls_session_t session,
gnutls_buffer_st * data);
int _gnutls_gen_psk_client_kx(gnutls_session_t, gnutls_buffer_st *);
-
#else
#define _gnutls_set_psk_session_key(x,y,z) GNUTLS_E_UNIMPLEMENTED_FEATURE
#endif /* ENABLE_PSK */
diff --git a/lib/auth/psk_passwd.c b/lib/auth/psk_passwd.c
index ec46ed3bf7..9a9d68c488 100644
--- a/lib/auth/psk_passwd.c
+++ b/lib/auth/psk_passwd.c
@@ -73,7 +73,52 @@ static int pwd_put_values(gnutls_datum_t * psk, char *str)
}
return 0;
+}
+
+static bool username_matches(const gnutls_datum_t *username,
+ const char *line, size_t line_size)
+{
+ int retval;
+ unsigned i;
+ gnutls_datum_t hexline, hex_username = { NULL, 0 };
+
+ /*
+ * Guard against weird behavior - we don't check 'line',
+ * as it's returned by getline(), which will never return NULL
+ * if successful.
+ */
+ if (username->data == NULL)
+ return false;
+
+ if (line_size == 0)
+ return (username->size == 0);
+
+ /* move to first ':' */
+ i = 0;
+ while ((i < line_size) && (line[i] != '\0')
+ && (line[i] != ':')) {
+ i++;
+ }
+
+ /* if format is in hex, e.g. #FAFAFA */
+ if (line[0] == '#' && line_size > 1) {
+ hexline.data = (void *) &line[1];
+ hexline.size = i - 1;
+ if ((retval = gnutls_hex_decode2(&hexline, &hex_username)) < 0)
+ return gnutls_assert_val(0);
+
+ if (hex_username.size == username->size)
+ retval = memcmp(username->data, hex_username.data, username->size);
+ else
+ retval = -1;
+
+ _gnutls_free_datum(&hex_username);
+ } else {
+ retval = strncmp((const char *) username->data, line, MAX(i, username->size));
+ }
+
+ return (retval == 0);
}
@@ -105,15 +150,19 @@ static int _randomize_psk(gnutls_datum_t * psk)
* If the user doesn't exist a random password is returned instead.
*/
int
-_gnutls_psk_pwd_find_entry(gnutls_session_t session, char *username,
+_gnutls_psk_pwd_find_entry(gnutls_session_t session,
+ const char *username, uint16_t username_len,
gnutls_datum_t * psk)
{
gnutls_psk_server_credentials_t cred;
- FILE *fd;
+ FILE *fp;
char *line = NULL;
size_t line_size = 0;
- unsigned i, len;
int ret;
+ gnutls_datum_t username_datum = {
+ .data = (unsigned char *) username,
+ .size = username_len
+ };
cred = (gnutls_psk_server_credentials_t)
_gnutls_get_cred(session, GNUTLS_CRD_PSK);
@@ -126,7 +175,7 @@ _gnutls_psk_pwd_find_entry(gnutls_session_t session, char *username,
* set, use it.
*/
if (cred->pwd_callback != NULL) {
- ret = cred->pwd_callback(session, username, psk);
+ ret = cred->pwd_callback(session, &username_datum, psk);
if (ret == 1) { /* the user does not exist */
ret = _randomize_psk(psk);
@@ -154,22 +203,14 @@ _gnutls_psk_pwd_find_entry(gnutls_session_t session, char *username,
/* Open the selected password file.
*/
- fd = fopen(cred->password_file, "r");
- if (fd == NULL) {
+ fp = fopen(cred->password_file, "re");
+ if (fp == NULL) {
gnutls_assert();
return GNUTLS_E_SRP_PWD_ERROR;
}
- len = strlen(username);
- while (getline(&line, &line_size, fd) > 0) {
- /* move to first ':' */
- i = 0;
- while ((i < line_size) && (line[i] != '\0')
- && (line[i] != ':')) {
- i++;
- }
-
- if (strncmp(username, line, MAX(i, len)) == 0) {
+ while (getline(&line, &line_size, fp) > 0) {
+ if (username_matches(&username_datum, line, line_size)) {
ret = pwd_put_values(psk, line);
if (ret < 0) {
gnutls_assert();
@@ -190,8 +231,8 @@ _gnutls_psk_pwd_find_entry(gnutls_session_t session, char *username,
ret = 0;
cleanup:
- if (fd != NULL)
- fclose(fd);
+ if (fp != NULL)
+ fclose(fp);
zeroize_key(line, line_size);
free(line);
@@ -208,7 +249,6 @@ int _gnutls_find_psk_key(gnutls_session_t session,
gnutls_datum_t * username, gnutls_datum_t * key,
int *free)
{
- char *user_p;
int ret;
*free = 0;
@@ -219,13 +259,11 @@ int _gnutls_find_psk_key(gnutls_session_t session,
key->data = cred->key.data;
key->size = cred->key.size;
} else if (cred->get_function != NULL) {
- ret = cred->get_function(session, &user_p, key);
+ ret = cred->get_function(session, username, key);
+
if (ret)
return gnutls_assert_val(ret);
- username->data = (uint8_t *) user_p;
- username->size = strlen(user_p);
-
*free = 1;
} else
return
diff --git a/lib/auth/psk_passwd.h b/lib/auth/psk_passwd.h
index da4c90c064..3d351f22c7 100644
--- a/lib/auth/psk_passwd.h
+++ b/lib/auth/psk_passwd.h
@@ -24,7 +24,8 @@
#define GNUTLS_LIB_AUTH_PSK_PASSWD_H
/* this is locally allocated. It should be freed using the provided function */
-int _gnutls_psk_pwd_find_entry(gnutls_session_t, char *username,
+int _gnutls_psk_pwd_find_entry(gnutls_session_t,
+ const char *username, uint16_t username_len,
gnutls_datum_t * key);
int _gnutls_find_psk_key(gnutls_session_t session,
diff --git a/lib/auth/rsa_psk.c b/lib/auth/rsa_psk.c
index 387bfd403e..1a9dab5612 100644
--- a/lib/auth/rsa_psk.c
+++ b/lib/auth/rsa_psk.c
@@ -310,8 +310,7 @@ _gnutls_proc_rsa_psk_client_kx(gnutls_session_t session, uint8_t * data,
return GNUTLS_E_ILLEGAL_SRP_USERNAME;
}
- memcpy(info->username, username.data, username.size);
- info->username[username.size] = 0;
+ _gnutls_copy_psk_username(info, &username);
/* Adjust data so it points to EncryptedPreMasterSecret */
data += username.size + 2;
@@ -397,7 +396,7 @@ _gnutls_proc_rsa_psk_client_kx(gnutls_session_t session, uint8_t * data,
/* find the key of this username
*/
ret =
- _gnutls_psk_pwd_find_entry(session, info->username, &pwd_psk);
+ _gnutls_psk_pwd_find_entry(session, info->username, strlen(info->username), &pwd_psk);
if (ret < 0) {
gnutls_assert();
goto cleanup;
diff --git a/lib/auth/srp_passwd.c b/lib/auth/srp_passwd.c
index baa4086e77..49039a66e7 100644
--- a/lib/auth/srp_passwd.c
+++ b/lib/auth/srp_passwd.c
@@ -193,7 +193,7 @@ static int parse_tpasswd_conf_values(SRP_PWD_ENTRY * entry, char *str)
static int
pwd_read_conf(const char *pconf_file, SRP_PWD_ENTRY * entry, int idx)
{
- FILE *fd;
+ FILE *fp;
char *line = NULL;
size_t line_size = 0;
unsigned i, len;
@@ -202,14 +202,14 @@ pwd_read_conf(const char *pconf_file, SRP_PWD_ENTRY * entry, int idx)
snprintf(indexstr, sizeof(indexstr), "%u", (unsigned int) idx);
- fd = fopen(pconf_file, "r");
- if (fd == NULL) {
+ fp = fopen(pconf_file, "re");
+ if (fp == NULL) {
gnutls_assert();
return GNUTLS_E_FILE_ERROR;
}
len = strlen(indexstr);
- while (getline(&line, &line_size, fd) > 0) {
+ while (getline(&line, &line_size, fp) > 0) {
/* move to first ':' */
i = 0;
while ((i < line_size) && (line[i] != ':')
@@ -234,7 +234,7 @@ pwd_read_conf(const char *pconf_file, SRP_PWD_ENTRY * entry, int idx)
cleanup:
zeroize_key(line, line_size);
free(line);
- fclose(fd);
+ fclose(fp);
return ret;
}
@@ -244,7 +244,7 @@ _gnutls_srp_pwd_read_entry(gnutls_session_t state, char *username,
SRP_PWD_ENTRY ** _entry)
{
gnutls_srp_server_credentials_t cred;
- FILE *fd = NULL;
+ FILE *fp = NULL;
char *line = NULL;
size_t line_size = 0;
unsigned i, len;
@@ -308,15 +308,15 @@ _gnutls_srp_pwd_read_entry(gnutls_session_t state, char *username,
/* Open the selected password file.
*/
- fd = fopen(cred->password_file, "r");
- if (fd == NULL) {
+ fp = fopen(cred->password_file, "re");
+ if (fp == NULL) {
gnutls_assert();
ret = GNUTLS_E_SRP_PWD_ERROR;
goto cleanup;
}
len = strlen(username);
- while (getline(&line, &line_size, fd) > 0) {
+ while (getline(&line, &line_size, fp) > 0) {
/* move to first ':' */
i = 0;
while ((i < line_size) && (line[i] != '\0')
@@ -372,8 +372,8 @@ found:
zeroize_key(line, line_size);
free(line);
}
- if (fd)
- fclose(fd);
+ if (fp)
+ fclose(fp);
return ret;
}
diff --git a/lib/cert-cred-rawpk.c b/lib/cert-cred-rawpk.c
index cfa65eb318..56bc5f6584 100644
--- a/lib/cert-cred-rawpk.c
+++ b/lib/cert-cred-rawpk.c
@@ -239,8 +239,6 @@ int gnutls_certificate_set_rawpk_key_file(gnutls_certificate_credentials_t cred,
gnutls_privkey_t privkey;
gnutls_pubkey_t pubkey;
gnutls_pcert_st* pcert;
- gnutls_datum_t rawpubkey = { NULL, 0 }; // to hold rawpk data from file
- size_t key_size;
gnutls_str_array_t str_names;
unsigned int i;
@@ -291,8 +289,13 @@ int gnutls_certificate_set_rawpk_key_file(gnutls_certificate_credentials_t cred,
}
} else {
+ gnutls_datum_t rawpubkey; // to hold rawpk data from file
+ size_t key_size;
+
/* Read our raw public-key into memory from file */
- rawpubkey.data = (void*) read_binary_file(rawpkfile, &key_size);
+ rawpubkey.data = (void*) read_file(rawpkfile,
+ RF_BINARY | RF_SENSITIVE,
+ &key_size);
if (rawpubkey.data == NULL) {
gnutls_privkey_deinit(privkey);
@@ -307,7 +310,9 @@ int gnutls_certificate_set_rawpk_key_file(gnutls_certificate_credentials_t cred,
ret = gnutls_pcert_import_rawpk_raw(pcert, &rawpubkey,
format, key_usage, 0);
- _gnutls_free_datum(&rawpubkey);
+ zeroize_key(rawpubkey.data, rawpubkey.size);
+ free(rawpubkey.data);
+ rawpubkey.size = 0;
if (ret < 0) {
gnutls_privkey_deinit(privkey);
diff --git a/lib/cert-cred-x509.c b/lib/cert-cred-x509.c
index 4e86a59ba6..04aa3169b6 100644
--- a/lib/cert-cred-x509.c
+++ b/lib/cert-cred-x509.c
@@ -543,7 +543,7 @@ read_cert_file(gnutls_certificate_credentials_t res,
return read_cert_url(res, key, certfile);
}
- data = read_binary_file(certfile, &size);
+ data = read_file(certfile, RF_BINARY, &size);
if (data == NULL) {
gnutls_assert();
@@ -588,7 +588,7 @@ _gnutls_read_key_file(gnutls_certificate_credentials_t res,
(GNUTLS_E_UNIMPLEMENTED_FEATURE);
}
- data = read_binary_file(keyfile, &size);
+ data = read_file(keyfile, RF_BINARY | RF_SENSITIVE, &size);
if (data == NULL) {
gnutls_assert();
@@ -596,6 +596,7 @@ _gnutls_read_key_file(gnutls_certificate_credentials_t res,
}
ret = _gnutls_read_key_mem(res, data, size, type, pass, flags, rkey);
+ zeroize_key(data, size);
free(data);
return ret;
@@ -1447,7 +1448,8 @@ int
size_t size;
int ret;
- p12blob.data = (void *) read_binary_file(pkcs12file, &size);
+ p12blob.data = (void *) read_file(pkcs12file, RF_BINARY | RF_SENSITIVE,
+ &size);
p12blob.size = (unsigned int) size;
if (p12blob.data == NULL) {
gnutls_assert();
@@ -1457,7 +1459,9 @@ int
ret =
gnutls_certificate_set_x509_simple_pkcs12_mem(res, &p12blob,
type, password);
+ zeroize_key(p12blob.data, p12blob.size);
free(p12blob.data);
+ p12blob.size = 0;
return ret;
}
diff --git a/lib/cert-cred.c b/lib/cert-cred.c
index 7311737298..8d3214dcbb 100644
--- a/lib/cert-cred.c
+++ b/lib/cert-cred.c
@@ -882,6 +882,38 @@ void
cred->verify_callback = func;
}
+/**
+ * gnutls_x509_trust_list_set_getissuer_function:
+ * @tlist: is a #gnutls_x509_trust_list_t type.
+ * @func: is the callback function
+ *
+ * This function sets a callback to be called when the peer's certificate
+ * chain is incomplete due a missing intermediate certificate/certificates.
+ *
+ * The callback's function prototype is defined in `abstract.h':
+ * int (*callback)(
+ * gnutls_x509_trust_list_t tlist,
+ * const gnutls_x509_crt_t crt);
+ *
+ * If the callback function is provided then gnutls will call it, in the
+ * certificate verification procedure.
+ * To verify or obtain the certificate the verification functions such as
+ * gnutls_x509_trust_list_verify_crt() and gnutls_x509_trust_list_verify_crt2()
+ * can be used.
+ *
+ * The callback function should return 0 if the missing issuer certificate
+ * for 'crt' was properly polulated and added to the 'tlist' using
+ * gnutls_x509_trust_list_add_cas() or non-zero to continue the certificate list
+ * verification but with issuer as %NULL.
+ *
+ * Since: 3.7.0
+ **/
+void gnutls_x509_trust_list_set_getissuer_function(gnutls_x509_trust_list_t tlist,
+ gnutls_x509_trust_list_getissuer_function * func)
+{
+ tlist->issuer_callback = func;
+}
+
#define TEST_TEXT "test text"
/* returns error if the certificate has different algorithm than
* the given key parameters.
diff --git a/lib/cipher_int.c b/lib/cipher_int.c
index b5308aa629..058fe7a6f8 100644
--- a/lib/cipher_int.c
+++ b/lib/cipher_int.c
@@ -102,6 +102,7 @@ _gnutls_cipher_init(cipher_hd_st *handle, const cipher_entry_st *e,
handle->tag = cc->tag;
handle->setiv = cc->setiv;
handle->getiv = cc->getiv;
+ handle->setkey = cc->setkey;
/* if cc->init() returns GNUTLS_E_NEED_FALLBACK we
* use the default ciphers */
@@ -128,6 +129,7 @@ _gnutls_cipher_init(cipher_hd_st *handle, const cipher_entry_st *e,
handle->tag = _gnutls_cipher_ops.tag;
handle->setiv = _gnutls_cipher_ops.setiv;
handle->getiv = _gnutls_cipher_ops.getiv;
+ handle->setkey = _gnutls_cipher_ops.setkey;
/* otherwise use generic cipher interface
*/
diff --git a/lib/cipher_int.h b/lib/cipher_int.h
index b50a59c64a..a17afc381c 100644
--- a/lib/cipher_int.h
+++ b/lib/cipher_int.h
@@ -52,6 +52,8 @@ typedef int (*cipher_auth_func) (void *hd, const void *data, size_t);
typedef int (*cipher_setiv_func) (void *hd, const void *iv, size_t);
typedef int (*cipher_getiv_func) (void *hd, void *iv, size_t);
+typedef int (*cipher_setkey_func) (void *hd, const void *key, size_t keysize);
+
typedef void (*cipher_tag_func) (void *hd, void *tag, size_t);
typedef struct {
@@ -65,6 +67,7 @@ typedef struct {
cipher_tag_func tag;
cipher_setiv_func setiv;
cipher_getiv_func getiv;
+ cipher_setkey_func setkey;
cipher_deinit_func deinit;
} cipher_hd_st;
@@ -88,6 +91,12 @@ inline static int _gnutls_cipher_getiv(const cipher_hd_st * handle,
return handle->getiv(handle->handle, iv, ivlen);
}
+inline static int _gnutls_cipher_setkey(const cipher_hd_st * handle,
+ const void *key, size_t keylen)
+{
+ return handle->setkey(handle->handle, key, keylen);
+}
+
inline static int
_gnutls_cipher_encrypt2(const cipher_hd_st * handle, const void *text,
size_t textlen, void *ciphertext,
@@ -173,6 +182,8 @@ int _gnutls_cipher_exists(gnutls_cipher_algorithm_t cipher);
int _gnutls_cipher_get_iv(gnutls_cipher_hd_t handle, void *iv,
size_t ivlen);
+int _gnutls_cipher_set_key(gnutls_cipher_hd_t handle, void *key, size_t keylen);
+
#define _gnutls_cipher_is_aead(h) _gnutls_cipher_algo_is_aead((h)->e)
/* returns the tag in AUTHENC ciphers */
diff --git a/lib/constate.c b/lib/constate.c
index 51943ede69..eb05fdd04c 100644
--- a/lib/constate.c
+++ b/lib/constate.c
@@ -422,9 +422,11 @@ _tls13_set_keys(gnutls_session_t session, hs_stage_t stage,
if (ret < 0)
return gnutls_assert_val(ret);
- _gnutls_nss_keylog_write(session, keylog_label,
- ckey,
- session->security_parameters.prf->output_size);
+ ret = _gnutls_call_keylog_func(session, keylog_label,
+ ckey,
+ session->security_parameters.prf->output_size);
+ if (ret < 0)
+ return gnutls_assert_val(ret);
/* client keys */
ret = _tls13_expand_secret(session, "key", 3, NULL, 0, ckey, key_size, ckey_block);
@@ -457,9 +459,11 @@ _tls13_set_keys(gnutls_session_t session, hs_stage_t stage,
if (ret < 0)
return gnutls_assert_val(ret);
- _gnutls_nss_keylog_write(session, keylog_label,
- skey,
- session->security_parameters.prf->output_size);
+ ret = _gnutls_call_keylog_func(session, keylog_label,
+ skey,
+ session->security_parameters.prf->output_size);
+ if (ret < 0)
+ return gnutls_assert_val(ret);
ret = _tls13_expand_secret(session, "key", 3, NULL, 0, skey, key_size, skey_block);
if (ret < 0)
diff --git a/lib/crypto-api.c b/lib/crypto-api.c
index 4db6812c29..bd600ef166 100644
--- a/lib/crypto-api.c
+++ b/lib/crypto-api.c
@@ -70,20 +70,30 @@ gnutls_cipher_init(gnutls_cipher_hd_t * handle,
if (e == NULL || (e->flags & GNUTLS_CIPHER_FLAG_ONLY_AEAD))
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
- *handle = gnutls_calloc(1, sizeof(api_cipher_hd_st));
- if (*handle == NULL) {
+ h = gnutls_calloc(1, sizeof(api_cipher_hd_st));
+ if (h == NULL) {
gnutls_assert();
return GNUTLS_E_MEMORY_ERROR;
}
- h = *handle;
ret =
_gnutls_cipher_init(&h->ctx_enc, e, key,
iv, 1);
+ if (ret < 0) {
+ gnutls_free(h);
+ return ret;
+ }
- if (ret >= 0 && _gnutls_cipher_type(e) == CIPHER_BLOCK)
+ if (_gnutls_cipher_type(e) == CIPHER_BLOCK) {
ret =
_gnutls_cipher_init(&h->ctx_dec, e, key, iv, 0);
+ if (ret < 0) {
+ gnutls_free(h);
+ return ret;
+ }
+ }
+
+ *handle = h;
return ret;
}
@@ -196,6 +206,31 @@ _gnutls_cipher_get_iv(gnutls_cipher_hd_t handle, void *iv, size_t ivlen)
return _gnutls_cipher_getiv(&h->ctx_enc, iv, ivlen);
}
+/*-
+ * _gnutls_cipher_set_key:
+ * @handle: is a #gnutls_cipher_hd_t type
+ * @key: the key to set
+ * @keylen: the length of the key
+ *
+ * This function will set the key used by the cipher
+ *
+ * This is solely for validation purposes of our crypto
+ * implementation. For other purposes, the key should be set at the time of
+ * cipher setup. As such, this function only works with the internally
+ * registered ciphers.
+ *
+ * Returns: Zero or a negative error code on error.
+ *
+ * Since: 3.6.14
+ -*/
+int
+_gnutls_cipher_set_key(gnutls_cipher_hd_t handle, void *key, size_t keylen)
+{
+ api_cipher_hd_st *h = handle;
+
+ return _gnutls_cipher_setkey(&h->ctx_enc, key, keylen);
+}
+
/**
* gnutls_cipher_encrypt:
* @handle: is a #gnutls_cipher_hd_t type
@@ -553,7 +588,7 @@ int
gnutls_hash_init(gnutls_hash_hd_t * dig,
gnutls_digest_algorithm_t algorithm)
{
- if (is_mac_algo_forbidden(algorithm))
+ if (is_mac_algo_forbidden(DIG_TO_MAC(algorithm)))
return gnutls_assert_val(GNUTLS_E_UNWANTED_ALGORITHM);
*dig = gnutls_malloc(sizeof(digest_hd_st));
@@ -649,7 +684,7 @@ int
gnutls_hash_fast(gnutls_digest_algorithm_t algorithm,
const void *ptext, size_t ptext_len, void *digest)
{
- if (is_mac_algo_forbidden(algorithm))
+ if (is_mac_algo_forbidden(DIG_TO_MAC(algorithm)))
return gnutls_assert_val(GNUTLS_E_UNWANTED_ALGORITHM);
return _gnutls_hash_fast(algorithm, ptext, ptext_len, digest);
@@ -755,6 +790,7 @@ int gnutls_aead_cipher_init(gnutls_aead_cipher_hd_t *handle,
{
api_aead_cipher_hd_st *h;
const cipher_entry_st *e;
+ int ret;
if (is_cipher_algo_forbidden(cipher))
return gnutls_assert_val(GNUTLS_E_UNWANTED_ALGORITHM);
@@ -763,15 +799,21 @@ int gnutls_aead_cipher_init(gnutls_aead_cipher_hd_t *handle,
if (e == NULL || e->type != CIPHER_AEAD)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
- *handle = gnutls_calloc(1, sizeof(api_aead_cipher_hd_st));
- if (*handle == NULL) {
+ h = gnutls_calloc(1, sizeof(api_aead_cipher_hd_st));
+ if (h == NULL) {
gnutls_assert();
return GNUTLS_E_MEMORY_ERROR;
}
- h = *handle;
+ ret = _gnutls_aead_cipher_init(h, cipher, key);
+ if (ret < 0) {
+ gnutls_free(h);
+ return ret;
+ }
+
+ *handle = h;
- return _gnutls_aead_cipher_init(h, cipher, key);
+ return ret;
}
/**
@@ -891,32 +933,23 @@ gnutls_aead_cipher_encrypt(gnutls_aead_cipher_hd_t handle,
struct iov_store_st {
void *data;
size_t size;
- unsigned allocated;
};
static void iov_store_free(struct iov_store_st *s)
{
- if (s->allocated) {
- gnutls_free(s->data);
- s->allocated = 0;
- }
+ gnutls_free(s->data);
}
static int iov_store_grow(struct iov_store_st *s, size_t length)
{
- if (s->allocated || s->data == NULL) {
- s->size += length;
- s->data = gnutls_realloc(s->data, s->size);
- if (s->data == NULL)
- return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
- s->allocated = 1;
- } else {
- void *data = s->data;
- size_t size = s->size + length;
- s->data = gnutls_malloc(size);
- memcpy(s->data, data, s->size);
- s->size += length;
- }
+ void *data;
+
+ s->size += length;
+ data = gnutls_realloc(s->data, s->size);
+ if (data == NULL)
+ return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
+
+ s->data = data;
return 0;
}
@@ -926,11 +959,6 @@ copy_from_iov(struct iov_store_st *dst, const giovec_t *iov, int iovcnt)
memset(dst, 0, sizeof(*dst));
if (iovcnt == 0) {
return 0;
- } else if (iovcnt == 1) {
- dst->data = iov[0].iov_base;
- dst->size = iov[0].iov_len;
- /* implies: dst->allocated = 0; */
- return 0;
} else {
int i;
uint8_t *p;
@@ -944,11 +972,11 @@ copy_from_iov(struct iov_store_st *dst, const giovec_t *iov, int iovcnt)
p = dst->data;
for (i=0;i<iovcnt;i++) {
- memcpy(p, iov[i].iov_base, iov[i].iov_len);
+ if (iov[i].iov_len > 0)
+ memcpy(p, iov[i].iov_base, iov[i].iov_len);
p += iov[i].iov_len;
}
- dst->allocated = 1;
return 0;
}
}
@@ -1401,3 +1429,98 @@ void gnutls_aead_cipher_deinit(gnutls_aead_cipher_hd_t handle)
_gnutls_aead_cipher_deinit(handle);
gnutls_free(handle);
}
+
+extern gnutls_crypto_kdf_st _gnutls_kdf_ops;
+
+/**
+ * gnutls_hkdf_extract:
+ * @mac: the mac algorithm used internally
+ * @key: the initial keying material
+ * @salt: the optional salt
+ * @output: the output value of the extract operation
+ *
+ * This function will derive a fixed-size key using the HKDF-Extract
+ * function as defined in RFC 5869.
+ *
+ * Returns: Zero or a negative error code on error.
+ *
+ * Since: 3.6.13
+ */
+int
+gnutls_hkdf_extract(gnutls_mac_algorithm_t mac,
+ const gnutls_datum_t *key,
+ const gnutls_datum_t *salt,
+ void *output)
+{
+ /* MD5 is only allowed internally for TLS */
+ if (is_mac_algo_forbidden(mac))
+ return gnutls_assert_val(GNUTLS_E_UNWANTED_ALGORITHM);
+
+ return _gnutls_kdf_ops.hkdf_extract(mac, key->data, key->size,
+ salt ? salt->data : NULL,
+ salt ? salt->size : 0,
+ output);
+}
+
+/**
+ * gnutls_hkdf_expand:
+ * @mac: the mac algorithm used internally
+ * @key: the pseudorandom key created with HKDF-Extract
+ * @info: the optional informational data
+ * @output: the output value of the expand operation
+ * @length: the desired length of the output key
+ *
+ * This function will derive a variable length keying material from
+ * the pseudorandom key using the HKDF-Expand function as defined in
+ * RFC 5869.
+ *
+ * Returns: Zero or a negative error code on error.
+ *
+ * Since: 3.6.13
+ */
+int
+gnutls_hkdf_expand(gnutls_mac_algorithm_t mac,
+ const gnutls_datum_t *key,
+ const gnutls_datum_t *info,
+ void *output, size_t length)
+{
+ /* MD5 is only allowed internally for TLS */
+ if (is_mac_algo_forbidden(mac))
+ return gnutls_assert_val(GNUTLS_E_UNWANTED_ALGORITHM);
+
+ return _gnutls_kdf_ops.hkdf_expand(mac, key->data, key->size,
+ info->data, info->size,
+ output, length);
+}
+
+/**
+ * gnutls_pbkdf2:
+ * @mac: the mac algorithm used internally
+ * @key: the initial keying material
+ * @salt: the salt
+ * @iter_count: the iteration count
+ * @output: the output value
+ * @length: the desired length of the output key
+ *
+ * This function will derive a variable length keying material from
+ * a password according to PKCS #5 PBKDF2.
+ *
+ * Returns: Zero or a negative error code on error.
+ *
+ * Since: 3.6.13
+ */
+int
+gnutls_pbkdf2(gnutls_mac_algorithm_t mac,
+ const gnutls_datum_t *key,
+ const gnutls_datum_t *salt,
+ unsigned iter_count,
+ void *output, size_t length)
+{
+ /* MD5 is only allowed internally for TLS */
+ if (is_mac_algo_forbidden(mac))
+ return gnutls_assert_val(GNUTLS_E_UNWANTED_ALGORITHM);
+
+ return _gnutls_kdf_ops.pbkdf2(mac, key->data, key->size,
+ salt->data, salt->size, iter_count,
+ output, length);
+}
diff --git a/lib/crypto-backend.h b/lib/crypto-backend.h
index c083b16498..33005e73dd 100644
--- a/lib/crypto-backend.h
+++ b/lib/crypto-backend.h
@@ -75,6 +75,22 @@ typedef struct {
int (*exists) (gnutls_digest_algorithm_t);
} gnutls_crypto_digest_st;
+typedef struct {
+ int (*hkdf_extract) (gnutls_mac_algorithm_t,
+ const void *key, size_t keysize,
+ const void *salt, size_t saltsize,
+ void *output);
+ int (*hkdf_expand) (gnutls_mac_algorithm_t,
+ const void *key, size_t keysize,
+ const void *info, size_t infosize,
+ void *output, size_t length);
+ int (*pbkdf2) (gnutls_mac_algorithm_t,
+ const void *key, size_t keysize,
+ const void *salt, size_t saltsize,
+ unsigned iter_count,
+ void *output, size_t length);
+} gnutls_crypto_kdf_st;
+
typedef struct gnutls_crypto_rnd {
int (*init) (void **ctx); /* called prior to first usage of randomness */
int (*rnd) (void *ctx, int level, void *data, size_t datasize);
diff --git a/lib/crypto-selftests-pk.c b/lib/crypto-selftests-pk.c
index f336ddc062..70b0f618ff 100644
--- a/lib/crypto-selftests-pk.c
+++ b/lib/crypto-selftests-pk.c
@@ -22,6 +22,7 @@
#include "gnutls_int.h"
#include "errors.h"
+#include "fips.h"
#include <cipher_int.h>
#include <datum.h>
#include <gnutls/crypto.h>
@@ -42,70 +43,185 @@ static const gnutls_datum_t bad_data = {
.size = sizeof(DATASTR) - 2
};
-static const char rsa_key2048[] =
- "-----BEGIN RSA PRIVATE KEY-----\n"
- "MIIEogIBAAKCAQEA6yCv+BLrRP/dMPBXJWK21c0aqxIX6JkODL4K+zlyEURt8/Wp\n"
- "nw37CJwHD3VrimSnk2SJvBfTNhzYhCsLShDOPvi4qBrLZ1WozjoVJ8tRE4VCcjQJ\n"
- "snpJ7ldiV+Eos1Z3FkbV/uQcw5CYCb/TciSukaWlI+G/xas9EOOFt4aELbc1yDe0\n"
- "hyfPDtoaKfek4GhT9qT1I8pTC40P9OrA9Jt8lblqxHWwqmdunLTjPjB5zJT6QgI+\n"
- "j1xuq7ZOQhveNA/AOyzh574GIpgsuvPPLBQwsCQkscr7cFnCsyOPgYJrQW3De2+l\n"
- "wjp2D7gZeeQcFQKazXcFoiqNpJWoBWmU0qqsgwIDAQABAoIBAAghNzRioxPdrO42\n"
- "QS0fvqah0tw7Yew+7oduQr7w+4qxTQP0aIsBVr6zdmMIclF0rX6hKUoBoOHsGWho\n"
- "fJlw/1CaFPhrBMFr6sxGodigZQtBvkxolDVBmTDOgK39MQUSZke0501K4du5MiiU\n"
- "I2F89zQ9//m/onvZMeFVnJf95LAX5qHr/FLARQFtOpgWzcGVxdvJdJlYb1zMUril\n"
- "PqyAZXo1j0vgHWwSd54k8mBLus7l8KT57VFce8+9nBPrOrqW4rDVXzs/go3S+kiI\n"
- "OyzYeUs9czg1N1e3VhEaC+EdYUawc0ASuEkbsJ53L8pwDvS+2ly2ykYziJp95Fjv\n"
- "bzyd1dECgYEA8FzGCxu7A6/ei9Dn0Fmi8Ns/QvEgbdlGw4v4MlXHjrGJYdOB0BwG\n"
- "2D2k0ODNYKlUX2J4hi5x8aCH33y/v0EcOHyuqM33vOWBVbdcumCqcOmp341UebAO\n"
- "uCPgDJNhjxXaeDVPnizqnOBA1B9sTxwmCOmFIiFRLbR+XluvDh3t8L0CgYEA+my6\n"
- "124Rw7kcFx+9JoB/Z+bUJDYpefUT91gBUhhEdEMx5fujhMzAbLpIRjFQq+75Qb7v\n"
- "0NyIS09B4oKOqQYzVEJwqKY7H71BTl7QuzJ8Qtuh/DMZsVIt6xpvdeuAKpEOqz44\n"
- "ZD3fW1B59A3ja7kqZadCqq2b02UTk+gdeOrYBj8CgYACX3gZDfoHrEnPKY3QUcI5\n"
- "DIEQYR8H1phLP+uAW7ZvozMPAy6J5mzu35Tr9vwwExvhITC9amH3l7UfsLSX58Wm\n"
- "jRyQUBA9Dir7tKa2tFOab8Qcj+GgnetXSAtjNGVHK1kPzL7vedQLHm+laHYCRe3e\n"
- "Mqf80UVi5SBGQDN3OTZrJQKBgEkj2oozDqMwfGDQl0kYfJ2XEFynKQQCrVsva+tT\n"
- "RSMDwR4fmcmel5Dp81P08U/WExy9rIM+9duxAVgrs4jwU6uHYCoRqvEBMIK4NJSI\n"
- "ETzhsvTa4+UjUF/7L5SsPJmyFiuzl3rHi2W7InNCXyrGQPjBmjoJTJq4SbiIMZtw\n"
- "U7m3AoGACG2rE/Ud71kyOJcKwxzEt8kd+2CMuaZeE/xk+3zLSSjXJzKPficogM3I\n"
- "K37/N7N0FjhdQ5hRuD3GH1fcjv9AKdGHsH7RuaG+jHTRUjS1glr17SSQzh6xXnWj\n"
- "jG0M4UZm5P9STL09nZuWH0wfpr/eg+9+A6yOVfnADI13v+Ygk7k=\n"
- "-----END RSA PRIVATE KEY-----\n";
-
-static const char ecc_key[] =
- "-----BEGIN EC PRIVATE KEY-----\n"
- "MHgCAQEEIQDzaOg65+brGV6INN0zXrUodxwRuocGG+GtKzN7ko26v6AKBggqhkjO\n"
- "PQMBB6FEA0IABEppi34ngyNQ2a9kJmnT5QxIHAUGI1SpnsAyCfze4j6MJ7o/g7qx\n"
- "MSHpe5vd0TQz+/GAa1zxle8mB/Cdh0JaTrA=\n"
- "-----END EC PRIVATE KEY-----\n";
-
-static const char dsa_key[] =
- "-----BEGIN DSA PRIVATE KEY-----\n"
- "MIH4AgEAAkEA6KUOSXfFNcInFLPdOlLlKNCe79zJrkxnsQN+lllxuk1ifZrE07r2\n"
- "3edTrc4riQNnZ2nZ372tYUAMJg+5jM6IIwIVAOa58exwZ+42Tl+p3b4Kbpyu2Ron\n"
- "AkBocj7gkiBYHtv6HMIIzooaxn4vpGR0Ns6wBfroBUGvrnSAgfT3WyiNaHkIF28e\n"
- "quWcEeOJjUgFvatcM8gcY288AkEAyKWlgzBurIYST8TM3j4PuQJDTvdHDaGoAUAa\n"
- "EfjmOw2UXKwqTmwPiT5BYKgCo2ILS87ttlTpd8vndH37pmnmVQIUQIVuKpZ8y9Bw\n"
- "VzO8qcrLCFvTOXY=\n"
- "-----END DSA PRIVATE KEY-----\n";
-
-static const char gost01_key[] =
- "-----BEGIN PRIVATE KEY-----\n"
- "MEUCAQAwHAYGKoUDAgITMBIGByqFAwICJAAGByqFAwICHgEEIgQgR1lBLIr4WBpn\n"
- "4MOCH8oxGWb52EPNL3gjNJiQuBQuf6U=\n"
- "-----END PRIVATE KEY-----\n";
-
-static const char gost12_256_key[] =
- "-----BEGIN PRIVATE KEY-----\n"
- "MEgCAQAwHwYIKoUDBwEBAQEwEwYHKoUDAgIkAAYIKoUDBwEBAgIEIgQg0+JttJEV\n"
- "Ud+XBzX9q13ByKK+j2b+mEmNIo1yB0wGleo=\n"
- "-----END PRIVATE KEY-----\n";
-
-static const char gost12_512_key[] =
- "-----BEGIN PRIVATE KEY-----\n"
- "MGoCAQAwIQYIKoUDBwEBAQIwFQYJKoUDBwECAQIBBggqhQMHAQECAwRCBECS7bAh\n"
- "TP5um5bxziaKkhb6xSI5WBQCSlaiHPBaMbgmgJiF8RubF7k0YMefpt0+sA3GvVGA\n"
- "KjL7CLBERDm7Yvlv\n"
- "-----END PRIVATE KEY-----\n";
+/* RSA 2048 private key and signature */
+static const char rsa_2048_privkey[] =
+ "-----BEGIN RSA PRIVATE KEY-----\n"
+ "MIIEogIBAAKCAQEA6yCv+BLrRP/dMPBXJWK21c0aqxIX6JkODL4K+zlyEURt8/Wp\n"
+ "nw37CJwHD3VrimSnk2SJvBfTNhzYhCsLShDOPvi4qBrLZ1WozjoVJ8tRE4VCcjQJ\n"
+ "snpJ7ldiV+Eos1Z3FkbV/uQcw5CYCb/TciSukaWlI+G/xas9EOOFt4aELbc1yDe0\n"
+ "hyfPDtoaKfek4GhT9qT1I8pTC40P9OrA9Jt8lblqxHWwqmdunLTjPjB5zJT6QgI+\n"
+ "j1xuq7ZOQhveNA/AOyzh574GIpgsuvPPLBQwsCQkscr7cFnCsyOPgYJrQW3De2+l\n"
+ "wjp2D7gZeeQcFQKazXcFoiqNpJWoBWmU0qqsgwIDAQABAoIBAAghNzRioxPdrO42\n"
+ "QS0fvqah0tw7Yew+7oduQr7w+4qxTQP0aIsBVr6zdmMIclF0rX6hKUoBoOHsGWho\n"
+ "fJlw/1CaFPhrBMFr6sxGodigZQtBvkxolDVBmTDOgK39MQUSZke0501K4du5MiiU\n"
+ "I2F89zQ9//m/onvZMeFVnJf95LAX5qHr/FLARQFtOpgWzcGVxdvJdJlYb1zMUril\n"
+ "PqyAZXo1j0vgHWwSd54k8mBLus7l8KT57VFce8+9nBPrOrqW4rDVXzs/go3S+kiI\n"
+ "OyzYeUs9czg1N1e3VhEaC+EdYUawc0ASuEkbsJ53L8pwDvS+2ly2ykYziJp95Fjv\n"
+ "bzyd1dECgYEA8FzGCxu7A6/ei9Dn0Fmi8Ns/QvEgbdlGw4v4MlXHjrGJYdOB0BwG\n"
+ "2D2k0ODNYKlUX2J4hi5x8aCH33y/v0EcOHyuqM33vOWBVbdcumCqcOmp341UebAO\n"
+ "uCPgDJNhjxXaeDVPnizqnOBA1B9sTxwmCOmFIiFRLbR+XluvDh3t8L0CgYEA+my6\n"
+ "124Rw7kcFx+9JoB/Z+bUJDYpefUT91gBUhhEdEMx5fujhMzAbLpIRjFQq+75Qb7v\n"
+ "0NyIS09B4oKOqQYzVEJwqKY7H71BTl7QuzJ8Qtuh/DMZsVIt6xpvdeuAKpEOqz44\n"
+ "ZD3fW1B59A3ja7kqZadCqq2b02UTk+gdeOrYBj8CgYACX3gZDfoHrEnPKY3QUcI5\n"
+ "DIEQYR8H1phLP+uAW7ZvozMPAy6J5mzu35Tr9vwwExvhITC9amH3l7UfsLSX58Wm\n"
+ "jRyQUBA9Dir7tKa2tFOab8Qcj+GgnetXSAtjNGVHK1kPzL7vedQLHm+laHYCRe3e\n"
+ "Mqf80UVi5SBGQDN3OTZrJQKBgEkj2oozDqMwfGDQl0kYfJ2XEFynKQQCrVsva+tT\n"
+ "RSMDwR4fmcmel5Dp81P08U/WExy9rIM+9duxAVgrs4jwU6uHYCoRqvEBMIK4NJSI\n"
+ "ETzhsvTa4+UjUF/7L5SsPJmyFiuzl3rHi2W7InNCXyrGQPjBmjoJTJq4SbiIMZtw\n"
+ "U7m3AoGACG2rE/Ud71kyOJcKwxzEt8kd+2CMuaZeE/xk+3zLSSjXJzKPficogM3I\n"
+ "K37/N7N0FjhdQ5hRuD3GH1fcjv9AKdGHsH7RuaG+jHTRUjS1glr17SSQzh6xXnWj\n"
+ "jG0M4UZm5P9STL09nZuWH0wfpr/eg+9+A6yOVfnADI13v+Ygk7k=\n"
+ "-----END RSA PRIVATE KEY-----\n";
+
+static const char rsa_2048_sig[] =
+ "\x7a\xb3\xf8\xb0\xf9\xf0\x52\x88\x37\x17\x97\x9f\xbe\x61\xb4\xd2"
+ "\x43\x78\x9f\x79\x92\xd0\xad\x08\xdb\xbd\x3c\x72\x7a\xb5\x51\x59"
+ "\x63\xd6\x7d\xf1\x9c\x1e\x10\x7b\x27\xab\xf8\xd4\x9d\xcd\xc5\xf9"
+ "\xae\xf7\x09\x6b\x40\x93\xc5\xe9\x1c\x0f\xb4\x82\xa1\x47\x86\x54"
+ "\x63\xd2\x4d\x40\x9a\x80\xb9\x38\x45\x69\xa2\xd6\x92\xb6\x69\x7f"
+ "\x3f\xf3\x5b\xa5\x1d\xac\x06\xad\xdf\x4e\xbb\xe6\xda\x68\x0d\xe5"
+ "\xab\xef\xd2\xf0\xc5\xd8\xc0\xed\x80\xe2\xd4\x76\x98\xec\x44\xa2"
+ "\xfc\x3f\xce\x2e\x8b\xc4\x4b\xab\xb0\x70\x24\x52\x85\x2a\x36\xcd"
+ "\x9a\xb5\x05\x00\xea\x98\x7c\x72\x06\x68\xb1\x38\x44\x16\x80\x6a"
+ "\x3b\x64\x72\xbb\xfd\x4b\xc9\xdd\xda\x2a\x68\xde\x7f\x6e\x48\x28"
+ "\xc1\x63\x57\x2b\xde\x83\xa3\x27\x34\xd7\xa6\x87\x18\x35\x10\xff"
+ "\x31\xd9\x47\xc9\x84\x35\xe1\xaa\xe2\xf7\x98\xfa\x19\xd3\xf1\x94"
+ "\x25\x2a\x96\xe4\xa8\xa7\x05\x10\x93\x87\xde\x96\x85\xe5\x68\xb8"
+ "\xe5\x4e\xbf\x66\x85\x91\xbd\x52\x5b\x3d\x9f\x1b\x79\xea\xe3\x8b"
+ "\xef\x62\x18\x39\x7a\x50\x01\x46\x1b\xde\x8d\x37\xbc\x90\x6c\x07"
+ "\xc0\x07\xed\x60\xce\x2e\x31\xd6\x8f\xe8\x75\xdb\x45\x21\xc6\xcb";
+
+/* DSA 2048 private key and signature */
+static const char dsa_2048_privkey[] =
+ "-----BEGIN DSA PRIVATE KEY-----\n"
+ "MIIDTQIBAAKCAQEAh60B6yPMRIT7udq2kKuwnQDohvT1U0w+RJcSr23C05cM/Ovn\n"
+ "UP/8Rrj6T8K+uYhMbKgLaZiJJW9q04jaPQk0cfUphbLvRjzVHwE/0Bkb+Y1Rv7ni\n"
+ "Jot2IFMq5iuNraf889PC0WREvFCcIkSFY2Ac4WT7mCcBtfx/raGFXDUjcUrJ0HwZ\n"
+ "IOhjQDfcXUsztuyYsYA75ociEY8kyDZq/ixyr5++R1VjNf30Re8AbQlXOEGxEN5t\n"
+ "t+Tvpq8K5L3prQs2KNSzyOUmedjb/ojH4T4qe/RL9EVjjeuIGHDNUT6F197yZ91y\n"
+ "qLLTf1WjnUyZcKij5rryX0LJBBWawEZjNSHZawIdAMQlyycia4NigCdiDR+QptUn\n"
+ "2xrj9o14fXkIrXcCggEAXRZm1rbPhsjSTo6cpCVrmDzO1grv83EHiBH4MvRQQnP8\n"
+ "FpAREsBA5cYju97XvLaLhioZeMjLn08kU7TUbHRUB+ULTuVvE2dQbBpGuKiLRRt9\n"
+ "6U2T0eD3xGLoM+o8EY/kpqaWGEpZv7hzM9xuo4vy55+viAZgFWULqmltwfG/7w7V\n"
+ "NXUHNv5H4Ipw//fSDLTPqzUlNqSSswDLz6pCjWEs0rWAqNAMaOiLTz4id9pL48Oe\n"
+ "oAfpcQR9tgTEnwyXfZBnrJVclHhkHKGeXvU05IgCzpKO76Z5R+By50T0i/JV7vzM\n"
+ "l2yS9aAl/cprT6U7yI3oU/blldCVNpMcFAFb+fO8DAKCAQBVMo8xptyvQOJeSvbO\n"
+ "SSYdJ3IiI/0GdkcGWXblWg9z7mrPaWEnT7OquEm/+vYtWd3GHDtyNM+jzsN4Xgjc\n"
+ "TL3AEd2hLiozJQ1BFKw25VU08UHAYTzUxZhO4Vwtmp46Kwj8YLDQ3NHRWCBxpDQR\n"
+ "fbiFvyXP+qXap6plMfrydnUD1mae/JSOWOYgdB7tFIehstLxVXx/cAnjwgFU03Df\n"
+ "grjsad92zA1Hc9wIjbsgAQdTR5DWnFRkRt3UtayBwoyqm6QceZHsv1NAGvkQ4ion\n"
+ "bEjkHkjF9YCkR9/rspR8cLghRIXMjOpypuSbaRPeeWq0gP2UOxFL/d3iWH0ETr/L\n"
+ "kTlCAhxYGpVgtfB96qmJukyl9GOGvfkwFTgEyIDoV84M\n"
+ "-----END DSA PRIVATE KEY-----\n";
+
+static const char dsa_2048_sig[] =
+ "\x30\x3d\x02\x1d\x00\xbe\x87\x2f\xcf\xa1\xe4\x86\x5c\x72\x58\x4a"
+ "\x7b\x8f\x32\x7f\xa5\x1b\xdc\x5c\xae\xda\x98\xea\x15\x32\xed\x0c"
+ "\x4e\x02\x1c\x4c\x76\x01\x2b\xcd\xb9\x33\x95\xf2\xfa\xde\x56\x01"
+ "\xb7\xaa\xe4\x5a\x4a\x2e\xf1\x24\x5a\xd1\xb5\x83\x9a\x93\x61";
+
+/* secp256r1 private key and signature */
+static const char ecdsa_secp256r1_privkey[] =
+ "-----BEGIN EC PRIVATE KEY-----\n"
+ "MHcCAQEEIPAKWV7+pZe9c5EubMNfAEKWRQtP/MvlO9HehwHmJssNoAoGCCqGSM49\n"
+ "AwEHoUQDQgAE2CNONRio3ciuXtoomJKs3MdbzLbd44VPhtzJN30VLFm5gvnfiCj2\n"
+ "zzz7pl9Cv0ECHl6yedNI8QEKdcwCDgEmkQ==\n"
+ "-----END EC PRIVATE KEY-----\n";
+
+static const char ecdsa_secp256r1_sig[] =
+ "\x30\x45\x02\x21\x00\x80\x67\x18\xb9\x72\xc6\x0b\xe1\xc9\x89\x9b"
+ "\x85\x11\x49\x29\x08\xd9\x86\x76\xcc\xfb\xc1\xf4\xd0\xa2\x5e\xa7"
+ "\xb9\x12\xfb\x1a\x68\x02\x20\x67\x12\xb1\x89\x9e\x1d\x9d\x5c\x0f"
+ "\xef\x6e\xa7\x2a\x95\x8c\xfa\x54\x20\x80\xc8\x30\x7c\xff\x06\xbc"
+ "\xc8\xe2\x9a\x2f\x05\x2f\x67";
+
+#ifdef ENABLE_NON_SUITEB_CURVES
+/* secp192r1 private key and signature */
+static const char ecdsa_secp192r1_privkey[] =
+ "-----BEGIN EC PRIVATE KEY-----"
+ "MF8CAQEEGLjezFcbgDMeApVrdtZHvu/k1a8/tVZ41KAKBggqhkjOPQMBAaE0AzIA"
+ "BO1lciKdgxeRH8k64vxcaV1OYIK9akVrW02Dw21MXhRLP0l0wzCw6LGSr5rS6AaL"
+ "Fg==" "-----END EC PRIVATE KEY-----";
+
+static const char ecdsa_secp192r1_sig[] =
+ "\x30\x34\x02\x18\x7c\x43\xe3\xb7\x26\x90\x43\xb5\xf5\x63\x8f\xee"
+ "\xac\x78\x3d\xac\x35\x35\xd0\x1e\x83\x17\x2b\x64\x02\x18\x14\x6e"
+ "\x94\xd5\x7e\xac\x43\x42\x0b\x71\x7a\xc8\x29\xe6\xe3\xda\xf2\x95"
+ "\x0e\xe0\x63\x24\xed\xf2";
+
+/* secp224r1 private key and signature */
+static const char ecdsa_secp224r1_privkey[] =
+ "-----BEGIN EC PRIVATE KEY-----"
+ "MGgCAQEEHOKWJFdWdrR/CgVrUeTeawOrJ9GozE9KKx2a8PmgBwYFK4EEACGhPAM6"
+ "AAQKQj3YpenWT7lFR41SnBvmj/+Bj+kgzQnaF65qWAtPRJsZXFlLTu3/IUNqSRu9"
+ "DqPsk8xBHAB7pA==" "-----END EC PRIVATE KEY-----";
+
+static const char ecdsa_secp224r1_sig[] =
+ "\x30\x3d\x02\x1c\x14\x22\x09\xa1\x51\x33\x37\xfd\x78\x73\xbd\x84"
+ "\x6e\x76\xa8\x60\x90\xf5\xb6\x57\x34\x25\xe0\x79\xe3\x01\x61\xa9"
+ "\x02\x1d\x00\xb1\xee\xdb\xae\xb3\xe6\x9c\x04\x68\xd5\xe1\x0d\xb6"
+ "\xfc\x5c\x45\xc3\x4f\xbf\x2b\xa5\xe0\x89\x37\x84\x04\x82\x5f";
+#endif
+
+/* secp384r1 private key and signature */
+static const char ecdsa_secp384r1_privkey[] =
+ "-----BEGIN EC PRIVATE KEY-----"
+ "MIGkAgEBBDDevshD6gb+4rZpC9vwFcIwNs4KmGzdqCxyyN40a8uOWRbyf7aHdiSS"
+ "03oAyKtc4JCgBwYFK4EEACKhZANiAARO1KkPMno2tnNXx1S9EZkp8SOpDCZ4aobH"
+ "IYv8RHnSmKf8I3OKD6TaoeR+1MwJmNJUH90Bj45WXla68/vsPiFcfVKboxsZYe/n"
+ "pv8e4ugXagVQVBXNZJ859iYPdJR24vo=" "-----END EC PRIVATE KEY-----";
+
+static const char ecdsa_secp384r1_sig[] =
+ "\x30\x65\x02\x31\x00\xa7\x73\x60\x16\xdb\xf9\x1f\xfc\x9e\xd2\x12"
+ "\x23\xd4\x04\xa7\x31\x1f\x15\x28\xfd\x87\x9c\x2c\xb1\xf3\x38\x35"
+ "\x23\x3b\x6e\xfe\x6a\x5d\x89\x34\xbe\x02\x82\xc6\x27\xea\x45\x53"
+ "\xa9\x87\xc5\x31\x0a\x02\x30\x76\x32\x80\x6b\x43\x3c\xb4\xfd\x90"
+ "\x03\xe0\x1d\x5d\x77\x18\x45\xf6\x71\x29\xa9\x05\x87\x49\x75\x3a"
+ "\x78\x9c\x49\xe5\x6c\x8e\x18\xcd\x5d\xee\x2c\x6f\x92\xf7\x15\xd3"
+ "\x38\xd5\xf9\x9b\x9d\x1a\xf4";
+
+/* secp521r1 private key and signature */
+static const char ecdsa_secp521r1_privkey[] =
+ "-----BEGIN EC PRIVATE KEY-----"
+ "MIHbAgEBBEGO2n7NN363qSCvJVdlQtCvudtaW4o0fEufXRjE1AsCrle+VXX0Zh0w"
+ "Y1slSeDHMndpakoiF+XkQ+bhcB867UV6aKAHBgUrgQQAI6GBiQOBhgAEAQb6jDpo"
+ "byy1tF8Zucg0TMGUzIN2DK+RZJ3QQRdWdirO25OIC3FoFi1Yird6rpoB6HlNyJ7R"
+ "0bNG9Uv34bSHMn8yAFoiqxUCdJZQbEenMoZsi6COaePe3e0QqvDMr0hEWT23Sr3t"
+ "LpEV7eZGFfFIJw5wSUp2KOcs+O9WjmoukTWtDKNV"
+ "-----END EC PRIVATE KEY-----";
+
+static const char ecdsa_secp521r1_sig[] =
+ "\x30\x81\x88\x02\x42\x01\x9d\x13\x2e\xc9\x75\x1b\x60\x10\x62\xc5"
+ "\x0d\xcb\x08\x9e\x86\x01\xd3\xc9\x8c\xee\x2e\x16\x3d\x8c\xc2\x65"
+ "\x80\xe1\x32\x56\xc3\x02\x9d\xf0\x4a\x89\x8d\x2e\x33\x2a\x90\x4e"
+ "\x72\x1d\xaa\x84\x14\xe8\xcb\xdf\x7a\x4a\xc9\x67\x2e\xba\xa3\xf2"
+ "\xc2\x07\xf7\x1b\xa5\x91\xbd\x02\x42\x01\xe3\x32\xd2\x25\xeb\x2e"
+ "\xaf\xb4\x6c\xc0\xaa\x5c\xc1\x56\x14\x13\x23\x7f\x62\xcf\x4c\xb8"
+ "\xd1\x96\xe0\x29\x6d\xed\x74\xdd\x23\x64\xf9\x29\x86\x40\x22\x2f"
+ "\xb6\x8d\x4c\x8e\x0b\x7a\xda\xdb\x03\x44\x01\x9b\x81\x1c\x3c\xab"
+ "\x78\xee\xf2\xc5\x24\x33\x61\x65\x01\x87\x66";
+
+/* GOST01 private key */
+static const char gost01_privkey[] =
+ "-----BEGIN PRIVATE KEY-----\n"
+ "MEUCAQAwHAYGKoUDAgITMBIGByqFAwICIwEGByqFAwICHgEEIgQgdNfuHGmmTdPm\n"
+ "p5dAa3ea9UYxpdYQPP9lbDwzQwG2bJM=\n"
+ "-----END PRIVATE KEY-----\n";
+
+/* GOST12 256 private key */
+static const char gost12_256_privkey[] =
+ "-----BEGIN PRIVATE KEY-----\n"
+ "MEgCAQAwHwYIKoUDBwEBAQEwEwYHKoUDAgIjAQYIKoUDBwEBAgIEIgQgKOF96tom\n"
+ "D61rhSnzKjyrmO3fv0gdlHei+6ovrc8SnBk=\n"
+ "-----END PRIVATE KEY-----\n";
+
+/* GOST12 512 private key */
+static const char gost12_512_privkey[] =
+ "-----BEGIN PRIVATE KEY-----\n"
+ "MGoCAQAwIQYIKoUDBwEBAQIwFQYJKoUDBwECAQIBBggqhQMHAQECAwRCBECjFpvp\n"
+ "B0vdc7u59b99TCNXhHiB69JJtUjvieNkGYJpoaaIvoKZTNCjpSZASsZcQZCHOTof\n"
+ "hsQ3JCCy4xnd5jWT\n"
+ "-----END PRIVATE KEY-----\n";
static int test_rsa_enc(gnutls_pk_algorithm_t pk,
unsigned bits, gnutls_digest_algorithm_t ign)
@@ -113,7 +229,7 @@ static int test_rsa_enc(gnutls_pk_algorithm_t pk,
int ret;
gnutls_datum_t enc = { NULL, 0 };
gnutls_datum_t dec = { NULL, 0 };
- gnutls_datum_t raw_rsa_key = { (void*)rsa_key2048, sizeof(rsa_key2048)-1 };
+ gnutls_datum_t raw_rsa_key = { (void*)rsa_2048_privkey, sizeof(rsa_2048_privkey)-1 };
gnutls_privkey_t key;
gnutls_pubkey_t pub = NULL;
unsigned char plaintext2[sizeof(DATASTR) - 1];
@@ -200,29 +316,15 @@ static int test_sig(gnutls_pk_algorithm_t pk,
unsigned bits, gnutls_sign_algorithm_t sigalgo)
{
int ret;
- gnutls_datum_t sig = { NULL, 0 };
- gnutls_datum_t raw_rsa_key = { (void*)rsa_key2048, sizeof(rsa_key2048)-1 };
- gnutls_datum_t raw_dsa_key = { (void*)dsa_key, sizeof(dsa_key)-1 };
- gnutls_datum_t raw_ecc_key = { (void*)ecc_key, sizeof(ecc_key)-1 };
- gnutls_datum_t raw_gost01_key = { (void*)gost01_key, sizeof(gost01_key)-1 };
- gnutls_datum_t raw_gost12_256_key = { (void*)gost12_256_key, sizeof(gost12_256_key)-1 };
- gnutls_datum_t raw_gost12_512_key = { (void*)gost12_512_key, sizeof(gost12_512_key)-1 };
gnutls_privkey_t key;
+ gnutls_datum_t raw_key;
+ gnutls_datum_t sig = { NULL, 0 };
gnutls_pubkey_t pub = NULL;
char param_name[32];
unsigned vflags = 0;
- if (pk == GNUTLS_PK_EC || pk == GNUTLS_PK_GOST_01 ||
- pk == GNUTLS_PK_GOST_12_256 || pk == GNUTLS_PK_GOST_12_512) {
- snprintf(param_name, sizeof(param_name), "%s",
- gnutls_ecc_curve_get_name(GNUTLS_BITS_TO_CURVE
- (bits)));
-
- if (sigalgo == GNUTLS_SIGN_GOST_94)
- vflags |= GNUTLS_VERIFY_ALLOW_BROKEN;
- } else {
- snprintf(param_name, sizeof(param_name), "%u", bits);
- }
+ if (sigalgo == GNUTLS_SIGN_GOST_94)
+ vflags |= GNUTLS_VERIFY_ALLOW_BROKEN;
ret = gnutls_privkey_init(&key);
if (ret < 0)
@@ -234,25 +336,83 @@ static int test_sig(gnutls_pk_algorithm_t pk,
goto cleanup;
}
- if (pk == GNUTLS_PK_RSA) {
- ret = gnutls_privkey_import_x509_raw(key, &raw_rsa_key, GNUTLS_X509_FMT_PEM, NULL, 0);
- } else if (pk == GNUTLS_PK_RSA_PSS) {
- ret = gnutls_privkey_import_x509_raw(key, &raw_rsa_key, GNUTLS_X509_FMT_PEM, NULL, 0);
- } else if (pk == GNUTLS_PK_DSA) {
- ret = gnutls_privkey_import_x509_raw(key, &raw_dsa_key, GNUTLS_X509_FMT_PEM, NULL, 0);
- } else if (pk == GNUTLS_PK_ECC) {
- ret = gnutls_privkey_import_x509_raw(key, &raw_ecc_key, GNUTLS_X509_FMT_PEM, NULL, 0);
- } else if (pk == GNUTLS_PK_GOST_01) {
- ret = gnutls_privkey_import_x509_raw(key, &raw_gost01_key, GNUTLS_X509_FMT_PEM, NULL, 0);
- } else if (pk == GNUTLS_PK_GOST_12_256) {
- ret = gnutls_privkey_import_x509_raw(key, &raw_gost12_256_key, GNUTLS_X509_FMT_PEM, NULL, 0);
- } else if (pk == GNUTLS_PK_GOST_12_512) {
- ret = gnutls_privkey_import_x509_raw(key, &raw_gost12_512_key, GNUTLS_X509_FMT_PEM, NULL, 0);
- } else {
- gnutls_assert();
- ret = GNUTLS_E_INTERNAL_ERROR;
+ switch(pk) {
+ case GNUTLS_PK_RSA:
+ raw_key.data = (void*)rsa_2048_privkey;
+ raw_key.size = sizeof(rsa_2048_privkey) - 1;
+ snprintf(param_name, sizeof(param_name), "%u", bits);
+ break;
+ case GNUTLS_PK_RSA_PSS:
+ raw_key.data = (void*)rsa_2048_privkey;
+ raw_key.size = sizeof(rsa_2048_privkey) - 1;
+ snprintf(param_name, sizeof(param_name), "%u", bits);
+ break;
+ case GNUTLS_PK_DSA:
+ raw_key.data = (void*)dsa_2048_privkey;
+ raw_key.size = sizeof(dsa_2048_privkey) - 1;
+ snprintf(param_name, sizeof(param_name), "%u", bits);
+ break;
+ case GNUTLS_PK_ECC:
+ switch(bits) {
+#ifdef ENABLE_NON_SUITEB_CURVES
+ case GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP192R1):
+ raw_key.data = (void*)ecdsa_secp192r1_privkey;
+ raw_key.size = sizeof(ecdsa_secp192r1_privkey) - 1;
+ break;
+ case GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP224R1):
+ raw_key.data = (void*)ecdsa_secp224r1_privkey;
+ raw_key.size = sizeof(ecdsa_secp224r1_privkey) - 1;
+ break;
+#endif
+ case GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP256R1):
+ raw_key.data = (void*)ecdsa_secp256r1_privkey;
+ raw_key.size = sizeof(ecdsa_secp256r1_privkey) - 1;
+ break;
+ case GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP384R1):
+ raw_key.data = (void*)ecdsa_secp384r1_privkey;
+ raw_key.size = sizeof(ecdsa_secp384r1_privkey) - 1;
+ break;
+ case GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP521R1):
+ raw_key.data = (void*)ecdsa_secp521r1_privkey;
+ raw_key.size = sizeof(ecdsa_secp521r1_privkey) - 1;
+ break;
+ default:
+ gnutls_assert();
+ ret = GNUTLS_E_INTERNAL_ERROR;
+ goto cleanup;
+ }
+ snprintf(param_name, sizeof(param_name), "%s",
+ gnutls_ecc_curve_get_name(GNUTLS_BITS_TO_CURVE
+ (bits)));
+ break;
+ case GNUTLS_PK_GOST_01:
+ raw_key.data = (void*)gost01_privkey;
+ raw_key.size = sizeof(gost01_privkey) - 1;
+ snprintf(param_name, sizeof(param_name), "%s",
+ gnutls_ecc_curve_get_name(GNUTLS_BITS_TO_CURVE
+ (bits)));
+ break;
+ case GNUTLS_PK_GOST_12_256:
+ raw_key.data = (void*)gost12_256_privkey;
+ raw_key.size = sizeof(gost12_256_privkey) - 1;
+ snprintf(param_name, sizeof(param_name), "%s",
+ gnutls_ecc_curve_get_name(GNUTLS_BITS_TO_CURVE
+ (bits)));
+ break;
+ case GNUTLS_PK_GOST_12_512:
+ raw_key.data = (void*)gost12_512_privkey;
+ raw_key.size = sizeof(gost12_512_privkey) - 1;
+ snprintf(param_name, sizeof(param_name), "%s",
+ gnutls_ecc_curve_get_name(GNUTLS_BITS_TO_CURVE
+ (bits)));
+ break;
+ default:
+ gnutls_assert();
+ ret = GNUTLS_E_INTERNAL_ERROR;
+ goto cleanup;
}
+ ret = gnutls_privkey_import_x509_raw(key, &raw_key, GNUTLS_X509_FMT_PEM, NULL, 0);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -290,7 +450,8 @@ static int test_sig(gnutls_pk_algorithm_t pk,
}
ret = 0;
- cleanup:
+
+cleanup:
if (pub != NULL)
gnutls_pubkey_deinit(pub);
gnutls_privkey_deinit(key);
@@ -306,123 +467,11 @@ static int test_sig(gnutls_pk_algorithm_t pk,
return ret;
}
-/* A precomputed RSA-SHA1 signature using the rsa_key2048 */
-static const char rsa_sig[] =
- "\x7a\xb3\xf8\xb0\xf9\xf0\x52\x88\x37\x17\x97\x9f\xbe\x61\xb4\xd2\x43\x78\x9f\x79\x92\xd0\xad\x08\xdb\xbd\x3c\x72\x7a\xb5\x51\x59\x63\xd6\x7d\xf1\x9c\x1e\x10\x7b\x27\xab\xf8\xd4\x9d\xcd\xc5\xf9\xae\xf7\x09\x6b\x40\x93\xc5\xe9\x1c\x0f\xb4\x82\xa1\x47\x86\x54\x63\xd2\x4d\x40\x9a\x80\xb9\x38\x45\x69\xa2\xd6\x92\xb6\x69\x7f\x3f\xf3\x5b\xa5\x1d\xac\x06\xad\xdf\x4e\xbb\xe6\xda\x68\x0d\xe5\xab\xef\xd2\xf0\xc5\xd8\xc0\xed\x80\xe2\xd4\x76\x98\xec\x44\xa2\xfc\x3f\xce\x2e\x8b\xc4\x4b\xab\xb0\x70\x24\x52\x85\x2a\x36\xcd\x9a\xb5\x05\x00\xea\x98\x7c\x72\x06\x68\xb1\x38\x44\x16\x80\x6a\x3b\x64\x72\xbb\xfd\x4b\xc9\xdd\xda\x2a\x68\xde\x7f\x6e\x48\x28\xc1\x63\x57\x2b\xde\x83\xa3\x27\x34\xd7\xa6\x87\x18\x35\x10\xff\x31\xd9\x47\xc9\x84\x35\xe1\xaa\xe2\xf7\x98\xfa\x19\xd3\xf1\x94\x25\x2a\x96\xe4\xa8\xa7\x05\x10\x93\x87\xde\x96\x85\xe5\x68\xb8\xe5\x4e\xbf\x66\x85\x91\xbd\x52\x5b\x3d\x9f\x1b\x79\xea\xe3\x8b\xef\x62\x18\x39\x7a\x50\x01\x46\x1b\xde\x8d\x37\xbc\x90\x6c\x07\xc0\x07\xed\x60\xce\x2e\x31\xd6\x8f\xe8\x75\xdb\x45\x21\xc6\xcb";
-
-/* ECDSA key and signature */
-static const char ecdsa_secp256r1_privkey[] =
- "-----BEGIN EC PRIVATE KEY-----\n"
- "MHcCAQEEIPAKWV7+pZe9c5EubMNfAEKWRQtP/MvlO9HehwHmJssNoAoGCCqGSM49\n"
- "AwEHoUQDQgAE2CNONRio3ciuXtoomJKs3MdbzLbd44VPhtzJN30VLFm5gvnfiCj2\n"
- "zzz7pl9Cv0ECHl6yedNI8QEKdcwCDgEmkQ==\n"
- "-----END EC PRIVATE KEY-----\n";
-
-static const char ecdsa_secp256r1_sig[] =
- "\x30\x45\x02\x21\x00\x9b\x8f\x60\xed\x9e\x40\x8d\x74\x82\x73\xab\x20\x1a\x69\xfc\xf9\xee\x3c\x41\x80\xc0\x39\xdd\x21\x1a\x64\xfd\xbf\x7e\xaa\x43\x70\x02\x20\x44\x28\x05\xdd\x30\x47\x58\x96\x18\x39\x94\x18\xba\xe7\x7a\xf6\x1e\x2d\xba\xb1\xe0\x7d\x73\x9e\x2f\x58\xee\x0c\x2a\x89\xe8\x35";
-
-#ifdef ENABLE_NON_SUITEB_CURVES
-/* sha256 */
-static const char ecdsa_secp192r1_privkey[] =
- "-----BEGIN EC PRIVATE KEY-----"
- "MF8CAQEEGLjezFcbgDMeApVrdtZHvu/k1a8/tVZ41KAKBggqhkjOPQMBAaE0AzIA"
- "BO1lciKdgxeRH8k64vxcaV1OYIK9akVrW02Dw21MXhRLP0l0wzCw6LGSr5rS6AaL"
- "Fg==" "-----END EC PRIVATE KEY-----";
-
-static const char ecdsa_secp192r1_sig[] =
- "\x30\x34\x02\x18\x5f\xb3\x10\x4b\x4d\x44\x48\x29\x4b\xfd\xa7\x8e\xce\x57\xac\x36\x38\x54\xab\x73\xdb\xed\xb8\x5f\x02\x18\x0b\x8b\xf3\xae\x49\x50\x0e\x47\xca\x89\x1a\x00\xca\x23\xf5\x8d\xd6\xe3\xce\x9a\xff\x2e\x4f\x5c";
-
-static const char ecdsa_secp224r1_privkey[] =
- "-----BEGIN EC PRIVATE KEY-----"
- "MGgCAQEEHOKWJFdWdrR/CgVrUeTeawOrJ9GozE9KKx2a8PmgBwYFK4EEACGhPAM6"
- "AAQKQj3YpenWT7lFR41SnBvmj/+Bj+kgzQnaF65qWAtPRJsZXFlLTu3/IUNqSRu9"
- "DqPsk8xBHAB7pA==" "-----END EC PRIVATE KEY-----";
-
-static const char ecdsa_secp224r1_sig[] =
- "\x30\x3d\x02\x1c\x76\x03\x8d\x74\xf4\xd3\x09\x2a\xb5\xdf\x6b\x5b\xf4\x4b\x86\xb8\x62\x81\x5d\x7b\x7a\xbb\x37\xfc\xf1\x46\x1c\x2b\x02\x1d\x00\xa0\x98\x5d\x80\x43\x89\xe5\xee\x1a\xec\x46\x08\x04\x55\xbc\x50\xfa\x2a\xd5\xa6\x18\x92\x19\xdb\x68\xa0\x2a\xda";
-#endif
-
-static const char ecdsa_secp384r1_privkey[] =
- "-----BEGIN EC PRIVATE KEY-----"
- "MIGkAgEBBDDevshD6gb+4rZpC9vwFcIwNs4KmGzdqCxyyN40a8uOWRbyf7aHdiSS"
- "03oAyKtc4JCgBwYFK4EEACKhZANiAARO1KkPMno2tnNXx1S9EZkp8SOpDCZ4aobH"
- "IYv8RHnSmKf8I3OKD6TaoeR+1MwJmNJUH90Bj45WXla68/vsPiFcfVKboxsZYe/n"
- "pv8e4ugXagVQVBXNZJ859iYPdJR24vo=" "-----END EC PRIVATE KEY-----";
-
-static const char ecdsa_secp384r1_sig[] =
- "\x30\x66\x02\x31\x00\xbb\x4d\x25\x30\x13\x1b\x3b\x75\x60\x07\xed\x53\x8b\x52\xee\xd8\x6e\xf1\x9d\xa8\x36\x0e\x2e\x20\x31\x51\x11\x48\x78\xdd\xaf\x24\x38\x64\x81\x71\x6b\xa6\xb7\x29\x58\x28\x82\x32\xba\x29\x29\xd9\x02\x31\x00\xeb\x70\x09\x87\xac\x7b\x78\x0d\x4c\x4f\x08\x2b\x86\x27\xe2\x60\x1f\xc9\x11\x9f\x1d\xf5\x82\x4c\xc7\x3d\xb0\x27\xc8\x93\x29\xc7\xd0\x0e\x88\x02\x09\x93\xc2\x72\xce\xa5\x74\x8c\x3d\xe0\x8c\xad";
-
-static const char ecdsa_secp521r1_privkey[] =
- "-----BEGIN EC PRIVATE KEY-----"
- "MIHbAgEBBEGO2n7NN363qSCvJVdlQtCvudtaW4o0fEufXRjE1AsCrle+VXX0Zh0w"
- "Y1slSeDHMndpakoiF+XkQ+bhcB867UV6aKAHBgUrgQQAI6GBiQOBhgAEAQb6jDpo"
- "byy1tF8Zucg0TMGUzIN2DK+RZJ3QQRdWdirO25OIC3FoFi1Yird6rpoB6HlNyJ7R"
- "0bNG9Uv34bSHMn8yAFoiqxUCdJZQbEenMoZsi6COaePe3e0QqvDMr0hEWT23Sr3t"
- "LpEV7eZGFfFIJw5wSUp2KOcs+O9WjmoukTWtDKNV"
- "-----END EC PRIVATE KEY-----";
-
-static const char ecdsa_secp521r1_sig[] =
- "\x30\x81\x87\x02\x42\x01\xb8\xcb\x52\x9e\x10\xa8\x49\x3f\xe1\x9e\x14\x0a\xcf\x96\xed\x7e\xab\x7d\x0c\xe1\x9b\xa4\x97\xdf\x01\xf5\x35\x42\x5f\x5b\x28\x15\x24\x33\x6e\x59\x6c\xaf\x10\x8b\x98\x8e\xe9\x4c\x23\x0d\x76\x92\x03\xdd\x6d\x8d\x08\x47\x15\x5b\xf8\x66\x75\x75\x40\xe8\xf4\xa0\x52\x02\x41\x15\x27\x7c\x5f\xa6\x33\xa6\x29\x68\x3f\x55\x8d\x7f\x1d\x4f\x88\xc6\x61\x6e\xac\x21\xdf\x2b\x7b\xde\x76\x9a\xdc\xe6\x3b\x94\x3f\x03\x9c\xa2\xa6\xa3\x63\x39\x48\xbd\x79\x70\x21\xf2\x6b\xff\x58\x66\xf1\x58\xc2\x58\xad\x4f\x84\x14\x5d\x05\x12\x83\xd0\x87\xbd\xf3";
-
-/* DSA key and signature */
-static const char dsa_privkey[] =
- "-----BEGIN DSA PRIVATE KEY-----\n"
- "MIIDTQIBAAKCAQEAh60B6yPMRIT7udq2kKuwnQDohvT1U0w+RJcSr23C05cM/Ovn\n"
- "UP/8Rrj6T8K+uYhMbKgLaZiJJW9q04jaPQk0cfUphbLvRjzVHwE/0Bkb+Y1Rv7ni\n"
- "Jot2IFMq5iuNraf889PC0WREvFCcIkSFY2Ac4WT7mCcBtfx/raGFXDUjcUrJ0HwZ\n"
- "IOhjQDfcXUsztuyYsYA75ociEY8kyDZq/ixyr5++R1VjNf30Re8AbQlXOEGxEN5t\n"
- "t+Tvpq8K5L3prQs2KNSzyOUmedjb/ojH4T4qe/RL9EVjjeuIGHDNUT6F197yZ91y\n"
- "qLLTf1WjnUyZcKij5rryX0LJBBWawEZjNSHZawIdAMQlyycia4NigCdiDR+QptUn\n"
- "2xrj9o14fXkIrXcCggEAXRZm1rbPhsjSTo6cpCVrmDzO1grv83EHiBH4MvRQQnP8\n"
- "FpAREsBA5cYju97XvLaLhioZeMjLn08kU7TUbHRUB+ULTuVvE2dQbBpGuKiLRRt9\n"
- "6U2T0eD3xGLoM+o8EY/kpqaWGEpZv7hzM9xuo4vy55+viAZgFWULqmltwfG/7w7V\n"
- "NXUHNv5H4Ipw//fSDLTPqzUlNqSSswDLz6pCjWEs0rWAqNAMaOiLTz4id9pL48Oe\n"
- "oAfpcQR9tgTEnwyXfZBnrJVclHhkHKGeXvU05IgCzpKO76Z5R+By50T0i/JV7vzM\n"
- "l2yS9aAl/cprT6U7yI3oU/blldCVNpMcFAFb+fO8DAKCAQBVMo8xptyvQOJeSvbO\n"
- "SSYdJ3IiI/0GdkcGWXblWg9z7mrPaWEnT7OquEm/+vYtWd3GHDtyNM+jzsN4Xgjc\n"
- "TL3AEd2hLiozJQ1BFKw25VU08UHAYTzUxZhO4Vwtmp46Kwj8YLDQ3NHRWCBxpDQR\n"
- "fbiFvyXP+qXap6plMfrydnUD1mae/JSOWOYgdB7tFIehstLxVXx/cAnjwgFU03Df\n"
- "grjsad92zA1Hc9wIjbsgAQdTR5DWnFRkRt3UtayBwoyqm6QceZHsv1NAGvkQ4ion\n"
- "bEjkHkjF9YCkR9/rspR8cLghRIXMjOpypuSbaRPeeWq0gP2UOxFL/d3iWH0ETr/L\n"
- "kTlCAhxYGpVgtfB96qmJukyl9GOGvfkwFTgEyIDoV84M\n"
- "-----END DSA PRIVATE KEY-----\n";
-
-static const char dsa_sig[] =
- "\x30\x3d\x02\x1c\x2e\x40\x14\xb3\x7a\x3f\xc0\x4f\x06\x74\x4f\xa6\x5f\xc2\x0a\x46\x35\x38\x88\xb4\x1a\xcf\x94\x02\x40\x42\x7c\x7f\x02\x1d\x00\x98\xfc\xf1\x08\x66\xf1\x86\x28\xc9\x73\x9e\x2b\x5d\xce\x57\xe8\xb5\xeb\xcf\xa3\xf6\x60\xf6\x63\x16\x0e\xc0\x42";
-
-static const char gost01_privkey[] =
- "-----BEGIN PRIVATE KEY-----\n"
- "MEUCAQAwHAYGKoUDAgITMBIGByqFAwICIwEGByqFAwICHgEEIgQgdNfuHGmmTdPm\n"
- "p5dAa3ea9UYxpdYQPP9lbDwzQwG2bJM=\n"
- "-----END PRIVATE KEY-----\n";
-
-static const char gost01_sig[] =
- "\xc5\xc8\xf8\xdc\x22\x51\xb0\x72\xe9\xa2\xbb\x84\x6c\xe2\x24\xd5\x72\x39\x2a\x5a\x0e\x7a\x43\xfc\x9c\xc3\x5d\x32\x92\xbb\xab\xc0\x4b\x99\xbd\xc8\x47\x24\x70\x06\x7e\xa1\xc6\xe3\xa0\xdc\x42\xed\xa0\x66\xf0\xcc\x50\x97\xe9\x5a\x7d\x3f\x65\x2d\x7b\x1b\x03\xcb";
-
-static const char gost12_256_privkey[] =
- "-----BEGIN PRIVATE KEY-----\n"
- "MEgCAQAwHwYIKoUDBwEBAQEwEwYHKoUDAgIjAQYIKoUDBwEBAgIEIgQgKOF96tom\n"
- "D61rhSnzKjyrmO3fv0gdlHei+6ovrc8SnBk=\n"
- "-----END PRIVATE KEY-----\n";
-
-static const char gost12_256_sig[] =
- "\xb2\x51\x5a\x1a\xbd\x95\x4e\x71\x55\xad\x74\x74\x81\xa6\xca\x6c\x14\x01\xe0\x18\xda\xe4\x0d\x02\x4f\x14\xd2\x39\xd6\x3c\xb5\x85\xa8\x37\xfd\x7f\x2b\xfa\xe4\xf5\xbc\xbc\x15\x20\x8b\x83\x4b\x84\x0d\x5d\x02\x21\x8c\x0d\xb9\xc4\x2b\xc0\x3e\xfd\x42\x55\x1d\xb0";
-
-static const char gost12_512_privkey[] =
- "-----BEGIN PRIVATE KEY-----\n"
- "MGoCAQAwIQYIKoUDBwEBAQIwFQYJKoUDBwECAQIBBggqhQMHAQECAwRCBECjFpvp\n"
- "B0vdc7u59b99TCNXhHiB69JJtUjvieNkGYJpoaaIvoKZTNCjpSZASsZcQZCHOTof\n"
- "hsQ3JCCy4xnd5jWT\n"
- "-----END PRIVATE KEY-----\n";
-
-static const char gost12_512_sig[] =
- "\x52\x4f\xa2\x77\x51\xd2\xc5\xef\xd3\xa3\x99\x4e\xec\xff\xc6\xe9\xfc\x2f\xc0\x28\x42\x03\x95\x6c\x9a\x38\xee\xea\x89\x79\xae\x1a\xc3\x68\x5e\xe4\x15\x15\x4b\xec\x0f\xf1\x7e\x0f\xba\x01\xc7\x84\x16\xc7\xb5\xac\x9d\x0c\x22\xdd\x31\xf7\xb0\x9b\x59\x4b\xf0\x02\xa8\x7d\xfd\x6d\x02\x43\xc7\x4f\x65\xbd\x84\x5c\x54\x91\xba\x75\x9f\x5a\x61\x19\x5c\x9a\x10\x78\x34\xa0\xa6\xf6\xdc\xb6\xb0\x50\x22\x38\x5f\xb0\x16\x66\xf1\xd5\x46\x00\xd5\xe2\xa8\xe5\xd2\x11\x5f\xd1\xbe\x6e\xac\xb2\x9c\x14\x34\x96\xe7\x58\x94\xb8\xf4\x5f";
-
static int test_known_sig(gnutls_pk_algorithm_t pk, unsigned bits,
gnutls_digest_algorithm_t dig,
const void *privkey, size_t privkey_size,
const void *stored_sig, size_t stored_sig_size,
- unsigned deterministic_sigs)
+ gnutls_privkey_flags_t flags)
{
int ret;
gnutls_datum_t sig = { NULL, 0 };
@@ -432,8 +481,11 @@ static int test_known_sig(gnutls_pk_algorithm_t pk, unsigned bits,
char param_name[32];
unsigned vflags = 0;
- if (pk == GNUTLS_PK_EC || pk == GNUTLS_PK_GOST_01 ||
- pk == GNUTLS_PK_GOST_12_256 || pk == GNUTLS_PK_GOST_12_512) {
+ if (pk == GNUTLS_PK_EC ||
+ pk == GNUTLS_PK_GOST_01 ||
+ pk == GNUTLS_PK_GOST_12_256 ||
+ pk == GNUTLS_PK_GOST_12_512)
+ {
snprintf(param_name, sizeof(param_name), "%s",
gnutls_ecc_curve_get_name(GNUTLS_BITS_TO_CURVE
(bits)));
@@ -469,39 +521,37 @@ static int test_known_sig(gnutls_pk_algorithm_t pk, unsigned bits,
goto cleanup;
}
- /* Test if the signature we generate matches the stored */
+ ret = gnutls_privkey_sign_data(key, dig, flags, &signed_data, &sig);
+ if (ret < 0) {
+ gnutls_assert();
+ goto cleanup;
+ }
+
+ /* Test if the generated signature matches the stored */
ssig.data = (void *) stored_sig;
ssig.size = stored_sig_size;
- if (deterministic_sigs != 0) { /* do not compare against stored signature if not provided */
- ret =
- gnutls_privkey_sign_data(key, dig, 0, &signed_data,
- &sig);
- if (ret < 0) {
- gnutls_assert();
- goto cleanup;
- }
-
- if (sig.size != ssig.size
- || memcmp(sig.data, ssig.data, sig.size) != 0) {
- ret = GNUTLS_E_SELF_TEST_ERROR;
+ if (sig.size != ssig.size
+ || memcmp(sig.data, ssig.data, sig.size) != 0) {
+ ret = GNUTLS_E_SELF_TEST_ERROR;
#if 0
- unsigned i;
- fprintf(stderr, "\nstored[%d]: ", ssig.size);
- for (i = 0; i < ssig.size; i++)
- fprintf(stderr, "\\x%.2x", ssig.data[i]);
-
- fprintf(stderr, "\ngenerated[%d]: ", sig.size);
- for (i = 0; i < sig.size; i++)
- fprintf(stderr, "\\x%.2x", sig.data[i]);
- fprintf(stderr, "\n");
+ unsigned i;
+ fprintf(stderr, "Algorithm: %s-%s\n",
+ gnutls_pk_get_name(pk), param_name);
+ fprintf(stderr, "\nstored[%d]: ", ssig.size);
+ for (i = 0; i < ssig.size; i++)
+ fprintf(stderr, "\\x%.2x", ssig.data[i]);
+
+ fprintf(stderr, "\ngenerated[%d]: ", sig.size);
+ for (i = 0; i < sig.size; i++)
+ fprintf(stderr, "\\x%.2x", sig.data[i]);
+ fprintf(stderr, "\n");
#endif
- gnutls_assert();
- goto cleanup;
- }
+ gnutls_assert();
+ goto cleanup;
}
- /* Test if we can verify the signature */
+ /* Test if we can verify the generated signature */
ret = gnutls_pubkey_import_privkey(pub, key, 0, 0);
if (ret < 0) {
@@ -511,7 +561,7 @@ static int test_known_sig(gnutls_pk_algorithm_t pk, unsigned bits,
ret =
gnutls_pubkey_verify_data2(pub, gnutls_pk_to_sign(pk, dig), vflags,
- &signed_data, &ssig);
+ &signed_data, &sig);
if (ret < 0) {
ret = GNUTLS_E_SELF_TEST_ERROR;
gnutls_assert();
@@ -522,7 +572,7 @@ static int test_known_sig(gnutls_pk_algorithm_t pk, unsigned bits,
ret =
gnutls_pubkey_verify_data2(pub, gnutls_pk_to_sign(pk, dig), 0,
- &bad_data, &ssig);
+ &bad_data, &sig);
if (ret != GNUTLS_E_PK_SIG_VERIFY_FAILED) {
ret = GNUTLS_E_SELF_TEST_ERROR;
@@ -553,18 +603,14 @@ static int test_known_sig(gnutls_pk_algorithm_t pk, unsigned bits,
if (ret < 0) { \
gnutls_assert(); \
goto cleanup; \
- } \
- if (!(flags & GNUTLS_SELF_TEST_FLAG_ALL)) \
- return 0
+ }
-#define PK_KNOWN_TEST(pk, det, bits, dig, pkey, sig) \
- ret = test_known_sig(pk, bits, dig, pkey, sizeof(pkey)-1, sig, sizeof(sig)-1, det); \
+#define PK_KNOWN_TEST(pk, bits, dig, pkey, sig, flags) \
+ ret = test_known_sig(pk, bits, dig, pkey, sizeof(pkey)-1, sig, sizeof(sig)-1, flags); \
if (ret < 0) { \
gnutls_assert(); \
goto cleanup; \
- } \
- if (!(flags & GNUTLS_SELF_TEST_FLAG_ALL)) \
- return 0
+ }
/* Known answer tests for DH */
@@ -771,9 +817,18 @@ int gnutls_pk_self_test(unsigned flags, gnutls_pk_algorithm_t pk)
{
int ret;
+ bool is_post = false;
+ bool is_fips140_mode_enabled = false;
+
if (flags & GNUTLS_SELF_TEST_FLAG_ALL)
pk = GNUTLS_PK_UNKNOWN;
+ if (_gnutls_get_lib_state() == LIB_STATE_SELFTEST)
+ is_post = true;
+
+ if (gnutls_fips140_mode_enabled())
+ is_fips140_mode_enabled = true;
+
switch (pk) {
case GNUTLS_PK_UNKNOWN:
FALLTHROUGH;
@@ -788,26 +843,32 @@ int gnutls_pk_self_test(unsigned flags, gnutls_pk_algorithm_t pk)
return 0;
FALLTHROUGH;
case GNUTLS_PK_RSA:
- PK_KNOWN_TEST(GNUTLS_PK_RSA, 1, 2048, GNUTLS_DIG_SHA256,
- rsa_key2048, rsa_sig);
+ PK_KNOWN_TEST(GNUTLS_PK_RSA, 2048, GNUTLS_DIG_SHA256,
+ rsa_2048_privkey, rsa_2048_sig, 0);
+
PK_TEST(GNUTLS_PK_RSA, test_rsa_enc, 2048, 0);
- PK_TEST(GNUTLS_PK_RSA, test_sig, 3072, GNUTLS_SIGN_RSA_SHA256);
if (!(flags & GNUTLS_SELF_TEST_FLAG_ALL))
return 0;
FALLTHROUGH;
case GNUTLS_PK_RSA_PSS:
- PK_TEST(GNUTLS_PK_RSA_PSS, test_sig, 2048, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256);
+ PK_TEST(GNUTLS_PK_RSA_PSS, test_sig, 2048,
+ GNUTLS_SIGN_RSA_PSS_RSAE_SHA256);
if (!(flags & GNUTLS_SELF_TEST_FLAG_ALL))
return 0;
FALLTHROUGH;
case GNUTLS_PK_DSA:
- PK_KNOWN_TEST(GNUTLS_PK_DSA, 0, 2048, GNUTLS_DIG_SHA256,
- dsa_privkey, dsa_sig);
- PK_TEST(GNUTLS_PK_DSA, test_sig, 3072, GNUTLS_SIGN_DSA_SHA256);
+ if (is_post || !is_fips140_mode_enabled) {
+ PK_KNOWN_TEST(GNUTLS_PK_DSA, 2048, GNUTLS_DIG_SHA256,
+ dsa_2048_privkey, dsa_2048_sig,
+ GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE);
+ } else {
+ PK_TEST(GNUTLS_PK_DSA, test_sig, 2048,
+ GNUTLS_SIGN_DSA_SHA256);
+ }
if (!(flags & GNUTLS_SELF_TEST_FLAG_ALL))
return 0;
@@ -822,62 +883,72 @@ int gnutls_pk_self_test(unsigned flags, gnutls_pk_algorithm_t pk)
}
/* Test ECDSA */
- PK_KNOWN_TEST(GNUTLS_PK_EC, 0,
- GNUTLS_CURVE_TO_BITS
- (GNUTLS_ECC_CURVE_SECP256R1),
- GNUTLS_DIG_SHA256, ecdsa_secp256r1_privkey,
- ecdsa_secp256r1_sig);
- PK_TEST(GNUTLS_PK_EC, test_sig,
- GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP256R1),
- GNUTLS_SIGN_ECDSA_SHA256);
+ if (is_post || !is_fips140_mode_enabled) {
+ PK_KNOWN_TEST(GNUTLS_PK_EC,
+ GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP256R1),
+ GNUTLS_DIG_SHA256, ecdsa_secp256r1_privkey,
+ ecdsa_secp256r1_sig, GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE);
+ } else {
+ PK_TEST(GNUTLS_PK_EC, test_sig,
+ GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP256R1),
+ GNUTLS_SIGN_ECDSA_SHA256);
+ }
if (!(flags & GNUTLS_SELF_TEST_FLAG_ALL))
return 0;
- PK_KNOWN_TEST(GNUTLS_PK_EC, 0,
- GNUTLS_CURVE_TO_BITS
- (GNUTLS_ECC_CURVE_SECP384R1),
- GNUTLS_DIG_SHA256, ecdsa_secp384r1_privkey,
- ecdsa_secp384r1_sig);
- PK_TEST(GNUTLS_PK_EC, test_sig,
- GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP384R1),
- GNUTLS_SIGN_ECDSA_SHA384);
-
- PK_KNOWN_TEST(GNUTLS_PK_EC, 0,
- GNUTLS_CURVE_TO_BITS
- (GNUTLS_ECC_CURVE_SECP521R1),
- GNUTLS_DIG_SHA512, ecdsa_secp521r1_privkey,
- ecdsa_secp521r1_sig);
- PK_TEST(GNUTLS_PK_EC, test_sig,
- GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP521R1),
- GNUTLS_SIGN_ECDSA_SHA512);
+ if (is_post || !is_fips140_mode_enabled) {
+ PK_KNOWN_TEST(GNUTLS_PK_EC,
+ GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP384R1),
+ GNUTLS_DIG_SHA384, ecdsa_secp384r1_privkey,
+ ecdsa_secp384r1_sig, GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE);
+ } else {
+ PK_TEST(GNUTLS_PK_EC, test_sig,
+ GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP384R1),
+ GNUTLS_SIGN_ECDSA_SHA384);
+ }
+
+ if (is_post || !is_fips140_mode_enabled) {
+ PK_KNOWN_TEST(GNUTLS_PK_EC,
+ GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP521R1),
+ GNUTLS_DIG_SHA512, ecdsa_secp521r1_privkey,
+ ecdsa_secp521r1_sig, GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE);
+ } else {
+ PK_TEST(GNUTLS_PK_EC, test_sig,
+ GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP521R1),
+ GNUTLS_SIGN_ECDSA_SHA512);
+ }
#ifdef ENABLE_NON_SUITEB_CURVES
- PK_KNOWN_TEST(GNUTLS_PK_EC, 0,
- GNUTLS_CURVE_TO_BITS
- (GNUTLS_ECC_CURVE_SECP192R1),
- GNUTLS_DIG_SHA256, ecdsa_secp192r1_privkey,
- ecdsa_secp192r1_sig);
- PK_TEST(GNUTLS_PK_EC, test_sig,
- GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP192R1),
- GNUTLS_SIGN_ECDSA_SHA256);
-
- PK_KNOWN_TEST(GNUTLS_PK_EC, 0,
- GNUTLS_CURVE_TO_BITS
- (GNUTLS_ECC_CURVE_SECP224R1),
- GNUTLS_DIG_SHA256, ecdsa_secp224r1_privkey,
- ecdsa_secp224r1_sig);
- PK_TEST(GNUTLS_PK_EC, test_sig,
- GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP224R1),
- GNUTLS_SIGN_ECDSA_SHA256);
+ if (is_post || !is_fips140_mode_enabled) {
+ PK_KNOWN_TEST(GNUTLS_PK_EC,
+ GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP192R1),
+ GNUTLS_DIG_SHA256, ecdsa_secp192r1_privkey,
+ ecdsa_secp192r1_sig, GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE);
+ } else {
+ PK_TEST(GNUTLS_PK_EC, test_sig,
+ GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP192R1),
+ GNUTLS_SIGN_ECDSA_SHA256);
+ }
+
+ if (is_post || !is_fips140_mode_enabled) {
+ PK_KNOWN_TEST(GNUTLS_PK_EC,
+ GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP224R1),
+ GNUTLS_DIG_SHA256, ecdsa_secp224r1_privkey,
+ ecdsa_secp224r1_sig, GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE);
+ } else {
+ PK_TEST(GNUTLS_PK_EC, test_sig,
+ GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP224R1),
+ GNUTLS_SIGN_ECDSA_SHA256);
+ }
#endif
+
#if ENABLE_GOST
FALLTHROUGH;
case GNUTLS_PK_GOST_01:
- PK_KNOWN_TEST(GNUTLS_PK_GOST_01, 0, GNUTLS_ECC_CURVE_GOST256CPA, GNUTLS_DIG_GOSTR_94,
- gost01_privkey, gost01_sig);
- PK_TEST(GNUTLS_PK_GOST_01, test_sig, GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_GOST256CPA),
+ PK_TEST(GNUTLS_PK_GOST_01, test_sig,
+ GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_GOST256CPA),
GNUTLS_SIGN_GOST_94);
if (!(flags & GNUTLS_SELF_TEST_FLAG_ALL))
@@ -885,9 +956,8 @@ int gnutls_pk_self_test(unsigned flags, gnutls_pk_algorithm_t pk)
FALLTHROUGH;
case GNUTLS_PK_GOST_12_256:
- PK_KNOWN_TEST(GNUTLS_PK_GOST_12_256, 0, GNUTLS_ECC_CURVE_GOST256CPA, GNUTLS_DIG_STREEBOG_256,
- gost12_256_privkey, gost12_256_sig);
- PK_TEST(GNUTLS_PK_GOST_12_256, test_sig, GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_GOST256CPA),
+ PK_TEST(GNUTLS_PK_GOST_12_256, test_sig,
+ GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_GOST256CPA),
GNUTLS_SIGN_GOST_256);
if (!(flags & GNUTLS_SELF_TEST_FLAG_ALL))
@@ -895,15 +965,13 @@ int gnutls_pk_self_test(unsigned flags, gnutls_pk_algorithm_t pk)
FALLTHROUGH;
case GNUTLS_PK_GOST_12_512:
- PK_KNOWN_TEST(GNUTLS_PK_GOST_12_512, 0, GNUTLS_ECC_CURVE_GOST512A, GNUTLS_DIG_STREEBOG_512,
- gost12_512_privkey, gost12_512_sig);
- PK_TEST(GNUTLS_PK_GOST_12_512, test_sig, GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_GOST512A),
+ PK_TEST(GNUTLS_PK_GOST_12_512, test_sig,
+ GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_GOST512A),
GNUTLS_SIGN_GOST_512);
if (!(flags & GNUTLS_SELF_TEST_FLAG_ALL))
return 0;
#endif
-
break;
default:
return gnutls_assert_val(GNUTLS_E_NO_SELF_TEST);
diff --git a/lib/crypto-selftests.c b/lib/crypto-selftests.c
index 5f0a4ec8be..7a1c7729c8 100644
--- a/lib/crypto-selftests.c
+++ b/lib/crypto-selftests.c
@@ -73,6 +73,7 @@ struct cipher_aead_vectors_st {
const uint8_t *iv;
const uint8_t *tag;
unsigned tag_size;
+ unsigned tag_prepended;
};
const struct cipher_aead_vectors_st chacha_poly1305_vectors[] = {
@@ -140,6 +141,27 @@ const struct cipher_aead_vectors_st aes128_gcm_vectors[] = {
"\x5b\xc9\x4f\xbc\x32\x21\xa5\xdb\x94\xfa\xe9\x5a\xe7\x12\x1a\x47"}
};
+const struct cipher_aead_vectors_st aes192_gcm_vectors[] = {
+ {
+ .compat_apis = 1,
+ STR(key, key_size,
+ "\xfe\xff\xe9\x92\x86\x65\x73\x1c\x6d\x6a\x8f\x94\x67\x30\x83\x08\xfe\xff\xe9\x92\x86\x65\x73\x1c"),
+ .auth = NULL,
+ .auth_size = 0,
+ STR(plaintext, plaintext_size,
+ "\xd9\x31\x32\x25\xf8\x84\x06\xe5\xa5\x59\x09\xc5\xaf\xf5\x26\x9a\x86\xa7\xa9\x53\x15\x34\xf7\xda\x2e\x4c\x30\x3d\x8a\x31\x8a\x72\x1c\x3c\x0c\x95\x95\x68\x09\x53\x2f\xcf\x0e\x24\x49\xa6\xb5\x25\xb1\x6a\xed\xf5\xaa\x0d\xe6\x57\xba\x63\x7b\x39\x1a\xaf\xd2\x55"),
+ .ciphertext =
+ (uint8_t *)
+ "\x39\x80\xca\x0b\x3c\x00\xe8\x41\xeb\x06\xfa\xc4\x87\x2a\x27\x57\x85\x9e\x1c\xea\xa6\xef\xd9\x84\x62\x85\x93\xb4\x0c\xa1\xe1\x9c\x7d\x77\x3d\x00\xc1\x44\xc5\x25\xac\x61\x9d\x18\xc8\x4a\x3f\x47\x18\xe2\x44\x8b\x2f\xe3\x24\xd9\xcc\xda\x27\x10\xac\xad\xe2\x56",
+ STR(iv, iv_size,
+ "\xca\xfe\xba\xbe\xfa\xce\xdb\xad\xde\xca\xf8\x88"),
+ .tag_size = 16,
+ .tag =
+ (void *)
+ "\x99\x24\xa7\xc8\x58\x73\x36\xbf\xb1\x18\x02\x4d\xb8\x67\x4a\x14"},
+
+};
+
const struct cipher_aead_vectors_st aes256_gcm_vectors[] = {
{
.compat_apis = 1,
@@ -525,6 +547,687 @@ const struct cipher_vectors_st gost28147_tc26z_cnt_vectors[] = {
}
};
+/* Manually calculated to overcome section size differences between TLS cipher
+ * and test vectors defined in recommendation for standarization
+ * R 1323565.1.017-2018. TLS uses 1024 byte sections, we need more to have at
+ * least one rekeying. */
+const struct cipher_vectors_st magma_ctr_acpkm_vectors[] = {
+ {
+ STR(key, key_size,
+ "\x88\x99\xaa\xbb\xcc\xdd\xee\xff\x00\x11\x22\x33\x44\x55\x66\x77"
+ "\xfe\xdc\xba\x98\x76\x54\x32\x10\x01\x23\x45\x67\x89\xab\xcd\xef"),
+ STR(plaintext, plaintext_size,
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ ),
+ .ciphertext = (uint8_t *)
+ "\x2a\xb8\x1d\xee\xeb\x1e\x4c\xab\x68\xe1\x04\xc4\xbd\x6b\x94\xea"
+ "\xc0\x4d\xdb\x07\xea\x92\x8f\xa2\x22\x0d\x97\x91\x83\x20\x78\x6b"
+ "\x17\x0d\x8e\xaf\x6e\x3c\xa1\xab\xf2\x92\x93\x9a\xb1\x19\x54\xbb"
+ "\xd3\x3f\x07\x38\x54\x26\x56\xed\xe3\xed\x4d\x54\x42\xb3\x0d\x0d"
+ "\x43\xa1\x2e\xe8\xcf\x83\x81\x30\xe5\x90\xf3\x71\xe6\x7a\x42\xc3"
+ "\xf8\x75\x91\xeb\xb8\xf7\xea\x17\xb3\xc4\xec\x9f\xa0\xca\x54\xd5"
+ "\xbc\x42\x9b\x60\xd8\x90\xce\x61\xc1\xb4\x0d\x20\x52\x45\x0a\xfa"
+ "\x77\xb4\x83\x54\xb4\x43\x77\x11\x50\x8f\xdc\xf4\xc4\x8f\x24\x2b"
+ "\x84\xec\x97\xc9\xc1\x76\x3c\xf3\x17\x3c\x5a\xe8\x57\x86\x41\x22"
+ "\xb6\x5b\x57\x29\xae\x1b\xb0\x75\x06\x95\xe5\xe2\x37\x93\x3b\x5a"
+ "\xbe\x85\x5d\xb0\x16\x70\x5b\x53\x35\x57\x52\xdb\x87\x50\x89\x34"
+ "\xa3\xd2\x1e\xc3\x83\x03\xbd\xdc\xc1\x24\xc3\xc9\x9d\xd7\x1b\x45"
+ "\xfb\xcb\x4e\xd5\x64\x10\x5c\xe6\xc5\x93\x4d\xa9\x9b\xea\xed\xc5"
+ "\xf4\x02\x30\x13\xbc\x41\x97\x81\x05\xb0\xcc\x6a\x39\x83\xe9\x05"
+ "\x25\x11\x6e\x04\x63\x14\x6d\x85\x78\x9a\x09\xa7\x0d\x4c\x7b\xd7"
+ "\xdf\xb1\x33\xeb\xbf\xeb\x92\x58\xf3\xda\x9d\xed\x8e\xf9\x8a\x3c"
+ "\x71\x8d\x19\x67\x1a\x12\x49\xdf\x0e\xb1\x88\x3c\x9e\xf5\x1b\x77"
+ "\x13\x60\x80\x1a\x28\x46\xa0\x48\x31\xec\xc2\xcb\xe7\xe7\x72\xdb"
+ "\x92\x2a\x7b\x04\xd0\xa3\xd0\x17\x8c\xb2\x4d\xb3\xa2\x43\x16\x17"
+ "\x8d\xec\x78\xf0\xdd\xe5\x60\x07\x77\x49\x66\xad\xb3\x36\xdd\xe4"
+ "\xc9\xef\xf7\x6d\xe4\x00\xfc\x9c\x5b\x9d\x8a\x65\x58\xbb\xbd\x5c"
+ "\xfe\x18\xe6\x97\x83\xd1\xae\x20\xed\x12\xac\xe5\x29\x7f\x58\xab"
+ "\x83\xea\xd2\x92\xea\x17\x00\xaf\x2b\x55\x43\x7c\x5b\x17\xf2\x91"
+ "\x0e\x79\x0b\x95\xb4\xe0\x4a\xb0\x55\x62\xe5\x5d\xda\x55\x02\xd6"
+ "\xa1\xea\x99\x73\x16\x59\xb3\x3e\xc9\x86\x92\x1d\xb2\x1a\xf1\x4e"
+ "\x6b\x2e\xeb\x49\x7d\xf6\x35\xc0\x23\xae\xb5\x56\xff\x90\xe7\xc5"
+ "\xc5\x4c\xef\xea\x8f\x9e\xf1\xc2\xd0\x1c\xee\xef\xb7\xac\x0c\x0c"
+ "\x43\xdf\xcc\x8e\x95\xe2\xd3\xd5\x9f\x17\x81\x85\x66\x87\x7e\xdb"
+ "\x5e\x45\xde\xb2\x45\x95\x69\x90\x75\x80\xc1\x5e\x0c\x3d\xe8\xd9"
+ "\x9a\x17\xc5\x62\x49\x90\xa6\x54\x68\xc2\xfa\xb0\x96\xc9\xac\x42"
+ "\x9e\xa9\x6f\x33\x0c\x5b\xc2\xc5\x81\xc1\xc5\x5d\x91\x44\xb7\x48"
+ "\xd0\x32\xc6\x7d\x99\xa1\xad\x43\x6c\xba\xc5\xf5\x10\xbd\xf2\x44"
+ "\x75\x36\xe8\x7e\x91\x21\x8c\x16\xce\x74\xa4\xc2\x3d\x18\x28\x1a"
+ "\x82\x79\x04\x3e\x15\x73\x22\x30\x7a\x33\x7f\x76\x63\xbc\x9b\x0b"
+ "\xcb\x3c\xe2\x3d\x66\x22\x28\x20\x1c\xc3\x43\x12\x89\x2d\x05\x51"
+ "\x0b\x65\x2b\xf3\xca\x0f\x21\xd7\x57\xac\xa9\x4d\x4f\xd0\x03\x13"
+ "\x89\x94\xec\xad\x38\x9b\x95\xaf\xf8\x0a\xc5\xb0\x8b\xb3\x57\xcd"
+ "\xdd\xe7\xa3\xfe\x3e\x84\x35\xad\xe6\x87\x69\xd5\xb7\xc5\xf0\xde"
+ "\xcc\xc7\x81\x59\xd7\x52\x4b\xa1\x77\x8f\xec\x6a\x9d\xcd\x0d\x08"
+ "\xa7\xbf\x32\x6b\x5a\xa3\xc8\x4a\x0b\xde\x8c\xf8\x12\x86\xf1\x6b"
+ "\x78\x86\xaf\xf3\x49\x78\x81\x5b\x9d\x6b\xe9\xf7\x59\xe2\x36\xea"
+ "\xab\x40\x87\x1b\x0b\x2a\x70\x9b\x4c\x29\x3f\x3d\x5a\xfb\x09\x11"
+ "\x9a\x39\xfc\x41\x65\xac\x64\xbd\xfd\x8b\xf3\x09\x1b\x13\xde\x38"
+ "\x5b\x35\x0e\xce\x71\xab\x87\x99\x82\xd4\x26\x5c\x5d\x4d\x5b\xfe"
+ "\xe8\x33\x11\x37\xf8\x3b\x16\x93\x20\xbe\x47\x68\xd9\x19\x94\x17"
+ "\xdf\x56\xce\xbf\x82\x34\x75\x74\x7a\x39\xb3\xb5\xc3\x54\x86\x30"
+ "\x33\x7e\xbd\xe7\xd9\x24\x18\x8f\xbf\xc1\x69\x28\x75\x37\xb6\x90"
+ "\x2e\x4c\x71\x88\xcf\xfe\x90\xd6\xe5\x3d\xf3\xf2\x42\x8f\xee\x76"
+ "\x00\xb8\x84\x5f\xeb\xbc\x5d\x46\xcd\xa6\x13\xaf\x3b\x37\xae\xb4"
+ "\x82\xd5\x37\x88\x86\x94\x0f\xd8\x00\x0b\x97\x86\xa3\x91\x43\x8f"
+ "\x05\x40\x04\xdb\x7c\x17\x5e\xbf\xf0\x07\x29\x94\x34\x04\x6b\x1f"
+ "\x32\xa0\xa3\x30\x1a\xc8\x72\xde\xd7\x42\xfe\xb8\xe2\x2e\x6c\xe9"
+ "\x71\x3e\xe5\x9a\x6c\x83\xc1\x75\xc2\x04\xfb\x8d\x45\x4a\x52\x7a"
+ "\xac\xca\x87\x7a\xf3\x88\x42\x42\xfb\x40\x71\x67\xc0\xa7\xcc\x10"
+ "\x30\x32\xc2\x7e\x3d\x93\x40\xb6\xb2\x53\xcd\xe4\x23\x4b\x5a\x99"
+ "\x20\xfe\xe9\xef\xce\x82\xb0\x0f\x4e\x21\xa6\xc0\xad\x6a\x7b\x08"
+ "\xb9\x33\x6b\xc2\x35\x5e\x0d\x6e\xd5\x9d\x65\xef\x70\x5d\xc7\x02"
+ "\xa8\x4e\x5e\x80\xb1\x9c\xa8\x50\xfd\x25\x44\x0d\xe6\x78\x8c\xd9"
+ "\x18\x01\x43\xd0\xee\x9f\xa7\x68\xd9\x37\xf3\x5e\xcb\xf6\x08\x92"
+ "\x75\x02\x65\xee\xcf\xed\xdc\xe5\x3f\x6d\x9f\x84\x75\x39\x93\x27"
+ "\xff\xc5\x97\x37\x6e\xc7\x60\x9c\x1d\x39\x4d\xbc\x27\xa2\xe5\x85"
+ "\x05\xa4\x3d\x28\xce\x42\x51\x81\xd5\xcb\xbd\x83\x11\x13\x05\x93"
+ "\x4f\x70\xb3\x97\xa9\xfa\x14\x95\x77\xc5\x1e\x40\xd0\x4d\x77\xef"
+ "\xa8\x53\xfc\x26\x30\xd4\xfe\xda\xd0\x74\x58\x38\x21\xc0\xbb\x21"
+
+ "\xd9\x6a\xf3\xcc\x57\x01\xcb\xbb\x01\x9a\x99\xe6\x4e\xaf\xf2\x32",
+ STR(iv, iv_size,
+ "\x12\x34\x56\x78\x00\x00\x00\x00"),
+ }
+};
+
+/* Manually calculated to overcome section size differences between TLS cipher
+ * and test vectors defined in recommendation for standarization
+ * R 1323565.1.017-2018. TLS uses 4096 byte sections, we need more to have at
+ * least one rekeying. */
+const struct cipher_vectors_st kuznyechik_ctr_acpkm_vectors[] = {
+ {
+ STR(key, key_size,
+ "\x88\x99\xaa\xbb\xcc\xdd\xee\xff\x00\x11\x22\x33\x44\x55\x66\x77"
+ "\xfe\xdc\xba\x98\x76\x54\x32\x10\x01\x23\x45\x67\x89\xab\xcd\xef"),
+ STR(plaintext, plaintext_size,
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
+
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ ),
+ .ciphertext = (uint8_t *)
+ "\xf1\x95\xd8\xbe\xc1\x0e\xd1\xdb\xd5\x7b\x5f\xa2\x40\xbd\xa1\xb8"
+ "\x85\xee\xe7\x33\xf6\xa1\x3e\x5d\xf3\x3c\xe4\xb3\x3c\x45\xde\xe4"
+ "\xa5\xea\xe8\x8b\xe6\x35\x6e\xd3\xd5\xe8\x77\xf1\x35\x64\xa3\xa5"
+ "\xcb\x91\xfa\xb1\xf2\x0c\xba\xb6\xd1\xc6\xd1\x58\x20\xbd\xba\x73"
+ "\x7e\x08\xf5\x9f\x71\xb8\x56\x08\xe3\x89\x55\xb1\x7b\x53\xed\x27"
+ "\xee\x04\xce\x2c\x02\xae\xf0\x75\x8f\x5d\x64\x77\xea\x0a\x79\xb2"
+ "\x9f\xc0\xb0\x9a\xf0\x93\xd5\xbf\xb9\xdf\xab\x18\x25\xf7\x51\xc9"
+ "\x82\x69\x88\x08\x00\x2b\x35\x8e\x2c\x2f\x7c\x01\xdc\x31\x56\x1d"
+ "\x52\xb4\xca\x07\xbf\x02\xa5\x9a\x80\x88\x91\x19\xf1\x26\x0b\x7f"
+ "\x9d\x3e\x1c\xe5\xf9\x92\x1a\xf5\xb5\x53\xed\x1e\x1a\xdf\xdc\x53"
+ "\x9e\x2e\x79\x65\xbd\x7b\x48\x48\x57\x58\x90\x76\x40\x57\x86\x76"
+ "\x7d\xe3\xb2\x82\x06\xed\xeb\xce\x35\x1b\xcc\x5c\xee\x54\xe4\x3f"
+ "\x53\x4b\xb5\x0d\x07\x0a\x2d\x0c\xb7\xcf\x7c\xf8\x81\xad\x32\x01"
+ "\x26\x50\x0f\xe9\x32\xf3\xd7\xc9\xf0\x86\xab\xb8\xf8\xea\x72\x3a"
+ "\x9a\x17\x48\x12\xa5\xbb\x3b\xa9\x6d\x01\x51\x82\xc0\xe2\x98\x4d"
+ "\x69\x3c\xbd\x67\x6a\xa0\xb1\x7d\x7a\xa8\x2c\xb8\xe2\xb9\xf6\x68"
+ "\xfa\xeb\xae\x0d\x41\xcb\xb0\xfe\xe5\x55\x65\xb6\x5d\x56\xe5\x05"
+ "\x20\x08\x51\x77\x7c\x18\x3a\x25\x69\xaa\xa2\x39\x68\xcf\xd1\x3e"
+ "\x51\x47\xb5\xd8\x13\xcc\xaf\x2d\x31\xd5\x28\xae\x61\x48\xe6\x9a"
+ "\x0a\xd8\x30\x0b\x1f\x7c\xef\x3d\x32\xa5\x40\x05\x41\xdf\x84\x1e"
+ "\xce\xde\xca\x31\x42\xa6\xc4\xbc\x2b\x56\xb7\x7e\xa6\x22\x1f\x85"
+ "\x7b\xe8\x80\x01\xc1\xff\x78\x45\x14\xb5\x4d\x9b\xe3\x21\xf7\xb8"
+ "\x13\xd5\x44\x3d\x6f\x33\x85\x46\x56\x07\x79\x15\xb4\xec\xe5\xfd"
+ "\x34\x35\xc8\x8a\x5f\x4d\x58\x84\x82\x9d\xb6\x4d\x0e\x90\x65\xb0"
+ "\x5e\x61\x83\x30\x3d\x51\x34\xe3\x0e\x6e\x78\x05\xc8\x6d\x1e\x7d"
+ "\x76\xe2\x3d\x85\x33\x82\x42\x7c\x7d\x67\x33\xbb\x60\x5e\x4d\xb0"
+ "\xc8\xd0\x7a\x6c\xbe\x4e\xc8\xc4\x82\x9d\xb6\x25\x56\xc9\x1b\x52"
+ "\x3b\x9b\x4a\xf5\x8f\x67\x12\xd5\x41\x60\xe6\x97\x08\x90\x7b\x17"
+ "\x3b\xf9\x1c\x82\x0d\x15\x0a\x3d\x1b\x27\xd4\x46\xd6\x91\x5c\x74"
+ "\x48\x45\x1a\x4c\x60\x26\xf3\xe3\x1f\xe7\x0a\xfc\x79\x42\x8a\x5f"
+ "\x5f\x5b\x33\xf4\xb3\xda\xbd\x4c\x4a\x10\x5e\x3b\x9d\x09\xf8\xf2"
+ "\x51\x25\x44\x37\x7b\xca\x88\xf0\x88\xa9\x5d\x2e\x9e\x42\xf6\xac"
+ "\x3d\xd6\x01\x06\x06\x5c\x96\x4b\x13\xf5\x5f\xaa\x06\x34\x16\x67"
+ "\xfd\xa5\x49\x12\xcc\x21\x8f\xb4\xb9\x33\xfc\x58\xf0\x36\xeb\xd7"
+ "\x50\xf2\x38\x39\x9e\x93\x7b\xf7\xf5\xc7\x9c\x73\x36\x1f\xbe\xa9"
+ "\x49\xf9\x2c\x4f\x17\xfc\xb3\x64\x51\x68\xaf\xed\xe3\x43\xbf\x2f"
+ "\x3f\x57\xbb\x74\x93\x51\xc4\x93\x1e\x2e\x05\xed\xda\x74\x27\x1b"
+ "\x7b\xa8\x98\x3e\xa6\x62\x75\xbd\x68\xab\x44\xe8\xe4\x2d\x2f\x08"
+ "\x44\x64\x85\xa6\x42\xfe\xdb\x11\xb5\xbc\x1a\x83\xc4\x58\x7a\xd1"
+ "\x0d\x64\xa2\xdb\xd5\x4c\x3a\xd7\x2a\xd8\xc7\x0b\xf5\x33\x80\xe2"
+ "\xaa\xc6\xaf\xad\xee\x39\x83\x1c\xfb\xda\x39\xd6\xe4\xbe\x6f\xde"
+ "\x46\xd1\xdc\xc8\x77\x3b\x42\x3a\x19\x83\xdb\x79\x5e\x9d\xd9\xef"
+ "\xe7\x54\x9e\xfa\xde\x56\x26\x0e\x33\x44\xb6\xac\xc7\x25\x1f\x0b"
+ "\xd0\x12\x4a\x75\x6f\xef\x9f\xb7\xe7\xf1\xc3\xb2\x77\xa7\x01\xc1"
+ "\x24\xf2\x60\xf2\x04\xa4\x07\x47\x25\x81\x2a\x51\x36\x1d\xb3\x42"
+ "\x3c\xc5\x12\xbb\x53\x89\xc3\x00\xb4\xe8\x0e\xd8\xed\x5d\x9c\x18"
+ "\x08\x16\x05\x57\x22\x99\xc1\xcb\x97\x4d\x7d\x42\xb0\xbf\xf3\x35"
+ "\x9e\xc9\xc0\x4e\xe6\x42\xec\x49\x06\x5e\x50\x7f\x6c\x86\x20\x9e"
+ "\xe0\x49\x6a\x1d\x50\x45\x52\x3d\x66\xdc\x66\xb2\xa1\x57\xbb\x1d"
+ "\x65\x30\xf9\x3e\x6c\x8b\xf8\x07\x5e\xf9\xb0\xcf\x15\x1f\xa4\x22"
+ "\xe6\x28\xdf\x40\x44\x27\x80\x99\xbf\xcc\x86\x94\x3d\xe1\x97\xbc"
+ "\x64\x7b\xc9\x8a\xc8\xb7\xdd\x8e\xd9\x95\xfa\x97\x44\x59\x70\xb6"
+ "\xa4\x59\xdd\x94\x2a\x4e\x71\x76\xe1\xf8\xff\x2e\xef\xf7\xf3\x26"
+ "\x0d\xeb\x63\x9b\x34\x74\xcf\xc7\xe4\x99\xb3\x8b\xe5\xf8\xfa\xf8"
+ "\x60\x6a\x8f\x16\xfe\xb3\x12\xe8\x66\x5c\x26\x61\x11\xaa\x14\x85"
+ "\x5e\x4c\x0f\xf8\x47\x99\x49\x4c\x22\xa5\x37\xb7\x4b\xed\x1d\x33"
+ "\x54\xe4\x6f\xfe\x4b\x7e\x95\x44\x56\xa9\xa9\x48\x6f\x40\x08\x42"
+ "\x28\xa0\xd6\x8e\x52\x72\x84\x87\xd5\xcc\x08\xf4\x34\x9b\xc7\xf7"
+ "\x92\xac\x5d\x5a\x30\x4c\x87\xc2\x2c\x94\x68\x10\x03\x02\x8c\x38"
+ "\x6e\xf6\xca\xd1\xd6\x55\x02\x3c\x3a\xf4\x21\x1c\x90\x03\x7c\x33"
+ "\xcd\x81\x93\x3f\x4c\xa1\xe6\x7c\x7d\x27\xaf\x97\x7a\xd8\xb0\x32"
+ "\xcb\x1f\xb6\x5d\xb0\x7c\x9e\xf7\x15\x6a\x29\xc9\xb3\x13\x8e\xb2"
+ "\x2e\xf2\x9d\xb2\x64\xe9\xc7\x13\x86\xc3\x46\x97\x9e\x53\x37\xac"
+ "\xd1\x75\x0b\xe2\x20\x4a\x5e\x3a\x47\xdf\xb3\x67\x78\x23\x22\xa6"
+ "\xb6\x69\x83\x1b\x41\xe1\xdc\xe3\xbb\x63\x8e\x6a\x70\xe2\x91\x30"
+ "\xa2\x48\x43\x07\x9b\xf1\x87\x9d\xd9\x2f\x36\x62\xaf\x51\x70\x10"
+ "\x5d\x68\x42\x6e\x95\xe6\x86\x85\x90\x08\x80\x42\xc6\x11\x7d\x38"
+ "\x37\x94\xc7\x7a\x9d\xec\xff\x87\x15\x0d\x30\x42\x7d\xbf\xb0\x21"
+ "\xa8\x28\xc3\xa9\x56\x31\xda\x2e\x91\x8d\x0d\x78\x93\xe2\x4d\x7f"
+ "\xb3\xdb\x87\x5b\xf2\x2a\x55\x54\xc4\x1a\x47\x9b\x51\x79\x2c\x55"
+ "\xaa\xaf\x57\x89\x90\x32\x26\xfa\xcf\x26\x3d\xbd\xc3\x59\x7e\x4b"
+ "\x53\x7a\xa3\xf8\xec\x31\x3e\x9f\x22\x33\x41\xec\xe5\xf1\x50\x41"
+ "\x57\x64\x37\x0e\x24\x0f\x03\x0c\x93\xaf\xd7\x44\xef\x33\xf9\x96"
+ "\x8e\x63\x9c\x79\x09\xdf\x58\xdb\xcd\xd2\xf2\x81\xed\x97\x28\x5e"
+ "\x6d\x99\x45\xad\xf1\xa4\xe8\x59\xaa\xeb\x59\xbd\xfa\x54\x27\xe2"
+ "\x01\x6d\xfa\x08\xe5\x1a\x46\x92\x31\xa0\xfd\x2e\x25\x21\x5e\x9d"
+ "\x1d\x41\x82\x16\x21\xea\xe8\x29\x5a\xe7\xd4\xd8\x7c\x91\x6d\xa8"
+ "\x69\xa8\x6b\xac\xf9\x3d\x2c\x07\xfa\xaf\x65\x5e\x84\x63\x5c\x1c"
+ "\xb6\x71\x1c\x6e\x1a\x1a\xcf\x5f\x39\x08\x02\xeb\xde\x75\x28\x44"
+ "\x90\x3b\x6d\x09\xf5\xa4\x3a\x00\x99\xc1\x6e\xb8\x23\x47\xb6\xe6"
+ "\x44\x69\x24\x86\x0d\x93\x7d\xc2\x1a\xe7\xf8\x97\x97\x6d\x2f\x7d"
+ "\x6a\x3e\xd7\x6d\x94\xbe\x9b\xfa\x7d\x40\xff\x35\x7e\x2d\x9c\x50"
+ "\x71\xf8\x99\x5f\xf3\x53\x16\x59\x77\x72\x4b\xef\x8d\x21\x8c\x28"
+ "\x15\x8a\x57\x6d\x3d\x35\xf4\x2c\x37\x39\x0e\x97\x8f\xd3\x45\x17"
+ "\xac\x0b\xa2\xaa\x16\xe7\x98\x70\xbd\x91\x4b\x7b\xc9\x14\x5b\x85"
+ "\x29\xe5\xd9\x20\xa6\xf3\x89\x63\xc8\x01\x94\x2c\x20\xb0\xf1\x1c"
+ "\x61\x90\x5b\xe8\xaf\xdb\xe2\x20\x62\x4f\xd0\x3c\x51\x1f\x5f\x14"
+ "\x28\x13\x07\x5e\xbc\x4a\xa0\x46\xa7\x9c\xc7\x00\x24\xb4\x67\x0d"
+ "\x9c\xe8\x05\xa7\xe3\x37\x94\xd3\x97\xc5\xd6\x1d\xb3\x79\x0c\x7f"
+ "\xf0\xeb\x68\xa7\xa9\x75\x30\x3c\xf1\xf8\xfb\x96\x4b\xa5\x99\xb1"
+ "\xf0\x71\xab\xb4\x8a\xa6\x5d\x97\xb5\x6f\x42\x81\xef\x38\x0e\x41"
+ "\x21\xcd\x15\xe4\xf1\xdc\x02\xc2\xe5\xe4\xb2\xf2\xdb\xc5\x42\x0f"
+ "\xeb\x00\xb8\x49\x48\x90\x97\x59\x69\x8c\x3d\x90\xfa\x7f\xaf\x75"
+ "\xff\xe8\x0f\xff\x13\x2f\x7a\xca\x33\xbc\xb0\x41\x7b\xd4\x94\xce"
+ "\xd5\xd7\x53\xe5\x36\x9d\xea\x0c\x13\x60\x63\xd9\x79\x83\x53\x03"
+ "\x3c\x5f\x33\x6b\x16\xd2\xd6\x07\xbd\xbc\xa9\xcd\xd6\x21\x58\x8a"
+ "\x90\xac\x85\x7c\x0a\x85\xf1\x02\xfd\x6c\x5b\xac\x92\xa5\x6f\xfc"
+ "\x02\x60\xb3\x05\x91\x31\x80\xd5\x75\x82\xa8\xab\xcc\x7b\x47\xdb"
+ "\x79\xaf\x85\xea\x75\x2d\xf4\x46\x45\xa6\x24\x35\x2d\xba\x9e\x19"
+ "\x4e\x48\xb3\x5f\x40\x96\x6c\x73\x44\x09\x67\x27\xee\xdb\xdb\xca"
+ "\xf6\x14\x3f\x32\xdf\x3b\xd3\xcb\x87\x48\x6b\x03\xda\xfe\xb5\x20"
+ "\xf8\x72\xd0\xe4\x65\xfd\x14\x5d\x9b\xd3\xc5\x67\x4b\x41\xf4\xcb"
+ "\xac\xe4\xce\x61\xe0\x06\x8e\xb6\xca\xef\xa5\xe4\x70\xd4\xff\x4f"
+ "\x4c\x81\xb7\xc7\xc1\xe3\x1d\x6b\xfe\x44\x37\xfe\x7e\xb4\xec\xda"
+ "\x55\xbc\x26\xdd\x44\x08\x28\x49\x19\xc9\x52\x20\x4a\x5e\xe1\xae"
+ "\x6b\x87\x35\xa2\x9a\x02\x17\xb0\x74\xe1\x19\x92\xca\x5d\x34\x81"
+ "\xd7\x3f\xb1\x14\xe2\x44\x97\x7f\xab\x0a\xc3\x44\x8d\x9c\xe6\x27"
+ "\x84\x5e\x2e\xe1\x0e\x7b\x74\xee\x47\xe2\x6f\x79\x3a\x0d\x25\x90"
+ "\x9b\x32\x13\x78\xd3\xd1\x19\x10\xb7\x88\xc4\xb4\xb8\x0f\x84\x0c"
+ "\xc4\x6d\xb3\xbc\xbc\xea\x1d\x84\xfe\x6f\x95\x1e\x44\x78\xbb\x73"
+ "\xd0\x08\x8b\xbe\xae\x91\x6f\x84\xeb\x6c\x05\x58\x3a\xb7\x68\xee"
+ "\x62\x14\x0b\xba\xd3\xd6\x78\x23\x35\x03\x2f\xed\xac\xf2\x35\xa7"
+ "\x0b\xf5\x37\xa1\xa5\x4d\x57\x0e\x2e\x5e\x0d\x0c\xd6\x04\xc8\x07"
+ "\x60\xe6\xda\xd9\x55\x16\xf6\xc6\x0c\x53\xc0\x46\xa8\x91\xa6\xdd"
+ "\x22\x99\x88\x9f\x23\x93\x64\x81\xdb\x4b\xe8\x99\x1e\x16\x5c\xb5"
+ "\x08\xc0\x74\xf9\x79\xd3\xc1\x6a\xe5\x38\x6b\xcd\xf0\xcb\x1e\xb8"
+ "\x5c\x6b\x14\xd6\x85\x58\xa3\xc8\x3d\x5b\x14\x50\xc4\x70\x97\xb2"
+ "\xcd\x93\xd6\x3a\x42\x2f\x3a\x88\x28\x8a\xd0\xa7\xe9\x98\x87\xbe"
+ "\x66\x89\x69\xd9\xbd\x11\x91\xd3\x9b\xc4\x22\x14\xe6\x8f\xc8\xbd"
+ "\x95\x5d\x3d\xd2\x1d\x10\xbd\x61\x69\x87\xf9\x4a\x9c\x61\x5b\x80"
+ "\x9b\x3f\x32\xce\x17\xcd\x98\x79\xb9\xeb\x45\xf7\x54\x3c\xc9\xa6"
+ "\x2e\xb4\x0b\x0d\x84\x0d\x35\xcc\x64\x5f\x5a\x92\xf8\xcb\xd6\xfa"
+ "\xae\xd9\xce\x9c\x41\x83\xc2\xab\xd5\x73\x21\xea\x95\xd5\x73\x2f"
+ "\xf1\xd0\x71\x95\x45\x07\x7c\x1f\xcc\xba\xf3\xb0\x75\xfa\x1a\xd4"
+ "\x89\x66\x4e\x93\x93\x80\xb7\x67\xd5\xdf\x99\xd8\x43\x6d\xf6\xde"
+ "\x19\xc8\x13\x56\xf8\x63\xe5\xf2\x53\xfd\x2e\x62\x8d\xde\x92\xd4"
+ "\x98\xfc\x1c\x36\x08\x3d\x33\x0f\xee\xbc\xb8\x2f\x49\xa2\xb3\xb4"
+ "\x9b\x0c\x7e\x16\xd4\xe8\xc0\x98\xd0\x5c\xda\x25\xaa\xe4\x60\x95"
+ "\xe6\xc5\x7b\x62\xa5\xe9\xbc\xa1\x5e\x11\x4f\x5d\xb4\x19\x29\x33"
+ "\x6f\xff\xf4\xef\x7f\x62\x2b\xf2\xbd\x47\x90\xcb\xba\xbc\xe8\xa8"
+ "\xd7\xcf\xac\x44\x05\x67\xf3\xd3\x93\x22\xc0\x48\x23\xdf\xef\x54"
+ "\x3d\x64\xc7\x13\xfd\x4f\x0a\x21\x20\x2b\xad\x34\x88\x02\x69\x84"
+ "\xaf\x8a\xfb\xbb\x97\x7d\xca\x0e\x80\xdc\x8a\x50\x51\x49\xc8\x1f"
+ "\xbd\x35\x46\x11\xf6\xdf\x52\x29\xc2\x52\xc4\xae\xd5\x16\xbb\x67"
+ "\x21\x7b\x25\xeb\xc4\x21\x0d\xc7\x3f\x1b\xae\x42\xc2\x21\x58\x1e"
+ "\x32\x46\x0d\x72\x15\x89\x75\xaa\xd9\x0b\x2d\xa7\x25\x3a\x2a\x3d"
+ "\xc6\x46\xd1\xa3\x9d\xed\x52\xd8\xbb\x53\xb9\x1f\x6d\xfc\x63\xb7"
+ "\x28\xa1\x78\x78\x18\x43\xa2\x3d\x6f\xcd\x6a\x40\x6a\xc2\x44\x88"
+ "\x59\x03\xdd\xd3\x47\x8d\x3d\xe2\x24\xc2\x11\x00\xb1\x2e\xc7\x24"
+ "\x81\x4b\xc0\x9c\x90\x64\xb7\x8b\xfb\x3a\xdc\x69\xe1\x4c\xf4\xc4"
+ "\xc7\x78\x5a\xca\xf8\x6f\x16\xa0\xb8\xe3\xb0\x66\x94\xab\x7a\x86"
+ "\x5c\xa8\xb9\x7f\xf7\x6a\x64\x1d\x8f\x03\xcf\x4b\x4b\xb0\xd8\xc2"
+ "\xc2\xea\x02\x5a\xaa\x14\x19\x8f\x60\x49\x5b\xf4\x05\xc8\x98\x30"
+ "\xeb\xbc\x00\x12\xa4\xc0\x27\x5f\x38\x91\x89\x73\xfa\xb7\xc1\x3a"
+ "\xf4\x7c\x18\xe4\xe7\x7f\x8c\x82\x51\xb0\x64\x2b\x9d\xa3\x98\x47"
+ "\x67\xe4\x0f\x1f\x30\x8e\x78\x0a\x3e\xc4\xa8\xc4\x1c\x79\x0a\x09"
+ "\x91\xbd\xa1\x6a\xab\x47\xce\x54\x24\xda\x4b\xa6\x7b\x40\x43\x92"
+ "\xd5\x43\xbb\x50\x53\x54\x1d\xf0\x0c\x87\x01\xc0\x82\x0a\xf0\xd8"
+ "\x7d\xd7\x22\xfc\x33\x59\xf7\x54\x87\x5c\x45\xc8\x2d\x92\x6d\x3a"
+ "\xfc\x90\x03\xa9\x23\xa8\xa3\xa5\x00\x3d\x3f\x7d\x9f\x6c\x7a\xba"
+ "\xdd\xff\xfd\x09\x04\x9b\x82\xea\x9f\x0e\x05\x92\xed\x08\x24\x1d"
+ "\x00\xfa\xac\x61\xf0\xe7\xc7\x37\x7e\x0d\x73\x38\x3e\x7a\x63\xcb"
+ "\x4e\x26\x21\xd6\x50\x12\xe4\x95\x1e\xc7\xd0\xed\xcb\xf9\xbf\x1d"
+ "\x34\x81\x81\xa4\x0e\xeb\xf6\xe8\xc5\x1e\x98\xca\x79\xad\x15\x3c"
+ "\xdc\xf5\xe3\xa9\xfe\xe9\x4c\x6a\xc5\x79\x55\x89\x18\xf2\xd1\x86"
+ "\x4e\xd6\x95\x38\xf8\x78\x0b\xfc\x50\x40\x72\xd4\x3c\x45\xdf\xaa"
+ "\x13\x1e\x9e\x74\xff\xde\xa9\x33\x5e\xa8\xa1\x70\x75\xd7\x7c\x4f"
+ "\x71\xf1\x03\xb3\xfb\x0f\xad\x19\x4f\x5d\xfe\xbb\xc5\x98\x81\x11"
+ "\xee\x24\x24\x13\xa4\xa4\xfe\x40\x4b\x20\x38\x61\x6e\xe3\xec\x05"
+ "\x15\x46\x35\x2d\xd4\x61\x7d\x0f\x4a\x34\xf1\x23\x87\x5e\xc6\x8e"
+ "\xf5\x77\x8c\x03\x4b\x58\xe2\x3b\x35\x08\x2f\x40\x60\xd6\xe3\x3a"
+ "\xf0\xb4\xdd\xb9\x18\xfc\x7d\x79\x7a\xf3\x0a\x5c\x89\x2e\xcc\x30"
+ "\x9b\x8f\x7e\x3c\xd3\x1d\x45\xcb\xfb\xb5\x09\xe8\x6e\xd4\x87\xb0"
+ "\xc5\x5c\x0e\x70\xec\xd9\x04\xb2\xc1\x44\x9b\x78\x4f\x46\x92\x4b"
+ "\x18\x0b\x90\xaa\xe3\xf9\x11\x8d\xf8\x9e\x5e\xc6\x2e\xfb\x9f\xba"
+ "\x31\x49\x9e\x9d\xb7\xb8\x5c\x0b\x09\xcf\x45\xb0\x82\x9d\x6a\xd7"
+ "\xeb\x1d\x79\x6f\x26\x1a\xec\x5d\x16\xb1\xa8\xc5\x90\x00\x9a\x79"
+ "\x51\x9b\xab\x79\x09\xa1\x7f\x65\x74\xa0\xf8\x54\xfd\xf3\x74\x52"
+ "\x80\x09\x25\x33\xa4\xd5\x22\xba\x79\xc0\x77\xe0\x56\xfb\x19\xa9"
+ "\x8f\x23\x16\x29\xa9\x39\x54\x10\x0d\x85\xb9\x20\xd3\x27\xa2\x7d"
+ "\xe4\x81\x9e\x0a\x4a\xc4\xf6\xef\xc7\x0b\xb8\x6a\x50\xa9\xed\x72"
+ "\xb4\x79\x01\xf3\xc3\x89\x5d\x19\x5e\x9a\xf1\x35\x14\xcc\x04\x4c"
+ "\x2d\xe5\x0f\xd8\x07\xee\x50\xee\x3f\xaf\x74\x86\xcd\xc5\xf8\x34"
+ "\x0f\xeb\x32\x7f\x36\xcc\x03\xa8\xbc\xde\xd9\xf8\xfc\x01\x73\x83"
+ "\x74\x4a\x26\xdc\x70\x1a\x76\x71\x5a\xee\xac\x0b\xe0\xdb\x16\xd4"
+ "\x26\x7c\xfb\xb8\x96\x74\x00\x7d\xb8\x5c\x4a\x07\xfc\x9e\xc9\xff"
+ "\x4a\xd0\xaf\x86\x4b\xb0\xc6\x29\x8e\x3f\x2e\x9f\xa0\x33\xd3\xdf"
+ "\xb9\xe0\xd5\x48\xb9\xf0\x08\x7e\xae\xdd\xd0\x2e\xf5\x41\xd8\xa3"
+ "\x9a\xff\x76\x93\x04\x7a\xef\xd2\xf5\xb8\x05\xa1\x55\x8e\xe8\x03"
+ "\x9f\x6e\xd9\xc4\x75\xd0\xfe\x75\xd1\x77\x3f\x22\xbe\x2e\xc7\x27"
+ "\x10\x4e\x2c\xab\x2f\x38\x53\xcb\xe7\x27\x9d\xff\xd8\x86\xb7\xca"
+ "\xc1\x7e\xeb\x23\xd8\x8f\x5e\x85\xa3\x2a\xa3\xe6\xc8\x8f\x71\x30"
+ "\x98\x91\x1d\x11\x8d\x76\xdf\x42\xe8\x72\x6b\x41\x3a\x70\x46\x26"
+ "\x78\x16\xc8\x6a\x21\x66\x81\xdc\xec\xac\x3e\x5d\x8a\x9a\x01\x03"
+ "\xee\xee\x0a\x34\x1a\xad\xdc\xc9\x4f\x3d\x22\x3b\x48\x67\x43\x7d"
+ "\x7e\x53\x08\x91\x26\xbf\x7d\x60\x4a\xf4\xfb\x21\xcf\x74\xc9\xc6"
+ "\x47\x9b\x39\x58\x61\xde\x5d\x3c\xbe\x60\x2e\x2b\x6c\x08\x42\x3e"
+ "\xe3\x03\x76\x6d\xa8\xac\xba\x11\xb2\xce\x0f\xdb\x95\x6a\x33\xf4"
+ "\x00\xc9\x66\x13\xd4\x5f\xab\xe7\x1b\x17\x62\xa1\xe6\x4a\x82\x67"
+ "\x28\xa3\x7b\xf7\x4b\xfc\x57\xcb\x16\x3e\xfe\xb5\xa4\xef\x3b\x35"
+ "\xdd\x14\xd5\x48\x41\x5e\xa5\x62\xcc\x18\xba\x97\x6c\x75\xe9\x39"
+ "\x63\xd4\x9d\xce\x2d\x9d\x4c\xc3\x82\xb1\x31\x69\x91\x90\x3e\x6d"
+ "\x66\xc7\xea\xd3\x88\x02\xd3\x39\x10\x22\x04\x1a\xbf\xc5\x0d\x02"
+ "\xb8\x7c\x9a\x86\xc5\x04\x87\xef\xaf\x75\xe5\xc7\xe6\x21\xba\xa1"
+ "\xbd\x9c\x14\x90\xc3\x99\x80\xbb\x61\xe3\xe2\xc1\x79\xf0\xc6\x46"
+ "\x4f\x38\x86\x35\x93\x1a\x55\xd8\x76\x0f\x7c\xa2\xae\x3b\x6a\xa8"
+ "\xe4\x74\x74\xc2\x50\x38\xcf\xc5\xda\x85\xee\xe0\x2f\x23\x1a\x83"
+ "\x17\x54\xa7\x34\xa0\x1f\xd7\xd3\xb2\x53\xe3\x77\xfe\x8e\x97\x49"
+ "\xc5\x5b\xe0\x5f\xcb\x2c\x90\xe9\x09\x83\x40\x89\x81\x51\xf6\x40"
+ "\x64\x2c\x89\xca\xcf\x61\xda\x04\x0d\xaf\x3b\x48\xf9\x8a\xfa\x74"
+ "\x6a\x6a\xe5\x29\x5e\x3a\x6b\xee\xb5\x5e\xa3\x0c\x78\xf1\xe0\xcb"
+ "\x74\x69\x2c\x7b\xf6\x73\xc1\x53\x20\x8c\x15\x54\x03\x5d\x96\xe3"
+ "\x6a\x8d\x19\x5d\xec\x5a\xd4\xe3\x6b\x1a\x72\x27\x73\x73\xbb\x2e"
+ "\x7c\x4e\xbb\x63\x26\xdb\x9d\x9c\xde\x67\xd8\x50\x7c\x85\x1a\xff"
+ "\xf0\xd0\x12\x4d\x3e\x69\xb1\x2d\x2a\xd1\x28\x4a\xc9\x82\x1e\xd5"
+ "\xfc\xa3\x64\x0b\x2f\xcc\x4c\xef\x17\xa6\xe5\x0b\xd5\x76\xb4\x33"
+ "\xff\x3b\x3d\xc3\xb0\x28\xf7\x38\xf5\x7a\x76\x2c\x84\xf7\xcc\x4f"
+ "\x3a\xdf\x68\xab\xbc\x6b\x24\xac\x84\x8a\x09\x5e\x0d\x89\x9d\x85"
+ "\x98\xf5\x61\x60\x38\xb0\xdd\x86\xe1\xb5\x42\xa0\x6c\x25\x77\x28"
+ "\x8f\xf1\x21\xb3\xa8\xed\x8c\xfd\x18\xcf\x23\xae\x2a\x9f\x1c\x67"
+ "\xc3\x17\x48\x73\x3b\x6e\xbf\x02\x88\xed\x4d\xa2\x86\x07\x6a\x5d"
+ "\x16\x55\x3b\x87\x29\x88\xd0\x8d\xe3\x30\x3b\x89\x22\x5c\xa2\xb6"
+ "\xbb\xcf\xda\xd8\x1f\xe4\x7f\xa5\x50\xb9\x8b\xc2\x61\x73\x86\x61"
+ "\x92\x44\x1b\xc2\x9d\x34\x72\x81\x30\xca\x22\x83\x78\xe0\xa5\xb5"
+ "\x39\xba\xa3\x46\x7a\x4c\xd9\x2b\x5e\xaf\x42\xdf\xba\x80\x4a\x83"
+ "\x9c\x20\xe0\x86\x90\x88\x4e\xbf\x7b\xa6\x44\x3d\x7f\x9c\xbe\xc8"
+ "\xdf\x74\xe8\x2c\xf7\x4b\xc0\x06\x3f\x9e\x23\x30\xe8\x31\xc6\x07"
+ "\x5b\xc9\x26\xf1\x1c\xc8\xbe\xe3\xc7\xcb\x4f\x1b\x37\x09\xf0\xcf"
+ "\x0c\x5e\x1d\xac\x1c\xb8\x91\xcf\x0a\x54\x09\x6c\xa9\x4e\x9f\xa1"
+ "\x36\xde\x41\xa8\x67\xe4\x4c\x65\xc9\x28\x20\x0f\xbd\x49\x74\x7f"
+ "\x83\x26\x48\xb1\xe6\xca\x6f\xd8\x88\x27\x94\xdd\xa4\xaa\x03\x43"
+ "\xc6\x19\xab\x8b\x83\x78\x4f\x2a\x51\x34\x98\xff\x27\x6b\xda\x39"
+ "\xe4\x2e\xf6\xe9\xe7\xd6\x96\x86\x60\x3b\xc3\x80\xb8\xba\x51\x77"
+ "\x8a\x79\x07\x62\xb1\xaa\xa9\x58\x96\x54\x84\x04\x9e\xee\x24\x8d"
+ "\xf1\xac\x34\x03\x43\x8e\xd0\x92\xdc\x4d\xbc\xc7\x15\xdc\x82\xfc"
+ "\x19\x9b\x7e\x43\xe1\x36\xc5\x6b\xfb\xb8\x9e\xf4\x22\x5e\x29\x6f"
+ "\x4c\x45\xdd\xfe\xcb\x17\x77\xee\xd3\x6b\x80\x50\x96\xd0\x07\xa3"
+ "\xb2\xf0\x68\xc7\x40\xeb\x24\x16\x23\xa7\x57\xc4\xbb\x9c\x69\x16"
+ "\x49\x30\xb8\xd9\x4d\x41\x4e\x22\xc6\x24\x7f\x44\x59\x4e\x3c\x46"
+ "\x61\x64\x60\xc5\x82\xc2\x60\xc5\x63\xe7\xb3\xe1\xb9\xd1\x71\x65"
+ "\x32\xaa\x88\xa1\x4e\x98\xdb\x0b\x29\xe8\x5a\xa4\xbc\x61\x20\x62"
+ "\xbc\xea\xb0\x90\x3c\x2f\x29\xef\x74\x87\x4b\x1b\x36\xf7\x01\xde"
+ "\x30\xf0\x00\xe3\xd7\x2d\xf6\x52\x09\xe1\xe5\x84\x13\x04\xfe\x1f"
+ "\x2c\x1c\xeb\xfb\x2c\x40\x7d\x4d\xf5\x9c\x6e\x47\xe9\x2d\xb0\xca"
+ "\x88\x37\xf4\x8d\xbe\x50\xfb\xec\x5e\xee\x5d\x0f\x1a\x71\x42\xe3"
+ "\xc0\x9c\x57\xe3\x50\xba\x98\x0d\x79\xfa\x56\xe9\x7a\x09\x03\x75"
+ "\x21\x0f\x97\x69\xe0\xed\x9d\x10\x8f\x64\xdd\xd5\x10\xdc\x3b\x21"
+ "\x08\xc2\x7e\x7e\xac\x6e\x7c\x0b\xb9\x71\x65\x3e\xfa\x1c\xf3\x13"
+ "\xdc\x03\x9c\xf2\xa4\x21\xf1\xfc\x07\xaa\xef\xa0\x55\xd7\x21\xfc"
+ "\x0c\x17\x6a\x06\x57\x6b\x0e\x8e\x1d\xea\xb2\xc8\x23\xb3\xad\x42"
+ "\x00\x41\xe2\x9c\x1f\x2e\xa8\x51\x19\x3d\xdb\x24\x73\x4a\x8f\x08"
+ "\x74\xb5\x6b\x58\x48\x7a\x4e\x7b\xa6\x5c\x4b\x81\xd6\x38\xf9\xe5"
+ "\x66\xe3\x15\x9a\x74\x49\x68\x8e\x5b\x1e\xdd\x3f\x4f\xc8\xe3\x0c"
+ "\x73\x32\xf0\x35\x16\x8c\xd9\x84\xc3\x9a\x65\x16\x93\x65\x0f\x47"
+ "\x15\x97\xc8\xb4\x6a\x7f\x91\x0a\x05\xf2\x08\x36\xf0\x7e\x2c\xcb"
+ "\x79\xc4\xc4\xcb\x5a\xa0\x25\xc9\xe9\xac\x35\x8f\x56\xf6\x87\x4e"
+ "\x9b\x4b\x9d\x1a\x38\xb0\x43\x41\x94\x07\x17\x78\xec\xd3\x8c\x89"
+ "\x58\x09\xef\x07\xe1\xd8\x65\x97\x3e\xce\x61\xad\x51\x0a\x48\x3d"
+ "\x64\xd5\x6e\xa1\xe5\x86\x06\xb7\x22\xcd\x03\x44\xec\x94\x52\x15"
+ "\x5d\xf6\x9b\xc6\xb6\x22\x49\x5e\xb1\xdb\x01\x24\xd2\xc2\xac\x13"
+ "\xdc\xec\xb3\x93\x4c\x88\x3b\x11\x6d\x77\xab\x44\x67\x8c\xca\xa8"
+ "\x18\x47\xe3\xdc\x58\x13\x45\x43\xb3\x7f\xdf\x3a\xdf\xef\x0e\x4f"
+ "\xc0\xf3\x95\xb6\x7d\xdf\x97\xd7\x0d\x03\x9d\x14\x76\xd6\xae\x5f"
+ "\xb4\x13\x7f\x2a\xdb\x00\xa2\xe7\xfd\x33\xa6\x4d\x3f\xc1\x14\x58"
+ "\x7c\x55\x30\x6a\xae\x71\x0f\x73\xe3\x64\x1f\xc5\x2e\x6f\x82\x82"
+ "\x62\xd2\x02\xde\xf8\x29\x1e\xd5\x71\x3a\xbe\xcd\x43\xf8\x71\x5e"
+ "\xa1\xce\x68\xca\xcb\x23\xfa\x83\xba\xc2\x0f\x9b\x6b\x86\x5d\x9f",
+ STR(iv, iv_size,
+ "\x12\x34\x56\x78\x90\xab\xce\xf0\x00\x00\x00\x00\x00\x00\x00\x00"),
+ }
+};
+
const struct cipher_vectors_st aes128_xts_vectors[] = {
{
STR(key, key_size,
@@ -570,6 +1273,73 @@ const struct cipher_vectors_st aes256_xts_vectors[] = {
},
};
+const struct cipher_aead_vectors_st aes128_siv_vectors[] = {
+ {
+ STR(key, key_size,
+ "\x7f\x7e\x7d\x7c\x7b\x7a\x79\x78\x77\x76\x75\x74\x73\x72\x71\x70"
+ "\x40\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"),
+ STR(auth, auth_size,
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"
+ "\xde\xad\xda\xda\xde\xad\xda\xda\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x77\x66\x55\x44\x33\x22\x11\x00"),
+ STR(plaintext, plaintext_size,
+ "\x74\x68\x69\x73\x20\x69\x73\x20\x73\x6f\x6d\x65\x20\x70\x6c\x61"
+ "\x69\x6e\x74\x65\x78\x74\x20\x74\x6f\x20\x65\x6e\x63\x72\x79\x70"
+ "\x74\x20\x75\x73\x69\x6e\x67\x20\x53\x49\x56\x2d\x41\x45\x53"),
+ .ciphertext = (uint8_t *)
+ "\xa4\xff\xb8\x7f\xdb\xa9\x7c\x89\x44\xa6\x23\x25\xf1\x33\xb4\xe0"
+ "\x1c\xa5\x52\x76\xe2\x26\x1c\x1a\x1d\x1d\x42\x48\xd1\xda\x30\xba"
+ "\x52\xb9\xc8\xd7\x95\x5d\x65\xc8\xd2\xce\x6e\xb7\xe3\x67\xd0",
+ STR(iv, iv_size,
+ "\x02\x03\x04"),
+ .tag_size = 16,
+ .tag = (void *)
+ "\xf1\xdb\xa3\x3d\xe5\xb3\x36\x9e\x88\x3f\x67\xb6\xfc\x82\x3c\xee",
+ .tag_prepended = 1,
+ }
+};
+
+const struct cipher_aead_vectors_st aes256_siv_vectors[] = {
+ {
+ STR(key, key_size,
+ "\xc2\x7d\xf2\xfd\xae\xc3\x5d\x4a\x2a\x41\x2a\x50\xc3\xe8\xc4\x7d"
+ "\x2d\x56\x8e\x91\xa3\x8e\x54\x14\x8a\xbd\xc0\xb6\xe8\x6c\xaf\x87"
+ "\x69\x5c\x0a\x8a\xdf\x4c\x5f\x8e\xb2\xc6\xc8\xb1\x36\x52\x98\x64"
+ "\xf3\xb8\x4b\x3a\xe8\xe3\x67\x6c\xe7\x60\xc4\x61\xf3\xa1\x3e\x83"),
+ STR(auth, auth_size,
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff"
+ "\xde\xad\xda\xda\xde\xad\xda\xda\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x77\x66\x55\x44\x33\x22\x11\x00"),
+ STR(plaintext, plaintext_size,
+ "\x74\x68\x69\x73\x20\x69\x73\x20\x73\x6f\x6d\x65\x20\x70\x6c\x61"
+ "\x69\x6e\x74\x65\x78\x74\x20\x74\x6f\x20\x65\x6e\x63\x72\x79\x70"
+ "\x74\x20\x75\x73\x69\x6e\x67\x20\x53\x49\x56\x2d\x41\x45\x53"),
+ .ciphertext = (uint8_t *)
+ "\x50\x93\x3d\xa8\x04\x7b\xc3\x06\xfa\xba\xf0\xc3\xd9\xfa\x84\x71"
+ "\xc7\x0a\x7d\xef\x39\xa2\xf9\x1d\x68\xa2\x02\x1c\x99\xac\x7e\x2a\x24"
+ "\x53\x5a\x13\x4b\xa2\x3e\xc1\x57\x87\xce\xbe\x5c\x53\xcc",
+ STR(iv, iv_size,
+ "\x09\xf9\x11\x02\x9d\x74\xe3\x5b\xd8\x41\x56\xc5\x63\x56\x88\xc0"),
+ .tag_size = 16,
+ .tag = (void *)
+ "\x5a\x97\x9b\x0d\xa5\x8f\xde\x80\x51\x62\x1a\xe6\xbf\x96\xfe\xda",
+ .tag_prepended = 1,
+ }
+};
+
+const struct cipher_vectors_st chacha20_32_vectors[] = { /* RFC8439 */
+ {
+ STR(key, key_size,
+ "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"),
+ STR(plaintext, plaintext_size,
+ "\x4c\x61\x64\x69\x65\x73\x20\x61\x6e\x64\x20\x47\x65\x6e\x74\x6c\x65\x6d\x65\x6e\x20\x6f\x66\x20\x74\x68\x65\x20\x63\x6c\x61\x73\x73\x20\x6f\x66\x20\x27\x39\x39\x3a\x20\x49\x66\x20\x49\x20\x63\x6f\x75\x6c\x64\x20\x6f\x66\x66\x65\x72\x20\x79\x6f\x75\x20\x6f\x6e\x6c\x79\x20\x6f\x6e\x65\x20\x74\x69\x70\x20\x66\x6f\x72\x20\x74\x68\x65\x20\x66\x75\x74\x75\x72\x65\x2c\x20\x73\x75\x6e\x73\x63\x72\x65\x65\x6e\x20\x77\x6f\x75\x6c\x64\x20\x62\x65\x20\x69\x74\x2e"),
+ .ciphertext = (uint8_t *)
+ "\x6e\x2e\x35\x9a\x25\x68\xf9\x80\x41\xba\x07\x28\xdd\x0d\x69\x81\xe9\x7e\x7a\xec\x1d\x43\x60\xc2\x0a\x27\xaf\xcc\xfd\x9f\xae\x0b\xf9\x1b\x65\xc5\x52\x47\x33\xab\x8f\x59\x3d\xab\xcd\x62\xb3\x57\x16\x39\xd6\x24\xe6\x51\x52\xab\x8f\x53\x0c\x35\x9f\x08\x61\xd8\x07\xca\x0d\xbf\x50\x0d\x6a\x61\x56\xa3\x8e\x08\x8a\x22\xb6\x5e\x52\xbc\x51\x4d\x16\xcc\xf8\x06\x81\x8c\xe9\x1a\xb7\x79\x37\x36\x5a\xf9\x0b\xbf\x74\xa3\x5b\xe6\xb4\x0b\x8e\xed\xf2\x78\x5e\x42\x87\x4d",
+ STR(iv, iv_size,
+ "\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00")
+ },
+};
+
static int test_cipher(gnutls_cipher_algorithm_t cipher,
const struct cipher_vectors_st *vectors,
size_t vectors_size, unsigned flags)
@@ -577,7 +1347,7 @@ static int test_cipher(gnutls_cipher_algorithm_t cipher,
gnutls_cipher_hd_t hd;
int ret;
unsigned int i;
- uint8_t tmp[384];
+ uint8_t tmp[4096 + 16];
gnutls_datum_t key, iv = {NULL, 0};
for (i = 0; i < vectors_size; i++) {
@@ -618,6 +1388,9 @@ static int test_cipher(gnutls_cipher_algorithm_t cipher,
/* check in-place encryption */
if (cipher != GNUTLS_CIPHER_ARCFOUR_128) { /* arcfour is stream */
+ if (cipher == GNUTLS_CIPHER_MAGMA_CTR_ACPKM ||
+ cipher == GNUTLS_CIPHER_KUZNYECHIK_CTR_ACPKM)
+ _gnutls_cipher_set_key(hd, (void*)vectors[i].key, vectors[i].key_size);
gnutls_cipher_set_iv(hd, (void*)vectors[i].iv, vectors[i].iv_size);
memcpy(tmp, vectors[i].plaintext, vectors[i].plaintext_size);
@@ -685,6 +1458,9 @@ static int test_cipher(gnutls_cipher_algorithm_t cipher,
/* check in-place decryption */
if (cipher != GNUTLS_CIPHER_ARCFOUR_128) { /* arcfour is stream */
+ if (cipher == GNUTLS_CIPHER_MAGMA_CTR_ACPKM ||
+ cipher == GNUTLS_CIPHER_KUZNYECHIK_CTR_ACPKM)
+ _gnutls_cipher_set_key(hd, (void*)vectors[i].key, vectors[i].key_size);
gnutls_cipher_set_iv(hd, (void*)vectors[i].iv, vectors[i].iv_size);
memcpy(tmp, vectors[i].ciphertext, vectors[i].plaintext_size);
@@ -989,6 +1765,8 @@ static int test_cipher_aead_scatter(gnutls_cipher_algorithm_t cipher,
int auth_iov_len;
int iov_len;
giovec_t iov[IOV_PARTS];
+ const uint8_t *tag;
+ uint8_t *ciphertext;
_gnutls_debug_log("running scatter (iovec) tests for: %s\n",
gnutls_cipher_get_name(cipher));
@@ -1042,16 +1820,26 @@ static int test_cipher_aead_scatter(gnutls_cipher_algorithm_t cipher,
(GNUTLS_E_SELF_TEST_ERROR);
}
- if (memcmp(tmp+vectors[i].plaintext_size, vectors[i].tag, tag_size) != 0) {
+ if (vectors[i].tag_prepended)
+ tag = tmp;
+ else
+ tag = tmp+vectors[i].plaintext_size;
+
+ if (memcmp(tag, vectors[i].tag, tag_size) != 0) {
_gnutls_debug_log
("%s test vector %d failed (tag)!\n",
gnutls_cipher_get_name(cipher), i);
return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
}
+ if (vectors[i].tag_prepended)
+ ciphertext = tmp+vectors[i].tag_size;
+ else
+ ciphertext = tmp;
+
if (vectors[i].plaintext_size > 0) {
if (memcmp
- (tmp, vectors[i].ciphertext,
+ (ciphertext, vectors[i].ciphertext,
vectors[i].plaintext_size) != 0) {
_gnutls_debug_log
("%s test vector %d failed!\n",
@@ -1121,16 +1909,26 @@ static int test_cipher_aead_scatter(gnutls_cipher_algorithm_t cipher,
(GNUTLS_E_SELF_TEST_ERROR);
}
- if (memcmp(tmp+vectors[i].plaintext_size, vectors[i].tag, tag_size) != 0) {
+ if (vectors[i].tag_prepended)
+ tag = tmp;
+ else
+ tag = tmp+vectors[i].plaintext_size;
+
+ if (memcmp(tag, vectors[i].tag, tag_size) != 0) {
_gnutls_debug_log
("%s test vector %d failed (tag)!\n",
gnutls_cipher_get_name(cipher), i);
return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
}
+ if (vectors[i].tag_prepended)
+ ciphertext = tmp+vectors[i].tag_size;
+ else
+ ciphertext = tmp;
+
if (vectors[i].plaintext_size > 0) {
if (memcmp
- (tmp, vectors[i].ciphertext,
+ (ciphertext, vectors[i].ciphertext,
vectors[i].plaintext_size) != 0) {
_gnutls_debug_log
("%s test vector %d failed!\n",
@@ -1169,7 +1967,9 @@ static int test_cipher_aead(gnutls_cipher_algorithm_t cipher,
uint8_t tmp2[384];
gnutls_datum_t key, iv;
size_t s, s2;
+ const uint8_t *tag;
unsigned tag_size;
+ uint8_t *ciphertext;
_gnutls_debug_log("running tests for: %s\n",
gnutls_cipher_get_name(cipher));
@@ -1218,16 +2018,26 @@ static int test_cipher_aead(gnutls_cipher_algorithm_t cipher,
(GNUTLS_E_SELF_TEST_ERROR);
}
- if (memcmp(tmp+vectors[i].plaintext_size, vectors[i].tag, tag_size) != 0) {
+ if (vectors[i].tag_prepended)
+ tag = tmp;
+ else
+ tag = tmp+vectors[i].plaintext_size;
+
+ if (memcmp(tag, vectors[i].tag, tag_size) != 0) {
_gnutls_debug_log
("%s test vector %d failed (tag)!\n",
gnutls_cipher_get_name(cipher), i);
return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
}
+ if (vectors[i].tag_prepended)
+ ciphertext = tmp+vectors[i].tag_size;
+ else
+ ciphertext = tmp;
+
if (vectors[i].plaintext_size > 0) {
if (memcmp
- (tmp, vectors[i].ciphertext,
+ (ciphertext, vectors[i].ciphertext,
vectors[i].plaintext_size) != 0) {
_gnutls_debug_log
("%s test vector %d failed!\n",
@@ -1262,7 +2072,7 @@ static int test_cipher_aead(gnutls_cipher_algorithm_t cipher,
/* test tag verification */
if (s > 0) {
- tmp[0]++;
+ (*ciphertext)++;
s2 = sizeof(tmp2);
ret =
@@ -1730,6 +2540,38 @@ const struct mac_vectors_st gost28147_tc26z_imit_vectors[] = {
},
};
+/* GOST R 34.13-2015 */
+const struct mac_vectors_st magma_omac_vectors[] = {
+ {
+ STR(key, key_size,
+ "\xff\xee\xdd\xcc\xbb\xaa\x99\x88\x77\x66\x55\x44\x33\x22\x11\x00"
+ "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"),
+ STR(plaintext, plaintext_size,
+ "\x92\xde\xf0\x6b\x3c\x13\x0a\x59"
+ "\xdb\x54\xc7\x04\xf8\x18\x9d\x20"
+ "\x4a\x98\xfb\x2e\x67\xa8\x02\x4c"
+ "\x89\x12\x40\x9b\x17\xb5\x7e\x41"),
+ STR(output, output_size,
+ "\x15\x4e\x72\x10\x20\x30\xc5\xbb"),
+ },
+};
+
+/* GOST R 34.13-2015 */
+const struct mac_vectors_st kuznyechik_omac_vectors[] = {
+ {
+ STR(key, key_size,
+ "\x88\x99\xaa\xbb\xcc\xdd\xee\xff\x00\x11\x22\x33\x44\x55\x66\x77"
+ "\xfe\xdc\xba\x98\x76\x54\x32\x10\x01\x23\x45\x67\x89\xab\xcd\xef"),
+ STR(plaintext, plaintext_size,
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"),
+ STR(output, output_size,
+ "\x33\x6f\x4d\x29\x60\x59\xfb\xe3\x4d\xde\xb3\x5b\x37\x74\x9c\x67"),
+ },
+};
+
static int test_mac(gnutls_mac_algorithm_t mac,
const struct mac_vectors_st *vectors,
size_t vectors_size, unsigned flags)
@@ -1837,13 +2679,6 @@ static int test_mac(gnutls_mac_algorithm_t mac,
return ret; \
}
-#define FIPS_STARTUP_ONLY_TEST_CASE(x, func, vectors) case x: \
- if (_gnutls_fips_mode_enabled() != 1) { \
- ret = func(x, V(vectors), flags); \
- if (!(flags & GNUTLS_SELF_TEST_FLAG_ALL) || ret < 0) \
- return ret; \
- }
-
/*-
* gnutls_cipher_self_test:
* @flags: GNUTLS_SELF_TEST_FLAG flags
@@ -1889,6 +2724,9 @@ int gnutls_cipher_self_test(unsigned flags, gnutls_cipher_algorithm_t cipher)
CASE(GNUTLS_CIPHER_AES_128_GCM, test_cipher_aead,
aes128_gcm_vectors);
FALLTHROUGH;
+ CASE(GNUTLS_CIPHER_AES_192_GCM, test_cipher_aead,
+ aes192_gcm_vectors);
+ FALLTHROUGH;
CASE(GNUTLS_CIPHER_AES_256_GCM, test_cipher_aead,
aes256_gcm_vectors);
FALLTHROUGH;
@@ -1912,6 +2750,19 @@ int gnutls_cipher_self_test(unsigned flags, gnutls_cipher_algorithm_t cipher)
FALLTHROUGH;
CASE(GNUTLS_CIPHER_AES_256_XTS, test_cipher,
aes256_xts_vectors);
+ FALLTHROUGH;
+ NON_FIPS_CASE(GNUTLS_CIPHER_AES_128_SIV, test_cipher_aead,
+ aes128_siv_vectors);
+ FALLTHROUGH;
+ NON_FIPS_CASE(GNUTLS_CIPHER_AES_256_SIV, test_cipher_aead,
+ aes256_siv_vectors);
+ FALLTHROUGH;
+ NON_FIPS_CASE(GNUTLS_CIPHER_CHACHA20_32, test_cipher,
+ chacha20_32_vectors);
+ FALLTHROUGH;
+ /* The same test vector for _32 variant should work */
+ NON_FIPS_CASE(GNUTLS_CIPHER_CHACHA20_64, test_cipher,
+ chacha20_32_vectors);
#if ENABLE_GOST
FALLTHROUGH;
NON_FIPS_CASE(GNUTLS_CIPHER_GOST28147_CPA_CFB, test_cipher,
@@ -1931,6 +2782,12 @@ int gnutls_cipher_self_test(unsigned flags, gnutls_cipher_algorithm_t cipher)
FALLTHROUGH;
NON_FIPS_CASE(GNUTLS_CIPHER_GOST28147_TC26Z_CNT, test_cipher,
gost28147_tc26z_cnt_vectors);
+ FALLTHROUGH;
+ NON_FIPS_CASE(GNUTLS_CIPHER_MAGMA_CTR_ACPKM, test_cipher,
+ magma_ctr_acpkm_vectors);
+ FALLTHROUGH;
+ NON_FIPS_CASE(GNUTLS_CIPHER_KUZNYECHIK_CTR_ACPKM, test_cipher,
+ kuznyechik_ctr_acpkm_vectors);
#endif
break;
default:
@@ -1960,7 +2817,7 @@ int gnutls_mac_self_test(unsigned flags, gnutls_mac_algorithm_t mac)
switch (mac) {
case GNUTLS_MAC_UNKNOWN:
- FIPS_STARTUP_ONLY_TEST_CASE(GNUTLS_MAC_MD5, test_mac, hmac_md5_vectors);
+ NON_FIPS_CASE(GNUTLS_MAC_MD5, test_mac, hmac_md5_vectors);
FALLTHROUGH;
CASE(GNUTLS_MAC_SHA1, test_mac, hmac_sha1_vectors);
FALLTHROUGH;
@@ -1980,6 +2837,10 @@ int gnutls_mac_self_test(unsigned flags, gnutls_mac_algorithm_t mac)
NON_FIPS_CASE(GNUTLS_MAC_STREEBOG_256, test_mac, hmac_streebog_256_vectors);
FALLTHROUGH;
NON_FIPS_CASE(GNUTLS_MAC_GOST28147_TC26Z_IMIT, test_mac, gost28147_tc26z_imit_vectors);
+ FALLTHROUGH;
+ NON_FIPS_CASE(GNUTLS_MAC_MAGMA_OMAC, test_mac, magma_omac_vectors);
+ FALLTHROUGH;
+ NON_FIPS_CASE(GNUTLS_MAC_KUZNYECHIK_OMAC, test_mac, kuznyechik_omac_vectors);
#endif
FALLTHROUGH;
CASE(GNUTLS_MAC_AES_CMAC_128, test_mac, aes_cmac_128_vectors);
@@ -2020,7 +2881,7 @@ int gnutls_digest_self_test(unsigned flags, gnutls_digest_algorithm_t digest)
switch (digest) {
case GNUTLS_DIG_UNKNOWN:
- FIPS_STARTUP_ONLY_TEST_CASE(GNUTLS_DIG_MD5, test_digest, md5_vectors);
+ NON_FIPS_CASE(GNUTLS_DIG_MD5, test_digest, md5_vectors);
FALLTHROUGH;
CASE(GNUTLS_DIG_SHA1, test_digest, sha1_vectors);
FALLTHROUGH;
diff --git a/lib/datum.h b/lib/datum.h
index 3d86a0dc72..35b9e3b97c 100644
--- a/lib/datum.h
+++ b/lib/datum.h
@@ -28,13 +28,13 @@
/* This will copy the provided data in @dat. If the provided data are
* NULL or zero-size @dat will be NULL as well.
*/
-attr_warn_unused_result attr_nonnull((1))
+NODISCARD ATTRIBUTE_NONNULL((1))
int _gnutls_set_datum(gnutls_datum_t * dat, const void *data,
size_t data_size);
/* This will always return a non-NULL, and zero-terminated string in @dat.
*/
-attr_warn_unused_result attr_nonnull((1))
+NODISCARD ATTRIBUTE_NONNULL((1))
int _gnutls_set_strdatum(gnutls_datum_t * dat, const void *data,
size_t data_size);
@@ -48,7 +48,7 @@ void _gnutls_free_datum(gnutls_datum_t * dat)
}
}
-inline static attr_nonnull_all
+inline static ATTRIBUTE_NONNULL()
void _gnutls_free_temp_key_datum(gnutls_datum_t * dat)
{
if (dat->data != NULL) {
@@ -59,7 +59,7 @@ void _gnutls_free_temp_key_datum(gnutls_datum_t * dat)
dat->size = 0;
}
-inline static attr_nonnull_all
+inline static ATTRIBUTE_NONNULL()
void _gnutls_free_key_datum(gnutls_datum_t * dat)
{
if (dat->data != NULL) {
diff --git a/lib/ext/pre_shared_key.c b/lib/ext/pre_shared_key.c
index d344922910..fef67d341c 100644
--- a/lib/ext/pre_shared_key.c
+++ b/lib/ext/pre_shared_key.c
@@ -203,9 +203,11 @@ generate_early_secrets(gnutls_session_t session,
if (ret < 0)
return gnutls_assert_val(ret);
- _gnutls_nss_keylog_write(session, "CLIENT_EARLY_TRAFFIC_SECRET",
- session->key.proto.tls13.e_ckey,
- prf->output_size);
+ ret = _gnutls_call_keylog_func(session, "CLIENT_EARLY_TRAFFIC_SECRET",
+ session->key.proto.tls13.e_ckey,
+ prf->output_size);
+ if (ret < 0)
+ return gnutls_assert_val(ret);
ret = _tls13_derive_secret2(prf, EARLY_EXPORTER_MASTER_LABEL, sizeof(EARLY_EXPORTER_MASTER_LABEL)-1,
session->internals.handshake_hash_buffer.data,
@@ -215,9 +217,11 @@ generate_early_secrets(gnutls_session_t session,
if (ret < 0)
return gnutls_assert_val(ret);
- _gnutls_nss_keylog_write(session, "EARLY_EXPORTER_SECRET",
- session->key.proto.tls13.ap_expkey,
- prf->output_size);
+ ret = _gnutls_call_keylog_func(session, "EARLY_EXPORTER_SECRET",
+ session->key.proto.tls13.ap_expkey,
+ prf->output_size);
+ if (ret < 0)
+ return gnutls_assert_val(ret);
return 0;
}
@@ -390,8 +394,7 @@ client_send_params(gnutls_session_t session,
info = _gnutls_get_auth_info(session, GNUTLS_CRD_PSK);
assert(info != NULL);
- memcpy(info->username, username.data, username.size);
- info->username[username.size] = 0;
+ _gnutls_copy_psk_username(info, &username);
if ((ret = _gnutls_buffer_append_data_prefix(extdata, 16,
username.data,
@@ -605,17 +608,11 @@ static int server_recv_params(gnutls_session_t session,
} else if (pskcred &&
psk.ob_ticket_age == 0 &&
psk.identity.size > 0 && psk.identity.size <= MAX_USERNAME_SIZE) {
- /* _gnutls_psk_pwd_find_entry() expects 0-terminated identities */
- char identity_str[MAX_USERNAME_SIZE + 1];
-
prf = pskcred->binder_algo;
- memcpy(identity_str, psk.identity.data, psk.identity.size);
- identity_str[psk.identity.size] = 0;
-
/* this fails only on configuration errors; as such we always
* return its error code in that case */
- ret = _gnutls_psk_pwd_find_entry(session, identity_str, &key);
+ ret = _gnutls_psk_pwd_find_entry(session, (char *) psk.identity.data, psk.identity.size, &key);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -680,8 +677,7 @@ static int server_recv_params(gnutls_session_t session,
info = _gnutls_get_auth_info(session, GNUTLS_CRD_PSK);
assert(info != NULL);
- memcpy(info->username, psk.identity.data, psk.identity.size);
- info->username[psk.identity.size] = 0;
+ _gnutls_copy_psk_username(info, &psk.identity);
_gnutls_handshake_log("EXT[%p]: selected PSK identity: %s (%d)\n", session, info->username, psk_index);
} else {
if (session->internals.hsk_flags & HSK_EARLY_DATA_ACCEPTED) {
diff --git a/lib/ext/session_ticket.c b/lib/ext/session_ticket.c
index c854d9c2a9..8d4595821a 100644
--- a/lib/ext/session_ticket.c
+++ b/lib/ext/session_ticket.c
@@ -787,15 +787,17 @@ int _gnutls_recv_new_session_ticket(gnutls_session_t session)
ret = GNUTLS_E_MEMORY_ERROR;
goto error;
}
- priv->session_ticket =
- gnutls_realloc_fast(priv->session_ticket, ticket_len);
- if (!priv->session_ticket) {
- gnutls_free(priv);
- gnutls_assert();
- ret = GNUTLS_E_MEMORY_ERROR;
- goto error;
+ if (ticket_len > 0) {
+ priv->session_ticket =
+ gnutls_realloc_fast(priv->session_ticket, ticket_len);
+ if (!priv->session_ticket) {
+ gnutls_free(priv);
+ gnutls_assert();
+ ret = GNUTLS_E_MEMORY_ERROR;
+ goto error;
+ }
+ memcpy(priv->session_ticket, p, ticket_len);
}
- memcpy(priv->session_ticket, p, ticket_len);
priv->session_ticket_len = ticket_len;
epriv = priv;
diff --git a/lib/file.c b/lib/file.c
index cec1281bd1..3ded84913b 100644
--- a/lib/file.c
+++ b/lib/file.c
@@ -27,13 +27,13 @@
int _gnutls_file_exists(const char *file)
{
- FILE *fd;
+ FILE *fp;
- fd = fopen(file, "r");
- if (fd == NULL)
+ fp = fopen(file, "re");
+ if (fp == NULL)
return -1;
- fclose(fd);
+ fclose(fp);
return 0;
}
@@ -46,6 +46,10 @@ int _gnutls_file_exists(const char *file)
* zero terminated but the terminating null is not included in length.
* The returned data are allocated using gnutls_malloc().
*
+ * Note that this function is not designed for reading sensitive materials,
+ * such as private keys, on practical applications. When the reading fails
+ * in the middle, the partially loaded content might remain on memory.
+ *
* Returns: On success, %GNUTLS_E_SUCCESS (0) is returned, otherwise
* an error code is returned.
*
@@ -55,7 +59,7 @@ int gnutls_load_file(const char *filename, gnutls_datum_t * data)
{
size_t len;
- data->data = (void *) read_binary_file(filename, &len);
+ data->data = (void *) read_file(filename, RF_BINARY, &len);
if (data->data == NULL)
return GNUTLS_E_FILE_ERROR;
diff --git a/lib/fips.c b/lib/fips.c
index 902af56749..acdd2ec23e 100644
--- a/lib/fips.c
+++ b/lib/fips.c
@@ -93,7 +93,7 @@ unsigned _gnutls_fips_mode_enabled(void)
goto exit;
}
- fd = fopen(FIPS_KERNEL_FILE, "r");
+ fd = fopen(FIPS_KERNEL_FILE, "re");
if (fd != NULL) {
f1p = fgetc(fd);
fclose(fd);
@@ -102,14 +102,13 @@ unsigned _gnutls_fips_mode_enabled(void)
else f1p = 0;
}
- f2p = !access(FIPS_SYSTEM_FILE, F_OK);
-
- if (f1p != 0 && f2p != 0) {
+ if (f1p != 0) {
_gnutls_debug_log("FIPS140-2 mode enabled\n");
ret = GNUTLS_FIPS140_STRICT;
goto exit;
}
+ f2p = !access(FIPS_SYSTEM_FILE, F_OK);
if (f2p != 0) {
/* a funny state where self tests are performed
* and ignored */
@@ -135,10 +134,12 @@ void _gnutls_fips_mode_reset_zombie(void)
}
}
-#define GNUTLS_LIBRARY_NAME "libgnutls.so.30"
-#define NETTLE_LIBRARY_NAME "libnettle.so.6"
-#define HOGWEED_LIBRARY_NAME "libhogweed.so.4"
-#define GMP_LIBRARY_NAME "libgmp.so.10"
+/* These only works with the platform where SONAME is part of the ABI.
+ * For example, *_SONAME will be set to "none" on Windows platforms. */
+#define GNUTLS_LIBRARY_NAME GNUTLS_LIBRARY_SONAME
+#define NETTLE_LIBRARY_NAME NETTLE_LIBRARY_SONAME
+#define HOGWEED_LIBRARY_NAME HOGWEED_LIBRARY_SONAME
+#define GMP_LIBRARY_NAME GMP_LIBRARY_SONAME
#define HMAC_SUFFIX ".hmac"
#define HMAC_SIZE 32
diff --git a/lib/fips.h b/lib/fips.h
index 1464c9595b..f76f24da75 100644
--- a/lib/fips.h
+++ b/lib/fips.h
@@ -138,6 +138,7 @@ static unsigned is_cipher_algo_forbidden(gnutls_cipher_algorithm_t algo)
case GNUTLS_CIPHER_AES_256_CBC:
case GNUTLS_CIPHER_AES_192_CBC:
case GNUTLS_CIPHER_AES_128_GCM:
+ case GNUTLS_CIPHER_AES_192_GCM:
case GNUTLS_CIPHER_AES_256_GCM:
case GNUTLS_CIPHER_AES_128_CCM:
case GNUTLS_CIPHER_AES_256_CCM:
diff --git a/lib/global.c b/lib/global.c
index b42fcb2632..9a65d114cc 100644
--- a/lib/global.c
+++ b/lib/global.c
@@ -368,7 +368,6 @@ static int _gnutls_global_init(unsigned constructor)
_gnutls_register_accel_crypto();
_gnutls_cryptodev_init();
- _gnutls_load_system_priorities();
#ifdef ENABLE_FIPS140
/* These self tests are performed on the overridden algorithms
@@ -385,6 +384,7 @@ static int _gnutls_global_init(unsigned constructor)
_gnutls_fips_mode_reset_zombie();
}
#endif
+ _gnutls_load_system_priorities();
_gnutls_switch_lib_state(LIB_STATE_OPERATIONAL);
ret = 0;
diff --git a/lib/gnutls.asn b/lib/gnutls.asn
index b3adae054d..aca39fd296 100644
--- a/lib/gnutls.asn
+++ b/lib/gnutls.asn
@@ -90,6 +90,14 @@ DHParameter ::= SEQUENCE {
privateValueLength INTEGER OPTIONAL
}
+-- From PKCS #11 3.0
+pkcs-11-ec-Parameters ::= CHOICE {
+ --ecParameters ECParameters,
+ oId OBJECT IDENTIFIER,
+ --implicitlyCA NULL,
+ curveName PrintableString
+}
+
-- ECC from RFC5480
ECParameters ::= CHOICE {
namedCurve OBJECT IDENTIFIER
diff --git a/lib/gnutls.pc.in b/lib/gnutls.pc.in
index ffad3e1688..7cdedda5d7 100644
--- a/lib/gnutls.pc.in
+++ b/lib/gnutls.pc.in
@@ -19,6 +19,6 @@ Description: Transport Security Layer implementation for the GNU system
URL: https://www.gnutls.org/
Version: @VERSION@
Libs: -L${libdir} -lgnutls
-Libs.private: @LIBINTL@ @LIBSOCKET@ @INET_PTON_LIB@ @LIBPTHREAD@ @LIB_SELECT@ @TSS_LIBS@ @GMP_LIBS@ @LIBUNISTRING@ @LIBIDN2_LIBS@ @LIBATOMIC_LIBS@
+Libs.private: @LIBINTL@ @LIBSOCKET@ @INET_PTON_LIB@ @LIBPTHREAD@ @LIB_SELECT@ @TSS_LIBS@ @GMP_LIBS@ @LIBUNISTRING@ @LIBATOMIC_LIBS@ @GNUTLS_LIBS_PRIVATE@
@GNUTLS_REQUIRES_PRIVATE@
Cflags: -I${includedir}
diff --git a/lib/gnutls_asn1_tab.c b/lib/gnutls_asn1_tab.c
index f5c88e1abf..0f56619559 100644
--- a/lib/gnutls_asn1_tab.c
+++ b/lib/gnutls_asn1_tab.c
@@ -58,6 +58,9 @@ const asn1_static_node gnutls_asn1_tab[] = {
{ "prime", 1073741827, NULL },
{ "base", 1073741827, NULL },
{ "privateValueLength", 16387, NULL },
+ { "pkcs-11-ec-Parameters", 1610612754, NULL },
+ { "oId", 1073741836, NULL },
+ { "curveName", 31, NULL },
{ "ECParameters", 1610612754, NULL },
{ "namedCurve", 12, NULL },
{ "ECPrivateKey", 1610612741, NULL },
diff --git a/lib/gnutls_int.h b/lib/gnutls_int.h
index b48805190a..4db7a2534d 100644
--- a/lib/gnutls_int.h
+++ b/lib/gnutls_int.h
@@ -55,6 +55,8 @@ typedef int ssize_t;
#include <nettle/memxor.h>
+#include "attribute.h"
+
#define ENABLE_ALIGN16
#ifdef __clang_major
@@ -76,26 +78,6 @@ typedef int ssize_t;
# define unlikely
#endif
-#if _GNUTLS_GCC_VERSION >= 30300
-# define attr_nonnull_all __attribute__ ((nonnull))
-# define attr_nonnull(a) __attribute__ ((nonnull a))
-#else
-# define attr_nonnull_all
-# define attr_nonnull(a)
-#endif
-
-#if _GNUTLS_GCC_VERSION >= 30400 && (_GNUTLS_CLANG_VERSION == 0 || _GNUTLS_CLANG_VERSION >= 40000)
-# define attr_warn_unused_result __attribute__((warn_unused_result))
-#else
-# define attr_warn_unused_result
-#endif
-
-#if _GNUTLS_GCC_VERSION >= 70100
-# define FALLTHROUGH __attribute__ ((fallthrough))
-#else
-# define FALLTHROUGH
-#endif
-
#include <gnutls/gnutls.h>
#include <gnutls/dtls.h>
#include <gnutls/abstract.h>
@@ -146,7 +128,7 @@ typedef int ssize_t;
/* TLS Extensions */
/* we can receive up to MAX_EXT_TYPES extensions.
*/
-#define MAX_EXT_TYPES 32
+#define MAX_EXT_TYPES 64
/* TLS-internal extension (will be parsed after a ciphersuite is selected).
* This amends the gnutls_ext_parse_type_t. Not exported yet to allow more refining
@@ -358,22 +340,24 @@ typedef enum extensions_t {
GNUTLS_EXTENSION_MAX /* not real extension - used for iterators */
} extensions_t;
-#define GNUTLS_EXTENSION_MAX_VALUE 31
-#define ext_track_t uint32_t
+#define GNUTLS_EXTENSION_MAX_VALUE 63
+#define ext_track_t uint64_t
-#if GNUTLS_EXTENSION_MAX >= GNUTLS_EXTENSION_MAX_VALUE
-# error over limit
-#endif
+#include <verify.h>
-#if GNUTLS_EXTENSION_MAX >= MAX_EXT_TYPES
-# error over limit
-#endif
+verify(GNUTLS_EXTENSION_MAX < GNUTLS_EXTENSION_MAX_VALUE);
+verify(GNUTLS_EXTENSION_MAX < MAX_EXT_TYPES);
-/* we must provide at least 16 extensions for users to register */
-#if GNUTLS_EXTENSION_MAX_VALUE - GNUTLS_EXTENSION_MAX < 16
-# error not enough extension types; increase GNUTLS_EXTENSION_MAX_VALUE, MAX_EXT_TYPES and used_exts type
-#endif
+/* we must provide at least 16 extensions for users to register;
+ * increase GNUTLS_EXTENSION_MAX_VALUE, MAX_EXT_TYPES and used_exts
+ * type if this fails
+ */
+verify(GNUTLS_EXTENSION_MAX_VALUE - GNUTLS_EXTENSION_MAX >= 16);
+/* The 'verify' symbol from <verify.h> is used extensively in the
+ * code; undef it to avoid clash
+ */
+#undef verify
typedef enum { CIPHER_STREAM, CIPHER_BLOCK, CIPHER_AEAD } cipher_type_t;
@@ -1243,6 +1227,8 @@ typedef struct {
unsigned int h_type; /* the hooked type */
int16_t h_post; /* whether post-generation/receive */
+ gnutls_keylog_func keylog_func;
+
/* holds the selected certificate and key.
* use _gnutls_selected_certs_deinit() and _gnutls_selected_certs_set()
* to change them.
@@ -1441,7 +1427,7 @@ typedef struct {
/* The saved username from PSK or SRP auth */
char saved_username[MAX_USERNAME_SIZE+1];
- bool saved_username_set;
+ int saved_username_size;
/* Needed for TCP Fast Open (TFO), set by gnutls_transport_set_fastopen() */
tfo_st tfo;
diff --git a/lib/gthreads.h b/lib/gthreads.h
index 8a4e9e444a..72bdb56ae9 100644
--- a/lib/gthreads.h
+++ b/lib/gthreads.h
@@ -29,7 +29,7 @@
* will see HAVE_THREADS_H, but won't be able to use _Thread_local. */
#if __STDC_VERSION__ >= 201112 && !defined(__STDC_NO_THREADS__) && defined(HAVE_THREADS_H)
# include <threads.h>
-#elif defined(__GNUC__) /* clang is also covered by __GNUC__ */
+#elif defined(__GNUC__) || defined(__SUNPRO_C) || defined(__xlC__) /* clang is covered by __GNUC__ */
# define _Thread_local __thread
#elif defined(_MSC_VER)
# define _Thread_local __declspec(thread)
diff --git a/lib/handshake-checks.c b/lib/handshake-checks.c
index 56abc5bba6..b07b9680cb 100644
--- a/lib/handshake-checks.c
+++ b/lib/handshake-checks.c
@@ -50,6 +50,7 @@ int _gnutls_check_id_for_change(gnutls_session_t session)
cred_type = gnutls_auth_get_type(session);
if (cred_type == GNUTLS_CRD_PSK || cred_type == GNUTLS_CRD_SRP) {
const char *username = NULL;
+ int username_length;
if (cred_type == GNUTLS_CRD_PSK) {
psk_auth_info_t ai;
@@ -59,6 +60,7 @@ int _gnutls_check_id_for_change(gnutls_session_t session)
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
username = ai->username;
+ username_length = ai->username_len;
#ifdef ENABLE_SRP
} else {
srp_server_auth_info_t ai = _gnutls_get_auth_info(session, GNUTLS_CRD_SRP);
@@ -66,23 +68,23 @@ int _gnutls_check_id_for_change(gnutls_session_t session)
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
username = ai->username;
+ username_length = strlen(ai->username);
#endif
}
if (username == NULL)
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
- if (session->internals.saved_username_set) {
- if (strcmp(session->internals.saved_username, username) != 0) {
+ if (session->internals.saved_username_size != -1) {
+ if (session->internals.saved_username_size == username_length &&
+ strncmp(session->internals.saved_username, username, username_length) != 0) {
_gnutls_debug_log("Session's PSK username changed during rehandshake; aborting!\n");
return gnutls_assert_val(GNUTLS_E_SESSION_USER_ID_CHANGED);
}
} else {
- size_t len = strlen(username);
-
- memcpy(session->internals.saved_username, username, len);
- session->internals.saved_username[len] = 0;
- session->internals.saved_username_set = 1;
+ memcpy(session->internals.saved_username, username, username_length);
+ session->internals.saved_username[username_length] = 0;
+ session->internals.saved_username_size = username_length;
}
}
diff --git a/lib/handshake-tls13.c b/lib/handshake-tls13.c
index 60f8030eb3..ea236c803c 100644
--- a/lib/handshake-tls13.c
+++ b/lib/handshake-tls13.c
@@ -292,9 +292,11 @@ static int generate_ap_traffic_keys(gnutls_session_t session)
if (ret < 0)
return gnutls_assert_val(ret);
- _gnutls_nss_keylog_write(session, "EXPORTER_SECRET",
- session->key.proto.tls13.ap_expkey,
- session->security_parameters.prf->output_size);
+ ret = _gnutls_call_keylog_func(session, "EXPORTER_SECRET",
+ session->key.proto.tls13.ap_expkey,
+ session->security_parameters.prf->output_size);
+ if (ret < 0)
+ return gnutls_assert_val(ret);
_gnutls_epoch_bump(session);
ret = _gnutls_epoch_dup(session, EPOCH_READ_CURRENT);
@@ -508,8 +510,9 @@ int _gnutls13_handshake_server(gnutls_session_t session)
_gnutls_set_resumed_parameters(session);
if (session->internals.hsk_flags & HSK_EARLY_START_USED) {
- ret = _gnutls13_send_session_ticket(session, TLS13_TICKETS_TO_SEND,
- AGAIN(STATE109));
+ if (!(session->internals.flags & GNUTLS_NO_AUTO_SEND_TICKET))
+ ret = _gnutls13_send_session_ticket(session, TLS13_TICKETS_TO_SEND,
+ AGAIN(STATE109));
STATE = STATE109;
IMED_RET("send session ticket", ret, 0);
@@ -563,7 +566,8 @@ int _gnutls13_handshake_server(gnutls_session_t session)
FALLTHROUGH;
case STATE115:
- if (!(session->internals.hsk_flags & (HSK_TLS13_TICKET_SENT|HSK_EARLY_START_USED))) {
+ if (!(session->internals.hsk_flags & (HSK_TLS13_TICKET_SENT|HSK_EARLY_START_USED)) &&
+ !(session->internals.flags & GNUTLS_NO_AUTO_SEND_TICKET)) {
ret = _gnutls13_send_session_ticket(session, TLS13_TICKETS_TO_SEND,
AGAIN(STATE115));
STATE = STATE115;
diff --git a/lib/handshake.c b/lib/handshake.c
index 5739df213e..8d58fa48e7 100644
--- a/lib/handshake.c
+++ b/lib/handshake.c
@@ -57,6 +57,9 @@
#include "secrets.h"
#include "tls13/session_ticket.h"
#include "locks.h"
+#ifdef HAVE_VALGRIND_MEMCHECK_H
+#include <valgrind/memcheck.h>
+#endif
#define TRUE 1
#define FALSE 0
@@ -242,6 +245,12 @@ int _gnutls_gen_client_random(gnutls_session_t session)
return gnutls_assert_val(ret);
}
+#ifdef HAVE_VALGRIND_MEMCHECK_H
+ if (RUNNING_ON_VALGRIND)
+ VALGRIND_MAKE_MEM_DEFINED(session->security_parameters.client_random,
+ GNUTLS_RANDOM_SIZE);
+#endif
+
return 0;
}
@@ -320,6 +329,12 @@ int _gnutls_gen_server_random(gnutls_session_t session, int version)
return ret;
}
+#ifdef HAVE_VALGRIND_MEMCHECK_H
+ if (RUNNING_ON_VALGRIND)
+ VALGRIND_MAKE_MEM_DEFINED(session->security_parameters.server_random,
+ GNUTLS_RANDOM_SIZE);
+#endif
+
return 0;
}
@@ -2167,7 +2182,7 @@ static int send_client_hello(gnutls_session_t session, int again)
/* Generate random data
*/
if (!(session->internals.hsk_flags & HSK_HRR_RECEIVED) &&
- !(IS_DTLS(session) && session->internals.dtls.hsk_hello_verify_requests == 0)) {
+ !(IS_DTLS(session) && session->internals.dtls.hsk_hello_verify_requests != 0)) {
ret = _gnutls_gen_client_random(session);
if (ret < 0) {
gnutls_assert();
diff --git a/lib/hash_int.c b/lib/hash_int.c
index d326960e80..59eddeba37 100644
--- a/lib/hash_int.c
+++ b/lib/hash_int.c
@@ -80,7 +80,7 @@ int _gnutls_digest_exists(gnutls_digest_algorithm_t algo)
{
const gnutls_crypto_digest_st *cc = NULL;
- if (is_mac_algo_forbidden(algo))
+ if (is_mac_algo_forbidden(DIG_TO_MAC(algo)))
return gnutls_assert_val(GNUTLS_E_UNWANTED_ALGORITHM);
cc = _gnutls_get_crypto_digest(algo);
@@ -242,6 +242,7 @@ _gnutls_mac_init(mac_hd_st * mac, const mac_entry_st * e,
mac->output = cc->output;
mac->deinit = cc->deinit;
mac->copy = cc->copy;
+ mac->setkey = cc->setkey;
return 0;
}
@@ -257,6 +258,7 @@ _gnutls_mac_init(mac_hd_st * mac, const mac_entry_st * e,
mac->output = _gnutls_mac_ops.output;
mac->deinit = _gnutls_mac_ops.deinit;
mac->copy = _gnutls_mac_ops.copy;
+ mac->setkey = _gnutls_mac_ops.setkey;
if (_gnutls_mac_ops.setkey(mac->handle, key, keylen) < 0) {
gnutls_assert();
diff --git a/lib/hash_int.h b/lib/hash_int.h
index 9f6059da33..675ac4ef7f 100644
--- a/lib/hash_int.h
+++ b/lib/hash_int.h
@@ -42,6 +42,7 @@ typedef int (*output_func) (void *src_ctx, void *digest,
size_t digestsize);
typedef void (*hash_deinit_func) (void *handle);
typedef void *(*copy_func) (const void *handle);
+typedef int (*setkey_func) (void *handle, const void *key, size_t keysize);
typedef struct {
const mac_entry_st *e;
@@ -65,6 +66,7 @@ typedef struct {
output_func output;
hash_deinit_func deinit;
copy_func copy;
+ setkey_func setkey;
void *handle;
} mac_hd_st;
@@ -106,6 +108,13 @@ _gnutls_mac_set_nonce(mac_hd_st * handle, const void *nonce, size_t n_size)
return 0;
}
+inline static int
+_gnutls_mac_setkey(mac_hd_st * handle, const void *key, size_t key_size)
+{
+ return handle->setkey(handle->handle, key, key_size);
+}
+
+
void _gnutls_mac_deinit(mac_hd_st * handle, void *digest);
/* Hash interface */
diff --git a/lib/hello_ext.c b/lib/hello_ext.c
index 0c6c0dca01..dbe73fdeb3 100644
--- a/lib/hello_ext.c
+++ b/lib/hello_ext.c
@@ -520,7 +520,7 @@ int _gnutls_hello_ext_pack(gnutls_session_t session, gnutls_buffer_st *packed)
BUFFER_APPEND_NUM(packed, 0);
for (i = 0; i <= GNUTLS_EXTENSION_MAX_VALUE; i++) {
- if (session->internals.used_exts & (1U << i)) {
+ if (session->internals.used_exts & ((ext_track_t)1 << i)) {
ext = gid_to_ext_entry(session, i);
if (ext == NULL)
@@ -898,6 +898,7 @@ gnutls_session_ext_register(gnutls_session_t session,
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
memset(&tmp_mod, 0, sizeof(hello_ext_entry_st));
+ tmp_mod.name = gnutls_strdup(name);
tmp_mod.free_struct = 1;
tmp_mod.tls_id = id;
tmp_mod.gid = gid;
@@ -1000,3 +1001,27 @@ unsigned gnutls_ext_get_current_msg(gnutls_session_t session)
{
return _gnutls_ext_get_msg(session);
}
+
+/**
+ * gnutls_ext_get_name2:
+ * @session: a #gnutls_session_t opaque pointer
+ * @tls_id: is a TLS extension numeric ID
+ * @parse_point: the parse type of the extension
+ *
+ * Convert a TLS extension numeric ID to a printable string.
+ *
+ * Returns: a pointer to a string that contains the name of the
+ * specified cipher, or %NULL.
+ **/
+const char *gnutls_ext_get_name2(gnutls_session_t session, unsigned int tls_id,
+ gnutls_ext_parse_type_t parse_point)
+{
+ const struct hello_ext_entry_st *ext;
+
+ ext = tls_id_to_ext_entry(session, tls_id, parse_point);
+ if (ext)
+ return ext->name;
+
+ return NULL;
+}
+
diff --git a/lib/hello_ext.h b/lib/hello_ext.h
index 38b28ae069..a7b921875d 100644
--- a/lib/hello_ext.h
+++ b/lib/hello_ext.h
@@ -160,7 +160,7 @@ typedef struct hello_ext_entry_st {
inline static unsigned
_gnutls_hello_ext_is_present(gnutls_session_t session, extensions_t id)
{
- if (session->internals.used_exts & (1U << id))
+ if (session->internals.used_exts & ((ext_track_t)1 << id))
return 1;
return 0;
@@ -184,7 +184,7 @@ unsigned _gnutls_hello_ext_save(gnutls_session_t session,
return 0;
}
- session->internals.used_exts |= (1U << id);
+ session->internals.used_exts |= ((ext_track_t)1 << id);
return 1;
}
diff --git a/lib/includes/gnutls/abstract.h b/lib/includes/gnutls/abstract.h
index d8805681a9..386ae3e49f 100644
--- a/lib/includes/gnutls/abstract.h
+++ b/lib/includes/gnutls/abstract.h
@@ -372,9 +372,12 @@ int gnutls_privkey_status(gnutls_privkey_t key);
* @GNUTLS_PRIVKEY_SIGN_FLAG_TLS1_RSA: Make an RSA signature on the hashed data as in the TLS protocol.
* @GNUTLS_PRIVKEY_SIGN_FLAG_RSA_PSS: Make an RSA signature on the hashed data with the PSS padding.
* @GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE: Make a signature on the hashed data with reproducible parameters.
- * For RSA-PSS, that means to use empty salt instead of random value. For ECDSA/DSA, it uses the deterministic
- * construction of random parameter according to RFC 6979. Note that
- * this only supports the NIST curves and DSA subgroup bits up to 512.
+ * For RSA-PSS, that means to use empty salt instead of random value. To
+ * verify a signature created using this flag, the corresponding SPKI needs
+ * to be set on the public key. Use gnutls_pubkey_set_spki() for that.
+ * For ECDSA/DSA, it uses the deterministic construction of random parameter
+ * according to RFC 6979. Note that this only supports the NIST curves and DSA
+ * subgroup bits up to 512.
* @GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE: When importing a private key, automatically
* release it when the structure it was imported is released.
* @GNUTLS_PRIVKEY_IMPORT_COPY: Copy required values during import.
diff --git a/lib/includes/gnutls/crypto.h b/lib/includes/gnutls/crypto.h
index 685d9d5d29..c878d7dfac 100644
--- a/lib/includes/gnutls/crypto.h
+++ b/lib/includes/gnutls/crypto.h
@@ -139,6 +139,24 @@ int gnutls_hash_fast(gnutls_digest_algorithm_t algorithm,
const void *text, size_t textlen, void *digest);
gnutls_hash_hd_t gnutls_hash_copy(gnutls_hash_hd_t handle);
+/* KDF API */
+
+int gnutls_hkdf_extract(gnutls_mac_algorithm_t mac,
+ const gnutls_datum_t *key,
+ const gnutls_datum_t *salt,
+ void *output);
+
+int gnutls_hkdf_expand(gnutls_mac_algorithm_t mac,
+ const gnutls_datum_t *key,
+ const gnutls_datum_t *info,
+ void *output, size_t length);
+
+int gnutls_pbkdf2(gnutls_mac_algorithm_t mac,
+ const gnutls_datum_t *key,
+ const gnutls_datum_t *salt,
+ unsigned iter_count,
+ void *output, size_t length);
+
/* register ciphers */
diff --git a/lib/includes/gnutls/gnutls.h.in b/lib/includes/gnutls/gnutls.h.in
index d05ef8e5a9..d02854b40a 100644
--- a/lib/includes/gnutls/gnutls.h.in
+++ b/lib/includes/gnutls/gnutls.h.in
@@ -113,6 +113,8 @@ extern "C" {
* @GNUTLS_CIPHER_CAMELLIA_256_GCM: CAMELLIA in GCM mode with 256-bit keys (AEAD).
* @GNUTLS_CIPHER_SALSA20_256: Salsa20 with 256-bit keys.
* @GNUTLS_CIPHER_ESTREAM_SALSA20_256: Estream's Salsa20 variant with 256-bit keys.
+ * @GNUTLS_CIPHER_CHACHA20_32: Chacha20 cipher with 96-bit nonces and 32-bit block counters.
+ * @GNUTLS_CIPHER_CHACHA20_64: Chacha20 cipher with 64-bit nonces and 64-bit block counters.
* @GNUTLS_CIPHER_CHACHA20_POLY1305: The Chacha20 cipher with the Poly1305 authenticator (AEAD).
* @GNUTLS_CIPHER_GOST28147_TC26Z_CFB: GOST 28147-89 (Magma) cipher in CFB mode with TC26 Z S-box.
* @GNUTLS_CIPHER_GOST28147_CPA_CFB: GOST 28147-89 (Magma) cipher in CFB mode with CryptoPro A S-box.
@@ -126,6 +128,8 @@ extern "C" {
* cipher-stealing requires to know where the message actually terminates
* in order to be able to compute where the stealing occurs.
* @GNUTLS_CIPHER_GOST28147_TC26Z_CNT: GOST 28147-89 (Magma) cipher in CNT mode with TC26 Z S-box.
+ * @GNUTLS_CIPHER_MAGMA_CTR_ACPKM: GOST R 34.12-2015 (Magma) cipher in CTR-ACPKM mode.
+ * @GNUTLS_CIPHER_KUZNYECHIK_CTR_ACPKM: GOST R 34.12-2015 (Kuznyechik) cipher in CTR-ACPKM mode.
* @GNUTLS_CIPHER_IDEA_PGP_CFB: IDEA in CFB mode (placeholder - unsupported).
* @GNUTLS_CIPHER_3DES_PGP_CFB: 3DES in CFB mode (placeholder - unsupported).
* @GNUTLS_CIPHER_CAST5_PGP_CFB: CAST5 in CFB mode (placeholder - unsupported).
@@ -135,6 +139,13 @@ extern "C" {
* @GNUTLS_CIPHER_AES192_PGP_CFB: AES in CFB mode with 192-bit keys (placeholder - unsupported).
* @GNUTLS_CIPHER_AES256_PGP_CFB: AES in CFB mode with 256-bit keys (placeholder - unsupported).
* @GNUTLS_CIPHER_TWOFISH_PGP_CFB: Twofish in CFB mode (placeholder - unsupported).
+ * @GNUTLS_CIPHER_AES_128_SIV: AES in SIV mode with 128-bit key.
+ * @GNUTLS_CIPHER_AES_256_SIV: AES in SIV mode with 256-bit key.
+ * Note that the SIV ciphers can only be used with
+ * the AEAD interface, and the IV plays a role as
+ * the authentication tag while it is prepended to
+ * the cipher text.
+ * @GNUTLS_CIPHER_AES_192_GCM: AES in GCM mode with 192-bit keys (AEAD).
*
* Enumeration of different symmetric encryption algorithms.
*/
@@ -174,6 +185,13 @@ typedef enum gnutls_cipher_algorithm {
GNUTLS_CIPHER_AES_128_XTS = 32,
GNUTLS_CIPHER_AES_256_XTS = 33,
GNUTLS_CIPHER_GOST28147_TC26Z_CNT = 34,
+ GNUTLS_CIPHER_CHACHA20_64 = 35,
+ GNUTLS_CIPHER_CHACHA20_32 = 36,
+ GNUTLS_CIPHER_AES_128_SIV = 37,
+ GNUTLS_CIPHER_AES_256_SIV = 38,
+ GNUTLS_CIPHER_AES_192_GCM = 39,
+ GNUTLS_CIPHER_MAGMA_CTR_ACPKM = 40,
+ GNUTLS_CIPHER_KUZNYECHIK_CTR_ACPKM = 41,
/* used only for PGP internals. Ignored in TLS/SSL
*/
@@ -296,6 +314,8 @@ typedef enum {
* @GNUTLS_MAC_GOST28147_TC26Z_IMIT: The GOST 28147-89 working in IMIT mode with TC26 Z S-box.
* @GNUTLS_MAC_SHAKE_128: Reserved; unimplemented.
* @GNUTLS_MAC_SHAKE_256: Reserved; unimplemented.
+ * @GNUTLS_MAC_MAGMA_OMAC: GOST R 34.12-2015 (Magma) in OMAC (CMAC) mode.
+ * @GNUTLS_MAC_KUZNYECHIK_OMAC: GOST R 34.12-2015 (Kuznyechik) in OMAC (CMAC) mode.
*
* Enumeration of different Message Authentication Code (MAC)
* algorithms.
@@ -331,7 +351,9 @@ typedef enum {
GNUTLS_MAC_AES_GMAC_256 = 207,
GNUTLS_MAC_GOST28147_TC26Z_IMIT = 208,
GNUTLS_MAC_SHAKE_128 = 209,
- GNUTLS_MAC_SHAKE_256 = 210
+ GNUTLS_MAC_SHAKE_256 = 210,
+ GNUTLS_MAC_MAGMA_OMAC = 211,
+ GNUTLS_MAC_KUZNYECHIK_OMAC = 212
} gnutls_mac_algorithm_t;
/**
@@ -457,6 +479,8 @@ typedef enum {
* @GNUTLS_ENABLE_EARLY_DATA: Under TLS1.3 allow the server to receive early data sent as part of the initial ClientHello (0-RTT).
* This is not enabled by default as early data has weaker security properties than other data. Since 3.6.5.
* @GNUTLS_ENABLE_RAWPK: Allows raw public-keys to be negotiated during the handshake. Since 3.6.6.
+ * @GNUTLS_NO_AUTO_SEND_TICKET: Under TLS1.3 disable auto-sending of
+ * session tickets during the handshake.
*
* Enumeration of different flags for gnutls_init() function. All the flags
* can be combined except @GNUTLS_SERVER and @GNUTLS_CLIENT which are mutually
@@ -487,7 +511,8 @@ typedef enum {
GNUTLS_ENABLE_EARLY_START = (1<<17),
GNUTLS_ENABLE_RAWPK = (1<<18),
GNUTLS_AUTO_REAUTH = (1<<19),
- GNUTLS_ENABLE_EARLY_DATA = (1<<20)
+ GNUTLS_ENABLE_EARLY_DATA = (1<<20),
+ GNUTLS_NO_AUTO_SEND_TICKET = (1<<21)
} gnutls_init_flags_t;
/* compatibility defines (previous versions of gnutls
@@ -1271,6 +1296,7 @@ gnutls_group_t gnutls_group_get(gnutls_session_t session);
gnutls_cipher_algorithm_t gnutls_cipher_get(gnutls_session_t session);
gnutls_kx_algorithm_t gnutls_kx_get(gnutls_session_t session);
gnutls_mac_algorithm_t gnutls_mac_get(gnutls_session_t session);
+gnutls_digest_algorithm_t gnutls_prf_hash_get(const gnutls_session_t session);
gnutls_certificate_type_t
gnutls_certificate_type_get(gnutls_session_t session);
gnutls_certificate_type_t
@@ -2292,6 +2318,25 @@ void gnutls_global_set_log_function(gnutls_log_func log_func);
void gnutls_global_set_audit_log_function(gnutls_audit_log_func log_func);
void gnutls_global_set_log_level(int level);
+ /**
+ * gnutls_keylog_func:
+ * @session: the current session
+ * @label: the keylog label
+ * @secret: the (const) data of the derived secret.
+ *
+ * Function prototype for keylog hooks. It is set using
+ * gnutls_session_set_keylog_function().
+ *
+ * Returns: Non zero on error.
+ * Since: 3.6.13
+ */
+typedef int (*gnutls_keylog_func) (gnutls_session_t session,
+ const char *label,
+ const gnutls_datum_t *secret);
+gnutls_keylog_func gnutls_session_get_keylog_function(const gnutls_session_t session);
+void gnutls_session_set_keylog_function(gnutls_session_t session,
+ gnutls_keylog_func func);
+
/* Diffie-Hellman parameter handling.
*/
int gnutls_dh_params_init(gnutls_dh_params_t * dh_params);
@@ -2572,6 +2617,10 @@ int gnutls_psk_set_client_credentials(gnutls_psk_client_credentials_t res,
const char *username,
const gnutls_datum_t * key,
gnutls_psk_key_flags flags);
+int gnutls_psk_set_client_credentials2(gnutls_psk_client_credentials_t res,
+ const gnutls_datum_t *username,
+ const gnutls_datum_t *key,
+ gnutls_psk_key_flags flags);
void
gnutls_psk_free_server_credentials(gnutls_psk_server_credentials_t sc);
@@ -2586,25 +2635,39 @@ gnutls_psk_set_server_credentials_hint(gnutls_psk_server_credentials_t
res, const char *hint);
const char *gnutls_psk_server_get_username(gnutls_session_t session);
+int gnutls_psk_server_get_username2(gnutls_session_t session,
+ gnutls_datum_t *out);
const char *gnutls_psk_client_get_hint(gnutls_session_t session);
typedef int gnutls_psk_server_credentials_function(gnutls_session_t,
const char *username,
gnutls_datum_t * key);
+typedef int gnutls_psk_server_credentials_function2(gnutls_session_t,
+ const gnutls_datum_t *username,
+ gnutls_datum_t *key);
void
gnutls_psk_set_server_credentials_function(gnutls_psk_server_credentials_t
cred,
gnutls_psk_server_credentials_function
* func);
+void
+gnutls_psk_set_server_credentials_function2(gnutls_psk_server_credentials_t cred,
+ gnutls_psk_server_credentials_function2 *func);
typedef int gnutls_psk_client_credentials_function(gnutls_session_t,
char **username,
gnutls_datum_t * key);
+typedef int gnutls_psk_client_credentials_function2(gnutls_session_t,
+ gnutls_datum_t *username,
+ gnutls_datum_t *key);
void
gnutls_psk_set_client_credentials_function(gnutls_psk_client_credentials_t
cred,
gnutls_psk_client_credentials_function
* func);
+void
+gnutls_psk_set_client_credentials_function2(gnutls_psk_client_credentials_t cred,
+ gnutls_psk_client_credentials_function2 *func);
int gnutls_hex_encode(const gnutls_datum_t * data, char *result,
size_t * result_size);
@@ -3085,6 +3148,8 @@ int gnutls_session_ext_register(gnutls_session_t, const char *name, int type, gn
gnutls_ext_unpack_func unpack_func, unsigned flags);
const char *gnutls_ext_get_name(unsigned int ext);
+const char *gnutls_ext_get_name2(gnutls_session_t session, unsigned int tls_id,
+ gnutls_ext_parse_type_t parse_point);
/* Public supplemental data related functions */
diff --git a/lib/includes/gnutls/pkcs7.h b/lib/includes/gnutls/pkcs7.h
index 8a6c2034f0..58ea4aaf81 100644
--- a/lib/includes/gnutls/pkcs7.h
+++ b/lib/includes/gnutls/pkcs7.h
@@ -144,6 +144,10 @@ int gnutls_pkcs7_print(gnutls_pkcs7_t pkcs7,
gnutls_certificate_print_formats_t format,
gnutls_datum_t * out);
+int gnutls_pkcs7_print_signature_info(gnutls_pkcs7_signature_info_st * info,
+ gnutls_certificate_print_formats_t format,
+ gnutls_datum_t * out);
+
/* *INDENT-OFF* */
#ifdef __cplusplus
}
diff --git a/lib/includes/gnutls/x509.h b/lib/includes/gnutls/x509.h
index 6807271b2a..bcb687ce27 100644
--- a/lib/includes/gnutls/x509.h
+++ b/lib/includes/gnutls/x509.h
@@ -1698,6 +1698,12 @@ gnutls_x509_trust_list_add_system_trust(gnutls_x509_trust_list_t
unsigned int tl_flags,
unsigned int tl_vflags);
+typedef int gnutls_x509_trust_list_getissuer_function(gnutls_x509_trust_list_t tlist,
+ const gnutls_x509_crt_t crt);
+
+void gnutls_x509_trust_list_set_getissuer_function(gnutls_x509_trust_list_t tlist,
+ gnutls_x509_trust_list_getissuer_function *func);
+
void gnutls_certificate_set_trust_list
(gnutls_certificate_credentials_t res,
gnutls_x509_trust_list_t tlist, unsigned flags);
diff --git a/lib/kx.c b/lib/kx.c
index 69374908e4..1eda14d3d6 100644
--- a/lib/kx.c
+++ b/lib/kx.c
@@ -70,6 +70,68 @@ int _gnutls_generate_master(gnutls_session_t session, int keep_premaster)
return 0;
}
+/**
+ * gnutls_session_get_keylog_function:
+ * @session: is #gnutls_session_t type
+ *
+ * This function will return the callback function set using
+ * gnutls_session_set_keylog_function().
+ *
+ * Returns: The function set or %NULL otherwise.
+ *
+ * Since: 3.6.13
+ */
+gnutls_keylog_func
+gnutls_session_get_keylog_function(const gnutls_session_t session)
+{
+ return session->internals.keylog_func;
+}
+
+/**
+ * gnutls_session_set_keylog_function:
+ * @session: is #gnutls_session_t type
+ * @func: is the function to be called
+ *
+ * This function will set a callback to be called when a new secret is
+ * derived and installed during handshake.
+ *
+ * Since: 3.6.13
+ */
+void
+gnutls_session_set_keylog_function(gnutls_session_t session,
+ gnutls_keylog_func func)
+{
+ session->internals.keylog_func = func;
+}
+
+int
+_gnutls_call_keylog_func(gnutls_session_t session,
+ const char *label,
+ const uint8_t *data,
+ unsigned size)
+{
+ if (session->internals.keylog_func) {
+ gnutls_datum_t secret = {(void*)data, size};
+ return session->internals.keylog_func(session, label, &secret);
+ }
+ return 0;
+}
+
+int
+_gnutls_nss_keylog_func(gnutls_session_t session,
+ const char *label,
+ const gnutls_datum_t *secret)
+{
+ /* ignore subsequent traffic secrets that are calculated from
+ * the previous traffic secret
+ */
+ if (!session->internals.handshake_in_progress)
+ return 0;
+
+ _gnutls_nss_keylog_write(session, label, secret->data, secret->size);
+ return 0;
+}
+
void _gnutls_nss_keylog_write(gnutls_session_t session,
const char *label,
const uint8_t *secret, size_t secret_size)
@@ -81,7 +143,7 @@ void _gnutls_nss_keylog_write(gnutls_session_t session,
checked_env = 1;
keylogfile = secure_getenv("SSLKEYLOGFILE");
if (keylogfile != NULL)
- keylog = fopen(keylogfile, "a");
+ keylog = fopen(keylogfile, "ae");
}
if (keylog) {
@@ -182,16 +244,18 @@ generate_normal_master(gnutls_session_t session,
gnutls_free(shash.data);
}
- _gnutls_nss_keylog_write(session, "CLIENT_RANDOM",
- session->security_parameters.master_secret,
- GNUTLS_MASTER_SIZE);
-
if (!keep_premaster)
_gnutls_free_temp_key_datum(premaster);
if (ret < 0)
return ret;
+ ret = _gnutls_call_keylog_func(session, "CLIENT_RANDOM",
+ session->security_parameters.master_secret,
+ GNUTLS_MASTER_SIZE);
+ if (ret < 0)
+ return gnutls_assert_val(ret);
+
_gnutls_hard_log("INT: MASTER SECRET[%d]: %s\n",
GNUTLS_MASTER_SIZE,
_gnutls_bin2hex(session->security_parameters.
diff --git a/lib/kx.h b/lib/kx.h
index 2d98fda3cd..6b4a7fcae5 100644
--- a/lib/kx.h
+++ b/lib/kx.h
@@ -38,8 +38,15 @@ int _gnutls_recv_server_crt_request(gnutls_session_t session);
int _gnutls_send_server_crt_request(gnutls_session_t session, int again);
int _gnutls_recv_client_certificate_verify_message(gnutls_session_t
session);
+int _gnutls_call_keylog_func(gnutls_session_t session,
+ const char *label,
+ const uint8_t *data,
+ unsigned size);
void _gnutls_nss_keylog_write(gnutls_session_t session,
const char *label,
const uint8_t *secret, size_t secret_size);
+int _gnutls_nss_keylog_func(gnutls_session_t session,
+ const char *label,
+ const gnutls_datum_t *secret);
#endif /* GNUTLS_LIB_KX_H */
diff --git a/lib/libgnutls.map b/lib/libgnutls.map
index e1878bb00c..e29f064a30 100644
--- a/lib/libgnutls.map
+++ b/lib/libgnutls.map
@@ -1309,6 +1309,36 @@ GNUTLS_3_6_12
gnutls_hmac_get_key_size;
} GNUTLS_3_6_10;
+GNUTLS_3_6_13
+{
+ global:
+ gnutls_hkdf_extract;
+ gnutls_hkdf_expand;
+ gnutls_pbkdf2;
+ gnutls_session_get_keylog_function;
+ gnutls_session_set_keylog_function;
+ gnutls_prf_hash_get;
+ gnutls_psk_server_get_username2;
+ gnutls_psk_set_server_credentials_function2;
+ gnutls_psk_set_client_credentials2;
+ gnutls_psk_set_client_credentials_function2;
+} GNUTLS_3_6_12;
+
+GNUTLS_3_6_14
+{
+ global:
+ gnutls_ext_get_name2;
+ gnutls_pkcs7_print_signature_info;
+} GNUTLS_3_6_13;
+
+GNUTLS_3_7_0
+{
+ global:
+ gnutls_x509_trust_list_set_getissuer_function;
+ local:
+ *;
+} GNUTLS_3_4;
+
GNUTLS_FIPS140_3_4 {
global:
gnutls_cipher_self_test;
diff --git a/lib/minitasn1/.gitignore b/lib/minitasn1/.gitignore
new file mode 100644
index 0000000000..68359a7869
--- /dev/null
+++ b/lib/minitasn1/.gitignore
@@ -0,0 +1,2 @@
+*.c
+*.h
diff --git a/lib/minitasn1/Makefile.am b/lib/minitasn1/Makefile.am
index 9b6769746d..054de9e3d3 100644
--- a/lib/minitasn1/Makefile.am
+++ b/lib/minitasn1/Makefile.am
@@ -27,6 +27,10 @@ AM_CPPFLAGS = -DASN1_BUILDING \
-I$(builddir)/../../gl \
-I$(srcdir)/..
+# Too many warnings from gnulib macros
+WARN_CFLAGS += \
+ -Wno-type-limits
+
noinst_LTLIBRARIES = libminitasn1.la
libminitasn1_la_SOURCES = libtasn1.h gstr.h int.h parser_aux.h \
diff --git a/lib/minitasn1/coding.c b/lib/minitasn1/coding.c
deleted file mode 100644
index 7141df7b4e..0000000000
--- a/lib/minitasn1/coding.c
+++ /dev/null
@@ -1,1347 +0,0 @@
-/*
- * Copyright (C) 2002-2014 Free Software Foundation, Inc.
- *
- * This file is part of LIBTASN1.
- *
- * The LIBTASN1 library is free software; you can redistribute it
- * and/or modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA
- */
-
-
-/*****************************************************/
-/* File: coding.c */
-/* Description: Functions to create a DER coding of */
-/* an ASN1 type. */
-/*****************************************************/
-
-#include <int.h>
-#include "parser_aux.h"
-#include <gstr.h>
-#include "element.h"
-#include "minmax.h"
-#include <structure.h>
-
-#define MAX_TAG_LEN 16
-
-/******************************************************/
-/* Function : _asn1_error_description_value_not_found */
-/* Description: creates the ErrorDescription string */
-/* for the ASN1_VALUE_NOT_FOUND error. */
-/* Parameters: */
-/* node: node of the tree where the value is NULL. */
-/* ErrorDescription: string returned. */
-/* Return: */
-/******************************************************/
-static void
-_asn1_error_description_value_not_found (asn1_node node,
- char *ErrorDescription)
-{
-
- if (ErrorDescription == NULL)
- return;
-
- Estrcpy (ErrorDescription, ":: value of element '");
- _asn1_hierarchical_name (node, ErrorDescription + strlen (ErrorDescription),
- ASN1_MAX_ERROR_DESCRIPTION_SIZE - 40);
- Estrcat (ErrorDescription, "' not found");
-
-}
-
-/**
- * asn1_length_der:
- * @len: value to convert.
- * @der: buffer to hold the returned encoding (may be %NULL).
- * @der_len: number of meaningful bytes of ANS (der[0]..der[der_len-1]).
- *
- * Creates the DER encoding of the provided length value.
- * The @der buffer must have enough room for the output. The maximum
- * length this function will encode is %ASN1_MAX_LENGTH_SIZE.
- *
- * To know the size of the DER encoding use a %NULL value for @der.
- **/
-void
-asn1_length_der (unsigned long int len, unsigned char *der, int *der_len)
-{
- int k;
- unsigned char temp[ASN1_MAX_LENGTH_SIZE];
-#if SIZEOF_UNSIGNED_LONG_INT > 8
- len &= 0xFFFFFFFFFFFFFFFF;
-#endif
-
- if (len < 128)
- {
- /* short form */
- if (der != NULL)
- der[0] = (unsigned char) len;
- *der_len = 1;
- }
- else
- {
- /* Long form */
- k = 0;
- while (len)
- {
- temp[k++] = len & 0xFF;
- len = len >> 8;
- }
- *der_len = k + 1;
- if (der != NULL)
- {
- der[0] = ((unsigned char) k & 0x7F) + 128;
- while (k--)
- der[*der_len - 1 - k] = temp[k];
- }
- }
-}
-
-/******************************************************/
-/* Function : _asn1_tag_der */
-/* Description: creates the DER coding for the CLASS */
-/* and TAG parameters. */
-/* It is limited by the ASN1_MAX_TAG_SIZE variable */
-/* Parameters: */
-/* class: value to convert. */
-/* tag_value: value to convert. */
-/* ans: string returned. */
-/* ans_len: number of meaningful bytes of ANS */
-/* (ans[0]..ans[ans_len-1]). */
-/* Return: */
-/******************************************************/
-static void
-_asn1_tag_der (unsigned char class, unsigned int tag_value,
- unsigned char *ans, int *ans_len)
-{
- int k;
- unsigned char temp[ASN1_MAX_TAG_SIZE];
-
- if (tag_value < 31)
- {
- /* short form */
- ans[0] = (class & 0xE0) + ((unsigned char) (tag_value & 0x1F));
- *ans_len = 1;
- }
- else
- {
- /* Long form */
- ans[0] = (class & 0xE0) + 31;
- k = 0;
- while (tag_value != 0)
- {
- temp[k++] = tag_value & 0x7F;
- tag_value >>= 7;
-
- if (k > ASN1_MAX_TAG_SIZE - 1)
- break; /* will not encode larger tags */
- }
- *ans_len = k + 1;
- while (k--)
- ans[*ans_len - 1 - k] = temp[k] + 128;
- ans[*ans_len - 1] -= 128;
- }
-}
-
-/**
- * asn1_octet_der:
- * @str: the input data.
- * @str_len: STR length (str[0]..str[*str_len-1]).
- * @der: encoded string returned.
- * @der_len: number of meaningful bytes of DER (der[0]..der[der_len-1]).
- *
- * Creates a length-value DER encoding for the input data.
- * The DER encoding of the input data will be placed in the @der variable.
- *
- * Note that the OCTET STRING tag is not included in the output.
- *
- * This function does not return any value because it is expected
- * that @der_len will contain enough bytes to store the string
- * plus the DER encoding. The DER encoding size can be obtained using
- * asn1_length_der().
- **/
-void
-asn1_octet_der (const unsigned char *str, int str_len,
- unsigned char *der, int *der_len)
-{
- int len_len;
-
- if (der == NULL || str_len < 0)
- return;
-
- asn1_length_der (str_len, der, &len_len);
- memcpy (der + len_len, str, str_len);
- *der_len = str_len + len_len;
-}
-
-
-/**
- * asn1_encode_simple_der:
- * @etype: The type of the string to be encoded (ASN1_ETYPE_)
- * @str: the string data.
- * @str_len: the string length
- * @tl: the encoded tag and length
- * @tl_len: the bytes of the @tl field
- *
- * Creates the DER encoding for various simple ASN.1 types like strings etc.
- * It stores the tag and length in @tl, which should have space for at least
- * %ASN1_MAX_TL_SIZE bytes. Initially @tl_len should contain the size of @tl.
- *
- * The complete DER encoding should consist of the value in @tl appended
- * with the provided @str.
- *
- * Returns: %ASN1_SUCCESS if successful or an error value.
- **/
-int
-asn1_encode_simple_der (unsigned int etype, const unsigned char *str,
- unsigned int str_len, unsigned char *tl,
- unsigned int *tl_len)
-{
- int tag_len, len_len;
- unsigned tlen;
- unsigned char der_tag[ASN1_MAX_TAG_SIZE];
- unsigned char der_length[ASN1_MAX_LENGTH_SIZE];
- unsigned char *p;
-
- if (str == NULL)
- return ASN1_VALUE_NOT_VALID;
-
- if (ETYPE_OK (etype) == 0)
- return ASN1_VALUE_NOT_VALID;
-
- /* doesn't handle constructed classes */
- if (ETYPE_CLASS (etype) != ASN1_CLASS_UNIVERSAL)
- return ASN1_VALUE_NOT_VALID;
-
- _asn1_tag_der (ETYPE_CLASS (etype), ETYPE_TAG (etype), der_tag, &tag_len);
-
- asn1_length_der (str_len, der_length, &len_len);
-
- if (tag_len <= 0 || len_len <= 0)
- return ASN1_VALUE_NOT_VALID;
-
- tlen = tag_len + len_len;
-
- if (*tl_len < tlen)
- return ASN1_MEM_ERROR;
-
- p = tl;
- memcpy (p, der_tag, tag_len);
- p += tag_len;
- memcpy (p, der_length, len_len);
-
- *tl_len = tlen;
-
- return ASN1_SUCCESS;
-}
-
-/******************************************************/
-/* Function : _asn1_time_der */
-/* Description: creates the DER coding for a TIME */
-/* type (length included). */
-/* Parameters: */
-/* str: TIME null-terminated string. */
-/* der: string returned. */
-/* der_len: number of meaningful bytes of DER */
-/* (der[0]..der[ans_len-1]). Initially it */
-/* if must store the lenght of DER. */
-/* Return: */
-/* ASN1_MEM_ERROR when DER isn't big enough */
-/* ASN1_SUCCESS otherwise */
-/******************************************************/
-static int
-_asn1_time_der (unsigned char *str, int str_len, unsigned char *der,
- int *der_len)
-{
- int len_len;
- int max_len;
-
- max_len = *der_len;
-
- asn1_length_der (str_len, (max_len > 0) ? der : NULL, &len_len);
-
- if ((len_len + str_len) <= max_len)
- memcpy (der + len_len, str, str_len);
- *der_len = len_len + str_len;
-
- if ((*der_len) > max_len)
- return ASN1_MEM_ERROR;
-
- return ASN1_SUCCESS;
-}
-
-
-/*
-void
-_asn1_get_utctime_der(unsigned char *der,int *der_len,unsigned char *str)
-{
- int len_len,str_len;
- char temp[20];
-
- if(str==NULL) return;
- str_len=asn1_get_length_der(der,*der_len,&len_len);
- if (str_len<0) return;
- memcpy(temp,der+len_len,str_len);
- *der_len=str_len+len_len;
- switch(str_len){
- case 11:
- temp[10]=0;
- strcat(temp,"00+0000");
- break;
- case 13:
- temp[12]=0;
- strcat(temp,"+0000");
- break;
- case 15:
- temp[15]=0;
- memmove(temp+12,temp+10,6);
- temp[10]=temp[11]='0';
- break;
- case 17:
- temp[17]=0;
- break;
- default:
- return;
- }
- strcpy(str,temp);
-}
-*/
-
-/******************************************************/
-/* Function : _asn1_objectid_der */
-/* Description: creates the DER coding for an */
-/* OBJECT IDENTIFIER type (length included). */
-/* Parameters: */
-/* str: OBJECT IDENTIFIER null-terminated string. */
-/* der: string returned. */
-/* der_len: number of meaningful bytes of DER */
-/* (der[0]..der[ans_len-1]). Initially it */
-/* must store the length of DER. */
-/* Return: */
-/* ASN1_MEM_ERROR when DER isn't big enough */
-/* ASN1_SUCCESS if succesful */
-/* or an error value. */
-/******************************************************/
-static int
-_asn1_objectid_der (unsigned char *str, unsigned char *der, int *der_len)
-{
- int len_len, counter, k, first, max_len;
- char *temp, *n_end, *n_start;
- unsigned char bit7;
- uint64_t val, val1 = 0;
- int str_len = _asn1_strlen (str);
-
- max_len = *der_len;
-
- temp = malloc (str_len + 2);
- if (temp == NULL)
- return ASN1_MEM_ALLOC_ERROR;
-
- memcpy (temp, str, str_len);
- temp[str_len] = '.';
- temp[str_len + 1] = 0;
-
- counter = 0;
- n_start = temp;
- while ((n_end = strchr (n_start, '.')))
- {
- *n_end = 0;
- val = _asn1_strtou64 (n_start, NULL, 10);
- counter++;
-
- if (counter == 1)
- val1 = val;
- else if (counter == 2)
- {
- if (max_len > 0)
- der[0] = 40 * val1 + val;
- *der_len = 1;
- }
- else
- {
- first = 0;
- for (k = sizeof(val); k >= 0; k--)
- {
- bit7 = (val >> (k * 7)) & 0x7F;
- if (bit7 || first || !k)
- {
- if (k)
- bit7 |= 0x80;
- if (max_len > (*der_len))
- der[*der_len] = bit7;
- (*der_len)++;
- first = 1;
- }
- }
-
- }
- n_start = n_end + 1;
- }
-
- asn1_length_der (*der_len, NULL, &len_len);
- if (max_len >= (*der_len + len_len))
- {
- memmove (der + len_len, der, *der_len);
- asn1_length_der (*der_len, der, &len_len);
- }
- *der_len += len_len;
-
- free (temp);
-
- if (max_len < (*der_len))
- return ASN1_MEM_ERROR;
-
- return ASN1_SUCCESS;
-}
-
-
-static const unsigned char bit_mask[] =
- { 0xFF, 0xFE, 0xFC, 0xF8, 0xF0, 0xE0, 0xC0, 0x80 };
-
-/**
- * asn1_bit_der:
- * @str: BIT string.
- * @bit_len: number of meaningful bits in STR.
- * @der: string returned.
- * @der_len: number of meaningful bytes of DER
- * (der[0]..der[ans_len-1]).
- *
- * Creates a length-value DER encoding for the input data
- * as it would have been for a BIT STRING.
- * The DER encoded data will be copied in @der.
- *
- * Note that the BIT STRING tag is not included in the output.
- *
- * This function does not return any value because it is expected
- * that @der_len will contain enough bytes to store the string
- * plus the DER encoding. The DER encoding size can be obtained using
- * asn1_length_der().
- **/
-void
-asn1_bit_der (const unsigned char *str, int bit_len,
- unsigned char *der, int *der_len)
-{
- int len_len, len_byte, len_pad;
-
- if (der == NULL)
- return;
-
- len_byte = bit_len >> 3;
- len_pad = 8 - (bit_len & 7);
- if (len_pad == 8)
- len_pad = 0;
- else
- len_byte++;
- asn1_length_der (len_byte + 1, der, &len_len);
- der[len_len] = len_pad;
-
- if (str)
- memcpy (der + len_len + 1, str, len_byte);
- der[len_len + len_byte] &= bit_mask[len_pad];
- *der_len = len_byte + len_len + 1;
-}
-
-
-/******************************************************/
-/* Function : _asn1_complete_explicit_tag */
-/* Description: add the length coding to the EXPLICIT */
-/* tags. */
-/* Parameters: */
-/* node: pointer to the tree element. */
-/* der: string with the DER coding of the whole tree*/
-/* counter: number of meaningful bytes of DER */
-/* (der[0]..der[*counter-1]). */
-/* max_len: size of der vector */
-/* Return: */
-/* ASN1_MEM_ERROR if der vector isn't big enough, */
-/* otherwise ASN1_SUCCESS. */
-/******************************************************/
-static int
-_asn1_complete_explicit_tag (asn1_node node, unsigned char *der,
- int *counter, int *max_len)
-{
- asn1_node p;
- int is_tag_implicit, len2, len3;
- unsigned char temp[SIZEOF_UNSIGNED_INT];
-
- is_tag_implicit = 0;
-
- if (node->type & CONST_TAG)
- {
- p = node->down;
- if (p == NULL)
- return ASN1_DER_ERROR;
- /* When there are nested tags we must complete them reverse to
- the order they were created. This is because completing a tag
- modifies all data within it, including the incomplete tags
- which store buffer positions -- simon@josefsson.org 2002-09-06
- */
- while (p->right)
- p = p->right;
- while (p && p != node->down->left)
- {
- if (type_field (p->type) == ASN1_ETYPE_TAG)
- {
- if (p->type & CONST_EXPLICIT)
- {
- len2 = strtol (p->name, NULL, 10);
- _asn1_set_name (p, NULL);
-
- asn1_length_der (*counter - len2, temp, &len3);
- if (len3 <= (*max_len))
- {
- memmove (der + len2 + len3, der + len2,
- *counter - len2);
- memcpy (der + len2, temp, len3);
- }
- *max_len -= len3;
- *counter += len3;
- is_tag_implicit = 0;
- }
- else
- { /* CONST_IMPLICIT */
- if (!is_tag_implicit)
- {
- is_tag_implicit = 1;
- }
- }
- }
- p = p->left;
- }
- }
-
- if (*max_len < 0)
- return ASN1_MEM_ERROR;
-
- return ASN1_SUCCESS;
-}
-
-const tag_and_class_st _asn1_tags[] = {
- [ASN1_ETYPE_GENERALSTRING] =
- {ASN1_TAG_GENERALSTRING, ASN1_CLASS_UNIVERSAL, "type:GENERALSTRING"},
- [ASN1_ETYPE_NUMERIC_STRING] =
- {ASN1_TAG_NUMERIC_STRING, ASN1_CLASS_UNIVERSAL, "type:NUMERIC_STR"},
- [ASN1_ETYPE_IA5_STRING] =
- {ASN1_TAG_IA5_STRING, ASN1_CLASS_UNIVERSAL, "type:IA5_STR"},
- [ASN1_ETYPE_TELETEX_STRING] =
- {ASN1_TAG_TELETEX_STRING, ASN1_CLASS_UNIVERSAL, "type:TELETEX_STR"},
- [ASN1_ETYPE_PRINTABLE_STRING] =
- {ASN1_TAG_PRINTABLE_STRING, ASN1_CLASS_UNIVERSAL, "type:PRINTABLE_STR"},
- [ASN1_ETYPE_UNIVERSAL_STRING] =
- {ASN1_TAG_UNIVERSAL_STRING, ASN1_CLASS_UNIVERSAL, "type:UNIVERSAL_STR"},
- [ASN1_ETYPE_BMP_STRING] =
- {ASN1_TAG_BMP_STRING, ASN1_CLASS_UNIVERSAL, "type:BMP_STR"},
- [ASN1_ETYPE_UTF8_STRING] =
- {ASN1_TAG_UTF8_STRING, ASN1_CLASS_UNIVERSAL, "type:UTF8_STR"},
- [ASN1_ETYPE_VISIBLE_STRING] =
- {ASN1_TAG_VISIBLE_STRING, ASN1_CLASS_UNIVERSAL, "type:VISIBLE_STR"},
- [ASN1_ETYPE_OCTET_STRING] =
- {ASN1_TAG_OCTET_STRING, ASN1_CLASS_UNIVERSAL, "type:OCT_STR"},
- [ASN1_ETYPE_BIT_STRING] =
- {ASN1_TAG_BIT_STRING, ASN1_CLASS_UNIVERSAL, "type:BIT_STR"},
- [ASN1_ETYPE_OBJECT_ID] =
- {ASN1_TAG_OBJECT_ID, ASN1_CLASS_UNIVERSAL, "type:OBJ_ID"},
- [ASN1_ETYPE_NULL] = {ASN1_TAG_NULL, ASN1_CLASS_UNIVERSAL, "type:NULL"},
- [ASN1_ETYPE_BOOLEAN] =
- {ASN1_TAG_BOOLEAN, ASN1_CLASS_UNIVERSAL, "type:BOOLEAN"},
- [ASN1_ETYPE_INTEGER] =
- {ASN1_TAG_INTEGER, ASN1_CLASS_UNIVERSAL, "type:INTEGER"},
- [ASN1_ETYPE_ENUMERATED] =
- {ASN1_TAG_ENUMERATED, ASN1_CLASS_UNIVERSAL, "type:ENUMERATED"},
- [ASN1_ETYPE_SEQUENCE] =
- {ASN1_TAG_SEQUENCE, ASN1_CLASS_UNIVERSAL | ASN1_CLASS_STRUCTURED,
- "type:SEQUENCE"},
- [ASN1_ETYPE_SEQUENCE_OF] =
- {ASN1_TAG_SEQUENCE, ASN1_CLASS_UNIVERSAL | ASN1_CLASS_STRUCTURED,
- "type:SEQ_OF"},
- [ASN1_ETYPE_SET] =
- {ASN1_TAG_SET, ASN1_CLASS_UNIVERSAL | ASN1_CLASS_STRUCTURED, "type:SET"},
- [ASN1_ETYPE_SET_OF] =
- {ASN1_TAG_SET, ASN1_CLASS_UNIVERSAL | ASN1_CLASS_STRUCTURED,
- "type:SET_OF"},
- [ASN1_ETYPE_GENERALIZED_TIME] =
- {ASN1_TAG_GENERALIZEDTime, ASN1_CLASS_UNIVERSAL, "type:GENERALIZED_TIME"},
- [ASN1_ETYPE_UTC_TIME] =
- {ASN1_TAG_UTCTime, ASN1_CLASS_UNIVERSAL, "type:UTC_TIME"},
-};
-
-unsigned int _asn1_tags_size = sizeof (_asn1_tags) / sizeof (_asn1_tags[0]);
-
-/******************************************************/
-/* Function : _asn1_insert_tag_der */
-/* Description: creates the DER coding of tags of one */
-/* NODE. */
-/* Parameters: */
-/* node: pointer to the tree element. */
-/* der: string returned */
-/* counter: number of meaningful bytes of DER */
-/* (counter[0]..der[*counter-1]). */
-/* max_len: size of der vector */
-/* Return: */
-/* ASN1_GENERIC_ERROR if the type is unknown, */
-/* ASN1_MEM_ERROR if der vector isn't big enough, */
-/* otherwise ASN1_SUCCESS. */
-/******************************************************/
-static int
-_asn1_insert_tag_der (asn1_node node, unsigned char *der, int *counter,
- int *max_len)
-{
- asn1_node p;
- int tag_len, is_tag_implicit;
- unsigned char class, class_implicit = 0, temp[MAX(SIZEOF_UNSIGNED_INT * 3 + 1, LTOSTR_MAX_SIZE)];
- unsigned long tag_implicit = 0;
- unsigned char tag_der[MAX_TAG_LEN];
-
- is_tag_implicit = 0;
-
- if (node->type & CONST_TAG)
- {
- p = node->down;
- while (p)
- {
- if (type_field (p->type) == ASN1_ETYPE_TAG)
- {
- if (p->type & CONST_APPLICATION)
- class = ASN1_CLASS_APPLICATION;
- else if (p->type & CONST_UNIVERSAL)
- class = ASN1_CLASS_UNIVERSAL;
- else if (p->type & CONST_PRIVATE)
- class = ASN1_CLASS_PRIVATE;
- else
- class = ASN1_CLASS_CONTEXT_SPECIFIC;
-
- if (p->type & CONST_EXPLICIT)
- {
- if (is_tag_implicit)
- _asn1_tag_der (class_implicit, tag_implicit, tag_der,
- &tag_len);
- else
- _asn1_tag_der (class | ASN1_CLASS_STRUCTURED,
- _asn1_strtoul (p->value, NULL, 10),
- tag_der, &tag_len);
-
- *max_len -= tag_len;
- if (der && *max_len >= 0)
- memcpy (der + *counter, tag_der, tag_len);
- *counter += tag_len;
-
- _asn1_ltostr (*counter, (char *) temp);
- _asn1_set_name (p, (const char *) temp);
-
- is_tag_implicit = 0;
- }
- else
- { /* CONST_IMPLICIT */
- if (!is_tag_implicit)
- {
- if ((type_field (node->type) == ASN1_ETYPE_SEQUENCE) ||
- (type_field (node->type) == ASN1_ETYPE_SEQUENCE_OF)
- || (type_field (node->type) == ASN1_ETYPE_SET)
- || (type_field (node->type) == ASN1_ETYPE_SET_OF))
- class |= ASN1_CLASS_STRUCTURED;
- class_implicit = class;
- tag_implicit = _asn1_strtoul (p->value, NULL, 10);
- is_tag_implicit = 1;
- }
- }
- }
- p = p->right;
- }
- }
-
- if (is_tag_implicit)
- {
- _asn1_tag_der (class_implicit, tag_implicit, tag_der, &tag_len);
- }
- else
- {
- unsigned type = type_field (node->type);
- switch (type)
- {
- CASE_HANDLED_ETYPES:
- _asn1_tag_der (_asn1_tags[type].class, _asn1_tags[type].tag,
- tag_der, &tag_len);
- break;
- case ASN1_ETYPE_TAG:
- case ASN1_ETYPE_CHOICE:
- case ASN1_ETYPE_ANY:
- tag_len = 0;
- break;
- default:
- return ASN1_GENERIC_ERROR;
- }
- }
-
- *max_len -= tag_len;
- if (der && *max_len >= 0)
- memcpy (der + *counter, tag_der, tag_len);
- *counter += tag_len;
-
- if (*max_len < 0)
- return ASN1_MEM_ERROR;
-
- return ASN1_SUCCESS;
-}
-
-/******************************************************/
-/* Function : _asn1_ordering_set */
-/* Description: puts the elements of a SET type in */
-/* the correct order according to DER rules. */
-/* Parameters: */
-/* der: string with the DER coding. */
-/* node: pointer to the SET element. */
-/* Return: */
-/* ASN1_SUCCESS if successful */
-/* or an error value. */
-/******************************************************/
-static int
-_asn1_ordering_set (unsigned char *der, int der_len, asn1_node node)
-{
- struct vet
- {
- int end;
- unsigned long value;
- struct vet *next, *prev;
- };
-
- int counter, len, len2;
- struct vet *first, *last, *p_vet, *p2_vet;
- asn1_node p;
- unsigned char class, *temp;
- unsigned long tag, t;
- int err;
-
- counter = 0;
-
- if (type_field (node->type) != ASN1_ETYPE_SET)
- return ASN1_VALUE_NOT_VALID;
-
- p = node->down;
- while (p && ((type_field (p->type) == ASN1_ETYPE_TAG) ||
- (type_field (p->type) == ASN1_ETYPE_SIZE)))
- p = p->right;
-
- if ((p == NULL) || (p->right == NULL))
- return ASN1_SUCCESS;
-
- first = last = NULL;
- while (p)
- {
- p_vet = malloc (sizeof (struct vet));
- if (p_vet == NULL)
- {
- err = ASN1_MEM_ALLOC_ERROR;
- goto error;
- }
-
- p_vet->next = NULL;
- p_vet->prev = last;
- if (first == NULL)
- first = p_vet;
- else
- last->next = p_vet;
- last = p_vet;
-
- /* tag value calculation */
- err = asn1_get_tag_der (der + counter, der_len - counter, &class, &len2,
- &tag);
- if (err != ASN1_SUCCESS)
- goto error;
-
- t = ((unsigned int)class) << 24;
- p_vet->value = t | tag;
- counter += len2;
-
- /* extraction and length */
- len2 = asn1_get_length_der (der + counter, der_len - counter, &len);
- if (len2 < 0)
- {
- err = ASN1_DER_ERROR;
- goto error;
- }
- counter += len + len2;
-
- p_vet->end = counter;
- p = p->right;
- }
-
- p_vet = first;
-
- while (p_vet)
- {
- p2_vet = p_vet->next;
- counter = 0;
- while (p2_vet)
- {
- if (p_vet->value > p2_vet->value)
- {
- /* change position */
- temp = malloc (p_vet->end - counter);
- if (temp == NULL)
- {
- err = ASN1_MEM_ALLOC_ERROR;
- goto error;
- }
-
- memcpy (temp, der + counter, p_vet->end - counter);
- memcpy (der + counter, der + p_vet->end,
- p2_vet->end - p_vet->end);
- memcpy (der + counter + p2_vet->end - p_vet->end, temp,
- p_vet->end - counter);
- free (temp);
-
- tag = p_vet->value;
- p_vet->value = p2_vet->value;
- p2_vet->value = tag;
-
- p_vet->end = counter + (p2_vet->end - p_vet->end);
- }
- counter = p_vet->end;
-
- p2_vet = p2_vet->next;
- p_vet = p_vet->next;
- }
-
- if (p_vet != first)
- p_vet->prev->next = NULL;
- else
- first = NULL;
- free (p_vet);
- p_vet = first;
- }
- return ASN1_SUCCESS;
-
-error:
- while (first != NULL)
- {
- p_vet = first;
- first = first->next;
- free(p_vet);
- }
- return err;
-}
-
-/******************************************************/
-/* Function : _asn1_ordering_set_of */
-/* Description: puts the elements of a SET OF type in */
-/* the correct order according to DER rules. */
-/* Parameters: */
-/* der: string with the DER coding. */
-/* node: pointer to the SET OF element. */
-/* Return: */
-/* ASN1_SUCCESS if successful */
-/* or an error value. */
-/******************************************************/
-static int
-_asn1_ordering_set_of (unsigned char *der, int der_len, asn1_node node)
-{
- struct vet
- {
- int end;
- struct vet *next, *prev;
- };
-
- int counter, len, len2, change;
- struct vet *first, *last, *p_vet, *p2_vet;
- asn1_node p;
- unsigned char *temp, class;
- unsigned long k, length;
- int err;
-
- counter = 0;
-
- if (type_field (node->type) != ASN1_ETYPE_SET_OF)
- return ASN1_VALUE_NOT_VALID;
-
- p = node->down;
- while (p && ((type_field (p->type) == ASN1_ETYPE_TAG) ||
- (type_field (p->type) == ASN1_ETYPE_SIZE)))
- p = p->right;
- if (p == NULL)
- return ASN1_VALUE_NOT_VALID;
- p = p->right;
-
- if ((p == NULL) || (p->right == NULL))
- return ASN1_SUCCESS;
-
- first = last = NULL;
- while (p)
- {
- p_vet = malloc (sizeof (struct vet));
- if (p_vet == NULL)
- {
- err = ASN1_MEM_ALLOC_ERROR;
- goto error;
- }
-
- p_vet->next = NULL;
- p_vet->prev = last;
- if (first == NULL)
- first = p_vet;
- else
- last->next = p_vet;
- last = p_vet;
-
- /* extraction of tag and length */
- if (der_len - counter > 0)
- {
-
- err = asn1_get_tag_der (der + counter, der_len - counter, &class,
- &len, NULL);
- if (err != ASN1_SUCCESS)
- goto error;
- counter += len;
-
- len2 = asn1_get_length_der (der + counter, der_len - counter, &len);
- if (len2 < 0)
- {
- err = ASN1_DER_ERROR;
- goto error;
- }
- counter += len + len2;
- }
- else
- {
- err = ASN1_DER_ERROR;
- goto error;
- }
-
- p_vet->end = counter;
- p = p->right;
- }
-
- p_vet = first;
-
- while (p_vet)
- {
- p2_vet = p_vet->next;
- counter = 0;
- while (p2_vet)
- {
- length = MIN(p_vet->end - counter, p2_vet->end - p_vet->end);
- change = -1;
- for (k = 0; k < length; k++)
- if (der[counter + k] > der[p_vet->end + k])
- {
- change = 1;
- break;
- }
- else if (der[counter + k] < der[p_vet->end + k])
- {
- change = 0;
- break;
- }
-
- if ((change == -1)
- && ((p_vet->end - counter) > (p2_vet->end - p_vet->end)))
- change = 1;
-
- if (change == 1)
- {
- /* change position */
- temp = malloc (p_vet->end - counter);
- if (temp == NULL)
- {
- err = ASN1_MEM_ALLOC_ERROR;
- goto error;
- }
-
- memcpy (temp, der + counter, (p_vet->end) - counter);
- memcpy (der + counter, der + (p_vet->end),
- (p2_vet->end) - (p_vet->end));
- memcpy (der + counter + (p2_vet->end) - (p_vet->end), temp,
- (p_vet->end) - counter);
- free (temp);
-
- p_vet->end = counter + (p2_vet->end - p_vet->end);
- }
- counter = p_vet->end;
-
- p2_vet = p2_vet->next;
- p_vet = p_vet->next;
- }
-
- if (p_vet != first)
- p_vet->prev->next = NULL;
- else
- first = NULL;
- free (p_vet);
- p_vet = first;
- }
- return ASN1_SUCCESS;
-
-error:
- while (first != NULL)
- {
- p_vet = first;
- first = first->next;
- free(p_vet);
- }
- return err;
-}
-
-/**
- * asn1_der_coding:
- * @element: pointer to an ASN1 element
- * @name: the name of the structure you want to encode (it must be
- * inside *POINTER).
- * @ider: vector that will contain the DER encoding. DER must be a
- * pointer to memory cells already allocated.
- * @len: number of bytes of *@ider: @ider[0]..@ider[len-1], Initialy
- * holds the sizeof of der vector.
- * @ErrorDescription: return the error description or an empty
- * string if success.
- *
- * Creates the DER encoding for the NAME structure (inside *POINTER
- * structure).
- *
- * Returns: %ASN1_SUCCESS if DER encoding OK, %ASN1_ELEMENT_NOT_FOUND
- * if @name is not a valid element, %ASN1_VALUE_NOT_FOUND if there
- * is an element without a value, %ASN1_MEM_ERROR if the @ider
- * vector isn't big enough and in this case @len will contain the
- * length needed.
- **/
-int
-asn1_der_coding (asn1_node element, const char *name, void *ider, int *len,
- char *ErrorDescription)
-{
- asn1_node node, p, p2;
- unsigned char temp[MAX(LTOSTR_MAX_SIZE, SIZEOF_UNSIGNED_LONG_INT * 3 + 1)];
- int counter, counter_old, len2, len3, move, max_len, max_len_old;
- int err;
- unsigned char *der = ider;
-
- if (ErrorDescription)
- ErrorDescription[0] = 0;
-
- node = asn1_find_node (element, name);
- if (node == NULL)
- return ASN1_ELEMENT_NOT_FOUND;
-
- /* Node is now a locally allocated variable.
- * That is because in some point we modify the
- * structure, and I don't know why! --nmav
- */
- node = _asn1_copy_structure3 (node);
- if (node == NULL)
- return ASN1_ELEMENT_NOT_FOUND;
-
- max_len = *len;
-
- counter = 0;
- move = DOWN;
- p = node;
-
- while (1)
- {
-
- counter_old = counter;
- max_len_old = max_len;
- if (move != UP)
- {
- p->start = counter;
- err = _asn1_insert_tag_der (p, der, &counter, &max_len);
- if (err != ASN1_SUCCESS && err != ASN1_MEM_ERROR)
- goto error;
- }
- switch (type_field (p->type))
- {
- case ASN1_ETYPE_NULL:
- max_len--;
- if (max_len >= 0)
- der[counter] = 0;
- counter++;
- move = RIGHT;
- break;
- case ASN1_ETYPE_BOOLEAN:
- if ((p->type & CONST_DEFAULT) && (p->value == NULL))
- {
- counter = counter_old;
- max_len = max_len_old;
- }
- else
- {
- if (p->value == NULL)
- {
- _asn1_error_description_value_not_found (p,
- ErrorDescription);
- err = ASN1_VALUE_NOT_FOUND;
- goto error;
- }
- max_len -= 2;
- if (max_len >= 0)
- {
- der[counter++] = 1;
- if (p->value[0] == 'F')
- der[counter++] = 0;
- else
- der[counter++] = 0xFF;
- }
- else
- counter += 2;
- }
- move = RIGHT;
- break;
- case ASN1_ETYPE_INTEGER:
- case ASN1_ETYPE_ENUMERATED:
- if ((p->type & CONST_DEFAULT) && (p->value == NULL))
- {
- counter = counter_old;
- max_len = max_len_old;
- }
- else
- {
- if (p->value == NULL)
- {
- _asn1_error_description_value_not_found (p,
- ErrorDescription);
- err = ASN1_VALUE_NOT_FOUND;
- goto error;
- }
- len2 = asn1_get_length_der (p->value, p->value_len, &len3);
- if (len2 < 0)
- {
- err = ASN1_DER_ERROR;
- goto error;
- }
- max_len -= len2 + len3;
- if (max_len >= 0)
- memcpy (der + counter, p->value, len3 + len2);
- counter += len3 + len2;
- }
- move = RIGHT;
- break;
- case ASN1_ETYPE_OBJECT_ID:
- if ((p->type & CONST_DEFAULT) && (p->value == NULL))
- {
- counter = counter_old;
- max_len = max_len_old;
- }
- else
- {
- if (p->value == NULL)
- {
- _asn1_error_description_value_not_found (p,
- ErrorDescription);
- err = ASN1_VALUE_NOT_FOUND;
- goto error;
- }
- len2 = max_len;
- err = _asn1_objectid_der (p->value, der + counter, &len2);
- if (err != ASN1_SUCCESS && err != ASN1_MEM_ERROR)
- goto error;
-
- max_len -= len2;
- counter += len2;
- }
- move = RIGHT;
- break;
- case ASN1_ETYPE_GENERALIZED_TIME:
- case ASN1_ETYPE_UTC_TIME:
- if (p->value == NULL)
- {
- _asn1_error_description_value_not_found (p, ErrorDescription);
- err = ASN1_VALUE_NOT_FOUND;
- goto error;
- }
- len2 = max_len;
- err = _asn1_time_der (p->value, p->value_len, der + counter, &len2);
- if (err != ASN1_SUCCESS && err != ASN1_MEM_ERROR)
- goto error;
-
- max_len -= len2;
- counter += len2;
- move = RIGHT;
- break;
- case ASN1_ETYPE_OCTET_STRING:
- case ASN1_ETYPE_GENERALSTRING:
- case ASN1_ETYPE_NUMERIC_STRING:
- case ASN1_ETYPE_IA5_STRING:
- case ASN1_ETYPE_TELETEX_STRING:
- case ASN1_ETYPE_PRINTABLE_STRING:
- case ASN1_ETYPE_UNIVERSAL_STRING:
- case ASN1_ETYPE_BMP_STRING:
- case ASN1_ETYPE_UTF8_STRING:
- case ASN1_ETYPE_VISIBLE_STRING:
- case ASN1_ETYPE_BIT_STRING:
- if (p->value == NULL)
- {
- _asn1_error_description_value_not_found (p, ErrorDescription);
- err = ASN1_VALUE_NOT_FOUND;
- goto error;
- }
- len2 = asn1_get_length_der (p->value, p->value_len, &len3);
- if (len2 < 0)
- {
- err = ASN1_DER_ERROR;
- goto error;
- }
- max_len -= len2 + len3;
- if (max_len >= 0)
- memcpy (der + counter, p->value, len3 + len2);
- counter += len3 + len2;
- move = RIGHT;
- break;
- case ASN1_ETYPE_SEQUENCE:
- case ASN1_ETYPE_SET:
- if (move != UP)
- {
- p->tmp_ival = counter;
- if (p->down == NULL)
- {
- move = UP;
- continue;
- }
- else
- {
- p2 = p->down;
- while (p2 && (type_field (p2->type) == ASN1_ETYPE_TAG))
- p2 = p2->right;
- if (p2)
- {
- p = p2;
- move = RIGHT;
- continue;
- }
- move = UP;
- continue;
- }
- }
- else
- { /* move==UP */
- len2 = p->tmp_ival;
- p->tmp_ival = 0;
- if ((type_field (p->type) == ASN1_ETYPE_SET) && (max_len >= 0))
- {
- err = _asn1_ordering_set (der + len2, counter - len2, p);
- if (err != ASN1_SUCCESS)
- goto error;
- }
- asn1_length_der (counter - len2, temp, &len3);
- max_len -= len3;
- if (max_len >= 0)
- {
- memmove (der + len2 + len3, der + len2, counter - len2);
- memcpy (der + len2, temp, len3);
- }
- counter += len3;
- move = RIGHT;
- }
- break;
- case ASN1_ETYPE_SEQUENCE_OF:
- case ASN1_ETYPE_SET_OF:
- if (move != UP)
- {
- p->tmp_ival = counter;
- p = p->down;
- while ((type_field (p->type) == ASN1_ETYPE_TAG)
- || (type_field (p->type) == ASN1_ETYPE_SIZE))
- p = p->right;
- if (p->right)
- {
- p = p->right;
- move = RIGHT;
- continue;
- }
- else
- p = _asn1_find_up (p);
- move = UP;
- }
- if (move == UP)
- {
- len2 = p->tmp_ival;
- p->tmp_ival = 0;
- if ((type_field (p->type) == ASN1_ETYPE_SET_OF)
- && (counter - len2 > 0) && (max_len >= 0))
- {
- err = _asn1_ordering_set_of (der + len2, counter - len2, p);
- if (err != ASN1_SUCCESS)
- goto error;
- }
- asn1_length_der (counter - len2, temp, &len3);
- max_len -= len3;
- if (max_len >= 0)
- {
- memmove (der + len2 + len3, der + len2, counter - len2);
- memcpy (der + len2, temp, len3);
- }
- counter += len3;
- move = RIGHT;
- }
- break;
- case ASN1_ETYPE_ANY:
- if (p->value == NULL)
- {
- _asn1_error_description_value_not_found (p, ErrorDescription);
- err = ASN1_VALUE_NOT_FOUND;
- goto error;
- }
- len2 = asn1_get_length_der (p->value, p->value_len, &len3);
- if (len2 < 0)
- {
- err = ASN1_DER_ERROR;
- goto error;
- }
- max_len -= len2;
- if (max_len >= 0)
- memcpy (der + counter, p->value + len3, len2);
- counter += len2;
- move = RIGHT;
- break;
- default:
- move = (move == UP) ? RIGHT : DOWN;
- break;
- }
-
- if ((move != DOWN) && (counter != counter_old))
- {
- p->end = counter - 1;
- err = _asn1_complete_explicit_tag (p, der, &counter, &max_len);
- if (err != ASN1_SUCCESS && err != ASN1_MEM_ERROR)
- goto error;
- }
-
- if (p == node && move != DOWN)
- break;
-
- if (move == DOWN)
- {
- if (p->down)
- p = p->down;
- else
- move = RIGHT;
- }
- if (move == RIGHT)
- {
- if (p->right)
- p = p->right;
- else
- move = UP;
- }
- if (move == UP)
- p = _asn1_find_up (p);
- }
-
- *len = counter;
-
- if (max_len < 0)
- {
- err = ASN1_MEM_ERROR;
- goto error;
- }
-
- err = ASN1_SUCCESS;
-
-error:
- asn1_delete_structure (&node);
- return err;
-}
diff --git a/lib/minitasn1/decoding.c b/lib/minitasn1/decoding.c
deleted file mode 100644
index 0ee35d3d09..0000000000
--- a/lib/minitasn1/decoding.c
+++ /dev/null
@@ -1,2369 +0,0 @@
-/*
- * Copyright (C) 2002-2016 Free Software Foundation, Inc.
- *
- * This file is part of LIBTASN1.
- *
- * The LIBTASN1 library is free software; you can redistribute it
- * and/or modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA
- */
-
-
-/*****************************************************/
-/* File: decoding.c */
-/* Description: Functions to manage DER decoding */
-/*****************************************************/
-
-#include <int.h>
-#include <parser_aux.h>
-#include <gstr.h>
-#include <structure.h>
-#include <element.h>
-#include <limits.h>
-#include <intprops.h>
-
-#ifdef DEBUG
-# define warn() fprintf(stderr, "%s: %d\n", __func__, __LINE__)
-#else
-# define warn()
-#endif
-
-#define IS_ERR(len, flags) (len < -1 || ((flags & ASN1_DECODE_FLAG_STRICT_DER) && len < 0))
-
-#define HAVE_TWO(x) (x>=2?1:0)
-
-#define DECODE_FLAG_HAVE_TAG 1
-#define DECODE_FLAG_INDEFINITE (1<<1)
-/* On indefinite string decoding, allow this maximum levels
- * of recursion. Allowing infinite recursion, makes the BER
- * decoder susceptible to stack exhaustion due to that recursion.
- */
-#define DECODE_FLAG_LEVEL1 (1<<2)
-#define DECODE_FLAG_LEVEL2 (1<<3)
-#define DECODE_FLAG_LEVEL3 (1<<4)
-
-#define DECR_LEN(l, s) do { \
- l -= s; \
- if (l < 0) { \
- warn(); \
- result = ASN1_DER_ERROR; \
- goto cleanup; \
- } \
- } while (0)
-
-static int
-_asn1_get_indefinite_length_string (const unsigned char *der, int der_len, int *len);
-
-static int
-_asn1_decode_simple_ber (unsigned int etype, const unsigned char *der,
- unsigned int _der_len, unsigned char **str,
- unsigned int *str_len, unsigned int *ber_len,
- unsigned dflags);
-
-static int
-_asn1_decode_simple_der (unsigned int etype, const unsigned char *der,
- unsigned int _der_len, const unsigned char **str,
- unsigned int *str_len, unsigned dflags);
-
-static void
-_asn1_error_description_tag_error (asn1_node node, char *ErrorDescription)
-{
-
- Estrcpy (ErrorDescription, ":: tag error near element '");
- _asn1_hierarchical_name (node, ErrorDescription + strlen (ErrorDescription),
- ASN1_MAX_ERROR_DESCRIPTION_SIZE - 40);
- Estrcat (ErrorDescription, "'");
-
-}
-
-/**
- * asn1_get_length_der:
- * @der: DER data to decode.
- * @der_len: Length of DER data to decode.
- * @len: Output variable containing the length of the DER length field.
- *
- * Extract a length field from DER data.
- *
- * Returns: Return the decoded length value, or -1 on indefinite
- * length, or -2 when the value was too big to fit in a int, or -4
- * when the decoded length value plus @len would exceed @der_len.
- **/
-long
-asn1_get_length_der (const unsigned char *der, int der_len, int *len)
-{
- unsigned int ans;
- int k, punt, sum;
-
- *len = 0;
- if (der_len <= 0)
- return 0;
-
- if (!(der[0] & 128))
- {
- /* short form */
- *len = 1;
- ans = der[0];
- }
- else
- {
- /* Long form */
- k = der[0] & 0x7F;
- punt = 1;
- if (k)
- { /* definite length method */
- ans = 0;
- while (punt <= k && punt < der_len)
- {
- if (INT_MULTIPLY_OVERFLOW (ans, 256))
- return -2;
- ans *= 256;
-
- if (INT_ADD_OVERFLOW (ans, ((unsigned) der[punt])))
- return -2;
- ans += der[punt];
- punt++;
- }
- }
- else
- { /* indefinite length method */
- *len = punt;
- return -1;
- }
-
- *len = punt;
- }
-
- sum = ans;
- if (ans >= INT_MAX || INT_ADD_OVERFLOW (sum, (*len)))
- return -2;
- sum += *len;
-
- if (sum > der_len)
- return -4;
-
- return ans;
-}
-
-/**
- * asn1_get_tag_der:
- * @der: DER data to decode.
- * @der_len: Length of DER data to decode.
- * @cls: Output variable containing decoded class.
- * @len: Output variable containing the length of the DER TAG data.
- * @tag: Output variable containing the decoded tag (may be %NULL).
- *
- * Decode the class and TAG from DER code.
- *
- * Returns: Returns %ASN1_SUCCESS on success, or an error.
- **/
-int
-asn1_get_tag_der (const unsigned char *der, int der_len,
- unsigned char *cls, int *len, unsigned long *tag)
-{
- unsigned int ris;
- int punt;
-
- if (der == NULL || der_len < 2 || len == NULL)
- return ASN1_DER_ERROR;
-
- *cls = der[0] & 0xE0;
- if ((der[0] & 0x1F) != 0x1F)
- {
- /* short form */
- *len = 1;
- ris = der[0] & 0x1F;
- }
- else
- {
- /* Long form */
- punt = 1;
- ris = 0;
- while (punt < der_len && der[punt] & 128)
- {
-
- if (INT_MULTIPLY_OVERFLOW (ris, 128))
- return ASN1_DER_ERROR;
- ris *= 128;
-
- if (INT_ADD_OVERFLOW (ris, ((unsigned) (der[punt] & 0x7F))))
- return ASN1_DER_ERROR;
- ris += (der[punt] & 0x7F);
- punt++;
- }
-
- if (punt >= der_len)
- return ASN1_DER_ERROR;
-
- if (INT_MULTIPLY_OVERFLOW (ris, 128))
- return ASN1_DER_ERROR;
- ris *= 128;
-
- if (INT_ADD_OVERFLOW (ris, ((unsigned) (der[punt] & 0x7F))))
- return ASN1_DER_ERROR;
- ris += (der[punt] & 0x7F);
- punt++;
-
- *len = punt;
- }
-
- if (tag)
- *tag = ris;
- return ASN1_SUCCESS;
-}
-
-/**
- * asn1_get_length_ber:
- * @ber: BER data to decode.
- * @ber_len: Length of BER data to decode.
- * @len: Output variable containing the length of the BER length field.
- *
- * Extract a length field from BER data. The difference to
- * asn1_get_length_der() is that this function will return a length
- * even if the value has indefinite encoding.
- *
- * Returns: Return the decoded length value, or negative value when
- * the value was too big.
- *
- * Since: 2.0
- **/
-long
-asn1_get_length_ber (const unsigned char *ber, int ber_len, int *len)
-{
- int ret;
- long err;
-
- ret = asn1_get_length_der (ber, ber_len, len);
- if (ret == -1 && ber_len > 1)
- { /* indefinite length method */
- err = _asn1_get_indefinite_length_string (ber + 1, ber_len-1, &ret);
- if (err != ASN1_SUCCESS)
- return -3;
- }
-
- return ret;
-}
-
-/**
- * asn1_get_octet_der:
- * @der: DER data to decode containing the OCTET SEQUENCE.
- * @der_len: The length of the @der data to decode.
- * @ret_len: Output variable containing the encoded length of the DER data.
- * @str: Pre-allocated output buffer to put decoded OCTET SEQUENCE in.
- * @str_size: Length of pre-allocated output buffer.
- * @str_len: Output variable containing the length of the contents of the OCTET SEQUENCE.
- *
- * Extract an OCTET SEQUENCE from DER data. Note that this function
- * expects the DER data past the tag field, i.e., the length and
- * content octets.
- *
- * Returns: Returns %ASN1_SUCCESS on success, or an error.
- **/
-int
-asn1_get_octet_der (const unsigned char *der, int der_len,
- int *ret_len, unsigned char *str, int str_size,
- int *str_len)
-{
- int len_len = 0;
-
- if (der_len <= 0)
- return ASN1_GENERIC_ERROR;
-
- *str_len = asn1_get_length_der (der, der_len, &len_len);
-
- if (*str_len < 0)
- return ASN1_DER_ERROR;
-
- *ret_len = *str_len + len_len;
- if (str_size >= *str_len)
- {
- if (*str_len > 0 && str != NULL)
- memcpy (str, der + len_len, *str_len);
- }
- else
- {
- return ASN1_MEM_ERROR;
- }
-
- return ASN1_SUCCESS;
-}
-
-
-/*-
- * _asn1_get_time_der:
- * @type: %ASN1_ETYPE_GENERALIZED_TIME or %ASN1_ETYPE_UTC_TIME
- * @der: DER data to decode containing the time
- * @der_len: Length of DER data to decode.
- * @ret_len: Output variable containing the length of the DER data.
- * @str: Pre-allocated output buffer to put the textual time in.
- * @str_size: Length of pre-allocated output buffer.
- * @flags: Zero or %ASN1_DECODE_FLAG_STRICT_DER
- *
- * Performs basic checks in the DER encoded time object and returns its textual form.
- * The textual form will be in the YYYYMMDD000000Z format for GeneralizedTime
- * and YYMMDD000000Z for UTCTime.
- *
- * Returns: %ASN1_SUCCESS on success, or an error.
- -*/
-static int
-_asn1_get_time_der (unsigned type, const unsigned char *der, int der_len, int *ret_len,
- char *str, int str_size, unsigned flags)
-{
- int len_len, str_len;
- unsigned i;
- unsigned sign_count = 0;
- unsigned dot_count = 0;
- const unsigned char *p;
-
- if (der_len <= 0 || str == NULL)
- return ASN1_DER_ERROR;
-
- str_len = asn1_get_length_der (der, der_len, &len_len);
- if (str_len <= 0 || str_size < str_len)
- return ASN1_DER_ERROR;
-
- /* perform some sanity checks on the data */
- if (str_len < 8)
- {
- warn();
- return ASN1_TIME_ENCODING_ERROR;
- }
-
- if ((flags & ASN1_DECODE_FLAG_STRICT_DER) && !(flags & ASN1_DECODE_FLAG_ALLOW_INCORRECT_TIME))
- {
- p = &der[len_len];
- for (i=0;i<(unsigned)(str_len-1);i++)
- {
- if (isdigit(p[i]) == 0)
- {
- if (type == ASN1_ETYPE_GENERALIZED_TIME)
- {
- /* tolerate lax encodings */
- if (p[i] == '.' && dot_count == 0)
- {
- dot_count++;
- continue;
- }
-
- /* This is not really valid DER, but there are
- * structures using that */
- if (!(flags & ASN1_DECODE_FLAG_STRICT_DER) &&
- (p[i] == '+' || p[i] == '-') && sign_count == 0)
- {
- sign_count++;
- continue;
- }
- }
-
- warn();
- return ASN1_TIME_ENCODING_ERROR;
- }
- }
-
- if (sign_count == 0 && p[str_len-1] != 'Z')
- {
- warn();
- return ASN1_TIME_ENCODING_ERROR;
- }
- }
- memcpy (str, der + len_len, str_len);
- str[str_len] = 0;
- *ret_len = str_len + len_len;
-
- return ASN1_SUCCESS;
-}
-
-/**
- * asn1_get_objectid_der:
- * @der: DER data to decode containing the OBJECT IDENTIFIER
- * @der_len: Length of DER data to decode.
- * @ret_len: Output variable containing the length of the DER data.
- * @str: Pre-allocated output buffer to put the textual object id in.
- * @str_size: Length of pre-allocated output buffer.
- *
- * Converts a DER encoded object identifier to its textual form. This
- * function expects the DER object identifier without the tag.
- *
- * Returns: %ASN1_SUCCESS on success, or an error.
- **/
-int
-asn1_get_object_id_der (const unsigned char *der, int der_len, int *ret_len,
- char *str, int str_size)
-{
- int len_len, len, k;
- int leading;
- char temp[LTOSTR_MAX_SIZE];
- uint64_t val, val1;
-
- *ret_len = 0;
- if (str && str_size > 0)
- str[0] = 0; /* no oid */
-
- if (str == NULL || der_len <= 0)
- return ASN1_GENERIC_ERROR;
-
- len = asn1_get_length_der (der, der_len, &len_len);
-
- if (len <= 0 || len + len_len > der_len)
- return ASN1_DER_ERROR;
-
- val1 = der[len_len] / 40;
- val = der[len_len] - val1 * 40;
-
- _asn1_str_cpy (str, str_size, _asn1_ltostr (val1, temp));
- _asn1_str_cat (str, str_size, ".");
- _asn1_str_cat (str, str_size, _asn1_ltostr (val, temp));
-
- val = 0;
- leading = 1;
- for (k = 1; k < len; k++)
- {
- /* X.690 mandates that the leading byte must never be 0x80
- */
- if (leading != 0 && der[len_len + k] == 0x80)
- return ASN1_DER_ERROR;
- leading = 0;
-
- /* check for wrap around */
- if (INT_LEFT_SHIFT_OVERFLOW (val, 7))
- return ASN1_DER_ERROR;
-
- val = val << 7;
- val |= der[len_len + k] & 0x7F;
-
- if (!(der[len_len + k] & 0x80))
- {
- _asn1_str_cat (str, str_size, ".");
- _asn1_str_cat (str, str_size, _asn1_ltostr (val, temp));
- val = 0;
- leading = 1;
- }
- }
-
- if (INT_ADD_OVERFLOW (len, len_len))
- return ASN1_DER_ERROR;
-
- *ret_len = len + len_len;
-
- return ASN1_SUCCESS;
-}
-
-/**
- * asn1_get_bit_der:
- * @der: DER data to decode containing the BIT SEQUENCE.
- * @der_len: Length of DER data to decode.
- * @ret_len: Output variable containing the length of the DER data.
- * @str: Pre-allocated output buffer to put decoded BIT SEQUENCE in.
- * @str_size: Length of pre-allocated output buffer.
- * @bit_len: Output variable containing the size of the BIT SEQUENCE.
- *
- * Extract a BIT SEQUENCE from DER data.
- *
- * Returns: %ASN1_SUCCESS on success, or an error.
- **/
-int
-asn1_get_bit_der (const unsigned char *der, int der_len,
- int *ret_len, unsigned char *str, int str_size,
- int *bit_len)
-{
- int len_len = 0, len_byte;
-
- if (der_len <= 0)
- return ASN1_GENERIC_ERROR;
-
- len_byte = asn1_get_length_der (der, der_len, &len_len) - 1;
- if (len_byte < 0)
- return ASN1_DER_ERROR;
-
- *ret_len = len_byte + len_len + 1;
- *bit_len = len_byte * 8 - der[len_len];
-
- if (*bit_len < 0)
- return ASN1_DER_ERROR;
-
- if (str_size >= len_byte)
- {
- if (len_byte > 0 && str)
- memcpy (str, der + len_len + 1, len_byte);
- }
- else
- {
- return ASN1_MEM_ERROR;
- }
-
- return ASN1_SUCCESS;
-}
-
-/* tag_len: the total tag length (explicit+inner)
- * inner_tag_len: the inner_tag length
- */
-static int
-_asn1_extract_tag_der (asn1_node node, const unsigned char *der, int der_len,
- int *tag_len, int *inner_tag_len, unsigned flags)
-{
- asn1_node p;
- int counter, len2, len3, is_tag_implicit;
- int result;
- unsigned long tag, tag_implicit = 0;
- unsigned char class, class2, class_implicit = 0;
-
- if (der_len <= 0)
- return ASN1_GENERIC_ERROR;
-
- counter = is_tag_implicit = 0;
-
- if (node->type & CONST_TAG)
- {
- p = node->down;
- while (p)
- {
- if (type_field (p->type) == ASN1_ETYPE_TAG)
- {
- if (p->type & CONST_APPLICATION)
- class2 = ASN1_CLASS_APPLICATION;
- else if (p->type & CONST_UNIVERSAL)
- class2 = ASN1_CLASS_UNIVERSAL;
- else if (p->type & CONST_PRIVATE)
- class2 = ASN1_CLASS_PRIVATE;
- else
- class2 = ASN1_CLASS_CONTEXT_SPECIFIC;
-
- if (p->type & CONST_EXPLICIT)
- {
- if (asn1_get_tag_der
- (der + counter, der_len, &class, &len2,
- &tag) != ASN1_SUCCESS)
- return ASN1_DER_ERROR;
-
- DECR_LEN(der_len, len2);
- counter += len2;
-
- if (flags & ASN1_DECODE_FLAG_STRICT_DER)
- len3 =
- asn1_get_length_der (der + counter, der_len,
- &len2);
- else
- len3 =
- asn1_get_length_ber (der + counter, der_len,
- &len2);
- if (len3 < 0)
- return ASN1_DER_ERROR;
-
- DECR_LEN(der_len, len2);
- counter += len2;
-
- if (!is_tag_implicit)
- {
- if ((class != (class2 | ASN1_CLASS_STRUCTURED)) ||
- (tag != strtoul ((char *) p->value, NULL, 10)))
- return ASN1_TAG_ERROR;
- }
- else
- { /* ASN1_TAG_IMPLICIT */
- if ((class != class_implicit) || (tag != tag_implicit))
- return ASN1_TAG_ERROR;
- }
- is_tag_implicit = 0;
- }
- else
- { /* ASN1_TAG_IMPLICIT */
- if (!is_tag_implicit)
- {
- if ((type_field (node->type) == ASN1_ETYPE_SEQUENCE) ||
- (type_field (node->type) == ASN1_ETYPE_SEQUENCE_OF)
- || (type_field (node->type) == ASN1_ETYPE_SET)
- || (type_field (node->type) == ASN1_ETYPE_SET_OF))
- class2 |= ASN1_CLASS_STRUCTURED;
- class_implicit = class2;
- tag_implicit = strtoul ((char *) p->value, NULL, 10);
- is_tag_implicit = 1;
- }
- }
- }
- p = p->right;
- }
- }
-
- if (is_tag_implicit)
- {
- if (asn1_get_tag_der
- (der + counter, der_len, &class, &len2,
- &tag) != ASN1_SUCCESS)
- return ASN1_DER_ERROR;
-
- DECR_LEN(der_len, len2);
-
- if ((class != class_implicit) || (tag != tag_implicit))
- {
- if (type_field (node->type) == ASN1_ETYPE_OCTET_STRING)
- {
- class_implicit |= ASN1_CLASS_STRUCTURED;
- if ((class != class_implicit) || (tag != tag_implicit))
- return ASN1_TAG_ERROR;
- }
- else
- return ASN1_TAG_ERROR;
- }
- }
- else
- {
- unsigned type = type_field (node->type);
- if (type == ASN1_ETYPE_TAG)
- {
- *tag_len = 0;
- if (inner_tag_len)
- *inner_tag_len = 0;
- return ASN1_SUCCESS;
- }
-
- if (asn1_get_tag_der
- (der + counter, der_len, &class, &len2,
- &tag) != ASN1_SUCCESS)
- return ASN1_DER_ERROR;
-
- DECR_LEN(der_len, len2);
-
- switch (type)
- {
- case ASN1_ETYPE_NULL:
- case ASN1_ETYPE_BOOLEAN:
- case ASN1_ETYPE_INTEGER:
- case ASN1_ETYPE_ENUMERATED:
- case ASN1_ETYPE_OBJECT_ID:
- case ASN1_ETYPE_GENERALSTRING:
- case ASN1_ETYPE_NUMERIC_STRING:
- case ASN1_ETYPE_IA5_STRING:
- case ASN1_ETYPE_TELETEX_STRING:
- case ASN1_ETYPE_PRINTABLE_STRING:
- case ASN1_ETYPE_UNIVERSAL_STRING:
- case ASN1_ETYPE_BMP_STRING:
- case ASN1_ETYPE_UTF8_STRING:
- case ASN1_ETYPE_VISIBLE_STRING:
- case ASN1_ETYPE_BIT_STRING:
- case ASN1_ETYPE_SEQUENCE:
- case ASN1_ETYPE_SEQUENCE_OF:
- case ASN1_ETYPE_SET:
- case ASN1_ETYPE_SET_OF:
- case ASN1_ETYPE_GENERALIZED_TIME:
- case ASN1_ETYPE_UTC_TIME:
- if ((class != _asn1_tags[type].class)
- || (tag != _asn1_tags[type].tag))
- return ASN1_DER_ERROR;
- break;
-
- case ASN1_ETYPE_OCTET_STRING:
- /* OCTET STRING is handled differently to allow
- * BER encodings (structured class). */
- if (((class != ASN1_CLASS_UNIVERSAL)
- && (class != (ASN1_CLASS_UNIVERSAL | ASN1_CLASS_STRUCTURED)))
- || (tag != ASN1_TAG_OCTET_STRING))
- return ASN1_DER_ERROR;
- break;
- case ASN1_ETYPE_ANY:
- counter -= len2;
- break;
- case ASN1_ETYPE_CHOICE:
- counter -= len2;
- break;
- default:
- return ASN1_DER_ERROR;
- break;
- }
- }
-
- counter += len2;
- *tag_len = counter;
- if (inner_tag_len)
- *inner_tag_len = len2;
- return ASN1_SUCCESS;
-
-cleanup:
- return result;
-}
-
-static int
-extract_tag_der_recursive(asn1_node node, const unsigned char *der, int der_len,
- int *ret_len, int *inner_len, unsigned flags)
-{
-asn1_node p;
-int ris = ASN1_DER_ERROR;
-
- if (type_field (node->type) == ASN1_ETYPE_CHOICE)
- {
- p = node->down;
- while (p)
- {
- ris = _asn1_extract_tag_der (p, der, der_len, ret_len, inner_len, flags);
- if (ris == ASN1_SUCCESS)
- break;
- p = p->right;
- }
-
- *ret_len = 0;
- return ris;
- }
- else
- return _asn1_extract_tag_der (node, der, der_len, ret_len, inner_len, flags);
-}
-
-static int
-_asn1_delete_not_used (asn1_node node)
-{
- asn1_node p, p2;
-
- if (node == NULL)
- return ASN1_ELEMENT_NOT_FOUND;
-
- p = node;
- while (p)
- {
- if (p->type & CONST_NOT_USED)
- {
- p2 = NULL;
- if (p != node)
- {
- p2 = _asn1_find_left (p);
- if (!p2)
- p2 = _asn1_find_up (p);
- }
- asn1_delete_structure (&p);
- p = p2;
- }
-
- if (!p)
- break; /* reach node */
-
- if (p->down)
- {
- p = p->down;
- }
- else
- {
- if (p == node)
- p = NULL;
- else if (p->right)
- p = p->right;
- else
- {
- while (1)
- {
- p = _asn1_find_up (p);
- if (p == node)
- {
- p = NULL;
- break;
- }
- if (p->right)
- {
- p = p->right;
- break;
- }
- }
- }
- }
- }
- return ASN1_SUCCESS;
-}
-
-static int
-_asn1_get_indefinite_length_string (const unsigned char *der,
- int der_len, int *len)
-{
- int len2, len3, counter, indefinite;
- int result;
- unsigned long tag;
- unsigned char class;
-
- counter = indefinite = 0;
-
- while (1)
- {
- if (HAVE_TWO(der_len) && (der[counter] == 0) && (der[counter + 1] == 0))
- {
- counter += 2;
- DECR_LEN(der_len, 2);
-
- indefinite--;
- if (indefinite <= 0)
- break;
- else
- continue;
- }
-
- if (asn1_get_tag_der
- (der + counter, der_len, &class, &len2,
- &tag) != ASN1_SUCCESS)
- return ASN1_DER_ERROR;
-
- DECR_LEN(der_len, len2);
- counter += len2;
-
- len2 = asn1_get_length_der (der + counter, der_len, &len3);
- if (len2 < -1)
- return ASN1_DER_ERROR;
-
- if (len2 == -1)
- {
- indefinite++;
- counter += 1;
- DECR_LEN(der_len, 1);
- }
- else
- {
- counter += len2 + len3;
- DECR_LEN(der_len, len2+len3);
- }
- }
-
- *len = counter;
- return ASN1_SUCCESS;
-
-cleanup:
- return result;
-}
-
-static void delete_unneeded_choice_fields(asn1_node p)
-{
- asn1_node p2;
-
- while (p->right)
- {
- p2 = p->right;
- asn1_delete_structure (&p2);
- }
-}
-
-
-/**
- * asn1_der_decoding2
- * @element: pointer to an ASN1 structure.
- * @ider: vector that contains the DER encoding.
- * @max_ider_len: pointer to an integer giving the information about the
- * maximal number of bytes occupied by *@ider. The real size of the DER
- * encoding is returned through this pointer.
- * @flags: flags controlling the behaviour of the function.
- * @errorDescription: null-terminated string contains details when an
- * error occurred.
- *
- * Fill the structure *@element with values of a DER encoding string. The
- * structure must just be created with function asn1_create_element().
- *
- * If %ASN1_DECODE_FLAG_ALLOW_PADDING flag is set then the function will ignore
- * padding after the decoded DER data. Upon a successful return the value of
- * *@max_ider_len will be set to the number of bytes decoded.
- *
- * If %ASN1_DECODE_FLAG_STRICT_DER flag is set then the function will
- * not decode any BER-encoded elements.
- *
- * Returns: %ASN1_SUCCESS if DER encoding OK, %ASN1_ELEMENT_NOT_FOUND
- * if @ELEMENT is %NULL, and %ASN1_TAG_ERROR or
- * %ASN1_DER_ERROR if the der encoding doesn't match the structure
- * name (*@ELEMENT deleted).
- **/
-int
-asn1_der_decoding2 (asn1_node *element, const void *ider, int *max_ider_len,
- unsigned int flags, char *errorDescription)
-{
- asn1_node node, p, p2, p3;
- char temp[128];
- int counter, len2, len3, len4, move, ris, tlen;
- struct node_tail_cache_st tcache = {NULL, NULL};
- unsigned char class;
- unsigned long tag;
- int tag_len;
- int indefinite, result, total_len = *max_ider_len, ider_len = *max_ider_len;
- int inner_tag_len;
- unsigned char *ptmp;
- const unsigned char *ptag;
- const unsigned char *der = ider;
-
- node = *element;
-
- if (errorDescription != NULL)
- errorDescription[0] = 0;
-
- if (node == NULL)
- return ASN1_ELEMENT_NOT_FOUND;
-
- if (node->type & CONST_OPTION)
- {
- result = ASN1_GENERIC_ERROR;
- warn();
- goto cleanup;
- }
-
- counter = 0;
- move = DOWN;
- p = node;
- while (1)
- {
- tag_len = 0;
- inner_tag_len = 0;
- ris = ASN1_SUCCESS;
- if (move != UP)
- {
- if (p->type & CONST_SET)
- {
- p2 = _asn1_find_up (p);
- len2 = p2->tmp_ival;
- if (len2 == -1)
- {
- if (HAVE_TWO(ider_len) && !der[counter] && !der[counter + 1])
- {
- p = p2;
- move = UP;
- counter += 2;
- DECR_LEN(ider_len, 2);
- continue;
- }
- }
- else if (counter == len2)
- {
- p = p2;
- move = UP;
- continue;
- }
- else if (counter > len2)
- {
- result = ASN1_DER_ERROR;
- warn();
- goto cleanup;
- }
- p2 = p2->down;
- while (p2)
- {
- if ((p2->type & CONST_SET) && (p2->type & CONST_NOT_USED))
- {
- ris =
- extract_tag_der_recursive (p2, der + counter,
- ider_len, &len2, NULL, flags);
- if (ris == ASN1_SUCCESS)
- {
- p2->type &= ~CONST_NOT_USED;
- p = p2;
- break;
- }
- }
- p2 = p2->right;
- }
- if (p2 == NULL)
- {
- result = ASN1_DER_ERROR;
- warn();
- goto cleanup;
- }
- }
-
- /* the position in the DER structure this starts */
- p->start = counter;
- p->end = total_len - 1;
-
- if ((p->type & CONST_OPTION) || (p->type & CONST_DEFAULT))
- {
- p2 = _asn1_find_up (p);
- len2 = p2->tmp_ival;
- if (counter == len2)
- {
- if (p->right)
- {
- p2 = p->right;
- move = RIGHT;
- }
- else
- move = UP;
-
- if (p->type & CONST_OPTION)
- asn1_delete_structure (&p);
-
- p = p2;
- continue;
- }
- }
-
- if (type_field (p->type) == ASN1_ETYPE_CHOICE)
- {
- while (p->down)
- {
- ris =
- extract_tag_der_recursive (p->down, der + counter,
- ider_len, &len2, NULL, flags);
-
- if (ris == ASN1_SUCCESS)
- {
- delete_unneeded_choice_fields(p->down);
- break;
- }
- else if (ris == ASN1_ERROR_TYPE_ANY)
- {
- result = ASN1_ERROR_TYPE_ANY;
- warn();
- goto cleanup;
- }
- else
- {
- p2 = p->down;
- asn1_delete_structure (&p2);
- }
- }
-
- if (p->down == NULL)
- {
- if (!(p->type & CONST_OPTION))
- {
- result = ASN1_DER_ERROR;
- warn();
- goto cleanup;
- }
- }
- else if (type_field (p->type) != ASN1_ETYPE_CHOICE)
- p = p->down;
-
- p->start = counter;
- }
-
- if ((p->type & CONST_OPTION) || (p->type & CONST_DEFAULT))
- {
- p2 = _asn1_find_up (p);
- len2 = p2->tmp_ival;
-
- if ((len2 != -1) && (counter > len2))
- ris = ASN1_TAG_ERROR;
- }
-
- if (ris == ASN1_SUCCESS)
- ris =
- extract_tag_der_recursive (p, der + counter, ider_len,
- &tag_len, &inner_tag_len, flags);
-
- if (ris != ASN1_SUCCESS)
- {
- if (p->type & CONST_OPTION)
- {
- p->type |= CONST_NOT_USED;
- move = RIGHT;
- }
- else if (p->type & CONST_DEFAULT)
- {
- _asn1_set_value (p, NULL, 0);
- move = RIGHT;
- }
- else
- {
- if (errorDescription != NULL)
- _asn1_error_description_tag_error (p, errorDescription);
-
- result = ASN1_TAG_ERROR;
- warn();
- goto cleanup;
- }
- }
- else
- {
- DECR_LEN(ider_len, tag_len);
- counter += tag_len;
- }
- }
-
- if (ris == ASN1_SUCCESS)
- {
- switch (type_field (p->type))
- {
- case ASN1_ETYPE_NULL:
- DECR_LEN(ider_len, 1);
- if (der[counter])
- {
- result = ASN1_DER_ERROR;
- warn();
- goto cleanup;
- }
- counter++;
- move = RIGHT;
- break;
- case ASN1_ETYPE_BOOLEAN:
- DECR_LEN(ider_len, 2);
-
- if (der[counter++] != 1)
- {
- result = ASN1_DER_ERROR;
- warn();
- goto cleanup;
- }
- if (der[counter++] == 0)
- _asn1_set_value (p, "F", 1);
- else
- _asn1_set_value (p, "T", 1);
- move = RIGHT;
- break;
- case ASN1_ETYPE_INTEGER:
- case ASN1_ETYPE_ENUMERATED:
- len2 =
- asn1_get_length_der (der + counter, ider_len, &len3);
- if (len2 < 0)
- {
- result = ASN1_DER_ERROR;
- warn();
- goto cleanup;
- }
-
- DECR_LEN(ider_len, len3+len2);
-
- _asn1_set_value (p, der + counter, len3 + len2);
- counter += len3 + len2;
- move = RIGHT;
- break;
- case ASN1_ETYPE_OBJECT_ID:
- result =
- asn1_get_object_id_der (der + counter, ider_len, &len2,
- temp, sizeof (temp));
- if (result != ASN1_SUCCESS)
- {
- warn();
- goto cleanup;
- }
-
- DECR_LEN(ider_len, len2);
-
- tlen = strlen (temp);
- if (tlen > 0)
- _asn1_set_value (p, temp, tlen + 1);
-
- counter += len2;
- move = RIGHT;
- break;
- case ASN1_ETYPE_GENERALIZED_TIME:
- case ASN1_ETYPE_UTC_TIME:
- result =
- _asn1_get_time_der (type_field (p->type), der + counter, ider_len, &len2, temp,
- sizeof (temp) - 1, flags);
- if (result != ASN1_SUCCESS)
- {
- warn();
- goto cleanup;
- }
-
- DECR_LEN(ider_len, len2);
-
- tlen = strlen (temp);
- if (tlen > 0)
- _asn1_set_value (p, temp, tlen);
-
- counter += len2;
- move = RIGHT;
- break;
- case ASN1_ETYPE_OCTET_STRING:
- if (counter < inner_tag_len)
- {
- result = ASN1_DER_ERROR;
- warn();
- goto cleanup;
- }
-
- ptag = der + counter - inner_tag_len;
- if (flags & ASN1_DECODE_FLAG_STRICT_DER || !(ptag[0] & ASN1_CLASS_STRUCTURED))
- {
- len2 =
- asn1_get_length_der (der + counter, ider_len, &len3);
- if (len2 < 0)
- {
- result = ASN1_DER_ERROR;
- warn();
- goto cleanup;
- }
-
- DECR_LEN(ider_len, len3+len2);
-
- _asn1_set_value (p, der + counter, len3 + len2);
- counter += len3 + len2;
- }
- else
- {
- unsigned dflags = 0, vlen, ber_len;
-
- if (ptag[0] & ASN1_CLASS_STRUCTURED)
- dflags |= DECODE_FLAG_INDEFINITE;
-
- result = _asn1_decode_simple_ber(type_field (p->type), der+counter, ider_len, &ptmp, &vlen, &ber_len, dflags);
- if (result != ASN1_SUCCESS)
- {
- warn();
- goto cleanup;
- }
-
- DECR_LEN(ider_len, ber_len);
-
- _asn1_set_value_lv (p, ptmp, vlen);
-
- counter += ber_len;
- free(ptmp);
- }
- move = RIGHT;
- break;
- case ASN1_ETYPE_GENERALSTRING:
- case ASN1_ETYPE_NUMERIC_STRING:
- case ASN1_ETYPE_IA5_STRING:
- case ASN1_ETYPE_TELETEX_STRING:
- case ASN1_ETYPE_PRINTABLE_STRING:
- case ASN1_ETYPE_UNIVERSAL_STRING:
- case ASN1_ETYPE_BMP_STRING:
- case ASN1_ETYPE_UTF8_STRING:
- case ASN1_ETYPE_VISIBLE_STRING:
- case ASN1_ETYPE_BIT_STRING:
- len2 =
- asn1_get_length_der (der + counter, ider_len, &len3);
- if (len2 < 0)
- {
- result = ASN1_DER_ERROR;
- warn();
- goto cleanup;
- }
-
- DECR_LEN(ider_len, len3+len2);
-
- _asn1_set_value (p, der + counter, len3 + len2);
- counter += len3 + len2;
- move = RIGHT;
- break;
- case ASN1_ETYPE_SEQUENCE:
- case ASN1_ETYPE_SET:
- if (move == UP)
- {
- len2 = p->tmp_ival;
- p->tmp_ival = 0;
- if (len2 == -1)
- { /* indefinite length method */
- DECR_LEN(ider_len, 2);
- if ((der[counter]) || der[counter + 1])
- {
- result = ASN1_DER_ERROR;
- warn();
- goto cleanup;
- }
- counter += 2;
- }
- else
- { /* definite length method */
- if (len2 != counter)
- {
- result = ASN1_DER_ERROR;
- warn();
- goto cleanup;
- }
- }
- move = RIGHT;
- }
- else
- { /* move==DOWN || move==RIGHT */
- len3 =
- asn1_get_length_der (der + counter, ider_len, &len2);
- if (IS_ERR(len3, flags))
- {
- result = ASN1_DER_ERROR;
- warn();
- goto cleanup;
- }
-
- DECR_LEN(ider_len, len2);
- counter += len2;
-
- if (len3 > 0)
- {
- p->tmp_ival = counter + len3;
- move = DOWN;
- }
- else if (len3 == 0)
- {
- p2 = p->down;
- while (p2)
- {
- if (type_field (p2->type) != ASN1_ETYPE_TAG)
- {
- p3 = p2->right;
- asn1_delete_structure (&p2);
- p2 = p3;
- }
- else
- p2 = p2->right;
- }
- move = RIGHT;
- }
- else
- { /* indefinite length method */
- p->tmp_ival = -1;
- move = DOWN;
- }
- }
- break;
- case ASN1_ETYPE_SEQUENCE_OF:
- case ASN1_ETYPE_SET_OF:
- if (move == UP)
- {
- len2 = p->tmp_ival;
- if (len2 == -1)
- { /* indefinite length method */
- if (!HAVE_TWO(ider_len) || ((der[counter]) || der[counter + 1]))
- {
- result = _asn1_append_sequence_set (p, &tcache);
- if (result != 0)
- {
- warn();
- goto cleanup;
- }
- p = tcache.tail;
- move = RIGHT;
- continue;
- }
-
- p->tmp_ival = 0;
- tcache.tail = NULL; /* finished decoding this structure */
- tcache.head = NULL;
- DECR_LEN(ider_len, 2);
- counter += 2;
- }
- else
- { /* definite length method */
- if (len2 > counter)
- {
- result = _asn1_append_sequence_set (p, &tcache);
- if (result != 0)
- {
- warn();
- goto cleanup;
- }
- p = tcache.tail;
- move = RIGHT;
- continue;
- }
-
- p->tmp_ival = 0;
- tcache.tail = NULL; /* finished decoding this structure */
- tcache.head = NULL;
-
- if (len2 != counter)
- {
- result = ASN1_DER_ERROR;
- warn();
- goto cleanup;
- }
- }
- }
- else
- { /* move==DOWN || move==RIGHT */
- len3 =
- asn1_get_length_der (der + counter, ider_len, &len2);
- if (IS_ERR(len3, flags))
- {
- result = ASN1_DER_ERROR;
- warn();
- goto cleanup;
- }
-
- DECR_LEN(ider_len, len2);
- counter += len2;
- if (len3)
- {
- if (len3 > 0)
- { /* definite length method */
- p->tmp_ival = counter + len3;
- }
- else
- { /* indefinite length method */
- p->tmp_ival = -1;
- }
-
- p2 = p->down;
- if (p2 == NULL)
- {
- result = ASN1_DER_ERROR;
- warn();
- goto cleanup;
- }
-
- while ((type_field (p2->type) == ASN1_ETYPE_TAG)
- || (type_field (p2->type) == ASN1_ETYPE_SIZE))
- p2 = p2->right;
- if (p2->right == NULL)
- {
- result = _asn1_append_sequence_set (p, &tcache);
- if (result != 0)
- {
- warn();
- goto cleanup;
- }
- }
- p = p2;
- }
- }
- move = RIGHT;
- break;
- case ASN1_ETYPE_ANY:
- /* Check indefinite lenth method in an EXPLICIT TAG */
-
- if (!(flags & ASN1_DECODE_FLAG_STRICT_DER) && (p->type & CONST_TAG) &&
- tag_len == 2 && (der[counter - 1] == 0x80))
- indefinite = 1;
- else
- indefinite = 0;
-
- if (asn1_get_tag_der
- (der + counter, ider_len, &class, &len2,
- &tag) != ASN1_SUCCESS)
- {
- result = ASN1_DER_ERROR;
- warn();
- goto cleanup;
- }
-
- DECR_LEN(ider_len, len2);
-
- len4 =
- asn1_get_length_der (der + counter + len2,
- ider_len, &len3);
- if (IS_ERR(len4, flags))
- {
- result = ASN1_DER_ERROR;
- warn();
- goto cleanup;
- }
- if (len4 != -1) /* definite */
- {
- len2 += len4;
-
- DECR_LEN(ider_len, len4+len3);
- _asn1_set_value_lv (p, der + counter, len2 + len3);
- counter += len2 + len3;
- }
- else /* == -1 */
- { /* indefinite length */
- ider_len += len2; /* undo DECR_LEN */
-
- if (counter == 0)
- {
- result = ASN1_DER_ERROR;
- warn();
- goto cleanup;
- }
-
- result =
- _asn1_get_indefinite_length_string (der + counter, ider_len, &len2);
- if (result != ASN1_SUCCESS)
- {
- warn();
- goto cleanup;
- }
-
- DECR_LEN(ider_len, len2);
- _asn1_set_value_lv (p, der + counter, len2);
- counter += len2;
-
- }
-
- /* Check if a couple of 0x00 are present due to an EXPLICIT TAG with
- an indefinite length method. */
- if (indefinite)
- {
- DECR_LEN(ider_len, 2);
- if (!der[counter] && !der[counter + 1])
- {
- counter += 2;
- }
- else
- {
- result = ASN1_DER_ERROR;
- warn();
- goto cleanup;
- }
- }
-
- move = RIGHT;
- break;
- default:
- move = (move == UP) ? RIGHT : DOWN;
- break;
- }
- }
-
- if (p)
- {
- p->end = counter - 1;
- }
-
- if (p == node && move != DOWN)
- break;
-
- if (move == DOWN)
- {
- if (p->down)
- p = p->down;
- else
- move = RIGHT;
- }
- if ((move == RIGHT) && !(p->type & CONST_SET))
- {
- if (p->right)
- p = p->right;
- else
- move = UP;
- }
- if (move == UP)
- p = _asn1_find_up (p);
- }
-
- _asn1_delete_not_used (*element);
-
- if ((ider_len < 0) ||
- (!(flags & ASN1_DECODE_FLAG_ALLOW_PADDING) && (ider_len != 0)))
- {
- warn();
- result = ASN1_DER_ERROR;
- goto cleanup;
- }
-
- *max_ider_len = total_len - ider_len;
-
- return ASN1_SUCCESS;
-
-cleanup:
- asn1_delete_structure (element);
- return result;
-}
-
-
-/**
- * asn1_der_decoding:
- * @element: pointer to an ASN1 structure.
- * @ider: vector that contains the DER encoding.
- * @ider_len: number of bytes of *@ider: @ider[0]..@ider[len-1].
- * @errorDescription: null-terminated string contains details when an
- * error occurred.
- *
- * Fill the structure *@element with values of a DER encoding
- * string. The structure must just be created with function
- * asn1_create_element().
- *
- * Note that the *@element variable is provided as a pointer for
- * historical reasons.
- *
- * Returns: %ASN1_SUCCESS if DER encoding OK, %ASN1_ELEMENT_NOT_FOUND
- * if @ELEMENT is %NULL, and %ASN1_TAG_ERROR or
- * %ASN1_DER_ERROR if the der encoding doesn't match the structure
- * name (*@ELEMENT deleted).
- **/
-int
-asn1_der_decoding (asn1_node * element, const void *ider, int ider_len,
- char *errorDescription)
-{
- return asn1_der_decoding2 (element, ider, &ider_len, 0, errorDescription);
-}
-
-/**
- * asn1_der_decoding_element:
- * @structure: pointer to an ASN1 structure
- * @elementName: name of the element to fill
- * @ider: vector that contains the DER encoding of the whole structure.
- * @len: number of bytes of *der: der[0]..der[len-1]
- * @errorDescription: null-terminated string contains details when an
- * error occurred.
- *
- * Fill the element named @ELEMENTNAME with values of a DER encoding
- * string. The structure must just be created with function
- * asn1_create_element(). The DER vector must contain the encoding
- * string of the whole @STRUCTURE. If an error occurs during the
- * decoding procedure, the *@STRUCTURE is deleted and set equal to
- * %NULL.
- *
- * This function is deprecated and may just be an alias to asn1_der_decoding
- * in future versions. Use asn1_der_decoding() instead.
- *
- * Returns: %ASN1_SUCCESS if DER encoding OK, %ASN1_ELEMENT_NOT_FOUND
- * if ELEMENT is %NULL or @elementName == NULL, and
- * %ASN1_TAG_ERROR or %ASN1_DER_ERROR if the der encoding doesn't
- * match the structure @structure (*ELEMENT deleted).
- **/
-int
-asn1_der_decoding_element (asn1_node * structure, const char *elementName,
- const void *ider, int len, char *errorDescription)
-{
- return asn1_der_decoding(structure, ider, len, errorDescription);
-}
-
-/**
- * asn1_der_decoding_startEnd:
- * @element: pointer to an ASN1 element
- * @ider: vector that contains the DER encoding.
- * @ider_len: number of bytes of *@ider: @ider[0]..@ider[len-1]
- * @name_element: an element of NAME structure.
- * @start: the position of the first byte of NAME_ELEMENT decoding
- * (@ider[*start])
- * @end: the position of the last byte of NAME_ELEMENT decoding
- * (@ider[*end])
- *
- * Find the start and end point of an element in a DER encoding
- * string. I mean that if you have a der encoding and you have already
- * used the function asn1_der_decoding() to fill a structure, it may
- * happen that you want to find the piece of string concerning an
- * element of the structure.
- *
- * One example is the sequence "tbsCertificate" inside an X509
- * certificate.
- *
- * Note that since libtasn1 3.7 the @ider and @ider_len parameters
- * can be omitted, if the element is already decoded using asn1_der_decoding().
- *
- * Returns: %ASN1_SUCCESS if DER encoding OK, %ASN1_ELEMENT_NOT_FOUND
- * if ELEMENT is %asn1_node EMPTY or @name_element is not a valid
- * element, %ASN1_TAG_ERROR or %ASN1_DER_ERROR if the der encoding
- * doesn't match the structure ELEMENT.
- **/
-int
-asn1_der_decoding_startEnd (asn1_node element, const void *ider, int ider_len,
- const char *name_element, int *start, int *end)
-{
- asn1_node node, node_to_find;
- int result = ASN1_DER_ERROR;
-
- node = element;
-
- if (node == NULL)
- return ASN1_ELEMENT_NOT_FOUND;
-
- node_to_find = asn1_find_node (node, name_element);
-
- if (node_to_find == NULL)
- return ASN1_ELEMENT_NOT_FOUND;
-
- *start = node_to_find->start;
- *end = node_to_find->end;
-
- if (*start == 0 && *end == 0)
- {
- if (ider == NULL || ider_len == 0)
- return ASN1_GENERIC_ERROR;
-
- /* it seems asn1_der_decoding() wasn't called before. Do it now */
- result = asn1_der_decoding (&node, ider, ider_len, NULL);
- if (result != ASN1_SUCCESS)
- {
- warn();
- return result;
- }
-
- node_to_find = asn1_find_node (node, name_element);
- if (node_to_find == NULL)
- return ASN1_ELEMENT_NOT_FOUND;
-
- *start = node_to_find->start;
- *end = node_to_find->end;
- }
-
- if (*end < *start)
- return ASN1_GENERIC_ERROR;
-
- return ASN1_SUCCESS;
-}
-
-/**
- * asn1_expand_any_defined_by:
- * @definitions: ASN1 definitions
- * @element: pointer to an ASN1 structure
- *
- * Expands every "ANY DEFINED BY" element of a structure created from
- * a DER decoding process (asn1_der_decoding function). The element
- * ANY must be defined by an OBJECT IDENTIFIER. The type used to
- * expand the element ANY is the first one following the definition of
- * the actual value of the OBJECT IDENTIFIER.
- *
- * Returns: %ASN1_SUCCESS if Substitution OK, %ASN1_ERROR_TYPE_ANY if
- * some "ANY DEFINED BY" element couldn't be expanded due to a
- * problem in OBJECT_ID -> TYPE association, or other error codes
- * depending on DER decoding.
- **/
-int
-asn1_expand_any_defined_by (asn1_node definitions, asn1_node * element)
-{
- char name[2 * ASN1_MAX_NAME_SIZE + 1],
- value[ASN1_MAX_NAME_SIZE];
- int retCode = ASN1_SUCCESS, result;
- int len, len2, len3;
- asn1_node p, p2, p3, aux = NULL;
- char errorDescription[ASN1_MAX_ERROR_DESCRIPTION_SIZE];
- const char *definitionsName;
-
- if ((definitions == NULL) || (*element == NULL))
- return ASN1_ELEMENT_NOT_FOUND;
-
- definitionsName = definitions->name;
-
- p = *element;
- while (p)
- {
-
- switch (type_field (p->type))
- {
- case ASN1_ETYPE_ANY:
- if ((p->type & CONST_DEFINED_BY) && (p->value))
- {
- /* search the "DEF_BY" element */
- p2 = p->down;
- while ((p2) && (type_field (p2->type) != ASN1_ETYPE_CONSTANT))
- p2 = p2->right;
-
- if (!p2)
- {
- retCode = ASN1_ERROR_TYPE_ANY;
- break;
- }
-
- p3 = _asn1_find_up (p);
-
- if (!p3)
- {
- retCode = ASN1_ERROR_TYPE_ANY;
- break;
- }
-
- p3 = p3->down;
- while (p3)
- {
- if (!(strcmp (p3->name, p2->name)))
- break;
- p3 = p3->right;
- }
-
- if ((!p3) || (type_field (p3->type) != ASN1_ETYPE_OBJECT_ID) ||
- (p3->value == NULL))
- {
-
- p3 = _asn1_find_up (p);
- p3 = _asn1_find_up (p3);
-
- if (!p3)
- {
- retCode = ASN1_ERROR_TYPE_ANY;
- break;
- }
-
- p3 = p3->down;
-
- while (p3)
- {
- if (!(strcmp (p3->name, p2->name)))
- break;
- p3 = p3->right;
- }
-
- if ((!p3) || (type_field (p3->type) != ASN1_ETYPE_OBJECT_ID)
- || (p3->value == NULL))
- {
- retCode = ASN1_ERROR_TYPE_ANY;
- break;
- }
- }
-
- /* search the OBJECT_ID into definitions */
- p2 = definitions->down;
- while (p2)
- {
- if ((type_field (p2->type) == ASN1_ETYPE_OBJECT_ID) &&
- (p2->type & CONST_ASSIGN))
- {
- snprintf(name, sizeof(name), "%s.%s", definitionsName, p2->name);
-
- len = ASN1_MAX_NAME_SIZE;
- result =
- asn1_read_value (definitions, name, value, &len);
-
- if ((result == ASN1_SUCCESS)
- && (!_asn1_strcmp (p3->value, value)))
- {
- p2 = p2->right; /* pointer to the structure to
- use for expansion */
- while ((p2) && (p2->type & CONST_ASSIGN))
- p2 = p2->right;
-
- if (p2)
- {
- snprintf(name, sizeof(name), "%s.%s", definitionsName, p2->name);
-
- result =
- asn1_create_element (definitions, name, &aux);
- if (result == ASN1_SUCCESS)
- {
- _asn1_cpy_name (aux, p);
- len2 =
- asn1_get_length_der (p->value,
- p->value_len, &len3);
- if (len2 < 0)
- return ASN1_DER_ERROR;
-
- result =
- asn1_der_decoding (&aux, p->value + len3,
- len2,
- errorDescription);
- if (result == ASN1_SUCCESS)
- {
-
- _asn1_set_right (aux, p->right);
- _asn1_set_right (p, aux);
-
- result = asn1_delete_structure (&p);
- if (result == ASN1_SUCCESS)
- {
- p = aux;
- aux = NULL;
- break;
- }
- else
- { /* error with asn1_delete_structure */
- asn1_delete_structure (&aux);
- retCode = result;
- break;
- }
- }
- else
- { /* error with asn1_der_decoding */
- retCode = result;
- break;
- }
- }
- else
- { /* error with asn1_create_element */
- retCode = result;
- break;
- }
- }
- else
- { /* error with the pointer to the structure to exapand */
- retCode = ASN1_ERROR_TYPE_ANY;
- break;
- }
- }
- }
- p2 = p2->right;
- } /* end while */
-
- if (!p2)
- {
- retCode = ASN1_ERROR_TYPE_ANY;
- break;
- }
-
- }
- break;
- default:
- break;
- }
-
-
- if (p->down)
- {
- p = p->down;
- }
- else if (p == *element)
- {
- p = NULL;
- break;
- }
- else if (p->right)
- p = p->right;
- else
- {
- while (1)
- {
- p = _asn1_find_up (p);
- if (p == *element)
- {
- p = NULL;
- break;
- }
- if (p->right)
- {
- p = p->right;
- break;
- }
- }
- }
- }
-
- return retCode;
-}
-
-/**
- * asn1_expand_octet_string:
- * @definitions: ASN1 definitions
- * @element: pointer to an ASN1 structure
- * @octetName: name of the OCTECT STRING field to expand.
- * @objectName: name of the OBJECT IDENTIFIER field to use to define
- * the type for expansion.
- *
- * Expands an "OCTET STRING" element of a structure created from a DER
- * decoding process (the asn1_der_decoding() function). The type used
- * for expansion is the first one following the definition of the
- * actual value of the OBJECT IDENTIFIER indicated by OBJECTNAME.
- *
- * Returns: %ASN1_SUCCESS if substitution OK, %ASN1_ELEMENT_NOT_FOUND
- * if @objectName or @octetName are not correct,
- * %ASN1_VALUE_NOT_VALID if it wasn't possible to find the type to
- * use for expansion, or other errors depending on DER decoding.
- **/
-int
-asn1_expand_octet_string (asn1_node definitions, asn1_node * element,
- const char *octetName, const char *objectName)
-{
- char name[2 * ASN1_MAX_NAME_SIZE + 1], value[ASN1_MAX_NAME_SIZE];
- int retCode = ASN1_SUCCESS, result;
- int len, len2, len3;
- asn1_node p2, aux = NULL;
- asn1_node octetNode = NULL, objectNode = NULL;
- char errorDescription[ASN1_MAX_ERROR_DESCRIPTION_SIZE];
-
- if ((definitions == NULL) || (*element == NULL))
- return ASN1_ELEMENT_NOT_FOUND;
-
- octetNode = asn1_find_node (*element, octetName);
- if (octetNode == NULL)
- return ASN1_ELEMENT_NOT_FOUND;
- if (type_field (octetNode->type) != ASN1_ETYPE_OCTET_STRING)
- return ASN1_ELEMENT_NOT_FOUND;
- if (octetNode->value == NULL)
- return ASN1_VALUE_NOT_FOUND;
-
- objectNode = asn1_find_node (*element, objectName);
- if (objectNode == NULL)
- return ASN1_ELEMENT_NOT_FOUND;
-
- if (type_field (objectNode->type) != ASN1_ETYPE_OBJECT_ID)
- return ASN1_ELEMENT_NOT_FOUND;
-
- if (objectNode->value == NULL)
- return ASN1_VALUE_NOT_FOUND;
-
-
- /* search the OBJECT_ID into definitions */
- p2 = definitions->down;
- while (p2)
- {
- if ((type_field (p2->type) == ASN1_ETYPE_OBJECT_ID) &&
- (p2->type & CONST_ASSIGN))
- {
- strcpy (name, definitions->name);
- strcat (name, ".");
- strcat (name, p2->name);
-
- len = sizeof (value);
- result = asn1_read_value (definitions, name, value, &len);
-
- if ((result == ASN1_SUCCESS)
- && (!_asn1_strcmp (objectNode->value, value)))
- {
-
- p2 = p2->right; /* pointer to the structure to
- use for expansion */
- while ((p2) && (p2->type & CONST_ASSIGN))
- p2 = p2->right;
-
- if (p2)
- {
- strcpy (name, definitions->name);
- strcat (name, ".");
- strcat (name, p2->name);
-
- result = asn1_create_element (definitions, name, &aux);
- if (result == ASN1_SUCCESS)
- {
- _asn1_cpy_name (aux, octetNode);
- len2 =
- asn1_get_length_der (octetNode->value,
- octetNode->value_len, &len3);
- if (len2 < 0)
- return ASN1_DER_ERROR;
-
- result =
- asn1_der_decoding (&aux, octetNode->value + len3,
- len2, errorDescription);
- if (result == ASN1_SUCCESS)
- {
-
- _asn1_set_right (aux, octetNode->right);
- _asn1_set_right (octetNode, aux);
-
- result = asn1_delete_structure (&octetNode);
- if (result == ASN1_SUCCESS)
- {
- aux = NULL;
- break;
- }
- else
- { /* error with asn1_delete_structure */
- asn1_delete_structure (&aux);
- retCode = result;
- break;
- }
- }
- else
- { /* error with asn1_der_decoding */
- retCode = result;
- break;
- }
- }
- else
- { /* error with asn1_create_element */
- retCode = result;
- break;
- }
- }
- else
- { /* error with the pointer to the structure to exapand */
- retCode = ASN1_VALUE_NOT_VALID;
- break;
- }
- }
- }
-
- p2 = p2->right;
-
- }
-
- if (!p2)
- retCode = ASN1_VALUE_NOT_VALID;
-
- return retCode;
-}
-
-/*-
- * _asn1_decode_simple_der:
- * @etype: The type of the string to be encoded (ASN1_ETYPE_)
- * @der: the encoded string
- * @_der_len: the bytes of the encoded string
- * @str: a pointer to the data
- * @str_len: the length of the data
- * @dflags: DECODE_FLAG_*
- *
- * Decodes a simple DER encoded type (e.g. a string, which is not constructed).
- * The output is a pointer inside the @der.
- *
- * Returns: %ASN1_SUCCESS if successful or an error value.
- -*/
-static int
-_asn1_decode_simple_der (unsigned int etype, const unsigned char *der,
- unsigned int _der_len, const unsigned char **str,
- unsigned int *str_len, unsigned dflags)
-{
- int tag_len, len_len;
- const unsigned char *p;
- int der_len = _der_len;
- unsigned char class;
- unsigned long tag;
- long ret;
-
- if (der == NULL || der_len == 0)
- return ASN1_VALUE_NOT_VALID;
-
- if (ETYPE_OK (etype) == 0 || ETYPE_IS_STRING(etype) == 0)
- return ASN1_VALUE_NOT_VALID;
-
- /* doesn't handle constructed classes */
- class = ETYPE_CLASS(etype);
- if (class != ASN1_CLASS_UNIVERSAL)
- return ASN1_VALUE_NOT_VALID;
-
- p = der;
-
- if (dflags & DECODE_FLAG_HAVE_TAG)
- {
- ret = asn1_get_tag_der (p, der_len, &class, &tag_len, &tag);
- if (ret != ASN1_SUCCESS)
- return ret;
-
- if (class != ETYPE_CLASS (etype) || tag != ETYPE_TAG (etype))
- {
- warn();
- return ASN1_DER_ERROR;
- }
-
- p += tag_len;
- der_len -= tag_len;
- if (der_len <= 0)
- return ASN1_DER_ERROR;
- }
-
- ret = asn1_get_length_der (p, der_len, &len_len);
- if (ret < 0)
- return ASN1_DER_ERROR;
-
- p += len_len;
- der_len -= len_len;
- if (der_len <= 0)
- return ASN1_DER_ERROR;
-
- *str_len = ret;
- *str = p;
-
- return ASN1_SUCCESS;
-}
-
-/**
- * asn1_decode_simple_der:
- * @etype: The type of the string to be encoded (ASN1_ETYPE_)
- * @der: the encoded string
- * @_der_len: the bytes of the encoded string
- * @str: a pointer to the data
- * @str_len: the length of the data
- *
- * Decodes a simple DER encoded type (e.g. a string, which is not constructed).
- * The output is a pointer inside the @der.
- *
- * Returns: %ASN1_SUCCESS if successful or an error value.
- **/
-int
-asn1_decode_simple_der (unsigned int etype, const unsigned char *der,
- unsigned int _der_len, const unsigned char **str,
- unsigned int *str_len)
-{
- return _asn1_decode_simple_der(etype, der, _der_len, str, str_len, DECODE_FLAG_HAVE_TAG);
-}
-
-static int append(uint8_t **dst, unsigned *dst_size, const unsigned char *src, unsigned src_size)
-{
- *dst = _asn1_realloc(*dst, *dst_size+src_size);
- if (*dst == NULL)
- return ASN1_MEM_ERROR;
- memcpy(*dst + *dst_size, src, src_size);
- *dst_size += src_size;
- return ASN1_SUCCESS;
-}
-
-/*-
- * _asn1_decode_simple_ber:
- * @etype: The type of the string to be encoded (ASN1_ETYPE_)
- * @der: the encoded string
- * @_der_len: the bytes of the encoded string
- * @str: a pointer to the data
- * @str_len: the length of the data
- * @ber_len: the total length occupied by BER (may be %NULL)
- * @have_tag: whether a DER tag is included
- *
- * Decodes a BER encoded type. The output is an allocated value
- * of the data. This decodes BER STRINGS only. Other types are
- * decoded as DER.
- *
- * Returns: %ASN1_SUCCESS if successful or an error value.
- -*/
-static int
-_asn1_decode_simple_ber (unsigned int etype, const unsigned char *der,
- unsigned int _der_len, unsigned char **str,
- unsigned int *str_len, unsigned int *ber_len,
- unsigned dflags)
-{
- int tag_len, len_len;
- const unsigned char *p;
- int der_len = _der_len;
- uint8_t *total = NULL;
- unsigned total_size = 0;
- unsigned char class;
- unsigned long tag;
- unsigned char *out = NULL;
- const unsigned char *cout = NULL;
- unsigned out_len;
- long result;
-
- if (ber_len) *ber_len = 0;
-
- if (der == NULL || der_len == 0)
- {
- warn();
- return ASN1_VALUE_NOT_VALID;
- }
-
- if (ETYPE_OK (etype) == 0)
- {
- warn();
- return ASN1_VALUE_NOT_VALID;
- }
-
- /* doesn't handle constructed + definite classes */
- class = ETYPE_CLASS (etype);
- if (class != ASN1_CLASS_UNIVERSAL)
- {
- warn();
- return ASN1_VALUE_NOT_VALID;
- }
-
- p = der;
-
- if (dflags & DECODE_FLAG_HAVE_TAG)
- {
- result = asn1_get_tag_der (p, der_len, &class, &tag_len, &tag);
- if (result != ASN1_SUCCESS)
- {
- warn();
- return result;
- }
-
- if (tag != ETYPE_TAG (etype))
- {
- warn();
- return ASN1_DER_ERROR;
- }
-
- p += tag_len;
-
- DECR_LEN(der_len, tag_len);
-
- if (ber_len) *ber_len += tag_len;
- }
-
- /* indefinite constructed */
- if ((((dflags & DECODE_FLAG_INDEFINITE) || class == ASN1_CLASS_STRUCTURED) && ETYPE_IS_STRING(etype)) &&
- !(dflags & DECODE_FLAG_LEVEL3))
- {
- len_len = 1;
-
- DECR_LEN(der_len, len_len);
- if (p[0] != 0x80)
- {
- warn();
- result = ASN1_DER_ERROR;
- goto cleanup;
- }
-
- p += len_len;
-
- if (ber_len) *ber_len += len_len;
-
- /* decode the available octet strings */
- do
- {
- unsigned tmp_len;
- unsigned flags = DECODE_FLAG_HAVE_TAG;
-
- if (dflags & DECODE_FLAG_LEVEL1)
- flags |= DECODE_FLAG_LEVEL2;
- else if (dflags & DECODE_FLAG_LEVEL2)
- flags |= DECODE_FLAG_LEVEL3;
- else
- flags |= DECODE_FLAG_LEVEL1;
-
- result = _asn1_decode_simple_ber(etype, p, der_len, &out, &out_len, &tmp_len,
- flags);
- if (result != ASN1_SUCCESS)
- {
- warn();
- goto cleanup;
- }
-
- p += tmp_len;
- DECR_LEN(der_len, tmp_len);
-
- if (ber_len) *ber_len += tmp_len;
-
- DECR_LEN(der_len, 2); /* we need the EOC */
-
- if (out_len > 0)
- {
- result = append(&total, &total_size, out, out_len);
- if (result != ASN1_SUCCESS)
- {
- warn();
- goto cleanup;
- }
- }
-
- free(out);
- out = NULL;
-
- if (p[0] == 0 && p[1] == 0) /* EOC */
- {
- if (ber_len) *ber_len += 2;
- break;
- }
-
- /* no EOC */
- der_len += 2;
-
- if (der_len == 2)
- {
- warn();
- result = ASN1_DER_ERROR;
- goto cleanup;
- }
- }
- while(1);
- }
- else if (class == ETYPE_CLASS(etype))
- {
- if (ber_len)
- {
- result = asn1_get_length_der (p, der_len, &len_len);
- if (result < 0)
- {
- warn();
- result = ASN1_DER_ERROR;
- goto cleanup;
- }
- *ber_len += result + len_len;
- }
-
- /* non-string values are decoded as DER */
- result = _asn1_decode_simple_der(etype, der, _der_len, &cout, &out_len, dflags);
- if (result != ASN1_SUCCESS)
- {
- warn();
- goto cleanup;
- }
-
- result = append(&total, &total_size, cout, out_len);
- if (result != ASN1_SUCCESS)
- {
- warn();
- goto cleanup;
- }
- }
- else
- {
- warn();
- result = ASN1_DER_ERROR;
- goto cleanup;
- }
-
- *str = total;
- *str_len = total_size;
-
- return ASN1_SUCCESS;
-cleanup:
- free(out);
- free(total);
- return result;
-}
-
-/**
- * asn1_decode_simple_ber:
- * @etype: The type of the string to be encoded (ASN1_ETYPE_)
- * @der: the encoded string
- * @_der_len: the bytes of the encoded string
- * @str: a pointer to the data
- * @str_len: the length of the data
- * @ber_len: the total length occupied by BER (may be %NULL)
- *
- * Decodes a BER encoded type. The output is an allocated value
- * of the data. This decodes BER STRINGS only. Other types are
- * decoded as DER.
- *
- * Returns: %ASN1_SUCCESS if successful or an error value.
- **/
-int
-asn1_decode_simple_ber (unsigned int etype, const unsigned char *der,
- unsigned int _der_len, unsigned char **str,
- unsigned int *str_len, unsigned int *ber_len)
-{
- return _asn1_decode_simple_ber(etype, der, _der_len, str, str_len, ber_len, DECODE_FLAG_HAVE_TAG);
-}
diff --git a/lib/minitasn1/element.c b/lib/minitasn1/element.c
deleted file mode 100644
index b09f82647f..0000000000
--- a/lib/minitasn1/element.c
+++ /dev/null
@@ -1,1111 +0,0 @@
-/*
- * Copyright (C) 2000-2014 Free Software Foundation, Inc.
- *
- * This file is part of LIBTASN1.
- *
- * The LIBTASN1 library is free software; you can redistribute it
- * and/or modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA
- */
-
-/*****************************************************/
-/* File: element.c */
-/* Description: Functions with the read and write */
-/* functions. */
-/*****************************************************/
-
-
-#include <int.h>
-#include "parser_aux.h"
-#include <gstr.h>
-#include "structure.h"
-
-#include "element.h"
-
-void
-_asn1_hierarchical_name (asn1_node node, char *name, int name_size)
-{
- asn1_node p;
- char tmp_name[64];
-
- p = node;
-
- name[0] = 0;
-
- while (p != NULL)
- {
- if (p->name[0] != 0)
- {
- _asn1_str_cpy (tmp_name, sizeof (tmp_name), name),
- _asn1_str_cpy (name, name_size, p->name);
- _asn1_str_cat (name, name_size, ".");
- _asn1_str_cat (name, name_size, tmp_name);
- }
- p = _asn1_find_up (p);
- }
-
- if (name[0] == 0)
- _asn1_str_cpy (name, name_size, "ROOT");
-}
-
-
-/******************************************************************/
-/* Function : _asn1_convert_integer */
-/* Description: converts an integer from a null terminated string */
-/* to der decoding. The convertion from a null */
-/* terminated string to an integer is made with */
-/* the 'strtol' function. */
-/* Parameters: */
-/* value: null terminated string to convert. */
-/* value_out: convertion result (memory must be already */
-/* allocated). */
-/* value_out_size: number of bytes of value_out. */
-/* len: number of significant byte of value_out. */
-/* Return: ASN1_MEM_ERROR or ASN1_SUCCESS */
-/******************************************************************/
-int
-_asn1_convert_integer (const unsigned char *value, unsigned char *value_out,
- int value_out_size, int *len)
-{
- char negative;
- unsigned char val[SIZEOF_UNSIGNED_LONG_INT];
- long valtmp;
- int k, k2;
-
- valtmp = _asn1_strtol (value, NULL, 10);
-
- for (k = 0; k < SIZEOF_UNSIGNED_LONG_INT; k++)
- {
- val[SIZEOF_UNSIGNED_LONG_INT - k - 1] = (valtmp >> (8 * k)) & 0xFF;
- }
-
- if (val[0] & 0x80)
- negative = 1;
- else
- negative = 0;
-
- for (k = 0; k < SIZEOF_UNSIGNED_LONG_INT - 1; k++)
- {
- if (negative && (val[k] != 0xFF))
- break;
- else if (!negative && val[k])
- break;
- }
-
- if ((negative && !(val[k] & 0x80)) || (!negative && (val[k] & 0x80)))
- k--;
-
- *len = SIZEOF_UNSIGNED_LONG_INT - k;
-
- if (SIZEOF_UNSIGNED_LONG_INT - k > value_out_size)
- /* VALUE_OUT is too short to contain the value conversion */
- return ASN1_MEM_ERROR;
-
- if (value_out != NULL)
- {
- for (k2 = k; k2 < SIZEOF_UNSIGNED_LONG_INT; k2++)
- value_out[k2 - k] = val[k2];
- }
-
-#if 0
- printf ("_asn1_convert_integer: valueIn=%s, lenOut=%d", value, *len);
- for (k = 0; k < SIZEOF_UNSIGNED_LONG_INT; k++)
- printf (", vOut[%d]=%d", k, value_out[k]);
- printf ("\n");
-#endif
-
- return ASN1_SUCCESS;
-}
-
-/* Appends a new element into the sequence (or set) defined by this
- * node. The new element will have a name of '?number', where number
- * is a monotonically increased serial number.
- *
- * The last element in the list may be provided in @pcache, to avoid
- * traversing the list, an expensive operation in long lists.
- *
- * On success it returns in @pcache the added element (which is the
- * tail in the list of added elements).
- */
-int
-_asn1_append_sequence_set (asn1_node node, struct node_tail_cache_st *pcache)
-{
- asn1_node p, p2;
- char temp[LTOSTR_MAX_SIZE];
- long n;
-
- if (!node || !(node->down))
- return ASN1_GENERIC_ERROR;
-
- p = node->down;
- while ((type_field (p->type) == ASN1_ETYPE_TAG)
- || (type_field (p->type) == ASN1_ETYPE_SIZE))
- p = p->right;
-
- p2 = _asn1_copy_structure3 (p);
- if (p2 == NULL)
- return ASN1_GENERIC_ERROR;
-
- if (pcache == NULL || pcache->tail == NULL || pcache->head != node)
- {
- while (p->right)
- {
- p = p->right;
- }
- }
- else
- {
- p = pcache->tail;
- }
-
- _asn1_set_right (p, p2);
- if (pcache)
- {
- pcache->head = node;
- pcache->tail = p2;
- }
-
- if (p->name[0] == 0)
- _asn1_str_cpy (temp, sizeof (temp), "?1");
- else
- {
- n = strtol (p->name + 1, NULL, 0);
- n++;
- temp[0] = '?';
- _asn1_ltostr (n, temp + 1);
- }
- _asn1_set_name (p2, temp);
- /* p2->type |= CONST_OPTION; */
-
- return ASN1_SUCCESS;
-}
-
-
-/**
- * asn1_write_value:
- * @node_root: pointer to a structure
- * @name: the name of the element inside the structure that you want to set.
- * @ivalue: vector used to specify the value to set. If len is >0,
- * VALUE must be a two's complement form integer. if len=0 *VALUE
- * must be a null terminated string with an integer value.
- * @len: number of bytes of *value to use to set the value:
- * value[0]..value[len-1] or 0 if value is a null terminated string
- *
- * Set the value of one element inside a structure.
- *
- * If an element is OPTIONAL and you want to delete it, you must use
- * the value=NULL and len=0. Using "pkix.asn":
- *
- * result=asn1_write_value(cert, "tbsCertificate.issuerUniqueID",
- * NULL, 0);
- *
- * Description for each type:
- *
- * INTEGER: VALUE must contain a two's complement form integer.
- *
- * value[0]=0xFF , len=1 -> integer=-1.
- * value[0]=0xFF value[1]=0xFF , len=2 -> integer=-1.
- * value[0]=0x01 , len=1 -> integer= 1.
- * value[0]=0x00 value[1]=0x01 , len=2 -> integer= 1.
- * value="123" , len=0 -> integer= 123.
- *
- * ENUMERATED: As INTEGER (but only with not negative numbers).
- *
- * BOOLEAN: VALUE must be the null terminated string "TRUE" or
- * "FALSE" and LEN != 0.
- *
- * value="TRUE" , len=1 -> boolean=TRUE.
- * value="FALSE" , len=1 -> boolean=FALSE.
- *
- * OBJECT IDENTIFIER: VALUE must be a null terminated string with
- * each number separated by a dot (e.g. "1.2.3.543.1"). LEN != 0.
- *
- * value="1 2 840 10040 4 3" , len=1 -> OID=dsa-with-sha.
- *
- * UTCTime: VALUE must be a null terminated string in one of these
- * formats: "YYMMDDhhmmssZ", "YYMMDDhhmmssZ",
- * "YYMMDDhhmmss+hh'mm'", "YYMMDDhhmmss-hh'mm'",
- * "YYMMDDhhmm+hh'mm'", or "YYMMDDhhmm-hh'mm'". LEN != 0.
- *
- * value="9801011200Z" , len=1 -> time=Jannuary 1st, 1998
- * at 12h 00m Greenwich Mean Time
- *
- * GeneralizedTime: VALUE must be in one of this format:
- * "YYYYMMDDhhmmss.sZ", "YYYYMMDDhhmmss.sZ",
- * "YYYYMMDDhhmmss.s+hh'mm'", "YYYYMMDDhhmmss.s-hh'mm'",
- * "YYYYMMDDhhmm+hh'mm'", or "YYYYMMDDhhmm-hh'mm'" where ss.s
- * indicates the seconds with any precision like "10.1" or "01.02".
- * LEN != 0
- *
- * value="2001010112001.12-0700" , len=1 -> time=Jannuary
- * 1st, 2001 at 12h 00m 01.12s Pacific Daylight Time
- *
- * OCTET STRING: VALUE contains the octet string and LEN is the
- * number of octets.
- *
- * value="$\backslash$x01$\backslash$x02$\backslash$x03" ,
- * len=3 -> three bytes octet string
- *
- * GeneralString: VALUE contains the generalstring and LEN is the
- * number of octets.
- *
- * value="$\backslash$x01$\backslash$x02$\backslash$x03" ,
- * len=3 -> three bytes generalstring
- *
- * BIT STRING: VALUE contains the bit string organized by bytes and
- * LEN is the number of bits.
- *
- * value="$\backslash$xCF" , len=6 -> bit string="110011" (six
- * bits)
- *
- * CHOICE: if NAME indicates a choice type, VALUE must specify one of
- * the alternatives with a null terminated string. LEN != 0. Using
- * "pkix.asn"\:
- *
- * result=asn1_write_value(cert,
- * "certificate1.tbsCertificate.subject", "rdnSequence",
- * 1);
- *
- * ANY: VALUE indicates the der encoding of a structure. LEN != 0.
- *
- * SEQUENCE OF: VALUE must be the null terminated string "NEW" and
- * LEN != 0. With this instruction another element is appended in
- * the sequence. The name of this element will be "?1" if it's the
- * first one, "?2" for the second and so on.
- *
- * Using "pkix.asn"\:
- *
- * result=asn1_write_value(cert,
- * "certificate1.tbsCertificate.subject.rdnSequence", "NEW", 1);
- *
- * SET OF: the same as SEQUENCE OF. Using "pkix.asn":
- *
- * result=asn1_write_value(cert,
- * "tbsCertificate.subject.rdnSequence.?LAST", "NEW", 1);
- *
- * Returns: %ASN1_SUCCESS if the value was set,
- * %ASN1_ELEMENT_NOT_FOUND if @name is not a valid element, and
- * %ASN1_VALUE_NOT_VALID if @ivalue has a wrong format.
- **/
-int
-asn1_write_value (asn1_node node_root, const char *name,
- const void *ivalue, int len)
-{
- asn1_node node, p, p2;
- unsigned char *temp, *value_temp = NULL, *default_temp = NULL;
- int len2, k, k2, negative;
- size_t i;
- const unsigned char *value = ivalue;
- unsigned int type;
-
- node = asn1_find_node (node_root, name);
- if (node == NULL)
- return ASN1_ELEMENT_NOT_FOUND;
-
- if ((node->type & CONST_OPTION) && (value == NULL) && (len == 0))
- {
- asn1_delete_structure (&node);
- return ASN1_SUCCESS;
- }
-
- type = type_field (node->type);
-
- if ((type == ASN1_ETYPE_SEQUENCE_OF || type == ASN1_ETYPE_SET_OF) && (value == NULL) && (len == 0))
- {
- p = node->down;
- while ((type_field (p->type) == ASN1_ETYPE_TAG)
- || (type_field (p->type) == ASN1_ETYPE_SIZE))
- p = p->right;
-
- while (p->right)
- asn1_delete_structure (&p->right);
-
- return ASN1_SUCCESS;
- }
-
- /* Don't allow element deletion for other types */
- if (value == NULL)
- {
- return ASN1_VALUE_NOT_VALID;
- }
-
- switch (type)
- {
- case ASN1_ETYPE_BOOLEAN:
- if (!_asn1_strcmp (value, "TRUE"))
- {
- if (node->type & CONST_DEFAULT)
- {
- p = node->down;
- while (type_field (p->type) != ASN1_ETYPE_DEFAULT)
- p = p->right;
- if (p->type & CONST_TRUE)
- _asn1_set_value (node, NULL, 0);
- else
- _asn1_set_value (node, "T", 1);
- }
- else
- _asn1_set_value (node, "T", 1);
- }
- else if (!_asn1_strcmp (value, "FALSE"))
- {
- if (node->type & CONST_DEFAULT)
- {
- p = node->down;
- while (type_field (p->type) != ASN1_ETYPE_DEFAULT)
- p = p->right;
- if (p->type & CONST_FALSE)
- _asn1_set_value (node, NULL, 0);
- else
- _asn1_set_value (node, "F", 1);
- }
- else
- _asn1_set_value (node, "F", 1);
- }
- else
- return ASN1_VALUE_NOT_VALID;
- break;
- case ASN1_ETYPE_INTEGER:
- case ASN1_ETYPE_ENUMERATED:
- if (len == 0)
- {
- if ((isdigit (value[0])) || (value[0] == '-'))
- {
- value_temp = malloc (SIZEOF_UNSIGNED_LONG_INT);
- if (value_temp == NULL)
- return ASN1_MEM_ALLOC_ERROR;
-
- _asn1_convert_integer (value, value_temp,
- SIZEOF_UNSIGNED_LONG_INT, &len);
- }
- else
- { /* is an identifier like v1 */
- if (!(node->type & CONST_LIST))
- return ASN1_VALUE_NOT_VALID;
- p = node->down;
- while (p)
- {
- if (type_field (p->type) == ASN1_ETYPE_CONSTANT)
- {
- if (!_asn1_strcmp (p->name, value))
- {
- value_temp = malloc (SIZEOF_UNSIGNED_LONG_INT);
- if (value_temp == NULL)
- return ASN1_MEM_ALLOC_ERROR;
-
- _asn1_convert_integer (p->value,
- value_temp,
- SIZEOF_UNSIGNED_LONG_INT,
- &len);
- break;
- }
- }
- p = p->right;
- }
- if (p == NULL)
- return ASN1_VALUE_NOT_VALID;
- }
- }
- else
- { /* len != 0 */
- value_temp = malloc (len);
- if (value_temp == NULL)
- return ASN1_MEM_ALLOC_ERROR;
- memcpy (value_temp, value, len);
- }
-
- if (value_temp[0] & 0x80)
- negative = 1;
- else
- negative = 0;
-
- if (negative && (type_field (node->type) == ASN1_ETYPE_ENUMERATED))
- {
- free (value_temp);
- return ASN1_VALUE_NOT_VALID;
- }
-
- for (k = 0; k < len - 1; k++)
- if (negative && (value_temp[k] != 0xFF))
- break;
- else if (!negative && value_temp[k])
- break;
-
- if ((negative && !(value_temp[k] & 0x80)) ||
- (!negative && (value_temp[k] & 0x80)))
- k--;
-
- _asn1_set_value_lv (node, value_temp + k, len - k);
-
- if (node->type & CONST_DEFAULT)
- {
- p = node->down;
- while (type_field (p->type) != ASN1_ETYPE_DEFAULT)
- p = p->right;
- if ((isdigit (p->value[0])) || (p->value[0] == '-'))
- {
- default_temp = malloc (SIZEOF_UNSIGNED_LONG_INT);
- if (default_temp == NULL)
- {
- free (value_temp);
- return ASN1_MEM_ALLOC_ERROR;
- }
-
- _asn1_convert_integer (p->value, default_temp,
- SIZEOF_UNSIGNED_LONG_INT, &len2);
- }
- else
- { /* is an identifier like v1 */
- if (!(node->type & CONST_LIST))
- {
- free (value_temp);
- return ASN1_VALUE_NOT_VALID;
- }
- p2 = node->down;
- while (p2)
- {
- if (type_field (p2->type) == ASN1_ETYPE_CONSTANT)
- {
- if (!_asn1_strcmp (p2->name, p->value))
- {
- default_temp = malloc (SIZEOF_UNSIGNED_LONG_INT);
- if (default_temp == NULL)
- {
- free (value_temp);
- return ASN1_MEM_ALLOC_ERROR;
- }
-
- _asn1_convert_integer (p2->value,
- default_temp,
- SIZEOF_UNSIGNED_LONG_INT,
- &len2);
- break;
- }
- }
- p2 = p2->right;
- }
- if (p2 == NULL)
- {
- free (value_temp);
- return ASN1_VALUE_NOT_VALID;
- }
- }
-
-
- if ((len - k) == len2)
- {
- for (k2 = 0; k2 < len2; k2++)
- if (value_temp[k + k2] != default_temp[k2])
- {
- break;
- }
- if (k2 == len2)
- _asn1_set_value (node, NULL, 0);
- }
- free (default_temp);
- }
- free (value_temp);
- break;
- case ASN1_ETYPE_OBJECT_ID:
- for (i = 0; i < _asn1_strlen (value); i++)
- if ((!isdigit (value[i])) && (value[i] != '.') && (value[i] != '+'))
- return ASN1_VALUE_NOT_VALID;
- if (node->type & CONST_DEFAULT)
- {
- p = node->down;
- while (type_field (p->type) != ASN1_ETYPE_DEFAULT)
- p = p->right;
- if (!_asn1_strcmp (value, p->value))
- {
- _asn1_set_value (node, NULL, 0);
- break;
- }
- }
- _asn1_set_value (node, value, _asn1_strlen (value) + 1);
- break;
- case ASN1_ETYPE_UTC_TIME:
- {
- len = _asn1_strlen (value);
- if (len < 11)
- return ASN1_VALUE_NOT_VALID;
- for (k = 0; k < 10; k++)
- if (!isdigit (value[k]))
- return ASN1_VALUE_NOT_VALID;
- switch (len)
- {
- case 11:
- if (value[10] != 'Z')
- return ASN1_VALUE_NOT_VALID;
- break;
- case 13:
- if ((!isdigit (value[10])) || (!isdigit (value[11])) ||
- (value[12] != 'Z'))
- return ASN1_VALUE_NOT_VALID;
- break;
- case 15:
- if ((value[10] != '+') && (value[10] != '-'))
- return ASN1_VALUE_NOT_VALID;
- for (k = 11; k < 15; k++)
- if (!isdigit (value[k]))
- return ASN1_VALUE_NOT_VALID;
- break;
- case 17:
- if ((!isdigit (value[10])) || (!isdigit (value[11])))
- return ASN1_VALUE_NOT_VALID;
- if ((value[12] != '+') && (value[12] != '-'))
- return ASN1_VALUE_NOT_VALID;
- for (k = 13; k < 17; k++)
- if (!isdigit (value[k]))
- return ASN1_VALUE_NOT_VALID;
- break;
- default:
- return ASN1_VALUE_NOT_FOUND;
- }
- _asn1_set_value (node, value, len);
- }
- break;
- case ASN1_ETYPE_GENERALIZED_TIME:
- len = _asn1_strlen (value);
- _asn1_set_value (node, value, len);
- break;
- case ASN1_ETYPE_OCTET_STRING:
- case ASN1_ETYPE_GENERALSTRING:
- case ASN1_ETYPE_NUMERIC_STRING:
- case ASN1_ETYPE_IA5_STRING:
- case ASN1_ETYPE_TELETEX_STRING:
- case ASN1_ETYPE_PRINTABLE_STRING:
- case ASN1_ETYPE_UNIVERSAL_STRING:
- case ASN1_ETYPE_BMP_STRING:
- case ASN1_ETYPE_UTF8_STRING:
- case ASN1_ETYPE_VISIBLE_STRING:
- if (len == 0)
- len = _asn1_strlen (value);
- _asn1_set_value_lv (node, value, len);
- break;
- case ASN1_ETYPE_BIT_STRING:
- if (len == 0)
- len = _asn1_strlen (value);
- asn1_length_der ((len >> 3) + 2, NULL, &len2);
- temp = malloc ((len >> 3) + 2 + len2);
- if (temp == NULL)
- return ASN1_MEM_ALLOC_ERROR;
-
- asn1_bit_der (value, len, temp, &len2);
- _asn1_set_value_m (node, temp, len2);
- temp = NULL;
- break;
- case ASN1_ETYPE_CHOICE:
- p = node->down;
- while (p)
- {
- if (!_asn1_strcmp (p->name, value))
- {
- p2 = node->down;
- while (p2)
- {
- if (p2 != p)
- {
- asn1_delete_structure (&p2);
- p2 = node->down;
- }
- else
- p2 = p2->right;
- }
- break;
- }
- p = p->right;
- }
- if (!p)
- return ASN1_ELEMENT_NOT_FOUND;
- break;
- case ASN1_ETYPE_ANY:
- _asn1_set_value_lv (node, value, len);
- break;
- case ASN1_ETYPE_SEQUENCE_OF:
- case ASN1_ETYPE_SET_OF:
- if (_asn1_strcmp (value, "NEW"))
- return ASN1_VALUE_NOT_VALID;
- _asn1_append_sequence_set (node, NULL);
- break;
- default:
- return ASN1_ELEMENT_NOT_FOUND;
- break;
- }
-
- return ASN1_SUCCESS;
-}
-
-
-#define PUT_VALUE( ptr, ptr_size, data, data_size) \
- *len = data_size; \
- if (ptr_size < data_size) { \
- return ASN1_MEM_ERROR; \
- } else { \
- if (ptr && data_size > 0) \
- memcpy (ptr, data, data_size); \
- }
-
-#define PUT_STR_VALUE( ptr, ptr_size, data) \
- *len = _asn1_strlen (data) + 1; \
- if (ptr_size < *len) { \
- return ASN1_MEM_ERROR; \
- } else { \
- /* this strcpy is checked */ \
- if (ptr) { \
- _asn1_strcpy (ptr, data); \
- } \
- }
-
-#define PUT_AS_STR_VALUE( ptr, ptr_size, data, data_size) \
- *len = data_size + 1; \
- if (ptr_size < *len) { \
- return ASN1_MEM_ERROR; \
- } else { \
- /* this strcpy is checked */ \
- if (ptr) { \
- if (data_size > 0) \
- memcpy (ptr, data, data_size); \
- ptr[data_size] = 0; \
- } \
- }
-
-#define ADD_STR_VALUE( ptr, ptr_size, data) \
- *len += _asn1_strlen(data); \
- if (ptr_size < (int) *len) { \
- (*len)++; \
- return ASN1_MEM_ERROR; \
- } else { \
- /* this strcat is checked */ \
- if (ptr) _asn1_strcat (ptr, data); \
- }
-
-/**
- * asn1_read_value:
- * @root: pointer to a structure.
- * @name: the name of the element inside a structure that you want to read.
- * @ivalue: vector that will contain the element's content, must be a
- * pointer to memory cells already allocated (may be %NULL).
- * @len: number of bytes of *value: value[0]..value[len-1]. Initialy
- * holds the sizeof value.
- *
- * Returns the value of one element inside a structure.
- * If an element is OPTIONAL and this returns
- * %ASN1_ELEMENT_NOT_FOUND, it means that this element wasn't present
- * in the der encoding that created the structure. The first element
- * of a SEQUENCE_OF or SET_OF is named "?1". The second one "?2" and
- * so on. If the @root provided is a node to specific sequence element,
- * then the keyword "?CURRENT" is also acceptable and indicates the
- * current sequence element of this node.
- *
- * Note that there can be valid values with length zero. In these case
- * this function will succeed and @len will be zero.
- *
- * INTEGER: VALUE will contain a two's complement form integer.
- *
- * integer=-1 -> value[0]=0xFF , len=1.
- * integer=1 -> value[0]=0x01 , len=1.
- *
- * ENUMERATED: As INTEGER (but only with not negative numbers).
- *
- * BOOLEAN: VALUE will be the null terminated string "TRUE" or
- * "FALSE" and LEN=5 or LEN=6.
- *
- * OBJECT IDENTIFIER: VALUE will be a null terminated string with
- * each number separated by a dot (i.e. "1.2.3.543.1").
- *
- * LEN = strlen(VALUE)+1
- *
- * UTCTime: VALUE will be a null terminated string in one of these
- * formats: "YYMMDDhhmmss+hh'mm'" or "YYMMDDhhmmss-hh'mm'".
- * LEN=strlen(VALUE)+1.
- *
- * GeneralizedTime: VALUE will be a null terminated string in the
- * same format used to set the value.
- *
- * OCTET STRING: VALUE will contain the octet string and LEN will be
- * the number of octets.
- *
- * GeneralString: VALUE will contain the generalstring and LEN will
- * be the number of octets.
- *
- * BIT STRING: VALUE will contain the bit string organized by bytes
- * and LEN will be the number of bits.
- *
- * CHOICE: If NAME indicates a choice type, VALUE will specify the
- * alternative selected.
- *
- * ANY: If NAME indicates an any type, VALUE will indicate the DER
- * encoding of the structure actually used.
- *
- * Returns: %ASN1_SUCCESS if value is returned,
- * %ASN1_ELEMENT_NOT_FOUND if @name is not a valid element,
- * %ASN1_VALUE_NOT_FOUND if there isn't any value for the element
- * selected, and %ASN1_MEM_ERROR if The value vector isn't big enough
- * to store the result, and in this case @len will contain the number of
- * bytes needed. On the occasion that the stored data are of zero-length
- * this function may return %ASN1_SUCCESS even if the provided @len is zero.
- **/
-int
-asn1_read_value (asn1_node root, const char *name, void *ivalue, int *len)
-{
- return asn1_read_value_type (root, name, ivalue, len, NULL);
-}
-
-/**
- * asn1_read_value_type:
- * @root: pointer to a structure.
- * @name: the name of the element inside a structure that you want to read.
- * @ivalue: vector that will contain the element's content, must be a
- * pointer to memory cells already allocated (may be %NULL).
- * @len: number of bytes of *value: value[0]..value[len-1]. Initialy
- * holds the sizeof value.
- * @etype: The type of the value read (ASN1_ETYPE)
- *
- * Returns the type and value of one element inside a structure.
- * If an element is OPTIONAL and this returns
- * %ASN1_ELEMENT_NOT_FOUND, it means that this element wasn't present
- * in the der encoding that created the structure. The first element
- * of a SEQUENCE_OF or SET_OF is named "?1". The second one "?2" and
- * so on. If the @root provided is a node to specific sequence element,
- * then the keyword "?CURRENT" is also acceptable and indicates the
- * current sequence element of this node.
- *
- * Note that there can be valid values with length zero. In these case
- * this function will succeed and @len will be zero.
- *
- *
- * INTEGER: VALUE will contain a two's complement form integer.
- *
- * integer=-1 -> value[0]=0xFF , len=1.
- * integer=1 -> value[0]=0x01 , len=1.
- *
- * ENUMERATED: As INTEGER (but only with not negative numbers).
- *
- * BOOLEAN: VALUE will be the null terminated string "TRUE" or
- * "FALSE" and LEN=5 or LEN=6.
- *
- * OBJECT IDENTIFIER: VALUE will be a null terminated string with
- * each number separated by a dot (i.e. "1.2.3.543.1").
- *
- * LEN = strlen(VALUE)+1
- *
- * UTCTime: VALUE will be a null terminated string in one of these
- * formats: "YYMMDDhhmmss+hh'mm'" or "YYMMDDhhmmss-hh'mm'".
- * LEN=strlen(VALUE)+1.
- *
- * GeneralizedTime: VALUE will be a null terminated string in the
- * same format used to set the value.
- *
- * OCTET STRING: VALUE will contain the octet string and LEN will be
- * the number of octets.
- *
- * GeneralString: VALUE will contain the generalstring and LEN will
- * be the number of octets.
- *
- * BIT STRING: VALUE will contain the bit string organized by bytes
- * and LEN will be the number of bits.
- *
- * CHOICE: If NAME indicates a choice type, VALUE will specify the
- * alternative selected.
- *
- * ANY: If NAME indicates an any type, VALUE will indicate the DER
- * encoding of the structure actually used.
- *
- * Returns: %ASN1_SUCCESS if value is returned,
- * %ASN1_ELEMENT_NOT_FOUND if @name is not a valid element,
- * %ASN1_VALUE_NOT_FOUND if there isn't any value for the element
- * selected, and %ASN1_MEM_ERROR if The value vector isn't big enough
- * to store the result, and in this case @len will contain the number of
- * bytes needed. On the occasion that the stored data are of zero-length
- * this function may return %ASN1_SUCCESS even if the provided @len is zero.
- **/
-int
-asn1_read_value_type (asn1_node root, const char *name, void *ivalue,
- int *len, unsigned int *etype)
-{
- asn1_node node, p, p2;
- int len2, len3, result;
- int value_size = *len;
- unsigned char *value = ivalue;
- unsigned type;
-
- node = asn1_find_node (root, name);
- if (node == NULL)
- return ASN1_ELEMENT_NOT_FOUND;
-
- type = type_field (node->type);
-
- if ((type != ASN1_ETYPE_NULL) &&
- (type != ASN1_ETYPE_CHOICE) &&
- !(node->type & CONST_DEFAULT) && !(node->type & CONST_ASSIGN) &&
- (node->value == NULL))
- return ASN1_VALUE_NOT_FOUND;
-
- if (etype)
- *etype = type;
- switch (type)
- {
- case ASN1_ETYPE_NULL:
- PUT_STR_VALUE (value, value_size, "NULL");
- break;
- case ASN1_ETYPE_BOOLEAN:
- if ((node->type & CONST_DEFAULT) && (node->value == NULL))
- {
- p = node->down;
- while (type_field (p->type) != ASN1_ETYPE_DEFAULT)
- p = p->right;
- if (p->type & CONST_TRUE)
- {
- PUT_STR_VALUE (value, value_size, "TRUE");
- }
- else
- {
- PUT_STR_VALUE (value, value_size, "FALSE");
- }
- }
- else if (node->value[0] == 'T')
- {
- PUT_STR_VALUE (value, value_size, "TRUE");
- }
- else
- {
- PUT_STR_VALUE (value, value_size, "FALSE");
- }
- break;
- case ASN1_ETYPE_INTEGER:
- case ASN1_ETYPE_ENUMERATED:
- if ((node->type & CONST_DEFAULT) && (node->value == NULL))
- {
- p = node->down;
- while (type_field (p->type) != ASN1_ETYPE_DEFAULT)
- p = p->right;
- if ((isdigit (p->value[0])) || (p->value[0] == '-')
- || (p->value[0] == '+'))
- {
- result = _asn1_convert_integer
- (p->value, value, value_size, len);
- if (result != ASN1_SUCCESS)
- return result;
- }
- else
- { /* is an identifier like v1 */
- p2 = node->down;
- while (p2)
- {
- if (type_field (p2->type) == ASN1_ETYPE_CONSTANT)
- {
- if (!_asn1_strcmp (p2->name, p->value))
- {
- result = _asn1_convert_integer
- (p2->value, value, value_size,
- len);
- if (result != ASN1_SUCCESS)
- return result;
- break;
- }
- }
- p2 = p2->right;
- }
- }
- }
- else
- {
- len2 = -1;
- result = asn1_get_octet_der
- (node->value, node->value_len, &len2, value, value_size,
- len);
- if (result != ASN1_SUCCESS)
- return result;
- }
- break;
- case ASN1_ETYPE_OBJECT_ID:
- if (node->type & CONST_ASSIGN)
- {
- *len = 0;
- if (value)
- value[0] = 0;
- p = node->down;
- while (p)
- {
- if (type_field (p->type) == ASN1_ETYPE_CONSTANT)
- {
- ADD_STR_VALUE (value, value_size, p->value);
- if (p->right)
- {
- ADD_STR_VALUE (value, value_size, ".");
- }
- }
- p = p->right;
- }
- (*len)++;
- }
- else if ((node->type & CONST_DEFAULT) && (node->value == NULL))
- {
- p = node->down;
- while (type_field (p->type) != ASN1_ETYPE_DEFAULT)
- p = p->right;
- PUT_STR_VALUE (value, value_size, p->value);
- }
- else
- {
- PUT_STR_VALUE (value, value_size, node->value);
- }
- break;
- case ASN1_ETYPE_GENERALIZED_TIME:
- case ASN1_ETYPE_UTC_TIME:
- PUT_AS_STR_VALUE (value, value_size, node->value, node->value_len);
- break;
- case ASN1_ETYPE_OCTET_STRING:
- case ASN1_ETYPE_GENERALSTRING:
- case ASN1_ETYPE_NUMERIC_STRING:
- case ASN1_ETYPE_IA5_STRING:
- case ASN1_ETYPE_TELETEX_STRING:
- case ASN1_ETYPE_PRINTABLE_STRING:
- case ASN1_ETYPE_UNIVERSAL_STRING:
- case ASN1_ETYPE_BMP_STRING:
- case ASN1_ETYPE_UTF8_STRING:
- case ASN1_ETYPE_VISIBLE_STRING:
- len2 = -1;
- result = asn1_get_octet_der
- (node->value, node->value_len, &len2, value, value_size,
- len);
- if (result != ASN1_SUCCESS)
- return result;
- break;
- case ASN1_ETYPE_BIT_STRING:
- len2 = -1;
- result = asn1_get_bit_der
- (node->value, node->value_len, &len2, value, value_size,
- len);
- if (result != ASN1_SUCCESS)
- return result;
- break;
- case ASN1_ETYPE_CHOICE:
- PUT_STR_VALUE (value, value_size, node->down->name);
- break;
- case ASN1_ETYPE_ANY:
- len3 = -1;
- len2 = asn1_get_length_der (node->value, node->value_len, &len3);
- if (len2 < 0)
- return ASN1_DER_ERROR;
- PUT_VALUE (value, value_size, node->value + len3, len2);
- break;
- default:
- return ASN1_ELEMENT_NOT_FOUND;
- break;
- }
- return ASN1_SUCCESS;
-}
-
-
-/**
- * asn1_read_tag:
- * @root: pointer to a structure
- * @name: the name of the element inside a structure.
- * @tagValue: variable that will contain the TAG value.
- * @classValue: variable that will specify the TAG type.
- *
- * Returns the TAG and the CLASS of one element inside a structure.
- * CLASS can have one of these constants: %ASN1_CLASS_APPLICATION,
- * %ASN1_CLASS_UNIVERSAL, %ASN1_CLASS_PRIVATE or
- * %ASN1_CLASS_CONTEXT_SPECIFIC.
- *
- * Returns: %ASN1_SUCCESS if successful, %ASN1_ELEMENT_NOT_FOUND if
- * @name is not a valid element.
- **/
-int
-asn1_read_tag (asn1_node root, const char *name, int *tagValue,
- int *classValue)
-{
- asn1_node node, p, pTag;
-
- node = asn1_find_node (root, name);
- if (node == NULL)
- return ASN1_ELEMENT_NOT_FOUND;
-
- p = node->down;
-
- /* pTag will points to the IMPLICIT TAG */
- pTag = NULL;
- if (node->type & CONST_TAG)
- {
- while (p)
- {
- if (type_field (p->type) == ASN1_ETYPE_TAG)
- {
- if ((p->type & CONST_IMPLICIT) && (pTag == NULL))
- pTag = p;
- else if (p->type & CONST_EXPLICIT)
- pTag = NULL;
- }
- p = p->right;
- }
- }
-
- if (pTag)
- {
- *tagValue = _asn1_strtoul (pTag->value, NULL, 10);
-
- if (pTag->type & CONST_APPLICATION)
- *classValue = ASN1_CLASS_APPLICATION;
- else if (pTag->type & CONST_UNIVERSAL)
- *classValue = ASN1_CLASS_UNIVERSAL;
- else if (pTag->type & CONST_PRIVATE)
- *classValue = ASN1_CLASS_PRIVATE;
- else
- *classValue = ASN1_CLASS_CONTEXT_SPECIFIC;
- }
- else
- {
- unsigned type = type_field (node->type);
- *classValue = ASN1_CLASS_UNIVERSAL;
-
- switch (type)
- {
- CASE_HANDLED_ETYPES:
- *tagValue = _asn1_tags[type].tag;
- break;
- case ASN1_ETYPE_TAG:
- case ASN1_ETYPE_CHOICE:
- case ASN1_ETYPE_ANY:
- *tagValue = -1;
- break;
- default:
- break;
- }
- }
-
- return ASN1_SUCCESS;
-}
-
-/**
- * asn1_read_node_value:
- * @node: pointer to a node.
- * @data: a point to a asn1_data_node_st
- *
- * Returns the value a data node inside a asn1_node structure.
- * The data returned should be handled as constant values.
- *
- * Returns: %ASN1_SUCCESS if the node exists.
- **/
-int
-asn1_read_node_value (asn1_node node, asn1_data_node_st * data)
-{
- data->name = node->name;
- data->value = node->value;
- data->value_len = node->value_len;
- data->type = type_field (node->type);
-
- return ASN1_SUCCESS;
-}
diff --git a/lib/minitasn1/element.h b/lib/minitasn1/element.h
deleted file mode 100644
index 4e45367415..0000000000
--- a/lib/minitasn1/element.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) 2000-2014 Free Software Foundation, Inc.
- *
- * This file is part of LIBTASN1.
- *
- * The LIBTASN1 library is free software; you can redistribute it
- * and/or modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA
- */
-
-#ifndef _ELEMENT_H
-#define _ELEMENT_H
-
-
-struct node_tail_cache_st
-{
- asn1_node head; /* the first element of the sequence */
- asn1_node tail;
-};
-
-int _asn1_append_sequence_set (asn1_node node, struct node_tail_cache_st *pcached);
-
-int _asn1_convert_integer (const unsigned char *value,
- unsigned char *value_out,
- int value_out_size, int *len);
-
-void _asn1_hierarchical_name (asn1_node node, char *name, int name_size);
-
-#endif
diff --git a/lib/minitasn1/errors.c b/lib/minitasn1/errors.c
deleted file mode 100644
index fef45ae742..0000000000
--- a/lib/minitasn1/errors.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (C) 2002-2014 Free Software Foundation, Inc.
- *
- * This file is part of LIBTASN1.
- *
- * The LIBTASN1 library is free software; you can redistribute it
- * and/or modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA
- */
-
-#include <int.h>
-#ifdef STDC_HEADERS
-#include <stdarg.h>
-#endif
-
-#define LIBTASN1_ERROR_ENTRY(name) { #name, name }
-
-struct libtasn1_error_entry
-{
- const char *name;
- int number;
-};
-typedef struct libtasn1_error_entry libtasn1_error_entry;
-
-static const libtasn1_error_entry error_algorithms[] = {
- LIBTASN1_ERROR_ENTRY (ASN1_SUCCESS),
- LIBTASN1_ERROR_ENTRY (ASN1_FILE_NOT_FOUND),
- LIBTASN1_ERROR_ENTRY (ASN1_ELEMENT_NOT_FOUND),
- LIBTASN1_ERROR_ENTRY (ASN1_IDENTIFIER_NOT_FOUND),
- LIBTASN1_ERROR_ENTRY (ASN1_DER_ERROR),
- LIBTASN1_ERROR_ENTRY (ASN1_VALUE_NOT_FOUND),
- LIBTASN1_ERROR_ENTRY (ASN1_GENERIC_ERROR),
- LIBTASN1_ERROR_ENTRY (ASN1_VALUE_NOT_VALID),
- LIBTASN1_ERROR_ENTRY (ASN1_TAG_ERROR),
- LIBTASN1_ERROR_ENTRY (ASN1_TAG_IMPLICIT),
- LIBTASN1_ERROR_ENTRY (ASN1_ERROR_TYPE_ANY),
- LIBTASN1_ERROR_ENTRY (ASN1_SYNTAX_ERROR),
- LIBTASN1_ERROR_ENTRY (ASN1_MEM_ERROR),
- LIBTASN1_ERROR_ENTRY (ASN1_MEM_ALLOC_ERROR),
- LIBTASN1_ERROR_ENTRY (ASN1_DER_OVERFLOW),
- LIBTASN1_ERROR_ENTRY (ASN1_NAME_TOO_LONG),
- LIBTASN1_ERROR_ENTRY (ASN1_ARRAY_ERROR),
- LIBTASN1_ERROR_ENTRY (ASN1_ELEMENT_NOT_EMPTY),
- LIBTASN1_ERROR_ENTRY (ASN1_TIME_ENCODING_ERROR),
- {0, 0}
-};
-
-/**
- * asn1_perror:
- * @error: is an error returned by a libtasn1 function.
- *
- * Prints a string to stderr with a description of an error. This
- * function is like perror(). The only difference is that it accepts
- * an error returned by a libtasn1 function.
- *
- * Since: 1.6
- **/
-void
-asn1_perror (int error)
-{
- const char *str = asn1_strerror (error);
- fprintf (stderr, "LIBTASN1 ERROR: %s\n", str ? str : "(null)");
-}
-
-/**
- * asn1_strerror:
- * @error: is an error returned by a libtasn1 function.
- *
- * Returns a string with a description of an error. This function is
- * similar to strerror. The only difference is that it accepts an
- * error (number) returned by a libtasn1 function.
- *
- * Returns: Pointer to static zero-terminated string describing error
- * code.
- *
- * Since: 1.6
- **/
-const char *
-asn1_strerror (int error)
-{
- const libtasn1_error_entry *p;
-
- for (p = error_algorithms; p->name != NULL; p++)
- if (p->number == error)
- return p->name + sizeof ("ASN1_") - 1;
-
- return NULL;
-}
diff --git a/lib/minitasn1/gstr.c b/lib/minitasn1/gstr.c
deleted file mode 100644
index e91a3a151c..0000000000
--- a/lib/minitasn1/gstr.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (C) 2002-2014 Free Software Foundation, Inc.
- *
- * This file is part of LIBTASN1.
- *
- * The LIBTASN1 library is free software; you can redistribute it
- * and/or modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA
- */
-
-#include <int.h>
-#include "gstr.h"
-
-/* These function are like strcat, strcpy. They only
- * do bounds checking (they shouldn't cause buffer overruns),
- * and they always produce null terminated strings.
- *
- * They should be used only with null terminated strings.
- */
-void
-_asn1_str_cat (char *dest, size_t dest_tot_size, const char *src)
-{
- size_t str_size = strlen (src);
- size_t dest_size = strlen (dest);
-
- if (dest_tot_size - dest_size > str_size)
- {
- strcat (dest, src);
- }
- else
- {
- if (dest_tot_size - dest_size > 0)
- {
- strncat (dest, src, (dest_tot_size - dest_size) - 1);
- dest[dest_tot_size - 1] = 0;
- }
- }
-}
-
-/* Returns the bytes copied (not including the null terminator) */
-unsigned int
-_asn1_str_cpy (char *dest, size_t dest_tot_size, const char *src)
-{
- size_t str_size = strlen (src);
-
- if (dest_tot_size > str_size)
- {
- strcpy (dest, src);
- return str_size;
- }
- else
- {
- if (dest_tot_size > 0)
- {
- str_size = dest_tot_size - 1;
- memcpy (dest, src, str_size);
- dest[str_size] = 0;
- return str_size;
- }
- else
- return 0;
- }
-}
diff --git a/lib/minitasn1/gstr.h b/lib/minitasn1/gstr.h
deleted file mode 100644
index 00c335ca93..0000000000
--- a/lib/minitasn1/gstr.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2002-2014 Free Software Foundation, Inc.
- *
- * This file is part of LIBTASN1.
- *
- * The LIBTASN1 library is free software; you can redistribute it
- * and/or modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA
- */
-
-unsigned int _asn1_str_cpy (char *dest, size_t dest_tot_size,
- const char *src);
-void _asn1_str_cat (char *dest, size_t dest_tot_size, const char *src);
-
-#define Estrcpy(x,y) _asn1_str_cpy(x,ASN1_MAX_ERROR_DESCRIPTION_SIZE,y)
-#define Estrcat(x,y) _asn1_str_cat(x,ASN1_MAX_ERROR_DESCRIPTION_SIZE,y)
-
-inline static
-void safe_memset(void *data, int c, size_t size)
-{
- volatile unsigned volatile_zero = 0;
- volatile char *vdata = (volatile char*)data;
-
- /* This is based on a nice trick for safe memset,
- * sent by David Jacobson in the openssl-dev mailing list.
- */
-
- if (size > 0) do {
- memset(data, c, size);
- } while(vdata[volatile_zero] != c);
-}
diff --git a/lib/minitasn1/int.h b/lib/minitasn1/int.h
deleted file mode 100644
index 7d2eea379c..0000000000
--- a/lib/minitasn1/int.h
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- * Copyright (C) 2002-2014 Free Software Foundation, Inc.
- *
- * This file is part of LIBTASN1.
- *
- * The LIBTASN1 library is free software; you can redistribute it
- * and/or modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA
- */
-
-#ifndef INT_H
-#define INT_H
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <string.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <ctype.h>
-#include <stdint.h>
-
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-
-#include <libtasn1.h>
-
-#define ASN1_SMALL_VALUE_SIZE 16
-
-/* This structure is also in libtasn1.h, but then contains less
- fields. You cannot make any modifications to these first fields
- without breaking ABI. */
-struct asn1_node_st
-{
- /* public fields: */
- char name[ASN1_MAX_NAME_SIZE + 1]; /* Node name */
- unsigned int name_hash;
- unsigned int type; /* Node type */
- unsigned char *value; /* Node value */
- int value_len;
- asn1_node down; /* Pointer to the son node */
- asn1_node right; /* Pointer to the brother node */
- asn1_node left; /* Pointer to the next list element */
- /* private fields: */
- unsigned char small_value[ASN1_SMALL_VALUE_SIZE]; /* For small values */
-
- /* values used during decoding/coding */
- int tmp_ival;
- unsigned start; /* the start of the DER sequence - if decoded */
- unsigned end; /* the end of the DER sequence - if decoded */
-};
-
-typedef struct tag_and_class_st
-{
- unsigned tag;
- unsigned class;
- const char *desc;
-} tag_and_class_st;
-
-/* the types that are handled in _asn1_tags */
-#define CASE_HANDLED_ETYPES \
- case ASN1_ETYPE_NULL: \
- case ASN1_ETYPE_BOOLEAN: \
- case ASN1_ETYPE_INTEGER: \
- case ASN1_ETYPE_ENUMERATED: \
- case ASN1_ETYPE_OBJECT_ID: \
- case ASN1_ETYPE_OCTET_STRING: \
- case ASN1_ETYPE_GENERALSTRING: \
- case ASN1_ETYPE_NUMERIC_STRING: \
- case ASN1_ETYPE_IA5_STRING: \
- case ASN1_ETYPE_TELETEX_STRING: \
- case ASN1_ETYPE_PRINTABLE_STRING: \
- case ASN1_ETYPE_UNIVERSAL_STRING: \
- case ASN1_ETYPE_BMP_STRING: \
- case ASN1_ETYPE_UTF8_STRING: \
- case ASN1_ETYPE_VISIBLE_STRING: \
- case ASN1_ETYPE_BIT_STRING: \
- case ASN1_ETYPE_SEQUENCE: \
- case ASN1_ETYPE_SEQUENCE_OF: \
- case ASN1_ETYPE_SET: \
- case ASN1_ETYPE_UTC_TIME: \
- case ASN1_ETYPE_GENERALIZED_TIME: \
- case ASN1_ETYPE_SET_OF
-
-#define ETYPE_TAG(etype) (_asn1_tags[etype].tag)
-#define ETYPE_CLASS(etype) (_asn1_tags[etype].class)
-#define ETYPE_OK(etype) (((etype) != ASN1_ETYPE_INVALID && \
- (etype) <= _asn1_tags_size && \
- _asn1_tags[(etype)].desc != NULL)?1:0)
-
-#define ETYPE_IS_STRING(etype) ((etype == ASN1_ETYPE_GENERALSTRING || \
- etype == ASN1_ETYPE_NUMERIC_STRING || etype == ASN1_ETYPE_IA5_STRING || \
- etype == ASN1_ETYPE_TELETEX_STRING || etype == ASN1_ETYPE_PRINTABLE_STRING || \
- etype == ASN1_ETYPE_UNIVERSAL_STRING || etype == ASN1_ETYPE_BMP_STRING || \
- etype == ASN1_ETYPE_UTF8_STRING || etype == ASN1_ETYPE_VISIBLE_STRING || \
- etype == ASN1_ETYPE_OCTET_STRING)?1:0)
-
-extern unsigned int _asn1_tags_size;
-extern const tag_and_class_st _asn1_tags[];
-
-#define _asn1_strlen(s) strlen((const char *) s)
-#define _asn1_strtol(n,e,b) strtol((const char *) n, e, b)
-#define _asn1_strtoul(n,e,b) strtoul((const char *) n, e, b)
-#define _asn1_strcmp(a,b) strcmp((const char *)a, (const char *)b)
-#define _asn1_strcpy(a,b) strcpy((char *)a, (const char *)b)
-#define _asn1_strcat(a,b) strcat((char *)a, (const char *)b)
-
-#if SIZEOF_UNSIGNED_LONG_INT == 8
-# define _asn1_strtou64(n,e,b) strtoul((const char *) n, e, b)
-#else
-# define _asn1_strtou64(n,e,b) strtoull((const char *) n, e, b)
-#endif
-
-#define MAX_LOG_SIZE 1024 /* maximum number of characters of a log message */
-
-/* Define used for visiting trees. */
-#define UP 1
-#define RIGHT 2
-#define DOWN 3
-
-/***********************************************************************/
-/* List of constants to better specify the type of typedef asn1_node_st. */
-/***********************************************************************/
-/* Used with TYPE_TAG */
-#define CONST_UNIVERSAL (1<<8)
-#define CONST_PRIVATE (1<<9)
-#define CONST_APPLICATION (1<<10)
-#define CONST_EXPLICIT (1<<11)
-#define CONST_IMPLICIT (1<<12)
-
-#define CONST_TAG (1<<13) /* Used in ASN.1 assignement */
-#define CONST_OPTION (1<<14)
-#define CONST_DEFAULT (1<<15)
-#define CONST_TRUE (1<<16)
-#define CONST_FALSE (1<<17)
-
-#define CONST_LIST (1<<18) /* Used with TYPE_INTEGER and TYPE_BIT_STRING */
-#define CONST_MIN_MAX (1<<19)
-
-#define CONST_1_PARAM (1<<20)
-
-#define CONST_SIZE (1<<21)
-
-#define CONST_DEFINED_BY (1<<22)
-
-/* Those two are deprecated and used for backwards compatibility */
-#define CONST_GENERALIZED (1<<23)
-#define CONST_UTC (1<<24)
-
-/* #define CONST_IMPORTS (1<<25) */
-
-#define CONST_NOT_USED (1<<26)
-#define CONST_SET (1<<27)
-#define CONST_ASSIGN (1<<28)
-
-#define CONST_DOWN (1<<29)
-#define CONST_RIGHT (1<<30)
-
-
-#define ASN1_ETYPE_TIME 17
-/****************************************/
-/* Returns the first 8 bits. */
-/* Used with the field type of asn1_node_st */
-/****************************************/
-inline static unsigned int
-type_field (unsigned int ntype)
-{
- return (ntype & 0xff);
-}
-
-/* To convert old types from a static structure */
-inline static unsigned int
-convert_old_type (unsigned int ntype)
-{
- unsigned int type = ntype & 0xff;
- if (type == ASN1_ETYPE_TIME)
- {
- if (ntype & CONST_UTC)
- type = ASN1_ETYPE_UTC_TIME;
- else
- type = ASN1_ETYPE_GENERALIZED_TIME;
-
- ntype &= ~(CONST_UTC | CONST_GENERALIZED);
- ntype &= 0xffffff00;
- ntype |= type;
-
- return ntype;
- }
- else
- return ntype;
-}
-
-static inline
-void *_asn1_realloc(void *ptr, size_t size)
-{
- void *ret;
-
- if (size == 0)
- return ptr;
-
- ret = realloc(ptr, size);
- if (ret == NULL)
- {
- free(ptr);
- }
- return ret;
-}
-
-#endif /* INT_H */
diff --git a/lib/minitasn1/libtasn1.h b/lib/minitasn1/libtasn1.h
deleted file mode 100644
index 626b11ec67..0000000000
--- a/lib/minitasn1/libtasn1.h
+++ /dev/null
@@ -1,405 +0,0 @@
-/*
- * Copyright (C) 2002-2014 Free Software Foundation, Inc.
- *
- * This file is part of LIBTASN1.
- *
- * LIBTASN1 is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * LIBTASN1 is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with LIBTASN1; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA
- *
- */
-
-#ifndef LIBTASN1_H
-#define LIBTASN1_H
-
-#ifndef ASN1_API
-#if defined ASN1_BUILDING && defined HAVE_VISIBILITY && HAVE_VISIBILITY
-#define ASN1_API __attribute__((__visibility__("default")))
-#elif defined ASN1_BUILDING && defined _MSC_VER && ! defined ASN1_STATIC
-#define ASN1_API __declspec(dllexport)
-#elif defined _MSC_VER && ! defined ASN1_STATIC
-#define ASN1_API __declspec(dllimport)
-#else
-#define ASN1_API
-#endif
-#endif
-
-#include <sys/types.h>
-#include <time.h>
-#include <stdio.h> /* for FILE* */
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-#define ASN1_VERSION "4.12"
-
-#if defined(__GNUC__) && !defined(ASN1_INTERNAL_BUILD)
-# define _ASN1_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
-# if _ASN1_GCC_VERSION >= 30100
-# define _ASN1_GCC_ATTR_DEPRECATED __attribute__ ((__deprecated__))
-# endif
-#endif
-
-#ifndef _ASN1_GCC_ATTR_DEPRECATED
-#define _ASN1_GCC_ATTR_DEPRECATED
-#endif
-
- /*****************************************/
- /* Errors returned by libtasn1 functions */
- /*****************************************/
-#define ASN1_SUCCESS 0
-#define ASN1_FILE_NOT_FOUND 1
-#define ASN1_ELEMENT_NOT_FOUND 2
-#define ASN1_IDENTIFIER_NOT_FOUND 3
-#define ASN1_DER_ERROR 4
-#define ASN1_VALUE_NOT_FOUND 5
-#define ASN1_GENERIC_ERROR 6
-#define ASN1_VALUE_NOT_VALID 7
-#define ASN1_TAG_ERROR 8
-#define ASN1_TAG_IMPLICIT 9
-#define ASN1_ERROR_TYPE_ANY 10
-#define ASN1_SYNTAX_ERROR 11
-#define ASN1_MEM_ERROR 12
-#define ASN1_MEM_ALLOC_ERROR 13
-#define ASN1_DER_OVERFLOW 14
-#define ASN1_NAME_TOO_LONG 15
-#define ASN1_ARRAY_ERROR 16
-#define ASN1_ELEMENT_NOT_EMPTY 17
-#define ASN1_TIME_ENCODING_ERROR 18
-
- /*************************************/
- /* Constants used in asn1_visit_tree */
- /*************************************/
-#define ASN1_PRINT_NAME 1
-#define ASN1_PRINT_NAME_TYPE 2
-#define ASN1_PRINT_NAME_TYPE_VALUE 3
-#define ASN1_PRINT_ALL 4
-
- /*****************************************/
- /* Constants returned by asn1_read_tag */
- /*****************************************/
-#define ASN1_CLASS_UNIVERSAL 0x00 /* old: 1 */
-#define ASN1_CLASS_APPLICATION 0x40 /* old: 2 */
-#define ASN1_CLASS_CONTEXT_SPECIFIC 0x80 /* old: 3 */
-#define ASN1_CLASS_PRIVATE 0xC0 /* old: 4 */
-#define ASN1_CLASS_STRUCTURED 0x20
-
- /*****************************************/
- /* Constants returned by asn1_read_tag */
- /*****************************************/
-#define ASN1_TAG_BOOLEAN 0x01
-#define ASN1_TAG_INTEGER 0x02
-#define ASN1_TAG_SEQUENCE 0x10
-#define ASN1_TAG_SET 0x11
-#define ASN1_TAG_OCTET_STRING 0x04
-#define ASN1_TAG_BIT_STRING 0x03
-#define ASN1_TAG_UTCTime 0x17
-#define ASN1_TAG_GENERALIZEDTime 0x18
-#define ASN1_TAG_OBJECT_ID 0x06
-#define ASN1_TAG_ENUMERATED 0x0A
-#define ASN1_TAG_NULL 0x05
-#define ASN1_TAG_GENERALSTRING 0x1B
-#define ASN1_TAG_NUMERIC_STRING 0x12
-#define ASN1_TAG_IA5_STRING 0x16
-#define ASN1_TAG_TELETEX_STRING 0x14
-#define ASN1_TAG_PRINTABLE_STRING 0x13
-#define ASN1_TAG_UNIVERSAL_STRING 0x1C
-#define ASN1_TAG_BMP_STRING 0x1E
-#define ASN1_TAG_UTF8_STRING 0x0C
-#define ASN1_TAG_VISIBLE_STRING 0x1A
-
- /******************************************************/
- /* Structure definition used for the node of the tree */
- /* that represent an ASN.1 DEFINITION. */
- /******************************************************/
-
- typedef struct asn1_node_st asn1_node_st;
-
- typedef asn1_node_st *asn1_node;
-
- /* maximum number of characters of a name */
- /* inside a file with ASN1 definitons */
-#define ASN1_MAX_NAME_SIZE 64
-
-
- /*****************************************/
- /* For the on-disk format of ASN.1 trees */
- /*****************************************/
- struct asn1_static_node_st
- {
- const char *name; /* Node name */
- unsigned int type; /* Node type */
- const void *value; /* Node value */
- };
- typedef struct asn1_static_node_st asn1_static_node;
-
-/* List of constants for field type of node_asn */
-#define ASN1_ETYPE_INVALID 0
-#define ASN1_ETYPE_CONSTANT 1
-#define ASN1_ETYPE_IDENTIFIER 2
-#define ASN1_ETYPE_INTEGER 3
-#define ASN1_ETYPE_BOOLEAN 4
-#define ASN1_ETYPE_SEQUENCE 5
-#define ASN1_ETYPE_BIT_STRING 6
-#define ASN1_ETYPE_OCTET_STRING 7
-#define ASN1_ETYPE_TAG 8
-#define ASN1_ETYPE_DEFAULT 9
-#define ASN1_ETYPE_SIZE 10
-#define ASN1_ETYPE_SEQUENCE_OF 11
-#define ASN1_ETYPE_OBJECT_ID 12
-#define ASN1_ETYPE_ANY 13
-#define ASN1_ETYPE_SET 14
-#define ASN1_ETYPE_SET_OF 15
-#define ASN1_ETYPE_DEFINITIONS 16
-#define ASN1_ETYPE_CHOICE 18
-#define ASN1_ETYPE_IMPORTS 19
-#define ASN1_ETYPE_NULL 20
-#define ASN1_ETYPE_ENUMERATED 21
-#define ASN1_ETYPE_GENERALSTRING 27
-#define ASN1_ETYPE_NUMERIC_STRING 28
-#define ASN1_ETYPE_IA5_STRING 29
-#define ASN1_ETYPE_TELETEX_STRING 30
-#define ASN1_ETYPE_PRINTABLE_STRING 31
-#define ASN1_ETYPE_UNIVERSAL_STRING 32
-#define ASN1_ETYPE_BMP_STRING 33
-#define ASN1_ETYPE_UTF8_STRING 34
-#define ASN1_ETYPE_VISIBLE_STRING 35
-#define ASN1_ETYPE_UTC_TIME 36
-#define ASN1_ETYPE_GENERALIZED_TIME 37
-
-/* Flags used by asn1_delete_structure2() */
-
-/* makes sure the values are zeroized prior to deinitialization */
-#define ASN1_DELETE_FLAG_ZEROIZE 1
-
-/* Flags used by asn1_der_decoding2(). */
-
-/* This flag would allow arbitrary data past the DER data */
-#define ASN1_DECODE_FLAG_ALLOW_PADDING 1
-/* This flag would ensure that no BER decoding takes place */
-#define ASN1_DECODE_FLAG_STRICT_DER (1<<1)
-/* This flag will tolerate Time encoding errors when in strict DER */
-#define ASN1_DECODE_FLAG_ALLOW_INCORRECT_TIME (1<<2)
-
-
- struct asn1_data_node_st
- {
- const char *name; /* Node name */
- const void *value; /* Node value */
- unsigned int value_len; /* Node value size */
- unsigned int type; /* Node value type (ASN1_ETYPE_*) */
- };
- typedef struct asn1_data_node_st asn1_data_node_st;
-
- /***********************************/
- /* Fixed constants */
- /***********************************/
-
-
- /* maximum number of characters */
- /* of a description message */
- /* (null character included) */
-#define ASN1_MAX_ERROR_DESCRIPTION_SIZE 128
-
- /***********************************/
- /* Functions definitions */
- /***********************************/
-
- extern ASN1_API int
- asn1_parser2tree (const char *file,
- asn1_node * definitions, char *error_desc);
-
- extern ASN1_API int
- asn1_parser2array (const char *inputFileName,
- const char *outputFileName,
- const char *vectorName, char *error_desc);
-
- extern ASN1_API int
- asn1_array2tree (const asn1_static_node * array,
- asn1_node * definitions, char *errorDescription);
-
- extern ASN1_API void
- asn1_print_structure (FILE * out, asn1_node structure,
- const char *name, int mode);
-
- extern ASN1_API int
- asn1_create_element (asn1_node definitions,
- const char *source_name, asn1_node * element);
-
- extern ASN1_API int asn1_delete_structure (asn1_node * structure);
-
- extern ASN1_API int asn1_delete_structure2 (asn1_node * structure, unsigned int flags);
-
- extern ASN1_API int
- asn1_delete_element (asn1_node structure, const char *element_name);
-
- extern ASN1_API int
- asn1_write_value (asn1_node node_root, const char *name,
- const void *ivalue, int len);
-
- extern ASN1_API int
- asn1_read_value (asn1_node root, const char *name,
- void *ivalue, int *len);
-
- extern ASN1_API int
- asn1_read_value_type (asn1_node root, const char *name,
- void *ivalue, int *len, unsigned int *etype);
-
- extern ASN1_API int
- asn1_read_node_value (asn1_node node, asn1_data_node_st * data);
-
- extern ASN1_API int
- asn1_number_of_elements (asn1_node element, const char *name, int *num);
-
- extern ASN1_API int
- asn1_der_coding (asn1_node element, const char *name,
- void *ider, int *len, char *ErrorDescription);
-
- extern ASN1_API int
- asn1_der_decoding2 (asn1_node *element, const void *ider,
- int *max_ider_len, unsigned int flags,
- char *errorDescription);
-
- extern ASN1_API int
- asn1_der_decoding (asn1_node * element, const void *ider,
- int len, char *errorDescription);
-
- /* Do not use. Use asn1_der_decoding() instead. */
- extern ASN1_API int
- asn1_der_decoding_element (asn1_node * structure,
- const char *elementName,
- const void *ider, int len,
- char *errorDescription) _ASN1_GCC_ATTR_DEPRECATED;
-
- extern ASN1_API int
- asn1_der_decoding_startEnd (asn1_node element,
- const void *ider, int len,
- const char *name_element,
- int *start, int *end);
-
- extern ASN1_API int
- asn1_expand_any_defined_by (asn1_node definitions, asn1_node * element);
-
- extern ASN1_API int
- asn1_expand_octet_string (asn1_node definitions,
- asn1_node * element,
- const char *octetName, const char *objectName);
-
- extern ASN1_API int
- asn1_read_tag (asn1_node root, const char *name,
- int *tagValue, int *classValue);
-
- extern ASN1_API const char *asn1_find_structure_from_oid (asn1_node
- definitions,
- const char
- *oidValue);
-
- extern ASN1_API const char *asn1_check_version (const char *req_version);
-
- extern ASN1_API const char *asn1_strerror (int error);
-
- extern ASN1_API void asn1_perror (int error);
-
-#define ASN1_MAX_TAG_SIZE 4
-#define ASN1_MAX_LENGTH_SIZE 9
-#define ASN1_MAX_TL_SIZE (ASN1_MAX_TAG_SIZE+ASN1_MAX_LENGTH_SIZE)
- extern ASN1_API long
- asn1_get_length_der (const unsigned char *der, int der_len, int *len);
-
- extern ASN1_API long
- asn1_get_length_ber (const unsigned char *ber, int ber_len, int *len);
-
- extern ASN1_API void
- asn1_length_der (unsigned long int len, unsigned char *der, int *der_len);
-
- /* Other utility functions. */
-
- extern ASN1_API
- int asn1_decode_simple_der (unsigned int etype, const unsigned char *der,
- unsigned int der_len,
- const unsigned char **str,
- unsigned int *str_len);
-
- extern ASN1_API
- int asn1_decode_simple_ber (unsigned int etype, const unsigned char *der,
- unsigned int der_len,
- unsigned char **str,
- unsigned int *str_len,
- unsigned int *ber_len);
-
- extern ASN1_API int
- asn1_encode_simple_der (unsigned int etype, const unsigned char *str,
- unsigned int str_len, unsigned char *tl,
- unsigned int *tl_len);
-
- extern ASN1_API asn1_node
- asn1_find_node (asn1_node pointer, const char *name);
-
- extern ASN1_API int
- asn1_copy_node (asn1_node dst, const char *dst_name,
- asn1_node src, const char *src_name);
- extern ASN1_API asn1_node
- asn1_dup_node (asn1_node src, const char *src_name);
-
- /* Internal and low-level DER utility functions. */
-
- extern ASN1_API int
- asn1_get_tag_der (const unsigned char *der, int der_len,
- unsigned char *cls, int *len, unsigned long *tag);
-
- extern ASN1_API void
- asn1_octet_der (const unsigned char *str, int str_len,
- unsigned char *der, int *der_len);
-
- extern ASN1_API int
- asn1_get_octet_der (const unsigned char *der, int der_len,
- int *ret_len, unsigned char *str,
- int str_size, int *str_len);
-
- extern ASN1_API void asn1_bit_der (const unsigned char *str, int bit_len,
- unsigned char *der, int *der_len);
-
- extern ASN1_API int
- asn1_get_bit_der (const unsigned char *der, int der_len,
- int *ret_len, unsigned char *str,
- int str_size, int *bit_len);
-
- extern ASN1_API int
- asn1_get_object_id_der (const unsigned char *der,
- int der_len, int *ret_len,
- char *str, int str_size);
-
-/* Compatibility types */
-
- typedef int asn1_retCode; /* type returned by libtasn1 functions */
-
-#define node_asn_struct asn1_node_st
-#define node_asn asn1_node_st
-#define ASN1_TYPE asn1_node
-#define ASN1_TYPE_EMPTY NULL
-
-#define static_struct_asn asn1_static_node_st
-#define ASN1_ARRAY_TYPE asn1_static_node
-#define asn1_static_node_t asn1_static_node
-
-#define node_data_struct asn1_data_node_st
-#define ASN1_DATA_NODE asn1_data_node_st
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LIBTASN1_H */
diff --git a/lib/minitasn1/parser_aux.c b/lib/minitasn1/parser_aux.c
deleted file mode 100644
index 786ea640a4..0000000000
--- a/lib/minitasn1/parser_aux.c
+++ /dev/null
@@ -1,1097 +0,0 @@
-/*
- * Copyright (C) 2000-2016 Free Software Foundation, Inc.
- *
- * This file is part of LIBTASN1.
- *
- * The LIBTASN1 library is free software; you can redistribute it
- * and/or modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA
- */
-
-#include <int.h>
-#include <hash-pjw-bare.h>
-#include "parser_aux.h"
-#include "gstr.h"
-#include "structure.h"
-#include "element.h"
-
-char _asn1_identifierMissing[ASN1_MAX_NAME_SIZE + 1]; /* identifier name not found */
-
-/***********************************************/
-/* Type: list_type */
-/* Description: type used in the list during */
-/* the structure creation. */
-/***********************************************/
-typedef struct list_struct
-{
- asn1_node node;
- struct list_struct *next;
-} list_type;
-
-
-/* Pointer to the first element of the list */
-list_type *firstElement = NULL;
-
-/******************************************************/
-/* Function : _asn1_add_static_node */
-/* Description: creates a new NODE_ASN element and */
-/* puts it in the list pointed by firstElement. */
-/* Parameters: */
-/* type: type of the new element (see ASN1_ETYPE_ */
-/* and CONST_ constants). */
-/* Return: pointer to the new element. */
-/******************************************************/
-asn1_node
-_asn1_add_static_node (unsigned int type)
-{
- list_type *listElement;
- asn1_node punt;
-
- punt = calloc (1, sizeof (struct asn1_node_st));
- if (punt == NULL)
- return NULL;
-
- listElement = malloc (sizeof (list_type));
- if (listElement == NULL)
- {
- free (punt);
- return NULL;
- }
-
- listElement->node = punt;
- listElement->next = firstElement;
- firstElement = listElement;
-
- punt->type = type;
-
- return punt;
-}
-
-/**
- * asn1_find_node:
- * @pointer: NODE_ASN element pointer.
- * @name: null terminated string with the element's name to find.
- *
- * Searches for an element called @name starting from @pointer. The
- * name is composed by different identifiers separated by dots. When
- * *@pointer has a name, the first identifier must be the name of
- * *@pointer, otherwise it must be the name of one child of *@pointer.
- *
- * Returns: the search result, or %NULL if not found.
- **/
-asn1_node
-asn1_find_node (asn1_node pointer, const char *name)
-{
- asn1_node p;
- char *n_end, n[ASN1_MAX_NAME_SIZE + 1];
- const char *n_start;
- unsigned int nsize;
- unsigned int nhash;
-
- if (pointer == NULL)
- return NULL;
-
- if (name == NULL)
- return NULL;
-
- p = pointer;
- n_start = name;
-
- if (name[0] == '?' && name[1] == 'C' && p->name[0] == '?')
- { /* ?CURRENT */
- n_start = strchr(n_start, '.');
- if (n_start)
- n_start++;
- }
- else if (p->name[0] != 0)
- { /* has *pointer got a name ? */
- n_end = strchr (n_start, '.'); /* search the first dot */
- if (n_end)
- {
- nsize = n_end - n_start;
- if (nsize >= sizeof(n))
- return NULL;
-
- memcpy (n, n_start, nsize);
- n[nsize] = 0;
- n_start = n_end;
- n_start++;
-
- nhash = hash_pjw_bare (n, nsize);
- }
- else
- {
- nsize = _asn1_str_cpy (n, sizeof (n), n_start);
- nhash = hash_pjw_bare (n, nsize);
-
- n_start = NULL;
- }
-
- while (p)
- {
- if (nhash == p->name_hash && (!strcmp (p->name, n)))
- break;
- else
- p = p->right;
- } /* while */
-
- if (p == NULL)
- return NULL;
- }
- else
- { /* *pointer doesn't have a name */
- if (n_start[0] == 0)
- return p;
- }
-
- while (n_start)
- { /* Has the end of NAME been reached? */
- n_end = strchr (n_start, '.'); /* search the next dot */
- if (n_end)
- {
- nsize = n_end - n_start;
- if (nsize >= sizeof(n))
- return NULL;
-
- memcpy (n, n_start, nsize);
- n[nsize] = 0;
- n_start = n_end;
- n_start++;
-
- nhash = hash_pjw_bare (n, nsize);
- }
- else
- {
- nsize = _asn1_str_cpy (n, sizeof (n), n_start);
- nhash = hash_pjw_bare (n, nsize);
- n_start = NULL;
- }
-
- if (p->down == NULL)
- return NULL;
-
- p = p->down;
- if (p == NULL)
- return NULL;
-
- /* The identifier "?LAST" indicates the last element
- in the right chain. */
- if (n[0] == '?' && n[1] == 'L') /* ?LAST */
- {
- while (p->right)
- p = p->right;
- }
- else
- { /* no "?LAST" */
- while (p)
- {
- if (p->name_hash == nhash && !strcmp (p->name, n))
- break;
- else
- p = p->right;
- }
- }
- if (p == NULL)
- return NULL;
- } /* while */
-
- return p;
-}
-
-
-/******************************************************************/
-/* Function : _asn1_set_value */
-/* Description: sets the field VALUE in a NODE_ASN element. The */
-/* previous value (if exist) will be lost */
-/* Parameters: */
-/* node: element pointer. */
-/* value: pointer to the value that you want to set. */
-/* len: character number of value. */
-/* Return: pointer to the NODE_ASN element. */
-/******************************************************************/
-asn1_node
-_asn1_set_value (asn1_node node, const void *value, unsigned int len)
-{
- if (node == NULL)
- return node;
- if (node->value)
- {
- if (node->value != node->small_value)
- free (node->value);
- node->value = NULL;
- node->value_len = 0;
- }
-
- if (!len)
- return node;
-
- if (len < sizeof (node->small_value))
- {
- node->value = node->small_value;
- }
- else
- {
- node->value = malloc (len);
- if (node->value == NULL)
- return NULL;
- }
- node->value_len = len;
-
- memcpy (node->value, value, len);
- return node;
-}
-
-/******************************************************************/
-/* Function : _asn1_set_value_lv */
-/* Description: sets the field VALUE in a NODE_ASN element. The */
-/* previous value (if exist) will be lost. The value */
-/* given is stored as an length-value format (LV */
-/* Parameters: */
-/* node: element pointer. */
-/* value: pointer to the value that you want to set. */
-/* len: character number of value. */
-/* Return: pointer to the NODE_ASN element. */
-/******************************************************************/
-asn1_node
-_asn1_set_value_lv (asn1_node node, const void *value, unsigned int len)
-{
- int len2;
- void *temp;
-
- if (node == NULL)
- return node;
-
- asn1_length_der (len, NULL, &len2);
- temp = malloc (len + len2);
- if (temp == NULL)
- return NULL;
-
- asn1_octet_der (value, len, temp, &len2);
- return _asn1_set_value_m (node, temp, len2);
-}
-
-/* the same as _asn1_set_value except that it sets an already malloc'ed
- * value.
- */
-asn1_node
-_asn1_set_value_m (asn1_node node, void *value, unsigned int len)
-{
- if (node == NULL)
- return node;
-
- if (node->value)
- {
- if (node->value != node->small_value)
- free (node->value);
- node->value = NULL;
- node->value_len = 0;
- }
-
- if (!len)
- return node;
-
- node->value = value;
- node->value_len = len;
-
- return node;
-}
-
-/******************************************************************/
-/* Function : _asn1_append_value */
-/* Description: appends to the field VALUE in a NODE_ASN element. */
-/* */
-/* Parameters: */
-/* node: element pointer. */
-/* value: pointer to the value that you want to be appended. */
-/* len: character number of value. */
-/* Return: pointer to the NODE_ASN element. */
-/******************************************************************/
-asn1_node
-_asn1_append_value (asn1_node node, const void *value, unsigned int len)
-{
- if (node == NULL)
- return node;
-
- if (node->value == NULL)
- return _asn1_set_value (node, value, len);
-
- if (len == 0)
- return node;
-
- if (node->value == node->small_value)
- {
- /* value is in node */
- int prev_len = node->value_len;
- node->value_len += len;
- node->value = malloc (node->value_len);
- if (node->value == NULL)
- {
- node->value_len = 0;
- return NULL;
- }
-
- if (prev_len > 0)
- memcpy (node->value, node->small_value, prev_len);
-
- memcpy (&node->value[prev_len], value, len);
-
- return node;
- }
- else /* if (node->value != NULL && node->value != node->small_value) */
- {
- /* value is allocated */
- int prev_len = node->value_len;
- node->value_len += len;
-
- node->value = _asn1_realloc (node->value, node->value_len);
- if (node->value == NULL)
- {
- node->value_len = 0;
- return NULL;
- }
-
- memcpy (&node->value[prev_len], value, len);
-
- return node;
- }
-}
-
-/******************************************************************/
-/* Function : _asn1_set_name */
-/* Description: sets the field NAME in a NODE_ASN element. The */
-/* previous value (if exist) will be lost */
-/* Parameters: */
-/* node: element pointer. */
-/* name: a null terminated string with the name that you want */
-/* to set. */
-/* Return: pointer to the NODE_ASN element. */
-/******************************************************************/
-asn1_node
-_asn1_set_name (asn1_node node, const char *name)
-{
- unsigned int nsize;
-
- if (node == NULL)
- return node;
-
- if (name == NULL)
- {
- node->name[0] = 0;
- node->name_hash = hash_pjw_bare (node->name, 0);
- return node;
- }
-
- nsize = _asn1_str_cpy (node->name, sizeof (node->name), name);
- node->name_hash = hash_pjw_bare (node->name, nsize);
-
- return node;
-}
-
-/******************************************************************/
-/* Function : _asn1_cpy_name */
-/* Description: copies the field NAME in a NODE_ASN element. */
-/* Parameters: */
-/* dst: a dest element pointer. */
-/* src: a source element pointer. */
-/* Return: pointer to the NODE_ASN element. */
-/******************************************************************/
-asn1_node
-_asn1_cpy_name (asn1_node dst, asn1_node src)
-{
- if (dst == NULL)
- return dst;
-
- if (src == NULL)
- {
- dst->name[0] = 0;
- dst->name_hash = hash_pjw_bare (dst->name, 0);
- return dst;
- }
-
- _asn1_str_cpy (dst->name, sizeof (dst->name), src->name);
- dst->name_hash = src->name_hash;
-
- return dst;
-}
-
-/******************************************************************/
-/* Function : _asn1_set_right */
-/* Description: sets the field RIGHT in a NODE_ASN element. */
-/* Parameters: */
-/* node: element pointer. */
-/* right: pointer to a NODE_ASN element that you want be pointed*/
-/* by NODE. */
-/* Return: pointer to *NODE. */
-/******************************************************************/
-asn1_node
-_asn1_set_right (asn1_node node, asn1_node right)
-{
- if (node == NULL)
- return node;
- node->right = right;
- if (right)
- right->left = node;
- return node;
-}
-
-
-/******************************************************************/
-/* Function : _asn1_get_last_right */
-/* Description: return the last element along the right chain. */
-/* Parameters: */
-/* node: starting element pointer. */
-/* Return: pointer to the last element along the right chain. */
-/******************************************************************/
-asn1_node
-_asn1_get_last_right (asn1_node node)
-{
- asn1_node p;
-
- if (node == NULL)
- return NULL;
- p = node;
- while (p->right)
- p = p->right;
- return p;
-}
-
-/******************************************************************/
-/* Function : _asn1_remove_node */
-/* Description: gets free the memory allocated for an NODE_ASN */
-/* element (not the elements pointed by it). */
-/* Parameters: */
-/* node: NODE_ASN element pointer. */
-/* flags: ASN1_DELETE_FLAG_* */
-/******************************************************************/
-void
-_asn1_remove_node (asn1_node node, unsigned int flags)
-{
- if (node == NULL)
- return;
-
- if (node->value != NULL)
- {
- if (flags & ASN1_DELETE_FLAG_ZEROIZE)
- {
- safe_memset(node->value, 0, node->value_len);
- }
-
- if (node->value != node->small_value)
- free (node->value);
- }
- free (node);
-}
-
-/******************************************************************/
-/* Function : _asn1_find_up */
-/* Description: return the father of the NODE_ASN element. */
-/* Parameters: */
-/* node: NODE_ASN element pointer. */
-/* Return: Null if not found. */
-/******************************************************************/
-asn1_node
-_asn1_find_up (asn1_node node)
-{
- asn1_node p;
-
- if (node == NULL)
- return NULL;
-
- p = node;
-
- while ((p->left != NULL) && (p->left->right == p))
- p = p->left;
-
- return p->left;
-}
-
-/******************************************************************/
-/* Function : _asn1_delete_list */
-/* Description: deletes the list elements (not the elements */
-/* pointed by them). */
-/******************************************************************/
-void
-_asn1_delete_list (void)
-{
- list_type *listElement;
-
- while (firstElement)
- {
- listElement = firstElement;
- firstElement = firstElement->next;
- free (listElement);
- }
-}
-
-/******************************************************************/
-/* Function : _asn1_delete_list_and nodes */
-/* Description: deletes the list elements and the elements */
-/* pointed by them. */
-/******************************************************************/
-void
-_asn1_delete_list_and_nodes (void)
-{
- list_type *listElement;
-
- while (firstElement)
- {
- listElement = firstElement;
- firstElement = firstElement->next;
- _asn1_remove_node (listElement->node, 0);
- free (listElement);
- }
-}
-
-
-char *
-_asn1_ltostr (int64_t v, char str[LTOSTR_MAX_SIZE])
-{
- uint64_t d, r;
- char temp[LTOSTR_MAX_SIZE];
- int count, k, start;
- uint64_t val;
-
- if (v < 0)
- {
- str[0] = '-';
- start = 1;
- val = -((uint64_t)v);
- }
- else
- {
- val = v;
- start = 0;
- }
-
- count = 0;
- do
- {
- d = val / 10;
- r = val - d * 10;
- temp[start + count] = '0' + (char) r;
- count++;
- val = d;
- }
- while (val && ((start+count) < LTOSTR_MAX_SIZE-1));
-
- for (k = 0; k < count; k++)
- str[k + start] = temp[start + count - k - 1];
- str[count + start] = 0;
- return str;
-}
-
-
-/******************************************************************/
-/* Function : _asn1_change_integer_value */
-/* Description: converts into DER coding the value assign to an */
-/* INTEGER constant. */
-/* Parameters: */
-/* node: root of an ASN1element. */
-/* Return: */
-/* ASN1_ELEMENT_NOT_FOUND if NODE is NULL, */
-/* otherwise ASN1_SUCCESS */
-/******************************************************************/
-int
-_asn1_change_integer_value (asn1_node node)
-{
- asn1_node p;
- unsigned char val[SIZEOF_UNSIGNED_LONG_INT];
- unsigned char val2[SIZEOF_UNSIGNED_LONG_INT + 1];
- int len;
-
- if (node == NULL)
- return ASN1_ELEMENT_NOT_FOUND;
-
- p = node;
- while (p)
- {
- if ((type_field (p->type) == ASN1_ETYPE_INTEGER)
- && (p->type & CONST_ASSIGN))
- {
- if (p->value)
- {
- _asn1_convert_integer (p->value, val, sizeof (val), &len);
- asn1_octet_der (val, len, val2, &len);
- _asn1_set_value (p, val2, len);
- }
- }
-
- if (p->down)
- {
- p = p->down;
- }
- else
- {
- if (p == node)
- p = NULL;
- else if (p->right)
- p = p->right;
- else
- {
- while (1)
- {
- p = _asn1_find_up (p);
- if (p == node)
- {
- p = NULL;
- break;
- }
- if (p && p->right)
- {
- p = p->right;
- break;
- }
- }
- }
- }
- }
-
- return ASN1_SUCCESS;
-}
-
-
-/******************************************************************/
-/* Function : _asn1_expand_object_id */
-/* Description: expand the IDs of an OBJECT IDENTIFIER constant. */
-/* Parameters: */
-/* node: root of an ASN1 element. */
-/* Return: */
-/* ASN1_ELEMENT_NOT_FOUND if NODE is NULL, */
-/* otherwise ASN1_SUCCESS */
-/******************************************************************/
-int
-_asn1_expand_object_id (asn1_node node)
-{
- asn1_node p, p2, p3, p4, p5;
- char name_root[ASN1_MAX_NAME_SIZE], name2[2 * ASN1_MAX_NAME_SIZE + 1];
- int move, tlen;
-
- if (node == NULL)
- return ASN1_ELEMENT_NOT_FOUND;
-
- _asn1_str_cpy (name_root, sizeof (name_root), node->name);
-
- p = node;
- move = DOWN;
-
- while (!((p == node) && (move == UP)))
- {
- if (move != UP)
- {
- if ((type_field (p->type) == ASN1_ETYPE_OBJECT_ID)
- && (p->type & CONST_ASSIGN))
- {
- p2 = p->down;
- if (p2 && (type_field (p2->type) == ASN1_ETYPE_CONSTANT))
- {
- if (p2->value && !isdigit (p2->value[0]))
- {
- _asn1_str_cpy (name2, sizeof (name2), name_root);
- _asn1_str_cat (name2, sizeof (name2), ".");
- _asn1_str_cat (name2, sizeof (name2),
- (char *) p2->value);
- p3 = asn1_find_node (node, name2);
- if (!p3
- || (type_field (p3->type) != ASN1_ETYPE_OBJECT_ID)
- || !(p3->type & CONST_ASSIGN))
- return ASN1_ELEMENT_NOT_FOUND;
- _asn1_set_down (p, p2->right);
- _asn1_remove_node (p2, 0);
- p2 = p;
- p4 = p3->down;
- while (p4)
- {
- if (type_field (p4->type) == ASN1_ETYPE_CONSTANT)
- {
- p5 =
- _asn1_add_single_node (ASN1_ETYPE_CONSTANT);
- _asn1_set_name (p5, p4->name);
- if (p4->value)
- {
- tlen = _asn1_strlen (p4->value);
- if (tlen > 0)
- _asn1_set_value (p5, p4->value, tlen + 1);
- }
- if (p2 == p)
- {
- _asn1_set_right (p5, p->down);
- _asn1_set_down (p, p5);
- }
- else
- {
- _asn1_set_right (p5, p2->right);
- _asn1_set_right (p2, p5);
- }
- p2 = p5;
- }
- p4 = p4->right;
- }
- move = DOWN;
- continue;
- }
- }
- }
- move = DOWN;
- }
- else
- move = RIGHT;
-
- if (move == DOWN)
- {
- if (p->down)
- p = p->down;
- else
- move = RIGHT;
- }
-
- if (p == node)
- {
- move = UP;
- continue;
- }
-
- if (move == RIGHT)
- {
- if (p && p->right)
- p = p->right;
- else
- move = UP;
- }
- if (move == UP)
- p = _asn1_find_up (p);
- }
-
-
- /*******************************/
- /* expand DEFAULT */
- /*******************************/
- p = node;
- move = DOWN;
-
- while (!((p == node) && (move == UP)))
- {
- if (move != UP)
- {
- if ((type_field (p->type) == ASN1_ETYPE_OBJECT_ID) &&
- (p->type & CONST_DEFAULT))
- {
- p2 = p->down;
- if (p2 && (type_field (p2->type) == ASN1_ETYPE_DEFAULT))
- {
- _asn1_str_cpy (name2, sizeof (name2), name_root);
- _asn1_str_cat (name2, sizeof (name2), ".");
- _asn1_str_cat (name2, sizeof (name2), (char *) p2->value);
- p3 = asn1_find_node (node, name2);
- if (!p3 || (type_field (p3->type) != ASN1_ETYPE_OBJECT_ID)
- || !(p3->type & CONST_ASSIGN))
- return ASN1_ELEMENT_NOT_FOUND;
- p4 = p3->down;
- name2[0] = 0;
- while (p4)
- {
- if (type_field (p4->type) == ASN1_ETYPE_CONSTANT)
- {
- if (p4->value == NULL)
- return ASN1_VALUE_NOT_FOUND;
-
- if (name2[0])
- _asn1_str_cat (name2, sizeof (name2), ".");
- _asn1_str_cat (name2, sizeof (name2),
- (char *) p4->value);
- }
- p4 = p4->right;
- }
- tlen = strlen (name2);
- if (tlen > 0)
- _asn1_set_value (p2, name2, tlen + 1);
- }
- }
- move = DOWN;
- }
- else
- move = RIGHT;
-
- if (move == DOWN)
- {
- if (p->down)
- p = p->down;
- else
- move = RIGHT;
- }
-
- if (p == node)
- {
- move = UP;
- continue;
- }
-
- if (move == RIGHT)
- {
- if (p && p->right)
- p = p->right;
- else
- move = UP;
- }
- if (move == UP)
- p = _asn1_find_up (p);
- }
-
- return ASN1_SUCCESS;
-}
-
-
-/******************************************************************/
-/* Function : _asn1_type_set_config */
-/* Description: sets the CONST_SET and CONST_NOT_USED properties */
-/* in the fields of the SET elements. */
-/* Parameters: */
-/* node: root of an ASN1 element. */
-/* Return: */
-/* ASN1_ELEMENT_NOT_FOUND if NODE is NULL, */
-/* otherwise ASN1_SUCCESS */
-/******************************************************************/
-int
-_asn1_type_set_config (asn1_node node)
-{
- asn1_node p, p2;
- int move;
-
- if (node == NULL)
- return ASN1_ELEMENT_NOT_FOUND;
-
- p = node;
- move = DOWN;
-
- while (!((p == node) && (move == UP)))
- {
- if (move != UP)
- {
- if (type_field (p->type) == ASN1_ETYPE_SET)
- {
- p2 = p->down;
- while (p2)
- {
- if (type_field (p2->type) != ASN1_ETYPE_TAG)
- p2->type |= CONST_SET | CONST_NOT_USED;
- p2 = p2->right;
- }
- }
- move = DOWN;
- }
- else
- move = RIGHT;
-
- if (move == DOWN)
- {
- if (p->down)
- p = p->down;
- else
- move = RIGHT;
- }
-
- if (p == node)
- {
- move = UP;
- continue;
- }
-
- if (move == RIGHT)
- {
- if (p && p->right)
- p = p->right;
- else
- move = UP;
- }
- if (move == UP)
- p = _asn1_find_up (p);
- }
-
- return ASN1_SUCCESS;
-}
-
-
-/******************************************************************/
-/* Function : _asn1_check_identifier */
-/* Description: checks the definitions of all the identifiers */
-/* and the first element of an OBJECT_ID (e.g. {pkix 0 4}). */
-/* The _asn1_identifierMissing global variable is filled if */
-/* necessary. */
-/* Parameters: */
-/* node: root of an ASN1 element. */
-/* Return: */
-/* ASN1_ELEMENT_NOT_FOUND if NODE is NULL, */
-/* ASN1_IDENTIFIER_NOT_FOUND if an identifier is not defined, */
-/* otherwise ASN1_SUCCESS */
-/******************************************************************/
-int
-_asn1_check_identifier (asn1_node node)
-{
- asn1_node p, p2;
- char name2[ASN1_MAX_NAME_SIZE * 2 + 2];
-
- if (node == NULL)
- return ASN1_ELEMENT_NOT_FOUND;
-
- p = node;
- while (p)
- {
- if (p->value && type_field (p->type) == ASN1_ETYPE_IDENTIFIER)
- {
- _asn1_str_cpy (name2, sizeof (name2), node->name);
- _asn1_str_cat (name2, sizeof (name2), ".");
- _asn1_str_cat (name2, sizeof (name2), (char *) p->value);
- p2 = asn1_find_node (node, name2);
- if (p2 == NULL)
- {
- if (p->value)
- _asn1_str_cpy (_asn1_identifierMissing, sizeof(_asn1_identifierMissing), (char*)p->value);
- else
- _asn1_strcpy (_asn1_identifierMissing, "(null)");
- return ASN1_IDENTIFIER_NOT_FOUND;
- }
- }
- else if ((type_field (p->type) == ASN1_ETYPE_OBJECT_ID) &&
- (p->type & CONST_DEFAULT))
- {
- p2 = p->down;
- if (p2 && (type_field (p2->type) == ASN1_ETYPE_DEFAULT))
- {
- _asn1_str_cpy (name2, sizeof (name2), node->name);
- if (p2->value)
- {
- _asn1_str_cat (name2, sizeof (name2), ".");
- _asn1_str_cat (name2, sizeof (name2), (char *) p2->value);
- _asn1_str_cpy (_asn1_identifierMissing, sizeof(_asn1_identifierMissing), (char*)p2->value);
- }
- else
- _asn1_strcpy (_asn1_identifierMissing, "(null)");
-
- p2 = asn1_find_node (node, name2);
- if (!p2 || (type_field (p2->type) != ASN1_ETYPE_OBJECT_ID) ||
- !(p2->type & CONST_ASSIGN))
- return ASN1_IDENTIFIER_NOT_FOUND;
- else
- _asn1_identifierMissing[0] = 0;
- }
- }
- else if ((type_field (p->type) == ASN1_ETYPE_OBJECT_ID) &&
- (p->type & CONST_ASSIGN))
- {
- p2 = p->down;
- if (p2 && (type_field (p2->type) == ASN1_ETYPE_CONSTANT))
- {
- if (p2->value && !isdigit (p2->value[0]))
- {
- _asn1_str_cpy (name2, sizeof (name2), node->name);
- _asn1_str_cat (name2, sizeof (name2), ".");
- _asn1_str_cat (name2, sizeof (name2), (char *) p2->value);
- _asn1_str_cpy (_asn1_identifierMissing, sizeof(_asn1_identifierMissing), (char*)p2->value);
-
- p2 = asn1_find_node (node, name2);
- if (!p2 || (type_field (p2->type) != ASN1_ETYPE_OBJECT_ID)
- || !(p2->type & CONST_ASSIGN))
- return ASN1_IDENTIFIER_NOT_FOUND;
- else
- _asn1_identifierMissing[0] = 0;
- }
- }
- }
-
- if (p->down)
- {
- p = p->down;
- }
- else if (p->right)
- p = p->right;
- else
- {
- while (1)
- {
- p = _asn1_find_up (p);
- if (p == node)
- {
- p = NULL;
- break;
- }
- if (p && p->right)
- {
- p = p->right;
- break;
- }
- }
- }
- }
-
- return ASN1_SUCCESS;
-}
-
-
-/******************************************************************/
-/* Function : _asn1_set_default_tag */
-/* Description: sets the default IMPLICIT or EXPLICIT property in */
-/* the tagged elements that don't have this declaration. */
-/* Parameters: */
-/* node: pointer to a DEFINITIONS element. */
-/* Return: */
-/* ASN1_ELEMENT_NOT_FOUND if NODE is NULL or not a pointer to */
-/* a DEFINITIONS element, */
-/* otherwise ASN1_SUCCESS */
-/******************************************************************/
-int
-_asn1_set_default_tag (asn1_node node)
-{
- asn1_node p;
-
- if ((node == NULL) || (type_field (node->type) != ASN1_ETYPE_DEFINITIONS))
- return ASN1_ELEMENT_NOT_FOUND;
-
- p = node;
- while (p)
- {
- if ((type_field (p->type) == ASN1_ETYPE_TAG) &&
- !(p->type & CONST_EXPLICIT) && !(p->type & CONST_IMPLICIT))
- {
- if (node->type & CONST_EXPLICIT)
- p->type |= CONST_EXPLICIT;
- else
- p->type |= CONST_IMPLICIT;
- }
-
- if (p->down)
- {
- p = p->down;
- }
- else if (p->right)
- p = p->right;
- else
- {
- while (1)
- {
- p = _asn1_find_up (p);
- if (p == node)
- {
- p = NULL;
- break;
- }
- if (p && p->right)
- {
- p = p->right;
- break;
- }
- }
- }
- }
-
- return ASN1_SUCCESS;
-}
diff --git a/lib/minitasn1/parser_aux.h b/lib/minitasn1/parser_aux.h
deleted file mode 100644
index 9f9183312e..0000000000
--- a/lib/minitasn1/parser_aux.h
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * Copyright (C) 2000-2014 Free Software Foundation, Inc.
- *
- * This file is part of LIBTASN1.
- *
- * The LIBTASN1 library is free software; you can redistribute it
- * and/or modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA
- */
-
-#ifndef _PARSER_AUX_H
-#define _PARSER_AUX_H
-
-/***************************************/
-/* Functions used by ASN.1 parser */
-/***************************************/
-asn1_node _asn1_add_static_node (unsigned int type);
-
-asn1_node
-_asn1_set_value (asn1_node node, const void *value, unsigned int len);
-
-asn1_node _asn1_set_value_m (asn1_node node, void *value, unsigned int len);
-
-asn1_node
-_asn1_set_value_lv (asn1_node node, const void *value, unsigned int len);
-
-asn1_node
-_asn1_append_value (asn1_node node, const void *value, unsigned int len);
-
-asn1_node _asn1_set_name (asn1_node node, const char *name);
-
-asn1_node _asn1_cpy_name (asn1_node dst, asn1_node src);
-
-asn1_node _asn1_set_right (asn1_node node, asn1_node right);
-
-asn1_node _asn1_get_last_right (asn1_node node);
-
-void _asn1_remove_node (asn1_node node, unsigned int flags);
-
-void _asn1_delete_list (void);
-
-void _asn1_delete_list_and_nodes (void);
-
-/* Max 64-bit integer length is 20 chars + 1 for sign + 1 for null termination */
-#define LTOSTR_MAX_SIZE 22
-char *_asn1_ltostr (int64_t v, char str[LTOSTR_MAX_SIZE]);
-
-asn1_node _asn1_find_up (asn1_node node);
-
-int _asn1_change_integer_value (asn1_node node);
-
-int _asn1_expand_object_id (asn1_node node);
-
-int _asn1_type_set_config (asn1_node node);
-
-int _asn1_check_identifier (asn1_node node);
-
-int _asn1_set_default_tag (asn1_node node);
-
-/******************************************************************/
-/* Function : _asn1_get_right */
-/* Description: returns the element pointed by the RIGHT field of */
-/* a NODE_ASN element. */
-/* Parameters: */
-/* node: NODE_ASN element pointer. */
-/* Return: field RIGHT of NODE. */
-/******************************************************************/
-inline static asn1_node
-_asn1_get_right (asn1_node node)
-{
- if (node == NULL)
- return NULL;
- return node->right;
-}
-
-/******************************************************************/
-/* Function : _asn1_set_down */
-/* Description: sets the field DOWN in a NODE_ASN element. */
-/* Parameters: */
-/* node: element pointer. */
-/* down: pointer to a NODE_ASN element that you want be pointed */
-/* by NODE. */
-/* Return: pointer to *NODE. */
-/******************************************************************/
-inline static asn1_node
-_asn1_set_down (asn1_node node, asn1_node down)
-{
- if (node == NULL)
- return node;
- node->down = down;
- if (down)
- down->left = node;
- return node;
-}
-
-/******************************************************************/
-/* Function : _asn1_get_down */
-/* Description: returns the element pointed by the DOWN field of */
-/* a NODE_ASN element. */
-/* Parameters: */
-/* node: NODE_ASN element pointer. */
-/* Return: field DOWN of NODE. */
-/******************************************************************/
-inline static asn1_node
-_asn1_get_down (asn1_node node)
-{
- if (node == NULL)
- return NULL;
- return node->down;
-}
-
-/******************************************************************/
-/* Function : _asn1_get_name */
-/* Description: returns the name of a NODE_ASN element. */
-/* Parameters: */
-/* node: NODE_ASN element pointer. */
-/* Return: a null terminated string. */
-/******************************************************************/
-inline static char *
-_asn1_get_name (asn1_node node)
-{
- if (node == NULL)
- return NULL;
- return node->name;
-}
-
-/******************************************************************/
-/* Function : _asn1_mod_type */
-/* Description: change the field TYPE of an NODE_ASN element. */
-/* The new value is the old one | (bitwise or) the */
-/* paramener VALUE. */
-/* Parameters: */
-/* node: NODE_ASN element pointer. */
-/* value: the integer value that must be or-ed with the current */
-/* value of field TYPE. */
-/* Return: NODE pointer. */
-/******************************************************************/
-inline static asn1_node
-_asn1_mod_type (asn1_node node, unsigned int value)
-{
- if (node == NULL)
- return node;
- node->type |= value;
- return node;
-}
-
-#endif
diff --git a/lib/minitasn1/structure.c b/lib/minitasn1/structure.c
deleted file mode 100644
index 01715b138b..0000000000
--- a/lib/minitasn1/structure.c
+++ /dev/null
@@ -1,1197 +0,0 @@
-/*
- * Copyright (C) 2002-2014 Free Software Foundation, Inc.
- *
- * This file is part of LIBTASN1.
- *
- * The LIBTASN1 library is free software; you can redistribute it
- * and/or modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA
- */
-
-
-/*****************************************************/
-/* File: structure.c */
-/* Description: Functions to create and delete an */
-/* ASN1 tree. */
-/*****************************************************/
-
-
-#include <int.h>
-#include <structure.h>
-#include "parser_aux.h"
-#include <gstr.h>
-
-
-extern char _asn1_identifierMissing[];
-
-
-/******************************************************/
-/* Function : _asn1_add_single_node */
-/* Description: creates a new NODE_ASN element. */
-/* Parameters: */
-/* type: type of the new element (see ASN1_ETYPE_ */
-/* and CONST_ constants). */
-/* Return: pointer to the new element. */
-/******************************************************/
-asn1_node
-_asn1_add_single_node (unsigned int type)
-{
- asn1_node punt;
-
- punt = calloc (1, sizeof (struct asn1_node_st));
- if (punt == NULL)
- return NULL;
-
- punt->type = type;
-
- return punt;
-}
-
-
-/******************************************************************/
-/* Function : _asn1_find_left */
-/* Description: returns the NODE_ASN element with RIGHT field that*/
-/* points the element NODE. */
-/* Parameters: */
-/* node: NODE_ASN element pointer. */
-/* Return: NULL if not found. */
-/******************************************************************/
-asn1_node
-_asn1_find_left (asn1_node node)
-{
- if ((node == NULL) || (node->left == NULL) || (node->left->down == node))
- return NULL;
-
- return node->left;
-}
-
-
-int
-_asn1_create_static_structure (asn1_node pointer, char *output_file_name,
- char *vector_name)
-{
- FILE *file;
- asn1_node p;
- unsigned long t;
-
- file = fopen (output_file_name, "w");
-
- if (file == NULL)
- return ASN1_FILE_NOT_FOUND;
-
- fprintf (file, "#if HAVE_CONFIG_H\n");
- fprintf (file, "# include \"config.h\"\n");
- fprintf (file, "#endif\n\n");
-
- fprintf (file, "#include <libtasn1.h>\n\n");
-
- fprintf (file, "const asn1_static_node %s[] = {\n", vector_name);
-
- p = pointer;
-
- while (p)
- {
- fprintf (file, " { ");
-
- if (p->name[0] != 0)
- fprintf (file, "\"%s\", ", p->name);
- else
- fprintf (file, "NULL, ");
-
- t = p->type;
- if (p->down)
- t |= CONST_DOWN;
- if (p->right)
- t |= CONST_RIGHT;
-
- fprintf (file, "%lu, ", t);
-
- if (p->value)
- fprintf (file, "\"%s\"},\n", p->value);
- else
- fprintf (file, "NULL },\n");
-
- if (p->down)
- {
- p = p->down;
- }
- else if (p->right)
- {
- p = p->right;
- }
- else
- {
- while (1)
- {
- p = _asn1_find_up (p);
- if (p == pointer)
- {
- p = NULL;
- break;
- }
- if (p->right)
- {
- p = p->right;
- break;
- }
- }
- }
- }
-
- fprintf (file, " { NULL, 0, NULL }\n};\n");
-
- fclose (file);
-
- return ASN1_SUCCESS;
-}
-
-
-/**
- * asn1_array2tree:
- * @array: specify the array that contains ASN.1 declarations
- * @definitions: return the pointer to the structure created by
- * *ARRAY ASN.1 declarations
- * @errorDescription: return the error description.
- *
- * Creates the structures needed to manage the ASN.1 definitions.
- * @array is a vector created by asn1_parser2array().
- *
- * Returns: %ASN1_SUCCESS if structure was created correctly,
- * %ASN1_ELEMENT_NOT_EMPTY if *@definitions not NULL,
- * %ASN1_IDENTIFIER_NOT_FOUND if in the file there is an identifier
- * that is not defined (see @errorDescription for more information),
- * %ASN1_ARRAY_ERROR if the array pointed by @array is wrong.
- **/
-int
-asn1_array2tree (const asn1_static_node * array, asn1_node * definitions,
- char *errorDescription)
-{
- asn1_node p, p_last = NULL;
- unsigned long k;
- int move;
- int result;
- unsigned int type;
-
- if (errorDescription)
- errorDescription[0] = 0;
-
- if (*definitions != NULL)
- return ASN1_ELEMENT_NOT_EMPTY;
-
- move = UP;
-
- k = 0;
- while (array[k].value || array[k].type || array[k].name)
- {
- type = convert_old_type (array[k].type);
-
- p = _asn1_add_static_node (type & (~CONST_DOWN));
- if (array[k].name)
- _asn1_set_name (p, array[k].name);
- if (array[k].value)
- _asn1_set_value (p, array[k].value, strlen (array[k].value) + 1);
-
- if (*definitions == NULL)
- *definitions = p;
-
- if (move == DOWN)
- _asn1_set_down (p_last, p);
- else if (move == RIGHT)
- _asn1_set_right (p_last, p);
-
- p_last = p;
-
- if (type & CONST_DOWN)
- move = DOWN;
- else if (type & CONST_RIGHT)
- move = RIGHT;
- else
- {
- while (1)
- {
- if (p_last == *definitions)
- break;
-
- p_last = _asn1_find_up (p_last);
-
- if (p_last == NULL)
- break;
-
- if (p_last->type & CONST_RIGHT)
- {
- p_last->type &= ~CONST_RIGHT;
- move = RIGHT;
- break;
- }
- } /* while */
- }
- k++;
- } /* while */
-
- if (p_last == *definitions)
- {
- result = _asn1_check_identifier (*definitions);
- if (result == ASN1_SUCCESS)
- {
- _asn1_change_integer_value (*definitions);
- _asn1_expand_object_id (*definitions);
- }
- }
- else
- {
- result = ASN1_ARRAY_ERROR;
- }
-
- if (errorDescription != NULL)
- {
- if (result == ASN1_IDENTIFIER_NOT_FOUND)
- {
- Estrcpy (errorDescription, ":: identifier '");
- Estrcat (errorDescription, _asn1_identifierMissing);
- Estrcat (errorDescription, "' not found");
- }
- else
- errorDescription[0] = 0;
- }
-
- if (result != ASN1_SUCCESS)
- {
- _asn1_delete_list_and_nodes ();
- *definitions = NULL;
- }
- else
- _asn1_delete_list ();
-
- return result;
-}
-
-/**
- * asn1_delete_structure:
- * @structure: pointer to the structure that you want to delete.
- *
- * Deletes the structure *@structure. At the end, *@structure is set
- * to NULL.
- *
- * Returns: %ASN1_SUCCESS if successful, %ASN1_ELEMENT_NOT_FOUND if
- * *@structure was NULL.
- **/
-int
-asn1_delete_structure (asn1_node * structure)
-{
- return asn1_delete_structure2(structure, 0);
-}
-
-/**
- * asn1_delete_structure2:
- * @structure: pointer to the structure that you want to delete.
- * @flags: additional flags (see %ASN1_DELETE_FLAG)
- *
- * Deletes the structure *@structure. At the end, *@structure is set
- * to NULL.
- *
- * Returns: %ASN1_SUCCESS if successful, %ASN1_ELEMENT_NOT_FOUND if
- * *@structure was NULL.
- **/
-int
-asn1_delete_structure2 (asn1_node * structure, unsigned int flags)
-{
- asn1_node p, p2, p3;
-
- if (*structure == NULL)
- return ASN1_ELEMENT_NOT_FOUND;
-
- p = *structure;
- while (p)
- {
- if (p->down)
- {
- p = p->down;
- }
- else
- { /* no down */
- p2 = p->right;
- if (p != *structure)
- {
- p3 = _asn1_find_up (p);
- _asn1_set_down (p3, p2);
- _asn1_remove_node (p, flags);
- p = p3;
- }
- else
- { /* p==root */
- p3 = _asn1_find_left (p);
- if (!p3)
- {
- p3 = _asn1_find_up (p);
- if (p3)
- _asn1_set_down (p3, p2);
- else
- {
- if (p->right)
- p->right->left = NULL;
- }
- }
- else
- _asn1_set_right (p3, p2);
- _asn1_remove_node (p, flags);
- p = NULL;
- }
- }
- }
-
- *structure = NULL;
- return ASN1_SUCCESS;
-}
-
-
-
-/**
- * asn1_delete_element:
- * @structure: pointer to the structure that contains the element you
- * want to delete.
- * @element_name: element's name you want to delete.
- *
- * Deletes the element named *@element_name inside *@structure.
- *
- * Returns: %ASN1_SUCCESS if successful, %ASN1_ELEMENT_NOT_FOUND if
- * the @element_name was not found.
- **/
-int
-asn1_delete_element (asn1_node structure, const char *element_name)
-{
- asn1_node p2, p3, source_node;
-
- source_node = asn1_find_node (structure, element_name);
-
- if (source_node == NULL)
- return ASN1_ELEMENT_NOT_FOUND;
-
- p2 = source_node->right;
- p3 = _asn1_find_left (source_node);
- if (!p3)
- {
- p3 = _asn1_find_up (source_node);
- if (p3)
- _asn1_set_down (p3, p2);
- else if (source_node->right)
- source_node->right->left = NULL;
- }
- else
- _asn1_set_right (p3, p2);
-
- return asn1_delete_structure (&source_node);
-}
-
-asn1_node
-_asn1_copy_structure3 (asn1_node source_node)
-{
- asn1_node dest_node, p_s, p_d, p_d_prev;
- int move;
-
- if (source_node == NULL)
- return NULL;
-
- dest_node = _asn1_add_single_node (source_node->type);
-
- p_s = source_node;
- p_d = dest_node;
-
- move = DOWN;
-
- do
- {
- if (move != UP)
- {
- if (p_s->name[0] != 0)
- _asn1_cpy_name (p_d, p_s);
- if (p_s->value)
- _asn1_set_value (p_d, p_s->value, p_s->value_len);
- if (p_s->down)
- {
- p_s = p_s->down;
- p_d_prev = p_d;
- p_d = _asn1_add_single_node (p_s->type);
- _asn1_set_down (p_d_prev, p_d);
- continue;
- }
- p_d->start = p_s->start;
- p_d->end = p_s->end;
- }
-
- if (p_s == source_node)
- break;
-
- if (p_s->right)
- {
- move = RIGHT;
- p_s = p_s->right;
- p_d_prev = p_d;
- p_d = _asn1_add_single_node (p_s->type);
- _asn1_set_right (p_d_prev, p_d);
- }
- else
- {
- move = UP;
- p_s = _asn1_find_up (p_s);
- p_d = _asn1_find_up (p_d);
- }
- }
- while (p_s != source_node);
-
- return dest_node;
-}
-
-
-static asn1_node
-_asn1_copy_structure2 (asn1_node root, const char *source_name)
-{
- asn1_node source_node;
-
- source_node = asn1_find_node (root, source_name);
-
- return _asn1_copy_structure3 (source_node);
-
-}
-
-
-static int
-_asn1_type_choice_config (asn1_node node)
-{
- asn1_node p, p2, p3, p4;
- int move, tlen;
-
- if (node == NULL)
- return ASN1_ELEMENT_NOT_FOUND;
-
- p = node;
- move = DOWN;
-
- while (!((p == node) && (move == UP)))
- {
- if (move != UP)
- {
- if ((type_field (p->type) == ASN1_ETYPE_CHOICE)
- && (p->type & CONST_TAG))
- {
- p2 = p->down;
- while (p2)
- {
- if (type_field (p2->type) != ASN1_ETYPE_TAG)
- {
- p2->type |= CONST_TAG;
- p3 = _asn1_find_left (p2);
- while (p3)
- {
- if (type_field (p3->type) == ASN1_ETYPE_TAG)
- {
- p4 = _asn1_add_single_node (p3->type);
- tlen = _asn1_strlen (p3->value);
- if (tlen > 0)
- _asn1_set_value (p4, p3->value, tlen + 1);
- _asn1_set_right (p4, p2->down);
- _asn1_set_down (p2, p4);
- }
- p3 = _asn1_find_left (p3);
- }
- }
- p2 = p2->right;
- }
- p->type &= ~(CONST_TAG);
- p2 = p->down;
- while (p2)
- {
- p3 = p2->right;
- if (type_field (p2->type) == ASN1_ETYPE_TAG)
- asn1_delete_structure (&p2);
- p2 = p3;
- }
- }
- move = DOWN;
- }
- else
- move = RIGHT;
-
- if (move == DOWN)
- {
- if (p->down)
- p = p->down;
- else
- move = RIGHT;
- }
-
- if (p == node)
- {
- move = UP;
- continue;
- }
-
- if (move == RIGHT)
- {
- if (p->right)
- p = p->right;
- else
- move = UP;
- }
- if (move == UP)
- p = _asn1_find_up (p);
- }
-
- return ASN1_SUCCESS;
-}
-
-
-static int
-_asn1_expand_identifier (asn1_node * node, asn1_node root)
-{
- asn1_node p, p2, p3;
- char name2[ASN1_MAX_NAME_SIZE + 2];
- int move;
-
- if (node == NULL)
- return ASN1_ELEMENT_NOT_FOUND;
-
- p = *node;
- move = DOWN;
-
- while (!((p == *node) && (move == UP)))
- {
- if (move != UP)
- {
- if (type_field (p->type) == ASN1_ETYPE_IDENTIFIER)
- {
- snprintf (name2, sizeof (name2), "%s.%s", root->name, p->value);
- p2 = _asn1_copy_structure2 (root, name2);
- if (p2 == NULL)
- {
- return ASN1_IDENTIFIER_NOT_FOUND;
- }
- _asn1_cpy_name (p2, p);
- p2->right = p->right;
- p2->left = p->left;
- if (p->right)
- p->right->left = p2;
- p3 = p->down;
- if (p3)
- {
- while (p3->right)
- p3 = p3->right;
- _asn1_set_right (p3, p2->down);
- _asn1_set_down (p2, p->down);
- }
-
- p3 = _asn1_find_left (p);
- if (p3)
- _asn1_set_right (p3, p2);
- else
- {
- p3 = _asn1_find_up (p);
- if (p3)
- _asn1_set_down (p3, p2);
- else
- {
- p2->left = NULL;
- }
- }
-
- if (p->type & CONST_SIZE)
- p2->type |= CONST_SIZE;
- if (p->type & CONST_TAG)
- p2->type |= CONST_TAG;
- if (p->type & CONST_OPTION)
- p2->type |= CONST_OPTION;
- if (p->type & CONST_DEFAULT)
- p2->type |= CONST_DEFAULT;
- if (p->type & CONST_SET)
- p2->type |= CONST_SET;
- if (p->type & CONST_NOT_USED)
- p2->type |= CONST_NOT_USED;
-
- if (p == *node)
- *node = p2;
- _asn1_remove_node (p, 0);
- p = p2;
- move = DOWN;
- continue;
- }
- move = DOWN;
- }
- else
- move = RIGHT;
-
- if (move == DOWN)
- {
- if (p->down)
- p = p->down;
- else
- move = RIGHT;
- }
-
- if (p == *node)
- {
- move = UP;
- continue;
- }
-
- if (move == RIGHT)
- {
- if (p->right)
- p = p->right;
- else
- move = UP;
- }
- if (move == UP)
- p = _asn1_find_up (p);
- }
-
- return ASN1_SUCCESS;
-}
-
-
-/**
- * asn1_create_element:
- * @definitions: pointer to the structure returned by "parser_asn1" function
- * @source_name: the name of the type of the new structure (must be
- * inside p_structure).
- * @element: pointer to the structure created.
- *
- * Creates a structure of type @source_name. Example using
- * "pkix.asn":
- *
- * rc = asn1_create_element(cert_def, "PKIX1.Certificate", certptr);
- *
- * Returns: %ASN1_SUCCESS if creation OK, %ASN1_ELEMENT_NOT_FOUND if
- * @source_name is not known.
- **/
-int
-asn1_create_element (asn1_node definitions, const char *source_name,
- asn1_node * element)
-{
- asn1_node dest_node;
- int res;
-
- dest_node = _asn1_copy_structure2 (definitions, source_name);
-
- if (dest_node == NULL)
- return ASN1_ELEMENT_NOT_FOUND;
-
- _asn1_set_name (dest_node, "");
-
- res = _asn1_expand_identifier (&dest_node, definitions);
- _asn1_type_choice_config (dest_node);
-
- *element = dest_node;
-
- return res;
-}
-
-
-/**
- * asn1_print_structure:
- * @out: pointer to the output file (e.g. stdout).
- * @structure: pointer to the structure that you want to visit.
- * @name: an element of the structure
- * @mode: specify how much of the structure to print, can be
- * %ASN1_PRINT_NAME, %ASN1_PRINT_NAME_TYPE,
- * %ASN1_PRINT_NAME_TYPE_VALUE, or %ASN1_PRINT_ALL.
- *
- * Prints on the @out file descriptor the structure's tree starting
- * from the @name element inside the structure @structure.
- **/
-void
-asn1_print_structure (FILE * out, asn1_node structure, const char *name,
- int mode)
-{
- asn1_node p, root;
- int k, indent = 0, len, len2, len3;
-
- if (out == NULL)
- return;
-
- root = asn1_find_node (structure, name);
-
- if (root == NULL)
- return;
-
- p = root;
- while (p)
- {
- if (mode == ASN1_PRINT_ALL)
- {
- for (k = 0; k < indent; k++)
- fprintf (out, " ");
- fprintf (out, "name:");
- if (p->name[0] != 0)
- fprintf (out, "%s ", p->name);
- else
- fprintf (out, "NULL ");
- }
- else
- {
- switch (type_field (p->type))
- {
- case ASN1_ETYPE_CONSTANT:
- case ASN1_ETYPE_TAG:
- case ASN1_ETYPE_SIZE:
- break;
- default:
- for (k = 0; k < indent; k++)
- fprintf (out, " ");
- fprintf (out, "name:");
- if (p->name[0] != 0)
- fprintf (out, "%s ", p->name);
- else
- fprintf (out, "NULL ");
- }
- }
-
- if (mode != ASN1_PRINT_NAME)
- {
- unsigned type = type_field (p->type);
- switch (type)
- {
- case ASN1_ETYPE_CONSTANT:
- if (mode == ASN1_PRINT_ALL)
- fprintf (out, "type:CONST");
- break;
- case ASN1_ETYPE_TAG:
- if (mode == ASN1_PRINT_ALL)
- fprintf (out, "type:TAG");
- break;
- case ASN1_ETYPE_SIZE:
- if (mode == ASN1_PRINT_ALL)
- fprintf (out, "type:SIZE");
- break;
- case ASN1_ETYPE_DEFAULT:
- fprintf (out, "type:DEFAULT");
- break;
- case ASN1_ETYPE_IDENTIFIER:
- fprintf (out, "type:IDENTIFIER");
- break;
- case ASN1_ETYPE_ANY:
- fprintf (out, "type:ANY");
- break;
- case ASN1_ETYPE_CHOICE:
- fprintf (out, "type:CHOICE");
- break;
- case ASN1_ETYPE_DEFINITIONS:
- fprintf (out, "type:DEFINITIONS");
- break;
- CASE_HANDLED_ETYPES:
- fprintf (out, "%s", _asn1_tags[type].desc);
- break;
- default:
- break;
- }
- }
-
- if ((mode == ASN1_PRINT_NAME_TYPE_VALUE) || (mode == ASN1_PRINT_ALL))
- {
- switch (type_field (p->type))
- {
- case ASN1_ETYPE_CONSTANT:
- if (mode == ASN1_PRINT_ALL)
- if (p->value)
- fprintf (out, " value:%s", p->value);
- break;
- case ASN1_ETYPE_TAG:
- if (mode == ASN1_PRINT_ALL)
- if (p->value)
- fprintf (out, " value:%s", p->value);
- break;
- case ASN1_ETYPE_SIZE:
- if (mode == ASN1_PRINT_ALL)
- if (p->value)
- fprintf (out, " value:%s", p->value);
- break;
- case ASN1_ETYPE_DEFAULT:
- if (p->value)
- fprintf (out, " value:%s", p->value);
- else if (p->type & CONST_TRUE)
- fprintf (out, " value:TRUE");
- else if (p->type & CONST_FALSE)
- fprintf (out, " value:FALSE");
- break;
- case ASN1_ETYPE_IDENTIFIER:
- if (p->value)
- fprintf (out, " value:%s", p->value);
- break;
- case ASN1_ETYPE_INTEGER:
- if (p->value)
- {
- len2 = -1;
- len = asn1_get_length_der (p->value, p->value_len, &len2);
- fprintf (out, " value:0x");
- if (len > 0)
- for (k = 0; k < len; k++)
- fprintf (out, "%02x", (unsigned) (p->value)[k + len2]);
- }
- break;
- case ASN1_ETYPE_ENUMERATED:
- if (p->value)
- {
- len2 = -1;
- len = asn1_get_length_der (p->value, p->value_len, &len2);
- fprintf (out, " value:0x");
- if (len > 0)
- for (k = 0; k < len; k++)
- fprintf (out, "%02x", (unsigned) (p->value)[k + len2]);
- }
- break;
- case ASN1_ETYPE_BOOLEAN:
- if (p->value)
- {
- if (p->value[0] == 'T')
- fprintf (out, " value:TRUE");
- else if (p->value[0] == 'F')
- fprintf (out, " value:FALSE");
- }
- break;
- case ASN1_ETYPE_BIT_STRING:
- if (p->value)
- {
- len2 = -1;
- len = asn1_get_length_der (p->value, p->value_len, &len2);
- if (len > 0)
- {
- fprintf (out, " value(%i):",
- (len - 1) * 8 - (p->value[len2]));
- for (k = 1; k < len; k++)
- fprintf (out, "%02x", (unsigned) (p->value)[k + len2]);
- }
- }
- break;
- case ASN1_ETYPE_GENERALIZED_TIME:
- case ASN1_ETYPE_UTC_TIME:
- if (p->value)
- {
- fprintf (out, " value:");
- for (k = 0; k < p->value_len; k++)
- fprintf (out, "%c", (p->value)[k]);
- }
- break;
- case ASN1_ETYPE_GENERALSTRING:
- case ASN1_ETYPE_NUMERIC_STRING:
- case ASN1_ETYPE_IA5_STRING:
- case ASN1_ETYPE_TELETEX_STRING:
- case ASN1_ETYPE_PRINTABLE_STRING:
- case ASN1_ETYPE_UNIVERSAL_STRING:
- case ASN1_ETYPE_UTF8_STRING:
- case ASN1_ETYPE_VISIBLE_STRING:
- if (p->value)
- {
- len2 = -1;
- len = asn1_get_length_der (p->value, p->value_len, &len2);
- fprintf (out, " value:");
- if (len > 0)
- for (k = 0; k < len; k++)
- fprintf (out, "%c", (p->value)[k + len2]);
- }
- break;
- case ASN1_ETYPE_BMP_STRING:
- case ASN1_ETYPE_OCTET_STRING:
- if (p->value)
- {
- len2 = -1;
- len = asn1_get_length_der (p->value, p->value_len, &len2);
- fprintf (out, " value:");
- if (len > 0)
- for (k = 0; k < len; k++)
- fprintf (out, "%02x", (unsigned) (p->value)[k + len2]);
- }
- break;
- case ASN1_ETYPE_OBJECT_ID:
- if (p->value)
- fprintf (out, " value:%s", p->value);
- break;
- case ASN1_ETYPE_ANY:
- if (p->value)
- {
- len3 = -1;
- len2 = asn1_get_length_der (p->value, p->value_len, &len3);
- fprintf (out, " value:");
- if (len2 > 0)
- for (k = 0; k < len2; k++)
- fprintf (out, "%02x", (unsigned) (p->value)[k + len3]);
- }
- break;
- case ASN1_ETYPE_SET:
- case ASN1_ETYPE_SET_OF:
- case ASN1_ETYPE_CHOICE:
- case ASN1_ETYPE_DEFINITIONS:
- case ASN1_ETYPE_SEQUENCE_OF:
- case ASN1_ETYPE_SEQUENCE:
- case ASN1_ETYPE_NULL:
- break;
- default:
- break;
- }
- }
-
- if (mode == ASN1_PRINT_ALL)
- {
- if (p->type & 0x1FFFFF00)
- {
- fprintf (out, " attr:");
- if (p->type & CONST_UNIVERSAL)
- fprintf (out, "UNIVERSAL,");
- if (p->type & CONST_PRIVATE)
- fprintf (out, "PRIVATE,");
- if (p->type & CONST_APPLICATION)
- fprintf (out, "APPLICATION,");
- if (p->type & CONST_EXPLICIT)
- fprintf (out, "EXPLICIT,");
- if (p->type & CONST_IMPLICIT)
- fprintf (out, "IMPLICIT,");
- if (p->type & CONST_TAG)
- fprintf (out, "TAG,");
- if (p->type & CONST_DEFAULT)
- fprintf (out, "DEFAULT,");
- if (p->type & CONST_TRUE)
- fprintf (out, "TRUE,");
- if (p->type & CONST_FALSE)
- fprintf (out, "FALSE,");
- if (p->type & CONST_LIST)
- fprintf (out, "LIST,");
- if (p->type & CONST_MIN_MAX)
- fprintf (out, "MIN_MAX,");
- if (p->type & CONST_OPTION)
- fprintf (out, "OPTION,");
- if (p->type & CONST_1_PARAM)
- fprintf (out, "1_PARAM,");
- if (p->type & CONST_SIZE)
- fprintf (out, "SIZE,");
- if (p->type & CONST_DEFINED_BY)
- fprintf (out, "DEF_BY,");
- if (p->type & CONST_GENERALIZED)
- fprintf (out, "GENERALIZED,");
- if (p->type & CONST_UTC)
- fprintf (out, "UTC,");
- if (p->type & CONST_SET)
- fprintf (out, "SET,");
- if (p->type & CONST_NOT_USED)
- fprintf (out, "NOT_USED,");
- if (p->type & CONST_ASSIGN)
- fprintf (out, "ASSIGNMENT,");
- }
- }
-
- if (mode == ASN1_PRINT_ALL)
- {
- fprintf (out, "\n");
- }
- else
- {
- switch (type_field (p->type))
- {
- case ASN1_ETYPE_CONSTANT:
- case ASN1_ETYPE_TAG:
- case ASN1_ETYPE_SIZE:
- break;
- default:
- fprintf (out, "\n");
- }
- }
-
- if (p->down)
- {
- p = p->down;
- indent += 2;
- }
- else if (p == root)
- {
- p = NULL;
- break;
- }
- else if (p->right)
- p = p->right;
- else
- {
- while (1)
- {
- p = _asn1_find_up (p);
- if (p == root)
- {
- p = NULL;
- break;
- }
- indent -= 2;
- if (p->right)
- {
- p = p->right;
- break;
- }
- }
- }
- }
-}
-
-
-
-/**
- * asn1_number_of_elements:
- * @element: pointer to the root of an ASN1 structure.
- * @name: the name of a sub-structure of ROOT.
- * @num: pointer to an integer where the result will be stored
- *
- * Counts the number of elements of a sub-structure called NAME with
- * names equal to "?1","?2", ...
- *
- * Returns: %ASN1_SUCCESS if successful, %ASN1_ELEMENT_NOT_FOUND if
- * @name is not known, %ASN1_GENERIC_ERROR if pointer @num is %NULL.
- **/
-int
-asn1_number_of_elements (asn1_node element, const char *name, int *num)
-{
- asn1_node node, p;
-
- if (num == NULL)
- return ASN1_GENERIC_ERROR;
-
- *num = 0;
-
- node = asn1_find_node (element, name);
- if (node == NULL)
- return ASN1_ELEMENT_NOT_FOUND;
-
- p = node->down;
-
- while (p)
- {
- if (p->name[0] == '?')
- (*num)++;
- p = p->right;
- }
-
- return ASN1_SUCCESS;
-}
-
-
-/**
- * asn1_find_structure_from_oid:
- * @definitions: ASN1 definitions
- * @oidValue: value of the OID to search (e.g. "1.2.3.4").
- *
- * Search the structure that is defined just after an OID definition.
- *
- * Returns: %NULL when @oidValue not found, otherwise the pointer to a
- * constant string that contains the element name defined just after
- * the OID.
- **/
-const char *
-asn1_find_structure_from_oid (asn1_node definitions, const char *oidValue)
-{
- char name[2 * ASN1_MAX_NAME_SIZE + 1];
- char value[ASN1_MAX_NAME_SIZE];
- asn1_node p;
- int len;
- int result;
- const char *definitionsName;
-
- if ((definitions == NULL) || (oidValue == NULL))
- return NULL; /* ASN1_ELEMENT_NOT_FOUND; */
-
- definitionsName = definitions->name;
-
- /* search the OBJECT_ID into definitions */
- p = definitions->down;
- while (p)
- {
- if ((type_field (p->type) == ASN1_ETYPE_OBJECT_ID) &&
- (p->type & CONST_ASSIGN))
- {
- snprintf(name, sizeof(name), "%s.%s", definitionsName, p->name);
-
- len = ASN1_MAX_NAME_SIZE;
- result = asn1_read_value (definitions, name, value, &len);
-
- if ((result == ASN1_SUCCESS) && (!strcmp (oidValue, value)))
- {
- p = p->right;
- if (p == NULL) /* reach the end of ASN1 definitions */
- return NULL; /* ASN1_ELEMENT_NOT_FOUND; */
-
- return p->name;
- }
- }
- p = p->right;
- }
-
- return NULL; /* ASN1_ELEMENT_NOT_FOUND; */
-}
-
-/**
- * asn1_copy_node:
- * @dst: Destination asn1 node.
- * @dst_name: Field name in destination node.
- * @src: Source asn1 node.
- * @src_name: Field name in source node.
- *
- * Create a deep copy of a asn1_node variable. That
- * function requires @dst to be expanded using asn1_create_element().
- *
- * Returns: Return %ASN1_SUCCESS on success.
- **/
-int
-asn1_copy_node (asn1_node dst, const char *dst_name,
- asn1_node src, const char *src_name)
-{
- int result;
- asn1_node dst_node;
- void *data = NULL;
- int size = 0;
-
- result = asn1_der_coding (src, src_name, NULL, &size, NULL);
- if (result != ASN1_MEM_ERROR)
- return result;
-
- data = malloc (size);
- if (data == NULL)
- return ASN1_MEM_ERROR;
-
- result = asn1_der_coding (src, src_name, data, &size, NULL);
- if (result != ASN1_SUCCESS)
- {
- free (data);
- return result;
- }
-
- dst_node = asn1_find_node (dst, dst_name);
- if (dst_node == NULL)
- {
- free (data);
- return ASN1_ELEMENT_NOT_FOUND;
- }
-
- result = asn1_der_decoding (&dst_node, data, size, NULL);
-
- free (data);
-
- return result;
-}
-
-/**
- * asn1_dup_node:
- * @src: Source asn1 node.
- * @src_name: Field name in source node.
- *
- * Create a deep copy of a asn1_node variable. This function
- * will return an exact copy of the provided structure.
- *
- * Returns: Return %NULL on failure.
- **/
-asn1_node
-asn1_dup_node (asn1_node src, const char *src_name)
-{
- return _asn1_copy_structure2(src, src_name);
-}
diff --git a/lib/minitasn1/structure.h b/lib/minitasn1/structure.h
deleted file mode 100644
index bb6e7a9b9a..0000000000
--- a/lib/minitasn1/structure.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) 2002-2014 Free Software Foundation, Inc.
- *
- * This file is part of LIBTASN1.
- *
- * The LIBTASN1 library is free software; you can redistribute it
- * and/or modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA
- */
-
-/*************************************************/
-/* File: structure.h */
-/* Description: list of exported object by */
-/* "structure.c" */
-/*************************************************/
-
-#ifndef _STRUCTURE_H
-#define _STRUCTURE_H
-
-int _asn1_create_static_structure (asn1_node pointer,
- char *output_file_name, char *vector_name);
-
-asn1_node _asn1_copy_structure3 (asn1_node source_node);
-
-asn1_node _asn1_add_single_node (unsigned int type);
-
-asn1_node _asn1_find_left (asn1_node node);
-
-#endif
diff --git a/lib/minitasn1/version.c b/lib/minitasn1/version.c
deleted file mode 100644
index 25f8a8f28e..0000000000
--- a/lib/minitasn1/version.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2000-2014 Free Software Foundation, Inc.
- *
- * This file is part of LIBTASN1.
- *
- * The LIBTASN1 library is free software; you can redistribute it
- * and/or modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <string.h> /* for strverscmp */
-
-#include "libtasn1.h"
-
-/**
- * asn1_check_version:
- * @req_version: Required version number, or %NULL.
- *
- * Check that the version of the library is at minimum the
- * requested one and return the version string; return %NULL if the
- * condition is not satisfied. If a %NULL is passed to this function,
- * no check is done, but the version string is simply returned.
- *
- * See %ASN1_VERSION for a suitable @req_version string.
- *
- * Returns: Version string of run-time library, or %NULL if the
- * run-time library does not meet the required version number.
- */
-const char *
-asn1_check_version (const char *req_version)
-{
- if (!req_version || strverscmp (req_version, ASN1_VERSION) <= 0)
- return ASN1_VERSION;
-
- return NULL;
-}
diff --git a/lib/nettle/Makefile.am b/lib/nettle/Makefile.am
index 8c1a2d17ee..3dddeec71e 100644
--- a/lib/nettle/Makefile.am
+++ b/lib/nettle/Makefile.am
@@ -40,18 +40,20 @@ noinst_LTLIBRARIES = libcrypto.la
libcrypto_la_SOURCES = pk.c mpi.c mac.c cipher.c init.c \
gnettle.h rnd-common.h prf.c \
- backport/cfb8.c backport/cfb8.h \
- backport/cmac.c backport/cmac.h \
- backport/xts.c backport/xts.h \
rnd.c int/rsa-fips.h int/rsa-keygen-fips186.c int/provable-prime.c \
int/dsa-fips.h int/dsa-keygen-fips186.c int/dsa-validate.c \
int/tls1-prf.c int/tls1-prf.h \
int/dsa-compute-k.c int/dsa-compute-k.h \
int/ecdsa-compute-k.c int/ecdsa-compute-k.h \
- int/mpn-base256.c int/mpn-base256.h
+ int/mpn-base256.c int/mpn-base256.h \
+ int/block8.h backport/block-internal.h
if WINDOWS
+if HAVE_BCRYPT
+libcrypto_la_SOURCES += sysrng-bcrypt.c
+else
libcrypto_la_SOURCES += sysrng-windows.c
+endif
else
if HAVE_GETENTROPY
libcrypto_la_SOURCES += sysrng-getentropy.c
@@ -73,7 +75,7 @@ endif
if ENABLE_GOST
libcrypto_la_SOURCES += \
- gost/nettle-write.h \
+ gost/nettle-write.h gost/write-le32.c \
gost/gost28147.c gost/gost28147.h gost/gost-wrap.c \
gost/gosthash94.c gost/gosthash94.h gost/gosthash94-meta.c \
gost/streebog.c gost/streebog.h gost/streebog-meta.c \
@@ -83,67 +85,129 @@ libcrypto_la_SOURCES += \
gost/bignum-le.c gost/bignum-le.h
libcrypto_la_SOURCES += \
- gost/pbkdf2-hmac-gosthash94.c gost/pbkdf2-hmac-streebog.c \
- gost/pbkdf2-gost.h
-
-libcrypto_la_SOURCES += \
- gost/nettle-internal.h \
- gost/ecc-gost256cpa.c gost/ecc-gost256cpa-32.h gost/ecc-gost256cpa-64.h\
- gost/ecc-gost512a.c gost/ecc-gost512a-32.h gost/ecc-gost512a-64.h \
- gost/ecc-internal.h gost/gmp-glue.h \
- gost/ecc-gostdsa-sign.c gost/ecc-gostdsa-verify.c \
- gost/gostdsa-mask.c gost/gostdsa-sign.c gost/gostdsa-verify.c gost/gostdsa-vko.c \
- gost/gostdsa.h gost/ecc-gost-curve.h gost/ecc-gost-hash.c
+ gost/gostdsa-mask.c gost/gostdsa2.h
libcrypto_la_SOURCES += gost_keywrap.c
+
+libcrypto_la_SOURCES += \
+ gost/magma.c gost/magma.h \
+ gost/kuznyechik.c gost/kuznyechik.h gost/kuztable.h \
+ gost/acpkm.c gost/acpkm.h \
+ gost/cmac.h gost/cmac-magma.c gost/cmac-kuznyechik.c
endif
-if NEED_CURVE448
-curve448_generated_headers = \
- curve448/ecc-curve448-32.h curve448/ecc-curve448-64.h
+if NEED_INT_ECC
+ecc_generated_headers = \
+ ecc/ecc-gost-gc256b-32.h ecc/ecc-gost-gc256b-64.h \
+ ecc/ecc-gost-gc512a-32.h ecc/ecc-gost-gc512a-64.h \
+ ecc/ecc-curve448-32.h ecc/ecc-curve448-64.h
+
+BUILT_SOURCES = $(ecc_generated_headers)
+EXTRA_DIST = $(ecc_generated_headers) ecc/eccdata.stamp
+
+noinst_PROGRAMS = ecc/eccdata$(EXEEXT)
+
+ecc_eccdata_SOURCES = ecc/eccdata.c
+ecc_eccdata_CFLAGS = $(GMP_CFLAGS)
+ecc_eccdata_LDADD = $(GMP_LIBS) ../../gl/libgnu.la
+
+ecc/eccdata.stamp: $(ecc_eccdata_SOURCES)
+ $(AM_V_GEN)$(MAKE) $(AM_MAKEFLAGS) ecc/eccdata$(EXEEXT) && touch $@
+
+ecc/ecc-curve448-32.h: ecc/eccdata.stamp
+ $(AM_V_GEN)ecc/eccdata$(EXEEXT) curve448 38 6 32 > $@T && mv $@T $@
+
+ecc/ecc-curve448-64.h: ecc/eccdata.stamp
+ $(AM_V_GEN)ecc/eccdata$(EXEEXT) curve448 38 6 64 > $@T && mv $@T $@
+
+ecc/ecc-gost-gc256b-32.h: ecc/eccdata.stamp
+ $(AM_V_GEN)ecc/eccdata$(EXEEXT) gost_gc256b 11 6 32 > $@T && mv $@T $@
+
+ecc/ecc-gost-gc256b-64.h: ecc/eccdata.stamp
+ $(AM_V_GEN)ecc/eccdata$(EXEEXT) gost_gc256b 11 6 64 > $@T && mv $@T $@
+
+ecc/ecc-gost-gc512a-32.h: ecc/eccdata.stamp
+ $(AM_V_GEN)ecc/eccdata$(EXEEXT) gost_gc512a 43 6 32 > $@T && mv $@T $@
+
+ecc/ecc-gost-gc512a-64.h: ecc/eccdata.stamp
+ $(AM_V_GEN)ecc/eccdata$(EXEEXT) gost_gc512a 43 6 64 > $@T && mv $@T $@
-BUILT_SOURCES = $(curve448_generated_headers)
-EXTRA_DIST = $(curve448_generated_headers) curve448/eccdata.stamp
+libcrypto_la_SOURCES += \
+ gost/ecc-gost-hash.c nettle-alloca.h ecc-gost-curve.h
-noinst_PROGRAMS = curve448/eccdata$(EXEEXT)
+libcrypto_la_SOURCES += \
+ ecc/write-le64.c \
+ ecc/nettle-write.h ecc/gmp-glue.h ecc/gmp-glue.c
-curve448_eccdata_SOURCES = curve448/eccdata.c
-curve448_eccdata_CFLAGS = $(GMP_CFLAGS)
-curve448_eccdata_LDADD = $(GMP_LIBS) ../../gl/libgnu.la
+libcrypto_la_SOURCES += \
+ ecc/sha3.c ecc/sha3.h ecc/sha3-256.c \
+ ecc/sha3-permute.c ecc/sha3-internal.h \
+ ecc/shake256.c
+
+libcrypto_la_SOURCES += \
+ ecc/ecc-internal.h \
+ ecc/ecc-add-eh.c ecc/ecc-add-ehh.c ecc/ecc-dup-eh.c \
+ ecc/ecc-eh-to-a.c ecc/ecc-mul-a-eh.c ecc/ecc-mul-g-eh.c \
+ ecc/ecc-mul-m.c ecc/ecc-mod.c ecc/ecc-mod-arith.c \
+ ecc/ecc-mod-inv.c \
+ ecc/ecc-a-to-j.c \
+ ecc/sec-tabselect.c ecc/cnd-copy.c ecc/sec-add-1.c \
+ ecc/ecc-curve448.c $(ecc_genereated_headers) \
+ ecc/curve448-eh-to-x.c ecc/curve448.h ecc/curve448-mul.c \
+ ecc/curve448-mul-g.c
-curve448/eccdata.stamp: $(curve448_eccdata_SOURCES)
- $(AM_V_GEN)$(MAKE) $(AM_MAKEFLAGS) curve448/eccdata$(EXEEXT) && touch $@
+libcrypto_la_SOURCES += \
+ gost/gost-point.c gost/gost-point-mul-g.c gost/gostdsa-keygen.c \
+ ecc/ecc-add-jja.c ecc/ecc-add-jjj.c ecc/ecc-dup-jj.c \
+ ecc/ecc-mul-a.c ecc/ecc-mul-g.c \
+ ecc/ecc-random.c \
+ ecc/ecc-j-to-a.c \
+ ecc/ecc-gost-gc256b.c ecc/ecc-gost-gc512a.c \
+ ecc/ecc-gostdsa-sign.c ecc/ecc-gostdsa-verify.c \
+ ecc/gostdsa.h ecc/gostdsa-sign.c ecc/gostdsa-verify.c ecc/gostdsa-vko.c
+
+libcrypto_la_SOURCES += \
+ ecc/eddsa.h ecc/eddsa-compress.c ecc/eddsa-decompress.c \
+ ecc/eddsa-expand.c ecc/eddsa-hash.c ecc/eddsa-internal.h \
+ ecc/eddsa-pubkey.c ecc/eddsa-sign.c ecc/eddsa-verify.c \
+ ecc/ed448-shake256.c ecc/ed448-shake256-pubkey.c \
+ ecc/ed448-shake256-sign.c ecc/ed448-shake256-verify.c
+endif
-curve448/ecc-curve448-32.h: curve448/eccdata.stamp
- $(AM_V_GEN)curve448/eccdata$(EXEEXT) curve448 38 6 32 > $@T && mv $@T $@
+if NEED_CFB
+libcrypto_la_SOURCES += \
+ backport/cfb.c backport/cfb.h
+endif
-curve448/ecc-curve448-64.h: curve448/eccdata.stamp
- $(AM_V_GEN)curve448/eccdata$(EXEEXT) curve448 38 6 64 > $@T && mv $@T $@
+if NEED_CMAC
+libcrypto_la_SOURCES += \
+ backport/cmac.c backport/cmac.h \
+ backport/cmac-aes128.c backport/cmac-aes256.c
+endif
+if NEED_CMAC64
libcrypto_la_SOURCES += \
- curve448/nettle-write.h curve448/gmp-glue.h curve448/gmp-glue.c
+ backport/cmac64.c backport/cmac.h backport/cmac64.h
+endif
+if NEED_XTS
libcrypto_la_SOURCES += \
- curve448/sha3.c curve448/sha3.h curve448/sha3-256.c \
- curve448/sha3-permute.c curve448/sha3-internal.h \
- curve448/shake256.c
+ backport/xts.c backport/xts.h \
+ backport/xts-aes128.c backport/xts-aes256.c
+endif
+if NEED_CHACHA
libcrypto_la_SOURCES += \
- curve448/ecc-internal.h \
- curve448/ecc-add-eh.c curve448/ecc-add-ehh.c curve448/ecc-dup-eh.c \
- curve448/ecc-eh-to-a.c curve448/ecc-mul-a-eh.c curve448/ecc-mul-g-eh.c \
- curve448/ecc-mul-m.c curve448/ecc-mod.c curve448/ecc-mod-arith.c \
- curve448/ecc-mod-inv.c \
- curve448/ecc-a-to-j.c \
- curve448/sec-tabselect.c curve448/cnd-copy.c curve448/sec-add-1.c \
- curve448/ecc-curve448.c $(curve448_genereated_headers) \
- curve448/curve448-eh-to-x.c curve448/curve448.h curve448/curve448-mul.c \
- curve448/curve448-mul-g.c
+ backport/chacha-core-internal.c backport/chacha-crypt.c \
+ backport/chacha-internal.h backport/chacha-poly1305.c \
+ backport/chacha-poly1305.h backport/chacha-set-key.c \
+ backport/chacha-set-nonce.c backport/chacha.h \
+ backport/poly1305.h backport/poly1305-internal.c \
+ backport/poly1305-internal.h
+endif
+if NEED_SIV
libcrypto_la_SOURCES += \
- curve448/eddsa.h curve448/eddsa-compress.c curve448/eddsa-decompress.c \
- curve448/eddsa-expand.c curve448/eddsa-hash.c curve448/eddsa-internal.h \
- curve448/eddsa-pubkey.c curve448/eddsa-sign.c curve448/eddsa-verify.c \
- curve448/ed448-shake256.c curve448/ed448-shake256-pubkey.c \
- curve448/ed448-shake256-sign.c curve448/ed448-shake256-verify.c
+ backport/siv-cmac-aes128.c backport/siv-cmac-aes256.c \
+ backport/siv-cmac.c backport/siv-cmac.h
endif
diff --git a/lib/nettle/backport/cfb8.c b/lib/nettle/backport/cfb8.c
deleted file mode 100644
index 1762192f44..0000000000
--- a/lib/nettle/backport/cfb8.c
+++ /dev/null
@@ -1,123 +0,0 @@
-/* backport of cfb.c for CFB8
-
- Cipher feedback mode.
-
- Copyright (C) 2015, 2017 Dmitry Eremin-Solenikov
- Copyright (C) 2001, 2011 Niels Möller
-
- This file is part of GNU Nettle.
-
- GNU Nettle is free software: you can redistribute it and/or
- modify it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
- or
-
- * the GNU General Public License as published by the Free
- Software Foundation; either version 2 of the License, or (at your
- option) any later version.
-
- or both in parallel, as here.
-
- GNU Nettle is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received copies of the GNU General Public License and
- the GNU Lesser General Public License along with this program. If
- not, see https://www.gnu.org/licenses/.
-*/
-
-/* #############################################
- * THIS IS A BACKPORT FROM NETTLE, DO NOT MODIFY
- * #############################################
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef HAVE_NETTLE_CFB8_ENCRYPT
-
-#include "cfb8.h"
-#include <string.h>
-#include <nettle/memxor.h>
-
-/* CFB-8 uses slight optimization: it encrypts or decrypts up to block_size
- * bytes and does memcpy/memxor afterwards */
-void
-cfb8_encrypt(const void *ctx, nettle_cipher_func *f,
- size_t block_size, uint8_t *iv,
- size_t length, uint8_t *dst,
- const uint8_t *src)
-{
- TMP_DECL(buffer, uint8_t, NETTLE_MAX_CIPHER_BLOCK_SIZE * 2);
- TMP_DECL(outbuf, uint8_t, NETTLE_MAX_CIPHER_BLOCK_SIZE);
- TMP_ALLOC(buffer, block_size * 2);
- TMP_ALLOC(outbuf, block_size);
- uint8_t pos;
-
- memcpy(buffer, iv, block_size);
- pos = 0;
- while (length)
- {
- uint8_t t;
-
- if (pos == block_size)
- {
- memcpy(buffer, buffer + block_size, block_size);
- pos = 0;
- }
-
- f(ctx, block_size, outbuf, buffer + pos);
- t = *(dst++) = *(src++) ^ outbuf[0];
- buffer[pos + block_size] = t;
- length--;
- pos ++;
- }
- memcpy(iv, buffer + pos, block_size);
-}
-
-void
-cfb8_decrypt(const void *ctx, nettle_cipher_func *f,
- size_t block_size, uint8_t *iv,
- size_t length, uint8_t *dst,
- const uint8_t *src)
-{
- TMP_DECL(buffer, uint8_t, NETTLE_MAX_CIPHER_BLOCK_SIZE * 2);
- TMP_DECL(outbuf, uint8_t, NETTLE_MAX_CIPHER_BLOCK_SIZE * 2);
- TMP_ALLOC(buffer, block_size * 2);
- TMP_ALLOC(outbuf, block_size * 2);
- uint8_t i = 0;
-
- memcpy(buffer, iv, block_size);
- memcpy(buffer + block_size, src,
- length < block_size ? length : block_size);
-
- while (length)
- {
-
- for (i = 0; i < length && i < block_size; i++)
- f(ctx, block_size, outbuf + i, buffer + i);
-
- memxor3(dst, src, outbuf, i);
-
- length -= i;
- src += i;
- dst += i;
-
- if (i == block_size)
- {
- memcpy(buffer, buffer + block_size, block_size);
- memcpy(buffer + block_size, src,
- length < block_size ? length : block_size);
- }
- }
-
- memcpy(iv, buffer + i, block_size);
-}
-#endif /* HAVE_NETTLE_CFB8_ENCRYPT */
diff --git a/lib/nettle/backport/cfb8.h b/lib/nettle/backport/cfb8.h
deleted file mode 100644
index 9aa7559a65..0000000000
--- a/lib/nettle/backport/cfb8.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/* backport of cfb.h for CFB8
-
- Cipher feedback mode.
-
- Copyright (C) 2015, 2017 Dmitry Eremin-Solenikov
- Copyright (C) 2001 Niels Möller
-
- This file is part of GNU Nettle.
-
- GNU Nettle is free software: you can redistribute it and/or
- modify it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
- or
-
- * the GNU General Public License as published by the Free
- Software Foundation; either version 2 of the License, or (at your
- option) any later version.
-
- or both in parallel, as here.
-
- GNU Nettle is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received copies of the GNU General Public License and
- the GNU Lesser General Public License along with this program. If
- not, see https://www.gnu.org/licenses/.
-*/
-
-#ifndef GNUTLS_LIB_NETTLE_BACKPORT_CFB8_H
-#define GNUTLS_LIB_NETTLE_BACKPORT_CFB8_H
-
-#include <nettle/cfb.h>
-
-#ifndef NETTLE_INTERNAL_H_INCLUDED
-#define NETTLE_INTERNAL_H_INCLUDED
-#if HAVE_ALLOCA
-# define TMP_DECL(name, type, max) type *name
-# define TMP_ALLOC(name, size) (name = alloca(sizeof (*name) * (size)))
-#else /* !HAVE_ALLOCA */
-# define TMP_DECL(name, type, max) type name[max]
-# define TMP_ALLOC(name, size) \
- do { if ((size) > (sizeof(name) / sizeof(name[0]))) abort(); } while (0)
-#endif
-
-#define NETTLE_MAX_CIPHER_BLOCK_SIZE 32
-#endif /* NETTLE_INTERNAL_H_INCLUDED */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#undef cfb8_encrypt
-#undef cfb8_decrypt
-
-/* Name mangling */
-#define cfb8_encrypt _gnutls_backport_nettle_cfb8_encrypt
-#define cfb8_decrypt _gnutls_backport_nettle_cfb8_decrypt
-
-void
-cfb8_encrypt(const void *ctx, nettle_cipher_func *f,
- size_t block_size, uint8_t *iv,
- size_t length, uint8_t *dst,
- const uint8_t *src);
-
-void
-cfb8_decrypt(const void *ctx, nettle_cipher_func *f,
- size_t block_size, uint8_t *iv,
- size_t length, uint8_t *dst,
- const uint8_t *src);
-
-#define CFB8_CTX CFB_CTX
-#define CFB8_SET_IV CFB_SET_IV
-
-#define CFB8_ENCRYPT(self, f, length, dst, src) \
- (0 ? ((f)(&(self)->ctx, ~(size_t) 0, \
- (uint8_t *) 0, (const uint8_t *) 0)) \
- : cfb8_encrypt((void *) &(self)->ctx, \
- (nettle_cipher_func *) (f), \
- sizeof((self)->iv), (self)->iv, \
- (length), (dst), (src)))
-
-#define CFB8_DECRYPT(self, f, length, dst, src) \
- (0 ? ((f)(&(self)->ctx, ~(size_t) 0, \
- (uint8_t *) 0, (const uint8_t *) 0)) \
- : cfb8_decrypt((void *) &(self)->ctx, \
- (nettle_cipher_func *) (f), \
- sizeof((self)->iv), (self)->iv, \
- (length), (dst), (src)))
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* GNUTLS_LIB_NETTLE_BACKPORT_CFB8_H */
diff --git a/lib/nettle/backport/cmac.c b/lib/nettle/backport/cmac.c
deleted file mode 100644
index a665f0ea6b..0000000000
--- a/lib/nettle/backport/cmac.c
+++ /dev/null
@@ -1,217 +0,0 @@
-/* backport of cmac*.c for CMAC
-
- AES-CMAC-128 (rfc 4493)
- Copyright (C) Stefan Metzmacher 2012
- Copyright (C) Jeremy Allison 2012
- Copyright (C) Michael Adam 2012
- Copyright (C) 2017, Red Hat Inc.
-
- This file is part of GNU Nettle.
-
- GNU Nettle is free software: you can redistribute it and/or
- modify it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
- or
-
- * the GNU General Public License as published by the Free
- Software Foundation; either version 2 of the License, or (at your
- option) any later version.
-
- or both in parallel, as here.
-
- GNU Nettle is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received copies of the GNU General Public License and
- the GNU Lesser General Public License along with this program. If
- not, see https://www.gnu.org/licenses/.
-*/
-
-/* #############################################
- * THIS IS A BACKPORT FROM NETTLE, DO NOT MODIFY
- * #############################################
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef HAVE_NETTLE_CMAC128_UPDATE
-
-#include <nettle/aes.h>
-#include "cmac.h"
-#include <assert.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <nettle/memxor.h>
-#include <nettle/macros.h>
-
-/* shift one and XOR with 0x87. */
-static void
-block_mulx(union nettle_block16 *dst,
- const union nettle_block16 *src)
-{
- uint64_t b1 = READ_UINT64(src->b);
- uint64_t b2 = READ_UINT64(src->b+8);
-
- b1 = (b1 << 1) | (b2 >> 63);
- b2 <<= 1;
-
- if (src->b[0] & 0x80)
- b2 ^= 0x87;
-
- WRITE_UINT64(dst->b, b1);
- WRITE_UINT64(dst->b+8, b2);
-}
-
-void
-cmac128_set_key(struct cmac128_ctx *ctx, const void *cipher,
- nettle_cipher_func *encrypt)
-{
- static const uint8_t const_zero[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- };
- union nettle_block16 *L = &ctx->block;
- memset(ctx, 0, sizeof(*ctx));
-
- /* step 1 - generate subkeys k1 and k2 */
- encrypt(cipher, 16, L->b, const_zero);
-
- block_mulx(&ctx->K1, L);
- block_mulx(&ctx->K2, &ctx->K1);
-}
-
-#define MIN(x,y) ((x)<(y)?(x):(y))
-
-void
-cmac128_update(struct cmac128_ctx *ctx, const void *cipher,
- nettle_cipher_func *encrypt,
- size_t msg_len, const uint8_t *msg)
-{
- union nettle_block16 Y;
- /*
- * check if we expand the block
- */
- if (ctx->index < 16)
- {
- size_t len = MIN(16 - ctx->index, msg_len);
- memcpy(&ctx->block.b[ctx->index], msg, len);
- msg += len;
- msg_len -= len;
- ctx->index += len;
- }
-
- if (msg_len == 0) {
- /* if it is still the last block, we are done */
- return;
- }
-
- /*
- * now checksum everything but the last block
- */
- memxor3(Y.b, ctx->X.b, ctx->block.b, 16);
- encrypt(cipher, 16, ctx->X.b, Y.b);
-
- while (msg_len > 16)
- {
- memxor3(Y.b, ctx->X.b, msg, 16);
- encrypt(cipher, 16, ctx->X.b, Y.b);
- msg += 16;
- msg_len -= 16;
- }
-
- /*
- * copy the last block, it will be processed in
- * cmac128_digest().
- */
- memcpy(ctx->block.b, msg, msg_len);
- ctx->index = msg_len;
-}
-
-void
-cmac128_digest(struct cmac128_ctx *ctx, const void *cipher,
- nettle_cipher_func *encrypt,
- unsigned length,
- uint8_t *dst)
-{
- union nettle_block16 Y;
-
- memset(ctx->block.b+ctx->index, 0, sizeof(ctx->block.b)-ctx->index);
-
- /* re-use ctx->block for memxor output */
- if (ctx->index < 16)
- {
- ctx->block.b[ctx->index] = 0x80;
- memxor(ctx->block.b, ctx->K2.b, 16);
- }
- else
- {
- memxor(ctx->block.b, ctx->K1.b, 16);
- }
-
- memxor3(Y.b, ctx->block.b, ctx->X.b, 16);
-
- assert(length <= 16);
- if (length == 16)
- {
- encrypt(cipher, 16, dst, Y.b);
- }
- else
- {
- encrypt(cipher, 16, ctx->block.b, Y.b);
- memcpy(dst, ctx->block.b, length);
- }
-
- /* reset state for re-use */
- memset(&ctx->X, 0, sizeof(ctx->X));
- ctx->index = 0;
-}
-
-void
-cmac_aes128_set_key(struct cmac_aes128_ctx *ctx, const uint8_t *key)
-{
- CMAC128_SET_KEY(ctx, aes128_set_encrypt_key, aes128_encrypt, key);
-}
-
-void
-cmac_aes128_update (struct cmac_aes128_ctx *ctx,
- size_t length, const uint8_t *data)
-{
- CMAC128_UPDATE (ctx, aes128_encrypt, length, data);
-}
-
-void
-cmac_aes128_digest(struct cmac_aes128_ctx *ctx,
- size_t length, uint8_t *digest)
-{
- CMAC128_DIGEST(ctx, aes128_encrypt, length, digest);
-}
-
-void
-cmac_aes256_set_key(struct cmac_aes256_ctx *ctx, const uint8_t *key)
-{
- CMAC128_SET_KEY(ctx, aes256_set_encrypt_key, aes256_encrypt, key);
-}
-
-void
-cmac_aes256_update (struct cmac_aes256_ctx *ctx,
- size_t length, const uint8_t *data)
-{
- CMAC128_UPDATE (ctx, aes256_encrypt, length, data);
-}
-
-void
-cmac_aes256_digest(struct cmac_aes256_ctx *ctx,
- size_t length, uint8_t *digest)
-{
- CMAC128_DIGEST(ctx, aes256_encrypt, length, digest);
-}
-#endif /* HAVE_NETTLE_CMAC128_UPDATE */
diff --git a/lib/nettle/backport/cmac.h b/lib/nettle/backport/cmac.h
deleted file mode 100644
index 41dbfcf31b..0000000000
--- a/lib/nettle/backport/cmac.h
+++ /dev/null
@@ -1,139 +0,0 @@
-/* backport of cmac.h
-
- CMAC mode, as specified in RFC4493
-
- Copyright (C) 2017 Red Hat, Inc.
-
- Contributed by Nikos Mavrogiannopoulos
-
- This file is part of GNU Nettle.
-
- GNU Nettle is free software: you can redistribute it and/or
- modify it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
- or
-
- * the GNU General Public License as published by the Free
- Software Foundation; either version 2 of the License, or (at your
- option) any later version.
-
- or both in parallel, as here.
-
- GNU Nettle is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received copies of the GNU General Public License and
- the GNU Lesser General Public License along with this program. If
- not, see https://www.gnu.org/licenses/.
-*/
-
-#ifndef GNUTLS_LIB_NETTLE_BACKPORT_CMAC_H
-#define GNUTLS_LIB_NETTLE_BACKPORT_CMAC_H
-
-#include <nettle/nettle-types.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define CMAC128_DIGEST_SIZE 16
-
-#define cmac128_set_key _gnutls_backport_nettle_cmac128_set_key
-#define cmac128_update _gnutls_backport_nettle_cmac128_update
-#define cmac128_digest _gnutls_backport_nettle_cmac128_digest
-#define cmac_aes128_set_key _gnutls_backport_nettle_cmac_aes128_set_key
-#define cmac_aes128_update _gnutls_backport_nettle_cmac_aes128_update
-#define cmac_aes128_digest _gnutls_backport_nettle_cmac_aes128_digest
-#define cmac_aes256_set_key _gnutls_backport_nettle_cmac_aes256_set_key
-#define cmac_aes256_update _gnutls_backport_nettle_cmac_aes256_update
-#define cmac_aes256_digest _gnutls_backport_nettle_cmac_aes256_digest
-
-struct cmac128_ctx
-{
- /* Key */
- union nettle_block16 K1;
- union nettle_block16 K2;
-
- /* MAC state */
- union nettle_block16 X;
-
- /* Block buffer */
- union nettle_block16 block;
- size_t index;
-};
-
-void
-cmac128_set_key(struct cmac128_ctx *ctx, const void *cipher,
- nettle_cipher_func *encrypt);
-void
-cmac128_update(struct cmac128_ctx *ctx, const void *cipher,
- nettle_cipher_func *encrypt,
- size_t msg_len, const uint8_t *msg);
-void
-cmac128_digest(struct cmac128_ctx *ctx, const void *cipher,
- nettle_cipher_func *encrypt,
- unsigned length,
- uint8_t *digest);
-
-
-#define CMAC128_CTX(type) \
- { struct cmac128_ctx ctx; type cipher; }
-
-/* NOTE: Avoid using NULL, as we don't include anything defining it. */
-#define CMAC128_SET_KEY(self, set_key, encrypt, cmac_key) \
- do { \
- (set_key)(&(self)->cipher, (cmac_key)); \
- if (0) (encrypt)(&(self)->cipher, ~(size_t) 0, \
- (uint8_t *) 0, (const uint8_t *) 0); \
- cmac128_set_key(&(self)->ctx, &(self)->cipher, \
- (nettle_cipher_func *) (encrypt)); \
- } while (0)
-
-#define CMAC128_UPDATE(self, encrypt, length, src) \
- cmac128_update(&(self)->ctx, &(self)->cipher, \
- (nettle_cipher_func *)encrypt, (length), (src))
-
-#define CMAC128_DIGEST(self, encrypt, length, digest) \
- (0 ? (encrypt)(&(self)->cipher, ~(size_t) 0, \
- (uint8_t *) 0, (const uint8_t *) 0) \
- : cmac128_digest(&(self)->ctx, &(self)->cipher, \
- (nettle_cipher_func *) (encrypt), \
- (length), (digest)))
-
-struct cmac_aes128_ctx CMAC128_CTX(struct aes128_ctx);
-
-void
-cmac_aes128_set_key(struct cmac_aes128_ctx *ctx, const uint8_t *key);
-
-void
-cmac_aes128_update(struct cmac_aes128_ctx *ctx,
- size_t length, const uint8_t *data);
-
-void
-cmac_aes128_digest(struct cmac_aes128_ctx *ctx,
- size_t length, uint8_t *digest);
-
-struct cmac_aes256_ctx CMAC128_CTX(struct aes256_ctx);
-
-void
-cmac_aes256_set_key(struct cmac_aes256_ctx *ctx, const uint8_t *key);
-
-void
-cmac_aes256_update(struct cmac_aes256_ctx *ctx,
- size_t length, const uint8_t *data);
-
-void
-cmac_aes256_digest(struct cmac_aes256_ctx *ctx,
- size_t length, uint8_t *digest);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* GNUTLS_LIB_NETTLE_BACKPORT_CMAC_H */
diff --git a/lib/nettle/backport/xts.c b/lib/nettle/backport/xts.c
deleted file mode 100644
index d8c258f650..0000000000
--- a/lib/nettle/backport/xts.c
+++ /dev/null
@@ -1,273 +0,0 @@
-/*
- * Copyright (C) 2018 Red Hat, Inc.
- *
- * Author: Simo Sorce
- *
- * This file is part of GnuTLS.
- *
- * The GnuTLS is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
- */
-
-/* #############################################
- * THIS IS A BACKPORT FROM NETTLE, DO NOT MODIFY
- * #############################################
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef HAVE_NETTLE_XTS_ENCRYPT_MESSAGE
-#include "xts.h"
-
-#include <assert.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <nettle/macros.h>
-#include <nettle/memxor.h>
-
-/* An aligned 16-byte block. */
-union _backport_nettle_block16
-{
- uint8_t b[16];
- unsigned long w[16 / sizeof(unsigned long)];
- uint64_t u64[2];
-};
-
-/* shift left one and XOR with 0x87 if there is carry. */
-/* the algorithm reads this as a 128bit Little Endian number */
-/* src and dest can point to the same buffer for in-place operations */
-#if WORDS_BIGENDIAN
-#define BE_SHIFT(x) ((((x) & 0x7f7f7f7f7f7f7f7f) << 1) | \
- (((x) & 0x8080808080808080) >> 15))
-static void
-xts_shift(union _backport_nettle_block16 *dst,
- const union _backport_nettle_block16 *src)
-{
- uint64_t carry = (src->u64[1] & 0x80) >> 7;
- dst->u64[1] = BE_SHIFT(src->u64[1]) | ((src->u64[0] & 0x80) << 49);
- dst->u64[0] = BE_SHIFT(src->u64[0]);
- dst->u64[0] ^= 0x8700000000000000 & -carry;
-}
-#else /* !WORDS_BIGENDIAN */
-static void
-xts_shift(union _backport_nettle_block16 *dst,
- const union _backport_nettle_block16 *src)
-{
- uint64_t carry = src->u64[1] >> 63;
- dst->u64[1] = (src->u64[1] << 1) | (src->u64[0] >> 63);
- dst->u64[0] = src->u64[0] << 1;
- dst->u64[0] ^= 0x87 & -carry;
-}
-#endif /* !WORDS_BIGNDIAN */
-
-static void
-check_length(size_t length, uint8_t *dst)
-{
- assert(length >= XTS_BLOCK_SIZE);
- /* asserts may be compiled out, try to save the user by zeroing the dst in
- * case the buffer contains sensitive data (like the clear text for inplace
- * encryption) */
- if (length < XTS_BLOCK_SIZE)
- memset(dst, '\0', length);
-}
-
-/* works also for inplace encryption/decryption */
-
-void
-xts_encrypt_message(const void *enc_ctx, const void *twk_ctx,
- nettle_cipher_func *encf,
- const uint8_t *tweak, size_t length,
- uint8_t *dst, const uint8_t *src)
-{
- union _backport_nettle_block16 T;
- union _backport_nettle_block16 P;
-
- check_length(length, dst);
-
- encf(twk_ctx, XTS_BLOCK_SIZE, T.b, tweak);
-
- /* the zeroth power of alpha is the initial ciphertext value itself, so we
- * skip shifting and do it at the end of each block operation instead */
- for (;length >= 2 * XTS_BLOCK_SIZE || length == XTS_BLOCK_SIZE;
- length -= XTS_BLOCK_SIZE, src += XTS_BLOCK_SIZE, dst += XTS_BLOCK_SIZE)
- {
- memxor3(P.b, src, T.b, XTS_BLOCK_SIZE); /* P -> PP */
- encf(enc_ctx, XTS_BLOCK_SIZE, dst, P.b); /* CC */
- memxor(dst, T.b, XTS_BLOCK_SIZE); /* CC -> C */
-
- /* shift T for next block if any */
- if (length > XTS_BLOCK_SIZE)
- xts_shift(&T, &T);
- }
-
- /* if the last block is partial, handle via stealing */
- if (length)
- {
- /* S Holds the real C(n-1) (Whole last block to steal from) */
- union _backport_nettle_block16 S;
-
- memxor3(P.b, src, T.b, XTS_BLOCK_SIZE); /* P -> PP */
- encf(enc_ctx, XTS_BLOCK_SIZE, S.b, P.b); /* CC */
- memxor(S.b, T.b, XTS_BLOCK_SIZE); /* CC -> S */
-
- /* shift T for next block */
- xts_shift(&T, &T);
-
- length -= XTS_BLOCK_SIZE;
- src += XTS_BLOCK_SIZE;
-
- memxor3(P.b, src, T.b, length); /* P |.. */
- /* steal ciphertext to complete block */
- memxor3(P.b + length, S.b + length, T.b + length,
- XTS_BLOCK_SIZE - length); /* ..| S_2 -> PP */
-
- encf(enc_ctx, XTS_BLOCK_SIZE, dst, P.b); /* CC */
- memxor(dst, T.b, XTS_BLOCK_SIZE); /* CC -> C(n-1) */
-
- /* Do this after we read src so inplace operations do not break */
- dst += XTS_BLOCK_SIZE;
- memcpy(dst, S.b, length); /* S_1 -> C(n) */
- }
-}
-
-void
-xts_decrypt_message(const void *dec_ctx, const void *twk_ctx,
- nettle_cipher_func *decf, nettle_cipher_func *encf,
- const uint8_t *tweak, size_t length,
- uint8_t *dst, const uint8_t *src)
-{
- union _backport_nettle_block16 T;
- union _backport_nettle_block16 C;
-
- check_length(length, dst);
-
- encf(twk_ctx, XTS_BLOCK_SIZE, T.b, tweak);
-
- for (;length >= 2 * XTS_BLOCK_SIZE || length == XTS_BLOCK_SIZE;
- length -= XTS_BLOCK_SIZE, src += XTS_BLOCK_SIZE, dst += XTS_BLOCK_SIZE)
- {
- memxor3(C.b, src, T.b, XTS_BLOCK_SIZE); /* c -> CC */
- decf(dec_ctx, XTS_BLOCK_SIZE, dst, C.b); /* PP */
- memxor(dst, T.b, XTS_BLOCK_SIZE); /* PP -> P */
-
- /* shift T for next block if any */
- if (length > XTS_BLOCK_SIZE)
- xts_shift(&T, &T);
- }
-
- /* if the last block is partial, handle via stealing */
- if (length)
- {
- union _backport_nettle_block16 T1;
- /* S Holds the real P(n) (with part of stolen ciphertext) */
- union _backport_nettle_block16 S;
-
- /* we need the last T(n) and save the T(n-1) for later */
- xts_shift(&T1, &T);
-
- memxor3(C.b, src, T1.b, XTS_BLOCK_SIZE); /* C -> CC */
- decf(dec_ctx, XTS_BLOCK_SIZE, S.b, C.b); /* PP */
- memxor(S.b, T1.b, XTS_BLOCK_SIZE); /* PP -> S */
-
- /* process next block (Pn-1) */
- length -= XTS_BLOCK_SIZE;
- src += XTS_BLOCK_SIZE;
-
- /* Prepare C, P holds the real P(n) */
- memxor3(C.b, src, T.b, length); /* C_1 |.. */
- memxor3(C.b + length, S.b + length, T.b + length,
- XTS_BLOCK_SIZE - length); /* ..| S_2 -> CC */
- decf(dec_ctx, XTS_BLOCK_SIZE, dst, C.b); /* PP */
- memxor(dst, T.b, XTS_BLOCK_SIZE); /* PP -> P(n-1) */
-
- /* Do this after we read src so inplace operations do not break */
- dst += XTS_BLOCK_SIZE;
- memcpy(dst, S.b, length); /* S_1 -> P(n) */
- }
-}
-
-void
-xts_aes128_set_encrypt_key(struct xts_aes128_key *xts_key, const uint8_t *key)
-{
- aes128_set_encrypt_key(&xts_key->cipher, key);
- aes128_set_encrypt_key(&xts_key->tweak_cipher, &key[AES128_KEY_SIZE]);
-}
-
-void
-xts_aes128_set_decrypt_key(struct xts_aes128_key *xts_key, const uint8_t *key)
-{
- aes128_set_decrypt_key(&xts_key->cipher, key);
- aes128_set_encrypt_key(&xts_key->tweak_cipher, &key[AES128_KEY_SIZE]);
-}
-
-void
-xts_aes128_encrypt_message(struct xts_aes128_key *xts_key,
- const uint8_t *tweak, size_t length,
- uint8_t *dst, const uint8_t *src)
-{
- xts_encrypt_message(&xts_key->cipher, &xts_key->tweak_cipher,
- (nettle_cipher_func *) aes128_encrypt,
- tweak, length, dst, src);
-}
-
-void
-xts_aes128_decrypt_message(struct xts_aes128_key *xts_key,
- const uint8_t *tweak, size_t length,
- uint8_t *dst, const uint8_t *src)
-{
- xts_decrypt_message(&xts_key->cipher, &xts_key->tweak_cipher,
- (nettle_cipher_func *) aes128_decrypt,
- (nettle_cipher_func *) aes128_encrypt,
- tweak, length, dst, src);
-}
-
-void
-xts_aes256_set_encrypt_key(struct xts_aes256_key *xts_key, const uint8_t *key)
-{
- aes256_set_encrypt_key(&xts_key->cipher, key);
- aes256_set_encrypt_key(&xts_key->tweak_cipher, &key[AES256_KEY_SIZE]);
-}
-
-void
-xts_aes256_set_decrypt_key(struct xts_aes256_key *xts_key, const uint8_t *key)
-{
- aes256_set_decrypt_key(&xts_key->cipher, key);
- aes256_set_encrypt_key(&xts_key->tweak_cipher, &key[AES256_KEY_SIZE]);
-}
-
-void
-xts_aes256_encrypt_message(struct xts_aes256_key *xts_key,
- const uint8_t *tweak, size_t length,
- uint8_t *dst, const uint8_t *src)
-{
- xts_encrypt_message(&xts_key->cipher, &xts_key->tweak_cipher,
- (nettle_cipher_func *) aes256_encrypt,
- tweak, length, dst, src);
-}
-
-void
-xts_aes256_decrypt_message(struct xts_aes256_key *xts_key,
- const uint8_t *tweak, size_t length,
- uint8_t *dst, const uint8_t *src)
-{
- xts_decrypt_message(&xts_key->cipher, &xts_key->tweak_cipher,
- (nettle_cipher_func *) aes256_decrypt,
- (nettle_cipher_func *) aes256_encrypt,
- tweak, length, dst, src);
-}
-
-#endif /* HAVE_NETTLE_XTS_ENCRYPT_MESSAGE */
diff --git a/lib/nettle/backport/xts.h b/lib/nettle/backport/xts.h
deleted file mode 100644
index 8c52f9a092..0000000000
--- a/lib/nettle/backport/xts.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Copyright (C) 2018 Red Hat, Inc.
- *
- * Author: Simo Sorce
- *
- * This file is part of GnuTLS.
- *
- * The GnuTLS is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
- */
-
-#ifndef GNUTLS_LIB_NETTLE_BACKPORT_XTS_H
-#define GNUTLS_LIB_NETTLE_BACKPORT_XTS_H
-
-#ifdef HAVE_NETTLE_XTS_ENCRYPT_MESSAGE
-#include <nettle/xts.h>
-
-#else /* Nettle version is old, use a vendored version instead */
-
-#ifndef NETTLE_XTS_H_INCLUDED
-#define NETTLE_XTS_H_INCLUDED
-
-#include <nettle/nettle-types.h>
-#include <nettle/aes.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Name mangling */
-#define xts_encrypt_message nettle_xts_encrypt_message
-#define xts_decrypt_message nettle_xts_decrypt_message
-#define xts_aes128_set_encrypt_key nettle_xts_aes128_set_encrypt_key
-#define xts_aes128_set_decrypt_key nettle_xts_aes128_set_decrypt_key
-#define xts_aes128_encrypt_message nettle_xts_aes128_encrypt_message
-#define xts_aes128_decrypt_message nettle_xts_aes128_decrypt_message
-#define xts_aes256_set_encrypt_key nettle_xts_aes256_set_encrypt_key
-#define xts_aes256_set_decrypt_key nettle_xts_aes256_set_decrypt_key
-#define xts_aes256_encrypt_message nettle_xts_aes256_encrypt_message
-#define xts_aes256_decrypt_message nettle_xts_aes256_decrypt_message
-
-#define XTS_BLOCK_SIZE 16
-
-void
-xts_encrypt_message(const void *enc_ctx, const void *twk_ctx,
- nettle_cipher_func *encf,
- const uint8_t *tweak, size_t length,
- uint8_t *dst, const uint8_t *src);
-void
-xts_decrypt_message(const void *dec_ctx, const void *twk_ctx,
- nettle_cipher_func *decf, nettle_cipher_func *encf,
- const uint8_t *tweak, size_t length,
- uint8_t *dst, const uint8_t *src);
-
-/* XTS Mode with AES-128 */
-struct xts_aes128_key {
- struct aes128_ctx cipher;
- struct aes128_ctx tweak_cipher;
-};
-
-void
-xts_aes128_set_encrypt_key(struct xts_aes128_key *xts_key,
- const uint8_t *key);
-
-void
-xts_aes128_set_decrypt_key(struct xts_aes128_key *xts_key,
- const uint8_t *key);
-
-void
-xts_aes128_encrypt_message(struct xts_aes128_key *xtskey,
- const uint8_t *tweak, size_t length,
- uint8_t *dst, const uint8_t *src);
-
-void
-xts_aes128_decrypt_message(struct xts_aes128_key *xts_key,
- const uint8_t *tweak, size_t length,
- uint8_t *dst, const uint8_t *src);
-
-/* XTS Mode with AES-256 */
-struct xts_aes256_key {
- struct aes256_ctx cipher;
- struct aes256_ctx tweak_cipher;
-};
-
-void
-xts_aes256_set_encrypt_key(struct xts_aes256_key *xts_key,
- const uint8_t *key);
-
-void
-xts_aes256_set_decrypt_key(struct xts_aes256_key *xts_key,
- const uint8_t *key);
-
-void
-xts_aes256_encrypt_message(struct xts_aes256_key *xts_key,
- const uint8_t *tweak, size_t length,
- uint8_t *dst, const uint8_t *src);
-
-void
-xts_aes256_decrypt_message(struct xts_aes256_key *xts_key,
- const uint8_t *tweak, size_t length,
- uint8_t *dst, const uint8_t *src);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* NETTLE_XTS_H_INCLUDED */
-
-#endif /* HAVE_NETTLE_XTS_ENCRYPT_MESSAGE */
-
-#endif /* GNUTLS_LIB_NETTLE_BACKPORT_XTS_H */
diff --git a/lib/nettle/cipher.c b/lib/nettle/cipher.c
index 28f676a480..b0a52deb53 100644
--- a/lib/nettle/cipher.c
+++ b/lib/nettle/cipher.c
@@ -40,18 +40,45 @@
#else
#include <nettle/gost28147.h>
#endif
+#ifndef HAVE_NETTLE_MAGMA_SET_KEY
+#include "gost/magma.h"
+#else
+#include <nettle/magma.h>
+#endif
+#ifndef HAVE_NETTLE_KUZNYECHIK_SET_KEY
+#include "gost/kuznyechik.h"
+#else
+#include <nettle/kuznyechik.h>
+#endif
+#include "gost/acpkm.h"
+#include <nettle/ctr.h>
#endif
#include <nettle/nettle-meta.h>
#include <nettle/cbc.h>
#include <nettle/gcm.h>
#include <nettle/ccm.h>
+#ifdef HAVE_NETTLE_CHACHA_SET_COUNTER
+#include <nettle/chacha.h>
#include <nettle/chacha-poly1305.h>
+#else
+#include "chacha.h"
+#include "chacha-poly1305.h"
+#endif
#ifdef HAVE_NETTLE_CFB8_ENCRYPT
#include <nettle/cfb.h>
#else
-#include "cfb8.h"
+#include "cfb.h"
#endif /* HAVE_NETTLE_CFB8_ENCRYPT */
+#ifdef HAVE_NETTLE_XTS_ENCRYPT_MESSAGE
+#include <nettle/xts.h>
+#else
#include "xts.h"
+#endif
+#ifdef HAVE_NETTLE_SIV_CMAC_AES128_SET_KEY
+#include <nettle/siv-cmac.h>
+#else
+#include "siv-cmac.h"
+#endif
#include <fips.h>
struct nettle_cipher_ctx;
@@ -145,6 +172,18 @@ _cbc_decrypt(struct nettle_cipher_ctx *ctx, size_t length, uint8_t * dst,
}
#if ENABLE_GOST
+struct magma_acpkm_ctx {
+ uint8_t iv[MAGMA_BLOCK_SIZE];
+ struct acpkm_ctx ctx;
+ struct magma_ctx cipher;
+};
+
+struct kuznyechik_acpkm_ctx {
+ uint8_t iv[KUZNYECHIK_BLOCK_SIZE];
+ struct acpkm_ctx ctx;
+ struct kuznyechik_ctx cipher;
+};
+
static void
_cfb_encrypt(struct nettle_cipher_ctx *ctx, size_t length, uint8_t * dst,
const uint8_t * src)
@@ -164,38 +203,48 @@ _cfb_decrypt(struct nettle_cipher_ctx *ctx, size_t length, uint8_t * dst,
}
static void
+_ctr_acpkm_crypt(struct nettle_cipher_ctx *ctx, size_t length, uint8_t * dst,
+ const uint8_t * src)
+{
+ /* Use context-specific IV which comes as a first field */
+ ctr_crypt(ctx->ctx_ptr, ctx->cipher->encrypt_block,
+ ctx->cipher->block_size, ctx->ctx_ptr,
+ length, dst, src);
+}
+
+static void
_gost28147_set_key_tc26z(void *ctx, const uint8_t *key)
{
- gost28147_set_key(ctx, key);
gost28147_set_param(ctx, &gost28147_param_TC26_Z);
+ gost28147_set_key(ctx, key);
}
static void
_gost28147_set_key_cpa(void *ctx, const uint8_t *key)
{
- gost28147_set_key(ctx, key);
gost28147_set_param(ctx, &gost28147_param_CryptoPro_A);
+ gost28147_set_key(ctx, key);
}
static void
_gost28147_set_key_cpb(void *ctx, const uint8_t *key)
{
- gost28147_set_key(ctx, key);
gost28147_set_param(ctx, &gost28147_param_CryptoPro_B);
+ gost28147_set_key(ctx, key);
}
static void
_gost28147_set_key_cpc(void *ctx, const uint8_t *key)
{
- gost28147_set_key(ctx, key);
gost28147_set_param(ctx, &gost28147_param_CryptoPro_C);
+ gost28147_set_key(ctx, key);
}
static void
_gost28147_set_key_cpd(void *ctx, const uint8_t *key)
{
- gost28147_set_key(ctx, key);
gost28147_set_param(ctx, &gost28147_param_CryptoPro_D);
+ gost28147_set_key(ctx, key);
}
static void
@@ -216,6 +265,58 @@ _gost28147_cnt_crypt(struct nettle_cipher_ctx *ctx, size_t length, uint8_t * dst
{
gost28147_cnt_crypt((void *)ctx->ctx_ptr, length, dst, src);
}
+
+static void
+_magma_acpkm_crypt(struct magma_acpkm_ctx *ctx,
+ size_t length, uint8_t *dst,
+ const uint8_t *src)
+{
+ acpkm_crypt(&ctx->ctx, &ctx->cipher,
+ (nettle_cipher_func *)magma_encrypt,
+ (nettle_set_key_func *)magma_set_key,
+ length, dst, src);
+}
+
+static void
+_kuznyechik_acpkm_crypt(struct kuznyechik_acpkm_ctx *ctx,
+ size_t length, uint8_t *dst,
+ const uint8_t *src)
+{
+ acpkm_crypt(&ctx->ctx, &ctx->cipher,
+ (nettle_cipher_func *)kuznyechik_encrypt,
+ (nettle_set_key_func *)kuznyechik_set_key,
+ length, dst, src);
+}
+
+static void
+_magma_ctr_acpkm_set_key(struct magma_acpkm_ctx *ctx, const uint8_t *key)
+{
+ magma_set_key(&ctx->cipher, key);
+ ctx->ctx.pos = 0;
+ ctx->ctx.N = 1024;
+}
+
+static void
+_magma_ctr_acpkm_set_iv(struct magma_acpkm_ctx *ctx, size_t length, const uint8_t *iv)
+{
+ memcpy(ctx->iv, iv, length);
+ memset(ctx->iv + length, 0, MAGMA_BLOCK_SIZE - length);
+}
+
+static void
+_kuznyechik_ctr_acpkm_set_key(struct kuznyechik_acpkm_ctx *ctx, const uint8_t *key)
+{
+ kuznyechik_set_key(&ctx->cipher, key);
+ ctx->ctx.pos = 0;
+ ctx->ctx.N = 4096;
+}
+
+static void
+_kuznyechik_ctr_acpkm_set_iv(struct kuznyechik_acpkm_ctx *ctx, size_t length, const uint8_t *iv)
+{
+ memcpy(ctx->iv, iv, length);
+ memset(ctx->iv + length, 0, KUZNYECHIK_BLOCK_SIZE - length);
+}
#endif
static void
@@ -247,6 +348,78 @@ _ccm_decrypt(struct nettle_cipher_ctx *ctx,
}
static void
+_siv_cmac_aes128_encrypt_message(struct nettle_cipher_ctx *ctx,
+ size_t nonce_size, const void *nonce,
+ size_t auth_size, const void *auth,
+ size_t tag_size,
+ size_t length, uint8_t * dst,
+ const uint8_t * src)
+{
+ siv_cmac_aes128_encrypt_message((void*)ctx->ctx_ptr,
+ nonce_size, nonce,
+ auth_size, auth,
+ length, dst, src);
+}
+
+static int
+_siv_cmac_aes128_decrypt_message(struct nettle_cipher_ctx *ctx,
+ size_t nonce_size, const void *nonce,
+ size_t auth_size, const void *auth,
+ size_t tag_size,
+ size_t length, uint8_t * dst,
+ const uint8_t * src)
+{
+ return siv_cmac_aes128_decrypt_message((void*)ctx->ctx_ptr,
+ nonce_size, nonce,
+ auth_size, auth,
+ length, dst, src);
+}
+
+static void
+_siv_cmac_aes256_encrypt_message(struct nettle_cipher_ctx *ctx,
+ size_t nonce_size, const void *nonce,
+ size_t auth_size, const void *auth,
+ size_t tag_size,
+ size_t length, uint8_t * dst,
+ const uint8_t * src)
+{
+ siv_cmac_aes256_encrypt_message((void*)ctx->ctx_ptr,
+ nonce_size, nonce,
+ auth_size, auth,
+ length, dst, src);
+}
+
+static int
+_siv_cmac_aes256_decrypt_message(struct nettle_cipher_ctx *ctx,
+ size_t nonce_size, const void *nonce,
+ size_t auth_size, const void *auth,
+ size_t tag_size,
+ size_t length, uint8_t * dst,
+ const uint8_t * src)
+{
+ return siv_cmac_aes256_decrypt_message((void*)ctx->ctx_ptr,
+ nonce_size, nonce,
+ auth_size, auth,
+ length, dst, src);
+}
+
+static void
+_chacha_set_nonce(struct chacha_ctx *ctx,
+ size_t length, const uint8_t *nonce)
+{
+ chacha_set_nonce(ctx, nonce + CHACHA_COUNTER_SIZE);
+ chacha_set_counter(ctx, nonce);
+}
+
+static void
+_chacha_set_nonce96(struct chacha_ctx *ctx,
+ size_t length, const uint8_t *nonce)
+{
+ chacha_set_nonce96(ctx, nonce + CHACHA_COUNTER32_SIZE);
+ chacha_set_counter32(ctx, nonce);
+}
+
+static void
_chacha_poly1305_set_nonce (struct chacha_poly1305_ctx *ctx,
size_t length, const uint8_t *nonce)
{
@@ -305,6 +478,50 @@ _cfb8_decrypt(struct nettle_cipher_ctx *ctx, size_t length, uint8_t * dst,
}
static void
+_xts_aes128_set_encrypt_key(struct xts_aes128_key *xts_key,
+ const uint8_t *key)
+{
+ if (_gnutls_fips_mode_enabled() &&
+ safe_memcmp(key, key + AES128_KEY_SIZE, AES128_KEY_SIZE) == 0)
+ _gnutls_switch_lib_state(LIB_STATE_ERROR);
+
+ xts_aes128_set_encrypt_key(xts_key, key);
+}
+
+static void
+_xts_aes128_set_decrypt_key(struct xts_aes128_key *xts_key,
+ const uint8_t *key)
+{
+ if (_gnutls_fips_mode_enabled() &&
+ safe_memcmp(key, key + AES128_KEY_SIZE, AES128_KEY_SIZE) == 0)
+ _gnutls_switch_lib_state(LIB_STATE_ERROR);
+
+ xts_aes128_set_decrypt_key(xts_key, key);
+}
+
+static void
+_xts_aes256_set_encrypt_key(struct xts_aes256_key *xts_key,
+ const uint8_t *key)
+{
+ if (_gnutls_fips_mode_enabled() &&
+ safe_memcmp(key, key + AES256_KEY_SIZE, AES256_KEY_SIZE) == 0)
+ _gnutls_switch_lib_state(LIB_STATE_ERROR);
+
+ xts_aes256_set_encrypt_key(xts_key, key);
+}
+
+static void
+_xts_aes256_set_decrypt_key(struct xts_aes256_key *xts_key,
+ const uint8_t *key)
+{
+ if (_gnutls_fips_mode_enabled() &&
+ safe_memcmp(key, key + AES256_KEY_SIZE, AES256_KEY_SIZE) == 0)
+ _gnutls_switch_lib_state(LIB_STATE_ERROR);
+
+ xts_aes256_set_decrypt_key(xts_key, key);
+}
+
+static void
_xts_aes128_encrypt(struct nettle_cipher_ctx *ctx, size_t length, uint8_t * dst,
const uint8_t * src)
{
@@ -350,6 +567,23 @@ static const struct nettle_cipher_st builtin_ciphers[] = {
.set_iv = (setiv_func)gcm_aes128_set_iv,
.max_iv_size = GCM_IV_SIZE,
},
+ { .algo = GNUTLS_CIPHER_AES_192_GCM,
+ .block_size = AES_BLOCK_SIZE,
+ .key_size = AES192_KEY_SIZE,
+ .encrypt_block = (nettle_cipher_func*)aes192_encrypt,
+ .decrypt_block = (nettle_cipher_func*)aes192_decrypt,
+
+ .ctx_size = sizeof(struct gcm_aes192_ctx),
+ .encrypt = _gcm_encrypt,
+ .decrypt = _gcm_decrypt,
+ .set_encrypt_key = (nettle_set_key_func*)gcm_aes192_set_key,
+ .set_decrypt_key = (nettle_set_key_func*)gcm_aes192_set_key,
+
+ .tag = (nettle_hash_digest_func*)gcm_aes192_digest,
+ .auth = (nettle_hash_update_func*)gcm_aes192_update,
+ .set_iv = (setiv_func)gcm_aes192_set_iv,
+ .max_iv_size = GCM_IV_SIZE,
+ },
{ .algo = GNUTLS_CIPHER_AES_256_GCM,
.block_size = AES_BLOCK_SIZE,
.key_size = AES256_KEY_SIZE,
@@ -607,6 +841,36 @@ static const struct nettle_cipher_st builtin_ciphers[] = {
.set_decrypt_key = (nettle_set_key_func*)salsa20_256_set_key,
.max_iv_size = SALSA20_NONCE_SIZE,
},
+ { .algo = GNUTLS_CIPHER_CHACHA20_32,
+ .block_size = 1,
+ .key_size = CHACHA_KEY_SIZE,
+ .encrypt_block = (nettle_cipher_func*)chacha_crypt32,
+ .decrypt_block = (nettle_cipher_func*)chacha_crypt32,
+
+ .ctx_size = sizeof(struct chacha_ctx),
+ .encrypt = _stream_encrypt,
+ .decrypt = _stream_encrypt,
+ .set_encrypt_key = (nettle_set_key_func*)chacha_set_key,
+ .set_decrypt_key = (nettle_set_key_func*)chacha_set_key,
+ .set_iv = (setiv_func)_chacha_set_nonce96,
+ /* we allow setting the initial block counter as part of nonce */
+ .max_iv_size = CHACHA_NONCE96_SIZE + CHACHA_COUNTER32_SIZE,
+ },
+ { .algo = GNUTLS_CIPHER_CHACHA20_64,
+ .block_size = 1,
+ .key_size = CHACHA_KEY_SIZE,
+ .encrypt_block = (nettle_cipher_func*)chacha_crypt,
+ .decrypt_block = (nettle_cipher_func*)chacha_crypt,
+
+ .ctx_size = sizeof(struct chacha_ctx),
+ .encrypt = _stream_encrypt,
+ .decrypt = _stream_encrypt,
+ .set_encrypt_key = (nettle_set_key_func*)chacha_set_key,
+ .set_decrypt_key = (nettle_set_key_func*)chacha_set_key,
+ .set_iv = (setiv_func)_chacha_set_nonce,
+ /* we allow setting the initial block counter as part of nonce */
+ .max_iv_size = CHACHA_NONCE_SIZE + CHACHA_COUNTER_SIZE,
+ },
{ .algo = GNUTLS_CIPHER_CHACHA20_POLY1305,
.block_size = CHACHA_POLY1305_BLOCK_SIZE,
.key_size = CHACHA_POLY1305_KEY_SIZE,
@@ -703,6 +967,34 @@ static const struct nettle_cipher_st builtin_ciphers[] = {
.set_decrypt_key = _gost28147_cnt_set_key_tc26z,
.set_iv = (setiv_func)_gost28147_cnt_set_nonce,
},
+ {
+ .algo = GNUTLS_CIPHER_MAGMA_CTR_ACPKM,
+ .block_size = MAGMA_BLOCK_SIZE,
+ .key_size = MAGMA_KEY_SIZE,
+ .encrypt_block = (nettle_cipher_func*)_magma_acpkm_crypt,
+ .decrypt_block = (nettle_cipher_func*)_magma_acpkm_crypt,
+
+ .ctx_size = sizeof(struct magma_acpkm_ctx),
+ .encrypt = _ctr_acpkm_crypt,
+ .decrypt = _ctr_acpkm_crypt,
+ .set_encrypt_key = (nettle_set_key_func*)_magma_ctr_acpkm_set_key,
+ .set_decrypt_key = (nettle_set_key_func*)_magma_ctr_acpkm_set_key,
+ .set_iv = (setiv_func)_magma_ctr_acpkm_set_iv,
+ },
+ {
+ .algo = GNUTLS_CIPHER_KUZNYECHIK_CTR_ACPKM,
+ .block_size = KUZNYECHIK_BLOCK_SIZE,
+ .key_size = KUZNYECHIK_KEY_SIZE,
+ .encrypt_block = (nettle_cipher_func*)_kuznyechik_acpkm_crypt,
+ .decrypt_block = (nettle_cipher_func*)_kuznyechik_acpkm_crypt,
+
+ .ctx_size = sizeof(struct kuznyechik_acpkm_ctx),
+ .encrypt = _ctr_acpkm_crypt,
+ .decrypt = _ctr_acpkm_crypt,
+ .set_encrypt_key = (nettle_set_key_func*)_kuznyechik_ctr_acpkm_set_key,
+ .set_decrypt_key = (nettle_set_key_func*)_kuznyechik_ctr_acpkm_set_key,
+ .set_iv = (setiv_func)_kuznyechik_ctr_acpkm_set_iv,
+ },
#endif
{ .algo = GNUTLS_CIPHER_AES_128_CFB8,
.block_size = AES_BLOCK_SIZE,
@@ -750,8 +1042,8 @@ static const struct nettle_cipher_st builtin_ciphers[] = {
.ctx_size = sizeof(struct xts_aes128_key),
.encrypt = _xts_aes128_encrypt,
.decrypt = _xts_aes128_decrypt,
- .set_encrypt_key = (nettle_set_key_func*)xts_aes128_set_encrypt_key,
- .set_decrypt_key = (nettle_set_key_func*)xts_aes128_set_decrypt_key,
+ .set_encrypt_key = (nettle_set_key_func*)_xts_aes128_set_encrypt_key,
+ .set_decrypt_key = (nettle_set_key_func*)_xts_aes128_set_decrypt_key,
.max_iv_size = AES_BLOCK_SIZE,
},
{ .algo = GNUTLS_CIPHER_AES_256_XTS,
@@ -761,10 +1053,32 @@ static const struct nettle_cipher_st builtin_ciphers[] = {
.ctx_size = sizeof(struct xts_aes256_key),
.encrypt = _xts_aes256_encrypt,
.decrypt = _xts_aes256_decrypt,
- .set_encrypt_key = (nettle_set_key_func*)xts_aes256_set_encrypt_key,
- .set_decrypt_key = (nettle_set_key_func*)xts_aes256_set_decrypt_key,
+ .set_encrypt_key = (nettle_set_key_func*)_xts_aes256_set_encrypt_key,
+ .set_decrypt_key = (nettle_set_key_func*)_xts_aes256_set_decrypt_key,
.max_iv_size = AES_BLOCK_SIZE,
},
+ { .algo = GNUTLS_CIPHER_AES_128_SIV,
+ .block_size = SIV_BLOCK_SIZE,
+ .key_size = SIV_CMAC_AES128_KEY_SIZE,
+
+ .ctx_size = sizeof(struct siv_cmac_aes128_ctx),
+ .aead_encrypt = (aead_encrypt_func)_siv_cmac_aes128_encrypt_message,
+ .aead_decrypt = (aead_decrypt_func)_siv_cmac_aes128_decrypt_message,
+ .set_encrypt_key = (nettle_set_key_func*)siv_cmac_aes128_set_key,
+ .set_decrypt_key = (nettle_set_key_func*)siv_cmac_aes128_set_key,
+ .max_iv_size = SIV_DIGEST_SIZE,
+ },
+ { .algo = GNUTLS_CIPHER_AES_256_SIV,
+ .block_size = SIV_BLOCK_SIZE,
+ .key_size = SIV_CMAC_AES256_KEY_SIZE,
+
+ .ctx_size = sizeof(struct siv_cmac_aes256_ctx),
+ .aead_encrypt = (aead_encrypt_func)_siv_cmac_aes256_encrypt_message,
+ .aead_decrypt = (aead_decrypt_func)_siv_cmac_aes256_decrypt_message,
+ .set_encrypt_key = (nettle_set_key_func*)siv_cmac_aes256_set_key,
+ .set_decrypt_key = (nettle_set_key_func*)siv_cmac_aes256_set_key,
+ .max_iv_size = SIV_DIGEST_SIZE,
+ },
};
static int wrap_nettle_cipher_exists(gnutls_cipher_algorithm_t algo)
@@ -847,6 +1161,7 @@ wrap_nettle_cipher_setiv(void *_ctx, const void *iv, size_t iv_size)
switch (ctx->cipher->algo) {
case GNUTLS_CIPHER_AES_128_GCM:
+ case GNUTLS_CIPHER_AES_192_GCM:
case GNUTLS_CIPHER_AES_256_GCM:
FIPS_RULE(iv_size < GCM_IV_SIZE, GNUTLS_E_INVALID_REQUEST, "access to short GCM nonce size\n");
break;
diff --git a/lib/nettle/gost/ecc-gost-curve.h b/lib/nettle/ecc-gost-curve.h
index 9e972c7689..c2b989c48e 100644
--- a/lib/nettle/gost/ecc-gost-curve.h
+++ b/lib/nettle/ecc-gost-curve.h
@@ -49,10 +49,22 @@ struct ecc_curve;
#endif
#endif
-#define nettle_get_gost_256cpa _gnutls_get_gost_256cpa
-#define nettle_get_gost_512a _gnutls_get_gost_512a
-const struct ecc_curve * NETTLE_PURE nettle_get_gost_256cpa(void);
-const struct ecc_curve * NETTLE_PURE nettle_get_gost_512a(void);
+#define gost_point_mul_g _gnutls_nettle_ecc_gost_point_mul_g
+#define gost_point_set _gnutls_nettle_ecc_gost_point_set
+#define gostdsa_generate_keypair _gnutls_nettle_ecc_gostdsa_generate_keypair
+void
+gost_point_mul_g (struct ecc_point *r, const struct ecc_scalar *n);
+int
+gost_point_set (struct ecc_point *p, const mpz_t x, const mpz_t y);
+void
+gostdsa_generate_keypair (struct ecc_point *pub,
+ struct ecc_scalar *key,
+ void *random_ctx, nettle_random_func *random);
+
+#define nettle_get_gost_gc256b _gnutls_nettle_ecc_get_gost_gc256b
+#define nettle_get_gost_gc512a _gnutls_nettle_ecc_get_gost_gc512a
+const struct ecc_curve * NETTLE_PURE nettle_get_gost_gc256b(void);
+const struct ecc_curve * NETTLE_PURE nettle_get_gost_gc512a(void);
#ifdef __cplusplus
}
diff --git a/lib/nettle/gost/acpkm.c b/lib/nettle/gost/acpkm.c
new file mode 100644
index 0000000000..8b05c7a75f
--- /dev/null
+++ b/lib/nettle/gost/acpkm.c
@@ -0,0 +1,83 @@
+/* acpkm.c
+
+ The R 1323565.1.017-2018 cipher function. See draft-irtf-cfrg-re-keying.
+
+ Copyright (C) 2018 Dmitry Eremin-Solenikov
+
+ This file is part of GNU Nettle.
+
+ GNU Nettle is free software: you can redistribute it and/or
+ modify it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your
+ option) any later version.
+
+ or both in parallel, as here.
+
+ GNU Nettle is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received copies of the GNU General Public License and
+ the GNU Lesser General Public License along with this program. If
+ not, see http://www.gnu.org/licenses/.
+*/
+
+#if HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "acpkm.h"
+
+static uint8_t acpkm_mesh_data[ACPKM_KEY_SIZE] =
+{
+ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
+ 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
+ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
+ 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
+};
+
+void acpkm_crypt(struct acpkm_ctx *ctx,
+ void *cipher,
+ nettle_cipher_func *encrypt,
+ nettle_set_key_func *set_key,
+ size_t length, uint8_t *dst,
+ const uint8_t *src)
+{
+ size_t N = ctx->N;
+ size_t part;
+ uint8_t new_key[ACPKM_KEY_SIZE];
+
+ /* Less than a block, no rekeying */
+ if (ctx->pos + length < N)
+ {
+ encrypt(cipher, length, dst, src);
+ ctx->pos += length;
+ return;
+ }
+
+ for (part = N - ctx->pos; length >= part; part = N)
+ {
+ encrypt(cipher, part, dst, src);
+ src += part;
+ dst += part;
+ length -= part;
+
+ /* Rekey */
+ encrypt(cipher, ACPKM_KEY_SIZE, new_key, acpkm_mesh_data);
+ set_key(cipher, new_key);
+ }
+
+ if (length != 0)
+ encrypt(cipher, length, dst, src);
+
+ ctx->pos = length;
+}
diff --git a/lib/nettle/gost/acpkm.h b/lib/nettle/gost/acpkm.h
new file mode 100644
index 0000000000..5ece09f799
--- /dev/null
+++ b/lib/nettle/gost/acpkm.h
@@ -0,0 +1,68 @@
+/* acpkm.h
+
+ The R 1323565.1.017-2018 cipher function. See draft-irtf-cfrg-re-keying.
+
+ Copyright (C) 2018 Dmitry Eremin-Solenikov
+
+ This file is part of GNU Nettle.
+
+ GNU Nettle is free software: you can redistribute it and/or
+ modify it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your
+ option) any later version.
+
+ or both in parallel, as here.
+
+ GNU Nettle is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received copies of the GNU General Public License and
+ the GNU Lesser General Public License along with this program. If
+ not, see http://www.gnu.org/licenses/.
+*/
+
+#ifndef NETTLE_ACPKM_H_INCLUDED
+#define NETTLE_ACPKM_H_INCLUDED
+
+#include <nettle/nettle-types.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define acpkm_crypt _gnutls_acpkm_crypt
+
+struct acpkm_ctx
+{
+ size_t N;
+ size_t pos;
+};
+
+#define ACPKM_CTX(type) \
+{ struct acpkm_ctx ctx; type cipher; }
+
+#define ACPKM_KEY_SIZE 32
+
+void acpkm_crypt(struct acpkm_ctx *ctx,
+ void *cipher,
+ nettle_cipher_func *encrypt,
+ nettle_set_key_func *set_key,
+ size_t length, uint8_t *dst,
+ const uint8_t *src);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* NETTLE_ACPKM_H_INCLUDED */
+
diff --git a/lib/nettle/gost/cmac-kuznyechik.c b/lib/nettle/gost/cmac-kuznyechik.c
new file mode 100644
index 0000000000..1a1abe7e87
--- /dev/null
+++ b/lib/nettle/gost/cmac-kuznyechik.c
@@ -0,0 +1,58 @@
+/* cmac-kuznyechik.c - GOST R 34.12-2015 (Kuznyechik) cipher implementation
+ *
+ * Copyright: 2017 Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#if HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#ifndef HAVE_NETTLE_CMAC_KUZNYECHIK_UPDATE
+
+#ifdef HAVE_NETTLE_CMAC128_UPDATE
+#include <nettle/cmac.h>
+#else
+#include "backport/cmac.h"
+#endif
+
+#include "gost/cmac.h"
+
+void
+cmac_kuznyechik_set_key(struct cmac_kuznyechik_ctx *ctx, const uint8_t *key)
+{
+ CMAC128_SET_KEY(ctx, kuznyechik_set_key, kuznyechik_encrypt, key);
+}
+
+void
+cmac_kuznyechik_update (struct cmac_kuznyechik_ctx *ctx,
+ size_t length, const uint8_t *data)
+{
+ CMAC128_UPDATE (ctx, kuznyechik_encrypt, length, data);
+}
+
+void
+cmac_kuznyechik_digest(struct cmac_kuznyechik_ctx *ctx,
+ size_t length, uint8_t *digest)
+{
+ CMAC128_DIGEST(ctx, kuznyechik_encrypt, length, digest);
+}
+#endif
diff --git a/lib/nettle/gost/cmac-magma.c b/lib/nettle/gost/cmac-magma.c
new file mode 100644
index 0000000000..f63458f781
--- /dev/null
+++ b/lib/nettle/gost/cmac-magma.c
@@ -0,0 +1,59 @@
+/* cmac-magma.c - GOST R 34.12-2015 (Magma) cipher implementation
+ *
+ * Copyright: 2017 Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#if HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#ifndef HAVE_NETTLE_CMAC_MAGMA_UPDATE
+
+#ifdef HAVE_NETTLE_CMAC64_UPDATE
+#include <nettle/cmac.h>
+#else
+#include "backport/cmac.h"
+#endif
+
+#include "magma.h"
+#include "cmac.h"
+
+void
+cmac_magma_set_key(struct cmac_magma_ctx *ctx, const uint8_t *key)
+{
+ CMAC64_SET_KEY(ctx, magma_set_key, magma_encrypt, key);
+}
+
+void
+cmac_magma_update (struct cmac_magma_ctx *ctx,
+ size_t length, const uint8_t *data)
+{
+ CMAC64_UPDATE (ctx, magma_encrypt, length, data);
+}
+
+void
+cmac_magma_digest(struct cmac_magma_ctx *ctx,
+ size_t length, uint8_t *digest)
+{
+ CMAC64_DIGEST(ctx, magma_encrypt, length, digest);
+}
+#endif
diff --git a/lib/nettle/gost/cmac.h b/lib/nettle/gost/cmac.h
new file mode 100644
index 0000000000..48f3b409e5
--- /dev/null
+++ b/lib/nettle/gost/cmac.h
@@ -0,0 +1,103 @@
+/* cmac.h
+
+ CMAC mode, as specified in RFC4493
+
+ Copyright (C) 2017 Red Hat, Inc.
+
+ Contributed by Nikos Mavrogiannopoulos
+
+ This file is part of GNU Nettle.
+
+ GNU Nettle is free software: you can redistribute it and/or
+ modify it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your
+ option) any later version.
+
+ or both in parallel, as here.
+
+ GNU Nettle is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received copies of the GNU General Public License and
+ the GNU Lesser General Public License along with this program. If
+ not, see http://www.gnu.org/licenses/.
+*/
+
+#ifndef GOST_CMAC_H_INCLUDED
+#define GOST_CMAC_H_INCLUDED
+
+#if HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#ifndef HAVE_NETTLE_CMAC_MAGMA_UPDATE
+#include "magma.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define cmac_magma_set_key _gnutls_cmac_magma_set_key
+#define cmac_magma_update _gnutls_cmac_magma_update
+#define cmac_magma_digest _gnutls_cmac_magma_digest
+
+struct cmac_magma_ctx CMAC64_CTX(struct magma_ctx);
+
+void
+cmac_magma_set_key(struct cmac_magma_ctx *ctx, const uint8_t *key);
+
+void
+cmac_magma_update(struct cmac_magma_ctx *ctx,
+ size_t length, const uint8_t *data);
+
+void
+cmac_magma_digest(struct cmac_magma_ctx *ctx,
+ size_t length, uint8_t *digest);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* HAVE_NETTLE_CMAC_MAGMA_UPDATE */
+
+#ifndef HAVE_NETTLE_CMAC_KUZNYECHIK_UPDATE
+#include "kuznyechik.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define cmac_kuznyechik_set_key _gnutls_cmac_kuznyechik_set_key
+#define cmac_kuznyechik_update _gnutls_cmac_kuznyechik_update
+#define cmac_kuznyechik_digest _gnutls_cmac_kuznyechik_digest
+
+struct cmac_kuznyechik_ctx CMAC128_CTX(struct kuznyechik_ctx);
+
+void
+cmac_kuznyechik_set_key(struct cmac_kuznyechik_ctx *ctx, const uint8_t *key);
+
+void
+cmac_kuznyechik_update(struct cmac_kuznyechik_ctx *ctx,
+ size_t length, const uint8_t *data);
+
+void
+cmac_kuznyechik_digest(struct cmac_kuznyechik_ctx *ctx,
+ size_t length, uint8_t *digest);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+#endif /* CMAC_H_INCLUDED */
diff --git a/lib/nettle/gost/ecc-gost-hash.c b/lib/nettle/gost/ecc-gost-hash.c
index bd4d8da95f..622556c360 100644
--- a/lib/nettle/gost/ecc-gost-hash.c
+++ b/lib/nettle/gost/ecc-gost-hash.c
@@ -37,7 +37,7 @@
#include <gnutls_int.h>
-#include "ecc-internal.h"
+#include "ecc/ecc-internal.h"
/* Convert hash value to an integer. If the digest is larger than
the ecc bit size, then we must truncate it and use the leftmost
diff --git a/lib/nettle/gost/ecc-gost256cpa-32.h b/lib/nettle/gost/ecc-gost256cpa-32.h
deleted file mode 100644
index bdd5b480d5..0000000000
--- a/lib/nettle/gost/ecc-gost256cpa-32.h
+++ /dev/null
@@ -1,1076 +0,0 @@
-#ifndef GNUTLS_LIB_NETTLE_GOST_ECC_GOST256CPA_32_H
-#define GNUTLS_LIB_NETTLE_GOST_ECC_GOST256CPA_32_H
-
-/* For NULL. */
-#include <stddef.h>
-#define ECC_LIMB_SIZE 8
-#define ECC_PIPPENGER_K 11
-#define ECC_PIPPENGER_C 6
-static const mp_limb_t ecc_p[8] = {
- 0xfffffd97UL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL,
-};
-static const mp_limb_t ecc_b[8] = {
- 0xa6UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
-};
-static const mp_limb_t ecc_q[8] = {
- 0xb761b893UL, 0x45841b09UL, 0x995ad100UL, 0x6c611070UL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL,
-};
-static const mp_limb_t ecc_g[16] = {
- 0x1UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x9e9f1e14UL, 0x22acc99cUL, 0xdf23e3b1UL, 0x35294f2dUL, 0x453f2b76UL, 0x27df505aUL, 0xe0989cdaUL, 0x8d91e471UL,
-};
-static const mp_limb_t ecc_Bmodp[8] = {
- 0x269UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
-};
-#define ECC_BMODP_SIZE 1
-static const mp_limb_t ecc_Bmodq[8] = {
- 0x489e476dUL, 0xba7be4f6UL, 0x66a52effUL, 0x939eef8fUL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
-};
-#define ECC_BMODQ_SIZE 4
-#define ecc_Bmodp_shifted ecc_Bmodp
-#define ecc_Bmodq_shifted ecc_Bmodq
-static const mp_limb_t ecc_pp1h[8] = {
- 0xfffffeccUL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0x7fffffffUL,
-};
-static const mp_limb_t ecc_qp1h[8] = {
- 0xdbb0dc4aUL, 0x22c20d84UL, 0x4cad6880UL, 0xb6308838UL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0x7fffffffUL,
-};
-#define ecc_redc_ppm1 NULL
-#define ECC_REDC_SIZE 0
-#if USE_REDC
-#define ecc_unit ecc_Bmodp
-static const mp_limb_t ecc_table[4096] = {
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x269UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x4d82b411UL, 0x9271ea7aUL, 0xcd7fc5ecUL, 0x208fd58eUL, 0xe53fbfe6UL, 0x1938a990UL, 0x4fd209caUL, 0x349f9676UL,
- 0x728711ccUL, 0x2bf67a05UL, 0x9fa7d47eUL, 0x76ed8b3bUL, 0x4cfb5354UL, 0x215fcb7aUL, 0x1d77b1a3UL, 0xcd2781d7UL,
- 0x4d370488UL, 0x9a91dea9UL, 0xd22a568eUL, 0x23d14b45UL, 0x57ab7e3bUL, 0xb27f0331UL, 0x91bc69c8UL, 0x6c130a73UL,
- 0x10a3e30aUL, 0x38716a21UL, 0x4143e9b7UL, 0xb3fec373UL, 0xef98c1d3UL, 0x1e856e03UL, 0xb7fcef5aUL, 0x50001284UL,
- 0x5b8cc67bUL, 0xccf91cabUL, 0x2b34e17fUL, 0xada71d72UL, 0x9478dedcUL, 0xd37764faUL, 0x3194e2e7UL, 0xa81e89e5UL,
- 0xe3e91a75UL, 0x118e2615UL, 0x89d423e4UL, 0xfca8412aUL, 0x8b3862d5UL, 0x97294ae7UL, 0x39f1c564UL, 0xb8c0af64UL,
- 0x61a1097dUL, 0xdc5d9e11UL, 0x9fc2cb97UL, 0xa13cd3d6UL, 0xdae719b6UL, 0x6cef39fdUL, 0x610dccabUL, 0x8d8bc1d1UL,
- 0x361f0595UL, 0x6e48523aUL, 0x6eb68ee4UL, 0x670ec034UL, 0xdc314120UL, 0x9eec9e6bUL, 0x8a688775UL, 0xde69cf78UL,
- 0x9d332137UL, 0x2e511af7UL, 0xdcf09ca0UL, 0x406e861fUL, 0x180f0d9eUL, 0x2cdb4bb0UL, 0xf45ce549UL, 0x9cf943f5UL,
- 0x8ae191ffUL, 0x67e51425UL, 0xf03dfddeUL, 0x6bd19217UL, 0x5bb405d9UL, 0x69afc180UL, 0x86b9c0e6UL, 0xe4a43fa9UL,
- 0x85339ca0UL, 0xf1167f51UL, 0x29a59cafUL, 0x2c399948UL, 0xe4970522UL, 0x220adb90UL, 0xda5cd9e9UL, 0x52ebab4bUL,
- 0x3a43e2e6UL, 0x25664db6UL, 0xb80668deUL, 0xb6b22958UL, 0xe6b7dedUL, 0x404ee673UL, 0x845317f1UL, 0x2ee7630cUL,
- 0xf4d39181UL, 0x47886e8eUL, 0x244eae3eUL, 0x4dc741d3UL, 0x953bf381UL, 0x630ae501UL, 0x5f534880UL, 0x66685f2eUL,
- 0xf090c066UL, 0x1ad07a2cUL, 0xf9ea65abUL, 0x7fa9a256UL, 0x3d57186dUL, 0x2ab27ff9UL, 0x164d727eUL, 0xdadbd78dUL,
- 0xb5f2ed49UL, 0xca46effdUL, 0xed472a4fUL, 0x57ccd31aUL, 0x3627d5e3UL, 0x948c0a8eUL, 0xf8217340UL, 0x8ecc58d0UL,
- 0x9fd8fe8eUL, 0xf9ef27ceUL, 0x17b18e43UL, 0x5a10eed2UL, 0xce192e1aUL, 0xcd576050UL, 0xa1ce977dUL, 0xe18fabf2UL,
- 0xba1c5537UL, 0x1e57872UL, 0xe952cffaUL, 0x2e44ed16UL, 0xd941ee1dUL, 0xe656b197UL, 0xb871cef1UL, 0x7e4c31e6UL,
- 0x39bde1f1UL, 0xf06d9aa9UL, 0x28412a0fUL, 0x444526c5UL, 0x5ea5418UL, 0xfa0481adUL, 0x4657d686UL, 0xef29d5d9UL,
- 0x658b29a8UL, 0x2ddb0d46UL, 0x346bc48dUL, 0x8df06eaaUL, 0x9cdbf831UL, 0x32cc9787UL, 0x94625f7aUL, 0xae091f02UL,
- 0x2015a836UL, 0x250a175eUL, 0x7087271dUL, 0x2e3fac7bUL, 0x20a58520UL, 0xf9832676UL, 0x8690da3dUL, 0xbc26dfafUL,
- 0x5ecd84fdUL, 0x1610fe04UL, 0xeb63b248UL, 0x2e9024ebUL, 0x7d3ff71eUL, 0x200cd262UL, 0x97017e79UL, 0x7f774758UL,
- 0xdc5ba08cUL, 0x942a28a7UL, 0x1fc8e2faUL, 0xe21dbb71UL, 0xac117881UL, 0x38d01e75UL, 0x5bf01f6cUL, 0xcd493d09UL,
- 0xb806248eUL, 0x3a01b011UL, 0x4dab6535UL, 0xffb18128UL, 0x7f9ba8dbUL, 0xe5bdb9eeUL, 0xe1054129UL, 0x699680bUL,
- 0xe5331d9bUL, 0xcc181b75UL, 0xf85a9fddUL, 0xc711a68fUL, 0x1bc7188UL, 0x23b5711cUL, 0xfe73dce0UL, 0x1a07b3adUL,
- 0xabaf5878UL, 0x7f34257fUL, 0x8d9d5a09UL, 0x14e56d42UL, 0x79b20e74UL, 0x9f9b33c3UL, 0xbed0b30cUL, 0xb1865ed8UL,
- 0x456f4b19UL, 0xe9cb187bUL, 0xaaf26c8eUL, 0x6fe8dc92UL, 0x56f0b914UL, 0x451a6362UL, 0xdfed5e14UL, 0x3d0a8861UL,
- 0x192b28faUL, 0xf3e02527UL, 0xa40b1e85UL, 0x6c44b09dUL, 0x16da6101UL, 0x72369857UL, 0x2b6b991dUL, 0x5de340beUL,
- 0x98e0b4d9UL, 0x407dca16UL, 0xc351a1d3UL, 0xf8e65953UL, 0xe65cfe2UL, 0x54ce60faUL, 0xf3a50f67UL, 0xa74aa64aUL,
- 0x660e79acUL, 0xab330f4cUL, 0xc0b53240UL, 0xe0294d8aUL, 0x4cdc5352UL, 0xeaee8e0UL, 0x849cc804UL, 0xf22c62e6UL,
- 0xf7ac4a2UL, 0xd0f26fb2UL, 0xee6ee9b2UL, 0xc390cbd9UL, 0xe0d08be3UL, 0x7fa9f053UL, 0x4987d9a4UL, 0xf2e59e43UL,
- 0x2f8d72b9UL, 0x3028051fUL, 0xc3feb20fUL, 0xf085842aUL, 0xc909ff85UL, 0x14f2ac6eUL, 0x5d876f76UL, 0xbf23f055UL,
- 0x7ba388f6UL, 0xa4800ae8UL, 0x7ca568aUL, 0xa46d48e0UL, 0x3e6a244fUL, 0xbcf58410UL, 0xb80c6195UL, 0xb110a240UL,
- 0x95f8cc0UL, 0x13e275beUL, 0x3c9e52d6UL, 0xace28be3UL, 0xdec582bUL, 0x9765dd4fUL, 0x745a2beeUL, 0xe2cae5efUL,
- 0x60e50aa5UL, 0x76ca6673UL, 0x40aa6b5cUL, 0x2649e8fcUL, 0x76bca9beUL, 0x6ac4a7d1UL, 0xbfa74036UL, 0xc405bcdUL,
- 0x588fdc25UL, 0x2ab1d80bUL, 0xba90d19fUL, 0x429e0579UL, 0x5e7577a7UL, 0xadedba7fUL, 0xa048f3c5UL, 0xdf0da4e3UL,
- 0x4d6c2cd8UL, 0xb9d5b41cUL, 0xf23a0223UL, 0x1421d1f5UL, 0xe2abaf6UL, 0x6e8ebd10UL, 0xc8647411UL, 0x5b9ae22aUL,
- 0xa38f3071UL, 0x983c8368UL, 0x5b2bbee8UL, 0x233fbf69UL, 0xca0335e3UL, 0x17d934f7UL, 0xc06743f4UL, 0x7565983cUL,
- 0x6314a24dUL, 0x646af82eUL, 0x11cfb7e4UL, 0xb9b00eefUL, 0x2a042843UL, 0xfc21c717UL, 0xaec0733UL, 0x312cc940UL,
- 0x3a1f52e5UL, 0x264bbdfdUL, 0x567f8c84UL, 0x35785259UL, 0xaf644aaeUL, 0x776bc00eUL, 0x1d4eddaaUL, 0x1d26554fUL,
- 0x56840d1dUL, 0x890ec953UL, 0xa7200d3bUL, 0x9a022c3UL, 0x3118b696UL, 0x36d44231UL, 0x7267d2ceUL, 0xf8f5d22fUL,
- 0x3915375UL, 0x2b8ebec0UL, 0xd486b5f8UL, 0xd6e12a60UL, 0x580f679UL, 0x574567deUL, 0x6467220aUL, 0x65ddb7d5UL,
- 0x3939af9eUL, 0xc2c320ebUL, 0x99394292UL, 0xdb315e6aUL, 0xa113dfc1UL, 0x437bfbafUL, 0xcb9e34faUL, 0xd0133206UL,
- 0x624135eaUL, 0xd57a3a7eUL, 0x33c317e5UL, 0xa027f66dUL, 0xaa565f0UL, 0x711d7d8eUL, 0x54a7fa07UL, 0x42f4637cUL,
- 0x82f0d659UL, 0x49a8896eUL, 0x71f18a21UL, 0x21d6976cUL, 0x33593204UL, 0xb1e33a7bUL, 0x7e1bacffUL, 0x23ed8b16UL,
- 0x996f17bdUL, 0xf4a17bbfUL, 0x73176ea4UL, 0x6d660c74UL, 0xc1f301a9UL, 0x1fc7363cUL, 0x1aeb1cacUL, 0xd64c1ea1UL,
- 0x19a7b7d1UL, 0x7a10b454UL, 0xabc1089aUL, 0x33010367UL, 0x54f7585fUL, 0xd05fbd2UL, 0x2314e4dUL, 0x5d6cdd22UL,
- 0xf5be2b44UL, 0x5a6090a4UL, 0x3bdf0f7aUL, 0xc59e3418UL, 0xe016972aUL, 0xfc6633a5UL, 0x1093cff1UL, 0x8d60a1b5UL,
- 0xf3ae8e88UL, 0x169f5b89UL, 0x4d17e77eUL, 0x271eec07UL, 0x2bb1d8a2UL, 0xad679646UL, 0x95fd7b64UL, 0xebeb80cUL,
- 0xfa36bf48UL, 0xabbbd5bcUL, 0x9ec958ceUL, 0x2b5d0778UL, 0x6803e501UL, 0xdb1f82c5UL, 0xee268faeUL, 0x5bad5c2bUL,
- 0x596f90c1UL, 0x212232ecUL, 0x43e00b35UL, 0x69784674UL, 0x1be7ed60UL, 0x3c7da935UL, 0x46f20e66UL, 0x9ca00a1dUL,
- 0x443410f6UL, 0xbdbfe58eUL, 0xedcfbfd9UL, 0xc063e88cUL, 0x6637501dUL, 0x9bc60262UL, 0xfada5d51UL, 0x29812e11UL,
- 0x2098f86bUL, 0xa9210e1fUL, 0x72c513bbUL, 0x1ac88797UL, 0x958390bUL, 0x9fce8de8UL, 0x5d430ba4UL, 0x74010dfbUL,
- 0x975c8121UL, 0xd3cb573cUL, 0x92ac3fcbUL, 0x9ea66989UL, 0x7fbf52aaUL, 0xe7022fdcUL, 0x948e46b5UL, 0x6eda69b2UL,
- 0xa504ef6bUL, 0x8fb94d4cUL, 0xf5b017f1UL, 0xfe2944b4UL, 0xa16d10fUL, 0x7a370f32UL, 0x4ce512e0UL, 0x5bcbc4a1UL,
- 0x3350304aUL, 0x27a4de87UL, 0x51c7f8d8UL, 0x40861f3cUL, 0xc6aa00e1UL, 0xaca17208UL, 0xf7837dcfUL, 0x5df902e3UL,
- 0xf3aae99dUL, 0x6d5b679UL, 0xe367f377UL, 0x336e1cfUL, 0xb7de4d64UL, 0xdb7b9bd7UL, 0x48d4da0dUL, 0xe88a4c9fUL,
- 0x3ad847d5UL, 0x793c120dUL, 0x814049d6UL, 0x5236130UL, 0x9ed7a755UL, 0xb4e67360UL, 0xd3ee2b76UL, 0xc473137eUL,
- 0xf0ed5a00UL, 0x5abf387fUL, 0x82649336UL, 0x14918656UL, 0x57514911UL, 0x26238d56UL, 0x410f3e86UL, 0xc4bc7e13UL,
- 0x41f25a81UL, 0xf4ea8b94UL, 0xd608bdb4UL, 0x2ce3f801UL, 0xd00ad1b7UL, 0x31865e0bUL, 0x5202e234UL, 0x2f1144f0UL,
- 0x36e5f242UL, 0xb8e0a332UL, 0xb0c07619UL, 0xf962e100UL, 0x54ecb1e1UL, 0x3a289a80UL, 0x86688f9fUL, 0x2871e764UL,
- 0xd1e31b99UL, 0x13d4767bUL, 0x5c89cb7cUL, 0xf8adfc0eUL, 0x82519714UL, 0xfa7b276UL, 0x3f1c1360UL, 0x389cbed1UL,
- 0x76b8c9bdUL, 0x4c65f976UL, 0xaadb6e6eUL, 0x2dbfc4d5UL, 0xe30d1f5bUL, 0xe5643b3aUL, 0x459deab9UL, 0xad7577dUL,
- 0x8fc2d7fUL, 0x10ac7e9eUL, 0xdd8ed8d6UL, 0x53aa93b9UL, 0xc9d2398eUL, 0x5930c396UL, 0x6c90cf02UL, 0x6a1d27e1UL,
- 0x57accd02UL, 0xa1f3e69fUL, 0xb403bd29UL, 0xdfad27c9UL, 0x8ee91a95UL, 0x91b03c25UL, 0x8c1ee669UL, 0xa89db749UL,
- 0x5b674f01UL, 0xab448a18UL, 0xffcacfa2UL, 0xcdf04197UL, 0xf79694caUL, 0x543996c7UL, 0xebfc347bUL, 0xcfedab0cUL,
- 0x7f9855f3UL, 0xb712809eUL, 0xb592cd9bUL, 0x80ff8036UL, 0x267599adUL, 0x6a692f32UL, 0x4a15b3e6UL, 0x663320a4UL,
- 0x208f854bUL, 0x43841149UL, 0x327269dfUL, 0xa98a0ee4UL, 0xe85b3aa3UL, 0x4113211aUL, 0x6ba93ed7UL, 0x4ed8e6f7UL,
- 0xa1801a18UL, 0xb59f6e5UL, 0xb47ea2b4UL, 0x26017587UL, 0x39876468UL, 0x3b273de2UL, 0x64ceb9d2UL, 0xdacdb053UL,
- 0xf86c93a0UL, 0x6eeb71ceUL, 0x15d4c51UL, 0x55fdffa4UL, 0x34de500cUL, 0x303e8249UL, 0x62911a41UL, 0xde8bf014UL,
- 0x98f93f1aUL, 0xffd2bbe1UL, 0x5e3b63eaUL, 0xcdacf905UL, 0xc885a310UL, 0x917ef59dUL, 0x6d8d2bc1UL, 0xb46f86b6UL,
- 0xab03b344UL, 0x8937bd6aUL, 0xd66f51dcUL, 0xfea838dUL, 0xc12475afUL, 0x823dcd1dUL, 0x7a8c8db1UL, 0xb81d6cc4UL,
- 0xf5b48650UL, 0xf03afe9fUL, 0xdf5e2a63UL, 0xe051800eUL, 0x856fe615UL, 0x3a20c21UL, 0x505bb8d1UL, 0x6b43fbe0UL,
- 0x75fe00f0UL, 0x59380a28UL, 0x9e2ad555UL, 0x24a8e6e2UL, 0xb54e2b8fUL, 0xc5846725UL, 0xe12ed89aUL, 0xe824b8bfUL,
- 0x3e1802c1UL, 0x14767aecUL, 0xf7dd8eefUL, 0xca384097UL, 0xe89ed164UL, 0x35f9f188UL, 0x3d5dea4dUL, 0x426e51b2UL,
- 0x31fe7bUL, 0xd2ae6f16UL, 0xbde6d329UL, 0x8a678694UL, 0xca30bfeaUL, 0x482d533UL, 0x5645dc5eUL, 0x966b23b1UL,
- 0x7141d85dUL, 0xddddce21UL, 0x61a01285UL, 0x28f9584cUL, 0x2d18de6aUL, 0x6d1ef923UL, 0x93eb7e69UL, 0xc27800bdUL,
- 0x9ce2ee9UL, 0x13aead11UL, 0xaf9cdc33UL, 0x9bd1deddUL, 0xa0fbe620UL, 0xf300b32dUL, 0x97fd23cbUL, 0x2a7235bfUL,
- 0x241838d4UL, 0x9f590135UL, 0xf5aa1315UL, 0xcb767b59UL, 0x4cba6db8UL, 0x50fdb0e2UL, 0xe4fa6ed5UL, 0xd303a00UL,
- 0xa6735629UL, 0x12124b5fUL, 0x80621d43UL, 0xf57f1c60UL, 0x97e3d405UL, 0x498f3655UL, 0xd0c473aUL, 0x4198a088UL,
- 0x5b613c9cUL, 0x41f92d9fUL, 0x368a3021UL, 0x591f9ea7UL, 0x90f5233cUL, 0x34c459afUL, 0x10e0f8bbUL, 0x470f0e44UL,
- 0x14325578UL, 0x467afddaUL, 0xc1890886UL, 0xea95ad39UL, 0xe729e076UL, 0x6a7dd15UL, 0x7339650bUL, 0xaac20917UL,
- 0x44a83c63UL, 0x396fe67bUL, 0x2dda4e65UL, 0x92bb09afUL, 0x7728d3c3UL, 0xb1bc3afbUL, 0xff4b2e5aUL, 0x6007a0fdUL,
- 0x35b7be8bUL, 0xdf83c04UL, 0x93bc97c5UL, 0x472e05c3UL, 0x52b40ad1UL, 0xa54d861eUL, 0x866e2c0bUL, 0xe263a27eUL,
- 0xb657322cUL, 0x2bafbe29UL, 0x884a70a3UL, 0x143d4706UL, 0xea7ee0aeUL, 0xa816e2e1UL, 0x18aa357dUL, 0x6315365cUL,
- 0x99cc35a0UL, 0x13906a3bUL, 0x71b81dceUL, 0xfabc8978UL, 0xfaedfa64UL, 0x876b9a6UL, 0x8f0d63adUL, 0x6a68e468UL,
- 0xb403e429UL, 0x4a2b0048UL, 0xc6150ecdUL, 0x2e0935b5UL, 0x7debd05eUL, 0xbdf6c83cUL, 0x52d9d52fUL, 0x435abcebUL,
- 0xfafd9df1UL, 0x92447341UL, 0x3a536dbbUL, 0xfc997ab5UL, 0x3d0efcb5UL, 0x699d8f0dUL, 0xe448e005UL, 0x274074b6UL,
- 0xf297004eUL, 0x3aa71004UL, 0x179c9df8UL, 0x419be67bUL, 0xc8285fd9UL, 0xdeb43366UL, 0xcc2eb843UL, 0xbfa1c616UL,
- 0x98eacf45UL, 0x6b055350UL, 0xb9418315UL, 0x3e093c5dUL, 0x78d31971UL, 0xd2835674UL, 0xba446884UL, 0x7ba8043aUL,
- 0xbc4fee0eUL, 0x300c0243UL, 0x6c6fe657UL, 0x30fdcf8aUL, 0x4d3635c6UL, 0x928da0d0UL, 0xe2d506edUL, 0x14aad129UL,
- 0xfc50d416UL, 0x95b64457UL, 0x39708fa7UL, 0xb60952acUL, 0xd71b560fUL, 0x602dc88bUL, 0x2ec7eae0UL, 0xef586062UL,
- 0x9c2a7cc8UL, 0x87f880d2UL, 0xdd460972UL, 0xd3073f4eUL, 0x416f46c5UL, 0xe82fc8d2UL, 0x932e63fbUL, 0xe614fa0eUL,
- 0x85a3c495UL, 0x18469eaaUL, 0x7f5f89f6UL, 0x65dcf1f5UL, 0x4889192aUL, 0x51fc5286UL, 0x24ef546cUL, 0xce313470UL,
- 0x8ace1d03UL, 0x667b04acUL, 0x892a3b23UL, 0xe3821445UL, 0x406d4316UL, 0x813c8cf5UL, 0x5bfd2a74UL, 0x8e168bfdUL,
- 0x4df44ce9UL, 0x302a4267UL, 0x8cdc9a39UL, 0x44acf5e2UL, 0xb6aae8bUL, 0xc43e314dUL, 0x7cdcb9f5UL, 0xd40fc234UL,
- 0x2d8ccd6fUL, 0xc42a0f62UL, 0xb452f554UL, 0xfa89c396UL, 0x56a0dcdbUL, 0xc1d3eda6UL, 0x748c4570UL, 0x6c28b299UL,
- 0x431f9da8UL, 0x220d85cdUL, 0xd8e986f7UL, 0x7137865bUL, 0xfdcf73cfUL, 0x40f4816fUL, 0xa94e3e89UL, 0x27ec5aabUL,
- 0x6b5c6ccUL, 0x132a0bb7UL, 0x8250c5efUL, 0x5d5b13b9UL, 0xb819a95bUL, 0xbcc299e2UL, 0xf10d30daUL, 0xc29bfe4fUL,
- 0x4d45742bUL, 0x323adbdaUL, 0xd0e19ef7UL, 0x1dc21f96UL, 0xad440048UL, 0xf81749bcUL, 0x62406daeUL, 0xc99fc7acUL,
- 0x698785cUL, 0x469bfc9cUL, 0xa2a19476UL, 0x1b965adbUL, 0xc35cc9c1UL, 0x44037736UL, 0x4a3f2a8eUL, 0x350c8cd5UL,
- 0x34089944UL, 0xf77a8ccUL, 0xb5087a61UL, 0xe1d77cdfUL, 0x3aac726fUL, 0x97b97478UL, 0x5bdf1a1fUL, 0x96ca8701UL,
- 0x1df718d3UL, 0xdf7eff6cUL, 0xcca715efUL, 0x59dbb1a5UL, 0xe0d88785UL, 0x8f7109c8UL, 0x33c9d8fbUL, 0x921927efUL,
- 0xa53a1721UL, 0xa1ef0a50UL, 0x40f6d98aUL, 0x33b32fbfUL, 0x8b41dffaUL, 0x75409c5UL, 0x497d5d6eUL, 0xd7c6839fUL,
- 0x795ec55cUL, 0xdadac1acUL, 0x393daa4eUL, 0x4aeac5cbUL, 0x9405b4caUL, 0xb2242fb8UL, 0xe1f9985bUL, 0x64aa521bUL,
- 0x92bb1ca9UL, 0x765ea8edUL, 0x3f777985UL, 0x156d9786UL, 0x438523fcUL, 0xdeab8be3UL, 0x529c49c3UL, 0x91a320eeUL,
- 0xe60c8336UL, 0x504d3c6fUL, 0xd6a9bd5cUL, 0x5f026f03UL, 0x6223af2cUL, 0x91bbc86dUL, 0x93db3f24UL, 0x30dbe84dUL,
- 0x4645ca83UL, 0x52ae46e3UL, 0x5f096586UL, 0x42e0f6faUL, 0x7e7f21c2UL, 0xd10150d1UL, 0xf25f18b1UL, 0x72c6d74eUL,
- 0xcfe500cfUL, 0xdc17532dUL, 0xcfe854c0UL, 0xe0308654UL, 0xba634e2aUL, 0x202983dfUL, 0x643dbdcdUL, 0x92fe3b36UL,
- 0x340f6787UL, 0x8ce45f20UL, 0x75d645a8UL, 0x68de5855UL, 0x8e8b3d41UL, 0xcb9a74fdUL, 0x32be0a2fUL, 0x57da11abUL,
- 0xb9c4ab8aUL, 0x991a7283UL, 0x55856053UL, 0xbf5700c3UL, 0xa072aa0dUL, 0xed006142UL, 0xdc4f693fUL, 0xc4a469e0UL,
- 0xedbb4607UL, 0xeb16bd21UL, 0xf5754b09UL, 0xe2508329UL, 0x1c358f47UL, 0xe2e97d4UL, 0x3e90babcUL, 0x9506e5fUL,
- 0x53e829bdUL, 0xc17f446fUL, 0x6a4532a0UL, 0x5382c487UL, 0x34bc2dbUL, 0x6f6d2731UL, 0xe0fd57baUL, 0x74c5510fUL,
- 0x90b8225aUL, 0x8bbd6758UL, 0xc6b4150bUL, 0x16477d0bUL, 0xa664d93bUL, 0x320e61b0UL, 0x77b6c1a0UL, 0x622631b6UL,
- 0x50419c7bUL, 0x36a545a0UL, 0x572af62aUL, 0x1c5f7138UL, 0xd5958b1bUL, 0xddc58702UL, 0x922173d6UL, 0x48dbc853UL,
- 0x59c547faUL, 0x274259abUL, 0x4d7c082eUL, 0x36c7bbUL, 0x6865fb81UL, 0xaf4fec4bUL, 0x5a8f3334UL, 0xa43d3d05UL,
- 0xb838f66fUL, 0x706796aeUL, 0x4a431bc9UL, 0xa7d4a128UL, 0x2f716f7cUL, 0xf4a699c6UL, 0x1d6e65e7UL, 0x16e75968UL,
- 0x87918adeUL, 0x95ee836cUL, 0xf360924aUL, 0x4ca10d3aUL, 0xf81e0543UL, 0xc83d271eUL, 0x71837cb1UL, 0x696beeeeUL,
- 0x6039a17eUL, 0x7d1a6de3UL, 0xebc7a2e3UL, 0xb725333fUL, 0xc304fc01UL, 0xae882bcbUL, 0x2afee5c2UL, 0x668250d3UL,
- 0x996b260fUL, 0xf2333250UL, 0xcebe700aUL, 0xa2495ea1UL, 0xb8ca6b55UL, 0xd1fc886eUL, 0xb725cc4dUL, 0xbd0f5945UL,
- 0x6361b0e8UL, 0x7e68715eUL, 0xc4ad881dUL, 0xfb608259UL, 0x72218777UL, 0x747c9ac5UL, 0x644154a3UL, 0xf4e63189UL,
- 0x678b3a76UL, 0x823d6fc6UL, 0x51884089UL, 0xb44aaf37UL, 0x68277d59UL, 0x440a585aUL, 0xe3ba604fUL, 0x79b998d7UL,
- 0x14bd3368UL, 0xe7861b9aUL, 0x97295379UL, 0x389c11cbUL, 0xa063ff84UL, 0xffddb286UL, 0x2443afa6UL, 0xdf2678c0UL,
- 0x62cde45bUL, 0x79a38464UL, 0x190e265UL, 0x3dcb11e8UL, 0x3584f403UL, 0x8906e94eUL, 0x557a4c83UL, 0x4fa4742cUL,
- 0xde5abf7UL, 0x15ce538aUL, 0x8e7a249cUL, 0x39e4b5e6UL, 0x6972b798UL, 0xe4e58131UL, 0xb608af45UL, 0xb8bad384UL,
- 0x606e8c79UL, 0xb035ccfcUL, 0x18d0755aUL, 0x660eaec7UL, 0xc8a7572eUL, 0xd91757afUL, 0x36ca27d6UL, 0xf76b1619UL,
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x65b81454UL, 0x984b71e9UL, 0xfe9c944bUL, 0x4aa2b12aUL, 0x13a7e526UL, 0x923ff592UL, 0xbdd6541aUL, 0x5868980eUL,
- 0xd64bbc26UL, 0xea0bd455UL, 0xdf1a1d5fUL, 0x512ef2d2UL, 0x6d80caadUL, 0xed589cb0UL, 0x2a5e1741UL, 0x8e04cba5UL,
- 0x3cd07c04UL, 0x30065b7aUL, 0x3e4c7fdeUL, 0xcac5d8b5UL, 0xd1eb3f0cUL, 0xe213d821UL, 0x4746d555UL, 0xaba9ac7UL,
- 0x4d5f1a99UL, 0x1fd06eaeUL, 0xa0c7e17aUL, 0xf8bf8d65UL, 0xcacb9489UL, 0xc5cad66fUL, 0x31846ccfUL, 0x7cfc07bdUL,
- 0xcd59c9adUL, 0x6480ee9dUL, 0x41e45410UL, 0xabf23102UL, 0xab08872UL, 0x956a7087UL, 0x7c17b3edUL, 0x9d39f4ceUL,
- 0x152e2e78UL, 0x38554651UL, 0x8427b590UL, 0x1a46ba49UL, 0xd7380cedUL, 0xb17e03b2UL, 0xed02b3f2UL, 0xb645f815UL,
- 0x44a08f8bUL, 0xfaecee26UL, 0x7e781f83UL, 0x929d9850UL, 0x3561e9aUL, 0xf085bb48UL, 0xe2fa2609UL, 0x97810a87UL,
- 0xda75a45aUL, 0x9fc4645UL, 0xa3a4ff4eUL, 0x1af4b481UL, 0xd4685d0UL, 0x9bd55064UL, 0x7629fb8UL, 0xff4395e4UL,
- 0x26e27f90UL, 0x5a530544UL, 0xf5e0d0cbUL, 0x476f5803UL, 0xb276caa8UL, 0x33a185e6UL, 0x85a9e4bdUL, 0xe37aa839UL,
- 0x9d2b8a43UL, 0xe1840c8dUL, 0x64775c18UL, 0xa7c05702UL, 0x588a3ad0UL, 0xdab4e422UL, 0xfd81d9b9UL, 0x3432b5d3UL,
- 0xccbf6f50UL, 0x4956e7f2UL, 0xea7c8c7fUL, 0x42bbf514UL, 0xb6213df5UL, 0xec1383f0UL, 0x162dc239UL, 0x9a1f8674UL,
- 0xf221e2c9UL, 0x318d60d0UL, 0xd2103aa1UL, 0xe1366cafUL, 0x5087d1ccUL, 0xb25bd04dUL, 0xf50a805dUL, 0xe5f82334UL,
- 0xc35d5becUL, 0x3b283f30UL, 0x7b546ceeUL, 0x77c2c01UL, 0xd3e9f290UL, 0x4b7869bbUL, 0x55ca3c0eUL, 0x94d48151UL,
- 0x48fe695eUL, 0x2e9df9a9UL, 0x1bb4607UL, 0x6d403e8dUL, 0xd2a3af7aUL, 0xd90e419dUL, 0xd070a0f7UL, 0x4bf0d936UL,
- 0x51125ce5UL, 0x47c10116UL, 0x44247201UL, 0xb533e39aUL, 0x8a8d533aUL, 0x3617e73bUL, 0xb07cc26dUL, 0x44ccc48dUL,
- 0x80369fc8UL, 0x283da6bbUL, 0xe8c5e904UL, 0x49cbc8eaUL, 0x1a027dfUL, 0x8a8085d3UL, 0xe00b7614UL, 0x4128cd8cUL,
- 0xe3a7d512UL, 0xa1bdb9b2UL, 0x72e5832bUL, 0x78060606UL, 0x4b6a3918UL, 0xc7a9cf42UL, 0x9d3be92eUL, 0x6fb76243UL,
- 0xb0f6012eUL, 0x6b9180abUL, 0x47478f0cUL, 0x9ea7c07cUL, 0x21aa54caUL, 0x9f4fed07UL, 0x750ba0d7UL, 0x3ea2fea7UL,
- 0x276af083UL, 0x87656b1dUL, 0x1f32c02fUL, 0xdfbd4d88UL, 0x5029c1b6UL, 0x8d1917d4UL, 0x9e000b63UL, 0x4cb05ec3UL,
- 0x389de1fbUL, 0xdf8702e1UL, 0xf3ed6899UL, 0xe3418960UL, 0x55cf778bUL, 0x7ab00bfbUL, 0xea97b951UL, 0xeef967UL,
- 0x16d87b75UL, 0xeb138bcdUL, 0x4669c989UL, 0xdcdb296eUL, 0x4014ec35UL, 0xa7b1bc70UL, 0xe135fb46UL, 0xe6427316UL,
- 0x86ab5664UL, 0xcfb152e4UL, 0x16ffa417UL, 0x51fc1bcaUL, 0xec560181UL, 0xac6574beUL, 0xb7bbb763UL, 0x1f0152eaUL,
- 0x5b62f251UL, 0x6df5e220UL, 0x6c7de46UL, 0x1de86f72UL, 0xa5a7b0dUL, 0x484fb49dUL, 0xd5c7e090UL, 0x62c16124UL,
- 0x86578271UL, 0xbe9b9f98UL, 0xf7653ffcUL, 0xc1431c1bUL, 0x2d44bb56UL, 0xf2a95f60UL, 0x541588aeUL, 0x36ab6fcaUL,
- 0x1a7e0974UL, 0x5c3442eaUL, 0xf7bc81d2UL, 0xa89552bbUL, 0x69c9ee04UL, 0x3bd482baUL, 0x84afcfcaUL, 0x74cf2b81UL,
- 0xb0d426aUL, 0xe8ccf707UL, 0xa10a9589UL, 0x770705d6UL, 0xd4d38532UL, 0x157e9160UL, 0x2b99daa3UL, 0xca1721fcUL,
- 0xef8836fcUL, 0x943fe382UL, 0x1b49a79cUL, 0x30d9f49fUL, 0xc4199a14UL, 0xc2eb175fUL, 0x81ccecbaUL, 0xb8ad1924UL,
- 0x9a61722aUL, 0x22c9c960UL, 0x728c3e46UL, 0x3e58309fUL, 0x4ef4be5aUL, 0x57dce94bUL, 0x869107d1UL, 0xda9fccaUL,
- 0x475702f9UL, 0x578b0640UL, 0xa5a6098eUL, 0x33e1abddUL, 0x6b8b75c1UL, 0xe34b0fd3UL, 0x562a81b1UL, 0xe172a16eUL,
- 0xd8fe0465UL, 0x8b8bf462UL, 0x5a63cd9cUL, 0x812b8e8fUL, 0xb0a18fb0UL, 0xffa01a59UL, 0x4c2cb21bUL, 0x5aaf11fUL,
- 0xd8d23658UL, 0x3c7942e6UL, 0xb77b4cefUL, 0xa772fa1cUL, 0xb226b9c0UL, 0x6e82935dUL, 0x771ba235UL, 0xdfdc7920UL,
- 0xcd3311acUL, 0x8ca54de4UL, 0x9ae453ffUL, 0x3ae2c665UL, 0x5fde9a5cUL, 0x438d652eUL, 0x7a7ca9dbUL, 0xcb25b64bUL,
- 0x4962bf6bUL, 0xad49387fUL, 0x8d2a07f1UL, 0xd6b8b619UL, 0x7a7269f8UL, 0x6d1389f4UL, 0x7f7ccb88UL, 0x197f21a1UL,
- 0x171ef4f0UL, 0x6e7947f9UL, 0x377bd1b7UL, 0x633bd1a9UL, 0x47041a33UL, 0x2e91ac93UL, 0xd97143f9UL, 0x83afd08dUL,
- 0x27ebe6d9UL, 0x6b05308cUL, 0xd502e7efUL, 0x85c25351UL, 0xf532b329UL, 0xd5e962ebUL, 0xaa057771UL, 0xa0dad6b2UL,
- 0x8ce08e63UL, 0x33847976UL, 0x6f84440cUL, 0xc8144c77UL, 0xe99ebeceUL, 0x361a29d8UL, 0x5acd575bUL, 0x58bb4d2bUL,
- 0x4ff3d7a6UL, 0xc43df716UL, 0x51d5815cUL, 0xd8ca6f51UL, 0xdeaf98c4UL, 0xd385b950UL, 0xd42291f3UL, 0x341d446fUL,
- 0x44650a72UL, 0x88c5a936UL, 0x484b640cUL, 0xebce81e4UL, 0x7d93c8a2UL, 0xa8ac5ec0UL, 0x52124fa5UL, 0x1d7f7729UL,
- 0x602208deUL, 0xe9dc15caUL, 0xc2b2f4faUL, 0xf265c78bUL, 0x97af65dbUL, 0x542929fcUL, 0x31d8d791UL, 0xe6e26c4fUL,
- 0x5671bddeUL, 0x3d109118UL, 0x2b8c1494UL, 0x1231388UL, 0x4d731139UL, 0xab2667e6UL, 0x40bf6933UL, 0x5eab1f61UL,
- 0xeda36773UL, 0x85fccbf6UL, 0x62a502d2UL, 0xb9769dccUL, 0xa5c1fbbcUL, 0xe03d20e1UL, 0x60b60913UL, 0x2e1ba7fbUL,
- 0x4b87428UL, 0x8927f7b9UL, 0x84ccd20bUL, 0x5781d51fUL, 0x2d426de4UL, 0x65c5b6b9UL, 0xd32618cUL, 0xa913c833UL,
- 0x20458acaUL, 0xa396eed4UL, 0x49537638UL, 0xb1403c77UL, 0xb23fb169UL, 0x26fa0021UL, 0x52e5db94UL, 0xd71ba27fUL,
- 0x10b5c8f7UL, 0xa4615fe7UL, 0xaf5ae816UL, 0x3c1e8593UL, 0xf6b76c95UL, 0x9719936bUL, 0xc265f692UL, 0x11a4f846UL,
- 0x58beae80UL, 0x5f44d5b8UL, 0x7b336890UL, 0x1882507bUL, 0x60c42a50UL, 0x773b9bbfUL, 0xa037bd6dUL, 0x24784a0UL,
- 0xd6cde7f3UL, 0xfcb628b8UL, 0x817d6801UL, 0xc5a4d309UL, 0x469040f9UL, 0xc69228e9UL, 0x844ecbc3UL, 0x14d39b00UL,
- 0x6979a440UL, 0xfa4a3b18UL, 0xe76c5ef7UL, 0xaa6d6d3dUL, 0x3627e880UL, 0x70bc1453UL, 0x6bc42e2dUL, 0xa78835fUL,
- 0x3fe82360UL, 0xa16a31a0UL, 0x816bc37cUL, 0xbdb7fec5UL, 0x733bb9d8UL, 0xa1c6ba23UL, 0x4f0a5f2UL, 0xfb6ac5b3UL,
- 0x252b45a7UL, 0x50a60695UL, 0x49adbf97UL, 0x700586f2UL, 0xc32896a2UL, 0x3487224fUL, 0x896a0b22UL, 0x39b6d8e3UL,
- 0xaaedce48UL, 0x335f4a81UL, 0x5d830fa9UL, 0x35c8a12bUL, 0xcd462fd1UL, 0x49cf390UL, 0x1eb15885UL, 0x62720948UL,
- 0xb3475e7fUL, 0xe96236ceUL, 0xf7329201UL, 0x140db193UL, 0xd021e8beUL, 0x58262e39UL, 0x4104bf1UL, 0x6e8d7a29UL,
- 0x3b1b01a6UL, 0x4498192bUL, 0xaf54c4cbUL, 0x5d459ea9UL, 0x7d3f72fbUL, 0xc5955874UL, 0x588334cdUL, 0x94c2362aUL,
- 0x63812c9cUL, 0x1e57aa72UL, 0xd16ae4afUL, 0x258cd807UL, 0xbecdaacfUL, 0xbf613e8fUL, 0x46be7619UL, 0x9ebf099aUL,
- 0x64bed35bUL, 0xb1d294acUL, 0x8701104cUL, 0x4c9e7ce7UL, 0x57cc0c27UL, 0xdce672f8UL, 0x3bac7e6eUL, 0x5d2682deUL,
- 0xbc21b28dUL, 0xe95b4f40UL, 0x5b76688fUL, 0x829e37e9UL, 0x2ab69c4dUL, 0xb8c9aa9cUL, 0x28e702ebUL, 0x22018721UL,
- 0xed3ae109UL, 0x70e94d82UL, 0x25dfd4aUL, 0xd687c2cUL, 0x114818feUL, 0x7157fe02UL, 0x4981f9daUL, 0xd131839cUL,
- 0x360926e5UL, 0xfc4d6b2eUL, 0x278175deUL, 0xf0dd3443UL, 0xe9de0125UL, 0x5d6fedfaUL, 0xb7078e46UL, 0xcbf561b8UL,
- 0x76698feUL, 0x35392b5dUL, 0x2689d64dUL, 0x123c8a9cUL, 0x32e8c43cUL, 0xc7f30699UL, 0x4275d71eUL, 0x7bf9850aUL,
- 0x55968ebfUL, 0xbb92e687UL, 0xfff9ec1cUL, 0xb914f18dUL, 0x62226301UL, 0xc8dc753bUL, 0x2c8315b4UL, 0x7e3dfe58UL,
- 0x29182dc3UL, 0xef52b53aUL, 0x721904d6UL, 0x218492a7UL, 0x29d23c06UL, 0x48be64e7UL, 0x9e1f2f77UL, 0xc3049409UL,
- 0x5d2e9ec7UL, 0x27d7b1ddUL, 0x5032bd20UL, 0xec314a9eUL, 0x291bf41UL, 0x6b5b9dc2UL, 0xae00d57aUL, 0xb7fd448bUL,
- 0x87469529UL, 0x2c25de5aUL, 0xc5bac3deUL, 0x3e892d83UL, 0xc09daa62UL, 0x7dde4fecUL, 0xf2259058UL, 0xb79f5190UL,
- 0xc6cb01ebUL, 0x93d0cd32UL, 0x969fea68UL, 0x28d2929UL, 0x54c181fbUL, 0x44017014UL, 0x7f955e4UL, 0x79545884UL,
- 0x6a0614f4UL, 0xe6736444UL, 0x318c4acdUL, 0xd99b6a4bUL, 0xd5055a76UL, 0xf02e222eUL, 0xea2dc9c8UL, 0x47f192c7UL,
- 0xa3d81ffUL, 0xdc829a2fUL, 0x85c9e98eUL, 0x3e820750UL, 0x1759ced1UL, 0xd60e5518UL, 0xbdfb608eUL, 0xa1ee8a71UL,
- 0x65ddb0a2UL, 0x87ab84a3UL, 0x401e4a34UL, 0x52cffdfaUL, 0xecbb9337UL, 0xbf5f54f2UL, 0x27b105caUL, 0x1eb83770UL,
- 0x9eefec2aUL, 0x2bdae3UL, 0x3eee4045UL, 0x60ca539eUL, 0x163accc5UL, 0x942afe42UL, 0xf704a1e9UL, 0x5b96feabUL,
- 0x555c0b5UL, 0xa42a151UL, 0x3f1d3b5UL, 0xaa841788UL, 0xdd34986cUL, 0xaf1e89a4UL, 0x69c2b9d4UL, 0xd352ca2bUL,
- 0xfe03a649UL, 0xd3517a52UL, 0xf774d911UL, 0xd73e6f7cUL, 0x41527c07UL, 0x7aec989aUL, 0x390ad0d2UL, 0xb813f998UL,
- 0x5c482f31UL, 0x3895037fUL, 0x2856377dUL, 0x910519d9UL, 0xbf37984eUL, 0x24a6b6e5UL, 0xd3d37fa2UL, 0x5f3101a8UL,
- 0xdb8d9c3bUL, 0x998a9abUL, 0x166fb063UL, 0x99b0a0ceUL, 0xb1ba2394UL, 0x69c3493eUL, 0x10421018UL, 0xe69942a2UL,
- 0xdcf1e832UL, 0x7073a3e0UL, 0x69ca405fUL, 0x99201f3bUL, 0x46b61789UL, 0x273609aUL, 0xae06b308UL, 0xee823f39UL,
- 0xb951e051UL, 0xfe492786UL, 0x8025ef18UL, 0xa9690898UL, 0x9ec3ecb7UL, 0xf9ac97feUL, 0xead20adeUL, 0xd325a47dUL,
- 0xa257d38fUL, 0xa1e92582UL, 0x603f3da6UL, 0x1df77586UL, 0x40aab419UL, 0x75e03e5cUL, 0x7a956c60UL, 0x77b7c5d7UL,
- 0xaecb4eeeUL, 0x71ae1e98UL, 0x97554a3UL, 0xf3a49e6cUL, 0xdddecd9dUL, 0x1b44f38bUL, 0x308acb50UL, 0x3a1864feUL,
- 0x26a12c52UL, 0x6d526c84UL, 0xd3d180d9UL, 0x3880f05bUL, 0x9410929fUL, 0xe12bdf70UL, 0x15004c63UL, 0x6208fdeeUL,
- 0x359f9d80UL, 0xf542c110UL, 0x46cae834UL, 0xaca0a63aUL, 0x280f9533UL, 0x9e625e67UL, 0x5c0409c2UL, 0x180d40efUL,
- 0x70c3c618UL, 0x90fe7c51UL, 0x407ed342UL, 0x961bb72aUL, 0xc8c472c3UL, 0x95505588UL, 0x51c13929UL, 0x3b62bf5cUL,
- 0xebe1b4d4UL, 0xdcf67aedUL, 0x422a1cb9UL, 0x3345d9e2UL, 0xd1c94ae4UL, 0x27311dfeUL, 0x70966bb2UL, 0x875e4e2UL,
- 0x148ca994UL, 0x59aa953dUL, 0x51536722UL, 0x3d119b30UL, 0xff703312UL, 0x5921a0d2UL, 0x7ed091eaUL, 0x9c501f79UL,
- 0x22842262UL, 0x98102dfdUL, 0xbf9f9d1UL, 0xb06b5f24UL, 0xa8b538bfUL, 0x6629774aUL, 0x2d1f6c01UL, 0x67422edeUL,
- 0x64f613ebUL, 0x5faee84bUL, 0x9ccbcc36UL, 0x7a8a4252UL, 0x38907c36UL, 0x25352942UL, 0xf379ad7eUL, 0x7510f15eUL,
- 0xee4ec7ccUL, 0x956142f0UL, 0x1cdbce71UL, 0x772f56f7UL, 0x4fd6f35cUL, 0xccdfb746UL, 0x70413052UL, 0x9efb9148UL,
- 0x89c9fdfcUL, 0xd406ac34UL, 0x930a6c87UL, 0x1f42a0f8UL, 0x9f4ce4b6UL, 0xb536be41UL, 0x9685e85bUL, 0x921b7fd8UL,
- 0xd47bf8acUL, 0xd2003d58UL, 0xd3988b44UL, 0xe0ab92aUL, 0x9de8f51dUL, 0x83da2f00UL, 0xe6e3c372UL, 0xcb208e52UL,
- 0xee8b3decUL, 0xcb485297UL, 0x22c1ce3cUL, 0x31d67937UL, 0x28ac3a54UL, 0x7843e6c0UL, 0x781ece3aUL, 0xbaaacc80UL,
- 0x3485c856UL, 0x8b8e4f3eUL, 0x67494a1eUL, 0xa91ab0UL, 0xabf632d2UL, 0xcb15f141UL, 0x8e3a7761UL, 0x6215c764UL,
- 0x54741dcdUL, 0x2a90be0fUL, 0x76ba1d82UL, 0xe81faa5bUL, 0x1a1a50eUL, 0x83bd0472UL, 0x42688e2cUL, 0xc38754e5UL,
- 0x139263a8UL, 0x730bda63UL, 0xbd1eee0eUL, 0xa11bc291UL, 0xe7574b7dUL, 0x785da2dbUL, 0x3c22543fUL, 0x1788f977UL,
- 0x568834d0UL, 0x6dc38559UL, 0xd018654fUL, 0x2d38ebc3UL, 0x4f615207UL, 0xb0e54cfcUL, 0x5ab71280UL, 0x3b79b7d7UL,
- 0x2d21fb40UL, 0xbbb949daUL, 0x49f5d162UL, 0xfb5af179UL, 0x91b6d4ffUL, 0x3d3d480bUL, 0x24ae172dUL, 0x7cc2da64UL,
- 0xda0c5c00UL, 0x898361faUL, 0x1b327a49UL, 0xfcd39a75UL, 0xd1eadd2UL, 0xe5964034UL, 0x62109d60UL, 0xa2aa1c65UL,
- 0x8d87c8f4UL, 0x4bb30b21UL, 0x9bce08b7UL, 0x4226843fUL, 0xb216c1d7UL, 0xf13f2c85UL, 0x34dfa5d0UL, 0xc432f3b0UL,
- 0x12a2844cUL, 0x982f098dUL, 0x3e32bbaUL, 0xfd16b65cUL, 0x710741c3UL, 0xbe235fc7UL, 0x59f4b90fUL, 0xb90283fUL,
- 0x8b370473UL, 0xb9b00909UL, 0xb440222UL, 0xcdf45880UL, 0x84823911UL, 0x48fcd267UL, 0xff5d26d1UL, 0x1e65db58UL,
- 0xdf049188UL, 0x42d6a2f7UL, 0x34e4cd59UL, 0x6290ff59UL, 0xbcd405d9UL, 0x45c81528UL, 0x4e05a2baUL, 0xfafc0484UL,
- 0x482a58faUL, 0xb048dc64UL, 0x3c8ef04cUL, 0xa2282927UL, 0x82788ed1UL, 0x86e27d86UL, 0x77d374cdUL, 0x2b339819UL,
- 0x9ff8e59aUL, 0xbfdcc614UL, 0xffde985cUL, 0xc939f12fUL, 0x8cbc1084UL, 0x5f44f893UL, 0x14f5efcUL, 0x79a52e63UL,
- 0x4931e60aUL, 0x5f1c78f6UL, 0xbbd5bab8UL, 0xd9e8dbd6UL, 0x4e25978aUL, 0x542bae74UL, 0xf2b03b0aUL, 0x289d5ef9UL,
- 0xdf282d9dUL, 0x237870a3UL, 0x5417951bUL, 0x9d884d78UL, 0x91494443UL, 0xbf7c109fUL, 0x8fd2e241UL, 0xfb311e2aUL,
- 0xfeafa1cdUL, 0x6123a5bcUL, 0xa9494e00UL, 0x179df607UL, 0xbd24ebddUL, 0x3e0f4c84UL, 0x435c6b43UL, 0xee911e6bUL,
- 0x3a157c25UL, 0x951b63fbUL, 0xb00790d7UL, 0xcc931defUL, 0x6bbf9b46UL, 0x7fa115dcUL, 0x5dedbb6fUL, 0x8b18ba44UL,
- 0xa7e614a6UL, 0x1cb6c8a2UL, 0x10e32c04UL, 0x2b4b3f95UL, 0x30eaaa8cUL, 0x8af2af56UL, 0x1f8cee17UL, 0x33ec971UL,
- 0x628c84d6UL, 0xbd48833dUL, 0x66198bbeUL, 0x33164d0aUL, 0x37fedaf5UL, 0x9c3f7c6bUL, 0xcbc3da2UL, 0xacfefff5UL,
- 0x771292b6UL, 0x9991341UL, 0x5d6ff030UL, 0xbf6eff1dUL, 0x744e56edUL, 0xb6943e11UL, 0xc5df0c9aUL, 0xec8684edUL,
- 0x7059455eUL, 0xb6367634UL, 0xa43b667aUL, 0x36292245UL, 0xc03990b9UL, 0xcac3d08aUL, 0xbcd1caa8UL, 0x3cc088aeUL,
- 0xb85da2b6UL, 0x8b340d06UL, 0xfbe3ede5UL, 0x6a0a45e1UL, 0x6345a7a0UL, 0x77604254UL, 0x7e25e1c5UL, 0x3ead9cf7UL,
- 0x51788049UL, 0x18c7e177UL, 0xd5d1079fUL, 0xad29b7b1UL, 0x2af18da1UL, 0x39ac1e49UL, 0x7ff7dc80UL, 0xf2be8273UL,
- 0x115e74d8UL, 0x85d0855bUL, 0xbbe99701UL, 0xaaf005b7UL, 0x61783238UL, 0x6f363717UL, 0xf4418681UL, 0x7510cddbUL,
- 0xa69457bdUL, 0xddd3d08fUL, 0x691b8063UL, 0x45e71a52UL, 0xe9f18809UL, 0xa17c3b3UL, 0xde679431UL, 0x5314846UL,
- 0xf343d782UL, 0x33ac92e5UL, 0xf4509ee8UL, 0xe7d2da12UL, 0x368b114bUL, 0x3f574c7aUL, 0x3a624566UL, 0xd6d819dUL,
- 0xc7f4a96cUL, 0xb523ddeeUL, 0x58ed0e16UL, 0x47c37910UL, 0xc93ae8a4UL, 0x448ae36UL, 0xb4375e6fUL, 0x7feeeb29UL,
- 0xb0e21e73UL, 0x864591c7UL, 0xdf7a6a77UL, 0x8c062f29UL, 0x6afd0ff4UL, 0xa5583a56UL, 0x9d6d19a7UL, 0xc5e65552UL,
- 0x3a38e263UL, 0xa82ec65cUL, 0xf4d10c52UL, 0xe8bd8838UL, 0xe462f751UL, 0x34c9eac7UL, 0x57c49d13UL, 0xf2afbe33UL,
- 0xab5382c6UL, 0xce12313bUL, 0x9e21e275UL, 0x86cc86a1UL, 0x231b1208UL, 0x744b0d20UL, 0xf448f722UL, 0x5eaa0fa5UL,
- 0x88176363UL, 0xe49e0b18UL, 0xf1bd2e65UL, 0xf224ca72UL, 0xfa06a807UL, 0xf4c7b4c2UL, 0xee3f46caUL, 0xf1c643c2UL,
- 0x3c582a83UL, 0x5869ee59UL, 0x8145ee7fUL, 0x2ed4f6f3UL, 0x41dd8e4fUL, 0x62ea309fUL, 0xfa59d108UL, 0x6cdaae7fUL,
- 0xc027e36bUL, 0xb4047e21UL, 0x30d60439UL, 0x2e6bfcd5UL, 0x435d04c2UL, 0x4a31ff3cUL, 0x20442679UL, 0xf28741d1UL,
- 0x4408ddcaUL, 0xd2af2deaUL, 0x83a6eae8UL, 0xb0aa0295UL, 0xdfdfe874UL, 0xa4cc9f40UL, 0x49008128UL, 0x1fdb3cbdUL,
- 0xf2c4d177UL, 0xd323bf94UL, 0x1f01a1ffUL, 0x82c7a6eeUL, 0x7b39cb6dUL, 0x9fb6375cUL, 0x56f4fa9eUL, 0xa24168cUL,
- 0x4a7f8f56UL, 0xa4778b36UL, 0xaf3040cdUL, 0x12708b47UL, 0xac7e52a2UL, 0x5ab7a26cUL, 0xa9baa456UL, 0x9ec96bc8UL,
- 0x7745265cUL, 0x79ca9e91UL, 0xa9fd05bdUL, 0xa65a12c4UL, 0x56ba177aUL, 0x6976e0efUL, 0xc28813dfUL, 0x61fd9d74UL,
- 0xf4e5419UL, 0x10fe183eUL, 0x90f761dcUL, 0x5da5f5dUL, 0x6a637cdeUL, 0x9cc3ceffUL, 0x193958f0UL, 0x5516cf21UL,
- 0x167ba0f0UL, 0xad733b75UL, 0xfcf96d1bUL, 0x3780cfffUL, 0x249cfc14UL, 0xc04df343UL, 0x27eca724UL, 0x1609fa22UL,
- 0xc6b00ddaUL, 0xf4058c1bUL, 0x8da6c3eaUL, 0xd1fd7097UL, 0x26c95be4UL, 0x81569a5fUL, 0xd3e3eae9UL, 0x259bb5c5UL,
- 0x82f76b70UL, 0x88dfd0f7UL, 0x538babc6UL, 0x25e9a0f8UL, 0xc5750adaUL, 0x931fb7f4UL, 0x5cbd93deUL, 0x475268UL,
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x36fde350UL, 0x1d62debeUL, 0x475a89d3UL, 0x5073f2cdUL, 0x7ff5a51eUL, 0x4efecd6UL, 0x6b04e96aUL, 0x2e090656UL,
- 0x15a93a95UL, 0xebf7691cUL, 0x7986c246UL, 0x3f509d46UL, 0x6a452af2UL, 0xa06adef2UL, 0x8ea771c6UL, 0x39e72feeUL,
- 0xcef5a059UL, 0x4938b1dUL, 0xc2e8410fUL, 0x77979b83UL, 0x297cedb4UL, 0x47834657UL, 0xa0245161UL, 0x807c48cdUL,
- 0x7478859bUL, 0x22ad4674UL, 0xf6eb83ebUL, 0x736e4fbUL, 0x47e10b8bUL, 0x9e519a3dUL, 0xfb33c1a8UL, 0xaf3b04aaUL,
- 0xc366bba4UL, 0xada2695dUL, 0xb9f8cbf2UL, 0x64a85fd0UL, 0xbde9a5c6UL, 0xb373b06UL, 0x691fbda1UL, 0x83dac07UL,
- 0x1c24f6cbUL, 0x195af810UL, 0xc7bc5b1bUL, 0x3a91ceffUL, 0xe06c1163UL, 0x12d2ec3cUL, 0xde7a782dUL, 0x37b2f666UL,
- 0xedb78c96UL, 0x870e8d95UL, 0xfc0041fcUL, 0xfc86a84dUL, 0xf943376aUL, 0xa510ce6UL, 0x69b08fc2UL, 0xd6e70294UL,
- 0x36385c4aUL, 0xf683d07eUL, 0x107c6fcaUL, 0x5e3e25a9UL, 0x9b40f07dUL, 0x9a818019UL, 0x17eef59UL, 0x763acbdeUL,
- 0x99b8fba7UL, 0xbc6ae225UL, 0x1477f8d9UL, 0xc44023f1UL, 0xb5ab4f9dUL, 0x72819508UL, 0x6e0274cUL, 0x21347b6UL,
- 0x610816a7UL, 0x6b12529eUL, 0x5044e5e9UL, 0x938586eUL, 0x6984c697UL, 0x82306617UL, 0xefd46b5eUL, 0xa7f517d4UL,
- 0xf01972cUL, 0x9d3cc352UL, 0xf9da0730UL, 0xd79e1981UL, 0xb31939c1UL, 0xfa6b5602UL, 0x29e52ff0UL, 0x14ba769eUL,
- 0xef2200f6UL, 0xb562b42dUL, 0xf29cdedUL, 0xa252aff0UL, 0xa4c6b26cUL, 0x38228011UL, 0x633d3b0dUL, 0x478c154bUL,
- 0x5e80be63UL, 0xf2f7b367UL, 0x4ba3c31aUL, 0x73a28e86UL, 0xafe86dbeUL, 0x32351d82UL, 0xe911077eUL, 0x1ae205a3UL,
- 0x541bdcdfUL, 0x93c6c2ddUL, 0x4c110d4UL, 0x2cdd9066UL, 0x7bb54f1eUL, 0x50e5b505UL, 0xb6e9a412UL, 0x244c5827UL,
- 0x49eab95aUL, 0x3dd8af31UL, 0xd2940385UL, 0x7122eac6UL, 0xa7844d63UL, 0x9f98509eUL, 0x8c51ddfUL, 0xf62af1cUL,
- 0xa6256c49UL, 0xfd445e06UL, 0xd6bd49b8UL, 0xf36993bcUL, 0xe4b6cec4UL, 0xbe6e780dUL, 0x9c754871UL, 0x4e9f358fUL,
- 0x8414c34fUL, 0x65fdbda9UL, 0x5f3e8df1UL, 0x72c8d455UL, 0x697186ddUL, 0x5f571cd1UL, 0x43b8391bUL, 0xf3c96ac1UL,
- 0x2c1ea0e3UL, 0x2cf522d0UL, 0x804f8b32UL, 0x5eaa94e3UL, 0x85c6946aUL, 0x42e9f97eUL, 0x593db999UL, 0x67b3fb75UL,
- 0x4e96a978UL, 0xe5d2095eUL, 0x64031240UL, 0xfc509c0aUL, 0x412570afUL, 0x377b3714UL, 0x699b220UL, 0x45c53acdUL,
- 0xa3fac915UL, 0x330e249fUL, 0x91ad0883UL, 0x4ccbd5aeUL, 0x202374c0UL, 0xd25cc374UL, 0x3c57934dUL, 0x138b085fUL,
- 0xfe08fd08UL, 0x97d62a8cUL, 0xd3de9b37UL, 0x9fd665eUL, 0xc24cdf5aUL, 0xe1cec330UL, 0xffd695d8UL, 0x61a4248bUL,
- 0xb76d143aUL, 0xdf37ff52UL, 0xb162df45UL, 0xdc58d12eUL, 0x548ddc21UL, 0xebf85d44UL, 0xcb4f56aeUL, 0x23dd7aUL,
- 0x242b0f1fUL, 0xd46f595fUL, 0xb1b03c46UL, 0xbd486922UL, 0x6e017502UL, 0x728d6ff7UL, 0x67ba71ceUL, 0x3bbc3b44UL,
- 0x8fabaebcUL, 0xce85ab3cUL, 0xb21efee0UL, 0x18076e33UL, 0x4b53b1dfUL, 0x5c395d8cUL, 0x7ff81c6fUL, 0x269657e6UL,
- 0x96b34b4cUL, 0x9e70a323UL, 0x88a12c0UL, 0xeff366edUL, 0x2ef45043UL, 0xa8fc80a1UL, 0xeddafdf6UL, 0x72858f34UL,
- 0x6eaa3547UL, 0x62480affUL, 0x959b6476UL, 0xc02f161cUL, 0xd6c25236UL, 0xfd354bbaUL, 0xae4b6456UL, 0x9b368eb1UL,
- 0xe4cd0608UL, 0x8e2f8708UL, 0xb7ce1ae8UL, 0x14cc0358UL, 0xaa21b493UL, 0x6dcdf4e1UL, 0x9b0a33baUL, 0xdaf232ffUL,
- 0xf7a378f6UL, 0x1157aa4cUL, 0xf54674e5UL, 0x57a9c2bdUL, 0x20f6bd0aUL, 0x6e1f89f9UL, 0xbfef6543UL, 0xd29e7ac4UL,
- 0x255b06acUL, 0x8f83faabUL, 0xfdee85b4UL, 0x96e24d28UL, 0x93367967UL, 0x78c7342eUL, 0xd48ac8b7UL, 0x9d8bd952UL,
- 0xbc1a6fa5UL, 0x9fa844eUL, 0x6e79902bUL, 0xe780d228UL, 0x19ad932UL, 0x9a60b2f1UL, 0x7bda1f2cUL, 0x71cc048UL,
- 0xda794442UL, 0x888e3b99UL, 0x5563d722UL, 0x2804fa11UL, 0x4b7697a7UL, 0xd619d810UL, 0xde3a7b41UL, 0x98322739UL,
- 0xe0663659UL, 0x166941aUL, 0xde26bab0UL, 0xc93ed6ccUL, 0xd6536521UL, 0x39c7a8dfUL, 0x44ecb164UL, 0x300793d0UL,
- 0xe53a3fdeUL, 0x1c966583UL, 0x308f46e5UL, 0x32003f68UL, 0x57f035dbUL, 0xf36a79dfUL, 0xc65a4d10UL, 0xc957fe47UL,
- 0x274e3585UL, 0xd879d46cUL, 0x842e76acUL, 0xe9e86f32UL, 0x648e6bc2UL, 0xcec518d7UL, 0xf69b1968UL, 0x41356f7UL,
- 0xcdb544UL, 0xee2b81c3UL, 0xd3f0c8ccUL, 0xc6935abbUL, 0x34fc0205UL, 0xc65e1f70UL, 0xea5dd9efUL, 0xd836e975UL,
- 0x20ab1f08UL, 0xef8824a7UL, 0x6fd3470dUL, 0xfbec080dUL, 0x1909ad42UL, 0x1378dcd7UL, 0xf64ace72UL, 0x35f469ccUL,
- 0x352ec5c1UL, 0x8abf7bceUL, 0xb7397a1fUL, 0xb0aec3ebUL, 0xeaacc683UL, 0xcf362043UL, 0xe678c14UL, 0x5e2bfebaUL,
- 0xde8f3c68UL, 0x70e4572eUL, 0xf2d20282UL, 0xa5cad44cUL, 0x250dc3baUL, 0xe215759eUL, 0xec69ccf0UL, 0x89dd7c43UL,
- 0xd2953b6aUL, 0x10d0c73aUL, 0x3b2ad66aUL, 0x6c582d48UL, 0x38e050f9UL, 0x9db16c97UL, 0xd23d26c8UL, 0x2ef9dbf7UL,
- 0x5a611836UL, 0xde38ccaeUL, 0x4eb26b73UL, 0x30e84526UL, 0xeae09554UL, 0x769cd30eUL, 0xc38aeb29UL, 0x242f6dc4UL,
- 0xdfd18624UL, 0x25e8ae7aUL, 0x6ab50a96UL, 0xa2b88c9aUL, 0x9f6c19b8UL, 0x37e19f60UL, 0x2828d0baUL, 0x80b50ec9UL,
- 0x8a021cd3UL, 0xf3f80809UL, 0xf4887674UL, 0x33dec823UL, 0x1b3157b0UL, 0xd399931cUL, 0x25270702UL, 0x19c81edeUL,
- 0xf386597aUL, 0x43654f0aUL, 0x1478886bUL, 0xf43f6211UL, 0x9439a80UL, 0x626327bUL, 0x99ebbb1eUL, 0x7dd96e96UL,
- 0x6938e247UL, 0x392053f2UL, 0xfd7a0e6dUL, 0x709e2330UL, 0x255e89aUL, 0xec8badcaUL, 0xaf92fe3fUL, 0x2fb8df74UL,
- 0xe8ab821UL, 0xc5530495UL, 0xcce6fb00UL, 0x47f07d94UL, 0xc5eeb7e2UL, 0x5445d467UL, 0x5a813fe1UL, 0x866759edUL,
- 0xa2034740UL, 0x4816c63dUL, 0xf3e7c1aUL, 0x4d379f8eUL, 0x7768af27UL, 0x59e2d6aeUL, 0xa5c3bfbcUL, 0x22160888UL,
- 0x48bcf8b9UL, 0xf9346ac6UL, 0xe161e554UL, 0x960c1ca1UL, 0xa76a7697UL, 0x961edb72UL, 0x22cd658bUL, 0x29330212UL,
- 0x520d676UL, 0xa3d77a2UL, 0x7847d9e8UL, 0x849303bUL, 0x429b33a3UL, 0x23a3e77aUL, 0xbaa27ca1UL, 0x252a72cfUL,
- 0x9036fc2cUL, 0x6b972c86UL, 0x1c9d0c5dUL, 0x586c299cUL, 0xcb1f251eUL, 0xe9be67b2UL, 0x7dddecb1UL, 0x478a451eUL,
- 0x55a35629UL, 0xdd186406UL, 0xb7c8f90UL, 0xa53023b4UL, 0xc570afe6UL, 0xf4b6538eUL, 0xa87a67e5UL, 0xc7b6fdb5UL,
- 0x1249ce15UL, 0xc47a5849UL, 0x4cf6ed34UL, 0x5d2ab9ceUL, 0x257bec4bUL, 0x94171af2UL, 0xd936a0c5UL, 0x15e846c0UL,
- 0x6334d775UL, 0xb230f9e1UL, 0xa70c20e8UL, 0x81500d4aUL, 0x97c9875eUL, 0x922bddb1UL, 0x108af1c6UL, 0x3f6310fdUL,
- 0x33df40c1UL, 0xb3277463UL, 0x6ef1e9b3UL, 0x45564efaUL, 0x9f87fc4eUL, 0x39e650aeUL, 0xe8f150e4UL, 0xf788265eUL,
- 0xd992a5f3UL, 0x5db325ddUL, 0xa9639a0UL, 0x7115d3faUL, 0xd39ff2ffUL, 0x62632dcbUL, 0x8b5a3cbUL, 0x374ef212UL,
- 0x2e6c5f02UL, 0x5c64d6f1UL, 0x368843d9UL, 0xbd47da3eUL, 0x4b89e34aUL, 0xfaf66dd6UL, 0xc70ca18cUL, 0x7ce49e06UL,
- 0xffef7751UL, 0x840fd321UL, 0x95708df1UL, 0x41c36ec9UL, 0x3da83b4cUL, 0xbd4aa48bUL, 0xe9fa1b6bUL, 0x6e3c7986UL,
- 0xd7c35ce5UL, 0x16b5d109UL, 0x7868f750UL, 0xce435750UL, 0x76f36159UL, 0xa983d5fcUL, 0xdc3bac9dUL, 0x3549d9UL,
- 0x7bf70a6cUL, 0xa6c409e5UL, 0xa087eceaUL, 0x27f52275UL, 0xc14adaedUL, 0x62b5ae69UL, 0x87750605UL, 0x969e4535UL,
- 0xb2c2ee7cUL, 0x5a389f44UL, 0x570b5aecUL, 0xdc4e50c8UL, 0xed02b73bUL, 0x27ecc914UL, 0x60e5f1d6UL, 0xe148aa00UL,
- 0x33379b1cUL, 0xf02c7d02UL, 0x7a325087UL, 0x6ef28ae5UL, 0x1146041bUL, 0x51f0b200UL, 0x654d76cfUL, 0xff699f4cUL,
- 0x6cb6b7bfUL, 0xa4e11157UL, 0x330b19ffUL, 0x9c637c95UL, 0x8b2fe981UL, 0x9e526eb1UL, 0x5c1cad7fUL, 0x5eeba741UL,
- 0x9d796c50UL, 0xb654318dUL, 0x57fab2beUL, 0x1cffd4dfUL, 0xc98901ffUL, 0xda579b66UL, 0xeb582430UL, 0xaea7033fUL,
- 0x611d1f72UL, 0xa08399c7UL, 0x979fd594UL, 0x31e010b2UL, 0xe19647b3UL, 0x4b3437feUL, 0xda1f257eUL, 0xee62d0d9UL,
- 0x223dc7dbUL, 0x71c116adUL, 0x48cbd6f6UL, 0xfc20a0aeUL, 0xe8845936UL, 0xb1d46ac4UL, 0xaaec16fcUL, 0x2b1ecf8bUL,
- 0x8bee85a1UL, 0x41bec632UL, 0x262288ffUL, 0x6dc89fc2UL, 0xfbaa5ea7UL, 0x942ffc70UL, 0x74d5e353UL, 0xb9f1e6e2UL,
- 0x19b777c7UL, 0x7f0f6ce3UL, 0xc13e6e22UL, 0xfe1327feUL, 0xf3f6b277UL, 0x6c8165c2UL, 0xf14bb23fUL, 0x81dc29f2UL,
- 0x37ee5d49UL, 0x62ee90a2UL, 0xf1839a11UL, 0x3b095fa7UL, 0xfa2789ffUL, 0x58b944e3UL, 0xde4e4886UL, 0x4cf33b9cUL,
- 0x8dddfb64UL, 0xc0459253UL, 0xe62fec96UL, 0xbd8b6021UL, 0x75110565UL, 0x3ea4b01bUL, 0xf9361c38UL, 0xc4828711UL,
- 0x9fec5f2dUL, 0x95b35c57UL, 0x80c44b49UL, 0x9a66af37UL, 0x48ecddbeUL, 0x711f7107UL, 0x38fd6f68UL, 0x83cbfb49UL,
- 0x71316188UL, 0x88b97649UL, 0xa4368ee4UL, 0xba484f38UL, 0xfdb676a0UL, 0xe7b560a2UL, 0x229c6385UL, 0x5f52f6c5UL,
- 0xeee8e9d6UL, 0xca54684cUL, 0xd8336c67UL, 0x2bc2b289UL, 0x9550ededUL, 0x7be4a3e3UL, 0x90de4d15UL, 0xe98db452UL,
- 0x5aa1cf50UL, 0xb53e0506UL, 0xbbb9ee5fUL, 0xca030f74UL, 0xe8268b7bUL, 0x115ed569UL, 0xfd51da5cUL, 0xafb0d229UL,
- 0x763152baUL, 0x77fc29a5UL, 0x9d617964UL, 0x757e502cUL, 0x22f1c0bbUL, 0x6ea07e34UL, 0xeddb0233UL, 0x2aa5d812UL,
- 0x677ebe30UL, 0x887880fdUL, 0xa7913100UL, 0x37442592UL, 0x9bba27c9UL, 0x1b9bfa3cUL, 0xc9ed7787UL, 0xd0f4ab7cUL,
- 0x8b441ad8UL, 0x23a467f6UL, 0xc28d4493UL, 0xd45859e8UL, 0x506bea86UL, 0x69398f05UL, 0xedf58b4dUL, 0xee4e794dUL,
- 0x66dc9f6aUL, 0xdf5a17bcUL, 0x34d5d7fbUL, 0x407e176fUL, 0x934319a0UL, 0xf30f96a7UL, 0xa4423286UL, 0x9866cf03UL,
- 0xdf46105fUL, 0x6b088722UL, 0x5c46e623UL, 0xb76c6cd2UL, 0x2921adc1UL, 0x4d82d671UL, 0x8b3ead52UL, 0xa707c8c3UL,
- 0x2dbbd1cdUL, 0x1fc32e6aUL, 0x5d46614dUL, 0xe1c01b59UL, 0x8340ee6bUL, 0xbd84596bUL, 0x9412be49UL, 0xab6063d4UL,
- 0x16f0fd37UL, 0xbae67d78UL, 0xf3cdfd6bUL, 0x3ebc5e86UL, 0xded3027cUL, 0x6cd3fecfUL, 0xc2bc659aUL, 0x5283a5c5UL,
- 0x787ffc23UL, 0x4457b186UL, 0xc7d97257UL, 0x96df4f84UL, 0xa7abc3b6UL, 0x642b23efUL, 0xc5eb99ebUL, 0x449c48bUL,
- 0xf23cf7f0UL, 0x1145e5f6UL, 0x6d938e5bUL, 0x8342862fUL, 0x27a6731eUL, 0x1b99116UL, 0x85996ea4UL, 0x3c29b8ebUL,
- 0xbf5a3e54UL, 0xed8528e5UL, 0x630f2cd3UL, 0x243d5d34UL, 0x8efa764dUL, 0xb011832dUL, 0x5cd04a4dUL, 0xb74401c1UL,
- 0x57aeee47UL, 0xbf69150UL, 0x3ef345f8UL, 0x671bae14UL, 0x68696726UL, 0x3d27fe84UL, 0xf1fff006UL, 0x66085772UL,
- 0x70b011f4UL, 0xeddc134fUL, 0xd9e565c0UL, 0x2becbe4fUL, 0xd3585d7cUL, 0xaede1399UL, 0xa89ed49UL, 0x348c7997UL,
- 0xcd93a81aUL, 0xf21e49a8UL, 0x9210fd20UL, 0xc35cdf14UL, 0x8a2db79fUL, 0x350f4abcUL, 0x18ab1cbaUL, 0x20c895a3UL,
- 0x98cdfad3UL, 0x8e45fa2cUL, 0xf66d6eb2UL, 0x9e5795d2UL, 0xe71421a6UL, 0x72537a60UL, 0x2b1486c7UL, 0x74d21c78UL,
- 0x7e641999UL, 0x7ef6b647UL, 0x6d6a6b1cUL, 0x78112bc2UL, 0x2895770fUL, 0x96f7645eUL, 0x4e0c8628UL, 0xbbfca74bUL,
- 0xd1dc8e2eUL, 0xc7238a36UL, 0x5d4259a2UL, 0xba77937cUL, 0xcc4d63f4UL, 0xcccde4e6UL, 0xaa95d43UL, 0x27d2816UL,
- 0xe58f2d07UL, 0x52de3061UL, 0xff4de8c1UL, 0xe799ca9bUL, 0x49391648UL, 0xf26e10bbUL, 0x2f6cdb86UL, 0xd729d5c5UL,
- 0x92b558d5UL, 0x7606f4e8UL, 0xb38c0a9cUL, 0x9871c5ecUL, 0xd120d16bUL, 0xd9259d64UL, 0x651f2e90UL, 0x2f6a5b9dUL,
- 0x5805ebe6UL, 0x31186ae3UL, 0xbf71ebaeUL, 0x9c01f78fUL, 0xb6a0ec23UL, 0x5ce95e72UL, 0x53b49be8UL, 0x170a7c68UL,
- 0xf3730b74UL, 0x6aee582cUL, 0xe32f1b6aUL, 0x3eb9b89dUL, 0xe77140fdUL, 0xbbb1130bUL, 0x3a9568ccUL, 0x15a817a1UL,
- 0x329c9670UL, 0x29bf9693UL, 0x370a901cUL, 0x50400793UL, 0x6702c764UL, 0x6ed9bce8UL, 0x3fa39db9UL, 0xd32c71f1UL,
- 0xcc0b3257UL, 0xb9bb1d8fUL, 0xbab8a979UL, 0xd645303fUL, 0x5ea67b01UL, 0xe83ab9bfUL, 0xc40090beUL, 0xd13cf9dfUL,
- 0xe480ea25UL, 0x87495f30UL, 0xf27a0cf0UL, 0xc00b5ed9UL, 0xcbd9be82UL, 0xf6f8d03UL, 0x1a323834UL, 0x1ce625acUL,
- 0x8df23b9cUL, 0x595e71ebUL, 0x6a273277UL, 0x4bf8f837UL, 0x7bc96850UL, 0xb020e03cUL, 0x732d2ffUL, 0xabda005eUL,
- 0xc9b035bUL, 0x962c79bdUL, 0xf1015fddUL, 0xa33715ddUL, 0xd88f6d59UL, 0xfed0f2e4UL, 0x711c72fcUL, 0x9d0a936dUL,
- 0x3a32b997UL, 0xa6dd6e06UL, 0xaed65503UL, 0x803bd4a8UL, 0xfc85b0e2UL, 0x205c1ae9UL, 0xfb92fda6UL, 0xd34b49eUL,
- 0x83063ffUL, 0x1095e47eUL, 0xb0194402UL, 0x69bdd68UL, 0x82527461UL, 0xdf8747a1UL, 0x3a2cf0b8UL, 0xcd7247b3UL,
- 0xb93c45c8UL, 0x7ec68f94UL, 0x1966a5f9UL, 0xe12337c1UL, 0xd7300bf0UL, 0xebe9173eUL, 0xcfe53e45UL, 0x5130be75UL,
- 0x8c241973UL, 0xa55eee5aUL, 0x7b41758fUL, 0xaeb09d4bUL, 0x252ed708UL, 0x85739394UL, 0xc699c2edUL, 0x25f363e2UL,
- 0x701e4b0eUL, 0x4f63ca35UL, 0xf7e3200bUL, 0x4826e4bUL, 0x84a9f45eUL, 0x572f49c4UL, 0xd52fce0fUL, 0x3dad1a0aUL,
- 0x5a4da88dUL, 0x7969f606UL, 0xed5a5d1UL, 0x172dcd1bUL, 0xa0b1a979UL, 0xef1ac6bdUL, 0xd72c1c5cUL, 0xd027efdcUL,
- 0xaf16cd37UL, 0xec99777fUL, 0xa827733dUL, 0x1589b0e7UL, 0x4c5f1c7bUL, 0xcffbf14aUL, 0xd0bc5012UL, 0xd6dc5622UL,
- 0xf9cf8c04UL, 0x858b1ae7UL, 0x82ddf18dUL, 0x31f24c81UL, 0x1af4f11bUL, 0x122d12b7UL, 0xa8708b7aUL, 0xe4dffbd6UL,
- 0xc90a583cUL, 0x7ddb6722UL, 0x8d6a516fUL, 0xacf1e21fUL, 0x9f280144UL, 0xc3c1d5d4UL, 0x7ccdd4faUL, 0xcae38b0dUL,
- 0xadbe795eUL, 0xd3f050c4UL, 0xf706955fUL, 0x96dacb50UL, 0x103c05d6UL, 0x4abe0006UL, 0xdb879552UL, 0xc3a919deUL,
- 0x7cf8ffddUL, 0xdca1cfadUL, 0x9dd938dcUL, 0x6421ede3UL, 0xa0bf7c8bUL, 0xcfd3de74UL, 0xbb56a833UL, 0x22709658UL,
- 0x41e34195UL, 0x83fbdcaaUL, 0x313d7721UL, 0xe5a9005bUL, 0x9b2f0a88UL, 0xb1b8a60bUL, 0x4b1859a7UL, 0x30649902UL,
- 0x250aaecfUL, 0xe7fbd9bbUL, 0x12c8da9cUL, 0xc1a63c6aUL, 0x2e34cabcUL, 0x2a2280fdUL, 0x89193cf4UL, 0xe078dcd8UL,
- 0x78aa8de4UL, 0xe19f4704UL, 0x4972799UL, 0x96c38e25UL, 0x83aca962UL, 0x7ac62b7dUL, 0x4433b83bUL, 0x1709daeUL,
- 0xfb3f601cUL, 0xa2f81a0cUL, 0xaca7f43bUL, 0x11da43a2UL, 0x9d9380a0UL, 0x285247a0UL, 0xf8533edcUL, 0xccf91b97UL,
- 0xcc0777efUL, 0x8c723d80UL, 0x8c175396UL, 0x9643f79cUL, 0xd1d85534UL, 0x8e63212dUL, 0xfcd976a5UL, 0xab9ba44fUL,
- 0xcd8c12feUL, 0x8eb7f612UL, 0xd69e8ecbUL, 0x1f22a2e5UL, 0x554f06e5UL, 0x421ad06UL, 0x30428efdUL, 0xb0c26494UL,
- 0xe40f0d2dUL, 0xb08ae4e9UL, 0x49e335d0UL, 0xf35c21edUL, 0xa8ee02eeUL, 0xf295e325UL, 0xebb216c3UL, 0xcf4df981UL,
- 0x1ed93808UL, 0x4ceee591UL, 0x60cec8cUL, 0xa78a3e07UL, 0x749e6cc9UL, 0x20fc3260UL, 0x8466b867UL, 0xd369928cUL,
- 0x24a67941UL, 0x851c4fcUL, 0x648fc9eUL, 0x82d8e7UL, 0x8875d050UL, 0x3efb5a97UL, 0xe9365f8bUL, 0x567530a8UL,
- 0xb5105d96UL, 0xbc300883UL, 0xf59e1b19UL, 0x2870861bUL, 0x35b76021UL, 0x71f3a324UL, 0xca63523bUL, 0x166d735UL,
- 0x712cf3d5UL, 0xfe0d8535UL, 0xfef0521dUL, 0x7ed084eaUL, 0x85c90242UL, 0x90d8a804UL, 0x6f34b2e1UL, 0x3c0655aaUL,
- 0x25b720d2UL, 0xb1223c2eUL, 0x92a99300UL, 0xcfe475daUL, 0xc6baa30fUL, 0x9d72ad19UL, 0xe7b30e72UL, 0xc806625bUL,
- 0xd3224f43UL, 0xee6cffb7UL, 0xf761f5aUL, 0x68ddb251UL, 0xecdf718cUL, 0xe943660dUL, 0x19e75aa4UL, 0x15aa6880UL,
- 0x819d6dedUL, 0x68cff2a2UL, 0xde368c36UL, 0x8503c04UL, 0x33cebc21UL, 0x80a82367UL, 0xc7f0986UL, 0xa2a464beUL,
- 0xc4ad4909UL, 0xf1078d6dUL, 0xec908e74UL, 0x9e697a91UL, 0x54a222f9UL, 0xe8a29c40UL, 0x89a72534UL, 0x1f5c46ddUL,
- 0xb9b93214UL, 0xfbe3ef56UL, 0x73cb36e6UL, 0xe9fb60f6UL, 0xa763d6daUL, 0xe1a3341eUL, 0xcaa78bacUL, 0x29237861UL,
- 0xde24c262UL, 0x915a529aUL, 0x96e71f3fUL, 0xb6d73e25UL, 0xb353d726UL, 0x162e796eUL, 0x70f8bf86UL, 0xa8293b3dUL,
- 0x83fe1eafUL, 0x2c4e07f4UL, 0x48902722UL, 0x9a63e21bUL, 0xc834df1dUL, 0xc56e45c8UL, 0xa5bd525cUL, 0xe3e6ef04UL,
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x6ae15bbfUL, 0xcf66e646UL, 0xd1f11498UL, 0x5a618993UL, 0xc9dfe68bUL, 0x7a123731UL, 0x4ea775b0UL, 0x6bff1cd7UL,
- 0xf22503feUL, 0xa96ba677UL, 0xf7335a44UL, 0xf547b99aUL, 0x14aded78UL, 0xc428d105UL, 0xee8f6598UL, 0x4f93608UL,
- 0xf88dfe0cUL, 0x615ae6f4UL, 0x141a2e57UL, 0x4cc0f5e3UL, 0x4801b8f4UL, 0x15d80861UL, 0x5d11ac27UL, 0x5d30177bUL,
- 0x4a0a918aUL, 0x4ac8840dUL, 0xe5328a23UL, 0x754f6435UL, 0x1abff225UL, 0x3ba6951eUL, 0x99a13ab5UL, 0x94f4440bUL,
- 0x702641bdUL, 0x7ce06cbdUL, 0xbc5f789cUL, 0x6d61ded5UL, 0x6e5bf39eUL, 0xc11e4f48UL, 0x575f27d5UL, 0x932c4d59UL,
- 0x9e0409e7UL, 0x2baf828dUL, 0xbec3c4c2UL, 0x32e61bbfUL, 0xff18ba90UL, 0x18077144UL, 0xf49d939aUL, 0x4d52abd4UL,
- 0x8966ba1UL, 0xf76f292eUL, 0x2a1d44aaUL, 0xd38162f2UL, 0xdf3f5a37UL, 0xb6a4add1UL, 0x4f960512UL, 0x4d01f4e1UL,
- 0x1223d13aUL, 0x89cbe345UL, 0x121f814bUL, 0xc0fb5b6bUL, 0xc6893412UL, 0x6eedbc7dUL, 0x29fbca28UL, 0xed54c621UL,
- 0x6ae6ecfaUL, 0xf46c3fbaUL, 0xea719dafUL, 0x42733fd0UL, 0xcf050524UL, 0xc8c4b3UL, 0x3075bcafUL, 0xc387573bUL,
- 0x74ce0b01UL, 0x97002809UL, 0xcb6673dUL, 0xa11261f5UL, 0x843d9067UL, 0xe35e5162UL, 0x18bc021bUL, 0x8502f8ffUL,
- 0xe6f429c5UL, 0x2aa18b10UL, 0x685f5b1cUL, 0xea2d8042UL, 0x3983b8f2UL, 0x757ce2a0UL, 0x835f56f3UL, 0x1502a560UL,
- 0xd42bd37fUL, 0x91afe2eeUL, 0x673f19a8UL, 0x683bfd6dUL, 0xa8a21a72UL, 0x939eab09UL, 0xc75fda02UL, 0x6d867478UL,
- 0xffa32a75UL, 0x124a0d0aUL, 0xb2c166d6UL, 0x1f52564dUL, 0x603064e5UL, 0xa11bffe4UL, 0x9edf2be6UL, 0xdb4f4UL,
- 0x1c4f8d13UL, 0x53080e72UL, 0x16c21f30UL, 0x8b031c9fUL, 0xf487b471UL, 0xb2dcbe15UL, 0xab4f2955UL, 0x2d138332UL,
- 0x4479045aUL, 0x1f1ea2bcUL, 0x7d492d58UL, 0xce4b5dddUL, 0xb6592d0dUL, 0xd2a9c4b8UL, 0x7a770a59UL, 0xae6e38e0UL,
- 0x7be26d63UL, 0xcb7f0b33UL, 0x30e5bafaUL, 0xaef5469aUL, 0x8fad1384UL, 0xaf14d32UL, 0x29c36b88UL, 0xa0d8e597UL,
- 0xebc93167UL, 0x5af62020UL, 0x9e2b5b00UL, 0xf5f88521UL, 0xf066e8edUL, 0xa867c3efUL, 0x4e1304b4UL, 0x6ef4c813UL,
- 0x2f7e1b98UL, 0x4ed0a95eUL, 0x8224d4cfUL, 0x6e24c1b1UL, 0xa60000aUL, 0x468d9d15UL, 0x17d848a2UL, 0x8709fa5eUL,
- 0x922b5275UL, 0x9344fa58UL, 0xbd3d851bUL, 0x8cbf2b1fUL, 0xb2f4f37UL, 0x2c1b90fdUL, 0x48f4ec7dUL, 0x402789eeUL,
- 0xfa62cde0UL, 0x31763e52UL, 0x46f8a563UL, 0x7923eb4fUL, 0xa35eed7UL, 0xd8924507UL, 0x169ad489UL, 0x4ea56b61UL,
- 0x7e4a7252UL, 0xb8dd1d73UL, 0xdd7d72dfUL, 0xa6665b1dUL, 0x438587d2UL, 0x9577fc51UL, 0x8ff604d9UL, 0xd87caae6UL,
- 0x68f8d0cbUL, 0x3631284eUL, 0x6d7b482eUL, 0x2c05b8ffUL, 0xeb36b69bUL, 0x39959968UL, 0x6edc4620UL, 0xc2ecd5e9UL,
- 0x2bbd8149UL, 0xe842bb3dUL, 0x7d423d40UL, 0xfe8bf1b9UL, 0x1034206cUL, 0xf0049c63UL, 0xafbfec7dUL, 0xc31e21afUL,
- 0xfe7af91aUL, 0x8ab24c1dUL, 0xe5f1d1cfUL, 0x4ed6f8c2UL, 0x81631abeUL, 0x2bbdc8c6UL, 0x39190a3bUL, 0xe786faacUL,
- 0x5ea72594UL, 0x8c30a77fUL, 0x2ed7287fUL, 0xdaf5a307UL, 0x97b8448eUL, 0x9cc67f73UL, 0x8768cb50UL, 0xd4f87133UL,
- 0xf526dda9UL, 0x9f5644c8UL, 0x8f686c8fUL, 0x3d40800eUL, 0x20b3588aUL, 0xd8ee7a6dUL, 0x12f54022UL, 0xb4eaed02UL,
- 0x80d036d3UL, 0x7e5d29dUL, 0x247be4f9UL, 0x861c78d7UL, 0xc4646568UL, 0x2282538fUL, 0x364bd65bUL, 0x5e09308bUL,
- 0x67fa74ffUL, 0xca5c278fUL, 0xdcabc348UL, 0x9268a80dUL, 0x6374a225UL, 0xd5cbb7cdUL, 0x2e401352UL, 0x658ef868UL,
- 0xc361da0bUL, 0x15b82e17UL, 0x5581128fUL, 0xb9ea692cUL, 0x5fde6c9UL, 0x359eef8cUL, 0x22f0332aUL, 0x7b17ad9aUL,
- 0x6bd60d5fUL, 0x531ffda2UL, 0xaca98a75UL, 0x7b51fb17UL, 0x1444ccf7UL, 0x4dfb157eUL, 0xb7d63debUL, 0xc9f08417UL,
- 0x99ac3c67UL, 0xaf023870UL, 0xd75d7575UL, 0xefbfb5e5UL, 0x993dd715UL, 0xffbb1c69UL, 0x36cf0316UL, 0xb39f4cbfUL,
- 0x6e314a71UL, 0xb5633b7dUL, 0x29042b1UL, 0x1e13ee39UL, 0x10c88333UL, 0x99a8a0eaUL, 0x704ace6UL, 0x300e6c21UL,
- 0xdb36505cUL, 0x67bb4071UL, 0x1e28d3d3UL, 0xdc40f0e4UL, 0x3109d643UL, 0x13cee309UL, 0x240a5d2UL, 0x5ee2e6f0UL,
- 0xa7953968UL, 0x182ac3c2UL, 0x71faf976UL, 0x92b5ce10UL, 0xb1ffc8a7UL, 0x65f479d0UL, 0x412e4e17UL, 0xe838a052UL,
- 0x744b0b86UL, 0xe21a3ee9UL, 0x5953f6b3UL, 0x3d0defeeUL, 0xdc2f88acUL, 0xf96d3c3aUL, 0x7f327f8cUL, 0x62da3c3dUL,
- 0xb998aba0UL, 0xa9fcff07UL, 0xac650bdcUL, 0x281126b7UL, 0xa7d7cda1UL, 0xa1c7f620UL, 0x19dd4de6UL, 0xdcf44945UL,
- 0x66d5052dUL, 0x9c6ff776UL, 0xd9763a9bUL, 0x8a0acea3UL, 0xb2352e4bUL, 0x96ab86e5UL, 0x55cbcbe4UL, 0x7d102af9UL,
- 0x6a8c3910UL, 0xf38548a4UL, 0x733612d5UL, 0x35d88d6UL, 0x30bea6bUL, 0x39be9a8aUL, 0x143fd482UL, 0x7f1b4cc3UL,
- 0xc27529e0UL, 0xf31b19e2UL, 0x61953583UL, 0x91760144UL, 0x9c97c52dUL, 0x774252d5UL, 0x33224072UL, 0x3a2abb9bUL,
- 0x30d20b3dUL, 0x3bf2e0e1UL, 0xb3fddf87UL, 0x8d59512fUL, 0x397dc3bdUL, 0xaababda8UL, 0x8d807356UL, 0xe28623faUL,
- 0x3e4dfe3aUL, 0x759a7a5eUL, 0x72d305dUL, 0xbbc4b124UL, 0x9e294f93UL, 0x9512470cUL, 0xb6a369dUL, 0x2bdf6f9cUL,
- 0x1dad86b8UL, 0xeb2952ceUL, 0xe2f303fUL, 0xc68689c6UL, 0x5cd03f59UL, 0xafb287d1UL, 0xd07a4219UL, 0xe4ffd394UL,
- 0xac4ae455UL, 0x43fecad1UL, 0xd0964907UL, 0x1170e01bUL, 0x4d5c070aUL, 0xa1f9d1e9UL, 0x48f558a2UL, 0x32392083UL,
- 0xd4953186UL, 0x7c670deUL, 0xc050edf6UL, 0xf2474339UL, 0x7e054273UL, 0x87095d41UL, 0xa7789c67UL, 0x4ad6c591UL,
- 0xe01123e4UL, 0x6e7c8175UL, 0x3ee3672eUL, 0xaa57b4a7UL, 0xa981ba4UL, 0xb19142fdUL, 0xddbe3910UL, 0x3930eb58UL,
- 0xd0a1f336UL, 0xab340b6fUL, 0xde88c134UL, 0x6ac295c3UL, 0xe8db5bcaUL, 0x57f860b2UL, 0x9e89178eUL, 0x84e77fc3UL,
- 0xe87eff8aUL, 0x8493b31cUL, 0x4ab9196aUL, 0xc4aefd6fUL, 0xf8419f97UL, 0xd86706ffUL, 0xf481acbcUL, 0xf4a4301dUL,
- 0x6d9d5ce3UL, 0x7e79cdUL, 0x7d131171UL, 0xda3a928dUL, 0xb8cd7932UL, 0xab54d48eUL, 0x3f21f9faUL, 0x787a3c89UL,
- 0x3019b8d2UL, 0xd0e239e7UL, 0x81acf1b7UL, 0x8110c56cUL, 0x2e86ac19UL, 0x57cae3cfUL, 0x6015214cUL, 0x130f6befUL,
- 0x1bf319cbUL, 0x1ffc3942UL, 0x3279e5fUL, 0x1ec4d85fUL, 0x7bf54c81UL, 0x558a133cUL, 0x4050c08fUL, 0xc148ae7eUL,
- 0x85752c5cUL, 0xb2119d5cUL, 0xe76e573bUL, 0x47895ba7UL, 0xc712db69UL, 0x928b7738UL, 0x914e8530UL, 0x10bcadc6UL,
- 0x776b68c8UL, 0x32365abUL, 0xfd4d6628UL, 0x162cc3daUL, 0x30a2f9a0UL, 0x614aeb1bUL, 0xf172f983UL, 0x311a7d5bUL,
- 0xada7e4adUL, 0x6c64c679UL, 0x5f9a4423UL, 0xe46728feUL, 0xfb5a9204UL, 0xe3edcc0aUL, 0xd39dd5abUL, 0x29df90f6UL,
- 0x672787c0UL, 0xab02681UL, 0xb0319069UL, 0xfb0afa51UL, 0x7ede14e9UL, 0x9bc8408cUL, 0x60187bf2UL, 0xedff80faUL,
- 0x96e5789fUL, 0x1d20aef5UL, 0x94f0d5f0UL, 0x89c5d574UL, 0x3433cb65UL, 0xca523ba8UL, 0x5f58ce8eUL, 0x4488f6e2UL,
- 0x4d3564f0UL, 0x1f46cca6UL, 0x915204b2UL, 0x72aafeb7UL, 0xeb3f1ce5UL, 0xe525b895UL, 0xf26908b0UL, 0xe75b9f1cUL,
- 0x2c0c7fe2UL, 0xd2db2425UL, 0x421e5588UL, 0x107b9b10UL, 0xe1925d7UL, 0x93a8ea4cUL, 0x67139f12UL, 0x61cdd959UL,
- 0x5b809149UL, 0x2d1841cfUL, 0x90284751UL, 0xdc5911d8UL, 0x51ccc378UL, 0xc63e57acUL, 0x9f03d140UL, 0x92202511UL,
- 0x12997d43UL, 0xece2358dUL, 0x2345c788UL, 0x6c3a0a1UL, 0x849ea5c4UL, 0xec10b58cUL, 0x69300c5dUL, 0xca276a34UL,
- 0x68a04c03UL, 0x7ff5b052UL, 0x72df8f9aUL, 0xf5a392b5UL, 0x84796a36UL, 0x38b81197UL, 0x29e8abaaUL, 0x5772f3f4UL,
- 0x62d443ccUL, 0x1c1d0700UL, 0x42917b94UL, 0x4ad58387UL, 0x15badffcUL, 0x1906cc8bUL, 0x48a2b40UL, 0xc262925UL,
- 0xa85af9f8UL, 0x8bb20cd4UL, 0x68d939a1UL, 0xb6748446UL, 0xe0c38ba9UL, 0xf6aa362dUL, 0xa0d8b7aeUL, 0xb901da5UL,
- 0x61701acfUL, 0x4258809bUL, 0xf6fcee0dUL, 0xc08b4e02UL, 0x77f058bdUL, 0x7c47a7e1UL, 0x6380ee0UL, 0xf6aa20f5UL,
- 0x5bc2138aUL, 0x1554efb6UL, 0x3ba9bf70UL, 0x8a8a815UL, 0x6f7c7282UL, 0x3278aeafUL, 0xff145682UL, 0xe9a0eec0UL,
- 0xf6d2a556UL, 0x71794915UL, 0x7d9bf7c2UL, 0xc9cff620UL, 0x23fa79e8UL, 0xfbd0fb8eUL, 0x7728d830UL, 0x85a9180fUL,
- 0x34d442e2UL, 0x4ac938cbUL, 0xc2ac1cacUL, 0xc4acf0cbUL, 0xcd4326bfUL, 0x8060a95dUL, 0xd3c08ee2UL, 0xf8fd8e12UL,
- 0x387a1f9dUL, 0xda8432b7UL, 0xfc54e2cUL, 0x877dad0aUL, 0x25ed0702UL, 0x5d0884e2UL, 0xc902fa31UL, 0x3d1e28acUL,
- 0xba0e87e0UL, 0x48a75921UL, 0xb16b5c5fUL, 0x28b2148UL, 0xa16d6673UL, 0xc61ead8fUL, 0x7ad0132eUL, 0x5a4d2ffUL,
- 0x49ebc3c2UL, 0xc666ef29UL, 0x2cdf199fUL, 0xb2ee732fUL, 0x43ce304UL, 0xb268d1e6UL, 0xe75c2836UL, 0x310935adUL,
- 0x609ff2c9UL, 0x95f8f0dfUL, 0xff517441UL, 0xa2a92b95UL, 0x6fca9aceUL, 0xd72e9bbfUL, 0xb9f3c2UL, 0x57ffacadUL,
- 0xd49a8ab9UL, 0x7d849bfdUL, 0xef6b9a35UL, 0x8e9930aaUL, 0x8bea615UL, 0x3bdc603fUL, 0xe162b1dfUL, 0x9d9bed6fUL,
- 0x1342a9eaUL, 0xf2e188bdUL, 0x63c243b5UL, 0x4ba409f5UL, 0xe79f8bf6UL, 0x62d4bc5eUL, 0x87872b2fUL, 0x3ed3f28UL,
- 0x61bd34d0UL, 0xae5cb9e5UL, 0xe95e3b49UL, 0x26a539aUL, 0xc1b6cb18UL, 0xbbe40596UL, 0xa82b4c2fUL, 0x304c7700UL,
- 0xece7c114UL, 0x78ffa071UL, 0xd305dc1UL, 0xf4165ed8UL, 0x72a4703fUL, 0xfbbfe496UL, 0x8d91ebf2UL, 0x360f23dcUL,
- 0x302e6516UL, 0x48e2929aUL, 0x23783708UL, 0xbcc7dd83UL, 0x4c298d7eUL, 0xec7bd815UL, 0x3d2dcf38UL, 0xe7143acbUL,
- 0xcd68beffUL, 0x546cabfbUL, 0x610cd4ceUL, 0xebf0e995UL, 0x45583585UL, 0xf2765d25UL, 0x31758de7UL, 0xc64514c2UL,
- 0x28283d7cUL, 0xe65b69a1UL, 0x795717caUL, 0x5ff73da5UL, 0xaef8582aUL, 0xa14bfd85UL, 0xe00e4331UL, 0xe4a64ae3UL,
- 0xf7fd0029UL, 0xc080d145UL, 0xf8a4536dUL, 0xfc137448UL, 0x8d6bb16fUL, 0x4f157169UL, 0x5540114UL, 0xb0dd76d4UL,
- 0xbc876d42UL, 0xfad0a7eaUL, 0x249db741UL, 0xd5bcd8d9UL, 0x55c9395dUL, 0x53bb6f5fUL, 0x23206961UL, 0xf863c46dUL,
- 0x9dd908c1UL, 0xe58376ceUL, 0x6116a21UL, 0x315a2087UL, 0xc98a2f03UL, 0xf2b24cf2UL, 0x3d20c088UL, 0x661707bcUL,
- 0xf34ae80aUL, 0x1db1f185UL, 0xcbb09417UL, 0x17816b73UL, 0x83a06943UL, 0x7e8ecb46UL, 0x2a34d2ccUL, 0x66d46cedUL,
- 0xa2ae3769UL, 0xfa0bfd80UL, 0x86e65d32UL, 0x1238e11eUL, 0x5436c310UL, 0x568aa6deUL, 0xcc91ce32UL, 0x75929192UL,
- 0x3967230fUL, 0x524a8f57UL, 0x4632ab58UL, 0xf318a634UL, 0x923180ccUL, 0xa7285055UL, 0x442857faUL, 0xa043bf7dUL,
- 0xca902613UL, 0x6042e4d4UL, 0x856bcc6eUL, 0x8296dac1UL, 0x402cbfebUL, 0xdb954d2cUL, 0xaa678c5eUL, 0xc613f823UL,
- 0xc1b45344UL, 0x269a96efUL, 0x6ee96b06UL, 0x36832f9eUL, 0x10b9bf33UL, 0x95518253UL, 0x45ad859dUL, 0x427fd8f2UL,
- 0xa637579cUL, 0x9621a7ffUL, 0xc463bb47UL, 0x39a05c65UL, 0xb07fd3bdUL, 0x75d5e41cUL, 0xfa2358f6UL, 0xd29939a2UL,
- 0x6100f9aUL, 0x3401b977UL, 0x98259062UL, 0x50cb8936UL, 0x2e53777dUL, 0x8a30e736UL, 0x8cc31ef0UL, 0xddfbb943UL,
- 0x15eca260UL, 0x9ed84997UL, 0xdde6931aUL, 0x5e603e71UL, 0x620c6038UL, 0x41e22c84UL, 0x6d533aceUL, 0x76fc5aadUL,
- 0x2d7fc924UL, 0x60c510f3UL, 0xf3804c5aUL, 0x5222f5d0UL, 0xed06a26dUL, 0x551ea2cfUL, 0xb6a6874fUL, 0x27163766UL,
- 0x8fd248c8UL, 0x65d40db8UL, 0xb3f5c4fbUL, 0x5c033426UL, 0x9c934542UL, 0x11624b38UL, 0xed6abaaaUL, 0xe1050abUL,
- 0x8515ec3aUL, 0xd0ec653eUL, 0xcb59c67UL, 0xd71f9c6eUL, 0x6ec47675UL, 0x92ee0aa5UL, 0xc4716765UL, 0x4295c89cUL,
- 0x44d5e3f9UL, 0x3175b7bdUL, 0xefb5a16dUL, 0x8d48848UL, 0x4a02af8dUL, 0x546c1783UL, 0xdc01c598UL, 0x80a35489UL,
- 0x722f9162UL, 0x2291d1f3UL, 0xf102b2dfUL, 0x4248cc23UL, 0x25bd9d7UL, 0xc092ea06UL, 0x44ed1261UL, 0xe16b324dUL,
- 0x320caf1UL, 0x2a4356eaUL, 0x7b95b116UL, 0x287e952dUL, 0x66ebb0a2UL, 0x1ad8e1f1UL, 0x3a619095UL, 0xf9146cfaUL,
- 0x78886f2bUL, 0xe346e6b3UL, 0xa3c71d18UL, 0x941718ecUL, 0x8ffe84c4UL, 0x4c6c9029UL, 0x5c158c57UL, 0x8b8fb020UL,
- 0xe577d9d3UL, 0xfc7eba83UL, 0x997d18f6UL, 0x2cfef02bUL, 0x9881d629UL, 0xd8aab6a9UL, 0xfde2b447UL, 0xebd3f330UL,
- 0xa3e6a365UL, 0x2c5df8c6UL, 0xbd87899aUL, 0xd8a7bbddUL, 0xb036b09UL, 0xac5eca94UL, 0x23968bfUL, 0xf67b1635UL,
- 0x9482b67eUL, 0x5d6717a1UL, 0x6d4ba255UL, 0xf2a1c8cdUL, 0x5067d48bUL, 0xd4d6afe4UL, 0x48b5e3cdUL, 0x2d639446UL,
- 0x451f740UL, 0xd95cd6dbUL, 0x3b122ed9UL, 0x41d177ceUL, 0x9e4b4ebfUL, 0x4a26fac7UL, 0x2e76f5cdUL, 0x1cf841efUL,
- 0x198e8e8aUL, 0xfceaf70bUL, 0x92f46d97UL, 0x26953721UL, 0xf9677fddUL, 0x8307fdd5UL, 0x55bcf13dUL, 0xec27c8c9UL,
- 0x30031e9aUL, 0xd0a5a1e3UL, 0xb0e3a1d5UL, 0x1a35d203UL, 0xfbcdf22dUL, 0x2a4c556UL, 0x33dd8fdcUL, 0xa4923266UL,
- 0xf36682e8UL, 0x1315d3a0UL, 0xbea09e96UL, 0xd087d595UL, 0xd13385e7UL, 0x994ddeeeUL, 0x32155e2eUL, 0x37ab379fUL,
- 0x905660a4UL, 0xfd12dfaaUL, 0xdc3d45deUL, 0x68db56e7UL, 0xf4633161UL, 0x87d4aed1UL, 0x96e5fab9UL, 0xbf7c0141UL,
- 0x4b771866UL, 0x1102df7bUL, 0x8d658f0dUL, 0x3e8fa7c8UL, 0x4062ff0eUL, 0xe513abb1UL, 0x43a0d0afUL, 0x5908de67UL,
- 0xeb07ad42UL, 0xc2171a7bUL, 0x9ae3fad8UL, 0x5722ff11UL, 0x3c55da44UL, 0x5fa74db1UL, 0x3a649242UL, 0xeb38a0c2UL,
- 0x5d211e50UL, 0x98632880UL, 0xa872b720UL, 0xa969dc66UL, 0x9badb45aUL, 0xe81374c9UL, 0x72018c6UL, 0x58ff57a0UL,
- 0x92984ce2UL, 0x9589c25dUL, 0xe1862067UL, 0xe1bb6100UL, 0x9be7004UL, 0x7ea23c2bUL, 0x74c9529eUL, 0x94d24637UL,
- 0x454a533eUL, 0xca4aa07dUL, 0x6972fd68UL, 0x628a458bUL, 0x9bdf4a1aUL, 0x5dc132d3UL, 0x9a59640UL, 0xc4c41908UL,
- 0x30707a77UL, 0x1794d70eUL, 0x5045089fUL, 0x8f4e33c8UL, 0xa421bf18UL, 0x4429d1a2UL, 0x3d7fd09cUL, 0x12f2296aUL,
- 0x337372a7UL, 0xbf1b7931UL, 0xad89c35eUL, 0x1dfb7554UL, 0x6f8c653UL, 0x4f253cc3UL, 0x89c0916dUL, 0xeb2bfe24UL,
- 0x438c5b85UL, 0xb23c1716UL, 0xa72653b4UL, 0xcbe8886eUL, 0x16c0bbf9UL, 0x92608326UL, 0x71434495UL, 0xdf9094f7UL,
- 0xb6b430beUL, 0xd854faaeUL, 0xc5908d0bUL, 0x56e8a048UL, 0xf245b736UL, 0xeb55b153UL, 0xa897162bUL, 0x5317df0dUL,
- 0x963e94ceUL, 0x19d9c32dUL, 0xeb09e2ddUL, 0x1f28a6aUL, 0x284a491fUL, 0x3009cf49UL, 0xbc4ea6a4UL, 0xdc5b9806UL,
- 0x6dd6dfe0UL, 0xaa1255acUL, 0x8a8fc8d8UL, 0xca4451aUL, 0xbd466069UL, 0x85ccb564UL, 0xbd2fe70bUL, 0xb035876dUL,
- 0x929ead36UL, 0x74f1f26aUL, 0xb852f545UL, 0x720b45daUL, 0xe39c817aUL, 0x833c0d0UL, 0x81600f7bUL, 0x2c5f3fd1UL,
- 0x8bef340eUL, 0xed08fd7UL, 0x384e8071UL, 0x3a0810b4UL, 0x9a7d6581UL, 0x944a8097UL, 0x1fb23993UL, 0x49d1f11fUL,
- 0x8d271787UL, 0x21e8a59cUL, 0x29171d1aUL, 0xf5e33ae5UL, 0xc7deee82UL, 0x18c1a7c9UL, 0xe63de4d9UL, 0x6755edfdUL,
- 0xca36688dUL, 0x808fab6cUL, 0xb8c7bbaeUL, 0x95daaf9fUL, 0x65e94e5UL, 0xd0782a8dUL, 0xfc640082UL, 0xbd3fe471UL,
- 0xa4107b45UL, 0x4ee5da2eUL, 0x9a5c669cUL, 0xf65c554cUL, 0x24963123UL, 0x364a3633UL, 0x67bae25fUL, 0x3625ab3dUL,
- 0xc377d063UL, 0x42fe8860UL, 0x7d6e7e9cUL, 0x830ba19cUL, 0xae4e7adeUL, 0x9435ed40UL, 0x72add5eeUL, 0x7a5847a4UL,
- 0x3bc2ef95UL, 0xb7318b36UL, 0x641e2b1aUL, 0xdf3efeUL, 0xeeacb296UL, 0xb9b851f1UL, 0xed77679cUL, 0xbfdba455UL,
- 0xd5e9a35UL, 0x14497549UL, 0x7a43748fUL, 0xfa9a4316UL, 0xc324a173UL, 0x502e1497UL, 0x27be3990UL, 0xffef3dc9UL,
- 0xb29fcfb5UL, 0x39ae8f67UL, 0x7ee978fdUL, 0x74080782UL, 0x8951d398UL, 0xaba22217UL, 0x5544fc4dUL, 0x880f03c9UL,
- 0x42c7bc2fUL, 0x1a1a6765UL, 0x86c89c73UL, 0xd16eeabaUL, 0x409ca8fbUL, 0x47b6ddeUL, 0x9d4fc327UL, 0x5ba2ebdbUL,
- 0xdf061db2UL, 0xa76368c0UL, 0xf3ffb02cUL, 0x782f7d6aUL, 0xe015c602UL, 0xa226a3f9UL, 0xa24abfeeUL, 0x9784a9f8UL,
- 0xc8c9a1dUL, 0xa58e3c17UL, 0x769086e9UL, 0xe6fdd4fdUL, 0x81ad2980UL, 0x96de7ac0UL, 0x41a1f2c4UL, 0x17c32993UL,
-};
-#else
-static const mp_limb_t ecc_unit[8] = {
- 0x1UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
-};
-static const mp_limb_t ecc_table[4096] = {
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x1UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x9e9f1e14UL, 0x22acc99cUL, 0xdf23e3b1UL, 0x35294f2dUL, 0x453f2b76UL, 0x27df505aUL, 0xe0989cdaUL, 0x8d91e471UL,
- 0x6640f110UL, 0x6836c0b7UL, 0x9a30d10bUL, 0x60ddf288UL, 0x91c22bb3UL, 0x853d8fe3UL, 0x6830bd12UL, 0x5b9ce67cUL,
- 0x8edabed3UL, 0xc19956a9UL, 0x2d90df5cUL, 0xc9b46918UL, 0x7f1ad50dUL, 0x562d0427UL, 0xffd24011UL, 0x30b84053UL,
- 0x54ab33a5UL, 0xf909ba0dUL, 0x22f55287UL, 0x409a5847UL, 0xaea6a078UL, 0x9f600f87UL, 0x6a83efcaUL, 0xc2b90ce4UL,
- 0x17cc5b17UL, 0xdc3c26a2UL, 0x117f0c65UL, 0x66597a08UL, 0x46c685f6UL, 0xf58e17d0UL, 0xf97118d8UL, 0xe6f681acUL,
- 0x33d17d71UL, 0x263343b1UL, 0xe8fd0648UL, 0xf58a611UL, 0x1fc24509UL, 0xf361fc63UL, 0xb568f30aUL, 0x4e4d7c57UL,
- 0x9aeb8233UL, 0xa7fb2c3cUL, 0x8220438bUL, 0xc483a015UL, 0x94e49355UL, 0x18a802ffUL, 0xe109faf0UL, 0xbaf075bbUL,
- 0x950a6b00UL, 0x87a19dbUL, 0x1a519e50UL, 0x31247adUL, 0x858b1331UL, 0x92b89a9aUL, 0xa7d92af4UL, 0x8a869a44UL,
- 0x938c5148UL, 0xfd2bb274UL, 0x8bc4a48eUL, 0x68a97677UL, 0x1d152f52UL, 0x690b8edaUL, 0x9840e06cUL, 0x8e919f6fUL,
- 0x2d0912f9UL, 0xd56ebcd1UL, 0xa1ca297cUL, 0x6d035c2UL, 0x10bebc61UL, 0x71db5b98UL, 0x3979deb4UL, 0x7dac7447UL,
- 0x3ab7e378UL, 0x9ccfe824UL, 0x9320ec6UL, 0xb9f3a562UL, 0x6bd51812UL, 0x79358a85UL, 0x3c19dffdUL, 0x10bb1783UL,
- 0x2b3ec296UL, 0xcddb3d1eUL, 0xbb0215beUL, 0xbf91ec26UL, 0xc29dd720UL, 0x40d48feeUL, 0x93ec380dUL, 0x27e84f68UL,
- 0x85ff8188UL, 0x80bd016cUL, 0x914713c8UL, 0xaecdb42dUL, 0xca4daf7cUL, 0x2655130aUL, 0x8f4c7a84UL, 0xc1197a8dUL,
- 0x6f96023bUL, 0x4314c20UL, 0x6252f279UL, 0x981074daUL, 0x8687d127UL, 0xf686b86dUL, 0xad0dd14cUL, 0xed44d10cUL,
- 0x30027580UL, 0xc5d34dfaUL, 0x6e56007bUL, 0x63b88d69UL, 0xfdab8fbUL, 0xbe451a28UL, 0x4333eb06UL, 0xfce982d7UL,
- 0xd51bbc1cUL, 0x9cd393c5UL, 0x87b6d93aUL, 0xf48749d3UL, 0xd880a9c5UL, 0xfdd7e52fUL, 0xb380f50aUL, 0x1bbfebf2UL,
- 0xf15d6669UL, 0x90ce9525UL, 0x66723c15UL, 0xe29dc720UL, 0xc430a6c3UL, 0x592a0be7UL, 0x1436f3e3UL, 0x169c2146UL,
- 0x66295fecUL, 0x8eb43fbbUL, 0x20d7dbf8UL, 0x87c95806UL, 0xca7c7029UL, 0x50116efdUL, 0x57a902d6UL, 0xfb68a016UL,
- 0x8ee4d63cUL, 0x98c2f2beUL, 0xda53fc95UL, 0x73fd7c3cUL, 0x1713070aUL, 0xc73d52d0UL, 0x83c4698aUL, 0x7cc15cfdUL,
- 0x77f61191UL, 0x985512b5UL, 0x96cb867eUL, 0xdee1d090UL, 0xbdaacbefUL, 0xb4e3ffa5UL, 0x2feecefaUL, 0xeabac5dcUL,
- 0x8695b262UL, 0x3af3fec0UL, 0xc85e58aaUL, 0x2357c7a1UL, 0x973b0561UL, 0x1ec15e86UL, 0x7aa4b8d7UL, 0x724e9c89UL,
- 0x45a5b2a7UL, 0x5cc3e800UL, 0x298ae7e3UL, 0x556c5705UL, 0x85771b94UL, 0xdc68e514UL, 0x4a6b0571UL, 0x26842e6UL,
- 0x740ef20eUL, 0x26ae43eaUL, 0x49267318UL, 0x6d1efdb8UL, 0x5895348dUL, 0x62b4cb31UL, 0x27c7fedcUL, 0x21341cccUL,
- 0x4c4cd704UL, 0x6097110eUL, 0xfd154eadUL, 0x4a2d40feUL, 0x810a4366UL, 0xa3f29a1dUL, 0x52265c0dUL, 0x27756ea8UL,
- 0x7a431511UL, 0xfacff471UL, 0x62903aa5UL, 0xbc67450dUL, 0x8d44557eUL, 0xdcfdc317UL, 0x5cd59a38UL, 0x4593ed11UL,
- 0xf9e38b80UL, 0xe98f0ef9UL, 0x43e853fcUL, 0x71ddf097UL, 0x620f53b2UL, 0x42153406UL, 0x73b5492dUL, 0xb3c15d93UL,
- 0xda48ad4cUL, 0xd182a531UL, 0xc2077c85UL, 0xf068ab3aUL, 0x9b36b50eUL, 0x1270f1b9UL, 0xea148149UL, 0x41b544faUL,
- 0x163ceef2UL, 0x79422cb9UL, 0x66627757UL, 0xab58bfd5UL, 0x9eef2756UL, 0x1cc0e43UL, 0x1eaef1ebUL, 0xd44a63d9UL,
- 0x229a5e95UL, 0xe192f611UL, 0xeb9118f9UL, 0x85f6f05bUL, 0xa1865f90UL, 0xba519b23UL, 0xef9e55cbUL, 0x17366cddUL,
- 0xbabc2544UL, 0x1a7a6070UL, 0xdb75997bUL, 0x5f54e061UL, 0x3a09774eUL, 0xf77e6888UL, 0xd63692d0UL, 0xdaa30467UL,
- 0xe65a41afUL, 0xd4ed64d4UL, 0x2182b1deUL, 0x71a915caUL, 0xe4f11454UL, 0xded7512fUL, 0x4c148cd5UL, 0xe2d9e2eeUL,
- 0xb3db55dfUL, 0xc484fa9fUL, 0xb2026709UL, 0xc62dd13bUL, 0x64183ca2UL, 0x59831847UL, 0xb3f4670eUL, 0x4593bc37UL,
- 0x5fdc0ce9UL, 0x5dcd553fUL, 0x13995bd4UL, 0x25350f94UL, 0x90695b02UL, 0x3b29a7fbUL, 0x869ea460UL, 0xc3ca63f3UL,
- 0x2ea0852eUL, 0xb7ff7f8bUL, 0x71ca5679UL, 0x4e10b75aUL, 0xaccb9cb2UL, 0x10c4fc89UL, 0x2cb4c1deUL, 0xb2d8b012UL,
- 0x5d7f9a23UL, 0x9718c49aUL, 0x8ae1f23bUL, 0x5f899773UL, 0x76671699UL, 0x1d535e12UL, 0xce0e39a7UL, 0xecdc56fbUL,
- 0xc2b7f949UL, 0xb7b1192fUL, 0xd9ce4e01UL, 0x6406b181UL, 0xf1160f3dUL, 0x5d1e8513UL, 0xfbc2c189UL, 0xc0408fecUL,
- 0x5b216af8UL, 0xffd4f285UL, 0x2cf54880UL, 0x7e9add75UL, 0x996df4e2UL, 0x1b6c3a96UL, 0x8d61abe2UL, 0xc11fb2a8UL,
- 0x293c9acdUL, 0x5b073a13UL, 0xdf403ba1UL, 0x651fd18dUL, 0xb1a662d0UL, 0xb410a6b3UL, 0xc0f38532UL, 0x9c161017UL,
- 0x111b02fcUL, 0x7ae02cb4UL, 0x82d64cfcUL, 0xd5c4086eUL, 0xe6427f3UL, 0x96642b0cUL, 0xa3eff240UL, 0xe22c7524UL,
- 0xbcecb61aUL, 0x2ddcc1acUL, 0xaa6262c5UL, 0xb341d0c1UL, 0xf18ec4f6UL, 0x7ea2fd33UL, 0x4b48c715UL, 0x3370026aUL,
- 0x24eece34UL, 0xe15e004fUL, 0xfe4517f1UL, 0xbd8c309cUL, 0x4bf00709UL, 0x86fccb0fUL, 0x1978e7fdUL, 0x677a57d8UL,
- 0xd209a0d9UL, 0xd6d31749UL, 0xb8780085UL, 0xcb3f257eUL, 0x437a0418UL, 0xcf909705UL, 0xb3924e16UL, 0xdd7c16e6UL,
- 0x2867d320UL, 0x2901db95UL, 0x2641750bUL, 0x444e1169UL, 0xcfe3396cUL, 0x91d129b1UL, 0xf1334e68UL, 0xec9b929fUL,
- 0xc40cd627UL, 0xb1494c26UL, 0x47226a06UL, 0x565b3699UL, 0x811ed914UL, 0x10e27ea4UL, 0xab25cd3fUL, 0x1ec2fa6aUL,
- 0x4376d74bUL, 0x2d34f495UL, 0xb0f04578UL, 0xfcdba73aUL, 0xec660c08UL, 0x33801d8bUL, 0x174754b0UL, 0x616fbc01UL,
- 0x8c480b4dUL, 0x9bca16b2UL, 0xf790b3abUL, 0x7d62c01bUL, 0x1c5a0589UL, 0x4837315eUL, 0x6d8a3ec7UL, 0xc5a6240aUL,
- 0xe5039ee1UL, 0x8b2440f5UL, 0xed6d1173UL, 0x72d5ef7cUL, 0x24e016a6UL, 0xe35d8545UL, 0x51c3a99eUL, 0xbb5a9b70UL,
- 0x4470b8b5UL, 0x2709cd1dUL, 0x6e138a20UL, 0xa958d74eUL, 0xb563097aUL, 0xddd7ebe9UL, 0x2bb891eUL, 0x3d040b16UL,
- 0x2693ca30UL, 0xea49be60UL, 0x18527a8aUL, 0xfc56098eUL, 0xf066e779UL, 0x5db5c832UL, 0x6ec094c5UL, 0xc3fc8bf9UL,
- 0xd9f91ec4UL, 0xc58d2007UL, 0x63461171UL, 0x4e96cebdUL, 0xc520bd2bUL, 0x907cad4aUL, 0x214ecf7aUL, 0xc2d8d7c5UL,
- 0x8a469e07UL, 0x23fd6819UL, 0x3083dd0bUL, 0xac7ff458UL, 0xe9c2aeceUL, 0x7b10ead7UL, 0x9e7cd3c1UL, 0x34c2cd74UL,
- 0x9991e029UL, 0x4f85a7a5UL, 0x6e8d639cUL, 0x9b385685UL, 0xe14fce4dUL, 0x35c85261UL, 0x9f7a17abUL, 0xa3a9b343UL,
- 0x5621c1d7UL, 0xaa74eb65UL, 0xddccd489UL, 0x90a5677bUL, 0xdf03a11eUL, 0x7c04914bUL, 0x753ee1d3UL, 0xe4960d8UL,
- 0x52014010UL, 0x6c1c196fUL, 0xa5f297e5UL, 0x1a22eb5dUL, 0x3b593e29UL, 0x7a2e8f2bUL, 0xbce8b8aaUL, 0x43c77ccaUL,
- 0xaf2cf081UL, 0xa03847b9UL, 0x8d33c5e6UL, 0x3ded21a8UL, 0x43899c6cUL, 0x66590d76UL, 0xb76078f1UL, 0x17cd5e9aUL,
- 0x2c601f09UL, 0x8caa75b7UL, 0xedb29484UL, 0x2e8da9bUL, 0xf5186cd5UL, 0xee83ba21UL, 0xbc7cd177UL, 0x55b16f1UL,
- 0x2718d360UL, 0xd794057UL, 0x83bc7946UL, 0x27028bfbUL, 0x2f24725fUL, 0xeeddef97UL, 0x47e1a9fUL, 0x7d34e154UL,
- 0x810349edUL, 0x812f31e1UL, 0x82141427UL, 0xc86f6e95UL, 0x30456bfeUL, 0xdc612592UL, 0x4c72f47bUL, 0x833c123UL,
- 0xefece34dUL, 0xd4d4d082UL, 0xc503bf94UL, 0xbc07020fUL, 0x460ace22UL, 0xba600febUL, 0xc4ccf87bUL, 0x6f45bba6UL,
- 0xa88af25fUL, 0x466b693cUL, 0xc8b03bf0UL, 0x19b6b895UL, 0xb2226804UL, 0x523f21dbUL, 0x9eb6baf1UL, 0xa7464df6UL,
- 0x4675c91bUL, 0x6470c902UL, 0x257df0faUL, 0xf56ff94UL, 0xdfd92170UL, 0xea08fc23UL, 0xdc014a4cUL, 0x3e5410e7UL,
- 0xbe38b996UL, 0x58ea2cccUL, 0xc4879dd8UL, 0xc5fc939cUL, 0x72e225ceUL, 0xecdef836UL, 0x35a2e6a7UL, 0x41fd079cUL,
- 0xee2c6327UL, 0xe224d60UL, 0xe84b5494UL, 0x59c19ffaUL, 0x80f31046UL, 0x278fa360UL, 0x4f024f2bUL, 0x3547d3abUL,
- 0x94ae2043UL, 0xdf11d251UL, 0x10e36090UL, 0x2b836479UL, 0x2b89925UL, 0xc7cee947UL, 0xf3c79f48UL, 0x2e54114eUL,
- 0x7bcaa28cUL, 0x31a6e7beUL, 0xe6b0aa73UL, 0xc5dbe8cUL, 0x660defa5UL, 0xf0c8e902UL, 0x6178bb9fUL, 0xf4b830d2UL,
- 0xac6511f8UL, 0xe3aaf927UL, 0xc9f0e2dfUL, 0xa97e21d0UL, 0x33ed1acdUL, 0xdd51e86dUL, 0xed72f729UL, 0x1690e28UL,
- 0xc522a944UL, 0x95e46a3eUL, 0xebc04a06UL, 0x27b0f9ccUL, 0x2a4857a4UL, 0x5ea0a6dUL, 0xbc210d61UL, 0xf5571162UL,
- 0x2530551eUL, 0x895a98acUL, 0xdbc7c701UL, 0x316f9d06UL, 0x8ed29449UL, 0x18fd92faUL, 0x1e73ae26UL, 0x82a2fa7aUL,
- 0xe7ec4068UL, 0x2020bea0UL, 0x47c82364UL, 0x901d0a5fUL, 0x69e35109UL, 0x86ec99baUL, 0x908c799cUL, 0xec07b1f8UL,
- 0x7d8d0e84UL, 0x67ba38bbUL, 0x79b8bb49UL, 0xd8807ce0UL, 0x74ea39efUL, 0xe5ae77e4UL, 0x553bf9d8UL, 0x37e3f781UL,
- 0xb1dbe6e9UL, 0x5338a0eUL, 0x20b5e950UL, 0xf6e5d367UL, 0x6166f4fcUL, 0x5ecf8e3bUL, 0xb3dae2c5UL, 0xb81a9a1bUL,
- 0x9559e94aUL, 0xc6b77c78UL, 0x77db39bdUL, 0x99e16dbeUL, 0x73f9f52bUL, 0x57231d7aUL, 0xbb414a27UL, 0x37c59b95UL,
- 0x22a0fb21UL, 0x65e468dUL, 0x75ad1656UL, 0x580540afUL, 0x86b99783UL, 0x7f4868b9UL, 0x49cddf28UL, 0x212779deUL,
- 0x5bcbc0e9UL, 0xd26499b7UL, 0x9e115ed4UL, 0x44c9bce3UL, 0x7b9b04e7UL, 0x1257f387UL, 0x5e48c2f9UL, 0xb3596277UL,
- 0xe6b0d2dfUL, 0x626745aUL, 0xf1c930e3UL, 0x10ddc1eUL, 0x90a73a8UL, 0x44e1ec6eUL, 0x3eca96f8UL, 0xfe2b530aUL,
- 0x6683e34UL, 0xa43fd742UL, 0x4e2955eaUL, 0xe6578910UL, 0x12544467UL, 0x7602f45fUL, 0xf85b3f45UL, 0xad55404fUL,
- 0x2a563772UL, 0x8b06ebf3UL, 0x2f959f44UL, 0xde3ad7b3UL, 0x871b60a1UL, 0x81d895a8UL, 0xd93ea59bUL, 0x70827794UL,
- 0x23536f5dUL, 0x52691de0UL, 0x8243e7f7UL, 0xc4952520UL, 0xb0762307UL, 0xede00c51UL, 0x2620c4d8UL, 0x241e5dddUL,
- 0x761abb9bUL, 0x166f39cbUL, 0x3d9d6905UL, 0x5b436becUL, 0x99c3609aUL, 0xe1003b6bUL, 0xa66680bcUL, 0xe44eaa5fUL,
- 0xe52dcc23UL, 0xdb9842dfUL, 0x3f91db90UL, 0xd1426fdeUL, 0x48d826a4UL, 0x77947100UL, 0x30fca163UL, 0xa7ce99eUL,
- 0x17448896UL, 0xed717852UL, 0xb3f856baUL, 0xddf14e48UL, 0x23a45f60UL, 0x8037dec0UL, 0x532b3e66UL, 0xe2d16df7UL,
- 0x60c9150dUL, 0xa7742c2UL, 0x4631ba6cUL, 0x5a1b416UL, 0xed1b7346UL, 0xd2a5dac0UL, 0x89bfcf87UL, 0xc67ba7e2UL,
- 0xc52b721cUL, 0xb7d401c1UL, 0x1491f07aUL, 0xcc4062c2UL, 0xd4274b1dUL, 0x99c8f147UL, 0xc47880b1UL, 0x4c4bacddUL,
- 0x576d42b4UL, 0x174e49bfUL, 0x451899b3UL, 0xfe5f8760UL, 0xd17ec0e1UL, 0x903f1a81UL, 0xd7cb2ad2UL, 0x3f3a1f34UL,
- 0x1c76937cUL, 0x3a88bd5fUL, 0xdceab919UL, 0x4b8157c4UL, 0x3f0ee857UL, 0x3c2d00b7UL, 0x909eeebcUL, 0x7953912cUL,
- 0xcb991ae9UL, 0x868d23aeUL, 0x1fb0e21UL, 0xd05c2009UL, 0x5be63e28UL, 0x17f53287UL, 0xe3dc286UL, 0x59badb61UL,
- 0xb33bbc4eUL, 0x753deec2UL, 0xc814e179UL, 0xcb4d01dbUL, 0xc8ea72ecUL, 0x2f0e5cc1UL, 0x6b008874UL, 0xd26c656dUL,
- 0x9419f652UL, 0xe79d85a0UL, 0xca19903aUL, 0xc9c0c574UL, 0x2be3d9fbUL, 0x9ab53175UL, 0x5a5dd877UL, 0xbf2b69b5UL,
- 0x4a8451d8UL, 0xcdf82015UL, 0xa995795dUL, 0xc172f1fdUL, 0x643078c7UL, 0x371c030bUL, 0xa6442800UL, 0x44a9241aUL,
- 0x1b463de4UL, 0x6d330db2UL, 0xe46070d0UL, 0xa323adc4UL, 0x6c0080b5UL, 0x1fc54fecUL, 0x55026b79UL, 0xd1fa77d5UL,
- 0x424a311UL, 0x8e8e9c1eUL, 0xb924b1d0UL, 0xb59c6fbeUL, 0x1f0d524aUL, 0xca37ac19UL, 0x6411c011UL, 0xa86d43c9UL,
- 0x50beed4bUL, 0xd7f5d90UL, 0x1fe45082UL, 0x1d62c2b2UL, 0x5ca194a7UL, 0x86ceb3fbUL, 0xe04a581fUL, 0x19aeb622UL,
- 0x9ca35251UL, 0x7ada5b89UL, 0x80d42c9eUL, 0x40e424e7UL, 0x75f3c65eUL, 0x3117a4daUL, 0x54496986UL, 0x68e447ddUL,
- 0x74d09e3bUL, 0x27ff5e9bUL, 0xd1c0964bUL, 0xb4dade6cUL, 0x182b53ebUL, 0x604a983UL, 0xf41dde76UL, 0x216c5409UL,
- 0xa6eba4d2UL, 0xabd9e58dUL, 0x4a151a63UL, 0x93d45b0UL, 0x65abf22dUL, 0xd09a7298UL, 0xa19a4a27UL, 0xb32b9757UL,
- 0x6b89244dUL, 0x13676187UL, 0x409a7b36UL, 0x6960e5c3UL, 0x88a5652eUL, 0xadbf33d5UL, 0x251daf9eUL, 0xbe345840UL,
- 0x381f2a17UL, 0xe1c44656UL, 0x7699e53fUL, 0xafb0d78eUL, 0x9844cbe8UL, 0x3f962dd9UL, 0x9bddb070UL, 0x8be3c114UL,
- 0x2b295e49UL, 0x2c02f8f7UL, 0x2c9b4ebdUL, 0x6425131eUL, 0xf6c163daUL, 0x6c2ec910UL, 0xd88f2a66UL, 0x43f22556UL,
- 0xbe2785c6UL, 0x188fa790UL, 0x85f0995cUL, 0x7ee7934UL, 0x37e0fdedUL, 0xa0248cc6UL, 0x64271b25UL, 0xb252d383UL,
- 0xd1203060UL, 0xc10c4904UL, 0x7757ceddUL, 0x92821c5cUL, 0xe4eeb960UL, 0x3d845cb7UL, 0xcdea86eaUL, 0xab077d1dUL,
- 0x8470dcbfUL, 0xd1f84f85UL, 0x6e3eaa4fUL, 0xe5659666UL, 0x221e272fUL, 0xf14f2236UL, 0x1d9b89caUL, 0xc979e5aaUL,
- 0x78c99fd8UL, 0x3439e0e1UL, 0x54f937a2UL, 0xf3488cf1UL, 0xbaa8ce03UL, 0xda0f88efUL, 0xe65c05beUL, 0xd5ea7724UL,
- 0xa353e694UL, 0xd1febafUL, 0xaf329ab3UL, 0xb0d5f831UL, 0x16a181d0UL, 0x4facbd37UL, 0xa5ab257eUL, 0x94790f90UL,
- 0x2e407563UL, 0xc505b5UL, 0x146c6445UL, 0xf3ac918aUL, 0xe11f20a7UL, 0xc69db98aUL, 0x8e4408f5UL, 0xa9dc97fdUL,
- 0xe896803dUL, 0x692a0f35UL, 0xf9e11348UL, 0x714e2e4cUL, 0xa8fa6833UL, 0x7919966cUL, 0x30adafa0UL, 0x1e54b91UL,
- 0x4f34b472UL, 0xd2133609UL, 0x5c0b1012UL, 0x311d0c36UL, 0xd8be1646UL, 0xbc9b10ebUL, 0x82858aaeUL, 0xf75db61bUL,
- 0x19022ec5UL, 0xf76bbe8fUL, 0x4997df62UL, 0xfedd18e1UL, 0x457ec0fcUL, 0xf23b559aUL, 0xccf1a1daUL, 0x87726c39UL,
- 0x41e49050UL, 0x5e8a9e37UL, 0x47c6f55UL, 0x6173d6baUL, 0x9fa0bb40UL, 0x3454b587UL, 0x4efedaf7UL, 0xe4daa7b8UL,
- 0x6057fbd5UL, 0xbdd7b578UL, 0x12083b07UL, 0xb2ff1d9aUL, 0x35c128c2UL, 0x8dd0891cUL, 0x6e72d2caUL, 0x4009e579UL,
- 0x2b73a93bUL, 0xedfdf7e3UL, 0xf4ef9ea6UL, 0x2b0bc22dUL, 0x82f4fbb6UL, 0x3f0920efUL, 0x44d13e68UL, 0x4f911203UL,
- 0x88e4154bUL, 0xa5ee3218UL, 0x3794ba6aUL, 0xe4fb9104UL, 0x25634020UL, 0x4c5dd86aUL, 0x6fb66164UL, 0xae471482UL,
- 0x1f4119ffUL, 0x2be11684UL, 0xc259bb9fUL, 0xf55900bbUL, 0x2cd0d2acUL, 0x81a1fdfdUL, 0x4e5e2e32UL, 0x16982d5bUL,
- 0xd22def68UL, 0xbe4172aeUL, 0xd9bc3f19UL, 0x11e09527UL, 0x1c7bce90UL, 0x90e2908cUL, 0x90953fcbUL, 0x5dedce4aUL,
- 0xc7b3c31dUL, 0xa9c97fe7UL, 0xac544be9UL, 0x529cfdb1UL, 0x96210534UL, 0x8d03a3b1UL, 0x9ebb980bUL, 0xfe27b8dUL,
- 0x8edff339UL, 0x88fbf55bUL, 0x6e7deb44UL, 0x68f90909UL, 0x2c908de4UL, 0x3e8550e0UL, 0xdc0cadeeUL, 0xb3ec2efbUL,
- 0x6c2ce62fUL, 0x8063bf1aUL, 0xcfb8b74UL, 0xd8c95a1UL, 0x92f490fcUL, 0x7566c0c4UL, 0x1c42fac5UL, 0x604be384UL,
- 0x45ecb9dfUL, 0xa69f4c24UL, 0x8594b1d1UL, 0x8cc76b11UL, 0x90ca8670UL, 0x22c31b72UL, 0x83b5f1aeUL, 0xf5621809UL,
- 0x76d207baUL, 0x6fd053fdUL, 0x39a3cc66UL, 0x4b654c6dUL, 0x7f475f6cUL, 0x548280b1UL, 0x174e005fUL, 0xdce61263UL,
- 0xfa06658bUL, 0x3a7ae586UL, 0x4a9aa7ceUL, 0x11b074beUL, 0x3fc7e673UL, 0x413148dUL, 0xd2a819a4UL, 0x128fffbaUL,
- 0x7b63bc80UL, 0x4f73ededUL, 0x92c844aeUL, 0xf24cea38UL, 0x265b55b0UL, 0x6854d801UL, 0x83b07168UL, 0x10fe4c6cUL,
- 0x6db44b3fUL, 0xe3ff450eUL, 0xcbda76c4UL, 0x36a5416cUL, 0xa4e36f66UL, 0x92fd1cc5UL, 0x47519fe5UL, 0x52c3b94cUL,
- 0xbda5da29UL, 0xe0031f29UL, 0xb7387eaeUL, 0xc1fc942UL, 0x1c0f194fUL, 0xa52261cbUL, 0xc1d27831UL, 0x6a29f7e5UL,
- 0x7a8f0ff6UL, 0xae0b77b5UL, 0xe71b9e72UL, 0x2858b483UL, 0xf620fe52UL, 0xa273c575UL, 0xa901db9cUL, 0x12ccd14dUL,
- 0xf467ae28UL, 0x618a15b5UL, 0xe6ebde09UL, 0x2c130aaaUL, 0x574d5bfeUL, 0x58550387UL, 0xf4433ac9UL, 0x81563078UL,
- 0xa04fd6cfUL, 0xc69cec6aUL, 0xa8e8b01cUL, 0x766a3db0UL, 0x8c267169UL, 0x9c5bbbaeUL, 0xef7e0baeUL, 0x50e4ca18UL,
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0xeca9fd45UL, 0xfa05ee57UL, 0x33dc9249UL, 0xbc13597eUL, 0xa2ad4a39UL, 0xce729e7aUL, 0xd94e59c1UL, 0xcd862f8bUL,
- 0xbdf628ebUL, 0x8bca14acUL, 0xf592ebb7UL, 0x8551660bUL, 0xcd24b88cUL, 0x7e1a4872UL, 0x15a4df42UL, 0x8990cfc9UL,
- 0x73dbd253UL, 0x73d684ebUL, 0xef16f1afUL, 0x7bf8da2dUL, 0xb0432e92UL, 0xca6d9191UL, 0x78708e3eUL, 0x7149bdddUL,
- 0xe8e3f01bUL, 0x35fd6ef5UL, 0xe2cd4a38UL, 0xc93852cbUL, 0xe4f1ceddUL, 0x424a9908UL, 0x6a4c24b0UL, 0x3e706f35UL,
- 0x9c56dc86UL, 0x8a54055dUL, 0x21b6ee4bUL, 0xd377e309UL, 0xb2d80a2dUL, 0x85d7ed18UL, 0x31b01f3UL, 0xd1df7afUL,
- 0xab647a26UL, 0xcd78e094UL, 0xe4001079UL, 0xba566a84UL, 0xb5aa344cUL, 0xe3a8a875UL, 0xcfd6ed9eUL, 0xa716eef9UL,
- 0xa2c19a8eUL, 0xe43157eeUL, 0xc4df6aaeUL, 0xe4704806UL, 0xb5bc8254UL, 0x603bf6c2UL, 0xe06b73d2UL, 0x871771b3UL,
- 0x8eab200bUL, 0x117143beUL, 0xf43b9984UL, 0xb4f1dfedUL, 0x9f58e7bcUL, 0x15d3f344UL, 0xf5396ae4UL, 0xeefcca4dUL,
- 0xf9026f04UL, 0xf3b2f60cUL, 0xa79b8a80UL, 0xe5f9f4f0UL, 0xf30318ceUL, 0x2c7aa915UL, 0x8e87f382UL, 0xd9c82f92UL,
- 0x4f1677eaUL, 0xd323e577UL, 0x965c4dbcUL, 0xdb5845d8UL, 0x6d43dac0UL, 0xed44c0e3UL, 0x8385cfceUL, 0xc7a81effUL,
- 0x1a0e6919UL, 0xf2030b94UL, 0x85910178UL, 0xe2a644dbUL, 0xd284cdbUL, 0x7e83f929UL, 0x71b8b5a1UL, 0xb6654a12UL,
- 0xb338107fUL, 0xc593eff9UL, 0x4b063ffdUL, 0x3cf126c3UL, 0xa2c68c2aUL, 0x4d7665fdUL, 0x7fc6582bUL, 0x5e247fd9UL,
- 0x89d65f4UL, 0xa60f6abcUL, 0xe25388aeUL, 0x77ebdee0UL, 0x55d0aa17UL, 0xf62a19e5UL, 0xccb0aa35UL, 0x746a8fc4UL,
- 0x6e11d5f5UL, 0x420bdfa0UL, 0x4d2d1d28UL, 0xe4cafedbUL, 0x4dee025bUL, 0xe4f7b992UL, 0xfdd92e50UL, 0x4ce1afdbUL,
- 0x14e07cfeUL, 0x31e7d544UL, 0x779ad221UL, 0xda896b6aUL, 0x97408a4cUL, 0xd0c9af77UL, 0xf7fce206UL, 0xe1687978UL,
- 0xf1af973cUL, 0x12bc782dUL, 0xbfea93fUL, 0x7dd66c9eUL, 0x3b55bb30UL, 0x3693eaa4UL, 0xbecea4e9UL, 0x89db2399UL,
- 0xe63ac60fUL, 0x2aff7a48UL, 0xdefe4c24UL, 0x62f17ce5UL, 0xa1effd9aUL, 0x1863705cUL, 0x1b395ad4UL, 0x15576db2UL,
- 0x409914eeUL, 0x5f305d90UL, 0xe02ada0fUL, 0x1db73f60UL, 0xd47d2a0bUL, 0xcc64f3efUL, 0xb1c58433UL, 0x70f50fc3UL,
- 0xaa2d64a1UL, 0xf642f70bUL, 0x2c07f72eUL, 0x7489a46eUL, 0xa4050beeUL, 0x761038e1UL, 0xf50db12fUL, 0x9652702dUL,
- 0x6c622b6bUL, 0xcdbe3f7cUL, 0x500ee81aUL, 0xb900efa0UL, 0x19dd119eUL, 0x1c69ac35UL, 0x4b7aa505UL, 0x8ebb18e2UL,
- 0xda47b623UL, 0x5e90d5e7UL, 0xfc6142b6UL, 0x33ce90deUL, 0x22f4d4d1UL, 0x91135fbcUL, 0xcc804b81UL, 0x6ebd4e9aUL,
- 0x85d1cdf0UL, 0xd742ac52UL, 0xdc5add69UL, 0xe455771fUL, 0x802cf323UL, 0xe4e531faUL, 0xce822bdcUL, 0x5802e811UL,
- 0xf7052323UL, 0x44393dc5UL, 0x41fb5852UL, 0x117987dbUL, 0xe99c916bUL, 0xb51dddaUL, 0x8375542dUL, 0x37c213a8UL,
- 0x3058ecd8UL, 0x99693984UL, 0xb0bcf2d3UL, 0x459a74a2UL, 0x20058157UL, 0xf0a06e1bUL, 0x901c3fb3UL, 0xce4c9f17UL,
- 0x82bd6510UL, 0x1a49f057UL, 0x60a92c9bUL, 0x526cf2dbUL, 0xdc12ff8eUL, 0x25da9668UL, 0x9a8fd817UL, 0xf0d66e05UL,
- 0x850ed00UL, 0x5fce8afbUL, 0xd309252bUL, 0x78ee95caUL, 0x130413b7UL, 0xded78b3bUL, 0x298fcefaUL, 0x5ac731d8UL,
- 0x34ae724UL, 0x5338f243UL, 0x998fadb4UL, 0x97858a25UL, 0xdbce408fUL, 0x7690c51eUL, 0x4c8dd115UL, 0x3216af8cUL,
- 0xe5b22655UL, 0xbc6d089fUL, 0xb441c880UL, 0xcca6efe5UL, 0xe87a6165UL, 0x62e424e3UL, 0x8c753d6bUL, 0x86de40b8UL,
- 0x8bf0c8b5UL, 0x7d07b197UL, 0xeb1ba739UL, 0xf4e1a98fUL, 0x3e8937bUL, 0xd95de43aUL, 0xd56761b6UL, 0x90c11e8cUL,
- 0x6952f9b6UL, 0x8925919dUL, 0x89e59b82UL, 0x142004cbUL, 0xcc6c2380UL, 0x2e75d65UL, 0x8ab424cdUL, 0x5fda8529UL,
- 0x48218760UL, 0x5af6a751UL, 0x4a9100f4UL, 0x245e5f01UL, 0x6f7c1f01UL, 0xabf3c3a9UL, 0x42942affUL, 0x81d0a480UL,
- 0xc35734a8UL, 0x9a28eddeUL, 0x41ce94acUL, 0xab7420afUL, 0x12d38ce7UL, 0x4ef14ad9UL, 0x814f295UL, 0xe3b34d78UL,
- 0x1b168f0aUL, 0x7fa8928eUL, 0x81441d0eUL, 0x9ed80d92UL, 0xcb17016aUL, 0xe0a4c053UL, 0xe1eb0ab3UL, 0xb060e159UL,
- 0x73cf5dUL, 0xd3c89938UL, 0x154018d1UL, 0xbf6f4b06UL, 0xe1d39c76UL, 0x4a58327bUL, 0xd2b65456UL, 0x818c3c2UL,
- 0x81845112UL, 0xfd44e234UL, 0xf3e5dd85UL, 0xda75bc16UL, 0xcc1e5ee3UL, 0xbe603900UL, 0x615958fUL, 0xc700c504UL,
- 0xe1f09839UL, 0xc87c45e6UL, 0xb0eec9c1UL, 0x3d50f0c5UL, 0x8c341f03UL, 0xf4e2956fUL, 0x6f57e105UL, 0x49ff7947UL,
- 0xd98af87fUL, 0xaa6e777aUL, 0x9bb96572UL, 0x98356fcaUL, 0xa4aa65e6UL, 0x239c3924UL, 0x8c2b34eeUL, 0x811f2a6eUL,
- 0xc8ee27eUL, 0x2bc98d58UL, 0x9fdb9c2bUL, 0x802cbaebUL, 0x848f623eUL, 0x36a06f59UL, 0x52490dd2UL, 0xe36b40ebUL,
- 0x538d8907UL, 0xe4947ad9UL, 0xe62d19b4UL, 0xcd5bdc39UL, 0x8f63dce5UL, 0x75f8992bUL, 0xb213da2dUL, 0x7ac5dd52UL,
- 0x936ef602UL, 0x3ec0216dUL, 0xd5bfea75UL, 0x639babdUL, 0xe314ee9aUL, 0xd090094bUL, 0x1c3bbb5UL, 0x7ca06ed5UL,
- 0x7e1a6553UL, 0x12e35dafUL, 0xbcf1beddUL, 0x7622a13dUL, 0x3eeb91a0UL, 0x123460baUL, 0x6f5a54a8UL, 0xe51b0397UL,
- 0x94217cacUL, 0x9c3a9134UL, 0xb3df239bUL, 0x19738e3eUL, 0xd05bcd8fUL, 0x64fd004bUL, 0x874846b1UL, 0x8362c7e5UL,
- 0x25cf24e0UL, 0x61c4e991UL, 0x58147745UL, 0xc55eb42bUL, 0x18c4c55eUL, 0x43657f6UL, 0x560559faUL, 0xfa1ffe30UL,
- 0x1b69426bUL, 0x217593ddUL, 0x686d44d6UL, 0x5ff11cd8UL, 0x3304dc7eUL, 0xc47f6b49UL, 0xd9ba75d1UL, 0xcf7be92aUL,
- 0xc60e68a6UL, 0xa0b993a3UL, 0xda072305UL, 0x5cfad13eUL, 0x4077cff0UL, 0xe251d584UL, 0xb0c1f6cUL, 0xc4abe396UL,
- 0x4677d26aUL, 0x7ef517b7UL, 0x1cd6b650UL, 0xdc391c24UL, 0x33fa6ccfUL, 0x15113f8cUL, 0xb008ae9UL, 0xa669baf6UL,
- 0x855b7a00UL, 0xb4e4523fUL, 0x137602a4UL, 0x1ef94b7UL, 0xfb1bdd1cUL, 0x73c7786UL, 0x15c001bcUL, 0x1a923e73UL,
- 0x5a8ddab0UL, 0xa8b725d6UL, 0xf8bdc9f6UL, 0x74114f3eUL, 0xf70f0899UL, 0x6bb95f50UL, 0x454c5197UL, 0xb3a6232cUL,
- 0x6b2e45bUL, 0xc4cc67bdUL, 0x1cbf8e35UL, 0xcfa311a5UL, 0x14a59d7eUL, 0xf190316eUL, 0xdea2e7cUL, 0x7fe2d672UL,
- 0x21e28233UL, 0x9ad852b0UL, 0x69f42e14UL, 0x8be9814cUL, 0x9e69ea80UL, 0x116f091bUL, 0xf7c06423UL, 0x58891afbUL,
- 0xdd05ebc5UL, 0x12a263aaUL, 0x65a38e8dUL, 0xdf4129c7UL, 0x300d5504UL, 0x19099ad6UL, 0x2b927d6dUL, 0x5df2f3c0UL,
- 0x971f9246UL, 0xf9e333e7UL, 0x53442ec9UL, 0x4ce8e0b9UL, 0x45e873f2UL, 0xb0a847ecUL, 0xb1b9ad84UL, 0x98eda4ceUL,
- 0xd703b56UL, 0x26a2c982UL, 0x3220f382UL, 0xb7095b37UL, 0x74e631a6UL, 0x123d706UL, 0x7162a47fUL, 0x5fafd121UL,
- 0xcc4ca4f9UL, 0xe26a24c0UL, 0x973f1173UL, 0x1fca43UL, 0x3f9fa80fUL, 0x8eac2587UL, 0xbce1937fUL, 0xe602f77fUL,
- 0x3e8aa1caUL, 0xa800901aUL, 0xf0cbe9c3UL, 0xada4f9ddUL, 0x7295a9f3UL, 0x20a99c48UL, 0xb6365015UL, 0x4da4b8daUL,
- 0x3a78d4e2UL, 0xd5727a86UL, 0x7f61a808UL, 0x16d78211UL, 0xef6e7bafUL, 0x354ad399UL, 0xbe902f4aUL, 0x4f964729UL,
- 0x293b863UL, 0x9f51dce8UL, 0x366ad787UL, 0x76399dc0UL, 0x67b11ca1UL, 0x7dde92d9UL, 0x26e2237fUL, 0x4d810523UL,
- 0xfcb15530UL, 0x3d2099cUL, 0x2b3693a4UL, 0x1ffa4a14UL, 0xb4919897UL, 0xe8ac94f6UL, 0xe6cc53beUL, 0xca5f42eUL,
- 0x5b011084UL, 0xf8d5eaccUL, 0x67ba48fdUL, 0xd877f174UL, 0x7103ca38UL, 0x8c268773UL, 0x85422eebUL, 0xfdb7137fUL,
- 0x5eaa901cUL, 0x1a86fae6UL, 0x73f1eeffUL, 0xec8db310UL, 0xd6fdd9ecUL, 0x6c68ddb9UL, 0xd9ab68a2UL, 0x7e08b875UL,
- 0x8c640fc0UL, 0xf2c994d3UL, 0xfb26ab3fUL, 0x56af2c19UL, 0xc441cac9UL, 0x1ee09d81UL, 0x5fb625b0UL, 0xcdadd7ddUL,
- 0x35be2478UL, 0xc591b1f1UL, 0x2613cdb2UL, 0x90134ee8UL, 0xa6b101efUL, 0xb51aea23UL, 0x45aebd04UL, 0x1e960a81UL,
- 0xb1e76d89UL, 0xfa041296UL, 0x370329deUL, 0xc867f4ddUL, 0x278dcc58UL, 0x484e016dUL, 0xd4dcb8c6UL, 0xb0f2dc0bUL,
- 0xee54a4c0UL, 0x9e0a2516UL, 0xd2dae2a9UL, 0x5ef3cdf7UL, 0x6f8a96c2UL, 0xdec80fd2UL, 0x6303430UL, 0xdcd963d1UL,
- 0xf3278302UL, 0x35e1821dUL, 0xb3755505UL, 0xa823e4a0UL, 0xa9bc83dcUL, 0xa43c99a7UL, 0x55c7908bUL, 0x79d4d22bUL,
- 0x2a1231eaUL, 0x4656fe8eUL, 0x890645d3UL, 0x6e802130UL, 0x9d385125UL, 0xee0dd8b8UL, 0xa9c34b85UL, 0x956aee3fUL,
- 0x8ce98fc2UL, 0x9c01bb10UL, 0x49f4c4c5UL, 0x9fe5c60cUL, 0xc6c740a4UL, 0xe25dd6ebUL, 0xdc4d9888UL, 0xc3fc82b1UL,
- 0x8883a8a4UL, 0x87470ec8UL, 0x948b6317UL, 0xc135bcd2UL, 0x31516863UL, 0x3cdc5dfeUL, 0x8b2aa2f2UL, 0xbdf4ee7cUL,
- 0x80344817UL, 0xaadef06eUL, 0xead36106UL, 0x2d69c2fUL, 0xbe8cc9d9UL, 0x29b0b877UL, 0x5a8b033eUL, 0x541c3f0eUL,
- 0xa9d91bcbUL, 0x5af509f6UL, 0xf2c9c952UL, 0xc90d4910UL, 0x3ef621daUL, 0xf693e1eUL, 0xaf6f89f5UL, 0xb9345bb2UL,
- 0xc1b44b85UL, 0x2060ebf1UL, 0x992372cdUL, 0xbbc9eed5UL, 0xa1b03950UL, 0xd7ecd0d1UL, 0x6ecebb90UL, 0x9edea3ffUL,
- 0xce919ae2UL, 0x6d4dc697UL, 0x45762998UL, 0x9607ef74UL, 0x5ec6120UL, 0x5c8772acUL, 0x32fb9c1UL, 0x9fb65b62UL,
- 0x1362e055UL, 0xefd0d198UL, 0x93160d3fUL, 0x41d49ac6UL, 0xd86d0631UL, 0x27aadadUL, 0x30ecd6f1UL, 0x8d6972c8UL,
- 0x5764f666UL, 0xc2db0930UL, 0x9aeaf129UL, 0xf755df69UL, 0x1cbbd0fdUL, 0xa12d2c7fUL, 0x56ea407cUL, 0x56e91016UL,
- 0xb2bb9fUL, 0x7de6f8ffUL, 0xc15d2154UL, 0x727ed08aUL, 0xe2e6a2faUL, 0x8df19701UL, 0x3f2526eaUL, 0xe1640876UL,
- 0x3cbf965UL, 0xd7841343UL, 0x9e026a02UL, 0xb1422e07UL, 0xd303c2d4UL, 0xc85a1b54UL, 0xf1ed5459UL, 0xe0a02b8fUL,
- 0xdd3c00f9UL, 0x9e7a81c3UL, 0xb92a3c1fUL, 0x6a7f391cUL, 0x19ca163bUL, 0xd02085c1UL, 0xe74125c5UL, 0x380d4c72UL,
- 0xacc9200eUL, 0xdae49d09UL, 0xbd4dcb3bUL, 0xab99fa12UL, 0x71989736UL, 0x842f03dfUL, 0xcd193533UL, 0xf33be83eUL,
- 0xd1e989afUL, 0x3ad6ad4UL, 0x4f5aef09UL, 0x5310b5abUL, 0x5000bdbcUL, 0x13faaf8eUL, 0xf351fb32UL, 0xd685cad8UL,
- 0x35f8c0ecUL, 0x7eb17183UL, 0x421a4649UL, 0x890501e9UL, 0x2b265a88UL, 0xa6f049b3UL, 0xc18dd298UL, 0xa2e5fd8fUL,
- 0xf2c75eedUL, 0x7401af94UL, 0x8bb87aaUL, 0xcbbb6b7UL, 0x2bd6cd79UL, 0x5cb0d1b9UL, 0x2851c9d2UL, 0xf84e0f5UL,
- 0xd993af58UL, 0xaa44be67UL, 0x80762a3cUL, 0xbb52ca95UL, 0x5e6827bUL, 0x832c1114UL, 0x18759df2UL, 0xc545bb84UL,
- 0xb688375bUL, 0xa9f0ce51UL, 0x27769b18UL, 0x891d1ed8UL, 0x91c35b42UL, 0xc3c14bcfUL, 0x17008543UL, 0x3c6b7469UL,
- 0xcb879681UL, 0xbc4c5abaUL, 0x2b639872UL, 0xedcb6a10UL, 0xb8e4bd91UL, 0xc69effe4UL, 0xfb43d8f5UL, 0xb707c43UL,
- 0x673e049cUL, 0x46e00d60UL, 0x26198e8aUL, 0x85358a77UL, 0xb94e617cUL, 0x66ff6f2UL, 0x727985ebUL, 0x7e764d67UL,
- 0xae3bf6ffUL, 0xe0582d4UL, 0x4206f3e3UL, 0xfcc2f0d8UL, 0x77f9a3fbUL, 0x8c0516c7UL, 0x9d722681UL, 0xda21783dUL,
- 0xeb56eeaaUL, 0xbf8005efUL, 0x436209a9UL, 0xe9988bdeUL, 0x41d5a9c7UL, 0xafd6212bUL, 0x6de7caaUL, 0x190dba34UL,
- 0x8b21caceUL, 0xaffdbec0UL, 0x36f5edcaUL, 0xbb80423fUL, 0xc1c41993UL, 0x3f47abc7UL, 0x62710674UL, 0x66ccc538UL,
- 0x3736ff9eUL, 0x42fcb32eUL, 0x925aea65UL, 0x74d9df89UL, 0xaf77a2c4UL, 0xa76776edUL, 0x90124fccUL, 0xbe113bbcUL,
- 0x66355239UL, 0x90911eebUL, 0x1866effbUL, 0x62683c21UL, 0x69ee510aUL, 0xc1386275UL, 0x780e6757UL, 0xde12de46UL,
- 0x84d83722UL, 0x20409c8aUL, 0x5f226bcdUL, 0x53cdf174UL, 0x50505fc6UL, 0x74b06fbaUL, 0x3f203af4UL, 0xe11579ecUL,
- 0xbaa5f99dUL, 0x74d01551UL, 0xee9e29b0UL, 0xa02683c6UL, 0x3dd7cda9UL, 0xbfa560c7UL, 0xf985369bUL, 0xfdc6302cUL,
- 0x71ea3891UL, 0x620aa9b7UL, 0x8fcfca13UL, 0xaaa2b51dUL, 0xb31d7edcUL, 0xa08bed66UL, 0x4e80fc1eUL, 0xf08d26fbUL,
- 0x6e657ff2UL, 0xbc9dbe0bUL, 0x3aec73d4UL, 0x4b82519eUL, 0x3cc29adeUL, 0x836b84edUL, 0x23868dbUL, 0x32a34b2aUL,
- 0x72537c6cUL, 0x6945fd86UL, 0x5e33f95dUL, 0x59f45d15UL, 0x26cd2d51UL, 0xc90cc7aUL, 0x6b0bc4bbUL, 0x645debfUL,
- 0x5f60438cUL, 0xc66f8b42UL, 0xf7c99a43UL, 0xe0362c64UL, 0xd37ee435UL, 0xf5534e73UL, 0x503449b3UL, 0x4e68f74bUL,
- 0x14085d6cUL, 0xa5d5cc14UL, 0xf0bf1735UL, 0xb02f5d6bUL, 0x3fb15cc1UL, 0xa6990de5UL, 0xc40839dcUL, 0x34594a19UL,
- 0x3845af87UL, 0xa2f4bd85UL, 0xb1ff1db4UL, 0xdff68d0bUL, 0x5b822c01UL, 0x1b1fa51fUL, 0x7e2ab83UL, 0xd5e051d0UL,
- 0xbc12bfafUL, 0x6c722589UL, 0xf7975fbbUL, 0x74873932UL, 0xeb6190a2UL, 0xc2b38b5UL, 0x27651be5UL, 0x544af063UL,
- 0x482c2c8UL, 0x117bd6b1UL, 0x49291d49UL, 0xeed43d88UL, 0x6a09a964UL, 0x46d85ea0UL, 0x21d743ffUL, 0x205af1f1UL,
- 0xe3c8aeb2UL, 0x23b63d8UL, 0xa1acb8c3UL, 0x9d4a1c32UL, 0x1438e712UL, 0xd7707734UL, 0x875ebfdcUL, 0x727cb55dUL,
- 0xf4e43a3aUL, 0x3b28b4a5UL, 0xbca7a2e1UL, 0xfdd793c1UL, 0xc398ff6bUL, 0xfb3a593dUL, 0x7a8d0a42UL, 0xe32e8295UL,
- 0xda19ad94UL, 0x2e1a054dUL, 0x30fca24dUL, 0x3c3b7447UL, 0x309fb4c3UL, 0x1e1949b9UL, 0x73657777UL, 0x78545423UL,
- 0xd2ef3735UL, 0xb1e37d19UL, 0xe8ee3342UL, 0xd20716f1UL, 0xef7e8bc3UL, 0x2e4eef9aUL, 0x3b5a573bUL, 0x149c6b76UL,
- 0xbb515a31UL, 0xb767f9ceUL, 0x2e34e006UL, 0xb3f7777eUL, 0xdcebcbdcUL, 0x7ab1d275UL, 0x8a7c6b7bUL, 0x918b2a0UL,
- 0x3cc25147UL, 0x2b723052UL, 0x814daf42UL, 0x9ad97adeUL, 0x1e2f64a4UL, 0xa4a221f2UL, 0xf30764bcUL, 0x950d2c9dUL,
- 0x1dc1e8f0UL, 0x11a6e0e7UL, 0xcf72e283UL, 0x1da16abeUL, 0x222eff71UL, 0x12dd4db2UL, 0xb307f1d8UL, 0x8e004808UL,
- 0x97931164UL, 0xe25aa7aUL, 0xdc3fd1f5UL, 0xc06266c7UL, 0xf1f66f02UL, 0x697b17b2UL, 0x599eb32UL, 0x9e797676UL,
- 0x7dbf0315UL, 0x6badc54cUL, 0x5b2ca4eUL, 0x81baaf1aUL, 0x9cfe8900UL, 0x43cf8b15UL, 0x2ab77f2eUL, 0x16f392dUL,
- 0xd44a1780UL, 0xd8f16810UL, 0x79bd3e71UL, 0xf058c025UL, 0x50df32d6UL, 0xf4661b49UL, 0x1a15be44UL, 0x4b1b76c8UL,
- 0xc64e86e2UL, 0xbef157c8UL, 0x16cd18bcUL, 0xcf00577cUL, 0xa74c2771UL, 0x93cf98cfUL, 0x64eaffb2UL, 0x2136f21aUL,
- 0x27bd9662UL, 0x7b1b7137UL, 0x1ab2cbbeUL, 0x8265f850UL, 0x5e82cadaUL, 0xe3cb025bUL, 0xc7dd3cbaUL, 0xe6116608UL,
- 0xa2ee860cUL, 0xa2dcd867UL, 0xb1877597UL, 0x4dd0b5ceUL, 0x6b386c51UL, 0xdd6a5c34UL, 0x80e0a4c2UL, 0x2e6037bcUL,
- 0x6693cc4cUL, 0x9113939dUL, 0xe072daadUL, 0xbd9399bcUL, 0x5fccb621UL, 0x9f694cb9UL, 0xe319369bUL, 0x425d3990UL,
- 0xf5e7a6bdUL, 0x67a59433UL, 0x3844ee1cUL, 0xef9f3e0aUL, 0x1f2cdaafUL, 0x5182d18dUL, 0x528c5baeUL, 0x74be4e07UL,
- 0x1a5c23ceUL, 0xcad8d6f1UL, 0xe56c2ef5UL, 0x9419c8baUL, 0x92de672bUL, 0x6349a39UL, 0x7cdc015cUL, 0xe0dbcf26UL,
- 0xf9758e1fUL, 0xe2450c00UL, 0x7536e1aeUL, 0x573509f1UL, 0x676b67f5UL, 0x9dd391b6UL, 0x92de89acUL, 0xcc50046eUL,
- 0xf5861321UL, 0x9f33df02UL, 0x4c0201aaUL, 0xcddefb6eUL, 0x47794e02UL, 0x4b381810UL, 0x675d7724UL, 0xa72fef18UL,
- 0x84778143UL, 0x48f36bf3UL, 0x53320f51UL, 0xd3e40fc5UL, 0xc1b61806UL, 0x3a5ac83eUL, 0x8622703cUL, 0x6688dc6aUL,
- 0x7565f8c1UL, 0x5e86e76aUL, 0x3a8d7cbcUL, 0x8a609539UL, 0x4e33f520UL, 0x177e6da0UL, 0x37bd2e76UL, 0xc76b916UL,
- 0xea8b9be5UL, 0xa3bdced9UL, 0x5c64e6cbUL, 0xd54b4801UL, 0xc8ae77a0UL, 0x2c20a921UL, 0x3f576f0cUL, 0xd51b4bb0UL,
- 0xcb15aed8UL, 0x48645268UL, 0x245f6cb7UL, 0x67e4765UL, 0xa89828b3UL, 0x3cbf7771UL, 0x1a746545UL, 0x795012edUL,
- 0x4e072e02UL, 0x166ec732UL, 0x2bccf3b6UL, 0xd4960d4UL, 0x9b7230eUL, 0x63d52aa8UL, 0x5a139800UL, 0x13a38308UL,
- 0x323d9b4dUL, 0x25354b9cUL, 0x25564a72UL, 0xbba131b6UL, 0xf2c83dd0UL, 0x6fec35eaUL, 0x77f9547fUL, 0xe8ebed9UL,
- 0x8cfa0deaUL, 0x77e3cb88UL, 0x280f9f3aUL, 0xc56c499fUL, 0xf90266a1UL, 0xd7f698efUL, 0x38c573b9UL, 0xc737d9b5UL,
- 0xcb84c1c8UL, 0x7b734b05UL, 0xe950b815UL, 0x9c1163d6UL, 0x10162e12UL, 0x397f039eUL, 0xb225a634UL, 0x1098cd83UL,
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0xe162bd17UL, 0xf32f75c7UL, 0xb517821UL, 0xd56502e2UL, 0xf8bd2ebcUL, 0x778098a7UL, 0x1fb4e8baUL, 0xb70ce07aUL,
- 0x9002587cUL, 0xbe695f99UL, 0xe678f51cUL, 0x889bb8e3UL, 0xb8648541UL, 0xee0100c6UL, 0x7c4a2021UL, 0x56cf6a4bUL,
- 0x829e0e89UL, 0xe1d486bUL, 0x80f031e5UL, 0x65d8d445UL, 0xdcccc0e7UL, 0xbe2523cbUL, 0x843381ffUL, 0xcaaf4b37UL,
- 0x2d69fec0UL, 0xf40616efUL, 0xf88452c7UL, 0x30f89eddUL, 0xd3b895cdUL, 0xce77a067UL, 0xdaf2d1fUL, 0x43ea1afaUL,
- 0x2256e0b6UL, 0x5cce7953UL, 0x6aeefa1bUL, 0x98054077UL, 0xd453c698UL, 0x792c11efUL, 0x83483ef5UL, 0x8a97f513UL,
- 0xf4035fd0UL, 0x643c724UL, 0xd52c492cUL, 0xd274694eUL, 0x9b8a5728UL, 0x522ecfd6UL, 0xc432d14fUL, 0x861b425eUL,
- 0x116588fbUL, 0x57c3dc8cUL, 0xbc5cf0c1UL, 0xc3d51148UL, 0x777bc09bUL, 0x433b76afUL, 0x9d01f220UL, 0x1230810aUL,
- 0xa7b63bc9UL, 0x2340865aUL, 0xbbfb3906UL, 0xf1a18044UL, 0xd1c8179fUL, 0xa9f8920UL, 0x5c870d40UL, 0x642f6527UL,
- 0x4d02af4UL, 0xf3073a0aUL, 0x611f5010UL, 0x9dc6befUL, 0x2b71f696UL, 0x6a671ba0UL, 0xe71dd26cUL, 0x40508621UL,
- 0xe31d0d58UL, 0x50405743UL, 0x8b8a46e8UL, 0x15971e6eUL, 0x7afc10ebUL, 0x45161197UL, 0xba44cdf8UL, 0x814f3af4UL,
- 0xaf1dde65UL, 0x177d66ccUL, 0x44dd8038UL, 0xd6dbbe7cUL, 0x26764a5cUL, 0xeefac7b6UL, 0x4c695809UL, 0xca185df6UL,
- 0xe9270ccfUL, 0xb59c2a9cUL, 0x9c07f378UL, 0x79d4fbb8UL, 0xe54c402fUL, 0x24302f81UL, 0x8701c246UL, 0xb6430716UL,
- 0xc32946d8UL, 0x599980e9UL, 0x8d5f1cbUL, 0x8121ac9UL, 0x946884f3UL, 0x18256d95UL, 0x30ec1ca4UL, 0xdc5c79feUL,
- 0xd06beae3UL, 0xa7089ecfUL, 0x5adf88f2UL, 0xb7769bd3UL, 0x7a2f2dc4UL, 0x60ce2b07UL, 0x6d6b02c1UL, 0x79367a20UL,
- 0xa11aee99UL, 0x6bfa20a5UL, 0x8f7c4c59UL, 0x87078665UL, 0x718acb6eUL, 0xd72eb785UL, 0xfb733ff1UL, 0x4976d30eUL,
- 0x95a31e2eUL, 0x26ff47eeUL, 0x90bcad23UL, 0x5647f360UL, 0xbdfc25adUL, 0x8c2233a4UL, 0xae19ea20UL, 0x4a657f0cUL,
- 0x9950f0c4UL, 0x1ede6378UL, 0x30b2ed8fUL, 0xacc9f8e0UL, 0xd50529b5UL, 0xd044a50UL, 0x7b56999cUL, 0x158e39d8UL,
- 0xb48ec67aUL, 0x914aaa95UL, 0x14f418b4UL, 0x2158a709UL, 0xb30b1c0aUL, 0x9f04f177UL, 0x6a5ca00aUL, 0x64295e2dUL,
- 0x4713bcd5UL, 0xcad956bbUL, 0xa9dc5298UL, 0x7db646c9UL, 0x406ab159UL, 0xeaedf191UL, 0xc3d93f5aUL, 0xc883d8adUL,
- 0x60f0a214UL, 0xb98c4346UL, 0x9e513024UL, 0xc8f0fa89UL, 0x4fb7087cUL, 0x43f8ae94UL, 0xdca341aUL, 0xb701e28eUL,
- 0x9844e267UL, 0x5a48206eUL, 0x6c385faeUL, 0x2b2abb4aUL, 0xbf2c8522UL, 0xbd2681c4UL, 0xd617ff69UL, 0x929f2d48UL,
- 0x886356f2UL, 0xfd75187aUL, 0xb3f1a36bUL, 0x8f8059f5UL, 0xf97f9b88UL, 0xe77ce033UL, 0x36aece59UL, 0x173c385fUL,
- 0x8182c3f3UL, 0x7c67140fUL, 0x3aca58e3UL, 0x7e06574dUL, 0x80fc4dbUL, 0xfb34ec44UL, 0x485cd3c9UL, 0x22f30726UL,
- 0x1c0828e4UL, 0x72053211UL, 0x402f599eUL, 0x80a94bb1UL, 0xa1eff441UL, 0x3ecd0f16UL, 0x6d89218UL, 0x31da1266UL,
- 0x4a192e08UL, 0x38450ec9UL, 0xc1c6f751UL, 0xe145450aUL, 0xd3ae3e5dUL, 0xbc3a7f2bUL, 0xd4d1e289UL, 0x93e4d514UL,
- 0x9b5b21d5UL, 0x897eaa21UL, 0xfc821e73UL, 0xfa9c65cUL, 0x69520d69UL, 0x35ef1335UL, 0x1997908dUL, 0xfa072454UL,
- 0x2b8583ebUL, 0xc7633da0UL, 0x90459fc8UL, 0xc6c6a875UL, 0xf0181e94UL, 0xc9d31bc7UL, 0xa8b480b4UL, 0x5c0cd701UL,
- 0x74fdc5e9UL, 0x714e33bUL, 0x9e104bb4UL, 0x8692bd19UL, 0x67c7f8d6UL, 0x2f7a7327UL, 0xdff2b229UL, 0x417b7c41UL,
- 0x56c6e3a6UL, 0x5b191bcaUL, 0x248240f1UL, 0x42a15a29UL, 0x95ddbafUL, 0x4f076058UL, 0x21f3c711UL, 0x10059ed9UL,
- 0x9d2421ffUL, 0x7e2629b4UL, 0x7880d1c3UL, 0xf1703c16UL, 0x23af57e5UL, 0xa6a12463UL, 0xdadbd763UL, 0xc656c351UL,
- 0x18d574e1UL, 0x39e4d8aeUL, 0x6847f0ffUL, 0x95d901a6UL, 0x72a3408eUL, 0xfddb879cUL, 0xe9f47a2eUL, 0x71847016UL,
- 0x2e6b3496UL, 0x8604baf3UL, 0x92d2d665UL, 0x858336b3UL, 0x808e08e0UL, 0x18fd011aUL, 0xea232e8UL, 0xc52916a5UL,
- 0x453f286aUL, 0xca85d855UL, 0x2917375UL, 0x1394f412UL, 0x22febaccUL, 0xf10af5d3UL, 0x9ed142ecUL, 0x51a61b61UL,
- 0x7c1f3ddcUL, 0x4d1bff19UL, 0xa34631fbUL, 0xd2bd2941UL, 0x6fc624afUL, 0x9336ac3aUL, 0x93b16b16UL, 0x5d5c8e74UL,
- 0x97719921UL, 0x5e27e6e6UL, 0xa5e4975aUL, 0x33c5524cUL, 0x1aa3e221UL, 0xa3cbdfb0UL, 0x49d1ae9dUL, 0xa0ebc224UL,
- 0xceadb418UL, 0xa372bc6dUL, 0xbae420e4UL, 0x8eb90493UL, 0x33e78933UL, 0xa73d9a4aUL, 0xb2655c07UL, 0xb3543547UL,
- 0x6ede0c32UL, 0x4583d64bUL, 0xfa60eb8UL, 0x402ec0d6UL, 0xd60f3781UL, 0xa290e440UL, 0xe6b6ba85UL, 0x951b0a5eUL,
- 0x3dc47bdcUL, 0x70357a8aUL, 0xf8829f54UL, 0xb87d3786UL, 0x3318164eUL, 0x9977f1abUL, 0x3fdd51a7UL, 0x1fc1b51aUL,
- 0x3ad7fd04UL, 0xb62c51a5UL, 0xe0fa42bbUL, 0x87d9f89aUL, 0x7518d7e2UL, 0x210895f5UL, 0xd8826191UL, 0xc31590beUL,
- 0xc9802beUL, 0xc432b610UL, 0xfb904363UL, 0x6269c388UL, 0x695a664fUL, 0x12088d69UL, 0x3ce4d74eUL, 0x6d985962UL,
- 0x6035085cUL, 0xf9d6789bUL, 0xff086dcUL, 0x85dd7254UL, 0x77567a06UL, 0x37461219UL, 0x14654dedUL, 0x10ce16d8UL,
- 0xd3d404b1UL, 0x77798e53UL, 0xf7aee60dUL, 0xb3bd8f77UL, 0x7c1a3827UL, 0xb7519249UL, 0x9f62cfe1UL, 0x7baf6aaeUL,
- 0x6bdb482eUL, 0xb56cdeefUL, 0x10a12e46UL, 0xd2c17381UL, 0x380729bdUL, 0x1a263bd4UL, 0x2ca51a07UL, 0xed887173UL,
- 0x5a34c8faUL, 0xd55b5531UL, 0x92dfd5b3UL, 0xf1e8b77UL, 0x6117ca06UL, 0x1c98e9e0UL, 0x3212e8c3UL, 0x16114f9cUL,
- 0x5a7960e6UL, 0xee7a8883UL, 0x694df672UL, 0x2baea6ffUL, 0xe034a91UL, 0x3be23d56UL, 0xc2bd68a9UL, 0x819e458UL,
- 0x142da52cUL, 0x38f5aa05UL, 0x3a1cbae9UL, 0x414422b2UL, 0x408134faUL, 0x48c14d1bUL, 0xb1d9bb05UL, 0x85a7c7cUL,
- 0xdb30d83fUL, 0xf59dc046UL, 0x5e8cd03dUL, 0x4a18ea0eUL, 0x9b72b01dUL, 0xa422129cUL, 0x80adc400UL, 0xa6dc667cUL,
- 0xe7f18682UL, 0x7e26457bUL, 0xeb730bf8UL, 0x9774b564UL, 0xcb6a0dc6UL, 0xc8dfe710UL, 0x80ecc335UL, 0xa10bafb1UL,
- 0x53a17ce5UL, 0x20f3cc35UL, 0xcfeaaddeUL, 0x5b6c778fUL, 0x8dd055f2UL, 0x79f29dd5UL, 0xa0c645acUL, 0x2ada0d63UL,
- 0x65cabb69UL, 0x16c37669UL, 0x5157554aUL, 0x4f19cd70UL, 0x872a80e8UL, 0x77e414e1UL, 0x121d3dfdUL, 0xf9452bfaUL,
- 0x714cdea3UL, 0x623cc678UL, 0x9ae2f108UL, 0xe6d76871UL, 0x7a0b6747UL, 0xd6bfb9ecUL, 0xde5450c0UL, 0xe5e56841UL,
- 0x8abdb0e5UL, 0x24cd0b9bUL, 0xb318ea10UL, 0x33a89563UL, 0x5e040f92UL, 0xdea10e77UL, 0xdb83c07eUL, 0xf269220cUL,
- 0xec954eedUL, 0x3db279c1UL, 0xa7638e47UL, 0x9229374fUL, 0xacdc89beUL, 0xe44b78deUL, 0xe0d8250eUL, 0xb1fba819UL,
- 0xa9a2e18bUL, 0x32c55f7dUL, 0x68931f36UL, 0x3e6b7f4eUL, 0x27c27001UL, 0x929f7c8cUL, 0xb4ea4ddaUL, 0x2e8f45aeUL,
- 0x8cbae163UL, 0x684ad8eeUL, 0x6766b42eUL, 0x4f23cc7dUL, 0xb075a4acUL, 0xd46d1b25UL, 0x72d68785UL, 0x8b329322UL,
- 0x1102df25UL, 0xf9291a11UL, 0xce09b9b1UL, 0x8cc2e8f1UL, 0xfbf36911UL, 0xee77334cUL, 0xdb73c025UL, 0xa12a0106UL,
- 0xdde97cb5UL, 0x5c25a2fbUL, 0x265df0a2UL, 0x35db98d4UL, 0x98770f18UL, 0x11b37485UL, 0xccde47bUL, 0xff95de83UL,
- 0xe4ed124UL, 0x15040d4bUL, 0xfb47fff8UL, 0x31706c58UL, 0x2042ec06UL, 0x1bf581bcUL, 0x5b7ffb72UL, 0x2b651471UL,
- 0x5b91f116UL, 0x11928e28UL, 0xa25f0872UL, 0x50051b19UL, 0xc7f4cd43UL, 0xe6c1513bUL, 0xa050091aUL, 0xd749f8ceUL,
- 0xd84065bfUL, 0xc2fb8211UL, 0x67ecfee2UL, 0x1a51b733UL, 0xb700f17cUL, 0x3a38672fUL, 0x3c5385cbUL, 0x6962eb83UL,
- 0xcdf8d1c2UL, 0xbde1a94fUL, 0x96b203c6UL, 0x7680c89aUL, 0x6adb90c4UL, 0x9b6eea30UL, 0xb50ce8a1UL, 0xe3f09d85UL,
- 0x38aedf77UL, 0x84a6ee3dUL, 0xb71e47a7UL, 0x8328a936UL, 0x2be46c4bUL, 0xdd805975UL, 0xc43827e3UL, 0x2535cb4fUL,
- 0x43c9af75UL, 0xdcfe2384UL, 0x1e7c780UL, 0x18f9b97eUL, 0x9fb0fedfUL, 0xf4eb56ceUL, 0x261c43b0UL, 0xe77de0ceUL,
- 0x26a46566UL, 0x94ff9d0UL, 0x9d5e83e0UL, 0x87ab693bUL, 0x624bba70UL, 0x114cb018UL, 0xda1aefdbUL, 0xedd055ceUL,
- 0x917210b0UL, 0x4e1c1bb4UL, 0xa819c7cbUL, 0xce637d25UL, 0xc57d9446UL, 0x9ffb194dUL, 0x70a15502UL, 0xbdea66dbUL,
- 0x64090148UL, 0x8a5f0a22UL, 0xe3af318dUL, 0x6f3167caUL, 0x7cde608cUL, 0xa975a126UL, 0xfd7c988fUL, 0x9529d910UL,
- 0x78d465aaUL, 0x82db75a7UL, 0x9ee32b66UL, 0x74af85c1UL, 0xc86478f6UL, 0x9c2678d9UL, 0xdb04b0deUL, 0xeb611185UL,
- 0x2240aa60UL, 0xee786fd9UL, 0xb3331c98UL, 0x88d018a2UL, 0xf27f67bcUL, 0x729deedbUL, 0xd8285584UL, 0x9406d9a1UL,
- 0xd1f13f0UL, 0x6cf30378UL, 0x355139cbUL, 0x465ec41fUL, 0x6da797cdUL, 0xdc804227UL, 0x626d1e0dUL, 0xeaa363fcUL,
- 0x9fec93c3UL, 0xcb872588UL, 0x9d8471eaUL, 0xd3139e35UL, 0x5cefb304UL, 0xc6b3f34bUL, 0x977fa18fUL, 0x37566f98UL,
- 0x4681d374UL, 0x4534002bUL, 0xdffcc399UL, 0xbac7e33eUL, 0x67f83f73UL, 0x8fc28c81UL, 0x7f329083UL, 0x64c97620UL,
- 0x39d1ca0cUL, 0x7befeb43UL, 0x5bffe2edUL, 0x741668ffUL, 0xad64e2c4UL, 0x6be7ac88UL, 0x1879b398UL, 0x519b7697UL,
- 0x5b78d04aUL, 0xe88b6761UL, 0x37702f14UL, 0x8cd85f8fUL, 0xc6cc8728UL, 0x85c7d50dUL, 0x8bcba949UL, 0x921e2472UL,
- 0x8ee5a4aeUL, 0xb9afb3ddUL, 0x2d14fb19UL, 0x2c7c2b36UL, 0x849be4aeUL, 0x99fa0775UL, 0x5b89af4UL, 0xd59a5417UL,
- 0x2096b8c7UL, 0x57306568UL, 0xf51cdb99UL, 0xf737538aUL, 0x98d14a3bUL, 0xfc6fb44dUL, 0xe0da39e5UL, 0x21fe77b0UL,
- 0x5defc1a5UL, 0xda30b0caUL, 0xfda2cbeUL, 0x9d5b11e1UL, 0x2af9785dUL, 0xd3ff9c40UL, 0x800f0b48UL, 0x80745777UL,
- 0xa57f12abUL, 0x44a23e74UL, 0xa904adceUL, 0xee74c403UL, 0x3170e90bUL, 0x698352eaUL, 0x2878d734UL, 0x5b8d1512UL,
- 0xf18d5d8aUL, 0xff38be84UL, 0xb225def6UL, 0x254afeccUL, 0x71e5f742UL, 0x43f00871UL, 0xd729efb6UL, 0xed311d9eUL,
- 0x1f27ccd7UL, 0xe7688425UL, 0x3cf8dd8eUL, 0x292d87d4UL, 0xa514ac31UL, 0x63c146f2UL, 0xd52a361aUL, 0xbd554524UL,
- 0x69ff6027UL, 0xc3f2dd6fUL, 0xfd012ea7UL, 0xf78809abUL, 0xe2d02612UL, 0xdef82fc5UL, 0x46069b02UL, 0x36c6726bUL,
- 0x83eb5a2fUL, 0xbabce5d1UL, 0x806292b1UL, 0x1d41a9eaUL, 0x5d6b5118UL, 0x11d80dedUL, 0x26636991UL, 0x1b111437UL,
- 0x6f819729UL, 0xa6596bf1UL, 0xd5d6f2cbUL, 0x73676989UL, 0x1d46869fUL, 0x918110cfUL, 0x57b25597UL, 0xd94b9fbeUL,
- 0x3e60f520UL, 0x30905faaUL, 0x772e730bUL, 0xfb302cadUL, 0x72af4361UL, 0xeb5a83f0UL, 0x8de07777UL, 0x6639795UL,
- 0xf5651985UL, 0x7c076900UL, 0xf739a126UL, 0xcb60a49cUL, 0xc64148c2UL, 0xf9a5145cUL, 0x4c5c5570UL, 0xf54c2807UL,
- 0xca650f32UL, 0x9abd3f99UL, 0x4c9490ccUL, 0x6a88a7fcUL, 0xa2743fc7UL, 0x7086deedUL, 0xb70402f3UL, 0x59ac835aUL,
- 0xd9a93238UL, 0xf49cf320UL, 0x2e0a229dUL, 0x686635c4UL, 0xcf6a3ff3UL, 0x54d3bd65UL, 0x93c730c3UL, 0xae0977f4UL,
- 0x1731616UL, 0x12e073a4UL, 0xdd532797UL, 0x1da73ca5UL, 0xa45ed788UL, 0x5834ae02UL, 0xf19ac834UL, 0xaad5423dUL,
- 0x424f99baUL, 0x4ebdabffUL, 0x82d91b1dUL, 0x4245e619UL, 0xf872a40dUL, 0xe705c10UL, 0xef43df9UL, 0x866f6622UL,
- 0x19de4a0UL, 0x993c85aeUL, 0x13ea22d0UL, 0x703918cUL, 0xb9ffad78UL, 0xd4151c3UL, 0x633d954fUL, 0x8b580766UL,
- 0x2af93c3eUL, 0x23756e59UL, 0xd4b9b12fUL, 0xf9318f0cUL, 0x6a8e5e1bUL, 0x4ec524c4UL, 0x58f46edbUL, 0x8b126dafUL,
- 0x1cd63c0UL, 0xf4764a07UL, 0xc4fa6039UL, 0xb94d976dUL, 0xbbd5f09dUL, 0x1837257eUL, 0xf128c7eUL, 0x167149a4UL,
- 0xa6c617ffUL, 0x9a852863UL, 0x6f263f86UL, 0x22f444c2UL, 0xc14f0441UL, 0x98fdcc2aUL, 0xab09c8fcUL, 0x8d850b3dUL,
- 0x1395346dUL, 0xb13c0ec4UL, 0xf33a1ac9UL, 0xc93cfe1UL, 0xfd433856UL, 0x8919a996UL, 0x65c19d17UL, 0x36b2119cUL,
- 0x2be57495UL, 0x80ec6336UL, 0xaefae7cbUL, 0x8944928aUL, 0xa3a0d71fUL, 0x55af5edUL, 0x445cf0e2UL, 0xe6332203UL,
- 0x894a78c5UL, 0x800305f6UL, 0xb2cdfe5cUL, 0xa35f0873UL, 0xf8727411UL, 0xe93475a5UL, 0xfcb921b2UL, 0xa9549993UL,
- 0xe968f1f4UL, 0x1479b8d1UL, 0x4a70eb56UL, 0xea2202e4UL, 0xc90479bcUL, 0xb955f098UL, 0x41914d19UL, 0x885e89c0UL,
- 0xd261566cUL, 0xa7099d72UL, 0xf2489c93UL, 0x6bb9f826UL, 0xef56f2e6UL, 0x5e2ecf04UL, 0xebda4a0aUL, 0x4c2ee6edUL,
- 0xa0d5b14UL, 0x520204beUL, 0x78314e8eUL, 0xd2fb886fUL, 0x7e0aef6UL, 0x44190b3fUL, 0x13cd0b2UL, 0x6186843cUL,
- 0x62c313e4UL, 0x80a63510UL, 0x27497aecUL, 0x69d01f7aUL, 0xfa670812UL, 0x84b80656UL, 0x3a98c291UL, 0xf090fd36UL,
- 0x36a74d5dUL, 0x7322c269UL, 0x4b23d944UL, 0xec08c52cUL, 0xc6194f8UL, 0xd0aae7f9UL, 0x6bcc81f7UL, 0x7c309fa2UL,
- 0xeb7b4747UL, 0xcb28d0abUL, 0xccc035b6UL, 0xa7e838aeUL, 0xc8765354UL, 0x55b01c09UL, 0xef4f7f47UL, 0xea123c52UL,
- 0x5b0c12c3UL, 0x64897f4aUL, 0xe8564131UL, 0xb4e88fbcUL, 0xe67d941aUL, 0x59c315b1UL, 0xe4f61e9fUL, 0xdfbca66bUL,
- 0xb50c26aeUL, 0x47258382UL, 0xba51ab36UL, 0xec1f314aUL, 0xacdd0540UL, 0x706ae95UL, 0x7abf586cUL, 0xc3c2a86dUL,
- 0xb4c51ce7UL, 0x816bb5ecUL, 0xce7bb516UL, 0x4d9f8c86UL, 0xd91f45c0UL, 0x67a65f67UL, 0x6ddff131UL, 0xb6e8b50aUL,
- 0x55e061a9UL, 0x57590431UL, 0xac666d83UL, 0xab063392UL, 0xaf22d5a7UL, 0xd4e0f469UL, 0x82f84c91UL, 0xb82d2c63UL,
- 0x3d515583UL, 0xa3439237UL, 0x4f7a27f6UL, 0x7335ea60UL, 0x9322ead7UL, 0xc8b81ea2UL, 0x741797fUL, 0x8f791b9cUL,
- 0xefaf64f2UL, 0x3dc0140bUL, 0x6b084f13UL, 0x28e7dff7UL, 0xe0140354UL, 0xf5555d5aUL, 0x64c3a48bUL, 0xb8899c0cUL,
- 0x17da392dUL, 0xfdde3d54UL, 0x369bf191UL, 0x2f0c1660UL, 0xcccfc40aUL, 0x85f0296fUL, 0x66c95f49UL, 0xe5162c39UL,
- 0x16ed46ebUL, 0xf26947bUL, 0xe803d575UL, 0x769f2f4cUL, 0x11434ab3UL, 0xbca85692UL, 0xe3a8ab9UL, 0x92f4f5e0UL,
- 0xab6b0f95UL, 0x5c7c776eUL, 0xa87bf80eUL, 0x520d21b4UL, 0xc4be1d5fUL, 0xce476babUL, 0xbbc30c8bUL, 0x5e2237f4UL,
- 0xcd295a16UL, 0x6aff6da6UL, 0x9dac6ed8UL, 0x376d7041UL, 0xcc597c55UL, 0xd6b538e9UL, 0xae5f1c6UL, 0x13169674UL,
- 0x8ff7618cUL, 0xb31738e2UL, 0xa3c134acUL, 0x96a43e58UL, 0x4f16a4edUL, 0xbaecf92UL, 0xb5b7f0c0UL, 0xe8aeaa92UL,
- 0x33c2affUL, 0xb30de091UL, 0x3a5087cfUL, 0x2de23c90UL, 0x1867a9d6UL, 0x287a24fbUL, 0xc3d533a4UL, 0xa98fcfb8UL,
- 0xc7e7bf17UL, 0xdbb81a89UL, 0x2a40fbaaUL, 0x80ac3e80UL, 0x6c6e1457UL, 0xd39c79d9UL, 0xbcdcd727UL, 0x171b48c5UL,
- 0x41a91d1UL, 0x50c761e0UL, 0xb7186edeUL, 0x1a1e7014UL, 0xb6013730UL, 0x36bf1a17UL, 0xe63e1c40UL, 0xf79f73bfUL,
- 0x37a5e6aaUL, 0x406f9553UL, 0x50eadc49UL, 0x7d28e2a4UL, 0xbdcda33cUL, 0xd33e3affUL, 0xdc8841daUL, 0xcca3b91UL,
- 0x2922b45cUL, 0xcf780ab1UL, 0xe6b35c1aUL, 0xfa9b6383UL, 0x280d77d4UL, 0x71c9a39fUL, 0x549ad991UL, 0x4e8eeb55UL,
- 0xf5ebb0c6UL, 0x7054b83bUL, 0xbcc48253UL, 0x44869d0dUL, 0x9222bc1cUL, 0x67e99324UL, 0xfc2dcd19UL, 0x920d0766UL,
- 0x891a9e3dUL, 0xa521a133UL, 0x57f59a10UL, 0xd226827fUL, 0x6079e508UL, 0x6df92bcUL, 0x2d67d029UL, 0xf5b979b5UL,
- 0x222bbaaUL, 0x13c9b3c1UL, 0x96d9b029UL, 0x36b0b517UL, 0xce8864acUL, 0xa4251ce8UL, 0xb5b10acfUL, 0x24d61ab6UL,
- 0xb96474cdUL, 0xdf318d11UL, 0xf8f8b919UL, 0xeb026f11UL, 0xb8307de6UL, 0x37257382UL, 0xe9a30520UL, 0xd3a3c045UL,
- 0x8ec551bUL, 0x9f7ee285UL, 0xcf669246UL, 0x5863b569UL, 0x310b1f6cUL, 0xe5a77b49UL, 0x110816d5UL, 0xbe4af34dUL,
- 0xb2bafd4fUL, 0xf9c087e7UL, 0x1eac01e3UL, 0x34f34f08UL, 0xc03dab6aUL, 0x393846c9UL, 0x4bbca3f3UL, 0x2212d20fUL,
- 0x6376f698UL, 0xfb03b04fUL, 0x4292cafaUL, 0xabbcc6e6UL, 0xa77af9b5UL, 0x2124c6d3UL, 0x7693fad5UL, 0x263d0ca4UL,
- 0xaa0efd79UL, 0x192156d9UL, 0x465d508bUL, 0x452bea1cUL, 0xa2855280UL, 0x8a9dbdcfUL, 0xb7fd1578UL, 0xa9f89932UL,
- 0x1fbf430dUL, 0x70190568UL, 0xbe8fcaf4UL, 0x8fcf33d0UL, 0x10ebc14bUL, 0xeda624a0UL, 0xb73e8b20UL, 0xf381d393UL,
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x84f1d6b9UL, 0xa2fb3016UL, 0xb8af890UL, 0xbf6b9eb8UL, 0x94734b0eUL, 0xc68675ecUL, 0x2cf01702UL, 0x7d7a65b3UL,
- 0xad69076fUL, 0x4eb15766UL, 0x6e5a1e6fUL, 0x372a6fe9UL, 0xbb92bed4UL, 0xbb9b19UL, 0xa8d727ffUL, 0x5c887ea2UL,
- 0x81067402UL, 0xf064240eUL, 0x8a9ce0f4UL, 0xdd1034dUL, 0x69eb41dbUL, 0x6fa57c12UL, 0x133c9b0aUL, 0x1193c945UL,
- 0x11219e9eUL, 0xd5cce044UL, 0x50730320UL, 0xda04b154UL, 0x1deabc58UL, 0xc6d6c766UL, 0x451fcb66UL, 0x90a1619dUL,
- 0xfe1b7136UL, 0xab254a71UL, 0x3356df00UL, 0xfe1a4c4aUL, 0xe535ac2aUL, 0xf86e0020UL, 0x99a89ba7UL, 0x6a0a71cfUL,
- 0x7c507dd1UL, 0x12bde612UL, 0xa8c3534dUL, 0x25d6e1c1UL, 0x18e4a7edUL, 0x8f2ee5a1UL, 0x3a7be619UL, 0xd3bad808UL,
- 0x10320642UL, 0x31c681efUL, 0x8754463bUL, 0x97c906ccUL, 0x3dc4c53aUL, 0x1f6a11b5UL, 0xc3f787afUL, 0xeb6117a1UL,
- 0x2c028b33UL, 0x6d584aa3UL, 0x72f5ada4UL, 0xe8a9b0e6UL, 0xcc0b0292UL, 0xa411cfc2UL, 0x68a02615UL, 0x66de1d5dUL,
- 0x19e5d052UL, 0xd4d49c1cUL, 0x41d3a57UL, 0x395d8aafUL, 0x157ef88aUL, 0x55791080UL, 0xcaf84eb9UL, 0xa999bc82UL,
- 0xdcebffbaUL, 0xa69fbdadUL, 0x3d6d6accUL, 0x4f181839UL, 0x76e0fb41UL, 0x53c3fda4UL, 0x977b8882UL, 0x774b84c2UL,
- 0x8f1a8822UL, 0xfb1714f8UL, 0x9b64ce7UL, 0x8af5b373UL, 0x83347e04UL, 0x375fa1c4UL, 0xf8be993eUL, 0x5ae647a1UL,
- 0x7abe1803UL, 0x273cdcafUL, 0x52571baUL, 0xbc95439UL, 0xb4c270e6UL, 0x8c7aa7e6UL, 0x801d9d30UL, 0xae70a8a4UL,
- 0xc1590d36UL, 0xedc60851UL, 0xd736aab1UL, 0xc1d06b2fUL, 0xe3f12442UL, 0xe61f29e7UL, 0x1fca6c5cUL, 0x667baa68UL,
- 0xd1936bf4UL, 0x7fed5791UL, 0x977ab69cUL, 0x699cd762UL, 0xd8fad37bUL, 0x4455d453UL, 0x74de1b09UL, 0x10412c31UL,
- 0x9367803fUL, 0xce971UL, 0x98e3e798UL, 0x83080165UL, 0x43ed0f02UL, 0x9e266cdUL, 0xf3c04bf2UL, 0xd947f54dUL,
- 0x49399ddfUL, 0xf6c9700bUL, 0x1c4b0e68UL, 0xe1febce6UL, 0xeaa851c4UL, 0x5bb68975UL, 0x5d01f9f3UL, 0xd9ac8a1fUL,
- 0x1a07a6cUL, 0x6775d195UL, 0x79690aefUL, 0xe35ada75UL, 0xa942233aUL, 0xc9813498UL, 0xf83e4477UL, 0x5e5d5635UL,
- 0xe8031bcdUL, 0x64f379d7UL, 0x66f417cUL, 0x59cc9c52UL, 0xd96e1b62UL, 0x9b4a7fa1UL, 0xb209104cUL, 0x4c86b09UL,
- 0x41caf584UL, 0x3bfc60aaUL, 0xca5e48d3UL, 0x607cc878UL, 0xb5bfc3f7UL, 0xac426e2fUL, 0x3b091c2eUL, 0x46395260UL,
- 0xae40e0e2UL, 0x4cd6b357UL, 0xe37c761aUL, 0x9bc9b473UL, 0x7a001660UL, 0xbb0f96b9UL, 0x1c4025afUL, 0xd3bb6495UL,
- 0xf4964f49UL, 0x1362b136UL, 0xd81cd509UL, 0xee6db3cdUL, 0x3f973e74UL, 0x4fe7b6f8UL, 0x1e1b5e31UL, 0xec6f65eeUL,
- 0x9fe92900UL, 0x20736cc5UL, 0x4a724ce0UL, 0x41a0946cUL, 0x66dd3c75UL, 0x62d794c9UL, 0x40137162UL, 0xdca232f7UL,
- 0x12bdead1UL, 0xed4a6090UL, 0x532f683dUL, 0xf3f71949UL, 0x1afed6f9UL, 0x3b552d2UL, 0xe2d3802dUL, 0x712c0785UL,
- 0xf535b6bbUL, 0x113c7377UL, 0xa1c5e3b6UL, 0xb00ccbb5UL, 0x924221a6UL, 0xd97bf376UL, 0x9adab2d7UL, 0xf5966a9fUL,
- 0x1837dc28UL, 0x6bb06a7dUL, 0xa03b441cUL, 0xc505cabdUL, 0xe4082e94UL, 0xeed3ed1eUL, 0xa7d7ec69UL, 0xf45010c7UL,
- 0xbc5a1721UL, 0x7be6d48bUL, 0xa41f499dUL, 0xa328c40bUL, 0xc2a56cd9UL, 0xd81af0d8UL, 0x5a7b360aUL, 0xe20135e8UL,
- 0xf21a0dc4UL, 0xa525b6e6UL, 0xc4ba14b3UL, 0x8c0ad575UL, 0x1adf627fUL, 0xbe8000f7UL, 0xf0bc7e10UL, 0xde21352fUL,
- 0x47887d23UL, 0xe8435d6bUL, 0x35e19331UL, 0x376ba1acUL, 0xb93620a0UL, 0x393075b7UL, 0xff3ec161UL, 0xd64233d9UL,
- 0x3072419dUL, 0x5794d62bUL, 0x60d0145cUL, 0x5ee6a7cbUL, 0x991ca01dUL, 0x4e1713e3UL, 0x2b35153eUL, 0x4bb69962UL,
- 0x9a858630UL, 0xebcdd8feUL, 0x2886b4b5UL, 0xb6588246UL, 0x7ea8940UL, 0x805576b3UL, 0x4d0e7446UL, 0xf8dbe0aeUL,
- 0xfc83cdeaUL, 0x22b8a390UL, 0xb5aa43d2UL, 0xa2342cb0UL, 0xb9b6a937UL, 0x18107c1aUL, 0xbd49c655UL, 0x2a32765fUL,
- 0x4c1b7524UL, 0x34929fd6UL, 0xc73943bUL, 0x6a4413e3UL, 0x5d61d43bUL, 0x7892bca1UL, 0x991d0d24UL, 0xaec15f30UL,
- 0x6de44893UL, 0x36efb501UL, 0x132280f7UL, 0xb250846UL, 0x242d3dc1UL, 0x91aa72e2UL, 0xfa9c1c7bUL, 0x95efc574UL,
- 0x30d0f066UL, 0x124b9545UL, 0x74c651baUL, 0xa420a85fUL, 0x31a9b2bcUL, 0x46490171UL, 0x3d18f83eUL, 0x50de7be7UL,
- 0x1ee451d9UL, 0x29db87c7UL, 0x805a2bf7UL, 0x580f5fd1UL, 0x81cf1e18UL, 0x41215eb2UL, 0x3f45c970UL, 0x4e940fddUL,
- 0x6a849a56UL, 0x9df10eefUL, 0xeb88ab60UL, 0x6ab27080UL, 0x7c5493a0UL, 0xbe134adUL, 0x853a723aUL, 0x1f0fbf64UL,
- 0xfe81cbb4UL, 0xefa83869UL, 0x3e2c964aUL, 0x280e1fdeUL, 0x9aa2bb33UL, 0x4c9679c9UL, 0x99a7f44cUL, 0x2f166e6fUL,
- 0xddbc2e5aUL, 0x16ccc45eUL, 0x5cb63bc7UL, 0x12ad2b5fUL, 0xddfb748eUL, 0x2643f07bUL, 0x2e168236UL, 0x169c7734UL,
- 0x39fcde64UL, 0x3a7b45bfUL, 0x80c7d05fUL, 0x7cb581deUL, 0xd5eed1d9UL, 0x208e6c02UL, 0x4f54b284UL, 0x338b107cUL,
- 0x8e64be10UL, 0x1c1bdfaUL, 0xf93cfd0bUL, 0x6de1f3fUL, 0x98c7c6a5UL, 0x1c136378UL, 0x2d74621bUL, 0xaf0b6b85UL,
- 0x8d2baf55UL, 0x5b0e5b7aUL, 0x8f921f32UL, 0xa996843aUL, 0x938cb8c3UL, 0xe82d4141UL, 0x57fac73eUL, 0xc2aa0f88UL,
- 0x9b3987c8UL, 0x28366b98UL, 0xa8e44707UL, 0xfc2c32d7UL, 0x63baa1eaUL, 0xa1af61b9UL, 0xb468c174UL, 0xe8b8a292UL,
- 0x7b81fcacUL, 0x62077768UL, 0xb3945de3UL, 0x501d7b3UL, 0xab11934eUL, 0x9f969a45UL, 0xad22d5d2UL, 0x2853e792UL,
- 0x776c86b0UL, 0xf5a3cbe7UL, 0xa2f4edb6UL, 0x13104c09UL, 0x827c7b56UL, 0x8ef2bcefUL, 0x547f92b7UL, 0xc9c499d6UL,
- 0x947c7f7cUL, 0xa7635d90UL, 0x5b61df63UL, 0x7be9613UL, 0x700b08c2UL, 0xc48a6697UL, 0x954ff89fUL, 0x53132a49UL,
- 0x5490a618UL, 0x18c1d904UL, 0x6880d811UL, 0x2fe34588UL, 0x610d37bfUL, 0xf9810661UL, 0xe3a0caedUL, 0x4868eec7UL,
- 0x9628ddceUL, 0xd93697bbUL, 0x48bb0287UL, 0x4e1fec0UL, 0x83edd9acUL, 0x82a1fb72UL, 0xfffb3b32UL, 0x12a70f6dUL,
- 0x4a082354UL, 0xfd82e6e3UL, 0xd2fa38deUL, 0x1cfb87e9UL, 0x6f14a9e5UL, 0x68d5d10bUL, 0xba65b54eUL, 0x9bcfb88UL,
- 0xe86d935aUL, 0xedaae51fUL, 0x41c41e43UL, 0xa19c089eUL, 0x2909b74UL, 0xea26ea61UL, 0x8ee29358UL, 0x45bc64ffUL,
- 0x366609b0UL, 0x11102ce7UL, 0xc36d99c6UL, 0xc0fbc148UL, 0x6ad53f30UL, 0xf2725303UL, 0xd91a452fUL, 0xfdd2e47bUL,
- 0x43d8c578UL, 0xcac3ddd1UL, 0xa93e6a5bUL, 0xb49a2790UL, 0xce888946UL, 0x7d8a642fUL, 0xfa6d3fb2UL, 0x36cb9cb3UL,
- 0x6642f93cUL, 0x17a7ae6dUL, 0xf58ea97UL, 0x10a1e346UL, 0xc5938eb8UL, 0xf48a4967UL, 0xb9710ac6UL, 0x1f9ce115UL,
- 0xfdcabd4fUL, 0x2e3b14a6UL, 0xe2480794UL, 0xa7944a55UL, 0x1665ccc9UL, 0xd889b88dUL, 0x2896de52UL, 0xf82f3f4dUL,
- 0xd9fed168UL, 0x70754a54UL, 0x3fc4554aUL, 0x152704f8UL, 0x7d823a1fUL, 0xec63caeUL, 0x9ea6d577UL, 0x24e5dc1cUL,
- 0x251b120UL, 0x49c7970UL, 0xa13a101dUL, 0x7f99d670UL, 0x55242e62UL, 0x20b0e2a3UL, 0xb0e81440UL, 0x4566b478UL,
- 0x3328bf14UL, 0xe1c31f73UL, 0x77bad7c2UL, 0xc1f2ffffUL, 0xcdc31c42UL, 0x8f8400b6UL, 0x536003bfUL, 0x268bf934UL,
- 0x7a0e1ee5UL, 0x7b91fd27UL, 0x28c4b787UL, 0xb913b37eUL, 0x66817e31UL, 0x4c953a0dUL, 0x84860c4aUL, 0xb227c00aUL,
- 0xb0e679fbUL, 0xe4b0605dUL, 0x26d2029aUL, 0xbaa6f043UL, 0x85bbdf1fUL, 0x836ee1daUL, 0x45220764UL, 0xc9e22db3UL,
- 0x55807478UL, 0xd74ec8e7UL, 0xcbc74532UL, 0x29808646UL, 0x191c0e60UL, 0xd040c0d0UL, 0xd1491a28UL, 0x22c3e6dcUL,
- 0xa0bd7562UL, 0x8b9e1077UL, 0xa8399ebaUL, 0x2058a420UL, 0xf35a3b81UL, 0x626d0145UL, 0x31db7335UL, 0x1127301cUL,
- 0xdc7a537dUL, 0xdb1e55e5UL, 0x2b4234e4UL, 0xfc631847UL, 0x61f4453cUL, 0xe4a80cc7UL, 0xd5afbb31UL, 0x2e1325d2UL,
- 0x83627a3dUL, 0xd9398bd8UL, 0x787e7c26UL, 0xf6567d84UL, 0x27c7e398UL, 0x709d19eUL, 0xc83f6aeeUL, 0x68294f4bUL,
- 0x435f9a61UL, 0x52acbf11UL, 0xb1fb6e56UL, 0x2a37d2e6UL, 0xcfa65a98UL, 0x230dcee5UL, 0x3dd4f0acUL, 0xddf65160UL,
- 0x4288cfb8UL, 0x75de87a6UL, 0x8651934UL, 0x8e5415d9UL, 0x68bcfc73UL, 0xaa9c33bbUL, 0x2ccf12cfUL, 0xf032770dUL,
- 0x70d74202UL, 0xd0781b16UL, 0x9d0a35ecUL, 0x5b88eb6UL, 0x3de149a3UL, 0x4bec0211UL, 0xa5be186aUL, 0xc9089280UL,
- 0x29296989UL, 0xd6371828UL, 0x47ae2068UL, 0x89a77d47UL, 0x8bbe2354UL, 0xe7503c05UL, 0x68e6966dUL, 0xd89275a6UL,
- 0x7582e453UL, 0x2260793cUL, 0x1c3d4fcaUL, 0x60741d6UL, 0xa0a1c8d4UL, 0x56098e87UL, 0xae969e12UL, 0x50977dc8UL,
- 0xf5838bb3UL, 0xe23e8202UL, 0x5b91648eUL, 0x82b3778cUL, 0x92b9a478UL, 0xf2a108feUL, 0xe327c0f6UL, 0x7ce5b67cUL,
- 0x868d0847UL, 0x548c681dUL, 0x59474fb4UL, 0x2a9c6498UL, 0x8036ddeeUL, 0x98258309UL, 0xfba0788UL, 0x7c234848UL,
- 0xdce3a00cUL, 0xcf489913UL, 0x372e9a1eUL, 0xcda4fe69UL, 0xc8954807UL, 0x7486177cUL, 0xe00d941aUL, 0x8da091e9UL,
- 0x9fab9b38UL, 0xacce6cf5UL, 0xb54a074dUL, 0xe5430c86UL, 0xf3911ce5UL, 0x594d87d4UL, 0xb1f277c8UL, 0x3fbc9f4bUL,
- 0xb20728f1UL, 0xf9c14c90UL, 0x436092fcUL, 0xa967fe5bUL, 0x3cf3cfaeUL, 0x5f80becUL, 0x312ddbf9UL, 0x2b926ee2UL,
- 0xb72253ecUL, 0xcda9d94cUL, 0x57826f4aUL, 0x2e795388UL, 0x20ad5068UL, 0xa8c22208UL, 0xcc68a0b1UL, 0x2991c1f4UL,
- 0x37912de5UL, 0x3b1d0b0cUL, 0xb769773bUL, 0x33d8346eUL, 0x6928834bUL, 0x5dc351b1UL, 0xf6afbe69UL, 0x64faffaUL,
- 0x5af18b45UL, 0x73769de7UL, 0xc9b44422UL, 0x8f734115UL, 0x26b5cc5dUL, 0xb9d932f8UL, 0x125af091UL, 0xfd0e23c7UL,
- 0x5c073902UL, 0x15b6526eUL, 0x35ae488aUL, 0xde5c15f4UL, 0x730aee3eUL, 0x6bdad990UL, 0xca8e8144UL, 0xfac4ccaUL,
- 0xfd4e7f8UL, 0x41b8843UL, 0xae758f99UL, 0xcdf389d9UL, 0x6308492aUL, 0x3fbe26ffUL, 0x6f8f2ad8UL, 0xe3bde23fUL,
- 0xdadd5eeUL, 0x2750495dUL, 0xc5e68ab7UL, 0x60aaf98cUL, 0x39e6dd6fUL, 0xe528b22eUL, 0x3dd4920cUL, 0xc20cce67UL,
- 0x658b34b1UL, 0xf45fc486UL, 0x25d0f4adUL, 0x8236a8ceUL, 0xdc74ea84UL, 0x4ef8016cUL, 0x3bcdd92bUL, 0xefce5f55UL,
- 0xf577d810UL, 0x5ad292a7UL, 0xf3fa382fUL, 0xd9e87f03UL, 0xd305a86UL, 0x919cb5dbUL, 0x31e36c9aUL, 0x39021ca4UL,
- 0x7b9f70c2UL, 0x73cee9fcUL, 0x4b039b00UL, 0x7dc18ee7UL, 0xb5f1bcf4UL, 0x4a0f2b10UL, 0x2a63aa0aUL, 0xb6ba396fUL,
- 0xb87bec1aUL, 0x1b5fdd24UL, 0x7f98a549UL, 0x970e9d33UL, 0x74b9f804UL, 0x375a4fdUL, 0xaadc239aUL, 0x6008f35fUL,
- 0x6198d86bUL, 0xff4db58cUL, 0x72a11149UL, 0xbb1a9820UL, 0xa420717aUL, 0xce7b4b3aUL, 0xbad202a1UL, 0xf43a3283UL,
- 0x7aba1c13UL, 0x4c7fe6a5UL, 0x9d77ab46UL, 0x67f07a56UL, 0xa67bb749UL, 0xc49bd563UL, 0x74094bbdUL, 0x6ddb852cUL,
- 0x69b38812UL, 0x16e1f649UL, 0x3a446c77UL, 0x3ffc1042UL, 0x358cf4b1UL, 0xa48bf502UL, 0xf9796f69UL, 0x3caf4cb1UL,
- 0x7be9aecbUL, 0x287d5b8dUL, 0x7d34daf6UL, 0xb42a2a78UL, 0xc7717a53UL, 0x141b50dcUL, 0x45b20dd6UL, 0x2f39ebc3UL,
- 0x5b4a49fcUL, 0xaf2d3a63UL, 0x7b7095cUL, 0x97289384UL, 0xacad9169UL, 0xc266fa26UL, 0x305b98bcUL, 0xa57e8a77UL,
- 0x79308268UL, 0xa4fa207bUL, 0x741ea985UL, 0x36ebd34aUL, 0x5dedc394UL, 0x7fd7652UL, 0x3ed42783UL, 0x67173aa6UL,
- 0xbb32d2fbUL, 0xc53d4fb0UL, 0x20c1f8a7UL, 0xeeb4f532UL, 0xb122dcfeUL, 0xd6a5995dUL, 0x13cbfdbaUL, 0x38e7f89fUL,
- 0xfad6d7b3UL, 0x1bf6ccfcUL, 0x665c17f8UL, 0xaf3dd3b0UL, 0xca50bb3cUL, 0x2d40e2a9UL, 0x351416b5UL, 0xc29db14cUL,
- 0xae7a6e1bUL, 0x18d17f8aUL, 0x8d171d4cUL, 0xa43d0b0aUL, 0xe03b3c5aUL, 0x1e86d121UL, 0xbd1a52bcUL, 0x708c7b8dUL,
- 0x5f8a8192UL, 0xdd3a473fUL, 0xb9da8998UL, 0xa80d9f21UL, 0xa32e0f38UL, 0x257a92eaUL, 0x2261178eUL, 0x9f1e8d9fUL,
- 0xb01b74d8UL, 0x6cc33e93UL, 0x440565f1UL, 0x32b9ff80UL, 0x6d2018d5UL, 0xeb26d327UL, 0xbba6c373UL, 0x82a5b921UL,
- 0xcf75e256UL, 0x722b4286UL, 0xbb53398bUL, 0xf61b96daUL, 0x90f87fa9UL, 0xd0be6174UL, 0x4988a9eeUL, 0x653a1ee1UL,
- 0x848d4a64UL, 0x7dabe354UL, 0x8d55cb5aUL, 0x3bfcb7d8UL, 0xd1593414UL, 0xd7e0a489UL, 0xcb749ff7UL, 0x67329c6UL,
- 0x2c5a3a51UL, 0xeefba431UL, 0x2ca4ec1fUL, 0xa6ddf9c0UL, 0xe75a3effUL, 0xdbd6c91cUL, 0x5c858dc6UL, 0x39a3d182UL,
- 0xe6f4c171UL, 0xab6e1a8aUL, 0x5493e75UL, 0xc9ff7129UL, 0x1d0fc5abUL, 0x23f6321eUL, 0x8a957601UL, 0x12a7d2cfUL,
- 0xa4f5d5a7UL, 0x58f13af4UL, 0x2ae9b7a7UL, 0x5a6dcc76UL, 0xcf2bbbe2UL, 0x5c0a4e49UL, 0xe398d70UL, 0x7a78e684UL,
- 0x5d0d4eaUL, 0x666b9cc5UL, 0x484a4c6bUL, 0x15ae9a20UL, 0xf29082d3UL, 0xfda176a7UL, 0xbe84f6daUL, 0x23bab284UL,
- 0xaafc131eUL, 0x1b610e17UL, 0x5a1cbe6UL, 0x825833f4UL, 0x35ed7f2bUL, 0xa2db8034UL, 0x85bd816dUL, 0xc5e15c6fUL,
- 0xa6750095UL, 0xa7f64f82UL, 0xcf53c419UL, 0x2882d90UL, 0xeba99e0fUL, 0x19505847UL, 0xdb2830c7UL, 0xd02316e6UL,
- 0x8b63be91UL, 0xef0503a9UL, 0x8158a2e6UL, 0x35dc89aeUL, 0xc1b00176UL, 0x55b858bcUL, 0x75160660UL, 0x9a217bdUL,
- 0x14fabda9UL, 0xcdb84b8UL, 0xe0d2dfc0UL, 0xf849613aUL, 0x5a044f53UL, 0x6a05bd11UL, 0x1c7560aaUL, 0x9048cf75UL,
- 0x5e4e9b94UL, 0x85366d8UL, 0x3ee17611UL, 0x9c85d589UL, 0x8f3fa44dUL, 0x6b00dc98UL, 0x516ea07eUL, 0x5dea062bUL,
- 0xbb817671UL, 0xca604bf8UL, 0x9ffde149UL, 0x4ad33f10UL, 0xfd9bbb10UL, 0x70988b1eUL, 0x93cd8b3bUL, 0x35e79caeUL,
- 0x1b1ec066UL, 0x75aab067UL, 0x966ab3dUL, 0x32dcfd0UL, 0x5128f15bUL, 0x24e36716UL, 0x543d0b3eUL, 0x96578b8dUL,
- 0x7117e577UL, 0xdf76e345UL, 0x343ab845UL, 0x240c560bUL, 0x65ab407eUL, 0xeb75aec6UL, 0x2adc24fUL, 0xb719c89UL,
- 0x8ed773e1UL, 0x3995e75dUL, 0xf2105e2eUL, 0x23bf8a4UL, 0x41cefccdUL, 0x6ca5fedUL, 0xf9cabeb0UL, 0xb250cf7eUL,
- 0x5a1d3972UL, 0x50463edUL, 0x29e9b9bUL, 0xcadf972UL, 0x16abd3eaUL, 0xa4d4808cUL, 0xa2bea6b7UL, 0x2d418892UL,
- 0x594a0883UL, 0xd37fd64aUL, 0x6c287839UL, 0xae4fa7d0UL, 0xa663fb57UL, 0x5a29f762UL, 0xd5129174UL, 0xd9cb60abUL,
- 0xa7b7360UL, 0x71f97575UL, 0x601d8552UL, 0x72041c6fUL, 0x9cdf88cfUL, 0xcb8b26ccUL, 0x155811f3UL, 0x912a8e24UL,
- 0x7c3b65aUL, 0x9d2fda3cUL, 0x8a7c4ae9UL, 0xdc7561c3UL, 0x2d9e31abUL, 0xb18c60f6UL, 0x8f6ae080UL, 0x4ad19194UL,
- 0x9b01586cUL, 0x57968cf8UL, 0x8d735c7aUL, 0xaa8811a6UL, 0x2e1ed2e4UL, 0x167ba8caUL, 0x84a9693eUL, 0x151a49afUL,
- 0xf5ce2456UL, 0xf369d4fcUL, 0xb733445eUL, 0x1d7aaa39UL, 0x85e876d2UL, 0x2a89aad2UL, 0xcc102ddUL, 0x398b14f7UL,
- 0x4f7c4f2eUL, 0xdbad68f3UL, 0x6aee4b14UL, 0xbea100f1UL, 0xe98c7e57UL, 0xbb2359eeUL, 0x15c8f8f8UL, 0xa95b0515UL,
- 0xf9969415UL, 0xce3c15ceUL, 0x8685ba80UL, 0xab73c5f0UL, 0x17ec044UL, 0xab2f0174UL, 0xc1665b5fUL, 0xbdbbe145UL,
- 0x575c2ba0UL, 0x63a2313aUL, 0x1391419aUL, 0x3b7c246UL, 0x40a2976aUL, 0xf966cbfeUL, 0xf1057e80UL, 0x560dd4d1UL,
- 0x9b16e7f3UL, 0x5d25fd5fUL, 0x2df08e9eUL, 0xf7879d89UL, 0x86db39e9UL, 0x2aa8a608UL, 0x682303bcUL, 0x3ce23adfUL,
- 0x4eaf1c22UL, 0xc4cbadc9UL, 0xc7d28272UL, 0x87a904b3UL, 0x5587eb55UL, 0xc105839dUL, 0xf34e4e5eUL, 0xfa476cfbUL,
- 0x49c189fdUL, 0xab0d4657UL, 0xfe20f500UL, 0x10ace78UL, 0x8e98d07cUL, 0xd7fe6d81UL, 0x19e90bf6UL, 0x62f27376UL,
- 0xd41dc4ecUL, 0x107a7a9fUL, 0xbc79efbUL, 0x36c50792UL, 0x67b31b42UL, 0xb24c3a38UL, 0x4f2ea97UL, 0x92c644baUL,
- 0xca7f8597UL, 0x29f05a39UL, 0x119fd99aUL, 0x3658360cUL, 0x38544949UL, 0x1bedd190UL, 0x1b089b45UL, 0xf8881048UL,
- 0xf36d613eUL, 0x84733695UL, 0xd0e7e60eUL, 0xea32a1d3UL, 0x9d0f11c4UL, 0xf018be15UL, 0xf6986253UL, 0x13b8a8dfUL,
- 0xa3954601UL, 0xcd6c55a3UL, 0xb44a2de4UL, 0x625efc8UL, 0x812459e5UL, 0xeefef48fUL, 0x51299ecfUL, 0x58f07f58UL,
- 0x3d5a74dfUL, 0x4f1ab725UL, 0xd9cf0a3eUL, 0x91d418aeUL, 0xc2f4d52bUL, 0xea45c484UL, 0xf15384aaUL, 0x6bb51dbbUL,
- 0x22753b51UL, 0xc2081d24UL, 0xf3beada6UL, 0xfca3e2e2UL, 0x1cd6ca20UL, 0x5ab1f143UL, 0x4c73315aUL, 0x1c40a0a3UL,
-};
-#endif
-
-#endif /* GNUTLS_LIB_NETTLE_GOST_ECC_GOST256CPA_32_H */
diff --git a/lib/nettle/gost/ecc-gost256cpa-64.h b/lib/nettle/gost/ecc-gost256cpa-64.h
deleted file mode 100644
index 8f8c557f31..0000000000
--- a/lib/nettle/gost/ecc-gost256cpa-64.h
+++ /dev/null
@@ -1,1076 +0,0 @@
-#ifndef GNUTLS_LIB_NETTLE_GOST_ECC_GOST256CPA_64_H
-#define GNUTLS_LIB_NETTLE_GOST_ECC_GOST256CPA_64_H
-
-/* For NULL. */
-#include <stddef.h>
-#define ECC_LIMB_SIZE 4
-#define ECC_PIPPENGER_K 11
-#define ECC_PIPPENGER_C 6
-static const mp_limb_t ecc_p[4] = {
- 0xfffffffffffffd97ULL, 0xffffffffffffffffULL, 0xffffffffffffffffULL, 0xffffffffffffffffULL,
-};
-static const mp_limb_t ecc_b[4] = {
- 0xa6ULL, 0x0ULL, 0x0ULL, 0x0ULL,
-};
-static const mp_limb_t ecc_q[4] = {
- 0x45841b09b761b893ULL, 0x6c611070995ad100ULL, 0xffffffffffffffffULL, 0xffffffffffffffffULL,
-};
-static const mp_limb_t ecc_g[8] = {
- 0x1ULL, 0x0ULL, 0x0ULL, 0x0ULL,
- 0x22acc99c9e9f1e14ULL, 0x35294f2ddf23e3b1ULL, 0x27df505a453f2b76ULL, 0x8d91e471e0989cdaULL,
-};
-static const mp_limb_t ecc_Bmodp[4] = {
- 0x269ULL, 0x0ULL, 0x0ULL, 0x0ULL,
-};
-#define ECC_BMODP_SIZE 1
-static const mp_limb_t ecc_Bmodq[4] = {
- 0xba7be4f6489e476dULL, 0x939eef8f66a52effULL, 0x0ULL, 0x0ULL,
-};
-#define ECC_BMODQ_SIZE 2
-#define ecc_Bmodp_shifted ecc_Bmodp
-#define ecc_Bmodq_shifted ecc_Bmodq
-static const mp_limb_t ecc_pp1h[4] = {
- 0xfffffffffffffeccULL, 0xffffffffffffffffULL, 0xffffffffffffffffULL, 0x7fffffffffffffffULL,
-};
-static const mp_limb_t ecc_qp1h[4] = {
- 0x22c20d84dbb0dc4aULL, 0xb63088384cad6880ULL, 0xffffffffffffffffULL, 0x7fffffffffffffffULL,
-};
-#define ecc_redc_ppm1 NULL
-#define ECC_REDC_SIZE 0
-#if USE_REDC
-#define ecc_unit ecc_Bmodp
-static const mp_limb_t ecc_table[2048] = {
- 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL,
- 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL,
- 0x269ULL, 0x0ULL, 0x0ULL, 0x0ULL,
- 0x9271ea7a4d82b411ULL, 0x208fd58ecd7fc5ecULL, 0x1938a990e53fbfe6ULL, 0x349f96764fd209caULL,
- 0x2bf67a05728711ccULL, 0x76ed8b3b9fa7d47eULL, 0x215fcb7a4cfb5354ULL, 0xcd2781d71d77b1a3ULL,
- 0x9a91dea94d370488ULL, 0x23d14b45d22a568eULL, 0xb27f033157ab7e3bULL, 0x6c130a7391bc69c8ULL,
- 0x38716a2110a3e30aULL, 0xb3fec3734143e9b7ULL, 0x1e856e03ef98c1d3ULL, 0x50001284b7fcef5aULL,
- 0xccf91cab5b8cc67bULL, 0xada71d722b34e17fULL, 0xd37764fa9478dedcULL, 0xa81e89e53194e2e7ULL,
- 0x118e2615e3e91a75ULL, 0xfca8412a89d423e4ULL, 0x97294ae78b3862d5ULL, 0xb8c0af6439f1c564ULL,
- 0xdc5d9e1161a1097dULL, 0xa13cd3d69fc2cb97ULL, 0x6cef39fddae719b6ULL, 0x8d8bc1d1610dccabULL,
- 0x6e48523a361f0595ULL, 0x670ec0346eb68ee4ULL, 0x9eec9e6bdc314120ULL, 0xde69cf788a688775ULL,
- 0x2e511af79d332137ULL, 0x406e861fdcf09ca0ULL, 0x2cdb4bb0180f0d9eULL, 0x9cf943f5f45ce549ULL,
- 0x67e514258ae191ffULL, 0x6bd19217f03dfddeULL, 0x69afc1805bb405d9ULL, 0xe4a43fa986b9c0e6ULL,
- 0xf1167f5185339ca0ULL, 0x2c39994829a59cafULL, 0x220adb90e4970522ULL, 0x52ebab4bda5cd9e9ULL,
- 0x25664db63a43e2e6ULL, 0xb6b22958b80668deULL, 0x404ee6730e6b7dedULL, 0x2ee7630c845317f1ULL,
- 0x47886e8ef4d39181ULL, 0x4dc741d3244eae3eULL, 0x630ae501953bf381ULL, 0x66685f2e5f534880ULL,
- 0x1ad07a2cf090c066ULL, 0x7fa9a256f9ea65abULL, 0x2ab27ff93d57186dULL, 0xdadbd78d164d727eULL,
- 0xca46effdb5f2ed49ULL, 0x57ccd31aed472a4fULL, 0x948c0a8e3627d5e3ULL, 0x8ecc58d0f8217340ULL,
- 0xf9ef27ce9fd8fe8eULL, 0x5a10eed217b18e43ULL, 0xcd576050ce192e1aULL, 0xe18fabf2a1ce977dULL,
- 0x1e57872ba1c5537ULL, 0x2e44ed16e952cffaULL, 0xe656b197d941ee1dULL, 0x7e4c31e6b871cef1ULL,
- 0xf06d9aa939bde1f1ULL, 0x444526c528412a0fULL, 0xfa0481ad05ea5418ULL, 0xef29d5d94657d686ULL,
- 0x2ddb0d46658b29a8ULL, 0x8df06eaa346bc48dULL, 0x32cc97879cdbf831ULL, 0xae091f0294625f7aULL,
- 0x250a175e2015a836ULL, 0x2e3fac7b7087271dULL, 0xf983267620a58520ULL, 0xbc26dfaf8690da3dULL,
- 0x1610fe045ecd84fdULL, 0x2e9024ebeb63b248ULL, 0x200cd2627d3ff71eULL, 0x7f77475897017e79ULL,
- 0x942a28a7dc5ba08cULL, 0xe21dbb711fc8e2faULL, 0x38d01e75ac117881ULL, 0xcd493d095bf01f6cULL,
- 0x3a01b011b806248eULL, 0xffb181284dab6535ULL, 0xe5bdb9ee7f9ba8dbULL, 0x699680be1054129ULL,
- 0xcc181b75e5331d9bULL, 0xc711a68ff85a9fddULL, 0x23b5711c01bc7188ULL, 0x1a07b3adfe73dce0ULL,
- 0x7f34257fabaf5878ULL, 0x14e56d428d9d5a09ULL, 0x9f9b33c379b20e74ULL, 0xb1865ed8bed0b30cULL,
- 0xe9cb187b456f4b19ULL, 0x6fe8dc92aaf26c8eULL, 0x451a636256f0b914ULL, 0x3d0a8861dfed5e14ULL,
- 0xf3e02527192b28faULL, 0x6c44b09da40b1e85ULL, 0x7236985716da6101ULL, 0x5de340be2b6b991dULL,
- 0x407dca1698e0b4d9ULL, 0xf8e65953c351a1d3ULL, 0x54ce60fa0e65cfe2ULL, 0xa74aa64af3a50f67ULL,
- 0xab330f4c660e79acULL, 0xe0294d8ac0b53240ULL, 0xeaee8e04cdc5352ULL, 0xf22c62e6849cc804ULL,
- 0xd0f26fb20f7ac4a2ULL, 0xc390cbd9ee6ee9b2ULL, 0x7fa9f053e0d08be3ULL, 0xf2e59e434987d9a4ULL,
- 0x3028051f2f8d72b9ULL, 0xf085842ac3feb20fULL, 0x14f2ac6ec909ff85ULL, 0xbf23f0555d876f76ULL,
- 0xa4800ae87ba388f6ULL, 0xa46d48e007ca568aULL, 0xbcf584103e6a244fULL, 0xb110a240b80c6195ULL,
- 0x13e275be095f8cc0ULL, 0xace28be33c9e52d6ULL, 0x9765dd4f0dec582bULL, 0xe2cae5ef745a2beeULL,
- 0x76ca667360e50aa5ULL, 0x2649e8fc40aa6b5cULL, 0x6ac4a7d176bca9beULL, 0xc405bcdbfa74036ULL,
- 0x2ab1d80b588fdc25ULL, 0x429e0579ba90d19fULL, 0xadedba7f5e7577a7ULL, 0xdf0da4e3a048f3c5ULL,
- 0xb9d5b41c4d6c2cd8ULL, 0x1421d1f5f23a0223ULL, 0x6e8ebd100e2abaf6ULL, 0x5b9ae22ac8647411ULL,
- 0x983c8368a38f3071ULL, 0x233fbf695b2bbee8ULL, 0x17d934f7ca0335e3ULL, 0x7565983cc06743f4ULL,
- 0x646af82e6314a24dULL, 0xb9b00eef11cfb7e4ULL, 0xfc21c7172a042843ULL, 0x312cc9400aec0733ULL,
- 0x264bbdfd3a1f52e5ULL, 0x35785259567f8c84ULL, 0x776bc00eaf644aaeULL, 0x1d26554f1d4eddaaULL,
- 0x890ec95356840d1dULL, 0x9a022c3a7200d3bULL, 0x36d442313118b696ULL, 0xf8f5d22f7267d2ceULL,
- 0x2b8ebec003915375ULL, 0xd6e12a60d486b5f8ULL, 0x574567de0580f679ULL, 0x65ddb7d56467220aULL,
- 0xc2c320eb3939af9eULL, 0xdb315e6a99394292ULL, 0x437bfbafa113dfc1ULL, 0xd0133206cb9e34faULL,
- 0xd57a3a7e624135eaULL, 0xa027f66d33c317e5ULL, 0x711d7d8e0aa565f0ULL, 0x42f4637c54a7fa07ULL,
- 0x49a8896e82f0d659ULL, 0x21d6976c71f18a21ULL, 0xb1e33a7b33593204ULL, 0x23ed8b167e1bacffULL,
- 0xf4a17bbf996f17bdULL, 0x6d660c7473176ea4ULL, 0x1fc7363cc1f301a9ULL, 0xd64c1ea11aeb1cacULL,
- 0x7a10b45419a7b7d1ULL, 0x33010367abc1089aULL, 0xd05fbd254f7585fULL, 0x5d6cdd2202314e4dULL,
- 0x5a6090a4f5be2b44ULL, 0xc59e34183bdf0f7aULL, 0xfc6633a5e016972aULL, 0x8d60a1b51093cff1ULL,
- 0x169f5b89f3ae8e88ULL, 0x271eec074d17e77eULL, 0xad6796462bb1d8a2ULL, 0xebeb80c95fd7b64ULL,
- 0xabbbd5bcfa36bf48ULL, 0x2b5d07789ec958ceULL, 0xdb1f82c56803e501ULL, 0x5bad5c2bee268faeULL,
- 0x212232ec596f90c1ULL, 0x6978467443e00b35ULL, 0x3c7da9351be7ed60ULL, 0x9ca00a1d46f20e66ULL,
- 0xbdbfe58e443410f6ULL, 0xc063e88cedcfbfd9ULL, 0x9bc602626637501dULL, 0x29812e11fada5d51ULL,
- 0xa9210e1f2098f86bULL, 0x1ac8879772c513bbULL, 0x9fce8de80958390bULL, 0x74010dfb5d430ba4ULL,
- 0xd3cb573c975c8121ULL, 0x9ea6698992ac3fcbULL, 0xe7022fdc7fbf52aaULL, 0x6eda69b2948e46b5ULL,
- 0x8fb94d4ca504ef6bULL, 0xfe2944b4f5b017f1ULL, 0x7a370f320a16d10fULL, 0x5bcbc4a14ce512e0ULL,
- 0x27a4de873350304aULL, 0x40861f3c51c7f8d8ULL, 0xaca17208c6aa00e1ULL, 0x5df902e3f7837dcfULL,
- 0x6d5b679f3aae99dULL, 0x336e1cfe367f377ULL, 0xdb7b9bd7b7de4d64ULL, 0xe88a4c9f48d4da0dULL,
- 0x793c120d3ad847d5ULL, 0x5236130814049d6ULL, 0xb4e673609ed7a755ULL, 0xc473137ed3ee2b76ULL,
- 0x5abf387ff0ed5a00ULL, 0x1491865682649336ULL, 0x26238d5657514911ULL, 0xc4bc7e13410f3e86ULL,
- 0xf4ea8b9441f25a81ULL, 0x2ce3f801d608bdb4ULL, 0x31865e0bd00ad1b7ULL, 0x2f1144f05202e234ULL,
- 0xb8e0a33236e5f242ULL, 0xf962e100b0c07619ULL, 0x3a289a8054ecb1e1ULL, 0x2871e76486688f9fULL,
- 0x13d4767bd1e31b99ULL, 0xf8adfc0e5c89cb7cULL, 0xfa7b27682519714ULL, 0x389cbed13f1c1360ULL,
- 0x4c65f97676b8c9bdULL, 0x2dbfc4d5aadb6e6eULL, 0xe5643b3ae30d1f5bULL, 0xad7577d459deab9ULL,
- 0x10ac7e9e08fc2d7fULL, 0x53aa93b9dd8ed8d6ULL, 0x5930c396c9d2398eULL, 0x6a1d27e16c90cf02ULL,
- 0xa1f3e69f57accd02ULL, 0xdfad27c9b403bd29ULL, 0x91b03c258ee91a95ULL, 0xa89db7498c1ee669ULL,
- 0xab448a185b674f01ULL, 0xcdf04197ffcacfa2ULL, 0x543996c7f79694caULL, 0xcfedab0cebfc347bULL,
- 0xb712809e7f9855f3ULL, 0x80ff8036b592cd9bULL, 0x6a692f32267599adULL, 0x663320a44a15b3e6ULL,
- 0x43841149208f854bULL, 0xa98a0ee4327269dfULL, 0x4113211ae85b3aa3ULL, 0x4ed8e6f76ba93ed7ULL,
- 0xb59f6e5a1801a18ULL, 0x26017587b47ea2b4ULL, 0x3b273de239876468ULL, 0xdacdb05364ceb9d2ULL,
- 0x6eeb71cef86c93a0ULL, 0x55fdffa4015d4c51ULL, 0x303e824934de500cULL, 0xde8bf01462911a41ULL,
- 0xffd2bbe198f93f1aULL, 0xcdacf9055e3b63eaULL, 0x917ef59dc885a310ULL, 0xb46f86b66d8d2bc1ULL,
- 0x8937bd6aab03b344ULL, 0xfea838dd66f51dcULL, 0x823dcd1dc12475afULL, 0xb81d6cc47a8c8db1ULL,
- 0xf03afe9ff5b48650ULL, 0xe051800edf5e2a63ULL, 0x3a20c21856fe615ULL, 0x6b43fbe0505bb8d1ULL,
- 0x59380a2875fe00f0ULL, 0x24a8e6e29e2ad555ULL, 0xc5846725b54e2b8fULL, 0xe824b8bfe12ed89aULL,
- 0x14767aec3e1802c1ULL, 0xca384097f7dd8eefULL, 0x35f9f188e89ed164ULL, 0x426e51b23d5dea4dULL,
- 0xd2ae6f160031fe7bULL, 0x8a678694bde6d329ULL, 0x482d533ca30bfeaULL, 0x966b23b15645dc5eULL,
- 0xddddce217141d85dULL, 0x28f9584c61a01285ULL, 0x6d1ef9232d18de6aULL, 0xc27800bd93eb7e69ULL,
- 0x13aead1109ce2ee9ULL, 0x9bd1deddaf9cdc33ULL, 0xf300b32da0fbe620ULL, 0x2a7235bf97fd23cbULL,
- 0x9f590135241838d4ULL, 0xcb767b59f5aa1315ULL, 0x50fdb0e24cba6db8ULL, 0xd303a00e4fa6ed5ULL,
- 0x12124b5fa6735629ULL, 0xf57f1c6080621d43ULL, 0x498f365597e3d405ULL, 0x4198a0880d0c473aULL,
- 0x41f92d9f5b613c9cULL, 0x591f9ea7368a3021ULL, 0x34c459af90f5233cULL, 0x470f0e4410e0f8bbULL,
- 0x467afdda14325578ULL, 0xea95ad39c1890886ULL, 0x6a7dd15e729e076ULL, 0xaac209177339650bULL,
- 0x396fe67b44a83c63ULL, 0x92bb09af2dda4e65ULL, 0xb1bc3afb7728d3c3ULL, 0x6007a0fdff4b2e5aULL,
- 0xdf83c0435b7be8bULL, 0x472e05c393bc97c5ULL, 0xa54d861e52b40ad1ULL, 0xe263a27e866e2c0bULL,
- 0x2bafbe29b657322cULL, 0x143d4706884a70a3ULL, 0xa816e2e1ea7ee0aeULL, 0x6315365c18aa357dULL,
- 0x13906a3b99cc35a0ULL, 0xfabc897871b81dceULL, 0x876b9a6faedfa64ULL, 0x6a68e4688f0d63adULL,
- 0x4a2b0048b403e429ULL, 0x2e0935b5c6150ecdULL, 0xbdf6c83c7debd05eULL, 0x435abceb52d9d52fULL,
- 0x92447341fafd9df1ULL, 0xfc997ab53a536dbbULL, 0x699d8f0d3d0efcb5ULL, 0x274074b6e448e005ULL,
- 0x3aa71004f297004eULL, 0x419be67b179c9df8ULL, 0xdeb43366c8285fd9ULL, 0xbfa1c616cc2eb843ULL,
- 0x6b05535098eacf45ULL, 0x3e093c5db9418315ULL, 0xd283567478d31971ULL, 0x7ba8043aba446884ULL,
- 0x300c0243bc4fee0eULL, 0x30fdcf8a6c6fe657ULL, 0x928da0d04d3635c6ULL, 0x14aad129e2d506edULL,
- 0x95b64457fc50d416ULL, 0xb60952ac39708fa7ULL, 0x602dc88bd71b560fULL, 0xef5860622ec7eae0ULL,
- 0x87f880d29c2a7cc8ULL, 0xd3073f4edd460972ULL, 0xe82fc8d2416f46c5ULL, 0xe614fa0e932e63fbULL,
- 0x18469eaa85a3c495ULL, 0x65dcf1f57f5f89f6ULL, 0x51fc52864889192aULL, 0xce31347024ef546cULL,
- 0x667b04ac8ace1d03ULL, 0xe3821445892a3b23ULL, 0x813c8cf5406d4316ULL, 0x8e168bfd5bfd2a74ULL,
- 0x302a42674df44ce9ULL, 0x44acf5e28cdc9a39ULL, 0xc43e314d0b6aae8bULL, 0xd40fc2347cdcb9f5ULL,
- 0xc42a0f622d8ccd6fULL, 0xfa89c396b452f554ULL, 0xc1d3eda656a0dcdbULL, 0x6c28b299748c4570ULL,
- 0x220d85cd431f9da8ULL, 0x7137865bd8e986f7ULL, 0x40f4816ffdcf73cfULL, 0x27ec5aaba94e3e89ULL,
- 0x132a0bb706b5c6ccULL, 0x5d5b13b98250c5efULL, 0xbcc299e2b819a95bULL, 0xc29bfe4ff10d30daULL,
- 0x323adbda4d45742bULL, 0x1dc21f96d0e19ef7ULL, 0xf81749bcad440048ULL, 0xc99fc7ac62406daeULL,
- 0x469bfc9c0698785cULL, 0x1b965adba2a19476ULL, 0x44037736c35cc9c1ULL, 0x350c8cd54a3f2a8eULL,
- 0xf77a8cc34089944ULL, 0xe1d77cdfb5087a61ULL, 0x97b974783aac726fULL, 0x96ca87015bdf1a1fULL,
- 0xdf7eff6c1df718d3ULL, 0x59dbb1a5cca715efULL, 0x8f7109c8e0d88785ULL, 0x921927ef33c9d8fbULL,
- 0xa1ef0a50a53a1721ULL, 0x33b32fbf40f6d98aULL, 0x75409c58b41dffaULL, 0xd7c6839f497d5d6eULL,
- 0xdadac1ac795ec55cULL, 0x4aeac5cb393daa4eULL, 0xb2242fb89405b4caULL, 0x64aa521be1f9985bULL,
- 0x765ea8ed92bb1ca9ULL, 0x156d97863f777985ULL, 0xdeab8be3438523fcULL, 0x91a320ee529c49c3ULL,
- 0x504d3c6fe60c8336ULL, 0x5f026f03d6a9bd5cULL, 0x91bbc86d6223af2cULL, 0x30dbe84d93db3f24ULL,
- 0x52ae46e34645ca83ULL, 0x42e0f6fa5f096586ULL, 0xd10150d17e7f21c2ULL, 0x72c6d74ef25f18b1ULL,
- 0xdc17532dcfe500cfULL, 0xe0308654cfe854c0ULL, 0x202983dfba634e2aULL, 0x92fe3b36643dbdcdULL,
- 0x8ce45f20340f6787ULL, 0x68de585575d645a8ULL, 0xcb9a74fd8e8b3d41ULL, 0x57da11ab32be0a2fULL,
- 0x991a7283b9c4ab8aULL, 0xbf5700c355856053ULL, 0xed006142a072aa0dULL, 0xc4a469e0dc4f693fULL,
- 0xeb16bd21edbb4607ULL, 0xe2508329f5754b09ULL, 0xe2e97d41c358f47ULL, 0x9506e5f3e90babcULL,
- 0xc17f446f53e829bdULL, 0x5382c4876a4532a0ULL, 0x6f6d2731034bc2dbULL, 0x74c5510fe0fd57baULL,
- 0x8bbd675890b8225aULL, 0x16477d0bc6b4150bULL, 0x320e61b0a664d93bULL, 0x622631b677b6c1a0ULL,
- 0x36a545a050419c7bULL, 0x1c5f7138572af62aULL, 0xddc58702d5958b1bULL, 0x48dbc853922173d6ULL,
- 0x274259ab59c547faULL, 0x36c7bb4d7c082eULL, 0xaf4fec4b6865fb81ULL, 0xa43d3d055a8f3334ULL,
- 0x706796aeb838f66fULL, 0xa7d4a1284a431bc9ULL, 0xf4a699c62f716f7cULL, 0x16e759681d6e65e7ULL,
- 0x95ee836c87918adeULL, 0x4ca10d3af360924aULL, 0xc83d271ef81e0543ULL, 0x696beeee71837cb1ULL,
- 0x7d1a6de36039a17eULL, 0xb725333febc7a2e3ULL, 0xae882bcbc304fc01ULL, 0x668250d32afee5c2ULL,
- 0xf2333250996b260fULL, 0xa2495ea1cebe700aULL, 0xd1fc886eb8ca6b55ULL, 0xbd0f5945b725cc4dULL,
- 0x7e68715e6361b0e8ULL, 0xfb608259c4ad881dULL, 0x747c9ac572218777ULL, 0xf4e63189644154a3ULL,
- 0x823d6fc6678b3a76ULL, 0xb44aaf3751884089ULL, 0x440a585a68277d59ULL, 0x79b998d7e3ba604fULL,
- 0xe7861b9a14bd3368ULL, 0x389c11cb97295379ULL, 0xffddb286a063ff84ULL, 0xdf2678c02443afa6ULL,
- 0x79a3846462cde45bULL, 0x3dcb11e80190e265ULL, 0x8906e94e3584f403ULL, 0x4fa4742c557a4c83ULL,
- 0x15ce538a0de5abf7ULL, 0x39e4b5e68e7a249cULL, 0xe4e581316972b798ULL, 0xb8bad384b608af45ULL,
- 0xb035ccfc606e8c79ULL, 0x660eaec718d0755aULL, 0xd91757afc8a7572eULL, 0xf76b161936ca27d6ULL,
- 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL,
- 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL,
- 0x984b71e965b81454ULL, 0x4aa2b12afe9c944bULL, 0x923ff59213a7e526ULL, 0x5868980ebdd6541aULL,
- 0xea0bd455d64bbc26ULL, 0x512ef2d2df1a1d5fULL, 0xed589cb06d80caadULL, 0x8e04cba52a5e1741ULL,
- 0x30065b7a3cd07c04ULL, 0xcac5d8b53e4c7fdeULL, 0xe213d821d1eb3f0cULL, 0xaba9ac74746d555ULL,
- 0x1fd06eae4d5f1a99ULL, 0xf8bf8d65a0c7e17aULL, 0xc5cad66fcacb9489ULL, 0x7cfc07bd31846ccfULL,
- 0x6480ee9dcd59c9adULL, 0xabf2310241e45410ULL, 0x956a70870ab08872ULL, 0x9d39f4ce7c17b3edULL,
- 0x38554651152e2e78ULL, 0x1a46ba498427b590ULL, 0xb17e03b2d7380cedULL, 0xb645f815ed02b3f2ULL,
- 0xfaecee2644a08f8bULL, 0x929d98507e781f83ULL, 0xf085bb4803561e9aULL, 0x97810a87e2fa2609ULL,
- 0x9fc4645da75a45aULL, 0x1af4b481a3a4ff4eULL, 0x9bd550640d4685d0ULL, 0xff4395e407629fb8ULL,
- 0x5a53054426e27f90ULL, 0x476f5803f5e0d0cbULL, 0x33a185e6b276caa8ULL, 0xe37aa83985a9e4bdULL,
- 0xe1840c8d9d2b8a43ULL, 0xa7c0570264775c18ULL, 0xdab4e422588a3ad0ULL, 0x3432b5d3fd81d9b9ULL,
- 0x4956e7f2ccbf6f50ULL, 0x42bbf514ea7c8c7fULL, 0xec1383f0b6213df5ULL, 0x9a1f8674162dc239ULL,
- 0x318d60d0f221e2c9ULL, 0xe1366cafd2103aa1ULL, 0xb25bd04d5087d1ccULL, 0xe5f82334f50a805dULL,
- 0x3b283f30c35d5becULL, 0x77c2c017b546ceeULL, 0x4b7869bbd3e9f290ULL, 0x94d4815155ca3c0eULL,
- 0x2e9df9a948fe695eULL, 0x6d403e8d01bb4607ULL, 0xd90e419dd2a3af7aULL, 0x4bf0d936d070a0f7ULL,
- 0x47c1011651125ce5ULL, 0xb533e39a44247201ULL, 0x3617e73b8a8d533aULL, 0x44ccc48db07cc26dULL,
- 0x283da6bb80369fc8ULL, 0x49cbc8eae8c5e904ULL, 0x8a8085d301a027dfULL, 0x4128cd8ce00b7614ULL,
- 0xa1bdb9b2e3a7d512ULL, 0x7806060672e5832bULL, 0xc7a9cf424b6a3918ULL, 0x6fb762439d3be92eULL,
- 0x6b9180abb0f6012eULL, 0x9ea7c07c47478f0cULL, 0x9f4fed0721aa54caULL, 0x3ea2fea7750ba0d7ULL,
- 0x87656b1d276af083ULL, 0xdfbd4d881f32c02fULL, 0x8d1917d45029c1b6ULL, 0x4cb05ec39e000b63ULL,
- 0xdf8702e1389de1fbULL, 0xe3418960f3ed6899ULL, 0x7ab00bfb55cf778bULL, 0xeef967ea97b951ULL,
- 0xeb138bcd16d87b75ULL, 0xdcdb296e4669c989ULL, 0xa7b1bc704014ec35ULL, 0xe6427316e135fb46ULL,
- 0xcfb152e486ab5664ULL, 0x51fc1bca16ffa417ULL, 0xac6574beec560181ULL, 0x1f0152eab7bbb763ULL,
- 0x6df5e2205b62f251ULL, 0x1de86f7206c7de46ULL, 0x484fb49d0a5a7b0dULL, 0x62c16124d5c7e090ULL,
- 0xbe9b9f9886578271ULL, 0xc1431c1bf7653ffcULL, 0xf2a95f602d44bb56ULL, 0x36ab6fca541588aeULL,
- 0x5c3442ea1a7e0974ULL, 0xa89552bbf7bc81d2ULL, 0x3bd482ba69c9ee04ULL, 0x74cf2b8184afcfcaULL,
- 0xe8ccf7070b0d426aULL, 0x770705d6a10a9589ULL, 0x157e9160d4d38532ULL, 0xca1721fc2b99daa3ULL,
- 0x943fe382ef8836fcULL, 0x30d9f49f1b49a79cULL, 0xc2eb175fc4199a14ULL, 0xb8ad192481ccecbaULL,
- 0x22c9c9609a61722aULL, 0x3e58309f728c3e46ULL, 0x57dce94b4ef4be5aULL, 0xda9fcca869107d1ULL,
- 0x578b0640475702f9ULL, 0x33e1abdda5a6098eULL, 0xe34b0fd36b8b75c1ULL, 0xe172a16e562a81b1ULL,
- 0x8b8bf462d8fe0465ULL, 0x812b8e8f5a63cd9cULL, 0xffa01a59b0a18fb0ULL, 0x5aaf11f4c2cb21bULL,
- 0x3c7942e6d8d23658ULL, 0xa772fa1cb77b4cefULL, 0x6e82935db226b9c0ULL, 0xdfdc7920771ba235ULL,
- 0x8ca54de4cd3311acULL, 0x3ae2c6659ae453ffULL, 0x438d652e5fde9a5cULL, 0xcb25b64b7a7ca9dbULL,
- 0xad49387f4962bf6bULL, 0xd6b8b6198d2a07f1ULL, 0x6d1389f47a7269f8ULL, 0x197f21a17f7ccb88ULL,
- 0x6e7947f9171ef4f0ULL, 0x633bd1a9377bd1b7ULL, 0x2e91ac9347041a33ULL, 0x83afd08dd97143f9ULL,
- 0x6b05308c27ebe6d9ULL, 0x85c25351d502e7efULL, 0xd5e962ebf532b329ULL, 0xa0dad6b2aa057771ULL,
- 0x338479768ce08e63ULL, 0xc8144c776f84440cULL, 0x361a29d8e99ebeceULL, 0x58bb4d2b5acd575bULL,
- 0xc43df7164ff3d7a6ULL, 0xd8ca6f5151d5815cULL, 0xd385b950deaf98c4ULL, 0x341d446fd42291f3ULL,
- 0x88c5a93644650a72ULL, 0xebce81e4484b640cULL, 0xa8ac5ec07d93c8a2ULL, 0x1d7f772952124fa5ULL,
- 0xe9dc15ca602208deULL, 0xf265c78bc2b2f4faULL, 0x542929fc97af65dbULL, 0xe6e26c4f31d8d791ULL,
- 0x3d1091185671bddeULL, 0x12313882b8c1494ULL, 0xab2667e64d731139ULL, 0x5eab1f6140bf6933ULL,
- 0x85fccbf6eda36773ULL, 0xb9769dcc62a502d2ULL, 0xe03d20e1a5c1fbbcULL, 0x2e1ba7fb60b60913ULL,
- 0x8927f7b904b87428ULL, 0x5781d51f84ccd20bULL, 0x65c5b6b92d426de4ULL, 0xa913c8330d32618cULL,
- 0xa396eed420458acaULL, 0xb1403c7749537638ULL, 0x26fa0021b23fb169ULL, 0xd71ba27f52e5db94ULL,
- 0xa4615fe710b5c8f7ULL, 0x3c1e8593af5ae816ULL, 0x9719936bf6b76c95ULL, 0x11a4f846c265f692ULL,
- 0x5f44d5b858beae80ULL, 0x1882507b7b336890ULL, 0x773b9bbf60c42a50ULL, 0x24784a0a037bd6dULL,
- 0xfcb628b8d6cde7f3ULL, 0xc5a4d309817d6801ULL, 0xc69228e9469040f9ULL, 0x14d39b00844ecbc3ULL,
- 0xfa4a3b186979a440ULL, 0xaa6d6d3de76c5ef7ULL, 0x70bc14533627e880ULL, 0xa78835f6bc42e2dULL,
- 0xa16a31a03fe82360ULL, 0xbdb7fec5816bc37cULL, 0xa1c6ba23733bb9d8ULL, 0xfb6ac5b304f0a5f2ULL,
- 0x50a60695252b45a7ULL, 0x700586f249adbf97ULL, 0x3487224fc32896a2ULL, 0x39b6d8e3896a0b22ULL,
- 0x335f4a81aaedce48ULL, 0x35c8a12b5d830fa9ULL, 0x49cf390cd462fd1ULL, 0x627209481eb15885ULL,
- 0xe96236ceb3475e7fULL, 0x140db193f7329201ULL, 0x58262e39d021e8beULL, 0x6e8d7a2904104bf1ULL,
- 0x4498192b3b1b01a6ULL, 0x5d459ea9af54c4cbULL, 0xc59558747d3f72fbULL, 0x94c2362a588334cdULL,
- 0x1e57aa7263812c9cULL, 0x258cd807d16ae4afULL, 0xbf613e8fbecdaacfULL, 0x9ebf099a46be7619ULL,
- 0xb1d294ac64bed35bULL, 0x4c9e7ce78701104cULL, 0xdce672f857cc0c27ULL, 0x5d2682de3bac7e6eULL,
- 0xe95b4f40bc21b28dULL, 0x829e37e95b76688fULL, 0xb8c9aa9c2ab69c4dULL, 0x2201872128e702ebULL,
- 0x70e94d82ed3ae109ULL, 0xd687c2c025dfd4aULL, 0x7157fe02114818feULL, 0xd131839c4981f9daULL,
- 0xfc4d6b2e360926e5ULL, 0xf0dd3443278175deULL, 0x5d6fedfae9de0125ULL, 0xcbf561b8b7078e46ULL,
- 0x35392b5d076698feULL, 0x123c8a9c2689d64dULL, 0xc7f3069932e8c43cULL, 0x7bf9850a4275d71eULL,
- 0xbb92e68755968ebfULL, 0xb914f18dfff9ec1cULL, 0xc8dc753b62226301ULL, 0x7e3dfe582c8315b4ULL,
- 0xef52b53a29182dc3ULL, 0x218492a7721904d6ULL, 0x48be64e729d23c06ULL, 0xc30494099e1f2f77ULL,
- 0x27d7b1dd5d2e9ec7ULL, 0xec314a9e5032bd20ULL, 0x6b5b9dc20291bf41ULL, 0xb7fd448bae00d57aULL,
- 0x2c25de5a87469529ULL, 0x3e892d83c5bac3deULL, 0x7dde4fecc09daa62ULL, 0xb79f5190f2259058ULL,
- 0x93d0cd32c6cb01ebULL, 0x28d2929969fea68ULL, 0x4401701454c181fbULL, 0x7954588407f955e4ULL,
- 0xe67364446a0614f4ULL, 0xd99b6a4b318c4acdULL, 0xf02e222ed5055a76ULL, 0x47f192c7ea2dc9c8ULL,
- 0xdc829a2f0a3d81ffULL, 0x3e82075085c9e98eULL, 0xd60e55181759ced1ULL, 0xa1ee8a71bdfb608eULL,
- 0x87ab84a365ddb0a2ULL, 0x52cffdfa401e4a34ULL, 0xbf5f54f2ecbb9337ULL, 0x1eb8377027b105caULL,
- 0x2bdae39eefec2aULL, 0x60ca539e3eee4045ULL, 0x942afe42163accc5ULL, 0x5b96feabf704a1e9ULL,
- 0xa42a1510555c0b5ULL, 0xaa84178803f1d3b5ULL, 0xaf1e89a4dd34986cULL, 0xd352ca2b69c2b9d4ULL,
- 0xd3517a52fe03a649ULL, 0xd73e6f7cf774d911ULL, 0x7aec989a41527c07ULL, 0xb813f998390ad0d2ULL,
- 0x3895037f5c482f31ULL, 0x910519d92856377dULL, 0x24a6b6e5bf37984eULL, 0x5f3101a8d3d37fa2ULL,
- 0x998a9abdb8d9c3bULL, 0x99b0a0ce166fb063ULL, 0x69c3493eb1ba2394ULL, 0xe69942a210421018ULL,
- 0x7073a3e0dcf1e832ULL, 0x99201f3b69ca405fULL, 0x273609a46b61789ULL, 0xee823f39ae06b308ULL,
- 0xfe492786b951e051ULL, 0xa96908988025ef18ULL, 0xf9ac97fe9ec3ecb7ULL, 0xd325a47dead20adeULL,
- 0xa1e92582a257d38fULL, 0x1df77586603f3da6ULL, 0x75e03e5c40aab419ULL, 0x77b7c5d77a956c60ULL,
- 0x71ae1e98aecb4eeeULL, 0xf3a49e6c097554a3ULL, 0x1b44f38bdddecd9dULL, 0x3a1864fe308acb50ULL,
- 0x6d526c8426a12c52ULL, 0x3880f05bd3d180d9ULL, 0xe12bdf709410929fULL, 0x6208fdee15004c63ULL,
- 0xf542c110359f9d80ULL, 0xaca0a63a46cae834ULL, 0x9e625e67280f9533ULL, 0x180d40ef5c0409c2ULL,
- 0x90fe7c5170c3c618ULL, 0x961bb72a407ed342ULL, 0x95505588c8c472c3ULL, 0x3b62bf5c51c13929ULL,
- 0xdcf67aedebe1b4d4ULL, 0x3345d9e2422a1cb9ULL, 0x27311dfed1c94ae4ULL, 0x875e4e270966bb2ULL,
- 0x59aa953d148ca994ULL, 0x3d119b3051536722ULL, 0x5921a0d2ff703312ULL, 0x9c501f797ed091eaULL,
- 0x98102dfd22842262ULL, 0xb06b5f240bf9f9d1ULL, 0x6629774aa8b538bfULL, 0x67422ede2d1f6c01ULL,
- 0x5faee84b64f613ebULL, 0x7a8a42529ccbcc36ULL, 0x2535294238907c36ULL, 0x7510f15ef379ad7eULL,
- 0x956142f0ee4ec7ccULL, 0x772f56f71cdbce71ULL, 0xccdfb7464fd6f35cULL, 0x9efb914870413052ULL,
- 0xd406ac3489c9fdfcULL, 0x1f42a0f8930a6c87ULL, 0xb536be419f4ce4b6ULL, 0x921b7fd89685e85bULL,
- 0xd2003d58d47bf8acULL, 0xe0ab92ad3988b44ULL, 0x83da2f009de8f51dULL, 0xcb208e52e6e3c372ULL,
- 0xcb485297ee8b3decULL, 0x31d6793722c1ce3cULL, 0x7843e6c028ac3a54ULL, 0xbaaacc80781ece3aULL,
- 0x8b8e4f3e3485c856ULL, 0xa91ab067494a1eULL, 0xcb15f141abf632d2ULL, 0x6215c7648e3a7761ULL,
- 0x2a90be0f54741dcdULL, 0xe81faa5b76ba1d82ULL, 0x83bd047201a1a50eULL, 0xc38754e542688e2cULL,
- 0x730bda63139263a8ULL, 0xa11bc291bd1eee0eULL, 0x785da2dbe7574b7dULL, 0x1788f9773c22543fULL,
- 0x6dc38559568834d0ULL, 0x2d38ebc3d018654fULL, 0xb0e54cfc4f615207ULL, 0x3b79b7d75ab71280ULL,
- 0xbbb949da2d21fb40ULL, 0xfb5af17949f5d162ULL, 0x3d3d480b91b6d4ffULL, 0x7cc2da6424ae172dULL,
- 0x898361fada0c5c00ULL, 0xfcd39a751b327a49ULL, 0xe59640340d1eadd2ULL, 0xa2aa1c6562109d60ULL,
- 0x4bb30b218d87c8f4ULL, 0x4226843f9bce08b7ULL, 0xf13f2c85b216c1d7ULL, 0xc432f3b034dfa5d0ULL,
- 0x982f098d12a2844cULL, 0xfd16b65c03e32bbaULL, 0xbe235fc7710741c3ULL, 0xb90283f59f4b90fULL,
- 0xb9b009098b370473ULL, 0xcdf458800b440222ULL, 0x48fcd26784823911ULL, 0x1e65db58ff5d26d1ULL,
- 0x42d6a2f7df049188ULL, 0x6290ff5934e4cd59ULL, 0x45c81528bcd405d9ULL, 0xfafc04844e05a2baULL,
- 0xb048dc64482a58faULL, 0xa22829273c8ef04cULL, 0x86e27d8682788ed1ULL, 0x2b33981977d374cdULL,
- 0xbfdcc6149ff8e59aULL, 0xc939f12fffde985cULL, 0x5f44f8938cbc1084ULL, 0x79a52e63014f5efcULL,
- 0x5f1c78f64931e60aULL, 0xd9e8dbd6bbd5bab8ULL, 0x542bae744e25978aULL, 0x289d5ef9f2b03b0aULL,
- 0x237870a3df282d9dULL, 0x9d884d785417951bULL, 0xbf7c109f91494443ULL, 0xfb311e2a8fd2e241ULL,
- 0x6123a5bcfeafa1cdULL, 0x179df607a9494e00ULL, 0x3e0f4c84bd24ebddULL, 0xee911e6b435c6b43ULL,
- 0x951b63fb3a157c25ULL, 0xcc931defb00790d7ULL, 0x7fa115dc6bbf9b46ULL, 0x8b18ba445dedbb6fULL,
- 0x1cb6c8a2a7e614a6ULL, 0x2b4b3f9510e32c04ULL, 0x8af2af5630eaaa8cULL, 0x33ec9711f8cee17ULL,
- 0xbd48833d628c84d6ULL, 0x33164d0a66198bbeULL, 0x9c3f7c6b37fedaf5ULL, 0xacfefff50cbc3da2ULL,
- 0x9991341771292b6ULL, 0xbf6eff1d5d6ff030ULL, 0xb6943e11744e56edULL, 0xec8684edc5df0c9aULL,
- 0xb63676347059455eULL, 0x36292245a43b667aULL, 0xcac3d08ac03990b9ULL, 0x3cc088aebcd1caa8ULL,
- 0x8b340d06b85da2b6ULL, 0x6a0a45e1fbe3ede5ULL, 0x776042546345a7a0ULL, 0x3ead9cf77e25e1c5ULL,
- 0x18c7e17751788049ULL, 0xad29b7b1d5d1079fULL, 0x39ac1e492af18da1ULL, 0xf2be82737ff7dc80ULL,
- 0x85d0855b115e74d8ULL, 0xaaf005b7bbe99701ULL, 0x6f36371761783238ULL, 0x7510cddbf4418681ULL,
- 0xddd3d08fa69457bdULL, 0x45e71a52691b8063ULL, 0xa17c3b3e9f18809ULL, 0x5314846de679431ULL,
- 0x33ac92e5f343d782ULL, 0xe7d2da12f4509ee8ULL, 0x3f574c7a368b114bULL, 0xd6d819d3a624566ULL,
- 0xb523ddeec7f4a96cULL, 0x47c3791058ed0e16ULL, 0x448ae36c93ae8a4ULL, 0x7feeeb29b4375e6fULL,
- 0x864591c7b0e21e73ULL, 0x8c062f29df7a6a77ULL, 0xa5583a566afd0ff4ULL, 0xc5e655529d6d19a7ULL,
- 0xa82ec65c3a38e263ULL, 0xe8bd8838f4d10c52ULL, 0x34c9eac7e462f751ULL, 0xf2afbe3357c49d13ULL,
- 0xce12313bab5382c6ULL, 0x86cc86a19e21e275ULL, 0x744b0d20231b1208ULL, 0x5eaa0fa5f448f722ULL,
- 0xe49e0b1888176363ULL, 0xf224ca72f1bd2e65ULL, 0xf4c7b4c2fa06a807ULL, 0xf1c643c2ee3f46caULL,
- 0x5869ee593c582a83ULL, 0x2ed4f6f38145ee7fULL, 0x62ea309f41dd8e4fULL, 0x6cdaae7ffa59d108ULL,
- 0xb4047e21c027e36bULL, 0x2e6bfcd530d60439ULL, 0x4a31ff3c435d04c2ULL, 0xf28741d120442679ULL,
- 0xd2af2dea4408ddcaULL, 0xb0aa029583a6eae8ULL, 0xa4cc9f40dfdfe874ULL, 0x1fdb3cbd49008128ULL,
- 0xd323bf94f2c4d177ULL, 0x82c7a6ee1f01a1ffULL, 0x9fb6375c7b39cb6dULL, 0xa24168c56f4fa9eULL,
- 0xa4778b364a7f8f56ULL, 0x12708b47af3040cdULL, 0x5ab7a26cac7e52a2ULL, 0x9ec96bc8a9baa456ULL,
- 0x79ca9e917745265cULL, 0xa65a12c4a9fd05bdULL, 0x6976e0ef56ba177aULL, 0x61fd9d74c28813dfULL,
- 0x10fe183e0f4e5419ULL, 0x5da5f5d90f761dcULL, 0x9cc3ceff6a637cdeULL, 0x5516cf21193958f0ULL,
- 0xad733b75167ba0f0ULL, 0x3780cffffcf96d1bULL, 0xc04df343249cfc14ULL, 0x1609fa2227eca724ULL,
- 0xf4058c1bc6b00ddaULL, 0xd1fd70978da6c3eaULL, 0x81569a5f26c95be4ULL, 0x259bb5c5d3e3eae9ULL,
- 0x88dfd0f782f76b70ULL, 0x25e9a0f8538babc6ULL, 0x931fb7f4c5750adaULL, 0x4752685cbd93deULL,
- 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL,
- 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL,
- 0x1d62debe36fde350ULL, 0x5073f2cd475a89d3ULL, 0x4efecd67ff5a51eULL, 0x2e0906566b04e96aULL,
- 0xebf7691c15a93a95ULL, 0x3f509d467986c246ULL, 0xa06adef26a452af2ULL, 0x39e72fee8ea771c6ULL,
- 0x4938b1dcef5a059ULL, 0x77979b83c2e8410fULL, 0x47834657297cedb4ULL, 0x807c48cda0245161ULL,
- 0x22ad46747478859bULL, 0x736e4fbf6eb83ebULL, 0x9e519a3d47e10b8bULL, 0xaf3b04aafb33c1a8ULL,
- 0xada2695dc366bba4ULL, 0x64a85fd0b9f8cbf2ULL, 0xb373b06bde9a5c6ULL, 0x83dac07691fbda1ULL,
- 0x195af8101c24f6cbULL, 0x3a91ceffc7bc5b1bULL, 0x12d2ec3ce06c1163ULL, 0x37b2f666de7a782dULL,
- 0x870e8d95edb78c96ULL, 0xfc86a84dfc0041fcULL, 0xa510ce6f943376aULL, 0xd6e7029469b08fc2ULL,
- 0xf683d07e36385c4aULL, 0x5e3e25a9107c6fcaULL, 0x9a8180199b40f07dULL, 0x763acbde017eef59ULL,
- 0xbc6ae22599b8fba7ULL, 0xc44023f11477f8d9ULL, 0x72819508b5ab4f9dULL, 0x21347b606e0274cULL,
- 0x6b12529e610816a7ULL, 0x938586e5044e5e9ULL, 0x823066176984c697ULL, 0xa7f517d4efd46b5eULL,
- 0x9d3cc3520f01972cULL, 0xd79e1981f9da0730ULL, 0xfa6b5602b31939c1ULL, 0x14ba769e29e52ff0ULL,
- 0xb562b42def2200f6ULL, 0xa252aff00f29cdedULL, 0x38228011a4c6b26cULL, 0x478c154b633d3b0dULL,
- 0xf2f7b3675e80be63ULL, 0x73a28e864ba3c31aULL, 0x32351d82afe86dbeULL, 0x1ae205a3e911077eULL,
- 0x93c6c2dd541bdcdfULL, 0x2cdd906604c110d4ULL, 0x50e5b5057bb54f1eULL, 0x244c5827b6e9a412ULL,
- 0x3dd8af3149eab95aULL, 0x7122eac6d2940385ULL, 0x9f98509ea7844d63ULL, 0xf62af1c08c51ddfULL,
- 0xfd445e06a6256c49ULL, 0xf36993bcd6bd49b8ULL, 0xbe6e780de4b6cec4ULL, 0x4e9f358f9c754871ULL,
- 0x65fdbda98414c34fULL, 0x72c8d4555f3e8df1ULL, 0x5f571cd1697186ddULL, 0xf3c96ac143b8391bULL,
- 0x2cf522d02c1ea0e3ULL, 0x5eaa94e3804f8b32ULL, 0x42e9f97e85c6946aULL, 0x67b3fb75593db999ULL,
- 0xe5d2095e4e96a978ULL, 0xfc509c0a64031240ULL, 0x377b3714412570afULL, 0x45c53acd0699b220ULL,
- 0x330e249fa3fac915ULL, 0x4ccbd5ae91ad0883ULL, 0xd25cc374202374c0ULL, 0x138b085f3c57934dULL,
- 0x97d62a8cfe08fd08ULL, 0x9fd665ed3de9b37ULL, 0xe1cec330c24cdf5aULL, 0x61a4248bffd695d8ULL,
- 0xdf37ff52b76d143aULL, 0xdc58d12eb162df45ULL, 0xebf85d44548ddc21ULL, 0x23dd7acb4f56aeULL,
- 0xd46f595f242b0f1fULL, 0xbd486922b1b03c46ULL, 0x728d6ff76e017502ULL, 0x3bbc3b4467ba71ceULL,
- 0xce85ab3c8fabaebcULL, 0x18076e33b21efee0ULL, 0x5c395d8c4b53b1dfULL, 0x269657e67ff81c6fULL,
- 0x9e70a32396b34b4cULL, 0xeff366ed088a12c0ULL, 0xa8fc80a12ef45043ULL, 0x72858f34eddafdf6ULL,
- 0x62480aff6eaa3547ULL, 0xc02f161c959b6476ULL, 0xfd354bbad6c25236ULL, 0x9b368eb1ae4b6456ULL,
- 0x8e2f8708e4cd0608ULL, 0x14cc0358b7ce1ae8ULL, 0x6dcdf4e1aa21b493ULL, 0xdaf232ff9b0a33baULL,
- 0x1157aa4cf7a378f6ULL, 0x57a9c2bdf54674e5ULL, 0x6e1f89f920f6bd0aULL, 0xd29e7ac4bfef6543ULL,
- 0x8f83faab255b06acULL, 0x96e24d28fdee85b4ULL, 0x78c7342e93367967ULL, 0x9d8bd952d48ac8b7ULL,
- 0x9fa844ebc1a6fa5ULL, 0xe780d2286e79902bULL, 0x9a60b2f1019ad932ULL, 0x71cc0487bda1f2cULL,
- 0x888e3b99da794442ULL, 0x2804fa115563d722ULL, 0xd619d8104b7697a7ULL, 0x98322739de3a7b41ULL,
- 0x166941ae0663659ULL, 0xc93ed6ccde26bab0ULL, 0x39c7a8dfd6536521ULL, 0x300793d044ecb164ULL,
- 0x1c966583e53a3fdeULL, 0x32003f68308f46e5ULL, 0xf36a79df57f035dbULL, 0xc957fe47c65a4d10ULL,
- 0xd879d46c274e3585ULL, 0xe9e86f32842e76acULL, 0xcec518d7648e6bc2ULL, 0x41356f7f69b1968ULL,
- 0xee2b81c300cdb544ULL, 0xc6935abbd3f0c8ccULL, 0xc65e1f7034fc0205ULL, 0xd836e975ea5dd9efULL,
- 0xef8824a720ab1f08ULL, 0xfbec080d6fd3470dULL, 0x1378dcd71909ad42ULL, 0x35f469ccf64ace72ULL,
- 0x8abf7bce352ec5c1ULL, 0xb0aec3ebb7397a1fULL, 0xcf362043eaacc683ULL, 0x5e2bfeba0e678c14ULL,
- 0x70e4572ede8f3c68ULL, 0xa5cad44cf2d20282ULL, 0xe215759e250dc3baULL, 0x89dd7c43ec69ccf0ULL,
- 0x10d0c73ad2953b6aULL, 0x6c582d483b2ad66aULL, 0x9db16c9738e050f9ULL, 0x2ef9dbf7d23d26c8ULL,
- 0xde38ccae5a611836ULL, 0x30e845264eb26b73ULL, 0x769cd30eeae09554ULL, 0x242f6dc4c38aeb29ULL,
- 0x25e8ae7adfd18624ULL, 0xa2b88c9a6ab50a96ULL, 0x37e19f609f6c19b8ULL, 0x80b50ec92828d0baULL,
- 0xf3f808098a021cd3ULL, 0x33dec823f4887674ULL, 0xd399931c1b3157b0ULL, 0x19c81ede25270702ULL,
- 0x43654f0af386597aULL, 0xf43f62111478886bULL, 0x626327b09439a80ULL, 0x7dd96e9699ebbb1eULL,
- 0x392053f26938e247ULL, 0x709e2330fd7a0e6dULL, 0xec8badca0255e89aULL, 0x2fb8df74af92fe3fULL,
- 0xc55304950e8ab821ULL, 0x47f07d94cce6fb00ULL, 0x5445d467c5eeb7e2ULL, 0x866759ed5a813fe1ULL,
- 0x4816c63da2034740ULL, 0x4d379f8e0f3e7c1aULL, 0x59e2d6ae7768af27ULL, 0x22160888a5c3bfbcULL,
- 0xf9346ac648bcf8b9ULL, 0x960c1ca1e161e554ULL, 0x961edb72a76a7697ULL, 0x2933021222cd658bULL,
- 0xa3d77a20520d676ULL, 0x849303b7847d9e8ULL, 0x23a3e77a429b33a3ULL, 0x252a72cfbaa27ca1ULL,
- 0x6b972c869036fc2cULL, 0x586c299c1c9d0c5dULL, 0xe9be67b2cb1f251eULL, 0x478a451e7dddecb1ULL,
- 0xdd18640655a35629ULL, 0xa53023b40b7c8f90ULL, 0xf4b6538ec570afe6ULL, 0xc7b6fdb5a87a67e5ULL,
- 0xc47a58491249ce15ULL, 0x5d2ab9ce4cf6ed34ULL, 0x94171af2257bec4bULL, 0x15e846c0d936a0c5ULL,
- 0xb230f9e16334d775ULL, 0x81500d4aa70c20e8ULL, 0x922bddb197c9875eULL, 0x3f6310fd108af1c6ULL,
- 0xb327746333df40c1ULL, 0x45564efa6ef1e9b3ULL, 0x39e650ae9f87fc4eULL, 0xf788265ee8f150e4ULL,
- 0x5db325ddd992a5f3ULL, 0x7115d3fa0a9639a0ULL, 0x62632dcbd39ff2ffULL, 0x374ef21208b5a3cbULL,
- 0x5c64d6f12e6c5f02ULL, 0xbd47da3e368843d9ULL, 0xfaf66dd64b89e34aULL, 0x7ce49e06c70ca18cULL,
- 0x840fd321ffef7751ULL, 0x41c36ec995708df1ULL, 0xbd4aa48b3da83b4cULL, 0x6e3c7986e9fa1b6bULL,
- 0x16b5d109d7c35ce5ULL, 0xce4357507868f750ULL, 0xa983d5fc76f36159ULL, 0x3549d9dc3bac9dULL,
- 0xa6c409e57bf70a6cULL, 0x27f52275a087eceaULL, 0x62b5ae69c14adaedULL, 0x969e453587750605ULL,
- 0x5a389f44b2c2ee7cULL, 0xdc4e50c8570b5aecULL, 0x27ecc914ed02b73bULL, 0xe148aa0060e5f1d6ULL,
- 0xf02c7d0233379b1cULL, 0x6ef28ae57a325087ULL, 0x51f0b2001146041bULL, 0xff699f4c654d76cfULL,
- 0xa4e111576cb6b7bfULL, 0x9c637c95330b19ffULL, 0x9e526eb18b2fe981ULL, 0x5eeba7415c1cad7fULL,
- 0xb654318d9d796c50ULL, 0x1cffd4df57fab2beULL, 0xda579b66c98901ffULL, 0xaea7033feb582430ULL,
- 0xa08399c7611d1f72ULL, 0x31e010b2979fd594ULL, 0x4b3437fee19647b3ULL, 0xee62d0d9da1f257eULL,
- 0x71c116ad223dc7dbULL, 0xfc20a0ae48cbd6f6ULL, 0xb1d46ac4e8845936ULL, 0x2b1ecf8baaec16fcULL,
- 0x41bec6328bee85a1ULL, 0x6dc89fc2262288ffULL, 0x942ffc70fbaa5ea7ULL, 0xb9f1e6e274d5e353ULL,
- 0x7f0f6ce319b777c7ULL, 0xfe1327fec13e6e22ULL, 0x6c8165c2f3f6b277ULL, 0x81dc29f2f14bb23fULL,
- 0x62ee90a237ee5d49ULL, 0x3b095fa7f1839a11ULL, 0x58b944e3fa2789ffULL, 0x4cf33b9cde4e4886ULL,
- 0xc04592538dddfb64ULL, 0xbd8b6021e62fec96ULL, 0x3ea4b01b75110565ULL, 0xc4828711f9361c38ULL,
- 0x95b35c579fec5f2dULL, 0x9a66af3780c44b49ULL, 0x711f710748ecddbeULL, 0x83cbfb4938fd6f68ULL,
- 0x88b9764971316188ULL, 0xba484f38a4368ee4ULL, 0xe7b560a2fdb676a0ULL, 0x5f52f6c5229c6385ULL,
- 0xca54684ceee8e9d6ULL, 0x2bc2b289d8336c67ULL, 0x7be4a3e39550ededULL, 0xe98db45290de4d15ULL,
- 0xb53e05065aa1cf50ULL, 0xca030f74bbb9ee5fULL, 0x115ed569e8268b7bULL, 0xafb0d229fd51da5cULL,
- 0x77fc29a5763152baULL, 0x757e502c9d617964ULL, 0x6ea07e3422f1c0bbULL, 0x2aa5d812eddb0233ULL,
- 0x887880fd677ebe30ULL, 0x37442592a7913100ULL, 0x1b9bfa3c9bba27c9ULL, 0xd0f4ab7cc9ed7787ULL,
- 0x23a467f68b441ad8ULL, 0xd45859e8c28d4493ULL, 0x69398f05506bea86ULL, 0xee4e794dedf58b4dULL,
- 0xdf5a17bc66dc9f6aULL, 0x407e176f34d5d7fbULL, 0xf30f96a7934319a0ULL, 0x9866cf03a4423286ULL,
- 0x6b088722df46105fULL, 0xb76c6cd25c46e623ULL, 0x4d82d6712921adc1ULL, 0xa707c8c38b3ead52ULL,
- 0x1fc32e6a2dbbd1cdULL, 0xe1c01b595d46614dULL, 0xbd84596b8340ee6bULL, 0xab6063d49412be49ULL,
- 0xbae67d7816f0fd37ULL, 0x3ebc5e86f3cdfd6bULL, 0x6cd3fecfded3027cULL, 0x5283a5c5c2bc659aULL,
- 0x4457b186787ffc23ULL, 0x96df4f84c7d97257ULL, 0x642b23efa7abc3b6ULL, 0x449c48bc5eb99ebULL,
- 0x1145e5f6f23cf7f0ULL, 0x8342862f6d938e5bULL, 0x1b9911627a6731eULL, 0x3c29b8eb85996ea4ULL,
- 0xed8528e5bf5a3e54ULL, 0x243d5d34630f2cd3ULL, 0xb011832d8efa764dULL, 0xb74401c15cd04a4dULL,
- 0xbf6915057aeee47ULL, 0x671bae143ef345f8ULL, 0x3d27fe8468696726ULL, 0x66085772f1fff006ULL,
- 0xeddc134f70b011f4ULL, 0x2becbe4fd9e565c0ULL, 0xaede1399d3585d7cULL, 0x348c79970a89ed49ULL,
- 0xf21e49a8cd93a81aULL, 0xc35cdf149210fd20ULL, 0x350f4abc8a2db79fULL, 0x20c895a318ab1cbaULL,
- 0x8e45fa2c98cdfad3ULL, 0x9e5795d2f66d6eb2ULL, 0x72537a60e71421a6ULL, 0x74d21c782b1486c7ULL,
- 0x7ef6b6477e641999ULL, 0x78112bc26d6a6b1cULL, 0x96f7645e2895770fULL, 0xbbfca74b4e0c8628ULL,
- 0xc7238a36d1dc8e2eULL, 0xba77937c5d4259a2ULL, 0xcccde4e6cc4d63f4ULL, 0x27d28160aa95d43ULL,
- 0x52de3061e58f2d07ULL, 0xe799ca9bff4de8c1ULL, 0xf26e10bb49391648ULL, 0xd729d5c52f6cdb86ULL,
- 0x7606f4e892b558d5ULL, 0x9871c5ecb38c0a9cULL, 0xd9259d64d120d16bULL, 0x2f6a5b9d651f2e90ULL,
- 0x31186ae35805ebe6ULL, 0x9c01f78fbf71ebaeULL, 0x5ce95e72b6a0ec23ULL, 0x170a7c6853b49be8ULL,
- 0x6aee582cf3730b74ULL, 0x3eb9b89de32f1b6aULL, 0xbbb1130be77140fdULL, 0x15a817a13a9568ccULL,
- 0x29bf9693329c9670ULL, 0x50400793370a901cULL, 0x6ed9bce86702c764ULL, 0xd32c71f13fa39db9ULL,
- 0xb9bb1d8fcc0b3257ULL, 0xd645303fbab8a979ULL, 0xe83ab9bf5ea67b01ULL, 0xd13cf9dfc40090beULL,
- 0x87495f30e480ea25ULL, 0xc00b5ed9f27a0cf0ULL, 0xf6f8d03cbd9be82ULL, 0x1ce625ac1a323834ULL,
- 0x595e71eb8df23b9cULL, 0x4bf8f8376a273277ULL, 0xb020e03c7bc96850ULL, 0xabda005e0732d2ffULL,
- 0x962c79bd0c9b035bULL, 0xa33715ddf1015fddULL, 0xfed0f2e4d88f6d59ULL, 0x9d0a936d711c72fcULL,
- 0xa6dd6e063a32b997ULL, 0x803bd4a8aed65503ULL, 0x205c1ae9fc85b0e2ULL, 0xd34b49efb92fda6ULL,
- 0x1095e47e083063ffULL, 0x69bdd68b0194402ULL, 0xdf8747a182527461ULL, 0xcd7247b33a2cf0b8ULL,
- 0x7ec68f94b93c45c8ULL, 0xe12337c11966a5f9ULL, 0xebe9173ed7300bf0ULL, 0x5130be75cfe53e45ULL,
- 0xa55eee5a8c241973ULL, 0xaeb09d4b7b41758fULL, 0x85739394252ed708ULL, 0x25f363e2c699c2edULL,
- 0x4f63ca35701e4b0eULL, 0x4826e4bf7e3200bULL, 0x572f49c484a9f45eULL, 0x3dad1a0ad52fce0fULL,
- 0x7969f6065a4da88dULL, 0x172dcd1b0ed5a5d1ULL, 0xef1ac6bda0b1a979ULL, 0xd027efdcd72c1c5cULL,
- 0xec99777faf16cd37ULL, 0x1589b0e7a827733dULL, 0xcffbf14a4c5f1c7bULL, 0xd6dc5622d0bc5012ULL,
- 0x858b1ae7f9cf8c04ULL, 0x31f24c8182ddf18dULL, 0x122d12b71af4f11bULL, 0xe4dffbd6a8708b7aULL,
- 0x7ddb6722c90a583cULL, 0xacf1e21f8d6a516fULL, 0xc3c1d5d49f280144ULL, 0xcae38b0d7ccdd4faULL,
- 0xd3f050c4adbe795eULL, 0x96dacb50f706955fULL, 0x4abe0006103c05d6ULL, 0xc3a919dedb879552ULL,
- 0xdca1cfad7cf8ffddULL, 0x6421ede39dd938dcULL, 0xcfd3de74a0bf7c8bULL, 0x22709658bb56a833ULL,
- 0x83fbdcaa41e34195ULL, 0xe5a9005b313d7721ULL, 0xb1b8a60b9b2f0a88ULL, 0x306499024b1859a7ULL,
- 0xe7fbd9bb250aaecfULL, 0xc1a63c6a12c8da9cULL, 0x2a2280fd2e34cabcULL, 0xe078dcd889193cf4ULL,
- 0xe19f470478aa8de4ULL, 0x96c38e2504972799ULL, 0x7ac62b7d83aca962ULL, 0x1709dae4433b83bULL,
- 0xa2f81a0cfb3f601cULL, 0x11da43a2aca7f43bULL, 0x285247a09d9380a0ULL, 0xccf91b97f8533edcULL,
- 0x8c723d80cc0777efULL, 0x9643f79c8c175396ULL, 0x8e63212dd1d85534ULL, 0xab9ba44ffcd976a5ULL,
- 0x8eb7f612cd8c12feULL, 0x1f22a2e5d69e8ecbULL, 0x421ad06554f06e5ULL, 0xb0c2649430428efdULL,
- 0xb08ae4e9e40f0d2dULL, 0xf35c21ed49e335d0ULL, 0xf295e325a8ee02eeULL, 0xcf4df981ebb216c3ULL,
- 0x4ceee5911ed93808ULL, 0xa78a3e07060cec8cULL, 0x20fc3260749e6cc9ULL, 0xd369928c8466b867ULL,
- 0x851c4fc24a67941ULL, 0x82d8e70648fc9eULL, 0x3efb5a978875d050ULL, 0x567530a8e9365f8bULL,
- 0xbc300883b5105d96ULL, 0x2870861bf59e1b19ULL, 0x71f3a32435b76021ULL, 0x166d735ca63523bULL,
- 0xfe0d8535712cf3d5ULL, 0x7ed084eafef0521dULL, 0x90d8a80485c90242ULL, 0x3c0655aa6f34b2e1ULL,
- 0xb1223c2e25b720d2ULL, 0xcfe475da92a99300ULL, 0x9d72ad19c6baa30fULL, 0xc806625be7b30e72ULL,
- 0xee6cffb7d3224f43ULL, 0x68ddb2510f761f5aULL, 0xe943660decdf718cULL, 0x15aa688019e75aa4ULL,
- 0x68cff2a2819d6dedULL, 0x8503c04de368c36ULL, 0x80a8236733cebc21ULL, 0xa2a464be0c7f0986ULL,
- 0xf1078d6dc4ad4909ULL, 0x9e697a91ec908e74ULL, 0xe8a29c4054a222f9ULL, 0x1f5c46dd89a72534ULL,
- 0xfbe3ef56b9b93214ULL, 0xe9fb60f673cb36e6ULL, 0xe1a3341ea763d6daULL, 0x29237861caa78bacULL,
- 0x915a529ade24c262ULL, 0xb6d73e2596e71f3fULL, 0x162e796eb353d726ULL, 0xa8293b3d70f8bf86ULL,
- 0x2c4e07f483fe1eafULL, 0x9a63e21b48902722ULL, 0xc56e45c8c834df1dULL, 0xe3e6ef04a5bd525cULL,
- 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL,
- 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL,
- 0xcf66e6466ae15bbfULL, 0x5a618993d1f11498ULL, 0x7a123731c9dfe68bULL, 0x6bff1cd74ea775b0ULL,
- 0xa96ba677f22503feULL, 0xf547b99af7335a44ULL, 0xc428d10514aded78ULL, 0x4f93608ee8f6598ULL,
- 0x615ae6f4f88dfe0cULL, 0x4cc0f5e3141a2e57ULL, 0x15d808614801b8f4ULL, 0x5d30177b5d11ac27ULL,
- 0x4ac8840d4a0a918aULL, 0x754f6435e5328a23ULL, 0x3ba6951e1abff225ULL, 0x94f4440b99a13ab5ULL,
- 0x7ce06cbd702641bdULL, 0x6d61ded5bc5f789cULL, 0xc11e4f486e5bf39eULL, 0x932c4d59575f27d5ULL,
- 0x2baf828d9e0409e7ULL, 0x32e61bbfbec3c4c2ULL, 0x18077144ff18ba90ULL, 0x4d52abd4f49d939aULL,
- 0xf76f292e08966ba1ULL, 0xd38162f22a1d44aaULL, 0xb6a4add1df3f5a37ULL, 0x4d01f4e14f960512ULL,
- 0x89cbe3451223d13aULL, 0xc0fb5b6b121f814bULL, 0x6eedbc7dc6893412ULL, 0xed54c62129fbca28ULL,
- 0xf46c3fba6ae6ecfaULL, 0x42733fd0ea719dafULL, 0xc8c4b3cf050524ULL, 0xc387573b3075bcafULL,
- 0x9700280974ce0b01ULL, 0xa11261f50cb6673dULL, 0xe35e5162843d9067ULL, 0x8502f8ff18bc021bULL,
- 0x2aa18b10e6f429c5ULL, 0xea2d8042685f5b1cULL, 0x757ce2a03983b8f2ULL, 0x1502a560835f56f3ULL,
- 0x91afe2eed42bd37fULL, 0x683bfd6d673f19a8ULL, 0x939eab09a8a21a72ULL, 0x6d867478c75fda02ULL,
- 0x124a0d0affa32a75ULL, 0x1f52564db2c166d6ULL, 0xa11bffe4603064e5ULL, 0xdb4f49edf2be6ULL,
- 0x53080e721c4f8d13ULL, 0x8b031c9f16c21f30ULL, 0xb2dcbe15f487b471ULL, 0x2d138332ab4f2955ULL,
- 0x1f1ea2bc4479045aULL, 0xce4b5ddd7d492d58ULL, 0xd2a9c4b8b6592d0dULL, 0xae6e38e07a770a59ULL,
- 0xcb7f0b337be26d63ULL, 0xaef5469a30e5bafaULL, 0xaf14d328fad1384ULL, 0xa0d8e59729c36b88ULL,
- 0x5af62020ebc93167ULL, 0xf5f885219e2b5b00ULL, 0xa867c3eff066e8edULL, 0x6ef4c8134e1304b4ULL,
- 0x4ed0a95e2f7e1b98ULL, 0x6e24c1b18224d4cfULL, 0x468d9d150a60000aULL, 0x8709fa5e17d848a2ULL,
- 0x9344fa58922b5275ULL, 0x8cbf2b1fbd3d851bULL, 0x2c1b90fd0b2f4f37ULL, 0x402789ee48f4ec7dULL,
- 0x31763e52fa62cde0ULL, 0x7923eb4f46f8a563ULL, 0xd89245070a35eed7ULL, 0x4ea56b61169ad489ULL,
- 0xb8dd1d737e4a7252ULL, 0xa6665b1ddd7d72dfULL, 0x9577fc51438587d2ULL, 0xd87caae68ff604d9ULL,
- 0x3631284e68f8d0cbULL, 0x2c05b8ff6d7b482eULL, 0x39959968eb36b69bULL, 0xc2ecd5e96edc4620ULL,
- 0xe842bb3d2bbd8149ULL, 0xfe8bf1b97d423d40ULL, 0xf0049c631034206cULL, 0xc31e21afafbfec7dULL,
- 0x8ab24c1dfe7af91aULL, 0x4ed6f8c2e5f1d1cfULL, 0x2bbdc8c681631abeULL, 0xe786faac39190a3bULL,
- 0x8c30a77f5ea72594ULL, 0xdaf5a3072ed7287fULL, 0x9cc67f7397b8448eULL, 0xd4f871338768cb50ULL,
- 0x9f5644c8f526dda9ULL, 0x3d40800e8f686c8fULL, 0xd8ee7a6d20b3588aULL, 0xb4eaed0212f54022ULL,
- 0x7e5d29d80d036d3ULL, 0x861c78d7247be4f9ULL, 0x2282538fc4646568ULL, 0x5e09308b364bd65bULL,
- 0xca5c278f67fa74ffULL, 0x9268a80ddcabc348ULL, 0xd5cbb7cd6374a225ULL, 0x658ef8682e401352ULL,
- 0x15b82e17c361da0bULL, 0xb9ea692c5581128fULL, 0x359eef8c05fde6c9ULL, 0x7b17ad9a22f0332aULL,
- 0x531ffda26bd60d5fULL, 0x7b51fb17aca98a75ULL, 0x4dfb157e1444ccf7ULL, 0xc9f08417b7d63debULL,
- 0xaf02387099ac3c67ULL, 0xefbfb5e5d75d7575ULL, 0xffbb1c69993dd715ULL, 0xb39f4cbf36cf0316ULL,
- 0xb5633b7d6e314a71ULL, 0x1e13ee39029042b1ULL, 0x99a8a0ea10c88333ULL, 0x300e6c210704ace6ULL,
- 0x67bb4071db36505cULL, 0xdc40f0e41e28d3d3ULL, 0x13cee3093109d643ULL, 0x5ee2e6f00240a5d2ULL,
- 0x182ac3c2a7953968ULL, 0x92b5ce1071faf976ULL, 0x65f479d0b1ffc8a7ULL, 0xe838a052412e4e17ULL,
- 0xe21a3ee9744b0b86ULL, 0x3d0defee5953f6b3ULL, 0xf96d3c3adc2f88acULL, 0x62da3c3d7f327f8cULL,
- 0xa9fcff07b998aba0ULL, 0x281126b7ac650bdcULL, 0xa1c7f620a7d7cda1ULL, 0xdcf4494519dd4de6ULL,
- 0x9c6ff77666d5052dULL, 0x8a0acea3d9763a9bULL, 0x96ab86e5b2352e4bULL, 0x7d102af955cbcbe4ULL,
- 0xf38548a46a8c3910ULL, 0x35d88d6733612d5ULL, 0x39be9a8a030bea6bULL, 0x7f1b4cc3143fd482ULL,
- 0xf31b19e2c27529e0ULL, 0x9176014461953583ULL, 0x774252d59c97c52dULL, 0x3a2abb9b33224072ULL,
- 0x3bf2e0e130d20b3dULL, 0x8d59512fb3fddf87ULL, 0xaababda8397dc3bdULL, 0xe28623fa8d807356ULL,
- 0x759a7a5e3e4dfe3aULL, 0xbbc4b124072d305dULL, 0x9512470c9e294f93ULL, 0x2bdf6f9c0b6a369dULL,
- 0xeb2952ce1dad86b8ULL, 0xc68689c60e2f303fULL, 0xafb287d15cd03f59ULL, 0xe4ffd394d07a4219ULL,
- 0x43fecad1ac4ae455ULL, 0x1170e01bd0964907ULL, 0xa1f9d1e94d5c070aULL, 0x3239208348f558a2ULL,
- 0x7c670ded4953186ULL, 0xf2474339c050edf6ULL, 0x87095d417e054273ULL, 0x4ad6c591a7789c67ULL,
- 0x6e7c8175e01123e4ULL, 0xaa57b4a73ee3672eULL, 0xb19142fd0a981ba4ULL, 0x3930eb58ddbe3910ULL,
- 0xab340b6fd0a1f336ULL, 0x6ac295c3de88c134ULL, 0x57f860b2e8db5bcaULL, 0x84e77fc39e89178eULL,
- 0x8493b31ce87eff8aULL, 0xc4aefd6f4ab9196aULL, 0xd86706fff8419f97ULL, 0xf4a4301df481acbcULL,
- 0x7e79cd6d9d5ce3ULL, 0xda3a928d7d131171ULL, 0xab54d48eb8cd7932ULL, 0x787a3c893f21f9faULL,
- 0xd0e239e73019b8d2ULL, 0x8110c56c81acf1b7ULL, 0x57cae3cf2e86ac19ULL, 0x130f6bef6015214cULL,
- 0x1ffc39421bf319cbULL, 0x1ec4d85f03279e5fULL, 0x558a133c7bf54c81ULL, 0xc148ae7e4050c08fULL,
- 0xb2119d5c85752c5cULL, 0x47895ba7e76e573bULL, 0x928b7738c712db69ULL, 0x10bcadc6914e8530ULL,
- 0x32365ab776b68c8ULL, 0x162cc3dafd4d6628ULL, 0x614aeb1b30a2f9a0ULL, 0x311a7d5bf172f983ULL,
- 0x6c64c679ada7e4adULL, 0xe46728fe5f9a4423ULL, 0xe3edcc0afb5a9204ULL, 0x29df90f6d39dd5abULL,
- 0xab02681672787c0ULL, 0xfb0afa51b0319069ULL, 0x9bc8408c7ede14e9ULL, 0xedff80fa60187bf2ULL,
- 0x1d20aef596e5789fULL, 0x89c5d57494f0d5f0ULL, 0xca523ba83433cb65ULL, 0x4488f6e25f58ce8eULL,
- 0x1f46cca64d3564f0ULL, 0x72aafeb7915204b2ULL, 0xe525b895eb3f1ce5ULL, 0xe75b9f1cf26908b0ULL,
- 0xd2db24252c0c7fe2ULL, 0x107b9b10421e5588ULL, 0x93a8ea4c0e1925d7ULL, 0x61cdd95967139f12ULL,
- 0x2d1841cf5b809149ULL, 0xdc5911d890284751ULL, 0xc63e57ac51ccc378ULL, 0x922025119f03d140ULL,
- 0xece2358d12997d43ULL, 0x6c3a0a12345c788ULL, 0xec10b58c849ea5c4ULL, 0xca276a3469300c5dULL,
- 0x7ff5b05268a04c03ULL, 0xf5a392b572df8f9aULL, 0x38b8119784796a36ULL, 0x5772f3f429e8abaaULL,
- 0x1c1d070062d443ccULL, 0x4ad5838742917b94ULL, 0x1906cc8b15badffcULL, 0xc262925048a2b40ULL,
- 0x8bb20cd4a85af9f8ULL, 0xb674844668d939a1ULL, 0xf6aa362de0c38ba9ULL, 0xb901da5a0d8b7aeULL,
- 0x4258809b61701acfULL, 0xc08b4e02f6fcee0dULL, 0x7c47a7e177f058bdULL, 0xf6aa20f506380ee0ULL,
- 0x1554efb65bc2138aULL, 0x8a8a8153ba9bf70ULL, 0x3278aeaf6f7c7282ULL, 0xe9a0eec0ff145682ULL,
- 0x71794915f6d2a556ULL, 0xc9cff6207d9bf7c2ULL, 0xfbd0fb8e23fa79e8ULL, 0x85a9180f7728d830ULL,
- 0x4ac938cb34d442e2ULL, 0xc4acf0cbc2ac1cacULL, 0x8060a95dcd4326bfULL, 0xf8fd8e12d3c08ee2ULL,
- 0xda8432b7387a1f9dULL, 0x877dad0a0fc54e2cULL, 0x5d0884e225ed0702ULL, 0x3d1e28acc902fa31ULL,
- 0x48a75921ba0e87e0ULL, 0x28b2148b16b5c5fULL, 0xc61ead8fa16d6673ULL, 0x5a4d2ff7ad0132eULL,
- 0xc666ef2949ebc3c2ULL, 0xb2ee732f2cdf199fULL, 0xb268d1e6043ce304ULL, 0x310935ade75c2836ULL,
- 0x95f8f0df609ff2c9ULL, 0xa2a92b95ff517441ULL, 0xd72e9bbf6fca9aceULL, 0x57ffacad00b9f3c2ULL,
- 0x7d849bfdd49a8ab9ULL, 0x8e9930aaef6b9a35ULL, 0x3bdc603f08bea615ULL, 0x9d9bed6fe162b1dfULL,
- 0xf2e188bd1342a9eaULL, 0x4ba409f563c243b5ULL, 0x62d4bc5ee79f8bf6ULL, 0x3ed3f2887872b2fULL,
- 0xae5cb9e561bd34d0ULL, 0x26a539ae95e3b49ULL, 0xbbe40596c1b6cb18ULL, 0x304c7700a82b4c2fULL,
- 0x78ffa071ece7c114ULL, 0xf4165ed80d305dc1ULL, 0xfbbfe49672a4703fULL, 0x360f23dc8d91ebf2ULL,
- 0x48e2929a302e6516ULL, 0xbcc7dd8323783708ULL, 0xec7bd8154c298d7eULL, 0xe7143acb3d2dcf38ULL,
- 0x546cabfbcd68beffULL, 0xebf0e995610cd4ceULL, 0xf2765d2545583585ULL, 0xc64514c231758de7ULL,
- 0xe65b69a128283d7cULL, 0x5ff73da5795717caULL, 0xa14bfd85aef8582aULL, 0xe4a64ae3e00e4331ULL,
- 0xc080d145f7fd0029ULL, 0xfc137448f8a4536dULL, 0x4f1571698d6bb16fULL, 0xb0dd76d405540114ULL,
- 0xfad0a7eabc876d42ULL, 0xd5bcd8d9249db741ULL, 0x53bb6f5f55c9395dULL, 0xf863c46d23206961ULL,
- 0xe58376ce9dd908c1ULL, 0x315a208706116a21ULL, 0xf2b24cf2c98a2f03ULL, 0x661707bc3d20c088ULL,
- 0x1db1f185f34ae80aULL, 0x17816b73cbb09417ULL, 0x7e8ecb4683a06943ULL, 0x66d46ced2a34d2ccULL,
- 0xfa0bfd80a2ae3769ULL, 0x1238e11e86e65d32ULL, 0x568aa6de5436c310ULL, 0x75929192cc91ce32ULL,
- 0x524a8f573967230fULL, 0xf318a6344632ab58ULL, 0xa7285055923180ccULL, 0xa043bf7d442857faULL,
- 0x6042e4d4ca902613ULL, 0x8296dac1856bcc6eULL, 0xdb954d2c402cbfebULL, 0xc613f823aa678c5eULL,
- 0x269a96efc1b45344ULL, 0x36832f9e6ee96b06ULL, 0x9551825310b9bf33ULL, 0x427fd8f245ad859dULL,
- 0x9621a7ffa637579cULL, 0x39a05c65c463bb47ULL, 0x75d5e41cb07fd3bdULL, 0xd29939a2fa2358f6ULL,
- 0x3401b97706100f9aULL, 0x50cb893698259062ULL, 0x8a30e7362e53777dULL, 0xddfbb9438cc31ef0ULL,
- 0x9ed8499715eca260ULL, 0x5e603e71dde6931aULL, 0x41e22c84620c6038ULL, 0x76fc5aad6d533aceULL,
- 0x60c510f32d7fc924ULL, 0x5222f5d0f3804c5aULL, 0x551ea2cfed06a26dULL, 0x27163766b6a6874fULL,
- 0x65d40db88fd248c8ULL, 0x5c033426b3f5c4fbULL, 0x11624b389c934542ULL, 0xe1050abed6abaaaULL,
- 0xd0ec653e8515ec3aULL, 0xd71f9c6e0cb59c67ULL, 0x92ee0aa56ec47675ULL, 0x4295c89cc4716765ULL,
- 0x3175b7bd44d5e3f9ULL, 0x8d48848efb5a16dULL, 0x546c17834a02af8dULL, 0x80a35489dc01c598ULL,
- 0x2291d1f3722f9162ULL, 0x4248cc23f102b2dfULL, 0xc092ea06025bd9d7ULL, 0xe16b324d44ed1261ULL,
- 0x2a4356ea0320caf1ULL, 0x287e952d7b95b116ULL, 0x1ad8e1f166ebb0a2ULL, 0xf9146cfa3a619095ULL,
- 0xe346e6b378886f2bULL, 0x941718eca3c71d18ULL, 0x4c6c90298ffe84c4ULL, 0x8b8fb0205c158c57ULL,
- 0xfc7eba83e577d9d3ULL, 0x2cfef02b997d18f6ULL, 0xd8aab6a99881d629ULL, 0xebd3f330fde2b447ULL,
- 0x2c5df8c6a3e6a365ULL, 0xd8a7bbddbd87899aULL, 0xac5eca940b036b09ULL, 0xf67b1635023968bfULL,
- 0x5d6717a19482b67eULL, 0xf2a1c8cd6d4ba255ULL, 0xd4d6afe45067d48bULL, 0x2d63944648b5e3cdULL,
- 0xd95cd6db0451f740ULL, 0x41d177ce3b122ed9ULL, 0x4a26fac79e4b4ebfULL, 0x1cf841ef2e76f5cdULL,
- 0xfceaf70b198e8e8aULL, 0x2695372192f46d97ULL, 0x8307fdd5f9677fddULL, 0xec27c8c955bcf13dULL,
- 0xd0a5a1e330031e9aULL, 0x1a35d203b0e3a1d5ULL, 0x2a4c556fbcdf22dULL, 0xa492326633dd8fdcULL,
- 0x1315d3a0f36682e8ULL, 0xd087d595bea09e96ULL, 0x994ddeeed13385e7ULL, 0x37ab379f32155e2eULL,
- 0xfd12dfaa905660a4ULL, 0x68db56e7dc3d45deULL, 0x87d4aed1f4633161ULL, 0xbf7c014196e5fab9ULL,
- 0x1102df7b4b771866ULL, 0x3e8fa7c88d658f0dULL, 0xe513abb14062ff0eULL, 0x5908de6743a0d0afULL,
- 0xc2171a7beb07ad42ULL, 0x5722ff119ae3fad8ULL, 0x5fa74db13c55da44ULL, 0xeb38a0c23a649242ULL,
- 0x986328805d211e50ULL, 0xa969dc66a872b720ULL, 0xe81374c99badb45aULL, 0x58ff57a0072018c6ULL,
- 0x9589c25d92984ce2ULL, 0xe1bb6100e1862067ULL, 0x7ea23c2b09be7004ULL, 0x94d2463774c9529eULL,
- 0xca4aa07d454a533eULL, 0x628a458b6972fd68ULL, 0x5dc132d39bdf4a1aULL, 0xc4c4190809a59640ULL,
- 0x1794d70e30707a77ULL, 0x8f4e33c85045089fULL, 0x4429d1a2a421bf18ULL, 0x12f2296a3d7fd09cULL,
- 0xbf1b7931337372a7ULL, 0x1dfb7554ad89c35eULL, 0x4f253cc306f8c653ULL, 0xeb2bfe2489c0916dULL,
- 0xb23c1716438c5b85ULL, 0xcbe8886ea72653b4ULL, 0x9260832616c0bbf9ULL, 0xdf9094f771434495ULL,
- 0xd854faaeb6b430beULL, 0x56e8a048c5908d0bULL, 0xeb55b153f245b736ULL, 0x5317df0da897162bULL,
- 0x19d9c32d963e94ceULL, 0x1f28a6aeb09e2ddULL, 0x3009cf49284a491fULL, 0xdc5b9806bc4ea6a4ULL,
- 0xaa1255ac6dd6dfe0ULL, 0xca4451a8a8fc8d8ULL, 0x85ccb564bd466069ULL, 0xb035876dbd2fe70bULL,
- 0x74f1f26a929ead36ULL, 0x720b45dab852f545ULL, 0x833c0d0e39c817aULL, 0x2c5f3fd181600f7bULL,
- 0xed08fd78bef340eULL, 0x3a0810b4384e8071ULL, 0x944a80979a7d6581ULL, 0x49d1f11f1fb23993ULL,
- 0x21e8a59c8d271787ULL, 0xf5e33ae529171d1aULL, 0x18c1a7c9c7deee82ULL, 0x6755edfde63de4d9ULL,
- 0x808fab6cca36688dULL, 0x95daaf9fb8c7bbaeULL, 0xd0782a8d065e94e5ULL, 0xbd3fe471fc640082ULL,
- 0x4ee5da2ea4107b45ULL, 0xf65c554c9a5c669cULL, 0x364a363324963123ULL, 0x3625ab3d67bae25fULL,
- 0x42fe8860c377d063ULL, 0x830ba19c7d6e7e9cULL, 0x9435ed40ae4e7adeULL, 0x7a5847a472add5eeULL,
- 0xb7318b363bc2ef95ULL, 0xdf3efe641e2b1aULL, 0xb9b851f1eeacb296ULL, 0xbfdba455ed77679cULL,
- 0x144975490d5e9a35ULL, 0xfa9a43167a43748fULL, 0x502e1497c324a173ULL, 0xffef3dc927be3990ULL,
- 0x39ae8f67b29fcfb5ULL, 0x740807827ee978fdULL, 0xaba222178951d398ULL, 0x880f03c95544fc4dULL,
- 0x1a1a676542c7bc2fULL, 0xd16eeaba86c89c73ULL, 0x47b6dde409ca8fbULL, 0x5ba2ebdb9d4fc327ULL,
- 0xa76368c0df061db2ULL, 0x782f7d6af3ffb02cULL, 0xa226a3f9e015c602ULL, 0x9784a9f8a24abfeeULL,
- 0xa58e3c170c8c9a1dULL, 0xe6fdd4fd769086e9ULL, 0x96de7ac081ad2980ULL, 0x17c3299341a1f2c4ULL,
-};
-#else
-static const mp_limb_t ecc_unit[4] = {
- 0x1ULL, 0x0ULL, 0x0ULL, 0x0ULL,
-};
-static const mp_limb_t ecc_table[2048] = {
- 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL,
- 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL,
- 0x1ULL, 0x0ULL, 0x0ULL, 0x0ULL,
- 0x22acc99c9e9f1e14ULL, 0x35294f2ddf23e3b1ULL, 0x27df505a453f2b76ULL, 0x8d91e471e0989cdaULL,
- 0x6836c0b76640f110ULL, 0x60ddf2889a30d10bULL, 0x853d8fe391c22bb3ULL, 0x5b9ce67c6830bd12ULL,
- 0xc19956a98edabed3ULL, 0xc9b469182d90df5cULL, 0x562d04277f1ad50dULL, 0x30b84053ffd24011ULL,
- 0xf909ba0d54ab33a5ULL, 0x409a584722f55287ULL, 0x9f600f87aea6a078ULL, 0xc2b90ce46a83efcaULL,
- 0xdc3c26a217cc5b17ULL, 0x66597a08117f0c65ULL, 0xf58e17d046c685f6ULL, 0xe6f681acf97118d8ULL,
- 0x263343b133d17d71ULL, 0xf58a611e8fd0648ULL, 0xf361fc631fc24509ULL, 0x4e4d7c57b568f30aULL,
- 0xa7fb2c3c9aeb8233ULL, 0xc483a0158220438bULL, 0x18a802ff94e49355ULL, 0xbaf075bbe109faf0ULL,
- 0x87a19db950a6b00ULL, 0x31247ad1a519e50ULL, 0x92b89a9a858b1331ULL, 0x8a869a44a7d92af4ULL,
- 0xfd2bb274938c5148ULL, 0x68a976778bc4a48eULL, 0x690b8eda1d152f52ULL, 0x8e919f6f9840e06cULL,
- 0xd56ebcd12d0912f9ULL, 0x6d035c2a1ca297cULL, 0x71db5b9810bebc61ULL, 0x7dac74473979deb4ULL,
- 0x9ccfe8243ab7e378ULL, 0xb9f3a56209320ec6ULL, 0x79358a856bd51812ULL, 0x10bb17833c19dffdULL,
- 0xcddb3d1e2b3ec296ULL, 0xbf91ec26bb0215beULL, 0x40d48feec29dd720ULL, 0x27e84f6893ec380dULL,
- 0x80bd016c85ff8188ULL, 0xaecdb42d914713c8ULL, 0x2655130aca4daf7cULL, 0xc1197a8d8f4c7a84ULL,
- 0x4314c206f96023bULL, 0x981074da6252f279ULL, 0xf686b86d8687d127ULL, 0xed44d10cad0dd14cULL,
- 0xc5d34dfa30027580ULL, 0x63b88d696e56007bULL, 0xbe451a280fdab8fbULL, 0xfce982d74333eb06ULL,
- 0x9cd393c5d51bbc1cULL, 0xf48749d387b6d93aULL, 0xfdd7e52fd880a9c5ULL, 0x1bbfebf2b380f50aULL,
- 0x90ce9525f15d6669ULL, 0xe29dc72066723c15ULL, 0x592a0be7c430a6c3ULL, 0x169c21461436f3e3ULL,
- 0x8eb43fbb66295fecULL, 0x87c9580620d7dbf8ULL, 0x50116efdca7c7029ULL, 0xfb68a01657a902d6ULL,
- 0x98c2f2be8ee4d63cULL, 0x73fd7c3cda53fc95ULL, 0xc73d52d01713070aULL, 0x7cc15cfd83c4698aULL,
- 0x985512b577f61191ULL, 0xdee1d09096cb867eULL, 0xb4e3ffa5bdaacbefULL, 0xeabac5dc2feecefaULL,
- 0x3af3fec08695b262ULL, 0x2357c7a1c85e58aaULL, 0x1ec15e86973b0561ULL, 0x724e9c897aa4b8d7ULL,
- 0x5cc3e80045a5b2a7ULL, 0x556c5705298ae7e3ULL, 0xdc68e51485771b94ULL, 0x26842e64a6b0571ULL,
- 0x26ae43ea740ef20eULL, 0x6d1efdb849267318ULL, 0x62b4cb315895348dULL, 0x21341ccc27c7fedcULL,
- 0x6097110e4c4cd704ULL, 0x4a2d40fefd154eadULL, 0xa3f29a1d810a4366ULL, 0x27756ea852265c0dULL,
- 0xfacff4717a431511ULL, 0xbc67450d62903aa5ULL, 0xdcfdc3178d44557eULL, 0x4593ed115cd59a38ULL,
- 0xe98f0ef9f9e38b80ULL, 0x71ddf09743e853fcULL, 0x42153406620f53b2ULL, 0xb3c15d9373b5492dULL,
- 0xd182a531da48ad4cULL, 0xf068ab3ac2077c85ULL, 0x1270f1b99b36b50eULL, 0x41b544faea148149ULL,
- 0x79422cb9163ceef2ULL, 0xab58bfd566627757ULL, 0x1cc0e439eef2756ULL, 0xd44a63d91eaef1ebULL,
- 0xe192f611229a5e95ULL, 0x85f6f05beb9118f9ULL, 0xba519b23a1865f90ULL, 0x17366cddef9e55cbULL,
- 0x1a7a6070babc2544ULL, 0x5f54e061db75997bULL, 0xf77e68883a09774eULL, 0xdaa30467d63692d0ULL,
- 0xd4ed64d4e65a41afULL, 0x71a915ca2182b1deULL, 0xded7512fe4f11454ULL, 0xe2d9e2ee4c148cd5ULL,
- 0xc484fa9fb3db55dfULL, 0xc62dd13bb2026709ULL, 0x5983184764183ca2ULL, 0x4593bc37b3f4670eULL,
- 0x5dcd553f5fdc0ce9ULL, 0x25350f9413995bd4ULL, 0x3b29a7fb90695b02ULL, 0xc3ca63f3869ea460ULL,
- 0xb7ff7f8b2ea0852eULL, 0x4e10b75a71ca5679ULL, 0x10c4fc89accb9cb2ULL, 0xb2d8b0122cb4c1deULL,
- 0x9718c49a5d7f9a23ULL, 0x5f8997738ae1f23bULL, 0x1d535e1276671699ULL, 0xecdc56fbce0e39a7ULL,
- 0xb7b1192fc2b7f949ULL, 0x6406b181d9ce4e01ULL, 0x5d1e8513f1160f3dULL, 0xc0408fecfbc2c189ULL,
- 0xffd4f2855b216af8ULL, 0x7e9add752cf54880ULL, 0x1b6c3a96996df4e2ULL, 0xc11fb2a88d61abe2ULL,
- 0x5b073a13293c9acdULL, 0x651fd18ddf403ba1ULL, 0xb410a6b3b1a662d0ULL, 0x9c161017c0f38532ULL,
- 0x7ae02cb4111b02fcULL, 0xd5c4086e82d64cfcULL, 0x96642b0c0e6427f3ULL, 0xe22c7524a3eff240ULL,
- 0x2ddcc1acbcecb61aULL, 0xb341d0c1aa6262c5ULL, 0x7ea2fd33f18ec4f6ULL, 0x3370026a4b48c715ULL,
- 0xe15e004f24eece34ULL, 0xbd8c309cfe4517f1ULL, 0x86fccb0f4bf00709ULL, 0x677a57d81978e7fdULL,
- 0xd6d31749d209a0d9ULL, 0xcb3f257eb8780085ULL, 0xcf909705437a0418ULL, 0xdd7c16e6b3924e16ULL,
- 0x2901db952867d320ULL, 0x444e11692641750bULL, 0x91d129b1cfe3396cULL, 0xec9b929ff1334e68ULL,
- 0xb1494c26c40cd627ULL, 0x565b369947226a06ULL, 0x10e27ea4811ed914ULL, 0x1ec2fa6aab25cd3fULL,
- 0x2d34f4954376d74bULL, 0xfcdba73ab0f04578ULL, 0x33801d8bec660c08ULL, 0x616fbc01174754b0ULL,
- 0x9bca16b28c480b4dULL, 0x7d62c01bf790b3abULL, 0x4837315e1c5a0589ULL, 0xc5a6240a6d8a3ec7ULL,
- 0x8b2440f5e5039ee1ULL, 0x72d5ef7ced6d1173ULL, 0xe35d854524e016a6ULL, 0xbb5a9b7051c3a99eULL,
- 0x2709cd1d4470b8b5ULL, 0xa958d74e6e138a20ULL, 0xddd7ebe9b563097aULL, 0x3d040b1602bb891eULL,
- 0xea49be602693ca30ULL, 0xfc56098e18527a8aULL, 0x5db5c832f066e779ULL, 0xc3fc8bf96ec094c5ULL,
- 0xc58d2007d9f91ec4ULL, 0x4e96cebd63461171ULL, 0x907cad4ac520bd2bULL, 0xc2d8d7c5214ecf7aULL,
- 0x23fd68198a469e07ULL, 0xac7ff4583083dd0bULL, 0x7b10ead7e9c2aeceULL, 0x34c2cd749e7cd3c1ULL,
- 0x4f85a7a59991e029ULL, 0x9b3856856e8d639cULL, 0x35c85261e14fce4dULL, 0xa3a9b3439f7a17abULL,
- 0xaa74eb655621c1d7ULL, 0x90a5677bddccd489ULL, 0x7c04914bdf03a11eULL, 0xe4960d8753ee1d3ULL,
- 0x6c1c196f52014010ULL, 0x1a22eb5da5f297e5ULL, 0x7a2e8f2b3b593e29ULL, 0x43c77ccabce8b8aaULL,
- 0xa03847b9af2cf081ULL, 0x3ded21a88d33c5e6ULL, 0x66590d7643899c6cULL, 0x17cd5e9ab76078f1ULL,
- 0x8caa75b72c601f09ULL, 0x2e8da9bedb29484ULL, 0xee83ba21f5186cd5ULL, 0x55b16f1bc7cd177ULL,
- 0xd7940572718d360ULL, 0x27028bfb83bc7946ULL, 0xeeddef972f24725fULL, 0x7d34e154047e1a9fULL,
- 0x812f31e1810349edULL, 0xc86f6e9582141427ULL, 0xdc61259230456bfeULL, 0x833c1234c72f47bULL,
- 0xd4d4d082efece34dULL, 0xbc07020fc503bf94ULL, 0xba600feb460ace22ULL, 0x6f45bba6c4ccf87bULL,
- 0x466b693ca88af25fULL, 0x19b6b895c8b03bf0ULL, 0x523f21dbb2226804ULL, 0xa7464df69eb6baf1ULL,
- 0x6470c9024675c91bULL, 0xf56ff94257df0faULL, 0xea08fc23dfd92170ULL, 0x3e5410e7dc014a4cULL,
- 0x58ea2cccbe38b996ULL, 0xc5fc939cc4879dd8ULL, 0xecdef83672e225ceULL, 0x41fd079c35a2e6a7ULL,
- 0xe224d60ee2c6327ULL, 0x59c19ffae84b5494ULL, 0x278fa36080f31046ULL, 0x3547d3ab4f024f2bULL,
- 0xdf11d25194ae2043ULL, 0x2b83647910e36090ULL, 0xc7cee94702b89925ULL, 0x2e54114ef3c79f48ULL,
- 0x31a6e7be7bcaa28cULL, 0xc5dbe8ce6b0aa73ULL, 0xf0c8e902660defa5ULL, 0xf4b830d26178bb9fULL,
- 0xe3aaf927ac6511f8ULL, 0xa97e21d0c9f0e2dfULL, 0xdd51e86d33ed1acdULL, 0x1690e28ed72f729ULL,
- 0x95e46a3ec522a944ULL, 0x27b0f9ccebc04a06ULL, 0x5ea0a6d2a4857a4ULL, 0xf5571162bc210d61ULL,
- 0x895a98ac2530551eULL, 0x316f9d06dbc7c701ULL, 0x18fd92fa8ed29449ULL, 0x82a2fa7a1e73ae26ULL,
- 0x2020bea0e7ec4068ULL, 0x901d0a5f47c82364ULL, 0x86ec99ba69e35109ULL, 0xec07b1f8908c799cULL,
- 0x67ba38bb7d8d0e84ULL, 0xd8807ce079b8bb49ULL, 0xe5ae77e474ea39efULL, 0x37e3f781553bf9d8ULL,
- 0x5338a0eb1dbe6e9ULL, 0xf6e5d36720b5e950ULL, 0x5ecf8e3b6166f4fcULL, 0xb81a9a1bb3dae2c5ULL,
- 0xc6b77c789559e94aULL, 0x99e16dbe77db39bdULL, 0x57231d7a73f9f52bULL, 0x37c59b95bb414a27ULL,
- 0x65e468d22a0fb21ULL, 0x580540af75ad1656ULL, 0x7f4868b986b99783ULL, 0x212779de49cddf28ULL,
- 0xd26499b75bcbc0e9ULL, 0x44c9bce39e115ed4ULL, 0x1257f3877b9b04e7ULL, 0xb35962775e48c2f9ULL,
- 0x626745ae6b0d2dfULL, 0x10ddc1ef1c930e3ULL, 0x44e1ec6e090a73a8ULL, 0xfe2b530a3eca96f8ULL,
- 0xa43fd74206683e34ULL, 0xe65789104e2955eaULL, 0x7602f45f12544467ULL, 0xad55404ff85b3f45ULL,
- 0x8b06ebf32a563772ULL, 0xde3ad7b32f959f44ULL, 0x81d895a8871b60a1ULL, 0x70827794d93ea59bULL,
- 0x52691de023536f5dULL, 0xc49525208243e7f7ULL, 0xede00c51b0762307ULL, 0x241e5ddd2620c4d8ULL,
- 0x166f39cb761abb9bULL, 0x5b436bec3d9d6905ULL, 0xe1003b6b99c3609aULL, 0xe44eaa5fa66680bcULL,
- 0xdb9842dfe52dcc23ULL, 0xd1426fde3f91db90ULL, 0x7794710048d826a4ULL, 0xa7ce99e30fca163ULL,
- 0xed71785217448896ULL, 0xddf14e48b3f856baULL, 0x8037dec023a45f60ULL, 0xe2d16df7532b3e66ULL,
- 0xa7742c260c9150dULL, 0x5a1b4164631ba6cULL, 0xd2a5dac0ed1b7346ULL, 0xc67ba7e289bfcf87ULL,
- 0xb7d401c1c52b721cULL, 0xcc4062c21491f07aULL, 0x99c8f147d4274b1dULL, 0x4c4bacddc47880b1ULL,
- 0x174e49bf576d42b4ULL, 0xfe5f8760451899b3ULL, 0x903f1a81d17ec0e1ULL, 0x3f3a1f34d7cb2ad2ULL,
- 0x3a88bd5f1c76937cULL, 0x4b8157c4dceab919ULL, 0x3c2d00b73f0ee857ULL, 0x7953912c909eeebcULL,
- 0x868d23aecb991ae9ULL, 0xd05c200901fb0e21ULL, 0x17f532875be63e28ULL, 0x59badb610e3dc286ULL,
- 0x753deec2b33bbc4eULL, 0xcb4d01dbc814e179ULL, 0x2f0e5cc1c8ea72ecULL, 0xd26c656d6b008874ULL,
- 0xe79d85a09419f652ULL, 0xc9c0c574ca19903aULL, 0x9ab531752be3d9fbULL, 0xbf2b69b55a5dd877ULL,
- 0xcdf820154a8451d8ULL, 0xc172f1fda995795dULL, 0x371c030b643078c7ULL, 0x44a9241aa6442800ULL,
- 0x6d330db21b463de4ULL, 0xa323adc4e46070d0ULL, 0x1fc54fec6c0080b5ULL, 0xd1fa77d555026b79ULL,
- 0x8e8e9c1e0424a311ULL, 0xb59c6fbeb924b1d0ULL, 0xca37ac191f0d524aULL, 0xa86d43c96411c011ULL,
- 0xd7f5d9050beed4bULL, 0x1d62c2b21fe45082ULL, 0x86ceb3fb5ca194a7ULL, 0x19aeb622e04a581fULL,
- 0x7ada5b899ca35251ULL, 0x40e424e780d42c9eULL, 0x3117a4da75f3c65eULL, 0x68e447dd54496986ULL,
- 0x27ff5e9b74d09e3bULL, 0xb4dade6cd1c0964bULL, 0x604a983182b53ebULL, 0x216c5409f41dde76ULL,
- 0xabd9e58da6eba4d2ULL, 0x93d45b04a151a63ULL, 0xd09a729865abf22dULL, 0xb32b9757a19a4a27ULL,
- 0x136761876b89244dULL, 0x6960e5c3409a7b36ULL, 0xadbf33d588a5652eULL, 0xbe345840251daf9eULL,
- 0xe1c44656381f2a17ULL, 0xafb0d78e7699e53fULL, 0x3f962dd99844cbe8ULL, 0x8be3c1149bddb070ULL,
- 0x2c02f8f72b295e49ULL, 0x6425131e2c9b4ebdULL, 0x6c2ec910f6c163daULL, 0x43f22556d88f2a66ULL,
- 0x188fa790be2785c6ULL, 0x7ee793485f0995cULL, 0xa0248cc637e0fdedULL, 0xb252d38364271b25ULL,
- 0xc10c4904d1203060ULL, 0x92821c5c7757ceddULL, 0x3d845cb7e4eeb960ULL, 0xab077d1dcdea86eaULL,
- 0xd1f84f858470dcbfULL, 0xe56596666e3eaa4fULL, 0xf14f2236221e272fULL, 0xc979e5aa1d9b89caULL,
- 0x3439e0e178c99fd8ULL, 0xf3488cf154f937a2ULL, 0xda0f88efbaa8ce03ULL, 0xd5ea7724e65c05beULL,
- 0xd1febafa353e694ULL, 0xb0d5f831af329ab3ULL, 0x4facbd3716a181d0ULL, 0x94790f90a5ab257eULL,
- 0xc505b52e407563ULL, 0xf3ac918a146c6445ULL, 0xc69db98ae11f20a7ULL, 0xa9dc97fd8e4408f5ULL,
- 0x692a0f35e896803dULL, 0x714e2e4cf9e11348ULL, 0x7919966ca8fa6833ULL, 0x1e54b9130adafa0ULL,
- 0xd21336094f34b472ULL, 0x311d0c365c0b1012ULL, 0xbc9b10ebd8be1646ULL, 0xf75db61b82858aaeULL,
- 0xf76bbe8f19022ec5ULL, 0xfedd18e14997df62ULL, 0xf23b559a457ec0fcULL, 0x87726c39ccf1a1daULL,
- 0x5e8a9e3741e49050ULL, 0x6173d6ba047c6f55ULL, 0x3454b5879fa0bb40ULL, 0xe4daa7b84efedaf7ULL,
- 0xbdd7b5786057fbd5ULL, 0xb2ff1d9a12083b07ULL, 0x8dd0891c35c128c2ULL, 0x4009e5796e72d2caULL,
- 0xedfdf7e32b73a93bULL, 0x2b0bc22df4ef9ea6ULL, 0x3f0920ef82f4fbb6ULL, 0x4f91120344d13e68ULL,
- 0xa5ee321888e4154bULL, 0xe4fb91043794ba6aULL, 0x4c5dd86a25634020ULL, 0xae4714826fb66164ULL,
- 0x2be116841f4119ffULL, 0xf55900bbc259bb9fULL, 0x81a1fdfd2cd0d2acULL, 0x16982d5b4e5e2e32ULL,
- 0xbe4172aed22def68ULL, 0x11e09527d9bc3f19ULL, 0x90e2908c1c7bce90ULL, 0x5dedce4a90953fcbULL,
- 0xa9c97fe7c7b3c31dULL, 0x529cfdb1ac544be9ULL, 0x8d03a3b196210534ULL, 0xfe27b8d9ebb980bULL,
- 0x88fbf55b8edff339ULL, 0x68f909096e7deb44ULL, 0x3e8550e02c908de4ULL, 0xb3ec2efbdc0cadeeULL,
- 0x8063bf1a6c2ce62fULL, 0xd8c95a10cfb8b74ULL, 0x7566c0c492f490fcULL, 0x604be3841c42fac5ULL,
- 0xa69f4c2445ecb9dfULL, 0x8cc76b118594b1d1ULL, 0x22c31b7290ca8670ULL, 0xf562180983b5f1aeULL,
- 0x6fd053fd76d207baULL, 0x4b654c6d39a3cc66ULL, 0x548280b17f475f6cULL, 0xdce61263174e005fULL,
- 0x3a7ae586fa06658bULL, 0x11b074be4a9aa7ceULL, 0x413148d3fc7e673ULL, 0x128fffbad2a819a4ULL,
- 0x4f73eded7b63bc80ULL, 0xf24cea3892c844aeULL, 0x6854d801265b55b0ULL, 0x10fe4c6c83b07168ULL,
- 0xe3ff450e6db44b3fULL, 0x36a5416ccbda76c4ULL, 0x92fd1cc5a4e36f66ULL, 0x52c3b94c47519fe5ULL,
- 0xe0031f29bda5da29ULL, 0xc1fc942b7387eaeULL, 0xa52261cb1c0f194fULL, 0x6a29f7e5c1d27831ULL,
- 0xae0b77b57a8f0ff6ULL, 0x2858b483e71b9e72ULL, 0xa273c575f620fe52ULL, 0x12ccd14da901db9cULL,
- 0x618a15b5f467ae28ULL, 0x2c130aaae6ebde09ULL, 0x58550387574d5bfeULL, 0x81563078f4433ac9ULL,
- 0xc69cec6aa04fd6cfULL, 0x766a3db0a8e8b01cULL, 0x9c5bbbae8c267169ULL, 0x50e4ca18ef7e0baeULL,
- 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL,
- 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL,
- 0xfa05ee57eca9fd45ULL, 0xbc13597e33dc9249ULL, 0xce729e7aa2ad4a39ULL, 0xcd862f8bd94e59c1ULL,
- 0x8bca14acbdf628ebULL, 0x8551660bf592ebb7ULL, 0x7e1a4872cd24b88cULL, 0x8990cfc915a4df42ULL,
- 0x73d684eb73dbd253ULL, 0x7bf8da2def16f1afULL, 0xca6d9191b0432e92ULL, 0x7149bddd78708e3eULL,
- 0x35fd6ef5e8e3f01bULL, 0xc93852cbe2cd4a38ULL, 0x424a9908e4f1ceddULL, 0x3e706f356a4c24b0ULL,
- 0x8a54055d9c56dc86ULL, 0xd377e30921b6ee4bULL, 0x85d7ed18b2d80a2dULL, 0xd1df7af031b01f3ULL,
- 0xcd78e094ab647a26ULL, 0xba566a84e4001079ULL, 0xe3a8a875b5aa344cULL, 0xa716eef9cfd6ed9eULL,
- 0xe43157eea2c19a8eULL, 0xe4704806c4df6aaeULL, 0x603bf6c2b5bc8254ULL, 0x871771b3e06b73d2ULL,
- 0x117143be8eab200bULL, 0xb4f1dfedf43b9984ULL, 0x15d3f3449f58e7bcULL, 0xeefcca4df5396ae4ULL,
- 0xf3b2f60cf9026f04ULL, 0xe5f9f4f0a79b8a80ULL, 0x2c7aa915f30318ceULL, 0xd9c82f928e87f382ULL,
- 0xd323e5774f1677eaULL, 0xdb5845d8965c4dbcULL, 0xed44c0e36d43dac0ULL, 0xc7a81eff8385cfceULL,
- 0xf2030b941a0e6919ULL, 0xe2a644db85910178ULL, 0x7e83f9290d284cdbULL, 0xb6654a1271b8b5a1ULL,
- 0xc593eff9b338107fULL, 0x3cf126c34b063ffdULL, 0x4d7665fda2c68c2aULL, 0x5e247fd97fc6582bULL,
- 0xa60f6abc089d65f4ULL, 0x77ebdee0e25388aeULL, 0xf62a19e555d0aa17ULL, 0x746a8fc4ccb0aa35ULL,
- 0x420bdfa06e11d5f5ULL, 0xe4cafedb4d2d1d28ULL, 0xe4f7b9924dee025bULL, 0x4ce1afdbfdd92e50ULL,
- 0x31e7d54414e07cfeULL, 0xda896b6a779ad221ULL, 0xd0c9af7797408a4cULL, 0xe1687978f7fce206ULL,
- 0x12bc782df1af973cULL, 0x7dd66c9e0bfea93fULL, 0x3693eaa43b55bb30ULL, 0x89db2399becea4e9ULL,
- 0x2aff7a48e63ac60fULL, 0x62f17ce5defe4c24ULL, 0x1863705ca1effd9aULL, 0x15576db21b395ad4ULL,
- 0x5f305d90409914eeULL, 0x1db73f60e02ada0fULL, 0xcc64f3efd47d2a0bULL, 0x70f50fc3b1c58433ULL,
- 0xf642f70baa2d64a1ULL, 0x7489a46e2c07f72eULL, 0x761038e1a4050beeULL, 0x9652702df50db12fULL,
- 0xcdbe3f7c6c622b6bULL, 0xb900efa0500ee81aULL, 0x1c69ac3519dd119eULL, 0x8ebb18e24b7aa505ULL,
- 0x5e90d5e7da47b623ULL, 0x33ce90defc6142b6ULL, 0x91135fbc22f4d4d1ULL, 0x6ebd4e9acc804b81ULL,
- 0xd742ac5285d1cdf0ULL, 0xe455771fdc5add69ULL, 0xe4e531fa802cf323ULL, 0x5802e811ce822bdcULL,
- 0x44393dc5f7052323ULL, 0x117987db41fb5852ULL, 0xb51dddae99c916bULL, 0x37c213a88375542dULL,
- 0x996939843058ecd8ULL, 0x459a74a2b0bcf2d3ULL, 0xf0a06e1b20058157ULL, 0xce4c9f17901c3fb3ULL,
- 0x1a49f05782bd6510ULL, 0x526cf2db60a92c9bULL, 0x25da9668dc12ff8eULL, 0xf0d66e059a8fd817ULL,
- 0x5fce8afb0850ed00ULL, 0x78ee95cad309252bULL, 0xded78b3b130413b7ULL, 0x5ac731d8298fcefaULL,
- 0x5338f243034ae724ULL, 0x97858a25998fadb4ULL, 0x7690c51edbce408fULL, 0x3216af8c4c8dd115ULL,
- 0xbc6d089fe5b22655ULL, 0xcca6efe5b441c880ULL, 0x62e424e3e87a6165ULL, 0x86de40b88c753d6bULL,
- 0x7d07b1978bf0c8b5ULL, 0xf4e1a98feb1ba739ULL, 0xd95de43a03e8937bULL, 0x90c11e8cd56761b6ULL,
- 0x8925919d6952f9b6ULL, 0x142004cb89e59b82ULL, 0x2e75d65cc6c2380ULL, 0x5fda85298ab424cdULL,
- 0x5af6a75148218760ULL, 0x245e5f014a9100f4ULL, 0xabf3c3a96f7c1f01ULL, 0x81d0a48042942affULL,
- 0x9a28eddec35734a8ULL, 0xab7420af41ce94acULL, 0x4ef14ad912d38ce7ULL, 0xe3b34d780814f295ULL,
- 0x7fa8928e1b168f0aULL, 0x9ed80d9281441d0eULL, 0xe0a4c053cb17016aULL, 0xb060e159e1eb0ab3ULL,
- 0xd3c899380073cf5dULL, 0xbf6f4b06154018d1ULL, 0x4a58327be1d39c76ULL, 0x818c3c2d2b65456ULL,
- 0xfd44e23481845112ULL, 0xda75bc16f3e5dd85ULL, 0xbe603900cc1e5ee3ULL, 0xc700c5040615958fULL,
- 0xc87c45e6e1f09839ULL, 0x3d50f0c5b0eec9c1ULL, 0xf4e2956f8c341f03ULL, 0x49ff79476f57e105ULL,
- 0xaa6e777ad98af87fULL, 0x98356fca9bb96572ULL, 0x239c3924a4aa65e6ULL, 0x811f2a6e8c2b34eeULL,
- 0x2bc98d580c8ee27eULL, 0x802cbaeb9fdb9c2bULL, 0x36a06f59848f623eULL, 0xe36b40eb52490dd2ULL,
- 0xe4947ad9538d8907ULL, 0xcd5bdc39e62d19b4ULL, 0x75f8992b8f63dce5ULL, 0x7ac5dd52b213da2dULL,
- 0x3ec0216d936ef602ULL, 0x639babdd5bfea75ULL, 0xd090094be314ee9aULL, 0x7ca06ed501c3bbb5ULL,
- 0x12e35daf7e1a6553ULL, 0x7622a13dbcf1beddULL, 0x123460ba3eeb91a0ULL, 0xe51b03976f5a54a8ULL,
- 0x9c3a913494217cacULL, 0x19738e3eb3df239bULL, 0x64fd004bd05bcd8fULL, 0x8362c7e5874846b1ULL,
- 0x61c4e99125cf24e0ULL, 0xc55eb42b58147745ULL, 0x43657f618c4c55eULL, 0xfa1ffe30560559faULL,
- 0x217593dd1b69426bULL, 0x5ff11cd8686d44d6ULL, 0xc47f6b493304dc7eULL, 0xcf7be92ad9ba75d1ULL,
- 0xa0b993a3c60e68a6ULL, 0x5cfad13eda072305ULL, 0xe251d5844077cff0ULL, 0xc4abe3960b0c1f6cULL,
- 0x7ef517b74677d26aULL, 0xdc391c241cd6b650ULL, 0x15113f8c33fa6ccfULL, 0xa669baf60b008ae9ULL,
- 0xb4e4523f855b7a00ULL, 0x1ef94b7137602a4ULL, 0x73c7786fb1bdd1cULL, 0x1a923e7315c001bcULL,
- 0xa8b725d65a8ddab0ULL, 0x74114f3ef8bdc9f6ULL, 0x6bb95f50f70f0899ULL, 0xb3a6232c454c5197ULL,
- 0xc4cc67bd06b2e45bULL, 0xcfa311a51cbf8e35ULL, 0xf190316e14a59d7eULL, 0x7fe2d6720dea2e7cULL,
- 0x9ad852b021e28233ULL, 0x8be9814c69f42e14ULL, 0x116f091b9e69ea80ULL, 0x58891afbf7c06423ULL,
- 0x12a263aadd05ebc5ULL, 0xdf4129c765a38e8dULL, 0x19099ad6300d5504ULL, 0x5df2f3c02b927d6dULL,
- 0xf9e333e7971f9246ULL, 0x4ce8e0b953442ec9ULL, 0xb0a847ec45e873f2ULL, 0x98eda4ceb1b9ad84ULL,
- 0x26a2c9820d703b56ULL, 0xb7095b373220f382ULL, 0x123d70674e631a6ULL, 0x5fafd1217162a47fULL,
- 0xe26a24c0cc4ca4f9ULL, 0x1fca43973f1173ULL, 0x8eac25873f9fa80fULL, 0xe602f77fbce1937fULL,
- 0xa800901a3e8aa1caULL, 0xada4f9ddf0cbe9c3ULL, 0x20a99c487295a9f3ULL, 0x4da4b8dab6365015ULL,
- 0xd5727a863a78d4e2ULL, 0x16d782117f61a808ULL, 0x354ad399ef6e7bafULL, 0x4f964729be902f4aULL,
- 0x9f51dce80293b863ULL, 0x76399dc0366ad787ULL, 0x7dde92d967b11ca1ULL, 0x4d81052326e2237fULL,
- 0x3d2099cfcb15530ULL, 0x1ffa4a142b3693a4ULL, 0xe8ac94f6b4919897ULL, 0xca5f42ee6cc53beULL,
- 0xf8d5eacc5b011084ULL, 0xd877f17467ba48fdULL, 0x8c2687737103ca38ULL, 0xfdb7137f85422eebULL,
- 0x1a86fae65eaa901cULL, 0xec8db31073f1eeffULL, 0x6c68ddb9d6fdd9ecULL, 0x7e08b875d9ab68a2ULL,
- 0xf2c994d38c640fc0ULL, 0x56af2c19fb26ab3fULL, 0x1ee09d81c441cac9ULL, 0xcdadd7dd5fb625b0ULL,
- 0xc591b1f135be2478ULL, 0x90134ee82613cdb2ULL, 0xb51aea23a6b101efULL, 0x1e960a8145aebd04ULL,
- 0xfa041296b1e76d89ULL, 0xc867f4dd370329deULL, 0x484e016d278dcc58ULL, 0xb0f2dc0bd4dcb8c6ULL,
- 0x9e0a2516ee54a4c0ULL, 0x5ef3cdf7d2dae2a9ULL, 0xdec80fd26f8a96c2ULL, 0xdcd963d106303430ULL,
- 0x35e1821df3278302ULL, 0xa823e4a0b3755505ULL, 0xa43c99a7a9bc83dcULL, 0x79d4d22b55c7908bULL,
- 0x4656fe8e2a1231eaULL, 0x6e802130890645d3ULL, 0xee0dd8b89d385125ULL, 0x956aee3fa9c34b85ULL,
- 0x9c01bb108ce98fc2ULL, 0x9fe5c60c49f4c4c5ULL, 0xe25dd6ebc6c740a4ULL, 0xc3fc82b1dc4d9888ULL,
- 0x87470ec88883a8a4ULL, 0xc135bcd2948b6317ULL, 0x3cdc5dfe31516863ULL, 0xbdf4ee7c8b2aa2f2ULL,
- 0xaadef06e80344817ULL, 0x2d69c2fead36106ULL, 0x29b0b877be8cc9d9ULL, 0x541c3f0e5a8b033eULL,
- 0x5af509f6a9d91bcbULL, 0xc90d4910f2c9c952ULL, 0xf693e1e3ef621daULL, 0xb9345bb2af6f89f5ULL,
- 0x2060ebf1c1b44b85ULL, 0xbbc9eed5992372cdULL, 0xd7ecd0d1a1b03950ULL, 0x9edea3ff6ecebb90ULL,
- 0x6d4dc697ce919ae2ULL, 0x9607ef7445762998ULL, 0x5c8772ac05ec6120ULL, 0x9fb65b62032fb9c1ULL,
- 0xefd0d1981362e055ULL, 0x41d49ac693160d3fULL, 0x27aadadd86d0631ULL, 0x8d6972c830ecd6f1ULL,
- 0xc2db09305764f666ULL, 0xf755df699aeaf129ULL, 0xa12d2c7f1cbbd0fdULL, 0x56e9101656ea407cULL,
- 0x7de6f8ff00b2bb9fULL, 0x727ed08ac15d2154ULL, 0x8df19701e2e6a2faULL, 0xe16408763f2526eaULL,
- 0xd784134303cbf965ULL, 0xb1422e079e026a02ULL, 0xc85a1b54d303c2d4ULL, 0xe0a02b8ff1ed5459ULL,
- 0x9e7a81c3dd3c00f9ULL, 0x6a7f391cb92a3c1fULL, 0xd02085c119ca163bULL, 0x380d4c72e74125c5ULL,
- 0xdae49d09acc9200eULL, 0xab99fa12bd4dcb3bULL, 0x842f03df71989736ULL, 0xf33be83ecd193533ULL,
- 0x3ad6ad4d1e989afULL, 0x5310b5ab4f5aef09ULL, 0x13faaf8e5000bdbcULL, 0xd685cad8f351fb32ULL,
- 0x7eb1718335f8c0ecULL, 0x890501e9421a4649ULL, 0xa6f049b32b265a88ULL, 0xa2e5fd8fc18dd298ULL,
- 0x7401af94f2c75eedULL, 0xcbbb6b708bb87aaULL, 0x5cb0d1b92bd6cd79ULL, 0xf84e0f52851c9d2ULL,
- 0xaa44be67d993af58ULL, 0xbb52ca9580762a3cULL, 0x832c111405e6827bULL, 0xc545bb8418759df2ULL,
- 0xa9f0ce51b688375bULL, 0x891d1ed827769b18ULL, 0xc3c14bcf91c35b42ULL, 0x3c6b746917008543ULL,
- 0xbc4c5abacb879681ULL, 0xedcb6a102b639872ULL, 0xc69effe4b8e4bd91ULL, 0xb707c43fb43d8f5ULL,
- 0x46e00d60673e049cULL, 0x85358a7726198e8aULL, 0x66ff6f2b94e617cULL, 0x7e764d67727985ebULL,
- 0xe0582d4ae3bf6ffULL, 0xfcc2f0d84206f3e3ULL, 0x8c0516c777f9a3fbULL, 0xda21783d9d722681ULL,
- 0xbf8005efeb56eeaaULL, 0xe9988bde436209a9ULL, 0xafd6212b41d5a9c7ULL, 0x190dba3406de7caaULL,
- 0xaffdbec08b21caceULL, 0xbb80423f36f5edcaULL, 0x3f47abc7c1c41993ULL, 0x66ccc53862710674ULL,
- 0x42fcb32e3736ff9eULL, 0x74d9df89925aea65ULL, 0xa76776edaf77a2c4ULL, 0xbe113bbc90124fccULL,
- 0x90911eeb66355239ULL, 0x62683c211866effbULL, 0xc138627569ee510aULL, 0xde12de46780e6757ULL,
- 0x20409c8a84d83722ULL, 0x53cdf1745f226bcdULL, 0x74b06fba50505fc6ULL, 0xe11579ec3f203af4ULL,
- 0x74d01551baa5f99dULL, 0xa02683c6ee9e29b0ULL, 0xbfa560c73dd7cda9ULL, 0xfdc6302cf985369bULL,
- 0x620aa9b771ea3891ULL, 0xaaa2b51d8fcfca13ULL, 0xa08bed66b31d7edcULL, 0xf08d26fb4e80fc1eULL,
- 0xbc9dbe0b6e657ff2ULL, 0x4b82519e3aec73d4ULL, 0x836b84ed3cc29adeULL, 0x32a34b2a023868dbULL,
- 0x6945fd8672537c6cULL, 0x59f45d155e33f95dULL, 0xc90cc7a26cd2d51ULL, 0x645debf6b0bc4bbULL,
- 0xc66f8b425f60438cULL, 0xe0362c64f7c99a43ULL, 0xf5534e73d37ee435ULL, 0x4e68f74b503449b3ULL,
- 0xa5d5cc1414085d6cULL, 0xb02f5d6bf0bf1735ULL, 0xa6990de53fb15cc1ULL, 0x34594a19c40839dcULL,
- 0xa2f4bd853845af87ULL, 0xdff68d0bb1ff1db4ULL, 0x1b1fa51f5b822c01ULL, 0xd5e051d007e2ab83ULL,
- 0x6c722589bc12bfafULL, 0x74873932f7975fbbULL, 0xc2b38b5eb6190a2ULL, 0x544af06327651be5ULL,
- 0x117bd6b10482c2c8ULL, 0xeed43d8849291d49ULL, 0x46d85ea06a09a964ULL, 0x205af1f121d743ffULL,
- 0x23b63d8e3c8aeb2ULL, 0x9d4a1c32a1acb8c3ULL, 0xd77077341438e712ULL, 0x727cb55d875ebfdcULL,
- 0x3b28b4a5f4e43a3aULL, 0xfdd793c1bca7a2e1ULL, 0xfb3a593dc398ff6bULL, 0xe32e82957a8d0a42ULL,
- 0x2e1a054dda19ad94ULL, 0x3c3b744730fca24dULL, 0x1e1949b9309fb4c3ULL, 0x7854542373657777ULL,
- 0xb1e37d19d2ef3735ULL, 0xd20716f1e8ee3342ULL, 0x2e4eef9aef7e8bc3ULL, 0x149c6b763b5a573bULL,
- 0xb767f9cebb515a31ULL, 0xb3f7777e2e34e006ULL, 0x7ab1d275dcebcbdcULL, 0x918b2a08a7c6b7bULL,
- 0x2b7230523cc25147ULL, 0x9ad97ade814daf42ULL, 0xa4a221f21e2f64a4ULL, 0x950d2c9df30764bcULL,
- 0x11a6e0e71dc1e8f0ULL, 0x1da16abecf72e283ULL, 0x12dd4db2222eff71ULL, 0x8e004808b307f1d8ULL,
- 0xe25aa7a97931164ULL, 0xc06266c7dc3fd1f5ULL, 0x697b17b2f1f66f02ULL, 0x9e7976760599eb32ULL,
- 0x6badc54c7dbf0315ULL, 0x81baaf1a05b2ca4eULL, 0x43cf8b159cfe8900ULL, 0x16f392d2ab77f2eULL,
- 0xd8f16810d44a1780ULL, 0xf058c02579bd3e71ULL, 0xf4661b4950df32d6ULL, 0x4b1b76c81a15be44ULL,
- 0xbef157c8c64e86e2ULL, 0xcf00577c16cd18bcULL, 0x93cf98cfa74c2771ULL, 0x2136f21a64eaffb2ULL,
- 0x7b1b713727bd9662ULL, 0x8265f8501ab2cbbeULL, 0xe3cb025b5e82cadaULL, 0xe6116608c7dd3cbaULL,
- 0xa2dcd867a2ee860cULL, 0x4dd0b5ceb1877597ULL, 0xdd6a5c346b386c51ULL, 0x2e6037bc80e0a4c2ULL,
- 0x9113939d6693cc4cULL, 0xbd9399bce072daadULL, 0x9f694cb95fccb621ULL, 0x425d3990e319369bULL,
- 0x67a59433f5e7a6bdULL, 0xef9f3e0a3844ee1cULL, 0x5182d18d1f2cdaafULL, 0x74be4e07528c5baeULL,
- 0xcad8d6f11a5c23ceULL, 0x9419c8bae56c2ef5ULL, 0x6349a3992de672bULL, 0xe0dbcf267cdc015cULL,
- 0xe2450c00f9758e1fULL, 0x573509f17536e1aeULL, 0x9dd391b6676b67f5ULL, 0xcc50046e92de89acULL,
- 0x9f33df02f5861321ULL, 0xcddefb6e4c0201aaULL, 0x4b38181047794e02ULL, 0xa72fef18675d7724ULL,
- 0x48f36bf384778143ULL, 0xd3e40fc553320f51ULL, 0x3a5ac83ec1b61806ULL, 0x6688dc6a8622703cULL,
- 0x5e86e76a7565f8c1ULL, 0x8a6095393a8d7cbcULL, 0x177e6da04e33f520ULL, 0xc76b91637bd2e76ULL,
- 0xa3bdced9ea8b9be5ULL, 0xd54b48015c64e6cbULL, 0x2c20a921c8ae77a0ULL, 0xd51b4bb03f576f0cULL,
- 0x48645268cb15aed8ULL, 0x67e4765245f6cb7ULL, 0x3cbf7771a89828b3ULL, 0x795012ed1a746545ULL,
- 0x166ec7324e072e02ULL, 0xd4960d42bccf3b6ULL, 0x63d52aa809b7230eULL, 0x13a383085a139800ULL,
- 0x25354b9c323d9b4dULL, 0xbba131b625564a72ULL, 0x6fec35eaf2c83dd0ULL, 0xe8ebed977f9547fULL,
- 0x77e3cb888cfa0deaULL, 0xc56c499f280f9f3aULL, 0xd7f698eff90266a1ULL, 0xc737d9b538c573b9ULL,
- 0x7b734b05cb84c1c8ULL, 0x9c1163d6e950b815ULL, 0x397f039e10162e12ULL, 0x1098cd83b225a634ULL,
- 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL,
- 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL,
- 0xf32f75c7e162bd17ULL, 0xd56502e20b517821ULL, 0x778098a7f8bd2ebcULL, 0xb70ce07a1fb4e8baULL,
- 0xbe695f999002587cULL, 0x889bb8e3e678f51cULL, 0xee0100c6b8648541ULL, 0x56cf6a4b7c4a2021ULL,
- 0xe1d486b829e0e89ULL, 0x65d8d44580f031e5ULL, 0xbe2523cbdcccc0e7ULL, 0xcaaf4b37843381ffULL,
- 0xf40616ef2d69fec0ULL, 0x30f89eddf88452c7ULL, 0xce77a067d3b895cdULL, 0x43ea1afa0daf2d1fULL,
- 0x5cce79532256e0b6ULL, 0x980540776aeefa1bULL, 0x792c11efd453c698ULL, 0x8a97f51383483ef5ULL,
- 0x643c724f4035fd0ULL, 0xd274694ed52c492cULL, 0x522ecfd69b8a5728ULL, 0x861b425ec432d14fULL,
- 0x57c3dc8c116588fbULL, 0xc3d51148bc5cf0c1ULL, 0x433b76af777bc09bULL, 0x1230810a9d01f220ULL,
- 0x2340865aa7b63bc9ULL, 0xf1a18044bbfb3906ULL, 0xa9f8920d1c8179fULL, 0x642f65275c870d40ULL,
- 0xf3073a0a04d02af4ULL, 0x9dc6bef611f5010ULL, 0x6a671ba02b71f696ULL, 0x40508621e71dd26cULL,
- 0x50405743e31d0d58ULL, 0x15971e6e8b8a46e8ULL, 0x451611977afc10ebULL, 0x814f3af4ba44cdf8ULL,
- 0x177d66ccaf1dde65ULL, 0xd6dbbe7c44dd8038ULL, 0xeefac7b626764a5cULL, 0xca185df64c695809ULL,
- 0xb59c2a9ce9270ccfULL, 0x79d4fbb89c07f378ULL, 0x24302f81e54c402fULL, 0xb64307168701c246ULL,
- 0x599980e9c32946d8ULL, 0x8121ac908d5f1cbULL, 0x18256d95946884f3ULL, 0xdc5c79fe30ec1ca4ULL,
- 0xa7089ecfd06beae3ULL, 0xb7769bd35adf88f2ULL, 0x60ce2b077a2f2dc4ULL, 0x79367a206d6b02c1ULL,
- 0x6bfa20a5a11aee99ULL, 0x870786658f7c4c59ULL, 0xd72eb785718acb6eULL, 0x4976d30efb733ff1ULL,
- 0x26ff47ee95a31e2eULL, 0x5647f36090bcad23ULL, 0x8c2233a4bdfc25adULL, 0x4a657f0cae19ea20ULL,
- 0x1ede63789950f0c4ULL, 0xacc9f8e030b2ed8fULL, 0xd044a50d50529b5ULL, 0x158e39d87b56999cULL,
- 0x914aaa95b48ec67aULL, 0x2158a70914f418b4ULL, 0x9f04f177b30b1c0aULL, 0x64295e2d6a5ca00aULL,
- 0xcad956bb4713bcd5ULL, 0x7db646c9a9dc5298ULL, 0xeaedf191406ab159ULL, 0xc883d8adc3d93f5aULL,
- 0xb98c434660f0a214ULL, 0xc8f0fa899e513024ULL, 0x43f8ae944fb7087cULL, 0xb701e28e0dca341aULL,
- 0x5a48206e9844e267ULL, 0x2b2abb4a6c385faeULL, 0xbd2681c4bf2c8522ULL, 0x929f2d48d617ff69ULL,
- 0xfd75187a886356f2ULL, 0x8f8059f5b3f1a36bULL, 0xe77ce033f97f9b88ULL, 0x173c385f36aece59ULL,
- 0x7c67140f8182c3f3ULL, 0x7e06574d3aca58e3ULL, 0xfb34ec44080fc4dbULL, 0x22f30726485cd3c9ULL,
- 0x720532111c0828e4ULL, 0x80a94bb1402f599eULL, 0x3ecd0f16a1eff441ULL, 0x31da126606d89218ULL,
- 0x38450ec94a192e08ULL, 0xe145450ac1c6f751ULL, 0xbc3a7f2bd3ae3e5dULL, 0x93e4d514d4d1e289ULL,
- 0x897eaa219b5b21d5ULL, 0xfa9c65cfc821e73ULL, 0x35ef133569520d69ULL, 0xfa0724541997908dULL,
- 0xc7633da02b8583ebULL, 0xc6c6a87590459fc8ULL, 0xc9d31bc7f0181e94ULL, 0x5c0cd701a8b480b4ULL,
- 0x714e33b74fdc5e9ULL, 0x8692bd199e104bb4ULL, 0x2f7a732767c7f8d6ULL, 0x417b7c41dff2b229ULL,
- 0x5b191bca56c6e3a6ULL, 0x42a15a29248240f1ULL, 0x4f076058095ddbafULL, 0x10059ed921f3c711ULL,
- 0x7e2629b49d2421ffULL, 0xf1703c167880d1c3ULL, 0xa6a1246323af57e5ULL, 0xc656c351dadbd763ULL,
- 0x39e4d8ae18d574e1ULL, 0x95d901a66847f0ffULL, 0xfddb879c72a3408eULL, 0x71847016e9f47a2eULL,
- 0x8604baf32e6b3496ULL, 0x858336b392d2d665ULL, 0x18fd011a808e08e0ULL, 0xc52916a50ea232e8ULL,
- 0xca85d855453f286aULL, 0x1394f41202917375ULL, 0xf10af5d322febaccULL, 0x51a61b619ed142ecULL,
- 0x4d1bff197c1f3ddcULL, 0xd2bd2941a34631fbULL, 0x9336ac3a6fc624afULL, 0x5d5c8e7493b16b16ULL,
- 0x5e27e6e697719921ULL, 0x33c5524ca5e4975aULL, 0xa3cbdfb01aa3e221ULL, 0xa0ebc22449d1ae9dULL,
- 0xa372bc6dceadb418ULL, 0x8eb90493bae420e4ULL, 0xa73d9a4a33e78933ULL, 0xb3543547b2655c07ULL,
- 0x4583d64b6ede0c32ULL, 0x402ec0d60fa60eb8ULL, 0xa290e440d60f3781ULL, 0x951b0a5ee6b6ba85ULL,
- 0x70357a8a3dc47bdcULL, 0xb87d3786f8829f54ULL, 0x9977f1ab3318164eULL, 0x1fc1b51a3fdd51a7ULL,
- 0xb62c51a53ad7fd04ULL, 0x87d9f89ae0fa42bbULL, 0x210895f57518d7e2ULL, 0xc31590bed8826191ULL,
- 0xc432b6100c9802beULL, 0x6269c388fb904363ULL, 0x12088d69695a664fULL, 0x6d9859623ce4d74eULL,
- 0xf9d6789b6035085cULL, 0x85dd72540ff086dcULL, 0x3746121977567a06ULL, 0x10ce16d814654dedULL,
- 0x77798e53d3d404b1ULL, 0xb3bd8f77f7aee60dULL, 0xb75192497c1a3827ULL, 0x7baf6aae9f62cfe1ULL,
- 0xb56cdeef6bdb482eULL, 0xd2c1738110a12e46ULL, 0x1a263bd4380729bdULL, 0xed8871732ca51a07ULL,
- 0xd55b55315a34c8faULL, 0xf1e8b7792dfd5b3ULL, 0x1c98e9e06117ca06ULL, 0x16114f9c3212e8c3ULL,
- 0xee7a88835a7960e6ULL, 0x2baea6ff694df672ULL, 0x3be23d560e034a91ULL, 0x819e458c2bd68a9ULL,
- 0x38f5aa05142da52cULL, 0x414422b23a1cbae9ULL, 0x48c14d1b408134faULL, 0x85a7c7cb1d9bb05ULL,
- 0xf59dc046db30d83fULL, 0x4a18ea0e5e8cd03dULL, 0xa422129c9b72b01dULL, 0xa6dc667c80adc400ULL,
- 0x7e26457be7f18682ULL, 0x9774b564eb730bf8ULL, 0xc8dfe710cb6a0dc6ULL, 0xa10bafb180ecc335ULL,
- 0x20f3cc3553a17ce5ULL, 0x5b6c778fcfeaaddeULL, 0x79f29dd58dd055f2ULL, 0x2ada0d63a0c645acULL,
- 0x16c3766965cabb69ULL, 0x4f19cd705157554aULL, 0x77e414e1872a80e8ULL, 0xf9452bfa121d3dfdULL,
- 0x623cc678714cdea3ULL, 0xe6d768719ae2f108ULL, 0xd6bfb9ec7a0b6747ULL, 0xe5e56841de5450c0ULL,
- 0x24cd0b9b8abdb0e5ULL, 0x33a89563b318ea10ULL, 0xdea10e775e040f92ULL, 0xf269220cdb83c07eULL,
- 0x3db279c1ec954eedULL, 0x9229374fa7638e47ULL, 0xe44b78deacdc89beULL, 0xb1fba819e0d8250eULL,
- 0x32c55f7da9a2e18bULL, 0x3e6b7f4e68931f36ULL, 0x929f7c8c27c27001ULL, 0x2e8f45aeb4ea4ddaULL,
- 0x684ad8ee8cbae163ULL, 0x4f23cc7d6766b42eULL, 0xd46d1b25b075a4acULL, 0x8b32932272d68785ULL,
- 0xf9291a111102df25ULL, 0x8cc2e8f1ce09b9b1ULL, 0xee77334cfbf36911ULL, 0xa12a0106db73c025ULL,
- 0x5c25a2fbdde97cb5ULL, 0x35db98d4265df0a2ULL, 0x11b3748598770f18ULL, 0xff95de830ccde47bULL,
- 0x15040d4b0e4ed124ULL, 0x31706c58fb47fff8ULL, 0x1bf581bc2042ec06ULL, 0x2b6514715b7ffb72ULL,
- 0x11928e285b91f116ULL, 0x50051b19a25f0872ULL, 0xe6c1513bc7f4cd43ULL, 0xd749f8cea050091aULL,
- 0xc2fb8211d84065bfULL, 0x1a51b73367ecfee2ULL, 0x3a38672fb700f17cULL, 0x6962eb833c5385cbULL,
- 0xbde1a94fcdf8d1c2ULL, 0x7680c89a96b203c6ULL, 0x9b6eea306adb90c4ULL, 0xe3f09d85b50ce8a1ULL,
- 0x84a6ee3d38aedf77ULL, 0x8328a936b71e47a7ULL, 0xdd8059752be46c4bULL, 0x2535cb4fc43827e3ULL,
- 0xdcfe238443c9af75ULL, 0x18f9b97e01e7c780ULL, 0xf4eb56ce9fb0fedfULL, 0xe77de0ce261c43b0ULL,
- 0x94ff9d026a46566ULL, 0x87ab693b9d5e83e0ULL, 0x114cb018624bba70ULL, 0xedd055ceda1aefdbULL,
- 0x4e1c1bb4917210b0ULL, 0xce637d25a819c7cbULL, 0x9ffb194dc57d9446ULL, 0xbdea66db70a15502ULL,
- 0x8a5f0a2264090148ULL, 0x6f3167cae3af318dULL, 0xa975a1267cde608cULL, 0x9529d910fd7c988fULL,
- 0x82db75a778d465aaULL, 0x74af85c19ee32b66ULL, 0x9c2678d9c86478f6ULL, 0xeb611185db04b0deULL,
- 0xee786fd92240aa60ULL, 0x88d018a2b3331c98ULL, 0x729deedbf27f67bcULL, 0x9406d9a1d8285584ULL,
- 0x6cf303780d1f13f0ULL, 0x465ec41f355139cbULL, 0xdc8042276da797cdULL, 0xeaa363fc626d1e0dULL,
- 0xcb8725889fec93c3ULL, 0xd3139e359d8471eaULL, 0xc6b3f34b5cefb304ULL, 0x37566f98977fa18fULL,
- 0x4534002b4681d374ULL, 0xbac7e33edffcc399ULL, 0x8fc28c8167f83f73ULL, 0x64c976207f329083ULL,
- 0x7befeb4339d1ca0cULL, 0x741668ff5bffe2edULL, 0x6be7ac88ad64e2c4ULL, 0x519b76971879b398ULL,
- 0xe88b67615b78d04aULL, 0x8cd85f8f37702f14ULL, 0x85c7d50dc6cc8728ULL, 0x921e24728bcba949ULL,
- 0xb9afb3dd8ee5a4aeULL, 0x2c7c2b362d14fb19ULL, 0x99fa0775849be4aeULL, 0xd59a541705b89af4ULL,
- 0x573065682096b8c7ULL, 0xf737538af51cdb99ULL, 0xfc6fb44d98d14a3bULL, 0x21fe77b0e0da39e5ULL,
- 0xda30b0ca5defc1a5ULL, 0x9d5b11e10fda2cbeULL, 0xd3ff9c402af9785dULL, 0x80745777800f0b48ULL,
- 0x44a23e74a57f12abULL, 0xee74c403a904adceULL, 0x698352ea3170e90bULL, 0x5b8d15122878d734ULL,
- 0xff38be84f18d5d8aULL, 0x254afeccb225def6ULL, 0x43f0087171e5f742ULL, 0xed311d9ed729efb6ULL,
- 0xe76884251f27ccd7ULL, 0x292d87d43cf8dd8eULL, 0x63c146f2a514ac31ULL, 0xbd554524d52a361aULL,
- 0xc3f2dd6f69ff6027ULL, 0xf78809abfd012ea7ULL, 0xdef82fc5e2d02612ULL, 0x36c6726b46069b02ULL,
- 0xbabce5d183eb5a2fULL, 0x1d41a9ea806292b1ULL, 0x11d80ded5d6b5118ULL, 0x1b11143726636991ULL,
- 0xa6596bf16f819729ULL, 0x73676989d5d6f2cbULL, 0x918110cf1d46869fULL, 0xd94b9fbe57b25597ULL,
- 0x30905faa3e60f520ULL, 0xfb302cad772e730bULL, 0xeb5a83f072af4361ULL, 0x66397958de07777ULL,
- 0x7c076900f5651985ULL, 0xcb60a49cf739a126ULL, 0xf9a5145cc64148c2ULL, 0xf54c28074c5c5570ULL,
- 0x9abd3f99ca650f32ULL, 0x6a88a7fc4c9490ccULL, 0x7086deeda2743fc7ULL, 0x59ac835ab70402f3ULL,
- 0xf49cf320d9a93238ULL, 0x686635c42e0a229dULL, 0x54d3bd65cf6a3ff3ULL, 0xae0977f493c730c3ULL,
- 0x12e073a401731616ULL, 0x1da73ca5dd532797ULL, 0x5834ae02a45ed788ULL, 0xaad5423df19ac834ULL,
- 0x4ebdabff424f99baULL, 0x4245e61982d91b1dULL, 0xe705c10f872a40dULL, 0x866f66220ef43df9ULL,
- 0x993c85ae019de4a0ULL, 0x703918c13ea22d0ULL, 0xd4151c3b9ffad78ULL, 0x8b580766633d954fULL,
- 0x23756e592af93c3eULL, 0xf9318f0cd4b9b12fULL, 0x4ec524c46a8e5e1bULL, 0x8b126daf58f46edbULL,
- 0xf4764a0701cd63c0ULL, 0xb94d976dc4fa6039ULL, 0x1837257ebbd5f09dULL, 0x167149a40f128c7eULL,
- 0x9a852863a6c617ffULL, 0x22f444c26f263f86ULL, 0x98fdcc2ac14f0441ULL, 0x8d850b3dab09c8fcULL,
- 0xb13c0ec41395346dULL, 0xc93cfe1f33a1ac9ULL, 0x8919a996fd433856ULL, 0x36b2119c65c19d17ULL,
- 0x80ec63362be57495ULL, 0x8944928aaefae7cbULL, 0x55af5eda3a0d71fULL, 0xe6332203445cf0e2ULL,
- 0x800305f6894a78c5ULL, 0xa35f0873b2cdfe5cULL, 0xe93475a5f8727411ULL, 0xa9549993fcb921b2ULL,
- 0x1479b8d1e968f1f4ULL, 0xea2202e44a70eb56ULL, 0xb955f098c90479bcULL, 0x885e89c041914d19ULL,
- 0xa7099d72d261566cULL, 0x6bb9f826f2489c93ULL, 0x5e2ecf04ef56f2e6ULL, 0x4c2ee6edebda4a0aULL,
- 0x520204be0a0d5b14ULL, 0xd2fb886f78314e8eULL, 0x44190b3f07e0aef6ULL, 0x6186843c013cd0b2ULL,
- 0x80a6351062c313e4ULL, 0x69d01f7a27497aecULL, 0x84b80656fa670812ULL, 0xf090fd363a98c291ULL,
- 0x7322c26936a74d5dULL, 0xec08c52c4b23d944ULL, 0xd0aae7f90c6194f8ULL, 0x7c309fa26bcc81f7ULL,
- 0xcb28d0abeb7b4747ULL, 0xa7e838aeccc035b6ULL, 0x55b01c09c8765354ULL, 0xea123c52ef4f7f47ULL,
- 0x64897f4a5b0c12c3ULL, 0xb4e88fbce8564131ULL, 0x59c315b1e67d941aULL, 0xdfbca66be4f61e9fULL,
- 0x47258382b50c26aeULL, 0xec1f314aba51ab36ULL, 0x706ae95acdd0540ULL, 0xc3c2a86d7abf586cULL,
- 0x816bb5ecb4c51ce7ULL, 0x4d9f8c86ce7bb516ULL, 0x67a65f67d91f45c0ULL, 0xb6e8b50a6ddff131ULL,
- 0x5759043155e061a9ULL, 0xab063392ac666d83ULL, 0xd4e0f469af22d5a7ULL, 0xb82d2c6382f84c91ULL,
- 0xa34392373d515583ULL, 0x7335ea604f7a27f6ULL, 0xc8b81ea29322ead7ULL, 0x8f791b9c0741797fULL,
- 0x3dc0140befaf64f2ULL, 0x28e7dff76b084f13ULL, 0xf5555d5ae0140354ULL, 0xb8899c0c64c3a48bULL,
- 0xfdde3d5417da392dULL, 0x2f0c1660369bf191ULL, 0x85f0296fcccfc40aULL, 0xe5162c3966c95f49ULL,
- 0xf26947b16ed46ebULL, 0x769f2f4ce803d575ULL, 0xbca8569211434ab3ULL, 0x92f4f5e00e3a8ab9ULL,
- 0x5c7c776eab6b0f95ULL, 0x520d21b4a87bf80eULL, 0xce476babc4be1d5fULL, 0x5e2237f4bbc30c8bULL,
- 0x6aff6da6cd295a16ULL, 0x376d70419dac6ed8ULL, 0xd6b538e9cc597c55ULL, 0x131696740ae5f1c6ULL,
- 0xb31738e28ff7618cULL, 0x96a43e58a3c134acULL, 0xbaecf924f16a4edULL, 0xe8aeaa92b5b7f0c0ULL,
- 0xb30de091033c2affULL, 0x2de23c903a5087cfULL, 0x287a24fb1867a9d6ULL, 0xa98fcfb8c3d533a4ULL,
- 0xdbb81a89c7e7bf17ULL, 0x80ac3e802a40fbaaULL, 0xd39c79d96c6e1457ULL, 0x171b48c5bcdcd727ULL,
- 0x50c761e0041a91d1ULL, 0x1a1e7014b7186edeULL, 0x36bf1a17b6013730ULL, 0xf79f73bfe63e1c40ULL,
- 0x406f955337a5e6aaULL, 0x7d28e2a450eadc49ULL, 0xd33e3affbdcda33cULL, 0xcca3b91dc8841daULL,
- 0xcf780ab12922b45cULL, 0xfa9b6383e6b35c1aULL, 0x71c9a39f280d77d4ULL, 0x4e8eeb55549ad991ULL,
- 0x7054b83bf5ebb0c6ULL, 0x44869d0dbcc48253ULL, 0x67e993249222bc1cULL, 0x920d0766fc2dcd19ULL,
- 0xa521a133891a9e3dULL, 0xd226827f57f59a10ULL, 0x6df92bc6079e508ULL, 0xf5b979b52d67d029ULL,
- 0x13c9b3c10222bbaaULL, 0x36b0b51796d9b029ULL, 0xa4251ce8ce8864acULL, 0x24d61ab6b5b10acfULL,
- 0xdf318d11b96474cdULL, 0xeb026f11f8f8b919ULL, 0x37257382b8307de6ULL, 0xd3a3c045e9a30520ULL,
- 0x9f7ee28508ec551bULL, 0x5863b569cf669246ULL, 0xe5a77b49310b1f6cULL, 0xbe4af34d110816d5ULL,
- 0xf9c087e7b2bafd4fULL, 0x34f34f081eac01e3ULL, 0x393846c9c03dab6aULL, 0x2212d20f4bbca3f3ULL,
- 0xfb03b04f6376f698ULL, 0xabbcc6e64292cafaULL, 0x2124c6d3a77af9b5ULL, 0x263d0ca47693fad5ULL,
- 0x192156d9aa0efd79ULL, 0x452bea1c465d508bULL, 0x8a9dbdcfa2855280ULL, 0xa9f89932b7fd1578ULL,
- 0x701905681fbf430dULL, 0x8fcf33d0be8fcaf4ULL, 0xeda624a010ebc14bULL, 0xf381d393b73e8b20ULL,
- 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL,
- 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL,
- 0xa2fb301684f1d6b9ULL, 0xbf6b9eb80b8af890ULL, 0xc68675ec94734b0eULL, 0x7d7a65b32cf01702ULL,
- 0x4eb15766ad69076fULL, 0x372a6fe96e5a1e6fULL, 0xbb9b19bb92bed4ULL, 0x5c887ea2a8d727ffULL,
- 0xf064240e81067402ULL, 0xdd1034d8a9ce0f4ULL, 0x6fa57c1269eb41dbULL, 0x1193c945133c9b0aULL,
- 0xd5cce04411219e9eULL, 0xda04b15450730320ULL, 0xc6d6c7661deabc58ULL, 0x90a1619d451fcb66ULL,
- 0xab254a71fe1b7136ULL, 0xfe1a4c4a3356df00ULL, 0xf86e0020e535ac2aULL, 0x6a0a71cf99a89ba7ULL,
- 0x12bde6127c507dd1ULL, 0x25d6e1c1a8c3534dULL, 0x8f2ee5a118e4a7edULL, 0xd3bad8083a7be619ULL,
- 0x31c681ef10320642ULL, 0x97c906cc8754463bULL, 0x1f6a11b53dc4c53aULL, 0xeb6117a1c3f787afULL,
- 0x6d584aa32c028b33ULL, 0xe8a9b0e672f5ada4ULL, 0xa411cfc2cc0b0292ULL, 0x66de1d5d68a02615ULL,
- 0xd4d49c1c19e5d052ULL, 0x395d8aaf041d3a57ULL, 0x55791080157ef88aULL, 0xa999bc82caf84eb9ULL,
- 0xa69fbdaddcebffbaULL, 0x4f1818393d6d6accULL, 0x53c3fda476e0fb41ULL, 0x774b84c2977b8882ULL,
- 0xfb1714f88f1a8822ULL, 0x8af5b37309b64ce7ULL, 0x375fa1c483347e04ULL, 0x5ae647a1f8be993eULL,
- 0x273cdcaf7abe1803ULL, 0xbc95439052571baULL, 0x8c7aa7e6b4c270e6ULL, 0xae70a8a4801d9d30ULL,
- 0xedc60851c1590d36ULL, 0xc1d06b2fd736aab1ULL, 0xe61f29e7e3f12442ULL, 0x667baa681fca6c5cULL,
- 0x7fed5791d1936bf4ULL, 0x699cd762977ab69cULL, 0x4455d453d8fad37bULL, 0x10412c3174de1b09ULL,
- 0xce9719367803fULL, 0x8308016598e3e798ULL, 0x9e266cd43ed0f02ULL, 0xd947f54df3c04bf2ULL,
- 0xf6c9700b49399ddfULL, 0xe1febce61c4b0e68ULL, 0x5bb68975eaa851c4ULL, 0xd9ac8a1f5d01f9f3ULL,
- 0x6775d19501a07a6cULL, 0xe35ada7579690aefULL, 0xc9813498a942233aULL, 0x5e5d5635f83e4477ULL,
- 0x64f379d7e8031bcdULL, 0x59cc9c52066f417cULL, 0x9b4a7fa1d96e1b62ULL, 0x4c86b09b209104cULL,
- 0x3bfc60aa41caf584ULL, 0x607cc878ca5e48d3ULL, 0xac426e2fb5bfc3f7ULL, 0x463952603b091c2eULL,
- 0x4cd6b357ae40e0e2ULL, 0x9bc9b473e37c761aULL, 0xbb0f96b97a001660ULL, 0xd3bb64951c4025afULL,
- 0x1362b136f4964f49ULL, 0xee6db3cdd81cd509ULL, 0x4fe7b6f83f973e74ULL, 0xec6f65ee1e1b5e31ULL,
- 0x20736cc59fe92900ULL, 0x41a0946c4a724ce0ULL, 0x62d794c966dd3c75ULL, 0xdca232f740137162ULL,
- 0xed4a609012bdead1ULL, 0xf3f71949532f683dULL, 0x3b552d21afed6f9ULL, 0x712c0785e2d3802dULL,
- 0x113c7377f535b6bbULL, 0xb00ccbb5a1c5e3b6ULL, 0xd97bf376924221a6ULL, 0xf5966a9f9adab2d7ULL,
- 0x6bb06a7d1837dc28ULL, 0xc505cabda03b441cULL, 0xeed3ed1ee4082e94ULL, 0xf45010c7a7d7ec69ULL,
- 0x7be6d48bbc5a1721ULL, 0xa328c40ba41f499dULL, 0xd81af0d8c2a56cd9ULL, 0xe20135e85a7b360aULL,
- 0xa525b6e6f21a0dc4ULL, 0x8c0ad575c4ba14b3ULL, 0xbe8000f71adf627fULL, 0xde21352ff0bc7e10ULL,
- 0xe8435d6b47887d23ULL, 0x376ba1ac35e19331ULL, 0x393075b7b93620a0ULL, 0xd64233d9ff3ec161ULL,
- 0x5794d62b3072419dULL, 0x5ee6a7cb60d0145cULL, 0x4e1713e3991ca01dULL, 0x4bb699622b35153eULL,
- 0xebcdd8fe9a858630ULL, 0xb65882462886b4b5ULL, 0x805576b307ea8940ULL, 0xf8dbe0ae4d0e7446ULL,
- 0x22b8a390fc83cdeaULL, 0xa2342cb0b5aa43d2ULL, 0x18107c1ab9b6a937ULL, 0x2a32765fbd49c655ULL,
- 0x34929fd64c1b7524ULL, 0x6a4413e30c73943bULL, 0x7892bca15d61d43bULL, 0xaec15f30991d0d24ULL,
- 0x36efb5016de44893ULL, 0xb250846132280f7ULL, 0x91aa72e2242d3dc1ULL, 0x95efc574fa9c1c7bULL,
- 0x124b954530d0f066ULL, 0xa420a85f74c651baULL, 0x4649017131a9b2bcULL, 0x50de7be73d18f83eULL,
- 0x29db87c71ee451d9ULL, 0x580f5fd1805a2bf7ULL, 0x41215eb281cf1e18ULL, 0x4e940fdd3f45c970ULL,
- 0x9df10eef6a849a56ULL, 0x6ab27080eb88ab60ULL, 0xbe134ad7c5493a0ULL, 0x1f0fbf64853a723aULL,
- 0xefa83869fe81cbb4ULL, 0x280e1fde3e2c964aULL, 0x4c9679c99aa2bb33ULL, 0x2f166e6f99a7f44cULL,
- 0x16ccc45eddbc2e5aULL, 0x12ad2b5f5cb63bc7ULL, 0x2643f07bddfb748eULL, 0x169c77342e168236ULL,
- 0x3a7b45bf39fcde64ULL, 0x7cb581de80c7d05fULL, 0x208e6c02d5eed1d9ULL, 0x338b107c4f54b284ULL,
- 0x1c1bdfa8e64be10ULL, 0x6de1f3ff93cfd0bULL, 0x1c13637898c7c6a5ULL, 0xaf0b6b852d74621bULL,
- 0x5b0e5b7a8d2baf55ULL, 0xa996843a8f921f32ULL, 0xe82d4141938cb8c3ULL, 0xc2aa0f8857fac73eULL,
- 0x28366b989b3987c8ULL, 0xfc2c32d7a8e44707ULL, 0xa1af61b963baa1eaULL, 0xe8b8a292b468c174ULL,
- 0x620777687b81fcacULL, 0x501d7b3b3945de3ULL, 0x9f969a45ab11934eULL, 0x2853e792ad22d5d2ULL,
- 0xf5a3cbe7776c86b0ULL, 0x13104c09a2f4edb6ULL, 0x8ef2bcef827c7b56ULL, 0xc9c499d6547f92b7ULL,
- 0xa7635d90947c7f7cULL, 0x7be96135b61df63ULL, 0xc48a6697700b08c2ULL, 0x53132a49954ff89fULL,
- 0x18c1d9045490a618ULL, 0x2fe345886880d811ULL, 0xf9810661610d37bfULL, 0x4868eec7e3a0caedULL,
- 0xd93697bb9628ddceULL, 0x4e1fec048bb0287ULL, 0x82a1fb7283edd9acULL, 0x12a70f6dfffb3b32ULL,
- 0xfd82e6e34a082354ULL, 0x1cfb87e9d2fa38deULL, 0x68d5d10b6f14a9e5ULL, 0x9bcfb88ba65b54eULL,
- 0xedaae51fe86d935aULL, 0xa19c089e41c41e43ULL, 0xea26ea6102909b74ULL, 0x45bc64ff8ee29358ULL,
- 0x11102ce7366609b0ULL, 0xc0fbc148c36d99c6ULL, 0xf27253036ad53f30ULL, 0xfdd2e47bd91a452fULL,
- 0xcac3ddd143d8c578ULL, 0xb49a2790a93e6a5bULL, 0x7d8a642fce888946ULL, 0x36cb9cb3fa6d3fb2ULL,
- 0x17a7ae6d6642f93cULL, 0x10a1e3460f58ea97ULL, 0xf48a4967c5938eb8ULL, 0x1f9ce115b9710ac6ULL,
- 0x2e3b14a6fdcabd4fULL, 0xa7944a55e2480794ULL, 0xd889b88d1665ccc9ULL, 0xf82f3f4d2896de52ULL,
- 0x70754a54d9fed168ULL, 0x152704f83fc4554aULL, 0xec63cae7d823a1fULL, 0x24e5dc1c9ea6d577ULL,
- 0x49c79700251b120ULL, 0x7f99d670a13a101dULL, 0x20b0e2a355242e62ULL, 0x4566b478b0e81440ULL,
- 0xe1c31f733328bf14ULL, 0xc1f2ffff77bad7c2ULL, 0x8f8400b6cdc31c42ULL, 0x268bf934536003bfULL,
- 0x7b91fd277a0e1ee5ULL, 0xb913b37e28c4b787ULL, 0x4c953a0d66817e31ULL, 0xb227c00a84860c4aULL,
- 0xe4b0605db0e679fbULL, 0xbaa6f04326d2029aULL, 0x836ee1da85bbdf1fULL, 0xc9e22db345220764ULL,
- 0xd74ec8e755807478ULL, 0x29808646cbc74532ULL, 0xd040c0d0191c0e60ULL, 0x22c3e6dcd1491a28ULL,
- 0x8b9e1077a0bd7562ULL, 0x2058a420a8399ebaULL, 0x626d0145f35a3b81ULL, 0x1127301c31db7335ULL,
- 0xdb1e55e5dc7a537dULL, 0xfc6318472b4234e4ULL, 0xe4a80cc761f4453cULL, 0x2e1325d2d5afbb31ULL,
- 0xd9398bd883627a3dULL, 0xf6567d84787e7c26ULL, 0x709d19e27c7e398ULL, 0x68294f4bc83f6aeeULL,
- 0x52acbf11435f9a61ULL, 0x2a37d2e6b1fb6e56ULL, 0x230dcee5cfa65a98ULL, 0xddf651603dd4f0acULL,
- 0x75de87a64288cfb8ULL, 0x8e5415d908651934ULL, 0xaa9c33bb68bcfc73ULL, 0xf032770d2ccf12cfULL,
- 0xd0781b1670d74202ULL, 0x5b88eb69d0a35ecULL, 0x4bec02113de149a3ULL, 0xc9089280a5be186aULL,
- 0xd637182829296989ULL, 0x89a77d4747ae2068ULL, 0xe7503c058bbe2354ULL, 0xd89275a668e6966dULL,
- 0x2260793c7582e453ULL, 0x60741d61c3d4fcaULL, 0x56098e87a0a1c8d4ULL, 0x50977dc8ae969e12ULL,
- 0xe23e8202f5838bb3ULL, 0x82b3778c5b91648eULL, 0xf2a108fe92b9a478ULL, 0x7ce5b67ce327c0f6ULL,
- 0x548c681d868d0847ULL, 0x2a9c649859474fb4ULL, 0x982583098036ddeeULL, 0x7c2348480fba0788ULL,
- 0xcf489913dce3a00cULL, 0xcda4fe69372e9a1eULL, 0x7486177cc8954807ULL, 0x8da091e9e00d941aULL,
- 0xacce6cf59fab9b38ULL, 0xe5430c86b54a074dULL, 0x594d87d4f3911ce5ULL, 0x3fbc9f4bb1f277c8ULL,
- 0xf9c14c90b20728f1ULL, 0xa967fe5b436092fcULL, 0x5f80bec3cf3cfaeULL, 0x2b926ee2312ddbf9ULL,
- 0xcda9d94cb72253ecULL, 0x2e79538857826f4aULL, 0xa8c2220820ad5068ULL, 0x2991c1f4cc68a0b1ULL,
- 0x3b1d0b0c37912de5ULL, 0x33d8346eb769773bULL, 0x5dc351b16928834bULL, 0x64faffaf6afbe69ULL,
- 0x73769de75af18b45ULL, 0x8f734115c9b44422ULL, 0xb9d932f826b5cc5dULL, 0xfd0e23c7125af091ULL,
- 0x15b6526e5c073902ULL, 0xde5c15f435ae488aULL, 0x6bdad990730aee3eULL, 0xfac4ccaca8e8144ULL,
- 0x41b88430fd4e7f8ULL, 0xcdf389d9ae758f99ULL, 0x3fbe26ff6308492aULL, 0xe3bde23f6f8f2ad8ULL,
- 0x2750495d0dadd5eeULL, 0x60aaf98cc5e68ab7ULL, 0xe528b22e39e6dd6fULL, 0xc20cce673dd4920cULL,
- 0xf45fc486658b34b1ULL, 0x8236a8ce25d0f4adULL, 0x4ef8016cdc74ea84ULL, 0xefce5f553bcdd92bULL,
- 0x5ad292a7f577d810ULL, 0xd9e87f03f3fa382fULL, 0x919cb5db0d305a86ULL, 0x39021ca431e36c9aULL,
- 0x73cee9fc7b9f70c2ULL, 0x7dc18ee74b039b00ULL, 0x4a0f2b10b5f1bcf4ULL, 0xb6ba396f2a63aa0aULL,
- 0x1b5fdd24b87bec1aULL, 0x970e9d337f98a549ULL, 0x375a4fd74b9f804ULL, 0x6008f35faadc239aULL,
- 0xff4db58c6198d86bULL, 0xbb1a982072a11149ULL, 0xce7b4b3aa420717aULL, 0xf43a3283bad202a1ULL,
- 0x4c7fe6a57aba1c13ULL, 0x67f07a569d77ab46ULL, 0xc49bd563a67bb749ULL, 0x6ddb852c74094bbdULL,
- 0x16e1f64969b38812ULL, 0x3ffc10423a446c77ULL, 0xa48bf502358cf4b1ULL, 0x3caf4cb1f9796f69ULL,
- 0x287d5b8d7be9aecbULL, 0xb42a2a787d34daf6ULL, 0x141b50dcc7717a53ULL, 0x2f39ebc345b20dd6ULL,
- 0xaf2d3a635b4a49fcULL, 0x9728938407b7095cULL, 0xc266fa26acad9169ULL, 0xa57e8a77305b98bcULL,
- 0xa4fa207b79308268ULL, 0x36ebd34a741ea985ULL, 0x7fd76525dedc394ULL, 0x67173aa63ed42783ULL,
- 0xc53d4fb0bb32d2fbULL, 0xeeb4f53220c1f8a7ULL, 0xd6a5995db122dcfeULL, 0x38e7f89f13cbfdbaULL,
- 0x1bf6ccfcfad6d7b3ULL, 0xaf3dd3b0665c17f8ULL, 0x2d40e2a9ca50bb3cULL, 0xc29db14c351416b5ULL,
- 0x18d17f8aae7a6e1bULL, 0xa43d0b0a8d171d4cULL, 0x1e86d121e03b3c5aULL, 0x708c7b8dbd1a52bcULL,
- 0xdd3a473f5f8a8192ULL, 0xa80d9f21b9da8998ULL, 0x257a92eaa32e0f38ULL, 0x9f1e8d9f2261178eULL,
- 0x6cc33e93b01b74d8ULL, 0x32b9ff80440565f1ULL, 0xeb26d3276d2018d5ULL, 0x82a5b921bba6c373ULL,
- 0x722b4286cf75e256ULL, 0xf61b96dabb53398bULL, 0xd0be617490f87fa9ULL, 0x653a1ee14988a9eeULL,
- 0x7dabe354848d4a64ULL, 0x3bfcb7d88d55cb5aULL, 0xd7e0a489d1593414ULL, 0x67329c6cb749ff7ULL,
- 0xeefba4312c5a3a51ULL, 0xa6ddf9c02ca4ec1fULL, 0xdbd6c91ce75a3effULL, 0x39a3d1825c858dc6ULL,
- 0xab6e1a8ae6f4c171ULL, 0xc9ff712905493e75ULL, 0x23f6321e1d0fc5abULL, 0x12a7d2cf8a957601ULL,
- 0x58f13af4a4f5d5a7ULL, 0x5a6dcc762ae9b7a7ULL, 0x5c0a4e49cf2bbbe2ULL, 0x7a78e6840e398d70ULL,
- 0x666b9cc505d0d4eaULL, 0x15ae9a20484a4c6bULL, 0xfda176a7f29082d3ULL, 0x23bab284be84f6daULL,
- 0x1b610e17aafc131eULL, 0x825833f405a1cbe6ULL, 0xa2db803435ed7f2bULL, 0xc5e15c6f85bd816dULL,
- 0xa7f64f82a6750095ULL, 0x2882d90cf53c419ULL, 0x19505847eba99e0fULL, 0xd02316e6db2830c7ULL,
- 0xef0503a98b63be91ULL, 0x35dc89ae8158a2e6ULL, 0x55b858bcc1b00176ULL, 0x9a217bd75160660ULL,
- 0xcdb84b814fabda9ULL, 0xf849613ae0d2dfc0ULL, 0x6a05bd115a044f53ULL, 0x9048cf751c7560aaULL,
- 0x85366d85e4e9b94ULL, 0x9c85d5893ee17611ULL, 0x6b00dc988f3fa44dULL, 0x5dea062b516ea07eULL,
- 0xca604bf8bb817671ULL, 0x4ad33f109ffde149ULL, 0x70988b1efd9bbb10ULL, 0x35e79cae93cd8b3bULL,
- 0x75aab0671b1ec066ULL, 0x32dcfd00966ab3dULL, 0x24e367165128f15bULL, 0x96578b8d543d0b3eULL,
- 0xdf76e3457117e577ULL, 0x240c560b343ab845ULL, 0xeb75aec665ab407eULL, 0xb719c8902adc24fULL,
- 0x3995e75d8ed773e1ULL, 0x23bf8a4f2105e2eULL, 0x6ca5fed41cefccdULL, 0xb250cf7ef9cabeb0ULL,
- 0x50463ed5a1d3972ULL, 0xcadf972029e9b9bULL, 0xa4d4808c16abd3eaULL, 0x2d418892a2bea6b7ULL,
- 0xd37fd64a594a0883ULL, 0xae4fa7d06c287839ULL, 0x5a29f762a663fb57ULL, 0xd9cb60abd5129174ULL,
- 0x71f975750a7b7360ULL, 0x72041c6f601d8552ULL, 0xcb8b26cc9cdf88cfULL, 0x912a8e24155811f3ULL,
- 0x9d2fda3c07c3b65aULL, 0xdc7561c38a7c4ae9ULL, 0xb18c60f62d9e31abULL, 0x4ad191948f6ae080ULL,
- 0x57968cf89b01586cULL, 0xaa8811a68d735c7aULL, 0x167ba8ca2e1ed2e4ULL, 0x151a49af84a9693eULL,
- 0xf369d4fcf5ce2456ULL, 0x1d7aaa39b733445eULL, 0x2a89aad285e876d2ULL, 0x398b14f70cc102ddULL,
- 0xdbad68f34f7c4f2eULL, 0xbea100f16aee4b14ULL, 0xbb2359eee98c7e57ULL, 0xa95b051515c8f8f8ULL,
- 0xce3c15cef9969415ULL, 0xab73c5f08685ba80ULL, 0xab2f0174017ec044ULL, 0xbdbbe145c1665b5fULL,
- 0x63a2313a575c2ba0ULL, 0x3b7c2461391419aULL, 0xf966cbfe40a2976aULL, 0x560dd4d1f1057e80ULL,
- 0x5d25fd5f9b16e7f3ULL, 0xf7879d892df08e9eULL, 0x2aa8a60886db39e9ULL, 0x3ce23adf682303bcULL,
- 0xc4cbadc94eaf1c22ULL, 0x87a904b3c7d28272ULL, 0xc105839d5587eb55ULL, 0xfa476cfbf34e4e5eULL,
- 0xab0d465749c189fdULL, 0x10ace78fe20f500ULL, 0xd7fe6d818e98d07cULL, 0x62f2737619e90bf6ULL,
- 0x107a7a9fd41dc4ecULL, 0x36c507920bc79efbULL, 0xb24c3a3867b31b42ULL, 0x92c644ba04f2ea97ULL,
- 0x29f05a39ca7f8597ULL, 0x3658360c119fd99aULL, 0x1bedd19038544949ULL, 0xf88810481b089b45ULL,
- 0x84733695f36d613eULL, 0xea32a1d3d0e7e60eULL, 0xf018be159d0f11c4ULL, 0x13b8a8dff6986253ULL,
- 0xcd6c55a3a3954601ULL, 0x625efc8b44a2de4ULL, 0xeefef48f812459e5ULL, 0x58f07f5851299ecfULL,
- 0x4f1ab7253d5a74dfULL, 0x91d418aed9cf0a3eULL, 0xea45c484c2f4d52bULL, 0x6bb51dbbf15384aaULL,
- 0xc2081d2422753b51ULL, 0xfca3e2e2f3beada6ULL, 0x5ab1f1431cd6ca20ULL, 0x1c40a0a34c73315aULL,
-};
-#endif
-
-#endif /* GNUTLS_LIB_NETTLE_GOST_ECC_GOST256CPA_64_H */
diff --git a/lib/nettle/gost/ecc-gost256cpa.c b/lib/nettle/gost/ecc-gost256cpa.c
deleted file mode 100644
index 6d7fa51b3e..0000000000
--- a/lib/nettle/gost/ecc-gost256cpa.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/* ecc-gost256cpa.c
-
- Compile time constant (but machine dependent) tables.
-
- Copyright (C) 2013, 2014 Niels Möller
-
- This file is part of GNU Nettle.
-
- GNU Nettle is free software: you can redistribute it and/or
- modify it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
- or
-
- * the GNU General Public License as published by the Free
- Software Foundation; either version 2 of the License, or (at your
- option) any later version.
-
- or both in parallel, as here.
-
- GNU Nettle is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received copies of the GNU General Public License and
- the GNU Lesser General Public License along with this program. If
- not, see https://www.gnu.org/licenses/.
-*/
-
-/* Development of Nettle's ECC support was funded by the .SE Internet Fund. */
-
-#if HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <gnutls_int.h>
-
-#include <nettle/ecc.h>
-#include "ecc-internal.h"
-#include "ecc-gost-curve.h"
-
-#define USE_REDC (ECC_REDC_SIZE != 0)
-
-#if GMP_NUMB_BITS == 32
-#include "ecc-gost256cpa-32.h"
-#elif GMP_NUMB_BITS == 64
-#include "ecc-gost256cpa-64.h"
-#else
-#error unsupported configuration
-#endif
-
-#if ECC_REDC_SIZE > 0
-# define ecc_256_redc ecc_pp1_redc
-#elif ECC_REDC_SIZE == 0
-# define ecc_256_redc NULL
-#else
-# error Configuration error
-#endif
-
-#define ecc_256_modp ecc_mod
-#define ecc_256_modq ecc_mod
-
-static const struct ecc_curve _gnutls_gost_256cpa =
-{
- {
- 256,
- ECC_LIMB_SIZE,
- ECC_BMODP_SIZE,
- ECC_REDC_SIZE,
- ECC_MOD_INV_ITCH (ECC_LIMB_SIZE),
- 0,
-
- ecc_p,
- ecc_Bmodp,
- ecc_Bmodp_shifted,
- ecc_redc_ppm1,
-
- ecc_pp1h,
- ecc_256_modp,
- USE_REDC ? ecc_256_redc : ecc_256_modp,
- ecc_mod_inv,
- NULL,
- },
- {
- 256,
- ECC_LIMB_SIZE,
- ECC_BMODQ_SIZE,
- 0,
- ECC_MOD_INV_ITCH (ECC_LIMB_SIZE),
- 0,
-
- ecc_q,
- ecc_Bmodq,
- ecc_Bmodq_shifted,
- NULL,
- ecc_qp1h,
-
- ecc_256_modq,
- ecc_256_modq,
- ecc_mod_inv,
- NULL,
- },
-
- USE_REDC,
- ECC_PIPPENGER_K,
- ECC_PIPPENGER_C,
-
-#ifdef HAVE_NETTLE_CURVE448_MUL
- ECC_ADD_JJA_ITCH (ECC_LIMB_SIZE),
-#endif
- ECC_ADD_JJJ_ITCH (ECC_LIMB_SIZE),
-#ifdef HAVE_NETTLE_CURVE448_MUL
- ECC_DUP_JJ_ITCH (ECC_LIMB_SIZE),
-#endif
- ECC_MUL_A_ITCH (ECC_LIMB_SIZE),
- ECC_MUL_G_ITCH (ECC_LIMB_SIZE),
- ECC_J_TO_A_ITCH (ECC_LIMB_SIZE),
-
-#ifdef HAVE_NETTLE_CURVE448_MUL
- ecc_add_jja,
-#endif
- ecc_add_jjj,
-#ifdef HAVE_NETTLE_CURVE448_MUL
- ecc_dup_jj,
-#endif
- ecc_mul_a,
- ecc_mul_g,
- ecc_j_to_a,
-
- ecc_b,
- ecc_g,
-#ifndef HAVE_NETTLE_CURVE448_MUL
- NULL,
-#endif
- ecc_unit,
- ecc_table
-};
-
-const struct ecc_curve *nettle_get_gost_256cpa(void)
-{
- return &_gnutls_gost_256cpa;
-}
diff --git a/lib/nettle/gost/ecc-gost512a-32.h b/lib/nettle/gost/ecc-gost512a-32.h
deleted file mode 100644
index b401d83a9b..0000000000
--- a/lib/nettle/gost/ecc-gost512a-32.h
+++ /dev/null
@@ -1,1086 +0,0 @@
-#ifndef GNUTLS_LIB_NETTLE_GOST_ECC_GOST512A_32_H
-#define GNUTLS_LIB_NETTLE_GOST_ECC_GOST512A_32_H
-
-/* For NULL. */
-#include <stddef.h>
-#define ECC_LIMB_SIZE 16
-#define ECC_PIPPENGER_K 43
-#define ECC_PIPPENGER_C 6
-static const mp_limb_t ecc_p[16] = {
- 0xfffffdc7UL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL,
- 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL,
-};
-static const mp_limb_t ecc_b[16] = {
- 0x5a71c760UL, 0x50319078UL, 0xebee4761UL, 0x862ef9d4UL, 0x10da90ddUL, 0x4cb45740UL, 0xf30d2761UL, 0xee3cb090UL,
- 0xfd0b6265UL, 0x79bd081cUL, 0x761cb0e8UL, 0x34b82574UL, 0x6667f1daUL, 0xc1bd0b2bUL, 0xedfc86ddUL, 0xe8c2505dUL,
-};
-static const mp_limb_t ecc_q[16] = {
- 0x1f10b275UL, 0xcacdb141UL, 0xfad2b85dUL, 0x9b4b38abUL, 0x4e056060UL, 0x6ff22b8dUL, 0xf48d8911UL, 0x27e69532UL,
- 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL,
-};
-static const mp_limb_t ecc_g[32] = {
- 0x3UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x5215f2a4UL, 0x89a589cbUL, 0xc235f5b8UL, 0x8028fe5fUL, 0xe3a41e9UL, 0x3d75e6a5UL, 0x4fd036e9UL, 0xdf1626beUL,
- 0xcbefa921UL, 0x778064fdUL, 0xacf1abc1UL, 0xce5e1c93UL, 0xe25450e6UL, 0xa61b8816UL, 0x7a836ae3UL, 0x7503cfe8UL,
-};
-static const mp_limb_t ecc_Bmodp[16] = {
- 0x239UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
-};
-#define ECC_BMODP_SIZE 1
-static const mp_limb_t ecc_Bmodq[16] = {
- 0xe0ef4d8bUL, 0x35324ebeUL, 0x52d47a2UL, 0x64b4c754UL, 0xb1fa9f9fUL, 0x900dd472UL, 0xb7276eeUL, 0xd8196acdUL,
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
-};
-#define ECC_BMODQ_SIZE 8
-#define ecc_Bmodp_shifted ecc_Bmodp
-#define ecc_Bmodq_shifted ecc_Bmodq
-static const mp_limb_t ecc_pp1h[16] = {
- 0xfffffee4UL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL,
- 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0x7fffffffUL,
-};
-static const mp_limb_t ecc_qp1h[16] = {
- 0x8f88593bUL, 0xe566d8a0UL, 0xfd695c2eUL, 0x4da59c55UL, 0xa702b030UL, 0xb7f915c6UL, 0x7a46c488UL, 0x93f34a99UL,
- 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0x7fffffffUL,
-};
-#define ecc_redc_ppm1 NULL
-#define ECC_REDC_SIZE 0
-#if USE_REDC
-#define ecc_unit ecc_Bmodp
-static const mp_limb_t ecc_table[4096] = {
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x6abUL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x72ca9068UL, 0xf0ef44e9UL, 0xa9ef2729UL, 0xdb1d62d6UL, 0x9f7c7ffdUL, 0x9b0da4dcUL, 0x65ca0c69UL, 0xd83c1cffUL,
- 0x47aeec48UL, 0x9c60781aUL, 0x6526c102UL, 0xaf2d843bUL, 0xd67d100UL, 0x33317addUL, 0x4e1893fcUL, 0x15791bb8UL,
- 0xd223389aUL, 0xce2680c9UL, 0xd5d1e9d0UL, 0x125b2f67UL, 0x32a49ab1UL, 0x228c4292UL, 0xbec9d296UL, 0xc03135b7UL,
- 0x1870b908UL, 0xc7339576UL, 0xaa5d2de2UL, 0x76145f11UL, 0xa152f4faUL, 0x65f4bb32UL, 0x14f5610cUL, 0xb454b08eUL,
- 0x4637f438UL, 0x4a102a1bUL, 0xec614523UL, 0xdfe518e3UL, 0xf04ff681UL, 0x2c7cc07fUL, 0xc043a693UL, 0x9d29613bUL,
- 0x73f413a1UL, 0x71b20d19UL, 0xa52606e7UL, 0xb60dfc63UL, 0xf89a4bf8UL, 0x7eab6739UL, 0x7540d3cUL, 0x47155991UL,
- 0x7d24d20cUL, 0x3f6087c5UL, 0x8f70275dUL, 0x46e6737dUL, 0x1ff30d56UL, 0x571f2483UL, 0x6c0c4db4UL, 0x11fb7529UL,
- 0xdb1c5b98UL, 0xfe3dd212UL, 0x8b2f7ccaUL, 0x7bb916b3UL, 0x609ed33UL, 0x289ce20eUL, 0xf23f75a7UL, 0x8907864cUL,
- 0x5da2e6caUL, 0x664a334bUL, 0xc6a8a8ccUL, 0xf05f1834UL, 0x46bea417UL, 0x5ca791d8UL, 0xe84ad0f6UL, 0x2a10a0e2UL,
- 0x2cea5bd6UL, 0xb805f62UL, 0x2ac037f2UL, 0xb0749e4cUL, 0x624fc44eUL, 0x75ae692eUL, 0x2f13e26aUL, 0x4d2f8bd0UL,
- 0x63b9386eUL, 0x7fa85704UL, 0xb4099b03UL, 0x11437d3dUL, 0xbe442243UL, 0xf0a8bf16UL, 0xa8b4c79UL, 0xd7965ffdUL,
- 0x636d8999UL, 0x36329380UL, 0xaa77b4f6UL, 0xdd1afdbdUL, 0xbd151bf6UL, 0x7690f24UL, 0x3359a5efUL, 0x4f866b41UL,
- 0x78703a24UL, 0xeeee87d3UL, 0xac3019d7UL, 0x4ca29595UL, 0xe9b4a393UL, 0x4bdbc8e3UL, 0xffd88dUL, 0xa057ff5cUL,
- 0xd011f832UL, 0x5d4af522UL, 0x7a84bcb2UL, 0x43fd96b4UL, 0x85806046UL, 0x6ba58566UL, 0x171c1296UL, 0x98db4219UL,
- 0xfa639733UL, 0x664651e1UL, 0xf8b40254UL, 0x4574c9fcUL, 0x699919abUL, 0xd90a2ca1UL, 0xabdb9006UL, 0x5907107UL,
- 0xcbe4bf8bUL, 0xedf770c2UL, 0x6628fd59UL, 0x26a88df1UL, 0x4d851ab1UL, 0xb882cd68UL, 0xd1b11fb0UL, 0xb9d73089UL,
- 0x6d2fc8e5UL, 0xd0cc4298UL, 0xbd074474UL, 0x2f404294UL, 0x56bd19ccUL, 0x1750ffc8UL, 0xae95ef0dUL, 0x159365b5UL,
- 0xa90b8412UL, 0xb58ef30bUL, 0xcbaa659cUL, 0xb795e8b3UL, 0xebc67a56UL, 0x9d328685UL, 0x7c61386aUL, 0xda1d5fdUL,
- 0x292fb325UL, 0xc035d406UL, 0x8a0a7214UL, 0x66de957UL, 0x2b8fc645UL, 0x47b4f920UL, 0xb0b0c81dUL, 0x9de80ce6UL,
- 0x911dd128UL, 0xc3ad2e44UL, 0x5461038eUL, 0x90404215UL, 0x919a6b5aUL, 0x9313cbd7UL, 0x921e458fUL, 0x607ef8cfUL,
- 0x88ebcf16UL, 0x4c14515fUL, 0xc4841917UL, 0xeb267031UL, 0x2ee929cUL, 0x9cdef61aUL, 0x4996cb6aUL, 0x882a230eUL,
- 0x93005d94UL, 0x14f6d6dcUL, 0x290d32daUL, 0xadb1d1f5UL, 0x4433c687UL, 0xb7aaaf58UL, 0x2e6ac53cUL, 0xe3991b87UL,
- 0x17d24834UL, 0xf9146cfcUL, 0xf6f69ac3UL, 0x9d9cd934UL, 0x26bdeff9UL, 0x43204744UL, 0xd048be62UL, 0xcdb64facUL,
- 0xb9ace05dUL, 0x4a363ee7UL, 0x61415a4cUL, 0x2e079ab4UL, 0x75917c1cUL, 0xfca596e0UL, 0x78734728UL, 0xe9784baeUL,
- 0xeaeff14bUL, 0x96ce429UL, 0xc8a7b322UL, 0xa972e168UL, 0x923451e8UL, 0xc285c93cUL, 0xb66944aaUL, 0x3590c485UL,
- 0xfc3d4aa2UL, 0xd7b629f4UL, 0xdbbab620UL, 0x38574cceUL, 0xb92e3d39UL, 0xb06fbe79UL, 0x1059c1d8UL, 0xf1b32c6UL,
- 0xbf17180eUL, 0x1be78415UL, 0x501d3cd6UL, 0xef85f41cUL, 0x2364e1e5UL, 0x46702641UL, 0xb6ba5a2dUL, 0x46478d6aUL,
- 0xc651137UL, 0xd83bb3e8UL, 0xe3f06d73UL, 0x892df4fbUL, 0x786767d2UL, 0x52a8b39bUL, 0xbc3e9efaUL, 0xd577ae8bUL,
- 0xfd64d57cUL, 0x49dc02ccUL, 0xb5acaf61UL, 0x9586c36dUL, 0x53746a1eUL, 0x109d245fUL, 0xcfb4ed62UL, 0x4d470330UL,
- 0x932552feUL, 0x63476850UL, 0x9619e657UL, 0x30e67610UL, 0x41d70512UL, 0x9926e356UL, 0x5d9c43b5UL, 0xc8bee52bUL,
- 0xff6a229bUL, 0xadd59735UL, 0x1e665729UL, 0xaef8edebUL, 0x92817004UL, 0x1619e1e9UL, 0x9204f573UL, 0x5eb66bUL,
- 0xb4d11f6cUL, 0xb9a35769UL, 0x2510b482UL, 0x18ef8100UL, 0xcc0a7786UL, 0xeeb87b6UL, 0x5674d0dbUL, 0xba93b4a3UL,
- 0x6280a02UL, 0x5a12f402UL, 0x4c7ebc9aUL, 0x96aa424UL, 0x30d6b43aUL, 0x32c93e3dUL, 0xf9e72f0cUL, 0xc216b2ddUL,
- 0x3dab723UL, 0x3612e43eUL, 0x220ab512UL, 0x8abbcbc8UL, 0x52c9a6f2UL, 0xd263ee4fUL, 0x8cffa90eUL, 0xc3905b0eUL,
- 0x1550f5caUL, 0x51aea7a9UL, 0x70947604UL, 0xeede5498UL, 0x7487dbe9UL, 0xccba462cUL, 0x831d9d78UL, 0xa302b46UL,
- 0x8d41d4ccUL, 0x119ec69fUL, 0xdce5682cUL, 0x91e36fc6UL, 0x2e0ee654UL, 0xdc3cc779UL, 0xe4f90517UL, 0xf8c13c54UL,
- 0x85e33173UL, 0x78b9dd4fUL, 0xb31058dUL, 0xb2ea3baaUL, 0x834a0e40UL, 0xaa5396a1UL, 0x17a1c947UL, 0xa288499dUL,
- 0xa59145d6UL, 0xeb93d8abUL, 0xf0a3bf62UL, 0x1813c80bUL, 0x486a9c3fUL, 0x2e6bf178UL, 0x6d3a8b43UL, 0x16cd7c39UL,
- 0xfe302efbUL, 0x71c23d8aUL, 0x7f1664a9UL, 0x731975d0UL, 0x54fdf5a6UL, 0x240aee4fUL, 0xb45840a7UL, 0x16fe9d59UL,
- 0x1aed4487UL, 0x5fc6b7bcUL, 0x33cedd3dUL, 0x774d3fb9UL, 0xff0d5142UL, 0xf14802abUL, 0x3bf73de8UL, 0xce5e83e3UL,
- 0x373f4d1UL, 0x9cfe2e9cUL, 0x5a7ef969UL, 0x63565e0cUL, 0x126036d7UL, 0xeb247599UL, 0x1b308d7cUL, 0xdcf35446UL,
- 0x95e5f6f6UL, 0xb31c8af1UL, 0x2b861344UL, 0xca8a1754UL, 0x38e6224cUL, 0x777ee117UL, 0xdba9a8c7UL, 0xd44fb7a7UL,
- 0x2cc1d335UL, 0x2364fa8fUL, 0x6705ffd4UL, 0x7cd7c5c3UL, 0x7b8503UL, 0xab858a7fUL, 0x966a61abUL, 0x643a88cdUL,
- 0x70525a98UL, 0x922c2e22UL, 0x22ee34e0UL, 0x350c3bd7UL, 0xfd2783d4UL, 0x279a3d08UL, 0x39da21adUL, 0x51f1fabcUL,
- 0xae9cf0adUL, 0xccc01a76UL, 0x7c2181a0UL, 0xd4b7d6dbUL, 0x96781901UL, 0x6e775acdUL, 0xc3433633UL, 0x3feac335UL,
- 0x27fb62f3UL, 0x9924d29aUL, 0x9027b884UL, 0xb40e8b7aUL, 0xc431f2adUL, 0xd0d525f1UL, 0x45557e83UL, 0xb461a9cdUL,
- 0x91f6ef75UL, 0x6df5e49aUL, 0x21ba1a31UL, 0xf4151c14UL, 0x150b64e0UL, 0x40d106a9UL, 0xd6e56e9dUL, 0xd40c0e04UL,
- 0x32c3400bUL, 0xa0f345e7UL, 0x66d01a49UL, 0x4fb64f0aUL, 0xde0a33eUL, 0x797ca446UL, 0x876350d0UL, 0x18c384a1UL,
- 0x760c3379UL, 0xb3db43adUL, 0xea1a9a1dUL, 0x13d31a78UL, 0xf28b6ebUL, 0xea28c97eUL, 0x7b8e4ce2UL, 0x2c6d93fdUL,
- 0x9aa97c66UL, 0x56614cf2UL, 0x1aca1953UL, 0xffe9dd15UL, 0x43a914bdUL, 0xeed7e154UL, 0x45597ef7UL, 0x7bf2a09aUL,
- 0x2895ee9UL, 0xec7b417bUL, 0x5272641UL, 0x8de8e712UL, 0x7641f0afUL, 0x8af93663UL, 0xf305ae8dUL, 0x89c40936UL,
- 0xeaef3ddaUL, 0xf91d8f7cUL, 0xa5268af0UL, 0xd7b45be5UL, 0x4cecadc1UL, 0xb71dbc3cUL, 0xdb214874UL, 0xe9ddc69aUL,
- 0x96f2bec4UL, 0x760671beUL, 0xca182ebdUL, 0x8a6b99ffUL, 0xc22467c0UL, 0x1d1b288fUL, 0xc70feafeUL, 0x5d5aa95dUL,
- 0xc3426b01UL, 0x62963fa0UL, 0x4a624582UL, 0xaea3146eUL, 0x8b07ac88UL, 0xdbd3fbacUL, 0x96152649UL, 0x9a53967cUL,
- 0x818c1eeUL, 0x32cae4c5UL, 0x68a3f242UL, 0x21db106aUL, 0xbd038aeeUL, 0xec3f70fdUL, 0xd9a037e0UL, 0xe6ce6fa5UL,
- 0x4f6d503aUL, 0xfceb07aUL, 0x22af0362UL, 0xfe60ce4bUL, 0x2d2e29d4UL, 0xac41f688UL, 0x7a124035UL, 0x5646bb8fUL,
- 0xa4b1e02aUL, 0x963d407aUL, 0xddcfa8d7UL, 0x615985a9UL, 0xdf383992UL, 0x1ee654f7UL, 0x70d50990UL, 0x6e694f39UL,
- 0x24cd5b9dUL, 0x257a58f2UL, 0x168d84fdUL, 0x77527f38UL, 0x3cce3223UL, 0xfd4651dbUL, 0x3b361bbcUL, 0xfd61362fUL,
- 0xa75ac3a2UL, 0xf39b499aUL, 0xab73e847UL, 0x53a5039aUL, 0xbdd86d81UL, 0xd20855acUL, 0x1555653UL, 0x62af10fdUL,
- 0x7042b877UL, 0x821be712UL, 0xe69a1721UL, 0x22846b63UL, 0xb5b4bf4cUL, 0x7a2e13acUL, 0x6f2dfb1cUL, 0x31c76d86UL,
- 0x72f68da8UL, 0xe1c52917UL, 0x5d13891cUL, 0xb5777b87UL, 0xb5aabe41UL, 0x4bd900dUL, 0xf498cef9UL, 0x7213a92cUL,
- 0x59deb36UL, 0x4cab2844UL, 0x50c4aca8UL, 0xb1637390UL, 0x98f71f7aUL, 0xae3bca89UL, 0x61a6cd48UL, 0xc82fc774UL,
- 0xbeed6141UL, 0xcca16937UL, 0x474a63f1UL, 0x5e29d790UL, 0x6968a75cUL, 0x1fd9cb6bUL, 0xddda28deUL, 0xdcfc5c37UL,
- 0x591833e0UL, 0x59a319beUL, 0x443d3d81UL, 0x80b62464UL, 0xec9ac8a3UL, 0xa275a49UL, 0x2c2c57cUL, 0xe481651UL,
- 0x1974ebb3UL, 0xb461c2c9UL, 0x80d82600UL, 0xae43e326UL, 0xdc2be4d7UL, 0xbc8e6957UL, 0xf5f2efa8UL, 0x2c7aec91UL,
- 0xa0867131UL, 0x1272f6ddUL, 0x61e64d48UL, 0x2b696a7bUL, 0x409bad97UL, 0x62b85daeUL, 0x4cc94e9fUL, 0x88673ef7UL,
- 0xa7d75892UL, 0xfe5b61d6UL, 0x3be27950UL, 0xc937c00fUL, 0x20dfc17UL, 0x7d363bd4UL, 0x33016116UL, 0xf9c03ba6UL,
- 0x7955cb6UL, 0x71e5e67eUL, 0x233ae2ceUL, 0xe7129e0eUL, 0x1c5bdd7UL, 0xed04d303UL, 0xd6eebf80UL, 0x2bcbaa51UL,
- 0xce9df96UL, 0xdbce333dUL, 0x3c7732c7UL, 0x6099a92aUL, 0x620e7ba6UL, 0xc9b96693UL, 0x7876847aUL, 0xf037af2fUL,
- 0x913911ecUL, 0xe137a1dbUL, 0xe822c541UL, 0x5f66aa33UL, 0x12f570b1UL, 0xbe17f505UL, 0xefcec638UL, 0x54669d4bUL,
- 0xf3fee5b9UL, 0xace24fe8UL, 0x8efbd17dUL, 0x93b23604UL, 0xc2ba6e58UL, 0x55a88a2dUL, 0xaf78edadUL, 0x1d587c5eUL,
- 0xabc6d707UL, 0xf1c14465UL, 0x2b1550bfUL, 0x9f197b9cUL, 0x3bfd81caUL, 0xeae8f0ccUL, 0x65044bdbUL, 0x7c7bb327UL,
- 0xf07bb98aUL, 0x2fe3ca91UL, 0x6aada290UL, 0xab77d70fUL, 0x2edca03dUL, 0x9ea3656UL, 0xde13f023UL, 0x45f329dcUL,
- 0x5974c7UL, 0x403d1368UL, 0x45b76d34UL, 0xefd9d4fUL, 0xe2412919UL, 0x119c58c0UL, 0x85546669UL, 0x8333d145UL,
- 0x938d421fUL, 0x839ed561UL, 0x3b6f2318UL, 0x2d437d27UL, 0x6d2e8a62UL, 0x3f08fa94UL, 0x23af5715UL, 0x8f4371dbUL,
- 0xdd5eba94UL, 0x5508eb26UL, 0xaf1d9867UL, 0xfafaec9dUL, 0x49a9571bUL, 0x8fed2352UL, 0x2605f80eUL, 0x2b4cda9UL,
- 0xa12d98faUL, 0xd5100530UL, 0x6cb1c2d3UL, 0x5e061db3UL, 0x13aa4356UL, 0xb1a10c9dUL, 0x8c4b94d9UL, 0x788e8faeUL,
- 0x2dd620adUL, 0xdfed3299UL, 0x48289795UL, 0x6707a10aUL, 0x71be0e23UL, 0xa6eb4286UL, 0x2f5d392cUL, 0x9c086550UL,
- 0xda3233fdUL, 0x349007b1UL, 0x187236cbUL, 0x8805f43fUL, 0x80d8efeeUL, 0xcfe93690UL, 0x98df4df5UL, 0xca5d3907UL,
- 0xe5c3362eUL, 0x3a73e810UL, 0xc8059dbdUL, 0xb0b91e5UL, 0xef921ac3UL, 0x148ce837UL, 0x9f741969UL, 0x274f690bUL,
- 0xef97a70aUL, 0x8e4e5ae9UL, 0x83d08d11UL, 0x8cfdaadbUL, 0xa566f931UL, 0x4a8b6d7dUL, 0x2cc9a876UL, 0xbc56ce7cUL,
- 0x2ab4b9bcUL, 0xd0f3283bUL, 0xcdc6cf2fUL, 0x4cb103d5UL, 0xb31b1732UL, 0xa1027fbaUL, 0xf4290e6cUL, 0xa0f248c2UL,
- 0x2ba9c7ecUL, 0x73cc00e1UL, 0xd1838bf7UL, 0xf6e95b40UL, 0xd70f5ec1UL, 0xbf4b2b33UL, 0x59950c0dUL, 0x56089658UL,
- 0x7a9400d9UL, 0xd6c55431UL, 0x95268504UL, 0xd04d9275UL, 0x722e6295UL, 0x7bf40b7cUL, 0xe29b9f7eUL, 0x66be750cUL,
- 0xc2f36636UL, 0x7a7051afUL, 0x4e5f2e1aUL, 0x41dc4820UL, 0x29580667UL, 0xe89a7a8eUL, 0xc04389d6UL, 0x95ce3cefUL,
- 0xcd6ea225UL, 0xb4359f9cUL, 0xfb7b2336UL, 0x8deafe5bUL, 0x39baf1bUL, 0x8e6bc240UL, 0xefdecaddUL, 0x4c2c2613UL,
- 0x53b012b9UL, 0xcede68a7UL, 0x451b7bb7UL, 0x5e98c234UL, 0x5a7cd5a9UL, 0x58ebe01dUL, 0x21c1b54UL, 0xcb955038UL,
- 0xf1d900afUL, 0x27f21d5cUL, 0x866b261UL, 0x668dbb8eUL, 0x2f364edaUL, 0x7084d407UL, 0x93c73b58UL, 0x4a9b757cUL,
- 0xafed90faUL, 0x78435021UL, 0x6740ac6bUL, 0x4419400dUL, 0x18ff90f6UL, 0x6cfa7517UL, 0xc73a3adaUL, 0xea1cb71fUL,
- 0x81b81a71UL, 0x10dc43d3UL, 0x425af552UL, 0x28ab2d5UL, 0xb858da15UL, 0xe8856607UL, 0xad21d197UL, 0xaaf1c7f8UL,
- 0xd672d182UL, 0x7f599e1bUL, 0x9bad8a39UL, 0x45af4e93UL, 0x9c427f74UL, 0xab215c00UL, 0x715165efUL, 0x5e1073a1UL,
- 0x39996b97UL, 0x2b836e0bUL, 0x428d69f0UL, 0xaf94e4acUL, 0x21e2d656UL, 0x5169e9a6UL, 0x1742c261UL, 0xaca31e79UL,
- 0x5f92a2a0UL, 0xe3cc0566UL, 0x6270f866UL, 0xdcdd656eUL, 0x3e92239eUL, 0xbf5d4265UL, 0xf74203d1UL, 0xae3ba6c9UL,
- 0x3730ebafUL, 0xa04f0b32UL, 0xe9befb9cUL, 0xcd182d78UL, 0x6797befaUL, 0xb0134b6bUL, 0x83711296UL, 0x77ef757cUL,
- 0xe7da2f77UL, 0xda2b6abfUL, 0x6431c325UL, 0x18d413b9UL, 0x417d1645UL, 0x36736071UL, 0xad4a68d8UL, 0x3ea1ddc1UL,
- 0xa9bb70d6UL, 0x7cbe1751UL, 0x999e18c6UL, 0x4e60d8f0UL, 0xee8d1beeUL, 0xba93eed4UL, 0x5af2d6ffUL, 0xf32c904eUL,
- 0xe32cd3b8UL, 0xad92a9d9UL, 0x5dcc675aUL, 0x3330648dUL, 0xc52c13c2UL, 0x2dd57b57UL, 0xafca56afUL, 0x7afbca0aUL,
- 0x956612d2UL, 0x3fc9e113UL, 0x8cafa110UL, 0x652f2372UL, 0x84a7eeb8UL, 0x906aad09UL, 0x5cf0ad47UL, 0xb8b649f0UL,
- 0x1da2c07aUL, 0xbca302cfUL, 0x2a9c3db4UL, 0x603bc314UL, 0x47962a94UL, 0x85cd8051UL, 0x428e0edUL, 0x69f1a37aUL,
- 0x34b7f54fUL, 0x1e23307cUL, 0xbc2ca6cdUL, 0x44e87faUL, 0xb5c1376dUL, 0x54e71c2eUL, 0xf6be46f3UL, 0x27631590UL,
- 0x2ffa7abeUL, 0x22cd32b1UL, 0xd48576e4UL, 0x8178cd33UL, 0x3d50f56bUL, 0xed58e7acUL, 0x9467bb74UL, 0x8b2104daUL,
- 0xdf72b5feUL, 0x612279ddUL, 0x6397fe6bUL, 0x7a2f9931UL, 0xc9531793UL, 0xa09bcf9UL, 0x3d029151UL, 0x4b2455bcUL,
- 0xb6f9b134UL, 0xe033ce86UL, 0xa51ccedeUL, 0xf50c3b61UL, 0x328bfba7UL, 0x2cfb7fb5UL, 0x49509779UL, 0x3ce0ffb8UL,
- 0x241034d9UL, 0x325a5d9fUL, 0xd6dde459UL, 0xdba25998UL, 0xdecf5cd7UL, 0xe77e0215UL, 0xfff8e0c5UL, 0x8309856cUL,
- 0x4ff5995dUL, 0x590f9c4fUL, 0x610ce255UL, 0xf69a43b6UL, 0x644347dbUL, 0x7cfa0075UL, 0x54e9326cUL, 0x27d6f783UL,
- 0xfdea1fa1UL, 0x741b6e03UL, 0xf8b74ae1UL, 0x4bb8d889UL, 0x60fff5e3UL, 0xe939610eUL, 0x599c5517UL, 0x4d8f6246UL,
- 0x739c123UL, 0xc3fd2ad0UL, 0x1e99a208UL, 0x7489ac20UL, 0x7cca0733UL, 0x709fd440UL, 0x88d02a7eUL, 0x24de0dc9UL,
- 0xd67caef3UL, 0xfda3977UL, 0x7e9fc7f8UL, 0xd34ce612UL, 0x41b5880bUL, 0x35b55ab5UL, 0x354a8da8UL, 0x65f02f42UL,
- 0x4278c2dfUL, 0x7611d65cUL, 0x1679cb0eUL, 0x7c7fe959UL, 0x6c82c7bUL, 0xaba59ac9UL, 0x43ceca63UL, 0x36a0c47cUL,
- 0xb82205adUL, 0x932e68a4UL, 0x87cd3c32UL, 0x1c20a82aUL, 0x60f56c28UL, 0xe1351b3eUL, 0x1acfcaadUL, 0x528740d2UL,
- 0xa82d164eUL, 0x17afdca4UL, 0x78f7685fUL, 0x96d09294UL, 0x67767c70UL, 0x2882456dUL, 0x6d6b092aUL, 0xd253eaaaUL,
- 0x2814d1e6UL, 0xd4df8395UL, 0x8ddf990eUL, 0x4200e051UL, 0xe3118992UL, 0xa67fcf84UL, 0xa972b653UL, 0x7fab7a9bUL,
- 0xc8080114UL, 0xd268ea66UL, 0xd84848f4UL, 0x83d908efUL, 0xda81ee93UL, 0xb9113bfdUL, 0xd1c78912UL, 0x80896bacUL,
- 0x4af284d3UL, 0x855165bdUL, 0xac362fffUL, 0x754ea59aUL, 0x94ad4d7aUL, 0xc7424b7eUL, 0xe918bdb9UL, 0xbd99dffUL,
- 0xdd621fe3UL, 0x404c6039UL, 0xab21c9baUL, 0x7f66d036UL, 0xde9364cfUL, 0x928fd2d1UL, 0x5efb9ecdUL, 0x212c7f83UL,
- 0x7171800eUL, 0x69c61a22UL, 0x5a07dee8UL, 0x85463477UL, 0x70869cc6UL, 0x5402c6e5UL, 0x5f9f84dcUL, 0xdb0e971cUL,
- 0xb7b6759bUL, 0x6ba9b9f3UL, 0xda28aa70UL, 0xf27d6361UL, 0xb63270c3UL, 0x8309cc2UL, 0x35723b1bUL, 0x6fcd1ab2UL,
- 0xfd9932b5UL, 0xed21a510UL, 0xb229bbd4UL, 0xeba79ca3UL, 0x2f1f13b8UL, 0xf28e951dUL, 0x5963a71eUL, 0x67098dc7UL,
- 0xe0f1e46fUL, 0x454fd7c8UL, 0xe38ac713UL, 0x4da8ca24UL, 0xbd039ed5UL, 0x753fc81bUL, 0x8387fe39UL, 0x4761f8ecUL,
- 0xdd0a34cUL, 0xd54441adUL, 0xd59c222dUL, 0x95cb4fdeUL, 0x3cf89ddcUL, 0x2f4dfe21UL, 0xfba2a7f4UL, 0x2e76cda4UL,
- 0x87ca0ae6UL, 0xdd5eb257UL, 0x6c01abe5UL, 0xa02cf62bUL, 0x433a4fdbUL, 0x55c75fc9UL, 0x4b9229a1UL, 0xe0ddc79fUL,
- 0x930fc4dcUL, 0xe6bb91eaUL, 0xae4f1c20UL, 0xbdc16175UL, 0x2882d83dUL, 0xbf379195UL, 0xaa46cea3UL, 0xe20efd4eUL,
- 0x479e0831UL, 0x7987a81eUL, 0x3e5eabfUL, 0xb6328a48UL, 0x1a16461fUL, 0x708bcea8UL, 0x1ac7691cUL, 0x79106b70UL,
- 0xa0935dd3UL, 0x88dac612UL, 0x5e012c13UL, 0x6e97208bUL, 0x160c41e3UL, 0x3ffe263UL, 0x56033cc3UL, 0x55f7d6d2UL,
- 0x57dbcb74UL, 0x222fc20fUL, 0x32010671UL, 0x5c1876bcUL, 0xe1025aa0UL, 0x66854edbUL, 0x8ea7f13dUL, 0xb66f66e2UL,
- 0xe885e88aUL, 0x9195af86UL, 0x74f3cc0dUL, 0x60f5c5UL, 0x7c1852d3UL, 0xfbac2ebUL, 0x89577523UL, 0x2afca793UL,
- 0x608b5597UL, 0xa6adc8c6UL, 0x72a8b6beUL, 0xdecc4bd6UL, 0x20353488UL, 0x243b7f7aUL, 0x2ac12da4UL, 0xb6d61f6cUL,
- 0xeb72a994UL, 0x2abbcec0UL, 0xb621f832UL, 0x4d744771UL, 0xb074dfa6UL, 0x6a9e4997UL, 0xb5631be6UL, 0x73865d83UL,
- 0xe6e6eec2UL, 0xeebe530fUL, 0x715de2e8UL, 0xbf4578cbUL, 0x46482607UL, 0x8e02d876UL, 0xfe74db2bUL, 0xda99bdfeUL,
- 0xc31a37c7UL, 0x7d3c0e7UL, 0xb1fc4283UL, 0x542e14d3UL, 0x4c8f6cdaUL, 0xeae5cca8UL, 0xd3f52d57UL, 0x209fb288UL,
- 0xfc7ef795UL, 0xabe96c8bUL, 0x1edf3969UL, 0xa375c0f3UL, 0xca14dc3fUL, 0x6907f660UL, 0xd44da8fUL, 0x47d9f797UL,
- 0xd290e8a6UL, 0xbc3cd5b6UL, 0xfa589c4bUL, 0xbb05e9aeUL, 0xf6ea877eUL, 0x33b7ee2dUL, 0x1fabd978UL, 0x829e18d4UL,
- 0xf6d07947UL, 0xd6753c37UL, 0x180c3e2eUL, 0xce8c90ccUL, 0x63f86bceUL, 0x6754e31UL, 0x2ec402b0UL, 0xb824cc74UL,
- 0x1fb25dc1UL, 0xe7605689UL, 0xe34f2233UL, 0xcb7b96e9UL, 0xf69529f5UL, 0x656d2fbdUL, 0x1767831dUL, 0x10c240e4UL,
- 0x97938aceUL, 0xb204957dUL, 0xd60b3714UL, 0xc32bcf3eUL, 0x7ec628c9UL, 0xfbdc31edUL, 0xd083a21dUL, 0x65f78fdfUL,
- 0x81a73652UL, 0xefe52dbUL, 0x748b8192UL, 0x255e282aUL, 0x9ea6327dUL, 0xdda8ffd5UL, 0xae7cc6dcUL, 0xfc1e540UL,
- 0xcaaccde1UL, 0x26556526UL, 0xd068c63fUL, 0x7449ff8eUL, 0x448a0ff0UL, 0x637fc619UL, 0xd640d0c9UL, 0x26c2690aUL,
- 0x217039b0UL, 0xa0043006UL, 0x33ce2686UL, 0x9f4ddd90UL, 0xa5a5c29cUL, 0x72bfa77cUL, 0x19f87181UL, 0x74adcda8UL,
- 0xa55c4160UL, 0x8097b167UL, 0x16153a50UL, 0x2bd813a5UL, 0x7541ade5UL, 0x6fa1cbadUL, 0xfe3c1c5cUL, 0x51b4e083UL,
- 0x5ac38f5cUL, 0xeda07f34UL, 0xdce02e66UL, 0xffcdb66UL, 0xf33d2151UL, 0x25d7a070UL, 0xb7487c5cUL, 0xf15d8623UL,
- 0xecc3855cUL, 0x22276bf7UL, 0x39fe3044UL, 0x954919d4UL, 0x93738898UL, 0x835c671fUL, 0xc83599c4UL, 0x1eb53d13UL,
- 0x5095415aUL, 0xedad0aadUL, 0x33b6dc08UL, 0xa5763e9aUL, 0xfc80ec63UL, 0x891c883dUL, 0xecc12d3eUL, 0x38ac56eeUL,
- 0xba2f511UL, 0xae346456UL, 0x5d65138eUL, 0xf5ebcda3UL, 0xb0543f30UL, 0x81c76818UL, 0x9b2022daUL, 0x102bb75UL,
- 0x57c7157UL, 0xf63ba0a0UL, 0x44567a92UL, 0x788653b3UL, 0x3fbba190UL, 0x99b58f05UL, 0x5c6d3d7cUL, 0xbbff9b6UL,
- 0x709d2714UL, 0x68e360f9UL, 0xf12c2ecbUL, 0x749c7312UL, 0xcaba57aUL, 0xacbc41c9UL, 0xf779ea6UL, 0x3ecba67eUL,
- 0x363af303UL, 0x3746f974UL, 0x3cee9873UL, 0x149cd280UL, 0x86d65468UL, 0x3d1165bUL, 0x222a8fa1UL, 0x9f4d5133UL,
- 0xc6677ac9UL, 0x2237f6c5UL, 0x81d8c39dUL, 0x953592adUL, 0xe5ac19ffUL, 0xea7dfe8bUL, 0x740cb90eUL, 0x94d984beUL,
- 0xb0b804d6UL, 0xaa73a14UL, 0xb2bf010bUL, 0x98c13770UL, 0x81842794UL, 0x2ad39186UL, 0x4c0ccdfUL, 0x4dc698bdUL,
- 0xcd48e96eUL, 0x41dda96fUL, 0xa682c024UL, 0xb45dee08UL, 0xe106f721UL, 0xf24cd49fUL, 0xb9dc2a50UL, 0xae7d961fUL,
- 0x8d95bd0bUL, 0xd1b3b139UL, 0x2c063c1eUL, 0xbd6a9e50UL, 0xc9d0b9edUL, 0xd774db3aUL, 0x5d369a0eUL, 0x61baffffUL,
- 0xf8656629UL, 0xb754da05UL, 0x5ea875b5UL, 0x5ff1ca84UL, 0x7e4a506bUL, 0x54930790UL, 0xca3a740dUL, 0x125380cdUL,
- 0x9879e8a6UL, 0x6449fc95UL, 0x3ef92263UL, 0xab1f0c47UL, 0xdd365da5UL, 0xe4894f9dUL, 0x216c978aUL, 0x2c9a0068UL,
- 0xbc9a18fcUL, 0x645a5f5dUL, 0xe9e0f512UL, 0xeacbc2feUL, 0x410906e7UL, 0x6b9b5136UL, 0xa21b447aUL, 0x9b223da7UL,
- 0x9ebfb3caUL, 0x34e87e06UL, 0xbfa4376aUL, 0x6789f285UL, 0xc1fe481bUL, 0x62c2c7UL, 0x83da22b5UL, 0x3798c406UL,
- 0x58799493UL, 0x1bbd7405UL, 0x45e89648UL, 0xdf0df5bbUL, 0xf46c0737UL, 0x6152f725UL, 0xab95f6e1UL, 0x31220d4bUL,
- 0xa499ff41UL, 0xb9b973b4UL, 0xa3ee4e05UL, 0x802701e8UL, 0xe81b4897UL, 0x3b3979d7UL, 0xf40dd4c5UL, 0x8ad509d0UL,
- 0x7cd7ba2fUL, 0xde345566UL, 0xf95b5b67UL, 0xfc8f168bUL, 0x4ee8da88UL, 0xc9131c8dUL, 0x5610ad2aUL, 0x35c2c5a2UL,
- 0x506415aUL, 0xea05eb9fUL, 0x7c8bf39cUL, 0x3c4cfaf4UL, 0x870c678cUL, 0x1f682ba8UL, 0x4e5c03ddUL, 0x576e9ceeUL,
- 0x93ca05b5UL, 0xfb9401a9UL, 0x2f80db5dUL, 0xe1261781UL, 0xa37a69aaUL, 0xa09f9f14UL, 0xcc7a5862UL, 0x7eb14b37UL,
- 0x12eeb4bdUL, 0xde87218dUL, 0x8bbc000UL, 0x67fb11b4UL, 0xaf1cdebaUL, 0xd3930044UL, 0xf4715446UL, 0x5b83599eUL,
- 0xe0400d7aUL, 0xe5914e9fUL, 0x3da543d2UL, 0x142d1015UL, 0x62a4900aUL, 0x1d39b8adUL, 0xdfd4fc18UL, 0x9a63dab1UL,
- 0x120823d6UL, 0xc58b8efeUL, 0x6254aec4UL, 0x44faa75bUL, 0xfb2863b9UL, 0x69a725f8UL, 0x2846dfeeUL, 0x3b35cb33UL,
- 0x3060aa7aUL, 0xc59bedd7UL, 0x81299f31UL, 0xfd5af91UL, 0x60f95479UL, 0x429dc092UL, 0x2dc573b0UL, 0x54273525UL,
- 0xb7133b2cUL, 0x797b487fUL, 0x1865dc5dUL, 0xbd362e0UL, 0x3daefaafUL, 0x3920c601UL, 0xce430b81UL, 0x276a8692UL,
- 0x733d708fUL, 0x9d8b70f4UL, 0x54c5ce1aUL, 0x8cc71116UL, 0x2eeca598UL, 0x78162797UL, 0xbadf5c96UL, 0xa9298d26UL,
- 0xfec50e62UL, 0xb8df6af9UL, 0xdecaa49bUL, 0x63ec0e4eUL, 0x721cfc70UL, 0xcc2c0fdeUL, 0xc6a74b93UL, 0x5db285bdUL,
- 0x7265c802UL, 0x18fee156UL, 0xff8a7a3fUL, 0x732ae651UL, 0x66748fbUL, 0x2cc4e995UL, 0x137dd7b7UL, 0x8fafe652UL,
- 0x2e409b75UL, 0x72b5024dUL, 0x455007ceUL, 0xc2fc438eUL, 0xd331be09UL, 0xeac57ca8UL, 0xc2f7eddUL, 0x840f0523UL,
- 0xbe0a2dd3UL, 0xda0a70e2UL, 0xde94ff73UL, 0x8a0114f8UL, 0xf35e166dUL, 0x1813da2bUL, 0x811e632eUL, 0x1243e4a4UL,
- 0x50042255UL, 0xe0e80b59UL, 0xfeca8180UL, 0x9854bd9fUL, 0xe4a7e012UL, 0x62529105UL, 0x22c56e75UL, 0x247c894eUL,
- 0xfd1776eeUL, 0x2ec853c9UL, 0x24a6af12UL, 0xcc9fa34cUL, 0xaf633832UL, 0x2d7c6d1fUL, 0xc70fa51fUL, 0xd648ec3eUL,
- 0x42f53091UL, 0x27513b3bUL, 0x7da79a33UL, 0xf8acebf4UL, 0x84c78412UL, 0xfb366eaaUL, 0x71230574UL, 0xd0e87f80UL,
- 0x8fd2d273UL, 0xf6c0f8b0UL, 0x8da7f7f2UL, 0xb8a83033UL, 0x6ee9e4a1UL, 0xefdc7cc0UL, 0xe64df11dUL, 0xde42070fUL,
- 0xb43b83f3UL, 0x5535afffUL, 0x9c8b5ecdUL, 0xa28d4982UL, 0x36daf679UL, 0x6adbf319UL, 0x24b0ad3UL, 0xb5b903f1UL,
- 0x1b36d3b0UL, 0x46085ae5UL, 0xc48569b7UL, 0x2b97110eUL, 0x37a9b414UL, 0x87bb5051UL, 0x2309896bUL, 0x9670c2c7UL,
- 0x22145059UL, 0xcecb5f5eUL, 0xb3859660UL, 0x52c6fb75UL, 0xe5959600UL, 0xea40503UL, 0xc620e080UL, 0x83756f1cUL,
- 0xc17fd371UL, 0x3d7b9e9UL, 0x61a23ffcUL, 0x37b369c1UL, 0x2333a648UL, 0xefcf9a6aUL, 0x48afb520UL, 0x1011e36cUL,
- 0x40c0c130UL, 0x6920cfceUL, 0xc0ff1620UL, 0x9d1f765eUL, 0x411742eUL, 0x42889852UL, 0x3c1407c1UL, 0xa941ab26UL,
- 0xb9c55ba2UL, 0xdb429aa2UL, 0x4d99366eUL, 0x101779d3UL, 0x9a3f7115UL, 0x35ee2115UL, 0xa3ee8488UL, 0x84ad6711UL,
- 0xd36d18cdUL, 0xd7e91576UL, 0xa0cae92fUL, 0x8d870122UL, 0x5272a4a3UL, 0xdd46caabUL, 0x9c7ebcdcUL, 0x75fb719fUL,
- 0xc26541bUL, 0x8541c96UL, 0xca2279d2UL, 0x3467d72eUL, 0xd66ba24eUL, 0x9d4190a7UL, 0xb682615eUL, 0x7c3c95adUL,
- 0xa2e9fba5UL, 0x4cd86482UL, 0xa3790f73UL, 0xbdb0dc98UL, 0x97bb5893UL, 0xdcf80d67UL, 0xb5f3c389UL, 0xa579cd90UL,
- 0x6714a798UL, 0x6743719fUL, 0x35534958UL, 0x67a2f2a7UL, 0x5155bde4UL, 0x4cd16488UL, 0x9538995aUL, 0xe5b222fdUL,
- 0xa2e1da44UL, 0x24439556UL, 0xaea4a1d7UL, 0x6a3d2b83UL, 0x186ffbf8UL, 0x2e9ac7b7UL, 0x825c16e2UL, 0xa4685d47UL,
- 0x582f02e1UL, 0xf24f9078UL, 0xfdb749ccUL, 0xcfefa7bUL, 0xba25450bUL, 0xa9b21bb6UL, 0x984d697aUL, 0x79ace07UL,
- 0xfc6747f1UL, 0x292fcc78UL, 0xb7cbefceUL, 0xaaf9c719UL, 0xafb63127UL, 0x107b14ccUL, 0xf8ee5e0UL, 0x58b2ca07UL,
- 0x5a90112fUL, 0x119fbed1UL, 0xca7fbb8bUL, 0x70418516UL, 0x1cb7bd0bUL, 0x11712802UL, 0xb2facdbfUL, 0xb5777724UL,
- 0xfcd7a072UL, 0x8e2ccd0fUL, 0x5548d0c6UL, 0xf42a44e6UL, 0x37308af4UL, 0xab7af62bUL, 0xbaf44540UL, 0x91ccbef7UL,
- 0x9c1920a5UL, 0xf342da4fUL, 0x93edbcfcUL, 0xfa61c0acUL, 0x86d2467cUL, 0x71554d7bUL, 0xb99e7cc1UL, 0xd1ed1fd9UL,
- 0x5ba7832UL, 0x977e87c2UL, 0x17066c0dUL, 0xf3fb1b8bUL, 0x8160cd89UL, 0xc6f7610eUL, 0x29f9ac2UL, 0x68d78dcfUL,
- 0x7243d4dcUL, 0xd08b8a54UL, 0xae41312bUL, 0x54258b4fUL, 0x1d7f9abcUL, 0x7ba33cd3UL, 0x386f82a3UL, 0xac38ad24UL,
- 0x3baf6903UL, 0x395aad60UL, 0xb417a1bdUL, 0xf83a174UL, 0xbaabf6bcUL, 0x527486e8UL, 0x49841f63UL, 0xd9b2ebf3UL,
- 0xea1ebb7dUL, 0x5238e713UL, 0xe2c1ad0cUL, 0xae9ed2f6UL, 0x57031defUL, 0x70f12e42UL, 0x51694fdeUL, 0xdb95e789UL,
- 0x71453375UL, 0x36b86324UL, 0xca006b6bUL, 0x401b281fUL, 0x4579f212UL, 0x96b318a2UL, 0xe3e4cc9aUL, 0x6c5445a8UL,
- 0x1bcbfbbdUL, 0x72e2c86cUL, 0x314bcac3UL, 0x4d74858eUL, 0xcab61313UL, 0x5d80d412UL, 0x34227181UL, 0xac8bf826UL,
- 0x275749a4UL, 0x9e549223UL, 0x608354b4UL, 0xbf1a9fbdUL, 0xec1cf150UL, 0x19209a15UL, 0xee1c4fe7UL, 0xf55da987UL,
- 0xabc66d84UL, 0x8a75cc03UL, 0x424c1d67UL, 0x1f0b0207UL, 0x6d9adf8fUL, 0xf16a4552UL, 0x73bb89b7UL, 0xb7091fb8UL,
- 0xe8098073UL, 0x434f1ab4UL, 0xe7662f51UL, 0x68b13b1UL, 0x5eb46889UL, 0xa27e94bbUL, 0x76296165UL, 0xcb11b7ddUL,
- 0xc098652dUL, 0x4d614986UL, 0xfb160b65UL, 0x5006a5ceUL, 0xc6c0d3d7UL, 0xc36ace0dUL, 0x980b6977UL, 0x305e994bUL,
- 0x9caa6662UL, 0xf7125645UL, 0xfc05d6a5UL, 0x811f74a4UL, 0xf28620d8UL, 0x7da2f34UL, 0xb0366441UL, 0x23a3740cUL,
- 0x7a9f2241UL, 0x7f754828UL, 0x80fa1726UL, 0x752308e9UL, 0xe5159cc5UL, 0x28391fd2UL, 0x63a51fd6UL, 0x5e4bdc23UL,
- 0x3ef3d852UL, 0xbc7f8815UL, 0xe026090fUL, 0x5f1b5ad9UL, 0xc73a0942UL, 0xb2c56de7UL, 0x7ddd61ebUL, 0xb24ebb4eUL,
- 0x6fe68878UL, 0x11d516daUL, 0xf7c5afdUL, 0xb8932395UL, 0x5781ef4cUL, 0x7de3a76fUL, 0xc345fe38UL, 0xa0085c88UL,
- 0x8d648ad8UL, 0x3335624aUL, 0x6eea9df5UL, 0x93339ea0UL, 0x978d7286UL, 0x2b1082c2UL, 0xf239eb07UL, 0x46e1d020UL,
- 0x5d92d07eUL, 0xcd9b3e97UL, 0x357998e4UL, 0x389d1e45UL, 0x9502bd30UL, 0xb80d8e92UL, 0x5d05c97cUL, 0x528b11d2UL,
- 0xd3250751UL, 0x99cfcd1eUL, 0xfe9e5f6cUL, 0x6f304821UL, 0xee99e259UL, 0x6aa1f9f7UL, 0x7f189484UL, 0x4cc0d517UL,
- 0x20e09c30UL, 0xa7f6ae81UL, 0xbd5b7c1fUL, 0xc465d02bUL, 0x1eaac7b8UL, 0x2d13b545UL, 0x52deec5eUL, 0x44de461UL,
- 0xc926b5aUL, 0x17a35bfaUL, 0xfb0cee2cUL, 0x7d4647f2UL, 0x601c4b26UL, 0xb9a6a6b5UL, 0xbc6b8be8UL, 0x4c8bb442UL,
- 0xaf778feeUL, 0x1cc5d5c8UL, 0x8e803b76UL, 0x70b814fUL, 0xb74cce80UL, 0x4463da5dUL, 0xcd5b3a6aUL, 0x2144b2e8UL,
- 0xb9c6be05UL, 0x1a2a4a3dUL, 0x9a172ebfUL, 0x2af379c7UL, 0xfc226d6eUL, 0x1ef858dbUL, 0xfa86a6d2UL, 0x69a4e201UL,
- 0xbe488a9bUL, 0xf67d007bUL, 0x20a3742bUL, 0x3ef55dd1UL, 0xd48eb943UL, 0x553c7f67UL, 0x2bf9709aUL, 0x9717432fUL,
- 0xf7d3ab49UL, 0xfba3d8ecUL, 0x3089ef09UL, 0x88d19f4UL, 0xd011fc73UL, 0x11d1941cUL, 0x8eb99552UL, 0x9056e6ebUL,
- 0xf10bda5bUL, 0xeb248deeUL, 0x1e3ff0c5UL, 0x247d2c4UL, 0x5af6aeddUL, 0xac1783cUL, 0xc4aa0619UL, 0xea8d6052UL,
- 0xb5f28100UL, 0xeb981710UL, 0x380dc44eUL, 0x2ece6829UL, 0xe54afbbfUL, 0x405f3da1UL, 0x4e5f47fbUL, 0x4b4a916bUL,
- 0xbe98559aUL, 0x51969ba8UL, 0xf1bf563bUL, 0x23c0dae2UL, 0xe35326bcUL, 0x47a7973fUL, 0x10386e66UL, 0xcf8c62d2UL,
- 0x522c2ecaUL, 0x49ec3a99UL, 0x3fc47a69UL, 0x154ade3dUL, 0x14553505UL, 0xa60c8b56UL, 0x1bf25a66UL, 0xe5aaa5d6UL,
- 0x3e78560UL, 0x9164b2e0UL, 0xa3dcbf93UL, 0xd5f9206aUL, 0x4e14054UL, 0xedc9f24dUL, 0xad36fbacUL, 0xb81955dUL,
- 0x8a8a461bUL, 0x4664c86fUL, 0x880169e0UL, 0x7743af38UL, 0x583d8d3fUL, 0x462c76fUL, 0x4b9b3e55UL, 0xd396d76UL,
- 0x47556139UL, 0xce6e442aUL, 0x39915985UL, 0xa817e85aUL, 0x1a7384e5UL, 0x13c2a4b4UL, 0xda6ca730UL, 0xa79a741dUL,
- 0x3b839e49UL, 0x68f843e0UL, 0xe2f87352UL, 0x3272797bUL, 0xb861bbefUL, 0x13da6ebcUL, 0x45153ca0UL, 0x8390d04UL,
- 0x8548e387UL, 0x3c8df2b9UL, 0xcfaa5cfeUL, 0x997af813UL, 0xc116af70UL, 0xb5ca5fd7UL, 0x157372e2UL, 0x6a6f8bd8UL,
- 0x172daa2eUL, 0x28d58d87UL, 0x549902cfUL, 0xcbbd869UL, 0x61a113ebUL, 0x26b0e8a7UL, 0xa8d979eeUL, 0x6139d0UL,
- 0x3189cf01UL, 0x569a65b7UL, 0xf35463caUL, 0xd0a3e788UL, 0xd7efd801UL, 0x6d2d2a4eUL, 0xb17b5dc4UL, 0xcb473b24UL,
- 0x97b4633fUL, 0x1638289eUL, 0x5267b7d3UL, 0xf08415c7UL, 0xf4b36e10UL, 0xbfbba539UL, 0x80a8559UL, 0xe8609655UL,
- 0xc2d4ede1UL, 0x4aebee51UL, 0x6a494f2fUL, 0xaf13de5aUL, 0x29b1a9ffUL, 0xff62d378UL, 0xf9010faUL, 0x7848dc1dUL,
- 0x302b003UL, 0xac2a1177UL, 0x11571a5dUL, 0xc4bf65cfUL, 0x19914b7dUL, 0xdb8b5909UL, 0x4b6248bfUL, 0x548a22a3UL,
- 0xc16ff0ceUL, 0xb479845dUL, 0x97eca628UL, 0x60ab539aUL, 0xa671bfd1UL, 0xe030b931UL, 0x7b94bfd7UL, 0xd4c976c5UL,
- 0xf5af4dcUL, 0x96b37d22UL, 0x23c2a67dUL, 0xf8b269e2UL, 0x5f547f18UL, 0x48621be9UL, 0xc6bb5cbbUL, 0x54d0847aUL,
- 0x17ded5d4UL, 0x6bd84253UL, 0x9550ec0cUL, 0x341b896fUL, 0x5ad3be3eUL, 0x2564ee82UL, 0x17bfdbfdUL, 0x1aba1151UL,
- 0x1197e74bUL, 0xdaf1d326UL, 0xd37cfae4UL, 0x96c49323UL, 0xd52c0190UL, 0x1478c332UL, 0xdb7e9fc0UL, 0x7512fe14UL,
- 0x50d9d009UL, 0x5eaa9097UL, 0x89c3af89UL, 0x5d7f0e84UL, 0x157e3c24UL, 0x4ae24286UL, 0x7092c79dUL, 0x1133a3daUL,
- 0x8b8b994bUL, 0x1b1fa21UL, 0xddedef1eUL, 0x87db25c7UL, 0x1207604UL, 0x1f766e98UL, 0x7665ac4aUL, 0x1e5f7576UL,
- 0xc32896f5UL, 0xb9e1d33bUL, 0x737e7a4dUL, 0x3d388bcbUL, 0x1c35da13UL, 0x561776a1UL, 0xfbb4fc4cUL, 0xaa12e0d9UL,
- 0x28848c10UL, 0x1f6f61ffUL, 0xd3a6839dUL, 0xdf5c5c6aUL, 0xda6c2622UL, 0x8db1339UL, 0xe0699997UL, 0xca49c62UL,
- 0xc2ee89c9UL, 0x58cf06a4UL, 0x5d35626fUL, 0xd225e0a4UL, 0xd66b5d85UL, 0xc9f43b69UL, 0xfc055883UL, 0x14ea28c8UL,
- 0xccd3e8baUL, 0x860689fdUL, 0xe1ce22b9UL, 0x29baff3fUL, 0xcdc92397UL, 0xc4e068c6UL, 0xea00ec72UL, 0x40a0c6fdUL,
- 0x27500f7fUL, 0x9cff765bUL, 0x438ec076UL, 0x3e8e1783UL, 0xb5db25f8UL, 0x7c6f7effUL, 0xfdf81b75UL, 0x770b4d9bUL,
- 0xed40bd21UL, 0x523784bcUL, 0xb0ddd560UL, 0x4df275e7UL, 0xefd42b16UL, 0x2295652UL, 0xed30c5b6UL, 0x8983358fUL,
- 0xb8a6196UL, 0x39333d72UL, 0xa5e25bbcUL, 0x67e08c6cUL, 0x2cb97ebcUL, 0xf77655a6UL, 0xd8c98995UL, 0x659d2ccdUL,
- 0xca6340a4UL, 0x7afccb5bUL, 0x1cf1d904UL, 0xf4c09ea9UL, 0xffb602f6UL, 0x4a1599c7UL, 0x6c90eb9dUL, 0xb9ffc14bUL,
- 0xefbd690fUL, 0x45578fb1UL, 0x44fb970aUL, 0xd3db64bdUL, 0x15276d39UL, 0x38313b9fUL, 0xb1a91be4UL, 0x2541b1dUL,
- 0xa6e6150fUL, 0x44f119d0UL, 0x5c47d459UL, 0xffcab51bUL, 0x28f6c062UL, 0x44649d9eUL, 0x72ae9f6eUL, 0x3af5fbd4UL,
- 0xb3db454fUL, 0x17573fc2UL, 0xfdb681b8UL, 0x622a81e8UL, 0x2ffaa880UL, 0x4dbf5493UL, 0x807f0d3bUL, 0xa9189c16UL,
- 0x74ba70a9UL, 0x4cf9e7ebUL, 0xdaadd769UL, 0xc7aab1c2UL, 0x8e2308e9UL, 0x412f417bUL, 0x267c8492UL, 0xcdb1d51cUL,
- 0x161ff97UL, 0xed04f9abUL, 0x25df746eUL, 0x97d81b01UL, 0xc19c3f32UL, 0x4936a17UL, 0xbb908180UL, 0x73d9a6c8UL,
- 0x6099162bUL, 0xbd3b1dcfUL, 0xd0dde2adUL, 0x27e6b144UL, 0xf61180aUL, 0xabcdd87UL, 0xfc626fa7UL, 0x3c3e734UL,
- 0xde54a531UL, 0x5968813bUL, 0x2969be00UL, 0x4b5c5d3fUL, 0x71efc760UL, 0x1a658079UL, 0x17c7320fUL, 0xa8602bfeUL,
- 0xb446d34cUL, 0x5b2a2e11UL, 0xe3abefb0UL, 0x88e16573UL, 0xb782a3caUL, 0x7f708065UL, 0x5a75be5UL, 0xf2bb73a3UL,
- 0x392877f6UL, 0x1433c24aUL, 0x5f8f62b2UL, 0x6d65b422UL, 0x8ffbd878UL, 0x8cd1e46fUL, 0x3490304aUL, 0x8c35a6d9UL,
- 0x748b55f4UL, 0xe5c87e11UL, 0x87e3439dUL, 0xab80e733UL, 0xd29e71f4UL, 0x349b8d2bUL, 0x7adda4a6UL, 0x4644080cUL,
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0xae5c1b1dUL, 0x4fd1a980UL, 0xfcb63a9fUL, 0x30caa5aUL, 0x14ced05dUL, 0x410ee062UL, 0xdb65b5cUL, 0x963d5894UL,
- 0xb15ac0ebUL, 0x9b1a8630UL, 0x539fca8aUL, 0x9b1c639fUL, 0x49a7cfc5UL, 0x8f90de0eUL, 0xb2b9c8efUL, 0x193517beUL,
- 0xf21a228bUL, 0x2065d669UL, 0xf11fcf03UL, 0x3d20e930UL, 0xf1f44037UL, 0x1843948fUL, 0x727fdd47UL, 0x953f04e8UL,
- 0x10d5d709UL, 0x84099c22UL, 0xb816fa0bUL, 0x58cf3766UL, 0x41fcca43UL, 0x6e60b4d3UL, 0x11eb813eUL, 0x4d4e4881UL,
- 0x7b4d35bcUL, 0xd54b1e74UL, 0xa5518e30UL, 0x9a7dcaeUL, 0xee48fa2cUL, 0x99a1756eUL, 0x198fcb34UL, 0xd44c94c8UL,
- 0x630fd7d8UL, 0xf6c16d6fUL, 0x8b4318fdUL, 0x3be91922UL, 0x855b3f67UL, 0x163a6df4UL, 0x34eec220UL, 0x12e79bc4UL,
- 0x27c5c85aUL, 0x832d9bcbUL, 0x10e94158UL, 0x1848e533UL, 0x7b51b360UL, 0xcb155319UL, 0x98d035e2UL, 0x1ddf01a6UL,
- 0x9bb38e22UL, 0x18fd0fcbUL, 0x90e5bb39UL, 0x28f9a688UL, 0x348d5b77UL, 0xfff420c5UL, 0xb05d28b0UL, 0x4e118dcdUL,
- 0xf3b88272UL, 0x25686912UL, 0xe81752a1UL, 0x3f5b60b9UL, 0xdb959d07UL, 0x8c67cf97UL, 0x33964ea5UL, 0x9c7970ceUL,
- 0x77cccf1dUL, 0x52619bccUL, 0xc3d73359UL, 0xf231a51cUL, 0x4948e083UL, 0x42ca6bc9UL, 0xe0ca151aUL, 0x9852e556UL,
- 0xfb6fe930UL, 0x5efd6bb9UL, 0x2cc06608UL, 0x4924bcb5UL, 0x1999e283UL, 0x27fa956cUL, 0x748433e7UL, 0x9b4d42faUL,
- 0x995e2551UL, 0x31215a60UL, 0x6a330babUL, 0x16974411UL, 0x6ea58f08UL, 0x30830d0bUL, 0x235a3da9UL, 0x64106facUL,
- 0xd0e68013UL, 0x2de46377UL, 0xfbc1753dUL, 0x40a8d196UL, 0x24ef8d38UL, 0x54f517d9UL, 0xed4289e8UL, 0x2b172ac9UL,
- 0xf81c288aUL, 0x72e7b9d7UL, 0xe3fbd481UL, 0xf00c8bc9UL, 0x8abdec0UL, 0x33e091eeUL, 0x7e3d7c41UL, 0x14cce6ebUL,
- 0xe9053176UL, 0x42fe3edUL, 0x54c0782dUL, 0x7634dafaUL, 0x3374fb7UL, 0x7a09f1cbUL, 0x87925c97UL, 0xe3b03703UL,
- 0xe35accb9UL, 0x1351f200UL, 0x12ec5969UL, 0x85e35d17UL, 0x3d165701UL, 0x1a47baf5UL, 0x27f10188UL, 0xba6cae1fUL,
- 0xead273f5UL, 0xd88321daUL, 0xf4b167c6UL, 0x872e3d4aUL, 0x1bad5c44UL, 0x15e80bc0UL, 0x8a4ce9ddUL, 0xcc764330UL,
- 0x9804ca9aUL, 0xe78ee7eeUL, 0xc4955740UL, 0x5e62f75fUL, 0xce958fc3UL, 0xdc1be7fcUL, 0x8ee8e994UL, 0x40fdada6UL,
- 0x2c486457UL, 0x3d1e192aUL, 0xe3e54c87UL, 0x5e150b4eUL, 0x51e3ed62UL, 0xcc2d78eUL, 0xcb9e0963UL, 0xe5c4e4eaUL,
- 0xe86457f5UL, 0x12550aa2UL, 0x783c8229UL, 0x641a4d21UL, 0xf0948bfaUL, 0x2c8a9f31UL, 0xc9878755UL, 0xcdbcee02UL,
- 0x914d2a99UL, 0x2978ae49UL, 0x37281224UL, 0xea4e8323UL, 0xc121737cUL, 0x1792a8cbUL, 0x828ab278UL, 0x4e110fe6UL,
- 0x49854983UL, 0xe34a882UL, 0x5eb7eae2UL, 0x57ac5337UL, 0x4f2cfe8eUL, 0xe2d59a3cUL, 0x711fe2feUL, 0x7e0da884UL,
- 0x9d3bca14UL, 0xa9df81cdUL, 0xd7921260UL, 0x610f6148UL, 0x70ba963aUL, 0xb8074d5eUL, 0xcc400cdcUL, 0x9e589812UL,
- 0xfef40cefUL, 0x5c846162UL, 0xcb50360UL, 0xe397303UL, 0x18544a3UL, 0xece20b98UL, 0xdfba582cUL, 0x29a6c69bUL,
- 0x98e212d3UL, 0x258ccf5cUL, 0x9d98dbadUL, 0xfae303cUL, 0x40b4070eUL, 0x174537ffUL, 0xefb22fbdUL, 0x9195811cUL,
- 0x9f04a9ebUL, 0x641c6485UL, 0xdc917a0eUL, 0x26a5f72UL, 0x868fb45dUL, 0x46bd2dafUL, 0xfddd53efUL, 0x759b12bUL,
- 0x3ee82013UL, 0xf722cf13UL, 0x4dab59baUL, 0xc85a4480UL, 0x3246868cUL, 0x8f6cc54cUL, 0x94ccb3b6UL, 0xd01ee5e1UL,
- 0x96b858daUL, 0x96165a6UL, 0x2f9e747bUL, 0xa242f278UL, 0xfa936ab2UL, 0xdf561bUL, 0x53e1880cUL, 0xadc1f71cUL,
- 0x1052ad86UL, 0xa21d3365UL, 0x3ef778eeUL, 0xd5f9395eUL, 0x4b024970UL, 0xf5f09275UL, 0x4cba245dUL, 0x6e307f15UL,
- 0x8ff042d7UL, 0xe700b111UL, 0x14183742UL, 0x7930ac69UL, 0x64747ccUL, 0x1af41005UL, 0xbcaf971UL, 0x896c6925UL,
- 0xd81974feUL, 0xe5428e77UL, 0xc8887f61UL, 0x5db31e9dUL, 0x42f021d8UL, 0x1b857f0eUL, 0xb8c68603UL, 0xeef05da7UL,
- 0xefb64e63UL, 0x13ded47eUL, 0x839828d1UL, 0xa751ae21UL, 0xdef2f2e0UL, 0x67cc915bUL, 0xd7cf387UL, 0x43fa11c1UL,
- 0x60b1c021UL, 0xd2351175UL, 0x1eb3a5fbUL, 0x2e10dd4eUL, 0x8216f76bUL, 0xbd504545UL, 0x4a10ccb1UL, 0x6179bea9UL,
- 0x962fbee5UL, 0xb01c3b59UL, 0x37a9af49UL, 0xb9122d16UL, 0x39e02565UL, 0x4406d8b6UL, 0xdaa6c801UL, 0xe2b941daUL,
- 0xac7f213aUL, 0x347a0dbbUL, 0x502ccb92UL, 0x4ad45d2bUL, 0x4467e6aaUL, 0xb2f78641UL, 0x191bea44UL, 0x85c9d828UL,
- 0x7810ee12UL, 0xba3a9f1fUL, 0xea1b3803UL, 0x703397d8UL, 0x15200896UL, 0x107940e3UL, 0x5771df5fUL, 0x46872b9eUL,
- 0x92656a30UL, 0xdd05e362UL, 0xe47c23bdUL, 0xd5177883UL, 0x6b0bde75UL, 0x456905c7UL, 0xf81f8d45UL, 0x3d6c7647UL,
- 0x3aa3a1daUL, 0x2a56fc6cUL, 0x4531c627UL, 0x224d9935UL, 0xb2d2117UL, 0xda30bd7aUL, 0xc7032f33UL, 0xf2197ceeUL,
- 0x1fc4172eUL, 0x18be78cfUL, 0xd3de8a38UL, 0xa7f005b0UL, 0x7c03611dUL, 0x9c5d0bb2UL, 0x62e53e81UL, 0x7cda2b9dUL,
- 0xd0e2d8e2UL, 0xda7859e2UL, 0xf6256c1cUL, 0xe1d91c3UL, 0x76149ce0UL, 0xcbe3a474UL, 0x25018fe0UL, 0x78bc493aUL,
- 0x1ad190b0UL, 0xe7d13205UL, 0x3136321dUL, 0x70649429UL, 0x7d6d5defUL, 0x118986cdUL, 0x8d4f5e4dUL, 0x55451cb6UL,
- 0x2325a5e4UL, 0x45aa724dUL, 0xe86e0affUL, 0x66a373f7UL, 0xf4c8262aUL, 0x85104968UL, 0x3c9b5611UL, 0xa0699255UL,
- 0x35c36f45UL, 0xa7a638a2UL, 0x67e4c070UL, 0x7d204290UL, 0x95f15f70UL, 0x1284743eUL, 0x6ae44866UL, 0xe7dc2211UL,
- 0x46a487f3UL, 0xc0e7eb78UL, 0xcfe363fcUL, 0xf396258dUL, 0xd04bef2dUL, 0x194824b7UL, 0xb5d4c711UL, 0xc8f8bdf0UL,
- 0x794587b6UL, 0x5fc881cUL, 0xa870ecdeUL, 0x1b885be8UL, 0x6ef7eab4UL, 0xd03b460eUL, 0xc7c1c124UL, 0x19fe6c1UL,
- 0xf5ebe375UL, 0x8b6adcb6UL, 0x18985cecUL, 0x719c55c0UL, 0xd2925b2aUL, 0x6d7bd32eUL, 0xd2427a04UL, 0x380688b5UL,
- 0x4fc27240UL, 0x6413a9b0UL, 0xc687b625UL, 0x13527b57UL, 0x90665260UL, 0x6de826cfUL, 0x6e84af2eUL, 0x4f60f3e6UL,
- 0xded888f8UL, 0xaa091f8eUL, 0x86eefe5UL, 0xad5b8676UL, 0x21320520UL, 0x1fa91bb1UL, 0xa5478c7bUL, 0xfb675ab6UL,
- 0x93d28edcUL, 0xfece844fUL, 0x1e7baea9UL, 0xc0dc2cfUL, 0x35102089UL, 0xd91c26d6UL, 0xa4a2bacbUL, 0xdeb5b694UL,
- 0x54fd5631UL, 0x9eeb33c5UL, 0x65668e1UL, 0x8ffd7413UL, 0x29589001UL, 0x946679ddUL, 0xb2d666ceUL, 0xbe39361dUL,
- 0x24ef23edUL, 0xd899aaccUL, 0xc19061a6UL, 0x21d8af12UL, 0x35fd0365UL, 0x5bdae588UL, 0x66d6c04bUL, 0x75ab8acaUL,
- 0x322447aUL, 0x85da44feUL, 0xa38baa45UL, 0xc544427bUL, 0x778c182aUL, 0x3cce1ab8UL, 0x40c5ba78UL, 0x61494ce4UL,
- 0x50d9775cUL, 0x9179e6b3UL, 0x133f9a7dUL, 0xf8b1275fUL, 0x18c8dec3UL, 0xacaaf5f4UL, 0x843020bdUL, 0xdcf37e49UL,
- 0x6523ef84UL, 0xefde2e41UL, 0x9d6a88a5UL, 0x91938eb2UL, 0x4ac0c217UL, 0xc41d1351UL, 0x70459993UL, 0xaa6c2b7fUL,
- 0x69387273UL, 0x6f0cfc4bUL, 0xe8502134UL, 0xe0d57adaUL, 0xe41213bdUL, 0xd9c86854UL, 0xbed405cfUL, 0xa4708e24UL,
- 0xef3d2e21UL, 0x48eaa13fUL, 0xb37818d5UL, 0x172da332UL, 0x2f2cce2eUL, 0x2e3ff5c8UL, 0xffcdaf11UL, 0x61014330UL,
- 0x2a0f05f5UL, 0xc6a2315cUL, 0xccd93ea8UL, 0xcbe599UL, 0x83e4b64eUL, 0x920c7dbfUL, 0x2ad5fafUL, 0x86637209UL,
- 0x8775fed0UL, 0xb01a0b10UL, 0xb942408aUL, 0x73521ed6UL, 0xce0a0cbfUL, 0x443087d8UL, 0x604d7289UL, 0x444e0556UL,
- 0xb0a7d767UL, 0x7bb0161cUL, 0xc76e0237UL, 0x99ddf87eUL, 0xfb32e998UL, 0x782e15a3UL, 0xfb89da13UL, 0x74b3a6caUL,
- 0xa161bc34UL, 0x4505f2aUL, 0x622b18bdUL, 0x4fbd17abUL, 0x55058102UL, 0xa6db1287UL, 0xc50cb724UL, 0x1ea01419UL,
- 0xc9af0a20UL, 0x24cb77a6UL, 0xd066e94bUL, 0xfbda7782UL, 0x504672UL, 0xe666d93eUL, 0xf62db71eUL, 0xec89a356UL,
- 0x31c6b63cUL, 0x885b2fb8UL, 0x80cfc6cdUL, 0xcefd6ffbUL, 0x90b1dcbdUL, 0xb10a2ef0UL, 0x64b23768UL, 0x85a8789bUL,
- 0xee47b64bUL, 0x68272bd5UL, 0xeabb1d60UL, 0x5498ab6UL, 0x1e1f2ec4UL, 0x6fc9ce27UL, 0x902ab905UL, 0xdf8bb706UL,
- 0xf6b3770UL, 0x5ba64eadUL, 0xb96e3b8UL, 0xa6975f3fUL, 0xd306b644UL, 0x355b42e0UL, 0x337192feUL, 0xced4bd21UL,
- 0x10e19787UL, 0x70729d11UL, 0x6b593c6bUL, 0xef68333aUL, 0x4f0f5ed6UL, 0x1d44be37UL, 0x2aa3fa2bUL, 0x53723641UL,
- 0xdbb6055bUL, 0x33fab153UL, 0x80aae46aUL, 0xaebf3597UL, 0xa70e4105UL, 0xe3655e70UL, 0x198da9f5UL, 0xc1547c33UL,
- 0xc11c521UL, 0xa221f176UL, 0xff361568UL, 0x3f29d365UL, 0xa6b89e92UL, 0x9dd1ba65UL, 0x657ec0d3UL, 0x68bf3b0fUL,
- 0xf8c77f81UL, 0xd5305553UL, 0x90e6973eUL, 0xf88daf93UL, 0xbf083971UL, 0xd7baa83UL, 0x7bd90de5UL, 0xe40bbc5dUL,
- 0xef73b31fUL, 0x4622ac08UL, 0x5026666cUL, 0x4abaced4UL, 0x4dc3d7fdUL, 0x8f5db700UL, 0x863d4abdUL, 0x3d4a827aUL,
- 0x4d7f0b5bUL, 0xe1d5aa43UL, 0x350806acUL, 0x8d73c65eUL, 0xa3df2605UL, 0x60102518UL, 0x392d026aUL, 0x27f5c207UL,
- 0xa7fe4ebdUL, 0xf320363bUL, 0x7d88eea5UL, 0x391167f2UL, 0x6f19cffUL, 0xac246b4cUL, 0x47f71be0UL, 0x3d13320eUL,
- 0x68d313f5UL, 0x6894d358UL, 0xa18a28f7UL, 0xba9176f8UL, 0xb1499493UL, 0xb56afc5cUL, 0x35f92bc5UL, 0x1b0c009eUL,
- 0xa66936d0UL, 0x295dfc7aUL, 0x15ca2293UL, 0x9c398829UL, 0xa66f62fcUL, 0x6f348fd0UL, 0x578ab499UL, 0xc52a71fbUL,
- 0x881c088fUL, 0x1d518b58UL, 0x4a5e827dUL, 0xcacc201dUL, 0x54d343baUL, 0x75e9c3deUL, 0x8939f614UL, 0xda26ac8dUL,
- 0xbf6090dUL, 0xf38b25d0UL, 0xc0bece98UL, 0x238f61ffUL, 0x8e8f5a07UL, 0xc0cf8e60UL, 0x3d7de0efUL, 0xf5d07ce8UL,
- 0x372673d8UL, 0x9db6c787UL, 0xc015e3f8UL, 0xa731024cUL, 0x7037b5c4UL, 0x62e85aecUL, 0x39761a69UL, 0x8093a4UL,
- 0x1554f5f3UL, 0xcc21316bUL, 0xcca25b33UL, 0xa9238a6UL, 0xd52018a7UL, 0x65da77b5UL, 0xf0791ba6UL, 0x68b8396bUL,
- 0x7277fbfUL, 0xc60a1d28UL, 0x9bcd007fUL, 0x89c085d1UL, 0x90eae401UL, 0x52bad43cUL, 0x6b061837UL, 0x57ea1411UL,
- 0xd22810c3UL, 0x1522b0dfUL, 0xf1dd9d98UL, 0xa2cff1c0UL, 0x22d01631UL, 0x58c38804UL, 0x95cdb229UL, 0x23530615UL,
- 0x248e3be4UL, 0x60a08e34UL, 0x7ab5114bUL, 0x4ec8ab38UL, 0xc1e49bc5UL, 0xbedca11bUL, 0x6dbf7d58UL, 0x5ef3b49aUL,
- 0x6af30cf5UL, 0x32347d6fUL, 0x67a59ed3UL, 0x71edf0e1UL, 0x6aad84b1UL, 0x90770858UL, 0x61aeb014UL, 0x7e23f8ffUL,
- 0xa031ed91UL, 0x1c5b6c3cUL, 0x7da66137UL, 0x4ddad93cUL, 0xd18bbe29UL, 0x9376fac9UL, 0xd8f6235aUL, 0xc8ec4f90UL,
- 0x6ed64ea5UL, 0x323a5c57UL, 0xfcf924afUL, 0x511f205dUL, 0xae530cfcUL, 0xa4d79d9bUL, 0xc80edc04UL, 0xe78119b8UL,
- 0xdb1182eeUL, 0xbe7c3955UL, 0x1f718b00UL, 0xbeacd477UL, 0x7e5fa1cdUL, 0x13a4577bUL, 0x21c1a8aaUL, 0x5241dfe6UL,
- 0xd3cdd8deUL, 0x4f68efefUL, 0x91d65ee7UL, 0x8d33af8dUL, 0x2b13b0e3UL, 0x5e4dbf70UL, 0xa1859ee4UL, 0xd5bf88c0UL,
- 0x71f42233UL, 0x287733d5UL, 0x7e89a98fUL, 0x3832769eUL, 0x2ba79704UL, 0x3910d2e3UL, 0x43d9193eUL, 0x742bdf14UL,
- 0x56346056UL, 0xb96cb1f6UL, 0x7fae7295UL, 0x26be10dfUL, 0x22d768e1UL, 0x72171af5UL, 0xaed78dd8UL, 0x38ea1455UL,
- 0x9e74127fUL, 0x481b53acUL, 0x4cbfcda3UL, 0x43cdbe51UL, 0x76b5473dUL, 0xa3e405d9UL, 0x473d060cUL, 0x6499b0a8UL,
- 0x57d0c104UL, 0xa1425617UL, 0x2e1c8655UL, 0xbb1482d2UL, 0xf2985637UL, 0x189eb552UL, 0xf8b95331UL, 0xeb21280cUL,
- 0xb665394UL, 0xbd2715a5UL, 0x82cd01dcUL, 0xf73ac570UL, 0x74ac6312UL, 0x2f843a9dUL, 0x559ec9aUL, 0x192d3f18UL,
- 0xf7c32d5dUL, 0x5b50dd72UL, 0xe9ac1ad1UL, 0xf506655UL, 0xab354574UL, 0x2e1757eeUL, 0xeb048edaUL, 0xd7c37c2cUL,
- 0xd700d53fUL, 0x831cb8d1UL, 0xee17bd42UL, 0x5a36dbb7UL, 0x6784ee79UL, 0x3a25ea1cUL, 0xa1a6527UL, 0xcc155fb0UL,
- 0xe3c04b6dUL, 0x43d0e44UL, 0x348052d1UL, 0xe71b2c14UL, 0x4a454658UL, 0x11c0b41dUL, 0x4568c18fUL, 0xba10e712UL,
- 0xb516b9eeUL, 0xb65aa1f2UL, 0x34c1722UL, 0xd36a0d58UL, 0x1fae8083UL, 0x4b1e76fUL, 0x8c5ac32fUL, 0x556600e9UL,
- 0x406c91eaUL, 0x2385c29UL, 0xf8f83df3UL, 0x8d1be994UL, 0x73af81a8UL, 0xb611d5cUL, 0x521b69bUL, 0x104e78b7UL,
- 0x8f786742UL, 0xeb6c68f5UL, 0x2d292468UL, 0x8289c456UL, 0xad5889c6UL, 0x85068f08UL, 0x5dc3c492UL, 0xc9633321UL,
- 0xe5da05d5UL, 0xaf26a947UL, 0x79ea1cbUL, 0x86a613f9UL, 0xbd82901UL, 0x3c45c273UL, 0xee6bace3UL, 0x5b056cc7UL,
- 0xa4783912UL, 0x1699f504UL, 0x44adc5f4UL, 0xe069ea8dUL, 0xb87056abUL, 0x3fc555afUL, 0xe1572f02UL, 0x65ab3b1dUL,
- 0x1338a1eeUL, 0x32c7f36cUL, 0x8027665fUL, 0xb35f3116UL, 0x497f9604UL, 0x17fe433eUL, 0x91cf4989UL, 0x8cbfda64UL,
- 0xada8df2eUL, 0x441637f1UL, 0xaceb9bb3UL, 0x4ddce237UL, 0xdbcd1c4dUL, 0x30d13538UL, 0x317dc19fUL, 0xa9055bd8UL,
- 0x2b05d6e1UL, 0xca6f0928UL, 0x8ee772a2UL, 0x562dc168UL, 0x4c7ed5a7UL, 0x39bb9545UL, 0x63e586bUL, 0x9d383542UL,
- 0x648203e9UL, 0xa0182a5cUL, 0x79331d85UL, 0xa2ec5452UL, 0xfbcd0680UL, 0xac0be273UL, 0x87678e1UL, 0x6dd077a8UL,
- 0xe2674740UL, 0x77e31a63UL, 0x7d2d8542UL, 0x525914adUL, 0x75da67a3UL, 0x929975c3UL, 0xefaf6737UL, 0xf7041870UL,
- 0x2aba3eb9UL, 0xff770419UL, 0xc88df89cUL, 0x2c09ba21UL, 0xcc064b4UL, 0xfef127f5UL, 0xd428d481UL, 0x648eb55bUL,
- 0xa7981be6UL, 0xf4855266UL, 0x85afda3fUL, 0xc1e84f6eUL, 0xd618542bUL, 0x68251db7UL, 0x47dec31dUL, 0x5aef78d1UL,
- 0xfd7ebedbUL, 0x394b92cUL, 0x5884d41bUL, 0x2cb24bfdUL, 0x49eff22eUL, 0xd2c9abcdUL, 0x22bd081UL, 0xe3dbd661UL,
- 0xbf5de954UL, 0xc989730dUL, 0xae77267eUL, 0x7e7011b1UL, 0xb83a221fUL, 0xaadc9a07UL, 0xaed4f86dUL, 0x6cd0679UL,
- 0xa041c5c1UL, 0xa6772e1fUL, 0xc0ca7551UL, 0xa16b443UL, 0x736b9537UL, 0x44f4cf0UL, 0xc54c1c15UL, 0x922994dbUL,
- 0xe2a88f1aUL, 0xc9b740f6UL, 0x1063525UL, 0x3d993ea1UL, 0x8c847aaUL, 0x385df5e9UL, 0x3f718395UL, 0xf81f1bffUL,
- 0x94cefda8UL, 0x43d3e1dcUL, 0x11325c7UL, 0x8d42f456UL, 0xcbd3e93fUL, 0xf71fafa3UL, 0x96156605UL, 0x90dd43efUL,
- 0x3302ed4UL, 0x2d8723a0UL, 0x83b4a143UL, 0x7aab2f63UL, 0x3c01d04aUL, 0xa3c3b377UL, 0xd63ec6caUL, 0x1daae350UL,
- 0x11408e15UL, 0xbe790b2fUL, 0x3aac594cUL, 0x67ac1a78UL, 0x2f801c0dUL, 0x71a7a958UL, 0xcef1a325UL, 0x29b5e06aUL,
- 0xb267365cUL, 0xcf1b65f9UL, 0x8fff3cf6UL, 0xd0c80fd6UL, 0x632be4f0UL, 0x7a31ed66UL, 0x167a715fUL, 0xa37cefa2UL,
- 0xc3f5c4a4UL, 0x1e206930UL, 0x6207853cUL, 0x9f34db87UL, 0xc3ad97f8UL, 0x352d52fUL, 0x3cd64f2UL, 0xf9448892UL,
- 0x170e2b4UL, 0xc15298fbUL, 0xcdd0788UL, 0xef056571UL, 0x1dbbf9cUL, 0x99514992UL, 0x713005c1UL, 0xdc1fd831UL,
- 0x8c9294dbUL, 0x9022c8e1UL, 0x4f2a1bbdUL, 0x37b30651UL, 0x47340c33UL, 0x3ce0a33eUL, 0xc46c0767UL, 0xcc69d28dUL,
- 0x912e9cd0UL, 0x86dada2fUL, 0x798efa41UL, 0x74d674adUL, 0x6421253eUL, 0x6ee731b1UL, 0x57c10ac1UL, 0x6b20f00fUL,
- 0x4ee6c468UL, 0x1787667bUL, 0x2e298fa6UL, 0xeef6f23aUL, 0xedc129UL, 0x948330aUL, 0xfa9ba327UL, 0x42c77b9aUL,
- 0x48bc9a64UL, 0xf2b704e5UL, 0xb69581a7UL, 0xb9003f3cUL, 0x3867c148UL, 0x3f8725beUL, 0xdb44d8c5UL, 0x6a7ad4d8UL,
- 0xda7023e8UL, 0x1931ecf0UL, 0xe6e84ea5UL, 0x646bb448UL, 0x71756f4bUL, 0xf13019e9UL, 0x2f4d26cdUL, 0xb9ce095dUL,
- 0xebcbf3feUL, 0x1da28ed0UL, 0xdf573583UL, 0x162077f7UL, 0x46b96d84UL, 0x73ace555UL, 0xce80821bUL, 0x7ea66628UL,
- 0xbe6271b7UL, 0x6280076bUL, 0x179ed4a3UL, 0x833ac087UL, 0x5a1d1325UL, 0xc681f79bUL, 0x5e0f4c8cUL, 0x5bac73bUL,
- 0x10b56425UL, 0x9f6a1c42UL, 0xc9c3e331UL, 0xa41fd086UL, 0x1849acbfUL, 0xb606e877UL, 0x85e33518UL, 0xfd47da83UL,
- 0x50663cf0UL, 0x11c8a057UL, 0xf926b382UL, 0xd7e988c3UL, 0xf0b94037UL, 0x526a6daeUL, 0x13f772ddUL, 0x4dcc7d68UL,
- 0x1d6d1e7bUL, 0xd8988389UL, 0xc071c703UL, 0x8837454dUL, 0x609ffd91UL, 0xb64d32c2UL, 0x1d104f4aUL, 0x54719b1bUL,
- 0x46ad5cceUL, 0xb9f2ac09UL, 0x813cd677UL, 0xafa29370UL, 0xde7fb94eUL, 0x649b8625UL, 0xc5f19a70UL, 0x286efd9eUL,
- 0xf8a4bfa1UL, 0x1911c573UL, 0xfd48ea3aUL, 0x2e62c5f8UL, 0x2441688dUL, 0x6b0cfb91UL, 0x3834a07bUL, 0x9a12b839UL,
- 0x407619f3UL, 0xc0e52fe7UL, 0x202c3cb7UL, 0x3b496c76UL, 0x1ed7fccbUL, 0x990afc84UL, 0x6eaeac06UL, 0x3a80c96eUL,
- 0x8ef56ac6UL, 0x6b2f3bf7UL, 0xcb2a1c47UL, 0xd09032eeUL, 0x434eee89UL, 0xbfae01ceUL, 0xf9b7beb6UL, 0x476dc85cUL,
- 0xde063b26UL, 0x420fe1b2UL, 0x2b518f5cUL, 0xbe7f807aUL, 0x66902421UL, 0x2b4c391dUL, 0xa20538abUL, 0xef4f7fe6UL,
- 0x269d5f4cUL, 0xb88f3dacUL, 0xd7fbc3cfUL, 0x891a4925UL, 0x8aa72c0bUL, 0x600feee9UL, 0xd56a11b7UL, 0x753de9a4UL,
- 0xca8e17cfUL, 0xb191ea09UL, 0x893c6a66UL, 0x8d0dc4d6UL, 0xd03ee874UL, 0x4dcb9adfUL, 0xed3761ffUL, 0x935a6319UL,
- 0x4ac26c86UL, 0x24c7d22fUL, 0xccd63adcUL, 0xc93a6a24UL, 0xc0263b88UL, 0x9f16a65aUL, 0x5c97394eUL, 0x5bc44784UL,
- 0x9135c3cbUL, 0x7833c281UL, 0x7e4dc371UL, 0x22afce18UL, 0x6190d8cdUL, 0xffb22594UL, 0xee65030UL, 0x6d88b670UL,
- 0xd988505cUL, 0xe17b44dfUL, 0x4d1efd59UL, 0xc91719a4UL, 0xafb16c26UL, 0x460ef367UL, 0x7f2d7931UL, 0x5234993fUL,
- 0x17d3a104UL, 0xca66285UL, 0x4297df4eUL, 0xee570f67UL, 0x1e66923dUL, 0x7391238cUL, 0x637404abUL, 0x277bb41dUL,
- 0xb71ba5c8UL, 0x3c998202UL, 0x3fe56989UL, 0x13e52937UL, 0x6a96b35aUL, 0xa0aa7dafUL, 0xb77971c8UL, 0xb28a1c32UL,
- 0xd938ae13UL, 0xd2e2e6f0UL, 0x9a6104ebUL, 0x778496bUL, 0xbcc421e8UL, 0x6de6e21fUL, 0x7701f8faUL, 0x84da6ba4UL,
- 0xf1b380a1UL, 0x82c4070UL, 0xb1907bccUL, 0x318763bcUL, 0xe85ab7a8UL, 0x7b30d3d7UL, 0x5852e0f2UL, 0xe1d8dfe0UL,
- 0xd05154dfUL, 0x3f99ccd9UL, 0x5a0bf895UL, 0xc343dbc7UL, 0x9fc0a367UL, 0x219497aaUL, 0xe240cce1UL, 0x4e94fb0UL,
- 0x51fc714fUL, 0x8a76b1ebUL, 0x4571ab1dUL, 0xd939fd97UL, 0xe4cb9a53UL, 0xcb401fb4UL, 0xdb82f94eUL, 0x92180da3UL,
- 0x2ec9d29bUL, 0x9edc365dUL, 0xc8db8ed9UL, 0x25879375UL, 0x2e8284fdUL, 0xa2da7528UL, 0xac9f525eUL, 0xcdc55f8cUL,
- 0x2d429589UL, 0xa3f2b3b2UL, 0x846c5610UL, 0x20cdbedUL, 0xf3b5604dUL, 0xcbb149aUL, 0x4f178a42UL, 0x3b2ead9cUL,
- 0x5133b55fUL, 0x6647f329UL, 0x47814c65UL, 0x8f9d7118UL, 0xf1fc399bUL, 0xbb5a395bUL, 0xcffcaa00UL, 0x2c9ba27UL,
- 0xa85896d9UL, 0x73c4a7d3UL, 0xe93382c6UL, 0x4b16daa8UL, 0x555f85b7UL, 0xf03de5b1UL, 0x1b2ed31fUL, 0xb58d6c5aUL,
- 0x2e730b1cUL, 0x4a20cc96UL, 0x983829e8UL, 0x5dacf6afUL, 0xb401199aUL, 0x2d6de765UL, 0x76d1bd75UL, 0xfbf352f1UL,
- 0xb10470f3UL, 0xbc564aa8UL, 0xd9073c8fUL, 0x9630f290UL, 0x4012e677UL, 0x1b889039UL, 0x10b15d0fUL, 0xbe066f18UL,
- 0x904b4dd4UL, 0x2c64274fUL, 0x52ba42e9UL, 0x3205258UL, 0x7b08eb95UL, 0x8fadd1ecUL, 0x5b620cf7UL, 0x289a8ef4UL,
- 0x1871ae62UL, 0xebc65a4bUL, 0x3e2741a7UL, 0x203d3400UL, 0xb4f76efUL, 0xa3709326UL, 0xda975a67UL, 0x3802bbd0UL,
- 0x1fb43666UL, 0xb363ec40UL, 0x11bbed57UL, 0xbbadc1a6UL, 0x722e230fUL, 0x6f343c2aUL, 0xfe784270UL, 0x1ceb6ddbUL,
- 0xc414651aUL, 0xe64c49e5UL, 0x511c86d7UL, 0x960d84f9UL, 0x262cded6UL, 0xb866c30eUL, 0xe431780fUL, 0x16535b2cUL,
- 0xb902e91cUL, 0x673b6581UL, 0xccbb37ddUL, 0x938557d6UL, 0xc4af6932UL, 0x387186b2UL, 0xa8f2cf7UL, 0x32bdd3a3UL,
- 0x1736ee06UL, 0x7e7cf6c5UL, 0x2367e43dUL, 0xe2cfd1a3UL, 0x1a304ffbUL, 0x94e4fbeUL, 0x4d4bd934UL, 0xb7ff1cfbUL,
- 0x3d2f1cdeUL, 0x693886a7UL, 0x3eda9f97UL, 0x3ebe864UL, 0xd8a81e5UL, 0xc774d9faUL, 0x505a6432UL, 0x66100e99UL,
- 0x5c0253aUL, 0xf61dd143UL, 0x2ff0064bUL, 0xca3f3b2dUL, 0x918733ffUL, 0x8bc141ccUL, 0x6196011cUL, 0xcbf6c9cfUL,
- 0x57c6ebebUL, 0x18704e04UL, 0x58610519UL, 0x62231ad2UL, 0xa7b98d0UL, 0xe32d21d6UL, 0xbbbb4ae1UL, 0x2056c9cUL,
- 0x7a3f20b2UL, 0x52ef36fUL, 0x174f636UL, 0xa01df9d4UL, 0xafdd827cUL, 0xf54e9505UL, 0xe715531dUL, 0x78cca28aUL,
- 0x9446fef4UL, 0x6ecacdcfUL, 0x102d982cUL, 0xaf977d07UL, 0x71dd4affUL, 0x87565f09UL, 0xa9d0241dUL, 0x1ffa1a67UL,
- 0x6a526b79UL, 0x64167b0dUL, 0x26e10d89UL, 0x6043a261UL, 0x412903d7UL, 0x87dd0399UL, 0x8edca4f0UL, 0x598778a0UL,
- 0x442db0b2UL, 0xdd0224fdUL, 0xadee8115UL, 0x585f59eeUL, 0x694a24fUL, 0x2e8b9bc6UL, 0xf54b89e4UL, 0x31031a19UL,
- 0xbf8b01f8UL, 0x941d6f4fUL, 0xebc690cbUL, 0x1f27a852UL, 0x67a6f55fUL, 0xcc596a6aUL, 0x9defe917UL, 0x9d504659UL,
- 0x604aae35UL, 0xa7d343dcUL, 0x197b335cUL, 0x1b954036UL, 0xab00cf5bUL, 0xfd8d5300UL, 0x11cd8b90UL, 0x7987ee0UL,
- 0x5bb98937UL, 0x373e340bUL, 0x13002e67UL, 0x6a3e20ddUL, 0x4204d70dUL, 0x22f2c2c2UL, 0x954a116UL, 0x1c5ea50cUL,
- 0xb16fef03UL, 0x1d8dbec3UL, 0x5483a5fUL, 0x2c158f73UL, 0x628f56fcUL, 0x73b00b40UL, 0x9d0950caUL, 0x9a1e40c9UL,
- 0xe483a578UL, 0xac3ee162UL, 0xcecb44c1UL, 0xb0ffa5e4UL, 0xfe42458aUL, 0x851fc97fUL, 0x8e173dc4UL, 0x698fc630UL,
- 0x9e2fad83UL, 0x79389b48UL, 0x27af0878UL, 0x34171eceUL, 0xa5c85706UL, 0x52db6e41UL, 0x67659d8aUL, 0xac4ced9cUL,
- 0x9e879675UL, 0x77156c66UL, 0x90253ccUL, 0x8c0a1d26UL, 0xc6dfac1bUL, 0x2defd603UL, 0xdac30572UL, 0xe4d5922fUL,
- 0xc841fc69UL, 0x3a2d25fcUL, 0x1704ddd7UL, 0x4c564863UL, 0x5ed422d7UL, 0x8953a6dbUL, 0x7201ea16UL, 0x925a7d52UL,
- 0x98580649UL, 0xc19e2203UL, 0x79862d18UL, 0xb8b190b0UL, 0x7f52afe3UL, 0xa5ed4c0eUL, 0x605da072UL, 0x3a379a6dUL,
- 0xa023ae9UL, 0xea9a1fdUL, 0xaee879e7UL, 0x24ec3295UL, 0xa3c32a3eUL, 0xcc921d3bUL, 0x7cfbb85bUL, 0x7dd731fdUL,
- 0xec6fe3bUL, 0x5cd4ba8fUL, 0xdf6e5e54UL, 0x44f71d92UL, 0x64f90e4aUL, 0x66cd8d4aUL, 0x1e1179bUL, 0x23460473UL,
- 0x98705938UL, 0x11137e0dUL, 0xc1cd99b5UL, 0x403ea9e5UL, 0x66c8d0e6UL, 0xfce9fb7cUL, 0xb24b64b0UL, 0x2bd29d1aUL,
- 0x32460ec2UL, 0xfb7a35d0UL, 0xda5c6e2eUL, 0xc674d6dcUL, 0xce3dc762UL, 0xda1e18d0UL, 0x4495fd48UL, 0x31ca844UL,
- 0xc3c1f1a8UL, 0xef9a82f1UL, 0x2eec08d4UL, 0x6585efd0UL, 0xc644783cUL, 0x16eabe49UL, 0x50217af5UL, 0x5b8d8e51UL,
- 0x4f58b6afUL, 0x81c2b6e1UL, 0xd126d27fUL, 0xea72c275UL, 0x864c85ccUL, 0x7261d435UL, 0x7aa2eed6UL, 0x397d68f9UL,
- 0xa47c662fUL, 0xb8300aa3UL, 0xbc23fc6fUL, 0xc31d91f8UL, 0xa3f7ebd2UL, 0xb2d01d6fUL, 0xc6eb8fa9UL, 0x9bd4a978UL,
- 0x1d64a985UL, 0x4ab4d86UL, 0x95e84277UL, 0x71021ea7UL, 0xd32a6c5UL, 0xe43651bdUL, 0xa80c1a3UL, 0x8866eff9UL,
- 0xc06d545dUL, 0x4bb041eeUL, 0x73a4c8a7UL, 0x1ea9c814UL, 0x653d01e0UL, 0x4cf5d704UL, 0x701290cbUL, 0x7f69e34UL,
- 0x554053eeUL, 0xab394e70UL, 0x3b719c9fUL, 0x5baba9e4UL, 0x6c7c925cUL, 0xe64bed9bUL, 0xb227a217UL, 0xa25f4d9eUL,
- 0xffdd0ad0UL, 0x253b1a05UL, 0x61638847UL, 0x195cbfe4UL, 0x61dc26b0UL, 0x80c28a99UL, 0x3a8860beUL, 0x5e474f2cUL,
- 0x2c708a52UL, 0x8baa3be6UL, 0x30371816UL, 0xd9881967UL, 0xb12e3f2bUL, 0x53b93e81UL, 0xcc7961aaUL, 0x93663b93UL,
- 0x1fcc7b4bUL, 0x908175feUL, 0x296c858eUL, 0xef925fd0UL, 0xe3d50e3dUL, 0x1866517dUL, 0x60eb815UL, 0xe9179fc0UL,
- 0x64a01a0cUL, 0xe281b1cbUL, 0x2edde431UL, 0xeab27dc7UL, 0x4df29095UL, 0x8e7dbdc9UL, 0xa992c95dUL, 0x8697a9f8UL,
- 0x1b9226ecUL, 0xc7828e98UL, 0xe5864873UL, 0x1d8102c2UL, 0x7413b10eUL, 0x4aa466e0UL, 0x3578d5deUL, 0xb015e575UL,
- 0x3476b2b4UL, 0xcf444315UL, 0x832ff2e4UL, 0x2a4d48abUL, 0xf7ae5d99UL, 0xcf04ec2fUL, 0xf7265d6UL, 0x146f6b2eUL,
- 0x635886efUL, 0x65a03392UL, 0x680754d8UL, 0x3c16142aUL, 0x2f394107UL, 0x324317d5UL, 0xf41e35c7UL, 0xf38dc3f0UL,
- 0xea0c088UL, 0xca4cb3ccUL, 0x4dbb9353UL, 0x6d24fdb0UL, 0x41fa237UL, 0x777b42b2UL, 0xdc07a0f1UL, 0x1698e9d2UL,
- 0x82cb7c2aUL, 0x124a1b7UL, 0x5c0e2fffUL, 0x8e7f0cd8UL, 0x196ca195UL, 0x1fcd8004UL, 0x61cbade9UL, 0xdae1d10bUL,
- 0xb3f7085aUL, 0xc047b035UL, 0x73d23c69UL, 0xbd2f799UL, 0xc5282485UL, 0xd70a16bfUL, 0x94f935c5UL, 0x707ed9fbUL,
- 0xbe4b9588UL, 0xadf663cUL, 0x2c2bbe3cUL, 0x41f067daUL, 0xf261bf1cUL, 0xba01b707UL, 0x7c15ffe0UL, 0xc3e99b43UL,
- 0xa8249b0cUL, 0x30fcb226UL, 0xc3e312f7UL, 0xb2b5a2d3UL, 0xbdcd8aaUL, 0x6442aa95UL, 0xdeecd1e6UL, 0x51291a7bUL,
- 0xc68873f9UL, 0xb23cef72UL, 0x34eb10ccUL, 0x5631bfebUL, 0x1f5c8fa3UL, 0x5c00b3c5UL, 0xfd64e5b0UL, 0xf8ee5c78UL,
- 0xca94fa98UL, 0x5183aa92UL, 0x905ba579UL, 0xf654f206UL, 0x8242e4beUL, 0x260dce29UL, 0xc0ff0d08UL, 0x56199cb4UL,
- 0xb3f39394UL, 0x9dfd4fbeUL, 0x9d76b25cUL, 0x9d30c32dUL, 0x132c40d9UL, 0xfbccd3f4UL, 0x19d39c4fUL, 0x8509d15cUL,
- 0x5b8b2bbbUL, 0xf1e5e78eUL, 0xd80213f6UL, 0x59290070UL, 0x3b3cd0c0UL, 0x6c742cfbUL, 0x21ff2764UL, 0x21f5200UL,
- 0xf64a0df8UL, 0xaf7cc32fUL, 0xf4078c2bUL, 0x3b7ba225UL, 0xc07cd6d4UL, 0x1e0287d0UL, 0x46d20c52UL, 0x83848676UL,
- 0xd6a27543UL, 0xdb9b7485UL, 0xb0f93b77UL, 0x307cebebUL, 0x27eb5143UL, 0x1b4088dbUL, 0x86e8373eUL, 0x27e32e72UL,
- 0xb1cc67b4UL, 0xbe5319c6UL, 0xef5cc9e6UL, 0xa8d89145UL, 0xb9cdf43aUL, 0x708c2e59UL, 0x12e97dc9UL, 0x7ccb12faUL,
- 0x3439d1ddUL, 0xe66925f3UL, 0x3ea861f2UL, 0x831788eaUL, 0x5b4d1cdcUL, 0xe0a64785UL, 0x9805f0e1UL, 0xbd10424bUL,
- 0x960d7babUL, 0x21f8443UL, 0xe79077b5UL, 0xb795672aUL, 0xbe034f78UL, 0x9a4ab29eUL, 0xdca7a900UL, 0x74120916UL,
- 0x25e99c82UL, 0xa5936847UL, 0xa13e6ff4UL, 0xd0f77ae5UL, 0x355e2c48UL, 0xeabc8943UL, 0x9c862c78UL, 0xe4f32620UL,
- 0x47b19d08UL, 0x26cea6b0UL, 0x809d75b9UL, 0xef0edd0cUL, 0xf3889be5UL, 0xbfc77ac0UL, 0x6cd4ffbaUL, 0xf2a4f7b8UL,
- 0xaab10548UL, 0x38ac34f5UL, 0x1739c4cbUL, 0xaed5a1ddUL, 0xe2af0c21UL, 0xf13ad226UL, 0x5f31281UL, 0x1b27a070UL,
- 0x19fcfb93UL, 0xf1c53e88UL, 0x413d82caUL, 0x935d8a86UL, 0xf44f066eUL, 0x881fa95eUL, 0x6b5181a7UL, 0x222a860dUL,
- 0xd1a74809UL, 0x7d61f9faUL, 0xecd0b2c7UL, 0x8ba19fb1UL, 0x4affc79fUL, 0x40d6b73cUL, 0xb24615e8UL, 0xdbfed5a0UL,
- 0xe3708408UL, 0xc2ced5b7UL, 0x6ae30298UL, 0x229551a4UL, 0x5fbe78efUL, 0x61bf40deUL, 0x41717b88UL, 0x15187625UL,
- 0xbf8efbf4UL, 0x2ae81617UL, 0x6a55a5b0UL, 0xd62b7b0cUL, 0x28f821acUL, 0xae198cbaUL, 0xff2714ffUL, 0x3c7fa9f2UL,
- 0xa0422a73UL, 0x7a42715UL, 0xb751592fUL, 0x7464763cUL, 0x6fa0d05dUL, 0xf63eac36UL, 0xe24f0b1cUL, 0x59bc4909UL,
- 0x3a36511aUL, 0x5fd92ccaUL, 0x58018f66UL, 0x1b24c901UL, 0xefce4cf2UL, 0x2d04548eUL, 0xa96d41b4UL, 0x80c26d8aUL,
- 0xd349cc1bUL, 0x2876119dUL, 0xf83a646aUL, 0x984bb3a8UL, 0x583c34e1UL, 0x57a88f1bUL, 0x2e96c4c9UL, 0x6e0d9423UL,
- 0xe68e63fbUL, 0x5d5ba962UL, 0x73de0176UL, 0x50b9e40eUL, 0xf3a25bc9UL, 0xa6d59bd6UL, 0xbae35218UL, 0x2b0e4355UL,
- 0x3e17107eUL, 0x8c12021dUL, 0xdda7abbfUL, 0x8a01b66fUL, 0xcb8c0a2aUL, 0xa6cac52aUL, 0xe5091918UL, 0x713ebe61UL,
- 0x3200d264UL, 0xd1caa9d3UL, 0xd3b57051UL, 0xc8728885UL, 0x82559c7UL, 0x3acaea3eUL, 0xf3e6b406UL, 0xae7b734dUL,
- 0xe11827e3UL, 0xc4c3eUL, 0x9f9c13f4UL, 0x8cae11efUL, 0xbec73fb0UL, 0xc6d5417cUL, 0x99e7d83fUL, 0xfb3c42e0UL,
- 0x2f134b3dUL, 0x12879484UL, 0xebaec0f9UL, 0x2c2c61a6UL, 0xef835717UL, 0x84833f4fUL, 0x733febf7UL, 0x89c87136UL,
- 0xa39030a3UL, 0x5ee814c1UL, 0xafc08ba9UL, 0xff9ba5b9UL, 0x49916579UL, 0x7f790d00UL, 0x54279ad7UL, 0xc0cf4f18UL,
- 0x74b75a35UL, 0x3e698d17UL, 0x2e876397UL, 0x60c260b3UL, 0x747da2b4UL, 0xfcbe39c8UL, 0xce230d20UL, 0x713b975aUL,
- 0x9593731cUL, 0x8849f26dUL, 0x621417f2UL, 0xd55f715UL, 0xfa3da79aUL, 0x6bd04b07UL, 0xa83c1dbeUL, 0x1c005425UL,
- 0xde2c1cfcUL, 0x46f3603bUL, 0xf4ba626UL, 0x5a1df7afUL, 0x29a35e1eUL, 0xc2f382aUL, 0x3ebf41d6UL, 0x6e683be3UL,
- 0x1c306298UL, 0x95b1ed2fUL, 0x1a7293dcUL, 0x4d4ac375UL, 0xaa3daadbUL, 0x6b1ff603UL, 0x414359f7UL, 0x38184a79UL,
- 0x1e04f69eUL, 0xaf611120UL, 0x73bc2b6cUL, 0x3d86aa8aUL, 0xdbb2a309UL, 0xc50046d6UL, 0x2bf73e46UL, 0xb7a1997fUL,
- 0x37984e7UL, 0xa4090ed1UL, 0x205766c9UL, 0x5ae78077UL, 0xf1e87595UL, 0x128b33c5UL, 0xd40d04d8UL, 0x7bb67c6eUL,
- 0xf9b7b8a8UL, 0x28246199UL, 0x49afefa7UL, 0x721cfd9cUL, 0x592130f2UL, 0x2c3f533dUL, 0x357b13d7UL, 0x79f55bdcUL,
- 0x28bf5cbbUL, 0xd1c65591UL, 0x8a199e44UL, 0xcf7d5c7fUL, 0xad7d6cedUL, 0xb202a0caUL, 0x9a1082b3UL, 0x402711fdUL,
- 0xf0df5249UL, 0x37c7a421UL, 0x166405a4UL, 0x7d72bef4UL, 0x7dc0024eUL, 0xb5b4c07bUL, 0xfefd6624UL, 0x85426511UL,
- 0xb9559622UL, 0xdef72b8aUL, 0xdce577a9UL, 0x8dfdd4bcUL, 0x6be61c1dUL, 0x93769b93UL, 0xa7feb61eUL, 0xd8a16dedUL,
- 0xea5035c2UL, 0x3321d959UL, 0xdcef258cUL, 0xa30b8e37UL, 0x9ddff9f3UL, 0x86c0d243UL, 0x40ec8906UL, 0xfe410f96UL,
- 0x98e3888fUL, 0x332c9b79UL, 0xe6595afaUL, 0x4b5181b7UL, 0x1d9564f3UL, 0x71b88e1dUL, 0x2d3e24f6UL, 0x5ac7bf7dUL,
- 0xaa39cadeUL, 0x1b904766UL, 0xb26ae73eUL, 0x3532570UL, 0x3bdef30fUL, 0x94c46c84UL, 0x24f87e1UL, 0x80d07a75UL,
- 0x51febccbUL, 0x2b9eb1fcUL, 0xa0eafcfbUL, 0x4b269d8bUL, 0xa5a078e9UL, 0xb756e5aUL, 0xd08781f3UL, 0x98d3570dUL,
- 0xc957fbfeUL, 0xf46cbcceUL, 0x14e4c6bcUL, 0x5c22b7faUL, 0x58bb4acfUL, 0x47149b7cUL, 0xf62146c5UL, 0xfa386495UL,
- 0x561f0c5UL, 0x38f28834UL, 0x69ac5e67UL, 0x21acf0acUL, 0xfb7decdcUL, 0xd7d99c59UL, 0x371fe322UL, 0xdcfc6eb9UL,
- 0x47f585a1UL, 0xc5608f8cUL, 0x40e5f846UL, 0x198669ebUL, 0xaee303c0UL, 0x894e9219UL, 0x63418c73UL, 0x55a9ad2aUL,
- 0xcdf82d6bUL, 0x72f66004UL, 0x4cc1ca9dUL, 0x477ee668UL, 0x5d152b27UL, 0x49fab142UL, 0x689b7f0UL, 0xe19bb4daUL,
- 0x9854a2a0UL, 0xc4b8a970UL, 0x2792daddUL, 0xb1b7ec27UL, 0x221e33fUL, 0xdad5f3ceUL, 0x21ed563bUL, 0x1a7accdcUL,
- 0x6e3600abUL, 0x1a2ade59UL, 0xa6107339UL, 0xe9bccd9dUL, 0xff712630UL, 0x8fce98abUL, 0xe7d7f6ebUL, 0xda9aec6aUL,
- 0xe494bf4cUL, 0x356da6c8UL, 0xa02e3ee7UL, 0x38096af5UL, 0x2c57a810UL, 0x1a2330daUL, 0xf9a64534UL, 0xb6c86208UL,
- 0xd13f28abUL, 0x1eb74103UL, 0xe0314fafUL, 0x6a949ad6UL, 0xc906e5a7UL, 0x9de1fe4eUL, 0x671731dbUL, 0x8818326bUL,
- 0x87b86800UL, 0xea1c2985UL, 0xcfe5a208UL, 0x156c403dUL, 0xef11eb44UL, 0xc031ff92UL, 0x686c7d6aUL, 0xc17b5c75UL,
- 0x799e9954UL, 0x77100ff2UL, 0x17513f39UL, 0xe56c4bb0UL, 0xef94d543UL, 0xb942284aUL, 0x9ad637e5UL, 0x3ade2416UL,
- 0x417b0f22UL, 0x1960dc40UL, 0x998e8a13UL, 0x9ec604deUL, 0xcc4b0618UL, 0x8139c535UL, 0x4d5ca455UL, 0xe2a98bd8UL,
- 0xe0226e82UL, 0xf83391acUL, 0x1e4720b8UL, 0xc8976979UL, 0xeff2e609UL, 0xcfc17e42UL, 0x2497e701UL, 0x28af1a60UL,
- 0xefe96c23UL, 0xc0308caaUL, 0x6f06d696UL, 0x200ed141UL, 0x3846158aUL, 0x603e468dUL, 0x7b6e8b79UL, 0x18f25011UL,
- 0x28bd767cUL, 0xb2e2f3c7UL, 0xa2fc4924UL, 0xd1630179UL, 0xf0489f40UL, 0x6e19e31cUL, 0x9502495cUL, 0x3451fbabUL,
- 0x5ef01d5dUL, 0x77839ce6UL, 0xcecaca6UL, 0x28e943bUL, 0xbb06bca1UL, 0xf7775b83UL, 0xcd9ff14cUL, 0xcef9bc21UL,
- 0x293a4931UL, 0xe138ffdfUL, 0x90bbc630UL, 0x9c73b4e3UL, 0xf0558018UL, 0x4a53755fUL, 0x2f7c222eUL, 0x4038652cUL,
- 0xa8b7e183UL, 0x71f92a9cUL, 0x56f8f18aUL, 0x334e180aUL, 0x98af40c7UL, 0x85edf93dUL, 0x602b88f1UL, 0xa4b19414UL,
- 0x70cb5d96UL, 0xb975b8a5UL, 0x4e37185eUL, 0xdde97e7cUL, 0x4717ad2fUL, 0x1c059652UL, 0x18242a34UL, 0xe9c1887cUL,
- 0x64770f4UL, 0xc615cdc4UL, 0xa2927482UL, 0x57f93a60UL, 0x4d54b610UL, 0xe2503681UL, 0x56ee2674UL, 0x785c4f74UL,
- 0x28aa3e71UL, 0x2327c8f7UL, 0x91094ebeUL, 0xa46649d2UL, 0x1c7f8a00UL, 0x47d2adacUL, 0x52dcf845UL, 0xc6b6cfe1UL,
- 0xc513b821UL, 0xa07ccc3dUL, 0x3c37c8bbUL, 0x3680db43UL, 0xe6f1f1ecUL, 0xd53cb061UL, 0x3a8c48ffUL, 0xa1f56a1fUL,
- 0x69a8f3d8UL, 0x72dc488fUL, 0xd9e7d22fUL, 0x47ea52dcUL, 0x6589938cUL, 0x317a64afUL, 0xa33bdff9UL, 0xcbc09813UL,
-};
-#else
-static const mp_limb_t ecc_unit[16] = {
- 0x1UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
-};
-static const mp_limb_t ecc_table[4096] = {
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x3UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x5215f2a4UL, 0x89a589cbUL, 0xc235f5b8UL, 0x8028fe5fUL, 0xe3a41e9UL, 0x3d75e6a5UL, 0x4fd036e9UL, 0xdf1626beUL,
- 0xcbefa921UL, 0x778064fdUL, 0xacf1abc1UL, 0xce5e1c93UL, 0xe25450e6UL, 0xa61b8816UL, 0x7a836ae3UL, 0x7503cfe8UL,
- 0x1510b33aUL, 0xf09d8973UL, 0x15125d8aUL, 0x59909501UL, 0xf630e13aUL, 0xf29037e7UL, 0xd031d853UL, 0xe5caff31UL,
- 0x17e3675aUL, 0x5dee8b49UL, 0xc6b5eda2UL, 0x7a956818UL, 0xe30a0b3aUL, 0xc2fdbb0aUL, 0x65445e33UL, 0xfc448915UL,
- 0x73c034bfUL, 0xbb4b29eaUL, 0x8e23439bUL, 0x74ebb4e8UL, 0xf613096eUL, 0x96594d45UL, 0xc7c4b6dUL, 0x4029ea20UL,
- 0xf15b4fabUL, 0x4d95af09UL, 0xefa4bc13UL, 0xc96e40c7UL, 0xc2cc8801UL, 0x87323dd1UL, 0xca792c90UL, 0x8cf28a47UL,
- 0x4b5af16bUL, 0xf143a80eUL, 0xb0ccb6dUL, 0xf1470a8dUL, 0xd383cd2eUL, 0x8c869415UL, 0xb667805cUL, 0x25d30034UL,
- 0x30136564UL, 0xc3423ee8UL, 0x51adbfe1UL, 0xf9eb2deeUL, 0x5d97a348UL, 0x1704532eUL, 0x94e59114UL, 0x73de4512UL,
- 0xb91412eaUL, 0x28abff30UL, 0xa89dc402UL, 0xe73a34aeUL, 0x481c3ac6UL, 0x9348baf8UL, 0x5d8a4127UL, 0x153844abUL,
- 0xe83bccdfUL, 0x9fbd304eUL, 0xd5555f07UL, 0xb9395802UL, 0x9517fc4bUL, 0xaa460afbUL, 0xdc8a2870UL, 0xfc162116UL,
- 0x50b5a248UL, 0xb34a14d9UL, 0x51c0211dUL, 0x604fc0c8UL, 0x95b488d5UL, 0x391ca41aUL, 0x27292fd3UL, 0x6768a4d6UL,
- 0xddfb3e54UL, 0xbc9bc22bUL, 0xd34ef1ebUL, 0x3b53bb28UL, 0xfa11b0bUL, 0xf0441f12UL, 0xa2822ea1UL, 0xb6cdd898UL,
- 0xed50b9e6UL, 0xc494e3e4UL, 0xe8e83d3bUL, 0x7af5f010UL, 0xf9364e92UL, 0x3a9f348aUL, 0x7fc6dc63UL, 0x2852f040UL,
- 0xc9ed22a1UL, 0xa6a1a672UL, 0x2f019540UL, 0xa2fcd8acUL, 0x6490a5bcUL, 0x5212bcbfUL, 0x716b20e0UL, 0x9dbce605UL,
- 0x4460739aUL, 0xc7f0d39aUL, 0x87692558UL, 0x40e8cf50UL, 0x5c6ae5f3UL, 0xcfca7a74UL, 0x6c47ec01UL, 0x26b3c4cfUL,
- 0xede974ddUL, 0x8afdbc42UL, 0x4e76d94dUL, 0x96c9db5bUL, 0x95f4fc72UL, 0xc630f3UL, 0xa1e31127UL, 0x898cc032UL,
- 0x11bd0be1UL, 0xcd86e1f9UL, 0x1d20680cUL, 0x37df44f4UL, 0xbd9a3d0UL, 0xdcf2a51eUL, 0xe6a96e32UL, 0x1633d5dUL,
- 0x2b7d1887UL, 0xa4164c03UL, 0x3d8bc5b0UL, 0x29b6ed83UL, 0x87d681caUL, 0x2684d018UL, 0x6b4c34bdUL, 0x13d1f187UL,
- 0xe107462fUL, 0x874fbaa2UL, 0x417ad828UL, 0xd291f6f6UL, 0xa6fe73f9UL, 0xf8071115UL, 0x3e65fda6UL, 0x3237bf3cUL,
- 0xcda4281UL, 0x2f227f68UL, 0x87926456UL, 0xa31f2828UL, 0x4af0f970UL, 0x61e3b0b9UL, 0x9a207266UL, 0xf4059f41UL,
- 0xa80ece81UL, 0xaf26473aUL, 0xfd322c22UL, 0x50f291f7UL, 0xf85b4d31UL, 0xbb706b82UL, 0xb90b101aUL, 0xcb26510bUL,
- 0xd5844659UL, 0x1b081512UL, 0x77bfaf8eUL, 0x3d0b1c43UL, 0x5e99f600UL, 0x2ea9eab6UL, 0x42ab277dUL, 0x929f168bUL,
- 0x56dff90cUL, 0xa34e5213UL, 0x7e68d021UL, 0x4c4fe8fcUL, 0x256929d0UL, 0x7510a79UL, 0xddd08e2UL, 0x4858f3feUL,
- 0xb92f9a5UL, 0x289f5d3eUL, 0xd32e0182UL, 0x46b793d7UL, 0xc1380b77UL, 0xd21a62cbUL, 0xb8acf806UL, 0x5a648ab4UL,
- 0xfb76bf4dUL, 0xdf9f75d3UL, 0xa65ec6b9UL, 0xf10033afUL, 0x86c7da59UL, 0xf5181499UL, 0x9b8a4edaUL, 0xb39bec8cUL,
- 0xa1f635abUL, 0x7fb448f5UL, 0xc898d92dUL, 0xf959af99UL, 0xc4098787UL, 0xc3926af6UL, 0xe6d0956UL, 0x26b80fd6UL,
- 0x3fc60066UL, 0xdb27ffc8UL, 0x44870667UL, 0xacbcbfa4UL, 0x6b242b96UL, 0xbee2f3ebUL, 0xf49f98adUL, 0x394329a3UL,
- 0x7b4c3678UL, 0x1bad186UL, 0xed8118f0UL, 0x9a8f9a4cUL, 0xe9441e53UL, 0x4a617a3dUL, 0xe22fccfdUL, 0xb2c4d3dUL,
- 0x22305001UL, 0xdd096289UL, 0xc47b2126UL, 0x7b16bb81UL, 0x1c0a8d75UL, 0xe82f1129UL, 0x71be2e4eUL, 0xc53283d4UL,
- 0xf3a93b88UL, 0xb6d6bbcbUL, 0xac2156c9UL, 0x73437122UL, 0xded27ca2UL, 0x451809fUL, 0xda9710cUL, 0x9c78e975UL,
- 0x3e163a09UL, 0xc1515c0cUL, 0x3d3dd15cUL, 0xa006bc7bUL, 0x9cd3afa9UL, 0x13d5c0f5UL, 0x1c26b37fUL, 0x40cc395UL,
- 0xf1787e7bUL, 0x31d10bd9UL, 0xe83844b4UL, 0x32e246dcUL, 0x27f36bbdUL, 0x4f9aa4eUL, 0x54491750UL, 0xa3323328UL,
- 0x4c7ef142UL, 0xdd10ae18UL, 0x12218427UL, 0x613293dcUL, 0xd38b6672UL, 0xf30ab39fUL, 0x2c87d470UL, 0xfefdca53UL,
- 0x6049b855UL, 0x8544dea8UL, 0x367fcb3aUL, 0x1c9699c7UL, 0x9511004bUL, 0x2b1c8524UL, 0x8f51e227UL, 0x5dece850UL,
- 0xbba69a78UL, 0xe2e63648UL, 0x7c5fa46cUL, 0x83581fa4UL, 0x935378f6UL, 0xce6b680dUL, 0x8974211eUL, 0x56ab6bdUL,
- 0x79b97ac0UL, 0x2bafe19UL, 0x8d35f156UL, 0x9613bef5UL, 0x17ed213fUL, 0x2e473164UL, 0xae84b639UL, 0xbc801d59UL,
- 0x9767e068UL, 0x81c96ff7UL, 0xea6c83d5UL, 0xc1c6d2a9UL, 0xd1e3c922UL, 0x173eaf47UL, 0xbc8e01b4UL, 0x8fcebfcaUL,
- 0x79513d4fUL, 0xf2777c8eUL, 0x192b0788UL, 0x570f674UL, 0x631ba1cbUL, 0x4e5dc57cUL, 0x3cee1b3dUL, 0x49603142UL,
- 0xf8592903UL, 0xce427a7bUL, 0x5a34add7UL, 0xe61b7d48UL, 0xa0c24dfUL, 0x56724c01UL, 0x2a9bd31fUL, 0x924308d3UL,
- 0x6f2cf552UL, 0x97c9e8edUL, 0x663cb4cUL, 0x75a30103UL, 0xb4dcee25UL, 0xd861c1eaUL, 0x75fb7c48UL, 0xd11f35c5UL,
- 0x1200a5c4UL, 0xb861214UL, 0xdc2a83d0UL, 0xb170a13bUL, 0x4ab7bbb5UL, 0x7b3d408bUL, 0xb2a9b3c3UL, 0xb7f3d481UL,
- 0x8e6f884eUL, 0x7c7d935dUL, 0x5ece3b0UL, 0x9cece57fUL, 0x5fee6870UL, 0x1de77a52UL, 0xfcc968adUL, 0xb6966926UL,
- 0x239f272fUL, 0x6297cc40UL, 0xb57ee2c1UL, 0x90a425b0UL, 0x83d339d2UL, 0x24be8c2aUL, 0xfeea242aUL, 0x4adc8f4fUL,
- 0x66c70182UL, 0xcb9dff2eUL, 0x78301bfcUL, 0x18d6a12cUL, 0xada93c85UL, 0x4d012bbfUL, 0x5595c112UL, 0xc19b31eeUL,
- 0xb1acff2UL, 0x6a16d54eUL, 0x7ffe425dUL, 0x461c37b7UL, 0x73712396UL, 0x89de0435UL, 0xba282909UL, 0x98a1ee58UL,
- 0x8131eea0UL, 0x90b0e153UL, 0x82ba555bUL, 0x90bcfd18UL, 0xc6c18cccUL, 0xcd86e5f8UL, 0x99fde693UL, 0xf66b402fUL,
- 0x9ea0266bUL, 0xd980350aUL, 0x9f5402beUL, 0xa518c842UL, 0xae9a5702UL, 0x680b2a4dUL, 0x8c4ce366UL, 0xbe3c4f35UL,
- 0xad4e2d8dUL, 0xf6d5af96UL, 0x94a6d54dUL, 0xfabdbbc0UL, 0x4ab5b599UL, 0x9c5540a0UL, 0xbef871dUL, 0x5020bcbfUL,
- 0x27ccba4cUL, 0xc2ad99fdUL, 0xc492b7d5UL, 0x89420ee4UL, 0xf0479b8aUL, 0xb5b9e2a8UL, 0x91fd19c7UL, 0x8e401481UL,
- 0xc3fbcc7aUL, 0x6735937UL, 0xf1a65f6dUL, 0x8ff82dcUL, 0x950a31faUL, 0xdaa08c51UL, 0xd154bda2UL, 0x6e724111UL,
- 0xeca8807cUL, 0x548c96d5UL, 0xd45e19b6UL, 0x3ba3470aUL, 0x68233583UL, 0xc8e7b15cUL, 0xeca18747UL, 0x736b6c71UL,
- 0x453fdbaaUL, 0x91c269fbUL, 0x865d3315UL, 0xeb3bb493UL, 0x49055d6fUL, 0x2dc3506aUL, 0xe070fc87UL, 0xc505c9e8UL,
- 0x44a6e3a8UL, 0x450b4256UL, 0xf4a84f44UL, 0xf4fed6e0UL, 0x55d312a0UL, 0x99057259UL, 0x35e3aefaUL, 0x2bce3816UL,
- 0x945d3fa0UL, 0xbae3050fUL, 0x6de8c6fbUL, 0xdda9e74aUL, 0xb10f4f7cUL, 0x7ac32f3bUL, 0x9a223b01UL, 0x8e718656UL,
- 0x8363779eUL, 0xe924cca9UL, 0xb499421cUL, 0xb5d2f1a1UL, 0x2a2c8c2aUL, 0x7d0a75a0UL, 0xc6cb3123UL, 0xbeb7ed4cUL,
- 0x22c8672bUL, 0x73348d95UL, 0x2c9a2d72UL, 0x6f201d28UL, 0x53c357ceUL, 0xce5ccc3eUL, 0x7770f5c3UL, 0xc9b656b6UL,
- 0x87435794UL, 0xf08461beUL, 0x851d28c9UL, 0x5f1a4092UL, 0x8f03b2b7UL, 0xada298aUL, 0x5454f538UL, 0x22632a6eUL,
- 0xca1341d9UL, 0x2d0e9cb9UL, 0xb14e1561UL, 0x1068131eUL, 0x7a0875f7UL, 0xab69672cUL, 0x2e71ec40UL, 0xdb1a4408UL,
- 0xa6c2f690UL, 0x14396968UL, 0xc3902cf3UL, 0xb9f5f128UL, 0xb6ff7b04UL, 0x7c8b7cc6UL, 0x11ffb337UL, 0xd3a1d37dUL,
- 0x1ff37a9UL, 0xa965477eUL, 0x1cbfeef1UL, 0xc5927444UL, 0xd5de63dUL, 0x30ce2407UL, 0xdf5a1030UL, 0xf5bd5046UL,
- 0xb990d923UL, 0xc1dbe753UL, 0x85566adeUL, 0x77188157UL, 0x7849301UL, 0x773c2be5UL, 0x27927d70UL, 0x234b2b7dUL,
- 0x87e22228UL, 0x7fe8e7c6UL, 0xef0b97ecUL, 0xfe831965UL, 0xfa6b836dUL, 0x7308a745UL, 0xa9c9da91UL, 0xcc2979d3UL,
- 0x3006b588UL, 0x36cc8b35UL, 0xfb2d1f38UL, 0x178f9872UL, 0xc1a5c068UL, 0xae9f33a5UL, 0x4aa01a2aUL, 0x899c9022UL,
- 0x1b26bc27UL, 0xacec7d92UL, 0xe6066809UL, 0xe288318dUL, 0x50800c0cUL, 0xcbd3fa4fUL, 0xa4ac356fUL, 0xca091ffbUL,
- 0x74926b43UL, 0xb9097f6UL, 0xcd62e91fUL, 0x1fccd44eUL, 0xd7e51519UL, 0x87c14338UL, 0xb78be653UL, 0xfeba7acaUL,
- 0x8616ad3UL, 0x9733f123UL, 0xd32e4bb8UL, 0x877ff5d6UL, 0xe2de87baUL, 0x75f4166UL, 0x22c73707UL, 0xea31abfaUL,
- 0x816b73edUL, 0xfea5ba6fUL, 0xae733f3UL, 0xa16c13afUL, 0x57495c39UL, 0x727f6ba2UL, 0x24fb80d8UL, 0xeb4b05f4UL,
- 0x533f400cUL, 0x3dd68fedUL, 0x8049706dUL, 0xc65e1079UL, 0xbb9dd117UL, 0xe4127472UL, 0x5d8271b6UL, 0x8b198d92UL,
- 0xb06363e2UL, 0x809c7b5dUL, 0x37e536faUL, 0xe9ac961eUL, 0xd0ee7a97UL, 0xf2db6edbUL, 0x806fc957UL, 0xa8b076a2UL,
- 0xf6ce9c26UL, 0xc17f16fUL, 0x6b09825fUL, 0x13f6bb76UL, 0x25d370adUL, 0x8fdb2639UL, 0xb955d8c1UL, 0x2d23b930UL,
- 0x93fffe49UL, 0x9eac43a0UL, 0x5055ed05UL, 0x34e637e2UL, 0x4b7a40fbUL, 0xee9a9db6UL, 0x99474c73UL, 0x8e394b5aUL,
- 0xf25ac823UL, 0x1bde98a3UL, 0x2b446c92UL, 0xa8ff251cUL, 0xacdf26ebUL, 0x96aef9acUL, 0xa78b7af5UL, 0x8c97634bUL,
- 0x1a847be6UL, 0x2c2cf10fUL, 0xd0f25b9eUL, 0xcb363337UL, 0x99f3ca4aUL, 0xfbf7dd00UL, 0x3494818bUL, 0xc2ef54a8UL,
- 0x39993c6UL, 0xc6862e60UL, 0x2d904b53UL, 0x4f35fc3aUL, 0x287097b1UL, 0x18c6af9fUL, 0xf73c6fc2UL, 0xe12fc820UL,
- 0xf1698618UL, 0xe6961991UL, 0x552349d8UL, 0x3684d7baUL, 0x3a3b0531UL, 0xd2ab6eabUL, 0x9b484b49UL, 0x42638c92UL,
- 0x9b9bd609UL, 0x4bbc1435UL, 0x874809b7UL, 0xa56d2f9UL, 0xfc148b2dUL, 0xc22a4232UL, 0xfceadd57UL, 0x72bb7b2fUL,
- 0x56aa96adUL, 0xa17167f0UL, 0xa30f28d5UL, 0x84e3aa91UL, 0xef6347a7UL, 0xe9d10ad1UL, 0xf48c8162UL, 0xec6a6e07UL,
- 0xb8fe93a0UL, 0x8cc420eeUL, 0x3b83e545UL, 0x1ec66cb6UL, 0xadddb0d7UL, 0xbcce7924UL, 0xd5ca9fd1UL, 0xf3ad3b1dUL,
- 0x3505ee34UL, 0x4fba111cUL, 0xdb999eeaUL, 0xc140590fUL, 0x322aac49UL, 0x4533b329UL, 0x3b35083cUL, 0x51ca2ca4UL,
- 0x87d3cd41UL, 0xa7eb81fbUL, 0xcacfde88UL, 0x6e3f753bUL, 0x12de103eUL, 0x6aaa507eUL, 0x499dac5cUL, 0xc2e18ba8UL,
- 0x4781d611UL, 0xe7f470a3UL, 0xf56f0b7eUL, 0xd1e8268aUL, 0x529fe657UL, 0xb6cb9af6UL, 0x77c15de0UL, 0x29b91102UL,
- 0x44030460UL, 0xd2ed14c4UL, 0x83493c33UL, 0xa373f042UL, 0xbf13d7ffUL, 0x4591c6a2UL, 0x90d9d462UL, 0x944dcf89UL,
- 0x8f261718UL, 0xc69d60bbUL, 0x684c442eUL, 0xde3d9921UL, 0x27853374UL, 0x9541d1bcUL, 0x22ccf8d2UL, 0x377d8a63UL,
- 0xe8d1eb4eUL, 0x59e8f38cUL, 0x832fc225UL, 0xd9ac73e2UL, 0xaec43e42UL, 0xf411f9b8UL, 0xa2d10860UL, 0x179374bbUL,
- 0x8e109ea2UL, 0xb4a14414UL, 0xdc983cd1UL, 0x46c07fe6UL, 0x78a62c1aUL, 0xc41edd92UL, 0xf2d72d3bUL, 0x88230174UL,
- 0x4125fcafUL, 0x3ace276cUL, 0x462da854UL, 0x1ed7ebc0UL, 0x98f9f98fUL, 0x34e3d84cUL, 0x1f03fda8UL, 0x91e7c847UL,
- 0x2d96935dUL, 0x84a34252UL, 0x72d95b19UL, 0xa4d586ddUL, 0x26d9fa13UL, 0x6562f1ffUL, 0x8194120bUL, 0x6e22e7d8UL,
- 0x62818193UL, 0x8f979892UL, 0x85305232UL, 0xae4bd596UL, 0x51f78c0fUL, 0xf32679d9UL, 0xf982d31cUL, 0x838165e2UL,
- 0x610a50b7UL, 0x673dc19aUL, 0xb50bcfb6UL, 0x86a4b653UL, 0x86915223UL, 0xe20c234cUL, 0x174bb004UL, 0x61247e4cUL,
- 0xa3189e6aUL, 0x5d9c81b1UL, 0x45673092UL, 0x2f3ec813UL, 0x4d2b70cUL, 0x56cab1e5UL, 0x5ec92b8fUL, 0x8d94856UL,
- 0x82d9f4f2UL, 0xa55770c1UL, 0x8d8bc71aUL, 0xa4572421UL, 0x4029823fUL, 0x3000f02UL, 0x9cc4c131UL, 0x688b806dUL,
- 0xa451b427UL, 0xd1fb98eUL, 0x4fc05c6bUL, 0xb59f87d3UL, 0xe9905edbUL, 0xd1cd5897UL, 0xfce43907UL, 0x484a127fUL,
- 0x2bcf367dUL, 0xe4f4a92dUL, 0xbb5621baUL, 0x1a7baa3eUL, 0x2080ee84UL, 0x9f9aef05UL, 0xc08c09e7UL, 0xa5dfb60eUL,
- 0xe1f3f037UL, 0xec09231cUL, 0x693d8610UL, 0x11750507UL, 0x7768a574UL, 0x2280b572UL, 0xcebd9c9aUL, 0x83229d39UL,
- 0x76bbfd06UL, 0xd0b15778UL, 0xd32f5406UL, 0x59205104UL, 0xe4387577UL, 0xa7035a26UL, 0x833a9e8dUL, 0x5271a98eUL,
- 0x20b12517UL, 0x690c7b51UL, 0x919772c5UL, 0x5a91f115UL, 0xa42ff04dUL, 0x12c638a8UL, 0x14db1586UL, 0xf93a9120UL,
- 0xc3360fc7UL, 0xae6bc968UL, 0xf404688fUL, 0x406d69e7UL, 0x2e3cd0cbUL, 0x1f1fde79UL, 0x9bfa81baUL, 0x74be4e30UL,
- 0x2b011447UL, 0x2f5a5654UL, 0xe1a739dfUL, 0x18ec4965UL, 0x4c44ae89UL, 0x188c8f60UL, 0x89d62199UL, 0xc322f6aeUL,
- 0xcf02fb20UL, 0x7f34ed1bUL, 0x5a81d96aUL, 0xdc2d18a3UL, 0x145f3203UL, 0x30603144UL, 0xbb47c92UL, 0x489f3e60UL,
- 0xd14d421eUL, 0xd71c6803UL, 0xda89c067UL, 0x37cbf2bdUL, 0xe6397a79UL, 0xf2a6dfa7UL, 0x1c88b98UL, 0x86249df5UL,
- 0x2160b7dfUL, 0xfa36599fUL, 0xfe1fba78UL, 0x8073d6f7UL, 0x44f1bebeUL, 0x90d6c3abUL, 0xf5e9afcbUL, 0xe9bfb878UL,
- 0x35eea7afUL, 0xd73a8c96UL, 0xe194bcf5UL, 0x9116211cUL, 0x3b4ad4d9UL, 0x3d34a826UL, 0x21d9c311UL, 0x5d438cf9UL,
- 0xc96ea9a6UL, 0x644646ffUL, 0x6d2b3e00UL, 0xfd4801e7UL, 0x18d5811dUL, 0x1b12e36eUL, 0x734e6d25UL, 0xec4f9478UL,
- 0x359a592cUL, 0x3e2d2668UL, 0x588f7647UL, 0xb7800f74UL, 0x3d213540UL, 0xe73635feUL, 0xa75e04e4UL, 0x881a8fc1UL,
- 0x8b9cff09UL, 0xf80edfe1UL, 0x62b3899eUL, 0x9c1a5db3UL, 0x6edac689UL, 0xc714af77UL, 0x4d158e42UL, 0x7e7ecd98UL,
- 0xa84372c8UL, 0xd982f8feUL, 0xd2fef8eeUL, 0xc3d8485dUL, 0x544dd5b0UL, 0xaa7a06ebUL, 0xcb848c85UL, 0x8e4efc92UL,
- 0xe16b2dcdUL, 0xaadc73b3UL, 0x8d5380f5UL, 0xf0d4a16UL, 0x434197a2UL, 0x697a3503UL, 0x23556634UL, 0xfc03fd53UL,
- 0x9718f6dbUL, 0xd1afd968UL, 0x12ab3f56UL, 0x389c4131UL, 0x68f1ebfeUL, 0x24fcb82cUL, 0x7d9e8006UL, 0x31ab6383UL,
- 0xd2a0ce9UL, 0xb1ec3c37UL, 0x2ac7f99bUL, 0x2c4f68caUL, 0x5d97f8e1UL, 0x961f55c1UL, 0x424199c6UL, 0x9e770f31UL,
- 0xc8fc02b5UL, 0xea7e616UL, 0xb51a74a2UL, 0xc182fb58UL, 0xad62f64aUL, 0x469503a5UL, 0x264a2699UL, 0x6b396065UL,
- 0x5ec6efe0UL, 0xe7bf1262UL, 0xba79e93cUL, 0xaac820a6UL, 0x2a060e9dUL, 0x5052d90UL, 0x1a498617UL, 0x2b1c7df0UL,
- 0x7fd871bfUL, 0xd9ae8241UL, 0xd3421483UL, 0x6558a25cUL, 0xa0915a39UL, 0x9f8fbf20UL, 0x8adee879UL, 0x641ad89fUL,
- 0x90c5f92eUL, 0xfa122e4dUL, 0xf3552911UL, 0x4104e16bUL, 0x9d67421bUL, 0xce628fa0UL, 0x79652188UL, 0x81ccf397UL,
- 0x631cc54bUL, 0xd0fe57e9UL, 0xaa5e93a7UL, 0xd65d4520UL, 0x3ecc908eUL, 0x9dd1c68bUL, 0xcd1ea333UL, 0x3c4f1df8UL,
- 0x7237828eUL, 0xcb79291cUL, 0xb6f70fa6UL, 0xdb54c3a0UL, 0x10235a28UL, 0x35cc101eUL, 0x84e41906UL, 0xcf77c13cUL,
- 0x6247bc49UL, 0xf2b04388UL, 0x65d69f35UL, 0x72830c3dUL, 0xfbb2da08UL, 0xc128f266UL, 0x394e90a7UL, 0x316ce785UL,
- 0x3e69249aUL, 0x8729b0b1UL, 0x60aa2364UL, 0x5fcebae3UL, 0x4201e367UL, 0x7ee3bdb0UL, 0xfe4b5609UL, 0xd6cdf865UL,
- 0x118ad798UL, 0x48da443aUL, 0xa907b8cbUL, 0x8a89848cUL, 0xfd6222adUL, 0xc256a23aUL, 0xbd1ec4e7UL, 0xd4fd513bUL,
- 0x6cd2fb71UL, 0xbc2f618fUL, 0xb21d7cf9UL, 0xb5737961UL, 0xaae1f52UL, 0xfedb3824UL, 0x2cc5c01bUL, 0x664168d1UL,
- 0x6eb3e1b1UL, 0xcf559a6fUL, 0xcfc8ef69UL, 0xe051ca99UL, 0x61bcf33aUL, 0x98274788UL, 0x41adf3b2UL, 0x352bd9abUL,
- 0x78d0a8e2UL, 0xa25b7fa3UL, 0xddff1a65UL, 0x2db8fe2eUL, 0x488dd326UL, 0xf79a3868UL, 0x5610e753UL, 0xa5f67de0UL,
- 0x34e5eeccUL, 0x77a1d91dUL, 0xb52bc7cfUL, 0x5c90c2fbUL, 0x41ed2f0UL, 0x675dadecUL, 0xf3b3a3aeUL, 0x8af860b9UL,
- 0x57dbd4c0UL, 0x93c8e633UL, 0xd45d892fUL, 0x86d80bf0UL, 0xe98cdc94UL, 0x118fda9UL, 0x38bc69eaUL, 0x21819a82UL,
- 0x1df9f5d1UL, 0xb99ab450UL, 0xe59ed22fUL, 0xa4eef5UL, 0x223b68f2UL, 0xdc76c6cfUL, 0xc4c7da1UL, 0x702de06fUL,
- 0x9aec94fcUL, 0xed9d1a6fUL, 0x5f04f369UL, 0xe6845131UL, 0x8cc49da0UL, 0xe4491ebbUL, 0xffcd0152UL, 0x2dc301faUL,
- 0x4dcb254dUL, 0x38f1ddaaUL, 0x7c619c07UL, 0x906c2639UL, 0xd8a03622UL, 0x5a75c15aUL, 0x7e3cf2aUL, 0xf13a7b92UL,
- 0x4827d602UL, 0xc1c15156UL, 0x999f1d90UL, 0xa6dbea89UL, 0x9f5353c6UL, 0xa2ee8ed8UL, 0x1d51c60aUL, 0x6c4cdc83UL,
- 0x2ab49dc4UL, 0x359d5972UL, 0x7ab23993UL, 0x6baa4569UL, 0x34f3286fUL, 0x6244aa32UL, 0xa37836cUL, 0x22d8a4d5UL,
- 0xc65dfb99UL, 0xaaefb00fUL, 0xc69c48d5UL, 0xced887a2UL, 0x4acf161cUL, 0xdb5b5650UL, 0x1597d364UL, 0x4e22047UL,
- 0xfe8b11a5UL, 0x8b7c8c42UL, 0xeec427b5UL, 0xa7ef4c9UL, 0x8ec1b6dbUL, 0x7fbceac3UL, 0x1c445e1cUL, 0x8ce13c9aUL,
- 0xf9b1ee8eUL, 0xa0788969UL, 0xa8c5742dUL, 0xb4408b5cUL, 0xede8a427UL, 0xbe7f56d0UL, 0x4d688028UL, 0xcdbc7243UL,
- 0xc894b9c5UL, 0x76a85fc1UL, 0xec31a564UL, 0x42773cb2UL, 0x50118243UL, 0x1e3c295cUL, 0x81a15eddUL, 0xc2244554UL,
- 0xce7e55b4UL, 0x79da69d5UL, 0xcf73a620UL, 0x9055baf7UL, 0xc5afe6feUL, 0xb3f9e84aUL, 0xa6198a20UL, 0xb4bd071bUL,
- 0x17737db0UL, 0x30ff44fdUL, 0x987843ffUL, 0x1d9a164fUL, 0x3d2be754UL, 0x3304b0e6UL, 0x9d82a80cUL, 0xce8a03b6UL,
- 0x7770815UL, 0x15e89cd5UL, 0x8a0c9e04UL, 0x9869ce6cUL, 0x5aa7b72fUL, 0x12706a44UL, 0xc106d9dUL, 0x6ed89edUL,
- 0x4ae9cc5bUL, 0x7e739fddUL, 0x68227041UL, 0x7ae4455bUL, 0xb7d7ccccUL, 0xf1fe0c25UL, 0x9e39cedbUL, 0x85a6cee9UL,
- 0x8b61070bUL, 0x7bcb0f79UL, 0x63cbfe8cUL, 0x68958039UL, 0xb6c8e748UL, 0x5b81cc9bUL, 0x59e8b7eeUL, 0x19b68e5bUL,
- 0x9dfa592fUL, 0xfbc837dfUL, 0x28221b0fUL, 0xefa21aefUL, 0xbff424c8UL, 0xa1452c62UL, 0xf698f4f3UL, 0xd74357a4UL,
- 0x4846ca53UL, 0xb794affUL, 0xbf405fefUL, 0x85b371dcUL, 0x59ae29cUL, 0x7192f4a9UL, 0xa2dd7660UL, 0x901d8feaUL,
- 0x1ab44efcUL, 0xceed62c1UL, 0xa8349573UL, 0x53b63579UL, 0x1dabf94fUL, 0x8ce395a7UL, 0x5727b83bUL, 0xeca0c872UL,
- 0x36dafe0aUL, 0x97ae2f6eUL, 0xca1cca8bUL, 0xa5d47cabUL, 0x9687a068UL, 0x31b8a059UL, 0x2371ec06UL, 0xf7f49eedUL,
- 0xe1ff5ccbUL, 0x7e64a26fUL, 0xe7cf270UL, 0xc0da6a4aUL, 0x28ef946fUL, 0xeaa52afbUL, 0xd9b940ddUL, 0xfcf34163UL,
- 0xd37aa81dUL, 0x72957680UL, 0x40806710UL, 0xc25825b4UL, 0x9dc77589UL, 0x7367d48aUL, 0x65f3e8aaUL, 0x1119332bUL,
- 0x32d986b9UL, 0x906795a7UL, 0x2adc9be2UL, 0x9761ddf4UL, 0xd4eba240UL, 0xfadf068cUL, 0xb91389c7UL, 0xaafcbcf3UL,
- 0xff4c4fa6UL, 0xd97decd2UL, 0xe97a7428UL, 0xd2c3896cUL, 0x915808d6UL, 0x91a00cb6UL, 0xf0baec7bUL, 0x2e005b9fUL,
- 0xf54c2385UL, 0x4ac855ebUL, 0xd4773235UL, 0xb14d35e8UL, 0xdd24d1ceUL, 0x86faf7f0UL, 0x54a4be1dUL, 0x694282fUL,
- 0xa1ddfcb2UL, 0xd551884eUL, 0x2e91b3dbUL, 0xc68ec76UL, 0x27189904UL, 0x3100abddUL, 0x8c095b2UL, 0x2f0d6e03UL,
- 0x9e3acfdeUL, 0xfd51ba5dUL, 0xbb071598UL, 0x1003f059UL, 0x6f9eef9UL, 0x9898712fUL, 0xfc68b7ecUL, 0x2ae0daecUL,
- 0xe4edc5fUL, 0x6abeb3d0UL, 0x21960cefUL, 0xc03c3aeUL, 0x15fdc33fUL, 0x18456be7UL, 0x16d27ef3UL, 0xe9cfa155UL,
- 0x9b04c324UL, 0x13b6fae9UL, 0x73413f8bUL, 0xe72347d0UL, 0xbdc4874cUL, 0xe96ee23dUL, 0xd485b848UL, 0x394f835fUL,
- 0xd04bc256UL, 0x8f64edefUL, 0xeb786c2fUL, 0x441af841UL, 0xc5bbbe74UL, 0x949ea0a1UL, 0x198cecdbUL, 0xddd6c13dUL,
- 0xef9f0881UL, 0xf8871a89UL, 0x89c8a613UL, 0xc79c9fbdUL, 0x98e8b33aUL, 0xee67b89aUL, 0x89482d41UL, 0x7f674cefUL,
- 0x9f99b03eUL, 0xd6c8d1d3UL, 0xe73748ddUL, 0xa347e4e5UL, 0xdf454d65UL, 0xdd189176UL, 0xc318cb07UL, 0x156b23a6UL,
- 0xbe245473UL, 0x6ab8df60UL, 0x44460665UL, 0x489e295eUL, 0xab4ebb4aUL, 0x2400fa3UL, 0xd477830UL, 0x472f0f31UL,
- 0x32fedbb0UL, 0x15a50034UL, 0x9d2466d8UL, 0xf18b7f4eUL, 0xe8226217UL, 0xc5aeb632UL, 0xb684167aUL, 0xf9567166UL,
- 0xd6e5b9cfUL, 0x42e9d48fUL, 0xf9fd44f9UL, 0x275e19a5UL, 0xfe288a40UL, 0x511698bbUL, 0xca708099UL, 0xaac2bc87UL,
- 0x299c7ebcUL, 0x60abf55aUL, 0xdf983b19UL, 0x4a3abd73UL, 0x233b5904UL, 0x17bfb237UL, 0x10591ca6UL, 0xacdc596eUL,
- 0x31f2f6aaUL, 0x63d784b0UL, 0xd82d3cb7UL, 0xa8d2b1b4UL, 0x4ef8d2bdUL, 0xea026ec1UL, 0x93424c7dUL, 0x69e20cdfUL,
- 0x2766ef16UL, 0xd86663e2UL, 0x406bc165UL, 0x4d54a682UL, 0x6f6a64f7UL, 0xa2402b05UL, 0xc6c546caUL, 0xc86efd6eUL,
- 0x4884b00UL, 0x5160119bUL, 0x68d849acUL, 0x86b4db23UL, 0xc72b3e07UL, 0x9d1eadaUL, 0x99d981b9UL, 0x201ac691UL,
- 0xdc66b0d2UL, 0x278bba66UL, 0x290ce353UL, 0xae26c58aUL, 0x4e0216bfUL, 0xf1a77800UL, 0xf0a57df7UL, 0x7ce5a173UL,
- 0x63e984c9UL, 0x73f97f20UL, 0xb0fcffdbUL, 0x89582c62UL, 0x7a3d6c8UL, 0x3eb93528UL, 0x359c3e7bUL, 0x3617f09cUL,
- 0x8f28346aUL, 0x37afbd61UL, 0xa63e9c66UL, 0xf2149f20UL, 0xb2c91957UL, 0x638c332dUL, 0xbe64ad6bUL, 0x10c376eUL,
- 0x68b38c7aUL, 0x926f584fUL, 0x3f07d3d8UL, 0x868b64f4UL, 0xf3f5f5a4UL, 0xe09b46fbUL, 0xfa837dfeUL, 0xd806ef96UL,
- 0xf4f468e2UL, 0x539d574UL, 0xd901b287UL, 0xc78ef8d4UL, 0x56ea5ec5UL, 0x46d8e586UL, 0xa2bf27c1UL, 0x8e0505a5UL,
- 0x9c1e0a5fUL, 0xf586ea97UL, 0xae81ee4aUL, 0xb0fdb723UL, 0x330a661fUL, 0xdf83e6d5UL, 0x204afabbUL, 0x10cfb926UL,
- 0x91129e3fUL, 0xc4a7d0b4UL, 0x33bd34daUL, 0xb2d148d7UL, 0x96482adeUL, 0xc60a3e7fUL, 0xc6e539f7UL, 0xf9f42958UL,
- 0x551d5b9aUL, 0xbc43ce10UL, 0xf639478cUL, 0xad8f10c3UL, 0xacb000c8UL, 0x16e88071UL, 0x8d4b3803UL, 0xd2574f31UL,
- 0x2d533e33UL, 0xbf255c6eUL, 0x477a3023UL, 0xc95a6f2aUL, 0xb6a4621eUL, 0x21c92546UL, 0x4b9ddfbUL, 0x1d46c16aUL,
- 0x216f22b4UL, 0x8351d787UL, 0x6ead1f45UL, 0x5cf319faUL, 0xad2b0964UL, 0x664d87adUL, 0xbd063222UL, 0xff9d3cfaUL,
- 0x5913d42bUL, 0x32ec1b24UL, 0x8f22efa9UL, 0x588ada7eUL, 0x62639adeUL, 0x678f4a6dUL, 0x21a4b201UL, 0x59e8bb94UL,
- 0x7da4a61aUL, 0xdf39bb44UL, 0x2053e5bUL, 0x72f8b70UL, 0xc61881bUL, 0x8a1d5707UL, 0xbb5cbe52UL, 0xfdaaece0UL,
- 0x83a08870UL, 0x1f7a43ecUL, 0x91921115UL, 0x4be8e670UL, 0xf7defc1UL, 0x5501498eUL, 0x5fc93f69UL, 0x41a0bc13UL,
- 0x8fd6b672UL, 0xac0424c0UL, 0xea3abbc7UL, 0x455bb4aUL, 0x7f6be9f0UL, 0x9f74e9eeUL, 0xd70fe0f9UL, 0xb93bb6abUL,
- 0x4315b10aUL, 0x9bcaecd0UL, 0x771f4745UL, 0x256b5836UL, 0x2ca39dc9UL, 0x9442775eUL, 0x65bde132UL, 0x65f1cd0dUL,
- 0xa4471f2fUL, 0x1428d979UL, 0x9d55b7d4UL, 0xf2a5ead8UL, 0x6a952f0dUL, 0xf453f8cfUL, 0xcedb9d69UL, 0x1153e3d9UL,
- 0x11e2fa07UL, 0x2c191fd2UL, 0x3f9bf46aUL, 0x3a9622d4UL, 0x9ca19bf6UL, 0x4b8e897eUL, 0xa8d84441UL, 0x4310ad9dUL,
- 0x8309c973UL, 0x25870803UL, 0xc073a035UL, 0xbd3d3e4bUL, 0x14b3fedaUL, 0xc6140944UL, 0xa705e251UL, 0x6d2d1b4bUL,
- 0xd9a25006UL, 0x1fe112b7UL, 0x92cec768UL, 0xee018f5UL, 0x380f6894UL, 0x9e039161UL, 0x3fb9c871UL, 0x5e43caa4UL,
- 0x1b8a7dcUL, 0x954ce50bUL, 0xf255d704UL, 0x6eed5748UL, 0xbbc21d15UL, 0x9ec2095aUL, 0xe461675cUL, 0x4d979cc4UL,
- 0x75e5f74aUL, 0xc093b810UL, 0xf51b8156UL, 0x6ab8a57eUL, 0x607869UL, 0xda08a9dfUL, 0xe313934aUL, 0xa795ed5dUL,
- 0x475f57b9UL, 0x439f3304UL, 0x649e21c5UL, 0xea49a581UL, 0xdf6c4ee3UL, 0xd618bb2fUL, 0x2043771eUL, 0xbf80e391UL,
- 0xe36302d3UL, 0xc53e34d6UL, 0x27af9cb2UL, 0xc94af8c7UL, 0x1c09994dUL, 0x49787e9aUL, 0x410cb26fUL, 0xafde91d5UL,
- 0x5d6b06aeUL, 0xac614cbfUL, 0x388bc318UL, 0x3e464b36UL, 0x5a067edeUL, 0x9080f267UL, 0xbe178ea9UL, 0xaf4e04a9UL,
- 0x47b0e418UL, 0x2f377aa1UL, 0x1a174484UL, 0xed206452UL, 0x4ff62adcUL, 0x72936f2dUL, 0x3d017c5cUL, 0x43f33980UL,
- 0x23163a2aUL, 0x33cff183UL, 0x418f6e33UL, 0x3bb05ac8UL, 0x476519bbUL, 0x51035d9eUL, 0xcda31e8cUL, 0xd15d722eUL,
- 0xc7eb8cdfUL, 0x4fae1bdUL, 0x6a79780UL, 0xa1440d48UL, 0x52d594cdUL, 0xdfa599aUL, 0x8c3cbaa0UL, 0x77188155UL,
- 0x8a1e12baUL, 0x140bc6c5UL, 0xc2830d6aUL, 0x859a64e6UL, 0x9491682cUL, 0xef3467e9UL, 0x3c2ab895UL, 0xcd6a8a02UL,
- 0xa23e20a9UL, 0xfd47341fUL, 0x44a5891aUL, 0x2ba1b0b4UL, 0xcdd8c6fcUL, 0xf9e68142UL, 0x75c0d746UL, 0x2ce90574UL,
- 0x2640aa47UL, 0x890a1ed5UL, 0xcfe65dc5UL, 0xb78b03a5UL, 0xf8210382UL, 0xe067ea1fUL, 0xcd2a1f50UL, 0x838f003fUL,
- 0xa877cac8UL, 0x6a8bb7ceUL, 0x4e6637UL, 0xd64e59c7UL, 0x1ffedfe0UL, 0x2eab0ecUL, 0x13e53385UL, 0x93dfb4b8UL,
- 0xb9eb2993UL, 0xe99aeddbUL, 0x27e8a566UL, 0x9818f9fcUL, 0x4a1d18baUL, 0x13f0e864UL, 0xe5226cefUL, 0x6e2941a6UL,
- 0xed10b15fUL, 0x3948892dUL, 0xa4becf5UL, 0xe54fe9e0UL, 0x5a95d382UL, 0x9a118541UL, 0x29fc22c8UL, 0x2c7a308cUL,
- 0xceb56fabUL, 0xfb98d821UL, 0xabc5831cUL, 0xefea73b2UL, 0x4a5b8be5UL, 0x753df3e5UL, 0x9145b046UL, 0xe93eaf96UL,
- 0x5efaf3e1UL, 0x2d317061UL, 0x894f5157UL, 0xe7d74345UL, 0xd675990UL, 0x19cf2f9dUL, 0xa20f5b88UL, 0xf74e14aeUL,
- 0xadbc3777UL, 0xb357e1a9UL, 0xd4873456UL, 0x253a890dUL, 0x6771e0eeUL, 0x296fa2b0UL, 0x49c10fe3UL, 0xcbcaa004UL,
- 0x95390996UL, 0xc71ac078UL, 0xc2075515UL, 0x30a52318UL, 0x11bd3c3bUL, 0xb0ca3283UL, 0x8ac6bda7UL, 0x261d42a4UL,
- 0x6e2fb517UL, 0xdbace7c0UL, 0x9f39c4b1UL, 0xf70364d0UL, 0x5a994984UL, 0xb18d0b82UL, 0x47be62b3UL, 0x6a7d92eUL,
- 0x2707e8a6UL, 0x83f5d2b0UL, 0x78915c40UL, 0x5a92aedbUL, 0xdd41937eUL, 0xe5594532UL, 0xf744db4aUL, 0x376c9856UL,
- 0xf2c7291fUL, 0xdb176d7aUL, 0xc08e2eb7UL, 0xfad3f6c1UL, 0xbdd6d803UL, 0xc9930e07UL, 0xeab6c289UL, 0xdec4e61bUL,
- 0xdd92800eUL, 0xb17d481cUL, 0x9359127cUL, 0x52fd5cb2UL, 0x12d95875UL, 0x384f48f1UL, 0xfa538621UL, 0x5cd8fdafUL,
- 0x7349c3a4UL, 0x4cd0fbbdUL, 0xefbf478dUL, 0x2fdb9aedUL, 0x90526f98UL, 0xa4fb65dfUL, 0x62c08065UL, 0x1adbb20bUL,
- 0xeea66a51UL, 0xa611b08UL, 0xddd57a16UL, 0x54020ee8UL, 0x1cf2bb22UL, 0xa063d4a7UL, 0xcf0d374UL, 0x6e0f4fccUL,
- 0x5dd48904UL, 0x87f6a54aUL, 0xde7396ffUL, 0xe9c35a42UL, 0x1acfa877UL, 0xb23daabfUL, 0x5d8eb953UL, 0xdb3b55d9UL,
- 0x7b70bbe2UL, 0xf183a5adUL, 0xf7fedd2cUL, 0x6ba0e50eUL, 0x62caea49UL, 0xe454f6fUL, 0x9f6eb045UL, 0x4654d3f0UL,
- 0x74e5f85dUL, 0xc87b30f3UL, 0x46a23f27UL, 0x74b8ffadUL, 0x7a587406UL, 0x1b2ea028UL, 0x641a9688UL, 0x3f1f6201UL,
- 0x9d13bbfeUL, 0x402ec644UL, 0xbc656419UL, 0x78ebeed1UL, 0xd3100c0cUL, 0x12868ef0UL, 0x951109ddUL, 0x487183c6UL,
- 0x7abac81UL, 0x34ae6731UL, 0xd9bfaf6fUL, 0x7125ea87UL, 0xb9885f83UL, 0xca5639e1UL, 0x7146f5fUL, 0xc36579cbUL,
- 0x9ce0b663UL, 0x185887ccUL, 0xcd91540UL, 0x45bfaecbUL, 0x953e390dUL, 0x4001f9a2UL, 0xb94658bcUL, 0xe99017b5UL,
- 0xefae03eeUL, 0xb14fb571UL, 0x985752ddUL, 0xff2cf81dUL, 0x9f4318efUL, 0x1cd94b4aUL, 0x6bd3322UL, 0x711d158bUL,
- 0x12c7e27aUL, 0xc74b5ae2UL, 0x4e5791f9UL, 0xad53aa3bUL, 0xb7f00dd2UL, 0xe59ae047UL, 0x9bbf337cUL, 0x78d78c7dUL,
- 0x9c8e1825UL, 0xcc40a019UL, 0x46458764UL, 0x7ca40418UL, 0x5c3be4eUL, 0x6542f490UL, 0xbd36c3f9UL, 0x7048237fUL,
- 0x392af68UL, 0x50f2911fUL, 0x9892c8a2UL, 0x9a52e8f9UL, 0x6d09e1b6UL, 0x598d299aUL, 0xaf5c87e2UL, 0xbb203135UL,
- 0xe8064669UL, 0x205b9975UL, 0x2d16f83fUL, 0x869b21edUL, 0x18b2bf34UL, 0x3cd9ecc3UL, 0x925bf314UL, 0xcea45956UL,
- 0xdccab8e6UL, 0x7a11cfaeUL, 0xb2970e8cUL, 0x72572c06UL, 0xc742bbaeUL, 0xe12bdadUL, 0xeae1f47fUL, 0x9462c708UL,
- 0x799ee589UL, 0xf38849e3UL, 0xc612caacUL, 0xeae43cadUL, 0xf8d64ed3UL, 0xcecd2e95UL, 0xd8e82173UL, 0xaef83394UL,
- 0xef5c2ea6UL, 0x84fac72cUL, 0x5b9ec1ccUL, 0x47765097UL, 0x3a7f4566UL, 0xd4c6c423UL, 0xa485b874UL, 0xaa897370UL,
- 0xb09be9a0UL, 0xee20921fUL, 0xd9ff1a47UL, 0x8c207f4UL, 0xda7068cUL, 0x56640dd9UL, 0x4078663dUL, 0xc6e2681fUL,
- 0x6b345550UL, 0x365a2d1cUL, 0xda4efd75UL, 0xa81cd61dUL, 0xca4def0UL, 0x6f9ce958UL, 0xbc7277f8UL, 0x6d9f8a53UL,
- 0x96601006UL, 0xc70baf22UL, 0xb45d1e58UL, 0xe264fb43UL, 0xf42d29b8UL, 0xc2eb98eUL, 0x4d819cadUL, 0xc2d38f18UL,
- 0x4a0512beUL, 0x5a16bebdUL, 0xbb8745e6UL, 0xe139ce0bUL, 0x7790e95cUL, 0xca547d3eUL, 0x3593c629UL, 0x13fbb269UL,
- 0xf1319212UL, 0x5267dae7UL, 0xd56832d8UL, 0xdaadff07UL, 0x544e1e2dUL, 0x5fe6374cUL, 0xb60fade1UL, 0x73a0ca1cUL,
- 0x965b92c8UL, 0x4163b3b1UL, 0x49c36901UL, 0xcbba1a0dUL, 0x6e9ba425UL, 0x4913e021UL, 0xadfa5e32UL, 0x71b1eb2UL,
- 0x5299bcb0UL, 0xac5afb1fUL, 0xf6b258f4UL, 0xfb0614bbUL, 0xdaa32efbUL, 0x9c01adf4UL, 0x557f57f7UL, 0x1da7164fUL,
- 0xe4a2727UL, 0xddf037c2UL, 0x22614f52UL, 0x5470f67eUL, 0xd87b2364UL, 0x1a8b324fUL, 0xcc4996c0UL, 0xa87a810fUL,
- 0x972cfef5UL, 0xde8f255fUL, 0x37d1cfe7UL, 0x76ac33ebUL, 0x5920a626UL, 0x2c06fe5bUL, 0xb572734eUL, 0xca9be990UL,
- 0xe87e9ebbUL, 0xac2f0121UL, 0xa2a41faUL, 0x5f8d1fa4UL, 0x6585d2e5UL, 0x851e3ad0UL, 0x4d26f430UL, 0x21aadeeaUL,
- 0x5b5bf122UL, 0xe052330fUL, 0x88d60ce3UL, 0x13c88642UL, 0x9589d255UL, 0x908c8b85UL, 0x23e46f4aUL, 0x3b166983UL,
- 0x1dbc7351UL, 0x8b365e99UL, 0xa29158fUL, 0xabf54021UL, 0x9cbaa2c0UL, 0xc02d9e56UL, 0x915d04e2UL, 0x6220b87eUL,
- 0x255fa5f9UL, 0xa1740d6bUL, 0x8bd82d6eUL, 0xeb1e7d55UL, 0x5b41c3b6UL, 0xa60db5a8UL, 0x271404c7UL, 0x832153aeUL,
- 0xeff1fb3eUL, 0xebeb9a92UL, 0xafb53565UL, 0x2834dceeUL, 0x16155e23UL, 0x16a090fdUL, 0x51a1c6c3UL, 0x446ab84dUL,
- 0x55ba824bUL, 0x2c18287bUL, 0xb541349cUL, 0x9a8f01ddUL, 0xb8ea7615UL, 0x3c57f0e5UL, 0x210d39e4UL, 0x7bc77a95UL,
- 0xe799092eUL, 0xb3644701UL, 0x607bf2b7UL, 0x3a989e9dUL, 0x67fab219UL, 0x8fac5b8aUL, 0xbfa7af75UL, 0x48bc18b0UL,
- 0x438edae7UL, 0x5efc98b1UL, 0x1584911aUL, 0x2715c213UL, 0x27f9e42cUL, 0x827d75e9UL, 0x51d4181dUL, 0xa523d515UL,
- 0x7c11840dUL, 0x966d3e19UL, 0x5ea53629UL, 0xbb153662UL, 0xdf888316UL, 0x56bcf141UL, 0x80aaf9dbUL, 0x2d072903UL,
- 0xed76b306UL, 0x21876f5eUL, 0x78f929e7UL, 0xea0713cbUL, 0xfb69a207UL, 0xdd40bb58UL, 0xdf9152bfUL, 0x1e9c975UL,
- 0x40db3e80UL, 0x9cd86823UL, 0xdf466feaUL, 0xef03662bUL, 0xd3c73f0dUL, 0xcc7a9271UL, 0xe899db27UL, 0x79af7c4fUL,
- 0xde3940abUL, 0x9aea0d47UL, 0xef36d448UL, 0x19550274UL, 0x923169ceUL, 0x9886257eUL, 0xfcd14b7bUL, 0x6f5eb64eUL,
- 0xe89ff5faUL, 0x69d472d5UL, 0x882a3d59UL, 0x5cdd4d2eUL, 0x88da155eUL, 0xbb260026UL, 0x5edccfa6UL, 0xc94a0fd3UL,
- 0x8994320dUL, 0x35d937aUL, 0x1dbebce5UL, 0xf3d5259fUL, 0xb05d73a1UL, 0x6fb55a40UL, 0x5c6c3bcdUL, 0x22852c6eUL,
- 0xe2ba24cbUL, 0x680d338aUL, 0x1377ab3bUL, 0xf51fe122UL, 0xd6a52fe1UL, 0x153e9fd2UL, 0xb8c6b55dUL, 0xf534c99bUL,
- 0xcba7525eUL, 0x1051686cUL, 0xa6a131ddUL, 0xb05d7cf1UL, 0x1a2ab9b3UL, 0xf71f3884UL, 0xd41c3391UL, 0x54afe5e5UL,
- 0xce9e25cUL, 0x7b084d6UL, 0x14b122dfUL, 0x25f71393UL, 0x5c50f98cUL, 0xc532b9f6UL, 0xeeade3adUL, 0x7dd29a24UL,
- 0x793b4422UL, 0x105505ceUL, 0x6f100d6dUL, 0x3570c72cUL, 0x6e7a700bUL, 0xedab0cb6UL, 0x92bd2e92UL, 0xa3adfa86UL,
- 0xa02bced6UL, 0x7d0ace7fUL, 0xb507a21UL, 0xc22dd228UL, 0x356e0d9bUL, 0xaaf982a9UL, 0x3651b024UL, 0xceb698d0UL,
- 0x490e3760UL, 0x1f606295UL, 0x2b1bd5a8UL, 0x870b340dUL, 0x5835b5ceUL, 0x4b9aa6dbUL, 0xcb5a9af7UL, 0xa99f9cf9UL,
- 0xde359bbUL, 0x11b42605UL, 0x96cb18a1UL, 0x949a7b70UL, 0x7f867ec6UL, 0x29e3624eUL, 0x1e2f9742UL, 0x82520d93UL,
- 0x47672783UL, 0xedb6bd0bUL, 0xb7f6daa0UL, 0xcd6686b3UL, 0x55ce4a12UL, 0xbda310dfUL, 0xab6d2c40UL, 0x72b44b56UL,
- 0x1733fa1UL, 0x97a7e87fUL, 0xafa23869UL, 0x8bd977cUL, 0xc803978dUL, 0x952b1c4bUL, 0x99f65af7UL, 0xf7b2b59bUL,
- 0x22d91a3eUL, 0xafde9be4UL, 0x9ff526cfUL, 0x22f1d450UL, 0x7c1892dfUL, 0x8c770cd8UL, 0x35c166deUL, 0x25f803dUL,
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL, 0x0UL,
- 0x65fc8eb6UL, 0x11afd58eUL, 0xf8cbae38UL, 0xf44ec1c2UL, 0x1a21a82eUL, 0x669c168UL, 0xbc165dbeUL, 0x5225e682UL,
- 0x165b7dddUL, 0x5fa769f7UL, 0xa62a1f66UL, 0xa5d71b9eUL, 0xe5227cfdUL, 0xa06bc899UL, 0xfaea47e3UL, 0x96c3ce19UL,
- 0x25517ab2UL, 0x6c7c5acfUL, 0x7a5996a2UL, 0x1300f529UL, 0x3b5d1c75UL, 0x3f07c46cUL, 0x64fb4693UL, 0xa0e18448UL,
- 0x8f8d32c4UL, 0x3b9ed5fbUL, 0x8bcbd9bfUL, 0x702f27b0UL, 0xb4fb0b9aUL, 0x656c9949UL, 0xe6d61f45UL, 0x162e7a80UL,
- 0xafaeb34fUL, 0x22cac5eUL, 0xc2a70f8cUL, 0x64cc1aeeUL, 0xce0753acUL, 0xe1ad0ccdUL, 0x127dc737UL, 0xda216d97UL,
- 0x105ef594UL, 0xdaa41ba3UL, 0x7a9eefd8UL, 0x336530a2UL, 0x9d40f29dUL, 0xff23a54fUL, 0x7a04eb31UL, 0x22ad2c5dUL,
- 0x46b4c285UL, 0x425e1c9eUL, 0x28f8c2edUL, 0xb7282b98UL, 0xbf6dec11UL, 0x5d7d1cf0UL, 0x953081abUL, 0x80470733UL,
- 0x1078712dUL, 0x4e5420dfUL, 0x1399d2e3UL, 0x239d7545UL, 0x57601468UL, 0xc343041bUL, 0x55cb12f7UL, 0x4a5f6987UL,
- 0xb8e46c37UL, 0xef6b4338UL, 0x42feb0f5UL, 0xc2ec5d4dUL, 0x7069fe06UL, 0x3f2b8eUL, 0xd14cbfcdUL, 0xa40b02e5UL,
- 0x7ea2c739UL, 0xf9d8944bUL, 0xaadc629eUL, 0x64c18ca9UL, 0x48908cc4UL, 0xe845a468UL, 0xb70f33c6UL, 0xcec701c0UL,
- 0x59f9717fUL, 0x92d69a82UL, 0xb40b22d2UL, 0x3704904dUL, 0x120a9e51UL, 0x431b6f64UL, 0x55b025e2UL, 0x8ee5241cUL,
- 0x8c3134b4UL, 0xd80b4e71UL, 0xcf989c23UL, 0x4cf98464UL, 0x37889d45UL, 0x38c63110UL, 0x37d9ea83UL, 0x896628b0UL,
- 0x913d2469UL, 0xd14a2fddUL, 0xf3651eccUL, 0xb7ad834aUL, 0x583f68a0UL, 0xffb30bbdUL, 0xaaef0530UL, 0x93a59bbeUL,
- 0x7d82f952UL, 0xf64dcac9UL, 0xbdd04d4eUL, 0x398f8b44UL, 0xa7d51c49UL, 0x52e00041UL, 0x2bdd03d1UL, 0x1dbb12daUL,
- 0x95c7c4fcUL, 0x3265c3a9UL, 0x386351a5UL, 0x3c0bca65UL, 0x6862a0c2UL, 0x529dbfbUL, 0x4bd2d0ecUL, 0xbaa9ed33UL,
- 0x931227f3UL, 0xc83eae8aUL, 0x5f6a250cUL, 0x864f225bUL, 0xd0ddd88fUL, 0xd6a77e4dUL, 0x8864c103UL, 0x13395470UL,
- 0xad2dce2dUL, 0xdb7cdb2aUL, 0xae8bc8d7UL, 0x1d082dffUL, 0xca56c24UL, 0x4f3918c4UL, 0x91908e95UL, 0xde9dad55UL,
- 0xedd21e0cUL, 0xac45fcceUL, 0x61139bd2UL, 0x94a30ac8UL, 0x60a4ee41UL, 0x24d46856UL, 0xc05d175bUL, 0xa5ae8fd3UL,
- 0xef6e5a67UL, 0x233357c6UL, 0x6b079a01UL, 0x37812969UL, 0x4ee0e81fUL, 0x53b4c1d7UL, 0x930779f1UL, 0xd61cb0c4UL,
- 0xec9cbeeaUL, 0x4a44893dUL, 0xff4fbda4UL, 0x2e01a3aUL, 0x1a115b94UL, 0x989936b8UL, 0xc7aa4e12UL, 0x4bf2627fUL,
- 0xa152e9b5UL, 0x13de77fbUL, 0x734641b8UL, 0x5571f73bUL, 0x236ebcb7UL, 0xd3800865UL, 0x78ce4db2UL, 0x19c83daaUL,
- 0xfec78b9aUL, 0x7ac68acUL, 0xde6c4d59UL, 0xbe778791UL, 0xd732781fUL, 0xf440434eUL, 0xde0167e0UL, 0xc0c8af4fUL,
- 0x3644091cUL, 0x4d3bc7fdUL, 0xa0ff5b5dUL, 0x424ec2fbUL, 0x81c5d6dfUL, 0xfe86162eUL, 0x3332f3dfUL, 0x4e9020a9UL,
- 0x7006ba49UL, 0x7f7cdbbaUL, 0xd714906dUL, 0xf4c6f64dUL, 0xed1b3a9bUL, 0x3bce01d1UL, 0x826af4e8UL, 0xb7a3294aUL,
- 0x61e64d2dUL, 0xa2ef269bUL, 0x9f18905bUL, 0x3bdda9b3UL, 0x584be6d1UL, 0x14497513UL, 0xfcd26c10UL, 0x9b43a43UL,
- 0x211f8086UL, 0x1a45561cUL, 0xacb43874UL, 0xb4de718bUL, 0x38068d23UL, 0x560ebacbUL, 0x214a2cb0UL, 0x1be84ff2UL,
- 0x4acbc495UL, 0xd3e49dd5UL, 0x3779c704UL, 0xd9a8e02dUL, 0x77c3d5f1UL, 0xf0f47e52UL, 0x5a3e7297UL, 0x79079e1UL,
- 0xc6ad171aUL, 0xcef9df55UL, 0x40defc27UL, 0x70c36128UL, 0xd4595778UL, 0xfcda2664UL, 0x2a706caaUL, 0xa3414aeUL,
- 0x1d45e17bUL, 0x55517c44UL, 0x2740c5b9UL, 0x7c1a153fUL, 0x64032745UL, 0x1a86f24fUL, 0x3d52a93bUL, 0x25894ef5UL,
- 0x80ed86a4UL, 0x2c7f538bUL, 0x5c446de0UL, 0x4bcc587cUL, 0x84bc3044UL, 0xea006dceUL, 0xa8bcdeb1UL, 0x1ac94d1eUL,
- 0x6682830cUL, 0x350aea34UL, 0xea4e864cUL, 0xa833d3dUL, 0xecc57bc9UL, 0xebcd6500UL, 0xeba0f7afUL, 0xa7c9887cUL,
- 0x6040a867UL, 0x3e929cf1UL, 0x7c683276UL, 0xbb01f175UL, 0x66f8c749UL, 0x9a0d682fUL, 0x302a0fb9UL, 0xd8fa2406UL,
- 0xfb388bc8UL, 0x2b8f9d7fUL, 0xd78fd673UL, 0xcd3daae7UL, 0xf24806bbUL, 0x5482083UL, 0x291279d6UL, 0x7c58d8beUL,
- 0xc146b859UL, 0x5b31170cUL, 0xc035d677UL, 0x8bcc4ac3UL, 0x846039a7UL, 0xedac5410UL, 0xb9bf8179UL, 0x9f37aa2eUL,
- 0x6cbb6143UL, 0x5fec6b1aUL, 0x14d63ca5UL, 0xb5e560e5UL, 0x5ff395c6UL, 0x7fa3c0ccUL, 0xd29a5e71UL, 0xc6a578f4UL,
- 0xb5f9bb21UL, 0x7f9cde3UL, 0x52becf82UL, 0xab9d1c29UL, 0xc8b2abe1UL, 0xc2d344dUL, 0xae450964UL, 0xccd57ef3UL,
- 0x19e6fa61UL, 0xd20c2871UL, 0xf933f543UL, 0xd03be12aUL, 0x98b555dfUL, 0x38cf9814UL, 0x789006ffUL, 0x8221ef1cUL,
- 0xec4e9281UL, 0x6cf40157UL, 0x6966aaddUL, 0x84559ea3UL, 0x9730ab79UL, 0xf609157aUL, 0x427ca199UL, 0x97256333UL,
- 0xb47877a9UL, 0x4aba992eUL, 0xf382e22UL, 0x8e77a607UL, 0x8c42ae9UL, 0xbf099c97UL, 0xb6d68fa1UL, 0x408e8e3fUL,
- 0x270f3eebUL, 0x5004b5ecUL, 0x28798ac3UL, 0x176b94baUL, 0xdb50920cUL, 0xbb8592f5UL, 0x99090040UL, 0x6e70cf16UL,
- 0x42a25628UL, 0x14a748f9UL, 0xdecb0170UL, 0xc585c0aUL, 0xf81f3c74UL, 0xcaf0f1d6UL, 0xff5938daUL, 0x42bca277UL,
- 0x79168fd0UL, 0x2f5cfb40UL, 0x29cce746UL, 0xa2261473UL, 0x4950e2d2UL, 0x1ac756f6UL, 0x7a7b8c86UL, 0x3e1976dUL,
- 0xf3f26392UL, 0xa6c31aa4UL, 0x24a01eeeUL, 0x8d7e0837UL, 0xe69e57e6UL, 0x8e346c2eUL, 0x7e9cf87aUL, 0xff0ec8b8UL,
- 0x3f8fcfa5UL, 0x7faa0643UL, 0xa98845e9UL, 0x263880bdUL, 0x7a4ad1a1UL, 0x94f720e8UL, 0x79cbbbf6UL, 0xd60fbbf2UL,
- 0x4f65cce1UL, 0x568d2ccUL, 0x4e94ab62UL, 0x77466d0aUL, 0xcb1afb03UL, 0x44c0aaa3UL, 0x7b2d54ecUL, 0x9c1f5330UL,
- 0xd7f0aaeaUL, 0x7452858fUL, 0xc75ab33aUL, 0x59bb702dUL, 0xcfc7917bUL, 0xee322869UL, 0xb12f5b8bUL, 0x3befd08cUL,
- 0xb98102a6UL, 0x4bc2d8b4UL, 0x7cf97d65UL, 0x700fe452UL, 0x1acc709fUL, 0x23494b34UL, 0xc5b4a5e0UL, 0x950f77a7UL,
- 0x47072115UL, 0x6da0a279UL, 0xf7043e82UL, 0x323eb2d9UL, 0xb885b639UL, 0x5a09becfUL, 0x467a0d4bUL, 0xb8e7e2eaUL,
- 0x1bb45562UL, 0x7d85fca2UL, 0x3f7dbe2bUL, 0x56c52UL, 0xcd40d0d1UL, 0x6ccf757eUL, 0x68ab40aaUL, 0xd366730cUL,
- 0x2b57473cUL, 0xb271ca8dUL, 0x53b1ddfdUL, 0xae5e7a21UL, 0x7bcc6a6eUL, 0x434c371aUL, 0xcb398401UL, 0x28d38f2aUL,
- 0x1bf59d9fUL, 0x7e5b26feUL, 0x970f8cfeUL, 0x9ca0ffdbUL, 0x5f06be51UL, 0x4332c65dUL, 0xe20c566UL, 0xca37a403UL,
- 0xeda4481UL, 0x601107c5UL, 0x43c634f0UL, 0x55614d0dUL, 0xe0442ed5UL, 0x1a33a6f6UL, 0xc7dff42eUL, 0xc53b8468UL,
- 0x6d788067UL, 0x43be13c0UL, 0x7575fd1fUL, 0xe3112aUL, 0xaa8f6cd2UL, 0x83ad8441UL, 0xe7098861UL, 0x45acbe88UL,
- 0x84e6de3aUL, 0xf4b94deaUL, 0xde8882b6UL, 0xe37622e4UL, 0x3f91a90eUL, 0x5813d8e4UL, 0xf0001f50UL, 0xd34eecbaUL,
- 0xb3b328ccUL, 0xbae8a09cUL, 0xb3ec583dUL, 0xbce887a3UL, 0x5d885aeaUL, 0x3d921fadUL, 0x182e437fUL, 0xd518f167UL,
- 0x1a83ee88UL, 0xad58252dUL, 0xec11c1f4UL, 0x61abf256UL, 0x638373fdUL, 0x10ba6043UL, 0x35fd364cUL, 0x8fb14481UL,
- 0x6fa6f112UL, 0x6fed6384UL, 0xef436b30UL, 0xb790c7b6UL, 0x935a6266UL, 0xb26c0038UL, 0x3e17b33bUL, 0x17a1b177UL,
- 0x3de0437cUL, 0x2bf372bfUL, 0xeec76d71UL, 0xd5e932e4UL, 0x54f21204UL, 0x40750ffcUL, 0x3a3539caUL, 0x3ea8677dUL,
- 0x8ae2250bUL, 0x88fd9c28UL, 0x5c951d3fUL, 0x3fb54139UL, 0x739e7563UL, 0x474c1dbbUL, 0xa842611dUL, 0x85610bfdUL,
- 0x4dab236cUL, 0xf042ba6eUL, 0xf4065fdfUL, 0xa94e9df5UL, 0x242473daUL, 0x3a54f7efUL, 0x9137cfbbUL, 0xb5d17d8fUL,
- 0x6608da99UL, 0x5fe55ce4UL, 0x738b3426UL, 0x437ac292UL, 0xc58310c5UL, 0xe482a7bfUL, 0x6ec23bUL, 0xf35e4606UL,
- 0xb55d520UL, 0x99a8e097UL, 0x57f59138UL, 0x183588f8UL, 0x3fb120c8UL, 0xa0ee057bUL, 0x679ca1bUL, 0x3cf918f5UL,
- 0xb308ab62UL, 0xb425dc88UL, 0xce05ba50UL, 0xc01f2c55UL, 0x12f301e1UL, 0x7f1259e5UL, 0xa0df3b43UL, 0x88442ea9UL,
- 0xa8be8052UL, 0x91eebee6UL, 0xd0546614UL, 0x649f88f0UL, 0x50015c8dUL, 0xaa9c47a7UL, 0x76de019bUL, 0x90c908e1UL,
- 0x13d36637UL, 0x7206800dUL, 0x4339bedeUL, 0x175dc3cdUL, 0xd2fb7bbUL, 0x7f6066eaUL, 0xa5a48190UL, 0x1cf0e759UL,
- 0xc97f31f3UL, 0xa19c1c34UL, 0xf893df1bUL, 0x3d7ec2e7UL, 0x77f86065UL, 0xa3449096UL, 0xae2930e3UL, 0xb0b49030UL,
- 0xce14b85dUL, 0x396c7d0cUL, 0xbec2e831UL, 0xd0dec7aeUL, 0xf6651ad2UL, 0xb6f11252UL, 0x7ccdd525UL, 0x59541caUL,
- 0x96b5371dUL, 0xc9ef702dUL, 0xb2dea96eUL, 0xd2fee636UL, 0xbfff9085UL, 0xb2305ba1UL, 0x2182db21UL, 0xcf5c40abUL,
- 0x350f7e2cUL, 0x19c4ac2bUL, 0x3eadbbcbUL, 0xea15ec91UL, 0x8ec2419dUL, 0x6cae47dbUL, 0x6504282cUL, 0xca1e466aUL,
- 0xec570e6aUL, 0xad9cf1e6UL, 0x2655f283UL, 0x3063a251UL, 0x22080a6aUL, 0x49812735UL, 0x9bc523ffUL, 0xdcfa2215UL,
- 0x1a63e064UL, 0x14393209UL, 0x67b34e41UL, 0xdde82f6cUL, 0x8a95cba2UL, 0x642edad8UL, 0x14d28b12UL, 0x49b40e0UL,
- 0x9e1a7743UL, 0x87284dc1UL, 0x6090aa23UL, 0x62d3f32UL, 0x9b8800b6UL, 0x4274b71bUL, 0xa2835cc2UL, 0x1d4ab4ddUL,
- 0xac28acf1UL, 0xd794a2dcUL, 0x885c9654UL, 0xa6bdf6caUL, 0xadf565daUL, 0x9daa28beUL, 0x3b8ad113UL, 0xf026512fUL,
- 0xa80e724aUL, 0xfb1a3cfbUL, 0xc20af6c7UL, 0x6a7b9deUL, 0x1298710cUL, 0xa8ec9d5dUL, 0xb2db3585UL, 0x2b200300UL,
- 0x74192c08UL, 0xcae3733eUL, 0xa00ebb86UL, 0x1dcb57cUL, 0x41f00e1bUL, 0x7877243eUL, 0x1e408f04UL, 0x9d005dcdUL,
- 0xd79ad65cUL, 0x92f2d2e8UL, 0xc47fd042UL, 0xc5ce2558UL, 0x7e2c3075UL, 0x50421874UL, 0xd8823b6fUL, 0xa43803dbUL,
- 0xec3dc976UL, 0x71bc924eUL, 0xefb67fefUL, 0x75e54322UL, 0xf593a0a9UL, 0x6b421234UL, 0x8f89078UL, 0x8ba82418UL,
- 0xa1fb1ed1UL, 0x16d7f9c0UL, 0x50cedeb5UL, 0xf00b960eUL, 0xf828014cUL, 0x942a9ebdUL, 0x6df7765eUL, 0x99a4805UL,
- 0x2dcf798dUL, 0x8dc26c4aUL, 0x4aa91b45UL, 0x4f787df3UL, 0x10420d89UL, 0x615646e0UL, 0xe69e47d9UL, 0x65c60bdUL,
- 0x384da286UL, 0x9f704f6fUL, 0x7dbdbb31UL, 0xdd7ec729UL, 0x506cd4a1UL, 0x1987cfb1UL, 0xc9c0e620UL, 0x967001aaUL,
- 0xd2bf304dUL, 0x509f5c73UL, 0xd3a40f20UL, 0x7ff9ab63UL, 0xdee4dc3dUL, 0x483d65b1UL, 0xeb069b14UL, 0xbaef6a9dUL,
- 0x2fb2382UL, 0xee80d5e6UL, 0x2843544dUL, 0x146203fbUL, 0xc4147ddcUL, 0xcd6b49c6UL, 0x262c8622UL, 0x2458991cUL,
- 0xe68cbefbUL, 0x63f8010fUL, 0x22a34e59UL, 0xa69c2c99UL, 0x816e5fdaUL, 0xc14d505cUL, 0x3e70810fUL, 0xf4b58a9eUL,
- 0x3fbfb47UL, 0xe4e3dfb5UL, 0xee70124UL, 0xa826ff06UL, 0xa1ec318UL, 0xdfa40e8dUL, 0x5024c881UL, 0x5ea048d4UL,
- 0xe7a085abUL, 0x9835b955UL, 0x260c863dUL, 0x712d1501UL, 0x5a820f28UL, 0xf31e47dfUL, 0x77f5e308UL, 0xc7afcd66UL,
- 0xf240c438UL, 0x32e94393UL, 0x5dcdda0eUL, 0x9fd14c3eUL, 0x9bbf0ea9UL, 0x84d309d1UL, 0xc121accfUL, 0xf64e5c9fUL,
- 0x6d7ae8d7UL, 0x928c1d1bUL, 0x4a75bbd0UL, 0x68e5ca0aUL, 0xd3f847b8UL, 0x7b06ca0eUL, 0x850806ffUL, 0xa19e549eUL,
- 0x578fb9d8UL, 0xcd49623aUL, 0xcf182eb3UL, 0x87fe1cadUL, 0x2a0cea87UL, 0x8ee9015cUL, 0x78b39f47UL, 0xfbad7c7cUL,
- 0x96dff79eUL, 0x44385b08UL, 0xd0d71baeUL, 0xd5232112UL, 0x55e8df4eUL, 0xa7dc4934UL, 0xd4cbaf9cUL, 0x308dc7d4UL,
- 0xa4b01871UL, 0xb19909efUL, 0x761b5ae2UL, 0xf1965fbaUL, 0x217fa0caUL, 0x21d3b0ebUL, 0x4cf1c2c7UL, 0xaf828dd5UL,
- 0x25c7331dUL, 0x1e4dfa17UL, 0x214116feUL, 0xad3266cUL, 0xeddac03cUL, 0x3851ecceUL, 0xcadf9d45UL, 0x166cc5baUL,
- 0x8e19a57eUL, 0x984cfc46UL, 0x8db0db70UL, 0xd81dca65UL, 0x14e0bd61UL, 0x85b9e15eUL, 0x707eebeeUL, 0x85885c66UL,
- 0x398a012fUL, 0x9ac6f7edUL, 0x14c9c941UL, 0xd776d316UL, 0x5be9a04aUL, 0x84c159d9UL, 0x7fe5a3a8UL, 0xfc471da6UL,
- 0xc47addaeUL, 0x98640a2eUL, 0x5b568450UL, 0x1cb74cf5UL, 0x2732b264UL, 0xd5443fd8UL, 0x9a9107fdUL, 0xbe035422UL,
- 0x57d898a7UL, 0x3e177e96UL, 0x8a1c54b1UL, 0xb8b64372UL, 0xf001a87eUL, 0xf5ac097fUL, 0x20da4441UL, 0x70f4e3deUL,
- 0xe9c1ac7fUL, 0x150465eUL, 0x33a8f96UL, 0x8fc05ac7UL, 0x28de0bfUL, 0x6adceb1bUL, 0xa6a1dccdUL, 0x427db327UL,
- 0x8be06edeUL, 0x293ff499UL, 0xf210ecf0UL, 0x8735d4d7UL, 0x51e7a27dUL, 0x440aeba5UL, 0x99639eacUL, 0xa4d3eb0bUL,
- 0xb35aa4c4UL, 0xb79a9726UL, 0x89cb373cUL, 0x3b553833UL, 0x11dee768UL, 0x464c61c8UL, 0x99d0e996UL, 0xbae46808UL,
- 0x7e02595aUL, 0xefe474f4UL, 0x9f7e7e9aUL, 0x340e1d54UL, 0xe7624e19UL, 0x6dd21b1cUL, 0xd090c93dUL, 0x7dc5d93dUL,
- 0xc237a2cfUL, 0x46c18052UL, 0xd09cfbc6UL, 0x257ac3a8UL, 0x6e2a33caUL, 0x9adb0664UL, 0x78a9d67fUL, 0x218c12cUL,
- 0xe42e5931UL, 0xb5ab9c95UL, 0x6d946d87UL, 0x999801dUL, 0x576ada22UL, 0xd55c1c9bUL, 0x7a631719UL, 0x8166adc2UL,
- 0xd73c111aUL, 0x9040d46eUL, 0x9d3b7a6dUL, 0xe54aa69dUL, 0x65390c9bUL, 0x14ff922bUL, 0x947c624bUL, 0x52fa114eUL,
- 0x4b887f56UL, 0x6ca3b79cUL, 0xd8a0b2d9UL, 0x98aa392cUL, 0x59bd58d0UL, 0x58e3ecdcUL, 0x3c427202UL, 0x67039b43UL,
- 0xd062687dUL, 0xfe330c9aUL, 0x523c89a8UL, 0x66a848c3UL, 0xc9954250UL, 0x70ed13ddUL, 0x9b2483bfUL, 0xdca2381bUL,
- 0xc31b41e8UL, 0x8d40925dUL, 0x72f66936UL, 0xb2f4b5e7UL, 0xbaa3cf8eUL, 0x711c68e1UL, 0x6474eb32UL, 0xd350f82UL,
- 0x9b371caeUL, 0xa4396674UL, 0xe769101eUL, 0xcff01dd3UL, 0x2a6bf360UL, 0xa57cfae7UL, 0xb3119fa2UL, 0x88461f6bUL,
- 0xdf7e2280UL, 0xda1c9605UL, 0x9214016aUL, 0x6333efd5UL, 0x98d80f5bUL, 0x49a2ce54UL, 0x6fe2ae1aUL, 0x3b667d89UL,
- 0xcd710b25UL, 0xd673630fUL, 0xcb3fcb1dUL, 0x8d4a4680UL, 0x408a4fe5UL, 0x39257b69UL, 0xd9a78046UL, 0xa79fcab8UL,
- 0x50eebe3bUL, 0x2c72265bUL, 0xe24ebedbUL, 0x25b99faUL, 0xbcfa80cdUL, 0xb5dd126dUL, 0x59a4de09UL, 0x9d7494f8UL,
- 0xd09222a3UL, 0xdfb9bc75UL, 0x5d9ca86UL, 0xe6274291UL, 0x1fda2140UL, 0x349fc645UL, 0x42669e19UL, 0xc22aae3cUL,
- 0xc104947bUL, 0x3f11558bUL, 0xedc8fa6fUL, 0x93563bebUL, 0x30b22b1bUL, 0x32ad8f63UL, 0x365db12aUL, 0xe1021998UL,
- 0x88cdb929UL, 0x692a0df7UL, 0x12197f7bUL, 0xa78cacd0UL, 0x605d5b61UL, 0x40898492UL, 0x3d8d3f46UL, 0x7019f6f2UL,
- 0x2128387fUL, 0xff76d330UL, 0xf89ac4b7UL, 0x8c4a231eUL, 0xb9fced81UL, 0xac87f611UL, 0xf1a46ee0UL, 0xfef005d1UL,
- 0xc1ce7ddeUL, 0x5a7c3b92UL, 0xfa52cc0bUL, 0x3fb7a833UL, 0x635316c3UL, 0xefcf1aebUL, 0xbc8515c5UL, 0x5578b267UL,
- 0xb0d16684UL, 0xec8b2b02UL, 0x5d9ab553UL, 0x747f55a9UL, 0x64556b6aUL, 0xd1edb24bUL, 0xc8dc1767UL, 0x4b85ae0bUL,
- 0xfc32a5d4UL, 0x76948839UL, 0x4d12f866UL, 0x3b27ad6UL, 0x44f63183UL, 0x21d9b3cdUL, 0xec8c8ffcUL, 0xd11e5480UL,
- 0x8161415dUL, 0x4e126190UL, 0x6fcab634UL, 0x337ecd5dUL, 0xac0adb2cUL, 0x656cd5cbUL, 0x38d7d8e0UL, 0x42c67819UL,
- 0x59abd274UL, 0xd3800354UL, 0xa4bfbc50UL, 0xfa1f072cUL, 0x31f11eeeUL, 0x73a4cb73UL, 0x17d5fb56UL, 0xe09f9e96UL,
- 0x10531d5bUL, 0x732776c9UL, 0x874b65e8UL, 0x165eee90UL, 0x9b519dcfUL, 0xc279438dUL, 0xa580cbbdUL, 0x163b9ab1UL,
- 0x5244956fUL, 0x3848860aUL, 0xd9b69f68UL, 0x3aaa418dUL, 0x15cb9111UL, 0x222ad381UL, 0x6ec2f292UL, 0x12c5df9fUL,
- 0x867cfb46UL, 0x2d7e42d6UL, 0xfe97c60eUL, 0x6c77bbd2UL, 0x2f5d752bUL, 0xb6de1c4cUL, 0xf67700adUL, 0xbbd6002dUL,
- 0x300678c6UL, 0xafa38b09UL, 0xaff50805UL, 0x3ec4b700UL, 0xcf915f6aUL, 0xba9ccc3eUL, 0xc0ba4a5eUL, 0x4b986607UL,
- 0x14467facUL, 0xa64c38bdUL, 0xf927efc0UL, 0x23d4dd45UL, 0xf4584ff0UL, 0xc1c83918UL, 0x777646baUL, 0x263cdd4aUL,
- 0x42ba717cUL, 0x75e881dbUL, 0x7c9d165cUL, 0xb0beb927UL, 0xf3602827UL, 0x473b2022UL, 0x8d4eb837UL, 0xbbc0059eUL,
- 0x31179629UL, 0x1aecebfcUL, 0x20bb5d08UL, 0x43b9e92dUL, 0xb16f68d3UL, 0x459b5af8UL, 0x193f0430UL, 0x6f46d5fbUL,
- 0x56f50e8fUL, 0x8d996588UL, 0x2f049b25UL, 0x7dd58b48UL, 0xca66cdefUL, 0xeea15784UL, 0x403c434eUL, 0x12f7a590UL,
- 0x6f1d8805UL, 0x41480465UL, 0x3bd562f1UL, 0xdde36114UL, 0x74241ba0UL, 0x5e384307UL, 0xc03614faUL, 0xef2c92feUL,
- 0xf95d56e0UL, 0x95b5b7a5UL, 0xd876dac3UL, 0x5f3fb3dUL, 0xe7c24aaeUL, 0x1f501a89UL, 0x1d7055c9UL, 0x49e36e95UL,
- 0x77ed8740UL, 0xf40a6e55UL, 0x2aa61771UL, 0xfa848710UL, 0x7b64eb45UL, 0xb859d69cUL, 0xbe4d4205UL, 0x32840466UL,
- 0x8c501866UL, 0x2a686853UL, 0x81336eeeUL, 0x3c9f7e33UL, 0x35b84473UL, 0xc3945d6UL, 0x6f69bd10UL, 0xc57b6a67UL,
- 0xd146e999UL, 0xbea31eb3UL, 0xe5d5b368UL, 0x2c55145fUL, 0xdbdb4f1UL, 0x7358a923UL, 0x3a69ea6fUL, 0x5370963bUL,
- 0x5c2357c6UL, 0x4ff24f25UL, 0x9a1c735dUL, 0x8005df80UL, 0x5d0c4218UL, 0xe2e47699UL, 0x9dd743fUL, 0x8ceab24UL,
- 0x88e79884UL, 0xe030cf7UL, 0x540b2ca5UL, 0xe38f2cbaUL, 0x8bcf7a07UL, 0xf5ee7e44UL, 0xc946008cUL, 0x1b27efedUL,
- 0x98535407UL, 0xbaecbea7UL, 0xdd942862UL, 0xc75f3d8cUL, 0x83fee7a2UL, 0x54953be7UL, 0xb38a871dUL, 0x16b027e9UL,
- 0xdb0a2210UL, 0xcfce46c1UL, 0x4df867ecUL, 0x25b234afUL, 0xf49c6e6bUL, 0xf95fdb88UL, 0x9358433fUL, 0xf87ef7b8UL,
- 0x7de5bcUL, 0xd4d4a6a4UL, 0x8cf0851dUL, 0x11f7279eUL, 0xc843aac6UL, 0xb344a447UL, 0x74b3b805UL, 0x870b03eaUL,
- 0x4be832b4UL, 0xb412442aUL, 0xcf8593c1UL, 0x55f7dabaUL, 0xad674b73UL, 0x8d8e059eUL, 0x5d011cfeUL, 0x59d8a684UL,
- 0xc5e4a7acUL, 0x125dfb01UL, 0x6c400edbUL, 0x31f41053UL, 0x30ec1941UL, 0xab9c134bUL, 0xdaddcf65UL, 0x99341faeUL,
- 0xe0ee50e6UL, 0xab6e4e65UL, 0xdf04c0c7UL, 0x9fce4c35UL, 0x4d57e46dUL, 0x9afc7c8cUL, 0xbb51946aUL, 0xd85ad040UL,
- 0x86709ef7UL, 0xa6211d27UL, 0x2ae66044UL, 0x8d9d96a8UL, 0x848e0f95UL, 0x54a47aa4UL, 0xed0d294dUL, 0x57bdd2b2UL,
- 0x9246f2bUL, 0x8891148fUL, 0xa863a15eUL, 0x2dd2a929UL, 0x5cd115eUL, 0x397efce8UL, 0xbf993347UL, 0x260ca3caUL,
- 0x3ae787fUL, 0x8ada24fdUL, 0x506ff6cdUL, 0x14c30cdbUL, 0xbc251f47UL, 0x2cd3d7b6UL, 0x25a565d3UL, 0x468c4501UL,
- 0x5cc2edc7UL, 0xc3fffa04UL, 0x984d9345UL, 0x6c6eb373UL, 0x813aa3cUL, 0x6eb364d1UL, 0xf80a63acUL, 0x2165c31dUL,
- 0xb6ce99bdUL, 0x65dc222bUL, 0xbca38b9bUL, 0x777aa71dUL, 0x2f375522UL, 0x3f51248bUL, 0x97fc6514UL, 0x4810786UL,
- 0xac9cb8e1UL, 0xca36c8f4UL, 0x1268052dUL, 0x3a2bae80UL, 0x9e11b6e6UL, 0x2ec35ee2UL, 0x43fc0878UL, 0x9863addbUL,
- 0xe7c9501aUL, 0x7fe7c32bUL, 0x9209ff2cUL, 0x1f3564c3UL, 0x898a1ffdUL, 0x8e4087d4UL, 0x56978a01UL, 0x56d36fb9UL,
- 0xb2ed1bf3UL, 0x3f5195f3UL, 0xb53f001bUL, 0x5225e0eeUL, 0xa12e5fc9UL, 0xaa90a96bUL, 0xb3182834UL, 0xdd4d1daUL,
- 0x6f61c366UL, 0x5a0f7918UL, 0xa21d1f29UL, 0x923a1870UL, 0x138ffcd0UL, 0x3fb0abc9UL, 0x5857e7baUL, 0x44753fb0UL,
- 0xaf823909UL, 0xe5de9aedUL, 0x8f2e68f1UL, 0x629660d2UL, 0x516b4UL, 0x5dde7456UL, 0x5fc3fa4fUL, 0x845f62dcUL,
- 0x3be4df40UL, 0x4273cd93UL, 0x16182e4UL, 0xb12532bbUL, 0x806cf5b6UL, 0x5620ef75UL, 0xed19db39UL, 0x2f4aa635UL,
- 0xcb4144d5UL, 0x5416a132UL, 0x83845305UL, 0x6917de7dUL, 0x60592955UL, 0x6e8d73f8UL, 0x9b9ee7eaUL, 0x94f5cc6bUL,
- 0x212b3259UL, 0x416b2ef8UL, 0x2c7381acUL, 0x3d728314UL, 0xeb3325faUL, 0xa53789e8UL, 0xdcece7c8UL, 0x7cb6ff78UL,
- 0xe5f22626UL, 0x36a962f6UL, 0x26c131e4UL, 0xe4f437b5UL, 0x6cb71f7UL, 0x10a9c127UL, 0x5fc1587UL, 0x6a80ac5eUL,
- 0x8221d382UL, 0x217a79b6UL, 0x687d75b5UL, 0x8447f35cUL, 0xd5483ab7UL, 0x1d251920UL, 0x40075b82UL, 0x760c263UL,
- 0x19348563UL, 0x9ac09d63UL, 0x93349c94UL, 0x59e35116UL, 0x513d6cf8UL, 0x698669d8UL, 0x3542d9c2UL, 0xd9aa8021UL,
- 0x49f09a48UL, 0xfb8b3860UL, 0x5ffc923aUL, 0xfac605e5UL, 0xc9dafbbUL, 0x87f678aUL, 0x27ec1547UL, 0xbe50fe64UL,
- 0x305afd59UL, 0x9407bb24UL, 0xd5b5f855UL, 0x6c42a3c1UL, 0x30731decUL, 0x94e6f16aUL, 0x967846bUL, 0x7856be26UL,
- 0xa8871931UL, 0xb1029b21UL, 0x17dfafbbUL, 0x71afbb62UL, 0x72ed7e1bUL, 0xf48a465aUL, 0x244a99eeUL, 0x68e2becfUL,
- 0xdee4b333UL, 0x6d812a0eUL, 0x9e6ff946UL, 0xb33bf509UL, 0x5765c091UL, 0x9035ed8fUL, 0xbdaa0130UL, 0x4fcab2d3UL,
- 0x13ea7c09UL, 0xbe405759UL, 0xb4b86ee7UL, 0x6d08b745UL, 0xa5944845UL, 0x53c3f506UL, 0xe1d64a7aUL, 0x6628944UL,
- 0xae00b18aUL, 0x56a4b835UL, 0x87635463UL, 0x3d3e2856UL, 0x90276f8fUL, 0xafd32a7aUL, 0x5ad3019UL, 0x713454b5UL,
- 0x60734f0aUL, 0x5fad2336UL, 0xde4d26c8UL, 0xdcf49088UL, 0x699478f0UL, 0x61a06ac6UL, 0xd6308078UL, 0x14b59524UL,
- 0x9a7b2663UL, 0x38c93854UL, 0xe749c931UL, 0x362d19b3UL, 0x3a9ac73dUL, 0x2df3d440UL, 0x7dfde630UL, 0xb4c3394UL,
- 0xc392de3aUL, 0xe01bb199UL, 0xa4ad57d5UL, 0x4b367a2dUL, 0x79a644fdUL, 0x292533c2UL, 0x51b5c7e7UL, 0x3f4230b4UL,
- 0x5fc86fc4UL, 0x25320cfeUL, 0xf1f75be7UL, 0x10820623UL, 0xc1e8b896UL, 0xaf1259UL, 0x6d940fdbUL, 0x92f0b25UL,
- 0x32ab0ce7UL, 0xf39d9198UL, 0xf45f3d33UL, 0x3194f627UL, 0xb0a82b58UL, 0x4ad4be81UL, 0x76823404UL, 0xa7ab8d3dUL,
- 0xca4a05fcUL, 0x9114bbcdUL, 0xe3abdedaUL, 0xec00048cUL, 0x6d3a6e87UL, 0xfaae8999UL, 0x4cde996dUL, 0xff8099adUL,
- 0x8586a3c2UL, 0x32f13b74UL, 0x4de01096UL, 0xf3fc8d66UL, 0x18031281UL, 0x12423d6UL, 0x62bb2ab4UL, 0xf1ab42fUL,
- 0x993ce25aUL, 0x7c841a27UL, 0xe704bc24UL, 0x62daf827UL, 0xb7568748UL, 0x666bf22fUL, 0x9a0a1007UL, 0x7c035cfUL,
- 0x46343198UL, 0x628e7869UL, 0xe9cfd16cUL, 0x8709dcfeUL, 0x961bc9a2UL, 0xb85fa35eUL, 0xf07904d2UL, 0xff52431fUL,
- 0xf7ed723eUL, 0xe8515ba8UL, 0x66f8fed0UL, 0x7b65aa1eUL, 0x52f616f8UL, 0x5b834922UL, 0x99df8d50UL, 0x8b15b805UL,
- 0x4840fc1bUL, 0x724ec4d5UL, 0xe49b26fUL, 0x2334bff6UL, 0xc3e47558UL, 0xbb287411UL, 0x220e8799UL, 0xd315f747UL,
- 0x8a361b6bUL, 0x8a1d7585UL, 0x485ea4dcUL, 0x7f39581cUL, 0x25415888UL, 0x6db6446eUL, 0x1f2a1afdUL, 0xa7d29bf7UL,
- 0x921d95cbUL, 0x1a10eb15UL, 0xf3ef5173UL, 0x7db43342UL, 0xcf22c4dUL, 0xd9590b95UL, 0x552c99a2UL, 0xa1adea34UL,
- 0xa69b5f5dUL, 0x513654e7UL, 0x858aa423UL, 0x98eea7b5UL, 0x911b9441UL, 0xf64d8e8bUL, 0x967c764bUL, 0xed346903UL,
- 0x53f90520UL, 0xcf488531UL, 0x253933bbUL, 0xc00166d6UL, 0x45931b68UL, 0x285b3f7dUL, 0xb283c9d0UL, 0x5b27f74cUL,
- 0xdfa86fecUL, 0x5830e43dUL, 0x1c28734bUL, 0xe0413db1UL, 0xf2136f6bUL, 0xfa1a30bbUL, 0x5f665b38UL, 0x23c8644dUL,
- 0x699e1c7eUL, 0x3bb7924UL, 0xafab4197UL, 0x613c22feUL, 0x2aeb6948UL, 0xa0887cdUL, 0x9437d25dUL, 0xca064843UL,
- 0x871f99beUL, 0x46efe764UL, 0x916d1412UL, 0x9e87b9a9UL, 0x122fe8dcUL, 0x16e67d0bUL, 0xc9dfad0dUL, 0x15e192ceUL,
- 0xfd4cdfa0UL, 0x9837a6bUL, 0x2fdca1c2UL, 0xd140f34aUL, 0x66c07fd7UL, 0xff53935dUL, 0xb6c466bfUL, 0xbb544246UL,
- 0xfd333e9UL, 0xdd26fddbUL, 0xf3098b83UL, 0xc41815a3UL, 0x1ee7c938UL, 0xab904c25UL, 0x1174bd95UL, 0xb99f72d5UL,
- 0xc5913b27UL, 0x753b2a7fUL, 0x7c3fa0daUL, 0xb549249cUL, 0x9a453603UL, 0x4fad655fUL, 0xcbd22284UL, 0x707011d3UL,
- 0x40107943UL, 0xefc05725UL, 0x1aa08f05UL, 0x40bff9ecUL, 0x4a2d836UL, 0x26f15fb7UL, 0xf340253fUL, 0x9f0e36bcUL,
- 0x686d95e3UL, 0xb2f73b30UL, 0x2a3ec616UL, 0xc02a118dUL, 0xdd8f8e7bUL, 0xb00bfc94UL, 0x33624b0fUL, 0x85eef11bUL,
- 0x65c5b63eUL, 0x780a77cbUL, 0x704238aaUL, 0xdd6e5d42UL, 0xd7b9515UL, 0xe4fa4a2UL, 0xb8f0e76fUL, 0x44df5a2bUL,
- 0xd9084106UL, 0xaab1ff30UL, 0x8d748a45UL, 0xe675ea70UL, 0xfb224b3fUL, 0x559256dfUL, 0xe6558951UL, 0xf0ae5d79UL,
- 0xf4c724bfUL, 0xb2854f0cUL, 0x178833ffUL, 0x73d1b95cUL, 0x6f22b2e6UL, 0x1ecdd393UL, 0xa01b0215UL, 0x20e21fe7UL,
- 0x521d26e9UL, 0x2724f509UL, 0x6d7d8ce8UL, 0xb26a670dUL, 0xc2db4c51UL, 0x509714ebUL, 0x81bf1ee6UL, 0x46f1343UL,
- 0x93700279UL, 0xce65ce5eUL, 0xdd1c4397UL, 0x748c4b1eUL, 0x8991d792UL, 0x1512e9feUL, 0xde84b64fUL, 0xbb5c7475UL,
- 0x7b291328UL, 0x3b685283UL, 0xb7a44b78UL, 0xc9ad3052UL, 0xaa0af83cUL, 0xf34789feUL, 0x7a981be4UL, 0x4ffa8fcbUL,
- 0x8505028bUL, 0x4e5eecf7UL, 0x1cb05091UL, 0xd352a734UL, 0xf705c97dUL, 0x4ee92bf0UL, 0xa8a8aeefUL, 0x8b2a5d2dUL,
- 0xee5a38e4UL, 0x514c2469UL, 0xe672b0d8UL, 0x6e67143UL, 0x168cfc34UL, 0x40f2f42bUL, 0x9718e20UL, 0x65aaef84UL,
- 0x5889edadUL, 0xab1c203eUL, 0x79badfe5UL, 0x8f0e18b8UL, 0x92734b89UL, 0xe8abe404UL, 0x8f69471bUL, 0xb0f77f26UL,
- 0xb906663UL, 0x3237c8cdUL, 0xe8e19d55UL, 0x8166aa68UL, 0x375f758aUL, 0x6b125b41UL, 0xb14f8e72UL, 0xc058a662UL,
- 0x92d50c6fUL, 0x2faa7888UL, 0xd1238bf5UL, 0xf96873a0UL, 0xf141cb46UL, 0x7a1de5fbUL, 0x965494fdUL, 0x557cae42UL,
- 0x16edaf0aUL, 0x3818f6e5UL, 0xd2fcdd27UL, 0x5dafaed9UL, 0x9628b624UL, 0x19b29e9bUL, 0xac70d8e1UL, 0x839b00afUL,
- 0x8f73030dUL, 0xc1d9217fUL, 0x56b1b411UL, 0x2bba0883UL, 0xdc86eff2UL, 0xf3734a79UL, 0x58deaa29UL, 0xbbaef715UL,
- 0x339a3aabUL, 0x705cd3f4UL, 0x71cc6c55UL, 0x6cb9be91UL, 0xabbe3991UL, 0x3b22e3bcUL, 0xa6802f76UL, 0x234ffdc8UL,
- 0x2248fc40UL, 0xe7a8e6dfUL, 0xef769f70UL, 0xb2654586UL, 0x1381b5d0UL, 0xdd4d3a2aUL, 0xf906ea6UL, 0x579d7f71UL,
- 0xf89d7e31UL, 0xc75096f3UL, 0x1cc05dcaUL, 0xf0936243UL, 0xdd4d072UL, 0xf1e4680UL, 0xdf1823d7UL, 0x3c0ad45fUL,
- 0x774b1786UL, 0x8577092eUL, 0xda0a752cUL, 0xb5ae8d09UL, 0xfb983c5dUL, 0x3ae6afb4UL, 0xdd2e93a6UL, 0x6701ddUL,
- 0xe354e548UL, 0x9ee31e6fUL, 0xe53b3718UL, 0xb86f2787UL, 0x500ffcacUL, 0x2f20be87UL, 0x11751e2UL, 0x7900bd66UL,
- 0xcd028dd2UL, 0x20f1749eUL, 0x16fc8092UL, 0xd67726faUL, 0xf3ed86dUL, 0x45b5de2dUL, 0x4d65351fUL, 0xcc4ecde4UL,
- 0x9d10a435UL, 0x3d9cea83UL, 0x4bb32c52UL, 0xab39c0ceUL, 0x126d0482UL, 0x8d82fae6UL, 0x3460dfd5UL, 0xc51f1e61UL,
- 0x7ecb328cUL, 0x21838be9UL, 0x53a66265UL, 0xc46836b8UL, 0x4484b943UL, 0xb1611bc4UL, 0xe8049f4eUL, 0x1efb0c85UL,
- 0xd68ed1e4UL, 0xe3ff76b3UL, 0x536bed8eUL, 0x630a9c43UL, 0x3c74dcabUL, 0xcbfb6318UL, 0x9902bdbUL, 0xcbd8e690UL,
- 0x4a1f4b70UL, 0x3443e50bUL, 0x20949f1cUL, 0x597580e4UL, 0x1bf77016UL, 0xb7dec05cUL, 0x972b429fUL, 0x121a51bbUL,
- 0x1b46c0a3UL, 0xe504c9a1UL, 0xeface8c2UL, 0xe85bf568UL, 0x5f20ad21UL, 0xf7e26a7bUL, 0xe5da58a6UL, 0x105ac363UL,
- 0xd8829042UL, 0xd906ae31UL, 0x10cd29a4UL, 0xacd05fbcUL, 0xd4547f02UL, 0xf86e3c6fUL, 0xc4e8cbecUL, 0xf654067dUL,
- 0xbb15b9b8UL, 0xccc7f7eeUL, 0xe2dbbbUL, 0xbcc7e4dfUL, 0xddf6352eUL, 0x68889e9eUL, 0xeda2aee9UL, 0xbef4c6abUL,
- 0x366507c7UL, 0xb014683aUL, 0x4bc9f367UL, 0x6d054696UL, 0x1846058fUL, 0xf42544a9UL, 0xe96207caUL, 0x2484bfc7UL,
- 0x303fed95UL, 0x9a90e742UL, 0x3d93dda8UL, 0xe698f91fUL, 0xcec17aUL, 0x9b101a71UL, 0xa49ed5c0UL, 0x5991494UL,
- 0xcc591563UL, 0xd8c6c475UL, 0xe6ba21f0UL, 0xf3c136adUL, 0x4e4c8cfaUL, 0xdde8f610UL, 0x9d72aee1UL, 0x953a4170UL,
- 0xa8367b58UL, 0xc6694d11UL, 0x7d5b2813UL, 0x39d603a1UL, 0x2f9378b0UL, 0x66ededabUL, 0x156a9633UL, 0xf49e439UL,
- 0xe096c047UL, 0x2ac63319UL, 0x5f587d6aUL, 0x30ab0b6bUL, 0x175dd003UL, 0xd9fd87fcUL, 0x7d9deabUL, 0xc0cdf64dUL,
- 0x107bfaafUL, 0xc77a5585UL, 0xefa9815eUL, 0x8db8bccdUL, 0x51903a37UL, 0x7d4cb2a3UL, 0x758b3c9UL, 0x64382748UL,
- 0x7854e5e9UL, 0x63fd7c6cUL, 0x7ae86481UL, 0x11b774b2UL, 0x60ef92f5UL, 0x9fb68c79UL, 0x3ad9d1aeUL, 0x52886d98UL,
- 0x210018dUL, 0x70b7b1b1UL, 0x520e6eb8UL, 0xdebadd57UL, 0x685e9703UL, 0xb8341b20UL, 0x2ea2f94dUL, 0xe10159aeUL,
- 0x62ebd320UL, 0x957eda60UL, 0x135f83aaUL, 0xc944e3a4UL, 0xd1bb7357UL, 0x70f30918UL, 0x2cf4bb3UL, 0x2b62b6c5UL,
- 0x2c2413f8UL, 0xeb912f35UL, 0xaa902c59UL, 0x72dd09caUL, 0x467c48bcUL, 0x8403349fUL, 0x7a0a7762UL, 0xc7dc0cbaUL,
- 0x1ea592a1UL, 0x4ee7bcUL, 0x61d596ccUL, 0x837b8339UL, 0x83c2ad0dUL, 0x53214b42UL, 0xd14951feUL, 0x54e7fd1eUL,
- 0x8b076983UL, 0xc87fca7cUL, 0xa8c61d6cUL, 0x5cd77700UL, 0x7d802effUL, 0xc431bc27UL, 0x787fcc44UL, 0x6ad8ba7bUL,
- 0x541f5c3cUL, 0x551a9bd7UL, 0x1dd2de3aUL, 0xe281a02aUL, 0xb6d22ad3UL, 0x854072dfUL, 0x55209c27UL, 0x697e6817UL,
- 0xcd3b4659UL, 0xe79f9e11UL, 0xb9281652UL, 0x4dbfe204UL, 0xfb5b1a49UL, 0xdc51e37cUL, 0x68a67f1aUL, 0xc0acd5bdUL,
- 0x548e8ea0UL, 0xe1810696UL, 0x83dd1527UL, 0x2a832047UL, 0xa9635170UL, 0xa73c9b1bUL, 0x852c1639UL, 0x8bb4fb3aUL,
- 0x8e0c4c4cUL, 0x43e0f0c7UL, 0x2787d3abUL, 0x10e5738dUL, 0x4eec9bb8UL, 0xf0832204UL, 0x81deb448UL, 0xdffcaf35UL,
- 0x4f257b7dUL, 0x567915faUL, 0x1348db2cUL, 0xf256da75UL, 0x2e2b22a1UL, 0x1d07fcc5UL, 0xd88596f6UL, 0xb3f6375dUL,
- 0xd513bf00UL, 0xca8ce6a0UL, 0xe9e8c2f8UL, 0xf315bd30UL, 0x30314d8fUL, 0x52fbd342UL, 0xd93ae2eUL, 0x2666ee57UL,
- 0xab440815UL, 0x3189ed3aUL, 0xe877dd50UL, 0xc7c44eccUL, 0x38581febUL, 0x8162e03fUL, 0xb22b54d2UL, 0xfee06c31UL,
- 0x5613cb3dUL, 0x1dc55725UL, 0x1820ce81UL, 0x871b1006UL, 0x904351a5UL, 0x940a8deaUL, 0xe4ebfdfaUL, 0xc6ae0999UL,
- 0x5ac9434aUL, 0xe9ef182dUL, 0xd30ba65dUL, 0xfd76634dUL, 0x8147dd7cUL, 0x7f000945UL, 0x36df3703UL, 0xef57d4fcUL,
- 0x7bbc3c42UL, 0x79938c29UL, 0xf8fcb421UL, 0xe990469bUL, 0x619f7d7dUL, 0x1b5fc389UL, 0xc6f54216UL, 0x4a2c88f7UL,
- 0xcdbc7d2eUL, 0xd2e7dfdbUL, 0xb9ed8202UL, 0xad42d2beUL, 0x5e56c837UL, 0x9a1c7b88UL, 0x6f4d8005UL, 0x831331cbUL,
- 0x7316ee88UL, 0xc629d32dUL, 0x45df0c0dUL, 0x9cb1f035UL, 0x5b0bbc23UL, 0xed3bd438UL, 0xd30530e9UL, 0xaae9c72dUL,
- 0xc2a136c9UL, 0x108ae5c0UL, 0xabef9c81UL, 0x97086bf1UL, 0x7f543170UL, 0x780fac4bUL, 0x12818ab9UL, 0x6b93564bUL,
- 0x2bd5cd9cUL, 0x36ef6db8UL, 0x23d5bcb7UL, 0x10285fbeUL, 0x43093275UL, 0xcec32ccfUL, 0x603d1e20UL, 0x611d843dUL,
- 0x8f7947b9UL, 0x2d15c9daUL, 0x6fdc169bUL, 0x8f9ed5e5UL, 0x88d9e959UL, 0xf45924faUL, 0xf6fd97bdUL, 0xffdf0f04UL,
- 0xe55f7e0bUL, 0x80ff36UL, 0x3495751eUL, 0xc4cc8572UL, 0x3417db82UL, 0xbe23f0b3UL, 0xfb3b6dddUL, 0xe0bece25UL,
- 0x9c5ba7b6UL, 0xbd5fe17aUL, 0x588c5384UL, 0xf9bd2741UL, 0x7f4b9de1UL, 0x12559238UL, 0x53ddff52UL, 0x4686bd93UL,
- 0x5eb1fe78UL, 0x96ee0820UL, 0xdcf2a53aUL, 0xf4013edUL, 0x747f9632UL, 0x6434c188UL, 0xe547033fUL, 0x21659ee1UL,
- 0x14cf9fa3UL, 0x6cb14a2UL, 0x5380a24UL, 0x70c1cf6bUL, 0xe4ea160eUL, 0xff53c901UL, 0xdc249b0eUL, 0xb3e9cd67UL,
- 0x5caf88bUL, 0x516b9ea0UL, 0x463d5024UL, 0xfb674bc5UL, 0x1f0406b3UL, 0x8516d5eeUL, 0x4559ccaaUL, 0x4068aff6UL,
- 0x3b5c3035UL, 0xc399815fUL, 0xdfcd2c04UL, 0xbc109d0UL, 0x2a6400f0UL, 0xcdc76ba7UL, 0xd9131730UL, 0x367bb3a7UL,
- 0x1df0a1bUL, 0xdcc575dbUL, 0x7869b90aUL, 0x4b0dabdeUL, 0x38a94b6aUL, 0xc7812b97UL, 0xaac750a9UL, 0x75f80bb0UL,
- 0x2d9ba2a8UL, 0x3fa5cc89UL, 0xeae078e1UL, 0x6948afb9UL, 0xd4afed6fUL, 0xfcd5eb03UL, 0x72306bf3UL, 0x59724444UL,
- 0x18d14fc3UL, 0x1bedce8UL, 0xa8125395UL, 0xe0c7f6deUL, 0xfe9f6b4dUL, 0xee95847aUL, 0xee8970fcUL, 0xb9ed33eaUL,
- 0x2616d02eUL, 0x6487dc88UL, 0xaa383a03UL, 0x2ee18b10UL, 0x9cd67757UL, 0xef2382e9UL, 0xd893a5ceUL, 0x1ca247cbUL,
- 0xd0f51c0fUL, 0x93e5a97dUL, 0x291457c6UL, 0x10963b29UL, 0x84d95963UL, 0xfc000283UL, 0x25629824UL, 0xa4a0f571UL,
- 0x64576766UL, 0xb703300dUL, 0xd5181a4cUL, 0x67410bfUL, 0x2420fe12UL, 0x5fc773b9UL, 0xb5ead2a0UL, 0x727d3ce0UL,
- 0x1bf74d0bUL, 0xacd3fa81UL, 0x46e41f2eUL, 0x156f4eddUL, 0x1ea4e459UL, 0xeafaf8a8UL, 0x6a532c13UL, 0x8839029dUL,
- 0x204a4502UL, 0x985a33a6UL, 0xda502eb1UL, 0x8b918c4eUL, 0x80a17e66UL, 0x80265964UL, 0x9492eafbUL, 0x173aeb7dUL,
- 0xebf08ccdUL, 0xfa5a5e9bUL, 0x1514341bUL, 0xf3fa901eUL, 0x7274c4deUL, 0x58450d39UL, 0x3d7994ddUL, 0x11e797e3UL,
-};
-#endif
-
-#endif /* GNUTLS_LIB_NETTLE_GOST_ECC_GOST512A_32_H */
diff --git a/lib/nettle/gost/ecc-gost512a-64.h b/lib/nettle/gost/ecc-gost512a-64.h
deleted file mode 100644
index 4b2181a9fb..0000000000
--- a/lib/nettle/gost/ecc-gost512a-64.h
+++ /dev/null
@@ -1,564 +0,0 @@
-#ifndef GNUTLS_LIB_NETTLE_GOST_ECC_GOST512A_64_H
-#define GNUTLS_LIB_NETTLE_GOST_ECC_GOST512A_64_H
-
-/* For NULL. */
-#include <stddef.h>
-#define ECC_LIMB_SIZE 8
-#define ECC_PIPPENGER_K 43
-#define ECC_PIPPENGER_C 6
-static const mp_limb_t ecc_p[8] = {
- 0xfffffffffffffdc7ULL, 0xffffffffffffffffULL, 0xffffffffffffffffULL, 0xffffffffffffffffULL, 0xffffffffffffffffULL, 0xffffffffffffffffULL, 0xffffffffffffffffULL, 0xffffffffffffffffULL,
-};
-static const mp_limb_t ecc_b[8] = {
- 0x503190785a71c760ULL, 0x862ef9d4ebee4761ULL, 0x4cb4574010da90ddULL, 0xee3cb090f30d2761ULL, 0x79bd081cfd0b6265ULL, 0x34b82574761cb0e8ULL, 0xc1bd0b2b6667f1daULL, 0xe8c2505dedfc86ddULL,
-};
-static const mp_limb_t ecc_q[8] = {
- 0xcacdb1411f10b275ULL, 0x9b4b38abfad2b85dULL, 0x6ff22b8d4e056060ULL, 0x27e69532f48d8911ULL, 0xffffffffffffffffULL, 0xffffffffffffffffULL, 0xffffffffffffffffULL, 0xffffffffffffffffULL,
-};
-static const mp_limb_t ecc_g[16] = {
- 0x3ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL,
- 0x89a589cb5215f2a4ULL, 0x8028fe5fc235f5b8ULL, 0x3d75e6a50e3a41e9ULL, 0xdf1626be4fd036e9ULL, 0x778064fdcbefa921ULL, 0xce5e1c93acf1abc1ULL, 0xa61b8816e25450e6ULL, 0x7503cfe87a836ae3ULL,
-};
-static const mp_limb_t ecc_Bmodp[8] = {
- 0x239ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL,
-};
-#define ECC_BMODP_SIZE 1
-static const mp_limb_t ecc_Bmodq[8] = {
- 0x35324ebee0ef4d8bULL, 0x64b4c754052d47a2ULL, 0x900dd472b1fa9f9fULL, 0xd8196acd0b7276eeULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL,
-};
-#define ECC_BMODQ_SIZE 4
-#define ecc_Bmodp_shifted ecc_Bmodp
-#define ecc_Bmodq_shifted ecc_Bmodq
-static const mp_limb_t ecc_pp1h[8] = {
- 0xfffffffffffffee4ULL, 0xffffffffffffffffULL, 0xffffffffffffffffULL, 0xffffffffffffffffULL, 0xffffffffffffffffULL, 0xffffffffffffffffULL, 0xffffffffffffffffULL, 0x7fffffffffffffffULL,
-};
-static const mp_limb_t ecc_qp1h[8] = {
- 0xe566d8a08f88593bULL, 0x4da59c55fd695c2eULL, 0xb7f915c6a702b030ULL, 0x93f34a997a46c488ULL, 0xffffffffffffffffULL, 0xffffffffffffffffULL, 0xffffffffffffffffULL, 0x7fffffffffffffffULL,
-};
-#define ecc_redc_ppm1 NULL
-#define ECC_REDC_SIZE 0
-#if USE_REDC
-#define ecc_unit ecc_Bmodp
-static const mp_limb_t ecc_table[2048] = {
- 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL,
- 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL,
- 0x6abULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL,
- 0xf0ef44e972ca9068ULL, 0xdb1d62d6a9ef2729ULL, 0x9b0da4dc9f7c7ffdULL, 0xd83c1cff65ca0c69ULL, 0x9c60781a47aeec48ULL, 0xaf2d843b6526c102ULL, 0x33317add0d67d100ULL, 0x15791bb84e1893fcULL,
- 0xce2680c9d223389aULL, 0x125b2f67d5d1e9d0ULL, 0x228c429232a49ab1ULL, 0xc03135b7bec9d296ULL, 0xc73395761870b908ULL, 0x76145f11aa5d2de2ULL, 0x65f4bb32a152f4faULL, 0xb454b08e14f5610cULL,
- 0x4a102a1b4637f438ULL, 0xdfe518e3ec614523ULL, 0x2c7cc07ff04ff681ULL, 0x9d29613bc043a693ULL, 0x71b20d1973f413a1ULL, 0xb60dfc63a52606e7ULL, 0x7eab6739f89a4bf8ULL, 0x4715599107540d3cULL,
- 0x3f6087c57d24d20cULL, 0x46e6737d8f70275dULL, 0x571f24831ff30d56ULL, 0x11fb75296c0c4db4ULL, 0xfe3dd212db1c5b98ULL, 0x7bb916b38b2f7ccaULL, 0x289ce20e0609ed33ULL, 0x8907864cf23f75a7ULL,
- 0x664a334b5da2e6caULL, 0xf05f1834c6a8a8ccULL, 0x5ca791d846bea417ULL, 0x2a10a0e2e84ad0f6ULL, 0xb805f622cea5bd6ULL, 0xb0749e4c2ac037f2ULL, 0x75ae692e624fc44eULL, 0x4d2f8bd02f13e26aULL,
- 0x7fa8570463b9386eULL, 0x11437d3db4099b03ULL, 0xf0a8bf16be442243ULL, 0xd7965ffd0a8b4c79ULL, 0x36329380636d8999ULL, 0xdd1afdbdaa77b4f6ULL, 0x7690f24bd151bf6ULL, 0x4f866b413359a5efULL,
- 0xeeee87d378703a24ULL, 0x4ca29595ac3019d7ULL, 0x4bdbc8e3e9b4a393ULL, 0xa057ff5c00ffd88dULL, 0x5d4af522d011f832ULL, 0x43fd96b47a84bcb2ULL, 0x6ba5856685806046ULL, 0x98db4219171c1296ULL,
- 0x664651e1fa639733ULL, 0x4574c9fcf8b40254ULL, 0xd90a2ca1699919abULL, 0x5907107abdb9006ULL, 0xedf770c2cbe4bf8bULL, 0x26a88df16628fd59ULL, 0xb882cd684d851ab1ULL, 0xb9d73089d1b11fb0ULL,
- 0xd0cc42986d2fc8e5ULL, 0x2f404294bd074474ULL, 0x1750ffc856bd19ccULL, 0x159365b5ae95ef0dULL, 0xb58ef30ba90b8412ULL, 0xb795e8b3cbaa659cULL, 0x9d328685ebc67a56ULL, 0xda1d5fd7c61386aULL,
- 0xc035d406292fb325ULL, 0x66de9578a0a7214ULL, 0x47b4f9202b8fc645ULL, 0x9de80ce6b0b0c81dULL, 0xc3ad2e44911dd128ULL, 0x904042155461038eULL, 0x9313cbd7919a6b5aULL, 0x607ef8cf921e458fULL,
- 0x4c14515f88ebcf16ULL, 0xeb267031c4841917ULL, 0x9cdef61a02ee929cULL, 0x882a230e4996cb6aULL, 0x14f6d6dc93005d94ULL, 0xadb1d1f5290d32daULL, 0xb7aaaf584433c687ULL, 0xe3991b872e6ac53cULL,
- 0xf9146cfc17d24834ULL, 0x9d9cd934f6f69ac3ULL, 0x4320474426bdeff9ULL, 0xcdb64facd048be62ULL, 0x4a363ee7b9ace05dULL, 0x2e079ab461415a4cULL, 0xfca596e075917c1cULL, 0xe9784bae78734728ULL,
- 0x96ce429eaeff14bULL, 0xa972e168c8a7b322ULL, 0xc285c93c923451e8ULL, 0x3590c485b66944aaULL, 0xd7b629f4fc3d4aa2ULL, 0x38574ccedbbab620ULL, 0xb06fbe79b92e3d39ULL, 0xf1b32c61059c1d8ULL,
- 0x1be78415bf17180eULL, 0xef85f41c501d3cd6ULL, 0x467026412364e1e5ULL, 0x46478d6ab6ba5a2dULL, 0xd83bb3e80c651137ULL, 0x892df4fbe3f06d73ULL, 0x52a8b39b786767d2ULL, 0xd577ae8bbc3e9efaULL,
- 0x49dc02ccfd64d57cULL, 0x9586c36db5acaf61ULL, 0x109d245f53746a1eULL, 0x4d470330cfb4ed62ULL, 0x63476850932552feULL, 0x30e676109619e657ULL, 0x9926e35641d70512ULL, 0xc8bee52b5d9c43b5ULL,
- 0xadd59735ff6a229bULL, 0xaef8edeb1e665729ULL, 0x1619e1e992817004ULL, 0x5eb66b9204f573ULL, 0xb9a35769b4d11f6cULL, 0x18ef81002510b482ULL, 0xeeb87b6cc0a7786ULL, 0xba93b4a35674d0dbULL,
- 0x5a12f40206280a02ULL, 0x96aa4244c7ebc9aULL, 0x32c93e3d30d6b43aULL, 0xc216b2ddf9e72f0cULL, 0x3612e43e03dab723ULL, 0x8abbcbc8220ab512ULL, 0xd263ee4f52c9a6f2ULL, 0xc3905b0e8cffa90eULL,
- 0x51aea7a91550f5caULL, 0xeede549870947604ULL, 0xccba462c7487dbe9ULL, 0xa302b46831d9d78ULL, 0x119ec69f8d41d4ccULL, 0x91e36fc6dce5682cULL, 0xdc3cc7792e0ee654ULL, 0xf8c13c54e4f90517ULL,
- 0x78b9dd4f85e33173ULL, 0xb2ea3baa0b31058dULL, 0xaa5396a1834a0e40ULL, 0xa288499d17a1c947ULL, 0xeb93d8aba59145d6ULL, 0x1813c80bf0a3bf62ULL, 0x2e6bf178486a9c3fULL, 0x16cd7c396d3a8b43ULL,
- 0x71c23d8afe302efbULL, 0x731975d07f1664a9ULL, 0x240aee4f54fdf5a6ULL, 0x16fe9d59b45840a7ULL, 0x5fc6b7bc1aed4487ULL, 0x774d3fb933cedd3dULL, 0xf14802abff0d5142ULL, 0xce5e83e33bf73de8ULL,
- 0x9cfe2e9c0373f4d1ULL, 0x63565e0c5a7ef969ULL, 0xeb247599126036d7ULL, 0xdcf354461b308d7cULL, 0xb31c8af195e5f6f6ULL, 0xca8a17542b861344ULL, 0x777ee11738e6224cULL, 0xd44fb7a7dba9a8c7ULL,
- 0x2364fa8f2cc1d335ULL, 0x7cd7c5c36705ffd4ULL, 0xab858a7f007b8503ULL, 0x643a88cd966a61abULL, 0x922c2e2270525a98ULL, 0x350c3bd722ee34e0ULL, 0x279a3d08fd2783d4ULL, 0x51f1fabc39da21adULL,
- 0xccc01a76ae9cf0adULL, 0xd4b7d6db7c2181a0ULL, 0x6e775acd96781901ULL, 0x3feac335c3433633ULL, 0x9924d29a27fb62f3ULL, 0xb40e8b7a9027b884ULL, 0xd0d525f1c431f2adULL, 0xb461a9cd45557e83ULL,
- 0x6df5e49a91f6ef75ULL, 0xf4151c1421ba1a31ULL, 0x40d106a9150b64e0ULL, 0xd40c0e04d6e56e9dULL, 0xa0f345e732c3400bULL, 0x4fb64f0a66d01a49ULL, 0x797ca4460de0a33eULL, 0x18c384a1876350d0ULL,
- 0xb3db43ad760c3379ULL, 0x13d31a78ea1a9a1dULL, 0xea28c97e0f28b6ebULL, 0x2c6d93fd7b8e4ce2ULL, 0x56614cf29aa97c66ULL, 0xffe9dd151aca1953ULL, 0xeed7e15443a914bdULL, 0x7bf2a09a45597ef7ULL,
- 0xec7b417b02895ee9ULL, 0x8de8e71205272641ULL, 0x8af936637641f0afULL, 0x89c40936f305ae8dULL, 0xf91d8f7ceaef3ddaULL, 0xd7b45be5a5268af0ULL, 0xb71dbc3c4cecadc1ULL, 0xe9ddc69adb214874ULL,
- 0x760671be96f2bec4ULL, 0x8a6b99ffca182ebdULL, 0x1d1b288fc22467c0ULL, 0x5d5aa95dc70feafeULL, 0x62963fa0c3426b01ULL, 0xaea3146e4a624582ULL, 0xdbd3fbac8b07ac88ULL, 0x9a53967c96152649ULL,
- 0x32cae4c50818c1eeULL, 0x21db106a68a3f242ULL, 0xec3f70fdbd038aeeULL, 0xe6ce6fa5d9a037e0ULL, 0xfceb07a4f6d503aULL, 0xfe60ce4b22af0362ULL, 0xac41f6882d2e29d4ULL, 0x5646bb8f7a124035ULL,
- 0x963d407aa4b1e02aULL, 0x615985a9ddcfa8d7ULL, 0x1ee654f7df383992ULL, 0x6e694f3970d50990ULL, 0x257a58f224cd5b9dULL, 0x77527f38168d84fdULL, 0xfd4651db3cce3223ULL, 0xfd61362f3b361bbcULL,
- 0xf39b499aa75ac3a2ULL, 0x53a5039aab73e847ULL, 0xd20855acbdd86d81ULL, 0x62af10fd01555653ULL, 0x821be7127042b877ULL, 0x22846b63e69a1721ULL, 0x7a2e13acb5b4bf4cULL, 0x31c76d866f2dfb1cULL,
- 0xe1c5291772f68da8ULL, 0xb5777b875d13891cULL, 0x4bd900db5aabe41ULL, 0x7213a92cf498cef9ULL, 0x4cab2844059deb36ULL, 0xb163739050c4aca8ULL, 0xae3bca8998f71f7aULL, 0xc82fc77461a6cd48ULL,
- 0xcca16937beed6141ULL, 0x5e29d790474a63f1ULL, 0x1fd9cb6b6968a75cULL, 0xdcfc5c37ddda28deULL, 0x59a319be591833e0ULL, 0x80b62464443d3d81ULL, 0xa275a49ec9ac8a3ULL, 0xe48165102c2c57cULL,
- 0xb461c2c91974ebb3ULL, 0xae43e32680d82600ULL, 0xbc8e6957dc2be4d7ULL, 0x2c7aec91f5f2efa8ULL, 0x1272f6dda0867131ULL, 0x2b696a7b61e64d48ULL, 0x62b85dae409bad97ULL, 0x88673ef74cc94e9fULL,
- 0xfe5b61d6a7d75892ULL, 0xc937c00f3be27950ULL, 0x7d363bd4020dfc17ULL, 0xf9c03ba633016116ULL, 0x71e5e67e07955cb6ULL, 0xe7129e0e233ae2ceULL, 0xed04d30301c5bdd7ULL, 0x2bcbaa51d6eebf80ULL,
- 0xdbce333d0ce9df96ULL, 0x6099a92a3c7732c7ULL, 0xc9b96693620e7ba6ULL, 0xf037af2f7876847aULL, 0xe137a1db913911ecULL, 0x5f66aa33e822c541ULL, 0xbe17f50512f570b1ULL, 0x54669d4befcec638ULL,
- 0xace24fe8f3fee5b9ULL, 0x93b236048efbd17dULL, 0x55a88a2dc2ba6e58ULL, 0x1d587c5eaf78edadULL, 0xf1c14465abc6d707ULL, 0x9f197b9c2b1550bfULL, 0xeae8f0cc3bfd81caULL, 0x7c7bb32765044bdbULL,
- 0x2fe3ca91f07bb98aULL, 0xab77d70f6aada290ULL, 0x9ea36562edca03dULL, 0x45f329dcde13f023ULL, 0x403d1368005974c7ULL, 0xefd9d4f45b76d34ULL, 0x119c58c0e2412919ULL, 0x8333d14585546669ULL,
- 0x839ed561938d421fULL, 0x2d437d273b6f2318ULL, 0x3f08fa946d2e8a62ULL, 0x8f4371db23af5715ULL, 0x5508eb26dd5eba94ULL, 0xfafaec9daf1d9867ULL, 0x8fed235249a9571bULL, 0x2b4cda92605f80eULL,
- 0xd5100530a12d98faULL, 0x5e061db36cb1c2d3ULL, 0xb1a10c9d13aa4356ULL, 0x788e8fae8c4b94d9ULL, 0xdfed32992dd620adULL, 0x6707a10a48289795ULL, 0xa6eb428671be0e23ULL, 0x9c0865502f5d392cULL,
- 0x349007b1da3233fdULL, 0x8805f43f187236cbULL, 0xcfe9369080d8efeeULL, 0xca5d390798df4df5ULL, 0x3a73e810e5c3362eULL, 0xb0b91e5c8059dbdULL, 0x148ce837ef921ac3ULL, 0x274f690b9f741969ULL,
- 0x8e4e5ae9ef97a70aULL, 0x8cfdaadb83d08d11ULL, 0x4a8b6d7da566f931ULL, 0xbc56ce7c2cc9a876ULL, 0xd0f3283b2ab4b9bcULL, 0x4cb103d5cdc6cf2fULL, 0xa1027fbab31b1732ULL, 0xa0f248c2f4290e6cULL,
- 0x73cc00e12ba9c7ecULL, 0xf6e95b40d1838bf7ULL, 0xbf4b2b33d70f5ec1ULL, 0x5608965859950c0dULL, 0xd6c554317a9400d9ULL, 0xd04d927595268504ULL, 0x7bf40b7c722e6295ULL, 0x66be750ce29b9f7eULL,
- 0x7a7051afc2f36636ULL, 0x41dc48204e5f2e1aULL, 0xe89a7a8e29580667ULL, 0x95ce3cefc04389d6ULL, 0xb4359f9ccd6ea225ULL, 0x8deafe5bfb7b2336ULL, 0x8e6bc240039baf1bULL, 0x4c2c2613efdecaddULL,
- 0xcede68a753b012b9ULL, 0x5e98c234451b7bb7ULL, 0x58ebe01d5a7cd5a9ULL, 0xcb955038021c1b54ULL, 0x27f21d5cf1d900afULL, 0x668dbb8e0866b261ULL, 0x7084d4072f364edaULL, 0x4a9b757c93c73b58ULL,
- 0x78435021afed90faULL, 0x4419400d6740ac6bULL, 0x6cfa751718ff90f6ULL, 0xea1cb71fc73a3adaULL, 0x10dc43d381b81a71ULL, 0x28ab2d5425af552ULL, 0xe8856607b858da15ULL, 0xaaf1c7f8ad21d197ULL,
- 0x7f599e1bd672d182ULL, 0x45af4e939bad8a39ULL, 0xab215c009c427f74ULL, 0x5e1073a1715165efULL, 0x2b836e0b39996b97ULL, 0xaf94e4ac428d69f0ULL, 0x5169e9a621e2d656ULL, 0xaca31e791742c261ULL,
- 0xe3cc05665f92a2a0ULL, 0xdcdd656e6270f866ULL, 0xbf5d42653e92239eULL, 0xae3ba6c9f74203d1ULL, 0xa04f0b323730ebafULL, 0xcd182d78e9befb9cULL, 0xb0134b6b6797befaULL, 0x77ef757c83711296ULL,
- 0xda2b6abfe7da2f77ULL, 0x18d413b96431c325ULL, 0x36736071417d1645ULL, 0x3ea1ddc1ad4a68d8ULL, 0x7cbe1751a9bb70d6ULL, 0x4e60d8f0999e18c6ULL, 0xba93eed4ee8d1beeULL, 0xf32c904e5af2d6ffULL,
- 0xad92a9d9e32cd3b8ULL, 0x3330648d5dcc675aULL, 0x2dd57b57c52c13c2ULL, 0x7afbca0aafca56afULL, 0x3fc9e113956612d2ULL, 0x652f23728cafa110ULL, 0x906aad0984a7eeb8ULL, 0xb8b649f05cf0ad47ULL,
- 0xbca302cf1da2c07aULL, 0x603bc3142a9c3db4ULL, 0x85cd805147962a94ULL, 0x69f1a37a0428e0edULL, 0x1e23307c34b7f54fULL, 0x44e87fabc2ca6cdULL, 0x54e71c2eb5c1376dULL, 0x27631590f6be46f3ULL,
- 0x22cd32b12ffa7abeULL, 0x8178cd33d48576e4ULL, 0xed58e7ac3d50f56bULL, 0x8b2104da9467bb74ULL, 0x612279dddf72b5feULL, 0x7a2f99316397fe6bULL, 0xa09bcf9c9531793ULL, 0x4b2455bc3d029151ULL,
- 0xe033ce86b6f9b134ULL, 0xf50c3b61a51ccedeULL, 0x2cfb7fb5328bfba7ULL, 0x3ce0ffb849509779ULL, 0x325a5d9f241034d9ULL, 0xdba25998d6dde459ULL, 0xe77e0215decf5cd7ULL, 0x8309856cfff8e0c5ULL,
- 0x590f9c4f4ff5995dULL, 0xf69a43b6610ce255ULL, 0x7cfa0075644347dbULL, 0x27d6f78354e9326cULL, 0x741b6e03fdea1fa1ULL, 0x4bb8d889f8b74ae1ULL, 0xe939610e60fff5e3ULL, 0x4d8f6246599c5517ULL,
- 0xc3fd2ad00739c123ULL, 0x7489ac201e99a208ULL, 0x709fd4407cca0733ULL, 0x24de0dc988d02a7eULL, 0xfda3977d67caef3ULL, 0xd34ce6127e9fc7f8ULL, 0x35b55ab541b5880bULL, 0x65f02f42354a8da8ULL,
- 0x7611d65c4278c2dfULL, 0x7c7fe9591679cb0eULL, 0xaba59ac906c82c7bULL, 0x36a0c47c43ceca63ULL, 0x932e68a4b82205adULL, 0x1c20a82a87cd3c32ULL, 0xe1351b3e60f56c28ULL, 0x528740d21acfcaadULL,
- 0x17afdca4a82d164eULL, 0x96d0929478f7685fULL, 0x2882456d67767c70ULL, 0xd253eaaa6d6b092aULL, 0xd4df83952814d1e6ULL, 0x4200e0518ddf990eULL, 0xa67fcf84e3118992ULL, 0x7fab7a9ba972b653ULL,
- 0xd268ea66c8080114ULL, 0x83d908efd84848f4ULL, 0xb9113bfdda81ee93ULL, 0x80896bacd1c78912ULL, 0x855165bd4af284d3ULL, 0x754ea59aac362fffULL, 0xc7424b7e94ad4d7aULL, 0xbd99dffe918bdb9ULL,
- 0x404c6039dd621fe3ULL, 0x7f66d036ab21c9baULL, 0x928fd2d1de9364cfULL, 0x212c7f835efb9ecdULL, 0x69c61a227171800eULL, 0x854634775a07dee8ULL, 0x5402c6e570869cc6ULL, 0xdb0e971c5f9f84dcULL,
- 0x6ba9b9f3b7b6759bULL, 0xf27d6361da28aa70ULL, 0x8309cc2b63270c3ULL, 0x6fcd1ab235723b1bULL, 0xed21a510fd9932b5ULL, 0xeba79ca3b229bbd4ULL, 0xf28e951d2f1f13b8ULL, 0x67098dc75963a71eULL,
- 0x454fd7c8e0f1e46fULL, 0x4da8ca24e38ac713ULL, 0x753fc81bbd039ed5ULL, 0x4761f8ec8387fe39ULL, 0xd54441ad0dd0a34cULL, 0x95cb4fded59c222dULL, 0x2f4dfe213cf89ddcULL, 0x2e76cda4fba2a7f4ULL,
- 0xdd5eb25787ca0ae6ULL, 0xa02cf62b6c01abe5ULL, 0x55c75fc9433a4fdbULL, 0xe0ddc79f4b9229a1ULL, 0xe6bb91ea930fc4dcULL, 0xbdc16175ae4f1c20ULL, 0xbf3791952882d83dULL, 0xe20efd4eaa46cea3ULL,
- 0x7987a81e479e0831ULL, 0xb6328a4803e5eabfULL, 0x708bcea81a16461fULL, 0x79106b701ac7691cULL, 0x88dac612a0935dd3ULL, 0x6e97208b5e012c13ULL, 0x3ffe263160c41e3ULL, 0x55f7d6d256033cc3ULL,
- 0x222fc20f57dbcb74ULL, 0x5c1876bc32010671ULL, 0x66854edbe1025aa0ULL, 0xb66f66e28ea7f13dULL, 0x9195af86e885e88aULL, 0x60f5c574f3cc0dULL, 0xfbac2eb7c1852d3ULL, 0x2afca79389577523ULL,
- 0xa6adc8c6608b5597ULL, 0xdecc4bd672a8b6beULL, 0x243b7f7a20353488ULL, 0xb6d61f6c2ac12da4ULL, 0x2abbcec0eb72a994ULL, 0x4d744771b621f832ULL, 0x6a9e4997b074dfa6ULL, 0x73865d83b5631be6ULL,
- 0xeebe530fe6e6eec2ULL, 0xbf4578cb715de2e8ULL, 0x8e02d87646482607ULL, 0xda99bdfefe74db2bULL, 0x7d3c0e7c31a37c7ULL, 0x542e14d3b1fc4283ULL, 0xeae5cca84c8f6cdaULL, 0x209fb288d3f52d57ULL,
- 0xabe96c8bfc7ef795ULL, 0xa375c0f31edf3969ULL, 0x6907f660ca14dc3fULL, 0x47d9f7970d44da8fULL, 0xbc3cd5b6d290e8a6ULL, 0xbb05e9aefa589c4bULL, 0x33b7ee2df6ea877eULL, 0x829e18d41fabd978ULL,
- 0xd6753c37f6d07947ULL, 0xce8c90cc180c3e2eULL, 0x6754e3163f86bceULL, 0xb824cc742ec402b0ULL, 0xe76056891fb25dc1ULL, 0xcb7b96e9e34f2233ULL, 0x656d2fbdf69529f5ULL, 0x10c240e41767831dULL,
- 0xb204957d97938aceULL, 0xc32bcf3ed60b3714ULL, 0xfbdc31ed7ec628c9ULL, 0x65f78fdfd083a21dULL, 0xefe52db81a73652ULL, 0x255e282a748b8192ULL, 0xdda8ffd59ea6327dULL, 0xfc1e540ae7cc6dcULL,
- 0x26556526caaccde1ULL, 0x7449ff8ed068c63fULL, 0x637fc619448a0ff0ULL, 0x26c2690ad640d0c9ULL, 0xa0043006217039b0ULL, 0x9f4ddd9033ce2686ULL, 0x72bfa77ca5a5c29cULL, 0x74adcda819f87181ULL,
- 0x8097b167a55c4160ULL, 0x2bd813a516153a50ULL, 0x6fa1cbad7541ade5ULL, 0x51b4e083fe3c1c5cULL, 0xeda07f345ac38f5cULL, 0xffcdb66dce02e66ULL, 0x25d7a070f33d2151ULL, 0xf15d8623b7487c5cULL,
- 0x22276bf7ecc3855cULL, 0x954919d439fe3044ULL, 0x835c671f93738898ULL, 0x1eb53d13c83599c4ULL, 0xedad0aad5095415aULL, 0xa5763e9a33b6dc08ULL, 0x891c883dfc80ec63ULL, 0x38ac56eeecc12d3eULL,
- 0xae3464560ba2f511ULL, 0xf5ebcda35d65138eULL, 0x81c76818b0543f30ULL, 0x102bb759b2022daULL, 0xf63ba0a0057c7157ULL, 0x788653b344567a92ULL, 0x99b58f053fbba190ULL, 0xbbff9b65c6d3d7cULL,
- 0x68e360f9709d2714ULL, 0x749c7312f12c2ecbULL, 0xacbc41c90caba57aULL, 0x3ecba67e0f779ea6ULL, 0x3746f974363af303ULL, 0x149cd2803cee9873ULL, 0x3d1165b86d65468ULL, 0x9f4d5133222a8fa1ULL,
- 0x2237f6c5c6677ac9ULL, 0x953592ad81d8c39dULL, 0xea7dfe8be5ac19ffULL, 0x94d984be740cb90eULL, 0xaa73a14b0b804d6ULL, 0x98c13770b2bf010bULL, 0x2ad3918681842794ULL, 0x4dc698bd04c0ccdfULL,
- 0x41dda96fcd48e96eULL, 0xb45dee08a682c024ULL, 0xf24cd49fe106f721ULL, 0xae7d961fb9dc2a50ULL, 0xd1b3b1398d95bd0bULL, 0xbd6a9e502c063c1eULL, 0xd774db3ac9d0b9edULL, 0x61baffff5d369a0eULL,
- 0xb754da05f8656629ULL, 0x5ff1ca845ea875b5ULL, 0x549307907e4a506bULL, 0x125380cdca3a740dULL, 0x6449fc959879e8a6ULL, 0xab1f0c473ef92263ULL, 0xe4894f9ddd365da5ULL, 0x2c9a0068216c978aULL,
- 0x645a5f5dbc9a18fcULL, 0xeacbc2fee9e0f512ULL, 0x6b9b5136410906e7ULL, 0x9b223da7a21b447aULL, 0x34e87e069ebfb3caULL, 0x6789f285bfa4376aULL, 0x62c2c7c1fe481bULL, 0x3798c40683da22b5ULL,
- 0x1bbd740558799493ULL, 0xdf0df5bb45e89648ULL, 0x6152f725f46c0737ULL, 0x31220d4bab95f6e1ULL, 0xb9b973b4a499ff41ULL, 0x802701e8a3ee4e05ULL, 0x3b3979d7e81b4897ULL, 0x8ad509d0f40dd4c5ULL,
- 0xde3455667cd7ba2fULL, 0xfc8f168bf95b5b67ULL, 0xc9131c8d4ee8da88ULL, 0x35c2c5a25610ad2aULL, 0xea05eb9f0506415aULL, 0x3c4cfaf47c8bf39cULL, 0x1f682ba8870c678cULL, 0x576e9cee4e5c03ddULL,
- 0xfb9401a993ca05b5ULL, 0xe12617812f80db5dULL, 0xa09f9f14a37a69aaULL, 0x7eb14b37cc7a5862ULL, 0xde87218d12eeb4bdULL, 0x67fb11b408bbc000ULL, 0xd3930044af1cdebaULL, 0x5b83599ef4715446ULL,
- 0xe5914e9fe0400d7aULL, 0x142d10153da543d2ULL, 0x1d39b8ad62a4900aULL, 0x9a63dab1dfd4fc18ULL, 0xc58b8efe120823d6ULL, 0x44faa75b6254aec4ULL, 0x69a725f8fb2863b9ULL, 0x3b35cb332846dfeeULL,
- 0xc59bedd73060aa7aULL, 0xfd5af9181299f31ULL, 0x429dc09260f95479ULL, 0x542735252dc573b0ULL, 0x797b487fb7133b2cULL, 0xbd362e01865dc5dULL, 0x3920c6013daefaafULL, 0x276a8692ce430b81ULL,
- 0x9d8b70f4733d708fULL, 0x8cc7111654c5ce1aULL, 0x781627972eeca598ULL, 0xa9298d26badf5c96ULL, 0xb8df6af9fec50e62ULL, 0x63ec0e4edecaa49bULL, 0xcc2c0fde721cfc70ULL, 0x5db285bdc6a74b93ULL,
- 0x18fee1567265c802ULL, 0x732ae651ff8a7a3fULL, 0x2cc4e995066748fbULL, 0x8fafe652137dd7b7ULL, 0x72b5024d2e409b75ULL, 0xc2fc438e455007ceULL, 0xeac57ca8d331be09ULL, 0x840f05230c2f7eddULL,
- 0xda0a70e2be0a2dd3ULL, 0x8a0114f8de94ff73ULL, 0x1813da2bf35e166dULL, 0x1243e4a4811e632eULL, 0xe0e80b5950042255ULL, 0x9854bd9ffeca8180ULL, 0x62529105e4a7e012ULL, 0x247c894e22c56e75ULL,
- 0x2ec853c9fd1776eeULL, 0xcc9fa34c24a6af12ULL, 0x2d7c6d1faf633832ULL, 0xd648ec3ec70fa51fULL, 0x27513b3b42f53091ULL, 0xf8acebf47da79a33ULL, 0xfb366eaa84c78412ULL, 0xd0e87f8071230574ULL,
- 0xf6c0f8b08fd2d273ULL, 0xb8a830338da7f7f2ULL, 0xefdc7cc06ee9e4a1ULL, 0xde42070fe64df11dULL, 0x5535afffb43b83f3ULL, 0xa28d49829c8b5ecdULL, 0x6adbf31936daf679ULL, 0xb5b903f1024b0ad3ULL,
- 0x46085ae51b36d3b0ULL, 0x2b97110ec48569b7ULL, 0x87bb505137a9b414ULL, 0x9670c2c72309896bULL, 0xcecb5f5e22145059ULL, 0x52c6fb75b3859660ULL, 0xea40503e5959600ULL, 0x83756f1cc620e080ULL,
- 0x3d7b9e9c17fd371ULL, 0x37b369c161a23ffcULL, 0xefcf9a6a2333a648ULL, 0x1011e36c48afb520ULL, 0x6920cfce40c0c130ULL, 0x9d1f765ec0ff1620ULL, 0x428898520411742eULL, 0xa941ab263c1407c1ULL,
- 0xdb429aa2b9c55ba2ULL, 0x101779d34d99366eULL, 0x35ee21159a3f7115ULL, 0x84ad6711a3ee8488ULL, 0xd7e91576d36d18cdULL, 0x8d870122a0cae92fULL, 0xdd46caab5272a4a3ULL, 0x75fb719f9c7ebcdcULL,
- 0x8541c960c26541bULL, 0x3467d72eca2279d2ULL, 0x9d4190a7d66ba24eULL, 0x7c3c95adb682615eULL, 0x4cd86482a2e9fba5ULL, 0xbdb0dc98a3790f73ULL, 0xdcf80d6797bb5893ULL, 0xa579cd90b5f3c389ULL,
- 0x6743719f6714a798ULL, 0x67a2f2a735534958ULL, 0x4cd164885155bde4ULL, 0xe5b222fd9538995aULL, 0x24439556a2e1da44ULL, 0x6a3d2b83aea4a1d7ULL, 0x2e9ac7b7186ffbf8ULL, 0xa4685d47825c16e2ULL,
- 0xf24f9078582f02e1ULL, 0xcfefa7bfdb749ccULL, 0xa9b21bb6ba25450bULL, 0x79ace07984d697aULL, 0x292fcc78fc6747f1ULL, 0xaaf9c719b7cbefceULL, 0x107b14ccafb63127ULL, 0x58b2ca070f8ee5e0ULL,
- 0x119fbed15a90112fULL, 0x70418516ca7fbb8bULL, 0x117128021cb7bd0bULL, 0xb5777724b2facdbfULL, 0x8e2ccd0ffcd7a072ULL, 0xf42a44e65548d0c6ULL, 0xab7af62b37308af4ULL, 0x91ccbef7baf44540ULL,
- 0xf342da4f9c1920a5ULL, 0xfa61c0ac93edbcfcULL, 0x71554d7b86d2467cULL, 0xd1ed1fd9b99e7cc1ULL, 0x977e87c205ba7832ULL, 0xf3fb1b8b17066c0dULL, 0xc6f7610e8160cd89ULL, 0x68d78dcf029f9ac2ULL,
- 0xd08b8a547243d4dcULL, 0x54258b4fae41312bULL, 0x7ba33cd31d7f9abcULL, 0xac38ad24386f82a3ULL, 0x395aad603baf6903ULL, 0xf83a174b417a1bdULL, 0x527486e8baabf6bcULL, 0xd9b2ebf349841f63ULL,
- 0x5238e713ea1ebb7dULL, 0xae9ed2f6e2c1ad0cULL, 0x70f12e4257031defULL, 0xdb95e78951694fdeULL, 0x36b8632471453375ULL, 0x401b281fca006b6bULL, 0x96b318a24579f212ULL, 0x6c5445a8e3e4cc9aULL,
- 0x72e2c86c1bcbfbbdULL, 0x4d74858e314bcac3ULL, 0x5d80d412cab61313ULL, 0xac8bf82634227181ULL, 0x9e549223275749a4ULL, 0xbf1a9fbd608354b4ULL, 0x19209a15ec1cf150ULL, 0xf55da987ee1c4fe7ULL,
- 0x8a75cc03abc66d84ULL, 0x1f0b0207424c1d67ULL, 0xf16a45526d9adf8fULL, 0xb7091fb873bb89b7ULL, 0x434f1ab4e8098073ULL, 0x68b13b1e7662f51ULL, 0xa27e94bb5eb46889ULL, 0xcb11b7dd76296165ULL,
- 0x4d614986c098652dULL, 0x5006a5cefb160b65ULL, 0xc36ace0dc6c0d3d7ULL, 0x305e994b980b6977ULL, 0xf71256459caa6662ULL, 0x811f74a4fc05d6a5ULL, 0x7da2f34f28620d8ULL, 0x23a3740cb0366441ULL,
- 0x7f7548287a9f2241ULL, 0x752308e980fa1726ULL, 0x28391fd2e5159cc5ULL, 0x5e4bdc2363a51fd6ULL, 0xbc7f88153ef3d852ULL, 0x5f1b5ad9e026090fULL, 0xb2c56de7c73a0942ULL, 0xb24ebb4e7ddd61ebULL,
- 0x11d516da6fe68878ULL, 0xb89323950f7c5afdULL, 0x7de3a76f5781ef4cULL, 0xa0085c88c345fe38ULL, 0x3335624a8d648ad8ULL, 0x93339ea06eea9df5ULL, 0x2b1082c2978d7286ULL, 0x46e1d020f239eb07ULL,
- 0xcd9b3e975d92d07eULL, 0x389d1e45357998e4ULL, 0xb80d8e929502bd30ULL, 0x528b11d25d05c97cULL, 0x99cfcd1ed3250751ULL, 0x6f304821fe9e5f6cULL, 0x6aa1f9f7ee99e259ULL, 0x4cc0d5177f189484ULL,
- 0xa7f6ae8120e09c30ULL, 0xc465d02bbd5b7c1fULL, 0x2d13b5451eaac7b8ULL, 0x44de46152deec5eULL, 0x17a35bfa0c926b5aULL, 0x7d4647f2fb0cee2cULL, 0xb9a6a6b5601c4b26ULL, 0x4c8bb442bc6b8be8ULL,
- 0x1cc5d5c8af778feeULL, 0x70b814f8e803b76ULL, 0x4463da5db74cce80ULL, 0x2144b2e8cd5b3a6aULL, 0x1a2a4a3db9c6be05ULL, 0x2af379c79a172ebfULL, 0x1ef858dbfc226d6eULL, 0x69a4e201fa86a6d2ULL,
- 0xf67d007bbe488a9bULL, 0x3ef55dd120a3742bULL, 0x553c7f67d48eb943ULL, 0x9717432f2bf9709aULL, 0xfba3d8ecf7d3ab49ULL, 0x88d19f43089ef09ULL, 0x11d1941cd011fc73ULL, 0x9056e6eb8eb99552ULL,
- 0xeb248deef10bda5bULL, 0x247d2c41e3ff0c5ULL, 0xac1783c5af6aeddULL, 0xea8d6052c4aa0619ULL, 0xeb981710b5f28100ULL, 0x2ece6829380dc44eULL, 0x405f3da1e54afbbfULL, 0x4b4a916b4e5f47fbULL,
- 0x51969ba8be98559aULL, 0x23c0dae2f1bf563bULL, 0x47a7973fe35326bcULL, 0xcf8c62d210386e66ULL, 0x49ec3a99522c2ecaULL, 0x154ade3d3fc47a69ULL, 0xa60c8b5614553505ULL, 0xe5aaa5d61bf25a66ULL,
- 0x9164b2e003e78560ULL, 0xd5f9206aa3dcbf93ULL, 0xedc9f24d04e14054ULL, 0xb81955dad36fbacULL, 0x4664c86f8a8a461bULL, 0x7743af38880169e0ULL, 0x462c76f583d8d3fULL, 0xd396d764b9b3e55ULL,
- 0xce6e442a47556139ULL, 0xa817e85a39915985ULL, 0x13c2a4b41a7384e5ULL, 0xa79a741dda6ca730ULL, 0x68f843e03b839e49ULL, 0x3272797be2f87352ULL, 0x13da6ebcb861bbefULL, 0x8390d0445153ca0ULL,
- 0x3c8df2b98548e387ULL, 0x997af813cfaa5cfeULL, 0xb5ca5fd7c116af70ULL, 0x6a6f8bd8157372e2ULL, 0x28d58d87172daa2eULL, 0xcbbd869549902cfULL, 0x26b0e8a761a113ebULL, 0x6139d0a8d979eeULL,
- 0x569a65b73189cf01ULL, 0xd0a3e788f35463caULL, 0x6d2d2a4ed7efd801ULL, 0xcb473b24b17b5dc4ULL, 0x1638289e97b4633fULL, 0xf08415c75267b7d3ULL, 0xbfbba539f4b36e10ULL, 0xe8609655080a8559ULL,
- 0x4aebee51c2d4ede1ULL, 0xaf13de5a6a494f2fULL, 0xff62d37829b1a9ffULL, 0x7848dc1d0f9010faULL, 0xac2a11770302b003ULL, 0xc4bf65cf11571a5dULL, 0xdb8b590919914b7dULL, 0x548a22a34b6248bfULL,
- 0xb479845dc16ff0ceULL, 0x60ab539a97eca628ULL, 0xe030b931a671bfd1ULL, 0xd4c976c57b94bfd7ULL, 0x96b37d220f5af4dcULL, 0xf8b269e223c2a67dULL, 0x48621be95f547f18ULL, 0x54d0847ac6bb5cbbULL,
- 0x6bd8425317ded5d4ULL, 0x341b896f9550ec0cULL, 0x2564ee825ad3be3eULL, 0x1aba115117bfdbfdULL, 0xdaf1d3261197e74bULL, 0x96c49323d37cfae4ULL, 0x1478c332d52c0190ULL, 0x7512fe14db7e9fc0ULL,
- 0x5eaa909750d9d009ULL, 0x5d7f0e8489c3af89ULL, 0x4ae24286157e3c24ULL, 0x1133a3da7092c79dULL, 0x1b1fa218b8b994bULL, 0x87db25c7ddedef1eULL, 0x1f766e9801207604ULL, 0x1e5f75767665ac4aULL,
- 0xb9e1d33bc32896f5ULL, 0x3d388bcb737e7a4dULL, 0x561776a11c35da13ULL, 0xaa12e0d9fbb4fc4cULL, 0x1f6f61ff28848c10ULL, 0xdf5c5c6ad3a6839dULL, 0x8db1339da6c2622ULL, 0xca49c62e0699997ULL,
- 0x58cf06a4c2ee89c9ULL, 0xd225e0a45d35626fULL, 0xc9f43b69d66b5d85ULL, 0x14ea28c8fc055883ULL, 0x860689fdccd3e8baULL, 0x29baff3fe1ce22b9ULL, 0xc4e068c6cdc92397ULL, 0x40a0c6fdea00ec72ULL,
- 0x9cff765b27500f7fULL, 0x3e8e1783438ec076ULL, 0x7c6f7effb5db25f8ULL, 0x770b4d9bfdf81b75ULL, 0x523784bced40bd21ULL, 0x4df275e7b0ddd560ULL, 0x2295652efd42b16ULL, 0x8983358fed30c5b6ULL,
- 0x39333d720b8a6196ULL, 0x67e08c6ca5e25bbcULL, 0xf77655a62cb97ebcULL, 0x659d2ccdd8c98995ULL, 0x7afccb5bca6340a4ULL, 0xf4c09ea91cf1d904ULL, 0x4a1599c7ffb602f6ULL, 0xb9ffc14b6c90eb9dULL,
- 0x45578fb1efbd690fULL, 0xd3db64bd44fb970aULL, 0x38313b9f15276d39ULL, 0x2541b1db1a91be4ULL, 0x44f119d0a6e6150fULL, 0xffcab51b5c47d459ULL, 0x44649d9e28f6c062ULL, 0x3af5fbd472ae9f6eULL,
- 0x17573fc2b3db454fULL, 0x622a81e8fdb681b8ULL, 0x4dbf54932ffaa880ULL, 0xa9189c16807f0d3bULL, 0x4cf9e7eb74ba70a9ULL, 0xc7aab1c2daadd769ULL, 0x412f417b8e2308e9ULL, 0xcdb1d51c267c8492ULL,
- 0xed04f9ab0161ff97ULL, 0x97d81b0125df746eULL, 0x4936a17c19c3f32ULL, 0x73d9a6c8bb908180ULL, 0xbd3b1dcf6099162bULL, 0x27e6b144d0dde2adULL, 0xabcdd870f61180aULL, 0x3c3e734fc626fa7ULL,
- 0x5968813bde54a531ULL, 0x4b5c5d3f2969be00ULL, 0x1a65807971efc760ULL, 0xa8602bfe17c7320fULL, 0x5b2a2e11b446d34cULL, 0x88e16573e3abefb0ULL, 0x7f708065b782a3caULL, 0xf2bb73a305a75be5ULL,
- 0x1433c24a392877f6ULL, 0x6d65b4225f8f62b2ULL, 0x8cd1e46f8ffbd878ULL, 0x8c35a6d93490304aULL, 0xe5c87e11748b55f4ULL, 0xab80e73387e3439dULL, 0x349b8d2bd29e71f4ULL, 0x4644080c7adda4a6ULL,
- 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL,
- 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL,
- 0x4fd1a980ae5c1b1dULL, 0x30caa5afcb63a9fULL, 0x410ee06214ced05dULL, 0x963d58940db65b5cULL, 0x9b1a8630b15ac0ebULL, 0x9b1c639f539fca8aULL, 0x8f90de0e49a7cfc5ULL, 0x193517beb2b9c8efULL,
- 0x2065d669f21a228bULL, 0x3d20e930f11fcf03ULL, 0x1843948ff1f44037ULL, 0x953f04e8727fdd47ULL, 0x84099c2210d5d709ULL, 0x58cf3766b816fa0bULL, 0x6e60b4d341fcca43ULL, 0x4d4e488111eb813eULL,
- 0xd54b1e747b4d35bcULL, 0x9a7dcaea5518e30ULL, 0x99a1756eee48fa2cULL, 0xd44c94c8198fcb34ULL, 0xf6c16d6f630fd7d8ULL, 0x3be919228b4318fdULL, 0x163a6df4855b3f67ULL, 0x12e79bc434eec220ULL,
- 0x832d9bcb27c5c85aULL, 0x1848e53310e94158ULL, 0xcb1553197b51b360ULL, 0x1ddf01a698d035e2ULL, 0x18fd0fcb9bb38e22ULL, 0x28f9a68890e5bb39ULL, 0xfff420c5348d5b77ULL, 0x4e118dcdb05d28b0ULL,
- 0x25686912f3b88272ULL, 0x3f5b60b9e81752a1ULL, 0x8c67cf97db959d07ULL, 0x9c7970ce33964ea5ULL, 0x52619bcc77cccf1dULL, 0xf231a51cc3d73359ULL, 0x42ca6bc94948e083ULL, 0x9852e556e0ca151aULL,
- 0x5efd6bb9fb6fe930ULL, 0x4924bcb52cc06608ULL, 0x27fa956c1999e283ULL, 0x9b4d42fa748433e7ULL, 0x31215a60995e2551ULL, 0x169744116a330babULL, 0x30830d0b6ea58f08ULL, 0x64106fac235a3da9ULL,
- 0x2de46377d0e68013ULL, 0x40a8d196fbc1753dULL, 0x54f517d924ef8d38ULL, 0x2b172ac9ed4289e8ULL, 0x72e7b9d7f81c288aULL, 0xf00c8bc9e3fbd481ULL, 0x33e091ee08abdec0ULL, 0x14cce6eb7e3d7c41ULL,
- 0x42fe3ede9053176ULL, 0x7634dafa54c0782dULL, 0x7a09f1cb03374fb7ULL, 0xe3b0370387925c97ULL, 0x1351f200e35accb9ULL, 0x85e35d1712ec5969ULL, 0x1a47baf53d165701ULL, 0xba6cae1f27f10188ULL,
- 0xd88321daead273f5ULL, 0x872e3d4af4b167c6ULL, 0x15e80bc01bad5c44ULL, 0xcc7643308a4ce9ddULL, 0xe78ee7ee9804ca9aULL, 0x5e62f75fc4955740ULL, 0xdc1be7fcce958fc3ULL, 0x40fdada68ee8e994ULL,
- 0x3d1e192a2c486457ULL, 0x5e150b4ee3e54c87ULL, 0xcc2d78e51e3ed62ULL, 0xe5c4e4eacb9e0963ULL, 0x12550aa2e86457f5ULL, 0x641a4d21783c8229ULL, 0x2c8a9f31f0948bfaULL, 0xcdbcee02c9878755ULL,
- 0x2978ae49914d2a99ULL, 0xea4e832337281224ULL, 0x1792a8cbc121737cULL, 0x4e110fe6828ab278ULL, 0xe34a88249854983ULL, 0x57ac53375eb7eae2ULL, 0xe2d59a3c4f2cfe8eULL, 0x7e0da884711fe2feULL,
- 0xa9df81cd9d3bca14ULL, 0x610f6148d7921260ULL, 0xb8074d5e70ba963aULL, 0x9e589812cc400cdcULL, 0x5c846162fef40cefULL, 0xe3973030cb50360ULL, 0xece20b98018544a3ULL, 0x29a6c69bdfba582cULL,
- 0x258ccf5c98e212d3ULL, 0xfae303c9d98dbadULL, 0x174537ff40b4070eULL, 0x9195811cefb22fbdULL, 0x641c64859f04a9ebULL, 0x26a5f72dc917a0eULL, 0x46bd2daf868fb45dULL, 0x759b12bfddd53efULL,
- 0xf722cf133ee82013ULL, 0xc85a44804dab59baULL, 0x8f6cc54c3246868cULL, 0xd01ee5e194ccb3b6ULL, 0x96165a696b858daULL, 0xa242f2782f9e747bULL, 0xdf561bfa936ab2ULL, 0xadc1f71c53e1880cULL,
- 0xa21d33651052ad86ULL, 0xd5f9395e3ef778eeULL, 0xf5f092754b024970ULL, 0x6e307f154cba245dULL, 0xe700b1118ff042d7ULL, 0x7930ac6914183742ULL, 0x1af41005064747ccULL, 0x896c69250bcaf971ULL,
- 0xe5428e77d81974feULL, 0x5db31e9dc8887f61ULL, 0x1b857f0e42f021d8ULL, 0xeef05da7b8c68603ULL, 0x13ded47eefb64e63ULL, 0xa751ae21839828d1ULL, 0x67cc915bdef2f2e0ULL, 0x43fa11c10d7cf387ULL,
- 0xd235117560b1c021ULL, 0x2e10dd4e1eb3a5fbULL, 0xbd5045458216f76bULL, 0x6179bea94a10ccb1ULL, 0xb01c3b59962fbee5ULL, 0xb9122d1637a9af49ULL, 0x4406d8b639e02565ULL, 0xe2b941dadaa6c801ULL,
- 0x347a0dbbac7f213aULL, 0x4ad45d2b502ccb92ULL, 0xb2f786414467e6aaULL, 0x85c9d828191bea44ULL, 0xba3a9f1f7810ee12ULL, 0x703397d8ea1b3803ULL, 0x107940e315200896ULL, 0x46872b9e5771df5fULL,
- 0xdd05e36292656a30ULL, 0xd5177883e47c23bdULL, 0x456905c76b0bde75ULL, 0x3d6c7647f81f8d45ULL, 0x2a56fc6c3aa3a1daULL, 0x224d99354531c627ULL, 0xda30bd7a0b2d2117ULL, 0xf2197ceec7032f33ULL,
- 0x18be78cf1fc4172eULL, 0xa7f005b0d3de8a38ULL, 0x9c5d0bb27c03611dULL, 0x7cda2b9d62e53e81ULL, 0xda7859e2d0e2d8e2ULL, 0xe1d91c3f6256c1cULL, 0xcbe3a47476149ce0ULL, 0x78bc493a25018fe0ULL,
- 0xe7d132051ad190b0ULL, 0x706494293136321dULL, 0x118986cd7d6d5defULL, 0x55451cb68d4f5e4dULL, 0x45aa724d2325a5e4ULL, 0x66a373f7e86e0affULL, 0x85104968f4c8262aULL, 0xa06992553c9b5611ULL,
- 0xa7a638a235c36f45ULL, 0x7d20429067e4c070ULL, 0x1284743e95f15f70ULL, 0xe7dc22116ae44866ULL, 0xc0e7eb7846a487f3ULL, 0xf396258dcfe363fcULL, 0x194824b7d04bef2dULL, 0xc8f8bdf0b5d4c711ULL,
- 0x5fc881c794587b6ULL, 0x1b885be8a870ecdeULL, 0xd03b460e6ef7eab4ULL, 0x19fe6c1c7c1c124ULL, 0x8b6adcb6f5ebe375ULL, 0x719c55c018985cecULL, 0x6d7bd32ed2925b2aULL, 0x380688b5d2427a04ULL,
- 0x6413a9b04fc27240ULL, 0x13527b57c687b625ULL, 0x6de826cf90665260ULL, 0x4f60f3e66e84af2eULL, 0xaa091f8eded888f8ULL, 0xad5b8676086eefe5ULL, 0x1fa91bb121320520ULL, 0xfb675ab6a5478c7bULL,
- 0xfece844f93d28edcULL, 0xc0dc2cf1e7baea9ULL, 0xd91c26d635102089ULL, 0xdeb5b694a4a2bacbULL, 0x9eeb33c554fd5631ULL, 0x8ffd7413065668e1ULL, 0x946679dd29589001ULL, 0xbe39361db2d666ceULL,
- 0xd899aacc24ef23edULL, 0x21d8af12c19061a6ULL, 0x5bdae58835fd0365ULL, 0x75ab8aca66d6c04bULL, 0x85da44fe0322447aULL, 0xc544427ba38baa45ULL, 0x3cce1ab8778c182aULL, 0x61494ce440c5ba78ULL,
- 0x9179e6b350d9775cULL, 0xf8b1275f133f9a7dULL, 0xacaaf5f418c8dec3ULL, 0xdcf37e49843020bdULL, 0xefde2e416523ef84ULL, 0x91938eb29d6a88a5ULL, 0xc41d13514ac0c217ULL, 0xaa6c2b7f70459993ULL,
- 0x6f0cfc4b69387273ULL, 0xe0d57adae8502134ULL, 0xd9c86854e41213bdULL, 0xa4708e24bed405cfULL, 0x48eaa13fef3d2e21ULL, 0x172da332b37818d5ULL, 0x2e3ff5c82f2cce2eULL, 0x61014330ffcdaf11ULL,
- 0xc6a2315c2a0f05f5ULL, 0xcbe599ccd93ea8ULL, 0x920c7dbf83e4b64eULL, 0x8663720902ad5fafULL, 0xb01a0b108775fed0ULL, 0x73521ed6b942408aULL, 0x443087d8ce0a0cbfULL, 0x444e0556604d7289ULL,
- 0x7bb0161cb0a7d767ULL, 0x99ddf87ec76e0237ULL, 0x782e15a3fb32e998ULL, 0x74b3a6cafb89da13ULL, 0x4505f2aa161bc34ULL, 0x4fbd17ab622b18bdULL, 0xa6db128755058102ULL, 0x1ea01419c50cb724ULL,
- 0x24cb77a6c9af0a20ULL, 0xfbda7782d066e94bULL, 0xe666d93e00504672ULL, 0xec89a356f62db71eULL, 0x885b2fb831c6b63cULL, 0xcefd6ffb80cfc6cdULL, 0xb10a2ef090b1dcbdULL, 0x85a8789b64b23768ULL,
- 0x68272bd5ee47b64bULL, 0x5498ab6eabb1d60ULL, 0x6fc9ce271e1f2ec4ULL, 0xdf8bb706902ab905ULL, 0x5ba64ead0f6b3770ULL, 0xa6975f3f0b96e3b8ULL, 0x355b42e0d306b644ULL, 0xced4bd21337192feULL,
- 0x70729d1110e19787ULL, 0xef68333a6b593c6bULL, 0x1d44be374f0f5ed6ULL, 0x537236412aa3fa2bULL, 0x33fab153dbb6055bULL, 0xaebf359780aae46aULL, 0xe3655e70a70e4105ULL, 0xc1547c33198da9f5ULL,
- 0xa221f1760c11c521ULL, 0x3f29d365ff361568ULL, 0x9dd1ba65a6b89e92ULL, 0x68bf3b0f657ec0d3ULL, 0xd5305553f8c77f81ULL, 0xf88daf9390e6973eULL, 0xd7baa83bf083971ULL, 0xe40bbc5d7bd90de5ULL,
- 0x4622ac08ef73b31fULL, 0x4abaced45026666cULL, 0x8f5db7004dc3d7fdULL, 0x3d4a827a863d4abdULL, 0xe1d5aa434d7f0b5bULL, 0x8d73c65e350806acULL, 0x60102518a3df2605ULL, 0x27f5c207392d026aULL,
- 0xf320363ba7fe4ebdULL, 0x391167f27d88eea5ULL, 0xac246b4c06f19cffULL, 0x3d13320e47f71be0ULL, 0x6894d35868d313f5ULL, 0xba9176f8a18a28f7ULL, 0xb56afc5cb1499493ULL, 0x1b0c009e35f92bc5ULL,
- 0x295dfc7aa66936d0ULL, 0x9c39882915ca2293ULL, 0x6f348fd0a66f62fcULL, 0xc52a71fb578ab499ULL, 0x1d518b58881c088fULL, 0xcacc201d4a5e827dULL, 0x75e9c3de54d343baULL, 0xda26ac8d8939f614ULL,
- 0xf38b25d00bf6090dULL, 0x238f61ffc0bece98ULL, 0xc0cf8e608e8f5a07ULL, 0xf5d07ce83d7de0efULL, 0x9db6c787372673d8ULL, 0xa731024cc015e3f8ULL, 0x62e85aec7037b5c4ULL, 0x8093a439761a69ULL,
- 0xcc21316b1554f5f3ULL, 0xa9238a6cca25b33ULL, 0x65da77b5d52018a7ULL, 0x68b8396bf0791ba6ULL, 0xc60a1d2807277fbfULL, 0x89c085d19bcd007fULL, 0x52bad43c90eae401ULL, 0x57ea14116b061837ULL,
- 0x1522b0dfd22810c3ULL, 0xa2cff1c0f1dd9d98ULL, 0x58c3880422d01631ULL, 0x2353061595cdb229ULL, 0x60a08e34248e3be4ULL, 0x4ec8ab387ab5114bULL, 0xbedca11bc1e49bc5ULL, 0x5ef3b49a6dbf7d58ULL,
- 0x32347d6f6af30cf5ULL, 0x71edf0e167a59ed3ULL, 0x907708586aad84b1ULL, 0x7e23f8ff61aeb014ULL, 0x1c5b6c3ca031ed91ULL, 0x4ddad93c7da66137ULL, 0x9376fac9d18bbe29ULL, 0xc8ec4f90d8f6235aULL,
- 0x323a5c576ed64ea5ULL, 0x511f205dfcf924afULL, 0xa4d79d9bae530cfcULL, 0xe78119b8c80edc04ULL, 0xbe7c3955db1182eeULL, 0xbeacd4771f718b00ULL, 0x13a4577b7e5fa1cdULL, 0x5241dfe621c1a8aaULL,
- 0x4f68efefd3cdd8deULL, 0x8d33af8d91d65ee7ULL, 0x5e4dbf702b13b0e3ULL, 0xd5bf88c0a1859ee4ULL, 0x287733d571f42233ULL, 0x3832769e7e89a98fULL, 0x3910d2e32ba79704ULL, 0x742bdf1443d9193eULL,
- 0xb96cb1f656346056ULL, 0x26be10df7fae7295ULL, 0x72171af522d768e1ULL, 0x38ea1455aed78dd8ULL, 0x481b53ac9e74127fULL, 0x43cdbe514cbfcda3ULL, 0xa3e405d976b5473dULL, 0x6499b0a8473d060cULL,
- 0xa142561757d0c104ULL, 0xbb1482d22e1c8655ULL, 0x189eb552f2985637ULL, 0xeb21280cf8b95331ULL, 0xbd2715a50b665394ULL, 0xf73ac57082cd01dcULL, 0x2f843a9d74ac6312ULL, 0x192d3f180559ec9aULL,
- 0x5b50dd72f7c32d5dULL, 0xf506655e9ac1ad1ULL, 0x2e1757eeab354574ULL, 0xd7c37c2ceb048edaULL, 0x831cb8d1d700d53fULL, 0x5a36dbb7ee17bd42ULL, 0x3a25ea1c6784ee79ULL, 0xcc155fb00a1a6527ULL,
- 0x43d0e44e3c04b6dULL, 0xe71b2c14348052d1ULL, 0x11c0b41d4a454658ULL, 0xba10e7124568c18fULL, 0xb65aa1f2b516b9eeULL, 0xd36a0d58034c1722ULL, 0x4b1e76f1fae8083ULL, 0x556600e98c5ac32fULL,
- 0x2385c29406c91eaULL, 0x8d1be994f8f83df3ULL, 0xb611d5c73af81a8ULL, 0x104e78b70521b69bULL, 0xeb6c68f58f786742ULL, 0x8289c4562d292468ULL, 0x85068f08ad5889c6ULL, 0xc96333215dc3c492ULL,
- 0xaf26a947e5da05d5ULL, 0x86a613f9079ea1cbULL, 0x3c45c2730bd82901ULL, 0x5b056cc7ee6bace3ULL, 0x1699f504a4783912ULL, 0xe069ea8d44adc5f4ULL, 0x3fc555afb87056abULL, 0x65ab3b1de1572f02ULL,
- 0x32c7f36c1338a1eeULL, 0xb35f31168027665fULL, 0x17fe433e497f9604ULL, 0x8cbfda6491cf4989ULL, 0x441637f1ada8df2eULL, 0x4ddce237aceb9bb3ULL, 0x30d13538dbcd1c4dULL, 0xa9055bd8317dc19fULL,
- 0xca6f09282b05d6e1ULL, 0x562dc1688ee772a2ULL, 0x39bb95454c7ed5a7ULL, 0x9d383542063e586bULL, 0xa0182a5c648203e9ULL, 0xa2ec545279331d85ULL, 0xac0be273fbcd0680ULL, 0x6dd077a8087678e1ULL,
- 0x77e31a63e2674740ULL, 0x525914ad7d2d8542ULL, 0x929975c375da67a3ULL, 0xf7041870efaf6737ULL, 0xff7704192aba3eb9ULL, 0x2c09ba21c88df89cULL, 0xfef127f50cc064b4ULL, 0x648eb55bd428d481ULL,
- 0xf4855266a7981be6ULL, 0xc1e84f6e85afda3fULL, 0x68251db7d618542bULL, 0x5aef78d147dec31dULL, 0x394b92cfd7ebedbULL, 0x2cb24bfd5884d41bULL, 0xd2c9abcd49eff22eULL, 0xe3dbd661022bd081ULL,
- 0xc989730dbf5de954ULL, 0x7e7011b1ae77267eULL, 0xaadc9a07b83a221fULL, 0x6cd0679aed4f86dULL, 0xa6772e1fa041c5c1ULL, 0xa16b443c0ca7551ULL, 0x44f4cf0736b9537ULL, 0x922994dbc54c1c15ULL,
- 0xc9b740f6e2a88f1aULL, 0x3d993ea101063525ULL, 0x385df5e908c847aaULL, 0xf81f1bff3f718395ULL, 0x43d3e1dc94cefda8ULL, 0x8d42f456011325c7ULL, 0xf71fafa3cbd3e93fULL, 0x90dd43ef96156605ULL,
- 0x2d8723a003302ed4ULL, 0x7aab2f6383b4a143ULL, 0xa3c3b3773c01d04aULL, 0x1daae350d63ec6caULL, 0xbe790b2f11408e15ULL, 0x67ac1a783aac594cULL, 0x71a7a9582f801c0dULL, 0x29b5e06acef1a325ULL,
- 0xcf1b65f9b267365cULL, 0xd0c80fd68fff3cf6ULL, 0x7a31ed66632be4f0ULL, 0xa37cefa2167a715fULL, 0x1e206930c3f5c4a4ULL, 0x9f34db876207853cULL, 0x352d52fc3ad97f8ULL, 0xf944889203cd64f2ULL,
- 0xc15298fb0170e2b4ULL, 0xef0565710cdd0788ULL, 0x9951499201dbbf9cULL, 0xdc1fd831713005c1ULL, 0x9022c8e18c9294dbULL, 0x37b306514f2a1bbdULL, 0x3ce0a33e47340c33ULL, 0xcc69d28dc46c0767ULL,
- 0x86dada2f912e9cd0ULL, 0x74d674ad798efa41ULL, 0x6ee731b16421253eULL, 0x6b20f00f57c10ac1ULL, 0x1787667b4ee6c468ULL, 0xeef6f23a2e298fa6ULL, 0x948330a00edc129ULL, 0x42c77b9afa9ba327ULL,
- 0xf2b704e548bc9a64ULL, 0xb9003f3cb69581a7ULL, 0x3f8725be3867c148ULL, 0x6a7ad4d8db44d8c5ULL, 0x1931ecf0da7023e8ULL, 0x646bb448e6e84ea5ULL, 0xf13019e971756f4bULL, 0xb9ce095d2f4d26cdULL,
- 0x1da28ed0ebcbf3feULL, 0x162077f7df573583ULL, 0x73ace55546b96d84ULL, 0x7ea66628ce80821bULL, 0x6280076bbe6271b7ULL, 0x833ac087179ed4a3ULL, 0xc681f79b5a1d1325ULL, 0x5bac73b5e0f4c8cULL,
- 0x9f6a1c4210b56425ULL, 0xa41fd086c9c3e331ULL, 0xb606e8771849acbfULL, 0xfd47da8385e33518ULL, 0x11c8a05750663cf0ULL, 0xd7e988c3f926b382ULL, 0x526a6daef0b94037ULL, 0x4dcc7d6813f772ddULL,
- 0xd89883891d6d1e7bULL, 0x8837454dc071c703ULL, 0xb64d32c2609ffd91ULL, 0x54719b1b1d104f4aULL, 0xb9f2ac0946ad5cceULL, 0xafa29370813cd677ULL, 0x649b8625de7fb94eULL, 0x286efd9ec5f19a70ULL,
- 0x1911c573f8a4bfa1ULL, 0x2e62c5f8fd48ea3aULL, 0x6b0cfb912441688dULL, 0x9a12b8393834a07bULL, 0xc0e52fe7407619f3ULL, 0x3b496c76202c3cb7ULL, 0x990afc841ed7fccbULL, 0x3a80c96e6eaeac06ULL,
- 0x6b2f3bf78ef56ac6ULL, 0xd09032eecb2a1c47ULL, 0xbfae01ce434eee89ULL, 0x476dc85cf9b7beb6ULL, 0x420fe1b2de063b26ULL, 0xbe7f807a2b518f5cULL, 0x2b4c391d66902421ULL, 0xef4f7fe6a20538abULL,
- 0xb88f3dac269d5f4cULL, 0x891a4925d7fbc3cfULL, 0x600feee98aa72c0bULL, 0x753de9a4d56a11b7ULL, 0xb191ea09ca8e17cfULL, 0x8d0dc4d6893c6a66ULL, 0x4dcb9adfd03ee874ULL, 0x935a6319ed3761ffULL,
- 0x24c7d22f4ac26c86ULL, 0xc93a6a24ccd63adcULL, 0x9f16a65ac0263b88ULL, 0x5bc447845c97394eULL, 0x7833c2819135c3cbULL, 0x22afce187e4dc371ULL, 0xffb225946190d8cdULL, 0x6d88b6700ee65030ULL,
- 0xe17b44dfd988505cULL, 0xc91719a44d1efd59ULL, 0x460ef367afb16c26ULL, 0x5234993f7f2d7931ULL, 0xca6628517d3a104ULL, 0xee570f674297df4eULL, 0x7391238c1e66923dULL, 0x277bb41d637404abULL,
- 0x3c998202b71ba5c8ULL, 0x13e529373fe56989ULL, 0xa0aa7daf6a96b35aULL, 0xb28a1c32b77971c8ULL, 0xd2e2e6f0d938ae13ULL, 0x778496b9a6104ebULL, 0x6de6e21fbcc421e8ULL, 0x84da6ba47701f8faULL,
- 0x82c4070f1b380a1ULL, 0x318763bcb1907bccULL, 0x7b30d3d7e85ab7a8ULL, 0xe1d8dfe05852e0f2ULL, 0x3f99ccd9d05154dfULL, 0xc343dbc75a0bf895ULL, 0x219497aa9fc0a367ULL, 0x4e94fb0e240cce1ULL,
- 0x8a76b1eb51fc714fULL, 0xd939fd974571ab1dULL, 0xcb401fb4e4cb9a53ULL, 0x92180da3db82f94eULL, 0x9edc365d2ec9d29bULL, 0x25879375c8db8ed9ULL, 0xa2da75282e8284fdULL, 0xcdc55f8cac9f525eULL,
- 0xa3f2b3b22d429589ULL, 0x20cdbed846c5610ULL, 0xcbb149af3b5604dULL, 0x3b2ead9c4f178a42ULL, 0x6647f3295133b55fULL, 0x8f9d711847814c65ULL, 0xbb5a395bf1fc399bULL, 0x2c9ba27cffcaa00ULL,
- 0x73c4a7d3a85896d9ULL, 0x4b16daa8e93382c6ULL, 0xf03de5b1555f85b7ULL, 0xb58d6c5a1b2ed31fULL, 0x4a20cc962e730b1cULL, 0x5dacf6af983829e8ULL, 0x2d6de765b401199aULL, 0xfbf352f176d1bd75ULL,
- 0xbc564aa8b10470f3ULL, 0x9630f290d9073c8fULL, 0x1b8890394012e677ULL, 0xbe066f1810b15d0fULL, 0x2c64274f904b4dd4ULL, 0x320525852ba42e9ULL, 0x8fadd1ec7b08eb95ULL, 0x289a8ef45b620cf7ULL,
- 0xebc65a4b1871ae62ULL, 0x203d34003e2741a7ULL, 0xa37093260b4f76efULL, 0x3802bbd0da975a67ULL, 0xb363ec401fb43666ULL, 0xbbadc1a611bbed57ULL, 0x6f343c2a722e230fULL, 0x1ceb6ddbfe784270ULL,
- 0xe64c49e5c414651aULL, 0x960d84f9511c86d7ULL, 0xb866c30e262cded6ULL, 0x16535b2ce431780fULL, 0x673b6581b902e91cULL, 0x938557d6ccbb37ddULL, 0x387186b2c4af6932ULL, 0x32bdd3a30a8f2cf7ULL,
- 0x7e7cf6c51736ee06ULL, 0xe2cfd1a32367e43dULL, 0x94e4fbe1a304ffbULL, 0xb7ff1cfb4d4bd934ULL, 0x693886a73d2f1cdeULL, 0x3ebe8643eda9f97ULL, 0xc774d9fa0d8a81e5ULL, 0x66100e99505a6432ULL,
- 0xf61dd14305c0253aULL, 0xca3f3b2d2ff0064bULL, 0x8bc141cc918733ffULL, 0xcbf6c9cf6196011cULL, 0x18704e0457c6ebebULL, 0x62231ad258610519ULL, 0xe32d21d60a7b98d0ULL, 0x2056c9cbbbb4ae1ULL,
- 0x52ef36f7a3f20b2ULL, 0xa01df9d40174f636ULL, 0xf54e9505afdd827cULL, 0x78cca28ae715531dULL, 0x6ecacdcf9446fef4ULL, 0xaf977d07102d982cULL, 0x87565f0971dd4affULL, 0x1ffa1a67a9d0241dULL,
- 0x64167b0d6a526b79ULL, 0x6043a26126e10d89ULL, 0x87dd0399412903d7ULL, 0x598778a08edca4f0ULL, 0xdd0224fd442db0b2ULL, 0x585f59eeadee8115ULL, 0x2e8b9bc60694a24fULL, 0x31031a19f54b89e4ULL,
- 0x941d6f4fbf8b01f8ULL, 0x1f27a852ebc690cbULL, 0xcc596a6a67a6f55fULL, 0x9d5046599defe917ULL, 0xa7d343dc604aae35ULL, 0x1b954036197b335cULL, 0xfd8d5300ab00cf5bULL, 0x7987ee011cd8b90ULL,
- 0x373e340b5bb98937ULL, 0x6a3e20dd13002e67ULL, 0x22f2c2c24204d70dULL, 0x1c5ea50c0954a116ULL, 0x1d8dbec3b16fef03ULL, 0x2c158f7305483a5fULL, 0x73b00b40628f56fcULL, 0x9a1e40c99d0950caULL,
- 0xac3ee162e483a578ULL, 0xb0ffa5e4cecb44c1ULL, 0x851fc97ffe42458aULL, 0x698fc6308e173dc4ULL, 0x79389b489e2fad83ULL, 0x34171ece27af0878ULL, 0x52db6e41a5c85706ULL, 0xac4ced9c67659d8aULL,
- 0x77156c669e879675ULL, 0x8c0a1d26090253ccULL, 0x2defd603c6dfac1bULL, 0xe4d5922fdac30572ULL, 0x3a2d25fcc841fc69ULL, 0x4c5648631704ddd7ULL, 0x8953a6db5ed422d7ULL, 0x925a7d527201ea16ULL,
- 0xc19e220398580649ULL, 0xb8b190b079862d18ULL, 0xa5ed4c0e7f52afe3ULL, 0x3a379a6d605da072ULL, 0xea9a1fd0a023ae9ULL, 0x24ec3295aee879e7ULL, 0xcc921d3ba3c32a3eULL, 0x7dd731fd7cfbb85bULL,
- 0x5cd4ba8f0ec6fe3bULL, 0x44f71d92df6e5e54ULL, 0x66cd8d4a64f90e4aULL, 0x2346047301e1179bULL, 0x11137e0d98705938ULL, 0x403ea9e5c1cd99b5ULL, 0xfce9fb7c66c8d0e6ULL, 0x2bd29d1ab24b64b0ULL,
- 0xfb7a35d032460ec2ULL, 0xc674d6dcda5c6e2eULL, 0xda1e18d0ce3dc762ULL, 0x31ca8444495fd48ULL, 0xef9a82f1c3c1f1a8ULL, 0x6585efd02eec08d4ULL, 0x16eabe49c644783cULL, 0x5b8d8e5150217af5ULL,
- 0x81c2b6e14f58b6afULL, 0xea72c275d126d27fULL, 0x7261d435864c85ccULL, 0x397d68f97aa2eed6ULL, 0xb8300aa3a47c662fULL, 0xc31d91f8bc23fc6fULL, 0xb2d01d6fa3f7ebd2ULL, 0x9bd4a978c6eb8fa9ULL,
- 0x4ab4d861d64a985ULL, 0x71021ea795e84277ULL, 0xe43651bd0d32a6c5ULL, 0x8866eff90a80c1a3ULL, 0x4bb041eec06d545dULL, 0x1ea9c81473a4c8a7ULL, 0x4cf5d704653d01e0ULL, 0x7f69e34701290cbULL,
- 0xab394e70554053eeULL, 0x5baba9e43b719c9fULL, 0xe64bed9b6c7c925cULL, 0xa25f4d9eb227a217ULL, 0x253b1a05ffdd0ad0ULL, 0x195cbfe461638847ULL, 0x80c28a9961dc26b0ULL, 0x5e474f2c3a8860beULL,
- 0x8baa3be62c708a52ULL, 0xd988196730371816ULL, 0x53b93e81b12e3f2bULL, 0x93663b93cc7961aaULL, 0x908175fe1fcc7b4bULL, 0xef925fd0296c858eULL, 0x1866517de3d50e3dULL, 0xe9179fc0060eb815ULL,
- 0xe281b1cb64a01a0cULL, 0xeab27dc72edde431ULL, 0x8e7dbdc94df29095ULL, 0x8697a9f8a992c95dULL, 0xc7828e981b9226ecULL, 0x1d8102c2e5864873ULL, 0x4aa466e07413b10eULL, 0xb015e5753578d5deULL,
- 0xcf4443153476b2b4ULL, 0x2a4d48ab832ff2e4ULL, 0xcf04ec2ff7ae5d99ULL, 0x146f6b2e0f7265d6ULL, 0x65a03392635886efULL, 0x3c16142a680754d8ULL, 0x324317d52f394107ULL, 0xf38dc3f0f41e35c7ULL,
- 0xca4cb3cc0ea0c088ULL, 0x6d24fdb04dbb9353ULL, 0x777b42b2041fa237ULL, 0x1698e9d2dc07a0f1ULL, 0x124a1b782cb7c2aULL, 0x8e7f0cd85c0e2fffULL, 0x1fcd8004196ca195ULL, 0xdae1d10b61cbade9ULL,
- 0xc047b035b3f7085aULL, 0xbd2f79973d23c69ULL, 0xd70a16bfc5282485ULL, 0x707ed9fb94f935c5ULL, 0xadf663cbe4b9588ULL, 0x41f067da2c2bbe3cULL, 0xba01b707f261bf1cULL, 0xc3e99b437c15ffe0ULL,
- 0x30fcb226a8249b0cULL, 0xb2b5a2d3c3e312f7ULL, 0x6442aa950bdcd8aaULL, 0x51291a7bdeecd1e6ULL, 0xb23cef72c68873f9ULL, 0x5631bfeb34eb10ccULL, 0x5c00b3c51f5c8fa3ULL, 0xf8ee5c78fd64e5b0ULL,
- 0x5183aa92ca94fa98ULL, 0xf654f206905ba579ULL, 0x260dce298242e4beULL, 0x56199cb4c0ff0d08ULL, 0x9dfd4fbeb3f39394ULL, 0x9d30c32d9d76b25cULL, 0xfbccd3f4132c40d9ULL, 0x8509d15c19d39c4fULL,
- 0xf1e5e78e5b8b2bbbULL, 0x59290070d80213f6ULL, 0x6c742cfb3b3cd0c0ULL, 0x21f520021ff2764ULL, 0xaf7cc32ff64a0df8ULL, 0x3b7ba225f4078c2bULL, 0x1e0287d0c07cd6d4ULL, 0x8384867646d20c52ULL,
- 0xdb9b7485d6a27543ULL, 0x307cebebb0f93b77ULL, 0x1b4088db27eb5143ULL, 0x27e32e7286e8373eULL, 0xbe5319c6b1cc67b4ULL, 0xa8d89145ef5cc9e6ULL, 0x708c2e59b9cdf43aULL, 0x7ccb12fa12e97dc9ULL,
- 0xe66925f33439d1ddULL, 0x831788ea3ea861f2ULL, 0xe0a647855b4d1cdcULL, 0xbd10424b9805f0e1ULL, 0x21f8443960d7babULL, 0xb795672ae79077b5ULL, 0x9a4ab29ebe034f78ULL, 0x74120916dca7a900ULL,
- 0xa593684725e99c82ULL, 0xd0f77ae5a13e6ff4ULL, 0xeabc8943355e2c48ULL, 0xe4f326209c862c78ULL, 0x26cea6b047b19d08ULL, 0xef0edd0c809d75b9ULL, 0xbfc77ac0f3889be5ULL, 0xf2a4f7b86cd4ffbaULL,
- 0x38ac34f5aab10548ULL, 0xaed5a1dd1739c4cbULL, 0xf13ad226e2af0c21ULL, 0x1b27a07005f31281ULL, 0xf1c53e8819fcfb93ULL, 0x935d8a86413d82caULL, 0x881fa95ef44f066eULL, 0x222a860d6b5181a7ULL,
- 0x7d61f9fad1a74809ULL, 0x8ba19fb1ecd0b2c7ULL, 0x40d6b73c4affc79fULL, 0xdbfed5a0b24615e8ULL, 0xc2ced5b7e3708408ULL, 0x229551a46ae30298ULL, 0x61bf40de5fbe78efULL, 0x1518762541717b88ULL,
- 0x2ae81617bf8efbf4ULL, 0xd62b7b0c6a55a5b0ULL, 0xae198cba28f821acULL, 0x3c7fa9f2ff2714ffULL, 0x7a42715a0422a73ULL, 0x7464763cb751592fULL, 0xf63eac366fa0d05dULL, 0x59bc4909e24f0b1cULL,
- 0x5fd92cca3a36511aULL, 0x1b24c90158018f66ULL, 0x2d04548eefce4cf2ULL, 0x80c26d8aa96d41b4ULL, 0x2876119dd349cc1bULL, 0x984bb3a8f83a646aULL, 0x57a88f1b583c34e1ULL, 0x6e0d94232e96c4c9ULL,
- 0x5d5ba962e68e63fbULL, 0x50b9e40e73de0176ULL, 0xa6d59bd6f3a25bc9ULL, 0x2b0e4355bae35218ULL, 0x8c12021d3e17107eULL, 0x8a01b66fdda7abbfULL, 0xa6cac52acb8c0a2aULL, 0x713ebe61e5091918ULL,
- 0xd1caa9d33200d264ULL, 0xc8728885d3b57051ULL, 0x3acaea3e082559c7ULL, 0xae7b734df3e6b406ULL, 0xc4c3ee11827e3ULL, 0x8cae11ef9f9c13f4ULL, 0xc6d5417cbec73fb0ULL, 0xfb3c42e099e7d83fULL,
- 0x128794842f134b3dULL, 0x2c2c61a6ebaec0f9ULL, 0x84833f4fef835717ULL, 0x89c87136733febf7ULL, 0x5ee814c1a39030a3ULL, 0xff9ba5b9afc08ba9ULL, 0x7f790d0049916579ULL, 0xc0cf4f1854279ad7ULL,
- 0x3e698d1774b75a35ULL, 0x60c260b32e876397ULL, 0xfcbe39c8747da2b4ULL, 0x713b975ace230d20ULL, 0x8849f26d9593731cULL, 0xd55f715621417f2ULL, 0x6bd04b07fa3da79aULL, 0x1c005425a83c1dbeULL,
- 0x46f3603bde2c1cfcULL, 0x5a1df7af0f4ba626ULL, 0xc2f382a29a35e1eULL, 0x6e683be33ebf41d6ULL, 0x95b1ed2f1c306298ULL, 0x4d4ac3751a7293dcULL, 0x6b1ff603aa3daadbULL, 0x38184a79414359f7ULL,
- 0xaf6111201e04f69eULL, 0x3d86aa8a73bc2b6cULL, 0xc50046d6dbb2a309ULL, 0xb7a1997f2bf73e46ULL, 0xa4090ed1037984e7ULL, 0x5ae78077205766c9ULL, 0x128b33c5f1e87595ULL, 0x7bb67c6ed40d04d8ULL,
- 0x28246199f9b7b8a8ULL, 0x721cfd9c49afefa7ULL, 0x2c3f533d592130f2ULL, 0x79f55bdc357b13d7ULL, 0xd1c6559128bf5cbbULL, 0xcf7d5c7f8a199e44ULL, 0xb202a0caad7d6cedULL, 0x402711fd9a1082b3ULL,
- 0x37c7a421f0df5249ULL, 0x7d72bef4166405a4ULL, 0xb5b4c07b7dc0024eULL, 0x85426511fefd6624ULL, 0xdef72b8ab9559622ULL, 0x8dfdd4bcdce577a9ULL, 0x93769b936be61c1dULL, 0xd8a16deda7feb61eULL,
- 0x3321d959ea5035c2ULL, 0xa30b8e37dcef258cULL, 0x86c0d2439ddff9f3ULL, 0xfe410f9640ec8906ULL, 0x332c9b7998e3888fULL, 0x4b5181b7e6595afaULL, 0x71b88e1d1d9564f3ULL, 0x5ac7bf7d2d3e24f6ULL,
- 0x1b904766aa39cadeULL, 0x3532570b26ae73eULL, 0x94c46c843bdef30fULL, 0x80d07a75024f87e1ULL, 0x2b9eb1fc51febccbULL, 0x4b269d8ba0eafcfbULL, 0xb756e5aa5a078e9ULL, 0x98d3570dd08781f3ULL,
- 0xf46cbccec957fbfeULL, 0x5c22b7fa14e4c6bcULL, 0x47149b7c58bb4acfULL, 0xfa386495f62146c5ULL, 0x38f288340561f0c5ULL, 0x21acf0ac69ac5e67ULL, 0xd7d99c59fb7decdcULL, 0xdcfc6eb9371fe322ULL,
- 0xc5608f8c47f585a1ULL, 0x198669eb40e5f846ULL, 0x894e9219aee303c0ULL, 0x55a9ad2a63418c73ULL, 0x72f66004cdf82d6bULL, 0x477ee6684cc1ca9dULL, 0x49fab1425d152b27ULL, 0xe19bb4da0689b7f0ULL,
- 0xc4b8a9709854a2a0ULL, 0xb1b7ec272792daddULL, 0xdad5f3ce0221e33fULL, 0x1a7accdc21ed563bULL, 0x1a2ade596e3600abULL, 0xe9bccd9da6107339ULL, 0x8fce98abff712630ULL, 0xda9aec6ae7d7f6ebULL,
- 0x356da6c8e494bf4cULL, 0x38096af5a02e3ee7ULL, 0x1a2330da2c57a810ULL, 0xb6c86208f9a64534ULL, 0x1eb74103d13f28abULL, 0x6a949ad6e0314fafULL, 0x9de1fe4ec906e5a7ULL, 0x8818326b671731dbULL,
- 0xea1c298587b86800ULL, 0x156c403dcfe5a208ULL, 0xc031ff92ef11eb44ULL, 0xc17b5c75686c7d6aULL, 0x77100ff2799e9954ULL, 0xe56c4bb017513f39ULL, 0xb942284aef94d543ULL, 0x3ade24169ad637e5ULL,
- 0x1960dc40417b0f22ULL, 0x9ec604de998e8a13ULL, 0x8139c535cc4b0618ULL, 0xe2a98bd84d5ca455ULL, 0xf83391ace0226e82ULL, 0xc89769791e4720b8ULL, 0xcfc17e42eff2e609ULL, 0x28af1a602497e701ULL,
- 0xc0308caaefe96c23ULL, 0x200ed1416f06d696ULL, 0x603e468d3846158aULL, 0x18f250117b6e8b79ULL, 0xb2e2f3c728bd767cULL, 0xd1630179a2fc4924ULL, 0x6e19e31cf0489f40ULL, 0x3451fbab9502495cULL,
- 0x77839ce65ef01d5dULL, 0x28e943b0cecaca6ULL, 0xf7775b83bb06bca1ULL, 0xcef9bc21cd9ff14cULL, 0xe138ffdf293a4931ULL, 0x9c73b4e390bbc630ULL, 0x4a53755ff0558018ULL, 0x4038652c2f7c222eULL,
- 0x71f92a9ca8b7e183ULL, 0x334e180a56f8f18aULL, 0x85edf93d98af40c7ULL, 0xa4b19414602b88f1ULL, 0xb975b8a570cb5d96ULL, 0xdde97e7c4e37185eULL, 0x1c0596524717ad2fULL, 0xe9c1887c18242a34ULL,
- 0xc615cdc4064770f4ULL, 0x57f93a60a2927482ULL, 0xe25036814d54b610ULL, 0x785c4f7456ee2674ULL, 0x2327c8f728aa3e71ULL, 0xa46649d291094ebeULL, 0x47d2adac1c7f8a00ULL, 0xc6b6cfe152dcf845ULL,
- 0xa07ccc3dc513b821ULL, 0x3680db433c37c8bbULL, 0xd53cb061e6f1f1ecULL, 0xa1f56a1f3a8c48ffULL, 0x72dc488f69a8f3d8ULL, 0x47ea52dcd9e7d22fULL, 0x317a64af6589938cULL, 0xcbc09813a33bdff9ULL,
-};
-#else
-static const mp_limb_t ecc_unit[8] = {
- 0x1ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL,
-};
-static const mp_limb_t ecc_table[2048] = {
- 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL,
- 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL,
- 0x3ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL,
- 0x89a589cb5215f2a4ULL, 0x8028fe5fc235f5b8ULL, 0x3d75e6a50e3a41e9ULL, 0xdf1626be4fd036e9ULL, 0x778064fdcbefa921ULL, 0xce5e1c93acf1abc1ULL, 0xa61b8816e25450e6ULL, 0x7503cfe87a836ae3ULL,
- 0xf09d89731510b33aULL, 0x5990950115125d8aULL, 0xf29037e7f630e13aULL, 0xe5caff31d031d853ULL, 0x5dee8b4917e3675aULL, 0x7a956818c6b5eda2ULL, 0xc2fdbb0ae30a0b3aULL, 0xfc44891565445e33ULL,
- 0xbb4b29ea73c034bfULL, 0x74ebb4e88e23439bULL, 0x96594d45f613096eULL, 0x4029ea200c7c4b6dULL, 0x4d95af09f15b4fabULL, 0xc96e40c7efa4bc13ULL, 0x87323dd1c2cc8801ULL, 0x8cf28a47ca792c90ULL,
- 0xf143a80e4b5af16bULL, 0xf1470a8d0b0ccb6dULL, 0x8c869415d383cd2eULL, 0x25d30034b667805cULL, 0xc3423ee830136564ULL, 0xf9eb2dee51adbfe1ULL, 0x1704532e5d97a348ULL, 0x73de451294e59114ULL,
- 0x28abff30b91412eaULL, 0xe73a34aea89dc402ULL, 0x9348baf8481c3ac6ULL, 0x153844ab5d8a4127ULL, 0x9fbd304ee83bccdfULL, 0xb9395802d5555f07ULL, 0xaa460afb9517fc4bULL, 0xfc162116dc8a2870ULL,
- 0xb34a14d950b5a248ULL, 0x604fc0c851c0211dULL, 0x391ca41a95b488d5ULL, 0x6768a4d627292fd3ULL, 0xbc9bc22bddfb3e54ULL, 0x3b53bb28d34ef1ebULL, 0xf0441f120fa11b0bULL, 0xb6cdd898a2822ea1ULL,
- 0xc494e3e4ed50b9e6ULL, 0x7af5f010e8e83d3bULL, 0x3a9f348af9364e92ULL, 0x2852f0407fc6dc63ULL, 0xa6a1a672c9ed22a1ULL, 0xa2fcd8ac2f019540ULL, 0x5212bcbf6490a5bcULL, 0x9dbce605716b20e0ULL,
- 0xc7f0d39a4460739aULL, 0x40e8cf5087692558ULL, 0xcfca7a745c6ae5f3ULL, 0x26b3c4cf6c47ec01ULL, 0x8afdbc42ede974ddULL, 0x96c9db5b4e76d94dULL, 0xc630f395f4fc72ULL, 0x898cc032a1e31127ULL,
- 0xcd86e1f911bd0be1ULL, 0x37df44f41d20680cULL, 0xdcf2a51e0bd9a3d0ULL, 0x1633d5de6a96e32ULL, 0xa4164c032b7d1887ULL, 0x29b6ed833d8bc5b0ULL, 0x2684d01887d681caULL, 0x13d1f1876b4c34bdULL,
- 0x874fbaa2e107462fULL, 0xd291f6f6417ad828ULL, 0xf8071115a6fe73f9ULL, 0x3237bf3c3e65fda6ULL, 0x2f227f680cda4281ULL, 0xa31f282887926456ULL, 0x61e3b0b94af0f970ULL, 0xf4059f419a207266ULL,
- 0xaf26473aa80ece81ULL, 0x50f291f7fd322c22ULL, 0xbb706b82f85b4d31ULL, 0xcb26510bb90b101aULL, 0x1b081512d5844659ULL, 0x3d0b1c4377bfaf8eULL, 0x2ea9eab65e99f600ULL, 0x929f168b42ab277dULL,
- 0xa34e521356dff90cULL, 0x4c4fe8fc7e68d021ULL, 0x7510a79256929d0ULL, 0x4858f3fe0ddd08e2ULL, 0x289f5d3e0b92f9a5ULL, 0x46b793d7d32e0182ULL, 0xd21a62cbc1380b77ULL, 0x5a648ab4b8acf806ULL,
- 0xdf9f75d3fb76bf4dULL, 0xf10033afa65ec6b9ULL, 0xf518149986c7da59ULL, 0xb39bec8c9b8a4edaULL, 0x7fb448f5a1f635abULL, 0xf959af99c898d92dULL, 0xc3926af6c4098787ULL, 0x26b80fd60e6d0956ULL,
- 0xdb27ffc83fc60066ULL, 0xacbcbfa444870667ULL, 0xbee2f3eb6b242b96ULL, 0x394329a3f49f98adULL, 0x1bad1867b4c3678ULL, 0x9a8f9a4ced8118f0ULL, 0x4a617a3de9441e53ULL, 0xb2c4d3de22fccfdULL,
- 0xdd09628922305001ULL, 0x7b16bb81c47b2126ULL, 0xe82f11291c0a8d75ULL, 0xc53283d471be2e4eULL, 0xb6d6bbcbf3a93b88ULL, 0x73437122ac2156c9ULL, 0x451809fded27ca2ULL, 0x9c78e9750da9710cULL,
- 0xc1515c0c3e163a09ULL, 0xa006bc7b3d3dd15cULL, 0x13d5c0f59cd3afa9ULL, 0x40cc3951c26b37fULL, 0x31d10bd9f1787e7bULL, 0x32e246dce83844b4ULL, 0x4f9aa4e27f36bbdULL, 0xa332332854491750ULL,
- 0xdd10ae184c7ef142ULL, 0x613293dc12218427ULL, 0xf30ab39fd38b6672ULL, 0xfefdca532c87d470ULL, 0x8544dea86049b855ULL, 0x1c9699c7367fcb3aULL, 0x2b1c85249511004bULL, 0x5dece8508f51e227ULL,
- 0xe2e63648bba69a78ULL, 0x83581fa47c5fa46cULL, 0xce6b680d935378f6ULL, 0x56ab6bd8974211eULL, 0x2bafe1979b97ac0ULL, 0x9613bef58d35f156ULL, 0x2e47316417ed213fULL, 0xbc801d59ae84b639ULL,
- 0x81c96ff79767e068ULL, 0xc1c6d2a9ea6c83d5ULL, 0x173eaf47d1e3c922ULL, 0x8fcebfcabc8e01b4ULL, 0xf2777c8e79513d4fULL, 0x570f674192b0788ULL, 0x4e5dc57c631ba1cbULL, 0x496031423cee1b3dULL,
- 0xce427a7bf8592903ULL, 0xe61b7d485a34add7ULL, 0x56724c010a0c24dfULL, 0x924308d32a9bd31fULL, 0x97c9e8ed6f2cf552ULL, 0x75a301030663cb4cULL, 0xd861c1eab4dcee25ULL, 0xd11f35c575fb7c48ULL,
- 0xb8612141200a5c4ULL, 0xb170a13bdc2a83d0ULL, 0x7b3d408b4ab7bbb5ULL, 0xb7f3d481b2a9b3c3ULL, 0x7c7d935d8e6f884eULL, 0x9cece57f05ece3b0ULL, 0x1de77a525fee6870ULL, 0xb6966926fcc968adULL,
- 0x6297cc40239f272fULL, 0x90a425b0b57ee2c1ULL, 0x24be8c2a83d339d2ULL, 0x4adc8f4ffeea242aULL, 0xcb9dff2e66c70182ULL, 0x18d6a12c78301bfcULL, 0x4d012bbfada93c85ULL, 0xc19b31ee5595c112ULL,
- 0x6a16d54e0b1acff2ULL, 0x461c37b77ffe425dULL, 0x89de043573712396ULL, 0x98a1ee58ba282909ULL, 0x90b0e1538131eea0ULL, 0x90bcfd1882ba555bULL, 0xcd86e5f8c6c18cccULL, 0xf66b402f99fde693ULL,
- 0xd980350a9ea0266bULL, 0xa518c8429f5402beULL, 0x680b2a4dae9a5702ULL, 0xbe3c4f358c4ce366ULL, 0xf6d5af96ad4e2d8dULL, 0xfabdbbc094a6d54dULL, 0x9c5540a04ab5b599ULL, 0x5020bcbf0bef871dULL,
- 0xc2ad99fd27ccba4cULL, 0x89420ee4c492b7d5ULL, 0xb5b9e2a8f0479b8aULL, 0x8e40148191fd19c7ULL, 0x6735937c3fbcc7aULL, 0x8ff82dcf1a65f6dULL, 0xdaa08c51950a31faULL, 0x6e724111d154bda2ULL,
- 0x548c96d5eca8807cULL, 0x3ba3470ad45e19b6ULL, 0xc8e7b15c68233583ULL, 0x736b6c71eca18747ULL, 0x91c269fb453fdbaaULL, 0xeb3bb493865d3315ULL, 0x2dc3506a49055d6fULL, 0xc505c9e8e070fc87ULL,
- 0x450b425644a6e3a8ULL, 0xf4fed6e0f4a84f44ULL, 0x9905725955d312a0ULL, 0x2bce381635e3aefaULL, 0xbae3050f945d3fa0ULL, 0xdda9e74a6de8c6fbULL, 0x7ac32f3bb10f4f7cULL, 0x8e7186569a223b01ULL,
- 0xe924cca98363779eULL, 0xb5d2f1a1b499421cULL, 0x7d0a75a02a2c8c2aULL, 0xbeb7ed4cc6cb3123ULL, 0x73348d9522c8672bULL, 0x6f201d282c9a2d72ULL, 0xce5ccc3e53c357ceULL, 0xc9b656b67770f5c3ULL,
- 0xf08461be87435794ULL, 0x5f1a4092851d28c9ULL, 0xada298a8f03b2b7ULL, 0x22632a6e5454f538ULL, 0x2d0e9cb9ca1341d9ULL, 0x1068131eb14e1561ULL, 0xab69672c7a0875f7ULL, 0xdb1a44082e71ec40ULL,
- 0x14396968a6c2f690ULL, 0xb9f5f128c3902cf3ULL, 0x7c8b7cc6b6ff7b04ULL, 0xd3a1d37d11ffb337ULL, 0xa965477e01ff37a9ULL, 0xc59274441cbfeef1ULL, 0x30ce24070d5de63dULL, 0xf5bd5046df5a1030ULL,
- 0xc1dbe753b990d923ULL, 0x7718815785566adeULL, 0x773c2be507849301ULL, 0x234b2b7d27927d70ULL, 0x7fe8e7c687e22228ULL, 0xfe831965ef0b97ecULL, 0x7308a745fa6b836dULL, 0xcc2979d3a9c9da91ULL,
- 0x36cc8b353006b588ULL, 0x178f9872fb2d1f38ULL, 0xae9f33a5c1a5c068ULL, 0x899c90224aa01a2aULL, 0xacec7d921b26bc27ULL, 0xe288318de6066809ULL, 0xcbd3fa4f50800c0cULL, 0xca091ffba4ac356fULL,
- 0xb9097f674926b43ULL, 0x1fccd44ecd62e91fULL, 0x87c14338d7e51519ULL, 0xfeba7acab78be653ULL, 0x9733f12308616ad3ULL, 0x877ff5d6d32e4bb8ULL, 0x75f4166e2de87baULL, 0xea31abfa22c73707ULL,
- 0xfea5ba6f816b73edULL, 0xa16c13af0ae733f3ULL, 0x727f6ba257495c39ULL, 0xeb4b05f424fb80d8ULL, 0x3dd68fed533f400cULL, 0xc65e10798049706dULL, 0xe4127472bb9dd117ULL, 0x8b198d925d8271b6ULL,
- 0x809c7b5db06363e2ULL, 0xe9ac961e37e536faULL, 0xf2db6edbd0ee7a97ULL, 0xa8b076a2806fc957ULL, 0xc17f16ff6ce9c26ULL, 0x13f6bb766b09825fULL, 0x8fdb263925d370adULL, 0x2d23b930b955d8c1ULL,
- 0x9eac43a093fffe49ULL, 0x34e637e25055ed05ULL, 0xee9a9db64b7a40fbULL, 0x8e394b5a99474c73ULL, 0x1bde98a3f25ac823ULL, 0xa8ff251c2b446c92ULL, 0x96aef9acacdf26ebULL, 0x8c97634ba78b7af5ULL,
- 0x2c2cf10f1a847be6ULL, 0xcb363337d0f25b9eULL, 0xfbf7dd0099f3ca4aULL, 0xc2ef54a83494818bULL, 0xc6862e60039993c6ULL, 0x4f35fc3a2d904b53ULL, 0x18c6af9f287097b1ULL, 0xe12fc820f73c6fc2ULL,
- 0xe6961991f1698618ULL, 0x3684d7ba552349d8ULL, 0xd2ab6eab3a3b0531ULL, 0x42638c929b484b49ULL, 0x4bbc14359b9bd609ULL, 0xa56d2f9874809b7ULL, 0xc22a4232fc148b2dULL, 0x72bb7b2ffceadd57ULL,
- 0xa17167f056aa96adULL, 0x84e3aa91a30f28d5ULL, 0xe9d10ad1ef6347a7ULL, 0xec6a6e07f48c8162ULL, 0x8cc420eeb8fe93a0ULL, 0x1ec66cb63b83e545ULL, 0xbcce7924adddb0d7ULL, 0xf3ad3b1dd5ca9fd1ULL,
- 0x4fba111c3505ee34ULL, 0xc140590fdb999eeaULL, 0x4533b329322aac49ULL, 0x51ca2ca43b35083cULL, 0xa7eb81fb87d3cd41ULL, 0x6e3f753bcacfde88ULL, 0x6aaa507e12de103eULL, 0xc2e18ba8499dac5cULL,
- 0xe7f470a34781d611ULL, 0xd1e8268af56f0b7eULL, 0xb6cb9af6529fe657ULL, 0x29b9110277c15de0ULL, 0xd2ed14c444030460ULL, 0xa373f04283493c33ULL, 0x4591c6a2bf13d7ffULL, 0x944dcf8990d9d462ULL,
- 0xc69d60bb8f261718ULL, 0xde3d9921684c442eULL, 0x9541d1bc27853374ULL, 0x377d8a6322ccf8d2ULL, 0x59e8f38ce8d1eb4eULL, 0xd9ac73e2832fc225ULL, 0xf411f9b8aec43e42ULL, 0x179374bba2d10860ULL,
- 0xb4a144148e109ea2ULL, 0x46c07fe6dc983cd1ULL, 0xc41edd9278a62c1aULL, 0x88230174f2d72d3bULL, 0x3ace276c4125fcafULL, 0x1ed7ebc0462da854ULL, 0x34e3d84c98f9f98fULL, 0x91e7c8471f03fda8ULL,
- 0x84a342522d96935dULL, 0xa4d586dd72d95b19ULL, 0x6562f1ff26d9fa13ULL, 0x6e22e7d88194120bULL, 0x8f97989262818193ULL, 0xae4bd59685305232ULL, 0xf32679d951f78c0fULL, 0x838165e2f982d31cULL,
- 0x673dc19a610a50b7ULL, 0x86a4b653b50bcfb6ULL, 0xe20c234c86915223ULL, 0x61247e4c174bb004ULL, 0x5d9c81b1a3189e6aULL, 0x2f3ec81345673092ULL, 0x56cab1e504d2b70cULL, 0x8d948565ec92b8fULL,
- 0xa55770c182d9f4f2ULL, 0xa45724218d8bc71aULL, 0x3000f024029823fULL, 0x688b806d9cc4c131ULL, 0xd1fb98ea451b427ULL, 0xb59f87d34fc05c6bULL, 0xd1cd5897e9905edbULL, 0x484a127ffce43907ULL,
- 0xe4f4a92d2bcf367dULL, 0x1a7baa3ebb5621baULL, 0x9f9aef052080ee84ULL, 0xa5dfb60ec08c09e7ULL, 0xec09231ce1f3f037ULL, 0x11750507693d8610ULL, 0x2280b5727768a574ULL, 0x83229d39cebd9c9aULL,
- 0xd0b1577876bbfd06ULL, 0x59205104d32f5406ULL, 0xa7035a26e4387577ULL, 0x5271a98e833a9e8dULL, 0x690c7b5120b12517ULL, 0x5a91f115919772c5ULL, 0x12c638a8a42ff04dULL, 0xf93a912014db1586ULL,
- 0xae6bc968c3360fc7ULL, 0x406d69e7f404688fULL, 0x1f1fde792e3cd0cbULL, 0x74be4e309bfa81baULL, 0x2f5a56542b011447ULL, 0x18ec4965e1a739dfULL, 0x188c8f604c44ae89ULL, 0xc322f6ae89d62199ULL,
- 0x7f34ed1bcf02fb20ULL, 0xdc2d18a35a81d96aULL, 0x30603144145f3203ULL, 0x489f3e600bb47c92ULL, 0xd71c6803d14d421eULL, 0x37cbf2bdda89c067ULL, 0xf2a6dfa7e6397a79ULL, 0x86249df501c88b98ULL,
- 0xfa36599f2160b7dfULL, 0x8073d6f7fe1fba78ULL, 0x90d6c3ab44f1bebeULL, 0xe9bfb878f5e9afcbULL, 0xd73a8c9635eea7afULL, 0x9116211ce194bcf5ULL, 0x3d34a8263b4ad4d9ULL, 0x5d438cf921d9c311ULL,
- 0x644646ffc96ea9a6ULL, 0xfd4801e76d2b3e00ULL, 0x1b12e36e18d5811dULL, 0xec4f9478734e6d25ULL, 0x3e2d2668359a592cULL, 0xb7800f74588f7647ULL, 0xe73635fe3d213540ULL, 0x881a8fc1a75e04e4ULL,
- 0xf80edfe18b9cff09ULL, 0x9c1a5db362b3899eULL, 0xc714af776edac689ULL, 0x7e7ecd984d158e42ULL, 0xd982f8fea84372c8ULL, 0xc3d8485dd2fef8eeULL, 0xaa7a06eb544dd5b0ULL, 0x8e4efc92cb848c85ULL,
- 0xaadc73b3e16b2dcdULL, 0xf0d4a168d5380f5ULL, 0x697a3503434197a2ULL, 0xfc03fd5323556634ULL, 0xd1afd9689718f6dbULL, 0x389c413112ab3f56ULL, 0x24fcb82c68f1ebfeULL, 0x31ab63837d9e8006ULL,
- 0xb1ec3c370d2a0ce9ULL, 0x2c4f68ca2ac7f99bULL, 0x961f55c15d97f8e1ULL, 0x9e770f31424199c6ULL, 0xea7e616c8fc02b5ULL, 0xc182fb58b51a74a2ULL, 0x469503a5ad62f64aULL, 0x6b396065264a2699ULL,
- 0xe7bf12625ec6efe0ULL, 0xaac820a6ba79e93cULL, 0x5052d902a060e9dULL, 0x2b1c7df01a498617ULL, 0xd9ae82417fd871bfULL, 0x6558a25cd3421483ULL, 0x9f8fbf20a0915a39ULL, 0x641ad89f8adee879ULL,
- 0xfa122e4d90c5f92eULL, 0x4104e16bf3552911ULL, 0xce628fa09d67421bULL, 0x81ccf39779652188ULL, 0xd0fe57e9631cc54bULL, 0xd65d4520aa5e93a7ULL, 0x9dd1c68b3ecc908eULL, 0x3c4f1df8cd1ea333ULL,
- 0xcb79291c7237828eULL, 0xdb54c3a0b6f70fa6ULL, 0x35cc101e10235a28ULL, 0xcf77c13c84e41906ULL, 0xf2b043886247bc49ULL, 0x72830c3d65d69f35ULL, 0xc128f266fbb2da08ULL, 0x316ce785394e90a7ULL,
- 0x8729b0b13e69249aULL, 0x5fcebae360aa2364ULL, 0x7ee3bdb04201e367ULL, 0xd6cdf865fe4b5609ULL, 0x48da443a118ad798ULL, 0x8a89848ca907b8cbULL, 0xc256a23afd6222adULL, 0xd4fd513bbd1ec4e7ULL,
- 0xbc2f618f6cd2fb71ULL, 0xb5737961b21d7cf9ULL, 0xfedb38240aae1f52ULL, 0x664168d12cc5c01bULL, 0xcf559a6f6eb3e1b1ULL, 0xe051ca99cfc8ef69ULL, 0x9827478861bcf33aULL, 0x352bd9ab41adf3b2ULL,
- 0xa25b7fa378d0a8e2ULL, 0x2db8fe2eddff1a65ULL, 0xf79a3868488dd326ULL, 0xa5f67de05610e753ULL, 0x77a1d91d34e5eeccULL, 0x5c90c2fbb52bc7cfULL, 0x675dadec041ed2f0ULL, 0x8af860b9f3b3a3aeULL,
- 0x93c8e63357dbd4c0ULL, 0x86d80bf0d45d892fULL, 0x118fda9e98cdc94ULL, 0x21819a8238bc69eaULL, 0xb99ab4501df9f5d1ULL, 0xa4eef5e59ed22fULL, 0xdc76c6cf223b68f2ULL, 0x702de06f0c4c7da1ULL,
- 0xed9d1a6f9aec94fcULL, 0xe68451315f04f369ULL, 0xe4491ebb8cc49da0ULL, 0x2dc301faffcd0152ULL, 0x38f1ddaa4dcb254dULL, 0x906c26397c619c07ULL, 0x5a75c15ad8a03622ULL, 0xf13a7b9207e3cf2aULL,
- 0xc1c151564827d602ULL, 0xa6dbea89999f1d90ULL, 0xa2ee8ed89f5353c6ULL, 0x6c4cdc831d51c60aULL, 0x359d59722ab49dc4ULL, 0x6baa45697ab23993ULL, 0x6244aa3234f3286fULL, 0x22d8a4d50a37836cULL,
- 0xaaefb00fc65dfb99ULL, 0xced887a2c69c48d5ULL, 0xdb5b56504acf161cULL, 0x4e220471597d364ULL, 0x8b7c8c42fe8b11a5ULL, 0xa7ef4c9eec427b5ULL, 0x7fbceac38ec1b6dbULL, 0x8ce13c9a1c445e1cULL,
- 0xa0788969f9b1ee8eULL, 0xb4408b5ca8c5742dULL, 0xbe7f56d0ede8a427ULL, 0xcdbc72434d688028ULL, 0x76a85fc1c894b9c5ULL, 0x42773cb2ec31a564ULL, 0x1e3c295c50118243ULL, 0xc224455481a15eddULL,
- 0x79da69d5ce7e55b4ULL, 0x9055baf7cf73a620ULL, 0xb3f9e84ac5afe6feULL, 0xb4bd071ba6198a20ULL, 0x30ff44fd17737db0ULL, 0x1d9a164f987843ffULL, 0x3304b0e63d2be754ULL, 0xce8a03b69d82a80cULL,
- 0x15e89cd507770815ULL, 0x9869ce6c8a0c9e04ULL, 0x12706a445aa7b72fULL, 0x6ed89ed0c106d9dULL, 0x7e739fdd4ae9cc5bULL, 0x7ae4455b68227041ULL, 0xf1fe0c25b7d7ccccULL, 0x85a6cee99e39cedbULL,
- 0x7bcb0f798b61070bULL, 0x6895803963cbfe8cULL, 0x5b81cc9bb6c8e748ULL, 0x19b68e5b59e8b7eeULL, 0xfbc837df9dfa592fULL, 0xefa21aef28221b0fULL, 0xa1452c62bff424c8ULL, 0xd74357a4f698f4f3ULL,
- 0xb794aff4846ca53ULL, 0x85b371dcbf405fefULL, 0x7192f4a9059ae29cULL, 0x901d8feaa2dd7660ULL, 0xceed62c11ab44efcULL, 0x53b63579a8349573ULL, 0x8ce395a71dabf94fULL, 0xeca0c8725727b83bULL,
- 0x97ae2f6e36dafe0aULL, 0xa5d47cabca1cca8bULL, 0x31b8a0599687a068ULL, 0xf7f49eed2371ec06ULL, 0x7e64a26fe1ff5ccbULL, 0xc0da6a4a0e7cf270ULL, 0xeaa52afb28ef946fULL, 0xfcf34163d9b940ddULL,
- 0x72957680d37aa81dULL, 0xc25825b440806710ULL, 0x7367d48a9dc77589ULL, 0x1119332b65f3e8aaULL, 0x906795a732d986b9ULL, 0x9761ddf42adc9be2ULL, 0xfadf068cd4eba240ULL, 0xaafcbcf3b91389c7ULL,
- 0xd97decd2ff4c4fa6ULL, 0xd2c3896ce97a7428ULL, 0x91a00cb6915808d6ULL, 0x2e005b9ff0baec7bULL, 0x4ac855ebf54c2385ULL, 0xb14d35e8d4773235ULL, 0x86faf7f0dd24d1ceULL, 0x694282f54a4be1dULL,
- 0xd551884ea1ddfcb2ULL, 0xc68ec762e91b3dbULL, 0x3100abdd27189904ULL, 0x2f0d6e0308c095b2ULL, 0xfd51ba5d9e3acfdeULL, 0x1003f059bb071598ULL, 0x9898712f06f9eef9ULL, 0x2ae0daecfc68b7ecULL,
- 0x6abeb3d00e4edc5fULL, 0xc03c3ae21960cefULL, 0x18456be715fdc33fULL, 0xe9cfa15516d27ef3ULL, 0x13b6fae99b04c324ULL, 0xe72347d073413f8bULL, 0xe96ee23dbdc4874cULL, 0x394f835fd485b848ULL,
- 0x8f64edefd04bc256ULL, 0x441af841eb786c2fULL, 0x949ea0a1c5bbbe74ULL, 0xddd6c13d198cecdbULL, 0xf8871a89ef9f0881ULL, 0xc79c9fbd89c8a613ULL, 0xee67b89a98e8b33aULL, 0x7f674cef89482d41ULL,
- 0xd6c8d1d39f99b03eULL, 0xa347e4e5e73748ddULL, 0xdd189176df454d65ULL, 0x156b23a6c318cb07ULL, 0x6ab8df60be245473ULL, 0x489e295e44460665ULL, 0x2400fa3ab4ebb4aULL, 0x472f0f310d477830ULL,
- 0x15a5003432fedbb0ULL, 0xf18b7f4e9d2466d8ULL, 0xc5aeb632e8226217ULL, 0xf9567166b684167aULL, 0x42e9d48fd6e5b9cfULL, 0x275e19a5f9fd44f9ULL, 0x511698bbfe288a40ULL, 0xaac2bc87ca708099ULL,
- 0x60abf55a299c7ebcULL, 0x4a3abd73df983b19ULL, 0x17bfb237233b5904ULL, 0xacdc596e10591ca6ULL, 0x63d784b031f2f6aaULL, 0xa8d2b1b4d82d3cb7ULL, 0xea026ec14ef8d2bdULL, 0x69e20cdf93424c7dULL,
- 0xd86663e22766ef16ULL, 0x4d54a682406bc165ULL, 0xa2402b056f6a64f7ULL, 0xc86efd6ec6c546caULL, 0x5160119b04884b00ULL, 0x86b4db2368d849acULL, 0x9d1eadac72b3e07ULL, 0x201ac69199d981b9ULL,
- 0x278bba66dc66b0d2ULL, 0xae26c58a290ce353ULL, 0xf1a778004e0216bfULL, 0x7ce5a173f0a57df7ULL, 0x73f97f2063e984c9ULL, 0x89582c62b0fcffdbULL, 0x3eb9352807a3d6c8ULL, 0x3617f09c359c3e7bULL,
- 0x37afbd618f28346aULL, 0xf2149f20a63e9c66ULL, 0x638c332db2c91957ULL, 0x10c376ebe64ad6bULL, 0x926f584f68b38c7aULL, 0x868b64f43f07d3d8ULL, 0xe09b46fbf3f5f5a4ULL, 0xd806ef96fa837dfeULL,
- 0x539d574f4f468e2ULL, 0xc78ef8d4d901b287ULL, 0x46d8e58656ea5ec5ULL, 0x8e0505a5a2bf27c1ULL, 0xf586ea979c1e0a5fULL, 0xb0fdb723ae81ee4aULL, 0xdf83e6d5330a661fULL, 0x10cfb926204afabbULL,
- 0xc4a7d0b491129e3fULL, 0xb2d148d733bd34daULL, 0xc60a3e7f96482adeULL, 0xf9f42958c6e539f7ULL, 0xbc43ce10551d5b9aULL, 0xad8f10c3f639478cULL, 0x16e88071acb000c8ULL, 0xd2574f318d4b3803ULL,
- 0xbf255c6e2d533e33ULL, 0xc95a6f2a477a3023ULL, 0x21c92546b6a4621eULL, 0x1d46c16a04b9ddfbULL, 0x8351d787216f22b4ULL, 0x5cf319fa6ead1f45ULL, 0x664d87adad2b0964ULL, 0xff9d3cfabd063222ULL,
- 0x32ec1b245913d42bULL, 0x588ada7e8f22efa9ULL, 0x678f4a6d62639adeULL, 0x59e8bb9421a4b201ULL, 0xdf39bb447da4a61aULL, 0x72f8b7002053e5bULL, 0x8a1d57070c61881bULL, 0xfdaaece0bb5cbe52ULL,
- 0x1f7a43ec83a08870ULL, 0x4be8e67091921115ULL, 0x5501498e0f7defc1ULL, 0x41a0bc135fc93f69ULL, 0xac0424c08fd6b672ULL, 0x455bb4aea3abbc7ULL, 0x9f74e9ee7f6be9f0ULL, 0xb93bb6abd70fe0f9ULL,
- 0x9bcaecd04315b10aULL, 0x256b5836771f4745ULL, 0x9442775e2ca39dc9ULL, 0x65f1cd0d65bde132ULL, 0x1428d979a4471f2fULL, 0xf2a5ead89d55b7d4ULL, 0xf453f8cf6a952f0dULL, 0x1153e3d9cedb9d69ULL,
- 0x2c191fd211e2fa07ULL, 0x3a9622d43f9bf46aULL, 0x4b8e897e9ca19bf6ULL, 0x4310ad9da8d84441ULL, 0x258708038309c973ULL, 0xbd3d3e4bc073a035ULL, 0xc614094414b3fedaULL, 0x6d2d1b4ba705e251ULL,
- 0x1fe112b7d9a25006ULL, 0xee018f592cec768ULL, 0x9e039161380f6894ULL, 0x5e43caa43fb9c871ULL, 0x954ce50b01b8a7dcULL, 0x6eed5748f255d704ULL, 0x9ec2095abbc21d15ULL, 0x4d979cc4e461675cULL,
- 0xc093b81075e5f74aULL, 0x6ab8a57ef51b8156ULL, 0xda08a9df00607869ULL, 0xa795ed5de313934aULL, 0x439f3304475f57b9ULL, 0xea49a581649e21c5ULL, 0xd618bb2fdf6c4ee3ULL, 0xbf80e3912043771eULL,
- 0xc53e34d6e36302d3ULL, 0xc94af8c727af9cb2ULL, 0x49787e9a1c09994dULL, 0xafde91d5410cb26fULL, 0xac614cbf5d6b06aeULL, 0x3e464b36388bc318ULL, 0x9080f2675a067edeULL, 0xaf4e04a9be178ea9ULL,
- 0x2f377aa147b0e418ULL, 0xed2064521a174484ULL, 0x72936f2d4ff62adcULL, 0x43f339803d017c5cULL, 0x33cff18323163a2aULL, 0x3bb05ac8418f6e33ULL, 0x51035d9e476519bbULL, 0xd15d722ecda31e8cULL,
- 0x4fae1bdc7eb8cdfULL, 0xa1440d4806a79780ULL, 0xdfa599a52d594cdULL, 0x771881558c3cbaa0ULL, 0x140bc6c58a1e12baULL, 0x859a64e6c2830d6aULL, 0xef3467e99491682cULL, 0xcd6a8a023c2ab895ULL,
- 0xfd47341fa23e20a9ULL, 0x2ba1b0b444a5891aULL, 0xf9e68142cdd8c6fcULL, 0x2ce9057475c0d746ULL, 0x890a1ed52640aa47ULL, 0xb78b03a5cfe65dc5ULL, 0xe067ea1ff8210382ULL, 0x838f003fcd2a1f50ULL,
- 0x6a8bb7cea877cac8ULL, 0xd64e59c7004e6637ULL, 0x2eab0ec1ffedfe0ULL, 0x93dfb4b813e53385ULL, 0xe99aeddbb9eb2993ULL, 0x9818f9fc27e8a566ULL, 0x13f0e8644a1d18baULL, 0x6e2941a6e5226cefULL,
- 0x3948892ded10b15fULL, 0xe54fe9e00a4becf5ULL, 0x9a1185415a95d382ULL, 0x2c7a308c29fc22c8ULL, 0xfb98d821ceb56fabULL, 0xefea73b2abc5831cULL, 0x753df3e54a5b8be5ULL, 0xe93eaf969145b046ULL,
- 0x2d3170615efaf3e1ULL, 0xe7d74345894f5157ULL, 0x19cf2f9d0d675990ULL, 0xf74e14aea20f5b88ULL, 0xb357e1a9adbc3777ULL, 0x253a890dd4873456ULL, 0x296fa2b06771e0eeULL, 0xcbcaa00449c10fe3ULL,
- 0xc71ac07895390996ULL, 0x30a52318c2075515ULL, 0xb0ca328311bd3c3bULL, 0x261d42a48ac6bda7ULL, 0xdbace7c06e2fb517ULL, 0xf70364d09f39c4b1ULL, 0xb18d0b825a994984ULL, 0x6a7d92e47be62b3ULL,
- 0x83f5d2b02707e8a6ULL, 0x5a92aedb78915c40ULL, 0xe5594532dd41937eULL, 0x376c9856f744db4aULL, 0xdb176d7af2c7291fULL, 0xfad3f6c1c08e2eb7ULL, 0xc9930e07bdd6d803ULL, 0xdec4e61beab6c289ULL,
- 0xb17d481cdd92800eULL, 0x52fd5cb29359127cULL, 0x384f48f112d95875ULL, 0x5cd8fdaffa538621ULL, 0x4cd0fbbd7349c3a4ULL, 0x2fdb9aedefbf478dULL, 0xa4fb65df90526f98ULL, 0x1adbb20b62c08065ULL,
- 0xa611b08eea66a51ULL, 0x54020ee8ddd57a16ULL, 0xa063d4a71cf2bb22ULL, 0x6e0f4fcc0cf0d374ULL, 0x87f6a54a5dd48904ULL, 0xe9c35a42de7396ffULL, 0xb23daabf1acfa877ULL, 0xdb3b55d95d8eb953ULL,
- 0xf183a5ad7b70bbe2ULL, 0x6ba0e50ef7fedd2cULL, 0xe454f6f62caea49ULL, 0x4654d3f09f6eb045ULL, 0xc87b30f374e5f85dULL, 0x74b8ffad46a23f27ULL, 0x1b2ea0287a587406ULL, 0x3f1f6201641a9688ULL,
- 0x402ec6449d13bbfeULL, 0x78ebeed1bc656419ULL, 0x12868ef0d3100c0cULL, 0x487183c6951109ddULL, 0x34ae673107abac81ULL, 0x7125ea87d9bfaf6fULL, 0xca5639e1b9885f83ULL, 0xc36579cb07146f5fULL,
- 0x185887cc9ce0b663ULL, 0x45bfaecb0cd91540ULL, 0x4001f9a2953e390dULL, 0xe99017b5b94658bcULL, 0xb14fb571efae03eeULL, 0xff2cf81d985752ddULL, 0x1cd94b4a9f4318efULL, 0x711d158b06bd3322ULL,
- 0xc74b5ae212c7e27aULL, 0xad53aa3b4e5791f9ULL, 0xe59ae047b7f00dd2ULL, 0x78d78c7d9bbf337cULL, 0xcc40a0199c8e1825ULL, 0x7ca4041846458764ULL, 0x6542f49005c3be4eULL, 0x7048237fbd36c3f9ULL,
- 0x50f2911f0392af68ULL, 0x9a52e8f99892c8a2ULL, 0x598d299a6d09e1b6ULL, 0xbb203135af5c87e2ULL, 0x205b9975e8064669ULL, 0x869b21ed2d16f83fULL, 0x3cd9ecc318b2bf34ULL, 0xcea45956925bf314ULL,
- 0x7a11cfaedccab8e6ULL, 0x72572c06b2970e8cULL, 0xe12bdadc742bbaeULL, 0x9462c708eae1f47fULL, 0xf38849e3799ee589ULL, 0xeae43cadc612caacULL, 0xcecd2e95f8d64ed3ULL, 0xaef83394d8e82173ULL,
- 0x84fac72cef5c2ea6ULL, 0x477650975b9ec1ccULL, 0xd4c6c4233a7f4566ULL, 0xaa897370a485b874ULL, 0xee20921fb09be9a0ULL, 0x8c207f4d9ff1a47ULL, 0x56640dd90da7068cULL, 0xc6e2681f4078663dULL,
- 0x365a2d1c6b345550ULL, 0xa81cd61dda4efd75ULL, 0x6f9ce9580ca4def0ULL, 0x6d9f8a53bc7277f8ULL, 0xc70baf2296601006ULL, 0xe264fb43b45d1e58ULL, 0xc2eb98ef42d29b8ULL, 0xc2d38f184d819cadULL,
- 0x5a16bebd4a0512beULL, 0xe139ce0bbb8745e6ULL, 0xca547d3e7790e95cULL, 0x13fbb2693593c629ULL, 0x5267dae7f1319212ULL, 0xdaadff07d56832d8ULL, 0x5fe6374c544e1e2dULL, 0x73a0ca1cb60fade1ULL,
- 0x4163b3b1965b92c8ULL, 0xcbba1a0d49c36901ULL, 0x4913e0216e9ba425ULL, 0x71b1eb2adfa5e32ULL, 0xac5afb1f5299bcb0ULL, 0xfb0614bbf6b258f4ULL, 0x9c01adf4daa32efbULL, 0x1da7164f557f57f7ULL,
- 0xddf037c20e4a2727ULL, 0x5470f67e22614f52ULL, 0x1a8b324fd87b2364ULL, 0xa87a810fcc4996c0ULL, 0xde8f255f972cfef5ULL, 0x76ac33eb37d1cfe7ULL, 0x2c06fe5b5920a626ULL, 0xca9be990b572734eULL,
- 0xac2f0121e87e9ebbULL, 0x5f8d1fa40a2a41faULL, 0x851e3ad06585d2e5ULL, 0x21aadeea4d26f430ULL, 0xe052330f5b5bf122ULL, 0x13c8864288d60ce3ULL, 0x908c8b859589d255ULL, 0x3b16698323e46f4aULL,
- 0x8b365e991dbc7351ULL, 0xabf540210a29158fULL, 0xc02d9e569cbaa2c0ULL, 0x6220b87e915d04e2ULL, 0xa1740d6b255fa5f9ULL, 0xeb1e7d558bd82d6eULL, 0xa60db5a85b41c3b6ULL, 0x832153ae271404c7ULL,
- 0xebeb9a92eff1fb3eULL, 0x2834dceeafb53565ULL, 0x16a090fd16155e23ULL, 0x446ab84d51a1c6c3ULL, 0x2c18287b55ba824bULL, 0x9a8f01ddb541349cULL, 0x3c57f0e5b8ea7615ULL, 0x7bc77a95210d39e4ULL,
- 0xb3644701e799092eULL, 0x3a989e9d607bf2b7ULL, 0x8fac5b8a67fab219ULL, 0x48bc18b0bfa7af75ULL, 0x5efc98b1438edae7ULL, 0x2715c2131584911aULL, 0x827d75e927f9e42cULL, 0xa523d51551d4181dULL,
- 0x966d3e197c11840dULL, 0xbb1536625ea53629ULL, 0x56bcf141df888316ULL, 0x2d07290380aaf9dbULL, 0x21876f5eed76b306ULL, 0xea0713cb78f929e7ULL, 0xdd40bb58fb69a207ULL, 0x1e9c975df9152bfULL,
- 0x9cd8682340db3e80ULL, 0xef03662bdf466feaULL, 0xcc7a9271d3c73f0dULL, 0x79af7c4fe899db27ULL, 0x9aea0d47de3940abULL, 0x19550274ef36d448ULL, 0x9886257e923169ceULL, 0x6f5eb64efcd14b7bULL,
- 0x69d472d5e89ff5faULL, 0x5cdd4d2e882a3d59ULL, 0xbb26002688da155eULL, 0xc94a0fd35edccfa6ULL, 0x35d937a8994320dULL, 0xf3d5259f1dbebce5ULL, 0x6fb55a40b05d73a1ULL, 0x22852c6e5c6c3bcdULL,
- 0x680d338ae2ba24cbULL, 0xf51fe1221377ab3bULL, 0x153e9fd2d6a52fe1ULL, 0xf534c99bb8c6b55dULL, 0x1051686ccba7525eULL, 0xb05d7cf1a6a131ddULL, 0xf71f38841a2ab9b3ULL, 0x54afe5e5d41c3391ULL,
- 0x7b084d60ce9e25cULL, 0x25f7139314b122dfULL, 0xc532b9f65c50f98cULL, 0x7dd29a24eeade3adULL, 0x105505ce793b4422ULL, 0x3570c72c6f100d6dULL, 0xedab0cb66e7a700bULL, 0xa3adfa8692bd2e92ULL,
- 0x7d0ace7fa02bced6ULL, 0xc22dd2280b507a21ULL, 0xaaf982a9356e0d9bULL, 0xceb698d03651b024ULL, 0x1f606295490e3760ULL, 0x870b340d2b1bd5a8ULL, 0x4b9aa6db5835b5ceULL, 0xa99f9cf9cb5a9af7ULL,
- 0x11b426050de359bbULL, 0x949a7b7096cb18a1ULL, 0x29e3624e7f867ec6ULL, 0x82520d931e2f9742ULL, 0xedb6bd0b47672783ULL, 0xcd6686b3b7f6daa0ULL, 0xbda310df55ce4a12ULL, 0x72b44b56ab6d2c40ULL,
- 0x97a7e87f01733fa1ULL, 0x8bd977cafa23869ULL, 0x952b1c4bc803978dULL, 0xf7b2b59b99f65af7ULL, 0xafde9be422d91a3eULL, 0x22f1d4509ff526cfULL, 0x8c770cd87c1892dfULL, 0x25f803d35c166deULL,
- 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL,
- 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL, 0x0ULL,
- 0x11afd58e65fc8eb6ULL, 0xf44ec1c2f8cbae38ULL, 0x669c1681a21a82eULL, 0x5225e682bc165dbeULL, 0x5fa769f7165b7dddULL, 0xa5d71b9ea62a1f66ULL, 0xa06bc899e5227cfdULL, 0x96c3ce19faea47e3ULL,
- 0x6c7c5acf25517ab2ULL, 0x1300f5297a5996a2ULL, 0x3f07c46c3b5d1c75ULL, 0xa0e1844864fb4693ULL, 0x3b9ed5fb8f8d32c4ULL, 0x702f27b08bcbd9bfULL, 0x656c9949b4fb0b9aULL, 0x162e7a80e6d61f45ULL,
- 0x22cac5eafaeb34fULL, 0x64cc1aeec2a70f8cULL, 0xe1ad0ccdce0753acULL, 0xda216d97127dc737ULL, 0xdaa41ba3105ef594ULL, 0x336530a27a9eefd8ULL, 0xff23a54f9d40f29dULL, 0x22ad2c5d7a04eb31ULL,
- 0x425e1c9e46b4c285ULL, 0xb7282b9828f8c2edULL, 0x5d7d1cf0bf6dec11ULL, 0x80470733953081abULL, 0x4e5420df1078712dULL, 0x239d75451399d2e3ULL, 0xc343041b57601468ULL, 0x4a5f698755cb12f7ULL,
- 0xef6b4338b8e46c37ULL, 0xc2ec5d4d42feb0f5ULL, 0x3f2b8e7069fe06ULL, 0xa40b02e5d14cbfcdULL, 0xf9d8944b7ea2c739ULL, 0x64c18ca9aadc629eULL, 0xe845a46848908cc4ULL, 0xcec701c0b70f33c6ULL,
- 0x92d69a8259f9717fULL, 0x3704904db40b22d2ULL, 0x431b6f64120a9e51ULL, 0x8ee5241c55b025e2ULL, 0xd80b4e718c3134b4ULL, 0x4cf98464cf989c23ULL, 0x38c6311037889d45ULL, 0x896628b037d9ea83ULL,
- 0xd14a2fdd913d2469ULL, 0xb7ad834af3651eccULL, 0xffb30bbd583f68a0ULL, 0x93a59bbeaaef0530ULL, 0xf64dcac97d82f952ULL, 0x398f8b44bdd04d4eULL, 0x52e00041a7d51c49ULL, 0x1dbb12da2bdd03d1ULL,
- 0x3265c3a995c7c4fcULL, 0x3c0bca65386351a5ULL, 0x529dbfb6862a0c2ULL, 0xbaa9ed334bd2d0ecULL, 0xc83eae8a931227f3ULL, 0x864f225b5f6a250cULL, 0xd6a77e4dd0ddd88fULL, 0x133954708864c103ULL,
- 0xdb7cdb2aad2dce2dULL, 0x1d082dffae8bc8d7ULL, 0x4f3918c40ca56c24ULL, 0xde9dad5591908e95ULL, 0xac45fcceedd21e0cULL, 0x94a30ac861139bd2ULL, 0x24d4685660a4ee41ULL, 0xa5ae8fd3c05d175bULL,
- 0x233357c6ef6e5a67ULL, 0x378129696b079a01ULL, 0x53b4c1d74ee0e81fULL, 0xd61cb0c4930779f1ULL, 0x4a44893dec9cbeeaULL, 0x2e01a3aff4fbda4ULL, 0x989936b81a115b94ULL, 0x4bf2627fc7aa4e12ULL,
- 0x13de77fba152e9b5ULL, 0x5571f73b734641b8ULL, 0xd3800865236ebcb7ULL, 0x19c83daa78ce4db2ULL, 0x7ac68acfec78b9aULL, 0xbe778791de6c4d59ULL, 0xf440434ed732781fULL, 0xc0c8af4fde0167e0ULL,
- 0x4d3bc7fd3644091cULL, 0x424ec2fba0ff5b5dULL, 0xfe86162e81c5d6dfULL, 0x4e9020a93332f3dfULL, 0x7f7cdbba7006ba49ULL, 0xf4c6f64dd714906dULL, 0x3bce01d1ed1b3a9bULL, 0xb7a3294a826af4e8ULL,
- 0xa2ef269b61e64d2dULL, 0x3bdda9b39f18905bULL, 0x14497513584be6d1ULL, 0x9b43a43fcd26c10ULL, 0x1a45561c211f8086ULL, 0xb4de718bacb43874ULL, 0x560ebacb38068d23ULL, 0x1be84ff2214a2cb0ULL,
- 0xd3e49dd54acbc495ULL, 0xd9a8e02d3779c704ULL, 0xf0f47e5277c3d5f1ULL, 0x79079e15a3e7297ULL, 0xcef9df55c6ad171aULL, 0x70c3612840defc27ULL, 0xfcda2664d4595778ULL, 0xa3414ae2a706caaULL,
- 0x55517c441d45e17bULL, 0x7c1a153f2740c5b9ULL, 0x1a86f24f64032745ULL, 0x25894ef53d52a93bULL, 0x2c7f538b80ed86a4ULL, 0x4bcc587c5c446de0ULL, 0xea006dce84bc3044ULL, 0x1ac94d1ea8bcdeb1ULL,
- 0x350aea346682830cULL, 0xa833d3dea4e864cULL, 0xebcd6500ecc57bc9ULL, 0xa7c9887ceba0f7afULL, 0x3e929cf16040a867ULL, 0xbb01f1757c683276ULL, 0x9a0d682f66f8c749ULL, 0xd8fa2406302a0fb9ULL,
- 0x2b8f9d7ffb388bc8ULL, 0xcd3daae7d78fd673ULL, 0x5482083f24806bbULL, 0x7c58d8be291279d6ULL, 0x5b31170cc146b859ULL, 0x8bcc4ac3c035d677ULL, 0xedac5410846039a7ULL, 0x9f37aa2eb9bf8179ULL,
- 0x5fec6b1a6cbb6143ULL, 0xb5e560e514d63ca5ULL, 0x7fa3c0cc5ff395c6ULL, 0xc6a578f4d29a5e71ULL, 0x7f9cde3b5f9bb21ULL, 0xab9d1c2952becf82ULL, 0xc2d344dc8b2abe1ULL, 0xccd57ef3ae450964ULL,
- 0xd20c287119e6fa61ULL, 0xd03be12af933f543ULL, 0x38cf981498b555dfULL, 0x8221ef1c789006ffULL, 0x6cf40157ec4e9281ULL, 0x84559ea36966aaddULL, 0xf609157a9730ab79ULL, 0x97256333427ca199ULL,
- 0x4aba992eb47877a9ULL, 0x8e77a6070f382e22ULL, 0xbf099c9708c42ae9ULL, 0x408e8e3fb6d68fa1ULL, 0x5004b5ec270f3eebULL, 0x176b94ba28798ac3ULL, 0xbb8592f5db50920cULL, 0x6e70cf1699090040ULL,
- 0x14a748f942a25628ULL, 0xc585c0adecb0170ULL, 0xcaf0f1d6f81f3c74ULL, 0x42bca277ff5938daULL, 0x2f5cfb4079168fd0ULL, 0xa226147329cce746ULL, 0x1ac756f64950e2d2ULL, 0x3e1976d7a7b8c86ULL,
- 0xa6c31aa4f3f26392ULL, 0x8d7e083724a01eeeULL, 0x8e346c2ee69e57e6ULL, 0xff0ec8b87e9cf87aULL, 0x7faa06433f8fcfa5ULL, 0x263880bda98845e9ULL, 0x94f720e87a4ad1a1ULL, 0xd60fbbf279cbbbf6ULL,
- 0x568d2cc4f65cce1ULL, 0x77466d0a4e94ab62ULL, 0x44c0aaa3cb1afb03ULL, 0x9c1f53307b2d54ecULL, 0x7452858fd7f0aaeaULL, 0x59bb702dc75ab33aULL, 0xee322869cfc7917bULL, 0x3befd08cb12f5b8bULL,
- 0x4bc2d8b4b98102a6ULL, 0x700fe4527cf97d65ULL, 0x23494b341acc709fULL, 0x950f77a7c5b4a5e0ULL, 0x6da0a27947072115ULL, 0x323eb2d9f7043e82ULL, 0x5a09becfb885b639ULL, 0xb8e7e2ea467a0d4bULL,
- 0x7d85fca21bb45562ULL, 0x56c523f7dbe2bULL, 0x6ccf757ecd40d0d1ULL, 0xd366730c68ab40aaULL, 0xb271ca8d2b57473cULL, 0xae5e7a2153b1ddfdULL, 0x434c371a7bcc6a6eULL, 0x28d38f2acb398401ULL,
- 0x7e5b26fe1bf59d9fULL, 0x9ca0ffdb970f8cfeULL, 0x4332c65d5f06be51ULL, 0xca37a4030e20c566ULL, 0x601107c50eda4481ULL, 0x55614d0d43c634f0ULL, 0x1a33a6f6e0442ed5ULL, 0xc53b8468c7dff42eULL,
- 0x43be13c06d788067ULL, 0xe3112a7575fd1fULL, 0x83ad8441aa8f6cd2ULL, 0x45acbe88e7098861ULL, 0xf4b94dea84e6de3aULL, 0xe37622e4de8882b6ULL, 0x5813d8e43f91a90eULL, 0xd34eecbaf0001f50ULL,
- 0xbae8a09cb3b328ccULL, 0xbce887a3b3ec583dULL, 0x3d921fad5d885aeaULL, 0xd518f167182e437fULL, 0xad58252d1a83ee88ULL, 0x61abf256ec11c1f4ULL, 0x10ba6043638373fdULL, 0x8fb1448135fd364cULL,
- 0x6fed63846fa6f112ULL, 0xb790c7b6ef436b30ULL, 0xb26c0038935a6266ULL, 0x17a1b1773e17b33bULL, 0x2bf372bf3de0437cULL, 0xd5e932e4eec76d71ULL, 0x40750ffc54f21204ULL, 0x3ea8677d3a3539caULL,
- 0x88fd9c288ae2250bULL, 0x3fb541395c951d3fULL, 0x474c1dbb739e7563ULL, 0x85610bfda842611dULL, 0xf042ba6e4dab236cULL, 0xa94e9df5f4065fdfULL, 0x3a54f7ef242473daULL, 0xb5d17d8f9137cfbbULL,
- 0x5fe55ce46608da99ULL, 0x437ac292738b3426ULL, 0xe482a7bfc58310c5ULL, 0xf35e4606006ec23bULL, 0x99a8e0970b55d520ULL, 0x183588f857f59138ULL, 0xa0ee057b3fb120c8ULL, 0x3cf918f50679ca1bULL,
- 0xb425dc88b308ab62ULL, 0xc01f2c55ce05ba50ULL, 0x7f1259e512f301e1ULL, 0x88442ea9a0df3b43ULL, 0x91eebee6a8be8052ULL, 0x649f88f0d0546614ULL, 0xaa9c47a750015c8dULL, 0x90c908e176de019bULL,
- 0x7206800d13d36637ULL, 0x175dc3cd4339bedeULL, 0x7f6066ea0d2fb7bbULL, 0x1cf0e759a5a48190ULL, 0xa19c1c34c97f31f3ULL, 0x3d7ec2e7f893df1bULL, 0xa344909677f86065ULL, 0xb0b49030ae2930e3ULL,
- 0x396c7d0cce14b85dULL, 0xd0dec7aebec2e831ULL, 0xb6f11252f6651ad2ULL, 0x59541ca7ccdd525ULL, 0xc9ef702d96b5371dULL, 0xd2fee636b2dea96eULL, 0xb2305ba1bfff9085ULL, 0xcf5c40ab2182db21ULL,
- 0x19c4ac2b350f7e2cULL, 0xea15ec913eadbbcbULL, 0x6cae47db8ec2419dULL, 0xca1e466a6504282cULL, 0xad9cf1e6ec570e6aULL, 0x3063a2512655f283ULL, 0x4981273522080a6aULL, 0xdcfa22159bc523ffULL,
- 0x143932091a63e064ULL, 0xdde82f6c67b34e41ULL, 0x642edad88a95cba2ULL, 0x49b40e014d28b12ULL, 0x87284dc19e1a7743ULL, 0x62d3f326090aa23ULL, 0x4274b71b9b8800b6ULL, 0x1d4ab4dda2835cc2ULL,
- 0xd794a2dcac28acf1ULL, 0xa6bdf6ca885c9654ULL, 0x9daa28beadf565daULL, 0xf026512f3b8ad113ULL, 0xfb1a3cfba80e724aULL, 0x6a7b9dec20af6c7ULL, 0xa8ec9d5d1298710cULL, 0x2b200300b2db3585ULL,
- 0xcae3733e74192c08ULL, 0x1dcb57ca00ebb86ULL, 0x7877243e41f00e1bULL, 0x9d005dcd1e408f04ULL, 0x92f2d2e8d79ad65cULL, 0xc5ce2558c47fd042ULL, 0x504218747e2c3075ULL, 0xa43803dbd8823b6fULL,
- 0x71bc924eec3dc976ULL, 0x75e54322efb67fefULL, 0x6b421234f593a0a9ULL, 0x8ba8241808f89078ULL, 0x16d7f9c0a1fb1ed1ULL, 0xf00b960e50cedeb5ULL, 0x942a9ebdf828014cULL, 0x99a48056df7765eULL,
- 0x8dc26c4a2dcf798dULL, 0x4f787df34aa91b45ULL, 0x615646e010420d89ULL, 0x65c60bde69e47d9ULL, 0x9f704f6f384da286ULL, 0xdd7ec7297dbdbb31ULL, 0x1987cfb1506cd4a1ULL, 0x967001aac9c0e620ULL,
- 0x509f5c73d2bf304dULL, 0x7ff9ab63d3a40f20ULL, 0x483d65b1dee4dc3dULL, 0xbaef6a9deb069b14ULL, 0xee80d5e602fb2382ULL, 0x146203fb2843544dULL, 0xcd6b49c6c4147ddcULL, 0x2458991c262c8622ULL,
- 0x63f8010fe68cbefbULL, 0xa69c2c9922a34e59ULL, 0xc14d505c816e5fdaULL, 0xf4b58a9e3e70810fULL, 0xe4e3dfb503fbfb47ULL, 0xa826ff060ee70124ULL, 0xdfa40e8d0a1ec318ULL, 0x5ea048d45024c881ULL,
- 0x9835b955e7a085abULL, 0x712d1501260c863dULL, 0xf31e47df5a820f28ULL, 0xc7afcd6677f5e308ULL, 0x32e94393f240c438ULL, 0x9fd14c3e5dcdda0eULL, 0x84d309d19bbf0ea9ULL, 0xf64e5c9fc121accfULL,
- 0x928c1d1b6d7ae8d7ULL, 0x68e5ca0a4a75bbd0ULL, 0x7b06ca0ed3f847b8ULL, 0xa19e549e850806ffULL, 0xcd49623a578fb9d8ULL, 0x87fe1cadcf182eb3ULL, 0x8ee9015c2a0cea87ULL, 0xfbad7c7c78b39f47ULL,
- 0x44385b0896dff79eULL, 0xd5232112d0d71baeULL, 0xa7dc493455e8df4eULL, 0x308dc7d4d4cbaf9cULL, 0xb19909efa4b01871ULL, 0xf1965fba761b5ae2ULL, 0x21d3b0eb217fa0caULL, 0xaf828dd54cf1c2c7ULL,
- 0x1e4dfa1725c7331dULL, 0xad3266c214116feULL, 0x3851ecceeddac03cULL, 0x166cc5bacadf9d45ULL, 0x984cfc468e19a57eULL, 0xd81dca658db0db70ULL, 0x85b9e15e14e0bd61ULL, 0x85885c66707eebeeULL,
- 0x9ac6f7ed398a012fULL, 0xd776d31614c9c941ULL, 0x84c159d95be9a04aULL, 0xfc471da67fe5a3a8ULL, 0x98640a2ec47addaeULL, 0x1cb74cf55b568450ULL, 0xd5443fd82732b264ULL, 0xbe0354229a9107fdULL,
- 0x3e177e9657d898a7ULL, 0xb8b643728a1c54b1ULL, 0xf5ac097ff001a87eULL, 0x70f4e3de20da4441ULL, 0x150465ee9c1ac7fULL, 0x8fc05ac7033a8f96ULL, 0x6adceb1b028de0bfULL, 0x427db327a6a1dccdULL,
- 0x293ff4998be06edeULL, 0x8735d4d7f210ecf0ULL, 0x440aeba551e7a27dULL, 0xa4d3eb0b99639eacULL, 0xb79a9726b35aa4c4ULL, 0x3b55383389cb373cULL, 0x464c61c811dee768ULL, 0xbae4680899d0e996ULL,
- 0xefe474f47e02595aULL, 0x340e1d549f7e7e9aULL, 0x6dd21b1ce7624e19ULL, 0x7dc5d93dd090c93dULL, 0x46c18052c237a2cfULL, 0x257ac3a8d09cfbc6ULL, 0x9adb06646e2a33caULL, 0x218c12c78a9d67fULL,
- 0xb5ab9c95e42e5931ULL, 0x999801d6d946d87ULL, 0xd55c1c9b576ada22ULL, 0x8166adc27a631719ULL, 0x9040d46ed73c111aULL, 0xe54aa69d9d3b7a6dULL, 0x14ff922b65390c9bULL, 0x52fa114e947c624bULL,
- 0x6ca3b79c4b887f56ULL, 0x98aa392cd8a0b2d9ULL, 0x58e3ecdc59bd58d0ULL, 0x67039b433c427202ULL, 0xfe330c9ad062687dULL, 0x66a848c3523c89a8ULL, 0x70ed13ddc9954250ULL, 0xdca2381b9b2483bfULL,
- 0x8d40925dc31b41e8ULL, 0xb2f4b5e772f66936ULL, 0x711c68e1baa3cf8eULL, 0xd350f826474eb32ULL, 0xa43966749b371caeULL, 0xcff01dd3e769101eULL, 0xa57cfae72a6bf360ULL, 0x88461f6bb3119fa2ULL,
- 0xda1c9605df7e2280ULL, 0x6333efd59214016aULL, 0x49a2ce5498d80f5bULL, 0x3b667d896fe2ae1aULL, 0xd673630fcd710b25ULL, 0x8d4a4680cb3fcb1dULL, 0x39257b69408a4fe5ULL, 0xa79fcab8d9a78046ULL,
- 0x2c72265b50eebe3bULL, 0x25b99fae24ebedbULL, 0xb5dd126dbcfa80cdULL, 0x9d7494f859a4de09ULL, 0xdfb9bc75d09222a3ULL, 0xe627429105d9ca86ULL, 0x349fc6451fda2140ULL, 0xc22aae3c42669e19ULL,
- 0x3f11558bc104947bULL, 0x93563bebedc8fa6fULL, 0x32ad8f6330b22b1bULL, 0xe1021998365db12aULL, 0x692a0df788cdb929ULL, 0xa78cacd012197f7bULL, 0x40898492605d5b61ULL, 0x7019f6f23d8d3f46ULL,
- 0xff76d3302128387fULL, 0x8c4a231ef89ac4b7ULL, 0xac87f611b9fced81ULL, 0xfef005d1f1a46ee0ULL, 0x5a7c3b92c1ce7ddeULL, 0x3fb7a833fa52cc0bULL, 0xefcf1aeb635316c3ULL, 0x5578b267bc8515c5ULL,
- 0xec8b2b02b0d16684ULL, 0x747f55a95d9ab553ULL, 0xd1edb24b64556b6aULL, 0x4b85ae0bc8dc1767ULL, 0x76948839fc32a5d4ULL, 0x3b27ad64d12f866ULL, 0x21d9b3cd44f63183ULL, 0xd11e5480ec8c8ffcULL,
- 0x4e1261908161415dULL, 0x337ecd5d6fcab634ULL, 0x656cd5cbac0adb2cULL, 0x42c6781938d7d8e0ULL, 0xd380035459abd274ULL, 0xfa1f072ca4bfbc50ULL, 0x73a4cb7331f11eeeULL, 0xe09f9e9617d5fb56ULL,
- 0x732776c910531d5bULL, 0x165eee90874b65e8ULL, 0xc279438d9b519dcfULL, 0x163b9ab1a580cbbdULL, 0x3848860a5244956fULL, 0x3aaa418dd9b69f68ULL, 0x222ad38115cb9111ULL, 0x12c5df9f6ec2f292ULL,
- 0x2d7e42d6867cfb46ULL, 0x6c77bbd2fe97c60eULL, 0xb6de1c4c2f5d752bULL, 0xbbd6002df67700adULL, 0xafa38b09300678c6ULL, 0x3ec4b700aff50805ULL, 0xba9ccc3ecf915f6aULL, 0x4b986607c0ba4a5eULL,
- 0xa64c38bd14467facULL, 0x23d4dd45f927efc0ULL, 0xc1c83918f4584ff0ULL, 0x263cdd4a777646baULL, 0x75e881db42ba717cULL, 0xb0beb9277c9d165cULL, 0x473b2022f3602827ULL, 0xbbc0059e8d4eb837ULL,
- 0x1aecebfc31179629ULL, 0x43b9e92d20bb5d08ULL, 0x459b5af8b16f68d3ULL, 0x6f46d5fb193f0430ULL, 0x8d99658856f50e8fULL, 0x7dd58b482f049b25ULL, 0xeea15784ca66cdefULL, 0x12f7a590403c434eULL,
- 0x414804656f1d8805ULL, 0xdde361143bd562f1ULL, 0x5e38430774241ba0ULL, 0xef2c92fec03614faULL, 0x95b5b7a5f95d56e0ULL, 0x5f3fb3dd876dac3ULL, 0x1f501a89e7c24aaeULL, 0x49e36e951d7055c9ULL,
- 0xf40a6e5577ed8740ULL, 0xfa8487102aa61771ULL, 0xb859d69c7b64eb45ULL, 0x32840466be4d4205ULL, 0x2a6868538c501866ULL, 0x3c9f7e3381336eeeULL, 0xc3945d635b84473ULL, 0xc57b6a676f69bd10ULL,
- 0xbea31eb3d146e999ULL, 0x2c55145fe5d5b368ULL, 0x7358a9230dbdb4f1ULL, 0x5370963b3a69ea6fULL, 0x4ff24f255c2357c6ULL, 0x8005df809a1c735dULL, 0xe2e476995d0c4218ULL, 0x8ceab2409dd743fULL,
- 0xe030cf788e79884ULL, 0xe38f2cba540b2ca5ULL, 0xf5ee7e448bcf7a07ULL, 0x1b27efedc946008cULL, 0xbaecbea798535407ULL, 0xc75f3d8cdd942862ULL, 0x54953be783fee7a2ULL, 0x16b027e9b38a871dULL,
- 0xcfce46c1db0a2210ULL, 0x25b234af4df867ecULL, 0xf95fdb88f49c6e6bULL, 0xf87ef7b89358433fULL, 0xd4d4a6a4007de5bcULL, 0x11f7279e8cf0851dULL, 0xb344a447c843aac6ULL, 0x870b03ea74b3b805ULL,
- 0xb412442a4be832b4ULL, 0x55f7dabacf8593c1ULL, 0x8d8e059ead674b73ULL, 0x59d8a6845d011cfeULL, 0x125dfb01c5e4a7acULL, 0x31f410536c400edbULL, 0xab9c134b30ec1941ULL, 0x99341faedaddcf65ULL,
- 0xab6e4e65e0ee50e6ULL, 0x9fce4c35df04c0c7ULL, 0x9afc7c8c4d57e46dULL, 0xd85ad040bb51946aULL, 0xa6211d2786709ef7ULL, 0x8d9d96a82ae66044ULL, 0x54a47aa4848e0f95ULL, 0x57bdd2b2ed0d294dULL,
- 0x8891148f09246f2bULL, 0x2dd2a929a863a15eULL, 0x397efce805cd115eULL, 0x260ca3cabf993347ULL, 0x8ada24fd03ae787fULL, 0x14c30cdb506ff6cdULL, 0x2cd3d7b6bc251f47ULL, 0x468c450125a565d3ULL,
- 0xc3fffa045cc2edc7ULL, 0x6c6eb373984d9345ULL, 0x6eb364d10813aa3cULL, 0x2165c31df80a63acULL, 0x65dc222bb6ce99bdULL, 0x777aa71dbca38b9bULL, 0x3f51248b2f375522ULL, 0x481078697fc6514ULL,
- 0xca36c8f4ac9cb8e1ULL, 0x3a2bae801268052dULL, 0x2ec35ee29e11b6e6ULL, 0x9863addb43fc0878ULL, 0x7fe7c32be7c9501aULL, 0x1f3564c39209ff2cULL, 0x8e4087d4898a1ffdULL, 0x56d36fb956978a01ULL,
- 0x3f5195f3b2ed1bf3ULL, 0x5225e0eeb53f001bULL, 0xaa90a96ba12e5fc9ULL, 0xdd4d1dab3182834ULL, 0x5a0f79186f61c366ULL, 0x923a1870a21d1f29ULL, 0x3fb0abc9138ffcd0ULL, 0x44753fb05857e7baULL,
- 0xe5de9aedaf823909ULL, 0x629660d28f2e68f1ULL, 0x5dde7456000516b4ULL, 0x845f62dc5fc3fa4fULL, 0x4273cd933be4df40ULL, 0xb12532bb016182e4ULL, 0x5620ef75806cf5b6ULL, 0x2f4aa635ed19db39ULL,
- 0x5416a132cb4144d5ULL, 0x6917de7d83845305ULL, 0x6e8d73f860592955ULL, 0x94f5cc6b9b9ee7eaULL, 0x416b2ef8212b3259ULL, 0x3d7283142c7381acULL, 0xa53789e8eb3325faULL, 0x7cb6ff78dcece7c8ULL,
- 0x36a962f6e5f22626ULL, 0xe4f437b526c131e4ULL, 0x10a9c12706cb71f7ULL, 0x6a80ac5e05fc1587ULL, 0x217a79b68221d382ULL, 0x8447f35c687d75b5ULL, 0x1d251920d5483ab7ULL, 0x760c26340075b82ULL,
- 0x9ac09d6319348563ULL, 0x59e3511693349c94ULL, 0x698669d8513d6cf8ULL, 0xd9aa80213542d9c2ULL, 0xfb8b386049f09a48ULL, 0xfac605e55ffc923aULL, 0x87f678a0c9dafbbULL, 0xbe50fe6427ec1547ULL,
- 0x9407bb24305afd59ULL, 0x6c42a3c1d5b5f855ULL, 0x94e6f16a30731decULL, 0x7856be260967846bULL, 0xb1029b21a8871931ULL, 0x71afbb6217dfafbbULL, 0xf48a465a72ed7e1bULL, 0x68e2becf244a99eeULL,
- 0x6d812a0edee4b333ULL, 0xb33bf5099e6ff946ULL, 0x9035ed8f5765c091ULL, 0x4fcab2d3bdaa0130ULL, 0xbe40575913ea7c09ULL, 0x6d08b745b4b86ee7ULL, 0x53c3f506a5944845ULL, 0x6628944e1d64a7aULL,
- 0x56a4b835ae00b18aULL, 0x3d3e285687635463ULL, 0xafd32a7a90276f8fULL, 0x713454b505ad3019ULL, 0x5fad233660734f0aULL, 0xdcf49088de4d26c8ULL, 0x61a06ac6699478f0ULL, 0x14b59524d6308078ULL,
- 0x38c938549a7b2663ULL, 0x362d19b3e749c931ULL, 0x2df3d4403a9ac73dULL, 0xb4c33947dfde630ULL, 0xe01bb199c392de3aULL, 0x4b367a2da4ad57d5ULL, 0x292533c279a644fdULL, 0x3f4230b451b5c7e7ULL,
- 0x25320cfe5fc86fc4ULL, 0x10820623f1f75be7ULL, 0xaf1259c1e8b896ULL, 0x92f0b256d940fdbULL, 0xf39d919832ab0ce7ULL, 0x3194f627f45f3d33ULL, 0x4ad4be81b0a82b58ULL, 0xa7ab8d3d76823404ULL,
- 0x9114bbcdca4a05fcULL, 0xec00048ce3abdedaULL, 0xfaae89996d3a6e87ULL, 0xff8099ad4cde996dULL, 0x32f13b748586a3c2ULL, 0xf3fc8d664de01096ULL, 0x12423d618031281ULL, 0xf1ab42f62bb2ab4ULL,
- 0x7c841a27993ce25aULL, 0x62daf827e704bc24ULL, 0x666bf22fb7568748ULL, 0x7c035cf9a0a1007ULL, 0x628e786946343198ULL, 0x8709dcfee9cfd16cULL, 0xb85fa35e961bc9a2ULL, 0xff52431ff07904d2ULL,
- 0xe8515ba8f7ed723eULL, 0x7b65aa1e66f8fed0ULL, 0x5b83492252f616f8ULL, 0x8b15b80599df8d50ULL, 0x724ec4d54840fc1bULL, 0x2334bff60e49b26fULL, 0xbb287411c3e47558ULL, 0xd315f747220e8799ULL,
- 0x8a1d75858a361b6bULL, 0x7f39581c485ea4dcULL, 0x6db6446e25415888ULL, 0xa7d29bf71f2a1afdULL, 0x1a10eb15921d95cbULL, 0x7db43342f3ef5173ULL, 0xd9590b950cf22c4dULL, 0xa1adea34552c99a2ULL,
- 0x513654e7a69b5f5dULL, 0x98eea7b5858aa423ULL, 0xf64d8e8b911b9441ULL, 0xed346903967c764bULL, 0xcf48853153f90520ULL, 0xc00166d6253933bbULL, 0x285b3f7d45931b68ULL, 0x5b27f74cb283c9d0ULL,
- 0x5830e43ddfa86fecULL, 0xe0413db11c28734bULL, 0xfa1a30bbf2136f6bULL, 0x23c8644d5f665b38ULL, 0x3bb7924699e1c7eULL, 0x613c22feafab4197ULL, 0xa0887cd2aeb6948ULL, 0xca0648439437d25dULL,
- 0x46efe764871f99beULL, 0x9e87b9a9916d1412ULL, 0x16e67d0b122fe8dcULL, 0x15e192cec9dfad0dULL, 0x9837a6bfd4cdfa0ULL, 0xd140f34a2fdca1c2ULL, 0xff53935d66c07fd7ULL, 0xbb544246b6c466bfULL,
- 0xdd26fddb0fd333e9ULL, 0xc41815a3f3098b83ULL, 0xab904c251ee7c938ULL, 0xb99f72d51174bd95ULL, 0x753b2a7fc5913b27ULL, 0xb549249c7c3fa0daULL, 0x4fad655f9a453603ULL, 0x707011d3cbd22284ULL,
- 0xefc0572540107943ULL, 0x40bff9ec1aa08f05ULL, 0x26f15fb704a2d836ULL, 0x9f0e36bcf340253fULL, 0xb2f73b30686d95e3ULL, 0xc02a118d2a3ec616ULL, 0xb00bfc94dd8f8e7bULL, 0x85eef11b33624b0fULL,
- 0x780a77cb65c5b63eULL, 0xdd6e5d42704238aaULL, 0xe4fa4a20d7b9515ULL, 0x44df5a2bb8f0e76fULL, 0xaab1ff30d9084106ULL, 0xe675ea708d748a45ULL, 0x559256dffb224b3fULL, 0xf0ae5d79e6558951ULL,
- 0xb2854f0cf4c724bfULL, 0x73d1b95c178833ffULL, 0x1ecdd3936f22b2e6ULL, 0x20e21fe7a01b0215ULL, 0x2724f509521d26e9ULL, 0xb26a670d6d7d8ce8ULL, 0x509714ebc2db4c51ULL, 0x46f134381bf1ee6ULL,
- 0xce65ce5e93700279ULL, 0x748c4b1edd1c4397ULL, 0x1512e9fe8991d792ULL, 0xbb5c7475de84b64fULL, 0x3b6852837b291328ULL, 0xc9ad3052b7a44b78ULL, 0xf34789feaa0af83cULL, 0x4ffa8fcb7a981be4ULL,
- 0x4e5eecf78505028bULL, 0xd352a7341cb05091ULL, 0x4ee92bf0f705c97dULL, 0x8b2a5d2da8a8aeefULL, 0x514c2469ee5a38e4ULL, 0x6e67143e672b0d8ULL, 0x40f2f42b168cfc34ULL, 0x65aaef8409718e20ULL,
- 0xab1c203e5889edadULL, 0x8f0e18b879badfe5ULL, 0xe8abe40492734b89ULL, 0xb0f77f268f69471bULL, 0x3237c8cd0b906663ULL, 0x8166aa68e8e19d55ULL, 0x6b125b41375f758aULL, 0xc058a662b14f8e72ULL,
- 0x2faa788892d50c6fULL, 0xf96873a0d1238bf5ULL, 0x7a1de5fbf141cb46ULL, 0x557cae42965494fdULL, 0x3818f6e516edaf0aULL, 0x5dafaed9d2fcdd27ULL, 0x19b29e9b9628b624ULL, 0x839b00afac70d8e1ULL,
- 0xc1d9217f8f73030dULL, 0x2bba088356b1b411ULL, 0xf3734a79dc86eff2ULL, 0xbbaef71558deaa29ULL, 0x705cd3f4339a3aabULL, 0x6cb9be9171cc6c55ULL, 0x3b22e3bcabbe3991ULL, 0x234ffdc8a6802f76ULL,
- 0xe7a8e6df2248fc40ULL, 0xb2654586ef769f70ULL, 0xdd4d3a2a1381b5d0ULL, 0x579d7f710f906ea6ULL, 0xc75096f3f89d7e31ULL, 0xf09362431cc05dcaULL, 0xf1e46800dd4d072ULL, 0x3c0ad45fdf1823d7ULL,
- 0x8577092e774b1786ULL, 0xb5ae8d09da0a752cULL, 0x3ae6afb4fb983c5dULL, 0x6701dddd2e93a6ULL, 0x9ee31e6fe354e548ULL, 0xb86f2787e53b3718ULL, 0x2f20be87500ffcacULL, 0x7900bd66011751e2ULL,
- 0x20f1749ecd028dd2ULL, 0xd67726fa16fc8092ULL, 0x45b5de2d0f3ed86dULL, 0xcc4ecde44d65351fULL, 0x3d9cea839d10a435ULL, 0xab39c0ce4bb32c52ULL, 0x8d82fae6126d0482ULL, 0xc51f1e613460dfd5ULL,
- 0x21838be97ecb328cULL, 0xc46836b853a66265ULL, 0xb1611bc44484b943ULL, 0x1efb0c85e8049f4eULL, 0xe3ff76b3d68ed1e4ULL, 0x630a9c43536bed8eULL, 0xcbfb63183c74dcabULL, 0xcbd8e69009902bdbULL,
- 0x3443e50b4a1f4b70ULL, 0x597580e420949f1cULL, 0xb7dec05c1bf77016ULL, 0x121a51bb972b429fULL, 0xe504c9a11b46c0a3ULL, 0xe85bf568eface8c2ULL, 0xf7e26a7b5f20ad21ULL, 0x105ac363e5da58a6ULL,
- 0xd906ae31d8829042ULL, 0xacd05fbc10cd29a4ULL, 0xf86e3c6fd4547f02ULL, 0xf654067dc4e8cbecULL, 0xccc7f7eebb15b9b8ULL, 0xbcc7e4df00e2dbbbULL, 0x68889e9eddf6352eULL, 0xbef4c6abeda2aee9ULL,
- 0xb014683a366507c7ULL, 0x6d0546964bc9f367ULL, 0xf42544a91846058fULL, 0x2484bfc7e96207caULL, 0x9a90e742303fed95ULL, 0xe698f91f3d93dda8ULL, 0x9b101a7100cec17aULL, 0x5991494a49ed5c0ULL,
- 0xd8c6c475cc591563ULL, 0xf3c136ade6ba21f0ULL, 0xdde8f6104e4c8cfaULL, 0x953a41709d72aee1ULL, 0xc6694d11a8367b58ULL, 0x39d603a17d5b2813ULL, 0x66ededab2f9378b0ULL, 0xf49e439156a9633ULL,
- 0x2ac63319e096c047ULL, 0x30ab0b6b5f587d6aULL, 0xd9fd87fc175dd003ULL, 0xc0cdf64d07d9deabULL, 0xc77a5585107bfaafULL, 0x8db8bccdefa9815eULL, 0x7d4cb2a351903a37ULL, 0x643827480758b3c9ULL,
- 0x63fd7c6c7854e5e9ULL, 0x11b774b27ae86481ULL, 0x9fb68c7960ef92f5ULL, 0x52886d983ad9d1aeULL, 0x70b7b1b10210018dULL, 0xdebadd57520e6eb8ULL, 0xb8341b20685e9703ULL, 0xe10159ae2ea2f94dULL,
- 0x957eda6062ebd320ULL, 0xc944e3a4135f83aaULL, 0x70f30918d1bb7357ULL, 0x2b62b6c502cf4bb3ULL, 0xeb912f352c2413f8ULL, 0x72dd09caaa902c59ULL, 0x8403349f467c48bcULL, 0xc7dc0cba7a0a7762ULL,
- 0x4ee7bc1ea592a1ULL, 0x837b833961d596ccULL, 0x53214b4283c2ad0dULL, 0x54e7fd1ed14951feULL, 0xc87fca7c8b076983ULL, 0x5cd77700a8c61d6cULL, 0xc431bc277d802effULL, 0x6ad8ba7b787fcc44ULL,
- 0x551a9bd7541f5c3cULL, 0xe281a02a1dd2de3aULL, 0x854072dfb6d22ad3ULL, 0x697e681755209c27ULL, 0xe79f9e11cd3b4659ULL, 0x4dbfe204b9281652ULL, 0xdc51e37cfb5b1a49ULL, 0xc0acd5bd68a67f1aULL,
- 0xe1810696548e8ea0ULL, 0x2a83204783dd1527ULL, 0xa73c9b1ba9635170ULL, 0x8bb4fb3a852c1639ULL, 0x43e0f0c78e0c4c4cULL, 0x10e5738d2787d3abULL, 0xf08322044eec9bb8ULL, 0xdffcaf3581deb448ULL,
- 0x567915fa4f257b7dULL, 0xf256da751348db2cULL, 0x1d07fcc52e2b22a1ULL, 0xb3f6375dd88596f6ULL, 0xca8ce6a0d513bf00ULL, 0xf315bd30e9e8c2f8ULL, 0x52fbd34230314d8fULL, 0x2666ee570d93ae2eULL,
- 0x3189ed3aab440815ULL, 0xc7c44ecce877dd50ULL, 0x8162e03f38581febULL, 0xfee06c31b22b54d2ULL, 0x1dc557255613cb3dULL, 0x871b10061820ce81ULL, 0x940a8dea904351a5ULL, 0xc6ae0999e4ebfdfaULL,
- 0xe9ef182d5ac9434aULL, 0xfd76634dd30ba65dULL, 0x7f0009458147dd7cULL, 0xef57d4fc36df3703ULL, 0x79938c297bbc3c42ULL, 0xe990469bf8fcb421ULL, 0x1b5fc389619f7d7dULL, 0x4a2c88f7c6f54216ULL,
- 0xd2e7dfdbcdbc7d2eULL, 0xad42d2beb9ed8202ULL, 0x9a1c7b885e56c837ULL, 0x831331cb6f4d8005ULL, 0xc629d32d7316ee88ULL, 0x9cb1f03545df0c0dULL, 0xed3bd4385b0bbc23ULL, 0xaae9c72dd30530e9ULL,
- 0x108ae5c0c2a136c9ULL, 0x97086bf1abef9c81ULL, 0x780fac4b7f543170ULL, 0x6b93564b12818ab9ULL, 0x36ef6db82bd5cd9cULL, 0x10285fbe23d5bcb7ULL, 0xcec32ccf43093275ULL, 0x611d843d603d1e20ULL,
- 0x2d15c9da8f7947b9ULL, 0x8f9ed5e56fdc169bULL, 0xf45924fa88d9e959ULL, 0xffdf0f04f6fd97bdULL, 0x80ff36e55f7e0bULL, 0xc4cc85723495751eULL, 0xbe23f0b33417db82ULL, 0xe0bece25fb3b6dddULL,
- 0xbd5fe17a9c5ba7b6ULL, 0xf9bd2741588c5384ULL, 0x125592387f4b9de1ULL, 0x4686bd9353ddff52ULL, 0x96ee08205eb1fe78ULL, 0xf4013eddcf2a53aULL, 0x6434c188747f9632ULL, 0x21659ee1e547033fULL,
- 0x6cb14a214cf9fa3ULL, 0x70c1cf6b05380a24ULL, 0xff53c901e4ea160eULL, 0xb3e9cd67dc249b0eULL, 0x516b9ea005caf88bULL, 0xfb674bc5463d5024ULL, 0x8516d5ee1f0406b3ULL, 0x4068aff64559ccaaULL,
- 0xc399815f3b5c3035ULL, 0xbc109d0dfcd2c04ULL, 0xcdc76ba72a6400f0ULL, 0x367bb3a7d9131730ULL, 0xdcc575db01df0a1bULL, 0x4b0dabde7869b90aULL, 0xc7812b9738a94b6aULL, 0x75f80bb0aac750a9ULL,
- 0x3fa5cc892d9ba2a8ULL, 0x6948afb9eae078e1ULL, 0xfcd5eb03d4afed6fULL, 0x5972444472306bf3ULL, 0x1bedce818d14fc3ULL, 0xe0c7f6dea8125395ULL, 0xee95847afe9f6b4dULL, 0xb9ed33eaee8970fcULL,
- 0x6487dc882616d02eULL, 0x2ee18b10aa383a03ULL, 0xef2382e99cd67757ULL, 0x1ca247cbd893a5ceULL, 0x93e5a97dd0f51c0fULL, 0x10963b29291457c6ULL, 0xfc00028384d95963ULL, 0xa4a0f57125629824ULL,
- 0xb703300d64576766ULL, 0x67410bfd5181a4cULL, 0x5fc773b92420fe12ULL, 0x727d3ce0b5ead2a0ULL, 0xacd3fa811bf74d0bULL, 0x156f4edd46e41f2eULL, 0xeafaf8a81ea4e459ULL, 0x8839029d6a532c13ULL,
- 0x985a33a6204a4502ULL, 0x8b918c4eda502eb1ULL, 0x8026596480a17e66ULL, 0x173aeb7d9492eafbULL, 0xfa5a5e9bebf08ccdULL, 0xf3fa901e1514341bULL, 0x58450d397274c4deULL, 0x11e797e33d7994ddULL,
-};
-#endif
-
-#endif /* GNUTLS_LIB_NETTLE_GOST_ECC_GOST512A_64_H */
diff --git a/lib/nettle/gost/ecc-gost512a.c b/lib/nettle/gost/ecc-gost512a.c
deleted file mode 100644
index 1bd4d1b7af..0000000000
--- a/lib/nettle/gost/ecc-gost512a.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/* ecc-gost512a.c
-
- Compile time constant (but machine dependent) tables.
-
- Copyright (C) 2013, 2014 Niels Möller
-
- This file is part of GNU Nettle.
-
- GNU Nettle is free software: you can redistribute it and/or
- modify it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
- or
-
- * the GNU General Public License as published by the Free
- Software Foundation; either version 2 of the License, or (at your
- option) any later version.
-
- or both in parallel, as here.
-
- GNU Nettle is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received copies of the GNU General Public License and
- the GNU Lesser General Public License along with this program. If
- not, see https://www.gnu.org/licenses/.
-*/
-
-/* Development of Nettle's ECC support was funded by the .SE Internet Fund. */
-
-#if HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <gnutls_int.h>
-
-#include <nettle/ecc.h>
-#include "ecc-internal.h"
-#include "ecc-gost-curve.h"
-
-#define USE_REDC (ECC_REDC_SIZE != 0)
-
-#if GMP_NUMB_BITS == 32
-#include "ecc-gost512a-32.h"
-#elif GMP_NUMB_BITS == 64
-#include "ecc-gost512a-64.h"
-#else
-#error unsupported configuration
-#endif
-
-#if ECC_REDC_SIZE > 0
-# define ecc_512_redc ecc_pp1_redc
-#elif ECC_REDC_SIZE == 0
-# define ecc_512_redc NULL
-#else
-# error Configuration error
-#endif
-
-#define ecc_512_modp ecc_mod
-#define ecc_512_modq ecc_mod
-
-static const struct ecc_curve _gnutls_gost_512a =
-{
- {
- 512,
- ECC_LIMB_SIZE,
- ECC_BMODP_SIZE,
- ECC_REDC_SIZE,
- ECC_MOD_INV_ITCH (ECC_LIMB_SIZE),
- 0,
-
- ecc_p,
- ecc_Bmodp,
- ecc_Bmodp_shifted,
- ecc_redc_ppm1,
-
- ecc_pp1h,
- ecc_512_modp,
- USE_REDC ? ecc_512_redc : ecc_512_modp,
- ecc_mod_inv,
- NULL,
- },
- {
- 512,
- ECC_LIMB_SIZE,
- ECC_BMODQ_SIZE,
- 0,
- ECC_MOD_INV_ITCH (ECC_LIMB_SIZE),
- 0,
-
- ecc_q,
- ecc_Bmodq,
- ecc_Bmodq_shifted,
- NULL,
- ecc_qp1h,
-
- ecc_512_modq,
- ecc_512_modq,
- ecc_mod_inv,
- NULL,
- },
-
- USE_REDC,
- ECC_PIPPENGER_K,
- ECC_PIPPENGER_C,
-
-#ifdef HAVE_NETTLE_CURVE448_MUL
- ECC_ADD_JJA_ITCH (ECC_LIMB_SIZE),
-#endif
- ECC_ADD_JJJ_ITCH (ECC_LIMB_SIZE),
-#ifdef HAVE_NETTLE_CURVE448_MUL
- ECC_DUP_JJ_ITCH (ECC_LIMB_SIZE),
-#endif
- ECC_MUL_A_ITCH (ECC_LIMB_SIZE),
- ECC_MUL_G_ITCH (ECC_LIMB_SIZE),
- ECC_J_TO_A_ITCH (ECC_LIMB_SIZE),
-
-#ifdef HAVE_NETTLE_CURVE448_MUL
- ecc_add_jja,
-#endif
- ecc_add_jjj,
-#ifdef HAVE_NETTLE_CURVE448_MUL
- ecc_dup_jj,
-#endif
- ecc_mul_a,
- ecc_mul_g,
- ecc_j_to_a,
-
- ecc_b,
- ecc_g,
-#ifndef HAVE_NETTLE_CURVE448_MUL
- NULL,
-#endif
- ecc_unit,
- ecc_table
-};
-
-const struct ecc_curve *nettle_get_gost_512a(void)
-{
- return &_gnutls_gost_512a;
-}
diff --git a/lib/nettle/gost/ecc-gostdsa-sign.c b/lib/nettle/gost/ecc-gostdsa-sign.c
deleted file mode 100644
index 71e48b6a84..0000000000
--- a/lib/nettle/gost/ecc-gostdsa-sign.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/* ecc-gostdsa-sign.c
-
- Copyright (C) 2015 Dmitry Eremin-Solenikov
- Copyright (C) 2013, 2014 Niels Möller
-
- This file is part of GNU Nettle.
-
- GNU Nettle is free software: you can redistribute it and/or
- modify it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
- or
-
- * the GNU General Public License as published by the Free
- Software Foundation; either version 2 of the License, or (at your
- option) any later version.
-
- or both in parallel, as here.
-
- GNU Nettle is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received copies of the GNU General Public License and
- the GNU Lesser General Public License along with this program. If
- not, see https://www.gnu.org/licenses/.
-*/
-
-/* Development of Nettle's ECC support was funded by the .SE Internet Fund. */
-
-#if HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <gnutls_int.h>
-
-#include <stdlib.h>
-
-#include "gostdsa.h"
-#include "ecc-internal.h"
-
-/* Low-level GOST DSA signing */
-
-mp_size_t
-ecc_gostdsa_sign_itch (const struct ecc_curve *ecc)
-{
- /* Needs 3*ecc->p.size + scratch for ecc->mul_g. Currently same for
- ecc_mul_g and ecc_mul_g_eh. */
- return ECC_GOSTDSA_SIGN_ITCH (ecc->p.size);
-}
-
-/* NOTE: Caller should check if r or s is zero. */
-void
-ecc_gostdsa_sign (const struct ecc_curve *ecc,
- const mp_limb_t *zp,
- const mp_limb_t *kp,
- size_t length, const uint8_t *digest,
- mp_limb_t *rp, mp_limb_t *sp,
- mp_limb_t *scratch)
-{
-#define P scratch
-#define hp (scratch + 4*ecc->p.size)
-#define tp (scratch + 2*ecc->p.size)
-#define t2p scratch
- /* Procedure, according to GOST 34.10. q denotes the group
- order.
-
- 1. k <-- uniformly random, 0 < k < q
-
- 2. C <-- (c_x, c_y) = k g
-
- 3. r <-- c_x mod q
-
- 4. s <-- (r*z + k*h) mod q.
- */
-
- ecc->mul_g (ecc, P, kp, P + 3*ecc->p.size);
- /* x coordinate only, modulo q */
- ecc->h_to_a (ecc, 2, rp, P, P + 3*ecc->p.size);
-
- /* Process hash digest */
- gost_hash (&ecc->q, hp, length, digest);
- if (mpn_zero_p (hp, ecc->p.size))
- mpn_add_1 (hp, hp, ecc->p.size, 1);
-
- ecc_modq_mul (ecc, tp, rp, zp);
- ecc_modq_mul (ecc, t2p, kp, hp);
- ecc_modq_add (ecc, sp, tp, t2p);
-
- /* Also reduce mod ecc->q. It should already be < 2*ecc->q,
- * so one subtraction should suffice. */
-
- *scratch = mpn_sub_n (tp, sp, ecc->q.m, ecc->p.size);
- cnd_copy (*scratch == 0, sp, tp, ecc->p.size);
-
-#undef P
-#undef hp
-#undef tp
-#undef t2p
-}
diff --git a/lib/nettle/gost/ecc-gostdsa-verify.c b/lib/nettle/gost/ecc-gostdsa-verify.c
deleted file mode 100644
index 7b7e14af0f..0000000000
--- a/lib/nettle/gost/ecc-gostdsa-verify.c
+++ /dev/null
@@ -1,133 +0,0 @@
-/* ecc-gostdsa-verify.c
-
- Copyright (C) 2015 Dmitry Eremin-Solenikov
- Copyright (C) 2013, 2014 Niels Möller
-
- This file is part of GNU Nettle.
-
- GNU Nettle is free software: you can redistribute it and/or
- modify it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
- or
-
- * the GNU General Public License as published by the Free
- Software Foundation; either version 2 of the License, or (at your
- option) any later version.
-
- or both in parallel, as here.
-
- GNU Nettle is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received copies of the GNU General Public License and
- the GNU Lesser General Public License along with this program. If
- not, see https://www.gnu.org/licenses/.
-*/
-
-/* Development of Nettle's ECC support was funded by the .SE Internet Fund. */
-
-#if HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <gnutls_int.h>
-
-#include <stdlib.h>
-
-#include "gostdsa.h"
-#include "ecc-internal.h"
-
-/* Low-level GOST DSA verify */
-
-static int
-ecdsa_in_range (const struct ecc_curve *ecc, const mp_limb_t *xp)
-{
- return !mpn_zero_p (xp, ecc->p.size)
- && mpn_cmp (xp, ecc->q.m, ecc->p.size) < 0;
-}
-
-mp_size_t
-ecc_gostdsa_verify_itch (const struct ecc_curve *ecc)
-{
- /* Largest storage need is for the ecc->mul call. */
- return 5*ecc->p.size + ecc->mul_itch;
-}
-
-/* FIXME: Use faster primitives, not requiring side-channel silence. */
-int
-ecc_gostdsa_verify (const struct ecc_curve *ecc,
- const mp_limb_t *pp, /* Public key */
- size_t length, const uint8_t *digest,
- const mp_limb_t *rp, const mp_limb_t *sp,
- mp_limb_t *scratch)
-{
- /* Procedure, according to GOST R 34.10. q denotes the group
- order.
-
- 1. Check 0 < r, s < q.
-
- 2. v <-- h^{-1} (mod q)
-
- 3. z1 <-- s * v (mod q)
-
- 4. z2 <-- -r * v (mod q)
-
- 5. R = u1 G + u2 Y
-
- 6. Signature is valid if R_x = r (mod q).
- */
-
-#define hp (scratch)
-#define vp (scratch + ecc->p.size)
-#define z1 (scratch + 3*ecc->p.size)
-#define z2 (scratch + 4*ecc->p.size)
-
-#define P1 (scratch + 4*ecc->p.size)
-#define P2 (scratch)
-
-
- if (! (ecdsa_in_range (ecc, rp)
- && ecdsa_in_range (ecc, sp)))
- return 0;
-
- gost_hash (&ecc->q, hp, length, digest);
-
- if (mpn_zero_p (hp, ecc->p.size))
- mpn_add_1 (hp, hp, ecc->p.size, 1);
-
- /* Compute v */
- ecc->q.invert (&ecc->q, vp, hp, vp + 2*ecc->p.size);
-
- /* z1 = s / h, P1 = z1 * G */
- ecc_modq_mul (ecc, z1, sp, vp);
-
- /* z2 = - r / h, P2 = z2 * Y */
- ecc_modq_mul (ecc, z2, rp, vp);
- mpn_sub_n (z2, ecc->q.m, z2, ecc->p.size);
-
- /* Total storage: 5*ecc->p.size + ecc->mul_itch */
- ecc->mul (ecc, P2, z2, pp, z2 + ecc->p.size);
-
- /* Total storage: 7*ecc->p.size + ecc->mul_g_itch (ecc->p.size) */
- ecc->mul_g (ecc, P1, z1, P1 + 3*ecc->p.size);
-
- /* Total storage: 6*ecc->p.size + ecc->add_hhh_itch */
- ecc->add_hhh (ecc, P1, P1, P2, P1 + 3*ecc->p.size);
-
- /* x coordinate only, modulo q */
- ecc->h_to_a (ecc, 2, P2, P1, P1 + 3*ecc->p.size);
-
- return (mpn_cmp (rp, P2, ecc->p.size) == 0);
-#undef P2
-#undef P1
-#undef z2
-#undef z1
-#undef hp
-#undef vp
-}
diff --git a/lib/nettle/gost/ecc-internal.h b/lib/nettle/gost/ecc-internal.h
deleted file mode 100644
index 2cf6645c23..0000000000
--- a/lib/nettle/gost/ecc-internal.h
+++ /dev/null
@@ -1,298 +0,0 @@
-/* ecc-internal.h
-
- Copyright (C) 2013, 2014 Niels Möller
-
- This file is part of GNU Nettle.
-
- GNU Nettle is free software: you can redistribute it and/or
- modify it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
- or
-
- * the GNU General Public License as published by the Free
- Software Foundation; either version 2 of the License, or (at your
- option) any later version.
-
- or both in parallel, as here.
-
- GNU Nettle is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received copies of the GNU General Public License and
- the GNU Lesser General Public License along with this program. If
- not, see https://www.gnu.org/licenses/.
-*/
-
-/* Development of Nettle's ECC support was funded by the .SE Internet Fund. */
-
-#ifndef GNUTLS_LIB_NETTLE_GOST_ECC_INTERNAL_H
-#define GNUTLS_LIB_NETTLE_GOST_ECC_INTERNAL_H
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <nettle/nettle-types.h>
-#include <nettle/bignum.h>
-#include <nettle/ecc-curve.h>
-#include "gmp-glue.h"
-
-#define ecc_mod_add _nettle_ecc_mod_add
-#define ecc_mod_mul _nettle_ecc_mod_mul
-#define ecc_mod_random _nettle_ecc_mod_random
-#define ecc_mod _nettle_ecc_mod
-#define ecc_mod_inv _nettle_ecc_mod_inv
-#define gost_hash _gnutls_gost_hash
-#define ecc_j_to_a _nettle_ecc_j_to_a
-#define ecc_dup_jj _nettle_ecc_dup_jj
-#define ecc_add_jja _nettle_ecc_add_jja
-#define ecc_add_jjj _nettle_ecc_add_jjj
-#define ecc_mul_g _nettle_ecc_mul_g
-#define ecc_mul_a _nettle_ecc_mul_a
-#define cnd_copy _nettle_cnd_copy
-
-/* Window size for ecc_mul_a. Using 4 bits seems like a good choice,
- for both Intel x86_64 and ARM Cortex A9. For the larger curves, of
- 384 and 521 bits, we could improve speed by a few percent if we go
- up to 5 bits, but I don't think that's worth doubling the
- storage. */
-#define ECC_MUL_A_WBITS 4
-
-struct ecc_modulo;
-
-/* Reduces from 2*ecc->size to ecc->size. */
-/* Required to return a result < 2q. This property is inherited by
- mod_mul and mod_sqr. */
-typedef void ecc_mod_func (const struct ecc_modulo *m, mp_limb_t *rp);
-
-typedef void ecc_mod_inv_func (const struct ecc_modulo *m,
- mp_limb_t *vp, const mp_limb_t *ap,
- mp_limb_t *scratch);
-
-/* Computes the square root of (u/v) (mod p) */
-typedef int ecc_mod_sqrt_func (const struct ecc_modulo *m,
- mp_limb_t *rp,
- const mp_limb_t *up, const mp_limb_t *vp,
- mp_limb_t *scratch);
-
-typedef void ecc_add_func (const struct ecc_curve *ecc,
- mp_limb_t *r,
- const mp_limb_t *p, const mp_limb_t *q,
- mp_limb_t *scratch);
-
-typedef void ecc_dup_func (const struct ecc_curve *ecc,
- mp_limb_t *r, const mp_limb_t *p,
- mp_limb_t *scratch);
-
-typedef void ecc_mul_g_func (const struct ecc_curve *ecc, mp_limb_t *r,
- const mp_limb_t *np, mp_limb_t *scratch);
-
-typedef void ecc_mul_func (const struct ecc_curve *ecc,
- mp_limb_t *r,
- const mp_limb_t *np, const mp_limb_t *p,
- mp_limb_t *scratch);
-
-typedef void ecc_h_to_a_func (const struct ecc_curve *ecc,
- int flags,
- mp_limb_t *r, const mp_limb_t *p,
- mp_limb_t *scratch);
-
-struct ecc_modulo
-{
- unsigned short bit_size;
- unsigned short size;
- unsigned short B_size;
- unsigned short redc_size;
- unsigned short invert_itch;
- unsigned short sqrt_itch;
-
- const mp_limb_t *m;
- /* B^size mod m. Expected to have at least 32 leading zeros
- (equality for secp_256r1). */
- const mp_limb_t *B;
- /* 2^{bit_size} - p, same value as above, but shifted. */
- const mp_limb_t *B_shifted;
- /* m +/- 1, for redc, excluding redc_size low limbs. */
- const mp_limb_t *redc_mpm1;
- /* (m+1)/2 */
- const mp_limb_t *mp1h;
-
- ecc_mod_func *mod;
- ecc_mod_func *reduce;
- ecc_mod_inv_func *invert;
- ecc_mod_sqrt_func *sqrt;
-};
-
-/* Represents an elliptic curve of the form
-
- y^2 = x^3 - 3x + b (mod p)
-*/
-struct ecc_curve
-{
- /* The prime p. */
- struct ecc_modulo p;
- /* Group order. FIXME: Currently, many functions rely on q.size ==
- p.size. This has to change for radix-51 implementation of
- curve25519 mod p arithmetic. */
- struct ecc_modulo q;
-
- unsigned short use_redc;
- unsigned short pippenger_k;
- unsigned short pippenger_c;
-
-#ifdef HAVE_NETTLE_CURVE448_MUL
- unsigned short add_hh_itch;
-#endif
- unsigned short add_hhh_itch;
-#ifdef HAVE_NETTLE_CURVE448_MUL
- unsigned short dup_itch;
-#endif
- unsigned short mul_itch;
- unsigned short mul_g_itch;
- unsigned short h_to_a_itch;
-
-#ifdef HAVE_NETTLE_CURVE448_MUL
- ecc_add_func *add_hh;
-#endif
- ecc_add_func *add_hhh;
-#ifdef HAVE_NETTLE_CURVE448_MUL
- ecc_dup_func *dup;
-#endif
- ecc_mul_func *mul;
- ecc_mul_g_func *mul_g;
- ecc_h_to_a_func *h_to_a;
-
- /* Curve constant */
- const mp_limb_t *b;
- /* Generator, x coordinate followed by y (affine coordinates).
- Currently used only by the test suite. */
- const mp_limb_t *g;
- /* If non-NULL, the constant needed for transformation to the
- equivalent Edwards curve. */
-#ifndef HAVE_NETTLE_CURVE448_MUL
- const mp_limb_t *edwards_root;
-#endif
-
- /* For redc, same as B mod p, otherwise 1. */
- const mp_limb_t *unit;
-
- /* Tables for multiplying by the generator, size determined by k and
- c. The first 2^c entries are defined by
-
- T[ j_0 + j_1 2 + ... + j_{c-1} 2^{c-1} ]
- = j_0 g + j_1 2^k g + ... + j_{c-1} 2^{k(c-1)} g
-
- The following entries differ by powers of 2^{kc},
-
- T[i] = 2^{kc} T[i-2^c]
- */
- const mp_limb_t *pippenger_table;
-};
-
-/* In-place reduction. */
-ecc_mod_func ecc_mod;
-
-ecc_mod_inv_func ecc_mod_inv;
-
-void
-ecc_mod_add (const struct ecc_modulo *m, mp_limb_t *rp,
- const mp_limb_t *ap, const mp_limb_t *bp);
-
-/* NOTE: mul and sqr needs 2*ecc->size limbs at rp */
-void
-ecc_mod_mul (const struct ecc_modulo *m, mp_limb_t *rp,
- const mp_limb_t *ap, const mp_limb_t *bp);
-
-#define ecc_modq_add(ecc, r, a, b) \
- ecc_mod_add (&(ecc)->q, (r), (a), (b))
-#define ecc_modq_mul(ecc, r, a, b) \
- ecc_mod_mul (&(ecc)->q, (r), (a), (b))
-
-/* mod q operations. */
-void
-ecc_mod_random (const struct ecc_modulo *m, mp_limb_t *xp,
- void *ctx, nettle_random_func *random, mp_limb_t *scratch);
-
-void
-gost_hash (const struct ecc_modulo *m,
- mp_limb_t *hp,
- size_t length, const uint8_t *digest);
-
-/* Converts a point P in jacobian coordinates into a point R in affine
- coordinates. If op == 1, produce x coordinate only. If op == 2,
- produce the x coordinate only, and in also it modulo q. FIXME: For
- the public interface, have separate for the three cases, and use
- this flag argument only for the internal ecc->h_to_a function. */
-void
-ecc_j_to_a (const struct ecc_curve *ecc,
- int op,
- mp_limb_t *r, const mp_limb_t *p,
- mp_limb_t *scratch);
-
-/* Point doubling, with jacobian input and output. Corner cases:
- Correctly sets R = 0 (r_Z = 0) if p = 0 or 2p = 0. */
-void
-ecc_dup_jj (const struct ecc_curve *ecc,
- mp_limb_t *r, const mp_limb_t *p,
- mp_limb_t *scratch);
-
-/* Point addition, with jacobian output, one jacobian input and one
- affine input. Corner cases: Fails for the cases
-
- P = Q != 0 Duplication of non-zero point
- P = 0, Q != 0 or P != 0, Q = 0 One input zero
-
- Correctly gives R = 0 if P = Q = 0 or P = -Q. */
-void
-ecc_add_jja (const struct ecc_curve *ecc,
- mp_limb_t *r, const mp_limb_t *p, const mp_limb_t *q,
- mp_limb_t *scratch);
-
-/* Point addition with Jacobian input and output. */
-void
-ecc_add_jjj (const struct ecc_curve *ecc,
- mp_limb_t *r, const mp_limb_t *p, const mp_limb_t *q,
- mp_limb_t *scratch);
-
-/* Computes N * the group generator. N is an array of ecc_size()
- limbs. It must be in the range 0 < N < group order, then R != 0,
- and the algorithm can work without any intermediate values getting
- to zero. */
-void
-ecc_mul_g (const struct ecc_curve *ecc, mp_limb_t *r,
- const mp_limb_t *np, mp_limb_t *scratch);
-
-/* Computes N * P. The scalar N is the same as for ecc_mul_g. P is a
- non-zero point on the curve, in affine coordinates. Output R is a
- non-zero point, in Jacobian coordinates. */
-void
-ecc_mul_a (const struct ecc_curve *ecc,
- mp_limb_t *r,
- const mp_limb_t *np, const mp_limb_t *p,
- mp_limb_t *scratch);
-
-void
-cnd_copy (int cnd, mp_limb_t *rp, const mp_limb_t *ap, mp_size_t n);
-
-/* Current scratch needs: */
-#define ECC_MOD_INV_ITCH(size) (2*(size))
-#define ECC_J_TO_A_ITCH(size) (5*(size))
-#define ECC_DUP_JJ_ITCH(size) (5*(size))
-#define ECC_ADD_JJA_ITCH(size) (6*(size))
-#define ECC_ADD_JJJ_ITCH(size) (8*(size))
-#define ECC_MUL_G_ITCH(size) (9*(size))
-#if ECC_MUL_A_WBITS == 0
-#define ECC_MUL_A_ITCH(size) (12*(size))
-#else
-#define ECC_MUL_A_ITCH(size) \
- (((3 << ECC_MUL_A_WBITS) + 11) * (size))
-#endif
-#define ECC_GOSTDSA_SIGN_ITCH(size) (12*(size))
-
-#endif /* GNUTLS_LIB_NETTLE_GOST_ECC_INTERNAL_H */
diff --git a/lib/nettle/gost/gmp-glue.h b/lib/nettle/gost/gmp-glue.h
deleted file mode 100644
index 4b1d0932bd..0000000000
--- a/lib/nettle/gost/gmp-glue.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/* gmp-glue.h
-
- Copyright (C) 2013 Niels Möller
- Copyright (C) 2013 Red Hat
-
- This file is part of GNU Nettle.
-
- GNU Nettle is free software: you can redistribute it and/or
- modify it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
- or
-
- * the GNU General Public License as published by the Free
- Software Foundation; either version 2 of the License, or (at your
- option) any later version.
-
- or both in parallel, as here.
-
- GNU Nettle is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received copies of the GNU General Public License and
- the GNU Lesser General Public License along with this program. If
- not, see https://www.gnu.org/licenses/.
-*/
-
-#ifndef GNUTLS_LIB_NETTLE_GOST_GMP_GLUE_H
-#define GNUTLS_LIB_NETTLE_GOST_GMP_GLUE_H
-
-#include <nettle/bignum.h>
-
-#define mpz_limbs_copy _nettle_mpz_limbs_copy
-#define mpn_set_base256_le _nettle_mpn_set_base256_le
-#define mpn_get_base256_le _nettle_mpn_get_base256_le
-#define gmp_alloc_limbs _nettle_gmp_alloc_limbs
-#define gmp_free_limbs _nettle_gmp_free_limbs
-
-void
-mpn_set_base256_le (mp_limb_t *rp, mp_size_t rn,
- const uint8_t *xp, size_t xn);
-
-void
-mpn_get_base256_le (uint8_t *rp, size_t rn,
- const mp_limb_t *xp, mp_size_t xn);
-
-#if !defined(mpn_zero_p) && !defined(__MINI_GMP_H__)
-static inline int
-mpn_zero_p (const mp_limb_t *xp, mp_size_t n)
-{
- while (n > 0)
- if (xp[--n] != 0)
- return 0;
- return 1;
-}
-#endif
-
-/* Copy limbs, with zero-padding. */
-/* FIXME: Reorder arguments, on the theory that the first argument of
- an _mpz_* function should be an mpz_t? Or rename to _mpz_get_limbs,
- with argument order consistent with mpz_get_*. */
-void
-mpz_limbs_copy (mp_limb_t *xp, mpz_srcptr x, mp_size_t n);
-
-mp_limb_t *
-gmp_alloc_limbs (mp_size_t n);
-
-void
-gmp_free_limbs (mp_limb_t *p, mp_size_t n);
-
-#endif /* GNUTLS_LIB_NETTLE_GOST_GMP_GLUE_H */
diff --git a/lib/nettle/gost/gost-point-mul-g.c b/lib/nettle/gost/gost-point-mul-g.c
new file mode 100644
index 0000000000..fd6c92dbd2
--- /dev/null
+++ b/lib/nettle/gost/gost-point-mul-g.c
@@ -0,0 +1,58 @@
+/* ecc-point-mul-g.c
+
+ Copyright (C) 2013 Niels Möller
+
+ This file is part of GNU Nettle.
+
+ GNU Nettle is free software: you can redistribute it and/or
+ modify it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your
+ option) any later version.
+
+ or both in parallel, as here.
+
+ GNU Nettle is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received copies of the GNU General Public License and
+ the GNU Lesser General Public License along with this program. If
+ not, see http://www.gnu.org/licenses/.
+*/
+
+/* Development of Nettle's ECC support was funded by the .SE Internet Fund. */
+
+#if HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <assert.h>
+
+#include <nettle/ecc.h>
+#include "ecc/ecc-internal.h"
+#include "ecc-gost-curve.h"
+
+void
+gost_point_mul_g (struct ecc_point *r, const struct ecc_scalar *n)
+{
+ const struct ecc_curve *ecc = r->ecc;
+ mp_limb_t size = ecc->p.size;
+ mp_size_t itch = 3*size + ecc->mul_g_itch;
+ mp_limb_t *scratch = gmp_alloc_limbs (itch);
+
+ assert (n->ecc == ecc);
+ assert (ecc->h_to_a_itch <= ecc->mul_g_itch);
+
+ ecc->mul_g (ecc, scratch, n->p, scratch + 3*size);
+ ecc->h_to_a (ecc, 0, r->p, scratch, scratch + 3*size);
+ gmp_free_limbs (scratch, itch);
+}
diff --git a/lib/nettle/gost/gost-point.c b/lib/nettle/gost/gost-point.c
new file mode 100644
index 0000000000..0e9938108c
--- /dev/null
+++ b/lib/nettle/gost/gost-point.c
@@ -0,0 +1,112 @@
+/* ecc-point.c
+
+ Copyright (C) 2013, 2014 Niels Möller
+
+ This file is part of GNU Nettle.
+
+ GNU Nettle is free software: you can redistribute it and/or
+ modify it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your
+ option) any later version.
+
+ or both in parallel, as here.
+
+ GNU Nettle is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received copies of the GNU General Public License and
+ the GNU Lesser General Public License along with this program. If
+ not, see http://www.gnu.org/licenses/.
+*/
+
+/* Development of Nettle's ECC support was funded by the .SE Internet Fund. */
+
+#if HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <nettle/ecc.h>
+#include "ecc/ecc-internal.h"
+#include "ecc-gost-curve.h"
+
+int
+gost_point_set (struct ecc_point *p, const mpz_t x, const mpz_t y)
+{
+ mp_size_t size;
+ mpz_t lhs, rhs;
+ mpz_t t;
+ int res;
+
+ size = p->ecc->p.size;
+
+ if (mpz_sgn (x) < 0 || mpz_limbs_cmp (x, p->ecc->p.m, size) >= 0
+ || mpz_sgn (y) < 0 || mpz_limbs_cmp (y, p->ecc->p.m, size) >= 0)
+ return 0;
+
+ mpz_init (lhs);
+ mpz_init (rhs);
+
+ mpz_mul (lhs, y, y);
+
+ if (p->ecc->p.bit_size == 255)
+ {
+ /* ed25519 special case. FIXME: Do in some cleaner way? */
+ mpz_t x2;
+ mpz_init (x2);
+ mpz_mul (x2, x, x);
+ mpz_mul (rhs, x2, lhs);
+ /* Check that -x^2 + y^2 = 1 - (121665/121666) x^2 y^2
+ or 121666 (1 + x^2 - y^2) = 121665 x^2 y^2 */
+ mpz_sub (lhs, x2, lhs);
+ mpz_add_ui (lhs, lhs, 1);
+ mpz_mul_ui (lhs, lhs, 121666);
+ mpz_mul_ui (rhs, rhs, 121665);
+ mpz_clear (x2);
+ }
+ else if (p->ecc->p.bit_size == 448)
+ {
+ /* curve448 special case. FIXME: Do in some cleaner way? */
+ mpz_t x2, d;
+ mpz_init (x2);
+ mpz_init_set_ui (d, 39081);
+ mpz_mul (x2, x, x); /* x^2 */
+ mpz_mul (d, d, x2); /* 39081 x^2 */
+ mpz_set_ui (rhs, 1);
+ mpz_submul (rhs, d, lhs); /* 1 - 39081 x^2 y^2 */
+ /* Check that x^2 + y^2 = 1 - 39081 x^2 y^2 */
+ mpz_add (lhs, x2, lhs); /* x^2 + y^2 */
+ mpz_clear (d);
+ mpz_clear (x2);
+ }
+ else
+ {
+ /* Check that y^2 = x^3 - 3*x + b (mod p) */
+ mpz_mul (rhs, x, x);
+ mpz_sub_ui (rhs, rhs, 3);
+ mpz_mul (rhs, rhs, x);
+ mpz_add (rhs, rhs, mpz_roinit_n (t, p->ecc->b, size));
+ }
+
+ res = mpz_congruent_p (lhs, rhs, mpz_roinit_n (t, p->ecc->p.m, size));
+
+ mpz_clear (lhs);
+ mpz_clear (rhs);
+
+ if (!res)
+ return 0;
+
+ mpz_limbs_copy (p->p, x, size);
+ mpz_limbs_copy (p->p + size, y, size);
+
+ return 1;
+}
diff --git a/lib/nettle/gost/gost28147.c b/lib/nettle/gost/gost28147.c
index d6a278ab09..67e820fef7 100644
--- a/lib/nettle/gost/gost28147.c
+++ b/lib/nettle/gost/gost28147.c
@@ -2219,8 +2219,8 @@ void gost28147_encrypt_simple (const uint32_t *key, const uint32_t *sbox,
*out = l, *(out + 1) = r;
}
-static void gost28147_decrypt_simple (const uint32_t *key, const uint32_t *sbox,
- const uint32_t *in, uint32_t *out)
+void gost28147_decrypt_simple (const uint32_t *key, const uint32_t *sbox,
+ const uint32_t *in, uint32_t *out)
{
uint32_t l, r, tmp;
@@ -2292,25 +2292,18 @@ static void gost28147_key_mesh_cryptopro(struct gost28147_ctx *ctx)
ctx->key_count = 0;
}
-static void
-_gost28147_set_key(struct gost28147_ctx *ctx, const uint8_t *key)
+void
+gost28147_set_key(struct gost28147_ctx *ctx, const uint8_t *key)
{
unsigned i;
+ assert(key);
for (i = 0; i < 8; i++, key += 4)
ctx->key[i] = LE_READ_UINT32(key);
ctx->key_count = 0;
}
void
-gost28147_set_key(struct gost28147_ctx *ctx, const uint8_t *key)
-{
- assert(key);
- _gost28147_set_key(ctx, key);
- gost28147_set_param(ctx, &gost28147_param_TC26_Z);
-}
-
-void
gost28147_set_param(struct gost28147_ctx *ctx, const struct gost28147_param *param)
{
assert(param);
@@ -2419,8 +2412,8 @@ gost28147_cnt_init(struct gost28147_cnt_ctx *ctx,
const uint8_t *key,
const struct gost28147_param *param)
{
- gost28147_set_key(&ctx->ctx, key);
gost28147_set_param(&ctx->ctx, param);
+ gost28147_set_key(&ctx->ctx, key);
ctx->bytes = 0;
}
@@ -2487,10 +2480,8 @@ gost28147_imit_set_key(struct gost28147_imit_ctx *ctx,
assert(length == GOST28147_IMIT_KEY_SIZE);
assert(key);
- _gost28147_set_key(&ctx->cctx, key);
_gost28147_imit_reinit(ctx);
- if (!ctx->cctx.sbox)
- gost28147_set_param(&ctx->cctx, &gost28147_param_TC26_Z);
+ gost28147_set_key(&ctx->cctx, key);
}
void
diff --git a/lib/nettle/gost/gost28147.h b/lib/nettle/gost/gost28147.h
index 14c865e6e6..a514ff42dd 100644
--- a/lib/nettle/gost/gost28147.h
+++ b/lib/nettle/gost/gost28147.h
@@ -57,6 +57,7 @@ extern "C" {
/* Private */
#define gost28147_encrypt_simple _gnutls_gost28147_encrypt_simple
+#define gost28147_decrypt_simple _gnutls_gost28147_decrypt_simple
/* Public functions */
#define gost28147_set_key _gnutls_gost28147_set_key
@@ -108,6 +109,8 @@ extern const struct gost28147_param gost28147_param_TC26_Z;
/* Internal interface for use by GOST R 34.11-94 */
void gost28147_encrypt_simple (const uint32_t *key, const uint32_t *sbox,
const uint32_t *in, uint32_t *out);
+void gost28147_decrypt_simple (const uint32_t *key, const uint32_t *sbox,
+ const uint32_t *in, uint32_t *out);
void
gost28147_set_key(struct gost28147_ctx *ctx, const uint8_t *key);
diff --git a/lib/nettle/gost/gostdsa-keygen.c b/lib/nettle/gost/gostdsa-keygen.c
new file mode 100644
index 0000000000..fa364be872
--- /dev/null
+++ b/lib/nettle/gost/gostdsa-keygen.c
@@ -0,0 +1,63 @@
+/* ecdsa-keygen.c
+
+ Copyright (C) 2013 Niels Möller
+
+ This file is part of GNU Nettle.
+
+ GNU Nettle is free software: you can redistribute it and/or
+ modify it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your
+ option) any later version.
+
+ or both in parallel, as here.
+
+ GNU Nettle is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received copies of the GNU General Public License and
+ the GNU Lesser General Public License along with this program. If
+ not, see http://www.gnu.org/licenses/.
+*/
+
+/* Development of Nettle's ECC support was funded by the .SE Internet Fund. */
+
+#if HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <assert.h>
+#include <stdlib.h>
+
+#include <nettle/ecc.h>
+#include "ecc/ecc-internal.h"
+#include "ecc-gost-curve.h"
+#include "nettle-alloca.h"
+
+void
+gostdsa_generate_keypair (struct ecc_point *pub,
+ struct ecc_scalar *key,
+ void *random_ctx, nettle_random_func *random)
+{
+ TMP_DECL(p, mp_limb_t, 3*ECC_MAX_SIZE + ECC_MUL_G_ITCH (ECC_MAX_SIZE));
+ const struct ecc_curve *ecc = pub->ecc;
+ mp_size_t itch = 3*ecc->p.size + ecc->mul_g_itch;
+
+ assert (key->ecc == ecc);
+ assert (ecc->h_to_a_itch <= ecc->mul_g_itch);
+
+ TMP_ALLOC (p, itch);
+
+ ecc_mod_random (&ecc->q, key->p, random_ctx, random, p);
+ ecc->mul_g (ecc, p, key->p, p + 3*ecc->p.size);
+ ecc->h_to_a (ecc, 0, pub->p, p, p + 3*ecc->p.size);
+}
diff --git a/lib/nettle/gost/gostdsa-mask.c b/lib/nettle/gost/gostdsa-mask.c
index 49dc2f4569..552e5fb9e6 100644
--- a/lib/nettle/gost/gostdsa-mask.c
+++ b/lib/nettle/gost/gostdsa-mask.c
@@ -37,10 +37,8 @@
#include <stdlib.h>
-#include "gostdsa.h"
-#include "ecc-internal.h"
-
-#include "gmp-glue.h"
+#include "gostdsa2.h"
+#include "ecc/ecc-internal.h"
/* Key comes in form .... M_2 M_1 K_0,
unmask is K_i = K_i-1 * M_i mod Q */
diff --git a/lib/nettle/gost/gostdsa-sign.c b/lib/nettle/gost/gostdsa-sign.c
deleted file mode 100644
index 725d682261..0000000000
--- a/lib/nettle/gost/gostdsa-sign.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/* gostdsa-sign.c
-
- Copyright (C) 2015 Dmitry Eremin-Solenikov
- Copyright (C) 2013 Niels Möller
-
- This file is part of GNU Nettle.
-
- GNU Nettle is free software: you can redistribute it and/or
- modify it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
- or
-
- * the GNU General Public License as published by the Free
- Software Foundation; either version 2 of the License, or (at your
- option) any later version.
-
- or both in parallel, as here.
-
- GNU Nettle is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received copies of the GNU General Public License and
- the GNU Lesser General Public License along with this program. If
- not, see https://www.gnu.org/licenses/.
-*/
-
-/* Development of Nettle's ECC support was funded by the .SE Internet Fund. */
-
-#if HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <gnutls_int.h>
-
-#include <stdlib.h>
-
-#include "gostdsa.h"
-#include "ecc-internal.h"
-#include "nettle-internal.h"
-
-void
-gostdsa_sign (const struct ecc_scalar *key,
- void *random_ctx, nettle_random_func *random,
- size_t digest_length,
- const uint8_t *digest,
- struct dsa_signature *signature)
-{
- /* At most 936 bytes. */
- TMP_DECL(k, mp_limb_t, ECC_MAX_SIZE + ECC_GOSTDSA_SIGN_ITCH (ECC_MAX_SIZE));
- size_t size = ecc_size (key->ecc);
- mp_limb_t *rp = mpz_limbs_write (signature->r, size);
- mp_limb_t *sp = mpz_limbs_write (signature->s, size);
-
- TMP_ALLOC (k, size + ECC_GOSTDSA_SIGN_ITCH (size));
-
- /* Timing reveals the number of rounds through this loop, but the
- timing is still independent of the secret k finally used. */
- do
- {
- do
- {
- ecc_mod_random (&key->ecc->q, k, random_ctx, random, k + size);
- }
- while (mpn_zero_p(k, size));
- ecc_gostdsa_sign (key->ecc, key->p, k, digest_length, digest,
- rp, sp, k + size);
- mpz_limbs_finish (signature->r, size);
- mpz_limbs_finish (signature->s, size);
- }
- while (mpz_sgn (signature->r) == 0 || mpz_sgn (signature->s) == 0);
-}
diff --git a/lib/nettle/gost/gostdsa-verify.c b/lib/nettle/gost/gostdsa-verify.c
deleted file mode 100644
index 7c12279b1a..0000000000
--- a/lib/nettle/gost/gostdsa-verify.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/* gostdsa-verify.c
-
- Copyright (C) 2015 Dmitry Eremin-Solenikov
- Copyright (C) 2013 Niels Möller
-
- This file is part of GNU Nettle.
-
- GNU Nettle is free software: you can redistribute it and/or
- modify it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
- or
-
- * the GNU General Public License as published by the Free
- Software Foundation; either version 2 of the License, or (at your
- option) any later version.
-
- or both in parallel, as here.
-
- GNU Nettle is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received copies of the GNU General Public License and
- the GNU Lesser General Public License along with this program. If
- not, see https://www.gnu.org/licenses/.
-*/
-
-/* Development of Nettle's ECC support was funded by the .SE Internet Fund. */
-
-#if HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <gnutls_int.h>
-
-#include <stdlib.h>
-
-#include "gostdsa.h"
-
-#include "gmp-glue.h"
-
-int
-gostdsa_verify (const struct ecc_point *pub,
- size_t length, const uint8_t *digest,
- const struct dsa_signature *signature)
-{
- size_t size = ecc_size (pub->ecc);
- mp_size_t itch = 2*size + ecc_gostdsa_verify_itch (pub->ecc);
- /* For ECC_MUL_A_WBITS == 0, at most 1512 bytes. With
- ECC_MUL_A_WBITS == 4, currently needs 67 * ecc->size, at most
- 4824 bytes. Don't use stack allocation for this. */
- mp_limb_t *scratch;
- int res;
-
-#define rp scratch
-#define sp (scratch + size)
-#define scratch_out (scratch + 2*size)
-
- if (mpz_sgn (signature->r) <= 0 || mpz_size (signature->r) > size
- || mpz_sgn (signature->s) <= 0 || mpz_size (signature->s) > size)
- return 0;
-
- scratch = gmp_alloc_limbs (itch);
-
- mpz_limbs_copy (rp, signature->r, size);
- mpz_limbs_copy (sp, signature->s, size);
-
- res = ecc_gostdsa_verify (pub->ecc, pub->p, length, digest, rp, sp, scratch_out);
-
- gmp_free_limbs (scratch, itch);
-
- return res;
-#undef rp
-#undef sp
-#undef scratch_out
-}
diff --git a/lib/nettle/gost/gostdsa-vko.c b/lib/nettle/gost/gostdsa-vko.c
deleted file mode 100644
index 89dff1cc45..0000000000
--- a/lib/nettle/gost/gostdsa-vko.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/* gostdsa-vko.c
-
- Copyright (C) 2016 Dmitry Eremin-Solenikov
-
- This file is part of GNU Nettle.
-
- GNU Nettle is free software: you can redistribute it and/or
- modify it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
- or
-
- * the GNU General Public License as published by the Free
- Software Foundation; either version 2 of the License, or (at your
- option) any later version.
-
- or both in parallel, as here.
-
- GNU Nettle is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received copies of the GNU General Public License and
- the GNU Lesser General Public License along with this program. If
- not, see http://www.gnu.org/licenses/.
-*/
-
-#if HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <gnutls_int.h>
-
-#include <stdlib.h>
-
-#include "ecc-internal.h"
-#include "gostdsa.h"
-
-int
-gostdsa_vko(const struct ecc_scalar *key,
- const struct ecc_point *pub,
- size_t ukm_length, const uint8_t *ukm,
- size_t out_length, uint8_t *out)
-{
- const struct ecc_curve *ecc = key->ecc;
- unsigned bsize = (ecc_bit_size(ecc) + 7) / 8;
- mp_size_t size = ecc->p.size;
- mp_size_t itch = 4*size + ecc->mul_itch;
- mp_limb_t *scratch;
-
- if (itch < 5*size + ecc->h_to_a_itch)
- itch = 5*size + ecc->h_to_a_itch;
-
- if (pub->ecc != ecc)
- return 0;
-
- if (out_length < 2 * bsize) {
- return 0;
- }
-
- scratch = gmp_alloc_limbs (itch);
-
- mpn_set_base256_le (scratch, size, ukm, ukm_length);
- if (mpn_zero_p (scratch, size))
- mpn_add_1 (scratch, scratch, size, 1);
- ecc_modq_mul (ecc, scratch + 3*size, key->p, scratch);
- ecc->mul (ecc, scratch, scratch + 3*size, pub->p, scratch + 4*size);
- ecc->h_to_a (ecc, 0, scratch + 3*size, scratch, scratch + 5*size);
- mpn_get_base256_le (out, bsize, scratch + 3*size, size);
- mpn_get_base256_le (out+bsize, bsize, scratch + 4*size, size);
- gmp_free_limbs (scratch, itch);
-
- return 2 * bsize;
-}
diff --git a/lib/nettle/gost/gostdsa.h b/lib/nettle/gost/gostdsa.h
deleted file mode 100644
index 9e0375f2ce..0000000000
--- a/lib/nettle/gost/gostdsa.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/* gostdsa.h
-
- Copyright (C) 2015 Dmity Eremin-Solenikov
- Copyright (C) 2013 Niels Möller
-
- This file is part of GNU Nettle.
-
- GNU Nettle is free software: you can redistribute it and/or
- modify it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
- or
-
- * the GNU General Public License as published by the Free
- Software Foundation; either version 2 of the License, or (at your
- option) any later version.
-
- or both in parallel, as here.
-
- GNU Nettle is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received copies of the GNU General Public License and
- the GNU Lesser General Public License along with this program. If
- not, see https://www.gnu.org/licenses/.
-*/
-
-/* Development of Nettle's ECC support was funded by the .SE Internet Fund. */
-
-#ifndef GNUTLS_LIB_NETTLE_GOST_GOSTDSA_H
-#define GNUTLS_LIB_NETTLE_GOST_GOSTDSA_H
-
-#include <nettle/ecc.h>
-#include <nettle/dsa.h>
-#include <nettle/ecdsa.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Name mangling */
-#define gostdsa_sign _gnutls_gostdsa_sign
-#define gostdsa_verify _gnutls_gostdsa_verify
-#define gostdsa_unmask_key _gnutls_gostdsa_unmask_key
-#define gostdsa_vko _gnutls_gostdsa_vko
-#define ecc_gostdsa_sign _gnutls_ecc_gostdsa_sign
-#define ecc_gostdsa_sign_itch _gnutls_ecc_gostdsa_sign_itch
-#define ecc_gostdsa_verify _gnutls_ecc_gostdsa_verify
-#define ecc_gostdsa_verify_itch _gnutls_ecc_gostdsa_verify_itch
-
-/* Just use ECDSA function for key generation */
-#define gostdsa_generate_keypair ecdsa_generate_keypair
-
-/* High level GOST DSA functions.
- *
- * A public key is represented as a struct ecc_point, and a private
- * key as a struct ecc_scalar. FIXME: Introduce some aliases? */
-void
-gostdsa_sign (const struct ecc_scalar *key,
- void *random_ctx, nettle_random_func *random,
- size_t digest_length,
- const uint8_t *digest,
- struct dsa_signature *signature);
-
-int
-gostdsa_verify (const struct ecc_point *pub,
- size_t length, const uint8_t *digest,
- const struct dsa_signature *signature);
-
-int
-gostdsa_unmask_key (const struct ecc_curve *ecc,
- mpz_t key);
-
-int
-gostdsa_vko(const struct ecc_scalar *key,
- const struct ecc_point *pub,
- size_t ukm_length, const uint8_t *ukm,
- size_t out_length, uint8_t *out);
-
-/* Low-level GOSTDSA functions. */
-mp_size_t
-ecc_gostdsa_sign_itch (const struct ecc_curve *ecc);
-
-void
-ecc_gostdsa_sign (const struct ecc_curve *ecc,
- const mp_limb_t *zp,
- /* Random nonce, must be invertible mod ecc group
- order. */
- const mp_limb_t *kp,
- size_t length, const uint8_t *digest,
- mp_limb_t *rp, mp_limb_t *sp,
- mp_limb_t *scratch);
-
-mp_size_t
-ecc_gostdsa_verify_itch (const struct ecc_curve *ecc);
-
-int
-ecc_gostdsa_verify (const struct ecc_curve *ecc,
- const mp_limb_t *pp, /* Public key */
- size_t length, const uint8_t *digest,
- const mp_limb_t *rp, const mp_limb_t *sp,
- mp_limb_t *scratch);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* GNUTLS_LIB_NETTLE_GOST_GOSTDSA_H */
diff --git a/lib/nettle/gost/pbkdf2-hmac-gosthash94.c b/lib/nettle/gost/gostdsa2.h
index c9bf80aa9a..9328a8af73 100644
--- a/lib/nettle/gost/pbkdf2-hmac-gosthash94.c
+++ b/lib/nettle/gost/gostdsa2.h
@@ -1,9 +1,7 @@
-/* pbkdf2-hmac-gosthash94.c
+/* gostdsa.h
- PKCS #5 PBKDF2 used with HMAC-GOSTHASH94CP.
-
- Copyright (C) 2016 Dmitry Eremin-Solenikov
- Copyright (C) 2012 Simon Josefsson
+ Copyright (C) 2015 Dmity Eremin-Solenikov
+ Copyright (C) 2013 Niels Möller
This file is part of GNU Nettle.
@@ -32,28 +30,30 @@
not, see https://www.gnu.org/licenses/.
*/
+/* Development of Nettle's ECC support was funded by the .SE Internet Fund. */
+
+#ifndef GNUTLS_LIB_NETTLE_GOST_GOSTDSA2_H
+#define GNUTLS_LIB_NETTLE_GOST_GOSTDSA2_H
+
+#include <nettle/ecc.h>
+
#if HAVE_CONFIG_H
# include "config.h"
#endif
-#ifndef HAVE_NETTLE_GOSTHASH94CP_UPDATE
-
-#include <gnutls_int.h>
-
-#include "pbkdf2-gost.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
-#include "hmac-gost.h"
+/* Name mangling */
+#define gostdsa_unmask_key _gnutls_gostdsa_unmask_key
-void
-pbkdf2_hmac_gosthash94cp (size_t key_length, const uint8_t *key,
- unsigned iterations,
- size_t salt_length, const uint8_t *salt,
- size_t length, uint8_t *dst)
-{
- struct hmac_gosthash94cp_ctx gosthash94cpctx;
+int
+gostdsa_unmask_key (const struct ecc_curve *ecc,
+ mpz_t key);
- hmac_gosthash94cp_set_key (&gosthash94cpctx, key_length, key);
- PBKDF2 (&gosthash94cpctx, hmac_gosthash94cp_update, hmac_gosthash94cp_digest,
- GOSTHASH94CP_DIGEST_SIZE, iterations, salt_length, salt, length, dst);
+#ifdef __cplusplus
}
#endif
+
+#endif /* GNUTLS_LIB_NETTLE_GOST_GOSTDSA2_H */
diff --git a/lib/nettle/gost/kuznyechik.c b/lib/nettle/gost/kuznyechik.c
new file mode 100644
index 0000000000..174c6b48ac
--- /dev/null
+++ b/lib/nettle/gost/kuznyechik.c
@@ -0,0 +1,244 @@
+/* kuznyechik.c - GOST R 34.12-2015 (Kuznyechik) cipher implementation
+
+ Copyright: 2017 Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
+
+ This file is part of GNU Nettle.
+
+ GNU Nettle is free software: you can redistribute it and/or
+ modify it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your
+ option) any later version.
+
+ or both in parallel, as here.
+
+ GNU Nettle is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received copies of the GNU General Public License and
+ the GNU Lesser General Public License along with this program. If
+ not, see http://www.gnu.org/licenses/.
+ */
+
+#if HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#ifndef HAVE_NETTLE_KUZNYECHIK_SET_KEY
+
+#include <assert.h>
+#include <string.h>
+
+#include <nettle/macros.h>
+#include <nettle/memxor.h>
+#include "nettle-write.h"
+#include "kuznyechik.h"
+
+#include "kuztable.h"
+
+static void S(uint8_t *a, const uint8_t *b)
+{
+ a[0] = pi[b[0]];
+ a[1] = pi[b[1]];
+ a[2] = pi[b[2]];
+ a[3] = pi[b[3]];
+ a[4] = pi[b[4]];
+ a[5] = pi[b[5]];
+ a[6] = pi[b[6]];
+ a[7] = pi[b[7]];
+ a[8] = pi[b[8]];
+ a[9] = pi[b[9]];
+ a[10] = pi[b[10]];
+ a[11] = pi[b[11]];
+ a[12] = pi[b[12]];
+ a[13] = pi[b[13]];
+ a[14] = pi[b[14]];
+ a[15] = pi[b[15]];
+}
+
+static void Sinv(uint8_t *a, const uint8_t *b)
+{
+ a[0] = pi_inv[b[0]];
+ a[1] = pi_inv[b[1]];
+ a[2] = pi_inv[b[2]];
+ a[3] = pi_inv[b[3]];
+ a[4] = pi_inv[b[4]];
+ a[5] = pi_inv[b[5]];
+ a[6] = pi_inv[b[6]];
+ a[7] = pi_inv[b[7]];
+ a[8] = pi_inv[b[8]];
+ a[9] = pi_inv[b[9]];
+ a[10] = pi_inv[b[10]];
+ a[11] = pi_inv[b[11]];
+ a[12] = pi_inv[b[12]];
+ a[13] = pi_inv[b[13]];
+ a[14] = pi_inv[b[14]];
+ a[15] = pi_inv[b[15]];
+}
+
+static void Linv(uint8_t *a, const uint8_t *b)
+{
+ memcpy(a, &kuz_table_inv[0][b[0] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(a, &kuz_table_inv[1][b[1] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(a, &kuz_table_inv[2][b[2] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(a, &kuz_table_inv[3][b[3] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(a, &kuz_table_inv[4][b[4] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(a, &kuz_table_inv[5][b[5] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(a, &kuz_table_inv[6][b[6] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(a, &kuz_table_inv[7][b[7] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(a, &kuz_table_inv[8][b[8] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(a, &kuz_table_inv[9][b[9] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(a, &kuz_table_inv[10][b[10] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(a, &kuz_table_inv[11][b[11] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(a, &kuz_table_inv[12][b[12] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(a, &kuz_table_inv[13][b[13] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(a, &kuz_table_inv[14][b[14] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(a, &kuz_table_inv[15][b[15] * 16], KUZNYECHIK_BLOCK_SIZE);
+}
+
+static void LSX(uint8_t *a, const uint8_t *b, const uint8_t *c)
+{
+ uint8_t t[16];
+
+ memcpy(t, &kuz_table[0][(b[0] ^ c[0]) * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table[1][(b[1] ^ c[1]) * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table[2][(b[2] ^ c[2]) * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table[3][(b[3] ^ c[3]) * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table[4][(b[4] ^ c[4]) * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table[5][(b[5] ^ c[5]) * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table[6][(b[6] ^ c[6]) * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table[7][(b[7] ^ c[7]) * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table[8][(b[8] ^ c[8]) * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table[9][(b[9] ^ c[9]) * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table[10][(b[10] ^ c[10]) * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table[11][(b[11] ^ c[11]) * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table[12][(b[12] ^ c[12]) * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table[13][(b[13] ^ c[13]) * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table[14][(b[14] ^ c[14]) * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor3(a, t, &kuz_table[15][(b[15] ^ c[15]) * 16], KUZNYECHIK_BLOCK_SIZE);
+}
+
+static void XLiSi(uint8_t *a, const uint8_t *b, const uint8_t *c)
+{
+ uint8_t t[16];
+
+ memcpy(t, &kuz_table_inv_LS[0][b[0] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table_inv_LS[1][b[1] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table_inv_LS[2][b[2] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table_inv_LS[3][b[3] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table_inv_LS[4][b[4] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table_inv_LS[5][b[5] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table_inv_LS[6][b[6] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table_inv_LS[7][b[7] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table_inv_LS[8][b[8] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table_inv_LS[9][b[9] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table_inv_LS[10][b[10] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table_inv_LS[11][b[11] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table_inv_LS[12][b[12] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table_inv_LS[13][b[13] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table_inv_LS[14][b[14] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table_inv_LS[15][b[15] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor3(a, t, c, 16);
+}
+
+static void subkey(uint8_t *out, const uint8_t *key, unsigned i)
+{
+ uint8_t test[16];
+
+ LSX(test, key+0, kuz_key_table[i + 0]);
+ memxor3(out+16, test, key + 16, 16);
+ LSX(test, out+16, kuz_key_table[i + 1]);
+ memxor3(out+0, test, key + 0, 16);
+ LSX(test, out+0, kuz_key_table[i + 2]);
+ memxor(out+16, test, 16);
+ LSX(test, out+16, kuz_key_table[i + 3]);
+ memxor(out+0, test, 16);
+ LSX(test, out+0, kuz_key_table[i + 4]);
+ memxor(out+16, test, 16);
+ LSX(test, out+16, kuz_key_table[i + 5]);
+ memxor(out+0, test, 16);
+ LSX(test, out+0, kuz_key_table[i + 6]);
+ memxor(out+16, test, 16);
+ LSX(test, out+16, kuz_key_table[i + 7]);
+ memxor(out+0, test, 16);
+}
+
+void
+kuznyechik_set_key(struct kuznyechik_ctx *ctx, const uint8_t *key)
+{
+ unsigned i;
+
+ memcpy(ctx->key, key, 32);
+ subkey(ctx->key + 32, ctx->key, 0);
+ subkey(ctx->key + 64, ctx->key + 32, 8);
+ subkey(ctx->key + 96, ctx->key + 64, 16);
+ subkey(ctx->key + 128, ctx->key + 96, 24);
+ for (i = 0; i < 10; i++)
+ Linv(ctx->dekey + 16 * i, ctx->key + 16 * i);
+}
+
+void
+kuznyechik_encrypt(const struct kuznyechik_ctx *ctx,
+ size_t length, uint8_t *dst,
+ const uint8_t *src)
+{
+ uint8_t temp[KUZNYECHIK_BLOCK_SIZE];
+
+ assert(!(length % KUZNYECHIK_BLOCK_SIZE));
+
+ while (length)
+ {
+ LSX(temp, ctx->key + 16 * 0, src);
+ LSX(temp, ctx->key + 16 * 1, temp);
+ LSX(temp, ctx->key + 16 * 2, temp);
+ LSX(temp, ctx->key + 16 * 3, temp);
+ LSX(temp, ctx->key + 16 * 4, temp);
+ LSX(temp, ctx->key + 16 * 5, temp);
+ LSX(temp, ctx->key + 16 * 6, temp);
+ LSX(temp, ctx->key + 16 * 7, temp);
+ LSX(temp, ctx->key + 16 * 8, temp);
+ memxor3(dst, ctx->key + 16 * 9, temp, 16);
+ src += KUZNYECHIK_BLOCK_SIZE;
+ dst+= KUZNYECHIK_BLOCK_SIZE;
+ length -= KUZNYECHIK_BLOCK_SIZE;
+ }
+}
+
+void
+kuznyechik_decrypt(const struct kuznyechik_ctx *ctx,
+ size_t length, uint8_t *dst,
+ const uint8_t *src)
+{
+ uint8_t temp[KUZNYECHIK_BLOCK_SIZE];
+
+ assert(!(length % KUZNYECHIK_BLOCK_SIZE));
+
+ while (length)
+ {
+ S(temp, src);
+ XLiSi(temp, temp, ctx->dekey + 16 * 9);
+ XLiSi(temp, temp, ctx->dekey + 16 * 8);
+ XLiSi(temp, temp, ctx->dekey + 16 * 7);
+ XLiSi(temp, temp, ctx->dekey + 16 * 6);
+ XLiSi(temp, temp, ctx->dekey + 16 * 5);
+ XLiSi(temp, temp, ctx->dekey + 16 * 4);
+ XLiSi(temp, temp, ctx->dekey + 16 * 3);
+ XLiSi(temp, temp, ctx->dekey + 16 * 2);
+ XLiSi(temp, temp, ctx->dekey + 16 * 1);
+ Sinv(dst, temp);
+ memxor(dst, ctx->key + 16 * 0, 16);
+ src += KUZNYECHIK_BLOCK_SIZE;
+ dst+= KUZNYECHIK_BLOCK_SIZE;
+ length -= KUZNYECHIK_BLOCK_SIZE;
+ }
+}
+#endif /* HAVE_NETTLE_KUZNYECHIK_SET_KEY */
diff --git a/lib/nettle/gost/kuznyechik.h b/lib/nettle/gost/kuznyechik.h
new file mode 100644
index 0000000000..5799284b3d
--- /dev/null
+++ b/lib/nettle/gost/kuznyechik.h
@@ -0,0 +1,80 @@
+/* kuznyechik.h
+
+ The GOST R 34.12-2015 (Kuznyechik) cipher function.
+
+ Copyright (C) 2017 Dmitry Eremin-Solenikov
+
+ This file is part of GNU Nettle.
+
+ GNU Nettle is free software: you can redistribute it and/or
+ modify it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your
+ option) any later version.
+
+ or both in parallel, as here.
+
+ GNU Nettle is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received copies of the GNU General Public License and
+ the GNU Lesser General Public License along with this program. If
+ not, see http://www.gnu.org/licenses/.
+*/
+
+#ifndef GNUTLS_LIB_NETTLE_KUZNYECHIK_H_INCLUDED
+#define GNUTLS_LIB_NETTLE_KUZNYECHIK_H_INCLUDED
+
+#include <nettle/nettle-types.h>
+
+#include "config.h"
+
+#ifndef HAVE_NETTLE_KUZNYECHIK_SET_KEY
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define kuznyechik_set_key _gnutls_kuznyechik_set_key
+#define kuznyechik_set_param _gnutls_kuznyechik_set_param
+#define kuznyechik_encrypt _gnutls_kuznyechik_encrypt
+#define kuznyechik_decrypt _gnutls_kuznyechik_decrypt
+
+#define KUZNYECHIK_KEY_SIZE 32
+#define KUZNYECHIK_SUBKEYS_SIZE (16 * 10)
+#define KUZNYECHIK_BLOCK_SIZE 16
+
+struct kuznyechik_ctx
+{
+ uint8_t key[KUZNYECHIK_SUBKEYS_SIZE];
+ uint8_t dekey[KUZNYECHIK_SUBKEYS_SIZE];
+};
+
+void
+kuznyechik_set_key(struct kuznyechik_ctx *ctx, const uint8_t *key);
+
+void
+kuznyechik_encrypt(const struct kuznyechik_ctx *ctx,
+ size_t length, uint8_t *dst,
+ const uint8_t *src);
+void
+kuznyechik_decrypt(const struct kuznyechik_ctx *ctx,
+ size_t length, uint8_t *dst,
+ const uint8_t *src);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+#endif /* GNUTLS_LIB_NETTLE_KUZNYECHIK_H_INCLUDED */
diff --git a/lib/nettle/gost/kuztable.h b/lib/nettle/gost/kuztable.h
new file mode 100644
index 0000000000..a436911c36
--- /dev/null
+++ b/lib/nettle/gost/kuztable.h
@@ -0,0 +1,12503 @@
+static const uint8_t pi[256] =
+{
+ 0xfc, 0xee, 0xdd, 0x11, 0xcf, 0x6e, 0x31, 0x16,
+ 0xfb, 0xc4, 0xfa, 0xda, 0x23, 0xc5, 0x04, 0x4d,
+ 0xe9, 0x77, 0xf0, 0xdb, 0x93, 0x2e, 0x99, 0xba,
+ 0x17, 0x36, 0xf1, 0xbb, 0x14, 0xcd, 0x5f, 0xc1,
+ 0xf9, 0x18, 0x65, 0x5a, 0xe2, 0x5c, 0xef, 0x21,
+ 0x81, 0x1c, 0x3c, 0x42, 0x8b, 0x01, 0x8e, 0x4f,
+ 0x05, 0x84, 0x02, 0xae, 0xe3, 0x6a, 0x8f, 0xa0,
+ 0x06, 0x0b, 0xed, 0x98, 0x7f, 0xd4, 0xd3, 0x1f,
+ 0xeb, 0x34, 0x2c, 0x51, 0xea, 0xc8, 0x48, 0xab,
+ 0xf2, 0x2a, 0x68, 0xa2, 0xfd, 0x3a, 0xce, 0xcc,
+ 0xb5, 0x70, 0x0e, 0x56, 0x08, 0x0c, 0x76, 0x12,
+ 0xbf, 0x72, 0x13, 0x47, 0x9c, 0xb7, 0x5d, 0x87,
+ 0x15, 0xa1, 0x96, 0x29, 0x10, 0x7b, 0x9a, 0xc7,
+ 0xf3, 0x91, 0x78, 0x6f, 0x9d, 0x9e, 0xb2, 0xb1,
+ 0x32, 0x75, 0x19, 0x3d, 0xff, 0x35, 0x8a, 0x7e,
+ 0x6d, 0x54, 0xc6, 0x80, 0xc3, 0xbd, 0x0d, 0x57,
+ 0xdf, 0xf5, 0x24, 0xa9, 0x3e, 0xa8, 0x43, 0xc9,
+ 0xd7, 0x79, 0xd6, 0xf6, 0x7c, 0x22, 0xb9, 0x03,
+ 0xe0, 0x0f, 0xec, 0xde, 0x7a, 0x94, 0xb0, 0xbc,
+ 0xdc, 0xe8, 0x28, 0x50, 0x4e, 0x33, 0x0a, 0x4a,
+ 0xa7, 0x97, 0x60, 0x73, 0x1e, 0x00, 0x62, 0x44,
+ 0x1a, 0xb8, 0x38, 0x82, 0x64, 0x9f, 0x26, 0x41,
+ 0xad, 0x45, 0x46, 0x92, 0x27, 0x5e, 0x55, 0x2f,
+ 0x8c, 0xa3, 0xa5, 0x7d, 0x69, 0xd5, 0x95, 0x3b,
+ 0x07, 0x58, 0xb3, 0x40, 0x86, 0xac, 0x1d, 0xf7,
+ 0x30, 0x37, 0x6b, 0xe4, 0x88, 0xd9, 0xe7, 0x89,
+ 0xe1, 0x1b, 0x83, 0x49, 0x4c, 0x3f, 0xf8, 0xfe,
+ 0x8d, 0x53, 0xaa, 0x90, 0xca, 0xd8, 0x85, 0x61,
+ 0x20, 0x71, 0x67, 0xa4, 0x2d, 0x2b, 0x09, 0x5b,
+ 0xcb, 0x9b, 0x25, 0xd0, 0xbe, 0xe5, 0x6c, 0x52,
+ 0x59, 0xa6, 0x74, 0xd2, 0xe6, 0xf4, 0xb4, 0xc0,
+ 0xd1, 0x66, 0xaf, 0xc2, 0x39, 0x4b, 0x63, 0xb6,
+};
+
+static const uint8_t pi_inv[256] =
+{
+ 0xa5, 0x2d, 0x32, 0x8f, 0x0e, 0x30, 0x38, 0xc0,
+ 0x54, 0xe6, 0x9e, 0x39, 0x55, 0x7e, 0x52, 0x91,
+ 0x64, 0x03, 0x57, 0x5a, 0x1c, 0x60, 0x07, 0x18,
+ 0x21, 0x72, 0xa8, 0xd1, 0x29, 0xc6, 0xa4, 0x3f,
+ 0xe0, 0x27, 0x8d, 0x0c, 0x82, 0xea, 0xae, 0xb4,
+ 0x9a, 0x63, 0x49, 0xe5, 0x42, 0xe4, 0x15, 0xb7,
+ 0xc8, 0x06, 0x70, 0x9d, 0x41, 0x75, 0x19, 0xc9,
+ 0xaa, 0xfc, 0x4d, 0xbf, 0x2a, 0x73, 0x84, 0xd5,
+ 0xc3, 0xaf, 0x2b, 0x86, 0xa7, 0xb1, 0xb2, 0x5b,
+ 0x46, 0xd3, 0x9f, 0xfd, 0xd4, 0x0f, 0x9c, 0x2f,
+ 0x9b, 0x43, 0xef, 0xd9, 0x79, 0xb6, 0x53, 0x7f,
+ 0xc1, 0xf0, 0x23, 0xe7, 0x25, 0x5e, 0xb5, 0x1e,
+ 0xa2, 0xdf, 0xa6, 0xfe, 0xac, 0x22, 0xf9, 0xe2,
+ 0x4a, 0xbc, 0x35, 0xca, 0xee, 0x78, 0x05, 0x6b,
+ 0x51, 0xe1, 0x59, 0xa3, 0xf2, 0x71, 0x56, 0x11,
+ 0x6a, 0x89, 0x94, 0x65, 0x8c, 0xbb, 0x77, 0x3c,
+ 0x7b, 0x28, 0xab, 0xd2, 0x31, 0xde, 0xc4, 0x5f,
+ 0xcc, 0xcf, 0x76, 0x2c, 0xb8, 0xd8, 0x2e, 0x36,
+ 0xdb, 0x69, 0xb3, 0x14, 0x95, 0xbe, 0x62, 0xa1,
+ 0x3b, 0x16, 0x66, 0xe9, 0x5c, 0x6c, 0x6d, 0xad,
+ 0x37, 0x61, 0x4b, 0xb9, 0xe3, 0xba, 0xf1, 0xa0,
+ 0x85, 0x83, 0xda, 0x47, 0xc5, 0xb0, 0x33, 0xfa,
+ 0x96, 0x6f, 0x6e, 0xc2, 0xf6, 0x50, 0xff, 0x5d,
+ 0xa9, 0x8e, 0x17, 0x1b, 0x97, 0x7d, 0xec, 0x58,
+ 0xf7, 0x1f, 0xfb, 0x7c, 0x09, 0x0d, 0x7a, 0x67,
+ 0x45, 0x87, 0xdc, 0xe8, 0x4f, 0x1d, 0x4e, 0x04,
+ 0xeb, 0xf8, 0xf3, 0x3e, 0x3d, 0xbd, 0x8a, 0x88,
+ 0xdd, 0xcd, 0x0b, 0x13, 0x98, 0x02, 0x93, 0x80,
+ 0x90, 0xd0, 0x24, 0x34, 0xcb, 0xed, 0xf4, 0xce,
+ 0x99, 0x10, 0x44, 0x40, 0x92, 0x3a, 0x01, 0x26,
+ 0x12, 0x1a, 0x48, 0x68, 0xf5, 0x81, 0x8b, 0xc7,
+ 0xd6, 0x20, 0x0a, 0x08, 0x00, 0x4c, 0xd7, 0x74,
+};
+
+static const uint8_t kuz_key_table[32][16] =
+{
+ { 0x6e, 0xa2, 0x76, 0x72, 0x6c, 0x48, 0x7a, 0xb8, 0x5d, 0x27, 0xbd, 0x10, 0xdd, 0x84, 0x94, 0x01,},
+ { 0xdc, 0x87, 0xec, 0xe4, 0xd8, 0x90, 0xf4, 0xb3, 0xba, 0x4e, 0xb9, 0x20, 0x79, 0xcb, 0xeb, 0x02,},
+ { 0xb2, 0x25, 0x9a, 0x96, 0xb4, 0xd8, 0x8e, 0x0b, 0xe7, 0x69, 0x04, 0x30, 0xa4, 0x4f, 0x7f, 0x03,},
+ { 0x7b, 0xcd, 0x1b, 0x0b, 0x73, 0xe3, 0x2b, 0xa5, 0xb7, 0x9c, 0xb1, 0x40, 0xf2, 0x55, 0x15, 0x04,},
+ { 0x15, 0x6f, 0x6d, 0x79, 0x1f, 0xab, 0x51, 0x1d, 0xea, 0xbb, 0x0c, 0x50, 0x2f, 0xd1, 0x81, 0x05,},
+ { 0xa7, 0x4a, 0xf7, 0xef, 0xab, 0x73, 0xdf, 0x16, 0x0d, 0xd2, 0x08, 0x60, 0x8b, 0x9e, 0xfe, 0x06,},
+ { 0xc9, 0xe8, 0x81, 0x9d, 0xc7, 0x3b, 0xa5, 0xae, 0x50, 0xf5, 0xb5, 0x70, 0x56, 0x1a, 0x6a, 0x07,},
+ { 0xf6, 0x59, 0x36, 0x16, 0xe6, 0x05, 0x56, 0x89, 0xad, 0xfb, 0xa1, 0x80, 0x27, 0xaa, 0x2a, 0x08,},
+ { 0x98, 0xfb, 0x40, 0x64, 0x8a, 0x4d, 0x2c, 0x31, 0xf0, 0xdc, 0x1c, 0x90, 0xfa, 0x2e, 0xbe, 0x09,},
+ { 0x2a, 0xde, 0xda, 0xf2, 0x3e, 0x95, 0xa2, 0x3a, 0x17, 0xb5, 0x18, 0xa0, 0x5e, 0x61, 0xc1, 0x0a,},
+ { 0x44, 0x7c, 0xac, 0x80, 0x52, 0xdd, 0xd8, 0x82, 0x4a, 0x92, 0xa5, 0xb0, 0x83, 0xe5, 0x55, 0x0b,},
+ { 0x8d, 0x94, 0x2d, 0x1d, 0x95, 0xe6, 0x7d, 0x2c, 0x1a, 0x67, 0x10, 0xc0, 0xd5, 0xff, 0x3f, 0x0c,},
+ { 0xe3, 0x36, 0x5b, 0x6f, 0xf9, 0xae, 0x07, 0x94, 0x47, 0x40, 0xad, 0xd0, 0x08, 0x7b, 0xab, 0x0d,},
+ { 0x51, 0x13, 0xc1, 0xf9, 0x4d, 0x76, 0x89, 0x9f, 0xa0, 0x29, 0xa9, 0xe0, 0xac, 0x34, 0xd4, 0x0e,},
+ { 0x3f, 0xb1, 0xb7, 0x8b, 0x21, 0x3e, 0xf3, 0x27, 0xfd, 0x0e, 0x14, 0xf0, 0x71, 0xb0, 0x40, 0x0f,},
+ { 0x2f, 0xb2, 0x6c, 0x2c, 0x0f, 0x0a, 0xac, 0xd1, 0x99, 0x35, 0x81, 0xc3, 0x4e, 0x97, 0x54, 0x10,},
+ { 0x41, 0x10, 0x1a, 0x5e, 0x63, 0x42, 0xd6, 0x69, 0xc4, 0x12, 0x3c, 0xd3, 0x93, 0x13, 0xc0, 0x11,},
+ { 0xf3, 0x35, 0x80, 0xc8, 0xd7, 0x9a, 0x58, 0x62, 0x23, 0x7b, 0x38, 0xe3, 0x37, 0x5c, 0xbf, 0x12,},
+ { 0x9d, 0x97, 0xf6, 0xba, 0xbb, 0xd2, 0x22, 0xda, 0x7e, 0x5c, 0x85, 0xf3, 0xea, 0xd8, 0x2b, 0x13,},
+ { 0x54, 0x7f, 0x77, 0x27, 0x7c, 0xe9, 0x87, 0x74, 0x2e, 0xa9, 0x30, 0x83, 0xbc, 0xc2, 0x41, 0x14,},
+ { 0x3a, 0xdd, 0x01, 0x55, 0x10, 0xa1, 0xfd, 0xcc, 0x73, 0x8e, 0x8d, 0x93, 0x61, 0x46, 0xd5, 0x15,},
+ { 0x88, 0xf8, 0x9b, 0xc3, 0xa4, 0x79, 0x73, 0xc7, 0x94, 0xe7, 0x89, 0xa3, 0xc5, 0x09, 0xaa, 0x16,},
+ { 0xe6, 0x5a, 0xed, 0xb1, 0xc8, 0x31, 0x09, 0x7f, 0xc9, 0xc0, 0x34, 0xb3, 0x18, 0x8d, 0x3e, 0x17,},
+ { 0xd9, 0xeb, 0x5a, 0x3a, 0xe9, 0x0f, 0xfa, 0x58, 0x34, 0xce, 0x20, 0x43, 0x69, 0x3d, 0x7e, 0x18,},
+ { 0xb7, 0x49, 0x2c, 0x48, 0x85, 0x47, 0x80, 0xe0, 0x69, 0xe9, 0x9d, 0x53, 0xb4, 0xb9, 0xea, 0x19,},
+ { 0x05, 0x6c, 0xb6, 0xde, 0x31, 0x9f, 0x0e, 0xeb, 0x8e, 0x80, 0x99, 0x63, 0x10, 0xf6, 0x95, 0x1a,},
+ { 0x6b, 0xce, 0xc0, 0xac, 0x5d, 0xd7, 0x74, 0x53, 0xd3, 0xa7, 0x24, 0x73, 0xcd, 0x72, 0x01, 0x1b,},
+ { 0xa2, 0x26, 0x41, 0x31, 0x9a, 0xec, 0xd1, 0xfd, 0x83, 0x52, 0x91, 0x03, 0x9b, 0x68, 0x6b, 0x1c,},
+ { 0xcc, 0x84, 0x37, 0x43, 0xf6, 0xa4, 0xab, 0x45, 0xde, 0x75, 0x2c, 0x13, 0x46, 0xec, 0xff, 0x1d,},
+ { 0x7e, 0xa1, 0xad, 0xd5, 0x42, 0x7c, 0x25, 0x4e, 0x39, 0x1c, 0x28, 0x23, 0xe2, 0xa3, 0x80, 0x1e,},
+ { 0x10, 0x03, 0xdb, 0xa7, 0x2e, 0x34, 0x5f, 0xf6, 0x64, 0x3b, 0x95, 0x33, 0x3f, 0x27, 0x14, 0x1f,},
+ { 0x5e, 0xa7, 0xd8, 0x58, 0x1e, 0x14, 0x9b, 0x61, 0xf1, 0x6a, 0xc1, 0x45, 0x9c, 0xed, 0xa8, 0x20,},
+};
+
+static const uint8_t kuz_table[16][256 * 16] =
+{
+ { /* 0 */
+ 0xe9, 0xfb, 0xd5, 0x0c, 0x7a, 0xc0, 0x80, 0x96, 0x19, 0x11, 0x87, 0x93, 0x1b, 0xc9, 0xae, 0xb5,
+ 0x19, 0x08, 0xe0, 0x8c, 0xb2, 0x17, 0x1a, 0xce, 0x7b, 0x32, 0xfc, 0xab, 0xf8, 0xfe, 0xf2, 0x0a,
+ 0xbf, 0xcb, 0xd0, 0xa2, 0x50, 0xb2, 0xdc, 0x77, 0xc0, 0xbd, 0xca, 0xef, 0x4e, 0x88, 0xc7, 0x89,
+ 0x62, 0x41, 0x10, 0x1a, 0x5e, 0x63, 0x42, 0xd6, 0x69, 0xc4, 0x12, 0x3c, 0xd3, 0x93, 0x13, 0xc0,
+ 0x4f, 0x38, 0xe5, 0x22, 0x98, 0x65, 0x46, 0x2f, 0xa2, 0x9e, 0xb1, 0xd7, 0xad, 0xbf, 0x9b, 0x36,
+ 0x38, 0xb3, 0x39, 0x6a, 0x11, 0x6f, 0x4a, 0xe7, 0x3c, 0x70, 0x97, 0x29, 0x2f, 0xcb, 0xc0, 0xef,
+ 0xfb, 0x1f, 0xb7, 0xc2, 0x06, 0x7d, 0x56, 0x4d, 0x08, 0x35, 0x78, 0xfd, 0x96, 0x0f, 0xfe, 0x68,
+ 0x4a, 0x88, 0xf8, 0x9b, 0xc3, 0xa4, 0x79, 0x73, 0xc7, 0x94, 0xe7, 0x89, 0xa3, 0xc5, 0x09, 0xaa,
+ 0xc1, 0x32, 0x3d, 0x8d, 0xe7, 0x07, 0xbb, 0x33, 0xb7, 0x41, 0x72, 0x26, 0x6b, 0x9f, 0xb4, 0xdf,
+ 0x6a, 0x7c, 0x99, 0x8e, 0x18, 0x37, 0x9b, 0xf7, 0x20, 0xd4, 0x23, 0x72, 0x1d, 0x3c, 0x7e, 0x63,
+ 0x0e, 0x5c, 0x9f, 0xfb, 0x95, 0x6b, 0xf3, 0x49, 0x0f, 0x1c, 0x55, 0x9b, 0x7b, 0x42, 0x30, 0x4b,
+ 0x97, 0x02, 0x38, 0x23, 0xcd, 0x75, 0xe7, 0xd2, 0x6e, 0xed, 0x3f, 0x5a, 0x3e, 0xde, 0xdd, 0xe3,
+ 0x0b, 0xec, 0x82, 0x42, 0xce, 0xaa, 0xcc, 0x15, 0x6a, 0x16, 0x03, 0xc5, 0x75, 0x38, 0xa2, 0xd7,
+ 0xa5, 0x12, 0x3b, 0xf8, 0x6a, 0x5b, 0xd3, 0x8d, 0x98, 0x89, 0x04, 0xcf, 0x0d, 0xe1, 0xfa, 0xf7,
+ 0xba, 0x7b, 0xcd, 0x1b, 0x0b, 0x73, 0xe3, 0x2b, 0xa5, 0xb7, 0x9c, 0xb1, 0x40, 0xf2, 0x55, 0x15,
+ 0x33, 0x5f, 0xbb, 0x28, 0xdf, 0xc5, 0x86, 0xf2, 0x56, 0x66, 0x94, 0xec, 0x5a, 0xf3, 0x62, 0x38,
+ 0x31, 0xc1, 0x08, 0x0d, 0x2f, 0xd0, 0x21, 0x6b, 0xd5, 0x62, 0x09, 0x1e, 0x88, 0xa8, 0xe8, 0x60,
+ 0xed, 0x04, 0x70, 0x46, 0x59, 0xea, 0x0d, 0x67, 0xdc, 0x19, 0x7e, 0xb4, 0x7c, 0x7f, 0x79, 0x05,
+ 0xe4, 0x76, 0x41, 0x21, 0x67, 0x55, 0x66, 0xeb, 0x35, 0x0b, 0xe0, 0x83, 0xdb, 0x1c, 0x51, 0x8a,
+ 0x58, 0x6c, 0x9a, 0x55, 0xbf, 0x19, 0xaf, 0xa8, 0xd6, 0xb0, 0x18, 0xe7, 0x2e, 0x03, 0x59, 0x77,
+ 0x1e, 0x26, 0x4e, 0x10, 0x19, 0xc3, 0x82, 0x0b, 0x9d, 0x3c, 0x37, 0x07, 0x24, 0xdf, 0xea, 0xce,
+ 0xc9, 0x0f, 0xb4, 0x19, 0xa1, 0x53, 0x62, 0x12, 0xfe, 0x51, 0x43, 0x68, 0xa5, 0x30, 0xd9, 0x7c,
+ 0xf4, 0x0c, 0x90, 0xca, 0xeb, 0xfd, 0x17, 0xa9, 0xa7, 0x2b, 0x82, 0x1f, 0x84, 0x81, 0x8b, 0x0f,
+ 0xff, 0xe0, 0x12, 0x88, 0x25, 0x57, 0xdb, 0xbc, 0xcd, 0x3d, 0x81, 0xda, 0xf1, 0xb9, 0x29, 0xd8,
+ 0x85, 0xe6, 0x5a, 0xed, 0xb1, 0xc8, 0x31, 0x09, 0x7f, 0xc9, 0xc0, 0x34, 0xb3, 0x18, 0x8d, 0x3e,
+ 0xd3, 0xd6, 0x5f, 0x43, 0x9b, 0xba, 0x6d, 0xe8, 0xa6, 0x65, 0x8d, 0x48, 0xe6, 0x59, 0xe4, 0x02,
+ 0x2b, 0x18, 0xe3, 0x57, 0x15, 0x39, 0x2e, 0x91, 0x8d, 0x56, 0xc7, 0x3e, 0xcb, 0xc1, 0xd5, 0x1e,
+ 0x30, 0x8e, 0xb0, 0xfe, 0x57, 0x3b, 0x93, 0xc6, 0x75, 0x60, 0xa6, 0x67, 0xe1, 0x64, 0xad, 0x4c,
+ 0x17, 0x54, 0x7f, 0x77, 0x27, 0x7c, 0xe9, 0x87, 0x74, 0x2e, 0xa9, 0x30, 0x83, 0xbc, 0xc2, 0x41,
+ 0x12, 0xe4, 0x62, 0xce, 0x7c, 0xbd, 0xd6, 0xdb, 0x11, 0x24, 0xff, 0x6e, 0x8d, 0xc6, 0x50, 0xdd,
+ 0xc3, 0xac, 0x8e, 0xa8, 0x17, 0x12, 0x1c, 0xaa, 0x34, 0x45, 0xef, 0xd4, 0xb9, 0xc4, 0x3e, 0x87,
+ 0x1f, 0x69, 0xf6, 0xe3, 0x61, 0x28, 0x30, 0xa6, 0x3d, 0x3e, 0x98, 0x7e, 0x4d, 0x13, 0xaf, 0xe2,
+ 0x9c, 0xee, 0xba, 0x61, 0x03, 0xdf, 0x2b, 0xc7, 0x04, 0xfb, 0x3c, 0x9f, 0x4b, 0xe6, 0x7f, 0x34,
+ 0x1a, 0xd9, 0xeb, 0x5a, 0x3a, 0xe9, 0x0f, 0xfa, 0x58, 0x34, 0xce, 0x20, 0x43, 0x69, 0x3d, 0x7e,
+ 0x1d, 0xf7, 0x45, 0xc6, 0x91, 0x3d, 0x97, 0x3f, 0xbe, 0x3a, 0x05, 0x8c, 0x9f, 0x48, 0x25, 0xba,
+ 0xb6, 0xb9, 0xe1, 0xc5, 0x6e, 0x0d, 0xb7, 0xfb, 0x29, 0xaf, 0x54, 0xd8, 0xe9, 0xeb, 0xef, 0x06,
+ 0x14, 0x85, 0x74, 0xa1, 0xaf, 0x82, 0xfc, 0xb3, 0x57, 0x28, 0x9b, 0xbb, 0x38, 0x2b, 0x0d, 0x35,
+ 0x51, 0x1e, 0xab, 0x32, 0x81, 0xa6, 0xc4, 0x24, 0x3f, 0xa2, 0x86, 0xd0, 0x89, 0x60, 0x71, 0xf8,
+ 0xd6, 0x66, 0x42, 0xfa, 0xc0, 0x7b, 0x52, 0xb4, 0xc3, 0x6f, 0xdb, 0x16, 0xe8, 0x23, 0x76, 0x9e,
+ 0x56, 0x30, 0x05, 0xae, 0x2a, 0x72, 0x5c, 0xe1, 0xd9, 0xac, 0x4d, 0x7c, 0x55, 0x41, 0x69, 0x3c,
+ 0xee, 0xd5, 0x7b, 0x90, 0xd1, 0x14, 0x18, 0x53, 0xff, 0x1f, 0x4c, 0x3f, 0xc7, 0xe8, 0xb6, 0x71,
+ 0xa0, 0xa2, 0x26, 0x41, 0x31, 0x9a, 0xec, 0xd1, 0xfd, 0x83, 0x52, 0x91, 0x03, 0x9b, 0x68, 0x6b,
+ 0x39, 0xfc, 0x81, 0x99, 0x69, 0x84, 0xf8, 0x4a, 0x9c, 0x72, 0x38, 0x50, 0x46, 0x07, 0x85, 0xc3,
+ 0xac, 0x60, 0x0a, 0x9f, 0x54, 0xe4, 0xb8, 0x01, 0x71, 0x9b, 0x9a, 0xf8, 0xaa, 0x82, 0xd2, 0x78,
+ 0x04, 0xff, 0xa5, 0x4a, 0x23, 0x2a, 0x8d, 0xf1, 0xc5, 0x08, 0xf9, 0x27, 0x67, 0xb6, 0xd7, 0xb0,
+ 0xcf, 0x6e, 0xa2, 0x76, 0x72, 0x6c, 0x48, 0x7a, 0xb8, 0x5d, 0x27, 0xbd, 0x10, 0xdd, 0x84, 0x94,
+ 0x71, 0xea, 0xca, 0x27, 0x5a, 0x35, 0x26, 0xa0, 0xd8, 0xe2, 0x42, 0x2b, 0x37, 0x99, 0x06, 0x31,
+ 0x6e, 0x83, 0x3c, 0xc4, 0x3b, 0x1d, 0x16, 0x06, 0xe5, 0xdc, 0xda, 0x55, 0x7a, 0x8a, 0xa9, 0xd3,
+ 0x75, 0x15, 0x6f, 0x6d, 0x79, 0x1f, 0xab, 0x51, 0x1d, 0xea, 0xbb, 0x0c, 0x50, 0x2f, 0xd1, 0x81,
+ 0x9b, 0xc0, 0x14, 0xfd, 0xa8, 0x0b, 0xb3, 0x02, 0xe2, 0xf5, 0xf7, 0x33, 0x97, 0xc7, 0x67, 0xf0,
+ 0x5d, 0xdc, 0x87, 0xec, 0xe4, 0xd8, 0x90, 0xf4, 0xb3, 0xba, 0x4e, 0xb9, 0x20, 0x79, 0xcb, 0xeb,
+ 0xe8, 0xb4, 0x6d, 0xff, 0x02, 0x2b, 0x32, 0x3b, 0xb9, 0x13, 0x28, 0xea, 0x72, 0x05, 0xeb, 0x99,
+ 0xdb, 0xeb, 0xd6, 0xd7, 0xdd, 0xee, 0xb4, 0xc9, 0xef, 0x75, 0xbc, 0x06, 0x28, 0xf6, 0x89, 0xa1,
+ 0x82, 0xc8, 0xf4, 0x71, 0x1a, 0x1c, 0xa9, 0xcc, 0x99, 0xc7, 0x0b, 0x98, 0x6f, 0x39, 0x95, 0xfa,
+ 0xbe, 0x84, 0x68, 0x51, 0x28, 0x59, 0x6e, 0xda, 0x60, 0xbf, 0x65, 0x96, 0x27, 0x44, 0x82, 0xa5,
+ 0xb8, 0xe5, 0x7e, 0x3e, 0xfb, 0x66, 0x44, 0xb2, 0x26, 0xb3, 0x01, 0x43, 0x92, 0xa9, 0xdf, 0x4d,
+ 0xe7, 0xa7, 0x4a, 0xf7, 0xef, 0xab, 0x73, 0xdf, 0x16, 0x0d, 0xd2, 0x08, 0x60, 0x8b, 0x9e, 0xfe,
+ 0x25, 0x44, 0x7c, 0xac, 0x80, 0x52, 0xdd, 0xd8, 0x82, 0x4a, 0x92, 0xa5, 0xb0, 0x83, 0xe5, 0x55,
+ 0x8b, 0xba, 0xc5, 0x16, 0x24, 0xa3, 0xc2, 0x40, 0x70, 0xd5, 0x95, 0xaf, 0xc8, 0x5a, 0xbd, 0x75,
+ 0x3b, 0x62, 0x32, 0xbc, 0x99, 0x91, 0x5f, 0xd3, 0x1f, 0x76, 0xa5, 0xa2, 0x94, 0x5c, 0x0f, 0x9b,
+ 0x5a, 0xf2, 0x29, 0x70, 0x4f, 0x0c, 0x08, 0x31, 0x55, 0xb4, 0x85, 0x15, 0xfc, 0x58, 0xd3, 0x2f,
+ 0xc7, 0x53, 0x2b, 0xe2, 0x34, 0x38, 0x91, 0x5b, 0xf1, 0x4d, 0x16, 0xf3, 0xde, 0x72, 0xe9, 0x37,
+ 0xef, 0x9a, 0xc3, 0x63, 0xa9, 0xff, 0xaa, 0xfe, 0x5f, 0x1d, 0xe3, 0x46, 0xae, 0x24, 0xf3, 0x5d,
+ 0x32, 0x10, 0x03, 0xdb, 0xa7, 0x2e, 0x34, 0x5f, 0xf6, 0x64, 0x3b, 0x95, 0x33, 0x3f, 0x27, 0x14,
+ 0x6c, 0x1d, 0x8f, 0xe1, 0xcb, 0x08, 0xb1, 0x9f, 0x66, 0xd8, 0x47, 0xa7, 0xa8, 0xd1, 0x23, 0x8b,
+ 0x8e, 0x0a, 0xd8, 0xaf, 0x7f, 0x62, 0xfd, 0x1c, 0x15, 0xdf, 0xc3, 0xf1, 0xc6, 0x20, 0x2f, 0xe9,
+ 0x94, 0xd3, 0x33, 0xf5, 0x45, 0x8b, 0xf2, 0xe6, 0x4d, 0xeb, 0x0d, 0xd1, 0x85, 0x49, 0x12, 0x97,
+ 0x93, 0xfd, 0x9d, 0x69, 0xee, 0x5f, 0x6a, 0x23, 0xab, 0xe5, 0xc6, 0x7d, 0x59, 0x68, 0x0a, 0x53,
+ 0xa3, 0x73, 0x2d, 0x97, 0xb9, 0x64, 0xf9, 0xe5, 0xde, 0x85, 0x60, 0x1a, 0xb8, 0x0c, 0xa7, 0x1f,
+ 0x67, 0xf1, 0x0d, 0xa3, 0x05, 0xa2, 0x7d, 0x8a, 0x0c, 0xce, 0x44, 0x62, 0xdd, 0xe9, 0x81, 0x5c,
+ 0x46, 0x4a, 0xd4, 0x45, 0xa6, 0xda, 0x2d, 0xa3, 0x4b, 0x8c, 0x2f, 0xe0, 0x0a, 0xdc, 0xb3, 0xb9,
+ 0x9d, 0xa1, 0x02, 0x92, 0x7b, 0x34, 0x99, 0x6a, 0xa4, 0xf9, 0x93, 0xe6, 0x22, 0x2a, 0x3a, 0x18,
+ 0xb9, 0xaa, 0xc6, 0xcd, 0x83, 0x8d, 0xf6, 0x1f, 0x86, 0xb1, 0xae, 0x3a, 0xfb, 0x65, 0x9a, 0x61,
+ 0x73, 0x74, 0x79, 0x02, 0xaa, 0x20, 0x81, 0x39, 0x5b, 0xe6, 0xdf, 0xd9, 0xe5, 0xc2, 0x8c, 0x69,
+ 0xdf, 0x14, 0x73, 0x9d, 0xfe, 0xc4, 0x39, 0x38, 0x2a, 0x7d, 0x45, 0x21, 0x4f, 0x40, 0x5e, 0x11,
+ 0xe5, 0x39, 0xf9, 0xd2, 0x1f, 0xbe, 0xd4, 0x46, 0x95, 0x09, 0x4f, 0xfa, 0xb2, 0xd0, 0x14, 0xa6,
+ 0x26, 0x95, 0x77, 0x7a, 0x08, 0xac, 0xc8, 0xec, 0xa1, 0x4c, 0xa0, 0x2e, 0x0b, 0x14, 0x2a, 0x21,
+ 0xde, 0x5b, 0xcb, 0x6e, 0x86, 0x2f, 0x8b, 0x95, 0x8a, 0x7f, 0xea, 0x58, 0x26, 0x8c, 0x1b, 0x3d,
+ 0x80, 0x56, 0x47, 0x54, 0xea, 0x09, 0x0e, 0x55, 0x1a, 0xc3, 0x96, 0x6a, 0xbd, 0x62, 0x1f, 0xa2,
+ 0xdd, 0x8a, 0xc0, 0xb8, 0x0e, 0xd1, 0x9e, 0xa1, 0xa9, 0x79, 0xd8, 0xd3, 0x9d, 0x1b, 0xd4, 0x49,
+ 0x60, 0xdf, 0xa3, 0x3f, 0xae, 0x76, 0xe5, 0x4f, 0xea, 0xc0, 0x8f, 0xce, 0x01, 0xc8, 0x99, 0x98,
+ 0xc5, 0xcd, 0x98, 0xc7, 0xc4, 0x2d, 0x36, 0xc2, 0x72, 0x49, 0x8b, 0x01, 0x0c, 0x29, 0x63, 0x6f,
+ 0x50, 0x51, 0x13, 0xc1, 0xf9, 0x4d, 0x76, 0x89, 0x9f, 0xa0, 0x29, 0xa9, 0xe0, 0xac, 0x34, 0xd4,
+ 0xbb, 0x34, 0x75, 0xe8, 0x73, 0x98, 0x51, 0x86, 0x05, 0xb5, 0x33, 0xc8, 0x29, 0x3e, 0x10, 0x39,
+ 0xb7, 0xf6, 0x59, 0x36, 0x16, 0xe6, 0x05, 0x56, 0x89, 0xad, 0xfb, 0xa1, 0x80, 0x27, 0xaa, 0x2a,
+ 0x0d, 0x8d, 0x94, 0x2d, 0x1d, 0x95, 0xe6, 0x7d, 0x2c, 0x1a, 0x67, 0x10, 0xc0, 0xd5, 0xff, 0x3f,
+ 0x22, 0x6a, 0xd2, 0x30, 0x2b, 0x86, 0x45, 0x1d, 0x64, 0x44, 0x59, 0x09, 0x6c, 0xa2, 0xfd, 0x91,
+ 0xf0, 0xf3, 0x35, 0x80, 0xc8, 0xd7, 0x9a, 0x58, 0x62, 0x23, 0x7b, 0x38, 0xe3, 0x37, 0x5c, 0xbf,
+ 0x8a, 0xf5, 0x7d, 0xe5, 0x5c, 0x48, 0x70, 0xed, 0xd0, 0xd7, 0x3a, 0xd6, 0xa1, 0x96, 0xf8, 0x59,
+ 0x98, 0x11, 0x1f, 0x2b, 0x20, 0xf5, 0xa6, 0x36, 0xc1, 0xf3, 0xc5, 0xb8, 0x2c, 0x50, 0xa8, 0x84,
+ 0x3f, 0x9d, 0x97, 0xf6, 0xba, 0xbb, 0xd2, 0x22, 0xda, 0x7e, 0x5c, 0x85, 0xf3, 0xea, 0xd8, 0x2b,
+ 0xd9, 0x75, 0x65, 0xf2, 0x2d, 0xfb, 0x13, 0x50, 0x6c, 0x71, 0x21, 0xf4, 0xfa, 0xad, 0x03, 0xf9,
+ 0x81, 0x19, 0xff, 0xa7, 0x92, 0xe2, 0xbc, 0xf8, 0xba, 0xc1, 0x39, 0x13, 0xd4, 0xae, 0x5a, 0x8e,
+ 0x3d, 0x03, 0x24, 0xd3, 0x4a, 0xae, 0x75, 0xbb, 0x59, 0x7a, 0xc1, 0x77, 0x21, 0xb1, 0x52, 0x73,
+ 0x9e, 0x70, 0x09, 0x44, 0xf3, 0xca, 0x8c, 0x5e, 0x87, 0xff, 0xa1, 0x6d, 0x99, 0xbd, 0xf5, 0x6c,
+ 0x09, 0x72, 0x31, 0x67, 0x3e, 0xbf, 0x6b, 0x8c, 0xe9, 0x12, 0x9e, 0x37, 0xa7, 0x63, 0x28, 0x8f,
+ 0xd8, 0x3a, 0xdd, 0x01, 0x55, 0x10, 0xa1, 0xfd, 0xcc, 0x73, 0x8e, 0x8d, 0x93, 0x61, 0x46, 0xd5,
+ 0x77, 0x8b, 0xdc, 0x48, 0x89, 0x0a, 0x0c, 0xc8, 0x9e, 0xee, 0x26, 0xfe, 0x82, 0x74, 0x5b, 0xd9,
+ 0x6b, 0x33, 0x21, 0x7d, 0x60, 0xdc, 0x29, 0x5a, 0x80, 0xd6, 0x8c, 0x0b, 0x74, 0xf0, 0x3b, 0x4f,
+ 0xe1, 0xc6, 0x5c, 0x98, 0x3c, 0x94, 0x59, 0xb7, 0x50, 0x01, 0xb6, 0xdd, 0xd5, 0x66, 0xc3, 0x16,
+ 0xad, 0x2f, 0xb2, 0x6c, 0x2c, 0x0f, 0x0a, 0xac, 0xd1, 0x99, 0x35, 0x81, 0xc3, 0x4e, 0x97, 0x54,
+ 0xe0, 0x89, 0xe4, 0x6b, 0x44, 0x7f, 0xeb, 0x1a, 0xf0, 0x03, 0x19, 0xa4, 0xbc, 0xaa, 0x86, 0x3a,
+ 0x66, 0xbe, 0xb5, 0x50, 0x7d, 0x49, 0xcf, 0x27, 0xac, 0xcc, 0xeb, 0x1b, 0xb4, 0x25, 0xc4, 0x70,
+ 0xf8, 0xce, 0xbc, 0x14, 0x8e, 0x83, 0x43, 0x79, 0x2b, 0x33, 0x4a, 0x76, 0x2d, 0x98, 0x31, 0x1c,
+ 0x76, 0xc4, 0x64, 0xbb, 0xf1, 0xe1, 0xbe, 0x65, 0x3e, 0xec, 0x89, 0x87, 0xeb, 0xb8, 0x1e, 0xf5,
+ 0x43, 0xfa, 0xc9, 0xfc, 0xfd, 0x1b, 0x12, 0xff, 0x2e, 0x86, 0x79, 0xbe, 0x04, 0xa6, 0x21, 0x25,
+ 0x72, 0x3b, 0xc1, 0xf1, 0xd2, 0xcb, 0x33, 0x94, 0xfb, 0xe4, 0x70, 0xa0, 0x8c, 0x0e, 0xc9, 0x45,
+ 0xf7, 0xdd, 0x9b, 0x1c, 0x63, 0x03, 0x02, 0x9d, 0x84, 0x2d, 0xb0, 0x94, 0x3f, 0x16, 0x44, 0x7b,
+ 0x4e, 0x77, 0x5d, 0xd1, 0xe0, 0x8e, 0xf4, 0x82, 0x02, 0x9c, 0x1e, 0xae, 0xc4, 0x73, 0xde, 0x1a,
+ 0xdc, 0xc5, 0x78, 0x4b, 0x76, 0x3a, 0x2c, 0x0c, 0x09, 0x7b, 0x77, 0xaa, 0xf4, 0xd7, 0x91, 0x65,
+ 0x48, 0x16, 0x4b, 0xbe, 0x33, 0xb1, 0xde, 0xea, 0x44, 0x90, 0x7a, 0x7b, 0x71, 0x9e, 0x83, 0xf2,
+ 0xda, 0xa4, 0x6e, 0x24, 0xa5, 0x05, 0x06, 0x64, 0x4f, 0x77, 0x13, 0x7f, 0x41, 0x3a, 0xcc, 0x8d,
+ 0x69, 0xad, 0x92, 0x58, 0x90, 0xc9, 0x8e, 0xc3, 0x03, 0xd2, 0x11, 0xf9, 0xa6, 0xab, 0xb1, 0x17,
+ 0xb0, 0xd8, 0xf7, 0xaa, 0xbd, 0x32, 0x9d, 0x93, 0x6f, 0xa3, 0x30, 0x0d, 0x5c, 0x06, 0xb2, 0xee,
+ 0xd5, 0xb7, 0x49, 0x2c, 0x48, 0x85, 0x47, 0x80, 0xe0, 0x69, 0xe9, 0x9d, 0x53, 0xb4, 0xb9, 0xea,
+ 0xf6, 0x92, 0x23, 0xef, 0x1b, 0xe8, 0xb0, 0x30, 0x24, 0x2f, 0x1f, 0xed, 0x56, 0xda, 0x01, 0x57,
+ 0x7b, 0x49, 0xf0, 0x96, 0xec, 0x74, 0x58, 0x18, 0x12, 0xf6, 0xee, 0x97, 0x2b, 0x6d, 0xe1, 0xca,
+ 0x41, 0x64, 0x7a, 0xd9, 0x0d, 0x0e, 0xb5, 0x66, 0xad, 0x82, 0xe4, 0x4c, 0xd6, 0xfd, 0xab, 0x7d,
+ 0xcb, 0x91, 0x07, 0x3c, 0x51, 0x46, 0xc5, 0x8b, 0x7d, 0x55, 0xde, 0x9a, 0x77, 0x6b, 0x53, 0x24,
+ 0x95, 0x9c, 0x8b, 0x06, 0x3d, 0x60, 0x40, 0x4b, 0xed, 0xe9, 0xa2, 0xa8, 0xec, 0x85, 0x57, 0xbb,
+ 0xaa, 0x01, 0x1c, 0xf0, 0x87, 0xdb, 0x92, 0x69, 0x37, 0x97, 0xfe, 0x2d, 0x1f, 0x6f, 0x8f, 0x90,
+ 0xe6, 0xe8, 0xf2, 0x04, 0x97, 0x40, 0xc1, 0x72, 0xb6, 0x0f, 0x7d, 0x71, 0x09, 0x47, 0xdb, 0xd2,
+ 0x37, 0xa0, 0x1e, 0x62, 0xfc, 0xef, 0x0b, 0x03, 0x93, 0x6e, 0x6d, 0xcb, 0x3d, 0x45, 0xb5, 0x88,
+ 0x21, 0xbb, 0xd9, 0xe6, 0xa3, 0x78, 0x50, 0x29, 0x47, 0x42, 0x6b, 0x82, 0xd7, 0x35, 0x32, 0xe5,
+ 0x42, 0xb5, 0x71, 0x0f, 0x85, 0xf0, 0xa0, 0x52, 0x8e, 0x84, 0xd6, 0xc7, 0x6d, 0x6a, 0x64, 0x09,
+ 0xd7, 0x29, 0xfa, 0x09, 0xb8, 0x90, 0xe0, 0x19, 0x63, 0x6d, 0x74, 0x6f, 0x81, 0xef, 0x33, 0xb2,
+ 0xc2, 0xe3, 0x36, 0x5b, 0x6f, 0xf9, 0xae, 0x07, 0x94, 0x47, 0x40, 0xad, 0xd0, 0x08, 0x7b, 0xab,
+ 0x74, 0x5a, 0xd7, 0x9e, 0x01, 0xf4, 0x19, 0xfc, 0xbd, 0xe8, 0x14, 0x75, 0x39, 0xe3, 0x94, 0xad,
+ 0xe2, 0x17, 0x57, 0x4e, 0xb4, 0x6a, 0x4c, 0x83, 0x73, 0x07, 0x84, 0x56, 0x6e, 0xf1, 0x0c, 0x62,
+ 0x91, 0x63, 0x2e, 0x4c, 0x1e, 0x4a, 0xcd, 0xba, 0x28, 0xe1, 0x5b, 0x8f, 0x8b, 0x33, 0x80, 0x0b,
+ 0x23, 0x25, 0x6a, 0xc3, 0x53, 0x6d, 0xf7, 0xb0, 0xc4, 0x46, 0xf6, 0x70, 0x05, 0x6e, 0xb8, 0xbd,
+ 0xc0, 0x7d, 0x85, 0x7e, 0x9f, 0xec, 0x09, 0x9e, 0x17, 0x43, 0xdd, 0x5f, 0x02, 0x53, 0xf1, 0xf3,
+ 0x64, 0x20, 0x06, 0x75, 0x8d, 0x5c, 0x68, 0xbe, 0x2f, 0xc8, 0x76, 0xe9, 0x66, 0x7e, 0x4e, 0x28,
+ 0x0f, 0x13, 0x27, 0x08, 0xed, 0x80, 0x41, 0xe4, 0xaf, 0x1e, 0xfa, 0xe2, 0x12, 0x8e, 0x75, 0x67,
+ 0x63, 0x0e, 0xa8, 0xe9, 0x26, 0x88, 0xf0, 0x7b, 0xc9, 0xc6, 0xbd, 0x45, 0xba, 0x5f, 0x56, 0xec,
+ 0xa8, 0x9f, 0xaf, 0xd5, 0x77, 0xce, 0x35, 0xf0, 0xb4, 0x93, 0x63, 0xdf, 0xcd, 0x34, 0x05, 0xc8,
+ 0x55, 0xe1, 0x0e, 0x78, 0xa2, 0x8c, 0x49, 0xd5, 0xfa, 0xaa, 0x7f, 0xf7, 0xee, 0xd6, 0xa6, 0x48,
+ 0xbd, 0x55, 0x63, 0x87, 0xa0, 0xa7, 0x7b, 0xee, 0x43, 0xb9, 0x57, 0x1d, 0x9c, 0xd3, 0x4d, 0xd1,
+ 0x9a, 0x8f, 0xac, 0x0e, 0xd0, 0xe0, 0x01, 0xaf, 0x42, 0xf7, 0x58, 0x4a, 0xfe, 0x0b, 0x22, 0xdc,
+ 0x03, 0xd1, 0x0b, 0xd6, 0x88, 0xfe, 0x15, 0x34, 0x23, 0x06, 0x32, 0x8b, 0xbb, 0x97, 0xcf, 0x74,
+ 0xc8, 0x40, 0x0c, 0xea, 0xd9, 0xb8, 0xd0, 0xbf, 0x5e, 0x53, 0xec, 0x11, 0xcc, 0xfc, 0x9c, 0x50,
+ 0xc4, 0x82, 0x20, 0x34, 0xbc, 0xc6, 0x84, 0x6f, 0xd2, 0x4b, 0x24, 0x78, 0x65, 0xe5, 0x26, 0x43,
+ 0x6d, 0x52, 0x37, 0x12, 0xb3, 0xe3, 0x03, 0x32, 0xc6, 0xda, 0xe8, 0xde, 0xc1, 0x1d, 0x66, 0xa7,
+ 0x92, 0xb2, 0x25, 0x9a, 0x96, 0xb4, 0xd8, 0x8e, 0x0b, 0xe7, 0x69, 0x04, 0x30, 0xa4, 0x4f, 0x7f,
+ 0x49, 0x59, 0xf3, 0x4d, 0x4b, 0x5a, 0x6c, 0x47, 0xe4, 0x92, 0xd5, 0x02, 0x18, 0x52, 0xc6, 0xde,
+ 0x9f, 0x3f, 0xb1, 0xb7, 0x8b, 0x21, 0x3e, 0xf3, 0x27, 0xfd, 0x0e, 0x14, 0xf0, 0x71, 0xb0, 0x40,
+ 0x44, 0xd4, 0x67, 0x60, 0x56, 0xcf, 0x8a, 0x3a, 0xc8, 0x88, 0xb2, 0x12, 0xd8, 0x87, 0x39, 0xe1,
+ 0x2d, 0x79, 0xf5, 0x38, 0xc6, 0x06, 0x04, 0xf9, 0xcb, 0x5a, 0xa3, 0xeb, 0x7e, 0x2c, 0x88, 0xf6,
+ 0x2f, 0xe7, 0x46, 0x1d, 0x36, 0x13, 0xa3, 0x60, 0x48, 0x5e, 0x3e, 0x19, 0xac, 0x77, 0x02, 0xae,
+ 0x36, 0xef, 0xa6, 0x91, 0x84, 0x04, 0xb9, 0xae, 0x33, 0x6c, 0xc2, 0xb2, 0x54, 0x89, 0xf0, 0xa4,
+ 0x15, 0xca, 0xcc, 0x52, 0xd7, 0x69, 0x4e, 0x1e, 0xf7, 0x2a, 0x34, 0xc2, 0x51, 0xe7, 0x48, 0x19,
+ 0x18, 0x47, 0x58, 0x7f, 0xca, 0xfc, 0xa8, 0x63, 0xdb, 0x30, 0x53, 0xd2, 0x91, 0x32, 0xb7, 0x26,
+ 0x70, 0xa5, 0x72, 0xd4, 0x22, 0xde, 0x94, 0x0d, 0x78, 0xe0, 0xed, 0x52, 0x5e, 0x55, 0x43, 0x1d,
+ 0xfe, 0xaf, 0xaa, 0x7b, 0x5d, 0xbc, 0x69, 0x11, 0x6d, 0x3f, 0x2e, 0xa3, 0x98, 0x75, 0x6c, 0xf4,
+ 0x2e, 0xa8, 0xfe, 0xee, 0x4e, 0xf8, 0x11, 0xcd, 0xe8, 0x5c, 0x91, 0x60, 0xc5, 0xbb, 0x47, 0x82,
+ 0x5c, 0x93, 0x3f, 0x1f, 0x9c, 0x33, 0x22, 0x59, 0x13, 0xb8, 0xe1, 0xc0, 0x49, 0xb5, 0x8e, 0xc7,
+ 0xa1, 0xed, 0x9e, 0xb2, 0x49, 0x71, 0x5e, 0x7c, 0x5d, 0x81, 0xfd, 0xe8, 0x6a, 0x57, 0x2d, 0x47,
+ 0xa6, 0xc3, 0x30, 0x2e, 0xe2, 0xa5, 0xc6, 0xb9, 0xbb, 0x8f, 0x36, 0x44, 0xb6, 0x76, 0x35, 0x83,
+ 0xea, 0x2a, 0xde, 0xda, 0xf2, 0x3e, 0x95, 0xa2, 0x3a, 0x17, 0xb5, 0x18, 0xa0, 0x5e, 0x61, 0xc1,
+ 0x1b, 0x96, 0x53, 0xa9, 0x42, 0x02, 0xbd, 0x57, 0xf8, 0x36, 0x61, 0x59, 0x2a, 0xa5, 0x78, 0x52,
+ 0x90, 0x2c, 0x96, 0xbf, 0x66, 0xa1, 0x7f, 0x17, 0x88, 0xe3, 0xf4, 0xf6, 0xe2, 0xff, 0xc5, 0x27,
+ 0xa4, 0x5d, 0x83, 0x0b, 0x12, 0xb0, 0x61, 0x20, 0x38, 0x8b, 0xab, 0xb6, 0x64, 0x2d, 0xbf, 0xdb,
+ 0x68, 0xe2, 0x2a, 0xab, 0xe8, 0x22, 0x3c, 0x6e, 0xa3, 0xd0, 0xbe, 0x80, 0xcf, 0x67, 0xf4, 0x3b,
+ 0x57, 0x7f, 0xbd, 0x5d, 0x52, 0x99, 0xee, 0x4c, 0x79, 0xae, 0xe2, 0x05, 0x3c, 0x8d, 0x2c, 0x10,
+ 0xfd, 0x7e, 0xa1, 0xad, 0xd5, 0x42, 0x7c, 0x25, 0x4e, 0x39, 0x1c, 0x28, 0x23, 0xe2, 0xa3, 0x80,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x35, 0x3e, 0xad, 0x47, 0x0c, 0xfa, 0xac, 0x9a, 0x10, 0x6a, 0xf0, 0x39, 0xef, 0x1e, 0x3f, 0xd0,
+ 0x4b, 0xc7, 0x40, 0x68, 0xbb, 0x4f, 0xcb, 0xde, 0x67, 0x96, 0x48, 0xf0, 0xca, 0x09, 0x4c, 0x86,
+ 0x47, 0x05, 0x6c, 0xb6, 0xde, 0x31, 0x9f, 0x0e, 0xeb, 0x8e, 0x80, 0x99, 0x63, 0x10, 0xf6, 0x95,
+ 0xa2, 0x3c, 0x95, 0x64, 0xc1, 0x8f, 0x4b, 0x48, 0x7e, 0x87, 0xcf, 0x63, 0xd1, 0xc0, 0xe2, 0x33,
+ 0x83, 0x87, 0x4c, 0x82, 0x62, 0xf7, 0x1b, 0x61, 0x39, 0xc5, 0xa4, 0xe1, 0x06, 0xf5, 0xd0, 0xd6,
+ 0x7c, 0x67, 0x5e, 0x0a, 0x47, 0xa0, 0xc0, 0xdd, 0xf4, 0xf8, 0x25, 0x3b, 0xf7, 0x4c, 0xf9, 0x0e,
+ 0xd2, 0x99, 0xe7, 0xb0, 0xe3, 0x51, 0xdf, 0x45, 0x06, 0x67, 0x22, 0x31, 0x8f, 0x95, 0xa1, 0x2e,
+ 0x13, 0xab, 0xda, 0x3d, 0x04, 0x56, 0x64, 0x76, 0xb1, 0x26, 0x50, 0x17, 0xe4, 0x0a, 0x15, 0xf1,
+ 0x7e, 0xf9, 0xed, 0x2f, 0xb7, 0xb5, 0x67, 0x44, 0x77, 0xfc, 0xb8, 0xc9, 0x25, 0x17, 0x73, 0x56,
+ 0x3e, 0xd2, 0x2f, 0x05, 0xc2, 0x50, 0x60, 0x8f, 0x7a, 0x7c, 0xf3, 0xfc, 0x9a, 0x26, 0x9d, 0x07,
+ 0x7a, 0x06, 0x48, 0x65, 0x94, 0x9f, 0xea, 0xb5, 0xb2, 0xf4, 0x41, 0xee, 0x42, 0xa1, 0xa4, 0xe6,
+ 0x84, 0xa9, 0xe2, 0x1e, 0xc9, 0x23, 0x83, 0xa4, 0xdf, 0xcb, 0x6f, 0x4d, 0xda, 0xd4, 0xc8, 0x12,
+ 0x16, 0x1b, 0xc7, 0x84, 0x5f, 0x97, 0x5b, 0x2a, 0xd4, 0x2c, 0x06, 0x49, 0xea, 0x70, 0x87, 0x6d,
+ 0xd1, 0x48, 0xec, 0x66, 0x6b, 0xaf, 0xca, 0x71, 0x25, 0x61, 0x10, 0xba, 0x34, 0x02, 0x6e, 0x5a,
+ 0xb1, 0x97, 0x4f, 0x59, 0xc5, 0xd9, 0x2f, 0x3e, 0xcf, 0xa1, 0x9f, 0x74, 0x35, 0xca, 0xf7, 0xc2,
+ 0x0c, 0xc2, 0x2c, 0xde, 0x65, 0x7e, 0x54, 0xd0, 0x8c, 0x18, 0xc8, 0x69, 0xa9, 0x19, 0xba, 0x13,
+ 0x29, 0x86, 0x50, 0x72, 0xe5, 0x2c, 0x89, 0x08, 0x0e, 0x52, 0x5a, 0xcc, 0x19, 0x9a, 0x5f, 0x46,
+ 0x06, 0x61, 0x16, 0x6f, 0xd3, 0x3f, 0x2a, 0x68, 0x46, 0x0c, 0x64, 0xd5, 0xb5, 0xed, 0x5d, 0xe8,
+ 0x2c, 0x36, 0x4d, 0xcb, 0xbe, 0xed, 0xb6, 0x54, 0x6b, 0x58, 0x0c, 0x92, 0x17, 0xe0, 0xcd, 0xda,
+ 0x2a, 0x57, 0x5b, 0xa4, 0x6d, 0xd2, 0x9c, 0x3c, 0x2d, 0x54, 0x68, 0x47, 0xa2, 0x0d, 0x90, 0x32,
+ 0xcd, 0xf0, 0x11, 0x53, 0x82, 0x79, 0xef, 0xe3, 0x3b, 0x59, 0xba, 0x4f, 0xc2, 0x86, 0x0e, 0xcc,
+ 0x07, 0x2e, 0xae, 0x9c, 0xab, 0xd4, 0x98, 0xc5, 0xe6, 0x0e, 0xcb, 0xac, 0xdc, 0x21, 0x18, 0xc4,
+ 0x10, 0x7a, 0xd1, 0xeb, 0x8c, 0xa8, 0x71, 0x42, 0x92, 0x20, 0x62, 0x9c, 0x5f, 0x9d, 0xda, 0x85,
+ 0x08, 0x3d, 0x89, 0x94, 0x46, 0x54, 0xd9, 0x21, 0x49, 0x10, 0x31, 0x4e, 0xce, 0xaf, 0x6d, 0xa3,
+ 0xf9, 0x81, 0x04, 0xe7, 0xf6, 0x68, 0xf1, 0xd4, 0x8b, 0x31, 0xe5, 0x0f, 0x44, 0x54, 0x74, 0x30,
+ 0x11, 0x35, 0x69, 0x18, 0xf4, 0x43, 0xc3, 0xef, 0x32, 0x22, 0xcd, 0xe5, 0x36, 0x51, 0x9f, 0xa9,
+ 0x28, 0xc9, 0xe8, 0x81, 0x9d, 0xc7, 0x3b, 0xa5, 0xae, 0x50, 0xf5, 0xb5, 0x70, 0x56, 0x1a, 0x6a,
+ 0xeb, 0x65, 0x66, 0x29, 0x8a, 0xd5, 0x27, 0x0f, 0x9a, 0x15, 0x1a, 0x61, 0xc9, 0x92, 0x24, 0xed,
+ 0x87, 0x78, 0xe9, 0xc8, 0x41, 0xdd, 0x96, 0x90, 0xfc, 0xcd, 0x5d, 0xc6, 0x61, 0x43, 0x07, 0x66,
+ 0xf1, 0xbc, 0x8d, 0x73, 0xb0, 0x3c, 0x28, 0xf5, 0xc2, 0x21, 0xd4, 0x41, 0x8a, 0xfb, 0x19, 0x93,
+ 0xc6, 0x1c, 0x93, 0x11, 0x4c, 0xd3, 0x23, 0xf6, 0x51, 0x4f, 0xb9, 0x8a, 0xb7, 0xbe, 0xac, 0x1b,
+ 0xb5, 0x68, 0xea, 0x13, 0xe6, 0xf3, 0xa2, 0xcf, 0x0a, 0xa9, 0x66, 0x53, 0x52, 0x7c, 0x20, 0x72,
+ 0x6f, 0xcc, 0x84, 0x37, 0x43, 0xf6, 0xa4, 0xab, 0x45, 0xde, 0x75, 0x2c, 0x13, 0x46, 0xec, 0xff,
+ 0xcc, 0xbf, 0xa9, 0xa0, 0xfa, 0x92, 0x5d, 0x4e, 0x9b, 0x5b, 0x15, 0x36, 0xab, 0x4a, 0x4b, 0xe0,
+ 0x34, 0x71, 0x15, 0xb4, 0x74, 0x11, 0x1e, 0x37, 0xb0, 0x68, 0x5f, 0x40, 0x86, 0xd2, 0x7a, 0xfc,
+ 0x1c, 0xb8, 0xfd, 0x35, 0xe9, 0xd6, 0x25, 0x92, 0x1e, 0x38, 0xaa, 0xf5, 0xf6, 0x84, 0x60, 0x96,
+ 0x4d, 0xa6, 0x56, 0x07, 0x68, 0x70, 0xe1, 0xb6, 0x21, 0x9a, 0x2c, 0x25, 0x7f, 0xe4, 0x11, 0x6e,
+ 0xf3, 0x22, 0x3e, 0x56, 0x40, 0x29, 0x8f, 0x6c, 0x41, 0x25, 0x49, 0xb3, 0x58, 0xa0, 0x93, 0xcb,
+ 0x96, 0x4d, 0x80, 0xd0, 0xb5, 0x9e, 0x55, 0x7f, 0xce, 0xef, 0x90, 0x23, 0x57, 0x12, 0x98, 0xcf,
+ 0x05, 0xb0, 0x1d, 0xb9, 0x5b, 0xc1, 0x3f, 0x5c, 0x65, 0x0a, 0x56, 0x5e, 0x0e, 0x7a, 0x92, 0x9c,
+ 0x61, 0x90, 0x1b, 0xcc, 0xd6, 0x9d, 0x57, 0xe2, 0x4a, 0xc2, 0x20, 0xb7, 0x68, 0x04, 0xdc, 0xb4,
+ 0x59, 0x23, 0x22, 0xa6, 0xc7, 0xf2, 0x1d, 0x05, 0x76, 0xb2, 0xb7, 0x9e, 0x47, 0xcf, 0x1c, 0x5b,
+ 0x86, 0x37, 0x51, 0x3b, 0x39, 0x36, 0x24, 0x3d, 0x5c, 0xcf, 0xf2, 0xbf, 0x08, 0x8f, 0x42, 0x4a,
+ 0x88, 0x6b, 0xce, 0xc0, 0xac, 0x5d, 0xd7, 0x74, 0x53, 0xd3, 0xa7, 0x24, 0x73, 0xcd, 0x72, 0x01,
+ 0xb3, 0x09, 0xfc, 0x7c, 0x35, 0xcc, 0x88, 0xa7, 0x4c, 0xa5, 0x02, 0x86, 0xe7, 0x91, 0x7d, 0x9a,
+ 0x89, 0x24, 0x76, 0x33, 0xd4, 0xb6, 0x65, 0xd9, 0xf3, 0xd1, 0x08, 0x5d, 0x1a, 0x01, 0x37, 0x2d,
+ 0xfc, 0x31, 0x19, 0x5e, 0xad, 0xa9, 0xce, 0x88, 0xee, 0x3b, 0xb3, 0x51, 0x4a, 0x2e, 0xe6, 0xac,
+ 0xab, 0x4e, 0xa4, 0x03, 0xff, 0x30, 0x20, 0xc4, 0x97, 0x95, 0x51, 0x54, 0x76, 0xa3, 0xca, 0xbc,
+ 0x53, 0x80, 0x18, 0x17, 0x71, 0xb3, 0x63, 0xbd, 0xbc, 0xa6, 0x1b, 0x22, 0x5b, 0x3b, 0xfb, 0xa0,
+ 0xb4, 0x27, 0x52, 0xe0, 0x9e, 0x18, 0x10, 0x62, 0xaa, 0xab, 0xc9, 0x2a, 0x3b, 0xb0, 0x65, 0x5e,
+ 0xe3, 0x58, 0xef, 0xbd, 0xcc, 0x81, 0xfe, 0x2e, 0xd3, 0x05, 0x2b, 0x2f, 0x07, 0x3d, 0x49, 0x4e,
+ 0xce, 0x21, 0x1a, 0x85, 0x0a, 0x87, 0xfa, 0xd7, 0x18, 0x5f, 0x88, 0xc4, 0x79, 0x11, 0xc1, 0xb8,
+ 0x52, 0xcf, 0xa0, 0xe4, 0x09, 0x58, 0xd1, 0x10, 0x1c, 0xa4, 0xb4, 0x5b, 0x32, 0xf7, 0xbe, 0x8c,
+ 0x8c, 0x94, 0x6b, 0x8a, 0x8f, 0x77, 0x5a, 0x85, 0x96, 0xdb, 0x5e, 0x03, 0x14, 0x7b, 0xa5, 0xb1,
+ 0x3a, 0x2d, 0x8a, 0x4f, 0xe1, 0x7a, 0xed, 0x7e, 0xbf, 0x74, 0x0a, 0xdb, 0xfd, 0x90, 0x4a, 0xb7,
+ 0xca, 0xde, 0xbf, 0xcf, 0x29, 0xad, 0x77, 0x26, 0xdd, 0x57, 0x71, 0xe3, 0x1e, 0xa7, 0x16, 0x08,
+ 0x54, 0xae, 0xb6, 0x8b, 0xda, 0x67, 0xfb, 0x78, 0x5a, 0xa8, 0xd0, 0x8e, 0x87, 0x1a, 0xe3, 0x64,
+ 0xa7, 0x8c, 0x88, 0xdd, 0x9a, 0x4e, 0x74, 0x14, 0x1b, 0x8d, 0x99, 0x3d, 0xdf, 0xba, 0x70, 0xaf,
+ 0x99, 0x5e, 0xa7, 0xd8, 0x58, 0x1e, 0x14, 0x9b, 0x61, 0xf1, 0x6a, 0xc1, 0x45, 0x9c, 0xed, 0xa8,
+ 0x0a, 0xa3, 0x3a, 0xb1, 0xb6, 0x41, 0x7e, 0xb8, 0xca, 0x14, 0xac, 0xbc, 0x1c, 0xf4, 0xe7, 0xfb,
+ 0x40, 0x2b, 0xc2, 0x2a, 0x75, 0xe5, 0x07, 0xcb, 0x0d, 0x80, 0x4b, 0x35, 0xbf, 0x31, 0xee, 0x51,
+ 0x02, 0x9e, 0xb3, 0x25, 0xf0, 0x15, 0xa7, 0x99, 0x83, 0x04, 0x9d, 0xf2, 0xd2, 0x5b, 0x8a, 0x58,
+ 0x5b, 0xbd, 0x91, 0x83, 0x37, 0xe7, 0xba, 0x9c, 0xf5, 0xb6, 0x2a, 0x6c, 0x95, 0x94, 0x96, 0x03,
+ 0xbc, 0x1a, 0xdb, 0x74, 0xd8, 0x4c, 0xc9, 0x43, 0xe3, 0xbb, 0xf8, 0x64, 0xf5, 0x1f, 0x08, 0xfd,
+ 0x78, 0x98, 0xfb, 0x40, 0x64, 0x8a, 0x4d, 0x2c, 0x31, 0xf0, 0xdc, 0x1c, 0x90, 0xfa, 0x2e, 0xbe,
+ 0x79, 0xd7, 0x43, 0xb3, 0x1c, 0x61, 0xff, 0x81, 0x91, 0xf2, 0x73, 0x65, 0xf9, 0x36, 0x6b, 0x92,
+ 0xf5, 0x43, 0x28, 0x39, 0x93, 0x16, 0xa5, 0x04, 0x07, 0x29, 0x2d, 0x66, 0xed, 0x4d, 0xce, 0x23,
+ 0xa9, 0xd0, 0x17, 0x26, 0x0f, 0x25, 0x87, 0x5d, 0x14, 0x91, 0xcc, 0xa6, 0xa4, 0xf8, 0x40, 0xe4,
+ 0xec, 0x4b, 0xc8, 0xb5, 0x21, 0x01, 0xbf, 0xca, 0x7c, 0x1b, 0xd1, 0xcd, 0x15, 0xb3, 0x3c, 0x29,
+ 0x7d, 0x28, 0xe6, 0xf9, 0x3f, 0x4b, 0x72, 0x70, 0x54, 0xfa, 0x8a, 0x42, 0x9e, 0x80, 0xbc, 0x22,
+ 0x45, 0x9b, 0xdf, 0x93, 0x2e, 0x24, 0x38, 0x97, 0x68, 0x8a, 0x1d, 0x6b, 0xb1, 0x4b, 0x7c, 0xcd,
+ 0x3c, 0x4c, 0x9c, 0x20, 0x32, 0x45, 0xc7, 0x16, 0xf9, 0x78, 0x6e, 0x0e, 0x48, 0x7d, 0x17, 0x5f,
+ 0x65, 0x6f, 0xbe, 0x86, 0xf5, 0xb7, 0xda, 0x13, 0x8f, 0xca, 0xd9, 0x90, 0x0f, 0xb2, 0x0b, 0x04,
+ 0x01, 0x4f, 0xb8, 0xf3, 0x78, 0xeb, 0xb2, 0xad, 0xa0, 0x02, 0xaf, 0x79, 0x69, 0xcc, 0x45, 0x2c,
+ 0x24, 0x0b, 0xc4, 0x5f, 0xf8, 0xb9, 0x6f, 0x75, 0x22, 0x48, 0x3d, 0xdc, 0xd9, 0x4f, 0xa0, 0x79,
+ 0x5f, 0x42, 0x34, 0xc9, 0x14, 0xcd, 0x37, 0x6d, 0x30, 0xbe, 0xd3, 0x4b, 0xf2, 0x22, 0x41, 0xb3,
+ 0x7f, 0xb6, 0x55, 0xdc, 0xcf, 0x5e, 0xd5, 0xe9, 0xd7, 0xfe, 0x17, 0xb0, 0x4c, 0xdb, 0x36, 0x7a,
+ 0x20, 0xf4, 0x61, 0x15, 0xdb, 0x93, 0xe2, 0x84, 0xe7, 0x40, 0xc4, 0xfb, 0xbe, 0xf9, 0x77, 0xc9,
+ 0xae, 0xfe, 0xb9, 0xba, 0xa4, 0xf1, 0x1f, 0x98, 0xf2, 0x9f, 0x07, 0x0a, 0x78, 0xd9, 0x58, 0x20,
+ 0x5e, 0x0d, 0x8c, 0x3a, 0x6c, 0x26, 0x85, 0xc0, 0x90, 0xbc, 0x7c, 0x32, 0x9b, 0xee, 0x04, 0x9f,
+ 0xaf, 0xb1, 0x01, 0x49, 0xdc, 0x1a, 0xad, 0x35, 0x52, 0x9d, 0xa8, 0x73, 0x11, 0x15, 0x1d, 0x0c,
+ 0xd0, 0x07, 0x54, 0x95, 0x13, 0x44, 0x78, 0xdc, 0x85, 0x63, 0xbf, 0xc3, 0x5d, 0xce, 0x2b, 0x76,
+ 0xb2, 0x46, 0x44, 0x8f, 0x4d, 0x27, 0x3a, 0x0a, 0xec, 0xa7, 0xad, 0xff, 0x8e, 0x5d, 0x38, 0xb6,
+ 0x8f, 0x45, 0x60, 0x5c, 0x07, 0x89, 0x4f, 0xb1, 0xb5, 0xdd, 0x6c, 0x88, 0xaf, 0xec, 0x6a, 0xc5,
+ 0x27, 0xda, 0xcf, 0x89, 0x70, 0x47, 0x7a, 0x41, 0x01, 0x4e, 0x0f, 0x57, 0x62, 0xd8, 0x6f, 0x0d,
+ 0x8d, 0xdb, 0xd3, 0x79, 0xf7, 0x9c, 0xe8, 0x28, 0x36, 0xd9, 0xf1, 0x7a, 0x7d, 0xb7, 0xe0, 0x9d,
+ 0x4c, 0xe9, 0xee, 0xf4, 0x10, 0x9b, 0x53, 0x1b, 0x81, 0x98, 0x83, 0x5c, 0x16, 0x28, 0x54, 0x42,
+ 0xd4, 0xf8, 0xf1, 0xdf, 0x30, 0x6e, 0xf5, 0x2d, 0x40, 0x6b, 0x46, 0xe4, 0x3a, 0x78, 0xfc, 0xc6,
+ 0xfa, 0x50, 0x0f, 0x31, 0x7e, 0x96, 0xe4, 0xe0, 0xa8, 0x37, 0xd7, 0x84, 0xff, 0xc3, 0xbb, 0x44,
+ 0xf2, 0x6d, 0x86, 0xa5, 0x38, 0xc2, 0x3d, 0xc1, 0xe1, 0x27, 0xe6, 0xca, 0x31, 0x6c, 0xd6, 0xe7,
+ },
+ { /* 1 */
+ 0x2f, 0x36, 0x58, 0xea, 0xa2, 0x0c, 0x25, 0xcf, 0x7c, 0xd9, 0x9e, 0x49, 0x92, 0xd3, 0x50, 0x36,
+ 0x48, 0x33, 0xd6, 0x3a, 0x7e, 0x8c, 0x82, 0xb8, 0xf4, 0x6c, 0x87, 0xe4, 0x0b, 0xa6, 0x9f, 0x33,
+ 0x5c, 0x9c, 0xe9, 0x76, 0x65, 0xa2, 0xaf, 0xd9, 0x01, 0x72, 0x0a, 0x54, 0xa8, 0x81, 0x94, 0x9c,
+ 0x0c, 0x65, 0x15, 0x85, 0x09, 0x1a, 0x1b, 0x9e, 0x53, 0x0a, 0x7b, 0xd1, 0x61, 0x1d, 0xb8, 0x65,
+ 0x3b, 0x99, 0x67, 0xa6, 0xb9, 0x22, 0x08, 0xae, 0x89, 0xc7, 0x13, 0xf9, 0x31, 0xf4, 0x5b, 0x99,
+ 0x62, 0x5e, 0xf1, 0xc3, 0xaa, 0x6a, 0x3d, 0xfe, 0x24, 0x53, 0xab, 0x81, 0xc1, 0x0c, 0xbd, 0x5e,
+ 0xe7, 0xef, 0x6c, 0x2a, 0x3c, 0xc2, 0x44, 0x6e, 0x67, 0x75, 0x70, 0x59, 0xb2, 0xd6, 0x51, 0xef,
+ 0x42, 0x85, 0x28, 0x1c, 0x92, 0x9b, 0x75, 0x69, 0x6f, 0x63, 0x20, 0xbc, 0xbb, 0x54, 0x7b, 0x85,
+ 0x61, 0xd6, 0x65, 0x73, 0x39, 0x8d, 0x4b, 0x38, 0x40, 0xb0, 0xc5, 0x24, 0x48, 0x9a, 0x93, 0xd6,
+ 0x1a, 0x3a, 0x73, 0xa8, 0xf0, 0x8e, 0xd3, 0x7b, 0x5f, 0x17, 0x03, 0xa7, 0x8d, 0xde, 0x87, 0x3a,
+ 0xf9, 0xf6, 0xad, 0x40, 0xcb, 0xfb, 0x9e, 0xde, 0x09, 0x64, 0x5a, 0xb1, 0xa1, 0x03, 0xbe, 0xf6,
+ 0x12, 0x7c, 0xd4, 0xef, 0xfe, 0x23, 0xc1, 0x2e, 0x3d, 0x1b, 0x51, 0x39, 0x72, 0xc8, 0x57, 0x7c,
+ 0x80, 0xea, 0xe2, 0xfa, 0xe0, 0x42, 0xe3, 0x19, 0xef, 0xc0, 0x69, 0xf4, 0x2b, 0xa3, 0x9e, 0xea,
+ 0x82, 0x1a, 0xbb, 0x9b, 0x02, 0xf8, 0x06, 0x9d, 0x16, 0xc3, 0x9c, 0x32, 0x64, 0x47, 0xaa, 0x1a,
+ 0x25, 0x80, 0xa6, 0xcc, 0x4e, 0x1b, 0xd2, 0x1e, 0xe7, 0xd6, 0x39, 0x11, 0x22, 0x21, 0xb4, 0x80,
+ 0xe2, 0xb4, 0x13, 0x39, 0x4a, 0x28, 0xde, 0xe7, 0xcb, 0x93, 0xc2, 0x75, 0xea, 0xaf, 0x23, 0xb4,
+ 0x06, 0xd3, 0xeb, 0xa3, 0xe5, 0x0d, 0xec, 0x4f, 0xc8, 0x05, 0xdc, 0x89, 0xd1, 0xef, 0x5c, 0xd3,
+ 0x24, 0xf8, 0x6b, 0x1d, 0x3f, 0x46, 0x41, 0x5c, 0x7a, 0x36, 0xa2, 0x72, 0xe4, 0x53, 0xae, 0xf8,
+ 0x40, 0x75, 0x71, 0x7d, 0x70, 0x21, 0x90, 0xed, 0x96, 0x60, 0xd5, 0x7a, 0xf4, 0xb0, 0x4f, 0x75,
+ 0x8a, 0x5c, 0x1c, 0xdc, 0x0c, 0x55, 0x14, 0xc8, 0x74, 0xcf, 0xce, 0xac, 0x9b, 0x51, 0x7a, 0x5c,
+ 0xd5, 0x48, 0x61, 0x1a, 0xfa, 0x10, 0xcd, 0xd7, 0x11, 0x5e, 0xaa, 0x5d, 0xba, 0x46, 0xc0, 0x48,
+ 0x77, 0x89, 0x03, 0x5e, 0xc0, 0x19, 0x83, 0xdd, 0x4c, 0xad, 0xbd, 0x52, 0xa4, 0x59, 0xac, 0x89,
+ 0x6c, 0xcb, 0xbd, 0x27, 0x41, 0xca, 0xc3, 0xe4, 0x8e, 0x5a, 0x25, 0x96, 0xef, 0xf5, 0x31, 0xcb,
+ 0xec, 0x21, 0x5f, 0xdd, 0xa1, 0x88, 0x20, 0xfd, 0x61, 0x9a, 0x4c, 0x62, 0xc4, 0x56, 0xaf, 0x21,
+ 0xda, 0xa5, 0xe0, 0x2f, 0x60, 0xed, 0xa0, 0x8f, 0x26, 0xb7, 0xbf, 0x29, 0x52, 0xcd, 0x56, 0xa5,
+ 0xa9, 0x0f, 0x51, 0xb3, 0xa7, 0x43, 0x2a, 0x99, 0x5b, 0x1c, 0x2b, 0x34, 0x68, 0x9f, 0x92, 0x0f,
+ 0xd8, 0x55, 0xb9, 0x4e, 0x82, 0x57, 0x45, 0x0b, 0xdf, 0xb4, 0x4a, 0xef, 0x1d, 0x29, 0x62, 0x55,
+ 0x74, 0x01, 0x97, 0xee, 0x53, 0xfe, 0xf5, 0x1b, 0x28, 0x4e, 0xd3, 0xf7, 0x2d, 0xcf, 0x82, 0x01,
+ 0xb1, 0xc5, 0x7b, 0x7a, 0xb5, 0x77, 0x1c, 0x66, 0xfd, 0x08, 0xdd, 0x55, 0xaa, 0xa5, 0x21, 0xc5,
+ 0xc8, 0xd9, 0x34, 0xc0, 0x9e, 0xce, 0x61, 0xa1, 0x1b, 0xac, 0xee, 0x10, 0x20, 0x05, 0x01, 0xd9,
+ 0x85, 0xb1, 0x9d, 0xe9, 0x96, 0xa8, 0x79, 0x90, 0x43, 0x26, 0xdb, 0xd8, 0x73, 0xda, 0xec, 0xb1,
+ 0xa7, 0x9a, 0x1d, 0x57, 0x4c, 0xe3, 0xd4, 0x83, 0xf1, 0x15, 0xa5, 0x23, 0x46, 0x66, 0x1e, 0x9a,
+ 0x92, 0x96, 0x36, 0x15, 0x1e, 0x61, 0x22, 0x37, 0xd2, 0xdb, 0x38, 0xcd, 0x59, 0x6b, 0xc9, 0x96,
+ 0xde, 0x86, 0x52, 0xed, 0x67, 0x5a, 0xa9, 0x44, 0x17, 0xb1, 0x96, 0x66, 0xcc, 0xc6, 0x3e, 0x86,
+ 0x43, 0xfd, 0xe5, 0xcd, 0xe3, 0xc6, 0xe6, 0x2b, 0xf2, 0x83, 0xbb, 0xdf, 0x7d, 0x26, 0x61, 0xfd,
+ 0x38, 0x11, 0xf3, 0x16, 0x2a, 0xc5, 0x7e, 0x68, 0xed, 0x24, 0x7d, 0x5c, 0xb8, 0x62, 0x75, 0x11,
+ 0x27, 0x70, 0xff, 0xad, 0xac, 0xa1, 0x37, 0x9a, 0x1e, 0xd5, 0xcc, 0xd7, 0x6d, 0xc5, 0x80, 0x70,
+ 0xee, 0xd1, 0x06, 0xbc, 0x43, 0x32, 0xc5, 0x79, 0x98, 0x99, 0xb9, 0xa4, 0x8b, 0xb2, 0x9b, 0xd1,
+ 0xd0, 0x13, 0x1e, 0x09, 0x8c, 0xfa, 0x57, 0x5e, 0xbd, 0xb8, 0x18, 0x71, 0xe2, 0x3f, 0xb2, 0x13,
+ 0x73, 0xaa, 0xb1, 0x9c, 0xc7, 0xae, 0x8a, 0x16, 0x7d, 0xab, 0x94, 0x1d, 0x3a, 0x52, 0xc4, 0xaa,
+ 0xb2, 0x4d, 0xef, 0xca, 0x26, 0x90, 0x6a, 0xa0, 0x99, 0xeb, 0xb3, 0xf0, 0x23, 0x33, 0x0f, 0x4d,
+ 0xfb, 0x06, 0xf4, 0x21, 0x29, 0x41, 0x7b, 0x5a, 0xf0, 0x67, 0xaf, 0x77, 0xee, 0xe7, 0x8a, 0x06,
+ 0x10, 0x8c, 0x8d, 0x8e, 0x1c, 0x99, 0x24, 0xaa, 0xc4, 0x18, 0xa4, 0xff, 0x3d, 0x2c, 0x63, 0x8c,
+ 0xe6, 0x97, 0xa1, 0xfb, 0x4d, 0x9f, 0xd7, 0x2c, 0xfa, 0x95, 0xeb, 0x3a, 0x74, 0xa4, 0x4b, 0x97,
+ 0x0b, 0xce, 0x33, 0xf7, 0x9d, 0x4a, 0x64, 0x93, 0x06, 0xef, 0x3c, 0x3b, 0x76, 0x80, 0xfe, 0xce,
+ 0x98, 0x20, 0xc8, 0x33, 0xf2, 0x76, 0xd5, 0xe6, 0x49, 0xd4, 0x9f, 0x95, 0xe9, 0x99, 0x2d, 0x20,
+ 0xb6, 0x6e, 0x5d, 0x08, 0x21, 0x27, 0x63, 0x6b, 0xa8, 0xed, 0x9a, 0xbf, 0xbd, 0x38, 0x67, 0x6e,
+ 0x11, 0xf4, 0x40, 0x5f, 0x6d, 0xc4, 0xb7, 0xe8, 0x59, 0xf8, 0x3f, 0x9c, 0xfb, 0x5e, 0x79, 0xf4,
+ 0xbd, 0xa0, 0x6e, 0xff, 0xbc, 0x6d, 0x07, 0xf8, 0xae, 0x02, 0xa6, 0x84, 0xcb, 0xb8, 0x99, 0xa0,
+ 0x0f, 0xed, 0x81, 0x35, 0x9a, 0xfd, 0x6d, 0x58, 0x37, 0xe9, 0x15, 0x74, 0xe8, 0x8b, 0x96, 0xed,
+ 0xf3, 0x40, 0x53, 0x66, 0x27, 0xec, 0x69, 0x0f, 0x92, 0x6b, 0xfd, 0xe9, 0x11, 0xf1, 0x5a, 0x40,
+ 0x5d, 0xe4, 0x24, 0xa7, 0x14, 0xff, 0x3c, 0x9b, 0x9c, 0x92, 0x91, 0x37, 0x6e, 0xf3, 0x8e, 0xe4,
+ 0xbf, 0x50, 0x37, 0x9e, 0x5e, 0xd7, 0xe2, 0x7c, 0x57, 0x01, 0x53, 0x42, 0x84, 0x5c, 0xad, 0x50,
+ 0x47, 0xde, 0x57, 0x0f, 0xe4, 0x71, 0xef, 0xe0, 0xc3, 0x85, 0x92, 0x90, 0xe3, 0x2d, 0x09, 0xde,
+ 0x2e, 0x4e, 0x95, 0x3b, 0xd3, 0x51, 0xb6, 0x8d, 0xe1, 0x39, 0x05, 0x2a, 0x54, 0xa1, 0x4a, 0x4e,
+ 0xc1, 0xe7, 0x5e, 0x56, 0xe1, 0x3e, 0xe0, 0xb6, 0xe4, 0x40, 0x27, 0xed, 0x19, 0x61, 0xcb, 0xe7,
+ 0xd6, 0xc0, 0xf5, 0xaa, 0x69, 0xf7, 0xbb, 0x11, 0x75, 0xbd, 0xc4, 0xf8, 0x33, 0xd0, 0xee, 0xc0,
+ 0x21, 0xa3, 0x14, 0x0e, 0x49, 0xac, 0xdb, 0xd5, 0xd6, 0xd0, 0x10, 0x5e, 0xbc, 0x2a, 0xdc, 0xa3,
+ 0x23, 0x53, 0x4d, 0x6f, 0xab, 0x16, 0x3e, 0x51, 0x2f, 0xd3, 0xe5, 0x98, 0xf3, 0xce, 0xe8, 0x53,
+ 0xf4, 0xeb, 0x75, 0x14, 0xb3, 0xbc, 0x16, 0x02, 0xc7, 0x8e, 0xba, 0x03, 0x06, 0x6c, 0x1c, 0xeb,
+ 0x6e, 0x3b, 0xe4, 0x46, 0xa3, 0x70, 0x26, 0x60, 0x77, 0x59, 0xd0, 0x50, 0xa0, 0x11, 0x05, 0x3b,
+ 0x8e, 0x7f, 0xae, 0x1e, 0x0b, 0xe2, 0x1d, 0x03, 0x45, 0xc9, 0xe7, 0xe3, 0x05, 0x5a, 0x12, 0x7f,
+ 0xc0, 0x9f, 0x93, 0x87, 0x90, 0x63, 0x73, 0xf4, 0x79, 0xa0, 0xbc, 0x8e, 0xdf, 0x13, 0xd1, 0x9f,
+ 0x90, 0x66, 0x6f, 0x74, 0xfc, 0xdb, 0xc7, 0xb3, 0x2b, 0xd8, 0xcd, 0x0b, 0x16, 0x8f, 0xfd, 0x66,
+ 0xf5, 0x93, 0xb8, 0xc5, 0xc2, 0xe1, 0x85, 0x40, 0x5a, 0x6e, 0x21, 0x60, 0xc0, 0x1e, 0x06, 0x93,
+ 0x5a, 0x4f, 0x02, 0xd5, 0x80, 0xaf, 0x43, 0x96, 0xc9, 0x77, 0xd6, 0xdd, 0x79, 0x6e, 0xc8, 0x4f,
+ 0x84, 0xc9, 0x50, 0x38, 0xe7, 0xf5, 0xea, 0xd2, 0xde, 0xc6, 0x40, 0xbb, 0xb5, 0xa8, 0xf6, 0xc9,
+ 0x19, 0xb2, 0xe7, 0x18, 0x63, 0x69, 0xa5, 0xbd, 0x3b, 0xf4, 0x6d, 0x02, 0x04, 0x48, 0xa9, 0xb2,
+ 0x6d, 0xb3, 0x70, 0xf6, 0x30, 0x97, 0x50, 0xa6, 0x13, 0xba, 0xbe, 0xf5, 0x29, 0x87, 0x2b, 0xb3,
+ 0x75, 0x79, 0x5a, 0x3f, 0x22, 0xa3, 0x66, 0x59, 0xb5, 0xae, 0x48, 0x94, 0xeb, 0xbd, 0x98, 0x79,
+ 0x5f, 0x14, 0x7d, 0xc6, 0xf6, 0x45, 0xd9, 0x1f, 0x65, 0x91, 0x64, 0xf1, 0x21, 0x17, 0xba, 0x14,
+ 0xe0, 0x44, 0x4a, 0x58, 0xa8, 0x92, 0x3b, 0x63, 0x32, 0x90, 0x37, 0xb3, 0xa5, 0x4b, 0x17, 0x44,
+ 0xb3, 0x35, 0x22, 0x1b, 0x57, 0xcd, 0xf9, 0xe2, 0x04, 0x0b, 0x28, 0x93, 0xe5, 0x41, 0x15, 0x35,
+ 0x52, 0x09, 0xa5, 0x92, 0x8e, 0x02, 0x51, 0xc3, 0xab, 0x7b, 0x84, 0x43, 0x86, 0x78, 0x18, 0x09,
+ 0xb4, 0x9e, 0x04, 0x69, 0xc3, 0x9d, 0x86, 0xef, 0x51, 0xee, 0x6f, 0x79, 0xf2, 0xdc, 0x53, 0x9e,
+ 0x32, 0xa7, 0x0d, 0x30, 0xc6, 0xd2, 0x89, 0xb9, 0x76, 0x2b, 0xda, 0x04, 0x08, 0x90, 0x91, 0xa7,
+ 0xb7, 0x16, 0x90, 0xd9, 0x50, 0x7a, 0xf0, 0x29, 0x35, 0x0d, 0x01, 0xdc, 0x7b, 0x4a, 0x7d, 0x16,
+ 0xc6, 0x4c, 0x78, 0x24, 0x75, 0x6e, 0x9f, 0xbb, 0xb1, 0xa5, 0x60, 0x07, 0x0e, 0xfc, 0x8d, 0x4c,
+ 0xa3, 0xb9, 0xaf, 0x95, 0x4b, 0x54, 0xdd, 0x48, 0xc0, 0x13, 0x8c, 0x6c, 0xd8, 0x6d, 0x76, 0xb9,
+ 0x50, 0xf9, 0xfc, 0xf3, 0x6c, 0xb8, 0xb4, 0x47, 0x52, 0x78, 0x71, 0x85, 0xc9, 0x9c, 0x2c, 0xf9,
+ 0xe8, 0x02, 0xed, 0x1f, 0xa6, 0x3f, 0x29, 0x36, 0x50, 0x9c, 0x65, 0x2d, 0x5a, 0x5d, 0xc7, 0x02,
+ 0x6a, 0x18, 0x56, 0x84, 0xa4, 0xc7, 0x2f, 0xab, 0x46, 0x5f, 0xf9, 0x1f, 0x3e, 0x1a, 0x6d, 0x18,
+ 0x9c, 0x03, 0x7a, 0xf1, 0xf5, 0xc1, 0xdc, 0x2d, 0x78, 0xd2, 0xb6, 0xda, 0x77, 0x92, 0x45, 0x03,
+ 0x57, 0x52, 0xda, 0x81, 0xf8, 0xe8, 0xcb, 0x4a, 0x07, 0x9d, 0x36, 0x6f, 0xde, 0x01, 0x6a, 0x52,
+ 0x4a, 0xc3, 0x8f, 0x5b, 0x9c, 0x36, 0x67, 0x3c, 0x0d, 0x6f, 0x72, 0x22, 0x44, 0x42, 0xab, 0xc3,
+ 0x6f, 0x43, 0x29, 0x97, 0xd2, 0x2d, 0xb5, 0x22, 0xea, 0xb9, 0x4b, 0x33, 0x66, 0x63, 0x1f, 0x43,
+ 0xbc, 0xd8, 0xa3, 0x2e, 0xcd, 0x30, 0x94, 0xba, 0x33, 0xe2, 0x3d, 0xe7, 0x0d, 0xca, 0x83, 0xd8,
+ 0x67, 0x05, 0x8e, 0xd0, 0xdc, 0x80, 0xa7, 0x77, 0x88, 0xb5, 0x19, 0xad, 0x99, 0x75, 0xcf, 0x05,
+ 0x51, 0x81, 0x31, 0x22, 0x1d, 0xe5, 0x27, 0x05, 0xcf, 0x98, 0xea, 0xe6, 0x0f, 0xee, 0x36, 0x81,
+ 0x99, 0x58, 0x05, 0xe2, 0x83, 0x2b, 0x46, 0xa4, 0xd4, 0x34, 0x04, 0xf6, 0x2f, 0xeb, 0x37, 0x58,
+ 0xff, 0x25, 0x46, 0xe3, 0x2e, 0xf6, 0x72, 0x91, 0xc1, 0x61, 0x86, 0x38, 0x70, 0xec, 0xe2, 0x25,
+ 0x5b, 0x37, 0xcf, 0x04, 0xf1, 0xf2, 0xd0, 0xd4, 0x54, 0x97, 0x4d, 0xbe, 0xbf, 0x1c, 0xd2, 0x37,
+ 0xd1, 0x6b, 0xd3, 0xd8, 0xfd, 0xa7, 0xc4, 0x1c, 0x20, 0x58, 0x83, 0x12, 0x24, 0x4d, 0xa8, 0x6b,
+ 0x1b, 0x42, 0xbe, 0x79, 0x81, 0xd3, 0x40, 0x39, 0xc2, 0xf7, 0x98, 0xc4, 0x4b, 0xac, 0x9d, 0x42,
+ 0x76, 0xf1, 0xce, 0x8f, 0xb1, 0x44, 0x10, 0x9f, 0xd1, 0x4d, 0x26, 0x31, 0x62, 0x2b, 0xb6, 0xf1,
+ 0x64, 0x8d, 0x1a, 0x60, 0x4f, 0x67, 0xd1, 0xb1, 0xec, 0x56, 0x77, 0x08, 0x10, 0xe3, 0xe1, 0x8d,
+ 0x29, 0xe5, 0xb3, 0x49, 0x47, 0x01, 0xc9, 0x80, 0xb4, 0xdc, 0x42, 0xc0, 0x43, 0x3c, 0x0c, 0xe5,
+ 0x59, 0xc7, 0x96, 0x65, 0x13, 0x48, 0x35, 0x50, 0xad, 0x94, 0xb8, 0x78, 0xf0, 0xf8, 0xe6, 0xc7,
+ 0x68, 0xe8, 0x0f, 0xe5, 0x46, 0x7d, 0xca, 0x2f, 0xbf, 0x5c, 0x0c, 0xd9, 0x71, 0xfe, 0x59, 0xe8,
+ 0x39, 0x69, 0x3e, 0xc7, 0x5b, 0x98, 0xed, 0x2a, 0x70, 0xc4, 0xe6, 0x3f, 0x7e, 0x10, 0x6f, 0x69,
+ 0x94, 0x45, 0xdd, 0xb6, 0xfb, 0x6c, 0xce, 0x78, 0x1a, 0xde, 0xe4, 0x44, 0x88, 0x84, 0x95, 0x45,
+ 0x4b, 0xbb, 0x42, 0x8a, 0xed, 0x6b, 0xf4, 0x7e, 0x90, 0x8f, 0xe9, 0x41, 0x82, 0x30, 0xb1, 0xbb,
+ 0x07, 0xab, 0x26, 0x72, 0x94, 0x50, 0x7f, 0x0d, 0x55, 0xe5, 0x47, 0xea, 0x17, 0x9d, 0x46, 0xab,
+ 0x71, 0x5a, 0xe8, 0xfd, 0x25, 0x14, 0x6f, 0x92, 0x84, 0xa8, 0x61, 0xdb, 0x75, 0xb6, 0xf0, 0x5a,
+ 0x2b, 0x15, 0xea, 0x28, 0xa5, 0xbb, 0x2c, 0x04, 0x4d, 0xdf, 0xb7, 0x06, 0x0c, 0xd8, 0x38, 0x15,
+ 0x26, 0x08, 0x32, 0x7c, 0xdd, 0xfc, 0xa4, 0xd8, 0x83, 0x35, 0x57, 0xb4, 0xab, 0xb7, 0x9a, 0x08,
+ 0x20, 0xdb, 0xd9, 0xdf, 0x38, 0xf1, 0x48, 0x97, 0x4b, 0x30, 0x8b, 0x3d, 0x7a, 0x58, 0xc6, 0xdb,
+ 0xfa, 0x7e, 0x39, 0xf0, 0x58, 0x1c, 0xe8, 0x18, 0x6d, 0x87, 0x34, 0x14, 0x28, 0x95, 0x90, 0x7e,
+ 0x49, 0x4b, 0x1b, 0xeb, 0x0f, 0xd1, 0x11, 0xfa, 0x69, 0x8c, 0x1c, 0x87, 0xcd, 0xd4, 0x85, 0x4b,
+ 0x22, 0x2b, 0x80, 0xbe, 0xda, 0x4b, 0xad, 0x13, 0xb2, 0x33, 0x7e, 0xfb, 0x35, 0xbc, 0xf2, 0x2b,
+ 0xa6, 0xe2, 0xd0, 0x86, 0x3d, 0xbe, 0x47, 0xc1, 0x6c, 0xf5, 0x3e, 0x40, 0x80, 0x14, 0x04, 0xe2,
+ 0xcd, 0x82, 0x4b, 0xd3, 0xe8, 0x24, 0xfb, 0x28, 0xb7, 0x4a, 0x5c, 0x3c, 0x78, 0x7c, 0x73, 0x82,
+ 0x8c, 0x8f, 0xf7, 0x7f, 0xe9, 0x58, 0xf8, 0x87, 0xbc, 0xca, 0x12, 0x25, 0x4a, 0xbe, 0x26, 0x8f,
+ 0xd7, 0xb8, 0x38, 0x7b, 0x18, 0xaa, 0x28, 0x53, 0xe8, 0x5d, 0x5f, 0x9b, 0xf5, 0xa2, 0xf4, 0xb8,
+ 0x46, 0xa6, 0x9a, 0xde, 0x95, 0x2c, 0x7c, 0xa2, 0x5e, 0x65, 0x09, 0xf3, 0x25, 0x5f, 0x13, 0xa6,
+ 0x88, 0xac, 0x45, 0xbd, 0xee, 0xef, 0xf1, 0x4c, 0x8d, 0xcc, 0x3b, 0x6a, 0xd4, 0xb5, 0x4e, 0xac,
+ 0x44, 0x56, 0xc3, 0xbf, 0x77, 0x96, 0x99, 0x26, 0xa7, 0x66, 0xfc, 0x35, 0x6a, 0xbb, 0x27, 0x56,
+ 0xc2, 0x6f, 0xca, 0xe6, 0x72, 0xd9, 0x96, 0x70, 0x80, 0xa3, 0x49, 0x48, 0x90, 0xf7, 0xe5, 0x6f,
+ 0x93, 0xee, 0xfb, 0xc4, 0x6f, 0x3c, 0xb1, 0x75, 0x4f, 0x3b, 0xa3, 0xae, 0x9f, 0x19, 0xd3, 0xee,
+ 0xf6, 0x1b, 0x2c, 0x75, 0x51, 0x06, 0xf3, 0x86, 0x3e, 0x8d, 0x4f, 0xc5, 0x49, 0x88, 0x28, 0x1b,
+ 0x09, 0x3e, 0x6a, 0x96, 0x7f, 0xf0, 0x81, 0x17, 0xff, 0xec, 0xc9, 0xfd, 0x39, 0x64, 0xca, 0x3e,
+ 0xa4, 0x12, 0x89, 0xe7, 0xdf, 0x04, 0xa2, 0x45, 0x95, 0xf6, 0xcb, 0x86, 0xcf, 0xf0, 0x30, 0x12,
+ 0xe9, 0x7a, 0x20, 0xce, 0xd7, 0x62, 0xba, 0x74, 0xcd, 0x7c, 0xfe, 0x4e, 0x9c, 0x2f, 0xdd, 0x7a,
+ 0x2a, 0x6d, 0x27, 0xf9, 0xd4, 0xe6, 0xbf, 0x46, 0xd0, 0x3f, 0x2c, 0x65, 0xca, 0xaa, 0x22, 0x6d,
+ 0x54, 0xda, 0x4e, 0x31, 0x6b, 0x0f, 0xbd, 0x8c, 0x63, 0x7e, 0x58, 0xca, 0x57, 0x97, 0x44, 0xda,
+ 0xa2, 0xc1, 0x62, 0x44, 0x3a, 0x09, 0x4e, 0x0a, 0x5d, 0xf3, 0x17, 0x0f, 0x1e, 0x1f, 0x6c, 0xc1,
+ 0xf7, 0x63, 0xe1, 0xa4, 0x20, 0x5b, 0x60, 0xc4, 0xa3, 0x6d, 0xd4, 0xa6, 0x8f, 0xfa, 0x32, 0x63,
+ 0xcf, 0x72, 0x12, 0xb2, 0x0a, 0x9e, 0x1e, 0xac, 0x4e, 0x49, 0xa9, 0xfa, 0x37, 0x98, 0x47, 0x72,
+ 0xaf, 0xdc, 0xba, 0x10, 0x42, 0x4e, 0xc6, 0xd6, 0x93, 0x19, 0xf7, 0xbd, 0xb9, 0x70, 0xce, 0xdc,
+ 0xfd, 0xd5, 0x1f, 0x82, 0xcc, 0x4c, 0x97, 0x15, 0x38, 0x62, 0x73, 0xfe, 0x3f, 0x08, 0xd6, 0xd5,
+ 0xce, 0x0a, 0xdf, 0x63, 0x7b, 0xc3, 0x8d, 0xee, 0xd3, 0xa9, 0x32, 0x99, 0xf1, 0xea, 0x5d, 0x0a,
+ 0x13, 0x04, 0x19, 0x3e, 0x8f, 0x7e, 0x52, 0x6c, 0xa0, 0xfb, 0xca, 0x5a, 0xb4, 0xba, 0x4d, 0x04,
+ 0xe3, 0xcc, 0xde, 0xe8, 0x3b, 0x75, 0x4d, 0xa5, 0x56, 0x73, 0x59, 0x16, 0x2c, 0xdd, 0x39, 0xcc,
+ 0x8b, 0x24, 0xd1, 0x0d, 0x7d, 0x08, 0x87, 0x8a, 0xe9, 0x2f, 0x55, 0xcf, 0x5d, 0x23, 0x60, 0x24,
+ 0x7e, 0xb7, 0x69, 0xc8, 0xbf, 0xe9, 0x02, 0xca, 0xb3, 0x41, 0x74, 0xaf, 0x9d, 0x3d, 0x66, 0xb7,
+ 0xed, 0x59, 0x92, 0x0c, 0xd0, 0xd5, 0xb3, 0xbf, 0xfc, 0x7a, 0xd7, 0x01, 0x02, 0x24, 0xb5, 0x59,
+ 0xe5, 0x1f, 0x35, 0x4b, 0xde, 0x78, 0xa1, 0xea, 0x9e, 0x76, 0x85, 0x9f, 0xfd, 0x32, 0x65, 0x1f,
+ 0xb8, 0xfb, 0x11, 0xec, 0xca, 0x87, 0x9d, 0x71, 0x02, 0xe4, 0x14, 0xa8, 0x93, 0xc1, 0xeb, 0xfb,
+ 0x7d, 0x3f, 0xfd, 0x78, 0x2c, 0x0e, 0x74, 0x0c, 0xd7, 0xa2, 0x1a, 0x0a, 0x14, 0xab, 0x48, 0x3f,
+ 0x96, 0xb5, 0x84, 0xd7, 0x19, 0xd6, 0x2b, 0xfc, 0xe3, 0xdd, 0x11, 0x82, 0xc7, 0x60, 0xa1, 0xb5,
+ 0x05, 0x5b, 0x7f, 0x13, 0x76, 0xea, 0x9a, 0x89, 0xac, 0xe6, 0xb2, 0x2c, 0x58, 0x79, 0x72, 0x5b,
+ 0x18, 0xca, 0x2a, 0xc9, 0x12, 0x34, 0x36, 0xff, 0xa6, 0x14, 0xf6, 0x61, 0xc2, 0x3a, 0xb3, 0xca,
+ 0x87, 0x41, 0xc4, 0x88, 0x74, 0x12, 0x9c, 0x14, 0xba, 0x25, 0x2e, 0x1e, 0x3c, 0x3e, 0xd8, 0x41,
+ 0x6b, 0x60, 0x9b, 0x55, 0xd5, 0x9a, 0xbc, 0xe9, 0xdb, 0xbf, 0x62, 0x7c, 0xf8, 0x68, 0x77, 0x60,
+ 0xd4, 0x30, 0xac, 0xcb, 0x8b, 0x4d, 0x5e, 0x95, 0x8c, 0xbe, 0x31, 0x3e, 0x7c, 0x34, 0xda, 0x30,
+ 0x04, 0x23, 0xb2, 0xc2, 0x07, 0xb7, 0x09, 0xcb, 0x31, 0x06, 0x29, 0x4f, 0x9e, 0x0b, 0x68, 0x23,
+ 0xbb, 0x73, 0x85, 0x5c, 0x59, 0x60, 0xeb, 0xb7, 0x66, 0x07, 0x7a, 0x0d, 0x1a, 0x57, 0xc5, 0x73,
+ 0x37, 0xfc, 0x72, 0x23, 0xb0, 0x38, 0x13, 0x30, 0xda, 0xcd, 0x68, 0x28, 0x50, 0xe9, 0xe3, 0xfc,
+ 0xd3, 0x9b, 0x8a, 0xb9, 0x1f, 0x1d, 0x21, 0x98, 0xd9, 0x5b, 0x76, 0xd4, 0x6b, 0xa9, 0x9c, 0x9b,
+ 0x9b, 0xa8, 0x5c, 0x83, 0x61, 0x91, 0xa3, 0x20, 0x2d, 0x37, 0xf1, 0x30, 0x60, 0x0f, 0x03, 0xa8,
+ 0x55, 0xa2, 0x83, 0xe0, 0x1a, 0x52, 0x2e, 0xce, 0xfe, 0x9e, 0xc3, 0xa9, 0x91, 0xe5, 0x5e, 0xa2,
+ 0x3a, 0xe1, 0xaa, 0x77, 0xc8, 0x7f, 0x9b, 0xec, 0x14, 0x27, 0x88, 0x9a, 0xf7, 0x86, 0x41, 0xe1,
+ 0xc4, 0xbc, 0x21, 0x45, 0x97, 0xd4, 0x7a, 0x3f, 0x48, 0xa6, 0x95, 0xc1, 0x41, 0x18, 0xb9, 0xbc,
+ 0x9e, 0xf3, 0x23, 0x90, 0x17, 0x7b, 0x39, 0xa9, 0x81, 0xd1, 0x43, 0x1c, 0x38, 0x76, 0x71, 0xf3,
+ 0xa1, 0x49, 0xf6, 0xf4, 0xa9, 0xee, 0x38, 0xcc, 0x39, 0x10, 0x79, 0xaa, 0x97, 0x89, 0x42, 0x49,
+ 0x81, 0x92, 0x2f, 0x2b, 0x91, 0x1f, 0x70, 0x5b, 0x72, 0x20, 0xf2, 0x97, 0xed, 0xd1, 0x84, 0x92,
+ 0x89, 0xd4, 0x88, 0x6c, 0x9f, 0xb2, 0x62, 0x0e, 0x10, 0x2c, 0xa0, 0x09, 0x12, 0xc7, 0x54, 0xd4,
+ 0x14, 0xaf, 0x3f, 0x4c, 0x1b, 0x2e, 0x2d, 0x61, 0xf5, 0x1e, 0x8d, 0xb0, 0xa3, 0x27, 0x0b, 0xaf,
+ 0xb9, 0x83, 0xdc, 0x3d, 0xbb, 0xda, 0x0e, 0x33, 0x9f, 0x04, 0x8f, 0xcb, 0x55, 0xb3, 0xf1, 0x83,
+ 0xac, 0x54, 0x2e, 0xa0, 0xd1, 0xa9, 0xb0, 0x10, 0xf7, 0xfa, 0x99, 0x18, 0x30, 0xe6, 0xe0, 0x54,
+ 0x8f, 0x07, 0x63, 0xcf, 0x7a, 0xbf, 0x8e, 0x41, 0xd8, 0x29, 0x7c, 0x80, 0xc3, 0x28, 0x08, 0x07,
+ 0xf0, 0xc8, 0xc7, 0xd6, 0xb4, 0x0b, 0x1f, 0xc9, 0xf6, 0x88, 0x93, 0x4c, 0x98, 0x67, 0x74, 0xc8,
+ 0xfe, 0x5d, 0x8b, 0x32, 0x5f, 0xab, 0xe1, 0xd3, 0x5c, 0x81, 0x1d, 0x5b, 0xb6, 0x9e, 0xf8, 0x5d,
+ 0x01, 0x78, 0xcd, 0xd1, 0x71, 0x5d, 0x93, 0x42, 0x9d, 0xe0, 0x9b, 0x63, 0xc6, 0x72, 0x1a, 0x78,
+ 0x08, 0x46, 0xa7, 0x47, 0x0e, 0xad, 0x12, 0x55, 0x62, 0x0c, 0x52, 0x9e, 0xff, 0x16, 0xd0, 0x46,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x0d, 0x1d, 0xd8, 0x54, 0x78, 0x47, 0x88, 0xdc, 0xce, 0xea, 0xe0, 0xb2, 0xa7, 0x6f, 0xa2, 0x1d,
+ 0x30, 0x57, 0x54, 0x51, 0x24, 0x68, 0x6c, 0x3d, 0x8f, 0x28, 0x2f, 0xc2, 0x47, 0x74, 0xa5, 0x57,
+ 0x2d, 0xc6, 0x01, 0x8b, 0x40, 0xb6, 0xc0, 0x4b, 0x85, 0xda, 0x6b, 0x8f, 0xdd, 0x37, 0x64, 0xc6,
+ 0x1f, 0x61, 0x0c, 0xbb, 0x86, 0x64, 0x49, 0xf2, 0xf3, 0xf1, 0xb1, 0x8b, 0xd5, 0xa7, 0xf5, 0x61,
+ 0x35, 0x0c, 0x2b, 0x42, 0x52, 0x82, 0xf6, 0xb4, 0x23, 0xce, 0x9d, 0xee, 0x1f, 0x0d, 0xd7, 0x0c,
+ 0xd9, 0x2d, 0x74, 0x9f, 0xf3, 0x0a, 0xd6, 0x49, 0x42, 0x54, 0xd1, 0x8c, 0xdb, 0x5b, 0x78, 0x2d,
+ 0xdb, 0xdd, 0x2d, 0xfe, 0x11, 0xb0, 0x33, 0xcd, 0xbb, 0x57, 0x24, 0x4a, 0x94, 0xbf, 0x4c, 0xdd,
+ 0xba, 0x0b, 0x48, 0x8d, 0x28, 0x3d, 0x78, 0xf5, 0xfb, 0xe7, 0xe1, 0x6e, 0xdc, 0x25, 0xdf, 0x0b,
+ 0x3d, 0x4a, 0x8c, 0x05, 0x5c, 0x2f, 0xe4, 0xe1, 0x41, 0xc2, 0xcf, 0x70, 0xe0, 0x1b, 0x07, 0x4a,
+ 0x8d, 0xf7, 0x3a, 0xae, 0x98, 0x05, 0x6b, 0xc5, 0x21, 0x2a, 0x89, 0x46, 0x8c, 0xcc, 0x3c, 0xf7,
+ 0x36, 0x84, 0xbf, 0xf2, 0xc1, 0x65, 0x80, 0x72, 0x47, 0x2d, 0xf3, 0x4b, 0x96, 0x9b, 0xf9, 0x84,
+ 0xa8, 0x77, 0x9c, 0x62, 0xd6, 0x1e, 0xb9, 0xdb, 0xc6, 0xfc, 0xb0, 0x57, 0xae, 0xed, 0x88, 0x77,
+ 0xc3, 0x17, 0x07, 0x37, 0x03, 0x84, 0x05, 0x32, 0x1d, 0x43, 0xd2, 0x2b, 0x56, 0x85, 0xff, 0x17,
+ 0x4d, 0x68, 0xa9, 0x29, 0x08, 0x66, 0x18, 0x31, 0x58, 0x8a, 0x35, 0xc8, 0x53, 0xdf, 0xed, 0x68,
+ 0xa5, 0x6a, 0x44, 0x36, 0xae, 0x59, 0x31, 0x07, 0x08, 0x16, 0x50, 0xe5, 0x09, 0x82, 0x2a, 0x6a,
+ 0x1d, 0x91, 0x55, 0xda, 0x64, 0xde, 0xac, 0x76, 0x0a, 0xf2, 0x44, 0x4d, 0x9a, 0x43, 0xc1, 0x91,
+ 0x3c, 0x32, 0x41, 0xd4, 0x2d, 0x72, 0x77, 0xa3, 0xdc, 0x22, 0x54, 0x13, 0x26, 0x69, 0x1d, 0x32,
+ 0xef, 0xa9, 0xcb, 0x6d, 0x32, 0x6f, 0x56, 0x3b, 0x05, 0x79, 0x22, 0xc7, 0x4d, 0xc0, 0x81, 0xa9,
+ 0x45, 0x2e, 0x0e, 0x6e, 0x06, 0xcb, 0x0a, 0x64, 0x3a, 0x86, 0x67, 0x56, 0xac, 0xc9, 0x3d, 0x2e,
+ 0xaa, 0x87, 0xc5, 0x03, 0x34, 0xa4, 0x5c, 0x5f, 0x3f, 0xff, 0x45, 0x91, 0xe1, 0x09, 0xbc, 0x87,
+ 0x7c, 0x47, 0x30, 0xa9, 0x5d, 0x53, 0xe7, 0x4e, 0x4a, 0x42, 0x81, 0x69, 0xd2, 0xd9, 0x52, 0x47,
+ 0x9d, 0x7b, 0xb7, 0x20, 0x84, 0x9c, 0x4f, 0x6f, 0xe5, 0x32, 0x2d, 0xb9, 0xb1, 0xe0, 0x5f, 0x7b,
+ 0x2c, 0xbe, 0xcc, 0x5a, 0x31, 0xeb, 0x53, 0x09, 0x18, 0x3a, 0xf0, 0xec, 0x1b, 0x45, 0x7e, 0xbe,
+ 0x16, 0x5f, 0x66, 0x2d, 0xf9, 0x94, 0xc8, 0xe5, 0x0c, 0x1d, 0x78, 0x76, 0xec, 0xc3, 0x3f, 0x5f,
+ 0x03, 0x88, 0x94, 0xb0, 0x93, 0xe7, 0x76, 0xc6, 0x64, 0xe3, 0x6e, 0xa5, 0x89, 0x96, 0x2e, 0x88,
+ 0x5e, 0x6c, 0xb0, 0x17, 0x87, 0x18, 0x4a, 0x5d, 0xf8, 0x71, 0xff, 0x92, 0xe7, 0x65, 0xa0, 0x6c,
+ 0x4e, 0xe0, 0x3d, 0x99, 0x9b, 0x81, 0x6e, 0xf7, 0x3c, 0x69, 0x5b, 0x6d, 0xda, 0x49, 0xc3, 0xe0,
+ 0xcb, 0x51, 0xa0, 0x70, 0x0d, 0x29, 0x17, 0x67, 0x7f, 0x4f, 0x80, 0xb5, 0xa9, 0x93, 0x2f, 0x51,
+ 0x3e, 0xc2, 0x18, 0xb5, 0xcf, 0xc8, 0x92, 0x27, 0x25, 0x21, 0xa1, 0xd5, 0x69, 0x8d, 0x29, 0xc2,
+ 0x15, 0xd7, 0xf2, 0x9d, 0x6a, 0x73, 0xbe, 0x23, 0x68, 0xfe, 0x16, 0xd3, 0x65, 0x55, 0x11, 0xd7,
+ 0xfc, 0xad, 0xd2, 0x53, 0xbd, 0x11, 0x04, 0x57, 0xa5, 0x82, 0xe8, 0x9d, 0xf9, 0x7a, 0xcc, 0xad,
+ 0xae, 0xa4, 0x77, 0xc1, 0x33, 0x13, 0x55, 0x94, 0x0e, 0xf9, 0x6c, 0xde, 0x7f, 0x02, 0xd4, 0xa4,
+ 0x63, 0x26, 0x3c, 0x12, 0xdb, 0x37, 0xae, 0xbc, 0xb9, 0xb3, 0x30, 0xe2, 0x07, 0x7e, 0xa7, 0x26,
+ 0x0e, 0x95, 0x4c, 0xe4, 0xeb, 0xa0, 0xfe, 0x1a, 0xaa, 0x09, 0x8e, 0x17, 0x2e, 0xf9, 0x8c, 0x95,
+ 0x7f, 0xcf, 0xa4, 0x19, 0xce, 0xb4, 0x91, 0x88, 0x2e, 0xa1, 0xef, 0xcc, 0x5b, 0x4f, 0x7c, 0xcf,
+ 0x31, 0x2f, 0x99, 0x80, 0x55, 0x35, 0xff, 0x7f, 0x12, 0xc8, 0xb4, 0xa1, 0x81, 0x06, 0xbf, 0x2f,
+ 0xdf, 0xfe, 0x9f, 0x3c, 0x16, 0x07, 0x3a, 0x06, 0x8a, 0x51, 0x0d, 0x05, 0x0a, 0xb4, 0x24, 0xfe,
+ 0xf1, 0xb0, 0x0a, 0x07, 0xc5, 0x56, 0x8c, 0x8b, 0x6b, 0x68, 0x08, 0x2f, 0x5e, 0x15, 0x6e, 0xb0,
+ 0x60, 0xae, 0xa8, 0xa2, 0x48, 0xd0, 0xd8, 0x7a, 0xdd, 0x50, 0x5e, 0x47, 0x8e, 0xe8, 0x89, 0xae,
+ 0x79, 0x1c, 0x4f, 0xba, 0x2b, 0xb9, 0x7d, 0xc7, 0xe6, 0xa4, 0x33, 0x45, 0x8a, 0xa0, 0x20, 0x1c,
+ 0x9a, 0xd0, 0x91, 0x52, 0x10, 0xcc, 0x30, 0x62, 0xb0, 0xd7, 0x6a, 0x53, 0xa6, 0x7d, 0x19, 0xd0,
+ 0xf8, 0x8e, 0x60, 0x91, 0xba, 0xa6, 0x0d, 0x9c, 0x94, 0x84, 0xc1, 0xd2, 0x67, 0x71, 0xa4, 0x8e,
+ 0x4c, 0x10, 0x64, 0xf8, 0x79, 0x3b, 0x8b, 0x73, 0xc5, 0x6a, 0xae, 0xab, 0x95, 0xad, 0xf7, 0x10,
+ 0xb5, 0xe6, 0xc9, 0xb8, 0xb2, 0xc0, 0x15, 0xad, 0xcc, 0x0e, 0xf4, 0x1a, 0x34, 0xae, 0x49, 0xe6,
+ 0x41, 0x0d, 0xbc, 0xac, 0x01, 0x7c, 0x03, 0xaf, 0x0b, 0x80, 0x4e, 0x19, 0x32, 0xc2, 0x55, 0x0d,
+ 0xc7, 0x34, 0xb5, 0xf5, 0x04, 0x33, 0x0c, 0xf9, 0x2c, 0x45, 0xfb, 0x64, 0xc8, 0x8e, 0x97, 0x34,
+ 0x7a, 0x94, 0xdb, 0x0a, 0xb8, 0x5e, 0x0b, 0x01, 0x82, 0x47, 0x5d, 0xe0, 0x03, 0x36, 0x0e, 0x94,
+ 0x7b, 0xec, 0x16, 0xdb, 0xc9, 0x03, 0x98, 0x43, 0x1f, 0xa7, 0xc6, 0x83, 0xc5, 0x44, 0x14, 0xec,
+ 0x0a, 0xb6, 0xfe, 0x26, 0xec, 0x17, 0xf7, 0xd1, 0x9b, 0x0f, 0xa7, 0x58, 0xb0, 0xf2, 0xe4, 0xb6,
+ 0xdc, 0x76, 0x0b, 0x8c, 0x85, 0xe0, 0x4c, 0xc0, 0xee, 0xb2, 0x63, 0xa0, 0x83, 0x22, 0x0a, 0x76,
+ 0xdd, 0x0e, 0xc6, 0x5d, 0xf4, 0xbd, 0xdf, 0x82, 0x73, 0x52, 0xf8, 0xc3, 0x45, 0x50, 0x10, 0x0e,
+ 0xea, 0xf2, 0xb4, 0x7e, 0x44, 0x85, 0xcc, 0xb2, 0xa9, 0x9f, 0x90, 0xeb, 0x15, 0xb9, 0xf3, 0xf2,
+ 0x78, 0x64, 0x82, 0x6b, 0x5a, 0xe4, 0xee, 0x85, 0x7b, 0x44, 0xa8, 0x26, 0x4c, 0xd2, 0x3a, 0x64,
+ 0xbe, 0x28, 0xfa, 0x4f, 0x2f, 0x8a, 0x71, 0x3e, 0xca, 0xe1, 0xc8, 0x21, 0x42, 0x2e, 0xb7, 0x28,
+ 0x86, 0x39, 0x09, 0x59, 0x05, 0x4f, 0x0f, 0x56, 0x27, 0xc5, 0xb5, 0x7d, 0xfa, 0x4c, 0xc2, 0x39,
+ 0xe1, 0x3c, 0x87, 0x89, 0xd9, 0xcf, 0xa8, 0x21, 0xaf, 0x70, 0xac, 0xd0, 0x63, 0x39, 0x0d, 0x3c,
+ 0x97, 0xcd, 0x49, 0x06, 0x68, 0x8b, 0xb8, 0xbe, 0x7e, 0x3d, 0x8a, 0xe1, 0x01, 0x12, 0xbb, 0xcd,
+ 0x66, 0x7d, 0x43, 0x01, 0xad, 0xdd, 0x34, 0x35, 0x15, 0x55, 0x82, 0xce, 0x5f, 0x07, 0xd5, 0x7d,
+ 0xeb, 0x8a, 0x79, 0xaf, 0x35, 0xd8, 0x5f, 0xf0, 0x34, 0x7f, 0x0b, 0x88, 0xd3, 0xcb, 0xe9, 0x8a,
+ 0xf2, 0x38, 0x9e, 0xb7, 0x56, 0xb1, 0xfa, 0x4d, 0x0f, 0x8b, 0x66, 0x8a, 0xd7, 0x83, 0x40, 0x38,
+ 0xb0, 0xbd, 0xb6, 0xab, 0xc4, 0x2a, 0x8f, 0x24, 0x60, 0xe8, 0x46, 0x36, 0x6c, 0xd7, 0x3b, 0xbd,
+ 0xe4, 0x67, 0xf8, 0x9a, 0xaf, 0x25, 0x32, 0xa8, 0x03, 0x96, 0x1e, 0xfc, 0x3b, 0x40, 0x7f, 0x67,
+ 0x1c, 0xe9, 0x98, 0x0b, 0x15, 0x83, 0x3f, 0x34, 0x97, 0x12, 0xdf, 0x2e, 0x5c, 0x31, 0xdb, 0xe9,
+ 0xca, 0x29, 0x6d, 0xa1, 0x7c, 0x74, 0x84, 0x25, 0xe2, 0xaf, 0x1b, 0xd6, 0x6f, 0xe1, 0x35, 0x29,
+ 0xd2, 0xe3, 0x47, 0x68, 0x6e, 0x40, 0xb2, 0xda, 0x44, 0xbb, 0xed, 0xb7, 0xad, 0xdb, 0x86, 0xe3,
+ 0xa0, 0x31, 0x3b, 0x25, 0xd8, 0xb3, 0xab, 0x8e, 0xa4, 0xf0, 0xe2, 0xc9, 0x51, 0xfb, 0x58, 0x31,
+ 0x1e, 0x19, 0xc1, 0x6a, 0xf7, 0x39, 0xda, 0xb0, 0x6e, 0x11, 0x2a, 0xe8, 0x13, 0xd5, 0xef, 0x19,
+ 0x9f, 0x8b, 0xee, 0x41, 0x66, 0x26, 0xaa, 0xeb, 0x1c, 0x31, 0xd8, 0x7f, 0xfe, 0x04, 0x6b, 0x8b,
+ 0x56, 0x2a, 0x17, 0x50, 0x89, 0xb5, 0x58, 0x08, 0x9a, 0x7d, 0xad, 0x0c, 0x18, 0x73, 0x70, 0x2a,
+ 0xab, 0xff, 0x08, 0xd2, 0x45, 0xf9, 0xcf, 0x1d, 0xa2, 0x1f, 0xde, 0xf2, 0x27, 0x7b, 0xa6, 0xff,
+ 0xc9, 0xa1, 0xf9, 0x11, 0xef, 0x93, 0xf2, 0xe3, 0x86, 0x4c, 0x75, 0x73, 0xe6, 0x77, 0x1b, 0xa1,
+ 0x69, 0x90, 0xc2, 0x34, 0x37, 0x20, 0x59, 0x6d, 0x22, 0xbc, 0x97, 0xba, 0xb7, 0x8c, 0x43, 0x90,
+ 0x91, 0x1e, 0xa2, 0xa5, 0x8d, 0x86, 0x54, 0xf1, 0xb6, 0x38, 0x56, 0x68, 0xd0, 0xfd, 0xe7, 0x1e,
+ 0x72, 0xd2, 0x7c, 0x4d, 0xb6, 0xf3, 0x19, 0x54, 0xe0, 0x4b, 0x0f, 0x7e, 0xfc, 0x20, 0xde, 0xd2,
+ 0x53, 0x71, 0x68, 0x43, 0xff, 0x5f, 0xc2, 0x81, 0x36, 0x9b, 0x1f, 0x20, 0x40, 0x0a, 0x02, 0x71,
+ 0x17, 0x27, 0xab, 0xfc, 0x88, 0xc9, 0x5b, 0xa7, 0x91, 0xfd, 0xe3, 0x15, 0x2a, 0xb1, 0x25, 0x27,
+ 0x4f, 0x98, 0xf0, 0x48, 0xea, 0xdc, 0xfd, 0xb5, 0xa1, 0x89, 0xc0, 0x0e, 0x1c, 0x3b, 0xd9, 0x98,
+ 0x58, 0xbf, 0x5b, 0xb4, 0x62, 0x15, 0xa6, 0x12, 0x30, 0x74, 0x23, 0x1b, 0x36, 0x8a, 0xfc, 0xbf,
+ 0x02, 0xf0, 0x59, 0x61, 0xe2, 0xba, 0xe5, 0x84, 0xf9, 0x03, 0xf5, 0xc6, 0x4f, 0xe4, 0x34, 0xf0,
+ 0x65, 0xf5, 0xd7, 0xb1, 0x3e, 0x3a, 0x42, 0xf3, 0x71, 0xb6, 0xec, 0x6b, 0xd6, 0x91, 0xfb, 0xf5,
+ 0x70, 0x22, 0x25, 0x2c, 0x54, 0x49, 0xfc, 0xd0, 0x19, 0x48, 0xfa, 0xb8, 0xb3, 0xc4, 0xea, 0x22,
+ 0x3f, 0xba, 0xd5, 0x64, 0xbe, 0x95, 0x01, 0x65, 0xb8, 0xc1, 0x3a, 0xb6, 0xaf, 0xff, 0x33, 0xba,
+ 0x33, 0xdf, 0xc0, 0xe1, 0xb7, 0x8f, 0x1a, 0xfb, 0xeb, 0xcb, 0x41, 0x67, 0xce, 0xe2, 0x8b, 0xdf,
+ 0x28, 0x9d, 0x7e, 0x98, 0x36, 0x5c, 0x5a, 0xc2, 0x29, 0x3c, 0xd9, 0xa3, 0x85, 0x4e, 0x16, 0x9d,
+ 0xc5, 0xc4, 0xec, 0x94, 0xe6, 0x89, 0xe9, 0x7d, 0xd5, 0x46, 0x0e, 0xa2, 0x87, 0x6a, 0xa3, 0xc4,
+ 0xcc, 0xfa, 0x86, 0x02, 0x99, 0x79, 0x68, 0x6a, 0x2a, 0xaa, 0xc7, 0x5f, 0xbe, 0x0e, 0x69, 0xfa,
+ 0xad, 0x2c, 0xe3, 0x71, 0xa0, 0xf4, 0x23, 0x52, 0x6a, 0x1a, 0x02, 0x7b, 0xf6, 0x94, 0xfa, 0x2c,
+ 0x34, 0x74, 0xe6, 0x93, 0x23, 0xdf, 0x65, 0xf6, 0xbe, 0x2e, 0x06, 0x8d, 0xd9, 0x7f, 0xcd, 0x74,
+ 0x95, 0x3d, 0x10, 0x67, 0x8a, 0x31, 0x5d, 0x3a, 0x87, 0x3e, 0x7f, 0x27, 0x4e, 0xf6, 0x8f, 0x3d,
+ 0x83, 0x62, 0x76, 0x4a, 0x73, 0xa5, 0x95, 0xdf, 0x8b, 0x23, 0x07, 0x51, 0xa2, 0x35, 0xb0, 0x62,
+ },
+ { /* 2 */
+ 0x37, 0xf9, 0x69, 0x1b, 0x71, 0x18, 0x61, 0xcd, 0x69, 0x19, 0x54, 0xd6, 0xaf, 0xcb, 0x37, 0x52,
+ 0x93, 0x8b, 0x03, 0xf8, 0xd8, 0xdb, 0x4a, 0x3b, 0x03, 0x7b, 0x5a, 0xc3, 0x52, 0x7d, 0x93, 0x1c,
+ 0xdb, 0x45, 0x63, 0x4e, 0xe4, 0x87, 0x1e, 0x57, 0x63, 0xc0, 0x4b, 0x19, 0x80, 0x06, 0xdb, 0x1a,
+ 0x38, 0xfb, 0x20, 0xd3, 0x14, 0x34, 0x8d, 0x24, 0x20, 0x69, 0x0f, 0xf7, 0x4e, 0x29, 0x38, 0x02,
+ 0x7f, 0x37, 0x09, 0xad, 0x4d, 0x44, 0x35, 0xa1, 0x09, 0xa2, 0x45, 0x0c, 0x7d, 0xb0, 0x7f, 0x54,
+ 0xb6, 0xa0, 0x72, 0x2f, 0xa6, 0xd4, 0x3e, 0xed, 0x72, 0x3c, 0x9b, 0xc2, 0x28, 0xd8, 0xb6, 0xae,
+ 0xa0, 0x81, 0xad, 0x96, 0xea, 0x47, 0x90, 0xf0, 0xad, 0x08, 0xae, 0x66, 0xb1, 0x91, 0xa0, 0xcf,
+ 0xb7, 0xec, 0x33, 0xa3, 0xc6, 0xf5, 0x60, 0x0d, 0x33, 0xc7, 0xb3, 0xae, 0x3b, 0xa1, 0xb7, 0x1f,
+ 0xb8, 0xee, 0x7a, 0x6b, 0xa3, 0xd9, 0x8c, 0xe4, 0x7a, 0xb7, 0xe8, 0x8f, 0xda, 0x43, 0xb8, 0x4f,
+ 0xc5, 0x41, 0xf1, 0x1d, 0x2e, 0xdf, 0x05, 0x46, 0xf1, 0x20, 0xfd, 0x5b, 0x81, 0x01, 0xc5, 0xba,
+ 0xcc, 0x28, 0xfd, 0x7b, 0xc8, 0x35, 0xee, 0xaa, 0xfd, 0x0f, 0x56, 0xd1, 0x0a, 0x36, 0xcc, 0xca,
+ 0x54, 0x52, 0x70, 0x3e, 0x36, 0x46, 0xf3, 0x7e, 0x70, 0x6e, 0xf7, 0x40, 0xf5, 0x8e, 0x54, 0x07,
+ 0x04, 0xf3, 0xc7, 0x75, 0x43, 0x84, 0xbb, 0x06, 0xc7, 0x6a, 0xa0, 0x73, 0x4c, 0x27, 0x04, 0x81,
+ 0xb1, 0x87, 0x76, 0x0d, 0x45, 0x33, 0x67, 0x08, 0x76, 0x98, 0x43, 0x05, 0x51, 0x74, 0xb1, 0x3f,
+ 0x13, 0x9e, 0x59, 0x40, 0x6f, 0x36, 0x4b, 0xfb, 0x59, 0xa5, 0xbd, 0xbb, 0xc6, 0x17, 0x13, 0x51,
+ 0xb2, 0x53, 0xb5, 0x5a, 0xe5, 0x50, 0x85, 0xeb, 0xb5, 0x56, 0x3b, 0xb1, 0x64, 0xff, 0xb2, 0x2f,
+ 0x1c, 0x9c, 0x10, 0x88, 0x0a, 0x1a, 0xa7, 0x12, 0x10, 0xd5, 0xe6, 0x9a, 0x27, 0xf5, 0x1c, 0x01,
+ 0xa8, 0xa4, 0xe0, 0x7c, 0x6c, 0x8c, 0x25, 0xfc, 0xe0, 0xdc, 0x2d, 0x80, 0x29, 0xdf, 0xa8, 0x0e,
+ 0x02, 0x98, 0x82, 0xdb, 0xc0, 0x42, 0xbc, 0x03, 0x82, 0x35, 0x50, 0xd8, 0x26, 0xf2, 0x02, 0xa1,
+ 0x20, 0x94, 0xf7, 0x2e, 0x5d, 0xaa, 0x91, 0x30, 0xf7, 0xd6, 0x49, 0x1e, 0x25, 0xfb, 0x20, 0x82,
+ 0xf5, 0x9f, 0x9c, 0x24, 0xbc, 0x20, 0x3d, 0x6e, 0x9c, 0x9d, 0x71, 0x4a, 0x57, 0x66, 0xf5, 0x79,
+ 0x45, 0x54, 0xab, 0xa5, 0x99, 0x32, 0x04, 0x86, 0xab, 0xfe, 0x1a, 0x23, 0x15, 0x6b, 0x45, 0xf7,
+ 0x3b, 0x2f, 0xe3, 0x84, 0xb4, 0x57, 0x6f, 0xc7, 0xe3, 0xa7, 0x77, 0x43, 0x7b, 0xa2, 0x3b, 0x12,
+ 0x3f, 0xdc, 0x24, 0xf1, 0xf7, 0xd3, 0xd4, 0xc1, 0x24, 0xcd, 0xd7, 0x30, 0x37, 0x85, 0x3f, 0x93,
+ 0xc3, 0x2a, 0xb4, 0xb3, 0xad, 0x19, 0x02, 0x43, 0xb4, 0x7f, 0x0d, 0xf0, 0xeb, 0xd4, 0xc3, 0x9a,
+ 0x2f, 0x96, 0xbe, 0xe6, 0x38, 0x86, 0x7d, 0xd9, 0xbe, 0xa6, 0x12, 0x3f, 0xc4, 0x19, 0x2f, 0xd2,
+ 0x76, 0x5e, 0x05, 0xcb, 0xab, 0xae, 0xde, 0x4d, 0x05, 0x8d, 0xee, 0x86, 0xf6, 0x87, 0x76, 0x24,
+ 0x4b, 0x1a, 0xa3, 0xe1, 0x9c, 0x3f, 0xb6, 0x8f, 0xa3, 0x75, 0x69, 0x6e, 0xe7, 0xf0, 0x4b, 0x16,
+ 0x5f, 0xa3, 0xfe, 0x83, 0x10, 0xee, 0xa4, 0x91, 0xfe, 0x74, 0x0c, 0x12, 0x58, 0x4b, 0x5f, 0xd6,
+ 0x97, 0x78, 0xc4, 0x8d, 0x9b, 0x5f, 0xf1, 0x3d, 0xc4, 0x11, 0xfa, 0xb0, 0x1e, 0x5a, 0x97, 0x9d,
+ 0x16, 0x21, 0xdf, 0xb9, 0x4c, 0x93, 0xae, 0x1d, 0xdf, 0x34, 0x35, 0xa4, 0x99, 0x49, 0x16, 0x61,
+ 0xa2, 0x19, 0x2f, 0x4d, 0x2a, 0x05, 0x2c, 0xf3, 0x2f, 0x3d, 0xfe, 0xbe, 0x97, 0x63, 0xa2, 0x6e,
+ 0x50, 0xa1, 0xb7, 0x4b, 0x75, 0xc2, 0x48, 0x78, 0xb7, 0x04, 0x57, 0x33, 0xb9, 0xa9, 0x50, 0x86,
+ 0x6a, 0xc2, 0x15, 0x43, 0xa1, 0xb4, 0x79, 0x5f, 0x15, 0x58, 0x08, 0x1c, 0xd1, 0x72, 0x6a, 0x25,
+ 0x0c, 0xd6, 0x8a, 0x9f, 0xc5, 0x4f, 0x0e, 0x0a, 0x8a, 0xbe, 0x23, 0x95, 0xd4, 0x69, 0x0c, 0x40,
+ 0x71, 0x79, 0x01, 0xe9, 0x48, 0x49, 0x87, 0xa8, 0x01, 0x29, 0x36, 0x41, 0x8f, 0x2b, 0x71, 0xb5,
+ 0xa6, 0xea, 0xe8, 0x38, 0x69, 0x81, 0x97, 0xf5, 0xe8, 0x57, 0x5e, 0xcd, 0xdb, 0x44, 0xa6, 0xef,
+ 0x8a, 0xa8, 0x95, 0x89, 0xf1, 0x64, 0x08, 0xcf, 0x95, 0x3f, 0x34, 0x46, 0x2a, 0xd6, 0x8a, 0x2d,
+ 0xe7, 0x4d, 0x84, 0xe8, 0xb3, 0x37, 0x28, 0x75, 0x84, 0xc3, 0xe4, 0x9d, 0x82, 0x08, 0xe7, 0x99,
+ 0xec, 0xbc, 0x0a, 0x55, 0x95, 0x9f, 0x7f, 0x9a, 0x0a, 0xd9, 0x1f, 0xcf, 0x2f, 0xcd, 0xec, 0x48,
+ 0x51, 0xed, 0xf6, 0xc7, 0x15, 0xe3, 0x16, 0x98, 0xf6, 0xff, 0x7f, 0x5f, 0xaa, 0xd0, 0x51, 0x37,
+ 0x79, 0x5c, 0x4c, 0x03, 0xce, 0x82, 0x32, 0xa4, 0x4c, 0xfd, 0xb5, 0xa7, 0x17, 0x65, 0x79, 0x74,
+ 0xe1, 0x26, 0xc1, 0x46, 0x30, 0xf1, 0x2f, 0x70, 0xc1, 0x9c, 0x14, 0x36, 0xe8, 0xdd, 0xe1, 0xb9,
+ 0x1b, 0xbb, 0x14, 0xaa, 0xe9, 0xfd, 0xfe, 0xf7, 0x14, 0x71, 0x3e, 0x5d, 0x5e, 0x59, 0x1b, 0x90,
+ 0x9f, 0x5d, 0x89, 0x67, 0x1d, 0x94, 0x44, 0x31, 0x89, 0xc5, 0x79, 0x56, 0x86, 0x14, 0x9f, 0x5c,
+ 0x74, 0xc6, 0x87, 0x10, 0x6b, 0xec, 0x62, 0x4e, 0x87, 0xb8, 0xbe, 0x5e, 0xd0, 0x75, 0x74, 0x85,
+ 0xf8, 0x05, 0x57, 0x37, 0x19, 0x4e, 0x6d, 0x84, 0x57, 0xd8, 0x7a, 0xb3, 0x90, 0x76, 0xf8, 0x88,
+ 0x5a, 0x1c, 0x78, 0x7a, 0x33, 0x4b, 0x41, 0x77, 0x78, 0xe5, 0x84, 0x0d, 0x07, 0x15, 0x5a, 0xe6,
+ 0x67, 0x58, 0xde, 0x50, 0x04, 0xda, 0x29, 0xb5, 0xde, 0x1d, 0x03, 0xe5, 0x16, 0x62, 0x67, 0xd4,
+ 0x36, 0xb5, 0x28, 0x97, 0x11, 0x39, 0x3f, 0x2d, 0x28, 0xe2, 0x7c, 0xba, 0xbc, 0xb2, 0x36, 0xe3,
+ 0xe8, 0x4f, 0xcd, 0x20, 0xd6, 0x1b, 0xc4, 0x9c, 0xcd, 0xb3, 0xbf, 0xbc, 0x63, 0xea, 0xe8, 0xc9,
+ 0x60, 0x7f, 0xda, 0x72, 0xe7, 0x3d, 0x70, 0x50, 0xda, 0xb9, 0xdb, 0x22, 0x6f, 0xce, 0x60, 0x45,
+ 0xd2, 0x2c, 0x6f, 0x28, 0x02, 0x6d, 0xf5, 0xbb, 0x6f, 0xef, 0xe0, 0x93, 0x0b, 0x31, 0xd2, 0x6a,
+ 0xa5, 0x3e, 0x2b, 0x6f, 0xc9, 0xe2, 0x75, 0x16, 0x2b, 0x99, 0x26, 0x79, 0xee, 0xcf, 0xa5, 0xff,
+ 0x8c, 0xc3, 0xd0, 0x27, 0x72, 0xa2, 0x0f, 0xca, 0xd0, 0x60, 0xc4, 0xed, 0x40, 0x03, 0x8c, 0x0d,
+ 0xbd, 0x51, 0xfc, 0x92, 0x80, 0x7c, 0x69, 0x02, 0xfc, 0x26, 0x60, 0x90, 0x85, 0x1d, 0xbd, 0x7f,
+ 0xfb, 0xd1, 0x94, 0x60, 0xb9, 0x2d, 0x8f, 0x67, 0x94, 0x16, 0x02, 0x07, 0xa5, 0xfd, 0xfb, 0x98,
+ 0xba, 0x76, 0xf8, 0xb0, 0x63, 0x9b, 0x30, 0xe7, 0xf8, 0x82, 0xb8, 0x57, 0xfc, 0xb1, 0xba, 0xee,
+ 0x0f, 0x02, 0x49, 0xc8, 0x65, 0x2c, 0xec, 0xe9, 0x49, 0x70, 0x5b, 0x21, 0xe1, 0xe2, 0x0f, 0x50,
+ 0x4f, 0xe9, 0x64, 0x94, 0xdf, 0xbb, 0x0d, 0x89, 0x64, 0x1f, 0xc9, 0x1d, 0xab, 0xd7, 0x4f, 0x97,
+ 0x8e, 0x5b, 0x52, 0xfc, 0xb2, 0xe0, 0xb3, 0xc9, 0x52, 0x55, 0x94, 0x35, 0x66, 0xf1, 0x8e, 0xac,
+ 0x89, 0x7c, 0x56, 0xde, 0x51, 0x07, 0xea, 0x2c, 0x56, 0xf1, 0x4c, 0xf2, 0x1f, 0x5d, 0x89, 0x3d,
+ 0x06, 0x6b, 0x45, 0xae, 0x83, 0xc6, 0x07, 0x05, 0x45, 0x5f, 0xf0, 0xab, 0x6a, 0xd5, 0x06, 0x20,
+ 0xe5, 0xd5, 0x06, 0x33, 0x73, 0x75, 0x94, 0x76, 0x06, 0xf6, 0xb4, 0x45, 0xa4, 0xfa, 0xe5, 0x38,
+ 0xf4, 0xd3, 0xdd, 0xa8, 0xdc, 0x01, 0x63, 0x8e, 0xdd, 0x66, 0x59, 0x26, 0x44, 0x1f, 0xf4, 0xc8,
+ 0xc7, 0xd9, 0x73, 0xc6, 0xee, 0x9d, 0xb9, 0x45, 0x73, 0x15, 0xad, 0x83, 0xa7, 0xf3, 0xc7, 0x1b,
+ 0xad, 0x1b, 0x66, 0x85, 0x4f, 0x29, 0xc0, 0x1a, 0x66, 0x4d, 0xa5, 0x9f, 0x76, 0x81, 0xad, 0x3e,
+ 0xcb, 0x0f, 0xf9, 0x59, 0x2b, 0xd2, 0xb7, 0x4f, 0xf9, 0xab, 0x8e, 0x16, 0x73, 0x9a, 0xcb, 0x5b,
+ 0x80, 0x15, 0x5a, 0xb8, 0xb7, 0xed, 0x01, 0xc0, 0x5a, 0xde, 0xe7, 0x78, 0x94, 0x6a, 0x80, 0x4d,
+ 0xf0, 0x20, 0x1a, 0xdd, 0x9f, 0x85, 0xd8, 0x88, 0x1a, 0x0c, 0xf9, 0x55, 0x08, 0x38, 0xf0, 0x49,
+ 0xd5, 0x0b, 0x6b, 0x0a, 0xe1, 0x8a, 0xac, 0x5e, 0x6b, 0x4b, 0x38, 0x54, 0x72, 0x9d, 0xd5, 0xfb,
+ 0x07, 0x27, 0x04, 0x22, 0xe3, 0xe7, 0x59, 0xe5, 0x04, 0xa4, 0xd8, 0xc7, 0x79, 0xac, 0x07, 0x91,
+ 0xea, 0xd7, 0x4f, 0xfb, 0x16, 0x59, 0x78, 0x9f, 0x4f, 0x86, 0xef, 0x64, 0x45, 0x18, 0xea, 0x68,
+ 0x56, 0xca, 0xf2, 0xe5, 0xf6, 0x04, 0x4f, 0x7d, 0xf2, 0x5b, 0xa7, 0x98, 0xd3, 0x7c, 0x56, 0xa6,
+ 0x4d, 0x71, 0xe6, 0x4f, 0x1f, 0xf9, 0xb1, 0x8a, 0xe6, 0x2a, 0x99, 0xc5, 0x8d, 0x25, 0x4d, 0x36,
+ 0x55, 0x1e, 0x31, 0xb2, 0x56, 0x67, 0xad, 0x9e, 0x31, 0x95, 0xdf, 0x2c, 0xe6, 0xf7, 0x55, 0xb6,
+ 0x43, 0x3f, 0xee, 0x0b, 0x1a, 0xf4, 0x03, 0x83, 0xee, 0xa1, 0xea, 0x88, 0x7f, 0xbe, 0x43, 0xd7,
+ 0x1a, 0xf7, 0x55, 0x26, 0x89, 0xdc, 0xa0, 0x17, 0x55, 0x8a, 0x16, 0x31, 0x4d, 0x20, 0x1a, 0x21,
+ 0x0b, 0xf1, 0x8e, 0xbd, 0x26, 0xa8, 0x57, 0xef, 0x8e, 0x1a, 0xfb, 0x52, 0xad, 0xc5, 0x0b, 0xd1,
+ 0xe3, 0xbe, 0x43, 0x9d, 0xf0, 0xb3, 0x93, 0x73, 0x43, 0xa9, 0x44, 0xee, 0xce, 0x2f, 0xe3, 0x18,
+ 0x96, 0x34, 0x85, 0x01, 0xfb, 0x7e, 0xaf, 0xdd, 0x85, 0xea, 0xd2, 0xdc, 0x0d, 0x23, 0x96, 0x2c,
+ 0x27, 0xb3, 0xf3, 0x0c, 0xbe, 0x4d, 0xc8, 0xd5, 0xf3, 0x72, 0x91, 0xd9, 0x5c, 0x57, 0x27, 0x13,
+ 0xdd, 0x2e, 0x26, 0xe0, 0x67, 0x41, 0x19, 0x52, 0x26, 0x9f, 0xbb, 0xb2, 0xea, 0xd3, 0xdd, 0x3a,
+ 0x44, 0x18, 0xea, 0x29, 0xf9, 0x13, 0x5a, 0x66, 0xea, 0x05, 0x32, 0x4f, 0x06, 0x12, 0x44, 0x46,
+ 0x26, 0xff, 0xb2, 0x80, 0xde, 0x6c, 0x96, 0x35, 0xb2, 0x89, 0xb9, 0xb5, 0x4f, 0x2e, 0x26, 0xa2,
+ 0x35, 0x61, 0xeb, 0xc0, 0xb1, 0x5a, 0xdd, 0xce, 0xeb, 0x2c, 0x04, 0x0e, 0x89, 0x39, 0x35, 0xf3,
+ 0xdc, 0x62, 0x67, 0x6c, 0x07, 0x60, 0x47, 0xb2, 0x67, 0x64, 0x93, 0xde, 0xf9, 0xaa, 0xdc, 0x8b,
+ 0xa4, 0x72, 0x6a, 0xe3, 0xa9, 0xc3, 0x2b, 0xf6, 0x6a, 0x62, 0x0e, 0x15, 0xfd, 0xb6, 0xa4, 0x4e,
+ 0x58, 0x84, 0xfa, 0xa1, 0xf3, 0x09, 0xfd, 0x74, 0xfa, 0xd0, 0xd4, 0xd5, 0x21, 0xe7, 0x58, 0x47,
+ 0xcf, 0xfc, 0x3e, 0x2c, 0x68, 0x56, 0x0c, 0x49, 0x3e, 0xc1, 0x2e, 0x65, 0x3f, 0xbd, 0xcf, 0xda,
+ 0xd0, 0xb4, 0xed, 0xf3, 0xc2, 0x2f, 0x49, 0xb8, 0xed, 0xda, 0xb0, 0x4b, 0x2d, 0xc3, 0xd0, 0xcb,
+ 0x7c, 0xe3, 0xca, 0xfa, 0xed, 0x27, 0xd7, 0x42, 0xca, 0x6c, 0x3d, 0xb8, 0x48, 0x3b, 0x7c, 0x44,
+ 0x5c, 0x77, 0x3d, 0xd4, 0xb0, 0x8d, 0x46, 0x72, 0x3d, 0xba, 0x74, 0xa6, 0x6d, 0xc0, 0x5c, 0xc6,
+ 0x7e, 0x7b, 0x48, 0x21, 0x2d, 0x65, 0x6b, 0x41, 0x48, 0x59, 0x6d, 0x60, 0x6e, 0xc9, 0x7e, 0xe5,
+ 0xfe, 0x6e, 0x12, 0x99, 0x9a, 0x88, 0x6a, 0x81, 0x12, 0x87, 0x8a, 0x18, 0xfa, 0xa3, 0xfe, 0xa8,
+ 0xaa, 0x3c, 0x62, 0xa7, 0xac, 0xce, 0x99, 0xff, 0x62, 0xe9, 0x7d, 0x58, 0x0f, 0x2d, 0xaa, 0xaf,
+ 0x2b, 0x65, 0x79, 0x93, 0x7b, 0x02, 0xc6, 0xdf, 0x79, 0xcc, 0xb2, 0x4c, 0x88, 0x3e, 0x2b, 0x53,
+ 0xc9, 0x97, 0x7b, 0x82, 0xeb, 0x90, 0x0b, 0x4c, 0x7b, 0x9e, 0xde, 0xce, 0x55, 0x68, 0xc9, 0xfa,
+ 0x92, 0xc7, 0x42, 0x74, 0xb8, 0xfa, 0x14, 0xdb, 0x42, 0x80, 0x72, 0xaf, 0x41, 0x04, 0x92, 0xad,
+ 0xca, 0x43, 0xb8, 0xd5, 0x4b, 0xf3, 0xe9, 0xaf, 0xb8, 0x50, 0xa6, 0x7a, 0x60, 0xe3, 0xca, 0xea,
+ 0x4c, 0x3d, 0xa7, 0xc3, 0x7f, 0xd8, 0xef, 0x6a, 0xa7, 0xd1, 0xb1, 0xa9, 0x9e, 0x5c, 0x4c, 0x87,
+ 0x9d, 0xc5, 0x0b, 0xbc, 0xdd, 0xd6, 0xf8, 0x32, 0x0b, 0xf0, 0x29, 0x8e, 0xa0, 0xe6, 0x9d, 0xfd,
+ 0xa7, 0xa6, 0xa9, 0xb4, 0x09, 0xa0, 0xc9, 0x15, 0xa9, 0xac, 0x76, 0xa1, 0xc8, 0x3d, 0xa7, 0x5e,
+ 0x59, 0xc8, 0xbb, 0x2d, 0x93, 0x28, 0xa3, 0x94, 0xbb, 0x2b, 0xfc, 0xb9, 0x32, 0x9e, 0x59, 0xf6,
+ 0x9e, 0x11, 0xc8, 0xeb, 0x7d, 0xb5, 0x1a, 0xd1, 0xc8, 0x3e, 0x51, 0x3a, 0x95, 0x6d, 0x9e, 0xed,
+ 0x1d, 0xd0, 0x51, 0x04, 0x6a, 0x3b, 0xf9, 0xf2, 0x51, 0x2e, 0xce, 0xf6, 0x34, 0x8c, 0x1d, 0xb0,
+ 0x01, 0x4c, 0x41, 0x8c, 0x60, 0x21, 0x5e, 0xe0, 0x41, 0xfb, 0x28, 0x6c, 0x13, 0x79, 0x01, 0xb1,
+ 0xc2, 0x66, 0xf5, 0x3f, 0xcd, 0x38, 0x5c, 0xa3, 0xf5, 0x84, 0x25, 0x9c, 0xf8, 0xad, 0xc2, 0x2b,
+ 0x28, 0xb1, 0xba, 0xc4, 0xdb, 0x61, 0x24, 0x3c, 0xba, 0x02, 0xca, 0xf8, 0xbd, 0xb5, 0x28, 0x43,
+ 0xb4, 0x38, 0xf0, 0xf4, 0x66, 0x96, 0x82, 0xee, 0xf0, 0x09, 0xcb, 0x1a, 0x0e, 0x2a, 0xb4, 0x0f,
+ 0x19, 0x23, 0x96, 0x71, 0x29, 0xbf, 0x42, 0xf4, 0x96, 0x44, 0x6e, 0x85, 0x78, 0xab, 0x19, 0x31,
+ 0x85, 0xaa, 0xdc, 0x41, 0x94, 0x48, 0xe4, 0x26, 0xdc, 0x4f, 0x6f, 0x67, 0xcb, 0x34, 0x85, 0x7d,
+ 0x3c, 0x08, 0xe7, 0xa6, 0x57, 0xb0, 0x36, 0x22, 0xe7, 0x03, 0xaf, 0x84, 0x02, 0x0e, 0x3c, 0x83,
+ 0x40, 0xeb, 0x2d, 0x5c, 0xba, 0x97, 0xe1, 0x60, 0x2d, 0x6f, 0x92, 0x3c, 0x4a, 0x35, 0x40, 0xc7,
+ 0x1e, 0x04, 0x92, 0x53, 0xca, 0x58, 0x1b, 0x11, 0x92, 0xe0, 0xb6, 0x42, 0x01, 0x07, 0x1e, 0xa0,
+ 0x95, 0xe0, 0x46, 0x56, 0x5b, 0x1d, 0x4d, 0x3e, 0x46, 0x24, 0xaa, 0x68, 0x38, 0xa8, 0x95, 0x3c,
+ 0xab, 0x70, 0x23, 0x2b, 0xcc, 0xef, 0xc7, 0x1f, 0x23, 0x12, 0x55, 0x34, 0x1c, 0x54, 0xab, 0x1e,
+ 0xb3, 0x1f, 0xf4, 0xd6, 0x85, 0x71, 0xdb, 0x0b, 0xf4, 0xad, 0x13, 0xdd, 0x77, 0x86, 0xb3, 0x9e,
+ 0xeb, 0x9b, 0x0e, 0x77, 0x76, 0x78, 0x26, 0x7f, 0x0e, 0x7d, 0xc7, 0x08, 0x56, 0x61, 0xeb, 0xd9,
+ 0xfa, 0x9d, 0xd5, 0xec, 0xd9, 0x0c, 0xd1, 0x87, 0xd5, 0xed, 0x2a, 0x6b, 0xb6, 0x84, 0xfa, 0x29,
+ 0x2a, 0x29, 0x38, 0x1f, 0x1b, 0x23, 0x98, 0x3f, 0x38, 0x37, 0x9a, 0x20, 0x9b, 0x47, 0x2a, 0xe2,
+ 0xac, 0x57, 0x27, 0x09, 0x2f, 0x08, 0x9e, 0xfa, 0x27, 0xb6, 0x8d, 0xf3, 0x65, 0xf8, 0xac, 0x8f,
+ 0x2d, 0x0e, 0x3c, 0x3d, 0xf8, 0xc4, 0xc1, 0xda, 0x3c, 0x93, 0x42, 0xe7, 0xe2, 0xeb, 0x2d, 0x73,
+ 0x25, 0x2b, 0x71, 0xd7, 0x7e, 0x0f, 0x74, 0xd6, 0x71, 0x47, 0xc1, 0x01, 0x7a, 0xa5, 0x25, 0xb2,
+ 0x4a, 0x56, 0xe2, 0x6d, 0xfc, 0x1e, 0xe8, 0x6f, 0xe2, 0x8e, 0x41, 0x02, 0xf4, 0x89, 0x4a, 0xa7,
+ 0xb0, 0xcb, 0x37, 0x81, 0x25, 0x12, 0x39, 0xe8, 0x37, 0x63, 0x6b, 0x69, 0x42, 0x0d, 0xb0, 0x8e,
+ 0x41, 0xa7, 0x6c, 0xd0, 0xda, 0xb6, 0xbf, 0x80, 0x6c, 0x94, 0xba, 0x50, 0x59, 0x4c, 0x41, 0x76,
+ 0x30, 0xde, 0x6d, 0x39, 0x92, 0xff, 0x38, 0x28, 0x6d, 0xbd, 0x8c, 0x11, 0xd6, 0x67, 0x30, 0xc3,
+ 0x33, 0x0a, 0xae, 0x6e, 0x32, 0x9c, 0xda, 0xcb, 0xae, 0x73, 0xf4, 0xa5, 0xe3, 0xec, 0x33, 0xd3,
+ 0x65, 0xc0, 0x5c, 0x8b, 0xc4, 0x98, 0x95, 0xb6, 0x5c, 0x28, 0x53, 0x3d, 0x30, 0x90, 0x65, 0x75,
+ 0x8b, 0xe4, 0xd4, 0x05, 0x91, 0x45, 0x56, 0x2f, 0xd4, 0xc4, 0x1c, 0x2a, 0x39, 0xaf, 0x8b, 0x9c,
+ 0xef, 0x68, 0xc9, 0x02, 0x35, 0xfc, 0x9d, 0x79, 0xc9, 0x17, 0x67, 0x7b, 0x1a, 0x46, 0xef, 0x58,
+ 0x09, 0x69, 0x0c, 0x66, 0xe6, 0xea, 0xeb, 0xec, 0x0c, 0x2f, 0xab, 0x8a, 0x8b, 0x37, 0x09, 0x70,
+ 0x9b, 0xae, 0x4e, 0x12, 0x5e, 0x10, 0xff, 0x37, 0x4e, 0xaf, 0xd9, 0x25, 0xca, 0x33, 0x9b, 0xdd,
+ 0x6f, 0x7d, 0x93, 0xba, 0x82, 0x11, 0x9c, 0xb9, 0x93, 0xc9, 0x80, 0x03, 0x8e, 0x2c, 0x6f, 0x15,
+ 0x84, 0xe6, 0x9d, 0xcd, 0xf4, 0x69, 0xba, 0xc6, 0x9d, 0xb4, 0x47, 0x0b, 0xd8, 0x4d, 0x84, 0xcc,
+ 0x15, 0xf5, 0x1c, 0xee, 0xec, 0xf0, 0x4c, 0xfe, 0x1c, 0xfa, 0x4d, 0x10, 0xac, 0xc2, 0x15, 0x71,
+ 0x75, 0x8a, 0xc6, 0x9c, 0x0b, 0xcd, 0x3c, 0xae, 0xc6, 0x43, 0x96, 0x32, 0xc3, 0x0c, 0x75, 0x34,
+ 0x61, 0x33, 0x9b, 0xfe, 0x87, 0x1c, 0x2e, 0xb0, 0x9b, 0x42, 0xf3, 0x4e, 0x7c, 0xb7, 0x61, 0xf4,
+ 0xf9, 0x49, 0x16, 0xbb, 0x79, 0x6f, 0x33, 0x64, 0x16, 0x23, 0x52, 0xdf, 0x83, 0x0f, 0xf9, 0x39,
+ 0x12, 0xd2, 0x18, 0xcc, 0x0f, 0x17, 0x15, 0x1b, 0x18, 0x5e, 0x95, 0xd7, 0xd5, 0x6e, 0x12, 0xe0,
+ 0x70, 0x35, 0x40, 0x65, 0x28, 0x68, 0xd9, 0x48, 0x40, 0xd2, 0x1e, 0x2d, 0x9c, 0x52, 0x70, 0x04,
+ 0xa3, 0x55, 0x6e, 0xc1, 0x4a, 0x24, 0x72, 0x13, 0x6e, 0xc6, 0xd6, 0xd2, 0x84, 0x1a, 0xa3, 0xdf,
+ 0x9c, 0x89, 0x4a, 0x30, 0xbd, 0xf7, 0xa6, 0xd2, 0x4a, 0x0b, 0x01, 0xe2, 0xb3, 0x9f, 0x9c, 0x4c,
+ 0x4e, 0xa5, 0x25, 0x18, 0xbf, 0x9a, 0x53, 0x69, 0x25, 0xe4, 0xe1, 0x71, 0xb8, 0xae, 0x4e, 0x26,
+ 0xa9, 0xe8, 0xa1, 0xf0, 0x0c, 0xad, 0x7b, 0x1c, 0xa1, 0x27, 0x05, 0xec, 0x3a, 0xa6, 0xa9, 0xbf,
+ 0x7b, 0xc4, 0xce, 0xd8, 0x0e, 0xc0, 0x8e, 0xa7, 0xce, 0xc8, 0xe5, 0x7f, 0x31, 0x97, 0x7b, 0xd5,
+ 0x47, 0xcc, 0x29, 0x7e, 0x59, 0x70, 0xb8, 0x85, 0x29, 0xcb, 0x4a, 0xfb, 0x33, 0x99, 0x47, 0x56,
+ 0xe9, 0x03, 0x8c, 0xac, 0xb6, 0x3a, 0x9a, 0x7c, 0x8c, 0x48, 0x97, 0xd0, 0x70, 0x93, 0xe9, 0x78,
+ 0x7a, 0x88, 0x8f, 0x54, 0x6e, 0xe1, 0xd0, 0x47, 0x8f, 0x33, 0xcd, 0x13, 0x22, 0xee, 0x7a, 0x64,
+ 0xf1, 0x6c, 0x5b, 0x51, 0xff, 0xa4, 0x86, 0x68, 0x5b, 0xf7, 0xd1, 0x39, 0x1b, 0x41, 0xf1, 0xf8,
+ 0xc4, 0x0d, 0xb0, 0x91, 0x4e, 0xfe, 0x5b, 0xa6, 0xb0, 0xdb, 0xd5, 0x37, 0x92, 0x78, 0xc4, 0x0b,
+ 0xaf, 0x83, 0xe4, 0x5e, 0x8f, 0x6b, 0x7c, 0x19, 0xe4, 0x78, 0xf5, 0x47, 0x50, 0x73, 0xaf, 0x9f,
+ 0x68, 0x5a, 0x97, 0x98, 0x61, 0xf6, 0xc5, 0x5c, 0x97, 0x6d, 0x58, 0xc4, 0xf7, 0x80, 0x68, 0x84,
+ 0xbe, 0x85, 0x3f, 0xc5, 0x20, 0x1f, 0x8b, 0xe1, 0x3f, 0xe8, 0x18, 0x24, 0xb0, 0x96, 0xbe, 0x6f,
+ 0xbf, 0xc9, 0x7e, 0x49, 0x40, 0x3e, 0xd5, 0x01, 0x7e, 0x13, 0x30, 0x48, 0xa3, 0xef, 0xbf, 0xde,
+ 0x2e, 0xda, 0xff, 0x6a, 0x58, 0xa7, 0x23, 0x39, 0xff, 0x5d, 0x3a, 0x53, 0xd7, 0x60, 0x2e, 0x63,
+ 0x48, 0xce, 0x60, 0xb6, 0x3c, 0x5c, 0x54, 0x6c, 0x60, 0xbb, 0x11, 0xda, 0xd2, 0x7b, 0x48, 0x06,
+ 0xce, 0xb0, 0x7f, 0xa0, 0x08, 0x77, 0x52, 0xa9, 0x7f, 0x3a, 0x06, 0x09, 0x2c, 0xc4, 0xce, 0x6b,
+ 0x3d, 0x44, 0xa6, 0x2a, 0x37, 0x91, 0x68, 0xc2, 0xa6, 0xf8, 0x87, 0xe8, 0x11, 0x77, 0x3d, 0x32,
+ 0x32, 0x46, 0xef, 0xe2, 0x52, 0xbd, 0x84, 0x2b, 0xef, 0x88, 0xdc, 0xc9, 0xf0, 0x95, 0x32, 0x62,
+ 0xe6, 0x01, 0xc5, 0x64, 0xd3, 0x16, 0x76, 0x95, 0xc5, 0x38, 0xcc, 0xf1, 0x91, 0x71, 0xe6, 0x28,
+ 0x6b, 0x8e, 0x54, 0xcf, 0xc1, 0x95, 0x27, 0xbf, 0x54, 0xa3, 0x20, 0x70, 0xc2, 0x0b, 0x6b, 0x94,
+ 0xbb, 0x3a, 0xb9, 0x3c, 0x03, 0xba, 0x6e, 0x07, 0xb9, 0x79, 0x90, 0x3b, 0xef, 0xc8, 0xbb, 0x5f,
+ 0x91, 0x13, 0x81, 0x23, 0x18, 0x99, 0xf6, 0x38, 0x81, 0x4e, 0x0a, 0x1b, 0x74, 0x8f, 0x91, 0xbd,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x83, 0xc1, 0x99, 0xef, 0x17, 0x8e, 0xe3, 0x23, 0x99, 0x10, 0x9f, 0xcc, 0xa1, 0xe1, 0x83, 0x5d,
+ 0xe0, 0x6a, 0x80, 0xca, 0x50, 0xd0, 0x71, 0x90, 0x80, 0x67, 0x3c, 0x5a, 0xfb, 0xa4, 0xe0, 0x08,
+ 0x82, 0x8d, 0xd8, 0x63, 0x77, 0xaf, 0xbd, 0xc3, 0xd8, 0xeb, 0xb7, 0xa0, 0xb2, 0x98, 0x82, 0xec,
+ 0xd7, 0x93, 0xe9, 0xd1, 0x21, 0xc8, 0x10, 0x5d, 0xe9, 0x7e, 0x68, 0x8c, 0x54, 0x6f, 0xd7, 0x5a,
+ 0xf2, 0xb8, 0x98, 0x06, 0x5f, 0xc7, 0x64, 0x8b, 0x98, 0x39, 0xa9, 0x8d, 0x2e, 0xca, 0xf2, 0xe8,
+ 0xcd, 0x64, 0xbc, 0xf7, 0xa8, 0x14, 0xb0, 0x4a, 0xbc, 0xf4, 0x7e, 0xbd, 0x19, 0x4f, 0xcd, 0x7b,
+ 0x78, 0x10, 0x0d, 0x8f, 0xae, 0xa3, 0x6c, 0x44, 0x0d, 0x06, 0x9d, 0xcb, 0x04, 0x1c, 0x78, 0xc5,
+ 0xc0, 0xfe, 0x77, 0xe4, 0x0d, 0x7a, 0xe0, 0xa0, 0x77, 0xb1, 0x75, 0x44, 0xde, 0x5f, 0xc0, 0x8a,
+ 0x63, 0xab, 0x19, 0x25, 0x47, 0x5e, 0x92, 0xb3, 0x19, 0x77, 0xa3, 0x96, 0x5a, 0x45, 0x63, 0x55,
+ 0x87, 0x32, 0x5e, 0x9a, 0x54, 0x0a, 0x58, 0x25, 0x5e, 0x7a, 0x3f, 0xbf, 0xed, 0xc6, 0x87, 0xdc,
+ 0xfc, 0xf6, 0x90, 0x42, 0x5a, 0xca, 0xd6, 0x82, 0x90, 0xb2, 0xda, 0xc0, 0xdc, 0x51, 0xfc, 0x09,
+ 0x94, 0xac, 0x07, 0xda, 0x3b, 0x3c, 0x13, 0xde, 0x07, 0xdf, 0x82, 0x04, 0x2b, 0xd1, 0x94, 0x8d,
+ 0x08, 0x25, 0x4d, 0xea, 0x86, 0xcb, 0xb5, 0x0c, 0x4d, 0xd4, 0x83, 0xe6, 0x98, 0x4e, 0x08, 0xc1,
+ 0x81, 0x59, 0x1b, 0x34, 0xd7, 0xcc, 0x5f, 0x20, 0x1b, 0x25, 0xcf, 0x14, 0x87, 0x13, 0x81, 0xfc,
+ 0x17, 0x6d, 0x9e, 0x35, 0x2c, 0xb2, 0xf0, 0xfd, 0x9e, 0xcf, 0x1d, 0xc8, 0x8a, 0x30, 0x17, 0xd0,
+ 0x62, 0xe7, 0x58, 0xa9, 0x27, 0x7f, 0xcc, 0x53, 0x58, 0x8c, 0x8b, 0xfa, 0x49, 0x3c, 0x62, 0xe4,
+ 0xd8, 0x91, 0xa0, 0x19, 0x44, 0xe4, 0xfc, 0xb4, 0xa0, 0x0e, 0x33, 0xad, 0xb5, 0x8d, 0xd8, 0x0a,
+ 0x31, 0x92, 0x2c, 0xb5, 0xf2, 0xde, 0x66, 0xc8, 0x2c, 0x46, 0xa4, 0x7d, 0xc5, 0x1e, 0x31, 0x72,
+ 0x10, 0x4a, 0x9a, 0x17, 0xcf, 0x55, 0xa9, 0x18, 0x9a, 0x6b, 0xc5, 0x0f, 0xf3, 0x9c, 0x10, 0x41,
+ 0x21, 0xd8, 0xb6, 0xa2, 0x3d, 0x8b, 0xcf, 0xd0, 0xb6, 0x2d, 0x61, 0x72, 0x36, 0x82, 0x21, 0x33,
+ 0xda, 0x09, 0x22, 0xc2, 0x84, 0xa6, 0x40, 0xb7, 0x22, 0x3b, 0x63, 0x75, 0x93, 0x7f, 0xda, 0xab,
+ 0x66, 0x14, 0x9f, 0xdc, 0x64, 0xfb, 0x77, 0x55, 0x9f, 0xe6, 0x2b, 0x89, 0x05, 0x1b, 0x66, 0x65,
+ 0x39, 0xb7, 0x61, 0x5f, 0x74, 0x15, 0xd3, 0xc4, 0x61, 0x92, 0x27, 0x9b, 0x5d, 0x50, 0x39, 0xb3,
+ 0xfd, 0xba, 0xd1, 0xce, 0x3a, 0xeb, 0x88, 0x62, 0xd1, 0x49, 0xf2, 0xac, 0xcf, 0x28, 0xfd, 0xb8,
+ 0x0e, 0x4e, 0x08, 0x44, 0x05, 0x0d, 0xb2, 0x09, 0x08, 0x8b, 0x73, 0x4d, 0xf2, 0x9b, 0x0e, 0xe1,
+ 0x6e, 0x31, 0xd2, 0x36, 0xe2, 0x30, 0xc2, 0x59, 0xd2, 0x32, 0xa8, 0x6f, 0x9d, 0x55, 0x6e, 0xa4,
+ 0x8f, 0x17, 0x13, 0x70, 0xd2, 0xc1, 0xed, 0x29, 0x13, 0xae, 0xbc, 0x59, 0x75, 0x88, 0x8f, 0x1d,
+ 0x99, 0x36, 0xcc, 0xc9, 0x9e, 0x52, 0x43, 0x34, 0xcc, 0x9a, 0x89, 0xfd, 0xec, 0xc1, 0x99, 0x7c,
+ 0x6d, 0xe5, 0x11, 0x61, 0x42, 0x53, 0x20, 0xba, 0x11, 0xfc, 0xd0, 0xdb, 0xa8, 0xde, 0x6d, 0xb4,
+ 0xf3, 0xf4, 0xd9, 0x8a, 0x3f, 0xe6, 0x3a, 0x6b, 0xd9, 0xc2, 0x81, 0xe1, 0x3d, 0xb3, 0xf3, 0x59,
+ 0xde, 0xfa, 0xe5, 0xb7, 0xc7, 0x22, 0xfb, 0xb1, 0xe5, 0x51, 0xc3, 0x06, 0xdf, 0x58, 0xde, 0x2a,
+ 0x88, 0x30, 0x17, 0x52, 0x31, 0x26, 0xb4, 0xcc, 0x17, 0x0a, 0x64, 0x9e, 0x0c, 0x24, 0x88, 0x8c,
+ 0x0d, 0x9a, 0xcb, 0x13, 0xa5, 0x6e, 0x50, 0xea, 0xcb, 0x45, 0x0b, 0xf9, 0xc7, 0x10, 0x0d, 0xf1,
+ 0x8d, 0x8f, 0x91, 0xab, 0x12, 0x83, 0x51, 0x2a, 0x91, 0x9b, 0xec, 0x81, 0x53, 0x7a, 0x8d, 0xbc,
+ 0xd4, 0x47, 0x2a, 0x86, 0x81, 0xab, 0xf2, 0xbe, 0x2a, 0xb0, 0x10, 0x38, 0x61, 0xe4, 0xd4, 0x4a,
+ 0x5b, 0x50, 0x39, 0xf6, 0x53, 0x6a, 0x1f, 0x97, 0x39, 0x1e, 0xac, 0x61, 0x14, 0x6c, 0x5b, 0x57,
+ 0xd1, 0xf8, 0xac, 0x7f, 0xa2, 0x0e, 0x17, 0x58, 0xac, 0x21, 0x98, 0x27, 0x3e, 0xba, 0xd1, 0x7a,
+ 0x5d, 0x3b, 0x7c, 0x58, 0xd0, 0xac, 0x18, 0x92, 0x7c, 0x41, 0x5c, 0xca, 0x7e, 0xb9, 0x5d, 0x77,
+ 0x03, 0xd4, 0xc3, 0x57, 0xa0, 0x63, 0xe2, 0xe3, 0xc3, 0xce, 0x78, 0xb4, 0x35, 0x8b, 0x03, 0x10,
+ 0xc8, 0xdb, 0x3a, 0x0e, 0x8b, 0xb1, 0x55, 0xac, 0x3a, 0x65, 0xf6, 0xa2, 0x46, 0x11, 0xc8, 0x4b,
+ 0xc1, 0xb2, 0x36, 0x68, 0x6d, 0x5b, 0xbe, 0x40, 0x36, 0x4a, 0x5d, 0x28, 0xcd, 0x26, 0xc1, 0x3b,
+ 0x77, 0x12, 0x44, 0x47, 0xcb, 0x8f, 0x80, 0xad, 0x44, 0x76, 0xc6, 0xea, 0xe5, 0xfe, 0x77, 0x95,
+ 0x3a, 0x63, 0xa2, 0x08, 0xd4, 0x76, 0x31, 0x27, 0xa2, 0x5c, 0x5f, 0x2f, 0x68, 0xdb, 0x3a, 0xa3,
+ 0xf6, 0x4b, 0x5f, 0x73, 0x1c, 0x43, 0xdf, 0x8d, 0x5f, 0x53, 0x09, 0xfe, 0x62, 0xed, 0xf6, 0x69,
+ 0xb9, 0xa2, 0x3b, 0xe7, 0xc3, 0xf8, 0xd2, 0x04, 0x3b, 0x4c, 0xc0, 0xe3, 0xc9, 0x3a, 0xb9, 0xfe,
+ 0xa1, 0xcd, 0xec, 0x1a, 0x8a, 0x66, 0xce, 0x10, 0xec, 0xf3, 0x86, 0x0a, 0xa2, 0xe8, 0xa1, 0x7e,
+ 0xc6, 0x95, 0x32, 0x4a, 0x8e, 0xbc, 0xe7, 0xa5, 0x32, 0xee, 0x85, 0xef, 0xb4, 0x8a, 0xc6, 0xaa,
+ 0x7d, 0xaf, 0x8b, 0x76, 0x8d, 0x06, 0x89, 0xa2, 0x8b, 0x97, 0x15, 0xd4, 0x5b, 0x42, 0x7d, 0xf5,
+ 0x24, 0x67, 0x30, 0x5b, 0x1e, 0x2e, 0x2a, 0x36, 0x30, 0xbc, 0xe9, 0x6d, 0x69, 0xdc, 0x24, 0x03,
+ 0xdf, 0xb6, 0xa4, 0x3b, 0xa7, 0x03, 0xa5, 0x51, 0xa4, 0xaa, 0xeb, 0x6a, 0xcc, 0x21, 0xdf, 0x9b,
+ 0x64, 0x8c, 0x1d, 0x07, 0xa4, 0xb9, 0xcb, 0x56, 0x1d, 0xd3, 0x7b, 0x51, 0x23, 0xe9, 0x64, 0xc4,
+ 0x23, 0x40, 0x34, 0x79, 0xfd, 0xc9, 0x73, 0xd3, 0x34, 0x18, 0x31, 0xaa, 0x10, 0x70, 0x23, 0x92,
+ 0x73, 0xe1, 0x83, 0x32, 0x88, 0x0b, 0x3b, 0xab, 0x83, 0x1c, 0x66, 0x99, 0xa9, 0xd9, 0x73, 0x14,
+ 0x69, 0x16, 0xd6, 0x14, 0x01, 0xd7, 0x9b, 0xbc, 0xd6, 0x96, 0x70, 0xa8, 0xe4, 0xf9, 0x69, 0x35,
+ 0x18, 0x6f, 0xd7, 0xfd, 0x49, 0x9e, 0x1c, 0x14, 0xd7, 0xbf, 0x46, 0xe9, 0x6b, 0xd2, 0x18, 0x80,
+ 0xbc, 0x1d, 0xbd, 0x1e, 0xe0, 0x5d, 0x37, 0xe2, 0xbd, 0xdd, 0x48, 0xfc, 0x96, 0x64, 0xbc, 0xce,
+ 0x42, 0x73, 0xaf, 0x87, 0x7a, 0xd5, 0x5d, 0x63, 0xaf, 0x5a, 0xc2, 0xe4, 0x6c, 0xc7, 0x42, 0x66,
+ 0x1f, 0x48, 0xd3, 0xdf, 0xaa, 0x79, 0x45, 0xf1, 0xd3, 0x1b, 0x9e, 0x2e, 0x12, 0x7e, 0x1f, 0x11,
+ 0x98, 0x7a, 0x8d, 0x45, 0xfe, 0x73, 0x1d, 0xd4, 0x8d, 0x61, 0xa1, 0x91, 0xff, 0xb8, 0x98, 0xcd,
+ 0x53, 0x75, 0x74, 0x1c, 0xd5, 0xa1, 0xaa, 0x9b, 0x74, 0xca, 0x2f, 0x87, 0x8c, 0x22, 0x53, 0x96,
+ 0xe4, 0x99, 0x47, 0xbf, 0x13, 0x54, 0xca, 0x96, 0x47, 0x0d, 0x9c, 0x29, 0xb7, 0x83, 0xe4, 0x89,
+ 0xae, 0xcf, 0xa5, 0xd2, 0xef, 0x4a, 0x22, 0xf9, 0xa5, 0x83, 0xdd, 0x2b, 0x43, 0x0a, 0xae, 0x2e,
+ 0xd9, 0xdd, 0xe1, 0x95, 0x24, 0xc5, 0xa2, 0x54, 0xe1, 0xf5, 0x1b, 0xc1, 0xa6, 0xf4, 0xd9, 0xbb,
+ 0x22, 0x0c, 0x75, 0xf5, 0x9d, 0xe8, 0x2d, 0x33, 0x75, 0xe3, 0x19, 0xc6, 0x03, 0x09, 0x22, 0x23,
+ 0x52, 0x39, 0x35, 0x90, 0xb5, 0x80, 0xf4, 0x7b, 0x35, 0x31, 0x07, 0xeb, 0x9f, 0x5b, 0x52, 0x27,
+ 0x05, 0xbf, 0x86, 0xf9, 0x23, 0xa5, 0xe5, 0xe6, 0x86, 0x91, 0x88, 0x1f, 0x5f, 0x5e, 0x05, 0x30,
+ 0x6c, 0xa9, 0x50, 0xed, 0x22, 0x72, 0x7e, 0x5a, 0x50, 0x07, 0xf8, 0xb7, 0xbb, 0xa7, 0x6c, 0x05,
+ 0xd3, 0x60, 0x2e, 0xa4, 0x62, 0x4c, 0xab, 0x5b, 0x2e, 0x14, 0xc8, 0xff, 0x18, 0x48, 0xd3, 0xdb,
+ 0xff, 0x22, 0x53, 0x15, 0xfa, 0xa9, 0x34, 0x61, 0x53, 0x7c, 0xa2, 0x74, 0xe9, 0xda, 0xff, 0x19,
+ 0x9a, 0xe2, 0x0f, 0x9e, 0x3e, 0x31, 0xa1, 0xd7, 0x0f, 0x54, 0xf1, 0x49, 0xd9, 0x4a, 0x9a, 0x6c,
+ 0x2c, 0x42, 0x7d, 0xb1, 0x98, 0xe5, 0x9f, 0x3a, 0x7d, 0x68, 0x6a, 0x8b, 0xf1, 0x92, 0x2c, 0xc2,
+ 0x29, 0xfd, 0xfb, 0x48, 0xbb, 0x40, 0x7a, 0xdc, 0xfb, 0xf9, 0xe2, 0x94, 0xae, 0xcc, 0x29, 0xf2,
+ 0x5e, 0xef, 0xbf, 0x0f, 0x70, 0xcf, 0xfa, 0x71, 0xbf, 0x8f, 0x24, 0x7e, 0x4b, 0x32, 0x5e, 0x67,
+ 0x57, 0x86, 0xb3, 0x69, 0x96, 0x25, 0x11, 0x9d, 0xb3, 0xa0, 0x8f, 0xf4, 0xc0, 0x05, 0x57, 0x17,
+ 0xed, 0xf0, 0x4b, 0xd9, 0xf5, 0xbe, 0x21, 0x7a, 0x4b, 0x22, 0x37, 0xa3, 0x3c, 0xb4, 0xed, 0xf9,
+ 0x46, 0x80, 0x68, 0xf2, 0x39, 0x51, 0xe6, 0x65, 0x68, 0x30, 0x62, 0x97, 0x20, 0xe0, 0x46, 0xe7,
+ 0x34, 0x2d, 0xaa, 0x4c, 0xd1, 0x7b, 0x83, 0x2e, 0xaa, 0xd7, 0x2c, 0x62, 0x9a, 0x40, 0x34, 0x42,
+ 0x72, 0xad, 0xc2, 0xbe, 0xe8, 0x2a, 0x65, 0x4b, 0xc2, 0xe7, 0x4e, 0xf5, 0xba, 0xa0, 0x72, 0xa5,
+ 0xb5, 0x74, 0xb1, 0x78, 0x06, 0xb7, 0xdc, 0x0e, 0xb1, 0xf2, 0xe3, 0x76, 0x1d, 0x53, 0xb5, 0xbe,
+ 0x11, 0x06, 0xdb, 0x9b, 0xaf, 0x74, 0xf7, 0xf8, 0xdb, 0x90, 0xed, 0x63, 0xe0, 0xe5, 0x11, 0xf0,
+ 0xe2, 0xf2, 0x02, 0x11, 0x90, 0x92, 0xcd, 0x93, 0x02, 0x52, 0x6c, 0x82, 0xdd, 0x56, 0xe2, 0xa9,
+ 0xd6, 0xdf, 0xa8, 0x5d, 0x41, 0xe9, 0x4e, 0xbd, 0xa8, 0x85, 0x40, 0xe0, 0x47, 0x16, 0xd6, 0xeb,
+ 0xee, 0x24, 0x88, 0x8e, 0x55, 0xdd, 0xc3, 0x99, 0x88, 0xec, 0x4f, 0x17, 0x09, 0x3f, 0xee, 0xe9,
+ 0x90, 0x5f, 0xc0, 0xaf, 0x78, 0xb8, 0xa8, 0xd8, 0xc0, 0xb5, 0x22, 0x77, 0x67, 0xf6, 0x90, 0x0c,
+ 0x14, 0xb9, 0x5d, 0x62, 0x8c, 0xd1, 0x12, 0x1e, 0x5d, 0x01, 0x65, 0x7c, 0xbf, 0xbb, 0x14, 0xc0,
+ 0x3e, 0x90, 0x65, 0x7d, 0x97, 0xf2, 0x8a, 0x21, 0x65, 0x36, 0xff, 0x5c, 0x24, 0xfc, 0x3e, 0x22,
+ 0x86, 0x7e, 0x1f, 0x16, 0x34, 0x2b, 0x06, 0xc5, 0x1f, 0x81, 0x17, 0xd3, 0xfe, 0xbf, 0x86, 0x6d,
+ 0x49, 0x82, 0x21, 0x3a, 0x5c, 0x7d, 0x0a, 0x8c, 0x21, 0x40, 0x39, 0xb6, 0xc1, 0x02, 0x49, 0xb7,
+ 0xf7, 0x07, 0x1e, 0xff, 0x7c, 0x62, 0x81, 0x6d, 0x1e, 0xa8, 0x21, 0x92, 0x71, 0x94, 0xf7, 0xd8,
+ 0x0a, 0xbd, 0xcf, 0x31, 0x46, 0x89, 0x09, 0x0f, 0xcf, 0xe1, 0xd3, 0x3e, 0xbe, 0xbc, 0x0a, 0x60,
+ },
+ { /* 3 */
+ 0xa8, 0x78, 0x41, 0x9a, 0x63, 0x9a, 0xaa, 0xcc, 0x6d, 0x6b, 0xb6, 0x2d, 0xbf, 0x63, 0x8e, 0x1b,
+ 0xb4, 0x31, 0xad, 0x42, 0xc9, 0x42, 0x37, 0x9b, 0xc6, 0x80, 0x29, 0xcb, 0xc0, 0xc9, 0x15, 0xf8,
+ 0x96, 0xde, 0x29, 0xd5, 0x90, 0xd5, 0x18, 0x10, 0xbc, 0xed, 0x40, 0xd2, 0x7a, 0x90, 0xf0, 0x4e,
+ 0x1e, 0xe4, 0x7c, 0xcc, 0x37, 0xcc, 0xa4, 0x79, 0x97, 0x9a, 0x27, 0xb6, 0xd7, 0x37, 0xe2, 0xd3,
+ 0x8a, 0x97, 0xc5, 0x0d, 0x3a, 0x0d, 0x85, 0x47, 0x17, 0x06, 0xdf, 0x34, 0x05, 0x3a, 0x6b, 0xad,
+ 0xf5, 0x02, 0xcd, 0x8d, 0x2d, 0x8d, 0xe6, 0x05, 0x54, 0x61, 0x14, 0x71, 0xb0, 0x2d, 0x33, 0x2f,
+ 0x9f, 0x98, 0x64, 0x8f, 0x0e, 0x8f, 0x01, 0xbf, 0x52, 0x33, 0xb9, 0x79, 0xcb, 0x0e, 0x0a, 0x96,
+ 0xa5, 0xa7, 0xef, 0xe8, 0x04, 0xe8, 0xc1, 0x3f, 0xfb, 0x57, 0xfc, 0x26, 0x9d, 0x04, 0x86, 0xa3,
+ 0x13, 0x3b, 0xd2, 0xbe, 0x50, 0xbe, 0xcf, 0x8a, 0x01, 0xa6, 0x6d, 0xbd, 0xf5, 0x50, 0xea, 0x6b,
+ 0x39, 0x25, 0x53, 0x79, 0x38, 0x79, 0x04, 0xb9, 0x8b, 0xcc, 0xa1, 0x27, 0xaa, 0x38, 0x28, 0x1d,
+ 0xac, 0xe1, 0xa2, 0xb2, 0x9a, 0xb2, 0xd8, 0x90, 0x15, 0x89, 0x05, 0x8d, 0x2c, 0x9a, 0x7c, 0x7b,
+ 0x2d, 0x9d, 0xba, 0xf1, 0xa3, 0xf1, 0x7d, 0x56, 0xd0, 0x20, 0x9b, 0x42, 0x30, 0xa3, 0x94, 0x3e,
+ 0x83, 0xd1, 0x88, 0x57, 0xa4, 0x57, 0x9c, 0xe8, 0xf9, 0xd8, 0x26, 0x9f, 0xb4, 0xa4, 0x91, 0x75,
+ 0x86, 0xff, 0x23, 0x75, 0xf2, 0x75, 0x13, 0xa3, 0x9f, 0xe3, 0xc9, 0x17, 0x73, 0xf2, 0xbe, 0x0d,
+ 0xb9, 0xee, 0x03, 0x30, 0xae, 0x30, 0x5c, 0x68, 0x50, 0xbc, 0x63, 0xc0, 0xe2, 0xae, 0x1d, 0x40,
+ 0x76, 0xd3, 0x45, 0xda, 0x89, 0xda, 0x7a, 0xed, 0xad, 0xb9, 0x32, 0xee, 0x04, 0x89, 0xa2, 0x5a,
+ 0x0f, 0x72, 0x3e, 0x66, 0xfa, 0x66, 0x52, 0xdd, 0xaa, 0x4d, 0xf2, 0x5b, 0x8a, 0xfa, 0x71, 0x88,
+ 0x5a, 0xf9, 0xb7, 0x21, 0x85, 0x21, 0xfa, 0xac, 0x63, 0x40, 0xf5, 0x84, 0x60, 0x85, 0xeb, 0x7c,
+ 0xa0, 0x89, 0x44, 0xca, 0x52, 0xca, 0x4e, 0x74, 0x9d, 0x6c, 0x13, 0xae, 0x5a, 0x52, 0xa9, 0xdb,
+ 0x92, 0x47, 0xca, 0xfd, 0x69, 0xfd, 0x6a, 0x4c, 0xc4, 0x0f, 0xf3, 0x72, 0xe9, 0x69, 0x02, 0x2e,
+ 0xe2, 0xa0, 0xfc, 0x1b, 0x84, 0x1b, 0x5b, 0xd3, 0x2d, 0x25, 0xca, 0x6c, 0xd6, 0x84, 0x2b, 0x24,
+ 0x34, 0xfa, 0xfd, 0x0b, 0x5f, 0x0b, 0x6f, 0x4a, 0x1d, 0xf0, 0xeb, 0x2c, 0x88, 0x5f, 0x20, 0xa5,
+ 0xee, 0xc8, 0x1a, 0x63, 0x4c, 0x63, 0xcd, 0x37, 0xa5, 0xc0, 0xdc, 0x4f, 0xa0, 0x4c, 0xfe, 0x84,
+ 0x6d, 0x19, 0x92, 0x34, 0xe8, 0x34, 0x51, 0xdf, 0x5c, 0x18, 0xfa, 0xd0, 0x14, 0xe8, 0x6f, 0xf1,
+ 0x1a, 0x7d, 0x9f, 0xe4, 0xce, 0xe4, 0xd6, 0x25, 0xef, 0x78, 0x94, 0x16, 0x44, 0xce, 0x10, 0xb3,
+ 0x24, 0xdb, 0xf7, 0xab, 0x3d, 0xab, 0x64, 0xf9, 0x3e, 0xfe, 0x62, 0xe9, 0x81, 0x3d, 0x6e, 0xe6,
+ 0x1f, 0x53, 0x34, 0xc6, 0x98, 0xc6, 0x59, 0x6e, 0x89, 0x43, 0x7b, 0x9e, 0x83, 0x98, 0x3f, 0xcb,
+ 0xd2, 0xc3, 0xe2, 0x38, 0x22, 0x38, 0x46, 0xc5, 0x48, 0x37, 0x92, 0xe0, 0xcd, 0x22, 0xf9, 0xe1,
+ 0x18, 0xd0, 0x0f, 0xf0, 0x53, 0xf0, 0xef, 0x0b, 0xd3, 0x09, 0x2c, 0x46, 0xec, 0x53, 0x69, 0x83,
+ 0x37, 0xe0, 0x25, 0x15, 0x6d, 0x15, 0xab, 0x73, 0x3f, 0x58, 0x0f, 0x54, 0x74, 0x6d, 0x84, 0x8d,
+ 0x6a, 0x9a, 0xa9, 0x02, 0x23, 0x02, 0xe7, 0xba, 0x06, 0x52, 0xad, 0x08, 0x7b, 0x23, 0x39, 0xb9,
+ 0x3f, 0x11, 0x20, 0x45, 0x5c, 0x45, 0x4f, 0xcb, 0xcf, 0x5f, 0xaa, 0xd7, 0x91, 0x5c, 0xa3, 0x4d,
+ 0xae, 0x4c, 0x32, 0xa6, 0x07, 0xa6, 0xe1, 0xbe, 0x29, 0xf8, 0xbd, 0xdd, 0x84, 0x07, 0x05, 0x4b,
+ 0x10, 0x21, 0x0a, 0xa0, 0x62, 0xa0, 0x0b, 0xb3, 0x23, 0x0e, 0x89, 0xc5, 0x09, 0x62, 0x4e, 0x43,
+ 0x46, 0xb0, 0x5b, 0xf9, 0x2f, 0xf9, 0x67, 0xfb, 0xc8, 0xab, 0x6a, 0x62, 0x1f, 0x2f, 0x70, 0x9f,
+ 0x6c, 0xae, 0xda, 0x3e, 0x47, 0x3e, 0xac, 0xc8, 0x42, 0xc1, 0xa6, 0xf8, 0x40, 0x47, 0xb2, 0xe9,
+ 0xbc, 0xc0, 0xa8, 0x12, 0xf8, 0x12, 0xd3, 0x23, 0x36, 0x87, 0x8c, 0x48, 0x25, 0xf8, 0x32, 0x38,
+ 0x68, 0x37, 0x39, 0x16, 0xbe, 0x16, 0xde, 0x94, 0x3a, 0x23, 0x15, 0x58, 0xd3, 0xbe, 0x40, 0x89,
+ 0x0b, 0xeb, 0xdd, 0x4e, 0x03, 0x4e, 0x20, 0x81, 0xd2, 0xaf, 0x41, 0xfb, 0x19, 0x03, 0x83, 0xe8,
+ 0x3e, 0xa6, 0x68, 0x4f, 0xf3, 0x4f, 0xb2, 0xdc, 0xd1, 0x86, 0xf6, 0xff, 0xc5, 0xf3, 0x7e, 0x55,
+ 0xfe, 0xe9, 0x10, 0xc3, 0x2e, 0xc3, 0xc6, 0x84, 0x86, 0xce, 0x55, 0x8a, 0xa9, 0x2e, 0xb0, 0xc7,
+ 0xa9, 0xcf, 0x09, 0x90, 0xcc, 0x90, 0x57, 0xdb, 0x73, 0xb2, 0xea, 0x05, 0xeb, 0xcc, 0x53, 0x03,
+ 0x28, 0xb3, 0x11, 0xd3, 0xf5, 0xd3, 0xf2, 0x1d, 0xb6, 0x1b, 0x74, 0xca, 0xf7, 0xf5, 0xbb, 0x46,
+ 0x7c, 0x8f, 0xd0, 0x9e, 0x25, 0x9e, 0xa7, 0x7b, 0x61, 0xcf, 0x2f, 0x3d, 0x49, 0x25, 0xfc, 0xaa,
+ 0xf2, 0x81, 0xf6, 0xbb, 0xe6, 0xbb, 0x50, 0x60, 0x0e, 0x2b, 0x43, 0xa9, 0xdf, 0xe6, 0x65, 0x67,
+ 0xbf, 0xda, 0x70, 0x0c, 0xca, 0x0c, 0x17, 0x1a, 0x14, 0x2f, 0x68, 0x30, 0xd9, 0xca, 0x96, 0x10,
+ 0xf4, 0xb5, 0x85, 0x87, 0x82, 0x87, 0x1b, 0x12, 0x4a, 0xb8, 0x48, 0x59, 0xe4, 0x82, 0xee, 0x37,
+ 0xcb, 0xa4, 0xa5, 0xc2, 0xde, 0xc2, 0x54, 0xd9, 0x85, 0xe7, 0xe2, 0x8e, 0x75, 0xde, 0x4d, 0x7a,
+ 0x06, 0x34, 0x73, 0x3c, 0x64, 0x3c, 0x4b, 0x72, 0x44, 0x93, 0x0b, 0xf0, 0x3b, 0x64, 0x8b, 0x50,
+ 0xf8, 0xdd, 0x63, 0xff, 0x4a, 0xff, 0x8d, 0xf6, 0xc2, 0x5d, 0x5e, 0x7a, 0x92, 0x4a, 0x3b, 0x97,
+ 0xbd, 0x77, 0xe0, 0x18, 0x57, 0x18, 0x2e, 0x34, 0x28, 0x5e, 0xd0, 0x60, 0x71, 0x57, 0xef, 0x20,
+ 0x75, 0xc9, 0x9d, 0xc4, 0xbb, 0xc4, 0xbe, 0xd4, 0x8f, 0x11, 0xd6, 0x96, 0xf8, 0xbb, 0x06, 0x72,
+ 0x03, 0x1a, 0xd8, 0x1e, 0x32, 0x1e, 0xc4, 0x39, 0x22, 0xa8, 0xe4, 0x78, 0xfc, 0x32, 0xa4, 0x28,
+ 0x4c, 0xec, 0xce, 0xbd, 0x83, 0xbd, 0xba, 0x6d, 0x04, 0xdd, 0x77, 0xb1, 0x52, 0x83, 0x2e, 0x6f,
+ 0x4b, 0x6f, 0xf5, 0x8b, 0x48, 0x8b, 0x0c, 0x08, 0x5e, 0x97, 0x20, 0x69, 0x3d, 0x48, 0x78, 0x27,
+ 0xc0, 0x4f, 0x78, 0x8c, 0xdd, 0x8c, 0x74, 0x58, 0x57, 0x48, 0xa3, 0x75, 0x6c, 0xdd, 0xce, 0x92,
+ 0x04, 0x99, 0xe3, 0x28, 0xf9, 0x28, 0x72, 0x5c, 0x78, 0xe2, 0xb3, 0xa0, 0x93, 0xf9, 0xf2, 0x60,
+ 0xb3, 0xb2, 0x96, 0x74, 0x02, 0x74, 0x81, 0xfe, 0x9c, 0xca, 0x7e, 0x13, 0xaf, 0x02, 0x43, 0xb0,
+ 0xb6, 0x9c, 0x3d, 0x56, 0x54, 0x56, 0x0e, 0xb5, 0xfa, 0xf1, 0x91, 0x9b, 0x68, 0x54, 0x6c, 0xc8,
+ 0x51, 0x12, 0x6a, 0x6f, 0x86, 0x6f, 0xda, 0x2d, 0xb1, 0xef, 0xb4, 0x7f, 0x79, 0x86, 0x68, 0x94,
+ 0xeb, 0xe6, 0xb1, 0x41, 0x1a, 0x41, 0x42, 0x7c, 0xc3, 0xfb, 0x33, 0xc7, 0x67, 0x1a, 0xd1, 0xfc,
+ 0x98, 0x1b, 0x5f, 0xb9, 0xc5, 0xb9, 0xb7, 0xda, 0x08, 0x79, 0xee, 0xa1, 0xa4, 0xc5, 0x5c, 0xde,
+ 0x23, 0x58, 0xcc, 0x9d, 0xf6, 0x9d, 0xd2, 0x9c, 0x64, 0xb4, 0x35, 0x31, 0xee, 0xf6, 0x38, 0xae,
+ 0xab, 0x62, 0x99, 0x84, 0x51, 0x84, 0x6e, 0xf5, 0x4f, 0xc3, 0x52, 0x55, 0x43, 0x51, 0x2a, 0x33,
+ 0xb2, 0x05, 0xde, 0x7e, 0xad, 0x7e, 0x7c, 0xe9, 0x82, 0x13, 0x22, 0x3b, 0xfb, 0xad, 0x9e, 0xa8,
+ 0x99, 0xac, 0x17, 0xb3, 0x6a, 0xb3, 0x4a, 0xcd, 0x16, 0xa0, 0xb2, 0x89, 0xf0, 0x6a, 0x81, 0xc6,
+ 0x89, 0x8d, 0x1d, 0x13, 0x08, 0x13, 0x41, 0x7e, 0x35, 0xae, 0x3b, 0x4c, 0xf9, 0x08, 0xcf, 0x85,
+ 0xdf, 0x1c, 0x4c, 0x4a, 0x45, 0x4a, 0x2d, 0x36, 0xde, 0x0b, 0xd8, 0xeb, 0xef, 0x45, 0xf1, 0x59,
+ 0x0d, 0xdf, 0xae, 0x72, 0x67, 0x72, 0x6b, 0xf3, 0x96, 0x3c, 0x4a, 0x0b, 0x22, 0x67, 0x08, 0xb8,
+ 0x31, 0xd4, 0x56, 0x29, 0x09, 0x29, 0xe0, 0x01, 0x7b, 0xcb, 0x04, 0xa4, 0x4f, 0x09, 0x0f, 0xdd,
+ 0x70, 0xe7, 0x36, 0xe6, 0xed, 0xe6, 0x31, 0x9f, 0xe9, 0x2a, 0x39, 0x1e, 0x3f, 0xed, 0x29, 0x0a,
+ 0x73, 0xfd, 0xee, 0xf8, 0xdf, 0xf8, 0xf5, 0xa6, 0xcb, 0x82, 0xdd, 0x66, 0xc3, 0xdf, 0x8d, 0x22,
+ 0x1d, 0xfe, 0xa4, 0xd2, 0x05, 0xd2, 0x60, 0x40, 0xb5, 0x32, 0xc3, 0xce, 0x2b, 0x05, 0x46, 0xfb,
+ 0x8d, 0x14, 0xfe, 0x3b, 0xf1, 0x3b, 0x33, 0x22, 0x4d, 0x4c, 0x88, 0xec, 0x6a, 0xf1, 0x3d, 0xe5,
+ 0xf1, 0x9b, 0x2e, 0xa5, 0xd4, 0xa5, 0x94, 0x59, 0x2c, 0x83, 0xa7, 0xd1, 0x23, 0xd4, 0xc1, 0x4f,
+ 0x7d, 0x38, 0x98, 0x94, 0x8a, 0x94, 0x5a, 0x6c, 0x7f, 0x16, 0x73, 0x15, 0x1d, 0x8a, 0x21, 0xb2,
+ 0x17, 0xa2, 0x31, 0x96, 0xa9, 0x96, 0xbd, 0xd6, 0x79, 0x44, 0xde, 0x1d, 0x66, 0xa9, 0x18, 0x0b,
+ 0x2c, 0x2a, 0xf2, 0xfb, 0x0c, 0xfb, 0x80, 0x41, 0xce, 0xf9, 0xc7, 0x6a, 0x64, 0x0c, 0x49, 0x26,
+ 0x35, 0x4d, 0xb5, 0x01, 0xf0, 0x01, 0x92, 0x5d, 0x03, 0x29, 0xb7, 0x04, 0xdc, 0xf0, 0xfd, 0xbd,
+ 0x88, 0x3a, 0x55, 0x19, 0xa7, 0x19, 0xbc, 0x69, 0x2b, 0x77, 0x67, 0x64, 0xad, 0xa7, 0x12, 0x9d,
+ 0x67, 0x45, 0x07, 0x70, 0x44, 0x70, 0x8c, 0x49, 0x90, 0x6e, 0xe7, 0x03, 0x59, 0x44, 0x31, 0x01,
+ 0xe1, 0xba, 0x24, 0x05, 0xb6, 0x05, 0x9f, 0xea, 0x0f, 0x8d, 0x2e, 0x14, 0x2a, 0xb6, 0x8f, 0x0c,
+ 0xb5, 0x86, 0xe5, 0x48, 0x66, 0x48, 0xca, 0x8c, 0xd8, 0x59, 0x75, 0xe3, 0x94, 0x66, 0xc8, 0xe0,
+ 0x64, 0x5f, 0xdf, 0x6e, 0x76, 0x6e, 0x48, 0x70, 0xb2, 0xc6, 0x03, 0x7b, 0xa5, 0x76, 0x95, 0x29,
+ 0xb1, 0x1f, 0x06, 0x60, 0x9f, 0x60, 0xb8, 0xd0, 0xa0, 0xbb, 0xc6, 0x43, 0x07, 0x9f, 0x3a, 0x80,
+ 0x08, 0xf1, 0x05, 0x50, 0x31, 0x50, 0xe4, 0xb8, 0xf0, 0x07, 0xa5, 0x83, 0xe5, 0x31, 0x27, 0xc0,
+ 0xe5, 0x23, 0xc7, 0x2d, 0x4f, 0x2d, 0xed, 0xb6, 0x77, 0x6f, 0x9d, 0xb4, 0xb9, 0x4f, 0x7d, 0x6c,
+ 0x1c, 0x49, 0xec, 0xd8, 0xaa, 0xd8, 0x9d, 0x57, 0xab, 0xeb, 0x9f, 0xe6, 0x7f, 0xaa, 0x9b, 0xe3,
+ 0x6b, 0x2d, 0xe1, 0x08, 0x8c, 0x08, 0x1a, 0xad, 0x18, 0x8b, 0xf1, 0x20, 0x2f, 0x8c, 0xe4, 0xa1,
+ 0x5c, 0xcd, 0xc4, 0x1d, 0xe1, 0x1d, 0xb1, 0xde, 0x27, 0xd3, 0xfe, 0x74, 0x5b, 0xe1, 0x60, 0x2c,
+ 0xa3, 0x93, 0x9c, 0xd4, 0x60, 0xd4, 0x8a, 0x4d, 0xbf, 0xc4, 0xf7, 0xd6, 0xa6, 0x60, 0x0d, 0xf3,
+ 0x7a, 0xbb, 0xa3, 0xa2, 0x41, 0xa2, 0xec, 0x09, 0x25, 0x5c, 0x24, 0xcd, 0x72, 0x41, 0x77, 0xfa,
+ 0xe8, 0xfc, 0x69, 0x5f, 0x28, 0x5f, 0x86, 0x45, 0xe1, 0x53, 0xd7, 0xbf, 0x9b, 0x28, 0x75, 0xd4,
+ 0xda, 0x32, 0xe7, 0x68, 0x13, 0x68, 0xa2, 0x7d, 0xb8, 0x30, 0x37, 0x63, 0x28, 0x13, 0xde, 0x21,
+ 0xd7, 0xed, 0x49, 0x1a, 0x74, 0x1a, 0xc9, 0x8e, 0x2e, 0x0c, 0x7d, 0x68, 0x0a, 0x74, 0xd6, 0x99,
+ 0xfa, 0x70, 0xf3, 0xeb, 0xd7, 0xeb, 0xb4, 0xd8, 0xfe, 0x2c, 0xe6, 0x2a, 0x3a, 0xd7, 0x42, 0xa7,
+ 0xa7, 0x0a, 0x7f, 0xfc, 0x99, 0xfc, 0xf8, 0x11, 0xc7, 0x26, 0x44, 0x76, 0x35, 0x99, 0xff, 0x93,
+ 0x7f, 0x95, 0x08, 0x80, 0x17, 0x80, 0x63, 0x42, 0x43, 0x67, 0xcb, 0x45, 0xb5, 0x17, 0x58, 0x82,
+ 0xe4, 0x94, 0x8f, 0x27, 0xe0, 0x27, 0x10, 0xa1, 0x69, 0xb6, 0xc1, 0x9c, 0xed, 0xe0, 0xa0, 0x74,
+ 0x8f, 0xb9, 0x6e, 0x2f, 0x6c, 0x2f, 0x0a, 0x0c, 0x71, 0x3d, 0x30, 0xbc, 0xc2, 0x6c, 0x44, 0xd5,
+ 0xa1, 0x3e, 0x0c, 0xc0, 0xfd, 0xc0, 0xb3, 0x63, 0x83, 0xb5, 0x4f, 0x86, 0x0e, 0xfd, 0x74, 0xc3,
+ 0x52, 0x08, 0xb2, 0x71, 0xb4, 0x71, 0x1e, 0x14, 0x93, 0x47, 0x50, 0x07, 0x85, 0xb4, 0xcc, 0xbc,
+ 0xec, 0x65, 0x8a, 0x77, 0xd1, 0x77, 0xf4, 0x19, 0x99, 0xb1, 0x64, 0x1f, 0x08, 0xd1, 0x87, 0xb4,
+ 0x3b, 0x88, 0xc3, 0x6d, 0xa5, 0x6d, 0x3d, 0x97, 0xb7, 0xbd, 0x19, 0x77, 0x02, 0xa5, 0x51, 0x2d,
+ 0xa2, 0x24, 0xd4, 0xde, 0xcf, 0xde, 0x77, 0x5a, 0xa1, 0x1d, 0xab, 0xfe, 0xf2, 0xcf, 0xd0, 0xeb,
+ 0x5f, 0xd7, 0x1c, 0x03, 0xd3, 0x03, 0x75, 0xe7, 0x05, 0x7b, 0x1a, 0x0c, 0xa7, 0xd3, 0xc4, 0x04,
+ 0x50, 0xa5, 0x22, 0x65, 0x29, 0x65, 0x27, 0x3a, 0xaf, 0x36, 0xe8, 0x57, 0x2d, 0x29, 0xb5, 0x8c,
+ 0x4a, 0xd8, 0xbd, 0x81, 0xe7, 0x81, 0xf1, 0x1f, 0x40, 0x4e, 0x7c, 0x41, 0x69, 0xe7, 0xa5, 0x3f,
+ 0x57, 0x26, 0x19, 0x53, 0xe2, 0x53, 0x91, 0x5f, 0xf5, 0x7c, 0xbf, 0x8f, 0x42, 0xe2, 0xe3, 0xc4,
+ 0x55, 0x8b, 0x89, 0x47, 0x7f, 0x47, 0xa8, 0x71, 0xc9, 0x0d, 0x07, 0xdf, 0xea, 0x7f, 0x9a, 0xf4,
+ 0xdc, 0x06, 0x94, 0x54, 0x77, 0x54, 0xe9, 0x0f, 0xfc, 0xa3, 0x3c, 0x93, 0x13, 0x77, 0x55, 0x71,
+ 0xde, 0xab, 0x04, 0x40, 0xea, 0x40, 0xd0, 0x21, 0xc0, 0xd2, 0x84, 0xc3, 0xbb, 0xea, 0x2c, 0x41,
+ 0x9d, 0x35, 0xf4, 0x9b, 0x93, 0x9b, 0x38, 0x91, 0x6e, 0x42, 0x01, 0x29, 0x63, 0x93, 0x73, 0xa6,
+ 0xe7, 0x8e, 0x57, 0x39, 0xd2, 0x39, 0xd4, 0x98, 0x4b, 0x1e, 0x25, 0xe4, 0x11, 0xd2, 0x04, 0x5c,
+ 0xaf, 0xfb, 0x7a, 0xac, 0xa8, 0xac, 0x1c, 0xa9, 0x37, 0x21, 0xe1, 0xf5, 0xd0, 0xa8, 0xd8, 0x53,
+ 0x97, 0x69, 0x61, 0xdf, 0x3f, 0xdf, 0xe5, 0x07, 0xa2, 0x34, 0x1c, 0xfa, 0x2e, 0x3f, 0x2d, 0x56,
+ 0xaa, 0xd5, 0xd1, 0x8e, 0xfe, 0x8e, 0x93, 0xe2, 0x51, 0x1a, 0x0e, 0x7d, 0x17, 0xfe, 0xf7, 0x2b,
+ 0x26, 0x76, 0x67, 0xbf, 0xa0, 0xbf, 0x5d, 0xd7, 0x02, 0x8f, 0xda, 0xb9, 0x29, 0xa0, 0x17, 0xd6,
+ 0x4d, 0x5b, 0x86, 0xb7, 0x2c, 0xb7, 0x47, 0x7a, 0x1a, 0x04, 0x2b, 0x99, 0x06, 0x2c, 0xf3, 0x77,
+ 0x54, 0x3c, 0xc1, 0x4d, 0xd0, 0x4d, 0x55, 0x66, 0xd7, 0xd4, 0x5b, 0xf7, 0xbe, 0xd0, 0x47, 0xec,
+ 0xf7, 0xaf, 0x5d, 0x99, 0xb0, 0x99, 0xdf, 0x2b, 0x68, 0x10, 0xac, 0x21, 0x18, 0xb0, 0x4a, 0x1f,
+ 0xd9, 0x28, 0x3f, 0x76, 0x21, 0x76, 0x66, 0x44, 0x9a, 0x98, 0xd3, 0x1b, 0xd4, 0x21, 0x7a, 0x09,
+ 0x84, 0x52, 0xb3, 0x61, 0x6f, 0x61, 0x2a, 0x8d, 0xa3, 0x92, 0x71, 0x47, 0xdb, 0x6f, 0xc7, 0x3d,
+ 0x41, 0x33, 0x60, 0xcf, 0xe4, 0xcf, 0xd1, 0x9e, 0x92, 0xe1, 0x3d, 0xba, 0x70, 0xe4, 0x26, 0xd7,
+ 0x82, 0x66, 0xc0, 0x5d, 0x0b, 0x5d, 0x61, 0xff, 0xe7, 0x01, 0x7a, 0xb7, 0xe0, 0x0b, 0x4c, 0x6d,
+ 0xd6, 0x5a, 0x01, 0x10, 0xdb, 0x10, 0x34, 0x99, 0x30, 0xd5, 0x21, 0x40, 0x5e, 0xdb, 0x0b, 0x81,
+ 0xb7, 0x2b, 0x75, 0x5c, 0xfb, 0x5c, 0xf3, 0xa2, 0xe4, 0x28, 0xcd, 0xb3, 0x3c, 0xfb, 0xb1, 0xd0,
+ 0xdb, 0x85, 0xaf, 0x62, 0xbc, 0x62, 0x5f, 0x6a, 0xa6, 0xe9, 0x6b, 0x4b, 0x7c, 0xbc, 0x03, 0x39,
+ 0x2b, 0xa9, 0xc9, 0xcd, 0xc7, 0xcd, 0x36, 0x24, 0x94, 0xb3, 0x90, 0xb2, 0x0b, 0xc7, 0x1f, 0x6e,
+ 0xa6, 0xbd, 0x37, 0xf6, 0x36, 0xf6, 0x05, 0x06, 0xd9, 0xff, 0x18, 0x5e, 0x61, 0x36, 0x22, 0x8b,
+ 0x38, 0x92, 0x1b, 0x73, 0x97, 0x73, 0xf9, 0xae, 0x95, 0x15, 0xfd, 0x0f, 0xfe, 0x97, 0xf5, 0x05,
+ 0xce, 0x8a, 0x0e, 0xe0, 0x88, 0xe0, 0xdb, 0x92, 0xe3, 0xdc, 0x0d, 0x06, 0xb2, 0x88, 0x62, 0x02,
+ 0x95, 0xc4, 0xf1, 0xcb, 0xa2, 0xcb, 0xdc, 0x29, 0x9e, 0x45, 0xa4, 0xaa, 0x86, 0xa2, 0x54, 0x66,
+ 0x71, 0x50, 0x7e, 0xec, 0x42, 0xec, 0xcc, 0x88, 0xf7, 0xf3, 0x65, 0x36, 0x6b, 0x42, 0xf4, 0x12,
+ 0xc3, 0x55, 0xa0, 0x92, 0xef, 0x92, 0xb0, 0x61, 0x75, 0xe0, 0x47, 0x0d, 0x90, 0xef, 0x6a, 0xba,
+ 0x8e, 0x0e, 0x26, 0x25, 0xc3, 0x25, 0xf7, 0x1b, 0x6f, 0xe4, 0x6c, 0x94, 0x96, 0xc3, 0x99, 0xcd,
+ 0x9a, 0xb6, 0xcf, 0xad, 0x58, 0xad, 0x8e, 0xf4, 0x34, 0x08, 0x56, 0xf1, 0x0c, 0x58, 0x25, 0xee,
+ 0xef, 0x7f, 0x52, 0x69, 0xe3, 0x69, 0x30, 0x20, 0xbb, 0x19, 0x80, 0x67, 0xf4, 0xe3, 0x23, 0x9c,
+ 0x25, 0x6c, 0xbf, 0xa1, 0x92, 0xa1, 0x99, 0xee, 0x20, 0x27, 0x3e, 0xc1, 0xd5, 0x92, 0xb3, 0xfe,
+ 0xa4, 0x10, 0xa7, 0xe2, 0xab, 0xe2, 0x3c, 0x28, 0xe5, 0x8e, 0xa0, 0x0e, 0xc9, 0xab, 0x5b, 0xbb,
+ 0xe9, 0x4b, 0x21, 0x55, 0x87, 0x55, 0x7b, 0x52, 0xff, 0x8a, 0x8b, 0x97, 0xcf, 0x87, 0xa8, 0xcc,
+ 0x3c, 0x0b, 0xf8, 0x5b, 0x6e, 0x5b, 0x8b, 0xf2, 0xed, 0xf7, 0x4e, 0xaf, 0x6d, 0x6e, 0x07, 0x65,
+ 0x6f, 0xb4, 0x02, 0x20, 0x75, 0x20, 0x68, 0xf1, 0x60, 0x69, 0x42, 0x80, 0xbc, 0x75, 0x16, 0xc1,
+ 0x02, 0xad, 0x90, 0x14, 0x9d, 0x14, 0x39, 0x2e, 0x3c, 0x71, 0xb8, 0x50, 0xa8, 0x9d, 0x79, 0x30,
+ 0x01, 0xb7, 0x48, 0x0a, 0xaf, 0x0a, 0xfd, 0x17, 0x1e, 0xd9, 0x5c, 0x28, 0x54, 0xaf, 0xdd, 0x18,
+ 0x0a, 0x5c, 0x95, 0x44, 0xac, 0x44, 0xdd, 0x96, 0xcc, 0x76, 0x1d, 0xd3, 0x4d, 0xac, 0x5e, 0xf0,
+ 0x09, 0x46, 0x4d, 0x5a, 0x9e, 0x5a, 0x19, 0xaf, 0xee, 0xde, 0xf9, 0xab, 0xb1, 0x9e, 0xfa, 0xd8,
+ 0x94, 0x73, 0xb9, 0xc1, 0x0d, 0xc1, 0x21, 0x3e, 0x80, 0x9c, 0xf8, 0x82, 0xd2, 0x0d, 0x89, 0x7e,
+ 0xed, 0xd2, 0xc2, 0x7d, 0x7e, 0x7d, 0x09, 0x0e, 0x87, 0x68, 0x38, 0x37, 0x5c, 0x7e, 0x5a, 0xac,
+ 0x59, 0xe3, 0x6f, 0x3f, 0xb7, 0x3f, 0x3e, 0x95, 0x41, 0xe8, 0x11, 0xfc, 0x9c, 0xb7, 0x4f, 0x54,
+ 0x61, 0x71, 0x74, 0x4c, 0x20, 0x4c, 0xc7, 0x3b, 0xd4, 0xfd, 0xec, 0xf3, 0x62, 0x20, 0xba, 0x51,
+ 0x69, 0x80, 0x71, 0x1c, 0x11, 0x1c, 0x23, 0x83, 0x24, 0xfa, 0x49, 0x70, 0x87, 0x11, 0x9d, 0x91,
+ 0x29, 0x04, 0x59, 0xd9, 0x5a, 0xd9, 0x0f, 0x0a, 0xa8, 0xc2, 0x28, 0xe2, 0xa3, 0x5a, 0x66, 0x5e,
+ 0xb0, 0xa8, 0x4e, 0x6a, 0x30, 0x6a, 0x45, 0xc7, 0xbe, 0x62, 0x9a, 0x6b, 0x53, 0x30, 0xe7, 0x98,
+ 0x30, 0x63, 0x1e, 0x23, 0xa6, 0x23, 0x1d, 0x16, 0x65, 0x12, 0x58, 0x8c, 0x1b, 0xa6, 0xd2, 0xc5,
+ 0x60, 0xc6, 0x3c, 0x46, 0x8f, 0x46, 0x3a, 0x2c, 0xca, 0x24, 0xb0, 0xdb, 0x36, 0x8f, 0x67, 0x49,
+ 0x74, 0x7e, 0xd5, 0xce, 0x14, 0xce, 0x43, 0xc3, 0x91, 0xc8, 0x8a, 0xbe, 0xac, 0x14, 0xdb, 0x6a,
+ 0x22, 0xef, 0x84, 0x97, 0x59, 0x97, 0x2f, 0x8b, 0x7a, 0x6d, 0x69, 0x19, 0xba, 0x59, 0xe5, 0xb6,
+ 0x0c, 0x68, 0xe6, 0x78, 0xc8, 0x78, 0x96, 0xe4, 0x88, 0xe5, 0x16, 0x23, 0x76, 0xc8, 0xd5, 0xa0,
+ 0xcd, 0x90, 0xd6, 0xfe, 0xba, 0xfe, 0x1f, 0xab, 0xc1, 0x74, 0xe9, 0x7e, 0x4e, 0xba, 0xc6, 0x2a,
+ 0x7b, 0x0c, 0xeb, 0xa8, 0xee, 0xa8, 0x11, 0x1e, 0x3b, 0x85, 0x78, 0xe5, 0x26, 0xee, 0xaa, 0xe2,
+ 0x5b, 0x4e, 0xff, 0x2b, 0x2a, 0x2b, 0x07, 0xbb, 0x7d, 0x99, 0xa9, 0xac, 0x34, 0x2a, 0x36, 0x64,
+ 0x40, 0x84, 0x28, 0xc5, 0x4b, 0xc5, 0x2c, 0x89, 0x8c, 0x38, 0x61, 0x92, 0x24, 0x4b, 0xfb, 0xcf,
+ 0xe3, 0x17, 0xb4, 0x11, 0x2b, 0x11, 0xa6, 0xc4, 0x33, 0xfc, 0x96, 0x44, 0x82, 0x2b, 0xf6, 0x3c,
+ 0x14, 0xb8, 0xe9, 0x88, 0x9b, 0x88, 0x79, 0xef, 0x5b, 0xec, 0x3a, 0x65, 0x9a, 0x9b, 0xbc, 0x23,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xfd, 0xf3, 0xc8, 0xdd, 0x1c, 0xdd, 0x02, 0xbd, 0xa4, 0x66, 0xb1, 0xf2, 0x55, 0x1c, 0x14, 0xef,
+ 0x78, 0x16, 0x33, 0xb6, 0xdc, 0xb6, 0xd5, 0x27, 0x19, 0x2d, 0x9c, 0x9d, 0xda, 0xdc, 0x0e, 0xca,
+ 0xad, 0x56, 0xea, 0xb8, 0x35, 0xb8, 0x25, 0x87, 0x0b, 0x50, 0x59, 0xa5, 0x78, 0x35, 0xa1, 0x63,
+ 0xd0, 0x6e, 0x72, 0x2c, 0xbf, 0x2c, 0x7f, 0xeb, 0x74, 0x46, 0x2a, 0xb0, 0x65, 0xbf, 0x80, 0xd1,
+ 0x91, 0x5d, 0x12, 0xe3, 0x5b, 0xe3, 0xae, 0x75, 0xe6, 0xa7, 0x17, 0x0a, 0x15, 0x5b, 0xa6, 0x06,
+ 0xfc, 0x44, 0x80, 0xd7, 0xb3, 0xd7, 0xff, 0xaa, 0xba, 0xbf, 0xed, 0xda, 0x01, 0xb3, 0xc9, 0xf7,
+ 0xf9, 0x6a, 0x2b, 0xf5, 0xe5, 0xf5, 0x70, 0xe1, 0xdc, 0x84, 0x02, 0x52, 0xc6, 0xe5, 0xe6, 0x8f,
+ 0xea, 0x51, 0xf9, 0x4b, 0xb5, 0x4b, 0xbf, 0x6b, 0xdd, 0x22, 0x6f, 0xef, 0x33, 0xb5, 0x0c, 0xe4,
+ 0x85, 0xe5, 0xfb, 0x6b, 0xc0, 0x6b, 0xd7, 0x9a, 0xbd, 0x4b, 0x2d, 0x6f, 0x8f, 0xc0, 0x1a, 0x25,
+ 0x7e, 0x22, 0x40, 0x8a, 0xb8, 0x8a, 0x9e, 0x55, 0x5d, 0xbe, 0x97, 0x6d, 0xe1, 0xb8, 0x85, 0x9a,
+ 0x77, 0x64, 0x0d, 0xd0, 0x26, 0xd0, 0x87, 0xfa, 0xb3, 0x60, 0x6e, 0xc6, 0x50, 0x26, 0x7f, 0x42,
+ 0xc7, 0xcc, 0x43, 0xba, 0x16, 0xba, 0xc2, 0x3d, 0x0d, 0x02, 0xf4, 0xad, 0x03, 0x16, 0x98, 0xda,
+ 0xc5, 0x61, 0xd3, 0xae, 0x8b, 0xae, 0xfb, 0x13, 0x31, 0x73, 0x4c, 0xfd, 0xab, 0x8b, 0xe1, 0xea,
+ 0x5d, 0x7a, 0x8c, 0x17, 0x4e, 0x17, 0x4c, 0xc9, 0x39, 0x0a, 0xa2, 0x5c, 0x0f, 0x4e, 0xbd, 0x34,
+ 0x3a, 0x3f, 0x8b, 0x67, 0x0a, 0x67, 0xc0, 0x80, 0xa9, 0x64, 0x45, 0x5f, 0x56, 0x0a, 0x8c, 0x35,
+ 0xd5, 0x40, 0xd9, 0x0e, 0xe9, 0x0e, 0xf0, 0xa0, 0x12, 0x7d, 0xc5, 0x38, 0xa2, 0xe9, 0xaf, 0xa9,
+ 0x66, 0xf2, 0x4f, 0x7a, 0xeb, 0x7a, 0x71, 0x5e, 0x8e, 0xb7, 0xbb, 0x2b, 0x0d, 0xeb, 0xec, 0x19,
+ 0x8b, 0x20, 0x8d, 0x07, 0x95, 0x07, 0x78, 0x50, 0x09, 0xdf, 0x83, 0x1c, 0x51, 0x95, 0xb6, 0xb5,
+ 0x49, 0xc2, 0x65, 0x9f, 0xd5, 0x9f, 0x35, 0x26, 0x62, 0xe6, 0x98, 0x39, 0x95, 0xd5, 0x01, 0x17,
+ 0xc2, 0xe2, 0xe8, 0x98, 0x40, 0x98, 0x4d, 0x76, 0x6b, 0x39, 0x1b, 0x25, 0xc4, 0x40, 0xb7, 0xa2,
+ 0xc6, 0x7b, 0x0b, 0xb0, 0xb9, 0xb0, 0x3f, 0x2a, 0x13, 0xdb, 0xa8, 0x85, 0x57, 0xb9, 0x45, 0xc2,
+ 0x56, 0x91, 0x51, 0x59, 0x4d, 0x59, 0x6c, 0x48, 0xeb, 0xa5, 0xe3, 0xa7, 0x16, 0x4d, 0x3e, 0xdc,
+ 0x4e, 0x41, 0x5e, 0xa9, 0x1e, 0xa9, 0x83, 0x43, 0x38, 0xac, 0xcf, 0xe1, 0xfa, 0x1e, 0x57, 0x5f,
+ 0x27, 0xc1, 0x2f, 0xb5, 0x0f, 0xb5, 0xa0, 0xc0, 0x1c, 0x56, 0x86, 0x91, 0x7d, 0x0f, 0xca, 0xce,
+ 0xe6, 0x39, 0x1f, 0x33, 0x7d, 0x33, 0x29, 0x8f, 0x55, 0xc7, 0x79, 0xcc, 0x45, 0x7d, 0xd9, 0x44,
+ 0x93, 0xf0, 0x82, 0xf7, 0xc6, 0xf7, 0x97, 0x5b, 0xda, 0xd6, 0xaf, 0x5a, 0xbd, 0xc6, 0xdf, 0x36,
+ 0xbb, 0x43, 0x93, 0x24, 0x33, 0x24, 0x65, 0x46, 0x6c, 0xcd, 0xdb, 0x90, 0x4a, 0x33, 0x64, 0x70,
+ 0xd1, 0xd9, 0x3a, 0x26, 0x10, 0x26, 0x82, 0xfc, 0x6a, 0x9f, 0x76, 0x98, 0x31, 0x10, 0x5d, 0xc9,
+ 0x63, 0xdc, 0xe4, 0x58, 0xbd, 0x58, 0xfe, 0x15, 0xe8, 0x8c, 0x54, 0xa3, 0xca, 0xbd, 0xc3, 0x61,
+ 0xc1, 0xf8, 0x30, 0x86, 0x72, 0x86, 0x89, 0x4f, 0x49, 0x91, 0xff, 0x5d, 0x38, 0x72, 0x13, 0x8a,
+ 0x45, 0xaa, 0x83, 0xe7, 0x1d, 0xe7, 0xa3, 0xc2, 0xea, 0x03, 0x8e, 0x1a, 0xe3, 0x1d, 0xd4, 0xb7,
+ 0xc8, 0xbe, 0x7d, 0xdc, 0xec, 0xdc, 0x90, 0xe0, 0xa7, 0x4f, 0x06, 0xf6, 0x89, 0xec, 0xe9, 0x52,
+ 0x16, 0x15, 0x79, 0x9c, 0x06, 0x9c, 0x40, 0xc1, 0x67, 0x9d, 0x82, 0x35, 0x32, 0x06, 0xc5, 0x13,
+ 0x1b, 0xca, 0xd7, 0xee, 0x61, 0xee, 0x2b, 0x32, 0xf1, 0xa1, 0xc8, 0x3e, 0x10, 0x61, 0xcd, 0xab,
+ 0x20, 0x42, 0x14, 0x83, 0xc4, 0x83, 0x16, 0xa5, 0x46, 0x1c, 0xd1, 0x49, 0x12, 0xc4, 0x9c, 0x86,
+ 0x9b, 0x01, 0x87, 0xa7, 0xf7, 0xa7, 0x73, 0xe3, 0x2a, 0xd1, 0x0a, 0xd9, 0x58, 0xf7, 0xf8, 0xf6,
+ 0xf3, 0x36, 0xbe, 0xb1, 0x49, 0xb1, 0xad, 0x77, 0x10, 0xf2, 0x1f, 0x81, 0x8b, 0x49, 0xb8, 0x7f,
+ 0xb8, 0x59, 0x4b, 0x3a, 0x01, 0x3a, 0xa1, 0x7f, 0x4e, 0x65, 0x3f, 0xe8, 0xb6, 0x01, 0xc0, 0x58,
+ 0xf0, 0x2c, 0x66, 0xaf, 0x7b, 0xaf, 0x69, 0x4e, 0x32, 0x5a, 0xfb, 0xf9, 0x77, 0x7b, 0x1c, 0x57,
+ 0x2f, 0x30, 0x2a, 0xe5, 0x3e, 0xe5, 0x44, 0x78, 0xec, 0x51, 0x23, 0x12, 0x98, 0x3e, 0xed, 0x0e,
+ 0xba, 0xf4, 0xdb, 0x2e, 0x9c, 0x2e, 0x98, 0x51, 0x72, 0x14, 0x87, 0xb8, 0x1e, 0x9c, 0xb9, 0x68,
+ 0x4f, 0xf6, 0x16, 0xa3, 0xb1, 0xa3, 0x7e, 0x54, 0x26, 0x75, 0x93, 0xc9, 0xae, 0xb1, 0x8a, 0x47,
+ 0xbe, 0x6d, 0x38, 0x06, 0x65, 0x06, 0xea, 0x0d, 0x0a, 0xf6, 0x34, 0x18, 0x8d, 0x65, 0x4b, 0x08,
+ 0x12, 0x8c, 0x9a, 0xb4, 0xff, 0xb4, 0x32, 0x9d, 0x1f, 0x7f, 0x31, 0x95, 0xa1, 0xff, 0x37, 0x73,
+ 0x43, 0x9e, 0xf0, 0xdb, 0x79, 0xdb, 0xe8, 0xb0, 0xae, 0x90, 0x85, 0xea, 0xd8, 0x79, 0x5f, 0xe7,
+ 0xcf, 0x3d, 0x46, 0xea, 0x27, 0xea, 0x26, 0x85, 0xfd, 0x05, 0x51, 0x2e, 0xe6, 0x27, 0xbf, 0x1a,
+ 0xc9, 0x09, 0x35, 0xd6, 0x43, 0xd6, 0x6d, 0xf7, 0xb9, 0x96, 0x5a, 0xde, 0xdd, 0x43, 0x34, 0x4a,
+ 0x2a, 0x1e, 0x81, 0xc7, 0x68, 0xc7, 0xcb, 0x33, 0x8a, 0x6a, 0xcc, 0x9a, 0x5f, 0x68, 0xc2, 0x76,
+ 0x11, 0x96, 0x42, 0xaa, 0xcd, 0xaa, 0xf6, 0xa4, 0x3d, 0xd7, 0xd5, 0xed, 0x5d, 0xcd, 0x93, 0x5b,
+ 0x15, 0x0f, 0xa1, 0x82, 0x34, 0x82, 0x84, 0xf8, 0x45, 0x35, 0x66, 0x4d, 0xce, 0x34, 0x61, 0x3b,
+ 0xf6, 0x18, 0x15, 0x93, 0x1f, 0x93, 0x22, 0x3c, 0x76, 0xc9, 0xf0, 0x09, 0x4c, 0x1f, 0x97, 0x07,
+ 0x62, 0x6b, 0xac, 0x52, 0x12, 0x52, 0x03, 0x02, 0xf6, 0x55, 0x08, 0x8b, 0x9e, 0x12, 0x1e, 0x79,
+ 0xcc, 0x27, 0x9e, 0xf4, 0x15, 0xf4, 0xe2, 0xbc, 0xdf, 0xad, 0xb5, 0x56, 0x1a, 0x15, 0x1b, 0x32,
+ 0xe0, 0x0d, 0x6c, 0x0f, 0x19, 0x0f, 0x62, 0xfd, 0x11, 0x54, 0x72, 0x3c, 0x7e, 0x19, 0x52, 0x14,
+ 0x8c, 0xa3, 0xb6, 0x31, 0x5e, 0x31, 0xce, 0x35, 0x53, 0x95, 0xd4, 0xc4, 0x3e, 0x5e, 0xe0, 0xfd,
+ 0x90, 0xea, 0x5a, 0xe9, 0xf4, 0xe9, 0x53, 0x62, 0xf8, 0x7e, 0x4b, 0x22, 0x41, 0xf4, 0x7b, 0x1e,
+ 0x47, 0x07, 0x13, 0xf3, 0x80, 0xf3, 0x9a, 0xec, 0xd6, 0x72, 0x36, 0x4a, 0x4b, 0x80, 0xad, 0x87,
+ 0xff, 0x5e, 0x58, 0xc9, 0x81, 0xc9, 0x3b, 0x93, 0x98, 0x17, 0x09, 0xa2, 0xfd, 0x81, 0x6d, 0xdf,
+ 0x81, 0x7c, 0x18, 0x43, 0x39, 0x43, 0xa5, 0xc6, 0xc5, 0xa9, 0x9e, 0xcf, 0x1c, 0x39, 0xe8, 0x45,
+ 0x5e, 0x60, 0x54, 0x09, 0x7c, 0x09, 0x88, 0xf0, 0x1b, 0xa2, 0x46, 0x24, 0xf3, 0x7c, 0x19, 0x1c,
+ 0xfb, 0xc7, 0xbb, 0xe1, 0x78, 0xe1, 0x49, 0xcf, 0xe0, 0xf5, 0xba, 0x02, 0x6e, 0x78, 0x9f, 0xbf,
+ 0x79, 0xa1, 0x7b, 0xbc, 0x73, 0xbc, 0x28, 0x30, 0x07, 0xf4, 0xc0, 0xb5, 0x8e, 0x73, 0xd3, 0xd2,
+ 0x36, 0x57, 0x6d, 0x1f, 0xc2, 0x1f, 0x56, 0x64, 0x21, 0x81, 0x53, 0x7c, 0x20, 0xc2, 0x59, 0x95,
+ 0x32, 0xce, 0x8e, 0x37, 0x3b, 0x37, 0x24, 0x38, 0x59, 0x63, 0xe0, 0xdc, 0xb3, 0x3b, 0xab, 0xf5,
+ 0x0e, 0xc5, 0x76, 0x6c, 0x55, 0x6c, 0xaf, 0xca, 0xb4, 0x94, 0xae, 0x73, 0xde, 0x55, 0xac, 0x90,
+ 0xd3, 0x74, 0xaa, 0x32, 0x8d, 0x32, 0xbb, 0xd2, 0x56, 0xee, 0xce, 0xc8, 0x99, 0x8d, 0x24, 0xf9,
+ 0x33, 0x79, 0xc6, 0x3d, 0x94, 0x3d, 0xd9, 0x2f, 0x47, 0xba, 0xbc, 0xf4, 0xe7, 0x94, 0x76, 0xed,
+ 0x53, 0xbf, 0xfa, 0x7b, 0x1b, 0x7b, 0xe3, 0x03, 0x8d, 0x9e, 0x0c, 0x2f, 0xd1, 0x1b, 0x11, 0xa4,
+ 0x87, 0x48, 0x6b, 0x7f, 0x5d, 0x7f, 0xee, 0xb4, 0x81, 0x3a, 0x95, 0x3f, 0x27, 0x5d, 0x63, 0x15,
+ 0x21, 0xf5, 0x5c, 0x89, 0x6b, 0x89, 0xeb, 0xb2, 0x58, 0xc5, 0x8d, 0x61, 0x46, 0x6b, 0x41, 0x9e,
+ 0xd4, 0xf7, 0x91, 0x04, 0x46, 0x04, 0x0d, 0xb7, 0x0c, 0xa4, 0x99, 0x10, 0xf6, 0x46, 0x72, 0xb1,
+ 0x07, 0x83, 0x3b, 0x36, 0xcb, 0x36, 0xb6, 0x65, 0x5a, 0x4a, 0x57, 0xd8, 0x6f, 0xcb, 0x56, 0x48,
+ 0x48, 0x75, 0x2d, 0x95, 0x7a, 0x95, 0xc8, 0x31, 0x7c, 0x3f, 0xc4, 0x11, 0xc1, 0x7a, 0xdc, 0x0f,
+ 0xdd, 0xb1, 0xdc, 0x5e, 0xd8, 0x5e, 0x14, 0x18, 0xe2, 0x7a, 0x60, 0xbb, 0x47, 0xd8, 0x88, 0x69,
+ 0x6e, 0x03, 0x4a, 0x2a, 0xda, 0x2a, 0x95, 0xe6, 0x7e, 0xb0, 0x1e, 0xa8, 0xe8, 0xda, 0xcb, 0xd9,
+ 0xc4, 0xd6, 0x9b, 0xa4, 0x24, 0xa4, 0x06, 0x04, 0x2f, 0xaa, 0x10, 0xd5, 0xff, 0x24, 0x3c, 0xf2,
+ 0x58, 0x54, 0x27, 0x35, 0x18, 0x35, 0xc3, 0x82, 0x5f, 0x31, 0x4d, 0xd4, 0xc8, 0x18, 0x92, 0x4c,
+ 0x9c, 0x82, 0xbc, 0x91, 0x3c, 0x91, 0xc5, 0x86, 0x70, 0x9b, 0x5d, 0x01, 0x37, 0x3c, 0xae, 0xbe,
+ 0x05, 0x2e, 0xab, 0x22, 0x56, 0x22, 0x8f, 0x4b, 0x66, 0x3b, 0xef, 0x88, 0xc7, 0x56, 0x2f, 0x78,
+ 0x19, 0x67, 0x47, 0xfa, 0xfc, 0xfa, 0x12, 0x1c, 0xcd, 0xd0, 0x70, 0x6e, 0xb8, 0xfc, 0xb4, 0x9b,
+ 0xd8, 0x9f, 0x77, 0x7c, 0x8e, 0x7c, 0x9b, 0x53, 0x84, 0x41, 0x8f, 0x33, 0x80, 0x8e, 0xa7, 0x11,
+ 0x80, 0xcb, 0x50, 0x49, 0x96, 0x49, 0x58, 0xd1, 0xdb, 0x70, 0xc2, 0xe7, 0x48, 0x96, 0x35, 0x5d,
+ 0x9e, 0x2f, 0x2c, 0x85, 0xa1, 0x85, 0xfc, 0xa8, 0x4c, 0xea, 0xe5, 0x51, 0x9f, 0xa1, 0xd7, 0x8e,
+ 0x44, 0x1d, 0xcb, 0xed, 0xb2, 0xed, 0x5e, 0xd5, 0xf4, 0xda, 0xd2, 0x32, 0xb7, 0xb2, 0x09, 0xaf,
+ 0xca, 0x13, 0xed, 0xc8, 0x71, 0xc8, 0xa9, 0xce, 0x9b, 0x3e, 0xbe, 0xa6, 0x21, 0x71, 0x90, 0x62,
+ 0x3d, 0xbc, 0xb0, 0x51, 0xc1, 0x51, 0x76, 0xe5, 0xf3, 0x2e, 0x12, 0x87, 0x39, 0xc1, 0xda, 0x7d,
+ 0x2e, 0x87, 0x62, 0xef, 0x91, 0xef, 0xb9, 0x6f, 0xf2, 0x88, 0x7f, 0x3a, 0xcc, 0x91, 0x30, 0x16,
+ 0x72, 0x4a, 0xa6, 0xf2, 0x70, 0xf2, 0x08, 0xb1, 0xd5, 0x5b, 0x81, 0x4e, 0x97, 0x70, 0x50, 0x3a,
+ 0x42, 0x29, 0xb8, 0xd1, 0xd6, 0xd1, 0x15, 0xa7, 0xb0, 0x49, 0xd9, 0xc2, 0x8c, 0xd6, 0x82, 0xff,
+ 0x65, 0xe8, 0x97, 0x64, 0xd9, 0x64, 0xb5, 0x67, 0xac, 0x1f, 0x5f, 0x53, 0xf1, 0xd9, 0x48, 0x31,
+ },
+ { /* 4 */
+ 0x04, 0xc3, 0xb6, 0x81, 0x36, 0x3e, 0x4d, 0xde, 0x9f, 0xbe, 0xcc, 0x92, 0x5e, 0x72, 0x11, 0x8f,
+ 0xc5, 0x34, 0x29, 0xba, 0x33, 0x7a, 0x21, 0x8a, 0x27, 0x60, 0x9b, 0x0b, 0x90, 0xfb, 0x32, 0xb5,
+ 0xdf, 0x7b, 0x40, 0x9b, 0x9c, 0xe1, 0x8b, 0x64, 0x4d, 0x3d, 0x10, 0xa8, 0xb8, 0x2d, 0xbd, 0xb7,
+ 0xb7, 0x84, 0x27, 0x1f, 0x65, 0xc8, 0x66, 0x5a, 0x26, 0x8a, 0x79, 0x61, 0x18, 0xf3, 0xc4, 0xbf,
+ 0x1e, 0x8c, 0xdf, 0xa0, 0x99, 0xa5, 0xe7, 0x30, 0xf5, 0xe3, 0x47, 0x31, 0x76, 0xa4, 0x9e, 0x8d,
+ 0x26, 0x94, 0x14, 0xa2, 0x5e, 0x12, 0xa7, 0x8e, 0x43, 0x58, 0x05, 0xc1, 0xc4, 0x5d, 0x70, 0xdb,
+ 0xff, 0xac, 0xb9, 0x19, 0xef, 0xd2, 0xa6, 0x5b, 0x3f, 0x84, 0xbf, 0xb2, 0x0d, 0x3b, 0x35, 0x45,
+ 0xc8, 0xf2, 0xfc, 0x4b, 0x85, 0xd6, 0x74, 0xfd, 0x12, 0xaf, 0x3f, 0xbb, 0x84, 0x90, 0x94, 0xb4,
+ 0x7b, 0xb5, 0x6d, 0xd5, 0xd6, 0x20, 0x5f, 0x79, 0xab, 0x9b, 0x8a, 0x48, 0xc2, 0x11, 0x41, 0x84,
+ 0x7a, 0xf5, 0xa1, 0x64, 0x3a, 0xce, 0xdd, 0xaf, 0xfc, 0x55, 0xb9, 0x8d, 0x34, 0xec, 0xd4, 0xd7,
+ 0xe8, 0x25, 0x05, 0xc9, 0xf6, 0xe5, 0x59, 0xc2, 0x60, 0x16, 0x90, 0xa1, 0x31, 0x86, 0x1c, 0x46,
+ 0xa0, 0x0d, 0x9b, 0xcf, 0x7c, 0xff, 0x99, 0xc3, 0x79, 0x18, 0x56, 0x72, 0x24, 0x4e, 0xed, 0xbc,
+ 0x3e, 0x5b, 0x26, 0x22, 0xea, 0x96, 0xca, 0x0f, 0x87, 0x5a, 0xe8, 0x2b, 0xc3, 0xb2, 0x16, 0x7f,
+ 0xe9, 0x65, 0xc9, 0x78, 0x1a, 0x0b, 0xdb, 0x14, 0x37, 0xd8, 0xa3, 0x64, 0xc7, 0x7b, 0x89, 0x15,
+ 0x09, 0x05, 0x63, 0x70, 0x80, 0x92, 0x18, 0xa9, 0xaa, 0x71, 0x68, 0x22, 0x4a, 0x19, 0xb7, 0x8e,
+ 0x18, 0xcf, 0x32, 0x80, 0xb4, 0x84, 0x6d, 0x81, 0xc4, 0x02, 0xed, 0xea, 0x07, 0xef, 0x66, 0xa4,
+ 0xba, 0x42, 0xf2, 0xee, 0xd3, 0x64, 0x33, 0x2d, 0x13, 0x45, 0xdd, 0xd1, 0x0c, 0x98, 0x62, 0xbe,
+ 0x83, 0x1a, 0xf5, 0x5d, 0xf8, 0x3d, 0xf1, 0x45, 0xf2, 0x30, 0xac, 0xe4, 0x48, 0x9c, 0x19, 0xbb,
+ 0x1f, 0xcc, 0x13, 0x11, 0x75, 0x4b, 0x65, 0xe6, 0xa2, 0x2d, 0x74, 0xf4, 0x80, 0x59, 0x0b, 0xde,
+ 0x33, 0x9d, 0xf3, 0xd3, 0x5c, 0x3a, 0x9f, 0x78, 0xb2, 0x95, 0x4c, 0x9b, 0xd7, 0xd9, 0xb0, 0x7e,
+ 0xb1, 0xc7, 0xca, 0x3f, 0x48, 0xe9, 0xec, 0xeb, 0x17, 0x6b, 0xd3, 0xba, 0x69, 0xb8, 0x3c, 0x96,
+ 0xb6, 0xc4, 0xeb, 0xae, 0x89, 0x26, 0xe4, 0x8c, 0x71, 0x44, 0x4a, 0xa4, 0xee, 0x0e, 0x51, 0xec,
+ 0x46, 0x2e, 0xdc, 0xe7, 0xcb, 0x47, 0xd0, 0xcf, 0xd5, 0x50, 0x37, 0xef, 0xd8, 0x67, 0x2b, 0x0e,
+ 0x78, 0x75, 0xfa, 0xc5, 0x21, 0xd1, 0x1a, 0xc0, 0x52, 0x0a, 0xdf, 0xc4, 0x1b, 0xd5, 0x3d, 0x71,
+ 0x5b, 0x62, 0x94, 0x57, 0xa5, 0x13, 0x72, 0x46, 0xd9, 0x22, 0x25, 0x52, 0x77, 0x07, 0xc9, 0x76,
+ 0x80, 0xda, 0x62, 0x4d, 0x0f, 0xcc, 0xb4, 0xfc, 0x0b, 0xa1, 0xf9, 0x68, 0x91, 0x58, 0x65, 0x4e,
+ 0x8c, 0x5c, 0x7b, 0x0d, 0x55, 0x8e, 0x63, 0x5d, 0x69, 0xa0, 0x6e, 0x1d, 0x73, 0xce, 0x56, 0x1c,
+ 0xeb, 0xe5, 0x92, 0xd9, 0x01, 0x14, 0x1c, 0x7b, 0x99, 0x87, 0xc5, 0x2d, 0xe8, 0x42, 0x60, 0xb3,
+ 0x2d, 0x11, 0x2c, 0x73, 0xc5, 0x9f, 0x78, 0x48, 0x47, 0x76, 0x0b, 0xaa, 0xa1, 0x7d, 0x2e, 0xf3,
+ 0xfb, 0x6f, 0x0f, 0x98, 0xd9, 0xec, 0xeb, 0x85, 0xa0, 0x3a, 0x73, 0x20, 0x53, 0x49, 0x24, 0xca,
+ 0xd9, 0x38, 0xad, 0xbb, 0xb1, 0xc0, 0x01, 0xd5, 0x7c, 0xdc, 0xba, 0x73, 0xc9, 0x66, 0x45, 0x9e,
+ 0xe0, 0x60, 0xaa, 0x08, 0x9a, 0x99, 0xc3, 0xbd, 0x9d, 0xa9, 0xcb, 0x46, 0x8d, 0x62, 0x3e, 0x9b,
+ 0x9e, 0x56, 0xbd, 0xed, 0x96, 0x69, 0x53, 0xcc, 0xfe, 0x42, 0xbe, 0x59, 0xe7, 0xfc, 0xfb, 0xc3,
+ 0x36, 0x1e, 0x89, 0xe3, 0x86, 0xea, 0x50, 0x70, 0x7a, 0xe5, 0xb3, 0xcc, 0x7f, 0x56, 0x34, 0xa2,
+ 0x42, 0xed, 0x6a, 0x66, 0xfd, 0x79, 0x9d, 0x11, 0x4a, 0xee, 0xfb, 0x7d, 0x86, 0x15, 0x3a, 0x81,
+ 0x43, 0xad, 0xa6, 0xd7, 0x11, 0x97, 0x1f, 0xc7, 0x1d, 0x20, 0xc8, 0xb8, 0x70, 0xe8, 0xaf, 0xd2,
+ 0xde, 0x3b, 0x8c, 0x2a, 0x70, 0x0f, 0x09, 0xb2, 0x1a, 0xf3, 0x23, 0x6d, 0x4e, 0xd0, 0x28, 0xe4,
+ 0xaf, 0x4b, 0x15, 0x9f, 0xd1, 0x4c, 0x0b, 0xdb, 0xe2, 0x88, 0x94, 0x8b, 0x1f, 0x1c, 0xa2, 0x1b,
+ 0x56, 0xa4, 0x41, 0xa6, 0x13, 0xbf, 0x27, 0x31, 0xec, 0xed, 0x81, 0xe2, 0x63, 0x6c, 0x6f, 0x77,
+ 0xdb, 0xb8, 0xf6, 0x1a, 0xaa, 0xdf, 0xc6, 0xba, 0xd2, 0x83, 0xdc, 0x3a, 0xe6, 0x5f, 0xac, 0x38,
+ 0x70, 0x30, 0x55, 0x04, 0x4d, 0xad, 0x80, 0xbf, 0xaf, 0xb5, 0x84, 0x23, 0xa7, 0x31, 0x1f, 0xac,
+ 0x3f, 0x1b, 0xea, 0x93, 0x06, 0x78, 0x48, 0xd9, 0xd0, 0x94, 0xdb, 0xee, 0x35, 0x4f, 0x83, 0x2c,
+ 0x77, 0x33, 0x74, 0x95, 0x8c, 0x62, 0x88, 0xd8, 0xc9, 0x9a, 0x1d, 0x3d, 0x20, 0x87, 0x72, 0xd6,
+ 0x75, 0xb3, 0x2f, 0x34, 0x97, 0x7d, 0x4f, 0xb7, 0x67, 0xc5, 0x7b, 0x74, 0x0f, 0xbe, 0x9b, 0x70,
+ 0x87, 0xd9, 0x43, 0xdc, 0xce, 0x03, 0xbc, 0x9b, 0x6d, 0x8e, 0x60, 0x76, 0x16, 0xee, 0x08, 0x34,
+ 0x93, 0x90, 0x68, 0x1c, 0x20, 0xc5, 0x06, 0xbb, 0xcb, 0x8d, 0x1a, 0xe9, 0xf3, 0x97, 0x5d, 0xc2,
+ 0x1d, 0x4c, 0x48, 0xb0, 0x6e, 0x54, 0xa2, 0x89, 0x0c, 0x72, 0x12, 0xbd, 0xaf, 0x60, 0xe2, 0x78,
+ 0xfd, 0x2c, 0xe2, 0xb8, 0xf4, 0xcd, 0x61, 0x34, 0x91, 0xdb, 0xd9, 0xfb, 0x22, 0x02, 0xdc, 0xe3,
+ 0x9a, 0x95, 0x0b, 0x6c, 0xa0, 0x57, 0x1e, 0x12, 0x61, 0xfc, 0x72, 0xcb, 0xb9, 0x8e, 0xea, 0x4c,
+ 0xea, 0xa5, 0x5e, 0x68, 0xed, 0xfa, 0x9e, 0xad, 0xce, 0x49, 0xf6, 0xe8, 0x1e, 0xbf, 0xf5, 0xe0,
+ 0xe5, 0xe3, 0xd0, 0x38, 0x40, 0x49, 0x0c, 0xb5, 0x55, 0xd9, 0x34, 0x11, 0x25, 0xed, 0xba, 0x47,
+ 0x55, 0x64, 0xd6, 0xb6, 0xe4, 0x4e, 0x62, 0x88, 0x15, 0x7c, 0xd4, 0x6e, 0xba, 0xa8, 0x13, 0x82,
+ 0x4d, 0xab, 0xe4, 0x36, 0x50, 0xca, 0x0f, 0x09, 0xd1, 0x7e, 0x39, 0x84, 0xbd, 0x47, 0x75, 0x26,
+ 0x2f, 0x91, 0x77, 0xd2, 0xde, 0x80, 0xbf, 0x27, 0xe9, 0x29, 0x6d, 0xe3, 0x8e, 0x44, 0xc7, 0x55,
+ 0x8e, 0xdc, 0x20, 0xac, 0x4e, 0x91, 0xa4, 0x32, 0xc7, 0xff, 0x08, 0x54, 0x5c, 0xf7, 0xbf, 0xba,
+ 0xab, 0x88, 0xa3, 0x1e, 0xe7, 0x72, 0x46, 0x05, 0x7d, 0x36, 0x58, 0x19, 0x41, 0x6e, 0xb3, 0x94,
+ 0xec, 0xe6, 0xb3, 0x48, 0xc0, 0xdb, 0x14, 0x1c, 0xff, 0xa8, 0x5c, 0x33, 0x6f, 0xf4, 0x0d, 0xc9,
+ 0x64, 0x79, 0x7e, 0xc4, 0xa3, 0x6b, 0x3a, 0x9f, 0x09, 0xb6, 0xfe, 0xbc, 0x42, 0x48, 0x4a, 0x5a,
+ 0xb3, 0x47, 0x91, 0x9e, 0x53, 0xf6, 0x2b, 0x84, 0xb9, 0x34, 0xb5, 0xf3, 0x46, 0x81, 0xd5, 0x30,
+ 0xd5, 0xbe, 0xb4, 0xfb, 0xeb, 0x82, 0xd6, 0x74, 0x1e, 0xdd, 0x2d, 0x06, 0x2b, 0xf0, 0x76, 0xcc,
+ 0x91, 0x10, 0x33, 0xbd, 0x3b, 0xda, 0xc1, 0xd4, 0x65, 0xd2, 0x7c, 0xa0, 0xdc, 0xae, 0xb4, 0x64,
+ 0x5e, 0xe1, 0xee, 0x67, 0x7f, 0xc3, 0xbd, 0x4e, 0x11, 0x52, 0xda, 0x05, 0xdf, 0x88, 0x4d, 0xaa,
+ 0x21, 0x97, 0x35, 0x33, 0x9f, 0xdd, 0xaf, 0xe9, 0x25, 0x77, 0x9c, 0xdf, 0x43, 0xeb, 0x1d, 0xa1,
+ 0x49, 0x68, 0x52, 0xb7, 0x66, 0xf4, 0x42, 0xd7, 0x4e, 0xc0, 0xf5, 0x16, 0xe3, 0x35, 0x64, 0xa9,
+ 0x5f, 0xa1, 0x22, 0xd6, 0x93, 0x2d, 0x3f, 0x98, 0x46, 0x9c, 0xe9, 0xc0, 0x29, 0x75, 0xd8, 0xf9,
+ 0x65, 0x39, 0xb2, 0x75, 0x4f, 0x85, 0xb8, 0x49, 0x5e, 0x78, 0xcd, 0x79, 0xb4, 0xb5, 0xdf, 0x09,
+ 0x53, 0x27, 0x3b, 0x96, 0xc9, 0x6f, 0xe8, 0x39, 0x24, 0x9d, 0x7e, 0xb5, 0xcb, 0xe3, 0xeb, 0xab,
+ 0x27, 0xd4, 0xd8, 0x13, 0xb2, 0xfc, 0x25, 0x58, 0x14, 0x96, 0x36, 0x04, 0x32, 0xa0, 0xe5, 0x88,
+ 0xcc, 0x31, 0x4a, 0xca, 0xb3, 0xe8, 0x39, 0x23, 0x8d, 0x11, 0xf3, 0x29, 0xda, 0xe2, 0x85, 0x3b,
+ 0x61, 0xfa, 0x04, 0xf4, 0x79, 0xbb, 0xf5, 0x97, 0xc1, 0xc6, 0x01, 0xeb, 0xea, 0xc7, 0xce, 0x86,
+ 0x82, 0x5a, 0x39, 0xec, 0x14, 0xd3, 0x73, 0x93, 0xa5, 0xfe, 0x9f, 0x21, 0xbe, 0x61, 0x8c, 0xe8,
+ 0xcf, 0xf1, 0xdd, 0xda, 0x44, 0x19, 0x7c, 0x9a, 0x74, 0x80, 0xa6, 0xa5, 0x03, 0x26, 0xf9, 0xce,
+ 0xfa, 0x2f, 0xc3, 0x29, 0x35, 0x02, 0x69, 0x53, 0xf7, 0xf4, 0x40, 0xe5, 0xa5, 0xb4, 0xb1, 0x99,
+ 0xbf, 0xc1, 0x88, 0xde, 0x09, 0xb4, 0xfc, 0x25, 0xdb, 0x35, 0x22, 0x86, 0xa4, 0x17, 0xe6, 0x62,
+ 0xca, 0x72, 0xa7, 0xea, 0x9e, 0xc9, 0xb3, 0x92, 0xbc, 0xf0, 0x59, 0xf2, 0xab, 0xa9, 0x7d, 0x12,
+ 0x4e, 0x6b, 0x73, 0x26, 0xa7, 0x3b, 0x4a, 0xb0, 0x28, 0xef, 0x6c, 0x08, 0x64, 0x83, 0x09, 0xd3,
+ 0x97, 0x53, 0xde, 0x9d, 0x16, 0xfb, 0x4b, 0x65, 0x54, 0x33, 0xd6, 0x7b, 0xad, 0xe5, 0x4c, 0x4d,
+ 0x9b, 0xd5, 0xc7, 0xdd, 0x4c, 0xb9, 0x9c, 0xc4, 0x36, 0x32, 0x41, 0x0e, 0x4f, 0x73, 0x7f, 0x1f,
+ 0x8d, 0x1c, 0xb7, 0xbc, 0xb9, 0x60, 0xe1, 0x8b, 0x3e, 0x6e, 0x5d, 0xd8, 0x85, 0x33, 0xc3, 0x4f,
+ 0x68, 0xff, 0x67, 0x84, 0xf9, 0x29, 0xed, 0x3e, 0x6b, 0xb7, 0x69, 0xc9, 0xa0, 0xde, 0x79, 0x08,
+ 0x15, 0x09, 0xe7, 0x71, 0x02, 0x28, 0x38, 0xf6, 0xf1, 0xcd, 0x49, 0x5a, 0x13, 0x84, 0xc0, 0xa5,
+ 0xfc, 0x6c, 0x2e, 0x09, 0x18, 0x23, 0xe3, 0xe2, 0xc6, 0x15, 0xea, 0x3e, 0xd4, 0xff, 0x49, 0xb0,
+ 0xfe, 0xec, 0x75, 0xa8, 0x03, 0x3c, 0x24, 0x8d, 0x68, 0x4a, 0x8c, 0x77, 0xfb, 0xc6, 0xa0, 0x16,
+ 0x58, 0xa2, 0x03, 0x47, 0x52, 0xe2, 0x37, 0xff, 0x20, 0xb3, 0x70, 0xde, 0xae, 0xc3, 0xb5, 0x83,
+ 0x12, 0x0a, 0xc6, 0xe0, 0xc3, 0xe7, 0x30, 0x91, 0x97, 0xe2, 0xd0, 0x44, 0x94, 0x32, 0xad, 0xdf,
+ 0x1b, 0x0f, 0xa5, 0x90, 0x43, 0x75, 0x28, 0x38, 0x3d, 0x93, 0xb8, 0x66, 0xde, 0x2b, 0x1a, 0x51,
+ 0x10, 0x8a, 0x9d, 0x41, 0xd8, 0xf8, 0xf7, 0xfe, 0x39, 0xbd, 0xb6, 0x0d, 0xbb, 0x0b, 0x44, 0x79,
+ 0xc1, 0xf7, 0x9f, 0x3b, 0x05, 0x44, 0x6c, 0x54, 0xb8, 0xde, 0x57, 0x99, 0xce, 0x89, 0x23, 0x3a,
+ 0xe2, 0xe0, 0xf1, 0xa9, 0x81, 0x86, 0x04, 0xd2, 0x33, 0xf6, 0xad, 0x0f, 0xa2, 0x5b, 0xd7, 0x3d,
+ 0x19, 0x8f, 0xfe, 0x31, 0x58, 0x6a, 0xef, 0x57, 0x93, 0xcc, 0xde, 0x2f, 0xf1, 0x12, 0xf3, 0xf7,
+ 0x52, 0x67, 0xf7, 0x27, 0x25, 0x81, 0x6a, 0xef, 0x73, 0x53, 0x4d, 0x70, 0x3d, 0x1e, 0x7e, 0xf8,
+ 0xef, 0x26, 0x24, 0x58, 0x37, 0x2a, 0x51, 0xa5, 0x06, 0x39, 0x09, 0xbf, 0xb6, 0x30, 0x71, 0x3c,
+ 0xdc, 0xbb, 0xd7, 0x8b, 0x6b, 0x10, 0xce, 0xdd, 0xb4, 0xac, 0x45, 0x24, 0x61, 0xe9, 0xc1, 0x42,
+ 0xf0, 0xea, 0x37, 0x49, 0x42, 0x61, 0x34, 0x43, 0xa4, 0x14, 0x7d, 0x4b, 0x36, 0x69, 0x7a, 0xe2,
+ 0x3c, 0xdb, 0x7d, 0x83, 0xf1, 0x89, 0x0d, 0x60, 0x29, 0x05, 0x8e, 0x62, 0xec, 0x8b, 0xff, 0xd9,
+ 0x9c, 0xd6, 0xe6, 0x4c, 0x8d, 0x76, 0x94, 0xa3, 0x50, 0x1d, 0xd8, 0x10, 0xc8, 0xc5, 0x12, 0x65,
+ 0xbe, 0x81, 0x44, 0x6f, 0xe5, 0x5a, 0x7e, 0xf3, 0x8c, 0xfb, 0x11, 0x43, 0x52, 0xea, 0x73, 0x31,
+ 0x38, 0x18, 0xcb, 0x02, 0xc7, 0xb7, 0x40, 0xbe, 0xb6, 0xbb, 0x42, 0xf0, 0xb2, 0xf9, 0xee, 0x56,
+ 0x2b, 0x52, 0xc1, 0x53, 0xe8, 0xbe, 0xf2, 0xf9, 0x76, 0x97, 0xa1, 0x71, 0xd0, 0x36, 0xd6, 0xda,
+ 0xc9, 0xb2, 0x30, 0xfa, 0x69, 0x38, 0xf6, 0x2b, 0x45, 0x61, 0x0c, 0x7e, 0x72, 0x6d, 0x01, 0xe7,
+ 0x24, 0x14, 0x4f, 0x03, 0x45, 0x0d, 0x60, 0xe1, 0xed, 0x07, 0x63, 0x88, 0xeb, 0x64, 0x99, 0x7d,
+ 0x98, 0x15, 0x50, 0xcd, 0xbb, 0x48, 0xd9, 0x7d, 0xcf, 0xa3, 0x14, 0x82, 0x96, 0xb7, 0x03, 0xea,
+ 0x30, 0x5d, 0x64, 0xc3, 0xab, 0xcb, 0xda, 0xc1, 0x4b, 0x04, 0x19, 0x17, 0x0e, 0x1d, 0xcc, 0x8b,
+ 0x0c, 0x86, 0x19, 0x40, 0x5a, 0x42, 0xd7, 0xa1, 0x62, 0x01, 0x97, 0x75, 0xe2, 0x96, 0x33, 0x52,
+ 0x69, 0xbf, 0xab, 0x35, 0x15, 0xc7, 0x6f, 0xe8, 0x3c, 0x79, 0x5a, 0x0c, 0x56, 0x23, 0xec, 0x5b,
+ 0x54, 0x24, 0x1a, 0x07, 0x08, 0xa0, 0xe0, 0x5e, 0x42, 0xb2, 0xe7, 0xab, 0x4c, 0x55, 0x86, 0xd1,
+ 0xee, 0x66, 0xe8, 0xe9, 0xdb, 0xc4, 0xd3, 0x73, 0x51, 0xf7, 0x3a, 0x7a, 0x40, 0xcd, 0xe4, 0x6f,
+ 0xb5, 0x04, 0x7c, 0xbe, 0x7e, 0xd7, 0xa1, 0x35, 0x88, 0xd5, 0x1f, 0x28, 0x37, 0xca, 0x2d, 0x19,
+ 0x4f, 0x2b, 0xbf, 0x97, 0x4b, 0xd5, 0xc8, 0x66, 0x7f, 0x21, 0x5f, 0xcd, 0x92, 0x7e, 0x9c, 0x80,
+ 0x39, 0x58, 0x07, 0xb3, 0x2b, 0x59, 0xc2, 0x68, 0xe1, 0x75, 0x71, 0x35, 0x44, 0x04, 0x7b, 0x05,
+ 0x6a, 0x7f, 0x3c, 0x25, 0xe2, 0x36, 0x2a, 0x51, 0xc5, 0xe8, 0x0f, 0x80, 0x8f, 0xe7, 0x90, 0xae,
+ 0x1c, 0x0c, 0x84, 0x01, 0x82, 0xba, 0x20, 0x5f, 0x5b, 0xbc, 0x21, 0x78, 0x59, 0x9d, 0x77, 0x2b,
+ 0x89, 0xdf, 0x01, 0x3d, 0x8f, 0x5e, 0xac, 0x55, 0xa1, 0xd0, 0x91, 0x4a, 0xdb, 0x41, 0xd2, 0xc0,
+ 0x66, 0xf9, 0x25, 0x65, 0xb8, 0x74, 0xfd, 0xf0, 0xa7, 0xe9, 0x98, 0xf5, 0x6d, 0x71, 0xa3, 0xfc,
+ 0xa5, 0x8e, 0xe1, 0xff, 0xa6, 0x2f, 0x56, 0xcb, 0xb1, 0x68, 0xa9, 0x25, 0x8c, 0xc1, 0x69, 0x60,
+ 0xe4, 0xa3, 0x1c, 0x89, 0xac, 0xa7, 0x8e, 0x63, 0x02, 0x17, 0x07, 0xd4, 0xd3, 0x10, 0x2f, 0x14,
+ 0x72, 0xb0, 0x0e, 0xa5, 0x56, 0xb2, 0x47, 0xd0, 0x01, 0xea, 0xe2, 0x6a, 0x88, 0x08, 0xf6, 0x0a,
+ 0xf6, 0xa9, 0xda, 0x69, 0x6f, 0x40, 0xbe, 0xf2, 0x95, 0xf5, 0xd7, 0x90, 0x47, 0x22, 0x82, 0xcb,
+ 0x14, 0x49, 0x2b, 0xc0, 0xee, 0xc6, 0xba, 0x20, 0xa6, 0x03, 0x7a, 0x9f, 0xe5, 0x79, 0x55, 0xf6,
+ 0x02, 0x80, 0x5b, 0xa1, 0x1b, 0x1f, 0xc7, 0x6f, 0xae, 0x5f, 0x66, 0x49, 0x2f, 0x39, 0xe9, 0xa6,
+ 0x50, 0xe7, 0xac, 0x86, 0x3e, 0x9e, 0xad, 0x80, 0xdd, 0x0c, 0x2b, 0x39, 0x12, 0x27, 0x97, 0x5e,
+ 0xbd, 0x41, 0xd3, 0x7f, 0x12, 0xab, 0x3b, 0x4a, 0x75, 0x6a, 0x44, 0xcf, 0x8b, 0x2e, 0x0f, 0xc4,
+ 0x9f, 0x16, 0x71, 0x5c, 0x7a, 0x87, 0xd1, 0x1a, 0xa9, 0x8c, 0x8d, 0x9c, 0x11, 0x01, 0x6e, 0x90,
+ 0xe3, 0xa0, 0x3d, 0x18, 0x6d, 0x68, 0x86, 0x04, 0x64, 0x38, 0x9e, 0xca, 0x54, 0xa6, 0x42, 0x6e,
+ 0x05, 0x83, 0x7a, 0x30, 0xda, 0xd0, 0xcf, 0x08, 0xc8, 0x70, 0xff, 0x57, 0xa8, 0x8f, 0x84, 0xdc,
+ 0x07, 0x03, 0x21, 0x91, 0xc1, 0xcf, 0x08, 0x67, 0x66, 0x2f, 0x99, 0x1e, 0x87, 0xb6, 0x6d, 0x7a,
+ 0x88, 0x9f, 0xcd, 0x8c, 0x63, 0xb0, 0x2e, 0x83, 0xf6, 0x1e, 0xa2, 0x8f, 0x2d, 0xbc, 0x47, 0x93,
+ 0xcb, 0x32, 0x6b, 0x5b, 0x72, 0x27, 0x31, 0x44, 0xeb, 0x3e, 0x6a, 0x37, 0x5d, 0x54, 0xe8, 0x41,
+ 0x3a, 0x98, 0x90, 0xa3, 0xdc, 0xa8, 0x87, 0xd1, 0x18, 0xe4, 0x24, 0xb9, 0x9d, 0xc0, 0x07, 0xf0,
+ 0x85, 0x59, 0x18, 0x7d, 0xd5, 0x1c, 0x7b, 0xf4, 0xc3, 0xd1, 0x06, 0x3f, 0x39, 0xd7, 0xe1, 0x92,
+ 0x41, 0x2d, 0xfd, 0x76, 0x0a, 0x88, 0xd8, 0xa8, 0xb3, 0x7f, 0xae, 0xf1, 0x5f, 0xd1, 0x46, 0x74,
+ 0x2a, 0x12, 0x0d, 0xe2, 0x04, 0x50, 0x70, 0x2f, 0x21, 0x59, 0x92, 0xb4, 0x26, 0xcb, 0x43, 0x89,
+ 0x92, 0xd0, 0xa4, 0xad, 0xcc, 0x2b, 0x84, 0x6d, 0x9c, 0x43, 0x29, 0x2c, 0x05, 0x6a, 0xc8, 0x91,
+ 0xb9, 0x82, 0x65, 0xfe, 0x24, 0x95, 0x76, 0x94, 0xea, 0xd4, 0x88, 0x5d, 0xd5, 0x5c, 0x1e, 0x4b,
+ 0xe6, 0x23, 0x47, 0x28, 0xb7, 0xb8, 0x49, 0x0c, 0xac, 0x48, 0x61, 0x9d, 0xfc, 0x29, 0xc6, 0xb2,
+ 0xf2, 0x6a, 0x6c, 0xe8, 0x59, 0x7e, 0xf3, 0x2c, 0x0a, 0x4b, 0x1b, 0x02, 0x19, 0x50, 0x93, 0x44,
+ 0x28, 0x92, 0x56, 0x43, 0x1f, 0x4f, 0xb7, 0x40, 0x8f, 0x06, 0xf4, 0xfd, 0x09, 0xf2, 0xaa, 0x2f,
+ 0x7d, 0xf6, 0x80, 0xf5, 0xfb, 0x01, 0xd5, 0xc8, 0x9a, 0x7a, 0x20, 0x93, 0xb3, 0x5a, 0xb9, 0xad,
+ 0xbb, 0x02, 0x3e, 0x5f, 0x3f, 0x8a, 0xb1, 0xfb, 0x44, 0x8b, 0xee, 0x14, 0xfa, 0x65, 0xf7, 0xed,
+ 0xf3, 0x2a, 0xa0, 0x59, 0xb5, 0x90, 0x71, 0xfa, 0x5d, 0x85, 0x28, 0xc7, 0xef, 0xad, 0x06, 0x17,
+ 0xe7, 0x63, 0x8b, 0x99, 0x5b, 0x56, 0xcb, 0xda, 0xfb, 0x86, 0x52, 0x58, 0x0a, 0xd4, 0x53, 0xe1,
+ 0xad, 0xcb, 0x4e, 0x3e, 0xca, 0x53, 0xcc, 0xb4, 0x4c, 0xd7, 0xf2, 0xc2, 0x30, 0x25, 0x4b, 0xbd,
+ 0x0e, 0x06, 0x42, 0xe1, 0x41, 0x5d, 0x10, 0xce, 0xcc, 0x5e, 0xf1, 0x3c, 0xcd, 0xaf, 0xda, 0xf4,
+ 0x76, 0x73, 0xb8, 0x24, 0x60, 0x8c, 0x0a, 0x0e, 0x9e, 0x54, 0x2e, 0xf8, 0xd6, 0x7a, 0xe7, 0x85,
+ 0x3b, 0xd8, 0x5c, 0x12, 0x30, 0x46, 0x05, 0x07, 0x4f, 0x2a, 0x17, 0x7c, 0x6b, 0x3d, 0x92, 0xa3,
+ 0x6d, 0x7c, 0x1d, 0xb4, 0x23, 0xf9, 0x22, 0x36, 0xa3, 0xc7, 0x96, 0x9e, 0x08, 0x51, 0xfd, 0xd4,
+ 0x20, 0xd7, 0xf9, 0x82, 0x73, 0x33, 0x2d, 0x3f, 0x72, 0xb9, 0xaf, 0x1a, 0xb5, 0x16, 0x88, 0xf2,
+ 0xa9, 0x08, 0xf8, 0xbf, 0xfc, 0x6d, 0x81, 0x6a, 0xd3, 0x69, 0x3e, 0x50, 0x6e, 0x57, 0x5a, 0x32,
+ 0x0b, 0x85, 0x38, 0xd1, 0x9b, 0x8d, 0xdf, 0xc6, 0x04, 0x2e, 0x0e, 0x6b, 0x65, 0x20, 0x5e, 0x28,
+ 0xce, 0xb1, 0x11, 0x6b, 0xa8, 0xf7, 0xfe, 0x4c, 0x23, 0x4e, 0x95, 0x60, 0xf5, 0xdb, 0x6c, 0x9d,
+ 0x8f, 0x9c, 0xec, 0x1d, 0xa2, 0x7f, 0x26, 0xe4, 0x90, 0x31, 0x3b, 0x91, 0xaa, 0x0a, 0x2a, 0xe9,
+ 0x94, 0x93, 0x49, 0x8d, 0xe1, 0x0a, 0x0e, 0xdc, 0xad, 0xa2, 0x83, 0xf7, 0x74, 0x21, 0x30, 0xb8,
+ 0x4c, 0xeb, 0x28, 0x87, 0xbc, 0x24, 0x8d, 0xdf, 0x86, 0xb0, 0x0a, 0x41, 0x4b, 0xba, 0xe0, 0x75,
+ 0x29, 0xd2, 0x9a, 0xf2, 0xf3, 0xa1, 0x35, 0x96, 0xd8, 0xc8, 0xc7, 0x38, 0xff, 0x0f, 0x3f, 0x7c,
+ 0x5a, 0x22, 0x58, 0xe6, 0x49, 0xfd, 0xf0, 0x90, 0x8e, 0xec, 0x16, 0x97, 0x81, 0xfa, 0x5c, 0x25,
+ 0xb4, 0x44, 0xb0, 0x0f, 0x92, 0x39, 0x23, 0xe3, 0xdf, 0x1b, 0x2c, 0xed, 0xc1, 0x37, 0xb8, 0x4a,
+ 0x6e, 0xbc, 0x8a, 0xa4, 0xd4, 0x08, 0x67, 0x8f, 0x5a, 0x56, 0xc3, 0x12, 0xd1, 0x95, 0x81, 0x21,
+ 0x1a, 0x4f, 0x69, 0x21, 0xaf, 0x9b, 0xaa, 0xee, 0x6a, 0x5d, 0x8b, 0xa3, 0x28, 0xd6, 0x8f, 0x02,
+ 0xf7, 0xe9, 0x16, 0xd8, 0x83, 0xae, 0x3c, 0x24, 0xc2, 0x3b, 0xe4, 0x55, 0xb1, 0xdf, 0x17, 0x98,
+ 0x67, 0xb9, 0xe9, 0xd4, 0x54, 0x9a, 0x7f, 0x26, 0xf0, 0x27, 0xab, 0x30, 0x9b, 0x8c, 0x36, 0xaf,
+ 0xd4, 0xfe, 0x78, 0x4a, 0x07, 0x6c, 0x54, 0xa2, 0x49, 0x13, 0x1e, 0xc3, 0xdd, 0x0d, 0xe3, 0x9f,
+ 0xb8, 0xc2, 0xa9, 0x4f, 0xc8, 0x7b, 0xf4, 0x42, 0xbd, 0x1a, 0xbb, 0x98, 0x23, 0xa1, 0x8b, 0x18,
+ 0xd8, 0x78, 0x61, 0x0a, 0x5d, 0x2e, 0x83, 0x03, 0x2b, 0x12, 0x89, 0xb6, 0x3f, 0x9b, 0xd0, 0xcd,
+ 0x8a, 0x1f, 0x96, 0x2d, 0x78, 0xaf, 0xe9, 0xec, 0x58, 0x41, 0xc4, 0xc6, 0x02, 0x85, 0xae, 0x35,
+ 0xda, 0xf8, 0x3a, 0xab, 0x46, 0x31, 0x44, 0x6c, 0x85, 0x4d, 0xef, 0xff, 0x10, 0xa2, 0x39, 0x6b,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x3d, 0x9b, 0xb1, 0x32, 0x1d, 0x67, 0x8f, 0xb6, 0x7e, 0xcb, 0xbd, 0xa7, 0x1a, 0x76, 0x6a, 0x8a,
+ 0x99, 0x55, 0x9c, 0x7c, 0x57, 0xa6, 0x5b, 0xab, 0x98, 0x6d, 0x27, 0x47, 0x60, 0x4a, 0x96, 0xb9,
+ 0xd3, 0xfd, 0x59, 0xdb, 0xc6, 0xa3, 0x5c, 0xc5, 0x2f, 0x3c, 0x87, 0xdd, 0x5a, 0xbb, 0x8e, 0xe5,
+ 0x9d, 0x96, 0x2a, 0xfd, 0x61, 0x98, 0x16, 0x75, 0x07, 0xd3, 0xeb, 0xd5, 0x3e, 0x38, 0x87, 0x36,
+ 0x7e, 0x36, 0x17, 0xe5, 0x0c, 0xf0, 0x90, 0x71, 0x63, 0xeb, 0x75, 0x1f, 0x6a, 0x9e, 0xc5, 0x58,
+ 0x06, 0x43, 0xed, 0x20, 0x2d, 0x21, 0x8a, 0xb1, 0x31, 0xe1, 0xaa, 0xdb, 0x71, 0x4b, 0xf8, 0x29,
+ 0xd1, 0x7d, 0x02, 0x7a, 0xdd, 0xbc, 0x9b, 0xaa, 0x81, 0x63, 0xe1, 0x94, 0x75, 0x82, 0x67, 0x43,
+ 0xaa, 0xc8, 0x6f, 0xaf, 0x0b, 0x9c, 0xc4, 0xd3, 0x2a, 0xf8, 0x6b, 0xdc, 0xb7, 0x93, 0x26, 0xc7,
+ 0xa4, 0xce, 0x2d, 0x4e, 0x4a, 0xc1, 0xd4, 0x1d, 0xe6, 0xa6, 0x9a, 0xe0, 0x7a, 0x3c, 0xfc, 0x33,
+ 0x03, 0xc0, 0x97, 0x10, 0xf7, 0xf1, 0x45, 0xb9, 0xf9, 0x91, 0x55, 0x8c, 0xd9, 0xc4, 0x7c, 0xf5,
+ 0x23, 0x17, 0x6e, 0x92, 0x84, 0xc2, 0x68, 0x86, 0x8b, 0x28, 0xfa, 0x96, 0x6c, 0xd2, 0xf4, 0x07,
+ 0x0a, 0xc5, 0xf4, 0x60, 0x77, 0x63, 0x5d, 0x10, 0x53, 0xe0, 0x3d, 0xae, 0x93, 0xdd, 0xcb, 0x7b,
+ 0x7c, 0xb6, 0x4c, 0x44, 0x17, 0xef, 0x57, 0x1e, 0xcd, 0xb4, 0x13, 0x56, 0x45, 0xa7, 0x2c, 0xfe,
+ 0x22, 0x57, 0xa2, 0x23, 0x68, 0x2c, 0xea, 0x50, 0xdc, 0xe6, 0xc9, 0x53, 0x9a, 0x2f, 0x61, 0x54,
+ 0x37, 0x5e, 0x45, 0x52, 0x6a, 0x04, 0xd2, 0xa6, 0x2d, 0x2b, 0x80, 0x09, 0x89, 0xab, 0xa1, 0xf1,
+ 0x4a, 0xa8, 0xc5, 0xa7, 0x91, 0x05, 0x07, 0x6e, 0xb7, 0x51, 0xa0, 0x9a, 0x3a, 0xf1, 0x18, 0x5c,
+ 0x2e, 0xd1, 0xbb, 0x63, 0x32, 0x6e, 0x3d, 0xf1, 0xbe, 0xe7, 0x5e, 0x26, 0x78, 0xb9, 0x52, 0x06,
+ 0x25, 0x54, 0x83, 0xb2, 0xa9, 0xe3, 0xe2, 0x37, 0xba, 0xc9, 0x50, 0x4d, 0x1d, 0x99, 0x0c, 0x2e,
+ 0xf8, 0xaf, 0x98, 0x88, 0x2e, 0x1d, 0xae, 0x3c, 0x59, 0xab, 0x26, 0xac, 0x8a, 0x8d, 0x58, 0x3f,
+ 0xdd, 0xfb, 0x1b, 0x3a, 0x87, 0xfe, 0x4c, 0x0b, 0xe3, 0x62, 0x76, 0xe1, 0x97, 0x14, 0x54, 0x11,
+ 0x31, 0x1d, 0xa8, 0x72, 0x47, 0x25, 0x58, 0x17, 0x1c, 0xca, 0x2a, 0xd2, 0xf8, 0xe0, 0x59, 0xd8,
+ 0x74, 0xf3, 0xe3, 0x85, 0x7b, 0x93, 0xcd, 0x61, 0x30, 0x0b, 0x48, 0xb1, 0xf9, 0x43, 0x0e, 0x23,
+ 0x59, 0xe2, 0xcf, 0xf6, 0xbe, 0x0c, 0xb5, 0x29, 0x77, 0x7d, 0x43, 0x1b, 0x58, 0x3e, 0x20, 0xd0,
+ 0xcd, 0x71, 0x86, 0x7b, 0x5f, 0x06, 0xbb, 0xf5, 0xda, 0xdf, 0xc0, 0xec, 0x2c, 0x1f, 0x10, 0x68,
+ 0x5d, 0x21, 0x79, 0x77, 0x88, 0x32, 0xf8, 0xf7, 0xe8, 0xc3, 0x8f, 0x89, 0x06, 0x4c, 0x31, 0x5f,
+ 0x08, 0x45, 0xaf, 0xc1, 0x6c, 0x7c, 0x9a, 0x7f, 0xfd, 0xbf, 0x5b, 0xe7, 0xbc, 0xe4, 0x22, 0xdd,
+ 0x7f, 0x76, 0xdb, 0x54, 0xe0, 0x1e, 0x12, 0xa7, 0x34, 0x25, 0x46, 0xda, 0x9c, 0x63, 0x50, 0x0b,
+ 0xa6, 0x4e, 0x76, 0xef, 0x51, 0xde, 0x13, 0x72, 0x48, 0xf9, 0xfc, 0xa9, 0x55, 0x05, 0x15, 0x95,
+ 0xf9, 0xef, 0x54, 0x39, 0xc2, 0xf3, 0x2c, 0xea, 0x0e, 0x65, 0x15, 0x69, 0x7c, 0x70, 0xcd, 0x6c,
+ 0x90, 0x50, 0xff, 0x0c, 0xd7, 0x34, 0x43, 0x02, 0x32, 0x1c, 0x4f, 0x65, 0x2a, 0x53, 0x21, 0x37,
+ 0x0f, 0x46, 0x8e, 0x50, 0xad, 0xb3, 0x92, 0x18, 0x9b, 0x90, 0xc2, 0xf9, 0x3b, 0x52, 0x4f, 0xa7,
+ 0xb0, 0x87, 0x06, 0x8e, 0xa4, 0x07, 0x6e, 0x3d, 0x40, 0xa5, 0xe0, 0x7f, 0x9f, 0x45, 0xa9, 0xc5,
+ 0xac, 0x8b, 0x82, 0x8f, 0x26, 0xbd, 0x4e, 0x62, 0x1b, 0x19, 0xc1, 0x07, 0xc6, 0xd8, 0xde, 0xee,
+ 0x60, 0xba, 0xc8, 0x45, 0x95, 0x55, 0x77, 0x41, 0x96, 0x08, 0x32, 0x2e, 0x1c, 0x3a, 0x5b, 0xd5,
+ 0x6c, 0x3c, 0xd1, 0x05, 0xcf, 0x17, 0xa0, 0xe0, 0xf4, 0x09, 0xa5, 0x5b, 0xfe, 0xac, 0x68, 0x87,
+ 0x13, 0x4a, 0x0a, 0x51, 0x2f, 0x09, 0xb2, 0x47, 0xc0, 0x2c, 0xe3, 0x81, 0x62, 0xcf, 0x38, 0x8c,
+ 0xbc, 0x01, 0x1f, 0xce, 0xfe, 0x45, 0xb9, 0x9c, 0x22, 0xa4, 0x77, 0x0a, 0x7d, 0xd3, 0x9a, 0x97,
+ 0x32, 0xdd, 0x3f, 0x62, 0xb0, 0xd4, 0x1d, 0xae, 0xe5, 0x5b, 0x7f, 0x5e, 0x21, 0x24, 0x25, 0x2d,
+ 0xf1, 0xaa, 0xfb, 0xf8, 0xae, 0x8f, 0xb6, 0x95, 0xf3, 0xda, 0x4e, 0x8e, 0xc0, 0x94, 0xef, 0xb1,
+ 0xd6, 0x7e, 0x23, 0xeb, 0x1c, 0x73, 0x93, 0xcd, 0xe7, 0x4c, 0x78, 0x8a, 0xf2, 0x34, 0x0a, 0x39,
+ 0x44, 0xae, 0x87, 0x46, 0xd0, 0x58, 0x17, 0xa0, 0x7b, 0x0f, 0x51, 0xa6, 0xf7, 0x5e, 0xc2, 0xa8,
+ 0x62, 0x3a, 0x93, 0xe4, 0x8e, 0x4a, 0xb0, 0x2e, 0x38, 0x57, 0x54, 0x67, 0x33, 0x03, 0xb2, 0x73,
+ 0xa8, 0x48, 0x34, 0x0e, 0x10, 0x83, 0x03, 0xbc, 0x84, 0xa7, 0x0d, 0x95, 0x98, 0xaa, 0xcf, 0x61,
+ 0x40, 0x6d, 0x31, 0xc7, 0xe6, 0x66, 0x5a, 0x7e, 0xe4, 0xb1, 0x9d, 0x34, 0xa9, 0x2c, 0xd3, 0x27,
+ 0x95, 0xd3, 0x85, 0x3c, 0x0d, 0xe4, 0x8c, 0x0a, 0xfa, 0x6c, 0xb0, 0x32, 0x82, 0xdc, 0xa5, 0xeb,
+ 0x11, 0xca, 0x51, 0xf0, 0x34, 0x16, 0x75, 0x28, 0x6e, 0x73, 0x85, 0xc8, 0x4d, 0xf6, 0xd1, 0x2a,
+ 0x8b, 0x5f, 0x5a, 0x9c, 0x94, 0x41, 0x6b, 0x3a, 0x0f, 0x8f, 0xf7, 0x03, 0xf4, 0x78, 0x3b, 0x66,
+ 0x01, 0x40, 0xcc, 0xb1, 0xec, 0xee, 0x82, 0xd6, 0x57, 0xce, 0x33, 0xc5, 0xf6, 0xfd, 0x95, 0x53,
+ 0x0d, 0xc6, 0xd5, 0xf1, 0xb6, 0xac, 0x55, 0x77, 0x35, 0xcf, 0xa4, 0xb0, 0x14, 0x6b, 0xa6, 0x01,
+ 0xe1, 0x20, 0x66, 0xb9, 0x76, 0x77, 0x41, 0x6b, 0xca, 0x67, 0xf8, 0x83, 0x7b, 0x9f, 0xab, 0xc8,
+ 0x6b, 0x3f, 0xf0, 0x94, 0x0e, 0xd8, 0xa8, 0x87, 0x92, 0x26, 0x3c, 0x45, 0x79, 0x1a, 0x05, 0xfd,
+ 0xc2, 0x37, 0x08, 0x2b, 0xf2, 0xb5, 0x29, 0xed, 0x41, 0x4f, 0x02, 0x15, 0x17, 0x4d, 0x5f, 0xcf,
+ 0x5c, 0x61, 0xb5, 0xc6, 0x64, 0xdc, 0x7a, 0x21, 0xbf, 0x0d, 0xbc, 0x4c, 0xf0, 0xb1, 0xa4, 0x0c,
+ 0xc7, 0xb4, 0x72, 0x1b, 0x28, 0x65, 0xe6, 0xe5, 0x89, 0x3f, 0xfd, 0x42, 0xbf, 0xc2, 0xdb, 0x13,
+ 0x84, 0x19, 0xd4, 0xcc, 0x39, 0xf2, 0xf9, 0x22, 0x94, 0x1f, 0x35, 0xfa, 0xcf, 0x2a, 0x74, 0xc1,
+ 0x45, 0xee, 0x4b, 0xf7, 0x3c, 0xb6, 0x95, 0x76, 0x2c, 0xc1, 0x62, 0x63, 0x01, 0xa3, 0x57, 0xfb,
+ 0x79, 0x35, 0x36, 0x74, 0xcd, 0x3f, 0x98, 0x16, 0x05, 0xc4, 0xec, 0x01, 0xed, 0x28, 0xa8, 0x22,
+ 0x4b, 0xe8, 0x09, 0x16, 0x7d, 0xeb, 0x85, 0xb8, 0xe0, 0x9f, 0x93, 0x5f, 0xcc, 0x0c, 0x8d, 0x0f,
+ 0x48, 0x28, 0x9e, 0x06, 0x8a, 0x1a, 0xc0, 0x01, 0x19, 0x0e, 0xc6, 0xd3, 0x15, 0xc8, 0xf1, 0xfa,
+ 0x6f, 0xfc, 0x46, 0x15, 0x38, 0xe6, 0xe5, 0x59, 0x0d, 0x98, 0xf0, 0xd7, 0x27, 0x68, 0x14, 0x72,
+ 0xa7, 0x0e, 0xba, 0x5e, 0xbd, 0x30, 0x91, 0xa4, 0x1f, 0x37, 0xcf, 0x6c, 0xa3, 0xf8, 0x80, 0xc6,
+ 0xa2, 0x8d, 0xc0, 0x6e, 0x67, 0xe0, 0x5e, 0xac, 0xd7, 0x47, 0x30, 0x3b, 0x0b, 0x77, 0x04, 0x1a,
+ 0xc0, 0xb7, 0x53, 0x8a, 0xe9, 0xaa, 0xee, 0x82, 0xef, 0x10, 0x64, 0x5c, 0x38, 0x74, 0xb6, 0x69,
+ 0x2c, 0x51, 0xe0, 0xc2, 0x29, 0x71, 0xfa, 0x9e, 0x10, 0xb8, 0x38, 0x6f, 0x57, 0x80, 0xbb, 0xa0,
+ 0x81, 0x9a, 0xae, 0xfc, 0xe3, 0x22, 0x36, 0x2a, 0x5c, 0x6f, 0xca, 0xad, 0x67, 0xa5, 0xf0, 0x1d,
+ 0xd0, 0x3d, 0xce, 0xcb, 0x31, 0x52, 0x19, 0x7c, 0xd6, 0xad, 0xd2, 0x51, 0x83, 0x7f, 0xf2, 0x10,
+ 0x17, 0x89, 0xbc, 0xd0, 0x19, 0x37, 0xff, 0x99, 0x5f, 0x92, 0x2f, 0x13, 0x3c, 0xbd, 0x29, 0x03,
+ 0xa3, 0xcd, 0x0c, 0xdf, 0x8b, 0x0e, 0xdc, 0x7a, 0x80, 0x89, 0x03, 0xfe, 0xfd, 0x8a, 0x91, 0x49,
+ 0xd2, 0xbd, 0x95, 0x6a, 0x2a, 0x4d, 0xde, 0x13, 0x78, 0xf2, 0xb4, 0x18, 0xac, 0x46, 0x1b, 0xb6,
+ 0x57, 0xe4, 0x8d, 0x17, 0xff, 0x51, 0xa5, 0xe7, 0xbb, 0x23, 0xb2, 0x27, 0x95, 0x91, 0xfa, 0x24,
+ 0x71, 0x70, 0x99, 0xb5, 0xa1, 0x43, 0x02, 0x69, 0xf8, 0x7b, 0xb7, 0xe6, 0x51, 0xcc, 0x8a, 0xff,
+ 0xa1, 0x4d, 0x57, 0x7e, 0x90, 0x11, 0x1b, 0x15, 0x2e, 0xd6, 0x65, 0xb7, 0xd2, 0xb3, 0x78, 0xef,
+ 0xc3, 0x77, 0xc4, 0x9a, 0x1e, 0x5b, 0xab, 0x3b, 0x16, 0x81, 0x31, 0xd0, 0xe1, 0xb0, 0xca, 0x9c,
+ 0x51, 0xa7, 0x60, 0x37, 0xd2, 0x70, 0x2f, 0x56, 0x8a, 0xc2, 0x18, 0xfc, 0xe4, 0xda, 0x02, 0x0d,
+ 0x35, 0xde, 0x1e, 0xf3, 0x71, 0x1b, 0x15, 0xc9, 0x83, 0x74, 0xe6, 0x40, 0xa6, 0x92, 0x48, 0x57,
+ 0x47, 0x6e, 0x10, 0x56, 0x27, 0xa9, 0x52, 0x19, 0x82, 0x9e, 0x04, 0x2a, 0x2e, 0x9a, 0xbe, 0x5d,
+ 0xf5, 0x69, 0x4d, 0x79, 0x98, 0xb1, 0xfb, 0x4b, 0x6c, 0x64, 0x82, 0x1c, 0x9e, 0xe6, 0xfe, 0x3e,
+ 0xb2, 0x07, 0x5d, 0x2f, 0xbf, 0x18, 0xa9, 0x52, 0xee, 0xfa, 0x86, 0x36, 0xb0, 0x7c, 0x40, 0x63,
+ 0xd7, 0x3e, 0xef, 0x5a, 0xf0, 0x9d, 0x11, 0x1b, 0xb0, 0x82, 0x4b, 0x4f, 0x04, 0xc9, 0x9f, 0x6a,
+ 0x16, 0xc9, 0x70, 0x61, 0xf5, 0xd9, 0x7d, 0x4f, 0x08, 0x5c, 0x1c, 0xd6, 0xca, 0x40, 0xbc, 0x50,
+ 0x86, 0x99, 0x8f, 0x6d, 0x22, 0xed, 0x3e, 0x4d, 0x3a, 0x40, 0x53, 0xb3, 0xe0, 0x13, 0x9d, 0x67,
+ 0x73, 0xf0, 0xc2, 0x14, 0xba, 0x5c, 0xc5, 0x06, 0x56, 0x24, 0xd1, 0xaf, 0x7e, 0xf5, 0x63, 0x59,
+ 0xc4, 0x74, 0xe5, 0x0b, 0xdf, 0x94, 0xa3, 0x5c, 0x70, 0xae, 0xa8, 0xce, 0x66, 0x06, 0xa7, 0xe6,
+ 0x34, 0x9e, 0xd2, 0x42, 0x9d, 0xf5, 0x97, 0x1f, 0xd4, 0xba, 0xd5, 0x85, 0x50, 0x6f, 0xdd, 0x04,
+ 0xc6, 0xf4, 0xbe, 0xaa, 0xc4, 0x8b, 0x64, 0x33, 0xde, 0xf1, 0xce, 0x87, 0x49, 0x3f, 0x4e, 0x40,
+ 0x96, 0x13, 0x12, 0x2c, 0xfa, 0x15, 0xc9, 0xb3, 0x03, 0xfd, 0xe5, 0xbe, 0x5b, 0x18, 0xd9, 0x1e,
+ 0xed, 0xa6, 0x7f, 0xf9, 0x2c, 0x35, 0x96, 0xca, 0xa8, 0x66, 0x6f, 0xf6, 0x99, 0x09, 0x98, 0x9a,
+ 0xf4, 0x29, 0x81, 0xc8, 0x74, 0x5f, 0x79, 0x9d, 0x3b, 0xaa, 0xb1, 0xd9, 0x68, 0x1b, 0x6b, 0x6d,
+ 0xae, 0x0b, 0xd9, 0x2e, 0x3d, 0xa2, 0x89, 0x0d, 0xb5, 0x46, 0xa7, 0x4e, 0xe9, 0xe1, 0x37, 0x48,
+ 0x63, 0x7a, 0x5f, 0x55, 0x62, 0xa4, 0x32, 0xf8, 0x6f, 0x99, 0x67, 0xa2, 0xc5, 0xfe, 0x27, 0x20,
+ },
+ { /* 5 */
+ 0x79, 0x80, 0xab, 0xe7, 0xa9, 0x6f, 0x50, 0x97, 0xbe, 0x20, 0xdb, 0x5a, 0xb5, 0x1a, 0xf0, 0xb4,
+ 0x91, 0x1a, 0x97, 0x16, 0x14, 0x45, 0x9f, 0x6e, 0x60, 0xe7, 0xef, 0x55, 0x0a, 0x58, 0x62, 0xaa,
+ 0x99, 0xdc, 0x5f, 0x93, 0xd1, 0x32, 0x94, 0x30, 0x3d, 0x37, 0xfc, 0x67, 0x89, 0x09, 0x7f, 0xce,
+ 0xb9, 0x42, 0xf9, 0xc2, 0x43, 0x2d, 0xb8, 0x8b, 0x8a, 0xf1, 0xb0, 0xaf, 0xc0, 0x8e, 0x0b, 0x9d,
+ 0x71, 0x46, 0x63, 0x62, 0x6c, 0x18, 0x5b, 0xc9, 0xe3, 0xf0, 0xc8, 0x68, 0x36, 0x4b, 0xed, 0xd0,
+ 0xea, 0x4a, 0x0e, 0x41, 0x1d, 0x47, 0xbd, 0x0f, 0x58, 0xf3, 0x40, 0xe2, 0xef, 0xc7, 0x04, 0x07,
+ 0xd7, 0x56, 0x4e, 0xa7, 0xd0, 0xcc, 0x51, 0x02, 0x84, 0xf4, 0xeb, 0xf2, 0x68, 0xd9, 0xf3, 0x27,
+ 0x95, 0x79, 0xf3, 0xb5, 0x97, 0x9f, 0x7b, 0x41, 0xaf, 0x8f, 0x07, 0x4c, 0xaa, 0x91, 0x8d, 0x98,
+ 0x55, 0xbb, 0xa1, 0x90, 0x7d, 0xdd, 0x93, 0x5d, 0x9b, 0x5e, 0x6c, 0xb9, 0xdf, 0x05, 0x76, 0xb1,
+ 0xda, 0x9b, 0xfb, 0xd9, 0xc6, 0xb6, 0x87, 0x08, 0x55, 0x56, 0x2a, 0x4e, 0x63, 0xe2, 0x4a, 0x9c,
+ 0xdb, 0xf3, 0xe2, 0x81, 0x96, 0x61, 0xbe, 0x73, 0x16, 0x4c, 0x10, 0xd9, 0x4b, 0x41, 0x01, 0x71,
+ 0xb5, 0xe7, 0x55, 0xe4, 0x05, 0x80, 0x57, 0xfa, 0x18, 0x49, 0x4b, 0x84, 0xe3, 0x16, 0xf9, 0xcb,
+ 0x3f, 0xcc, 0x72, 0x56, 0x6d, 0xe6, 0x9e, 0xfb, 0x5a, 0x33, 0xdf, 0xfd, 0xd7, 0x9b, 0x61, 0x39,
+ 0x54, 0xd3, 0xb8, 0xc8, 0x2d, 0x0a, 0xaa, 0x26, 0xd8, 0x44, 0x56, 0x2e, 0xf7, 0xa6, 0x3d, 0x5c,
+ 0x7d, 0xe3, 0xcf, 0x44, 0x2a, 0xb5, 0xb4, 0xb8, 0x71, 0x48, 0x33, 0x43, 0x15, 0xd3, 0x1f, 0x86,
+ 0xd5, 0x86, 0x7c, 0x17, 0x70, 0xa1, 0x23, 0xf4, 0x02, 0xc0, 0x9f, 0x1f, 0x38, 0x5c, 0x65, 0x3e,
+ 0xbd, 0x21, 0x9d, 0x61, 0xc0, 0xf7, 0x5c, 0xa4, 0x45, 0x99, 0x58, 0xb6, 0x60, 0x47, 0xe4, 0xaf,
+ 0xa9, 0x0d, 0xaa, 0x0b, 0x0a, 0xc3, 0xae, 0x37, 0x30, 0x92, 0x96, 0xcb, 0x05, 0x2c, 0x31, 0x55,
+ 0xfe, 0x66, 0x39, 0x2b, 0xd7, 0x73, 0x4f, 0x9c, 0x2d, 0xf8, 0x8e, 0x9f, 0x8a, 0xac, 0xd1, 0xfd,
+ 0x3b, 0xaf, 0x16, 0xf5, 0xee, 0x3c, 0x7a, 0xd4, 0x95, 0x5b, 0x37, 0xe4, 0x77, 0x52, 0x8e, 0x0b,
+ 0x1d, 0x82, 0xe6, 0xb7, 0x5f, 0x94, 0xc0, 0xb6, 0x6b, 0xc1, 0xe7, 0xd8, 0xce, 0x99, 0x83, 0x73,
+ 0x36, 0x62, 0xa3, 0x8b, 0xf8, 0x46, 0xac, 0xde, 0x44, 0xf9, 0xf6, 0x58, 0x7c, 0x69, 0x37, 0xb0,
+ 0x38, 0x17, 0x3d, 0x1d, 0x1e, 0x86, 0x31, 0x59, 0x50, 0x75, 0x79, 0x9e, 0x0f, 0x74, 0x53, 0xff,
+ 0x07, 0xdb, 0x4f, 0x4b, 0x73, 0x60, 0xaf, 0xa2, 0x0a, 0x46, 0xa6, 0x63, 0xd8, 0xef, 0x32, 0xc6,
+ 0x1b, 0x31, 0xb0, 0xa4, 0x7c, 0x23, 0x56, 0x6f, 0x22, 0x9d, 0x7b, 0x2c, 0x3e, 0xd5, 0xfa, 0x58,
+ 0xfb, 0x6d, 0x44, 0xd0, 0x04, 0x7e, 0x92, 0xc8, 0xa1, 0x8a, 0x5c, 0x11, 0x02, 0xc6, 0x75, 0x22,
+ 0x70, 0x2e, 0x7a, 0x3a, 0x3c, 0xcf, 0x62, 0xb2, 0xa0, 0xea, 0xf2, 0xff, 0x1e, 0xe8, 0xa6, 0x3d,
+ 0x89, 0x93, 0x0c, 0x5a, 0x98, 0xdc, 0x82, 0x8c, 0x87, 0x54, 0xda, 0x03, 0x4c, 0xab, 0x45, 0x06,
+ 0x4a, 0xe9, 0x75, 0x97, 0x82, 0x24, 0x21, 0x1d, 0x76, 0xab, 0xff, 0x8c, 0x41, 0x19, 0x63, 0xdb,
+ 0xae, 0xd6, 0xe5, 0x40, 0x79, 0xa3, 0x01, 0x95, 0x3a, 0xd4, 0x30, 0xa8, 0xdd, 0xc3, 0x03, 0x93,
+ 0x3d, 0x1c, 0x40, 0xe6, 0xcd, 0x8b, 0xec, 0x0d, 0xdc, 0x07, 0xab, 0x10, 0x87, 0x1e, 0xf7, 0x20,
+ 0x29, 0x30, 0x77, 0x8c, 0x07, 0xbf, 0x1e, 0x9e, 0xa9, 0x0c, 0x65, 0x6d, 0xe2, 0x75, 0x22, 0xda,
+ 0x8a, 0x2b, 0x27, 0xb2, 0x68, 0x66, 0xc9, 0x01, 0x42, 0x7a, 0x94, 0x79, 0x34, 0x8d, 0x98, 0xf2,
+ 0xcd, 0x0f, 0xe7, 0x5b, 0xfc, 0x38, 0x3e, 0x16, 0xe5, 0x73, 0xaa, 0x49, 0x7e, 0xaf, 0x42, 0x92,
+ 0x41, 0x97, 0x96, 0xfa, 0xb7, 0xe9, 0x61, 0xce, 0xee, 0x55, 0xa2, 0xc4, 0xba, 0x6e, 0xa3, 0x4b,
+ 0xce, 0xb7, 0xcc, 0xb3, 0x0c, 0x82, 0x75, 0x9b, 0x20, 0x5d, 0xe4, 0x33, 0x06, 0x89, 0x9f, 0x66,
+ 0x16, 0xfc, 0x05, 0xda, 0x6a, 0x59, 0x80, 0x65, 0xf3, 0x3f, 0xba, 0x90, 0x35, 0xee, 0x43, 0xe3,
+ 0x6c, 0xc4, 0x85, 0xd5, 0x33, 0x8c, 0x9b, 0x7f, 0x88, 0x31, 0x2f, 0xb0, 0xf8, 0xd2, 0x6e, 0xa3,
+ 0x1f, 0x52, 0xd4, 0x07, 0xff, 0xf9, 0xb2, 0x40, 0xed, 0xf5, 0x93, 0x35, 0x9e, 0x1c, 0x15, 0x6a,
+ 0xe0, 0x5c, 0xf4, 0x74, 0x78, 0x5d, 0xc4, 0xa7, 0x83, 0x17, 0x27, 0x3d, 0x3c, 0x13, 0x8f, 0x7a,
+ 0xf5, 0x18, 0xda, 0x46, 0xe2, 0xbe, 0x0f, 0x4f, 0xb5, 0x06, 0xd3, 0xd7, 0x71, 0xdb, 0x11, 0x6d,
+ 0xb0, 0xec, 0x28, 0x1f, 0xd6, 0x8d, 0x8a, 0xae, 0x94, 0x3b, 0x99, 0x0a, 0x6b, 0x7c, 0x5d, 0x14,
+ 0xde, 0xf8, 0x9f, 0x7a, 0x45, 0x6c, 0x63, 0x27, 0x9a, 0x3e, 0xc2, 0x57, 0xc3, 0x2b, 0xa5, 0xae,
+ 0x03, 0xb8, 0x2b, 0xe8, 0xf0, 0xba, 0x4b, 0x8d, 0xc5, 0x2e, 0x4e, 0x7a, 0x78, 0x26, 0xdd, 0xf4,
+ 0xd0, 0x8d, 0x01, 0xec, 0xa3, 0xac, 0xfe, 0xa0, 0x8e, 0xb2, 0x4d, 0x91, 0xb0, 0x36, 0xc1, 0xe1,
+ 0x8e, 0x48, 0x43, 0x11, 0xeb, 0xbc, 0x2d, 0x2e, 0x8d, 0x12, 0x7c, 0x60, 0x94, 0x44, 0x77, 0xc0,
+ 0x23, 0x26, 0x8d, 0xb9, 0x62, 0xa5, 0x67, 0x36, 0x72, 0xe8, 0x02, 0xb2, 0x31, 0xa1, 0xa9, 0xa7,
+ 0x0a, 0x16, 0xfa, 0x35, 0x65, 0x1a, 0x79, 0xa8, 0xdb, 0xe4, 0x67, 0xdf, 0xd3, 0xd4, 0x8b, 0x7d,
+ 0xf3, 0xab, 0x8c, 0x55, 0xc1, 0x09, 0x99, 0x96, 0xfc, 0x5a, 0x4f, 0x23, 0x81, 0x97, 0x68, 0x46,
+ 0x06, 0xb3, 0x56, 0x13, 0x23, 0xb7, 0x96, 0xd9, 0x49, 0x5c, 0x9c, 0xf4, 0xf0, 0x4c, 0x79, 0x2b,
+ 0xdf, 0x90, 0x86, 0x22, 0x15, 0xbb, 0x5a, 0x5c, 0xd9, 0x24, 0xf8, 0xc0, 0xeb, 0x88, 0xee, 0x43,
+ 0x4d, 0x32, 0x3a, 0xdc, 0xf1, 0x44, 0x8e, 0xbf, 0x7c, 0xed, 0x59, 0xef, 0x99, 0xf6, 0x51, 0x1d,
+ 0x98, 0xb4, 0x46, 0xcb, 0x81, 0xe5, 0xad, 0x4b, 0x7e, 0x2d, 0xc6, 0xf0, 0xa1, 0xaa, 0x34, 0x23,
+ 0x97, 0xa9, 0xc1, 0x05, 0x37, 0xf2, 0x09, 0xb7, 0x29, 0xbb, 0x73, 0xa1, 0xfa, 0x14, 0x1b, 0x81,
+ 0xad, 0x6e, 0xce, 0xa8, 0x89, 0x19, 0x4a, 0x18, 0xff, 0xfa, 0x7e, 0xd2, 0xa5, 0xe5, 0xde, 0x67,
+ 0x15, 0x44, 0x2e, 0x32, 0x9a, 0xe3, 0xcb, 0xe8, 0x36, 0x11, 0xf4, 0xea, 0x4d, 0xc8, 0x9e, 0x17,
+ 0xa2, 0x73, 0x49, 0x66, 0x3f, 0x0e, 0xee, 0xe4, 0xa8, 0x6c, 0xcb, 0x83, 0xfe, 0x5b, 0xf1, 0xc5,
+ 0xab, 0xdd, 0x98, 0xbb, 0xaa, 0xae, 0xdc, 0xc1, 0xb6, 0xa6, 0xe2, 0x26, 0x55, 0xa9, 0xa7, 0x4c,
+ 0xc0, 0xc2, 0x52, 0x25, 0xea, 0x42, 0xe8, 0x1c, 0x34, 0xd1, 0x6b, 0xf5, 0x75, 0x94, 0xfb, 0x29,
+ 0xb6, 0x5f, 0x7e, 0x0c, 0xf5, 0x3a, 0x1c, 0x77, 0xdd, 0x67, 0x05, 0xfe, 0x9b, 0x30, 0x24, 0x3f,
+ 0x53, 0x08, 0xf7, 0x83, 0x5e, 0x6a, 0x05, 0x84, 0xd2, 0x02, 0xf0, 0x4d, 0x2f, 0x49, 0x0f, 0x9a,
+ 0xed, 0x91, 0x41, 0x0a, 0x6e, 0x27, 0x12, 0xad, 0x52, 0xb5, 0xe6, 0x81, 0x37, 0x28, 0x36, 0xc1,
+ 0xc1, 0xaa, 0x4b, 0x7d, 0xba, 0x95, 0xd1, 0x67, 0x77, 0xcb, 0x51, 0x62, 0x5d, 0x37, 0xb0, 0xc4,
+ 0xe1, 0x34, 0xed, 0x2c, 0x28, 0x8a, 0xfd, 0xdc, 0xc0, 0x0d, 0x1d, 0xaa, 0x14, 0xb0, 0xc4, 0x97,
+ 0x62, 0xb1, 0x1b, 0x43, 0xd5, 0x4c, 0x06, 0xf8, 0x9c, 0xbd, 0xa0, 0x76, 0x8b, 0xcf, 0x0a, 0xec,
+ 0x24, 0xfd, 0xc2, 0xf2, 0x11, 0xc5, 0xc8, 0x94, 0x78, 0xae, 0xa4, 0xd1, 0xe9, 0x4e, 0x9b, 0x61,
+ 0xe9, 0xf2, 0x25, 0xa9, 0xed, 0xfd, 0xf6, 0x82, 0x9d, 0xdd, 0x0e, 0x98, 0x97, 0xe1, 0xd9, 0xf3,
+ 0x65, 0x6a, 0x54, 0x08, 0xa6, 0x2c, 0xa9, 0x5a, 0x96, 0xfb, 0x06, 0x15, 0x53, 0x20, 0x38, 0x2a,
+ 0xec, 0xf9, 0x58, 0x52, 0x3e, 0xf0, 0x2b, 0xd6, 0x11, 0xaf, 0xdc, 0x16, 0x1f, 0x8b, 0x7d, 0x2c,
+ 0x5d, 0x7d, 0x69, 0x15, 0xb8, 0xaa, 0x98, 0x03, 0xc6, 0x8e, 0x7f, 0x8b, 0x5c, 0x54, 0x6b, 0xd5,
+ 0x26, 0x2d, 0xf0, 0x42, 0xb1, 0xa8, 0xba, 0x62, 0xfe, 0x9a, 0xd0, 0x3c, 0xb9, 0xcb, 0x0d, 0x78,
+ 0xbe, 0x99, 0xb6, 0x89, 0x30, 0x4d, 0x17, 0x29, 0x80, 0xb7, 0x16, 0xcc, 0x18, 0x61, 0x39, 0x5b,
+ 0x21, 0xf6, 0xbf, 0x09, 0xc2, 0xc8, 0x15, 0xc0, 0xf4, 0xdc, 0x76, 0x5f, 0x61, 0x24, 0x3f, 0xbe,
+ 0x4b, 0x81, 0x6c, 0xcf, 0xd2, 0xf3, 0x18, 0x66, 0x35, 0xb1, 0xc5, 0x1b, 0x69, 0xba, 0x28, 0x36,
+ 0x48, 0x39, 0x47, 0x27, 0x22, 0x49, 0x53, 0xeb, 0xf0, 0x9f, 0x8b, 0x61, 0x11, 0x9c, 0xf5, 0xc2,
+ 0xca, 0xd4, 0xa8, 0x10, 0x8f, 0x58, 0x91, 0xb4, 0xef, 0x35, 0x0c, 0x2a, 0xa6, 0x40, 0x70, 0x54,
+ 0xf7, 0xc8, 0xe8, 0xf6, 0x42, 0xd3, 0x7d, 0xb9, 0x33, 0x32, 0xa7, 0x3a, 0x21, 0x5e, 0x87, 0x74,
+ 0x7c, 0x8b, 0xd6, 0x1c, 0x7a, 0x62, 0x8d, 0xc3, 0x32, 0x52, 0x09, 0xd4, 0x3d, 0x70, 0x54, 0x6b,
+ 0xff, 0x0e, 0x20, 0x73, 0x87, 0xa4, 0x76, 0xe7, 0x6e, 0xe2, 0xb4, 0x08, 0xa2, 0x0f, 0x9a, 0x10,
+ 0x20, 0x9e, 0xa6, 0x51, 0x92, 0x1f, 0x2c, 0xbb, 0xb7, 0xc6, 0x4c, 0xc8, 0x49, 0x87, 0x74, 0x53,
+ 0xd1, 0xe5, 0x18, 0xb4, 0xf3, 0x7b, 0xc7, 0xdb, 0xcd, 0xa8, 0x77, 0x06, 0x98, 0x95, 0x8a, 0x0c,
+ 0x85, 0x36, 0xa0, 0x7c, 0xde, 0x71, 0x6d, 0xfd, 0x15, 0xec, 0x21, 0x28, 0x6f, 0x33, 0xb7, 0x50,
+ 0x58, 0x76, 0x14, 0xee, 0x6b, 0xa7, 0x45, 0x57, 0x4a, 0xfc, 0xad, 0x05, 0xd4, 0x3e, 0xcf, 0x0a,
+ 0x49, 0x51, 0x5e, 0x7f, 0x72, 0x9e, 0x6a, 0x90, 0xb3, 0x85, 0xb1, 0xf6, 0x39, 0x3f, 0xbe, 0x2f,
+ 0xfa, 0x05, 0x5d, 0x88, 0x54, 0xa9, 0xab, 0xb3, 0xe2, 0x90, 0x66, 0x86, 0x2a, 0x65, 0x3e, 0xcf,
+ 0x87, 0xe6, 0x92, 0xcc, 0x7e, 0x1c, 0x1f, 0x0b, 0x93, 0xd8, 0x55, 0xc5, 0x3f, 0xb6, 0x21, 0x49,
+ 0x27, 0x45, 0xe9, 0x1a, 0xe1, 0x7f, 0x83, 0x19, 0xbd, 0x80, 0xea, 0xab, 0x91, 0x68, 0x46, 0x95,
+ 0xe8, 0x9a, 0x3c, 0xf1, 0xbd, 0x2a, 0xcf, 0xf9, 0xde, 0xc7, 0x34, 0x0f, 0xbf, 0x42, 0x92, 0x1e,
+ 0xf4, 0x70, 0xc3, 0x1e, 0xb2, 0x69, 0x36, 0x34, 0xf6, 0x1c, 0xe9, 0x40, 0x59, 0x78, 0x5a, 0x80,
+ 0x5a, 0xa6, 0x26, 0x5e, 0xcb, 0xca, 0x37, 0xa1, 0xcc, 0xc8, 0xd9, 0xe8, 0x84, 0xbb, 0x59, 0x13,
+ 0x66, 0xd2, 0x7f, 0xe0, 0x56, 0x96, 0xe2, 0xd7, 0x53, 0xd5, 0x48, 0x6f, 0x2b, 0x06, 0xe5, 0xde,
+ 0xf0, 0x13, 0xa7, 0xbd, 0x31, 0xb3, 0xd2, 0x1b, 0x39, 0x74, 0x01, 0x59, 0xf9, 0xb1, 0xb5, 0xb2,
+ 0xcb, 0xbc, 0xb1, 0x48, 0xdf, 0x8f, 0xa8, 0xcf, 0xac, 0x2f, 0x36, 0xbd, 0x8e, 0xe3, 0x3b, 0xb9,
+ 0x0e, 0x75, 0x9e, 0x96, 0xe6, 0xc0, 0x9d, 0x87, 0x14, 0x8c, 0x8f, 0xc6, 0x73, 0x1d, 0x64, 0x4f,
+ 0xe2, 0x8c, 0xc6, 0xc4, 0xd8, 0x30, 0xb6, 0x51, 0x05, 0x23, 0x53, 0xd0, 0x6c, 0x96, 0x19, 0x63,
+ 0x57, 0x6b, 0x93, 0x20, 0xdd, 0xb0, 0xe1, 0xab, 0x1d, 0x6a, 0x18, 0x54, 0x8f, 0x80, 0xe0, 0xa8,
+ 0xc4, 0xa1, 0x36, 0x86, 0x69, 0x98, 0x0c, 0x33, 0xfb, 0xb9, 0x83, 0xec, 0xd5, 0x5d, 0x14, 0x1b,
+ 0x9b, 0x0c, 0x6d, 0x23, 0x71, 0x5f, 0xe6, 0xc6, 0xbb, 0x03, 0x88, 0x8a, 0xd9, 0x8c, 0xe9, 0xd7,
+ 0xee, 0x29, 0x6a, 0xe2, 0x9e, 0x9d, 0x59, 0x20, 0x97, 0x9b, 0xa8, 0xfb, 0x4f, 0x0e, 0xeb, 0x35,
+ 0x1a, 0x59, 0xa9, 0xfc, 0x2c, 0xf4, 0x6f, 0x14, 0x61, 0x87, 0x41, 0xbb, 0x16, 0x76, 0xb1, 0xb5,
+ 0x37, 0x0a, 0xba, 0xd3, 0xa8, 0x91, 0x95, 0xa5, 0x07, 0xe3, 0xcc, 0xcf, 0x54, 0xca, 0x7c, 0x5d,
+ 0x2e, 0xeb, 0x38, 0xc7, 0x74, 0xdf, 0xb1, 0x3c, 0xa3, 0x4a, 0xc3, 0x0e, 0x3a, 0x9a, 0x10, 0x1c,
+ 0x69, 0xcf, 0xf8, 0x2e, 0xe0, 0x81, 0x46, 0x2b, 0x04, 0x43, 0xfd, 0x3e, 0x70, 0xb8, 0xca, 0x7c,
+ 0x8b, 0x43, 0x3e, 0xea, 0x38, 0xb1, 0xf0, 0x7a, 0x01, 0x60, 0xae, 0xee, 0x1c, 0x2e, 0xd3, 0x1f,
+ 0xaf, 0xbe, 0xfc, 0x18, 0x29, 0x74, 0x38, 0xee, 0x79, 0xce, 0x0a, 0x3f, 0xf5, 0x60, 0x48, 0x7e,
+ 0xc2, 0x12, 0x60, 0x95, 0x4a, 0x2f, 0x9a, 0xea, 0xb2, 0xe5, 0x1f, 0x18, 0x25, 0x11, 0x6d, 0x30,
+ 0x7f, 0x33, 0xfd, 0xf4, 0x8a, 0xd8, 0xc6, 0x4e, 0xf7, 0x7c, 0x47, 0xae, 0x45, 0x56, 0x89, 0x9f,
+ 0x64, 0x02, 0x4d, 0x50, 0xf6, 0xfb, 0x90, 0x21, 0xd5, 0xe1, 0x3c, 0x82, 0x7b, 0x83, 0x73, 0xc7,
+ 0x45, 0xf4, 0xf2, 0x59, 0x34, 0x33, 0x85, 0xe1, 0x21, 0x3d, 0x4a, 0xdd, 0x1a, 0xa7, 0x4c, 0x79,
+ 0x14, 0x2c, 0x37, 0x6a, 0xca, 0x34, 0xf2, 0x93, 0x75, 0x0b, 0xce, 0x7d, 0x65, 0x6b, 0xd5, 0xfa,
+ 0xfd, 0xde, 0x12, 0xc3, 0x27, 0xc9, 0x04, 0x11, 0xe8, 0xd6, 0xc0, 0xe5, 0xf2, 0x8a, 0x0c, 0x09,
+ 0xac, 0x06, 0xd7, 0xf0, 0xd9, 0xce, 0x73, 0x63, 0xbc, 0xe0, 0x44, 0x45, 0x8d, 0x46, 0x95, 0x8a,
+ 0x86, 0x8e, 0x8b, 0x94, 0x2e, 0xcb, 0x26, 0x70, 0xd0, 0xc2, 0x6f, 0x52, 0x17, 0x15, 0x6a, 0xa4,
+ 0x76, 0x9d, 0x2c, 0x29, 0x1f, 0x78, 0xf4, 0x6b, 0xe9, 0xb6, 0x6e, 0x0b, 0xee, 0xa4, 0xdf, 0x16,
+ 0x43, 0x47, 0xa4, 0x4a, 0x17, 0x84, 0x13, 0x38, 0x68, 0x61, 0xd6, 0x29, 0xea, 0xeb, 0x35, 0x52,
+ 0x50, 0xb0, 0xdc, 0x6b, 0xae, 0xd0, 0x4e, 0x09, 0x17, 0x2c, 0xbe, 0x37, 0x57, 0x6f, 0xd2, 0x6e,
+ 0x28, 0x58, 0x6e, 0xd4, 0x57, 0x68, 0x27, 0xe5, 0xea, 0x16, 0x5f, 0xfa, 0xca, 0xd6, 0x69, 0x37,
+ 0xaa, 0xb5, 0x81, 0xe3, 0xfa, 0x79, 0xe5, 0xba, 0xf5, 0xbc, 0xd8, 0xb1, 0x7d, 0x0a, 0xec, 0xa1,
+ 0x5e, 0xc5, 0x42, 0xfd, 0x48, 0x10, 0xd3, 0x8e, 0x03, 0xa0, 0x31, 0xf1, 0x24, 0x72, 0xb6, 0x21,
+ 0xdd, 0x40, 0xb4, 0x92, 0xb5, 0xd6, 0x28, 0xaa, 0x5f, 0x10, 0x8c, 0x2d, 0xbb, 0x0d, 0x78, 0x5a,
+ 0xbb, 0x92, 0xcb, 0x72, 0xe3, 0x40, 0xca, 0x7d, 0x0c, 0xc5, 0xc4, 0x42, 0x90, 0x0b, 0x9d, 0x84,
+ 0x96, 0xc1, 0xd8, 0x5d, 0x67, 0x25, 0x30, 0xcc, 0x6a, 0xa1, 0x49, 0x36, 0xd2, 0xb7, 0x50, 0x6c,
+ 0x05, 0x0b, 0x7d, 0xfb, 0xd3, 0x0d, 0xdd, 0x54, 0x8c, 0x72, 0xd2, 0x8e, 0x88, 0x6a, 0xa4, 0xdf,
+ 0x7b, 0x50, 0x99, 0x57, 0x09, 0x02, 0x22, 0x61, 0x38, 0x14, 0xaf, 0xb7, 0xe5, 0x9f, 0x66, 0xad,
+ 0xf6, 0xa0, 0xf1, 0xae, 0x12, 0x04, 0x44, 0xc2, 0x70, 0x28, 0x9d, 0xad, 0x09, 0xfd, 0xcc, 0x99,
+ 0x2b, 0xe0, 0x45, 0x3c, 0xa7, 0xd2, 0x6c, 0x68, 0x2f, 0x38, 0x11, 0x80, 0xb2, 0xf0, 0xb4, 0xc3,
+ 0x09, 0xae, 0xd1, 0xdd, 0x95, 0xa0, 0x32, 0x25, 0x1e, 0xca, 0x29, 0xa5, 0xab, 0xf2, 0x56, 0x89,
+ 0xc7, 0x19, 0x1d, 0x6e, 0x99, 0x22, 0x47, 0xbe, 0x3e, 0x97, 0xcd, 0x96, 0xad, 0x7b, 0xc9, 0xef,
+ 0x46, 0x4c, 0xd9, 0xb1, 0xc4, 0x89, 0xce, 0x6c, 0xe4, 0x13, 0x04, 0xa7, 0x62, 0x81, 0x91, 0x8d,
+ 0x0d, 0xcd, 0xb5, 0x7e, 0x16, 0x7a, 0xd6, 0x0a, 0xd1, 0xa2, 0xc1, 0xbc, 0x0b, 0x3b, 0xb9, 0xbb,
+ 0x13, 0xf7, 0x78, 0x21, 0xb9, 0x54, 0x5d, 0x31, 0x7f, 0x4d, 0x68, 0x1e, 0xbd, 0x84, 0xe7, 0x3c,
+ 0x61, 0x09, 0x30, 0xab, 0x25, 0xf6, 0x4d, 0x75, 0x59, 0x93, 0xee, 0x0c, 0xf3, 0xe9, 0xd7, 0x18,
+ 0x01, 0x68, 0x19, 0x58, 0x50, 0xd7, 0x39, 0x7b, 0x43, 0x1a, 0x3a, 0x97, 0x28, 0xa3, 0x4b, 0xed,
+ 0xef, 0x41, 0x73, 0xba, 0xce, 0x4a, 0x60, 0x5b, 0xd4, 0x81, 0x92, 0x6c, 0x67, 0xad, 0xa0, 0xd8,
+ 0x8d, 0xf0, 0x68, 0xf9, 0x1b, 0x06, 0x66, 0xa3, 0x48, 0x3c, 0x32, 0x1a, 0xec, 0x62, 0xaa, 0x34,
+ 0xd3, 0x35, 0x2a, 0x04, 0x53, 0x16, 0xb5, 0x2d, 0x4b, 0x9c, 0x03, 0xeb, 0xc8, 0x10, 0x1c, 0x15,
+ 0xbc, 0x49, 0x84, 0x39, 0x90, 0x20, 0x65, 0xdf, 0x06, 0x83, 0x62, 0x21, 0x48, 0xe4, 0xaf, 0x42,
+ 0xf1, 0x7b, 0xbe, 0xe5, 0x61, 0x64, 0xeb, 0x60, 0x7a, 0x6e, 0x3b, 0xce, 0xd1, 0x12, 0xfe, 0x5f,
+ 0x32, 0x01, 0xc7, 0x28, 0x7b, 0x9c, 0x48, 0xf1, 0x8b, 0x91, 0x1e, 0x41, 0xdc, 0xa0, 0xd8, 0x82,
+ 0x5c, 0x15, 0x70, 0x4d, 0xe8, 0x7d, 0xa1, 0x78, 0x85, 0x94, 0x45, 0x1c, 0x74, 0xf7, 0x20, 0x38,
+ 0x02, 0xd0, 0x32, 0xb0, 0xa0, 0x6d, 0x72, 0xf6, 0x86, 0x34, 0x74, 0xed, 0x50, 0x85, 0x96, 0x19,
+ 0xb1, 0x84, 0x31, 0x47, 0x86, 0x5a, 0xb3, 0xd5, 0xd7, 0x21, 0xa3, 0x9d, 0x43, 0xdf, 0x16, 0xf9,
+ 0x56, 0x03, 0x8a, 0x78, 0x8d, 0x67, 0xd8, 0xd0, 0x5e, 0x70, 0x22, 0xc3, 0xa7, 0x23, 0xab, 0x45,
+ 0x51, 0xd8, 0xc5, 0x33, 0xfe, 0x07, 0x77, 0x72, 0x54, 0x36, 0x84, 0xa0, 0x7f, 0xcc, 0x99, 0x83,
+ 0xc9, 0x6c, 0x83, 0xf8, 0x7f, 0xe2, 0xda, 0x39, 0x2a, 0x1b, 0x42, 0x50, 0xde, 0x66, 0xad, 0xa0,
+ 0xd6, 0x3e, 0x57, 0xff, 0x80, 0x1b, 0x68, 0x79, 0xc7, 0xee, 0xd1, 0x65, 0x40, 0x7a, 0xb8, 0xca,
+ 0x4e, 0x8a, 0x11, 0x34, 0x01, 0xfe, 0xc5, 0x32, 0xb9, 0xc3, 0x17, 0x95, 0xe1, 0xd0, 0x8c, 0xe9,
+ 0xc8, 0x04, 0x9a, 0xa0, 0x2f, 0x35, 0xe3, 0x42, 0x69, 0x01, 0x78, 0xc7, 0xf6, 0xc5, 0xe6, 0x4d,
+ 0xa0, 0xa3, 0x7b, 0xd6, 0x9f, 0x63, 0x9c, 0x12, 0x2e, 0x58, 0xbf, 0x6e, 0xae, 0xde, 0x67, 0xdc,
+ 0x31, 0xb9, 0xec, 0xc0, 0x8b, 0x26, 0x03, 0x7c, 0x4e, 0xbf, 0x50, 0x3b, 0xa4, 0x86, 0x05, 0x76,
+ 0x22, 0x4e, 0x94, 0xe1, 0x32, 0x72, 0x5e, 0x4d, 0x31, 0xf2, 0x38, 0x25, 0x19, 0x02, 0xe2, 0x4a,
+ 0xa5, 0xa8, 0x06, 0x2d, 0x4c, 0x6e, 0x41, 0x46, 0xa2, 0x2a, 0x6d, 0xe0, 0x26, 0xb4, 0xc3, 0x03,
+ 0x17, 0x94, 0x1c, 0x82, 0x3a, 0x8e, 0xb9, 0x1e, 0xb0, 0x25, 0x80, 0x07, 0x1d, 0x4d, 0x08, 0x0e,
+ 0x33, 0x69, 0xde, 0x70, 0x2b, 0x4b, 0x71, 0x8a, 0xc8, 0x8b, 0x24, 0xd6, 0xf4, 0x03, 0x93, 0x6f,
+ 0x94, 0x11, 0xea, 0xed, 0xc7, 0x48, 0x42, 0x3a, 0xec, 0x95, 0x3d, 0xdb, 0x82, 0x32, 0xc6, 0x75,
+ 0xeb, 0x22, 0x17, 0x19, 0x4d, 0x90, 0x84, 0x74, 0x1b, 0xe9, 0x7a, 0x75, 0xc7, 0x64, 0x4f, 0xea,
+ 0x84, 0x5e, 0xb9, 0x24, 0x8e, 0xa6, 0x54, 0x86, 0x56, 0xf6, 0x1b, 0xbf, 0x47, 0x90, 0xfc, 0xbd,
+ 0x08, 0xc6, 0xc8, 0x85, 0xc5, 0x77, 0x0b, 0x5e, 0x5d, 0xd0, 0x13, 0x32, 0x83, 0x51, 0x1d, 0x64,
+ 0x25, 0x95, 0xdb, 0xaa, 0x41, 0x12, 0xf1, 0xef, 0x3b, 0xb4, 0x9e, 0x46, 0xc1, 0xed, 0xd0, 0x8c,
+ 0xf9, 0xbd, 0x76, 0x60, 0xa4, 0x13, 0xe0, 0x3e, 0x27, 0xbe, 0x28, 0xfc, 0x52, 0x43, 0xe3, 0x3b,
+ 0x39, 0x7f, 0x24, 0x45, 0x4e, 0x51, 0x08, 0x22, 0x13, 0x6f, 0x43, 0x09, 0x27, 0xd7, 0x18, 0x12,
+ 0x60, 0x61, 0x29, 0xf3, 0x75, 0x21, 0x74, 0x0e, 0x1a, 0x89, 0xd4, 0x9b, 0xdb, 0x4a, 0x9c, 0xf5,
+ 0xb2, 0x3c, 0x1a, 0xaf, 0x76, 0xe0, 0xf8, 0x58, 0x12, 0x0f, 0xed, 0xe7, 0x3b, 0xf9, 0xcb, 0x0d,
+ 0xd4, 0xee, 0x65, 0x4f, 0x20, 0x76, 0x1a, 0x8f, 0x41, 0xda, 0xa5, 0x88, 0x10, 0xff, 0x2e, 0xd3,
+ 0x6f, 0x7c, 0xae, 0x3d, 0xc3, 0x36, 0xd0, 0xf2, 0x4d, 0x1f, 0x61, 0xca, 0x80, 0xf4, 0xb3, 0x57,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x6d, 0xac, 0x9c, 0x8d, 0x63, 0x5b, 0xa2, 0x04, 0xcb, 0x2b, 0x15, 0x27, 0xd0, 0x71, 0x25, 0x4e,
+ 0xa1, 0xcb, 0x62, 0x8e, 0xcf, 0xb4, 0xa5, 0x69, 0x6d, 0x42, 0x85, 0xf9, 0x86, 0x7d, 0x2c, 0x31,
+ 0x12, 0x9f, 0x61, 0x79, 0xe9, 0x83, 0x64, 0x4a, 0x3c, 0x57, 0x52, 0x89, 0x95, 0x27, 0xac, 0xd1,
+ 0xd8, 0x4b, 0xc9, 0x69, 0x66, 0xdb, 0xf5, 0xfe, 0xd3, 0x62, 0x5e, 0xa3, 0x33, 0x67, 0xdc, 0x85,
+ 0xa3, 0x1b, 0x50, 0x3e, 0x6f, 0xd9, 0xd7, 0x9f, 0xeb, 0x76, 0xf1, 0x14, 0xd6, 0xf8, 0xba, 0x28,
+ 0xa4, 0xc0, 0x1f, 0x75, 0x1c, 0xb9, 0x78, 0x3d, 0xe1, 0x30, 0x57, 0x77, 0x0e, 0x17, 0x88, 0xee,
+ 0xcf, 0xdf, 0xd5, 0xeb, 0x5c, 0x55, 0x4c, 0xe0, 0x63, 0x47, 0xde, 0xa4, 0x2e, 0x2a, 0xd4, 0x8b,
+ 0x9a, 0x64, 0x74, 0x7b, 0x21, 0x88, 0xdf, 0xbd, 0xf8, 0x19, 0xb2, 0x1d, 0xf1, 0x2f, 0xa2, 0x3a,
+ 0xcc, 0x67, 0xfe, 0x03, 0xac, 0xef, 0x07, 0x6d, 0xa6, 0x69, 0x90, 0xde, 0x56, 0x0c, 0x09, 0x7f,
+ 0x52, 0x60, 0xee, 0xdb, 0x0e, 0xbd, 0x3c, 0xff, 0x91, 0x18, 0xca, 0xda, 0x07, 0xea, 0x44, 0x77,
+ 0x1c, 0xea, 0xff, 0xef, 0x0f, 0x43, 0xf9, 0xcd, 0x28, 0xdb, 0xdd, 0x4f, 0xe6, 0x3a, 0xc8, 0x9e,
+ 0x2f, 0x83, 0x21, 0x9f, 0x24, 0x08, 0x88, 0x47, 0xe0, 0x50, 0xf9, 0x99, 0x12, 0x39, 0x5b, 0xf1,
+ 0x7e, 0x5b, 0xe4, 0xac, 0xda, 0x0f, 0xff, 0x35, 0xb4, 0x66, 0x7d, 0x39, 0x6d, 0xf5, 0xc2, 0x72,
+ 0x93, 0xca, 0xa5, 0xa6, 0xb4, 0x28, 0xed, 0x98, 0xe6, 0xd3, 0x9b, 0xb8, 0x5a, 0xdd, 0xf4, 0xb3,
+ 0x42, 0x2f, 0xbd, 0x12, 0x47, 0x53, 0x2a, 0x43, 0x2b, 0x7b, 0xec, 0xbe, 0xc2, 0x48, 0x7e, 0xbf,
+ 0xb3, 0x54, 0x03, 0xf7, 0x26, 0x37, 0xc1, 0x23, 0x51, 0x15, 0xd7, 0x70, 0x13, 0x5a, 0x80, 0xe0,
+ 0x18, 0x89, 0x9b, 0x4c, 0x8c, 0x99, 0x1d, 0xe2, 0xe7, 0xb3, 0x35, 0x56, 0x46, 0xf3, 0x27, 0xac,
+ 0xb8, 0x2a, 0xe0, 0x9a, 0x13, 0xfa, 0x81, 0xf0, 0xc9, 0xeb, 0x8a, 0x38, 0xe8, 0x2d, 0x40, 0x70,
+ 0xfc, 0xb6, 0x0b, 0x9b, 0x77, 0x1e, 0x3d, 0x6a, 0xab, 0xcc, 0xfa, 0x72, 0xda, 0x29, 0x47, 0xe4,
+ 0x44, 0x9c, 0xeb, 0x01, 0x64, 0xe4, 0xbc, 0x9a, 0x62, 0x27, 0x70, 0x4a, 0x32, 0x04, 0x07, 0x94,
+ 0xe6, 0xef, 0xa2, 0x67, 0x5b, 0xea, 0x52, 0x7e, 0xca, 0x4b, 0xbb, 0xc9, 0xcc, 0x5f, 0xf6, 0x51,
+ 0x8c, 0x98, 0x71, 0xa1, 0x4b, 0xd1, 0x5f, 0xd8, 0x0b, 0x26, 0x08, 0x8d, 0xc4, 0xc1, 0xe1, 0xd9,
+ 0xc6, 0x71, 0x04, 0x36, 0xc9, 0xf5, 0x7e, 0xc5, 0x7d, 0x8d, 0xf7, 0x01, 0x85, 0xd8, 0x82, 0x02,
+ 0x63, 0xd9, 0x02, 0x1b, 0x85, 0x9b, 0x3f, 0x83, 0xdf, 0xa7, 0x9a, 0xe1, 0xa3, 0x6c, 0x41, 0x01,
+ 0xbf, 0xf1, 0xaf, 0xd1, 0x60, 0x9a, 0x2e, 0x52, 0xc3, 0xad, 0x2c, 0x5b, 0x30, 0xc2, 0x72, 0xb6,
+ 0xf2, 0xc3, 0x95, 0x0d, 0x91, 0xde, 0xa0, 0xed, 0xbf, 0x40, 0x75, 0xb4, 0xa9, 0x34, 0x23, 0xab,
+ 0x2c, 0x3b, 0x0a, 0x77, 0xd4, 0xb2, 0xc3, 0xca, 0x25, 0x7e, 0xb7, 0xe3, 0x6a, 0x1f, 0x86, 0x05,
+ 0x11, 0x27, 0x4a, 0x91, 0x19, 0x39, 0x2f, 0xc7, 0xf9, 0x79, 0x1c, 0xf3, 0xed, 0x01, 0x71, 0x25,
+ 0x73, 0x96, 0x51, 0xd2, 0xcc, 0x75, 0x29, 0x3f, 0x65, 0xc4, 0xbc, 0x85, 0x66, 0xce, 0x7b, 0xc9,
+ 0xdc, 0x28, 0xad, 0xca, 0xe5, 0x01, 0x11, 0xd1, 0x1c, 0x0a, 0xb6, 0xba, 0x93, 0xae, 0x33, 0xb7,
+ 0xd9, 0x23, 0xd0, 0x31, 0x36, 0x0c, 0xcc, 0x85, 0x90, 0x78, 0x64, 0x34, 0x1b, 0xc4, 0x97, 0x68,
+ 0x92, 0xa2, 0xbc, 0xfe, 0xe4, 0xff, 0xd4, 0xe3, 0xa5, 0xc9, 0xa1, 0x2f, 0x72, 0x7e, 0xbf, 0x5e,
+ 0x3e, 0xa4, 0x6b, 0x0e, 0x3d, 0x31, 0xa7, 0x80, 0x19, 0x29, 0xe5, 0x6a, 0xff, 0x38, 0x2a, 0xd4,
+ 0xd2, 0x5d, 0x33, 0x5c, 0x03, 0xc1, 0x8c, 0x56, 0x08, 0x86, 0x39, 0x7c, 0xe0, 0xb3, 0x57, 0xf8,
+ 0x59, 0x1e, 0x0d, 0xb6, 0x3b, 0x70, 0x7c, 0x2c, 0x09, 0xe6, 0x97, 0x92, 0xfc, 0x9d, 0x84, 0xe7,
+ 0x75, 0x25, 0x07, 0xc1, 0xef, 0xc2, 0xbf, 0xe6, 0x2c, 0x98, 0x20, 0x71, 0x96, 0x82, 0x02, 0xe2,
+ 0x19, 0xe1, 0x82, 0x14, 0xdc, 0x4e, 0x24, 0x99, 0xa4, 0xa9, 0x0f, 0xc1, 0x6e, 0x50, 0x6c, 0x41,
+ 0xb4, 0x8f, 0x4c, 0xbc, 0x55, 0x57, 0x6e, 0x81, 0x5b, 0x53, 0x71, 0x13, 0xcb, 0xb5, 0xb2, 0x26,
+ 0x81, 0x55, 0xc4, 0xdf, 0x5d, 0xab, 0x89, 0xd2, 0xda, 0x84, 0xc9, 0x31, 0xcf, 0xfa, 0x58, 0x62,
+ 0xe4, 0x3f, 0x90, 0xd7, 0xfb, 0x87, 0x20, 0x88, 0x4c, 0x7f, 0xcf, 0x24, 0x9c, 0xda, 0x60, 0x48,
+ 0xe5, 0x57, 0x89, 0x8f, 0xab, 0x50, 0x19, 0xf3, 0x0f, 0x65, 0xf5, 0xb3, 0xb4, 0x79, 0x2b, 0xa5,
+ 0x0f, 0x1d, 0x87, 0xce, 0xb6, 0x17, 0xa4, 0xfc, 0x57, 0x96, 0xb5, 0x51, 0x5b, 0xbe, 0x2f, 0xa2,
+ 0x47, 0x24, 0xc0, 0xe9, 0x94, 0x5e, 0xf7, 0x17, 0xa7, 0x09, 0x3e, 0x30, 0x4a, 0x22, 0xda, 0x60,
+ 0x9c, 0xd7, 0x22, 0x68, 0x02, 0x3f, 0x49, 0x64, 0xb1, 0x45, 0x2e, 0xe9, 0x01, 0x63, 0xdb, 0x11,
+ 0x2a, 0x88, 0x5c, 0x64, 0xf7, 0x05, 0x55, 0x13, 0x6c, 0x22, 0x2b, 0x17, 0x9a, 0x53, 0xff, 0x2e,
+ 0xa8, 0x65, 0xb3, 0x53, 0x5a, 0x14, 0x97, 0x4c, 0x73, 0x88, 0xac, 0x5c, 0x2d, 0x8f, 0x7a, 0xb8,
+ 0x5b, 0xce, 0x3f, 0x06, 0x9b, 0x1d, 0x0e, 0xda, 0x8f, 0xd2, 0xe3, 0x7f, 0xac, 0x18, 0x12, 0xfe,
+ 0x8f, 0x20, 0x5a, 0x49, 0xbb, 0x6b, 0x14, 0x55, 0xce, 0x08, 0x46, 0xf7, 0xbc, 0xe7, 0x3c, 0x2d,
+ 0x04, 0x63, 0x64, 0xa3, 0x83, 0xda, 0xe4, 0x2f, 0xcf, 0x68, 0xe8, 0x19, 0xa0, 0xc9, 0xef, 0x32,
+ 0xa6, 0x10, 0x2d, 0xc5, 0xbc, 0xd4, 0x0a, 0xcb, 0x67, 0x04, 0x23, 0x9a, 0x5e, 0x92, 0x1e, 0xf7,
+ 0x72, 0xfe, 0x48, 0x8a, 0x9c, 0xa2, 0x10, 0x44, 0x26, 0xde, 0x86, 0x12, 0x4e, 0x6d, 0x30, 0x24,
+ 0xba, 0xfa, 0xd2, 0x2a, 0xb3, 0x97, 0xf3, 0x06, 0x4f, 0xdf, 0xfe, 0xd5, 0xb8, 0xa8, 0xd6, 0x69,
+ 0x30, 0xd1, 0xf5, 0x98, 0xdb, 0xf1, 0x3a, 0x07, 0x0d, 0xa5, 0x6a, 0xac, 0x8c, 0x25, 0x4e, 0x9b,
+ 0x4c, 0x5a, 0x23, 0x84, 0xa1, 0x93, 0xb7, 0xc4, 0x3f, 0xf7, 0x63, 0x78, 0xb1, 0x55, 0x1a, 0xf0,
+ 0x82, 0xed, 0xef, 0x37, 0xad, 0x11, 0xc2, 0x5f, 0x1f, 0xaa, 0x87, 0x4b, 0xb7, 0xdc, 0x85, 0x96,
+ 0x6a, 0x77, 0xd3, 0xc6, 0x10, 0x3b, 0x0d, 0xa6, 0xc1, 0x6d, 0xb3, 0x44, 0x08, 0x9e, 0x17, 0x88,
+ 0x88, 0xfb, 0x15, 0x02, 0xc8, 0x0b, 0xbb, 0xf7, 0xc4, 0x4e, 0xe0, 0x94, 0x64, 0x08, 0x0e, 0xeb,
+ 0x3c, 0x74, 0x59, 0xbe, 0x9d, 0x5c, 0xd5, 0x76, 0x9f, 0x1d, 0x91, 0x87, 0xaf, 0xbd, 0xbc, 0xcd,
+ 0x6e, 0x14, 0xb7, 0x65, 0x93, 0xe1, 0xe9, 0x89, 0x0e, 0x05, 0x5b, 0x5d, 0xa8, 0x57, 0xf8, 0xba,
+ 0x0b, 0x7e, 0xe3, 0x6d, 0x35, 0xcd, 0x40, 0xd3, 0x98, 0xfe, 0x5d, 0x48, 0xfb, 0x77, 0xc0, 0x90,
+ 0x9e, 0x07, 0x10, 0xd8, 0xa2, 0x52, 0x3b, 0x92, 0x37, 0x71, 0x5a, 0x04, 0x51, 0xe6, 0x4d, 0x08,
+ 0x68, 0xa7, 0xe1, 0x76, 0xb0, 0x56, 0x7f, 0x50, 0x47, 0x59, 0xc7, 0xa9, 0x58, 0x1b, 0x81, 0x91,
+ 0x67, 0xba, 0x66, 0xb8, 0x06, 0x41, 0xdb, 0xac, 0x10, 0xcf, 0x72, 0xf8, 0x03, 0xa5, 0xae, 0x33,
+ 0xc5, 0xc9, 0x2f, 0xde, 0x39, 0x4f, 0x35, 0x48, 0xb8, 0xa3, 0xb9, 0x7b, 0xfd, 0xfe, 0x5f, 0xf6,
+ 0x74, 0x4d, 0x1e, 0x99, 0xbf, 0x15, 0x86, 0x9d, 0x6f, 0x82, 0x1a, 0xe6, 0xbe, 0x21, 0x49, 0x0f,
+ 0x40, 0xff, 0x8f, 0xa2, 0xe7, 0x3e, 0x58, 0xb5, 0xad, 0x4f, 0x98, 0x53, 0x92, 0xcd, 0xe8, 0xa6,
+ 0x0c, 0xa5, 0xac, 0x26, 0x46, 0xad, 0xef, 0x71, 0x92, 0xb8, 0xfb, 0x2b, 0x23, 0x98, 0xf2, 0x56,
+ 0xe7, 0x87, 0xbb, 0x3f, 0x0b, 0x3d, 0x6b, 0x05, 0x89, 0x51, 0x81, 0x5e, 0xe4, 0xfc, 0xbd, 0xbc,
+ 0x9d, 0xbf, 0x3b, 0x30, 0x52, 0xe8, 0x70, 0x1f, 0xf2, 0x5f, 0x14, 0x7e, 0x29, 0xc0, 0x90, 0xfc,
+ 0x90, 0x72, 0x8e, 0x4e, 0x44, 0x92, 0xa6, 0x15, 0x23, 0xfd, 0xd5, 0xc2, 0x22, 0xfb, 0x29, 0x47,
+ 0x7a, 0x38, 0x80, 0x0f, 0x59, 0xd5, 0x1b, 0x1a, 0x7b, 0x0e, 0x95, 0x20, 0xcd, 0x3c, 0x2d, 0x40,
+ 0x3a, 0xc7, 0x0f, 0xad, 0xbe, 0xeb, 0x43, 0xaf, 0xd6, 0x41, 0x0d, 0x73, 0x5f, 0xf1, 0xc5, 0xe6,
+ 0x35, 0xda, 0x88, 0x63, 0x08, 0xfc, 0xe7, 0x53, 0x81, 0xd7, 0xb8, 0x22, 0x04, 0x4f, 0xea, 0x44,
+ 0x34, 0xb2, 0x91, 0x3b, 0x58, 0x2b, 0xde, 0x28, 0xc2, 0xcd, 0x82, 0xb5, 0x2c, 0xec, 0xa1, 0xa9,
+ 0x9f, 0x6f, 0x09, 0x80, 0xf2, 0x85, 0x02, 0xe9, 0x74, 0x6b, 0x60, 0x93, 0x79, 0x45, 0x06, 0xe5,
+ 0xb7, 0x37, 0x67, 0x54, 0xa5, 0xed, 0x25, 0x0c, 0x9e, 0x7d, 0x3f, 0x69, 0xb3, 0x93, 0x6f, 0xd2,
+ 0xf8, 0xd5, 0x6f, 0x38, 0xf4, 0xc4, 0xd9, 0x45, 0x64, 0xa4, 0x12, 0x6b, 0x7a, 0xe0, 0xa8, 0xd6,
+ 0x4f, 0xe2, 0x08, 0x6c, 0x51, 0x29, 0xfc, 0x49, 0xfa, 0xd9, 0x2d, 0x02, 0xc9, 0x73, 0xc7, 0x04,
+ 0x6b, 0x1f, 0xca, 0x9e, 0x40, 0xec, 0x34, 0xdd, 0x82, 0x77, 0x89, 0xd3, 0x20, 0x3d, 0x5c, 0x65,
+ 0x83, 0x85, 0xf6, 0x6f, 0xfd, 0xc6, 0xfb, 0x24, 0x5c, 0xb0, 0xbd, 0xdc, 0x9f, 0x7f, 0xce, 0x7b,
+ 0x5f, 0xad, 0x5b, 0xa5, 0x18, 0xc7, 0xea, 0xf5, 0x40, 0xba, 0x0b, 0x66, 0x0c, 0xd1, 0xfd, 0xcc,
+ 0xa7, 0x78, 0x34, 0x9d, 0xec, 0x03, 0x33, 0xb0, 0x24, 0x1e, 0x19, 0x0d, 0x76, 0x31, 0x55, 0x1a,
+ 0x1e, 0x3a, 0xcd, 0x5f, 0xaf, 0x2e, 0x8b, 0x3b, 0xae, 0xef, 0xa9, 0xa2, 0xb6, 0xbf, 0x5e, 0x87,
+ 0x10, 0x4f, 0x53, 0xc9, 0x49, 0xee, 0x16, 0xbc, 0xba, 0x63, 0x26, 0x64, 0xc5, 0xa2, 0x3a, 0xc8,
+ 0xc3, 0x7a, 0x79, 0xcd, 0x1a, 0xf8, 0xa3, 0x91, 0xf1, 0xff, 0x25, 0x8f, 0x0d, 0xb2, 0x26, 0xdd,
+ 0x78, 0xe8, 0xb2, 0xbf, 0xf9, 0xb8, 0x69, 0xec, 0xfd, 0x3a, 0xe1, 0xcd, 0x9d, 0xb9, 0xbb, 0x59,
+ 0x2d, 0x53, 0x13, 0x2f, 0x84, 0x65, 0xfa, 0xb1, 0x66, 0x64, 0x8d, 0x74, 0x42, 0xbc, 0xcd, 0xe8,
+ 0x77, 0xf5, 0x35, 0x71, 0x4f, 0xaf, 0xcd, 0x10, 0xaa, 0xac, 0x54, 0x9c, 0xc6, 0x07, 0x94, 0xfb,
+ 0xe3, 0xe4, 0xdf, 0x9c, 0x88, 0xe7, 0x8f, 0x2a, 0x46, 0x39, 0x69, 0x47, 0x44, 0x35, 0x52, 0x8e,
+ 0x80, 0x3d, 0xdd, 0x87, 0x0d, 0x7c, 0xb0, 0xa9, 0x99, 0x9e, 0xf3, 0xa6, 0xe7, 0x59, 0x13, 0x8f,
+ },
+ { /* 6 */
+ 0xa2, 0xc8, 0x81, 0xe2, 0x3b, 0xb3, 0xc2, 0x65, 0xc5, 0x23, 0x88, 0xa8, 0x4b, 0xa0, 0x07, 0xfc,
+ 0x7e, 0x5e, 0xba, 0x73, 0x1f, 0x4c, 0x94, 0x8f, 0x72, 0xc4, 0x53, 0xb4, 0x67, 0xfd, 0xe6, 0xee,
+ 0x65, 0xcf, 0x9b, 0x0b, 0x79, 0xd8, 0x3c, 0xc1, 0x2a, 0xfe, 0xa1, 0x96, 0xda, 0xeb, 0x16, 0xdd,
+ 0x09, 0xce, 0x1f, 0x28, 0x22, 0xcd, 0xd9, 0x3a, 0x89, 0x16, 0xef, 0x1e, 0x6b, 0xb3, 0x50, 0x11,
+ 0xb9, 0x59, 0xa0, 0x9a, 0x5d, 0x27, 0x6a, 0x2b, 0x9d, 0x19, 0x7a, 0x8a, 0xf6, 0xb6, 0xf7, 0xcf,
+ 0xaa, 0x23, 0xa2, 0x8f, 0xdc, 0xda, 0x7c, 0x18, 0xa1, 0x08, 0x06, 0xf5, 0x92, 0xb9, 0xdd, 0x6e,
+ 0x3c, 0x40, 0x19, 0x17, 0x62, 0x09, 0xe3, 0x6f, 0xcd, 0x25, 0x6b, 0x9f, 0xc7, 0xa2, 0x2e, 0x31,
+ 0x92, 0xf7, 0x4b, 0x4f, 0x2c, 0x06, 0xc0, 0xa8, 0x5e, 0xd9, 0x2a, 0xa5, 0xd8, 0xf6, 0x9e, 0x16,
+ 0x39, 0xf1, 0xd5, 0x85, 0x35, 0x78, 0xdb, 0xf7, 0x12, 0xec, 0x4d, 0x13, 0xf8, 0xe5, 0xc9, 0xfb,
+ 0xf0, 0xc3, 0x64, 0x5c, 0x4b, 0x24, 0x0a, 0x7f, 0xb2, 0x94, 0x6f, 0x39, 0x9a, 0xcd, 0xb8, 0xc4,
+ 0xcb, 0x78, 0xc9, 0x53, 0x37, 0xd7, 0x1f, 0x06, 0xb9, 0x02, 0xe0, 0xac, 0xc5, 0xbf, 0xa6, 0xfa,
+ 0xfe, 0xf6, 0xcf, 0x6c, 0x77, 0x13, 0x25, 0x53, 0xfd, 0x31, 0x64, 0x2d, 0x69, 0xae, 0xd8, 0xda,
+ 0xe0, 0xd6, 0x22, 0x86, 0x46, 0xf6, 0xb5, 0x85, 0x7a, 0xc2, 0xb0, 0x83, 0xeb, 0xff, 0xcf, 0x23,
+ 0x02, 0x4a, 0x78, 0x8a, 0x49, 0x8b, 0xce, 0x8e, 0x19, 0x7a, 0xc2, 0x86, 0xa7, 0x97, 0xd7, 0xc5,
+ 0x4e, 0x61, 0x70, 0xde, 0x08, 0xf9, 0x96, 0x42, 0xe9, 0x3e, 0xf1, 0xb9, 0xf4, 0xab, 0x7f, 0x04,
+ 0x4a, 0xf5, 0x80, 0x09, 0x9a, 0x2c, 0xc9, 0x9d, 0xdb, 0xca, 0xb6, 0x76, 0x79, 0x46, 0x12, 0x4d,
+ 0xe5, 0x67, 0xee, 0x14, 0x11, 0x87, 0x8d, 0x1d, 0xa5, 0x0b, 0x96, 0x0f, 0xd4, 0xb8, 0x28, 0xe9,
+ 0x3f, 0x2f, 0x5d, 0xd8, 0xee, 0x26, 0x4a, 0xa6, 0x39, 0x62, 0xc8, 0x5a, 0xd2, 0x9f, 0x73, 0x77,
+ 0x70, 0x6b, 0x11, 0x43, 0x23, 0x7b, 0xbb, 0xa3, 0x3d, 0x61, 0x58, 0xa0, 0x94, 0x9e, 0x86, 0xf0,
+ 0x0c, 0x7f, 0xd3, 0xba, 0x75, 0xbc, 0xe1, 0xa2, 0x56, 0xdf, 0xc9, 0x92, 0x54, 0xf4, 0xb7, 0xdb,
+ 0xfa, 0x62, 0x3f, 0xbb, 0xe5, 0xc6, 0x7a, 0x8c, 0xcf, 0xc5, 0x23, 0xe2, 0xe4, 0x43, 0xb5, 0x93,
+ 0xc0, 0xfc, 0xae, 0xf1, 0x5c, 0x91, 0x08, 0xb2, 0x29, 0x6e, 0xcd, 0x34, 0x09, 0x9b, 0x21, 0x2e,
+ 0x41, 0x71, 0xe7, 0xab, 0xf1, 0x6a, 0xde, 0x29, 0x4b, 0xa6, 0x9b, 0xee, 0xb5, 0x62, 0x95, 0x99,
+ 0xa1, 0xa7, 0xc5, 0x2d, 0xb7, 0x9c, 0x6b, 0xac, 0x31, 0x64, 0x2b, 0x6d, 0x5e, 0x9d, 0x5a, 0xba,
+ 0x60, 0x7e, 0x57, 0x99, 0x2e, 0xa9, 0x04, 0x59, 0xf5, 0x37, 0x87, 0x1a, 0xe5, 0xac, 0xf1, 0x17,
+ 0xa7, 0x79, 0x4d, 0x70, 0x6c, 0xc2, 0xfa, 0xfd, 0x1a, 0xea, 0xae, 0x24, 0x74, 0xe7, 0xe0, 0x36,
+ 0x82, 0xe2, 0x0d, 0x95, 0x21, 0xd4, 0x7f, 0x52, 0x96, 0x8f, 0xf5, 0x1f, 0xa9, 0xc4, 0xe9, 0xf1,
+ 0x53, 0x2e, 0xd9, 0xfb, 0xb5, 0x33, 0xaf, 0x5d, 0x9a, 0x8a, 0x86, 0xd2, 0x63, 0xc7, 0x35, 0xbb,
+ 0xb5, 0x26, 0x73, 0x20, 0x28, 0x9b, 0x8b, 0x89, 0xcb, 0xc6, 0xb3, 0x18, 0xa2, 0x42, 0x40, 0x14,
+ 0x9e, 0x88, 0x98, 0xf5, 0x59, 0xba, 0x21, 0x0a, 0x08, 0x06, 0xe3, 0x37, 0x8c, 0x02, 0x29, 0xcd,
+ 0x96, 0x63, 0xbb, 0x98, 0xbe, 0xd3, 0x9f, 0x77, 0x6c, 0x2d, 0x6d, 0x6a, 0x55, 0x1b, 0xf3, 0x5f,
+ 0x4c, 0x2b, 0x08, 0x54, 0x41, 0x72, 0x58, 0xcc, 0xf0, 0x44, 0x33, 0x3f, 0x53, 0x3c, 0xa8, 0xc1,
+ 0x1e, 0x20, 0xed, 0xea, 0x31, 0xe5, 0x90, 0xd6, 0x87, 0xf3, 0xd4, 0xae, 0x82, 0x51, 0x17, 0xf9,
+ 0x67, 0x85, 0xe3, 0x81, 0x30, 0x53, 0xf2, 0x4f, 0x33, 0x84, 0x63, 0x10, 0x7d, 0x7c, 0xc1, 0x18,
+ 0xe3, 0xb9, 0x66, 0x49, 0xca, 0xd9, 0x1c, 0x4c, 0x8e, 0x85, 0x13, 0x46, 0xfe, 0xc2, 0x92, 0x65,
+ 0x2a, 0x8b, 0xd7, 0x90, 0xb4, 0x85, 0xcd, 0xc4, 0x2e, 0xfd, 0x31, 0x6c, 0x9c, 0xea, 0xe3, 0x5a,
+ 0xac, 0xfd, 0x2a, 0xd2, 0x07, 0x84, 0xed, 0x49, 0x8a, 0x86, 0x83, 0xbc, 0xb8, 0xc3, 0x67, 0xe2,
+ 0x43, 0x3b, 0x9f, 0x21, 0xb8, 0xe1, 0x10, 0xa7, 0x52, 0xdc, 0x59, 0x68, 0x12, 0xf5, 0x42, 0x5c,
+ 0x8c, 0xd7, 0xa6, 0xa5, 0x1d, 0xe3, 0x50, 0x7e, 0xd9, 0x2a, 0xfe, 0x0b, 0x5a, 0xa7, 0x89, 0xef,
+ 0xc7, 0x07, 0x1a, 0xe9, 0x42, 0x6b, 0xfe, 0xa4, 0xef, 0xdd, 0x29, 0x3e, 0x91, 0x4b, 0x11, 0x21,
+ 0x26, 0xf4, 0x04, 0x2a, 0xc1, 0x39, 0x2c, 0x66, 0x78, 0x22, 0xf8, 0xfe, 0xc8, 0x1e, 0x54, 0x81,
+ 0x29, 0xe4, 0x93, 0x5f, 0x38, 0xaa, 0x64, 0x0d, 0xda, 0xba, 0x92, 0xa9, 0x89, 0xd7, 0xbe, 0x1c,
+ 0x1c, 0x6a, 0x95, 0x60, 0x78, 0x6e, 0x5e, 0x58, 0x9e, 0x89, 0x16, 0x28, 0x25, 0xc6, 0xc0, 0x3c,
+ 0x4d, 0x0e, 0x34, 0x11, 0x84, 0xd6, 0x3f, 0x8b, 0x1d, 0x79, 0x52, 0x7c, 0xe1, 0x96, 0x22, 0x42,
+ 0x9d, 0xe7, 0xdc, 0x3a, 0xd5, 0x95, 0x88, 0xc3, 0xfc, 0x41, 0x40, 0xf2, 0x99, 0x3f, 0x74, 0x8b,
+ 0xf2, 0x89, 0x1c, 0xd6, 0x02, 0xaf, 0xc4, 0xf1, 0xab, 0xee, 0xad, 0xbf, 0x3d, 0x5a, 0x6f, 0x01,
+ 0x21, 0x0f, 0xb0, 0x32, 0xdf, 0xc3, 0xda, 0x70, 0xbe, 0x91, 0x1c, 0xf4, 0x50, 0xce, 0x64, 0x8e,
+ 0x6d, 0x24, 0xb8, 0x66, 0x9e, 0xb1, 0x82, 0xbc, 0x4e, 0xd5, 0x2f, 0xcb, 0x03, 0xf2, 0xcc, 0x4f,
+ 0xbc, 0xe8, 0x6c, 0x08, 0x0a, 0x56, 0x52, 0xb3, 0x42, 0xd0, 0x5c, 0x06, 0xc9, 0xf1, 0x10, 0x05,
+ 0x9a, 0x1c, 0x68, 0x22, 0xcb, 0x6f, 0x7e, 0xd5, 0x3a, 0xf2, 0xa4, 0xf8, 0x01, 0xef, 0x44, 0x84,
+ 0x27, 0xd1, 0x38, 0x6f, 0x04, 0x9d, 0x4b, 0x21, 0x95, 0x1f, 0x99, 0xbd, 0x7a, 0xb4, 0xde, 0x02,
+ 0x14, 0x81, 0xb6, 0x0d, 0x9f, 0x07, 0xe0, 0x25, 0xfa, 0xa2, 0x98, 0x75, 0xfc, 0xdf, 0x1a, 0xae,
+ 0x5e, 0x74, 0x36, 0x04, 0x05, 0x2b, 0x29, 0xb8, 0x21, 0x68, 0x2e, 0x03, 0x85, 0x99, 0x08, 0xe3,
+ 0xe4, 0x42, 0xd2, 0x51, 0xd4, 0x23, 0xea, 0x5a, 0x48, 0x36, 0xf7, 0x4c, 0x66, 0x12, 0xa2, 0x6a,
+ 0xd3, 0x86, 0xac, 0xe4, 0xdd, 0x6c, 0x1e, 0x81, 0x15, 0x7f, 0xb1, 0x4b, 0x6d, 0x94, 0x0b, 0x8f,
+ 0xe1, 0xf3, 0x1e, 0xc3, 0x83, 0x52, 0xd2, 0xc2, 0x97, 0xff, 0xd1, 0xc0, 0x59, 0x55, 0x45, 0xa0,
+ 0x69, 0xb0, 0x48, 0xb1, 0x0c, 0x64, 0xdd, 0x63, 0x7c, 0x21, 0x68, 0x04, 0x8e, 0x1f, 0xa1, 0x06,
+ 0x49, 0x9a, 0xc4, 0xc6, 0x16, 0x03, 0x60, 0x54, 0x2f, 0x8d, 0x15, 0xb3, 0x6c, 0x7b, 0x4f, 0x0b,
+ 0xab, 0x06, 0x9e, 0xca, 0x19, 0x7e, 0x1b, 0x5f, 0x4c, 0x35, 0x67, 0xb6, 0x20, 0x13, 0x57, 0xed,
+ 0xb3, 0xf8, 0xfb, 0x7d, 0xf3, 0xc5, 0x1a, 0xd8, 0xe0, 0x48, 0x36, 0x51, 0x88, 0x38, 0xfa, 0x98,
+ 0xa3, 0xed, 0xbd, 0xa7, 0xfe, 0x17, 0xa5, 0x22, 0x28, 0x1e, 0xe9, 0xeb, 0xf9, 0x0a, 0x8d, 0x7f,
+ 0x0b, 0x84, 0x67, 0xa2, 0x6b, 0x46, 0x17, 0xb4, 0x90, 0x6c, 0x2d, 0x98, 0xcc, 0x24, 0x87, 0xd4,
+ 0x90, 0xbd, 0x33, 0xc5, 0x65, 0x8d, 0x0e, 0x26, 0x47, 0xa3, 0xe8, 0x23, 0x7f, 0x61, 0x49, 0xd3,
+ 0xfc, 0xbc, 0xb7, 0xe6, 0x3e, 0x98, 0xeb, 0xdd, 0xe4, 0x4b, 0xa6, 0xab, 0xce, 0x39, 0x0f, 0x1f,
+ 0xc2, 0xb6, 0xd6, 0x7b, 0x15, 0x1a, 0xc6, 0x3c, 0x30, 0x14, 0x0f, 0xb2, 0xae, 0x0c, 0xf6, 0xeb,
+ 0x80, 0xa8, 0x75, 0x1f, 0x68, 0x5f, 0xb1, 0xdc, 0x8f, 0xf5, 0x37, 0x99, 0x0e, 0x53, 0x3e, 0x34,
+ 0xe7, 0x2d, 0x96, 0x9e, 0x58, 0x0c, 0x43, 0x93, 0xbc, 0x71, 0x54, 0x89, 0x73, 0x2f, 0xff, 0x2c,
+ 0x63, 0x11, 0x13, 0x56, 0xa2, 0x86, 0xad, 0x90, 0x01, 0x70, 0x24, 0xdf, 0xf0, 0x91, 0xac, 0x51,
+ 0x30, 0x3f, 0xca, 0xad, 0x17, 0xb5, 0x02, 0xcd, 0x9b, 0xfa, 0xa2, 0x0d, 0x93, 0x56, 0x99, 0xea,
+ 0x22, 0x60, 0xf4, 0xfd, 0x53, 0xec, 0x73, 0xb9, 0x4a, 0xd6, 0xbf, 0x31, 0x45, 0xf3, 0x39, 0xc8,
+ 0xf6, 0x1d, 0xec, 0x01, 0x90, 0x7a, 0x9b, 0x2e, 0x99, 0x1a, 0xea, 0x70, 0xb0, 0xb7, 0x02, 0x48,
+ 0xa8, 0x69, 0xda, 0x05, 0x95, 0x51, 0xb2, 0x96, 0xb8, 0x72, 0xc4, 0x73, 0x35, 0x2e, 0x0a, 0xab,
+ 0x57, 0xba, 0x29, 0x2c, 0x27, 0xe6, 0xf0, 0x82, 0xa8, 0x7e, 0xc1, 0x1d, 0xee, 0x2a, 0x58, 0xf2,
+ 0x8e, 0x9d, 0xde, 0x2f, 0x54, 0x68, 0x9e, 0xf0, 0xc0, 0x50, 0x3c, 0x8d, 0xfd, 0x30, 0x5e, 0x2a,
+ 0xc3, 0x93, 0xea, 0x3e, 0xd0, 0xbe, 0xa1, 0x7b, 0xdd, 0x29, 0x6e, 0xf1, 0x1c, 0xa6, 0x7c, 0x68,
+ 0xc6, 0x22, 0x26, 0xac, 0x87, 0xcf, 0x99, 0xe3, 0x02, 0xe0, 0x48, 0x7d, 0x23, 0xe1, 0x9b, 0xa2,
+ 0x50, 0x41, 0x9d, 0x34, 0x39, 0x1c, 0x06, 0x94, 0x6e, 0xcd, 0x25, 0x17, 0x76, 0xfa, 0x68, 0xfd,
+ 0x75, 0xda, 0xdd, 0xd1, 0x74, 0x0a, 0x83, 0x3b, 0xe2, 0xa8, 0x7e, 0x2c, 0xab, 0xd9, 0x61, 0x3a,
+ 0x4b, 0xd0, 0xbc, 0x4c, 0x5f, 0x88, 0xae, 0xda, 0x36, 0xf7, 0xd7, 0x35, 0xcb, 0xec, 0x98, 0xce,
+ 0x6c, 0x01, 0x84, 0x23, 0x5b, 0x15, 0xe5, 0xfb, 0xa3, 0xe8, 0x4e, 0x88, 0xb1, 0x58, 0x46, 0xcc,
+ 0xa6, 0x5c, 0x71, 0x35, 0xa9, 0x66, 0x9d, 0xba, 0xf7, 0xd7, 0xcf, 0x67, 0xc6, 0x4d, 0x6a, 0xb5,
+ 0xa4, 0x16, 0x09, 0xbf, 0xe0, 0xed, 0x53, 0x34, 0xee, 0xad, 0x0d, 0xe1, 0x61, 0xda, 0xbd, 0x70,
+ 0xf5, 0x72, 0xa8, 0xce, 0x1c, 0x55, 0x32, 0xe7, 0x6d, 0x5d, 0x49, 0xb5, 0xa5, 0x8a, 0x5f, 0x0e,
+ 0xf8, 0x28, 0x47, 0x31, 0xac, 0x4d, 0xb4, 0x02, 0xd6, 0xbf, 0xe1, 0x64, 0x43, 0xd4, 0x62, 0x56,
+ 0x9c, 0xc2, 0xe0, 0x7f, 0x10, 0x31, 0xef, 0x84, 0x11, 0x7c, 0x21, 0xb1, 0x2b, 0x95, 0xfe, 0x08,
+ 0xd2, 0xa3, 0x90, 0xa1, 0x18, 0xc8, 0x79, 0xc6, 0xf8, 0x42, 0xd0, 0x08, 0xdf, 0x3e, 0x81, 0x0c,
+ 0xcd, 0xa6, 0x41, 0x0e, 0xec, 0x89, 0x8e, 0x57, 0x92, 0x8c, 0x65, 0xe5, 0xef, 0xc5, 0x1c, 0x76,
+ 0xdc, 0x96, 0x3b, 0x91, 0x24, 0xff, 0x56, 0xea, 0xb7, 0xe7, 0xdb, 0x1c, 0x2c, 0x5d, 0xe1, 0x12,
+ 0x1d, 0x4f, 0xa9, 0x25, 0xbd, 0xca, 0x39, 0x1f, 0x73, 0xb4, 0x77, 0x6b, 0x97, 0x6c, 0x4a, 0xbf,
+ 0x83, 0xc7, 0x31, 0xd0, 0xe4, 0x70, 0x18, 0x15, 0x7b, 0xb2, 0x94, 0x5c, 0x1b, 0x6e, 0x63, 0x72,
+ 0x2e, 0x1f, 0x27, 0x47, 0x26, 0x50, 0x92, 0x1b, 0x1c, 0x09, 0x76, 0xa3, 0x11, 0x07, 0x8e, 0x13,
+ 0xf1, 0xe6, 0x58, 0x19, 0x8e, 0x80, 0x6d, 0x38, 0x5f, 0xa9, 0x0e, 0x7a, 0x28, 0x67, 0x32, 0x47,
+ 0xfd, 0x99, 0x8b, 0xa3, 0xfb, 0x3c, 0x8c, 0x9a, 0x09, 0x76, 0xc7, 0xe8, 0x7c, 0x93, 0x85, 0x9c,
+ 0x81, 0x8d, 0x49, 0x5a, 0xad, 0xfb, 0xd6, 0x9b, 0x62, 0xc8, 0x56, 0xda, 0xbc, 0xf9, 0xb4, 0xb7,
+ 0xb1, 0xb2, 0x83, 0xf7, 0xba, 0x4e, 0xd4, 0x56, 0xf9, 0x32, 0xf4, 0xd7, 0x2f, 0xaf, 0x2d, 0x5d,
+ 0x4f, 0x44, 0x4c, 0x9b, 0xcd, 0x5d, 0xf1, 0x05, 0x04, 0x03, 0x90, 0xfa, 0x46, 0x01, 0xf5, 0x87,
+ 0x47, 0xaf, 0x6f, 0xf6, 0x2a, 0x34, 0x4f, 0x78, 0x60, 0x28, 0x1e, 0xa7, 0x9f, 0x18, 0x2f, 0x15,
+ 0x13, 0x7a, 0x02, 0x15, 0x81, 0xfd, 0x16, 0x33, 0x3c, 0x11, 0x7c, 0x7f, 0x64, 0x0f, 0x2a, 0xa1,
+ 0x46, 0x8a, 0x53, 0xb3, 0xef, 0x90, 0x28, 0x3f, 0x8d, 0x15, 0x7f, 0xe4, 0x2d, 0xb2, 0xa5, 0x96,
+ 0x5b, 0xc5, 0xfa, 0x96, 0x52, 0x5a, 0x11, 0x20, 0xfe, 0xa1, 0x08, 0x8f, 0xba, 0xde, 0xef, 0x29,
+ 0xfb, 0x47, 0x03, 0xfe, 0x20, 0x62, 0x1d, 0xcb, 0x22, 0xf8, 0x42, 0xa1, 0x56, 0xe9, 0x3f, 0x10,
+ 0xed, 0x8c, 0xcd, 0x79, 0xf6, 0xee, 0x33, 0x60, 0xc1, 0x20, 0x18, 0x52, 0x0d, 0xa1, 0xf2, 0x7b,
+ 0x94, 0x29, 0xc3, 0x12, 0xf7, 0x58, 0x51, 0xf9, 0x75, 0x57, 0xaf, 0xec, 0xf2, 0x8c, 0x24, 0x9a,
+ 0x25, 0x9b, 0x40, 0xe5, 0x4d, 0x16, 0x85, 0xaf, 0x8c, 0x65, 0x5b, 0x3b, 0xdd, 0x23, 0x09, 0xc7,
+ 0xa5, 0x33, 0x35, 0xfa, 0x25, 0x49, 0x34, 0x73, 0x03, 0x90, 0x6c, 0xa2, 0xd3, 0x70, 0x37, 0xf3,
+ 0xdd, 0xb3, 0x07, 0xd4, 0xe1, 0x5b, 0x31, 0xad, 0x5a, 0xda, 0xba, 0x5f, 0x9e, 0xf7, 0x6b, 0x91,
+ 0x38, 0xd4, 0xe9, 0xc0, 0xf0, 0xdc, 0xbc, 0xb0, 0xff, 0xd1, 0x2c, 0x50, 0x4a, 0x4f, 0x43, 0x78,
+ 0x58, 0xaa, 0xbe, 0x59, 0xde, 0x75, 0xb8, 0xe9, 0x0a, 0xe6, 0xab, 0x4a, 0xaf, 0xe3, 0xb2, 0x6f,
+ 0x0f, 0x10, 0x97, 0x75, 0xf9, 0x93, 0x48, 0x6b, 0xa2, 0x98, 0x6a, 0x57, 0x41, 0xc9, 0xea, 0x9d,
+ 0xda, 0x48, 0xb3, 0xcc, 0xff, 0xa1, 0xc7, 0xbb, 0x9c, 0x69, 0x5e, 0x55, 0x06, 0x27, 0x5b, 0x9e,
+ 0x3d, 0x65, 0x25, 0x52, 0xa7, 0xad, 0x84, 0x28, 0x20, 0x18, 0x0a, 0xdc, 0x75, 0x08, 0xa4, 0xb2,
+ 0xe8, 0x3d, 0x01, 0xeb, 0xa1, 0x9f, 0x0b, 0xf8, 0x1e, 0xe9, 0x3e, 0xde, 0x32, 0xe6, 0x15, 0xb1,
+ 0xe9, 0x18, 0x3d, 0xae, 0x64, 0x3b, 0x6c, 0xbf, 0xf3, 0xd4, 0x5f, 0x9d, 0x80, 0x4c, 0x9f, 0x32,
+ 0x18, 0xfe, 0x65, 0xb7, 0xea, 0xbb, 0x01, 0x87, 0xac, 0x7d, 0x51, 0xe7, 0xa8, 0x2b, 0xad, 0x75,
+ 0x95, 0x0c, 0xff, 0x57, 0x32, 0xfc, 0x36, 0xbe, 0x98, 0x6a, 0xce, 0xaf, 0x40, 0x26, 0xae, 0x19,
+ 0xee, 0xe3, 0x89, 0xb6, 0x7a, 0xc1, 0x9a, 0xa9, 0x35, 0x67, 0xbb, 0x97, 0x18, 0x9c, 0xaf, 0x3d,
+ 0x77, 0x90, 0xa5, 0x5b, 0x3d, 0x81, 0x4d, 0xb5, 0xfb, 0xd2, 0xbc, 0xaa, 0x0c, 0x4e, 0xb6, 0xff,
+ 0x72, 0x21, 0x69, 0xc9, 0x6a, 0xf0, 0x75, 0x2d, 0x24, 0x1b, 0x9a, 0x26, 0x33, 0x09, 0x51, 0x35,
+ 0x6f, 0x6e, 0xc0, 0xec, 0xd7, 0x3a, 0x4c, 0x32, 0x57, 0xaf, 0xed, 0x4d, 0xa4, 0x65, 0x1b, 0x8a,
+ 0x51, 0x64, 0xa1, 0x71, 0xfc, 0xb8, 0x61, 0xd3, 0x83, 0xf0, 0x44, 0x54, 0xc4, 0x50, 0xe2, 0x7e,
+ 0x7f, 0x7b, 0x86, 0x36, 0xda, 0xe8, 0xf3, 0xc8, 0x9f, 0xf9, 0x32, 0xf7, 0xd5, 0x57, 0x6c, 0x6d,
+ 0xdf, 0xf9, 0x7f, 0x5e, 0xa8, 0xd0, 0xff, 0x23, 0x43, 0xa0, 0x78, 0xd9, 0x39, 0x60, 0xbc, 0x54,
+ 0xd7, 0x12, 0x5c, 0x33, 0x4f, 0xb9, 0x41, 0x5e, 0x27, 0x8b, 0xf6, 0x84, 0xe0, 0x79, 0x66, 0xc6,
+ 0xd4, 0x7d, 0x18, 0xfc, 0xc3, 0x96, 0xe8, 0x97, 0xd3, 0xcc, 0x55, 0x41, 0xf5, 0x44, 0x3b, 0x80,
+ 0x6b, 0xfa, 0x30, 0x3b, 0x45, 0xef, 0x13, 0xed, 0x65, 0x5b, 0xaa, 0x82, 0x29, 0x88, 0x76, 0xc3,
+ 0x3a, 0x9e, 0x91, 0x4a, 0xb9, 0x57, 0x72, 0x3e, 0xe6, 0xab, 0xee, 0xd6, 0xed, 0xd8, 0x94, 0xbd,
+ 0x20, 0x2a, 0x8c, 0x77, 0x1a, 0x67, 0xbd, 0x37, 0x53, 0xac, 0x7d, 0xb7, 0xe2, 0x64, 0xee, 0x0d,
+ 0x0a, 0xa1, 0x5b, 0xe7, 0xae, 0xe2, 0x70, 0xf3, 0x7d, 0x51, 0x4c, 0xdb, 0x7e, 0x8e, 0x0d, 0x57,
+ 0x42, 0x1e, 0xa3, 0x64, 0x7d, 0x45, 0x77, 0xe0, 0xbf, 0xe1, 0x38, 0x2b, 0xa0, 0x5f, 0xc8, 0xdf,
+ 0xcc, 0x83, 0x7d, 0x4b, 0x29, 0x2d, 0xe9, 0x10, 0x7f, 0xb1, 0x04, 0xa6, 0x5d, 0x6f, 0x96, 0xf5,
+ 0x7b, 0xef, 0x76, 0xe1, 0x48, 0x3d, 0xac, 0x17, 0xad, 0x0d, 0x75, 0x38, 0x58, 0xba, 0x01, 0x24,
+ 0x8f, 0xb8, 0xe2, 0x6a, 0x91, 0xcc, 0xf9, 0xb7, 0x2d, 0x6d, 0x5d, 0xce, 0x4f, 0x9a, 0xd4, 0xa9,
+ 0x3b, 0xbb, 0xad, 0x0f, 0x7c, 0xf3, 0x15, 0x79, 0x0b, 0x96, 0x8f, 0x95, 0x5f, 0x72, 0x1e, 0x3e,
+ 0x7d, 0x31, 0xfe, 0xbc, 0x93, 0x63, 0x3d, 0x46, 0x86, 0x83, 0xf0, 0x71, 0x72, 0xc0, 0xbb, 0xa8,
+ 0xbf, 0x87, 0x28, 0xc7, 0x86, 0x79, 0xfb, 0x7a, 0xb6, 0x97, 0xff, 0xc3, 0xdc, 0xcc, 0x4d, 0x43,
+ 0xd0, 0xe9, 0xe8, 0x2b, 0x51, 0x43, 0xb7, 0x48, 0xe1, 0x38, 0x12, 0x8e, 0x78, 0xa9, 0x56, 0xc9,
+ 0xde, 0xdc, 0x43, 0x1b, 0x6d, 0x74, 0x98, 0x64, 0xae, 0x9d, 0x19, 0x9a, 0x8b, 0xca, 0x36, 0xd7,
+ 0xca, 0x5d, 0xf5, 0x16, 0xf2, 0x73, 0x78, 0x41, 0x54, 0x3f, 0x81, 0xef, 0x77, 0x15, 0x2c, 0x79,
+ 0x2c, 0x55, 0x5f, 0xcd, 0x6f, 0xdb, 0x5c, 0x95, 0x05, 0x73, 0xb4, 0x25, 0xb6, 0x90, 0x59, 0xd6,
+ 0x19, 0xdb, 0x59, 0xf2, 0x2f, 0x1f, 0x66, 0xc0, 0x41, 0x40, 0x30, 0xa4, 0x1a, 0x81, 0x27, 0xf6,
+ 0x76, 0xb5, 0x99, 0x1e, 0xf8, 0x25, 0x2a, 0xf2, 0x16, 0xef, 0xdd, 0xe9, 0xbe, 0xe4, 0x3c, 0x7c,
+ 0x12, 0x5f, 0x3e, 0x50, 0x44, 0x59, 0x71, 0x74, 0xd1, 0x2c, 0x1d, 0x3c, 0xd6, 0xa5, 0xa0, 0x22,
+ 0x74, 0xff, 0xe1, 0x94, 0xb1, 0xae, 0xe4, 0x7c, 0x0f, 0x95, 0x1f, 0x6f, 0x19, 0x73, 0xeb, 0xb9,
+ 0xd5, 0x58, 0x24, 0xb9, 0x06, 0x32, 0x8f, 0xd0, 0x3e, 0xf1, 0x34, 0x02, 0x47, 0xee, 0xb1, 0x03,
+ 0x8b, 0x2c, 0x12, 0xbd, 0x03, 0x19, 0xa6, 0x68, 0x1f, 0x99, 0x1a, 0x01, 0xc2, 0x77, 0xb9, 0xe0,
+ 0x07, 0xfb, 0xb4, 0x18, 0x1e, 0xfa, 0xf6, 0x16, 0xc6, 0xb3, 0xe4, 0x0a, 0x98, 0xd0, 0x30, 0x0f,
+ 0x59, 0x8f, 0x82, 0x1c, 0x1b, 0xd1, 0xdf, 0xae, 0xe7, 0xdb, 0xca, 0x09, 0x1d, 0x49, 0x38, 0xec,
+ 0xb0, 0x97, 0xbf, 0xb2, 0x7f, 0xea, 0xb3, 0x11, 0x14, 0x0f, 0x95, 0x94, 0x9d, 0x05, 0xa7, 0xde,
+ 0x1f, 0x05, 0xd1, 0xaf, 0xf4, 0x41, 0xf7, 0x91, 0x6a, 0xce, 0xb5, 0xed, 0x30, 0xfb, 0x9d, 0x7a,
+ 0x61, 0x5b, 0x6b, 0xdc, 0xeb, 0x0d, 0x63, 0x1e, 0x18, 0x0a, 0xe6, 0x59, 0x57, 0x06, 0x7b, 0x94,
+ 0x1a, 0xb4, 0x1d, 0x3d, 0xa3, 0x30, 0xcf, 0x09, 0xb5, 0x07, 0x93, 0x61, 0x0f, 0xbc, 0x7a, 0xb0,
+ 0xc8, 0x17, 0x8d, 0x9c, 0xbb, 0xf8, 0xb6, 0xcf, 0x4d, 0x45, 0x43, 0x69, 0xd0, 0x82, 0xfb, 0xbc,
+ 0x97, 0x46, 0x87, 0xdd, 0x7b, 0x77, 0xf8, 0x30, 0x81, 0x10, 0x0c, 0x29, 0xe7, 0xb1, 0x79, 0xdc,
+ 0x17, 0xee, 0xf2, 0xc2, 0x13, 0x28, 0x49, 0xec, 0x0e, 0xe5, 0x3b, 0xb0, 0xe9, 0xe2, 0x47, 0xe8,
+ 0xa9, 0x4c, 0xe6, 0x40, 0x50, 0xf5, 0xd5, 0xd1, 0x55, 0x4f, 0xa5, 0x30, 0x87, 0x84, 0x80, 0x28,
+ 0x91, 0x98, 0x0f, 0x80, 0xa0, 0x29, 0x69, 0x61, 0xaa, 0x9e, 0x89, 0x60, 0xcd, 0xcb, 0xc3, 0x50,
+ 0x9f, 0xad, 0xa4, 0xb0, 0x9c, 0x1e, 0x46, 0x4d, 0xe5, 0x3b, 0x82, 0x74, 0x3e, 0xa8, 0xa3, 0x4e,
+ 0x1b, 0x91, 0x21, 0x78, 0x66, 0x94, 0xa8, 0x4e, 0x58, 0x3a, 0xf2, 0x22, 0xbd, 0x16, 0xf0, 0x33,
+ 0xbb, 0x13, 0xd8, 0x10, 0x14, 0xac, 0xa4, 0xa5, 0x84, 0x63, 0xb8, 0x0c, 0x51, 0x21, 0x20, 0x0a,
+ 0xd1, 0xcc, 0xd4, 0x6e, 0x94, 0xe7, 0xd0, 0x0f, 0x0c, 0x05, 0x73, 0xcd, 0xca, 0x03, 0xdc, 0x4a,
+ 0x7a, 0xca, 0x4a, 0xa4, 0x8d, 0x99, 0xcb, 0x50, 0x40, 0x30, 0x14, 0x7b, 0xea, 0x10, 0x8b, 0xa7,
+ 0xb4, 0x03, 0x4f, 0x65, 0xed, 0x3f, 0xec, 0xce, 0x26, 0xfb, 0xd2, 0x5b, 0x10, 0xe8, 0xca, 0x97,
+ 0x5f, 0x51, 0x0a, 0x41, 0xc0, 0x8f, 0x4e, 0xff, 0xcc, 0x55, 0x4f, 0x40, 0x37, 0x33, 0x82, 0x60,
+ 0x71, 0x4e, 0x2d, 0x06, 0xe6, 0xdf, 0xdc, 0xe4, 0xd0, 0x5c, 0x39, 0xe3, 0x26, 0x34, 0x0c, 0x73,
+ 0x0e, 0x35, 0xab, 0x30, 0x3c, 0x37, 0x2f, 0x2c, 0x4f, 0xa5, 0x0b, 0x14, 0xf3, 0x63, 0x60, 0x1e,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x78, 0x80, 0x32, 0x2e, 0xc4, 0x12, 0x05, 0xde, 0x59, 0x4a, 0xd6, 0xfd, 0x4d, 0x87, 0x5c, 0x62,
+ 0x24, 0xbe, 0x7c, 0xa0, 0x88, 0xb2, 0xe2, 0xe8, 0x61, 0x58, 0x3a, 0x78, 0x6f, 0x89, 0x83, 0x44,
+ 0x40, 0x54, 0xdb, 0xee, 0x34, 0xce, 0xb9, 0x6e, 0xa6, 0x9b, 0xfa, 0xad, 0x07, 0xc8, 0x1f, 0x1a,
+ 0x86, 0x76, 0xfd, 0x42, 0xb3, 0x01, 0x20, 0x8d, 0xa4, 0x7b, 0xb2, 0xd0, 0x24, 0x29, 0x84, 0xb8,
+ 0x52, 0x0b, 0xe5, 0xbe, 0x70, 0x97, 0xc8, 0x1a, 0x77, 0xb7, 0xe7, 0x91, 0xd1, 0x6d, 0xbf, 0x38,
+ 0xf3, 0xac, 0x20, 0x93, 0xc7, 0x0b, 0xa3, 0xb6, 0x46, 0xd3, 0xcc, 0xfc, 0x8f, 0xf0, 0xe5, 0x82,
+ 0x11, 0x30, 0x7a, 0x9f, 0xc8, 0x76, 0xd8, 0xbd, 0x25, 0x6b, 0xbe, 0xf9, 0xc3, 0x98, 0xfd, 0x64,
+ 0x28, 0xc1, 0xaf, 0x1a, 0xfd, 0x0e, 0x03, 0x4a, 0x37, 0x87, 0xf3, 0xea, 0x3b, 0x7d, 0x34, 0x9f,
+ 0x5c, 0x3e, 0x4e, 0x8e, 0x4c, 0xa0, 0xe7, 0x36, 0x38, 0x12, 0xec, 0x85, 0x22, 0x0e, 0xdf, 0x26,
+ 0x98, 0x56, 0x10, 0xa8, 0x82, 0xe4, 0xb0, 0x5b, 0x23, 0x88, 0x66, 0x7e, 0xa6, 0x78, 0x93, 0x41,
+ 0xc1, 0xd9, 0x92, 0xb4, 0x99, 0x35, 0x6f, 0xf5, 0xc4, 0x53, 0xac, 0x77, 0xbb, 0x31, 0xab, 0xad,
+ 0xd6, 0x37, 0x60, 0x76, 0x8a, 0x1d, 0x26, 0x19, 0xca, 0xb6, 0x97, 0xc7, 0x52, 0xd3, 0xec, 0x45,
+ 0x03, 0x6f, 0x44, 0xcf, 0x8c, 0x2f, 0xa9, 0xc9, 0xf4, 0x47, 0xa3, 0xc5, 0x15, 0x3d, 0x5d, 0x46,
+ 0x08, 0xeb, 0x23, 0x6d, 0xe7, 0x69, 0xbe, 0x7d, 0x64, 0x2b, 0x8e, 0x5d, 0xd9, 0x19, 0xda, 0x92,
+ 0xae, 0xb7, 0x52, 0x58, 0x4e, 0x0f, 0x23, 0xc7, 0x93, 0xfc, 0x41, 0x3a, 0x1f, 0x54, 0xb0, 0x27,
+ 0x64, 0xea, 0xa7, 0x4e, 0xbc, 0x7c, 0x5b, 0x86, 0xc7, 0xc3, 0xc0, 0xd5, 0x68, 0x41, 0x9c, 0x5e,
+ 0x2d, 0x70, 0x63, 0x88, 0xaa, 0x7f, 0x3b, 0xd2, 0xe8, 0x4e, 0xd5, 0x66, 0x04, 0x3a, 0xd3, 0x55,
+ 0x32, 0x75, 0xb2, 0x27, 0x5e, 0x3e, 0xcc, 0x43, 0x82, 0x80, 0x60, 0x8b, 0x34, 0xc1, 0x4e, 0x2f,
+ 0x06, 0xde, 0x88, 0x5d, 0xdb, 0x5e, 0x91, 0x51, 0x2b, 0x8e, 0x85, 0x49, 0x2a, 0x7a, 0xba, 0x8c,
+ 0x34, 0xab, 0x3a, 0x7a, 0x85, 0x60, 0x5d, 0x12, 0xa9, 0x0e, 0xe5, 0xc2, 0x1e, 0xbb, 0xf4, 0xa3,
+ 0x5d, 0x1b, 0x72, 0xcb, 0x89, 0x04, 0x80, 0x71, 0xd5, 0x2f, 0x8d, 0xc6, 0x90, 0xa4, 0x55, 0xa5,
+ 0x84, 0x3c, 0x85, 0xc8, 0xfa, 0x8a, 0xee, 0x03, 0xbd, 0x01, 0x70, 0x56, 0x83, 0xbe, 0x53, 0x7d,
+ 0x31, 0x1a, 0xf6, 0xe8, 0xd2, 0x11, 0x65, 0x8a, 0x76, 0xc7, 0xc3, 0x4e, 0x21, 0xfc, 0x13, 0x69,
+ 0xf9, 0x0d, 0x7b, 0x74, 0x69, 0xe9, 0xd3, 0x45, 0x3b, 0x82, 0x80, 0x27, 0xf1, 0x7e, 0xe8, 0xd5,
+ 0x93, 0xd2, 0x77, 0x0a, 0xe9, 0xa2, 0xa7, 0xef, 0xb3, 0xe4, 0x4b, 0xe6, 0x6a, 0x5c, 0x14, 0x95,
+ 0x87, 0x53, 0xc1, 0x07, 0x76, 0xa5, 0x47, 0xca, 0x49, 0x46, 0xd3, 0x93, 0x96, 0x83, 0x0e, 0x3b,
+ 0x9b, 0x39, 0x54, 0x67, 0x0e, 0xcb, 0x19, 0x92, 0xd7, 0xcf, 0xc5, 0xbb, 0xb3, 0x45, 0xce, 0x07,
+ 0x0d, 0x5a, 0xef, 0xff, 0xb0, 0x18, 0x86, 0xe5, 0xbb, 0xe2, 0xa8, 0xd1, 0xe6, 0x5e, 0x3d, 0x58,
+ 0xcf, 0xec, 0x39, 0x84, 0xa5, 0x02, 0x40, 0xd9, 0x8b, 0xf6, 0xa7, 0x63, 0x48, 0x52, 0xcb, 0xb3,
+ 0x6a, 0xdf, 0x0c, 0x7e, 0x80, 0x4b, 0x74, 0xaa, 0x88, 0x66, 0xcb, 0xc1, 0x9b, 0x22, 0xfc, 0x40,
+ 0xbd, 0xcd, 0x50, 0x4d, 0xcf, 0xf2, 0x35, 0xf4, 0xaf, 0xed, 0x3d, 0x45, 0x7b, 0x5b, 0x9a, 0x86,
+ 0x33, 0x50, 0x8e, 0x62, 0x9b, 0x9a, 0xab, 0x04, 0x6f, 0xbd, 0x01, 0xc8, 0x86, 0x6b, 0xc4, 0xac,
+ 0xdb, 0x6d, 0x8f, 0x89, 0x3a, 0x05, 0xa0, 0xfc, 0x71, 0x54, 0x3f, 0x16, 0xb4, 0x8d, 0xd1, 0x1d,
+ 0xeb, 0x52, 0x45, 0x24, 0x2d, 0xb0, 0xa2, 0x31, 0xea, 0xae, 0x9d, 0x1b, 0x27, 0xdb, 0x48, 0xf7,
+ 0xce, 0xc9, 0x05, 0xc1, 0x60, 0xa6, 0x27, 0x9e, 0x66, 0xcb, 0xc6, 0x20, 0xfa, 0xf8, 0x41, 0x30,
+ 0x55, 0xf0, 0x51, 0xa6, 0x6e, 0x6d, 0x3e, 0x0c, 0xb1, 0x04, 0x03, 0x9b, 0x49, 0xbd, 0x8f, 0x37,
+ 0x16, 0xcb, 0xce, 0x87, 0xd6, 0x8c, 0x2e, 0xab, 0xe3, 0xd8, 0x5a, 0xf3, 0x5b, 0x48, 0xcd, 0x6b,
+ 0xc5, 0x4d, 0x62, 0x63, 0x0b, 0xe0, 0x30, 0x2a, 0xf6, 0xa7, 0xeb, 0xb8, 0x36, 0xdc, 0xc6, 0xe4,
+ 0x48, 0xbf, 0xf8, 0x83, 0xd3, 0xa7, 0x07, 0x13, 0xc2, 0xb0, 0x74, 0xf0, 0xde, 0xd1, 0xc5, 0x88,
+ 0x2b, 0xae, 0xeb, 0xd5, 0x71, 0x21, 0xaa, 0x83, 0xc3, 0xc0, 0x50, 0x2f, 0x2e, 0x40, 0x69, 0xd9,
+ 0x10, 0x15, 0x46, 0xda, 0x0d, 0xd2, 0xbf, 0xfa, 0xc8, 0x56, 0xdf, 0xba, 0x71, 0x32, 0x77, 0xe7,
+ 0xba, 0x36, 0xe4, 0x55, 0xd1, 0x08, 0xc3, 0xe2, 0x69, 0x5e, 0xd9, 0x4f, 0xe3, 0x8b, 0xaa, 0x89,
+ 0x79, 0xa5, 0x0e, 0x6b, 0x01, 0xb6, 0x62, 0x99, 0xb4, 0x77, 0xb7, 0xbe, 0xff, 0x2d, 0xd6, 0xe1,
+ 0xb2, 0xdd, 0xc7, 0x38, 0x36, 0x61, 0x7d, 0x9f, 0x0d, 0x75, 0x57, 0x12, 0x3a, 0x92, 0x70, 0x1b,
+ 0x01, 0x25, 0x3c, 0x45, 0xc5, 0xa4, 0x67, 0x47, 0xed, 0x3d, 0x61, 0x43, 0xb2, 0xaa, 0x8a, 0x83,
+ 0x04, 0x94, 0xf0, 0xd7, 0x92, 0xd5, 0x5f, 0xdf, 0x32, 0xf4, 0x47, 0xcf, 0x8d, 0xed, 0x6d, 0x49,
+ 0xb8, 0x7c, 0x9c, 0xdf, 0x98, 0x83, 0x0d, 0x6c, 0x70, 0x24, 0x1b, 0xc9, 0x44, 0x1c, 0x7d, 0x4c,
+ 0xc9, 0x32, 0xb1, 0xd9, 0x7e, 0x5c, 0xd1, 0x88, 0xa0, 0x78, 0x22, 0x2a, 0x62, 0x28, 0x71, 0x3f,
+ 0xec, 0xa9, 0xf1, 0x3c, 0x33, 0x4a, 0x54, 0x27, 0x2c, 0x1d, 0x79, 0x11, 0xbf, 0x0b, 0x78, 0xf8,
+ 0x85, 0x19, 0xb9, 0x8d, 0x3f, 0x2e, 0x89, 0x44, 0x50, 0x3c, 0x11, 0x15, 0x31, 0x14, 0xd9, 0xfe,
+ 0xf4, 0x57, 0x94, 0x8b, 0xd9, 0xf1, 0x55, 0xa0, 0x80, 0x60, 0x28, 0xf6, 0x17, 0x20, 0xd5, 0x8d,
+ 0x44, 0xc0, 0x2b, 0x39, 0xa6, 0x1b, 0xe6, 0xb1, 0x94, 0x6f, 0xbd, 0x62, 0x8a, 0x25, 0x72, 0x53,
+ 0x5a, 0xe0, 0xc6, 0xd3, 0x97, 0xfe, 0x76, 0x67, 0x13, 0x9c, 0x69, 0xcc, 0x08, 0x74, 0x65, 0xaa,
+ 0x2f, 0x3a, 0x1b, 0x02, 0xe3, 0xf4, 0xf5, 0x5c, 0xf1, 0x34, 0x17, 0xe0, 0xa3, 0xad, 0x04, 0x90,
+ 0x05, 0xb1, 0xcc, 0x92, 0x57, 0x71, 0x38, 0x98, 0xdf, 0xc9, 0x26, 0x8c, 0x3f, 0x47, 0xe7, 0xca,
+ 0xd9, 0x27, 0xf7, 0x03, 0x73, 0x8e, 0x6e, 0x72, 0x68, 0x2e, 0xfd, 0x90, 0x13, 0x1a, 0x06, 0xd8,
+ 0x68, 0x95, 0x74, 0xf4, 0xc9, 0xc0, 0xba, 0x24, 0x91, 0x1c, 0x09, 0x47, 0x3c, 0xb5, 0x2b, 0x85,
+ 0xad, 0xd8, 0x16, 0x97, 0xc2, 0x20, 0x8a, 0x0e, 0x67, 0xbb, 0xe2, 0xff, 0x0a, 0x69, 0xed, 0x61,
+ 0x35, 0x8e, 0x06, 0x3f, 0x40, 0xc4, 0x3a, 0x55, 0x44, 0x33, 0x84, 0x81, 0xac, 0x11, 0x7e, 0x20,
+ 0x56, 0x9f, 0x15, 0x69, 0xe2, 0x42, 0x97, 0xc5, 0x45, 0x43, 0xa0, 0x5e, 0x5c, 0x80, 0xd2, 0x71,
+ 0xc4, 0x68, 0x5e, 0x26, 0xce, 0x44, 0x57, 0x6d, 0x1b, 0x9a, 0x8a, 0xfb, 0x84, 0x76, 0x4c, 0x67,
+ 0xaf, 0x92, 0x6e, 0x1d, 0x8b, 0xab, 0x44, 0x80, 0x7e, 0xc1, 0x20, 0x79, 0xad, 0xfe, 0x3a, 0xa4,
+ 0x15, 0xa4, 0x8a, 0x48, 0x5a, 0xa3, 0x87, 0x62, 0x17, 0x9f, 0xf9, 0x36, 0x4e, 0x75, 0x90, 0x2d,
+ 0x7c, 0x14, 0xc2, 0xf9, 0x56, 0xc7, 0x5a, 0x01, 0x6b, 0xbe, 0x91, 0x32, 0xc0, 0x6a, 0x31, 0x2b,
+ 0x6e, 0x4b, 0xfc, 0xa9, 0x12, 0x9e, 0x2b, 0x75, 0xba, 0x92, 0x8c, 0x0e, 0x16, 0xcf, 0x91, 0x09,
+ 0xd8, 0x02, 0xcb, 0x46, 0xb6, 0x2a, 0x09, 0x35, 0x85, 0x13, 0x9c, 0xd3, 0xa1, 0xb0, 0x8c, 0x5b,
+ 0xf7, 0x38, 0xd0, 0x44, 0x55, 0xde, 0xfc, 0x69, 0x74, 0x27, 0x8b, 0x33, 0x02, 0x1d, 0x88, 0xcb,
+ 0x66, 0xa0, 0xdf, 0xc4, 0xf5, 0xf7, 0x95, 0x08, 0xde, 0xb9, 0x02, 0x53, 0xcf, 0xd6, 0x4b, 0x9b,
+ 0x89, 0x66, 0x6a, 0x37, 0x4a, 0x92, 0x68, 0xe6, 0x06, 0xe3, 0xd8, 0x87, 0x65, 0xe0, 0x6e, 0x25,
+ 0x45, 0xe5, 0x17, 0x7c, 0x63, 0xbf, 0x81, 0xf6, 0x79, 0x52, 0xdc, 0x21, 0x38, 0x8f, 0xf8, 0xd0,
+ 0xef, 0xc6, 0xb5, 0xf3, 0xbf, 0x65, 0xfd, 0xee, 0xd8, 0x5a, 0xda, 0xd4, 0xaa, 0x36, 0x25, 0xbe,
+ 0x37, 0xc4, 0x7e, 0xb5, 0x09, 0x4f, 0xf4, 0xdb, 0x5d, 0x49, 0x46, 0x07, 0x0b, 0x86, 0xa9, 0xe5,
+ 0x8d, 0xf2, 0x9a, 0xe0, 0xd8, 0x47, 0x37, 0x39, 0x34, 0x17, 0x9f, 0x48, 0xe8, 0x0d, 0x03, 0x6c,
+ 0xb6, 0x49, 0x37, 0xef, 0xa4, 0xb4, 0x22, 0x40, 0x3f, 0x81, 0x10, 0xdd, 0xb7, 0x7f, 0x1d, 0x52,
+ 0xff, 0xd3, 0xf3, 0x29, 0xb2, 0xb7, 0x42, 0x14, 0x10, 0x0c, 0x05, 0x6e, 0xdb, 0x04, 0x52, 0x59,
+ 0x88, 0x43, 0x56, 0x72, 0x8f, 0x36, 0x0f, 0xa1, 0xeb, 0xde, 0xb9, 0xc4, 0xd7, 0x4a, 0xe4, 0xa6,
+ 0xea, 0x77, 0x79, 0x61, 0xe8, 0x14, 0xc5, 0x76, 0x07, 0x93, 0xfc, 0x58, 0x95, 0x71, 0xc2, 0x74,
+ 0x62, 0x34, 0x2f, 0x13, 0x67, 0x22, 0xca, 0xd7, 0xec, 0x4d, 0x45, 0x9c, 0x42, 0x3b, 0x26, 0xd2,
+ 0xe2, 0x9c, 0x5a, 0x0c, 0x0f, 0x7d, 0x7b, 0x0b, 0x63, 0xb8, 0x72, 0x05, 0x4c, 0x68, 0x18, 0xe6,
+ 0x3e, 0x0a, 0x61, 0x9d, 0x2b, 0x82, 0x2d, 0xe1, 0xd4, 0x5f, 0xa9, 0x19, 0x60, 0x35, 0xf9, 0xf4,
+ 0x54, 0xd5, 0x6d, 0xe3, 0xab, 0xc9, 0x59, 0x4b, 0x5c, 0x39, 0x62, 0xd8, 0xfb, 0x17, 0x05, 0xb4,
+ 0xbe, 0xa2, 0x14, 0x82, 0x43, 0xdd, 0x9c, 0x3d, 0x5b, 0xaa, 0x9e, 0x80, 0x6e, 0x66, 0xc7, 0xc0,
+ 0xb7, 0x6c, 0x0b, 0xaa, 0x61, 0x10, 0x45, 0x07, 0xd2, 0xbc, 0x71, 0x9e, 0x05, 0xd5, 0x97, 0xd1,
+ 0x36, 0xe1, 0x42, 0xf0, 0xcc, 0xeb, 0x93, 0x9c, 0xb0, 0x74, 0x27, 0x44, 0xb9, 0x2c, 0x23, 0x66,
+ 0xe6, 0x08, 0xaa, 0xdb, 0x9d, 0xa8, 0x24, 0xd4, 0x51, 0x4c, 0x35, 0xca, 0xc1, 0x85, 0x75, 0xaf,
+ 0x99, 0x73, 0x2c, 0xed, 0x47, 0x40, 0xd7, 0x1c, 0xce, 0xb5, 0x07, 0x3d, 0x14, 0xd2, 0x19, 0xc2,
+ 0xa0, 0x82, 0xf9, 0x68, 0x72, 0x38, 0x0c, 0xeb, 0xdc, 0x59, 0x4a, 0x2e, 0xec, 0x37, 0xd0, 0x39,
+ 0x23, 0x45, 0xc8, 0xb8, 0x96, 0x48, 0x14, 0xfe, 0xa7, 0xeb, 0xde, 0x72, 0xf7, 0x59, 0xb3, 0x4b,
+ 0x8a, 0x09, 0x2e, 0xf8, 0xc6, 0xbd, 0xc1, 0x2f, 0xf2, 0xa4, 0x7b, 0x42, 0x70, 0xdd, 0x33, 0x63,
+ 0x73, 0x04, 0x55, 0x8c, 0xaf, 0x54, 0x12, 0x6a, 0xc9, 0x26, 0xfb, 0x65, 0x81, 0xa3, 0xdb, 0xb6,
+ },
+ { /* 7 */
+ 0x5e, 0x59, 0x1d, 0x8d, 0x98, 0xfb, 0x33, 0x54, 0x7c, 0xd4, 0xa4, 0x1b, 0xb3, 0x82, 0x0e, 0xb2,
+ 0x90, 0x76, 0xbe, 0x36, 0xc1, 0x08, 0x56, 0x5a, 0xf4, 0x40, 0x38, 0xf8, 0x4c, 0x99, 0x0f, 0xec,
+ 0xb8, 0xae, 0x1f, 0x39, 0x5b, 0xcb, 0x04, 0x4b, 0x01, 0x97, 0x34, 0x4e, 0xd8, 0x52, 0x2c, 0x9f,
+ 0x18, 0x48, 0xde, 0x05, 0x76, 0x41, 0x8f, 0x0f, 0x53, 0x4d, 0x04, 0xd3, 0xcd, 0xf8, 0xa0, 0x90,
+ 0x76, 0x81, 0xbc, 0x82, 0x02, 0x38, 0x61, 0x45, 0x89, 0x03, 0xa8, 0xad, 0x27, 0x49, 0x2d, 0xc1,
+ 0xc4, 0x19, 0x1a, 0xc8, 0x9e, 0xb3, 0x90, 0x9b, 0x24, 0xd1, 0x9f, 0x2f, 0xda, 0x59, 0x79, 0x32,
+ 0x0d, 0x23, 0xf7, 0xdb, 0x11, 0x1f, 0x5f, 0xae, 0x67, 0xf8, 0x5d, 0x96, 0x09, 0xc8, 0x5c, 0x46,
+ 0x84, 0x1a, 0x0f, 0xd0, 0x8c, 0x88, 0x7f, 0xb3, 0x6f, 0xca, 0x3e, 0xa3, 0x06, 0x1d, 0xff, 0x34,
+ 0xc2, 0x0b, 0xcc, 0x58, 0x62, 0x32, 0xc3, 0xe8, 0x40, 0x53, 0x9e, 0x6b, 0x78, 0x67, 0x51, 0x16,
+ 0x34, 0x8c, 0x5a, 0xea, 0x44, 0x7c, 0xbf, 0xfd, 0x5f, 0x66, 0xb7, 0x1d, 0x24, 0xa6, 0xb3, 0xdb,
+ 0x31, 0x97, 0xe7, 0x32, 0xc6, 0x5c, 0x24, 0x56, 0x09, 0xa5, 0x57, 0x7b, 0xd7, 0x87, 0x8f, 0xed,
+ 0x24, 0xfc, 0xce, 0xec, 0xa1, 0x02, 0xf4, 0xf7, 0x3d, 0x10, 0x0e, 0x3e, 0x13, 0xb7, 0x73, 0x3b,
+ 0xc3, 0x0c, 0x54, 0x60, 0x48, 0xec, 0x3a, 0xa0, 0xef, 0x6c, 0xc1, 0x75, 0xf6, 0xd3, 0x5d, 0x18,
+ 0xc7, 0x10, 0x71, 0x80, 0xe0, 0x12, 0x58, 0x43, 0x16, 0x90, 0x7e, 0x0d, 0x8b, 0x46, 0x6d, 0x20,
+ 0x4a, 0x35, 0xac, 0x6b, 0xd5, 0x7b, 0x1a, 0xbd, 0xe7, 0x5e, 0xa2, 0x40, 0xf9, 0x06, 0xfe, 0x6a,
+ 0x07, 0x15, 0x4e, 0xa8, 0xd6, 0x5f, 0xaa, 0x3b, 0xcb, 0xbd, 0x5e, 0x5a, 0x2c, 0x8a, 0x24, 0x2a,
+ 0x0c, 0x24, 0x6f, 0xe3, 0x3b, 0xc1, 0xa6, 0xe6, 0xc8, 0xc7, 0x02, 0x88, 0x87, 0x7c, 0x50, 0x48,
+ 0x48, 0x3b, 0x5f, 0x1b, 0x81, 0x04, 0x2b, 0x2d, 0x7a, 0x20, 0x1c, 0x7c, 0x26, 0xad, 0xe6, 0x76,
+ 0x80, 0x06, 0x2a, 0x30, 0x24, 0x76, 0x1d, 0x50, 0x96, 0x36, 0x81, 0xdb, 0x7b, 0x88, 0xcf, 0x0c,
+ 0xd7, 0x60, 0xe5, 0x86, 0x05, 0x6c, 0x13, 0x49, 0x74, 0xe6, 0xc7, 0x2e, 0xbc, 0x57, 0xad, 0xc0,
+ 0x69, 0xdc, 0x2c, 0x2f, 0xa2, 0x26, 0x44, 0x71, 0x11, 0xf3, 0xf2, 0x24, 0xc6, 0x3b, 0xa9, 0x7b,
+ 0xee, 0xcf, 0x48, 0xb7, 0x50, 0x0f, 0xf3, 0x1a, 0x4c, 0x78, 0x2d, 0xa5, 0x91, 0x39, 0x42, 0x5d,
+ 0xd8, 0x4d, 0xe1, 0x2d, 0x40, 0x0c, 0x7d, 0x77, 0x8e, 0x60, 0x24, 0x84, 0x6a, 0x34, 0xe9, 0x9a,
+ 0x1b, 0x41, 0xb5, 0x4d, 0x08, 0xe0, 0x47, 0xd7, 0x61, 0x0c, 0xe5, 0xf1, 0x9c, 0xe7, 0xb4, 0x82,
+ 0x77, 0x86, 0x24, 0xba, 0x28, 0xe6, 0x98, 0x0d, 0x26, 0x3c, 0xf7, 0xb3, 0xa9, 0xfd, 0x21, 0xcf,
+ 0x91, 0x71, 0x26, 0x0e, 0xeb, 0xd6, 0xaf, 0x12, 0x5b, 0x7f, 0x67, 0xe6, 0xc2, 0x2d, 0x03, 0xe2,
+ 0x73, 0x9a, 0x01, 0x5a, 0x80, 0x18, 0xfa, 0xee, 0xdf, 0xc0, 0x48, 0xcb, 0xd4, 0x68, 0x11, 0xf7,
+ 0xe8, 0xdd, 0x9e, 0x27, 0xac, 0x8e, 0xa0, 0x69, 0x28, 0xfa, 0x2c, 0xe1, 0x33, 0x07, 0x6a, 0x79,
+ 0xa1, 0xe1, 0x59, 0x04, 0x07, 0x54, 0x72, 0x0c, 0xfd, 0xe5, 0x6f, 0x83, 0x9b, 0x1e, 0x80, 0x01,
+ 0x53, 0x7a, 0xea, 0x56, 0x89, 0xe4, 0x6c, 0xfa, 0x1b, 0x2c, 0xf9, 0x8d, 0xba, 0x4a, 0x52, 0xf4,
+ 0xc9, 0x3a, 0xed, 0x13, 0x8f, 0xac, 0xcf, 0x35, 0x43, 0x29, 0xc2, 0xb9, 0xd3, 0x91, 0x25, 0x74,
+ 0x8d, 0x25, 0xdd, 0xeb, 0x35, 0x69, 0x42, 0xfe, 0xf1, 0xce, 0xdc, 0x4d, 0x72, 0x40, 0x93, 0x4a,
+ 0xe7, 0xf0, 0x9a, 0x8c, 0xe9, 0xee, 0xce, 0x57, 0xd2, 0x7c, 0xcf, 0x4b, 0xe5, 0x64, 0x2e, 0x23,
+ 0x7f, 0xbe, 0x6e, 0xb9, 0xbb, 0xd9, 0x5c, 0x08, 0x17, 0x07, 0x4a, 0x43, 0x53, 0x14, 0x41, 0xbf,
+ 0x86, 0x14, 0xfc, 0xa0, 0xd8, 0xf7, 0x4e, 0x23, 0xf2, 0xb4, 0x80, 0x9f, 0xd9, 0xb6, 0xe7, 0x28,
+ 0x70, 0x93, 0x6a, 0x12, 0xfe, 0xb9, 0x32, 0x36, 0xed, 0x81, 0xa9, 0xe9, 0x85, 0x77, 0x05, 0xe5,
+ 0x4e, 0x29, 0x89, 0x8b, 0x7d, 0x85, 0x78, 0x5e, 0x1e, 0xa2, 0x1d, 0x38, 0x84, 0x93, 0xce, 0x52,
+ 0x1f, 0x5d, 0x90, 0xad, 0xa0, 0x1e, 0x25, 0x34, 0x98, 0xf0, 0x5a, 0x89, 0xe1, 0x72, 0x84, 0xba,
+ 0x63, 0xea, 0x95, 0x5c, 0x65, 0x66, 0xb1, 0xe4, 0xbd, 0xb6, 0xf1, 0xe8, 0xe3, 0x79, 0xd1, 0x17,
+ 0xe6, 0xf7, 0x02, 0xb4, 0xc3, 0x30, 0x37, 0x1f, 0x7d, 0x43, 0x90, 0x55, 0x6b, 0xd0, 0x22, 0x2d,
+ 0xa7, 0xf3, 0x8f, 0x94, 0xfb, 0xd5, 0x21, 0x7f, 0x99, 0x67, 0x6e, 0xc7, 0x39, 0x20, 0xa8, 0x25,
+ 0x35, 0x8b, 0xc2, 0xd2, 0x6e, 0xa2, 0x46, 0xb5, 0xf0, 0x59, 0xe8, 0x03, 0xaa, 0x12, 0xbf, 0xd5,
+ 0x20, 0xe0, 0xeb, 0x0c, 0x09, 0xfc, 0x96, 0x14, 0xc4, 0xec, 0xb1, 0x46, 0x6e, 0x22, 0x43, 0x03,
+ 0x0f, 0x2d, 0x04, 0xab, 0x45, 0x60, 0x6e, 0x3e, 0xfa, 0x86, 0xe3, 0xaa, 0xd6, 0x63, 0x44, 0x5a,
+ 0x16, 0x62, 0x42, 0x96, 0x19, 0xff, 0x18, 0x79, 0x06, 0xf4, 0xb8, 0x67, 0x95, 0x2f, 0xe8, 0xc4,
+ 0xf3, 0x9c, 0x2b, 0x6a, 0xa4, 0x6e, 0xe7, 0xbe, 0x49, 0xf6, 0xc9, 0x10, 0xaf, 0xe0, 0xde, 0xfb,
+ 0xaf, 0xcb, 0xc5, 0x97, 0x68, 0xea, 0xe5, 0x7a, 0xa8, 0x5c, 0xd3, 0x37, 0xc3, 0xc9, 0xc8, 0x55,
+ 0x22, 0xee, 0x18, 0x7c, 0x5d, 0x83, 0xa7, 0x84, 0x59, 0x92, 0x0f, 0x7a, 0xb1, 0x89, 0x5b, 0x1f,
+ 0xb9, 0xa9, 0x87, 0x01, 0x71, 0x15, 0xfd, 0x03, 0xae, 0xa8, 0x6b, 0x50, 0x56, 0xe6, 0x20, 0x91,
+ 0x1e, 0x5a, 0x08, 0x95, 0x8a, 0xc0, 0xdc, 0x7c, 0x37, 0xcf, 0x05, 0x97, 0x6f, 0xc6, 0x88, 0xb4,
+ 0x25, 0xfb, 0x56, 0xd4, 0x8b, 0xdc, 0x0d, 0xbf, 0x92, 0x2f, 0x51, 0x20, 0x9d, 0x03, 0x7f, 0x35,
+ 0xba, 0xa0, 0xec, 0x49, 0x0f, 0xb4, 0x35, 0xdb, 0x9c, 0xe9, 0x8a, 0x72, 0x07, 0xf9, 0x34, 0x83,
+ 0xbd, 0xb5, 0xa2, 0xe1, 0xd9, 0xeb, 0x9f, 0xe0, 0x57, 0x54, 0xd4, 0x28, 0x2b, 0x73, 0x10, 0xa9,
+ 0x8e, 0x2c, 0xb6, 0xa3, 0x4b, 0xc8, 0x8a, 0x26, 0xc3, 0x8f, 0x3d, 0x6f, 0x23, 0x5f, 0x87, 0x58,
+ 0x5c, 0x57, 0xee, 0xfd, 0xcc, 0x84, 0x02, 0xc4, 0xe1, 0xaa, 0x1a, 0x27, 0x6c, 0x29, 0x16, 0xae,
+ 0x41, 0x04, 0x8d, 0x20, 0x38, 0xe5, 0x16, 0x60, 0xe4, 0x24, 0xfe, 0x92, 0x52, 0xf0, 0x8a, 0x08,
+ 0x6f, 0xce, 0xfa, 0xbf, 0x5e, 0xa7, 0x17, 0x02, 0x75, 0x71, 0xf3, 0x60, 0x64, 0x05, 0x81, 0x5f,
+ 0x42, 0x0d, 0xe6, 0x68, 0x46, 0x44, 0xde, 0xb8, 0xd6, 0x65, 0x1f, 0xb0, 0x03, 0xef, 0x9e, 0x1a,
+ 0x46, 0x11, 0xc3, 0x88, 0xee, 0xba, 0xbc, 0x5b, 0x2f, 0x99, 0xa0, 0xc8, 0x7e, 0x7a, 0xae, 0x22,
+ 0x2b, 0xd1, 0xca, 0x47, 0xe4, 0x62, 0x9a, 0xc9, 0xc7, 0x96, 0xed, 0x94, 0xc5, 0xd4, 0x37, 0x61,
+ 0xdc, 0x51, 0xc4, 0xcd, 0xe8, 0xf2, 0x1f, 0x94, 0x77, 0x9c, 0x9b, 0xfc, 0x17, 0xa1, 0xd9, 0xa2,
+ 0xdf, 0x58, 0xaf, 0x85, 0x96, 0x53, 0xd7, 0x4c, 0x45, 0xdd, 0x7a, 0xde, 0x46, 0xbe, 0xcd, 0xb0,
+ 0x43, 0x0a, 0x7e, 0x50, 0x6c, 0x9a, 0x27, 0xf0, 0x79, 0x5a, 0x40, 0xae, 0x8d, 0x5b, 0x92, 0x14,
+ 0xe3, 0xec, 0xbf, 0x6c, 0x41, 0x10, 0xac, 0xb4, 0x2b, 0x80, 0x70, 0x33, 0x98, 0xf1, 0x1e, 0x1b,
+ 0x29, 0xdf, 0x39, 0x37, 0xb0, 0x1d, 0xab, 0x59, 0x5a, 0xe8, 0x53, 0xa8, 0x1a, 0x7f, 0x2f, 0x7d,
+ 0xb4, 0x8a, 0x70, 0xda, 0x60, 0x0a, 0xa2, 0xad, 0xc9, 0x50, 0x36, 0xc6, 0x5f, 0x2e, 0x7c, 0xd7,
+ 0xcb, 0x34, 0x1e, 0x63, 0xdb, 0xd3, 0xfe, 0xa5, 0xde, 0x57, 0x7c, 0x85, 0x0c, 0x3a, 0x3d, 0x68,
+ 0x32, 0x9e, 0x8c, 0x7a, 0xb8, 0xfd, 0xec, 0x8e, 0x3b, 0xe4, 0xb6, 0x59, 0x86, 0x98, 0x9b, 0xff,
+ 0xda, 0x43, 0x12, 0x5d, 0x14, 0x73, 0x4c, 0xe7, 0x13, 0x1e, 0x9a, 0xb8, 0xb5, 0x9f, 0xf1, 0x86,
+ 0xea, 0xd3, 0x6d, 0x57, 0xf8, 0xf1, 0x91, 0xf9, 0xb5, 0x84, 0x92, 0xdd, 0xec, 0xac, 0x72, 0x65,
+ 0xbe, 0xbc, 0xc9, 0xa9, 0xa7, 0x4a, 0x57, 0x38, 0x65, 0x15, 0x35, 0x0a, 0x7a, 0x6c, 0x04, 0xbb,
+ 0x03, 0x09, 0x6b, 0x48, 0x7e, 0xa1, 0xc8, 0xd8, 0x32, 0x41, 0xe1, 0x22, 0x51, 0x1f, 0x14, 0x12,
+ 0xa5, 0xfd, 0x7c, 0xe4, 0xaf, 0xaa, 0x10, 0xef, 0x04, 0x19, 0xd0, 0xfb, 0xe6, 0x8b, 0xb0, 0x39,
+ 0xa4, 0xfa, 0xe4, 0xdc, 0x85, 0x74, 0xe9, 0xa7, 0xab, 0x26, 0x8f, 0xe5, 0x68, 0x3f, 0xbc, 0x37,
+ 0xab, 0xd7, 0xe0, 0x77, 0xc0, 0x14, 0x87, 0x99, 0x51, 0xa0, 0x6c, 0x4f, 0xbe, 0x5c, 0xf8, 0x6d,
+ 0x64, 0xff, 0xdb, 0xf4, 0xb3, 0x39, 0x1b, 0xdf, 0x76, 0x0b, 0xaf, 0xb2, 0xcf, 0xf3, 0xf5, 0x3d,
+ 0xad, 0xc5, 0x36, 0xe7, 0x3c, 0x95, 0xd4, 0xea, 0x35, 0x22, 0x6d, 0x0b, 0x1c, 0x62, 0xd0, 0x49,
+ 0x4f, 0x2e, 0x11, 0xb3, 0x57, 0x5b, 0x81, 0x16, 0xb1, 0x9d, 0x42, 0x26, 0x0a, 0x27, 0xc2, 0x5c,
+ 0x85, 0x1d, 0x97, 0xe8, 0xa6, 0x56, 0x86, 0xfb, 0xc0, 0xf5, 0x61, 0xbd, 0x88, 0xa9, 0xf3, 0x3a,
+ 0xa0, 0xe6, 0xc1, 0x3c, 0x2d, 0x8a, 0x8b, 0x44, 0x52, 0xda, 0x30, 0x9d, 0x15, 0xaa, 0x8c, 0x0f,
+ 0x13, 0x79, 0xff, 0x4e, 0x9b, 0xdf, 0x83, 0xd2, 0x50, 0x37, 0x58, 0x01, 0x66, 0x0e, 0xd4, 0xf2,
+ 0xd4, 0x69, 0x8e, 0xce, 0x7b, 0xcd, 0xdb, 0x91, 0x46, 0xa7, 0x26, 0x0c, 0xed, 0x48, 0xb9, 0xd2,
+ 0xfb, 0xa4, 0x61, 0x69, 0x37, 0x51, 0x23, 0xbb, 0x78, 0xcd, 0x74, 0xe0, 0x55, 0x09, 0xbe, 0x8b,
+ 0xae, 0xcc, 0x5d, 0xaf, 0x42, 0x34, 0x1c, 0x32, 0x07, 0x63, 0x8c, 0x29, 0x4d, 0x7d, 0xc4, 0x5b,
+ 0x94, 0x6a, 0x9b, 0xd6, 0x69, 0xf6, 0x34, 0xb9, 0x0d, 0xbc, 0x87, 0x80, 0x31, 0x0c, 0x3f, 0xd4,
+ 0xde, 0x5f, 0x37, 0xbd, 0xbc, 0x8d, 0x2e, 0x04, 0xea, 0xe2, 0x25, 0xc0, 0xc8, 0x0a, 0xc1, 0xbe,
+ 0xbb, 0xa7, 0x74, 0x71, 0x25, 0x6a, 0xcc, 0x93, 0x33, 0xd6, 0xd5, 0x6c, 0x89, 0x4d, 0x38, 0x8d,
+ 0xce, 0x2f, 0xa3, 0xbb, 0x59, 0xf3, 0x65, 0x0e, 0x88, 0x94, 0x9c, 0xe3, 0xff, 0x1b, 0x01, 0x5e,
+ 0xa2, 0xe8, 0x32, 0x4c, 0x79, 0xf5, 0xba, 0xd4, 0xcf, 0xa4, 0x8e, 0xa1, 0xca, 0x01, 0x94, 0x13,
+ 0xf1, 0x92, 0xd8, 0x1a, 0xf0, 0x11, 0xd6, 0x2e, 0xd4, 0x88, 0x77, 0x2c, 0x70, 0x4b, 0xc6, 0xe7,
+ 0x3d, 0xb3, 0x88, 0xd1, 0xfd, 0x9d, 0x82, 0xb0, 0xc1, 0x62, 0x55, 0xf3, 0x50, 0xfb, 0xdf, 0xa5,
+ 0xb6, 0x84, 0x83, 0xaa, 0x34, 0x75, 0x93, 0x3d, 0x54, 0x2e, 0x88, 0xfa, 0x80, 0x85, 0x64, 0xcb,
+ 0x61, 0xe4, 0x66, 0x2c, 0x31, 0x19, 0x80, 0x74, 0x20, 0xc8, 0x4f, 0xd4, 0x3c, 0xd2, 0xc9, 0x0b,
+ 0x36, 0x82, 0xa9, 0x9a, 0x10, 0x03, 0x8e, 0x6d, 0xc2, 0x18, 0x09, 0x21, 0xfb, 0x0d, 0xab, 0xc7,
+ 0xec, 0xc1, 0xbb, 0xc7, 0x04, 0x70, 0xc2, 0x8a, 0xd1, 0x06, 0x93, 0x99, 0x4e, 0x92, 0x5a, 0x41,
+ 0xc8, 0x3d, 0x75, 0x2b, 0xa5, 0x72, 0x36, 0x7d, 0xec, 0x16, 0x9d, 0xa7, 0x5d, 0x25, 0x29, 0x7a,
+ 0x52, 0x7d, 0x72, 0x6e, 0xa3, 0x3a, 0x95, 0xb2, 0xb4, 0x13, 0xa6, 0x93, 0x34, 0xfe, 0x5e, 0xfa,
+ 0xb2, 0x98, 0xa6, 0x4a, 0x9c, 0x8b, 0xf1, 0xde, 0xad, 0xd2, 0x37, 0x82, 0xfd, 0x10, 0x54, 0xf3,
+ 0xd0, 0x75, 0xab, 0x2e, 0xd3, 0x33, 0xb9, 0x72, 0xbf, 0x5b, 0x99, 0x74, 0x90, 0xdd, 0x89, 0xea,
+ 0x72, 0x9d, 0x99, 0x62, 0xaa, 0xc6, 0x03, 0xa6, 0x70, 0xff, 0x17, 0xd5, 0x5a, 0xdc, 0x1d, 0xf9,
+ 0xeb, 0xd4, 0xf5, 0x6f, 0xd2, 0x2f, 0x68, 0xb1, 0x1a, 0xbb, 0xcd, 0xc3, 0x62, 0x18, 0x7e, 0x6b,
+ 0x96, 0x64, 0x68, 0xa6, 0x3d, 0x89, 0x05, 0x29, 0x90, 0xc2, 0x39, 0xbc, 0xee, 0xa7, 0x27, 0xc8,
+ 0x0e, 0x2a, 0x9c, 0x93, 0x6f, 0xbe, 0x97, 0x76, 0x55, 0xb9, 0xbc, 0xb4, 0x58, 0xd7, 0x48, 0x54,
+ 0xe2, 0xeb, 0x27, 0x54, 0x6b, 0xce, 0x55, 0xfc, 0x84, 0xbf, 0x2f, 0x2d, 0x16, 0x45, 0x12, 0x15,
+ 0x56, 0x61, 0x57, 0x8e, 0x0b, 0xc4, 0xf7, 0x51, 0x4d, 0xef, 0x19, 0xeb, 0x49, 0x6b, 0x6e, 0xc2,
+ 0x4c, 0x27, 0x7a, 0xfb, 0x29, 0xfa, 0x49, 0xce, 0x83, 0xdc, 0xa3, 0x04, 0x5b, 0x38, 0xd6, 0x4e,
+ 0x40, 0x03, 0x15, 0x18, 0x12, 0x3b, 0xef, 0x28, 0x4b, 0x1b, 0xa1, 0x8c, 0xdc, 0x44, 0x86, 0x06,
+ 0x37, 0x85, 0x31, 0xa2, 0x3a, 0xdd, 0x77, 0x25, 0x6d, 0x27, 0x56, 0x3f, 0x75, 0xb9, 0xa7, 0xc9,
+ 0x92, 0x78, 0x4d, 0x46, 0x95, 0x77, 0x67, 0xca, 0x69, 0x3e, 0x86, 0xc4, 0x93, 0x32, 0x17, 0xf0,
+ 0x44, 0x1f, 0x30, 0xf8, 0xba, 0xc5, 0x8d, 0xcb, 0xb2, 0xe7, 0x1e, 0xf4, 0xa1, 0xd1, 0xb6, 0x3e,
+ 0x8f, 0x2b, 0x2e, 0x9b, 0x61, 0x16, 0x73, 0x6e, 0x6c, 0xb0, 0x62, 0x71, 0xad, 0xeb, 0x8b, 0x56,
+ 0x59, 0x4c, 0x53, 0x25, 0x4e, 0xa4, 0x99, 0x6f, 0xb7, 0x69, 0xfa, 0x41, 0x9f, 0x08, 0x2a, 0x98,
+ 0xdb, 0x44, 0x8a, 0x65, 0x3e, 0xad, 0xb5, 0xaf, 0xbc, 0x21, 0xc5, 0xa6, 0x3b, 0x2b, 0xfd, 0x88,
+ 0x6d, 0xc0, 0x09, 0xcf, 0x0a, 0xd8, 0x26, 0x92, 0xe8, 0x0f, 0x4d, 0x5c, 0xbb, 0xae, 0x99, 0x43,
+ 0x8c, 0x22, 0x45, 0xd3, 0x1f, 0xb7, 0xbb, 0xb6, 0x5e, 0xf1, 0x83, 0x53, 0xfc, 0xf4, 0x9f, 0x44,
+ 0xd3, 0x7c, 0xc0, 0x66, 0xad, 0x92, 0x71, 0xaa, 0x8d, 0x1a, 0x78, 0x56, 0xc1, 0xc2, 0x9d, 0xf8,
+ 0x88, 0x3e, 0x60, 0x33, 0xb7, 0x49, 0xd9, 0x55, 0xa7, 0x0d, 0x3c, 0x2b, 0x81, 0x61, 0xaf, 0x7c,
+ 0x47, 0x16, 0x5b, 0xb0, 0xc4, 0x64, 0x45, 0x13, 0x80, 0xa6, 0xff, 0xd6, 0xf0, 0xce, 0xa2, 0x2c,
+ 0xe5, 0xfe, 0x69, 0xfc, 0xbd, 0x91, 0xff, 0xc7, 0x4f, 0x02, 0x71, 0x77, 0x3a, 0xcf, 0x36, 0x3f,
+ 0x2f, 0xcd, 0xef, 0xa7, 0x4c, 0x9c, 0xf8, 0x2a, 0x3e, 0x6a, 0x52, 0xec, 0xb8, 0x41, 0x07, 0x59,
+ 0x12, 0x7e, 0x67, 0x76, 0xb1, 0x01, 0x7a, 0x9a, 0xff, 0x08, 0x07, 0x1f, 0xe8, 0xba, 0xd8, 0xfc,
+ 0x8b, 0x37, 0x0b, 0x7b, 0xc9, 0xe8, 0x11, 0x8d, 0x95, 0x4c, 0xdd, 0x09, 0xd0, 0x7e, 0xbb, 0x6e,
+ 0x11, 0x77, 0x0c, 0x3e, 0xcf, 0xa0, 0xb2, 0x42, 0xcd, 0x49, 0xe6, 0x3d, 0xb9, 0xa5, 0xcc, 0xee,
+ 0x54, 0x6f, 0xa4, 0xfe, 0x5f, 0xbb, 0xc6, 0xc1, 0xd0, 0x91, 0xa7, 0xd7, 0x96, 0xc0, 0x76, 0xde,
+ 0xa8, 0xde, 0x8b, 0x3f, 0xbe, 0xb5, 0x4f, 0x41, 0x63, 0xe1, 0x8d, 0x6d, 0xef, 0x43, 0xec, 0x7f,
+ 0x87, 0x13, 0x64, 0x98, 0xf2, 0x29, 0xb7, 0x6b, 0x5d, 0x8b, 0xdf, 0x81, 0x57, 0x02, 0xeb, 0x26,
+ 0x2d, 0xc3, 0x1c, 0xd7, 0x18, 0xe3, 0xc9, 0xba, 0xa3, 0x14, 0xec, 0xd0, 0x67, 0xea, 0x1f, 0x45,
+ 0x5d, 0x50, 0x76, 0xc5, 0xe6, 0x5a, 0xfb, 0x8c, 0x4e, 0x95, 0x45, 0x39, 0xe2, 0x9d, 0x1a, 0xa0,
+ 0x9d, 0x55, 0x49, 0xed, 0xd0, 0x17, 0x09, 0xf4, 0x93, 0xb8, 0x65, 0x6e, 0x45, 0x51, 0x53, 0xaa,
+ 0x39, 0xaf, 0xad, 0x31, 0x55, 0x63, 0xe0, 0x53, 0x38, 0x9e, 0xea, 0x8b, 0x2d, 0x6e, 0xef, 0x9d,
+ 0x5f, 0x5e, 0x85, 0xb5, 0xb2, 0x25, 0xca, 0x1c, 0xd3, 0xeb, 0xfb, 0x05, 0x3d, 0x36, 0x02, 0xbc,
+ 0x26, 0xf2, 0x3d, 0x9c, 0xf5, 0x7d, 0xc5, 0x67, 0xa0, 0x6e, 0xb0, 0x02, 0xcc, 0x1c, 0x6b, 0x27,
+ 0x05, 0x1b, 0xbd, 0xd8, 0x82, 0x20, 0x9b, 0xab, 0x56, 0xc3, 0xe0, 0x66, 0xf3, 0x21, 0x3c, 0x36,
+ 0xd5, 0x6e, 0x16, 0xf6, 0x51, 0x13, 0x22, 0xd9, 0xe9, 0x98, 0x79, 0x12, 0x63, 0xfc, 0xb5, 0xdc,
+ 0xfc, 0xb1, 0x2f, 0xc1, 0xe1, 0x0e, 0x89, 0x80, 0xb3, 0x70, 0x2a, 0xba, 0x79, 0x83, 0x9a, 0xa1,
+ 0x19, 0x4f, 0x46, 0x3d, 0x5c, 0x9f, 0x76, 0x47, 0xfc, 0x72, 0x5b, 0xcd, 0x43, 0x4c, 0xac, 0x9e,
+ 0x09, 0x3f, 0xd2, 0x3b, 0xb9, 0xe1, 0x3d, 0x4d, 0x9e, 0x04, 0xe2, 0xee, 0x74, 0x5d, 0x6c, 0x7e,
+ 0xb3, 0x9f, 0x3e, 0x72, 0xb6, 0x55, 0x08, 0x96, 0x02, 0xed, 0x68, 0x9c, 0x73, 0xa4, 0x58, 0xfd,
+ 0xfa, 0xa3, 0xf9, 0x51, 0x1d, 0x8f, 0xda, 0xf3, 0xd7, 0xf2, 0x2b, 0xfe, 0xdb, 0xbd, 0xb2, 0x85,
+ 0xef, 0xc8, 0xd0, 0x8f, 0x7a, 0xd1, 0x0a, 0x52, 0xe3, 0x47, 0x72, 0xbb, 0x1f, 0x8d, 0x4e, 0x53,
+ 0x0a, 0x36, 0xb9, 0x73, 0xc7, 0x40, 0xf5, 0x95, 0xac, 0x45, 0x03, 0xcc, 0x25, 0x42, 0x78, 0x6c,
+ 0x30, 0x90, 0x7f, 0x0a, 0xec, 0x82, 0xdd, 0x1e, 0xa6, 0x9a, 0x08, 0x65, 0x59, 0x33, 0x83, 0xe3,
+ 0xcd, 0x26, 0xc8, 0xf3, 0x27, 0x52, 0xad, 0xd6, 0xba, 0xd5, 0x7d, 0xc1, 0xae, 0x04, 0x15, 0x4c,
+ 0xd6, 0x67, 0x7d, 0xbe, 0x2f, 0xb2, 0xea, 0x01, 0xdb, 0xd9, 0x98, 0x30, 0x32, 0xe3, 0xa1, 0xce,
+ 0x6b, 0xd2, 0xdf, 0x5f, 0xf6, 0x59, 0x75, 0xe1, 0x8c, 0x8d, 0x4c, 0x18, 0x19, 0x90, 0xb1, 0x67,
+ 0x08, 0x38, 0x4a, 0x03, 0x93, 0x3f, 0xc4, 0x05, 0x31, 0x3b, 0xbd, 0xf0, 0xfa, 0xe9, 0x60, 0x70,
+ 0xb5, 0x8d, 0xe8, 0xe2, 0x4a, 0xd4, 0x5b, 0xe5, 0x66, 0x6f, 0x69, 0xd8, 0xd1, 0x9a, 0x70, 0xd9,
+ 0x6e, 0xc9, 0x62, 0x87, 0x74, 0x79, 0xee, 0x4a, 0xda, 0x4e, 0xac, 0x7e, 0xea, 0xb1, 0x8d, 0x51,
+ 0x65, 0xf8, 0x43, 0xcc, 0x99, 0xe7, 0xe2, 0x97, 0xd9, 0x34, 0xf0, 0xac, 0x41, 0x47, 0xf9, 0x33,
+ 0xf5, 0x8e, 0xfd, 0xfa, 0x58, 0xef, 0xb4, 0xcd, 0x2d, 0x74, 0xc8, 0x54, 0x0d, 0xde, 0xf6, 0xdf,
+ 0xaa, 0xd0, 0x78, 0x4f, 0xea, 0xca, 0x7e, 0xd1, 0xfe, 0x9f, 0x33, 0x51, 0x30, 0xe8, 0xf4, 0x63,
+ 0x74, 0x8f, 0x4f, 0xf2, 0x56, 0x47, 0x50, 0xd5, 0x14, 0x7d, 0x16, 0x91, 0xf8, 0xe2, 0x35, 0xdd,
+ 0x4b, 0x32, 0x34, 0x53, 0xff, 0xa5, 0xe3, 0xf5, 0x48, 0x61, 0xfd, 0x5e, 0x77, 0xb2, 0xf2, 0x64,
+ 0xff, 0xb8, 0x44, 0x89, 0x9f, 0xaf, 0x41, 0x58, 0x81, 0x31, 0xcb, 0x98, 0x28, 0x9c, 0x8e, 0xb3,
+ 0x81, 0x01, 0xb2, 0x08, 0x0e, 0xa8, 0xe4, 0x18, 0x39, 0x09, 0xde, 0xc5, 0xf5, 0x3c, 0xc3, 0x02,
+ 0xc1, 0x02, 0xa7, 0x10, 0x1c, 0x93, 0x0b, 0x30, 0x72, 0x12, 0x7f, 0x49, 0x29, 0x78, 0x45, 0x04,
+ 0xd1, 0x72, 0x33, 0x16, 0xf9, 0xed, 0x40, 0x3a, 0x10, 0x64, 0xc6, 0x6a, 0x1e, 0x69, 0x85, 0xe4,
+ 0x28, 0xd8, 0xa1, 0x0f, 0x9a, 0xc3, 0x52, 0x11, 0xf5, 0xd7, 0x0c, 0xb6, 0x94, 0xcb, 0x23, 0x73,
+ 0xb1, 0x91, 0xcd, 0x02, 0xe2, 0x2a, 0x39, 0x06, 0x9f, 0x93, 0xd6, 0xa0, 0xac, 0x0f, 0x40, 0xe1,
+ 0x9b, 0x47, 0x9f, 0x7d, 0x2c, 0x96, 0x5a, 0x87, 0xf7, 0x3a, 0x64, 0x2a, 0xe7, 0x6f, 0x7b, 0x8e,
+ 0xdd, 0x56, 0x5c, 0xf5, 0xc2, 0x2c, 0xe6, 0xdc, 0xd8, 0xa3, 0xc4, 0xe2, 0x99, 0x15, 0xd5, 0xac,
+ 0x23, 0xe9, 0x80, 0x44, 0x77, 0x5d, 0x5e, 0xcc, 0xf6, 0xad, 0x50, 0x64, 0x3f, 0x3d, 0x57, 0x11,
+ 0x3f, 0xbd, 0x7b, 0xa1, 0xa9, 0xe2, 0xb3, 0x20, 0x5c, 0x1c, 0xeb, 0xcf, 0x8f, 0x50, 0xc7, 0xb9,
+ 0x02, 0x0e, 0xf3, 0x70, 0x54, 0x7f, 0x31, 0x90, 0x9d, 0x7e, 0xbe, 0x3c, 0xdf, 0xab, 0x18, 0x1c,
+ 0x10, 0x70, 0x94, 0x06, 0xe5, 0x7e, 0x4b, 0x0a, 0x62, 0x76, 0xb9, 0x23, 0x37, 0x11, 0xc0, 0xe0,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x1a, 0x46, 0x2d, 0x75, 0x22, 0x3e, 0xbe, 0x9f, 0xce, 0x33, 0xba, 0xef, 0x12, 0x53, 0xb8, 0x8c,
+ 0x60, 0xe3, 0xfe, 0x14, 0x1b, 0xc7, 0x79, 0x3c, 0x8f, 0xf7, 0x10, 0xca, 0xb2, 0x66, 0xc5, 0x05,
+ 0x5a, 0x45, 0x38, 0x6d, 0x30, 0x05, 0x51, 0xb7, 0x85, 0x28, 0x1b, 0x63, 0xce, 0x17, 0x3e, 0x8a,
+ 0x3e, 0xba, 0xe3, 0x99, 0x83, 0x3c, 0x4a, 0x68, 0xf3, 0x23, 0xb4, 0xd1, 0x01, 0xe4, 0xcb, 0xb7,
+ 0x6a, 0xd5, 0x47, 0x67, 0xdc, 0x87, 0x8c, 0xa9, 0x23, 0xb2, 0x13, 0x06, 0x97, 0x24, 0xbd, 0x69,
+ 0x71, 0x94, 0xf2, 0x2a, 0xd4, 0x67, 0xcb, 0x7e, 0x42, 0xbe, 0xf6, 0xf7, 0x0b, 0xc3, 0x09, 0xeb,
+ 0x75, 0x88, 0xd7, 0xca, 0x7c, 0x99, 0xa9, 0x9d, 0xbb, 0x42, 0x49, 0x8f, 0x76, 0x56, 0x39, 0xd3,
+ 0xb7, 0x83, 0x1b, 0x92, 0x1e, 0xab, 0x6a, 0x75, 0xfb, 0x11, 0xd7, 0xe4, 0x0e, 0x31, 0x68, 0xc5,
+ 0x7a, 0xa5, 0xd3, 0x61, 0x39, 0xf9, 0xc7, 0xa3, 0x41, 0xc4, 0xaa, 0x25, 0xa0, 0x35, 0x7d, 0x89,
+ 0xd9, 0x4a, 0x79, 0x15, 0x6a, 0xd2, 0x84, 0x3f, 0x21, 0x5f, 0x7b, 0x9a, 0xe4, 0x80, 0xe5, 0x94,
+ 0x6c, 0xc7, 0x91, 0xf7, 0x20, 0x06, 0xdf, 0xda, 0x47, 0x30, 0x12, 0x42, 0x35, 0x1a, 0x95, 0x4d,
+ 0x93, 0x7f, 0xd5, 0x7e, 0xbf, 0xa9, 0x9e, 0x82, 0xc6, 0x01, 0xd9, 0xda, 0x1d, 0x86, 0x1b, 0xfe,
+ 0x45, 0x18, 0xa8, 0xc0, 0x90, 0x1b, 0x74, 0x83, 0x1d, 0xd8, 0x41, 0xea, 0x2f, 0x65, 0xba, 0x30,
+ 0x9a, 0x40, 0x07, 0x45, 0x06, 0x48, 0xa3, 0xcf, 0x58, 0x05, 0x3b, 0x34, 0x69, 0xdb, 0x77, 0x80,
+ 0x89, 0x39, 0xf8, 0x0b, 0x9d, 0x97, 0x20, 0x1d, 0x08, 0x32, 0x63, 0x35, 0x0f, 0xd5, 0xa3, 0x72,
+ 0x3a, 0xa6, 0xc6, 0x79, 0x2b, 0xc2, 0x28, 0x8b, 0x0a, 0xdf, 0x0b, 0xa9, 0x7c, 0x71, 0xfb, 0x8f,
+ 0x78, 0xab, 0x20, 0x11, 0x6d, 0x86, 0xf6, 0x33, 0xdc, 0xba, 0x14, 0x19, 0x7f, 0x9e, 0x65, 0x95,
+ 0x1d, 0x53, 0x63, 0xdd, 0xf4, 0x61, 0x14, 0xa4, 0x05, 0x8e, 0xe4, 0xb5, 0x3e, 0xd9, 0x9c, 0xa6,
+ 0x8a, 0x30, 0x93, 0x43, 0xe3, 0x36, 0xe8, 0xc5, 0x3a, 0x73, 0x82, 0x17, 0x5e, 0xca, 0xb7, 0x60,
+ 0x97, 0x63, 0xf0, 0x9e, 0x17, 0x57, 0xfc, 0x61, 0x3f, 0xfd, 0x66, 0xa2, 0x60, 0x13, 0x2b, 0xc6,
+ 0xf8, 0xad, 0x0a, 0x21, 0x49, 0xf0, 0xeb, 0x63, 0x4a, 0x8c, 0x95, 0xc2, 0x04, 0x16, 0xaa, 0x99,
+ 0xf9, 0xaa, 0x92, 0x19, 0x63, 0x2e, 0x12, 0x2b, 0xe5, 0xb3, 0xca, 0xdc, 0x8a, 0xa2, 0xa6, 0x97,
+ 0x58, 0x4b, 0xcb, 0x1d, 0x64, 0x7a, 0x60, 0x27, 0x18, 0x56, 0xa5, 0x5f, 0x11, 0xbc, 0x26, 0x96,
+ 0x2c, 0xc4, 0x84, 0xef, 0x32, 0x3d, 0x30, 0xf2, 0x0c, 0x2b, 0xb3, 0xce, 0xe9, 0x5e, 0x13, 0x4b,
+ 0x06, 0x12, 0xd6, 0x90, 0xfc, 0x81, 0x53, 0x73, 0x64, 0x82, 0x01, 0x44, 0xa2, 0x3e, 0x28, 0x24,
+ 0xbc, 0xb2, 0x3a, 0xd9, 0xf3, 0x35, 0x66, 0xa8, 0xf8, 0x6b, 0x8b, 0x36, 0xa5, 0xc7, 0x1c, 0xa7,
+ 0x9c, 0x52, 0xd1, 0xd5, 0xfa, 0xc9, 0xf0, 0xbc, 0x3c, 0x87, 0x3a, 0x70, 0xcb, 0xe5, 0x5f, 0xa4,
+ 0x55, 0x68, 0x3c, 0xc6, 0x75, 0x65, 0x3f, 0x89, 0x7f, 0xae, 0xf8, 0xc9, 0x18, 0x74, 0x7a, 0xd0,
+ 0x7c, 0xb7, 0x05, 0xf1, 0xc5, 0x78, 0x94, 0xd0, 0x25, 0x46, 0xab, 0x61, 0x02, 0x0b, 0x55, 0xad,
+ 0x2a, 0xd6, 0x52, 0x7f, 0xce, 0xbc, 0x63, 0x81, 0x68, 0xa9, 0xb2, 0x8a, 0x4b, 0x60, 0x3b, 0x6f,
+ 0x3b, 0xa1, 0x5e, 0x41, 0x01, 0x1c, 0xd1, 0xc3, 0xa5, 0xe0, 0x54, 0xb7, 0xf2, 0xc5, 0xf7, 0x81,
+ 0x9f, 0x5b, 0xba, 0x9d, 0x84, 0x68, 0x38, 0x64, 0x0e, 0xc6, 0xdb, 0x52, 0x9a, 0xfa, 0x4b, 0xb6,
+ 0xc6, 0x17, 0xe9, 0xb8, 0xca, 0xcc, 0xa1, 0x0b, 0xb9, 0xaf, 0x21, 0x13, 0x05, 0xf2, 0x61, 0x2e,
+ 0x1c, 0x54, 0xfb, 0xe5, 0xde, 0xbf, 0xed, 0xec, 0xaa, 0xb1, 0xbb, 0xab, 0xb0, 0x6d, 0x90, 0xa8,
+ 0xfe, 0xbf, 0xdc, 0xb1, 0xb5, 0x71, 0xb8, 0x10, 0x2e, 0x0e, 0x94, 0x86, 0xa6, 0x28, 0x82, 0xbd,
+ 0x62, 0xed, 0x0d, 0x64, 0x4f, 0xb8, 0x48, 0xac, 0x12, 0x89, 0xae, 0xf6, 0x6d, 0xcd, 0xdd, 0x19,
+ 0x7d, 0xb0, 0x9d, 0xc9, 0xef, 0xa6, 0x6d, 0x98, 0x8a, 0x79, 0xf4, 0x7f, 0x8c, 0xbf, 0x59, 0xa3,
+ 0x21, 0xe7, 0x73, 0x34, 0x23, 0x22, 0x6f, 0x5c, 0x6b, 0xd3, 0xee, 0x58, 0xe0, 0x96, 0x4f, 0x0d,
+ 0xc0, 0x05, 0x3f, 0x28, 0x36, 0x4d, 0xf2, 0x78, 0xdd, 0x2d, 0x20, 0x57, 0xa7, 0xcc, 0x49, 0x0a,
+ 0xf2, 0x9b, 0xb3, 0x52, 0x8e, 0xb0, 0x1e, 0xf6, 0xe6, 0xc9, 0x96, 0x0e, 0x21, 0x54, 0xd2, 0xf5,
+ 0xf7, 0x80, 0x0e, 0x8a, 0x0c, 0x90, 0x85, 0x5d, 0xb0, 0x0a, 0x76, 0x68, 0xd2, 0x75, 0xee, 0xc3,
+ 0x33, 0x99, 0x14, 0x42, 0x92, 0x23, 0x15, 0xc6, 0x94, 0xdb, 0xe9, 0x47, 0x08, 0x2c, 0x97, 0xf1,
+ 0x98, 0x4e, 0xf4, 0x35, 0x52, 0x37, 0x92, 0x5f, 0xc5, 0x7b, 0x85, 0x08, 0xb6, 0x70, 0x6f, 0x9c,
+ 0xa9, 0xd9, 0x13, 0x07, 0x94, 0x6b, 0xb6, 0x09, 0xcc, 0xde, 0xd2, 0x73, 0x61, 0xf7, 0xe0, 0x71,
+ 0x82, 0x08, 0xd9, 0x40, 0x70, 0x09, 0x2c, 0xc0, 0x0b, 0x48, 0x3f, 0xe7, 0xa4, 0x23, 0xd7, 0x10,
+ 0x4d, 0x20, 0xe2, 0xc3, 0x03, 0x24, 0xb0, 0x86, 0x2c, 0xe3, 0xfc, 0x1a, 0xd5, 0x8c, 0xda, 0x40,
+ 0xf4, 0x89, 0x65, 0xc2, 0x72, 0x31, 0x4d, 0x85, 0x82, 0x4b, 0x97, 0x4a, 0x83, 0x6a, 0xfa, 0xd1,
+ 0xf6, 0x87, 0x96, 0xb2, 0x26, 0x4e, 0x7c, 0x15, 0x1f, 0x35, 0x29, 0x76, 0x5c, 0xc1, 0xe2, 0xcd,
+ 0x14, 0x6c, 0xb1, 0xe6, 0x4d, 0x80, 0x29, 0xe9, 0x9b, 0x8a, 0x06, 0x5b, 0x4a, 0x84, 0xf0, 0xd8,
+ 0x7b, 0xa2, 0x4b, 0x59, 0x13, 0x27, 0x3e, 0xeb, 0xee, 0xfb, 0xf5, 0x3b, 0x2e, 0x81, 0x71, 0x87,
+ 0x79, 0xac, 0xb8, 0x29, 0x47, 0x58, 0x0f, 0x7b, 0x73, 0x85, 0x4b, 0x07, 0xf1, 0x2a, 0x69, 0x9b,
+ 0x17, 0x65, 0xda, 0xae, 0x33, 0x21, 0xe1, 0x31, 0xa9, 0xcb, 0xe7, 0x79, 0x1b, 0x9b, 0xe4, 0xca,
+ 0xf0, 0x95, 0x40, 0x22, 0xda, 0xcf, 0x2f, 0x66, 0x7b, 0xb7, 0x28, 0x32, 0xfe, 0xff, 0xca, 0xe9,
+ 0xbf, 0xbb, 0x51, 0x91, 0x8d, 0x94, 0xae, 0x70, 0xca, 0x2a, 0x6a, 0x14, 0xf4, 0xd8, 0x08, 0xb5,
+ 0xcf, 0x28, 0x3b, 0x83, 0x73, 0x2d, 0x9c, 0x46, 0x27, 0xab, 0xc3, 0xfd, 0x71, 0xaf, 0x0d, 0x50,
+ 0x01, 0x07, 0x98, 0x38, 0x2a, 0xde, 0xf9, 0x48, 0xaf, 0x3f, 0x5f, 0x1e, 0x8e, 0xb4, 0x0c, 0x0e,
+ 0xed, 0xc6, 0x23, 0xff, 0x2e, 0xae, 0x3b, 0xc2, 0x7e, 0x39, 0xcc, 0x87, 0xc0, 0x26, 0x56, 0x4f,
+ 0xcc, 0x21, 0x50, 0xcb, 0x0d, 0x8c, 0x54, 0x9e, 0x15, 0xea, 0x22, 0xdf, 0x20, 0xb0, 0x19, 0x42,
+ 0x15, 0x6b, 0x29, 0xde, 0x67, 0x5e, 0xd0, 0xa1, 0x34, 0xb5, 0x59, 0x45, 0xc4, 0x30, 0xfc, 0xd6,
+ 0x27, 0xf5, 0xa5, 0xa4, 0xdf, 0xa3, 0x3c, 0x2f, 0x0f, 0x51, 0xef, 0x1c, 0x42, 0xa8, 0x67, 0x29,
+ 0xa3, 0xef, 0xaa, 0x74, 0x53, 0x2b, 0x43, 0x9c, 0x60, 0x9b, 0xd1, 0xbf, 0x44, 0xb5, 0x98, 0x1d,
+ 0x0b, 0x31, 0x21, 0x4b, 0xed, 0x9e, 0x0c, 0xdd, 0x03, 0x7a, 0x5c, 0xd2, 0xab, 0xf6, 0x74, 0x62,
+ 0x38, 0xa8, 0x35, 0x09, 0x7f, 0xbd, 0x19, 0x1b, 0x97, 0xa1, 0xb5, 0x95, 0xa3, 0xda, 0xe3, 0x93,
+ 0x57, 0x66, 0xcf, 0xb6, 0x21, 0x1a, 0x0e, 0x19, 0xe2, 0xd0, 0x46, 0xf5, 0xc7, 0xdf, 0x62, 0xcc,
+ 0x67, 0xf6, 0xb0, 0xbc, 0xcd, 0x98, 0xd3, 0x07, 0x44, 0x4a, 0x4e, 0x90, 0x9e, 0xec, 0xe1, 0x2f,
+ 0x83, 0x0f, 0x41, 0x78, 0x5a, 0xd7, 0xd5, 0x88, 0xa4, 0x77, 0x60, 0xf9, 0x2a, 0x97, 0xdb, 0x1e,
+ 0x3c, 0xb4, 0x10, 0xe9, 0xd7, 0x43, 0x7b, 0xf8, 0x6e, 0x5d, 0x0a, 0xed, 0xde, 0x4f, 0xd3, 0xab,
+ 0xfd, 0xb6, 0xb7, 0xf9, 0xcb, 0xd0, 0x70, 0xc8, 0x1c, 0x4f, 0x75, 0xa4, 0xf7, 0x37, 0x96, 0xaf,
+ 0xac, 0xc2, 0xae, 0xdf, 0x16, 0x4b, 0x2d, 0xa2, 0x9a, 0x1d, 0x32, 0x15, 0x92, 0xd6, 0xdc, 0x47,
+ 0x95, 0x6d, 0x03, 0xee, 0x43, 0x28, 0xcd, 0xf1, 0xa2, 0x83, 0xd8, 0x9e, 0xbf, 0xb8, 0x33, 0xda,
+ 0x51, 0x74, 0x19, 0x26, 0xdd, 0x9b, 0x5d, 0x6a, 0x86, 0x52, 0x47, 0xb1, 0x65, 0xe1, 0x4a, 0xe8,
+ 0xd2, 0x7b, 0x58, 0x5e, 0x87, 0x4c, 0x88, 0xe2, 0x22, 0x25, 0x27, 0x48, 0x4f, 0x76, 0x91, 0xf6,
+ 0xe1, 0xe2, 0x4c, 0x1c, 0x15, 0x6f, 0x9d, 0x24, 0xb6, 0xfe, 0xce, 0x0f, 0x47, 0x5a, 0x06, 0x07,
+ 0xe4, 0xf9, 0xf1, 0xc4, 0x97, 0x4f, 0x06, 0x8f, 0xe0, 0x3d, 0x2e, 0x69, 0xb4, 0x7b, 0x3a, 0x31,
+ 0xa6, 0xf4, 0x17, 0xac, 0xd1, 0x0b, 0xd8, 0x37, 0x36, 0x58, 0x31, 0xd9, 0xb7, 0x94, 0xa4, 0x2b,
+ 0x2e, 0xca, 0x77, 0x9f, 0x66, 0x42, 0x01, 0x62, 0x91, 0x55, 0x0d, 0xf2, 0x36, 0xf5, 0x0b, 0x57,
+ 0x9e, 0x5c, 0x22, 0xa5, 0xae, 0xb6, 0xc1, 0x2c, 0xa1, 0xf9, 0x84, 0x4c, 0x14, 0x4e, 0x47, 0xb8,
+ 0xb0, 0x96, 0x55, 0x3a, 0xc8, 0xf4, 0xc0, 0x4e, 0x30, 0xac, 0x89, 0xbe, 0x22, 0xbb, 0x4c, 0xef,
+ 0x04, 0x1c, 0x25, 0xe0, 0xa8, 0xfe, 0x62, 0xe3, 0xf9, 0xfc, 0xbf, 0x78, 0x7d, 0x95, 0x30, 0x38,
+ 0xca, 0x33, 0x86, 0x5b, 0xf1, 0x0d, 0x07, 0xed, 0x71, 0x68, 0x23, 0x9b, 0x82, 0x8e, 0x31, 0x66,
+ 0xe0, 0xe5, 0xd4, 0x24, 0x3f, 0xb1, 0x64, 0x6c, 0x19, 0xc1, 0x91, 0x11, 0xc9, 0xee, 0x0a, 0x09,
+ 0x7e, 0xb9, 0xf6, 0x81, 0x91, 0x07, 0xa5, 0x40, 0xb8, 0x38, 0x15, 0x5d, 0xdd, 0xa0, 0x4d, 0xb1,
+ 0x66, 0xf1, 0x28, 0x84, 0xe7, 0x46, 0x2a, 0x4f, 0xeb, 0x75, 0x11, 0x8e, 0x10, 0x58, 0xed, 0x21,
+ 0x50, 0x73, 0x81, 0x1e, 0xf7, 0x45, 0xa4, 0x22, 0x29, 0x6d, 0x18, 0xaf, 0xeb, 0x55, 0x46, 0xe6,
+ 0x49, 0x3c, 0xc7, 0x23, 0xab, 0xda, 0xd2, 0x65, 0xd5, 0x1f, 0x43, 0x62, 0xa8, 0x19, 0xea, 0x78,
+ 0x5b, 0x42, 0xa0, 0x55, 0x1a, 0xdb, 0xa8, 0xff, 0x2a, 0x17, 0x44, 0x7d, 0x40, 0xa3, 0x32, 0x84,
+ 0x99, 0x49, 0x6c, 0x0d, 0x78, 0xe9, 0x6b, 0x17, 0x6a, 0x44, 0xda, 0x16, 0x38, 0xc4, 0x63, 0x92,
+ 0x68, 0xdb, 0xb4, 0x17, 0x88, 0xf8, 0xbd, 0x39, 0xbe, 0xcc, 0xad, 0x3a, 0x48, 0x8f, 0xa5, 0x75,
+ 0xe9, 0xda, 0x06, 0x1f, 0x86, 0x50, 0x59, 0x21, 0x87, 0xc5, 0x73, 0xff, 0xbd, 0xb3, 0x66, 0x77,
+ 0xc5, 0x1e, 0x82, 0xf0, 0xb4, 0x6d, 0x69, 0xd3, 0x8b, 0xee, 0xc0, 0x31, 0x54, 0xed, 0x75, 0x3c,
+ },
+ { /* 8 */
+ 0xd7, 0x48, 0x12, 0xa3, 0xbe, 0x29, 0x25, 0xd9, 0x10, 0xec, 0xae, 0xdf, 0x6a, 0x2d, 0x01, 0xfc,
+ 0x63, 0x44, 0x11, 0xde, 0x60, 0x0e, 0x82, 0x6c, 0x92, 0x7c, 0xf2, 0x2a, 0x20, 0xcb, 0xa0, 0xee,
+ 0x5e, 0x13, 0x74, 0x22, 0x3d, 0x0d, 0xaf, 0x72, 0xfa, 0x27, 0xc7, 0x23, 0xaa, 0xd2, 0x47, 0xdd,
+ 0xaa, 0x8c, 0x23, 0x54, 0x8a, 0x01, 0x1b, 0x0a, 0x99, 0x88, 0x13, 0x07, 0xc7, 0xb6, 0x5d, 0x11,
+ 0xea, 0x1f, 0x77, 0x5f, 0xe3, 0x2a, 0x08, 0xc7, 0x78, 0xb7, 0x9b, 0xd6, 0xe0, 0x34, 0xe6, 0xcf,
+ 0x2a, 0x69, 0x8b, 0x42, 0x58, 0x57, 0x3d, 0x53, 0x98, 0xf6, 0xc0, 0x66, 0x89, 0x71, 0xe8, 0x6e,
+ 0x29, 0x16, 0xe4, 0x73, 0x84, 0x86, 0x44, 0x75, 0x7a, 0x4b, 0xfe, 0x14, 0x7c, 0x79, 0x4f, 0x31,
+ 0x9c, 0x8e, 0xc2, 0xa0, 0xaf, 0xee, 0x75, 0x63, 0xa6, 0xb0, 0x09, 0xcf, 0x65, 0x26, 0x32, 0x16,
+ 0xe1, 0x4a, 0xf3, 0x57, 0x9b, 0xc6, 0x4b, 0xb0, 0x2f, 0xd4, 0xb4, 0x17, 0xc8, 0xbd, 0x6e, 0xfb,
+ 0xa4, 0x58, 0x16, 0x0f, 0x55, 0x5d, 0xd3, 0x17, 0x2b, 0xef, 0x7e, 0x50, 0x33, 0x27, 0xff, 0xc4,
+ 0xeb, 0x8b, 0x52, 0xf1, 0x16, 0x65, 0x9e, 0x64, 0x26, 0xdc, 0x30, 0xf8, 0xb3, 0x8d, 0x3a, 0xfa,
+ 0x68, 0x11, 0x95, 0xd6, 0x18, 0xe2, 0xc1, 0x1b, 0xc5, 0x1f, 0xdd, 0xeb, 0x08, 0x42, 0x28, 0xda,
+ 0x9d, 0x1a, 0xe7, 0x0e, 0x5a, 0xa1, 0xe3, 0xc0, 0xf8, 0xdb, 0xa2, 0xe1, 0x36, 0x9f, 0xee, 0x23,
+ 0xae, 0x99, 0xb7, 0xa9, 0xd8, 0xfe, 0x06, 0xc3, 0x22, 0xe7, 0xfa, 0xbf, 0x48, 0x17, 0xab, 0xc5,
+ 0x28, 0x82, 0xc1, 0xdd, 0x71, 0xc9, 0xd2, 0xd6, 0x24, 0x20, 0x55, 0x3a, 0x2f, 0xc0, 0x93, 0x04,
+ 0xb7, 0x73, 0x6c, 0x4c, 0x02, 0xf6, 0xde, 0x93, 0x60, 0x2d, 0x62, 0x87, 0xbf, 0xee, 0x06, 0x4d,
+ 0x55, 0x46, 0xf0, 0x2a, 0x45, 0xe1, 0xec, 0x05, 0xad, 0x44, 0xe8, 0xe2, 0x82, 0x5b, 0xcf, 0xe9,
+ 0xd0, 0x22, 0xe9, 0x6f, 0x30, 0x07, 0x41, 0x36, 0x49, 0x3e, 0x79, 0x15, 0x10, 0x84, 0x50, 0x77,
+ 0xaf, 0x0d, 0x92, 0x07, 0x2d, 0xb1, 0x90, 0x60, 0x7c, 0x8c, 0x51, 0x91, 0x1b, 0xae, 0x77, 0xf0,
+ 0x62, 0xd0, 0x34, 0x70, 0x95, 0x41, 0x14, 0xcf, 0xcc, 0x17, 0x59, 0x04, 0x73, 0x72, 0x7c, 0xdb,
+ 0xf7, 0xe0, 0x38, 0x47, 0x6b, 0xdd, 0xcd, 0x5e, 0x81, 0x12, 0xea, 0x56, 0x98, 0x6c, 0xbd, 0x93,
+ 0xef, 0x9e, 0xc6, 0x0c, 0x44, 0x9a, 0x83, 0xad, 0x9d, 0xb3, 0xd9, 0x40, 0x3c, 0x2c, 0xcc, 0x2e,
+ 0xb3, 0x66, 0xf8, 0xb1, 0x50, 0x09, 0xc3, 0x5a, 0xdb, 0x42, 0x8b, 0x3f, 0x30, 0x4f, 0xf0, 0x99,
+ 0x2e, 0x7c, 0x1f, 0xbf, 0x0a, 0xa8, 0x20, 0x9a, 0x23, 0x99, 0x29, 0xde, 0x06, 0xd0, 0x1e, 0xba,
+ 0x96, 0x4f, 0x63, 0x06, 0x22, 0x4d, 0xa0, 0xb7, 0xaf, 0xb8, 0x8d, 0x20, 0x1e, 0x16, 0x66, 0x17,
+ 0x1f, 0x14, 0x05, 0x87, 0xa1, 0x69, 0x2a, 0x1c, 0x45, 0x73, 0xe4, 0xdc, 0xde, 0xe9, 0x20, 0x36,
+ 0xa5, 0xcc, 0x33, 0xa1, 0xa0, 0x12, 0x45, 0xb4, 0x75, 0x84, 0xd5, 0x7e, 0x60, 0x9e, 0x23, 0xf1,
+ 0x24, 0xbd, 0xbe, 0x19, 0x87, 0x0b, 0xf5, 0x4e, 0x2a, 0x91, 0xad, 0x31, 0x7d, 0xe0, 0x4a, 0xbb,
+ 0x88, 0xcf, 0x43, 0x2f, 0x76, 0x6b, 0x1c, 0x08, 0xb4, 0xa0, 0xc2, 0xd2, 0x93, 0x46, 0x9a, 0x14,
+ 0xfe, 0x5e, 0xf6, 0xd0, 0x3a, 0xaf, 0x61, 0xac, 0x6a, 0xa7, 0x50, 0xcb, 0x16, 0x54, 0x4e, 0xcd,
+ 0x03, 0x7f, 0x6f, 0x31, 0xdc, 0xd1, 0x79, 0x26, 0xe2, 0xbd, 0x3e, 0x72, 0xf5, 0x08, 0xa7, 0x5f,
+ 0x86, 0x1b, 0x76, 0x74, 0xa9, 0x37, 0xd4, 0x15, 0x06, 0xc7, 0xaf, 0x85, 0x67, 0xd7, 0x38, 0xc1,
+ 0xf5, 0x0b, 0x72, 0xd8, 0x42, 0x43, 0x22, 0xdb, 0x3d, 0xc4, 0x7f, 0x0a, 0x3e, 0xdd, 0xc6, 0xf9,
+ 0xf0, 0x8a, 0xc3, 0x8b, 0xe5, 0xf3, 0xa9, 0xb1, 0xd8, 0xc0, 0x3d, 0x9c, 0xe2, 0xc5, 0xec, 0x18,
+ 0x64, 0x2e, 0xea, 0x12, 0xee, 0x20, 0xe6, 0x83, 0xcb, 0xae, 0x25, 0xe0, 0x5a, 0x62, 0xf1, 0x65,
+ 0x21, 0x3c, 0x0f, 0x4a, 0x20, 0xbb, 0x7e, 0x24, 0xcf, 0x95, 0xef, 0xa7, 0xa1, 0xf8, 0x60, 0x5a,
+ 0x1b, 0x01, 0x91, 0x7a, 0xf3, 0x96, 0x37, 0xd5, 0xfe, 0x1c, 0x0d, 0x64, 0x51, 0x48, 0xd6, 0xe2,
+ 0x1d, 0xff, 0x4f, 0x18, 0x88, 0xf7, 0xc5, 0x99, 0xf9, 0xa5, 0x71, 0x80, 0x78, 0x58, 0x5b, 0x5c,
+ 0x69, 0x85, 0xb0, 0x78, 0xed, 0xad, 0x57, 0xb8, 0x9b, 0x74, 0x76, 0xc5, 0x5b, 0xfb, 0xf4, 0xef,
+ 0x89, 0x5b, 0x66, 0x81, 0x83, 0x24, 0x8a, 0xab, 0xea, 0xcb, 0x69, 0xfc, 0xc0, 0xff, 0x46, 0x21,
+ 0x43, 0xec, 0x3b, 0x3a, 0xb5, 0xfa, 0x6a, 0xeb, 0x03, 0x82, 0xb6, 0xa3, 0xd2, 0x8a, 0x1c, 0x81,
+ 0xd8, 0x08, 0x02, 0x56, 0x94, 0x3a, 0x7b, 0x67, 0xfc, 0xe0, 0x68, 0xa6, 0xcd, 0x05, 0x7f, 0x1c,
+ 0x5b, 0x92, 0xc5, 0x71, 0x9a, 0xbd, 0x24, 0x18, 0x1f, 0x23, 0x85, 0xb5, 0x76, 0xca, 0x6d, 0x3c,
+ 0xd1, 0xb6, 0xcc, 0xc1, 0xc5, 0x48, 0xd7, 0x95, 0x17, 0x55, 0xd2, 0x3b, 0x43, 0x3d, 0x8c, 0x42,
+ 0x07, 0x6a, 0xfb, 0xcc, 0x8e, 0x2e, 0x64, 0xef, 0x59, 0xd2, 0xd7, 0xca, 0x7a, 0xa9, 0x51, 0x8b,
+ 0x0a, 0xc1, 0xa1, 0xa6, 0x8d, 0xa3, 0xd5, 0xd4, 0x09, 0x08, 0x84, 0xef, 0x7b, 0x30, 0x54, 0x01,
+ 0x25, 0x29, 0x9b, 0xb7, 0x72, 0x44, 0x63, 0xed, 0x74, 0xfa, 0x06, 0x1f, 0x2e, 0x59, 0x96, 0x8e,
+ 0xa3, 0x32, 0xed, 0xc3, 0xdb, 0x73, 0xb7, 0xf8, 0x72, 0x3d, 0xa9, 0x9a, 0x49, 0x8e, 0xae, 0x4f,
+ 0x22, 0x43, 0x60, 0x7b, 0xfc, 0x6a, 0x07, 0x02, 0x2d, 0x28, 0xd1, 0xd5, 0x54, 0xf0, 0xc7, 0x05,
+ 0x61, 0xaf, 0x5b, 0x41, 0x49, 0x90, 0x6d, 0xe9, 0x2e, 0xaa, 0x67, 0x76, 0x86, 0x7a, 0xdb, 0x84,
+ 0x14, 0x41, 0x81, 0x8f, 0xd9, 0x85, 0x69, 0x6b, 0x12, 0x10, 0xcb, 0x1d, 0xf6, 0x60, 0xa8, 0x02,
+ 0xa6, 0xb3, 0x5c, 0x90, 0x7c, 0xc3, 0x3c, 0x92, 0x97, 0x39, 0xeb, 0x0c, 0x95, 0x96, 0x84, 0xae,
+ 0x11, 0xc0, 0x30, 0xdc, 0x7e, 0x35, 0xe2, 0x01, 0xf7, 0x14, 0x89, 0x8b, 0x2a, 0x78, 0x82, 0xe3,
+ 0x02, 0xeb, 0x4a, 0x9f, 0x29, 0x9e, 0xef, 0x85, 0xbc, 0xd6, 0x95, 0x5c, 0xa6, 0xb1, 0x7b, 0x6a,
+ 0x2f, 0xe8, 0x3a, 0x11, 0xff, 0xe7, 0xb6, 0x39, 0x7d, 0xf2, 0x82, 0xf0, 0x55, 0x69, 0xc2, 0x8f,
+ 0xca, 0xb7, 0x5d, 0xbb, 0x36, 0xde, 0xe0, 0x40, 0xe9, 0x49, 0xdf, 0x5f, 0x12, 0x75, 0x5a, 0xa0,
+ 0x3c, 0xc3, 0x40, 0x52, 0xa8, 0x4c, 0xbb, 0xbd, 0x36, 0x30, 0x9e, 0x27, 0xd9, 0xa0, 0x3b, 0x06,
+ 0x4e, 0x47, 0x61, 0x50, 0xb6, 0x77, 0xdb, 0xd0, 0x53, 0x58, 0xe5, 0x86, 0xd3, 0x13, 0x19, 0x0b,
+ 0x7d, 0xc4, 0x31, 0xf7, 0x34, 0x28, 0x3e, 0xd3, 0x89, 0x64, 0xbd, 0xd8, 0xad, 0x9b, 0x5c, 0xed,
+ 0xb9, 0xa7, 0x59, 0x17, 0xdd, 0xaa, 0x16, 0x8e, 0xd2, 0x4a, 0x0f, 0xd0, 0x4b, 0x7f, 0xa4, 0x98,
+ 0x80, 0xe5, 0xa8, 0x16, 0xd2, 0x56, 0x26, 0x59, 0x01, 0x7e, 0xd3, 0x61, 0x4e, 0xc7, 0xb5, 0x7f,
+ 0x04, 0x15, 0x94, 0xfd, 0x52, 0xff, 0x1d, 0xc9, 0xbb, 0x6f, 0xe9, 0xb8, 0x8f, 0xa1, 0xf6, 0xd4,
+ 0x32, 0x17, 0x75, 0x09, 0x77, 0x10, 0x73, 0xa0, 0x84, 0x57, 0xf3, 0x70, 0x2d, 0x31, 0x99, 0xd3,
+ 0xc6, 0x88, 0x22, 0x7f, 0xc0, 0x1c, 0xc7, 0xd8, 0xe7, 0xf8, 0x27, 0x54, 0x40, 0x55, 0x83, 0x1f,
+ 0x41, 0x07, 0x71, 0xa5, 0x9c, 0x64, 0x85, 0x6e, 0xbf, 0x54, 0x23, 0xff, 0x74, 0x3b, 0x67, 0xeb,
+ 0x0b, 0x55, 0x84, 0x08, 0x78, 0xec, 0x43, 0x77, 0x57, 0x63, 0x2f, 0xc1, 0x28, 0x89, 0x88, 0x34,
+ 0xfb, 0xdf, 0x47, 0x83, 0x9d, 0x1f, 0xea, 0xc6, 0x8f, 0xa3, 0x12, 0x5d, 0xca, 0x4c, 0x64, 0x2c,
+ 0x6f, 0x7b, 0x6e, 0x1a, 0x96, 0xcc, 0xa5, 0xf4, 0x9c, 0xcd, 0x0a, 0x21, 0x72, 0xeb, 0x79, 0x51,
+ 0x4b, 0xc6, 0xd0, 0x03, 0x11, 0xc7, 0x50, 0xba, 0xb6, 0x5c, 0xa7, 0x10, 0x0f, 0x0b, 0x33, 0xea,
+ 0xdc, 0x1d, 0x96, 0xab, 0xc6, 0xc5, 0x66, 0xae, 0x47, 0x8f, 0x81, 0x1e, 0x42, 0xa4, 0x89, 0xc8,
+ 0x95, 0x30, 0x0c, 0x37, 0xfe, 0x9c, 0xd9, 0x91, 0x4d, 0x05, 0xb3, 0x52, 0xeb, 0x1e, 0xc1, 0x48,
+ 0x84, 0xf0, 0x3c, 0xeb, 0x80, 0xa9, 0x3b, 0x90, 0xba, 0x11, 0x3a, 0xd9, 0xc1, 0x66, 0x43, 0xab,
+ 0xbb, 0x4c, 0x13, 0x88, 0xf4, 0x34, 0xf9, 0x0b, 0x6e, 0x9c, 0x9a, 0x8c, 0xed, 0xce, 0xdf, 0xf2,
+ 0xc7, 0x1c, 0x07, 0xd1, 0x35, 0x53, 0x51, 0x7b, 0xb9, 0x93, 0x8c, 0x7a, 0x13, 0xec, 0x5f, 0x2a,
+ 0x16, 0xaa, 0xcb, 0x10, 0xf0, 0x1b, 0x86, 0xee, 0xae, 0xc6, 0x5e, 0x41, 0x50, 0xd1, 0xd3, 0x68,
+ 0xde, 0xf6, 0xdc, 0x34, 0xef, 0x5b, 0x89, 0x2b, 0xfb, 0x59, 0x14, 0x42, 0xe4, 0x15, 0xf2, 0xa2,
+ 0xdd, 0x89, 0xb3, 0x05, 0x33, 0x8a, 0xf0, 0x0d, 0x19, 0xe4, 0x2a, 0x30, 0x11, 0x1d, 0x55, 0xfd,
+ 0x67, 0x51, 0x85, 0x23, 0x32, 0xf1, 0x9f, 0xa5, 0x29, 0x13, 0x1b, 0x92, 0xaf, 0x6a, 0x56, 0x3a,
+ 0xe0, 0xde, 0xd6, 0xf9, 0x6e, 0x89, 0xdd, 0x13, 0x71, 0xbf, 0x1f, 0x39, 0x9b, 0x04, 0xb2, 0xce,
+ 0xf4, 0x9f, 0x57, 0x76, 0xb7, 0x0c, 0xb4, 0x78, 0x63, 0xaf, 0xd4, 0x24, 0x6d, 0x64, 0x1a, 0xcc,
+ 0x48, 0xb9, 0xbf, 0x32, 0xcd, 0x16, 0x29, 0x9c, 0x54, 0xe1, 0x99, 0x62, 0xfa, 0x03, 0x94, 0xb5,
+ 0xe6, 0x20, 0x08, 0x9b, 0x15, 0xe8, 0x2f, 0x5f, 0x76, 0x06, 0x63, 0xdd, 0xb2, 0x14, 0x3f, 0x70,
+ 0x6c, 0x04, 0x01, 0x2b, 0x4a, 0x1d, 0xdc, 0xd2, 0x7e, 0x70, 0x34, 0x53, 0x87, 0xe3, 0xde, 0x0e,
+ 0x59, 0x79, 0x8f, 0xee, 0xb3, 0x23, 0xcb, 0x9d, 0xa3, 0xf5, 0x10, 0xe9, 0xd0, 0x7b, 0x16, 0x56,
+ 0x50, 0xc7, 0x41, 0x79, 0xe2, 0x51, 0x67, 0x6f, 0x48, 0x40, 0xaa, 0x74, 0x5e, 0x43, 0xe5, 0x08,
+ 0x78, 0x45, 0x80, 0xa4, 0x93, 0x98, 0xb5, 0xb9, 0x6c, 0x60, 0xff, 0x4e, 0x71, 0x83, 0x76, 0x0c,
+ 0xda, 0xe3, 0x48, 0xc9, 0xbd, 0xa4, 0x94, 0xe2, 0x40, 0x36, 0xfd, 0xfa, 0x6b, 0xb4, 0x04, 0x76,
+ 0xb4, 0x0c, 0x03, 0x7d, 0xde, 0x27, 0xa7, 0xb5, 0x82, 0x90, 0x5c, 0xf5, 0x4a, 0xe6, 0xa1, 0x12,
+ 0x0c, 0x3f, 0x7f, 0xc4, 0xf6, 0xc2, 0x27, 0x98, 0x0e, 0xb1, 0xf8, 0x0b, 0x52, 0x20, 0xd9, 0xbf,
+ 0xf2, 0x61, 0x89, 0x14, 0xcc, 0x6d, 0x46, 0x34, 0x64, 0x16, 0xa8, 0xc0, 0x44, 0x74, 0x97, 0x72,
+ 0xbe, 0xcd, 0xa2, 0xdb, 0x53, 0x84, 0x72, 0x61, 0x8b, 0x98, 0xd8, 0x1a, 0x31, 0xd6, 0xf5, 0x13,
+ 0xf3, 0xf5, 0xac, 0xba, 0x39, 0x22, 0xd0, 0x97, 0x3a, 0x7d, 0x03, 0xee, 0x17, 0xcd, 0x4b, 0x47,
+ 0x91, 0x25, 0x98, 0xca, 0xac, 0x63, 0xc4, 0x58, 0xf6, 0x6a, 0x5a, 0xea, 0x64, 0xbf, 0x37, 0x9c,
+ 0x5c, 0xf8, 0x3e, 0xbd, 0x14, 0x93, 0x40, 0xf7, 0x46, 0xf1, 0x52, 0x7f, 0x0c, 0x63, 0x3c, 0xb7,
+ 0x17, 0x3e, 0xee, 0xbe, 0x05, 0x54, 0x10, 0x4d, 0xf0, 0xad, 0xf5, 0x6f, 0x03, 0x68, 0x0f, 0x5d,
+ 0x7f, 0x2f, 0x7b, 0x68, 0x1d, 0xb6, 0xd1, 0x56, 0x35, 0xb2, 0x28, 0x84, 0x0b, 0x2a, 0x27, 0x87,
+ 0x82, 0x0e, 0xe2, 0x89, 0xfb, 0xc8, 0xc9, 0xdc, 0xbd, 0xa8, 0x46, 0x3d, 0xe8, 0x76, 0xce, 0x15,
+ 0xc0, 0x76, 0xfc, 0x1d, 0xbb, 0x7d, 0x35, 0x94, 0xe0, 0x41, 0x5b, 0xb0, 0x69, 0x45, 0x0e, 0xa1,
+ 0xd5, 0xa3, 0x58, 0x3c, 0x97, 0xb7, 0xca, 0x5c, 0xac, 0x3a, 0x3b, 0x83, 0xcc, 0x9c, 0x7a, 0x96,
+ 0xd9, 0x9c, 0x27, 0xf8, 0x61, 0x75, 0xed, 0xc4, 0xa2, 0x8b, 0xc3, 0x88, 0x9e, 0xbc, 0xa3, 0x29,
+ 0xa0, 0x4d, 0x82, 0xf2, 0x07, 0xa2, 0xce, 0xde, 0x90, 0x80, 0x97, 0xe8, 0xbc, 0x86, 0x09, 0x10,
+ 0xa8, 0x67, 0x69, 0xcb, 0xa3, 0x9f, 0xf4, 0x8f, 0x25, 0x5e, 0x86, 0x5b, 0x61, 0x07, 0x26, 0x7b,
+ 0xad, 0xe6, 0xd8, 0x98, 0x04, 0x2f, 0x7f, 0xe5, 0xc0, 0x5a, 0xc4, 0xcd, 0xbd, 0x1f, 0x0c, 0x9a,
+ 0xba, 0xd8, 0x36, 0x26, 0x01, 0x7b, 0x6f, 0xa8, 0x30, 0xf7, 0x31, 0xa2, 0xbe, 0x77, 0x03, 0xc7,
+ 0xb1, 0x8d, 0xb2, 0x2e, 0x79, 0x97, 0x2c, 0xdf, 0x67, 0x94, 0x1e, 0x63, 0x96, 0xfe, 0x8b, 0xf3,
+ 0xe3, 0xa1, 0xb9, 0xc8, 0xb2, 0x58, 0xa4, 0x35, 0x93, 0x02, 0x21, 0x4b, 0x6e, 0x0c, 0x15, 0x91,
+ 0xb6, 0xe7, 0x49, 0xe2, 0xf7, 0xb9, 0x48, 0x30, 0x3e, 0x46, 0xc9, 0xa9, 0xec, 0x57, 0xda, 0x78,
+ 0x20, 0xa8, 0x2a, 0xe4, 0xd5, 0xf4, 0xe8, 0x87, 0x91, 0xfe, 0x44, 0x89, 0xf2, 0x41, 0xbc, 0x6f,
+ 0x9b, 0xe4, 0x39, 0x6c, 0x21, 0xc0, 0x11, 0x8c, 0xff, 0x62, 0xde, 0x05, 0x1f, 0x8f, 0x63, 0x9d,
+ 0x85, 0x64, 0x19, 0x45, 0x75, 0xe6, 0xad, 0x33, 0xe4, 0x7a, 0x91, 0xf7, 0x92, 0xdf, 0x9f, 0x9e,
+ 0x7e, 0xbb, 0x5e, 0xc6, 0xe8, 0xf9, 0x47, 0xf5, 0x6b, 0xd9, 0x83, 0xaa, 0x58, 0x93, 0xfb, 0xb2,
+ 0x60, 0x3b, 0x7e, 0xef, 0xbc, 0xdf, 0xfb, 0x4a, 0x70, 0xc1, 0xcc, 0x58, 0xd5, 0xc3, 0x07, 0xb1,
+ 0x37, 0x96, 0xc4, 0x5a, 0xd0, 0xa0, 0xf8, 0xca, 0x61, 0x53, 0xb1, 0xe6, 0xf1, 0x29, 0xb3, 0x32,
+ 0xc4, 0x63, 0x68, 0xe0, 0xe9, 0x82, 0x28, 0x5d, 0x5b, 0x2e, 0xb2, 0x08, 0xe6, 0xe4, 0xf8, 0x75,
+ 0xfa, 0x4b, 0x62, 0x2d, 0x68, 0x50, 0x7c, 0x65, 0xd1, 0xc8, 0xb9, 0x73, 0x99, 0xf5, 0xb8, 0x19,
+ 0x51, 0x53, 0x64, 0xd7, 0x17, 0x1e, 0xf1, 0xcc, 0x16, 0x2b, 0x01, 0x5a, 0x0d, 0xfa, 0x39, 0x3d,
+ 0xc9, 0xc8, 0x32, 0x8a, 0xea, 0x0f, 0x99, 0x66, 0x0b, 0xf4, 0xe1, 0x2d, 0xe7, 0x7d, 0xfd, 0xff,
+ 0x01, 0x94, 0x25, 0xae, 0xf5, 0x4f, 0x96, 0xa3, 0x5e, 0x6b, 0xab, 0x2e, 0x53, 0xb9, 0xdc, 0x35,
+ 0x0d, 0xab, 0x5a, 0x6a, 0x03, 0x8d, 0xb1, 0x3b, 0x50, 0xda, 0x53, 0x25, 0x01, 0x99, 0x05, 0x8a,
+ 0x8a, 0x24, 0x09, 0xb0, 0x5f, 0xf5, 0xf3, 0x8d, 0x08, 0x76, 0x57, 0x8e, 0x35, 0xf7, 0xe1, 0x7e,
+ 0x34, 0xe9, 0xab, 0x6b, 0x0c, 0x71, 0x81, 0xec, 0x83, 0xee, 0x8f, 0x94, 0x04, 0x21, 0x14, 0x6d,
+ 0x4d, 0x38, 0x0e, 0x61, 0x6a, 0xa6, 0xa2, 0xf6, 0xb1, 0xe5, 0xdb, 0xf4, 0x26, 0x1b, 0xbe, 0x54,
+ 0xb0, 0x19, 0x97, 0x80, 0x8c, 0xd8, 0xba, 0x7c, 0x39, 0xff, 0xb5, 0x4d, 0xc5, 0x47, 0x57, 0xc6,
+ 0x49, 0x2d, 0x9a, 0x9c, 0x38, 0x59, 0xbf, 0x3f, 0x0a, 0x8a, 0x32, 0x4c, 0xa9, 0xba, 0x48, 0x80,
+ 0x92, 0x5a, 0xf7, 0xfb, 0x70, 0xb2, 0xbd, 0x7e, 0x14, 0xd7, 0x64, 0x98, 0x91, 0xb7, 0x90, 0xc3,
+ 0x18, 0x7e, 0xfe, 0x4b, 0x2f, 0x47, 0x4e, 0xf3, 0x1c, 0xa1, 0x33, 0x16, 0xa4, 0x40, 0x71, 0xbd,
+ 0x72, 0x84, 0x21, 0x02, 0x1e, 0x3b, 0x60, 0x6d, 0x65, 0x68, 0x7b, 0xa1, 0x0a, 0xb3, 0x22, 0x0d,
+ 0x53, 0xb8, 0x2e, 0x48, 0x3e, 0x80, 0x1e, 0x49, 0xaa, 0xfd, 0x94, 0x06, 0xab, 0x4b, 0x42, 0x57,
+ 0x4a, 0x52, 0xf5, 0xad, 0xe4, 0x88, 0xc6, 0x19, 0xe8, 0x37, 0x0c, 0x3e, 0x5c, 0xb2, 0xef, 0xdf,
+ 0x8d, 0x4e, 0xf2, 0x7c, 0xd1, 0xdb, 0x97, 0x62, 0x51, 0xa4, 0x80, 0x44, 0x4f, 0x5e, 0xb0, 0xf5,
+ 0xab, 0x18, 0x06, 0xfa, 0x7f, 0x4e, 0x8d, 0xa9, 0xc7, 0xe3, 0xb8, 0x29, 0x94, 0x0f, 0x81, 0x24,
+ 0x90, 0xb1, 0xbd, 0x64, 0x59, 0x2c, 0x52, 0xfb, 0xa8, 0x01, 0xf1, 0xc4, 0x37, 0x06, 0xeb, 0xa9,
+ 0x4f, 0xd3, 0x44, 0xfe, 0x43, 0x38, 0x4d, 0x73, 0x0d, 0x33, 0x4e, 0xa8, 0x80, 0xaa, 0xc5, 0x3e,
+ 0x9a, 0x70, 0x1c, 0xc2, 0xd4, 0x8f, 0x87, 0x2f, 0xa1, 0x09, 0x75, 0x2b, 0x4c, 0x36, 0xbf, 0xa8,
+ 0xdb, 0x77, 0x6d, 0x67, 0x48, 0xeb, 0x02, 0x41, 0x1e, 0x5d, 0x56, 0xd4, 0x38, 0x0d, 0xd8, 0x43,
+ 0xd6, 0xdc, 0x37, 0x0d, 0x4b, 0x66, 0xb3, 0x7a, 0x4e, 0x87, 0x05, 0xf1, 0x39, 0x94, 0xdd, 0xc9,
+ 0x1a, 0x95, 0xb4, 0xd4, 0x06, 0xd9, 0xa1, 0x76, 0xa0, 0x77, 0xa6, 0x4a, 0x02, 0xf1, 0x0a, 0xd7,
+ 0xbc, 0x26, 0xe8, 0x44, 0x7a, 0x1a, 0x9d, 0xe4, 0x37, 0x4e, 0x4d, 0x46, 0x97, 0x67, 0x8e, 0x79,
+ 0x10, 0x54, 0x15, 0x72, 0x8b, 0x7a, 0x74, 0xa2, 0xa9, 0x7f, 0x22, 0xa5, 0x79, 0xc1, 0x5e, 0xd6,
+ 0x93, 0xce, 0xd2, 0x55, 0x85, 0xfd, 0x2b, 0xdd, 0x4a, 0xbc, 0xcf, 0xb6, 0xc2, 0x0e, 0x4c, 0xf6,
+ 0x9e, 0x65, 0x88, 0x3f, 0x86, 0x70, 0x9a, 0xe6, 0x1a, 0x66, 0x9c, 0x93, 0xc3, 0x97, 0x49, 0x7c,
+ 0x97, 0xdb, 0x46, 0xa8, 0xd7, 0x02, 0x36, 0x14, 0xf1, 0xd3, 0x26, 0x0e, 0x4d, 0xaf, 0xba, 0x22,
+ 0x30, 0xfc, 0x3f, 0x96, 0x5e, 0x8e, 0x9c, 0x25, 0x38, 0x81, 0x66, 0x2c, 0x8b, 0x80, 0xe2, 0xb9,
+ 0x1e, 0x80, 0x20, 0x29, 0x54, 0x26, 0xbc, 0xbf, 0x1b, 0x18, 0x4f, 0xf2, 0x8d, 0x50, 0xfc, 0x03,
+ 0x0f, 0x40, 0x10, 0xf5, 0x2a, 0x13, 0x5e, 0xbe, 0xec, 0x0c, 0xc6, 0x79, 0xa7, 0x28, 0x7e, 0xe0,
+ 0x66, 0xc5, 0xa0, 0x8d, 0xc7, 0xbe, 0x09, 0x06, 0x77, 0x78, 0xb0, 0xbc, 0xfc, 0xd3, 0x8a, 0x0f,
+ 0x77, 0x05, 0x90, 0x51, 0xb9, 0x8b, 0xeb, 0x07, 0x80, 0x6c, 0x39, 0x37, 0xd6, 0xab, 0x08, 0xec,
+ 0x40, 0x93, 0x54, 0x0b, 0x69, 0x2b, 0x13, 0xcd, 0xe1, 0x3f, 0x88, 0xd1, 0x27, 0x82, 0xbb, 0xde,
+ 0xa2, 0xa6, 0xc8, 0x6d, 0x2e, 0x3c, 0x21, 0x5b, 0x2c, 0x56, 0x02, 0xb4, 0x1a, 0x37, 0x72, 0x7a,
+ 0xc1, 0xe2, 0xd9, 0xb3, 0x4e, 0x32, 0xa3, 0x37, 0xbe, 0x2a, 0xf0, 0x9e, 0x3a, 0xfc, 0xd2, 0x94,
+ 0x6a, 0xfa, 0xdf, 0x49, 0x31, 0x7c, 0x2e, 0x9e, 0x79, 0xc9, 0x48, 0xb7, 0xae, 0xf3, 0x53, 0xb0,
+ 0x12, 0xbf, 0x5f, 0xed, 0xa2, 0xe4, 0x9b, 0x27, 0x15, 0xa9, 0xb7, 0xf9, 0xdf, 0x70, 0x25, 0xbc,
+ 0x54, 0xd2, 0xd5, 0x84, 0xb0, 0xae, 0x7a, 0xa6, 0xf3, 0x2f, 0x43, 0xcc, 0xd1, 0xe2, 0x13, 0xdc,
+ 0x5f, 0x87, 0x51, 0x8c, 0xc8, 0x42, 0x39, 0xd1, 0xa4, 0x4c, 0x6c, 0x0d, 0xf9, 0x6b, 0x9b, 0xe8,
+ 0xd3, 0x5d, 0x86, 0x5e, 0xec, 0xd6, 0x38, 0x10, 0xab, 0x83, 0x47, 0x67, 0xe5, 0x8c, 0xf7, 0x28,
+ 0x65, 0xba, 0xcf, 0xbc, 0x1b, 0x6f, 0x70, 0x20, 0x95, 0xc5, 0x8e, 0xce, 0x09, 0xdb, 0x2d, 0x50,
+ 0xa9, 0xf3, 0x4c, 0x65, 0x56, 0xd0, 0x62, 0x2c, 0x7b, 0x35, 0x2d, 0x75, 0x32, 0xbe, 0xfa, 0x4e,
+ 0x3d, 0x57, 0x65, 0xfc, 0x5d, 0x03, 0x2d, 0x1e, 0x68, 0x5b, 0x35, 0x09, 0x8a, 0x19, 0xe7, 0x33,
+ 0x44, 0x86, 0xc0, 0xf6, 0x3b, 0xd4, 0x0e, 0x04, 0x5a, 0x50, 0x61, 0x69, 0xa8, 0x23, 0x4d, 0x0a,
+ 0x81, 0x71, 0x8d, 0xb8, 0x27, 0x19, 0xb0, 0xfa, 0x5f, 0x15, 0x78, 0x4f, 0x1d, 0x7e, 0x69, 0x4a,
+ 0xfc, 0xb5, 0xbc, 0x4f, 0x13, 0x31, 0x8e, 0x29, 0xd6, 0x71, 0xc5, 0x97, 0xb0, 0xe5, 0x35, 0xa7,
+ 0xdf, 0x62, 0xf9, 0x9a, 0x1a, 0x14, 0x1f, 0x88, 0xa5, 0x32, 0xbf, 0x6c, 0xb7, 0xac, 0x2e, 0x97,
+ 0x46, 0x6d, 0x8a, 0x69, 0x12, 0x4a, 0xe1, 0x81, 0xe6, 0x86, 0xf4, 0x35, 0x0e, 0x92, 0x36, 0x60,
+ 0xf8, 0xa0, 0x28, 0xb2, 0x41, 0xce, 0x93, 0xe0, 0x6d, 0x1e, 0x2c, 0x2f, 0x3f, 0x44, 0xc3, 0x73,
+ 0xcc, 0x49, 0x83, 0xd9, 0x4d, 0xbf, 0x12, 0x0c, 0xee, 0xf0, 0xa3, 0xbb, 0x3b, 0x65, 0xd7, 0x1e,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x52, 0x2c, 0x0b, 0xe6, 0xcb, 0xcf, 0x88, 0xea, 0xf4, 0x96, 0x3f, 0x28, 0xf8, 0xf2, 0x9e, 0x62,
+ 0xed, 0x75, 0x8c, 0x93, 0x6d, 0x04, 0x6c, 0x28, 0x21, 0x65, 0x4c, 0x1c, 0x9a, 0x9d, 0xb7, 0x44,
+ 0xe4, 0xcb, 0x42, 0x04, 0x3c, 0x76, 0xc0, 0xda, 0xca, 0xd0, 0xf6, 0x81, 0x14, 0xa5, 0x44, 0x1a,
+ 0x3a, 0x3d, 0x9e, 0x30, 0xd3, 0x2d, 0x49, 0xf1, 0x31, 0x89, 0xe2, 0xc3, 0xf0, 0xb0, 0xb6, 0xb8,
+ 0x73, 0x10, 0x04, 0xac, 0xeb, 0x74, 0xf6, 0xce, 0x3b, 0x03, 0xd0, 0x8f, 0x59, 0x0a, 0xfe, 0x38,
+ 0x5d, 0x6c, 0x1b, 0x13, 0xe1, 0xdc, 0xd6, 0x54, 0x18, 0x9a, 0xf9, 0x51, 0x5f, 0xda, 0xe0, 0x82,
+ 0x6e, 0xef, 0x4b, 0xb4, 0x63, 0x83, 0x33, 0x57, 0xc2, 0xa6, 0xa1, 0x0f, 0x21, 0x52, 0xa5, 0x64,
+ 0x8f, 0xa5, 0xb8, 0xe3, 0xf8, 0x45, 0x78, 0xe7, 0xed, 0x72, 0x15, 0x18, 0xe9, 0xef, 0xcb, 0x9f,
+ 0xbf, 0x59, 0x87, 0x75, 0xa6, 0xcb, 0xe4, 0xc2, 0xd5, 0xf3, 0x73, 0x34, 0x62, 0x6f, 0x29, 0x26,
+ 0xcf, 0x36, 0xec, 0xe8, 0x91, 0x6e, 0x6b, 0x2a, 0x0c, 0x4d, 0x9d, 0xc9, 0xce, 0x6d, 0x70, 0x41,
+ 0xb8, 0x33, 0x7c, 0xb9, 0x28, 0xe5, 0x80, 0x2d, 0x8c, 0x21, 0xa4, 0xfe, 0x18, 0xc6, 0x78, 0xad,
+ 0xe7, 0xb4, 0x2d, 0x35, 0xe0, 0xa7, 0xb9, 0xfc, 0x28, 0x6d, 0xc8, 0xf3, 0xe1, 0xad, 0xe3, 0x45,
+ 0xf9, 0x34, 0x0d, 0x1c, 0xb4, 0x81, 0x05, 0x43, 0x33, 0x75, 0x87, 0x01, 0x6c, 0xfd, 0x1f, 0x46,
+ 0xfd, 0x21, 0x99, 0xe1, 0xe6, 0x7e, 0x18, 0x8a, 0x88, 0x1a, 0x6e, 0xb9, 0xe3, 0x5c, 0xe9, 0x92,
+ 0xb5, 0x98, 0x26, 0xd3, 0x2b, 0x68, 0x31, 0x16, 0xdc, 0xfb, 0xf7, 0xdb, 0x19, 0x5f, 0x7d, 0x27,
+ 0x09, 0xbe, 0xce, 0x97, 0x51, 0x72, 0xac, 0xf2, 0xeb, 0xb5, 0xba, 0x9d, 0x8e, 0x38, 0xf3, 0x5e,
+ 0x47, 0xf9, 0xaf, 0xc7, 0xe7, 0x05, 0x77, 0x22, 0xb8, 0xed, 0x5f, 0x1b, 0x5d, 0x2b, 0xea, 0x55,
+ 0xe5, 0x5f, 0x67, 0xaa, 0xc9, 0x39, 0x56, 0x79, 0x94, 0xbb, 0x5d, 0xaf, 0x47, 0x1c, 0x98, 0x2f,
+ 0x31, 0x68, 0x1a, 0x38, 0xab, 0xc1, 0x0a, 0x86, 0x66, 0xea, 0xcd, 0x02, 0xd8, 0x39, 0x3e, 0x8c,
+ 0xd4, 0x37, 0x7d, 0x92, 0x62, 0xf8, 0x5c, 0xff, 0xf2, 0x51, 0x90, 0xad, 0x9f, 0x25, 0xa6, 0xa3,
+ 0xe8, 0xf4, 0x3d, 0xc0, 0xca, 0xb4, 0xe7, 0x42, 0xc4, 0x61, 0x0e, 0x8a, 0x46, 0x85, 0x9d, 0xa5,
+ 0x94, 0xa4, 0x29, 0x99, 0x0b, 0xd3, 0x4f, 0x32, 0x13, 0x6e, 0x18, 0x7c, 0xb8, 0xa7, 0x1d, 0x7d,
+ 0x1c, 0x6b, 0x6a, 0xb6, 0x7d, 0xb8, 0x53, 0x3a, 0xa7, 0xce, 0xda, 0xae, 0x2b, 0xe1, 0x87, 0x69,
+ 0x0e, 0xd4, 0x35, 0x5b, 0xdf, 0x5c, 0xc8, 0x1d, 0xb2, 0x67, 0x6d, 0x57, 0xf4, 0x91, 0xa2, 0xd5,
+ 0xcb, 0x23, 0x78, 0x15, 0xc3, 0x91, 0x76, 0xe3, 0xb7, 0x22, 0x74, 0x71, 0x41, 0xcc, 0x86, 0x95,
+ 0x6d, 0x90, 0x24, 0x85, 0xbf, 0x52, 0x4a, 0x71, 0x20, 0x1b, 0x9f, 0x7d, 0xd4, 0x5a, 0x02, 0x3b,
+ 0x36, 0x02, 0xe1, 0xf4, 0x25, 0xef, 0x6e, 0x69, 0x3f, 0x38, 0x1a, 0xc8, 0xa2, 0x90, 0x6f, 0x07,
+ 0x35, 0x7d, 0x8e, 0xc5, 0xf9, 0x3e, 0x17, 0x4f, 0xdd, 0x85, 0x24, 0xba, 0x57, 0x98, 0xc8, 0x58,
+ 0x74, 0x7a, 0xff, 0x60, 0x65, 0x5a, 0x92, 0x21, 0x62, 0xd1, 0x07, 0x45, 0x23, 0xa3, 0xaf, 0xb3,
+ 0xc5, 0xf7, 0x4d, 0x4e, 0x1c, 0xcd, 0xbe, 0xfe, 0x05, 0x45, 0x19, 0x26, 0xb5, 0x5d, 0x24, 0x40,
+ 0x75, 0xee, 0xda, 0xce, 0x90, 0x15, 0x04, 0x82, 0x3c, 0xba, 0xac, 0x6b, 0x70, 0x1a, 0x73, 0x86,
+ 0xb2, 0xf2, 0xdd, 0x1f, 0xa5, 0x46, 0x55, 0xf9, 0x85, 0x29, 0x20, 0x11, 0x63, 0xf6, 0x2c, 0xac,
+ 0xd2, 0xc9, 0xa3, 0xf0, 0x19, 0x99, 0xae, 0xb3, 0xf5, 0xe8, 0xec, 0x49, 0xb6, 0x35, 0x2b, 0x1d,
+ 0x99, 0x0f, 0x73, 0xf3, 0x08, 0x5e, 0xfe, 0x09, 0x43, 0xb4, 0x4b, 0x59, 0xb9, 0x3e, 0x18, 0xf7,
+ 0x23, 0xd7, 0x45, 0xd5, 0x09, 0x25, 0x91, 0xa1, 0x73, 0x43, 0x7a, 0xfb, 0x07, 0x49, 0x1b, 0x30,
+ 0x15, 0xd5, 0xa4, 0x21, 0x2c, 0xca, 0xff, 0xc8, 0x4c, 0x7b, 0x60, 0x33, 0xa5, 0xd9, 0x74, 0x37,
+ 0x08, 0x2a, 0xeb, 0x39, 0xa4, 0x3d, 0x3a, 0x51, 0xb5, 0xde, 0x11, 0xb3, 0xdd, 0x81, 0x2f, 0x6b,
+ 0x27, 0xc2, 0xd1, 0x28, 0x5b, 0xda, 0x8c, 0x68, 0xc8, 0x2c, 0x93, 0x43, 0x88, 0xe8, 0xed, 0xe4,
+ 0x19, 0xea, 0xdb, 0xe5, 0xda, 0x08, 0xd8, 0x50, 0x42, 0xca, 0x98, 0x38, 0xf7, 0xf9, 0xad, 0x88,
+ 0x76, 0x91, 0xb5, 0xff, 0x4c, 0xc4, 0x7d, 0xa4, 0xde, 0x07, 0x92, 0x19, 0x85, 0x12, 0xd4, 0xd9,
+ 0x39, 0x42, 0xf1, 0x01, 0x0f, 0xfc, 0x30, 0xd7, 0xd3, 0x34, 0xdc, 0xb1, 0x05, 0xb8, 0x11, 0xe7,
+ 0x13, 0x2b, 0x7a, 0x43, 0x57, 0xab, 0x0d, 0x84, 0x4b, 0xc2, 0x1c, 0xd7, 0x8c, 0xc9, 0xf9, 0x89,
+ 0x05, 0x81, 0xb1, 0x53, 0xa7, 0xb0, 0x8b, 0x6a, 0xe5, 0x04, 0x42, 0x96, 0xdc, 0x18, 0x2a, 0xe1,
+ 0xee, 0x0a, 0xe3, 0xa2, 0xb1, 0xd5, 0x15, 0x0e, 0xc3, 0xd8, 0x72, 0x6e, 0x6f, 0x95, 0x10, 0x1b,
+ 0x57, 0xad, 0xba, 0xb5, 0x6c, 0x7f, 0x03, 0x80, 0x11, 0x92, 0x7d, 0xbe, 0x24, 0xea, 0xb4, 0x83,
+ 0x9f, 0xf1, 0xad, 0x91, 0x73, 0x3f, 0x0c, 0x45, 0x44, 0x0d, 0x37, 0xbd, 0x90, 0x2e, 0x95, 0x49,
+ 0xbd, 0xb2, 0xcd, 0xea, 0x8f, 0x55, 0x0b, 0x47, 0x69, 0x25, 0xe6, 0x68, 0xc4, 0xde, 0x52, 0x4c,
+ 0x45, 0x12, 0xe5, 0x58, 0xce, 0x9b, 0x98, 0xa7, 0x04, 0x3b, 0xca, 0x47, 0xfb, 0x9a, 0x91, 0x3f,
+ 0xff, 0xca, 0xd3, 0x7e, 0xcf, 0xe0, 0xf7, 0x0f, 0x34, 0xcc, 0xfb, 0xe5, 0x45, 0xed, 0x92, 0xf8,
+ 0xc3, 0x09, 0x93, 0x2c, 0x67, 0xac, 0x4c, 0xb2, 0x02, 0xfc, 0x65, 0xc2, 0x9c, 0x4d, 0xa9, 0xfe,
+ 0x3b, 0xa9, 0xbb, 0x9e, 0x26, 0x62, 0xdf, 0x52, 0x6f, 0xe2, 0x49, 0xed, 0xa3, 0x09, 0x6a, 0x8d,
+ 0x7b, 0x3a, 0xef, 0x95, 0x4f, 0x49, 0xcc, 0x9f, 0x8e, 0xdd, 0xc1, 0x3c, 0x84, 0x8b, 0xd1, 0x53,
+ 0x8e, 0x31, 0x9d, 0x4d, 0x0d, 0x0a, 0xee, 0x44, 0xb3, 0x19, 0xbe, 0x36, 0xba, 0x56, 0x17, 0xaa,
+ 0xe9, 0x60, 0x18, 0x6e, 0x3f, 0xfb, 0x71, 0xe1, 0x9a, 0x0a, 0xa5, 0xa4, 0x15, 0x3c, 0x41, 0x90,
+ 0xc8, 0x5c, 0x17, 0x24, 0x1f, 0x40, 0x0f, 0xc5, 0x55, 0x9f, 0x4a, 0x03, 0xb4, 0xc4, 0x21, 0xca,
+ 0x7c, 0x50, 0x14, 0x59, 0xc1, 0x67, 0xa8, 0x70, 0xd7, 0x0f, 0x16, 0xf6, 0xfe, 0x22, 0x80, 0xd8,
+ 0x6b, 0x6e, 0xfa, 0xe7, 0xc4, 0x33, 0xb8, 0x3d, 0x27, 0xa2, 0xe3, 0x99, 0xfd, 0x4a, 0x8f, 0x85,
+ 0x4c, 0xac, 0x2b, 0xcf, 0x9f, 0xe9, 0x34, 0x55, 0xef, 0x8e, 0x70, 0xda, 0x75, 0xa2, 0x62, 0x61,
+ 0x83, 0x9a, 0xc7, 0x27, 0x0e, 0x87, 0x5f, 0x7f, 0xe3, 0xc3, 0xed, 0x13, 0xbb, 0xcf, 0x12, 0x20,
+ 0xec, 0xe1, 0xa9, 0x3d, 0x98, 0x4b, 0xfa, 0x8b, 0x7f, 0x0e, 0xe7, 0x32, 0xc9, 0x24, 0x6b, 0x71,
+ 0x70, 0x6f, 0x6b, 0x9d, 0x37, 0xa5, 0x8f, 0xe8, 0xd9, 0xbe, 0xee, 0xfd, 0xac, 0x02, 0x59, 0x67,
+ 0xe2, 0x35, 0x9c, 0x66, 0x47, 0x17, 0x32, 0x96, 0xcd, 0x69, 0x8a, 0x65, 0x3d, 0xb5, 0xc9, 0xa4,
+ 0xf1, 0x1e, 0xe6, 0x25, 0x10, 0xbc, 0x3f, 0x12, 0x86, 0xab, 0x96, 0xb2, 0xb1, 0x7c, 0x30, 0x2d,
+ 0xcd, 0xdd, 0xa6, 0x77, 0xb8, 0xf0, 0x84, 0xaf, 0xb0, 0x9b, 0x08, 0x95, 0x68, 0xdc, 0x0b, 0x2b,
+ 0x5a, 0x06, 0xe0, 0xdf, 0x6f, 0xf2, 0xb2, 0xbb, 0x41, 0x48, 0x2e, 0x9b, 0x25, 0x73, 0xb1, 0x09,
+ 0x2b, 0xfd, 0xae, 0xec, 0xad, 0x18, 0xab, 0xf0, 0xc6, 0x9d, 0x6b, 0x48, 0xda, 0xc8, 0x34, 0x5b,
+ 0xc2, 0x9d, 0xb6, 0x82, 0x92, 0xe3, 0xda, 0x11, 0x5c, 0x97, 0xce, 0xec, 0xcf, 0xf4, 0x75, 0xcb,
+ 0xa7, 0x27, 0x79, 0x3e, 0x89, 0x8c, 0xaa, 0x31, 0xc9, 0x52, 0x40, 0x22, 0xc6, 0x2f, 0x58, 0x9b,
+ 0xa1, 0xd9, 0xa7, 0x5c, 0xf2, 0xed, 0x58, 0x7d, 0xce, 0xeb, 0x3c, 0xc6, 0xef, 0x3f, 0xd5, 0x25,
+ 0x2c, 0x97, 0x55, 0x20, 0x23, 0x36, 0xcf, 0x1f, 0x9f, 0x4f, 0xbc, 0x82, 0xa0, 0x61, 0x65, 0xd0,
+ 0x06, 0xfe, 0xde, 0x62, 0x7b, 0x61, 0xf2, 0x4c, 0x07, 0xb9, 0x7c, 0xe4, 0x29, 0x10, 0x8d, 0xbe,
+ 0x2d, 0x03, 0x70, 0x8e, 0xd6, 0x79, 0x59, 0xbc, 0xc1, 0x24, 0x17, 0xac, 0xf3, 0xd8, 0xb9, 0xe5,
+ 0x3e, 0x28, 0x0a, 0xcd, 0x81, 0xd2, 0x54, 0x38, 0x8a, 0xe6, 0x0b, 0x7b, 0x7f, 0x11, 0x40, 0x6c,
+ 0x71, 0xfb, 0x4e, 0x33, 0xc2, 0xea, 0x19, 0x4b, 0x87, 0xd5, 0x45, 0xd3, 0xff, 0xbb, 0x85, 0x52,
+ 0x3f, 0xbc, 0x2f, 0x63, 0x74, 0x9d, 0xc2, 0x9b, 0xd4, 0x8d, 0xa0, 0x55, 0x2c, 0xa8, 0x9c, 0x59,
+ 0xf6, 0x74, 0x1d, 0xe9, 0x9e, 0x92, 0x5b, 0xfd, 0xdf, 0x79, 0x41, 0x78, 0xcb, 0xd5, 0x61, 0xa6,
+ 0xce, 0xa2, 0xc9, 0x46, 0x64, 0x21, 0xfd, 0x89, 0x52, 0x26, 0x36, 0xe7, 0x9d, 0xd4, 0xac, 0x74,
+ 0x38, 0xd6, 0xd4, 0xaf, 0xfa, 0xb3, 0xa6, 0x74, 0x8d, 0x5f, 0x77, 0x9f, 0x56, 0x01, 0xcd, 0xd2,
+ 0x33, 0x83, 0x50, 0xa7, 0x82, 0x5f, 0xe5, 0x03, 0xda, 0x3c, 0x58, 0x5e, 0x7e, 0x88, 0x45, 0xe6,
+ 0x87, 0x8f, 0x53, 0xda, 0x5c, 0x78, 0x42, 0xb6, 0x58, 0xac, 0x04, 0xab, 0x34, 0x6e, 0xe4, 0xf4,
+ 0x42, 0x78, 0x1e, 0x94, 0x40, 0xb5, 0xfc, 0x48, 0x5d, 0xe9, 0x1d, 0x8d, 0x81, 0x33, 0xc0, 0xb4,
+ 0x8c, 0xda, 0xd7, 0xd2, 0x24, 0x94, 0x01, 0xc1, 0x0f, 0xcf, 0x2b, 0x6a, 0x1c, 0xe7, 0x6c, 0xc0,
+ 0x26, 0x56, 0xf4, 0x86, 0xae, 0x95, 0x1a, 0xcb, 0x96, 0x47, 0x38, 0x6d, 0xdb, 0x51, 0x31, 0xd1,
+ 0x7a, 0xae, 0xca, 0x3b, 0xba, 0x06, 0x5a, 0x3c, 0xd0, 0xb6, 0x6a, 0x12, 0xd7, 0x32, 0x0d, 0x66,
+ 0xac, 0x72, 0xfd, 0x36, 0xf1, 0x60, 0xe9, 0x46, 0x9e, 0x31, 0x6f, 0xe3, 0xee, 0xa6, 0xd0, 0xaf,
+ 0x98, 0x9b, 0x56, 0x5d, 0xfd, 0x11, 0x68, 0xaa, 0x1d, 0xdf, 0xe0, 0x77, 0xea, 0x87, 0xc4, 0xc2,
+ 0x79, 0xd1, 0xa5, 0x0a, 0x66, 0xd7, 0x23, 0x1a, 0x32, 0x0b, 0x54, 0x60, 0x22, 0x3a, 0xaa, 0x39,
+ 0x8b, 0xb0, 0x2c, 0x1e, 0xaa, 0xba, 0x65, 0x2e, 0x56, 0x1d, 0xfc, 0xa0, 0x66, 0x4e, 0x3d, 0x4b,
+ 0x58, 0xed, 0xaa, 0x40, 0x46, 0x6c, 0x5d, 0x3e, 0xfd, 0x9e, 0xbb, 0xc7, 0x83, 0xc2, 0xca, 0x63,
+ 0x56, 0x39, 0x9f, 0x1b, 0x99, 0x30, 0x95, 0x23, 0x4f, 0xf9, 0xd6, 0x90, 0x77, 0x53, 0x68, 0xb6,
+ },
+ { /* 9 */
+ 0xa8, 0x2c, 0x9d, 0x1e, 0xd9, 0x7e, 0xa9, 0xb3, 0xc0, 0x01, 0x6b, 0x3d, 0xc4, 0xa3, 0x83, 0xb4,
+ 0xb4, 0x6b, 0xa4, 0x9d, 0x6c, 0x77, 0x14, 0x4c, 0x17, 0xa0, 0x80, 0x59, 0xd2, 0xde, 0x39, 0xaa,
+ 0x96, 0x95, 0xc3, 0xd6, 0x72, 0x8f, 0xd1, 0xd8, 0xb2, 0x47, 0xed, 0x28, 0x6d, 0x22, 0x15, 0xce,
+ 0x1e, 0xeb, 0x9c, 0x39, 0x0a, 0xe9, 0x43, 0xcd, 0x63, 0x5d, 0x9a, 0x2f, 0xd4, 0x54, 0xa5, 0x9d,
+ 0x8a, 0xd2, 0xfa, 0x55, 0xc7, 0x86, 0x6c, 0x27, 0x65, 0xe6, 0x06, 0x4c, 0x7b, 0x5f, 0xaf, 0xd0,
+ 0xf5, 0x99, 0x50, 0xe1, 0x53, 0x37, 0x1d, 0xda, 0x6f, 0xe8, 0x61, 0xe9, 0x49, 0x42, 0xb1, 0x07,
+ 0x9f, 0x36, 0xa1, 0x26, 0x75, 0xf9, 0xd0, 0x09, 0x7d, 0x4f, 0x33, 0x03, 0x82, 0x73, 0x87, 0x27,
+ 0xa5, 0x14, 0x76, 0x59, 0x63, 0x0b, 0x97, 0x06, 0xa4, 0x32, 0x57, 0x80, 0x6c, 0xa0, 0x2f, 0x98,
+ 0x13, 0xd3, 0x77, 0x7e, 0xb0, 0x9c, 0x7d, 0x78, 0x07, 0x6e, 0xa6, 0x92, 0x7c, 0x57, 0x09, 0xb1,
+ 0x39, 0xd8, 0xc1, 0x98, 0x17, 0x62, 0xc6, 0x24, 0x37, 0xff, 0xcc, 0x0c, 0x4d, 0x0f, 0x59, 0x9c,
+ 0xac, 0xb7, 0x14, 0xa9, 0x64, 0x7d, 0x96, 0xd7, 0x6b, 0x3a, 0x89, 0xab, 0x83, 0xf1, 0xbd, 0x71,
+ 0x2d, 0x6a, 0x29, 0xb6, 0x1b, 0x6d, 0x05, 0x13, 0x75, 0x28, 0x20, 0x87, 0xd5, 0xd6, 0x9f, 0xcb,
+ 0x83, 0x71, 0x98, 0xa5, 0xc0, 0xf0, 0x6d, 0xf6, 0xaa, 0xee, 0xd8, 0x67, 0x94, 0x0e, 0x3d, 0x39,
+ 0x86, 0xbc, 0xa2, 0x4f, 0xc3, 0x83, 0x2d, 0x8b, 0x5b, 0xab, 0xe3, 0x35, 0xb2, 0xa9, 0xed, 0x5c,
+ 0xb9, 0x53, 0x4f, 0xda, 0xd6, 0x02, 0x2a, 0xf9, 0x73, 0x93, 0xbc, 0xe4, 0x7a, 0xdd, 0x95, 0x86,
+ 0x76, 0xe8, 0xc8, 0x44, 0x93, 0xc7, 0x70, 0x2c, 0xc5, 0x06, 0xb9, 0x8e, 0xdd, 0x4c, 0x8c, 0x3e,
+ 0x0f, 0x94, 0x4e, 0xfd, 0x05, 0x95, 0xc0, 0x87, 0xd0, 0xcf, 0x4d, 0xf6, 0x6a, 0x2a, 0xb3, 0xaf,
+ 0x5a, 0xd4, 0x52, 0xaf, 0x36, 0xda, 0x0a, 0x26, 0xea, 0x50, 0x40, 0xcd, 0x69, 0x6f, 0xfd, 0x55,
+ 0xa0, 0xd9, 0x4c, 0xb3, 0x60, 0x78, 0xd7, 0x7b, 0x55, 0x77, 0x6c, 0xd2, 0x4a, 0x07, 0xff, 0xfd,
+ 0x92, 0x0e, 0x4a, 0x61, 0xcf, 0x8c, 0xee, 0xbc, 0x19, 0x7c, 0x0f, 0xbe, 0x2a, 0x70, 0x2b, 0x0b,
+ 0xe2, 0xd1, 0xae, 0x28, 0x5e, 0xa8, 0x5f, 0xc6, 0xc3, 0xbd, 0x25, 0xed, 0x72, 0x47, 0x86, 0x73,
+ 0x34, 0xe0, 0x2a, 0xdf, 0xad, 0x17, 0xf8, 0x91, 0x53, 0xcc, 0xf0, 0xb1, 0xe5, 0x0c, 0xf5, 0xb0,
+ 0xee, 0xbf, 0xf6, 0x32, 0x5a, 0xad, 0x1e, 0x6a, 0xfd, 0xf0, 0xc0, 0x94, 0xbb, 0xb1, 0xc4, 0xff,
+ 0x6d, 0xce, 0x6e, 0x97, 0x9a, 0x5d, 0x73, 0x9c, 0x57, 0x1e, 0x18, 0xf3, 0x2f, 0xbf, 0xf9, 0xc6,
+ 0x1a, 0x70, 0x15, 0x8e, 0xb7, 0xea, 0x7c, 0xa9, 0xc8, 0x66, 0x78, 0xb9, 0x93, 0x06, 0x9b, 0x58,
+ 0x24, 0xc9, 0x4b, 0x46, 0x1c, 0x1b, 0x04, 0xc2, 0xba, 0x20, 0xfe, 0xac, 0x3a, 0x87, 0x0d, 0x22,
+ 0x1f, 0xbd, 0x2f, 0x64, 0xb4, 0x99, 0x3c, 0xd4, 0x39, 0x23, 0x43, 0xeb, 0xb5, 0xa1, 0x4b, 0x3d,
+ 0xd2, 0xaa, 0x0d, 0x40, 0x4e, 0xbc, 0x98, 0x33, 0x3b, 0x4a, 0x37, 0xca, 0xd0, 0x19, 0x4d, 0x06,
+ 0x18, 0xdc, 0xb0, 0x34, 0x08, 0x0a, 0x82, 0x9b, 0x7c, 0x9a, 0x09, 0xf2, 0x51, 0x2f, 0x84, 0xdb,
+ 0x37, 0x1a, 0x3c, 0x38, 0xac, 0x87, 0x79, 0xba, 0xbd, 0x4e, 0x58, 0x3e, 0x46, 0xd0, 0x04, 0x93,
+ 0x6a, 0xaf, 0xf1, 0xc7, 0x26, 0xce, 0xcd, 0xd3, 0x12, 0xa7, 0x52, 0xea, 0xcb, 0x31, 0x36, 0x20,
+ 0x3f, 0xef, 0xed, 0x95, 0x15, 0x81, 0x07, 0x72, 0x28, 0x38, 0x5f, 0xd1, 0xc8, 0x74, 0x78, 0xda,
+ 0xae, 0x1b, 0xb1, 0x13, 0xdb, 0x9d, 0x68, 0xe5, 0xdf, 0xc6, 0xf8, 0xe0, 0x41, 0xd8, 0xa2, 0xf2,
+ 0x10, 0x29, 0x61, 0x99, 0xb1, 0x0c, 0xfc, 0x53, 0xe9, 0xec, 0x0e, 0x1d, 0xdf, 0x8b, 0xf8, 0x92,
+ 0x46, 0x93, 0x6b, 0x2c, 0x83, 0xd3, 0xb7, 0xd9, 0x3d, 0xf1, 0xab, 0xa9, 0x7f, 0x12, 0x47, 0x4b,
+ 0x6c, 0x98, 0xdd, 0xca, 0x24, 0x2d, 0x0c, 0x85, 0x0d, 0x60, 0xc1, 0x37, 0x4e, 0x4a, 0x17, 0x66,
+ 0xbc, 0x9e, 0x75, 0x30, 0xd5, 0x71, 0x6a, 0x84, 0x82, 0xd6, 0x87, 0xb6, 0x5c, 0x7a, 0x45, 0xe3,
+ 0x68, 0x03, 0x54, 0x7d, 0x99, 0x2e, 0x33, 0xe1, 0xa6, 0x5b, 0x23, 0xa1, 0x09, 0x18, 0x29, 0xa3,
+ 0x0b, 0x0f, 0xc7, 0x4a, 0xb8, 0x96, 0xff, 0xe3, 0x7b, 0xf4, 0xaf, 0x60, 0x2d, 0x78, 0x8d, 0x6a,
+ 0x3e, 0xb9, 0x5e, 0xc8, 0xab, 0xf1, 0x78, 0x6b, 0x72, 0x46, 0x86, 0x15, 0xa9, 0x81, 0x96, 0x7a,
+ 0xfe, 0x96, 0x97, 0xab, 0xeb, 0xa1, 0xe2, 0x39, 0x14, 0x1c, 0xce, 0x89, 0x64, 0x3a, 0x3c, 0x6d,
+ 0xa9, 0x7a, 0x2e, 0x43, 0x67, 0x0e, 0xd6, 0xaa, 0x9a, 0x7f, 0xb2, 0xf9, 0xa5, 0x56, 0x6d, 0x14,
+ 0x28, 0xa7, 0x13, 0x5c, 0x18, 0x1e, 0x45, 0x6e, 0x84, 0x6d, 0x1b, 0xd5, 0xf3, 0x71, 0x4f, 0xae,
+ 0x7c, 0xb1, 0xbc, 0x53, 0x95, 0x21, 0xf0, 0xd6, 0xe4, 0x8c, 0xcf, 0x2a, 0x91, 0xc1, 0xef, 0xf4,
+ 0xf2, 0xf8, 0xcf, 0xb1, 0xef, 0xa4, 0xa3, 0x95, 0x2a, 0x51, 0x2b, 0xf0, 0xad, 0xcc, 0x7e, 0xe1,
+ 0xbf, 0x64, 0x63, 0xd7, 0xd4, 0xe1, 0xeb, 0xaf, 0x6c, 0x54, 0x2f, 0x39, 0xff, 0xa6, 0xb4, 0xc0,
+ 0xf4, 0xcf, 0xe3, 0xbc, 0xed, 0x47, 0x62, 0xc3, 0x35, 0x96, 0xb8, 0x2d, 0x28, 0xb7, 0x5f, 0xa7,
+ 0xcb, 0x20, 0x0e, 0x29, 0xf8, 0xc6, 0x65, 0xb1, 0x1d, 0xae, 0xe7, 0xfc, 0xe0, 0xc3, 0x27, 0x7d,
+ 0x06, 0x37, 0x2c, 0x0d, 0x02, 0xe3, 0xc1, 0x56, 0x1f, 0xc7, 0x93, 0xdd, 0x85, 0x7b, 0x21, 0x46,
+ 0xf8, 0xa1, 0xbb, 0xa6, 0xe9, 0x42, 0x23, 0x6f, 0x0b, 0xdb, 0x5d, 0x54, 0xe1, 0x41, 0x1d, 0x2b,
+ 0xbd, 0xc8, 0xc6, 0x6d, 0x6b, 0x01, 0x15, 0x9d, 0xd8, 0xa8, 0x5e, 0x72, 0x3d, 0x8f, 0xab, 0x43,
+ 0x75, 0x12, 0xde, 0xa3, 0x92, 0x57, 0xf1, 0x07, 0x2b, 0x84, 0x11, 0x01, 0x7e, 0x90, 0x7d, 0x1d,
+ 0x03, 0xfa, 0x16, 0xe7, 0x01, 0x90, 0x81, 0x2b, 0xee, 0x82, 0xa8, 0x8f, 0xa3, 0xdc, 0xf1, 0x23,
+ 0x4c, 0xca, 0x1f, 0x3b, 0x85, 0x35, 0x37, 0x23, 0x1c, 0x7b, 0xdd, 0x0d, 0x33, 0x9f, 0x24, 0x81,
+ 0x4b, 0xab, 0x80, 0x6b, 0x39, 0xa6, 0x89, 0x6c, 0x59, 0xc2, 0x97, 0x14, 0xd7, 0x11, 0xeb, 0x67,
+ 0xc0, 0x2f, 0xc9, 0x63, 0x40, 0x50, 0x9a, 0x52, 0x66, 0x5a, 0x48, 0x9c, 0xcd, 0xbb, 0xaa, 0x17,
+ 0x04, 0x9b, 0x89, 0xb7, 0xbd, 0x03, 0x3f, 0x64, 0xab, 0x3b, 0xe2, 0x96, 0x47, 0x52, 0x3e, 0xc5,
+ 0xb3, 0x0a, 0x3b, 0xcd, 0xd0, 0xe4, 0xaa, 0x03, 0x52, 0x19, 0xca, 0x40, 0x36, 0x50, 0xf6, 0x4c,
+ 0xb6, 0xc7, 0x01, 0x27, 0xd3, 0x97, 0xea, 0x7e, 0xa3, 0x5c, 0xf1, 0x12, 0x10, 0xf7, 0x26, 0x29,
+ 0x51, 0xdb, 0x95, 0xe5, 0x8e, 0x4c, 0xf5, 0xc5, 0x91, 0xa4, 0xef, 0xad, 0x44, 0x17, 0x70, 0x3f,
+ 0xeb, 0x72, 0xcc, 0xd8, 0x59, 0xde, 0x5e, 0x17, 0x0c, 0xb5, 0xfb, 0xc6, 0x9d, 0x16, 0x14, 0x9a,
+ 0x98, 0x57, 0x3e, 0x76, 0xc9, 0x6a, 0x6e, 0x46, 0x38, 0xf6, 0x79, 0x1a, 0x66, 0xfd, 0x48, 0xc1,
+ 0x23, 0xa8, 0xd4, 0x16, 0xa0, 0x88, 0xba, 0x8d, 0xff, 0x99, 0xb4, 0xb5, 0xde, 0x09, 0xc2, 0xc4,
+ 0xab, 0xd6, 0x8b, 0xf9, 0xd8, 0xee, 0x28, 0x98, 0x2e, 0x83, 0xc3, 0xb2, 0x67, 0x7f, 0x72, 0x97,
+ 0xb2, 0x5c, 0x88, 0x90, 0x6e, 0x94, 0xd5, 0x1a, 0x08, 0x67, 0x13, 0x84, 0x57, 0xa5, 0x18, 0xec,
+ 0x99, 0x01, 0x8d, 0x2b, 0x77, 0x1a, 0x11, 0x5f, 0x62, 0x88, 0xa0, 0xde, 0x07, 0x08, 0xa6, 0x61,
+ 0x89, 0x28, 0xec, 0xb2, 0xc6, 0x16, 0xed, 0x0c, 0x8b, 0x64, 0xae, 0xc3, 0xd8, 0x83, 0x5e, 0xf3,
+ 0xdf, 0x92, 0xe6, 0x07, 0xf4, 0xc9, 0xa6, 0x86, 0x5f, 0x79, 0x0b, 0x77, 0x78, 0x1a, 0xe1, 0x2a,
+ 0x0d, 0x38, 0xeb, 0x47, 0xba, 0x75, 0x3e, 0xb5, 0x64, 0x33, 0x3c, 0xbd, 0xa8, 0x03, 0xac, 0x2c,
+ 0x31, 0x2d, 0x10, 0x35, 0xae, 0x64, 0xb8, 0xec, 0xa2, 0x89, 0xcb, 0xe3, 0xc3, 0xab, 0x25, 0xd5,
+ 0x70, 0xdf, 0xe4, 0x49, 0x91, 0x24, 0xb1, 0x7a, 0xda, 0xc1, 0x2a, 0x53, 0x58, 0x37, 0xad, 0x78,
+ 0x73, 0x25, 0xf2, 0xae, 0x90, 0xb4, 0x30, 0x51, 0x34, 0x43, 0x82, 0xdc, 0xfb, 0xeb, 0x5c, 0x5b,
+ 0x1d, 0x11, 0x8a, 0xde, 0x0b, 0x79, 0xc2, 0xe6, 0x8d, 0xdf, 0x32, 0xa0, 0x77, 0x88, 0x54, 0xbe,
+ 0x8d, 0xb3, 0x65, 0x05, 0x7b, 0x15, 0xd2, 0x68, 0x20, 0x5f, 0x4c, 0x55, 0x9f, 0xd1, 0x60, 0x36,
+ 0xf1, 0x02, 0xd9, 0x56, 0xee, 0x34, 0x22, 0xbe, 0xc4, 0xd3, 0x83, 0x7f, 0x0e, 0x10, 0x8f, 0xc2,
+ 0x7d, 0xe7, 0x0f, 0x0e, 0x2b, 0x51, 0x8f, 0xcf, 0xbe, 0xf2, 0x16, 0xee, 0xf0, 0x34, 0x01, 0x54,
+ 0x17, 0x48, 0xfe, 0xc9, 0x0d, 0x9f, 0x42, 0x1c, 0xac, 0x55, 0x44, 0x04, 0x3b, 0x05, 0x37, 0x74,
+ 0x2c, 0x3c, 0x9a, 0xeb, 0xa5, 0x1d, 0x7a, 0x0a, 0x2f, 0x56, 0xf9, 0x43, 0xb4, 0x23, 0x71, 0x6b,
+ 0x35, 0xb6, 0x99, 0x82, 0x13, 0x67, 0x87, 0x88, 0x09, 0xb2, 0x29, 0x75, 0x84, 0xf9, 0x1b, 0x10,
+ 0x88, 0x7e, 0x5f, 0xef, 0x78, 0x66, 0x92, 0x15, 0xd1, 0x1a, 0x77, 0x07, 0xb9, 0x76, 0xb0, 0x53,
+ 0x67, 0x97, 0x1a, 0x80, 0x9c, 0xbb, 0xf3, 0x66, 0x76, 0x94, 0x6e, 0x57, 0x63, 0x32, 0x9a, 0x0c,
+ 0xe1, 0x2b, 0xb8, 0xcf, 0x5f, 0x38, 0xde, 0xed, 0x2d, 0x3f, 0x8d, 0x62, 0xd1, 0x9b, 0x77, 0x50,
+ 0xb5, 0x3d, 0x17, 0xc0, 0xd2, 0x07, 0x6b, 0x55, 0x4d, 0xde, 0x59, 0x9d, 0xb3, 0x2b, 0xd7, 0x0a,
+ 0x64, 0x6d, 0x0c, 0x67, 0x9d, 0x2b, 0x72, 0x4d, 0x98, 0x16, 0xc6, 0xd8, 0xc0, 0xee, 0x6b, 0x2f,
+ 0xb1, 0xa6, 0x9e, 0x77, 0x6f, 0x04, 0x54, 0x31, 0xe6, 0xe5, 0xbb, 0x0b, 0xf4, 0x79, 0xe9, 0xcf,
+ 0x08, 0xf5, 0xd1, 0xad, 0xb9, 0x06, 0x7e, 0xc8, 0x95, 0x76, 0x07, 0xef, 0x8e, 0xa4, 0x7c, 0x49,
+ 0xe5, 0xb0, 0x31, 0x78, 0xe2, 0x3b, 0xe1, 0x89, 0x86, 0x04, 0x6f, 0xf4, 0x96, 0xc9, 0x49, 0x95,
+ 0x1c, 0x47, 0x39, 0x83, 0xb5, 0x09, 0xbd, 0xff, 0xd7, 0xa1, 0xeb, 0x64, 0x16, 0x7d, 0xba, 0x1e,
+ 0x6b, 0xf9, 0x42, 0x9a, 0x98, 0xbe, 0xb2, 0xca, 0x48, 0xd9, 0x8b, 0x2e, 0xaa, 0xc4, 0xd8, 0x80,
+ 0x5c, 0xe3, 0x7e, 0xa2, 0x34, 0x39, 0xcb, 0x70, 0xf5, 0x97, 0xd3, 0x10, 0xec, 0x14, 0xdc, 0x13,
+ 0xa3, 0x23, 0x5a, 0x54, 0x61, 0xe8, 0x56, 0x50, 0xbb, 0xf5, 0xc4, 0x5d, 0xe9, 0xdb, 0x0e, 0xde,
+ 0x7a, 0x86, 0x90, 0x5e, 0x97, 0xc2, 0x31, 0x80, 0xfb, 0x4b, 0x5c, 0xf7, 0x14, 0xba, 0xce, 0xb2,
+ 0xe8, 0x88, 0xda, 0x3f, 0x58, 0x4e, 0xdf, 0x3c, 0xe2, 0x37, 0x53, 0x49, 0x3e, 0xca, 0xe5, 0xb9,
+ 0xda, 0x5f, 0xdc, 0xed, 0xf7, 0xba, 0xe6, 0xfb, 0xae, 0x3c, 0x30, 0x25, 0x5e, 0xbd, 0x31, 0x4f,
+ 0xd7, 0x67, 0x37, 0xaa, 0x4d, 0xcf, 0xd8, 0x4e, 0xca, 0x0f, 0x0c, 0x98, 0xf6, 0xbe, 0x9d, 0x63,
+ 0xfa, 0x0d, 0x1e, 0x1c, 0x56, 0xa2, 0xdd, 0x5d, 0xbf, 0x27, 0x2c, 0x1f, 0x23, 0x68, 0x02, 0xa8,
+ 0xa7, 0xb8, 0xd3, 0xe3, 0xdc, 0xeb, 0x69, 0x34, 0x10, 0xce, 0x26, 0xcb, 0xae, 0x89, 0x30, 0x1b,
+ 0x7f, 0x4b, 0xaa, 0xb4, 0x94, 0xb1, 0x71, 0xfd, 0x0a, 0x0e, 0x67, 0xa5, 0x32, 0x1d, 0x1e, 0xd7,
+ 0xe4, 0xe6, 0x82, 0x25, 0x5c, 0x4b, 0x9e, 0x90, 0xdc, 0x7a, 0xb6, 0x30, 0xf7, 0x3c, 0xa7, 0x35,
+ 0x8f, 0x1f, 0xc0, 0xbf, 0xc4, 0xf5, 0x2c, 0x5a, 0x94, 0xa3, 0x3d, 0x1e, 0x5d, 0xf8, 0x7f, 0xb5,
+ 0xa1, 0x8f, 0xff, 0xee, 0xde, 0x08, 0xa8, 0x62, 0x0f, 0x09, 0xb5, 0x16, 0x2b, 0xf2, 0x11, 0x5d,
+ 0x52, 0x21, 0x83, 0x02, 0x8f, 0xdc, 0x74, 0xee, 0x7f, 0x26, 0x47, 0x22, 0xe7, 0xcb, 0x81, 0x1c,
+ 0xec, 0x13, 0x53, 0x88, 0xe5, 0x4d, 0xe0, 0x58, 0x49, 0x0c, 0xb1, 0xdf, 0x79, 0x98, 0xdb, 0x7c,
+ 0x3b, 0x74, 0x64, 0x22, 0xa8, 0x82, 0x38, 0x16, 0x83, 0x03, 0xbd, 0x47, 0x8f, 0x26, 0x46, 0x1f,
+ 0xa2, 0x75, 0xe9, 0x09, 0xdf, 0x98, 0x29, 0x49, 0xe1, 0x8b, 0x1d, 0x99, 0x88, 0x2e, 0xe0, 0x7e,
+ 0x5f, 0x19, 0x68, 0x45, 0x35, 0xa9, 0x4a, 0x5b, 0x1b, 0x15, 0x7b, 0x9f, 0x4f, 0xc8, 0x2d, 0x30,
+ 0x50, 0x8d, 0x26, 0xb8, 0x30, 0x3c, 0x8a, 0xdc, 0xcb, 0xda, 0x36, 0x69, 0x25, 0xe2, 0x9e, 0x9f,
+ 0x4a, 0xfd, 0x33, 0x36, 0x87, 0xd6, 0xf6, 0x75, 0x03, 0xbc, 0x4e, 0xd0, 0xb6, 0xe4, 0x05, 0xc7,
+ 0x57, 0xec, 0xb9, 0xe8, 0x8c, 0xaf, 0x34, 0x93, 0x8e, 0x63, 0x7c, 0x70, 0xc1, 0x6c, 0x51, 0x79,
+ 0x55, 0x40, 0x1c, 0x52, 0x33, 0x4f, 0xca, 0xa1, 0x3a, 0x9f, 0x0d, 0x3b, 0x03, 0x45, 0x4e, 0xfa,
+ 0xdc, 0x68, 0xf0, 0xe0, 0xf5, 0x59, 0x27, 0xad, 0xb1, 0xfb, 0xa3, 0xf8, 0xdb, 0xc6, 0x10, 0x09,
+ 0xde, 0xc4, 0x55, 0x5a, 0x4a, 0xb9, 0xd9, 0x9f, 0x05, 0x07, 0xd2, 0xb3, 0x19, 0xef, 0x0f, 0x8a,
+ 0x9d, 0x9a, 0x04, 0x9c, 0xca, 0x19, 0x2e, 0x3b, 0xc9, 0xb3, 0x42, 0x48, 0x40, 0x5a, 0x98, 0xa4,
+ 0xe7, 0x1c, 0x94, 0xc2, 0x5d, 0xdb, 0x1f, 0xbb, 0x32, 0xf8, 0x1e, 0xbf, 0x54, 0xe0, 0x56, 0x16,
+ 0xaf, 0x4d, 0x02, 0x4e, 0x65, 0xed, 0x17, 0xfc, 0x85, 0xb8, 0x21, 0x24, 0x20, 0x2d, 0x4c, 0x52,
+ 0x97, 0xc3, 0x70, 0x8b, 0xcc, 0xff, 0xae, 0xc1, 0xe8, 0x39, 0x34, 0xec, 0x0c, 0xd7, 0xfb, 0x6e,
+ 0xaa, 0x80, 0x38, 0xa4, 0x66, 0x9e, 0x57, 0x81, 0x74, 0xfd, 0x1a, 0x76, 0x06, 0x8a, 0x9c, 0x37,
+ 0x26, 0x65, 0xee, 0xfc, 0xa3, 0xfb, 0xfa, 0xf0, 0x0e, 0xdc, 0x8f, 0xe7, 0xf8, 0xae, 0x12, 0xa1,
+ 0x4d, 0x9c, 0xac, 0x66, 0x3b, 0x45, 0x48, 0x3a, 0x46, 0x05, 0x04, 0xc9, 0x52, 0x6a, 0xca, 0x21,
+ 0x54, 0x16, 0xaf, 0x0f, 0x8d, 0x3f, 0xb5, 0xb8, 0x60, 0xe1, 0xd4, 0xff, 0x62, 0xb0, 0xa0, 0x5a,
+ 0xf7, 0x35, 0xf5, 0x5b, 0xec, 0xd7, 0xe3, 0xe8, 0xdb, 0x14, 0x10, 0xa2, 0x8b, 0x6b, 0xae, 0x84,
+ 0xd9, 0xa5, 0xca, 0x0a, 0xf6, 0x2a, 0x67, 0xd0, 0x40, 0xbe, 0x98, 0xaa, 0xfd, 0x61, 0xc0, 0x6c,
+ 0x84, 0x10, 0x07, 0xf5, 0x7c, 0x63, 0xd3, 0xb9, 0xef, 0x57, 0x92, 0x7e, 0x70, 0x80, 0xf2, 0xdf,
+ 0x41, 0xf2, 0xf4, 0x7c, 0x3f, 0x40, 0x09, 0x96, 0x78, 0x48, 0xe1, 0xb0, 0x9b, 0x9c, 0x88, 0xad,
+ 0x82, 0x27, 0x2b, 0xf8, 0x7e, 0x80, 0x12, 0xef, 0xf0, 0x90, 0x01, 0xa3, 0xf5, 0xfb, 0xd3, 0x99,
+ 0xd6, 0x31, 0x84, 0xf7, 0xf3, 0xbf, 0xa7, 0x57, 0x90, 0x71, 0xd5, 0x5c, 0x97, 0x4b, 0x73, 0xc3,
+ 0xb7, 0x91, 0xb2, 0x7a, 0x6d, 0xe7, 0x95, 0x67, 0xf9, 0x22, 0x28, 0xd6, 0x71, 0x02, 0xc8, 0x89,
+ 0xdb, 0x09, 0x6f, 0xb0, 0x49, 0xca, 0x99, 0xe2, 0xf4, 0x42, 0xe9, 0xe1, 0x3f, 0x48, 0xdf, 0xef,
+ 0x2b, 0x5d, 0x05, 0xbb, 0x19, 0x8e, 0xc4, 0x45, 0x6a, 0xef, 0xb3, 0x5a, 0x50, 0xad, 0xbe, 0x8d,
+ 0xa6, 0xee, 0x60, 0xbe, 0x62, 0x9b, 0x16, 0x2d, 0x4a, 0xb0, 0xff, 0x0f, 0xcf, 0x7c, 0xde, 0xbb,
+ 0x38, 0x8e, 0x72, 0xc5, 0xa9, 0x12, 0xb9, 0x3d, 0x6d, 0x81, 0x15, 0xc8, 0x2c, 0xfa, 0xb7, 0x3c,
+ 0xce, 0xed, 0x34, 0xc3, 0xfb, 0xb5, 0x25, 0xcc, 0xec, 0xeb, 0xdc, 0xae, 0xc6, 0x64, 0xf7, 0x18,
+ 0x95, 0x6f, 0xd5, 0x31, 0x73, 0x1f, 0x50, 0xf3, 0x5c, 0xc5, 0x45, 0xa7, 0xce, 0xfe, 0xe4, 0xed,
+ 0x71, 0x89, 0x57, 0x14, 0x2f, 0x54, 0xce, 0x63, 0x80, 0xbf, 0xf3, 0x97, 0x39, 0xc2, 0x43, 0xd8,
+ 0xc3, 0xd5, 0xdf, 0x84, 0x41, 0xc0, 0x1b, 0x79, 0x88, 0xd8, 0xe0, 0x13, 0x6e, 0x67, 0x5b, 0x34,
+ 0x8e, 0x49, 0x73, 0xe2, 0x7a, 0x85, 0x53, 0x43, 0xce, 0xdd, 0xe4, 0xda, 0x3c, 0x0d, 0x91, 0x15,
+ 0x9a, 0xfb, 0x9b, 0xcc, 0x76, 0x8a, 0x90, 0x74, 0x8c, 0x0a, 0x08, 0x51, 0xa4, 0xd4, 0x57, 0x42,
+ 0xef, 0xe9, 0x45, 0x6f, 0xe4, 0xdd, 0x61, 0x73, 0xa7, 0x8e, 0x19, 0x50, 0xda, 0x44, 0x2a, 0x5f,
+ 0x25, 0x9f, 0xf8, 0x1b, 0xa2, 0x6b, 0x7b, 0xdb, 0xe0, 0x5e, 0x27, 0x68, 0x5b, 0x72, 0xe3, 0x82,
+ 0xa4, 0x42, 0xc5, 0x04, 0xdd, 0x7b, 0xe8, 0x1f, 0xfe, 0x4c, 0x8e, 0x44, 0x0d, 0x55, 0xc1, 0x38,
+ 0xe9, 0xde, 0x69, 0x62, 0xe6, 0x3e, 0xa0, 0x25, 0xb8, 0x49, 0x8a, 0x8d, 0x5f, 0x3f, 0x0b, 0x19,
+ 0x3c, 0x15, 0xfb, 0x72, 0x14, 0x11, 0x86, 0x59, 0xc6, 0xba, 0xf7, 0x5e, 0x6b, 0xa8, 0x89, 0xf9,
+ 0x6f, 0x62, 0xcb, 0x2d, 0x25, 0xbd, 0x8d, 0xae, 0xe3, 0xe2, 0x69, 0xb8, 0xed, 0x96, 0xe6, 0x45,
+ 0x02, 0xac, 0xa5, 0xba, 0xbf, 0xe0, 0xfe, 0x32, 0xb4, 0xfc, 0x71, 0x4b, 0xc2, 0x29, 0x1f, 0x83,
+ 0x01, 0x56, 0xb3, 0x5d, 0xbe, 0x70, 0x7f, 0x19, 0x5a, 0x7e, 0xd9, 0xc4, 0x61, 0xf5, 0xee, 0xa0,
+ 0x0a, 0x59, 0x74, 0x17, 0x06, 0xe6, 0x80, 0xfa, 0x21, 0x8a, 0x76, 0xa4, 0x4c, 0x8d, 0x63, 0xca,
+ 0x09, 0xa3, 0x62, 0xf0, 0x07, 0x76, 0x01, 0xd1, 0xcf, 0x08, 0xde, 0x2b, 0xef, 0x51, 0x92, 0xe9,
+ 0x94, 0x39, 0x66, 0x6c, 0xcd, 0x6f, 0x2f, 0xea, 0x06, 0xbb, 0x9c, 0x63, 0xaf, 0x0b, 0x0a, 0x4d,
+ 0xed, 0x45, 0xe0, 0xd5, 0x5b, 0x3d, 0x9f, 0x41, 0x13, 0x72, 0x68, 0x1b, 0x18, 0x6d, 0x35, 0xdc,
+ 0x59, 0x2e, 0x44, 0x48, 0x37, 0x4a, 0x8b, 0x0d, 0x04, 0xd2, 0xe8, 0x42, 0xca, 0xb3, 0x0c, 0x76,
+ 0x61, 0xa0, 0x36, 0x8d, 0x9e, 0x58, 0x32, 0x30, 0x69, 0x53, 0xfd, 0x8a, 0xe6, 0x49, 0xbb, 0x4a,
+ 0x69, 0x55, 0xe7, 0x20, 0x27, 0x5e, 0x4c, 0xf8, 0xfc, 0x25, 0xfa, 0x65, 0x68, 0xed, 0xc7, 0x03,
+ 0x29, 0xf1, 0xa0, 0x01, 0xa6, 0x6e, 0x3a, 0x77, 0xde, 0x13, 0xc2, 0x11, 0x92, 0x84, 0xa1, 0x0e,
+ 0xb0, 0xf0, 0x2d, 0x2a, 0xd1, 0x74, 0x2b, 0x28, 0xbc, 0x9b, 0x62, 0xcf, 0x95, 0x8c, 0x07, 0x6f,
+ 0x30, 0x7b, 0xa3, 0x68, 0x10, 0x14, 0xc7, 0xf5, 0xf8, 0xf7, 0x12, 0x27, 0xa2, 0x5e, 0xcb, 0x75,
+ 0x60, 0xf6, 0x85, 0xd0, 0x20, 0x28, 0x4d, 0x29, 0x33, 0x2d, 0x24, 0x4e, 0x87, 0xbc, 0x55, 0xea,
+ 0x74, 0x44, 0x6d, 0xfe, 0x2c, 0x27, 0x8e, 0x1e, 0x71, 0xfa, 0xc8, 0xc5, 0x1f, 0x65, 0x93, 0xbd,
+ 0x22, 0xfe, 0x67, 0x4b, 0x1e, 0xf8, 0xc5, 0x94, 0xa5, 0xe7, 0x6d, 0x71, 0xbf, 0xfc, 0x2c, 0x64,
+ 0x0c, 0x6e, 0x58, 0x1a, 0x04, 0x05, 0x41, 0xac, 0x3e, 0x4d, 0xe5, 0x79, 0xc9, 0xf6, 0x42, 0x8c,
+ 0xcd, 0x17, 0x22, 0x24, 0xfa, 0x25, 0xa4, 0xe7, 0x02, 0x69, 0x74, 0x21, 0x65, 0xb8, 0x06, 0x3b,
+ 0x7b, 0xd0, 0x23, 0x03, 0x29, 0xb2, 0x4e, 0x99, 0xa1, 0x35, 0x85, 0x33, 0x75, 0x4f, 0x20, 0x12,
+ 0x5b, 0x82, 0xe1, 0xf2, 0x88, 0xaa, 0x75, 0x3f, 0xb0, 0x2e, 0x99, 0x09, 0x08, 0x9a, 0x13, 0xf5,
+ 0x40, 0xa4, 0x47, 0x21, 0x81, 0x30, 0x76, 0x8f, 0x22, 0x36, 0x38, 0x74, 0xfa, 0x69, 0x66, 0x0d,
+ 0xe3, 0x87, 0x1d, 0x75, 0xe0, 0xd8, 0x20, 0xdf, 0x99, 0xc3, 0xfc, 0x29, 0x13, 0xb2, 0x68, 0xd3,
+ 0x14, 0xb2, 0xe8, 0x2e, 0x0c, 0x0f, 0xc3, 0x37, 0x42, 0xd7, 0xec, 0x8b, 0x98, 0xd9, 0xc6, 0x57,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xfd, 0x6c, 0x81, 0x4c, 0xea, 0x31, 0x63, 0x12, 0xfa, 0x9e, 0x66, 0x06, 0xc7, 0xe6, 0xcd, 0x4e,
+ 0x78, 0x2a, 0x35, 0xe4, 0x28, 0x22, 0xcf, 0xb2, 0x4f, 0xb7, 0x2d, 0xbc, 0xd6, 0x93, 0xd1, 0x31,
+ 0xad, 0xe1, 0xa7, 0xf4, 0xda, 0x0d, 0xe9, 0xce, 0x31, 0x44, 0x50, 0x6f, 0xe2, 0x04, 0x53, 0xd1,
+ 0xd0, 0x06, 0xa8, 0xfa, 0xf1, 0x5c, 0x66, 0x01, 0x8f, 0xb6, 0x46, 0x81, 0x12, 0x30, 0x52, 0x85,
+ 0x91, 0xf4, 0x5c, 0x86, 0xce, 0x1c, 0x6f, 0x97, 0xf7, 0xfe, 0xa7, 0x31, 0x89, 0xac, 0xda, 0x28,
+ 0xfc, 0x3a, 0x32, 0x11, 0x54, 0x41, 0x1c, 0x0b, 0xa0, 0xe0, 0xbf, 0xc2, 0xa6, 0x13, 0x23, 0xee,
+ 0xf9, 0xf7, 0x08, 0xfb, 0x57, 0x32, 0x5c, 0x76, 0x51, 0xa5, 0x84, 0x90, 0x80, 0xb4, 0xf3, 0x8b,
+ 0xea, 0x24, 0x7f, 0x85, 0xe7, 0xae, 0x21, 0x0e, 0x56, 0xcb, 0x22, 0x02, 0xfc, 0xe3, 0xfa, 0x3a,
+ 0x85, 0x46, 0xb4, 0xa8, 0xc2, 0x13, 0xac, 0xa0, 0xb5, 0x29, 0x4b, 0xba, 0x11, 0x75, 0x1c, 0x7f,
+ 0x7e, 0x1d, 0x19, 0xe9, 0x2a, 0xc1, 0x0e, 0xe4, 0x50, 0x70, 0xbe, 0x61, 0x53, 0xe8, 0xf0, 0x77,
+ 0x77, 0xbe, 0x7b, 0x19, 0x2d, 0xb7, 0x0f, 0x35, 0x9f, 0x78, 0x60, 0x4a, 0xbc, 0xb9, 0x62, 0x9e,
+ 0xc7, 0x4e, 0x56, 0x33, 0xfc, 0xc3, 0x24, 0x1d, 0x23, 0xe3, 0x02, 0x85, 0x29, 0x35, 0x65, 0xf1,
+ 0xc5, 0xe2, 0xf3, 0x89, 0x43, 0x23, 0xda, 0x2f, 0x97, 0x1f, 0x73, 0xce, 0xeb, 0x1c, 0x7a, 0x72,
+ 0x5d, 0xb5, 0xcd, 0xff, 0x8a, 0x49, 0xb4, 0x69, 0xaf, 0xe9, 0x0a, 0xd4, 0x8d, 0xe1, 0x32, 0xb3,
+ 0x3a, 0x22, 0xd7, 0x7f, 0x16, 0xf2, 0x47, 0x0f, 0xd9, 0x7d, 0x64, 0x83, 0xee, 0xd3, 0xa8, 0xbf,
+ 0xd5, 0xcb, 0x92, 0x10, 0xf2, 0x2f, 0x26, 0x7c, 0x7e, 0xf3, 0x7d, 0xd3, 0x34, 0x97, 0x82, 0xe0,
+ 0x66, 0xc1, 0xa9, 0xdd, 0x22, 0xcb, 0x8c, 0x7f, 0x2c, 0xea, 0xb7, 0x93, 0x02, 0xc7, 0x74, 0xac,
+ 0x8b, 0x84, 0x49, 0x08, 0x79, 0xf6, 0x13, 0x3e, 0x3f, 0x98, 0xdf, 0x88, 0x1a, 0xaa, 0x41, 0x70,
+ 0x49, 0x07, 0x25, 0xd1, 0x86, 0x46, 0x77, 0x5e, 0xed, 0x3e, 0xe6, 0x5f, 0x15, 0x38, 0xf4, 0xe4,
+ 0xc2, 0x83, 0x6c, 0xd9, 0xff, 0xb0, 0x64, 0x60, 0xd2, 0xa6, 0x39, 0xd7, 0x0f, 0x92, 0xb5, 0x94,
+ 0xc6, 0x18, 0xe5, 0x6e, 0x42, 0xb3, 0x5b, 0x04, 0x79, 0x9d, 0xdb, 0x41, 0x48, 0xc0, 0x8b, 0x51,
+ 0x56, 0xba, 0x0a, 0xb5, 0x32, 0xdf, 0x4b, 0x8a, 0xd4, 0x1d, 0xa5, 0xb4, 0xa0, 0x99, 0xbf, 0xd9,
+ 0x4e, 0x66, 0xba, 0x81, 0x3a, 0xd5, 0xc9, 0x11, 0xa8, 0x87, 0xac, 0x46, 0xf1, 0xb6, 0x3b, 0x02,
+ 0x27, 0x33, 0x5d, 0xa1, 0x1d, 0x8b, 0x85, 0xe9, 0x54, 0xa2, 0x56, 0x23, 0x99, 0x5b, 0xfc, 0x01,
+ 0xe6, 0x4a, 0x27, 0x9f, 0xe3, 0xab, 0x60, 0xa2, 0x68, 0x86, 0xc7, 0x7b, 0x35, 0x15, 0xb8, 0xb6,
+ 0x93, 0x58, 0xf9, 0x3c, 0x71, 0xfc, 0x91, 0xa5, 0x43, 0x02, 0xd6, 0x7a, 0x4b, 0x85, 0xc5, 0xab,
+ 0xbb, 0xff, 0xea, 0x60, 0x69, 0xe2, 0xd4, 0xcb, 0xc7, 0x6f, 0xcd, 0xaf, 0xb8, 0xf4, 0x8a, 0x05,
+ 0xd1, 0x50, 0x1b, 0xa7, 0x4f, 0x2c, 0x19, 0x18, 0xd5, 0xc8, 0x9f, 0x45, 0x73, 0xc5, 0xbc, 0x25,
+ 0x63, 0x0c, 0x93, 0x37, 0x21, 0xb8, 0xcc, 0x02, 0xdd, 0xaf, 0x8c, 0xc1, 0x24, 0x60, 0xa4, 0xc9,
+ 0xc1, 0x79, 0x7a, 0x3e, 0xfe, 0x20, 0xe5, 0x4b, 0x3c, 0x24, 0x91, 0x58, 0xac, 0x4e, 0x44, 0xb7,
+ 0x45, 0x69, 0x7d, 0xcb, 0x82, 0x43, 0x36, 0xf2, 0xd3, 0x73, 0x03, 0x26, 0xdc, 0xce, 0xb6, 0x68,
+ 0xc8, 0xda, 0x18, 0xce, 0xf9, 0x56, 0xe4, 0x9a, 0xf3, 0x2c, 0x4f, 0x73, 0x43, 0x1f, 0xd6, 0x5e,
+ 0x16, 0x1e, 0x4d, 0x94, 0xb3, 0xef, 0x3d, 0x05, 0xf6, 0x2b, 0x9d, 0xc0, 0x5a, 0xf0, 0xd9, 0xd4,
+ 0x1b, 0x26, 0xa6, 0xd3, 0x09, 0x9a, 0x03, 0xb0, 0x92, 0x18, 0xa1, 0x7d, 0xf2, 0xf3, 0x75, 0xf8,
+ 0x20, 0x52, 0xc2, 0xf1, 0xa1, 0x18, 0x3b, 0xa6, 0x11, 0x1b, 0x1c, 0x3a, 0x7d, 0xd5, 0x33, 0xe7,
+ 0x9b, 0xad, 0x28, 0x91, 0xc8, 0xfa, 0xef, 0x6d, 0xd6, 0x74, 0xd1, 0x95, 0xc5, 0x21, 0xb9, 0xe2,
+ 0xf3, 0xae, 0x7c, 0xec, 0x51, 0xd4, 0xdc, 0x8c, 0x70, 0x2f, 0xf2, 0x34, 0xcc, 0x39, 0x90, 0x41,
+ 0xb8, 0x05, 0xfc, 0x87, 0x68, 0x72, 0x55, 0xe0, 0x29, 0xed, 0x65, 0x20, 0x1b, 0x28, 0x7b, 0x26,
+ 0xf0, 0x54, 0x6a, 0x0b, 0x50, 0x44, 0x5d, 0xa7, 0x9e, 0xad, 0x5a, 0xbb, 0x6f, 0xe5, 0x61, 0x62,
+ 0x2f, 0xc6, 0x8c, 0x0c, 0xa4, 0x8d, 0xfb, 0x21, 0xc1, 0xd4, 0x51, 0xcc, 0x17, 0xff, 0x80, 0x48,
+ 0xba, 0xa9, 0x59, 0x3d, 0xd7, 0x92, 0xab, 0xd2, 0x9d, 0x11, 0x14, 0x6b, 0xd9, 0x01, 0x64, 0xa5,
+ 0x4f, 0x30, 0x09, 0xdc, 0x84, 0xa5, 0xb6, 0x08, 0xf2, 0xf9, 0x75, 0x82, 0x90, 0x43, 0xd5, 0xa2,
+ 0xbe, 0x32, 0xd0, 0x8a, 0x6a, 0x91, 0x94, 0xb6, 0x36, 0x2a, 0xf6, 0xfd, 0x9e, 0x53, 0x5a, 0x60,
+ 0x12, 0x85, 0xc4, 0x23, 0x0e, 0xec, 0x02, 0x61, 0x5d, 0x10, 0x7f, 0x56, 0x1d, 0xa2, 0xe7, 0x11,
+ 0x43, 0x5e, 0x51, 0xc6, 0x80, 0xa0, 0xf7, 0xa4, 0xcc, 0xb4, 0x90, 0xfb, 0x59, 0xb5, 0x97, 0x2e,
+ 0xcf, 0xbb, 0x87, 0x9e, 0x45, 0xc5, 0x5a, 0xd5, 0xb6, 0x95, 0x05, 0x6a, 0xa7, 0x91, 0x19, 0xb8,
+ 0xc9, 0x8c, 0xab, 0x93, 0x47, 0x26, 0x9b, 0x83, 0xa9, 0x52, 0x96, 0xb7, 0x22, 0xea, 0x38, 0xfe,
+ 0x2a, 0x0b, 0xb6, 0xe6, 0xa7, 0xfe, 0xbb, 0x5c, 0x30, 0x91, 0x6a, 0x9e, 0x31, 0x58, 0x50, 0x2d,
+ 0x11, 0x7f, 0xd2, 0xc4, 0x0f, 0x7c, 0x83, 0x4a, 0xb3, 0x92, 0xd7, 0xd9, 0xbe, 0x7e, 0x16, 0x32,
+ 0x15, 0xe4, 0x5b, 0x73, 0xb2, 0x7f, 0xbc, 0x2e, 0x18, 0xa9, 0x35, 0x4f, 0xf9, 0x2c, 0x28, 0xf7,
+ 0xf6, 0x63, 0x46, 0x06, 0x52, 0xa7, 0x9c, 0xf1, 0x81, 0x6a, 0xc9, 0x66, 0xea, 0x9e, 0x40, 0x24,
+ 0x62, 0x5a, 0x20, 0x6a, 0x9f, 0xc8, 0xb3, 0x1b, 0x87, 0xd1, 0x55, 0x05, 0x45, 0x95, 0x4a, 0x69,
+ 0xcc, 0x41, 0x91, 0x79, 0x44, 0x55, 0xdb, 0xfe, 0x58, 0x17, 0xad, 0xe5, 0x04, 0x4d, 0xe8, 0x9b,
+ 0xe0, 0x7d, 0x0b, 0x92, 0xe1, 0x48, 0xa1, 0xf4, 0x77, 0x41, 0x54, 0xa6, 0xb0, 0x6e, 0x99, 0xf0,
+ 0x8c, 0xe5, 0xd6, 0x58, 0xc5, 0x65, 0xad, 0x71, 0x7a, 0x21, 0x95, 0x91, 0xfe, 0x24, 0x8e, 0x96,
+ 0x90, 0xa2, 0xef, 0xdb, 0x70, 0x6c, 0x10, 0x8e, 0xad, 0x80, 0x7e, 0xf5, 0xe8, 0x59, 0x34, 0x88,
+ 0x47, 0xc5, 0xd8, 0x71, 0x3d, 0xa3, 0xc8, 0xc0, 0x67, 0x8f, 0x72, 0x6d, 0x1e, 0xe7, 0xa9, 0xeb,
+ 0xff, 0xc0, 0x24, 0xf6, 0x55, 0xd1, 0x9d, 0x20, 0x4e, 0x62, 0x17, 0x4d, 0x05, 0xcf, 0xd2, 0xcd,
+ 0x81, 0xdd, 0x3d, 0x1f, 0x7f, 0x10, 0x93, 0xc4, 0x1e, 0x12, 0xa9, 0x2c, 0x56, 0x27, 0x22, 0xba,
+ 0x5e, 0x4f, 0xdb, 0x18, 0x8b, 0xd9, 0x35, 0x42, 0x41, 0x6b, 0xa2, 0x5b, 0x2e, 0x3d, 0xc3, 0x90,
+ 0xfb, 0x5b, 0xad, 0x41, 0xe8, 0xd2, 0xa2, 0x44, 0xe5, 0x59, 0xf5, 0xdb, 0x42, 0x9d, 0xec, 0x08,
+ 0x79, 0x7c, 0x86, 0xb9, 0x96, 0x52, 0xb0, 0xab, 0x15, 0xc9, 0xf4, 0x78, 0xb7, 0x66, 0x3f, 0x91,
+ 0x36, 0x4c, 0x8f, 0x65, 0x12, 0xf7, 0x06, 0xa3, 0xe7, 0x30, 0x81, 0xfa, 0x27, 0x25, 0xea, 0x33,
+ 0x32, 0xd7, 0x06, 0xd2, 0xaf, 0xf4, 0x39, 0xc7, 0x4c, 0x0b, 0x63, 0x6c, 0x60, 0x77, 0xd4, 0xf6,
+ 0x0e, 0xc2, 0xfd, 0xa0, 0xbb, 0xe5, 0xbf, 0x9e, 0x8a, 0xb1, 0x94, 0x32, 0x0b, 0xdf, 0x5d, 0x0f,
+ 0xd3, 0xfc, 0xbe, 0x1d, 0xf0, 0xcc, 0xe7, 0x2a, 0x61, 0x34, 0xee, 0x0e, 0xb1, 0xec, 0xa3, 0xa6,
+ 0x33, 0x81, 0xb5, 0x8f, 0x11, 0x84, 0x46, 0xde, 0x16, 0x75, 0xba, 0xa8, 0x01, 0x82, 0x3a, 0x56,
+ 0x53, 0x77, 0x30, 0x5f, 0x31, 0xac, 0x0b, 0xf7, 0x25, 0x58, 0x9e, 0xe6, 0x86, 0x3e, 0x6f, 0xbc,
+ 0x87, 0xea, 0x11, 0x12, 0x7d, 0xf3, 0x52, 0x92, 0x01, 0xd5, 0x3a, 0xf1, 0xd3, 0x5c, 0x03, 0xfc,
+ 0x21, 0x04, 0x71, 0xac, 0x1f, 0x68, 0x44, 0xbf, 0x4b, 0x65, 0xc5, 0xfe, 0x1c, 0x20, 0xdd, 0x47,
+ 0xd4, 0x9d, 0x21, 0x4d, 0x4c, 0x5f, 0x59, 0x65, 0x24, 0x8d, 0xa4, 0x17, 0x55, 0x62, 0x6c, 0x40,
+ 0x07, 0x61, 0x9f, 0x50, 0xbc, 0x93, 0xbe, 0x4f, 0x45, 0xb9, 0x4a, 0x19, 0xe4, 0x8e, 0xcf, 0xe6,
+ 0x48, 0x51, 0x96, 0x8c, 0x38, 0x36, 0x08, 0x47, 0xb7, 0x40, 0x3f, 0x9b, 0x74, 0xcd, 0x1a, 0x44,
+ 0xdd, 0x3e, 0x43, 0xbd, 0x4b, 0x29, 0x58, 0xb4, 0xeb, 0x85, 0x7a, 0x3c, 0xba, 0x33, 0xfe, 0xa9,
+ 0x6e, 0x34, 0x78, 0x70, 0x9b, 0xcd, 0xf2, 0xb7, 0xb9, 0x9c, 0xb0, 0x7c, 0x8c, 0x63, 0x08, 0xe5,
+ 0xc4, 0xb4, 0x40, 0xd4, 0xfd, 0x53, 0xa5, 0x36, 0xcd, 0x61, 0xaa, 0x0a, 0x8a, 0xe9, 0x94, 0xd2,
+ 0x58, 0x78, 0xf7, 0x15, 0x89, 0x3a, 0xf4, 0x14, 0x5e, 0xac, 0x31, 0x86, 0xab, 0x46, 0xe2, 0xd6,
+ 0x9c, 0xcc, 0xb7, 0xc1, 0x74, 0x69, 0x51, 0x22, 0x93, 0xcd, 0x9b, 0x8c, 0x21, 0xaf, 0x76, 0x04,
+ 0x05, 0xcd, 0x3a, 0xea, 0x03, 0x73, 0x40, 0x7d, 0xf1, 0x45, 0x3b, 0x52, 0x26, 0xa7, 0xd0, 0x65,
+ 0x19, 0x8a, 0x03, 0x69, 0xb6, 0x7a, 0xfd, 0x82, 0x26, 0xe4, 0xd0, 0x36, 0x30, 0xda, 0x6a, 0x7b,
+ 0xd8, 0xf3, 0x79, 0x57, 0x48, 0x5a, 0x18, 0xc9, 0x1a, 0xc0, 0x41, 0x6e, 0x9c, 0x94, 0x2e, 0xcc,
+ 0x80, 0x8b, 0x8e, 0x42, 0xc1, 0x60, 0xec, 0xdd, 0x44, 0x6c, 0x70, 0xe8, 0x37, 0xd2, 0xcc, 0x1a,
+ 0x9e, 0x60, 0x12, 0x7b, 0xcb, 0x89, 0xaf, 0x10, 0x27, 0x31, 0xea, 0xc7, 0xe3, 0x86, 0x69, 0x87,
+ 0x44, 0x3f, 0xce, 0x96, 0x3c, 0x33, 0x49, 0xeb, 0x89, 0x0d, 0xda, 0xe2, 0xbd, 0x3b, 0x58, 0xc8,
+ 0xca, 0x76, 0xbd, 0x74, 0x46, 0xb6, 0x1a, 0xa8, 0x47, 0xd0, 0x3e, 0x38, 0x81, 0x36, 0xc9, 0xdd,
+ 0x3d, 0x43, 0x48, 0x2f, 0xaa, 0x61, 0xf9, 0x40, 0x9c, 0xc4, 0x2e, 0x9a, 0x0a, 0x5d, 0x67, 0x59,
+ 0x2e, 0x90, 0x3f, 0x51, 0x1a, 0xfd, 0x84, 0x38, 0x9b, 0xaa, 0x88, 0x08, 0x76, 0x0a, 0x6e, 0xe8,
+ 0x72, 0x73, 0x41, 0xf3, 0x2e, 0xc4, 0x4f, 0x48, 0x6e, 0x3d, 0x5b, 0x18, 0x9a, 0x1e, 0xb2, 0xfb,
+ 0x42, 0x08, 0xe2, 0x9b, 0x3e, 0xd0, 0x88, 0xbd, 0x96, 0xca, 0x49, 0x3f, 0x38, 0x40, 0x79, 0x8e,
+ 0x65, 0x3b, 0xbf, 0x3a, 0x23, 0x5b, 0x0d, 0x54, 0xc2, 0x68, 0x1f, 0x1c, 0xa1, 0x1b, 0x85, 0x8f,
+ },
+ { /* 10 */
+ 0xd4, 0x19, 0x2d, 0xd4, 0xc2, 0xc3, 0xd3, 0x9c, 0xe1, 0x5d, 0xa9, 0x18, 0x2c, 0xd1, 0xbe, 0x8f,
+ 0x40, 0x7b, 0xcb, 0x40, 0x94, 0x34, 0xa6, 0x04, 0x50, 0xb3, 0x14, 0xdb, 0x6b, 0x25, 0x60, 0xb5,
+ 0x97, 0xc0, 0xd2, 0x97, 0x3c, 0x7b, 0x81, 0x84, 0xc2, 0x71, 0xd1, 0x87, 0x95, 0x0f, 0x3d, 0xb7,
+ 0x4d, 0x69, 0xb6, 0x4d, 0xd9, 0x84, 0x1d, 0xc1, 0xcf, 0xff, 0x43, 0x34, 0xeb, 0xa7, 0x8a, 0xbf,
+ 0x03, 0xa2, 0x34, 0x03, 0x6a, 0x8c, 0xf4, 0x1c, 0x73, 0x9f, 0x6c, 0x44, 0xd2, 0xfb, 0xe3, 0x8d,
+ 0xd1, 0x3c, 0x71, 0xd1, 0x7c, 0x94, 0x0c, 0xb8, 0x74, 0x3f, 0x1d, 0xd4, 0x99, 0x1f, 0x58, 0xdb,
+ 0xf8, 0x08, 0x79, 0xf8, 0xe3, 0xac, 0xd6, 0xee, 0xc6, 0xdc, 0xd0, 0x47, 0x36, 0x48, 0x84, 0x45,
+ 0xca, 0xc7, 0x26, 0xca, 0xc0, 0xf2, 0x54, 0x44, 0x19, 0xd2, 0x97, 0xf5, 0x14, 0x30, 0xaf, 0xb4,
+ 0x53, 0xb7, 0xbd, 0x53, 0xdb, 0xb5, 0x9a, 0x19, 0x37, 0x70, 0x7d, 0xd9, 0xd3, 0x46, 0x9b, 0x84,
+ 0x66, 0x20, 0x27, 0x66, 0x0a, 0xf5, 0xde, 0x3e, 0x9e, 0xf6, 0xc6, 0xdf, 0xd8, 0xe3, 0x55, 0xd7,
+ 0xa5, 0x0f, 0x8d, 0xa5, 0x1f, 0x25, 0x03, 0x2e, 0x1d, 0x7f, 0x96, 0x35, 0xb7, 0x77, 0x16, 0x46,
+ 0x10, 0x6e, 0x42, 0x10, 0x25, 0x0d, 0xc8, 0x01, 0x14, 0x5c, 0x05, 0x46, 0x6a, 0x98, 0x18, 0xbc,
+ 0x6c, 0x6a, 0x9f, 0x6c, 0xb5, 0x5b, 0xa3, 0x76, 0x77, 0x32, 0x6d, 0x84, 0x71, 0xbc, 0x5a, 0x7f,
+ 0x90, 0x98, 0x17, 0x90, 0xce, 0x65, 0x47, 0x09, 0xb4, 0xf9, 0x2d, 0x33, 0xbc, 0xd2, 0xd8, 0x15,
+ 0x5e, 0xa5, 0xc0, 0x5e, 0x96, 0x05, 0x21, 0xdc, 0xa8, 0x3c, 0x2a, 0x36, 0x53, 0xc4, 0x71, 0x8e,
+ 0xbd, 0x56, 0xee, 0xbd, 0xc9, 0xcf, 0xaf, 0xce, 0x03, 0x0d, 0x70, 0x50, 0xe8, 0xa3, 0x02, 0xa4,
+ 0xc7, 0xd5, 0x5b, 0xc7, 0x8d, 0x42, 0xef, 0x81, 0x86, 0x9e, 0xc0, 0x1a, 0x94, 0xb2, 0x45, 0xbe,
+ 0x20, 0xdc, 0x84, 0x20, 0x4a, 0x1a, 0x53, 0x02, 0x28, 0xb8, 0x0a, 0x8c, 0xd4, 0xf3, 0x30, 0xbb,
+ 0x36, 0x35, 0xae, 0x36, 0xbb, 0xcc, 0xb0, 0x3b, 0xda, 0x19, 0xd7, 0x42, 0xd9, 0x5e, 0x2d, 0xde,
+ 0xe6, 0xd6, 0x72, 0xe6, 0xe1, 0x9d, 0x51, 0x36, 0x3e, 0x53, 0xee, 0xaa, 0x0e, 0xa9, 0x95, 0x7e,
+ 0xf3, 0x9d, 0x6c, 0xf3, 0x7a, 0xc7, 0x46, 0x13, 0xbf, 0x6d, 0x5f, 0x20, 0xd1, 0xff, 0x6b, 0x96,
+ 0x78, 0xfe, 0x2c, 0x78, 0x08, 0xc4, 0x59, 0xe6, 0x66, 0x79, 0xf8, 0x32, 0xe0, 0x02, 0x44, 0xec,
+ 0x60, 0xa7, 0x4f, 0x60, 0xde, 0x2e, 0xf5, 0x06, 0x78, 0x0b, 0x1e, 0x57, 0xbf, 0xd6, 0x50, 0x0e,
+ 0x0c, 0xcd, 0xd0, 0x0c, 0x6b, 0x75, 0x56, 0x70, 0x0f, 0x39, 0x73, 0xd3, 0xce, 0x6a, 0x0a, 0x71,
+ 0x3c, 0x7f, 0x16, 0x3c, 0x04, 0x62, 0xcd, 0x73, 0x33, 0xdd, 0x7c, 0x19, 0x70, 0x01, 0x22, 0x76,
+ 0x7f, 0xa6, 0xe9, 0x7f, 0xfa, 0xda, 0x9f, 0x6b, 0x10, 0xf1, 0x04, 0x86, 0xc9, 0xdf, 0xa1, 0x4e,
+ 0xc0, 0x8d, 0x9e, 0xc0, 0x7f, 0x5c, 0x29, 0x0c, 0xf0, 0x16, 0x3c, 0xae, 0xbd, 0x6f, 0xa0, 0x1c,
+ 0xfa, 0x75, 0xe0, 0xfa, 0xaf, 0xe5, 0xcf, 0x47, 0x25, 0x36, 0x98, 0x3f, 0xaa, 0x5b, 0x87, 0xb3,
+ 0xe5, 0x74, 0x46, 0xe5, 0x8b, 0x11, 0xa5, 0x2a, 0x4d, 0xcc, 0x82, 0xee, 0xdc, 0x52, 0x76, 0xf3,
+ 0x2c, 0x11, 0x54, 0x2c, 0x21, 0x6f, 0x05, 0x72, 0x27, 0x81, 0x79, 0x5f, 0x1a, 0x99, 0x3a, 0xca,
+ 0x29, 0x34, 0x08, 0x29, 0x9f, 0x38, 0xda, 0x56, 0xb2, 0xe3, 0xcd, 0x93, 0xaf, 0x57, 0xdc, 0x9e,
+ 0xce, 0x3d, 0xd7, 0xce, 0x58, 0x60, 0x66, 0xd5, 0x1c, 0xc5, 0x07, 0x05, 0xef, 0x16, 0xa9, 0x9b,
+ 0x7c, 0x04, 0xdd, 0x7c, 0x90, 0x56, 0x6b, 0x77, 0x63, 0x6e, 0x68, 0xc2, 0x1b, 0x24, 0x42, 0xc3,
+ 0x07, 0x58, 0xc5, 0x07, 0xf2, 0x1e, 0xc6, 0x8d, 0x76, 0x88, 0xfc, 0xb4, 0x29, 0xdd, 0xe5, 0xa2,
+ 0xb4, 0xbe, 0x62, 0xb4, 0x1c, 0xed, 0x26, 0x9a, 0x99, 0x56, 0xb7, 0x4f, 0x93, 0x07, 0xee, 0x81,
+ 0x81, 0x29, 0xf8, 0x81, 0xcd, 0xad, 0x62, 0xbd, 0x30, 0xd0, 0x0c, 0x49, 0x98, 0xa2, 0x20, 0xd2,
+ 0xa2, 0x57, 0x48, 0xa2, 0xed, 0x3b, 0xc5, 0xa3, 0x6b, 0xf7, 0x6a, 0x81, 0x9e, 0xaa, 0xf3, 0xe4,
+ 0xf0, 0x3f, 0x58, 0xf0, 0x10, 0x4b, 0xb2, 0x0f, 0xcc, 0xf2, 0x33, 0x64, 0x03, 0x04, 0x88, 0x1b,
+ 0xb6, 0xc3, 0xfb, 0xb6, 0x50, 0xa4, 0x3f, 0x33, 0x7a, 0xbc, 0xff, 0x37, 0x0f, 0x14, 0xed, 0x77,
+ 0x43, 0xd9, 0xff, 0x43, 0xfe, 0xb8, 0x52, 0x18, 0x23, 0x2c, 0x78, 0x9f, 0xb9, 0xde, 0x83, 0x38,
+ 0x67, 0xff, 0x8a, 0x67, 0x2c, 0x30, 0x33, 0x8b, 0x0e, 0x83, 0xe2, 0xe3, 0x96, 0x0b, 0xb5, 0xac,
+ 0x59, 0xfd, 0x05, 0x59, 0x64, 0x1b, 0xe7, 0x51, 0xde, 0xb4, 0xd6, 0x82, 0x7a, 0x19, 0x94, 0x2c,
+ 0xec, 0x9c, 0xca, 0xec, 0x5e, 0x33, 0x2c, 0x7e, 0xd7, 0x97, 0x45, 0xf1, 0xa7, 0xf6, 0x9a, 0xd6,
+ 0x86, 0x71, 0x3d, 0x86, 0x3f, 0xb3, 0xa4, 0x30, 0x46, 0x58, 0xf0, 0xfd, 0xb1, 0x7f, 0xc5, 0x70,
+ 0xf4, 0xc5, 0xa9, 0xf4, 0x88, 0xd9, 0x80, 0x9e, 0xc9, 0xe5, 0xa3, 0x94, 0xf8, 0x22, 0x8e, 0x34,
+ 0xf6, 0xb8, 0x30, 0xf6, 0xc4, 0x90, 0x99, 0x37, 0x2a, 0x0f, 0xeb, 0xec, 0x64, 0x31, 0x8d, 0xc2,
+ 0x5c, 0xd8, 0x59, 0x5c, 0xda, 0x4c, 0x38, 0x75, 0x4b, 0xd6, 0x62, 0x4e, 0xcf, 0xd7, 0x72, 0x78,
+ 0x92, 0xe5, 0x8e, 0x92, 0x82, 0x2c, 0x5e, 0xa0, 0x57, 0x13, 0x65, 0x4b, 0x20, 0xc1, 0xdb, 0xe3,
+ 0xa8, 0x1d, 0xf0, 0xa8, 0x52, 0x95, 0xb8, 0xeb, 0x82, 0x33, 0xc1, 0xda, 0x37, 0xf5, 0xfc, 0x4c,
+ 0xcf, 0xe2, 0x7a, 0xcf, 0x7e, 0xa5, 0x8b, 0x60, 0x8c, 0xb0, 0x23, 0x39, 0xa1, 0xfe, 0x49, 0xe0,
+ 0x2f, 0xb3, 0x60, 0x2f, 0x4b, 0xe3, 0xf1, 0x6e, 0x54, 0x1e, 0x15, 0x1b, 0xc8, 0x62, 0xd9, 0x47,
+ 0xe9, 0xb9, 0x96, 0xe9, 0xe0, 0x64, 0xf3, 0x5a, 0x42, 0xf5, 0xf1, 0x3d, 0x12, 0x38, 0x7c, 0x82,
+ 0x54, 0xef, 0x78, 0x54, 0x29, 0xab, 0x5c, 0x94, 0x41, 0xf8, 0x81, 0x6d, 0xfa, 0x9b, 0x7e, 0x26,
+ 0x8f, 0x99, 0xb1, 0x8f, 0xea, 0x91, 0x2d, 0x64, 0xdc, 0x03, 0x37, 0xe2, 0xca, 0xdb, 0x29, 0x55,
+ 0xaa, 0x60, 0x69, 0xaa, 0x1e, 0xdc, 0xa1, 0x42, 0x61, 0xd9, 0x89, 0xa2, 0xab, 0xe6, 0xff, 0xba,
+ 0x24, 0x26, 0x75, 0x24, 0xd2, 0x88, 0x61, 0x93, 0x2d, 0xaf, 0x9a, 0x7c, 0x2f, 0xd5, 0x36, 0x94,
+ 0x71, 0x16, 0xa0, 0x71, 0xdd, 0xe6, 0xd0, 0xb2, 0xfc, 0x22, 0x3f, 0x2d, 0x9b, 0xa6, 0xa8, 0xc9,
+ 0x65, 0x82, 0x13, 0x65, 0x60, 0x79, 0x2a, 0x22, 0xed, 0x69, 0xaa, 0x9b, 0x0a, 0x18, 0xb6, 0x5a,
+ 0x99, 0x70, 0x9b, 0x99, 0x1b, 0x47, 0xce, 0x5d, 0x2e, 0xa2, 0xea, 0x2c, 0xc7, 0x76, 0x34, 0x30,
+ 0x96, 0x1f, 0x7f, 0x96, 0x1a, 0xbe, 0x6c, 0x31, 0x52, 0x04, 0xf5, 0xbb, 0xdb, 0xe7, 0xdd, 0xcc,
+ 0x9c, 0x55, 0xc7, 0x9c, 0xa5, 0x10, 0x11, 0x79, 0xbb, 0xc0, 0x5e, 0xe0, 0x72, 0xb8, 0xd2, 0x64,
+ 0xdd, 0xf1, 0xa1, 0xdd, 0x17, 0xe1, 0x5a, 0xc8, 0x7b, 0x06, 0x6e, 0x07, 0x57, 0x75, 0x52, 0xaa,
+ 0x5a, 0x5f, 0x31, 0x5a, 0x0e, 0x97, 0x13, 0x4d, 0xad, 0x2b, 0xba, 0xc6, 0xa8, 0xe2, 0x77, 0xa1,
+ 0x80, 0xf6, 0x55, 0x80, 0xeb, 0x68, 0x8f, 0x08, 0xa0, 0xa5, 0x28, 0x75, 0xd6, 0x4a, 0xc0, 0xa9,
+ 0xe8, 0x66, 0x3b, 0xe8, 0xc6, 0xa1, 0x1e, 0xef, 0xd2, 0x80, 0xd5, 0x01, 0x5c, 0xd0, 0x9c, 0xf9,
+ 0x50, 0x15, 0x89, 0x50, 0xb1, 0x39, 0x6e, 0x05, 0x44, 0xef, 0x11, 0x9d, 0x01, 0xbd, 0x78, 0x09,
+ 0x57, 0x4d, 0x4c, 0x57, 0x43, 0x27, 0xa8, 0x88, 0x32, 0x67, 0xed, 0x29, 0x28, 0x60, 0x9d, 0xab,
+ 0xe4, 0xab, 0xeb, 0xe4, 0xad, 0xd4, 0x48, 0x9f, 0xdd, 0xb9, 0xa6, 0xd2, 0x92, 0xba, 0x96, 0x88,
+ 0x1e, 0xde, 0x0b, 0x1e, 0x02, 0x31, 0x87, 0xd8, 0xf8, 0x8f, 0x3e, 0xed, 0x38, 0xe1, 0x11, 0x3b,
+ 0x84, 0x0c, 0xa4, 0x84, 0x73, 0xfa, 0xbd, 0x99, 0xa5, 0xb2, 0xb8, 0x85, 0x2d, 0x6c, 0xc6, 0x86,
+ 0x15, 0x4b, 0x1e, 0x15, 0x9b, 0x5a, 0x17, 0x25, 0x81, 0x3e, 0xb1, 0x8a, 0xdf, 0x56, 0xfe, 0xe8,
+ 0x41, 0xa4, 0x66, 0x41, 0xb2, 0xf1, 0x4b, 0xb1, 0xc0, 0xc6, 0x30, 0xe7, 0x25, 0xcd, 0x80, 0xce,
+ 0x19, 0x86, 0xce, 0x19, 0xf0, 0x2f, 0x41, 0x55, 0x8e, 0x07, 0xc2, 0x59, 0x11, 0x3c, 0xf4, 0x99,
+ 0x26, 0x5b, 0xec, 0x26, 0x9e, 0xc1, 0x78, 0x3a, 0xce, 0x45, 0xd2, 0x04, 0xb3, 0xc6, 0x35, 0x62,
+ 0xa0, 0x2a, 0xd1, 0xa0, 0xa1, 0x72, 0xdc, 0x0a, 0x88, 0x1d, 0x22, 0xf9, 0x02, 0xb9, 0xf0, 0x12,
+ 0x0b, 0x95, 0x15, 0x0b, 0x99, 0x6b, 0x90, 0xfd, 0x79, 0xb1, 0x8f, 0x67, 0xe7, 0xb7, 0xef, 0xd3,
+ 0x22, 0xa1, 0x1d, 0x22, 0x06, 0x53, 0x4a, 0xab, 0xcb, 0x52, 0x42, 0xf4, 0x48, 0xe0, 0x33, 0x4d,
+ 0x9d, 0x8a, 0x6a, 0x9d, 0x83, 0xd5, 0xfc, 0xcc, 0x2b, 0xb5, 0x7a, 0xdc, 0x3c, 0x50, 0x32, 0x1f,
+ 0xf5, 0x1a, 0x04, 0xf5, 0xae, 0x1c, 0x6d, 0x2b, 0x59, 0x90, 0x87, 0xa8, 0xb6, 0xca, 0x6e, 0x4f,
+ 0xda, 0xa9, 0x64, 0xda, 0xe5, 0xff, 0x9c, 0x45, 0x0d, 0x8e, 0x92, 0xb3, 0x7e, 0xa8, 0xb7, 0x08,
+ 0x37, 0xea, 0x03, 0x37, 0x9d, 0x09, 0x5d, 0x8e, 0x4a, 0x6c, 0xf3, 0x7e, 0x97, 0xb6, 0xcd, 0xa5,
+ 0xa7, 0x72, 0x14, 0xa7, 0x53, 0x6c, 0x1a, 0x87, 0xfe, 0x95, 0xde, 0x4d, 0x2b, 0x64, 0x15, 0xb0,
+ 0xcd, 0x9f, 0xe3, 0xcd, 0x32, 0xec, 0x92, 0xc9, 0x6f, 0x5a, 0x6b, 0x41, 0x3d, 0xed, 0x4a, 0x16,
+ 0x63, 0x05, 0x7b, 0x63, 0xb4, 0xa2, 0x01, 0x1a, 0x0b, 0x94, 0x72, 0x13, 0x6d, 0x2d, 0xb3, 0x83,
+ 0xbc, 0x89, 0x43, 0xbc, 0xef, 0x0a, 0x42, 0x7b, 0x93, 0x78, 0x54, 0x6c, 0xa6, 0x4b, 0xe2, 0xdf,
+ 0xe2, 0x2c, 0x83, 0xe2, 0x79, 0x0f, 0x63, 0xa7, 0x3b, 0x44, 0x7e, 0x5a, 0xf5, 0x8f, 0x93, 0x51,
+ 0xd6, 0x64, 0xb4, 0xd6, 0x8e, 0x8a, 0xca, 0x35, 0x02, 0xb7, 0xe1, 0x60, 0xb0, 0xc2, 0xbd, 0x79,
+ 0x94, 0x62, 0xe6, 0x94, 0x56, 0xf7, 0x75, 0x98, 0xb1, 0xee, 0xbd, 0xc3, 0x47, 0xf4, 0xde, 0x3a,
+ 0xa4, 0xd0, 0x20, 0xa4, 0x39, 0xe0, 0xee, 0x9b, 0x8d, 0x0a, 0xb2, 0x09, 0xf9, 0x9f, 0xf6, 0x3d,
+ 0x88, 0xc1, 0x74, 0x88, 0x18, 0x8f, 0xeb, 0xe9, 0xaa, 0x8b, 0xcb, 0x56, 0xe3, 0x06, 0xcc, 0xf7,
+ 0x62, 0xda, 0xd6, 0x62, 0x92, 0x67, 0xec, 0xaf, 0x9b, 0xe1, 0x56, 0x2f, 0x23, 0xc5, 0x53, 0xf8,
+ 0x2e, 0x6c, 0xcd, 0x2e, 0x6d, 0x26, 0x1c, 0xdb, 0xc4, 0x6b, 0x31, 0x27, 0x86, 0x8a, 0x39, 0x3c,
+ 0xc8, 0xba, 0xbf, 0xc8, 0x8c, 0xbb, 0x4d, 0xed, 0xfa, 0x38, 0xdf, 0x8d, 0x88, 0x23, 0xac, 0x42,
+ 0x18, 0x59, 0x63, 0x18, 0xd6, 0xea, 0xac, 0xe0, 0x1e, 0x72, 0xe6, 0x65, 0x5f, 0xd4, 0x14, 0xe2,
+ 0x06, 0x87, 0x68, 0x06, 0xd4, 0xdb, 0x2b, 0x38, 0xe6, 0xfd, 0xd8, 0x88, 0x67, 0x35, 0x05, 0xd9,
+ 0x16, 0xe9, 0x2a, 0x16, 0xf1, 0xd6, 0xe3, 0x39, 0xf2, 0xa1, 0xdd, 0xce, 0x0d, 0xad, 0x1d, 0x65,
+ 0x13, 0xcc, 0x76, 0x13, 0x4f, 0x81, 0x3c, 0x1d, 0x67, 0xc3, 0x69, 0x02, 0xb8, 0x63, 0xfb, 0x31,
+ 0xd2, 0x9e, 0x45, 0xd2, 0x16, 0x18, 0xf8, 0xa4, 0x07, 0xa0, 0x71, 0x90, 0x4b, 0xe4, 0xbb, 0x56,
+ 0x5b, 0x80, 0x9c, 0x5b, 0x28, 0x52, 0xfe, 0xf8, 0x3d, 0x5e, 0x9e, 0xfa, 0xe6, 0x0a, 0x97, 0xda,
+ 0xff, 0x50, 0xbc, 0xff, 0x11, 0xb2, 0x10, 0x63, 0xb0, 0x54, 0x2c, 0xf3, 0x1f, 0x95, 0x61, 0xe7,
+ 0xbb, 0xd1, 0x86, 0xbb, 0x1d, 0x14, 0x84, 0xf6, 0xe5, 0xf0, 0xa8, 0xd8, 0x8f, 0x96, 0x07, 0x7d,
+ 0xc2, 0xf0, 0x07, 0xc2, 0x33, 0x15, 0x30, 0xa5, 0x13, 0xfc, 0x74, 0xd6, 0x21, 0x7c, 0xa3, 0xea,
+ 0xb9, 0xac, 0x1f, 0xb9, 0x51, 0x5d, 0x9d, 0x5f, 0x06, 0x1a, 0xe0, 0xa0, 0x13, 0x85, 0x04, 0x8b,
+ 0xbf, 0x2b, 0x77, 0xbf, 0x85, 0x86, 0xb6, 0x67, 0xe0, 0xe7, 0x38, 0x28, 0x74, 0xb0, 0x01, 0x52,
+ 0xef, 0x3e, 0xfe, 0xef, 0x34, 0xbf, 0xd8, 0x62, 0xa4, 0x08, 0x29, 0xb5, 0x75, 0x0d, 0x79, 0x5b,
+ 0xdc, 0x2e, 0x0c, 0xdc, 0x31, 0x24, 0xb7, 0x7d, 0xeb, 0x73, 0x4a, 0x3b, 0x19, 0x9d, 0xb2, 0xd1,
+ 0x1b, 0xfb, 0x57, 0x1b, 0xbc, 0x66, 0x58, 0xfc, 0x6d, 0xed, 0x8a, 0x21, 0x8d, 0x2f, 0xf7, 0x6f,
+ 0x27, 0x84, 0x41, 0x27, 0xb8, 0x04, 0x95, 0x8f, 0x5e, 0x30, 0xf6, 0x38, 0xfd, 0x2e, 0xd5, 0x19,
+ 0x3e, 0x02, 0x8f, 0x3e, 0x48, 0x2b, 0xd4, 0xda, 0xd0, 0x37, 0x34, 0x61, 0xec, 0x12, 0x21, 0x80,
+ 0xe7, 0x09, 0xdf, 0xe7, 0xc7, 0x58, 0xbc, 0x83, 0xae, 0x26, 0xca, 0x96, 0x40, 0x41, 0x75, 0x05,
+ 0xb0, 0x44, 0x93, 0xb0, 0x84, 0x7f, 0x14, 0x0b, 0x9c, 0x41, 0x27, 0xbf, 0x68, 0x21, 0xe8, 0xae,
+ 0x69, 0x4f, 0xc3, 0x69, 0x0b, 0x0c, 0x7c, 0x52, 0xe2, 0x50, 0xd9, 0x48, 0xc4, 0x72, 0xbc, 0x2b,
+ 0x21, 0x03, 0x29, 0x21, 0x6c, 0xdf, 0xbe, 0xb7, 0xb8, 0xcd, 0x2e, 0xb0, 0x9a, 0x1b, 0xd0, 0xc0,
+ 0x0f, 0x6f, 0xe4, 0x0f, 0x01, 0xf9, 0xa2, 0x6c, 0x7c, 0xa6, 0x1f, 0x97, 0x1c, 0x91, 0xe9, 0xfc,
+ 0xf1, 0xe0, 0xf5, 0xf1, 0x36, 0x8e, 0x5f, 0xba, 0x5c, 0x87, 0x17, 0x58, 0x4d, 0xec, 0x68, 0x60,
+ 0x1a, 0x24, 0xfa, 0x1a, 0x9a, 0xa3, 0xb5, 0x49, 0xfd, 0x98, 0xae, 0x1d, 0xc3, 0xc7, 0x17, 0x14,
+ 0x0d, 0x12, 0x7d, 0x0d, 0x4d, 0xb0, 0xbb, 0xc5, 0x9f, 0x4c, 0x57, 0xef, 0x80, 0x82, 0xea, 0x0a,
+ 0xa6, 0xad, 0xb9, 0xa6, 0x75, 0xa9, 0xf7, 0x32, 0x6e, 0xe0, 0xfa, 0x71, 0x65, 0x8c, 0xf5, 0xcb,
+ 0x02, 0x7d, 0x99, 0x02, 0x4c, 0x49, 0x19, 0xa9, 0xe3, 0xea, 0x48, 0x78, 0x9c, 0x13, 0x03, 0xf6,
+ 0x6a, 0xed, 0xf7, 0x6a, 0x61, 0x80, 0x88, 0x4e, 0x91, 0xcf, 0xb5, 0x0c, 0x16, 0x89, 0x5f, 0xa6,
+ 0x08, 0x37, 0x21, 0x08, 0xf3, 0xe7, 0x64, 0xe1, 0x0a, 0x2e, 0xe3, 0x23, 0x35, 0x4c, 0x0c, 0x5e,
+ 0x4c, 0xb6, 0x1b, 0x4c, 0xff, 0x41, 0xf0, 0x74, 0x5f, 0x8a, 0x67, 0x08, 0xa5, 0x4f, 0x6a, 0xc4,
+ 0x49, 0x93, 0x47, 0x49, 0x41, 0x16, 0x2f, 0x50, 0xca, 0xe8, 0xd3, 0xc4, 0x10, 0x81, 0x8c, 0x90,
+ 0x91, 0x47, 0xba, 0x91, 0xe8, 0xa0, 0xaa, 0xbc, 0x24, 0x8c, 0x09, 0x0f, 0xf2, 0x3a, 0x38, 0x6e,
+ 0xe1, 0x8e, 0xb7, 0xe1, 0x13, 0x83, 0x97, 0xbb, 0x48, 0xdb, 0x12, 0x1e, 0x27, 0x74, 0x70, 0xdc,
+ 0x8b, 0x63, 0x40, 0x8b, 0x72, 0x03, 0x1f, 0xf5, 0xd9, 0x14, 0xa7, 0x12, 0x31, 0xfd, 0x2f, 0x7a,
+ 0x14, 0x94, 0xb3, 0x14, 0xbd, 0x9f, 0xfa, 0x90, 0x11, 0x4b, 0x95, 0xb6, 0x91, 0xbe, 0x1e, 0x93,
+ 0x95, 0xbd, 0x4b, 0x95, 0x70, 0x32, 0x98, 0x2d, 0x21, 0x9b, 0x99, 0xff, 0x09, 0x1c, 0x3e, 0x41,
+ 0xb8, 0x73, 0xb2, 0xb8, 0x77, 0x98, 0x70, 0xea, 0x96, 0x6f, 0xc4, 0x9c, 0x5d, 0x6d, 0xe4, 0xf0,
+ 0x9e, 0x28, 0x5e, 0x9e, 0xe9, 0x59, 0x08, 0xd0, 0x58, 0x2a, 0x16, 0x98, 0xee, 0xab, 0xd1, 0x92,
+ 0xeb, 0xc4, 0x0f, 0xeb, 0xac, 0x2d, 0xea, 0xf3, 0xa1, 0x1f, 0xb9, 0x45, 0x8e, 0x2b, 0x7f, 0x74,
+ 0x6e, 0x17, 0x06, 0x6e, 0xf9, 0x12, 0xba, 0xdf, 0x94, 0xd8, 0x25, 0xfc, 0xed, 0xaf, 0x59, 0x89,
+ 0xc3, 0x2f, 0xaa, 0xc3, 0x15, 0xd0, 0xdd, 0x10, 0x83, 0x89, 0x50, 0xea, 0x6f, 0x94, 0x43, 0x91,
+ 0x98, 0xaf, 0x36, 0x98, 0x3d, 0x82, 0x23, 0xe8, 0xbe, 0xd7, 0xce, 0x10, 0x89, 0x9e, 0xd4, 0x4b,
+ 0x70, 0xc9, 0x0d, 0x70, 0xfb, 0x23, 0x3d, 0x07, 0x6c, 0x57, 0x1b, 0x11, 0xd5, 0x4e, 0x48, 0xb2,
+ 0x72, 0xb4, 0x94, 0x72, 0xb7, 0x6a, 0x24, 0xae, 0x8f, 0xbd, 0x53, 0x69, 0x49, 0x5d, 0x4b, 0x44,
+ 0x04, 0xfa, 0xf1, 0x04, 0x98, 0x92, 0x32, 0x91, 0x05, 0x17, 0x90, 0xf0, 0xfb, 0x26, 0x06, 0x2f,
+ 0xed, 0x43, 0x67, 0xed, 0x78, 0xf6, 0xc1, 0xcb, 0x47, 0xe2, 0x61, 0xcd, 0xe9, 0x1e, 0x7a, 0xad,
+ 0xf2, 0x42, 0xc1, 0xf2, 0x5c, 0x02, 0xab, 0xa6, 0x2f, 0x18, 0x7b, 0x1c, 0x9f, 0x17, 0x8b, 0xed,
+ 0x47, 0x23, 0x0e, 0x47, 0x66, 0x2a, 0x60, 0x89, 0x26, 0x3b, 0xe8, 0x6f, 0x42, 0xf8, 0x85, 0x17,
+ 0x45, 0x5e, 0x97, 0x45, 0x2a, 0x63, 0x79, 0x20, 0xc5, 0xd1, 0xa0, 0x17, 0xde, 0xeb, 0x86, 0xe1,
+ 0x9a, 0xd2, 0xaf, 0x9a, 0x71, 0xcb, 0x3a, 0x41, 0x5d, 0x3d, 0x86, 0x68, 0x15, 0x8d, 0xd7, 0xbd,
+ 0xd5, 0xc6, 0x80, 0xd5, 0xe4, 0x06, 0x3e, 0x29, 0x71, 0x28, 0x8d, 0x24, 0x62, 0x39, 0x5e, 0xf4,
+ 0xd9, 0x0b, 0x50, 0xd9, 0x8f, 0x73, 0x68, 0x59, 0x7e, 0x11, 0xfe, 0xf7, 0xac, 0x53, 0x54, 0x85,
+ 0x8d, 0xe4, 0x28, 0x8d, 0xa6, 0xd8, 0x34, 0xcd, 0x3f, 0xe9, 0x7f, 0x9a, 0x56, 0xc8, 0x2a, 0xa3,
+ 0x3b, 0x27, 0xd3, 0x3b, 0xf6, 0x7c, 0x0b, 0xfe, 0x45, 0x55, 0x80, 0xad, 0x59, 0xdc, 0xc7, 0xd4,
+ 0x6f, 0xc8, 0xab, 0x6f, 0xdf, 0xd7, 0x57, 0x6a, 0x04, 0xad, 0x01, 0xc0, 0xa3, 0x47, 0xb9, 0xf2,
+ 0x4e, 0xcb, 0x82, 0x4e, 0xb3, 0x08, 0xe9, 0xdd, 0xbc, 0x60, 0x2f, 0x70, 0x39, 0x5c, 0x69, 0x32,
+ 0x34, 0x48, 0x37, 0x34, 0xf7, 0x85, 0xa9, 0x92, 0x39, 0xf3, 0x9f, 0x3a, 0x45, 0x4d, 0x2e, 0x28,
+ 0x74, 0x33, 0xfc, 0x74, 0x63, 0xb1, 0x0f, 0x96, 0x69, 0x40, 0x8b, 0xe1, 0x2e, 0x68, 0x4e, 0x9d,
+ 0x9f, 0xf7, 0xf3, 0x9f, 0xcf, 0x9c, 0xe5, 0x65, 0xc8, 0x5f, 0x32, 0xa4, 0xa0, 0x43, 0x31, 0xe9,
+ 0x7d, 0xdb, 0x70, 0x7d, 0xb6, 0x93, 0x86, 0xc2, 0xf3, 0x1b, 0x4c, 0xfe, 0x55, 0xcc, 0xa2, 0xb8,
+ 0x61, 0x78, 0xe2, 0x61, 0xf8, 0xeb, 0x18, 0xb3, 0xe8, 0x7e, 0x3a, 0x6b, 0xf1, 0x3e, 0xb0, 0x75,
+ 0x31, 0x6d, 0x6b, 0x31, 0x49, 0xd2, 0x76, 0xb6, 0xac, 0x91, 0x2b, 0xf6, 0xf0, 0x83, 0xc8, 0x7c,
+ 0x09, 0xe8, 0x8c, 0x09, 0xd5, 0x22, 0x89, 0x54, 0x9a, 0x5b, 0xc7, 0x1f, 0x7b, 0xa4, 0xec, 0x25,
+ 0x12, 0x13, 0xdb, 0x12, 0x69, 0x44, 0xd1, 0xa8, 0xf7, 0xb6, 0x4d, 0x3e, 0xf6, 0x8b, 0x1b, 0x4a,
+ 0x64, 0x5d, 0xbe, 0x64, 0x46, 0xbc, 0xc7, 0x97, 0x7d, 0x1c, 0x8e, 0xa7, 0x44, 0xf0, 0x56, 0x21,
+ 0xd7, 0xbb, 0x19, 0xd7, 0xa8, 0x4f, 0x27, 0x80, 0x92, 0xc2, 0xc5, 0x5c, 0xfe, 0x2a, 0x5d, 0x02,
+ 0x93, 0x3a, 0x23, 0x93, 0xa4, 0xe9, 0xb3, 0x15, 0xc7, 0x66, 0x41, 0x77, 0x6e, 0x29, 0x3b, 0x98,
+ 0x3a, 0xf8, 0x7e, 0x3a, 0xd0, 0xb9, 0xe6, 0x4b, 0xd5, 0x20, 0xa4, 0x91, 0x17, 0x34, 0x27, 0xaf,
+ 0xa3, 0x88, 0xe5, 0xa3, 0xcb, 0xfe, 0x28, 0x16, 0xfb, 0x82, 0x4e, 0xbd, 0xd0, 0x42, 0x13, 0x9f,
+ 0xad, 0x38, 0xac, 0xad, 0xec, 0xc2, 0x67, 0xcf, 0x17, 0x51, 0x75, 0x16, 0x82, 0x3b, 0x1a, 0x18,
+ 0x1c, 0xa3, 0x92, 0x1c, 0x4e, 0x78, 0x9e, 0x71, 0x1b, 0x65, 0x76, 0x95, 0xa4, 0xf2, 0x12, 0xcd,
+ 0x7e, 0x79, 0x44, 0x7e, 0xdc, 0x1f, 0x72, 0xde, 0x80, 0x84, 0x20, 0xba, 0x87, 0x37, 0x41, 0x35,
+ 0x76, 0x4e, 0x65, 0x76, 0x2f, 0xf8, 0x16, 0x3f, 0x8a, 0xaa, 0xc3, 0x99, 0xb2, 0x7b, 0x4d, 0x6b,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x33, 0x10, 0xf2, 0x33, 0x05, 0x9b, 0x6f, 0x1f, 0x4f, 0x7b, 0x63, 0x8e, 0x6c, 0x90, 0xcb, 0x8a,
+ 0xf7, 0x67, 0x9d, 0xf7, 0xe2, 0x55, 0x74, 0x82, 0xba, 0x7a, 0xcf, 0xd0, 0x2a, 0xd9, 0x6d, 0xb9,
+ 0x28, 0xeb, 0xa5, 0x28, 0xb9, 0xfd, 0x37, 0xe3, 0x22, 0x96, 0xe9, 0xaf, 0xe1, 0xbf, 0x3c, 0xe5,
+ 0x23, 0x7e, 0xb0, 0x23, 0x20, 0x96, 0xa7, 0x1e, 0x5b, 0x27, 0x66, 0xc8, 0x06, 0x08, 0xd3, 0x36,
+ 0xb2, 0x39, 0x0a, 0xb2, 0xc8, 0x36, 0x0d, 0xa2, 0x7f, 0xab, 0x6f, 0xc7, 0xf4, 0x32, 0xeb, 0x58,
+ 0xbe, 0xf4, 0xda, 0xbe, 0xa3, 0x43, 0x5b, 0xd2, 0x70, 0x92, 0x1c, 0x14, 0x3a, 0x58, 0xe1, 0x29,
+ 0x42, 0x06, 0x52, 0x42, 0xd8, 0x7d, 0xbf, 0xad, 0xb3, 0x59, 0x5c, 0xa3, 0xf7, 0x36, 0x63, 0x43,
+ 0x11, 0xb1, 0xef, 0x11, 0x03, 0xc8, 0x25, 0xb4, 0x84, 0x29, 0x21, 0x7a, 0x24, 0x70, 0xf8, 0xc7,
+ 0xc4, 0x77, 0x6f, 0xc4, 0xe7, 0xce, 0x1b, 0x9d, 0xf5, 0x01, 0xac, 0x5e, 0x46, 0x49, 0xa6, 0x33,
+ 0x5f, 0x7a, 0x6d, 0x5f, 0xb0, 0xc0, 0xcc, 0x69, 0x38, 0x49, 0x0e, 0x0a, 0x1d, 0x2c, 0x91, 0xf5,
+ 0x30, 0xb2, 0xc6, 0x30, 0x6f, 0x17, 0x9b, 0x03, 0x3c, 0xe4, 0x0f, 0xca, 0xbe, 0x6b, 0x28, 0x07,
+ 0x01, 0xdf, 0xad, 0x01, 0x26, 0xc5, 0xed, 0xb5, 0x90, 0x75, 0x24, 0x3c, 0x4e, 0xe8, 0xe0, 0x7b,
+ 0xd8, 0xd4, 0xfd, 0xd8, 0xa9, 0xb6, 0x85, 0xec, 0xee, 0x64, 0xda, 0xcb, 0xe2, 0xbb, 0xb4, 0xfe,
+ 0x05, 0x25, 0x5c, 0x05, 0xbe, 0x57, 0xdf, 0x24, 0x95, 0x62, 0xb4, 0xcc, 0xb5, 0xce, 0xe6, 0x54,
+ 0x32, 0xcf, 0x5f, 0x32, 0x23, 0x5e, 0x82, 0xaa, 0xdf, 0x0e, 0x47, 0xb2, 0x22, 0x78, 0x2b, 0xf1,
+ 0xdf, 0x8c, 0x38, 0xdf, 0x5b, 0xa8, 0x43, 0x61, 0x98, 0xec, 0x26, 0x7f, 0xcb, 0x66, 0x51, 0x5c,
+ 0xba, 0x0e, 0x2b, 0xba, 0x3b, 0xd1, 0x69, 0x43, 0x75, 0x85, 0x8c, 0xe4, 0xc1, 0x7e, 0xe7, 0x06,
+ 0x8e, 0x46, 0x1c, 0x8e, 0xcc, 0x54, 0xc0, 0xd1, 0x4c, 0x76, 0x13, 0xde, 0x84, 0x33, 0xc9, 0x2e,
+ 0x73, 0x6b, 0x39, 0x73, 0x91, 0xaf, 0xc9, 0x1b, 0x1f, 0xc8, 0x77, 0x55, 0x07, 0xb5, 0xab, 0x3f,
+ 0xfd, 0x2d, 0x25, 0xfd, 0x5d, 0xfb, 0x09, 0xca, 0x53, 0xbe, 0x64, 0x8b, 0x83, 0x86, 0x62, 0x11,
+ 0x8c, 0x3b, 0x85, 0x8c, 0x80, 0x1d, 0xd9, 0x78, 0xaf, 0x9c, 0x5b, 0xa6, 0x18, 0x20, 0xca, 0xd8,
+ 0xb3, 0xe6, 0xa7, 0xb3, 0xee, 0xf3, 0xe0, 0x17, 0xef, 0xde, 0x4b, 0xfb, 0xba, 0xda, 0x0b, 0x23,
+ 0x56, 0x92, 0xe1, 0x56, 0x65, 0xe2, 0x45, 0x3d, 0xa2, 0x12, 0xc9, 0x15, 0x66, 0x88, 0x7d, 0xd0,
+ 0x2b, 0x49, 0x91, 0x2b, 0xd3, 0x71, 0xc3, 0xff, 0x51, 0x09, 0x85, 0xeb, 0x33, 0x44, 0xdf, 0x68,
+ 0x82, 0x8b, 0xcc, 0x82, 0xa7, 0x21, 0x96, 0xa1, 0x43, 0x4f, 0x60, 0x0d, 0x4a, 0x59, 0xc3, 0x5f,
+ 0x6b, 0x32, 0x5a, 0x6b, 0x47, 0x45, 0x65, 0xfb, 0x01, 0xba, 0x91, 0x30, 0x58, 0x61, 0xbf, 0xdd,
+ 0x87, 0xae, 0x90, 0x87, 0x19, 0x76, 0x49, 0x85, 0xd6, 0x2d, 0xd4, 0xc1, 0xff, 0x97, 0x25, 0x0b,
+ 0xae, 0x9a, 0x98, 0xae, 0x86, 0x4e, 0x93, 0xd3, 0x64, 0xce, 0x19, 0x52, 0x50, 0xc0, 0xf9, 0x95,
+ 0x46, 0xfc, 0xa3, 0x46, 0x40, 0xef, 0x8d, 0x3c, 0xb6, 0x4e, 0xcc, 0x53, 0x0c, 0x10, 0x65, 0x6c,
+ 0xa9, 0xc2, 0x5d, 0xa9, 0x74, 0x50, 0x55, 0x5e, 0x12, 0x46, 0xe5, 0xe6, 0x79, 0x1d, 0x1c, 0x37,
+ 0xe0, 0x51, 0x1a, 0xe0, 0x35, 0x46, 0x7a, 0x0e, 0xd8, 0xae, 0x36, 0x22, 0x69, 0x9c, 0x90, 0xa7,
+ 0xc6, 0x0a, 0xf6, 0xc6, 0xab, 0x87, 0x02, 0x34, 0x16, 0xeb, 0xe4, 0x26, 0xda, 0x5a, 0xa5, 0xc5,
+ 0xaf, 0x45, 0x35, 0xaf, 0xa0, 0x8b, 0x7e, 0x66, 0xf4, 0xbb, 0x3d, 0x6e, 0x1e, 0x28, 0x19, 0xee,
+ 0xb1, 0x9b, 0x3e, 0xb1, 0xa2, 0xba, 0xf9, 0xbe, 0x0c, 0x34, 0x03, 0x83, 0x26, 0xc9, 0x08, 0xd5,
+ 0x0e, 0xb0, 0x49, 0x0e, 0x27, 0x3c, 0x4f, 0xd9, 0xec, 0xd3, 0x3b, 0xab, 0x52, 0x79, 0x09, 0x87,
+ 0x89, 0x1e, 0xd9, 0x89, 0x3e, 0x4a, 0x06, 0x5c, 0x3a, 0xfe, 0xef, 0x6a, 0xad, 0xee, 0x2c, 0x8c,
+ 0x79, 0x21, 0x81, 0x79, 0x2e, 0x01, 0xb4, 0x53, 0xf6, 0x0c, 0xdc, 0x0e, 0xae, 0xea, 0xa4, 0x97,
+ 0xd3, 0x41, 0xe8, 0xd3, 0x30, 0xdd, 0x15, 0x11, 0x97, 0xd5, 0x55, 0xac, 0x05, 0x0c, 0x5b, 0x2d,
+ 0x2d, 0xce, 0xf9, 0x2d, 0x07, 0xaa, 0xe8, 0xc7, 0xb7, 0xf4, 0x5d, 0x63, 0x54, 0x71, 0xda, 0xb1,
+ 0xc9, 0x65, 0x12, 0xc9, 0xaa, 0x7e, 0xa0, 0x58, 0x6a, 0x4d, 0xfb, 0xb1, 0xc6, 0xcb, 0x4c, 0x39,
+ 0x0a, 0x4a, 0xb8, 0x0a, 0xbf, 0xae, 0x7d, 0x48, 0xe9, 0xc4, 0xab, 0x5b, 0xa9, 0x5f, 0x0f, 0xa8,
+ 0xdb, 0x76, 0xc9, 0xdb, 0xc3, 0x3a, 0x71, 0xf0, 0x9d, 0xfb, 0xb6, 0x8f, 0x30, 0x40, 0x57, 0x73,
+ 0x7b, 0x5c, 0x18, 0x7b, 0x62, 0x48, 0xad, 0xfa, 0x15, 0xe6, 0x94, 0x76, 0x32, 0xf9, 0xa7, 0x61,
+ 0xde, 0x53, 0x95, 0xde, 0x7d, 0x6d, 0xae, 0xd4, 0x08, 0x99, 0x02, 0x43, 0x85, 0x8e, 0xb1, 0x27,
+ 0x48, 0x4c, 0xea, 0x48, 0x67, 0xd3, 0xc2, 0xe5, 0x5a, 0x9d, 0xf7, 0xf8, 0x5e, 0x69, 0x6c, 0xeb,
+ 0xe3, 0xf3, 0x2e, 0xe3, 0x5f, 0xca, 0x8e, 0x12, 0xab, 0x31, 0x5a, 0x66, 0xbb, 0x67, 0x73, 0x2a,
+ 0x4b, 0xee, 0xde, 0x4b, 0x0d, 0x5f, 0x36, 0xf9, 0x29, 0x02, 0x9b, 0xbc, 0x8c, 0x92, 0x8f, 0x66,
+ 0x35, 0x97, 0x9a, 0x35, 0xd1, 0x40, 0x44, 0x27, 0xa9, 0x86, 0xbb, 0x06, 0x0b, 0xa5, 0xce, 0x53,
+ 0x8a, 0xbc, 0xed, 0x8a, 0x54, 0xc6, 0xf2, 0x40, 0x49, 0x61, 0x83, 0x2e, 0x7f, 0x15, 0xcf, 0x01,
+ 0xfb, 0xaa, 0x4d, 0xfb, 0x89, 0x20, 0x22, 0xf2, 0xb5, 0x43, 0xbc, 0x03, 0xe4, 0xb3, 0x67, 0xc8,
+ 0x85, 0xd3, 0x09, 0x85, 0x55, 0x3f, 0x50, 0x2c, 0x35, 0xc7, 0x9c, 0xb9, 0x63, 0x84, 0x26, 0xfd,
+ 0xcb, 0x18, 0x8b, 0xcb, 0xe6, 0x37, 0xb9, 0xf1, 0x89, 0xa7, 0xb3, 0xc9, 0x5a, 0xd8, 0x4f, 0xcf,
+ 0xb7, 0x1c, 0x56, 0xb7, 0x76, 0x61, 0xd2, 0x86, 0xea, 0xc9, 0xdb, 0x0b, 0x41, 0xfc, 0x0d, 0x0c,
+ 0x2a, 0x96, 0x3c, 0x2a, 0xf5, 0xb4, 0x2e, 0x4a, 0xc1, 0x7c, 0xa1, 0xd7, 0x7d, 0xac, 0x3f, 0x13,
+ 0xab, 0xbf, 0xc4, 0xab, 0x38, 0x19, 0x4c, 0xf7, 0xf1, 0xac, 0xad, 0x9e, 0xe5, 0x0e, 0x1f, 0xc1,
+ 0x3f, 0xdd, 0x22, 0x3f, 0x6e, 0xee, 0x39, 0x6f, 0x40, 0x42, 0x10, 0x5d, 0xa2, 0xfa, 0xc1, 0xfb,
+ 0x39, 0x5a, 0x4a, 0x39, 0xba, 0x35, 0x12, 0x57, 0xa6, 0xbf, 0xc8, 0xd5, 0xc5, 0xcf, 0xc4, 0x22,
+ 0xea, 0x1b, 0xa2, 0xea, 0x8a, 0xe8, 0x07, 0x46, 0x31, 0x6a, 0x9d, 0x79, 0xc0, 0xc3, 0x9f, 0x0f,
+ 0xb5, 0x61, 0xcf, 0xb5, 0x3a, 0x28, 0xcb, 0x2f, 0x09, 0x23, 0x93, 0x73, 0xdd, 0xef, 0x0e, 0xfa,
+ 0x51, 0xca, 0x24, 0x51, 0x97, 0xfc, 0x83, 0xb0, 0xd4, 0x9a, 0x35, 0xa1, 0x4f, 0x55, 0x98, 0x72,
+ 0x9b, 0x0d, 0x02, 0x9b, 0x57, 0x0e, 0xd7, 0xf4, 0xcd, 0x48, 0xa2, 0x54, 0x5b, 0x65, 0x37, 0xc6,
+ 0x7a, 0x83, 0xb5, 0x7a, 0x44, 0x8d, 0x40, 0x4f, 0x85, 0x93, 0xb0, 0x4a, 0x7c, 0x11, 0x47, 0x1a,
+ 0xa1, 0xf5, 0x7c, 0xa1, 0x87, 0xb7, 0x31, 0xbf, 0x18, 0x68, 0x06, 0xc5, 0x4c, 0x51, 0x10, 0x69,
+ 0xd0, 0xe3, 0xdc, 0xd0, 0x5a, 0x51, 0xe1, 0x0d, 0xe4, 0x4a, 0x39, 0xe8, 0xd7, 0xf7, 0xb8, 0xa0,
+ 0x4a, 0x31, 0x73, 0x4a, 0x2b, 0x9a, 0xdb, 0x4c, 0xb9, 0x77, 0xbf, 0x80, 0xc2, 0x7a, 0x6f, 0x1d,
+ 0x77, 0x91, 0xc8, 0x77, 0x09, 0x3d, 0xfb, 0x8a, 0x1a, 0xdf, 0xe7, 0xa5, 0xfc, 0x93, 0xad, 0x10,
+ 0x5d, 0x07, 0xf4, 0x5d, 0xfc, 0x89, 0xd5, 0xc0, 0xdb, 0xa3, 0x46, 0x72, 0x81, 0x3f, 0x92, 0x03,
+ 0x4f, 0x14, 0x2f, 0x4f, 0x95, 0xcd, 0x04, 0x68, 0x2c, 0x15, 0x0b, 0x4c, 0x77, 0xb4, 0x89, 0x49,
+ 0x1d, 0x7c, 0x3f, 0x1d, 0x68, 0xbd, 0x73, 0xc4, 0x8b, 0x10, 0x52, 0xa9, 0xea, 0x1a, 0xf2, 0xb6,
+ 0x83, 0x54, 0x61, 0x83, 0x81, 0xe4, 0x7b, 0x14, 0xd3, 0x3a, 0x44, 0x31, 0x04, 0xb1, 0x23, 0x24,
+ 0x52, 0x68, 0x10, 0x52, 0xfd, 0x70, 0x77, 0xac, 0xa7, 0x05, 0x59, 0xe5, 0x9d, 0xae, 0x7b, 0xff,
+ 0x25, 0xf9, 0xd8, 0x25, 0xf4, 0x4d, 0x8c, 0x26, 0xbd, 0xda, 0xbe, 0x40, 0x61, 0x3d, 0xd6, 0xef,
+ 0xfe, 0x8f, 0x11, 0xfe, 0x37, 0x77, 0xfd, 0xd6, 0x20, 0x21, 0x08, 0xcf, 0x51, 0x7d, 0x81, 0x9c,
+ 0x3d, 0xa0, 0xbb, 0x3d, 0x22, 0xa7, 0x20, 0xc6, 0xa3, 0xa8, 0x58, 0x25, 0x3e, 0xe9, 0xc2, 0x0d,
+ 0x58, 0x22, 0xa8, 0x58, 0x42, 0xde, 0x0a, 0xe4, 0x4e, 0xc1, 0xf2, 0xbe, 0x34, 0xf1, 0x74, 0x57,
+ 0x55, 0x30, 0xd5, 0x55, 0x0f, 0x6e, 0xb1, 0x21, 0xd1, 0x8d, 0xa5, 0x51, 0xb4, 0x73, 0x9e, 0x5d,
+ 0xf9, 0xd7, 0xd4, 0xf9, 0xc5, 0x69, 0x3b, 0x5b, 0x56, 0xa9, 0xf4, 0x7b, 0x78, 0xa0, 0x64, 0x3e,
+ 0xac, 0xe7, 0x01, 0xac, 0xca, 0x07, 0x8a, 0x7a, 0x87, 0x24, 0x51, 0x2a, 0xcc, 0xd3, 0xfa, 0x63,
+ 0xfc, 0xf2, 0x88, 0xfc, 0x7b, 0x3e, 0xe4, 0x7f, 0xc3, 0xcb, 0x40, 0xb7, 0xcd, 0x6e, 0x82, 0x6a,
+ 0x68, 0x90, 0x6e, 0x68, 0x2d, 0xc9, 0x91, 0xe7, 0x72, 0x25, 0xfd, 0x74, 0x8a, 0x9a, 0x5c, 0x50,
+ 0xc1, 0x52, 0x33, 0xc1, 0x59, 0x99, 0xc4, 0xb9, 0x60, 0x63, 0x18, 0x92, 0xf3, 0x87, 0x40, 0x67,
+ 0x38, 0x85, 0xe7, 0x38, 0x9c, 0xf0, 0xff, 0xe2, 0x36, 0xca, 0xec, 0xe9, 0x8b, 0x27, 0x24, 0x59,
+ 0x75, 0xec, 0x51, 0x75, 0x45, 0x74, 0xe2, 0x23, 0xf9, 0x35, 0xaf, 0xdd, 0x60, 0x80, 0xae, 0xe6,
+ 0x6d, 0xb5, 0x32, 0x6d, 0x93, 0x9e, 0x4e, 0xc3, 0xe7, 0x47, 0x49, 0xb8, 0x3f, 0x54, 0xba, 0x04,
+ 0x1f, 0x01, 0xa6, 0x1f, 0x24, 0xf4, 0x6a, 0x6d, 0x68, 0xfa, 0x1a, 0xd1, 0x76, 0x09, 0xf1, 0x40,
+ 0x17, 0x36, 0x87, 0x17, 0xd7, 0x13, 0x0e, 0x8c, 0x62, 0xd4, 0xf9, 0xf2, 0x43, 0x45, 0xfd, 0x1e,
+ 0x44, 0x81, 0x3a, 0x44, 0x0c, 0xa6, 0x94, 0x95, 0x55, 0xa4, 0x84, 0x2b, 0x90, 0x03, 0x66, 0x9a,
+ 0xcc, 0x40, 0x4e, 0xcc, 0x14, 0x29, 0x7f, 0x7c, 0xff, 0x2f, 0x4f, 0x7d, 0x73, 0x05, 0xaa, 0x6d,
+ 0xc5, 0xa8, 0xc2, 0xc5, 0xc1, 0x0b, 0xf6, 0x28, 0x65, 0x74, 0x88, 0x62, 0x08, 0xa1, 0x46, 0x48,
+ 0xee, 0xe1, 0x53, 0xee, 0x12, 0x7a, 0x35, 0xd7, 0x34, 0x7d, 0x0d, 0x89, 0x3b, 0xe5, 0x99, 0x20,
+ },
+ { /* 11 */
+ 0xfe, 0x50, 0x71, 0x7c, 0xfc, 0x9b, 0xad, 0x09, 0xfc, 0x5e, 0x38, 0x3f, 0x3f, 0x68, 0x53, 0x1b,
+ 0x6d, 0x9f, 0xd8, 0xf4, 0xee, 0xe2, 0xd1, 0xe9, 0xee, 0x90, 0x3c, 0xda, 0xda, 0xa3, 0xbc, 0xf8,
+ 0x53, 0x94, 0xe4, 0x01, 0xdd, 0x92, 0x0e, 0x3a, 0xdd, 0xb8, 0xb0, 0xa6, 0xa6, 0x24, 0x5d, 0x4e,
+ 0xab, 0xb8, 0x14, 0x53, 0x11, 0x91, 0xf4, 0xf0, 0x11, 0x18, 0xc5, 0x95, 0x95, 0x7d, 0x5f, 0xd3,
+ 0xc0, 0x5b, 0x4d, 0x89, 0xcf, 0xeb, 0x72, 0xda, 0xcf, 0x76, 0xb4, 0x43, 0x43, 0xef, 0xb2, 0xad,
+ 0x7d, 0xbd, 0xa6, 0x24, 0x6e, 0x65, 0x3b, 0xa4, 0x6e, 0xc4, 0x27, 0xfa, 0xfa, 0x9a, 0x46, 0x2f,
+ 0xaf, 0x51, 0xea, 0x67, 0x31, 0xc0, 0x2f, 0x72, 0x31, 0x0d, 0xb3, 0x9d, 0x9d, 0xe2, 0x80, 0x96,
+ 0x72, 0x7b, 0xc6, 0x6f, 0x16, 0xda, 0x5f, 0x61, 0x16, 0x84, 0x7a, 0xe4, 0xe4, 0x01, 0x2d, 0xa3,
+ 0x27, 0x93, 0xa3, 0x40, 0xfb, 0xd0, 0x06, 0x98, 0xfb, 0xc2, 0x87, 0x4e, 0x4e, 0x14, 0x21, 0x6b,
+ 0xf9, 0x87, 0x2e, 0x5f, 0xc4, 0x86, 0xbc, 0x0b, 0xc4, 0x34, 0x89, 0x31, 0x31, 0x0e, 0x45, 0x1d,
+ 0x8e, 0xbe, 0xc8, 0x09, 0xfa, 0x88, 0x7e, 0x29, 0xfa, 0x31, 0x79, 0xdf, 0xdf, 0xc7, 0xf0, 0x7b,
+ 0x8a, 0x57, 0x36, 0x3d, 0xda, 0xd9, 0xa5, 0xab, 0xda, 0x24, 0x0f, 0xd7, 0xd7, 0x58, 0x2f, 0x3e,
+ 0x3c, 0x9e, 0x43, 0xef, 0x23, 0xb9, 0x53, 0x92, 0x23, 0xc3, 0xb7, 0x78, 0x78, 0x29, 0x6f, 0x75,
+ 0x50, 0xaa, 0x45, 0x16, 0xc5, 0xde, 0xc4, 0xba, 0xc5, 0xc7, 0x77, 0xa0, 0xa0, 0xdd, 0x94, 0x0d,
+ 0xe1, 0xb4, 0x6f, 0xe7, 0x04, 0xa3, 0x23, 0x81, 0x04, 0x4a, 0x7e, 0x01, 0x01, 0xca, 0xc2, 0x40,
+ 0x41, 0x23, 0xe5, 0xcb, 0x4d, 0xdc, 0x68, 0x36, 0x4d, 0x07, 0x90, 0x82, 0x82, 0xb3, 0x29, 0x5a,
+ 0xb4, 0x5c, 0x0a, 0xc8, 0xe9, 0xa9, 0x7a, 0x78, 0xe9, 0x0c, 0x83, 0xab, 0xab, 0xdf, 0xce, 0x88,
+ 0xd7, 0xae, 0x6c, 0x7a, 0x77, 0x71, 0x89, 0x95, 0x77, 0x48, 0x1e, 0x6d, 0x6d, 0xb0, 0x5e, 0x7c,
+ 0x1e, 0x4f, 0xc0, 0x96, 0xf0, 0xbd, 0xc8, 0x49, 0xf0, 0x80, 0xba, 0x3c, 0x3c, 0xf5, 0xd6, 0xdb,
+ 0x23, 0x7a, 0x5d, 0x74, 0xdb, 0x81, 0xdd, 0x1a, 0xdb, 0xd7, 0xf1, 0x46, 0x46, 0x8b, 0xfe, 0x2e,
+ 0x2a, 0xc0, 0xbc, 0x11, 0x93, 0xa6, 0xee, 0x1c, 0x93, 0x69, 0xe1, 0x54, 0x54, 0x21, 0xc4, 0x24,
+ 0x75, 0xac, 0x99, 0x4c, 0x2e, 0xc7, 0x4e, 0x63, 0x2e, 0xee, 0xcb, 0xea, 0xea, 0x67, 0x3b, 0xa5,
+ 0xba, 0x31, 0xb4, 0x8e, 0x99, 0x93, 0x58, 0x7c, 0x99, 0xd8, 0x22, 0xb7, 0xb7, 0x13, 0xe2, 0x84,
+ 0x86, 0xaf, 0xf7, 0x61, 0xba, 0x2a, 0x0b, 0xee, 0xba, 0x1b, 0x95, 0xcf, 0xcf, 0x3a, 0x8d, 0xf1,
+ 0xdb, 0x56, 0xad, 0x26, 0x17, 0x82, 0x27, 0xd0, 0x17, 0x77, 0x84, 0x75, 0x75, 0xd2, 0xfc, 0xb3,
+ 0x76, 0x92, 0x38, 0x5b, 0x36, 0x8b, 0x84, 0xe3, 0x36, 0x91, 0x0c, 0xec, 0xec, 0x9e, 0xf2, 0xe6,
+ 0xb7, 0x62, 0xab, 0xdf, 0xf1, 0xe5, 0xb0, 0xf8, 0xf1, 0x73, 0x44, 0xad, 0xad, 0x26, 0x07, 0xcb,
+ 0x2f, 0x82, 0x9c, 0x28, 0xbb, 0x72, 0x73, 0x5f, 0xbb, 0xe8, 0x6b, 0x5e, 0x5e, 0xe9, 0x5c, 0xe1,
+ 0xe3, 0x21, 0x10, 0xfd, 0x14, 0x6a, 0xaf, 0xc0, 0x14, 0xa1, 0x45, 0x05, 0x05, 0x64, 0x4c, 0x83,
+ 0x51, 0x01, 0x9b, 0x1b, 0xcd, 0x5b, 0x82, 0x7b, 0xcd, 0x53, 0x8b, 0xa2, 0xa2, 0x8a, 0xd3, 0x8d,
+ 0xd2, 0xec, 0x4c, 0x43, 0x5f, 0xa5, 0x14, 0xd6, 0x5f, 0xc9, 0x94, 0x67, 0x67, 0x78, 0xc6, 0xb9,
+ 0xb1, 0x1e, 0x2a, 0xf1, 0xc1, 0x7d, 0xe7, 0x3b, 0xc1, 0x8d, 0x09, 0xa1, 0xa1, 0x17, 0x56, 0x4d,
+ 0xb6, 0xc9, 0x75, 0xd2, 0xf9, 0x60, 0xf6, 0x39, 0xf9, 0xe7, 0xb8, 0xaf, 0xaf, 0x71, 0x40, 0x4b,
+ 0x03, 0x3e, 0xa1, 0x17, 0x18, 0x4c, 0xca, 0x80, 0x18, 0x7f, 0xc7, 0x06, 0x06, 0xf9, 0xc9, 0x43,
+ 0x44, 0x61, 0xc5, 0xf2, 0x65, 0x08, 0xf5, 0x75, 0x65, 0x86, 0x1a, 0x88, 0x88, 0x7b, 0xb1, 0x9f,
+ 0x9a, 0x75, 0x48, 0xed, 0x5a, 0x5e, 0x4f, 0xe6, 0x5a, 0x70, 0x14, 0xf7, 0xf7, 0x61, 0xd5, 0xe9,
+ 0x8d, 0x80, 0x69, 0x1e, 0xe2, 0xc4, 0xb4, 0xa9, 0xe2, 0x4e, 0xbe, 0xd9, 0xd9, 0x3e, 0x39, 0x38,
+ 0xea, 0x9b, 0xf1, 0x98, 0x5c, 0x4d, 0x9c, 0xc6, 0x5c, 0x1f, 0x55, 0x17, 0x17, 0xce, 0x76, 0x89,
+ 0xc4, 0xb2, 0xb3, 0xbd, 0xef, 0xba, 0xa9, 0x58, 0xef, 0x63, 0xc2, 0x4b, 0x4b, 0x70, 0x6d, 0xe8,
+ 0xad, 0xc4, 0x95, 0x7d, 0x21, 0x09, 0xa3, 0x33, 0x21, 0xe6, 0x88, 0x99, 0x99, 0x4c, 0x0e, 0x55,
+ 0xb9, 0x0f, 0x15, 0x99, 0x81, 0xdf, 0x92, 0xfc, 0x81, 0xa7, 0xe5, 0xb1, 0xb1, 0xea, 0x2b, 0xc7,
+ 0xe2, 0x8a, 0xce, 0xf0, 0x1c, 0xef, 0xe9, 0x01, 0x1c, 0x35, 0xb9, 0x07, 0x07, 0x33, 0x0b, 0x03,
+ 0xe6, 0x63, 0x30, 0xc4, 0x3c, 0xbe, 0x32, 0x83, 0x3c, 0x20, 0xcf, 0x0f, 0x0f, 0xac, 0xd4, 0x46,
+ 0x99, 0x4b, 0xe9, 0xfa, 0x42, 0x12, 0x85, 0x66, 0x42, 0x0f, 0xd3, 0xf1, 0xf1, 0x98, 0x1c, 0xaa,
+ 0x29, 0xfe, 0x1d, 0x06, 0x8b, 0xea, 0x24, 0x9c, 0x8b, 0x16, 0x26, 0x52, 0x52, 0xd8, 0x0d, 0x67,
+ 0xa9, 0x2d, 0x6b, 0x49, 0x01, 0x58, 0x78, 0xb1, 0x01, 0xf3, 0xfe, 0x91, 0x91, 0xd3, 0xd1, 0x10,
+ 0x61, 0x67, 0x19, 0xa8, 0x8e, 0x11, 0x7f, 0xac, 0x8e, 0xaf, 0xa6, 0xc2, 0xc2, 0xc1, 0x1e, 0x37,
+ 0xd0, 0x79, 0x33, 0x59, 0x4f, 0x6c, 0x98, 0x97, 0x4f, 0x22, 0xaf, 0x63, 0x63, 0xd6, 0x48, 0x7a,
+ 0x48, 0x99, 0x04, 0xae, 0x05, 0xfb, 0x5b, 0x30, 0x05, 0xb9, 0x80, 0x90, 0x90, 0x19, 0x13, 0x50,
+ 0xf1, 0x96, 0x11, 0x37, 0x84, 0x24, 0xc9, 0xcc, 0x84, 0x1e, 0x65, 0x21, 0x21, 0xf3, 0x38, 0x97,
+ 0x91, 0x5a, 0xd6, 0x92, 0x02, 0xb0, 0xf0, 0xa1, 0x02, 0x25, 0x3f, 0xe1, 0xe1, 0x65, 0x61, 0x20,
+ 0x65, 0x8e, 0xe7, 0x9c, 0xae, 0x40, 0xa4, 0x2e, 0xae, 0xba, 0xd0, 0xca, 0xca, 0x5e, 0xc1, 0x72,
+ 0x24, 0xad, 0x02, 0x57, 0xe3, 0x9c, 0xcc, 0x18, 0xe3, 0xbd, 0x40, 0x48, 0x48, 0xed, 0xe8, 0x28,
+ 0x9c, 0x09, 0xc9, 0xc3, 0x6a, 0xc6, 0x18, 0x25, 0x6a, 0x8e, 0x59, 0xfb, 0xfb, 0x50, 0x84, 0x6f,
+ 0xc8, 0x4a, 0x72, 0xe1, 0x8f, 0x49, 0x07, 0x1d, 0x8f, 0x5c, 0x58, 0x53, 0x53, 0x12, 0xcf, 0x27,
+ 0x14, 0xcb, 0x80, 0xe4, 0xa0, 0xd6, 0x31, 0xcf, 0xa0, 0x41, 0x6d, 0x28, 0x28, 0xa6, 0x25, 0x92,
+ 0x70, 0xee, 0xb9, 0x75, 0x06, 0x13, 0xd3, 0x20, 0x06, 0x6f, 0x41, 0xe0, 0xe0, 0xaf, 0xa3, 0x60,
+ 0x39, 0xdc, 0x63, 0xd6, 0x0b, 0x6d, 0xce, 0xd1, 0x0b, 0x42, 0x3d, 0x72, 0x72, 0xe1, 0xf7, 0xb0,
+ 0x55, 0xe8, 0x65, 0x2f, 0xed, 0x0a, 0x59, 0xf9, 0xed, 0x46, 0xfd, 0xaa, 0xaa, 0x15, 0x0c, 0xc8,
+ 0x13, 0x1c, 0xdf, 0xc7, 0x98, 0xcb, 0x20, 0xcd, 0x98, 0x2b, 0xdc, 0x26, 0x26, 0xc0, 0x33, 0x94,
+ 0xd6, 0x05, 0xb2, 0x77, 0x7f, 0xf4, 0xcf, 0x54, 0x7f, 0xdc, 0xe2, 0x6f, 0x6f, 0xe7, 0x19, 0xfc,
+ 0xfb, 0x12, 0x51, 0x45, 0xd4, 0x4f, 0x30, 0x4a, 0xd4, 0xdf, 0xb2, 0x35, 0x35, 0xa0, 0xcb, 0xde,
+ 0x22, 0xd1, 0x83, 0x79, 0xd3, 0x04, 0x9b, 0xdb, 0xd3, 0x43, 0x0d, 0x44, 0x44, 0xdc, 0xb9, 0xae,
+ 0xda, 0xfd, 0x73, 0x2b, 0x1f, 0x07, 0x61, 0x11, 0x1f, 0xe3, 0x78, 0x77, 0x77, 0x85, 0xbb, 0x33,
+ 0x25, 0x06, 0xdc, 0x5a, 0xeb, 0x19, 0x8a, 0xd9, 0xeb, 0x29, 0xbc, 0x4a, 0x4a, 0xba, 0xaf, 0xa8,
+ 0xe7, 0xc8, 0xee, 0xc9, 0x34, 0x3b, 0x74, 0x42, 0x34, 0xb4, 0x33, 0x0d, 0x0d, 0xfb, 0x93, 0xc6,
+ 0xe4, 0xf6, 0x4f, 0xde, 0x2c, 0x77, 0xbe, 0xc2, 0x2c, 0xcb, 0xf4, 0x0b, 0x0b, 0x02, 0x5a, 0x85,
+ 0xa3, 0xa9, 0x2b, 0x3b, 0x51, 0x33, 0x81, 0x37, 0x51, 0x32, 0x29, 0x85, 0x85, 0x80, 0x22, 0x59,
+ 0x8c, 0x2b, 0xb7, 0x13, 0xea, 0x41, 0xf2, 0x68, 0xea, 0xda, 0x42, 0xdb, 0xdb, 0x69, 0x7e, 0xb8,
+ 0x19, 0x98, 0x9f, 0xb5, 0xc8, 0xa0, 0xd9, 0x4b, 0xc8, 0xea, 0x0b, 0x32, 0x32, 0x93, 0xc0, 0xdd,
+ 0x09, 0xba, 0xe1, 0x65, 0x48, 0x27, 0x33, 0x06, 0x48, 0xbe, 0x10, 0x12, 0x12, 0xaa, 0x3a, 0x0a,
+ 0x2d, 0x17, 0xe3, 0x32, 0xab, 0xbb, 0xff, 0x1e, 0xab, 0x03, 0x50, 0x5a, 0x5a, 0x47, 0xd2, 0x22,
+ 0x8f, 0x15, 0x16, 0x04, 0xf2, 0x0d, 0x38, 0xe8, 0xf2, 0xa5, 0x85, 0xdd, 0xdd, 0x90, 0xb7, 0xfb,
+ 0x94, 0x18, 0xf6, 0xab, 0x2a, 0x64, 0x6d, 0xe2, 0x2a, 0xa4, 0xb5, 0xeb, 0xeb, 0xad, 0xf9, 0xe5,
+ 0x0d, 0x53, 0x1f, 0x51, 0x68, 0x76, 0xe8, 0x84, 0x68, 0xab, 0x66, 0x1a, 0x1a, 0x35, 0xe5, 0x4f,
+ 0x85, 0x91, 0x56, 0x76, 0xa2, 0x66, 0xc1, 0x6e, 0xa2, 0x64, 0x52, 0xc9, 0xc9, 0xc3, 0x44, 0xb2,
+ 0x57, 0x7d, 0x1a, 0x35, 0xfd, 0xc3, 0xd5, 0xb8, 0xfd, 0xad, 0xc6, 0xae, 0xae, 0xbb, 0x82, 0x0b,
+ 0x96, 0x8d, 0x89, 0xb1, 0x3a, 0xad, 0xe1, 0xa3, 0x3a, 0x4f, 0x8e, 0xef, 0xef, 0x03, 0x77, 0x26,
+ 0x69, 0x76, 0x26, 0xc0, 0xce, 0xb3, 0x0a, 0x6b, 0xce, 0x85, 0x4a, 0xd2, 0xd2, 0x3c, 0x63, 0xbd,
+ 0xf8, 0x2c, 0xf0, 0x52, 0xcc, 0x03, 0xfa, 0xca, 0xcc, 0xa0, 0x75, 0x33, 0x33, 0x59, 0x02, 0x9d,
+ 0x5e, 0xc7, 0xfb, 0x50, 0xb5, 0xe4, 0xe6, 0xbe, 0xb5, 0x13, 0xd6, 0xbc, 0xbc, 0x11, 0xb8, 0x01,
+ 0x0e, 0x6d, 0xbe, 0x46, 0x70, 0x3a, 0x22, 0x04, 0x70, 0xd4, 0xa1, 0x1c, 0x1c, 0xcc, 0x2c, 0x0c,
+ 0x71, 0x45, 0x67, 0x78, 0x0e, 0x96, 0x95, 0xe1, 0x0e, 0xfb, 0xbd, 0xe2, 0xe2, 0xf8, 0xe4, 0xe0,
+ 0x7a, 0x6a, 0xf9, 0x07, 0x56, 0x78, 0x2a, 0xa6, 0x56, 0xae, 0x96, 0xf4, 0xf4, 0xfc, 0x50, 0x29,
+ 0x01, 0xab, 0xde, 0x0d, 0x08, 0x85, 0x46, 0xc1, 0x08, 0x94, 0xfc, 0x02, 0x02, 0x57, 0x47, 0x80,
+ 0xe0, 0x1f, 0xb1, 0xea, 0x0c, 0x26, 0x65, 0x40, 0x0c, 0xde, 0x82, 0x03, 0x03, 0x9d, 0x85, 0xc0,
+ 0x7e, 0x83, 0x07, 0x33, 0x76, 0x29, 0xf1, 0x24, 0x76, 0xbb, 0xe0, 0xfc, 0xfc, 0x63, 0x8f, 0x6c,
+ 0x93, 0xcf, 0xa9, 0x88, 0x12, 0x79, 0x7c, 0xe0, 0x12, 0xce, 0x04, 0xe5, 0xe5, 0xcb, 0xef, 0xe3,
+ 0xce, 0x36, 0xf3, 0xcf, 0xbf, 0xd1, 0x50, 0xde, 0xbf, 0xa2, 0x15, 0x5f, 0x5f, 0x23, 0x9e, 0xa1,
+ 0x9f, 0x37, 0x68, 0xd4, 0x72, 0x8a, 0xd2, 0xa5, 0x72, 0xf1, 0x9e, 0xfd, 0xfd, 0xa9, 0x4d, 0x2c,
+ 0x3a, 0xe2, 0xc2, 0xc1, 0x13, 0x21, 0x04, 0x51, 0x13, 0x3d, 0xfa, 0x74, 0x74, 0x18, 0x3e, 0xf3,
+ 0xd1, 0xd2, 0xed, 0x54, 0x47, 0xe9, 0xde, 0x56, 0x47, 0xb6, 0x53, 0x61, 0x61, 0x81, 0x0f, 0xfa,
+ 0xf2, 0xa8, 0xb0, 0x20, 0x9c, 0x68, 0x03, 0x4c, 0x9c, 0x61, 0xa2, 0x27, 0x27, 0x0a, 0xf1, 0xd4,
+ 0xcf, 0x9d, 0x2d, 0xc2, 0xb7, 0x54, 0x16, 0x1f, 0xb7, 0x36, 0xe9, 0x5d, 0x5d, 0x74, 0xd9, 0x21,
+ 0x43, 0xb6, 0x9a, 0xd1, 0x5d, 0x15, 0xe4, 0x77, 0x5d, 0xec, 0xab, 0x86, 0x86, 0x1d, 0xa7, 0x99,
+ 0xc9, 0xe1, 0xac, 0xec, 0x87, 0xcc, 0x41, 0xdc, 0x87, 0xc8, 0xa4, 0x51, 0x51, 0x45, 0x88, 0xa7,
+ 0x4a, 0x0c, 0x7b, 0xb4, 0x15, 0x32, 0xd7, 0x71, 0x15, 0x52, 0xbb, 0x94, 0x94, 0xb7, 0x9d, 0x93,
+ 0xbd, 0xe6, 0xeb, 0xad, 0xa1, 0x8e, 0x49, 0x7e, 0xa1, 0xb2, 0x93, 0xb9, 0xb9, 0x75, 0xf4, 0x82,
+ 0x62, 0x59, 0xb8, 0xbf, 0x96, 0x5d, 0xb5, 0x2c, 0x96, 0xd0, 0x61, 0xc4, 0xc4, 0x38, 0xd7, 0x74,
+ 0xac, 0x6f, 0x4b, 0x70, 0x29, 0x8c, 0xe5, 0xf2, 0x29, 0x72, 0x74, 0x9b, 0x9b, 0x1b, 0x49, 0xd5,
+ 0x02, 0x95, 0x7f, 0x1a, 0x10, 0xc9, 0x8c, 0x41, 0x10, 0xeb, 0x3b, 0x04, 0x04, 0xae, 0x8e, 0xc3,
+ 0x37, 0xb1, 0xdd, 0x90, 0x7b, 0x57, 0xec, 0xd5, 0x7b, 0x96, 0x9c, 0x6e, 0x6e, 0x2d, 0xdb, 0xbc,
+ 0x82, 0x46, 0x09, 0x55, 0x9a, 0x7b, 0xd0, 0x6c, 0x9a, 0x0e, 0xe3, 0xc7, 0xc7, 0xa5, 0x52, 0xb4,
+ 0xc1, 0xf0, 0x93, 0x84, 0xc7, 0x6e, 0x34, 0x1b, 0xc7, 0xe2, 0x48, 0x41, 0x41, 0xb8, 0xf5, 0x2d,
+ 0x26, 0x38, 0x7d, 0x4d, 0xf3, 0x55, 0x40, 0x59, 0xf3, 0x56, 0x7b, 0x4c, 0x4c, 0x43, 0x66, 0xeb,
+ 0xbb, 0x9a, 0x6a, 0x83, 0x91, 0x16, 0x1e, 0xbd, 0x91, 0x4c, 0xde, 0xb5, 0xb5, 0x44, 0xa5, 0x04,
+ 0x0f, 0xc6, 0x60, 0x4b, 0x78, 0xbf, 0x64, 0xc5, 0x78, 0x40, 0x5d, 0x1e, 0x1e, 0x9b, 0x6b, 0x8c,
+ 0xd4, 0x90, 0xcd, 0x6d, 0x6f, 0x3d, 0x43, 0x15, 0x6f, 0x37, 0xd9, 0x6b, 0x6b, 0x49, 0x97, 0x3f,
+ 0x5b, 0x85, 0xdb, 0x69, 0x9d, 0x30, 0x7b, 0xfd, 0x9d, 0x92, 0x5c, 0xb6, 0xb6, 0xd9, 0x20, 0xc4,
+ 0x63, 0xf2, 0x66, 0xb2, 0x9e, 0xd8, 0xf3, 0xed, 0x9e, 0x44, 0x9d, 0xc6, 0xc6, 0x6f, 0x90, 0xf4,
+ 0x87, 0x04, 0x29, 0x6c, 0xb2, 0xaf, 0x4d, 0x2f, 0xb2, 0x8f, 0x69, 0xcd, 0xcd, 0x6d, 0xca, 0x71,
+ 0xbf, 0x73, 0x94, 0xb7, 0xb1, 0x47, 0xc5, 0x3f, 0xb1, 0x59, 0xa8, 0xbd, 0xbd, 0xdb, 0x7a, 0x41,
+ 0x97, 0x26, 0x57, 0xbc, 0x32, 0x28, 0xa7, 0x62, 0x32, 0xdb, 0x72, 0xed, 0xed, 0x54, 0x30, 0xa6,
+ 0x46, 0xf4, 0xba, 0xe8, 0x75, 0xc1, 0x79, 0x34, 0x75, 0x6d, 0x21, 0x8c, 0x8c, 0xd5, 0x3f, 0x5c,
+ 0xaa, 0x13, 0xca, 0x5e, 0x19, 0x14, 0xb2, 0x31, 0x19, 0x8c, 0x39, 0x97, 0x97, 0x2a, 0x18, 0x53,
+ 0x4f, 0x4e, 0x5b, 0x8d, 0x3d, 0xe6, 0x4a, 0x32, 0x3d, 0xd3, 0x31, 0x9e, 0x9e, 0x7f, 0x05, 0x56,
+ 0xc6, 0x27, 0xcc, 0xa7, 0xff, 0x73, 0x25, 0x19, 0xff, 0x88, 0xf9, 0x4f, 0x4f, 0xde, 0xe3, 0x2b,
+ 0x4e, 0xe5, 0x85, 0x80, 0x35, 0x63, 0x0c, 0xf3, 0x35, 0x47, 0xcd, 0x9c, 0x9c, 0x28, 0x42, 0xd6,
+ 0x80, 0xd3, 0x76, 0x4f, 0x8a, 0xb2, 0x5c, 0x2d, 0x8a, 0xe5, 0xd8, 0xc3, 0xc3, 0x0b, 0xdc, 0x77,
+ 0x7f, 0x28, 0xd9, 0x3e, 0x7e, 0xac, 0xb7, 0xe5, 0x7e, 0x2f, 0x1c, 0xfe, 0xfe, 0x34, 0xc8, 0xec,
+ 0x45, 0xca, 0x1b, 0xff, 0x6d, 0x8d, 0xb3, 0xb4, 0x6d, 0x12, 0xe6, 0x8a, 0x8a, 0x2c, 0xf6, 0x1f,
+ 0xeb, 0x30, 0x2f, 0x95, 0x54, 0xc8, 0xda, 0x07, 0x54, 0x8b, 0xa9, 0x15, 0x15, 0x99, 0x31, 0x09,
+ 0x68, 0xdd, 0xf8, 0xcd, 0xc6, 0x36, 0x4c, 0xaa, 0xc6, 0x11, 0xb6, 0xd0, 0xd0, 0x6b, 0x24, 0x3d,
+ 0x10, 0x22, 0x7e, 0xd0, 0x80, 0x87, 0xea, 0x4d, 0x80, 0x54, 0x1b, 0x20, 0x20, 0x39, 0xfa, 0xd7,
+ 0x20, 0x44, 0xfc, 0x63, 0xc3, 0xcd, 0x17, 0x9a, 0xc3, 0xa8, 0x36, 0x40, 0x40, 0x72, 0x37, 0x6d,
+ 0x5f, 0x6c, 0x25, 0x5d, 0xbd, 0x61, 0xa0, 0x7f, 0xbd, 0x87, 0x2a, 0xbe, 0xbe, 0x46, 0xff, 0x81,
+ 0x49, 0x32, 0xda, 0xa3, 0x0d, 0x7e, 0x1d, 0xf1, 0x0d, 0x2d, 0x7c, 0x92, 0x92, 0x4e, 0x54, 0xd0,
+ 0xd3, 0x47, 0x92, 0x4e, 0x57, 0x20, 0x52, 0x17, 0x57, 0x5d, 0x68, 0x65, 0x65, 0x2f, 0x81, 0x39,
+ 0xc2, 0xce, 0x32, 0x93, 0xdf, 0x22, 0xfe, 0x9b, 0xdf, 0x9d, 0x8f, 0x47, 0x47, 0x41, 0x3c, 0x6e,
+ 0x56, 0xd6, 0xc4, 0x38, 0xf5, 0x46, 0x93, 0x79, 0xf5, 0x39, 0x3a, 0xac, 0xac, 0xec, 0xc5, 0x8b,
+ 0xe5, 0x5d, 0x91, 0xd3, 0x24, 0xf2, 0xf8, 0x03, 0x24, 0x5f, 0x08, 0x09, 0x09, 0x55, 0x1d, 0x05,
+ 0xbc, 0x4d, 0x35, 0xa0, 0xa9, 0x0b, 0x0f, 0xbf, 0xa9, 0x26, 0x6f, 0xbb, 0xbb, 0x22, 0xb3, 0x02,
+ 0x77, 0x39, 0xe6, 0x56, 0x3e, 0x0e, 0xc2, 0x22, 0x3e, 0x05, 0xf0, 0xee, 0xee, 0xc9, 0xb5, 0x66,
+ 0x15, 0x60, 0x5e, 0xe9, 0xa8, 0x53, 0x77, 0x0e, 0xa8, 0xd5, 0x91, 0x2a, 0x2a, 0xf1, 0x62, 0x12,
+ 0x30, 0x66, 0x82, 0xb3, 0x43, 0x4a, 0xfd, 0xd7, 0x43, 0xfc, 0x2d, 0x60, 0x60, 0x4b, 0xcd, 0xba,
+ 0xb0, 0xb5, 0xf4, 0xfc, 0xc9, 0xf8, 0xa1, 0xfa, 0xc9, 0x19, 0xf5, 0xa3, 0xa3, 0x40, 0x11, 0xcd,
+ 0xc3, 0x65, 0xec, 0x9e, 0xd7, 0xa7, 0xb8, 0x5a, 0xd7, 0x09, 0x73, 0x45, 0x45, 0x16, 0x7b, 0xee,
+ 0xa6, 0xeb, 0x0b, 0x02, 0x79, 0xe7, 0x1c, 0x74, 0x79, 0xb3, 0xa3, 0x8f, 0x8f, 0x48, 0xba, 0x9c,
+ 0x6a, 0x48, 0x87, 0xd7, 0xd6, 0xff, 0xc0, 0xeb, 0xd6, 0xfa, 0x8d, 0xd4, 0xd4, 0xc5, 0xaa, 0xfe,
+ 0x6e, 0xa1, 0x79, 0xe3, 0xf6, 0xae, 0x1b, 0x69, 0xf6, 0xef, 0xfb, 0xdc, 0xdc, 0x5a, 0x75, 0xbb,
+ 0xee, 0x72, 0x0f, 0xac, 0x7c, 0x1c, 0x47, 0x44, 0x7c, 0x0a, 0x23, 0x1f, 0x1f, 0x51, 0xa9, 0xcc,
+ 0x95, 0xb3, 0x28, 0xa6, 0x22, 0xe1, 0x2b, 0x23, 0x22, 0x30, 0x49, 0xe9, 0xe9, 0xfa, 0xbe, 0x65,
+ 0xbe, 0xd8, 0x4a, 0xba, 0xb9, 0xc2, 0x83, 0xfe, 0xb9, 0xcd, 0x54, 0xbf, 0xbf, 0x8c, 0x3d, 0xc1,
+ 0x38, 0x77, 0xbd, 0xdb, 0x03, 0xe8, 0x88, 0x10, 0x03, 0xd6, 0xc1, 0x70, 0x70, 0xb6, 0xb0, 0x30,
+ 0x1c, 0xda, 0xbf, 0x8c, 0xe0, 0x74, 0x44, 0x08, 0xe0, 0x6b, 0x81, 0x38, 0x38, 0x5b, 0x58, 0x18,
+ 0xd8, 0x68, 0x0c, 0x31, 0x0f, 0xce, 0xed, 0x50, 0x0f, 0x08, 0x43, 0x73, 0x73, 0x2b, 0x35, 0xf0,
+ 0xfc, 0xc5, 0x0e, 0x66, 0xec, 0x52, 0x21, 0x48, 0xec, 0xb5, 0x03, 0x3b, 0x3b, 0xc6, 0xdd, 0xd8,
+ 0x6b, 0xe3, 0x59, 0xda, 0xde, 0x7a, 0x86, 0x2a, 0xde, 0x6e, 0x71, 0xd6, 0xd6, 0x92, 0xed, 0x7e,
+ 0x9e, 0x9c, 0xb6, 0xd9, 0x7a, 0x0f, 0x94, 0x64, 0x7a, 0x65, 0x62, 0xff, 0xff, 0xfe, 0x0a, 0xac,
+ 0xf3, 0x03, 0x6e, 0x2d, 0x94, 0xed, 0x45, 0x8d, 0x94, 0xf5, 0x5e, 0x25, 0x25, 0x5d, 0xb6, 0x54,
+ 0x16, 0x5e, 0xff, 0xfe, 0xb0, 0x1f, 0xbd, 0x8e, 0xb0, 0xaa, 0x56, 0x2c, 0x2c, 0x08, 0xab, 0x51,
+ 0xf6, 0x41, 0x4e, 0x14, 0xbc, 0x39, 0xd8, 0xce, 0xbc, 0x74, 0xd4, 0x2f, 0x2f, 0x95, 0x2e, 0x91,
+ 0xfa, 0xb9, 0x8f, 0x48, 0xdc, 0xca, 0x76, 0x8b, 0xdc, 0x4b, 0x4e, 0x37, 0x37, 0xf7, 0x8c, 0x5e,
+ 0x1d, 0x71, 0x61, 0x81, 0xe8, 0xf1, 0x02, 0xc9, 0xe8, 0xff, 0x7d, 0x3a, 0x3a, 0x0c, 0x1f, 0x98,
+ 0x05, 0x42, 0x20, 0x39, 0x28, 0xd4, 0x9d, 0x43, 0x28, 0x81, 0x8a, 0x0a, 0x0a, 0xc8, 0x98, 0xc5,
+ 0x0a, 0x84, 0x40, 0x72, 0x50, 0x6b, 0xf9, 0x86, 0x50, 0xc1, 0xd7, 0x14, 0x14, 0x53, 0xf3, 0x49,
+ 0x79, 0x54, 0x58, 0x10, 0x4e, 0x34, 0xe0, 0x26, 0x4e, 0xd1, 0x51, 0xf2, 0xf2, 0x05, 0x99, 0x6a,
+ 0x3e, 0x0b, 0x3c, 0xf5, 0x33, 0x70, 0xdf, 0xd3, 0x33, 0x28, 0x8c, 0x7c, 0x7c, 0x87, 0xe1, 0xb6,
+ 0x90, 0xf1, 0x08, 0x9f, 0x0a, 0x35, 0xb6, 0x60, 0x0a, 0xb1, 0xc3, 0xe3, 0xe3, 0x32, 0x26, 0xa0,
+ 0x98, 0xe0, 0x37, 0xf7, 0x4a, 0x97, 0xc3, 0xa7, 0x4a, 0x9b, 0x2f, 0xf3, 0xf3, 0xcf, 0x5b, 0x2a,
+ 0xcd, 0x08, 0x52, 0xd8, 0xa7, 0x9d, 0x9a, 0x5e, 0xa7, 0xdd, 0xd2, 0x59, 0x59, 0xda, 0x57, 0xe2,
+ 0xcb, 0x74, 0xd3, 0xf6, 0x97, 0x05, 0xcd, 0x9d, 0x97, 0x23, 0x9f, 0x55, 0x55, 0xeb, 0x06, 0x64,
+ 0x0c, 0xf8, 0xc1, 0x5c, 0x60, 0xf3, 0xae, 0x45, 0x60, 0x3f, 0x9a, 0x18, 0x18, 0x62, 0xa2, 0xcf,
+ 0x36, 0x1a, 0x03, 0x9d, 0x73, 0xd2, 0xaa, 0x14, 0x73, 0x02, 0x60, 0x6c, 0x6c, 0x7a, 0x9c, 0x3c,
+ 0x73, 0xd0, 0x18, 0x62, 0x1e, 0x5f, 0x19, 0xa0, 0x1e, 0x10, 0x86, 0xe6, 0xe6, 0x56, 0x6a, 0x23,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x9d, 0xa2, 0x17, 0xce, 0x62, 0x43, 0x5e, 0xe4, 0x62, 0x1a, 0xa5, 0xf9, 0xf9, 0x07, 0xc3, 0xef,
+ 0xe9, 0xa5, 0x50, 0x8f, 0x44, 0x01, 0x56, 0x46, 0x44, 0x60, 0x92, 0x11, 0x11, 0x37, 0xbf, 0xca,
+ 0x92, 0x64, 0x77, 0x85, 0x1a, 0xfc, 0x3a, 0x21, 0x1a, 0x5a, 0xf8, 0xe7, 0xe7, 0x9c, 0xa8, 0x63,
+ 0x17, 0xf5, 0x21, 0xf3, 0xb8, 0x9a, 0xfb, 0x4f, 0xb8, 0x3e, 0xaa, 0x2e, 0x2e, 0x5f, 0xec, 0xd1,
+ 0x07, 0xd7, 0x5f, 0x23, 0x38, 0x1d, 0x11, 0x02, 0x38, 0x6a, 0xb1, 0x0e, 0x0e, 0x66, 0x16, 0x06,
+ 0x81, 0x78, 0xa8, 0x42, 0x82, 0x37, 0x1a, 0xec, 0x82, 0x71, 0x24, 0xc1, 0xc1, 0x5c, 0x9b, 0xf7,
+ 0xed, 0x4c, 0xae, 0xbb, 0x64, 0x50, 0x8d, 0xc4, 0x64, 0x75, 0xe4, 0x19, 0x19, 0xa8, 0x60, 0x8f,
+ 0xca, 0xdf, 0x0d, 0xfb, 0x9f, 0x80, 0x8b, 0x5c, 0x9f, 0xb7, 0x63, 0x57, 0x57, 0xbc, 0x41, 0xe4,
+ 0x74, 0x07, 0x47, 0x41, 0x26, 0x42, 0x08, 0xa2, 0x26, 0x7a, 0x37, 0xe8, 0xe8, 0x30, 0x7c, 0x25,
+ 0xa1, 0x3c, 0x54, 0x21, 0x41, 0xfa, 0x0d, 0x76, 0x41, 0xd9, 0x12, 0x81, 0x81, 0x2e, 0xac, 0x9a,
+ 0x5d, 0xf9, 0x5a, 0x47, 0xad, 0xa8, 0x2c, 0x3e, 0xad, 0x6c, 0x11, 0xba, 0xba, 0xe8, 0x71, 0x42,
+ 0x40, 0x88, 0x3b, 0xc6, 0x45, 0x59, 0x2e, 0xf7, 0x45, 0x93, 0x6c, 0x80, 0x80, 0xe4, 0x6e, 0xda,
+ 0x78, 0xff, 0x86, 0x1d, 0x46, 0xb1, 0xa6, 0xe7, 0x46, 0x45, 0xad, 0xf0, 0xf0, 0x52, 0xde, 0xea,
+ 0x83, 0xed, 0xd7, 0x58, 0x92, 0xfe, 0x96, 0xad, 0x92, 0x9a, 0x1f, 0xc5, 0xc5, 0xf2, 0x15, 0x34,
+ 0xdd, 0x2a, 0x2c, 0x08, 0x27, 0x1a, 0x70, 0x13, 0x27, 0x89, 0xc9, 0x79, 0x79, 0xe3, 0xad, 0x35,
+ 0x7b, 0xc1, 0x27, 0x0a, 0x5e, 0xfd, 0x6c, 0x67, 0x5e, 0x3a, 0x6a, 0xf6, 0xf6, 0xab, 0x17, 0xa9,
+ 0x42, 0x1d, 0x44, 0xdc, 0x55, 0x90, 0xa2, 0xb6, 0x55, 0x78, 0x57, 0x84, 0x84, 0x4a, 0xe0, 0x19,
+ 0xdc, 0x81, 0xf2, 0x05, 0x2f, 0x9f, 0x36, 0xd2, 0x2f, 0x1d, 0x35, 0x7b, 0x7b, 0xb4, 0xea, 0xb5,
+ 0xf0, 0x3d, 0xcf, 0x3a, 0x8c, 0xa1, 0x8f, 0x0d, 0x8c, 0x8a, 0x99, 0x23, 0x23, 0xa4, 0x7f, 0x17,
+ 0x2c, 0xbc, 0x3d, 0x3f, 0xa3, 0x3e, 0xb9, 0xdf, 0xa3, 0x97, 0xac, 0x58, 0x58, 0x10, 0x95, 0xa2,
+ 0x5c, 0x52, 0x84, 0x4a, 0xa5, 0x2d, 0x6a, 0xff, 0xa5, 0xf8, 0xed, 0xb8, 0xb8, 0xbf, 0x36, 0xc2,
+ 0x47, 0x5f, 0x64, 0xe5, 0x7d, 0x44, 0x3f, 0xf5, 0x7d, 0xf9, 0xdd, 0x8e, 0x8e, 0x82, 0x78, 0xdc,
+ 0xa4, 0x7e, 0x74, 0x18, 0x69, 0x2e, 0x90, 0x35, 0x69, 0x58, 0x98, 0x8b, 0x8b, 0xe6, 0x34, 0x5f,
+ 0x52, 0x3f, 0x3a, 0x0c, 0xd5, 0x17, 0x48, 0xfb, 0xd5, 0x2c, 0x4c, 0xa4, 0xa4, 0x73, 0x1a, 0xce,
+ 0x5a, 0x2e, 0x05, 0x64, 0x95, 0xb5, 0x3d, 0x3c, 0x95, 0x06, 0xa0, 0xb4, 0xb4, 0x8e, 0x67, 0x44,
+ 0x3f, 0xa0, 0xe2, 0xf8, 0x3b, 0xf5, 0x99, 0x12, 0x3b, 0xbc, 0x70, 0x7e, 0x7e, 0xd0, 0xa6, 0x36,
+ 0xd9, 0xc3, 0xd2, 0x3c, 0x07, 0x4b, 0xab, 0x91, 0x07, 0x9c, 0xbf, 0x71, 0x71, 0x7c, 0x72, 0x70,
+ 0x0b, 0x2f, 0x9e, 0x7f, 0x58, 0xee, 0xbf, 0x47, 0x58, 0x55, 0x2b, 0x16, 0x16, 0x04, 0xb4, 0xc9,
+ 0x2e, 0x29, 0x42, 0x25, 0xb3, 0xf7, 0x35, 0x9e, 0xb3, 0x7c, 0x97, 0x5c, 0x5c, 0xbe, 0x1b, 0x61,
+ 0x08, 0x11, 0x3f, 0x68, 0x40, 0xa2, 0x75, 0xc7, 0x40, 0x2a, 0xec, 0x10, 0x10, 0xfd, 0x7d, 0x8a,
+ 0x60, 0xcc, 0xc7, 0xa5, 0x86, 0x94, 0x39, 0x6d, 0x86, 0x3b, 0x5a, 0xc0, 0xc0, 0x96, 0x59, 0xb7,
+ 0xf4, 0xd4, 0x31, 0x0e, 0xac, 0xf0, 0x54, 0x8f, 0xac, 0x9f, 0xef, 0x2b, 0x2b, 0x3b, 0xa0, 0x52,
+ 0x4b, 0xa7, 0xa5, 0xb9, 0x1d, 0xb7, 0x91, 0xb0, 0x1d, 0xc6, 0x47, 0x96, 0x96, 0xe0, 0xda, 0x13,
+ 0xc7, 0x8c, 0x12, 0xaa, 0xf7, 0xf6, 0x63, 0xd8, 0xf7, 0x1c, 0x05, 0x4d, 0x4d, 0x89, 0xa4, 0xab,
+ 0x06, 0x7c, 0x81, 0x2e, 0x30, 0x98, 0x57, 0xc3, 0x30, 0xfe, 0x4d, 0x0c, 0x0c, 0x31, 0x51, 0x86,
+ 0xdf, 0xbf, 0x53, 0x12, 0x37, 0xd3, 0xfc, 0x52, 0x37, 0x62, 0xf2, 0x7d, 0x7d, 0x4d, 0x23, 0xf6,
+ 0x35, 0x24, 0xa2, 0x8a, 0x6b, 0x9e, 0x60, 0x94, 0x6b, 0x7d, 0xa7, 0x6a, 0x6a, 0x83, 0x55, 0x7f,
+ 0xfd, 0x6e, 0xd0, 0x6b, 0xe4, 0xd7, 0x67, 0x89, 0xe4, 0x21, 0xff, 0x39, 0x39, 0x91, 0x9a, 0x58,
+ 0x11, 0x89, 0xa0, 0xdd, 0x88, 0x02, 0xac, 0x8c, 0x88, 0xc0, 0xe7, 0x22, 0x22, 0x6e, 0xbd, 0x57,
+ 0xb2, 0x20, 0x8b, 0xe6, 0xd9, 0x31, 0x2d, 0xbb, 0xd9, 0xf2, 0xce, 0xa7, 0xa7, 0xee, 0x9f, 0x0e,
+ 0xc5, 0x19, 0x6d, 0xb0, 0xe7, 0x3f, 0xef, 0x99, 0xe7, 0xf7, 0x3e, 0x49, 0x49, 0x27, 0x2a, 0x68,
+ 0xb8, 0xa4, 0xcb, 0x94, 0x89, 0x5a, 0xd4, 0x3d, 0x89, 0x33, 0x19, 0xb3, 0xb3, 0xbd, 0x6c, 0x47,
+ 0xb5, 0xf7, 0xd4, 0xc5, 0xe1, 0x2c, 0x3c, 0xb9, 0xe1, 0x98, 0x7f, 0xa9, 0xa9, 0x88, 0x89, 0x08,
+ 0x3b, 0x49, 0x1c, 0xcc, 0x1b, 0xa4, 0x42, 0x90, 0x1b, 0xa9, 0x06, 0x76, 0x76, 0x4f, 0x79, 0x73,
+ 0x28, 0x55, 0xc3, 0x0b, 0x83, 0x6f, 0x62, 0x5d, 0x83, 0x82, 0xda, 0x50, 0x50, 0x8f, 0x4a, 0xe7,
+ 0xa0, 0x97, 0x8a, 0x2c, 0x49, 0x7f, 0x4b, 0xb7, 0x49, 0x4d, 0xee, 0x83, 0x83, 0x79, 0xeb, 0x1a,
+ 0xe8, 0x0e, 0x8e, 0x82, 0x4c, 0x84, 0x10, 0x87, 0x4c, 0xf4, 0x6e, 0x13, 0x13, 0x60, 0xf8, 0x4a,
+ 0xde, 0x14, 0x8d, 0x1f, 0x3f, 0x56, 0xba, 0x93, 0x3f, 0xf6, 0x0e, 0x7f, 0x7f, 0x1a, 0x64, 0x76,
+ 0x1f, 0xe4, 0x1e, 0x9b, 0xf8, 0x38, 0x8e, 0x88, 0xf8, 0x14, 0x46, 0x3e, 0x3e, 0xa2, 0x91, 0x5b,
+ 0x6f, 0x0a, 0xa7, 0xee, 0xfe, 0x2b, 0x5d, 0xa8, 0xfe, 0x7b, 0x07, 0xde, 0xde, 0x0d, 0x32, 0x3b,
+ 0x59, 0x10, 0xa4, 0x73, 0x8d, 0xf9, 0xf7, 0xbc, 0x8d, 0x79, 0x67, 0xb2, 0xb2, 0x77, 0xae, 0x07,
+ 0x32, 0xf3, 0xfd, 0xa9, 0x53, 0x83, 0x71, 0x96, 0x53, 0x17, 0x16, 0x64, 0x64, 0xe5, 0x43, 0x79,
+ 0x84, 0x3a, 0x88, 0x7b, 0xaa, 0xe3, 0x87, 0xaf, 0xaa, 0xf0, 0xae, 0xcb, 0xcb, 0x94, 0x03, 0x32,
+ 0x12, 0xb7, 0x01, 0xca, 0x90, 0x4e, 0x66, 0x0c, 0x90, 0xbf, 0x20, 0x24, 0x24, 0x97, 0x74, 0x14,
+ 0x88, 0xc2, 0x49, 0x27, 0xca, 0x10, 0x29, 0xea, 0xca, 0xcf, 0x34, 0xd3, 0xd3, 0xf6, 0xa1, 0xfd,
+ 0x1b, 0x0d, 0xe0, 0xaf, 0xd8, 0x69, 0x55, 0x0a, 0xd8, 0x01, 0x30, 0x36, 0x36, 0x3d, 0x4e, 0x1e,
+ 0x58, 0xbb, 0x7a, 0x7e, 0x85, 0x7c, 0xb1, 0x7d, 0x85, 0xed, 0x9b, 0xb0, 0xb0, 0x20, 0xe9, 0x87,
+ 0xa5, 0xd5, 0xaa, 0x15, 0x61, 0xab, 0xd6, 0xf4, 0x61, 0xcc, 0x64, 0x89, 0x89, 0xb1, 0x73, 0xdf,
+ 0x04, 0xe9, 0xfe, 0x34, 0x20, 0x51, 0xdb, 0x82, 0x20, 0x15, 0x76, 0x08, 0x08, 0x9f, 0xdf, 0x45,
+ 0xa7, 0x40, 0xd5, 0x0f, 0x71, 0x62, 0x5a, 0xb5, 0x71, 0x27, 0x5f, 0x8d, 0x8d, 0x1f, 0xfd, 0x1c,
+ 0xd5, 0x3b, 0x13, 0x60, 0x67, 0xb8, 0x05, 0xd4, 0x67, 0xa3, 0x25, 0x69, 0x69, 0x1e, 0xd0, 0xbf,
+ 0xf5, 0x7f, 0xef, 0x03, 0xa4, 0x75, 0x12, 0x4e, 0xa4, 0x0b, 0x13, 0x29, 0x29, 0x6c, 0xe7, 0xd2,
+ 0x4d, 0xdb, 0x24, 0x97, 0x2d, 0x2f, 0xc6, 0x73, 0x2d, 0x38, 0x0a, 0x9a, 0x9a, 0xd1, 0x8b, 0x95,
+ 0x3d, 0x35, 0x9d, 0xe2, 0x2b, 0x3c, 0x15, 0x53, 0x2b, 0x57, 0x4b, 0x7a, 0x7a, 0x7e, 0x28, 0xf5,
+ 0xa8, 0x86, 0xb5, 0x44, 0x09, 0xdd, 0x3e, 0x70, 0x09, 0x67, 0x02, 0x93, 0x93, 0x84, 0x96, 0x90,
+ 0x33, 0x58, 0x23, 0xa4, 0x5b, 0x06, 0x37, 0x57, 0x5b, 0x83, 0xea, 0x66, 0x66, 0xb2, 0x04, 0xf9,
+ 0x21, 0xef, 0x22, 0x6e, 0xcb, 0x48, 0x51, 0x5b, 0xcb, 0x3c, 0xca, 0x42, 0x42, 0x25, 0x70, 0xed,
+ 0x2b, 0x6b, 0x62, 0x1c, 0x9b, 0x23, 0xa8, 0xdd, 0x9b, 0xfd, 0x1d, 0x56, 0x56, 0x76, 0x83, 0xa4,
+ 0x4c, 0x70, 0xfa, 0x9a, 0x25, 0xaa, 0x80, 0xb2, 0x25, 0xac, 0xf6, 0x98, 0x98, 0x86, 0xcc, 0x15,
+ 0x1a, 0xa6, 0x3e, 0xa2, 0xd0, 0xec, 0x13, 0xcb, 0xd0, 0x95, 0xcc, 0x34, 0x34, 0x6a, 0x09, 0x9e,
+ 0x67, 0x1b, 0x98, 0x86, 0xbe, 0x89, 0x28, 0x6f, 0xbe, 0x51, 0xeb, 0xce, 0xce, 0xf0, 0x4f, 0xb1,
+ 0x54, 0x43, 0xbb, 0x22, 0xe5, 0x8f, 0x1f, 0x38, 0xe5, 0xd2, 0x01, 0xa8, 0xa8, 0x42, 0x4b, 0x48,
+ 0xec, 0xe7, 0x70, 0xb6, 0x6c, 0xd5, 0xcb, 0x05, 0x6c, 0xe1, 0x18, 0x1b, 0x1b, 0xff, 0x27, 0x0f,
+ 0x9b, 0xde, 0x96, 0xe0, 0x52, 0xdb, 0x09, 0x27, 0x52, 0xe4, 0xe8, 0xf5, 0xf5, 0x36, 0x92, 0x69,
+ 0xa2, 0x02, 0xf5, 0x36, 0x59, 0xb6, 0xc7, 0xf6, 0x59, 0xa6, 0xd5, 0x87, 0x87, 0xd7, 0x65, 0xd9,
+ 0x64, 0x25, 0x39, 0x91, 0xa6, 0xc5, 0xe2, 0xef, 0xa6, 0x2e, 0x2c, 0xc8, 0xc8, 0x09, 0x86, 0xf2,
+ 0xef, 0xd9, 0xd1, 0xa1, 0x74, 0x99, 0x01, 0x85, 0x74, 0x9e, 0xdf, 0x1d, 0x1d, 0x06, 0xee, 0x4c,
+ 0x8b, 0xfc, 0xe8, 0x30, 0xd2, 0x5c, 0xe3, 0x6a, 0xd2, 0xb0, 0xf3, 0xd5, 0xd5, 0x0f, 0x68, 0xbe,
+ 0x6c, 0x34, 0x06, 0xf9, 0xe6, 0x67, 0x97, 0x28, 0xe6, 0x04, 0xc0, 0xd8, 0xd8, 0xf4, 0xfb, 0x78,
+ 0xff, 0xfb, 0xaf, 0x71, 0xf4, 0x1e, 0xeb, 0xc8, 0xf4, 0xca, 0xc4, 0x3d, 0x3d, 0x3f, 0x14, 0x9b,
+ 0xf7, 0xea, 0x90, 0x19, 0xb4, 0xbc, 0x9e, 0x0f, 0xb4, 0xe0, 0x28, 0x2d, 0x2d, 0xc2, 0x69, 0x11,
+ 0x18, 0x33, 0x41, 0xb8, 0xc0, 0x25, 0x9f, 0x8a, 0xc0, 0x7e, 0xf7, 0x30, 0x30, 0xc4, 0x87, 0x5d,
+ 0xb3, 0x8b, 0x55, 0xeb, 0xd1, 0xb4, 0x6b, 0x7a, 0xd1, 0x66, 0x32, 0xa5, 0xa5, 0xb9, 0xd8, 0x8e,
+ 0x7c, 0x16, 0x78, 0x29, 0x66, 0xe0, 0x7d, 0x65, 0x66, 0x50, 0xdb, 0xf8, 0xf8, 0xcd, 0x01, 0xaf,
+ 0xcc, 0xa3, 0x8c, 0xd5, 0xaf, 0x18, 0xdc, 0x9f, 0xaf, 0x49, 0x2e, 0x5b, 0x5b, 0x8d, 0x10, 0x62,
+ 0x89, 0x69, 0x97, 0x2a, 0xc2, 0x95, 0x6f, 0x2b, 0xc2, 0x5b, 0xc8, 0xd1, 0xd1, 0xa1, 0xe6, 0x7d,
+ 0xae, 0xfa, 0x34, 0x6a, 0x39, 0x45, 0x69, 0xb3, 0x39, 0x99, 0x4f, 0x9f, 0x9f, 0xb5, 0xc7, 0x16,
+ 0x31, 0xcd, 0x5c, 0xbe, 0x4b, 0xcf, 0xbb, 0x16, 0x4b, 0x68, 0xd1, 0x62, 0x62, 0x1c, 0x8a, 0x3a,
+ 0x34, 0x8f, 0x7c, 0x87, 0x63, 0x1b, 0x26, 0x55, 0x63, 0xe9, 0x5b, 0x68, 0x68, 0xd4, 0x12, 0xff,
+ 0x66, 0xb0, 0x46, 0x8b, 0xb6, 0x0c, 0x6e, 0xae, 0xb6, 0xc5, 0x17, 0xcc, 0xcc, 0xa7, 0x08, 0x31,
+ },
+ { /* 12 */
+ 0x55, 0x95, 0x9e, 0xb1, 0xd0, 0xa1, 0x4c, 0xd9, 0x5a, 0x2f, 0xf9, 0x1c, 0x4c, 0xf2, 0x1a, 0x52,
+ 0xfa, 0xed, 0x87, 0xcf, 0x85, 0x5d, 0x81, 0x6c, 0x55, 0x48, 0x8b, 0x1e, 0x81, 0xe1, 0x58, 0x1c,
+ 0x0c, 0xbe, 0x0a, 0x56, 0x48, 0xac, 0xcc, 0x72, 0x67, 0x5c, 0x45, 0x58, 0xcc, 0xf1, 0x09, 0x1a,
+ 0x52, 0x31, 0x7b, 0x77, 0xfa, 0xee, 0x3b, 0x0a, 0xaf, 0x0c, 0xfb, 0x83, 0x3b, 0xb1, 0x8e, 0x02,
+ 0xa3, 0xc6, 0x13, 0x28, 0x1d, 0x50, 0x01, 0xc7, 0x68, 0x3b, 0x37, 0x5a, 0x01, 0xe2, 0x4b, 0x54,
+ 0x73, 0x1c, 0xab, 0xc9, 0xf7, 0x51, 0x4f, 0x53, 0xe2, 0x62, 0xa0, 0xf2, 0x4f, 0x17, 0xc7, 0xae,
+ 0xe1, 0x9c, 0x70, 0x97, 0x07, 0xed, 0xe9, 0x75, 0xf2, 0xe7, 0x81, 0xb8, 0xe9, 0x6d, 0xd9, 0xcf,
+ 0x81, 0x25, 0x20, 0x62, 0x02, 0xc4, 0x46, 0x63, 0x4c, 0x42, 0xec, 0x3d, 0x46, 0xe9, 0x91, 0x1f,
+ 0x86, 0x81, 0xc5, 0xa4, 0x28, 0x8b, 0x31, 0xb0, 0xb9, 0x61, 0xee, 0xa2, 0x31, 0xaa, 0x05, 0x4f,
+ 0x02, 0x35, 0x03, 0x19, 0x1c, 0x32, 0x22, 0x17, 0x4e, 0x1a, 0x41, 0xa5, 0x22, 0x77, 0xe2, 0xba,
+ 0x6c, 0x07, 0x5a, 0xa3, 0x4d, 0x85, 0x63, 0x64, 0xd9, 0xf9, 0x28, 0xdd, 0x63, 0x75, 0x41, 0xca,
+ 0xdf, 0xaa, 0x51, 0x43, 0xb0, 0x86, 0xb1, 0x1b, 0x84, 0x12, 0x52, 0xe6, 0xb1, 0xa9, 0x16, 0x07,
+ 0x4e, 0xe4, 0x69, 0xe9, 0x52, 0x11, 0x24, 0xc0, 0xfd, 0x80, 0xf3, 0xba, 0x24, 0x7e, 0x9b, 0x81,
+ 0xe8, 0xb3, 0x9c, 0x1e, 0x79, 0x3c, 0x70, 0xc3, 0x2e, 0x82, 0x87, 0xda, 0x70, 0xa8, 0xa6, 0x3f,
+ 0x2e, 0x5d, 0x39, 0x1c, 0x57, 0x38, 0x8b, 0xd6, 0x43, 0x25, 0x9e, 0x3f, 0x8b, 0xfa, 0xd3, 0x51,
+ 0x3d, 0xf8, 0xc2, 0x20, 0xa5, 0x40, 0x6b, 0x93, 0x1f, 0xe2, 0x53, 0x48, 0x6b, 0x69, 0x5c, 0x2f,
+ 0x29, 0xf9, 0xdc, 0xda, 0x7d, 0x77, 0xfc, 0x05, 0xb6, 0x06, 0x9c, 0xa0, 0xfc, 0xb9, 0x47, 0x01,
+ 0x7d, 0x97, 0xa2, 0x86, 0xa3, 0xcf, 0xa1, 0x36, 0xcb, 0x24, 0xa4, 0x0f, 0xa1, 0x91, 0x2c, 0x0e,
+ 0x27, 0x72, 0xd5, 0x95, 0x29, 0xe9, 0x12, 0x60, 0x9f, 0x40, 0x98, 0x5d, 0x12, 0x3f, 0xac, 0xa1,
+ 0x35, 0x2c, 0xce, 0x44, 0xd5, 0x88, 0xe3, 0xcf, 0xe4, 0x8a, 0x94, 0x99, 0xe3, 0x76, 0x52, 0x82,
+ 0xcc, 0x0f, 0xaa, 0x7f, 0x42, 0xfe, 0x51, 0x5e, 0xd8, 0xd5, 0x9f, 0x91, 0x51, 0x3a, 0x99, 0x79,
+ 0xd6, 0x85, 0xbd, 0xca, 0xce, 0x57, 0x28, 0xad, 0x58, 0x77, 0x54, 0x84, 0x28, 0x6c, 0x69, 0xf7,
+ 0x87, 0x7a, 0x25, 0x49, 0x26, 0x92, 0x20, 0x5a, 0x9e, 0x6c, 0x2f, 0x11, 0x20, 0x70, 0x74, 0x12,
+ 0xc9, 0x9e, 0x4c, 0xa0, 0x74, 0x83, 0x04, 0x9a, 0x63, 0xec, 0xdc, 0xab, 0x04, 0x0e, 0xef, 0x93,
+ 0x6b, 0xa3, 0xbf, 0x65, 0x67, 0xca, 0x14, 0xb7, 0x2c, 0xda, 0x2a, 0x42, 0x14, 0x36, 0xd5, 0x9a,
+ 0x32, 0x88, 0x2b, 0x82, 0xff, 0xc7, 0x94, 0x1c, 0x11, 0xa9, 0x96, 0x06, 0x94, 0x35, 0xc6, 0xd2,
+ 0xcd, 0xf4, 0x4a, 0x92, 0x4c, 0xe7, 0x40, 0xb4, 0xff, 0xd8, 0x5e, 0x22, 0x40, 0xe0, 0xe8, 0x24,
+ 0x23, 0x18, 0xd3, 0xa7, 0x11, 0x8d, 0x56, 0x4e, 0x03, 0x74, 0x1a, 0xd4, 0x56, 0xd1, 0xab, 0x16,
+ 0x96, 0xea, 0xdd, 0x6c, 0xc8, 0xd8, 0xe2, 0x08, 0x8c, 0xb1, 0xa3, 0xc3, 0xe2, 0x94, 0x19, 0xd6,
+ 0xb4, 0x09, 0xee, 0x26, 0xd7, 0x4c, 0xa5, 0xac, 0xa8, 0xc8, 0x78, 0xa4, 0xa5, 0x9f, 0xc3, 0x9d,
+ 0x92, 0x80, 0xdb, 0x5e, 0xf0, 0xbc, 0xa6, 0x26, 0x10, 0x85, 0x21, 0x4a, 0xa6, 0x7a, 0x1e, 0x61,
+ 0xc6, 0xee, 0xa5, 0x02, 0x2e, 0x04, 0xfb, 0x15, 0x6d, 0xa7, 0x19, 0xe5, 0xfb, 0x52, 0x75, 0x6e,
+ 0x91, 0x4e, 0x38, 0xaa, 0xe2, 0x97, 0x95, 0xdb, 0x79, 0x92, 0xa1, 0x5c, 0x95, 0xd7, 0x8d, 0x86,
+ 0xe4, 0x0d, 0x96, 0x48, 0x31, 0x90, 0xbc, 0xb1, 0x49, 0xde, 0xc2, 0x82, 0xbc, 0x59, 0xaf, 0x25,
+ 0xd2, 0xef, 0xbb, 0xf8, 0xf6, 0x33, 0x6c, 0x83, 0xc4, 0x43, 0xd6, 0x0d, 0x6c, 0x82, 0x6e, 0x40,
+ 0x56, 0x5b, 0x7d, 0x45, 0xc2, 0x8a, 0x7f, 0x24, 0x33, 0x38, 0x79, 0x0a, 0x7f, 0x5f, 0x89, 0xb5,
+ 0x88, 0x0a, 0xcc, 0xeb, 0x7c, 0x15, 0xdf, 0xd5, 0x90, 0x27, 0xea, 0x5f, 0xdf, 0x2c, 0xee, 0xef,
+ 0x6f, 0xc9, 0xb9, 0x57, 0x5f, 0xae, 0x50, 0x99, 0xb0, 0xee, 0xa8, 0xcb, 0x50, 0xd8, 0xd2, 0x2d,
+ 0x10, 0x6b, 0x18, 0xc8, 0xe0, 0x53, 0xd3, 0xb8, 0x35, 0xd0, 0x4d, 0x61, 0xd3, 0x3e, 0x1c, 0x99,
+ 0x59, 0x2b, 0x94, 0xe7, 0x98, 0x0d, 0x80, 0xab, 0x3d, 0x73, 0xbc, 0x44, 0x80, 0x03, 0x13, 0x48,
+ 0x63, 0x77, 0xb3, 0x01, 0x17, 0x02, 0x9c, 0xeb, 0xd7, 0xb2, 0xed, 0x93, 0x9c, 0x29, 0xdb, 0x37,
+ 0xca, 0x50, 0xaf, 0x54, 0x66, 0xa8, 0x37, 0x67, 0x0a, 0xfb, 0x5c, 0xbd, 0x37, 0xa3, 0x7c, 0x74,
+ 0x79, 0xfd, 0xa4, 0xb4, 0x9b, 0xab, 0xe5, 0x18, 0x57, 0x10, 0x26, 0x86, 0xe5, 0x7f, 0x2b, 0xb9,
+ 0xb2, 0x56, 0xeb, 0x0d, 0xf3, 0x1a, 0xc3, 0x95, 0x7a, 0xe6, 0xbb, 0x88, 0xc3, 0x06, 0x26, 0x90,
+ 0x28, 0x02, 0x3c, 0x37, 0x73, 0x6e, 0xed, 0xef, 0x91, 0x0b, 0x5d, 0x13, 0xed, 0x63, 0x36, 0x5c,
+ 0xea, 0x86, 0x9f, 0x07, 0x65, 0x0e, 0x52, 0xd4, 0x60, 0x98, 0xc6, 0x7f, 0x52, 0xdf, 0x44, 0x85,
+ 0xec, 0xd9, 0x9a, 0x2c, 0x41, 0x58, 0x34, 0xed, 0xb2, 0xb6, 0x05, 0x53, 0x34, 0x46, 0xa1, 0x88,
+ 0x2a, 0x37, 0x3f, 0x2e, 0x6f, 0x5c, 0xcf, 0xf8, 0xdf, 0x11, 0x1c, 0xb6, 0xcf, 0x14, 0xd4, 0xe6,
+ 0xc4, 0xdb, 0xa6, 0x1b, 0x32, 0x36, 0xd9, 0x02, 0x23, 0xbd, 0x58, 0x40, 0xd9, 0x25, 0x97, 0xd4,
+ 0xa7, 0xac, 0x15, 0x1a, 0x25, 0x34, 0x45, 0xe9, 0xf4, 0x0f, 0xb5, 0xd3, 0x45, 0x0c, 0x4c, 0xe3,
+ 0x17, 0xcf, 0xfd, 0x0e, 0xca, 0x1c, 0xa4, 0x6b, 0xc0, 0xf3, 0x4f, 0xfe, 0xa4, 0x7d, 0x88, 0xc9,
+ 0x5f, 0x74, 0x91, 0xcc, 0xbc, 0x5b, 0xe6, 0x92, 0xef, 0x5d, 0x7f, 0x68, 0xe6, 0x9a, 0xf6, 0x45,
+ 0x62, 0x8c, 0x53, 0xec, 0x19, 0x1b, 0x8d, 0x01, 0xf0, 0xbf, 0x2c, 0x20, 0x8d, 0xf3, 0xaa, 0x6a,
+ 0x5d, 0x41, 0x92, 0xd5, 0xa0, 0x69, 0xc4, 0x85, 0xa1, 0x47, 0x3e, 0xcd, 0xc4, 0xed, 0x14, 0xff,
+ 0x06, 0x5f, 0x05, 0x2b, 0x24, 0x56, 0x66, 0x39, 0xd2, 0x2e, 0xc3, 0x2c, 0x66, 0x99, 0xe5, 0x0d,
+ 0x3a, 0x5c, 0x27, 0xe6, 0x8f, 0x0f, 0x1c, 0x40, 0xea, 0xc1, 0x51, 0xd7, 0x1c, 0x2a, 0xc8, 0x7f,
+ 0x39, 0x92, 0xc4, 0x12, 0x9d, 0x24, 0x2f, 0xbd, 0x83, 0xd6, 0xd1, 0xc1, 0x2f, 0x87, 0x5b, 0x98,
+ 0xa1, 0xf3, 0x10, 0x31, 0x01, 0x62, 0x23, 0xd0, 0x26, 0x21, 0x76, 0xff, 0x23, 0x95, 0xa9, 0xee,
+ 0x07, 0xa4, 0xe5, 0xc6, 0x2a, 0x4f, 0x77, 0xd3, 0xf5, 0x23, 0x02, 0x9f, 0x77, 0x43, 0x94, 0x50,
+ 0x6d, 0xfc, 0xba, 0x4e, 0x43, 0x9c, 0x72, 0x8e, 0xfe, 0xf4, 0xe9, 0x6e, 0x72, 0xaf, 0x30, 0x97,
+ 0x21, 0x2d, 0xd0, 0xbe, 0x0d, 0xbf, 0x74, 0x59, 0x4d, 0x6e, 0x5b, 0x71, 0x74, 0xa6, 0x49, 0xac,
+ 0xba, 0x82, 0xe7, 0x69, 0x83, 0xd2, 0x4b, 0xc9, 0x81, 0x8e, 0x7c, 0x59, 0x4b, 0x19, 0x28, 0x3d,
+ 0x69, 0x96, 0xbc, 0x7c, 0x7b, 0xf8, 0x36, 0xa0, 0x62, 0xc0, 0x6b, 0xe7, 0x36, 0x41, 0x37, 0x20,
+ 0x37, 0x19, 0xcd, 0x5d, 0xc9, 0xba, 0xc1, 0xd8, 0xaa, 0x90, 0xd5, 0x3c, 0xc1, 0x01, 0xb0, 0x38,
+ 0x3e, 0x36, 0x21, 0xd4, 0xb7, 0x6b, 0x58, 0x6e, 0x76, 0xf5, 0xd3, 0x5e, 0x58, 0xc4, 0xcf, 0xc8,
+ 0x25, 0x47, 0xd6, 0x8c, 0x35, 0xdb, 0x30, 0x77, 0xd1, 0x5a, 0xd9, 0xf8, 0x30, 0x48, 0x4e, 0x1b,
+ 0xc1, 0x4a, 0x40, 0xc4, 0x04, 0x4b, 0x8c, 0xc6, 0x98, 0x84, 0x1b, 0x7a, 0x8c, 0x11, 0xe1, 0x3e,
+ 0xf7, 0xa8, 0x6d, 0x74, 0xc3, 0xe8, 0x5c, 0xf4, 0x15, 0x19, 0x0f, 0xf5, 0x5c, 0xca, 0x20, 0x5b,
+ 0xd4, 0xb0, 0xbe, 0xd3, 0xd2, 0x65, 0x0a, 0xba, 0x16, 0x6d, 0x15, 0x21, 0x0a, 0x1b, 0x8b, 0x4d,
+ 0x70, 0xd2, 0x48, 0x3d, 0xe5, 0x7a, 0x7c, 0xae, 0x8b, 0x75, 0x20, 0xe4, 0x7c, 0xba, 0x54, 0x49,
+ 0xf9, 0x23, 0x64, 0x3b, 0x97, 0x76, 0xb2, 0x91, 0x3c, 0x5f, 0x0b, 0x08, 0xb2, 0x4c, 0xcb, 0xfb,
+ 0x9b, 0xaf, 0x37, 0xd7, 0x8e, 0x6d, 0x3f, 0x90, 0xcc, 0xe0, 0x27, 0x28, 0x3f, 0xbf, 0x61, 0x91,
+ 0x30, 0xbd, 0x28, 0x9b, 0xe3, 0xf5, 0xb6, 0x0b, 0x5f, 0xb3, 0xd7, 0xa3, 0xb6, 0x42, 0x24, 0x68,
+ 0xf8, 0xd8, 0x84, 0xd6, 0x99, 0x6f, 0xa3, 0x7b, 0x1b, 0x52, 0xca, 0xbb, 0xa3, 0x96, 0xba, 0xa6,
+ 0x4a, 0x8e, 0x6f, 0xdb, 0x6a, 0x75, 0x60, 0xee, 0x61, 0xb4, 0x71, 0x33, 0x60, 0x90, 0x9c, 0x36,
+ 0x2d, 0x93, 0xda, 0xe8, 0x45, 0x13, 0xb8, 0x2b, 0x2a, 0x32, 0x1e, 0x29, 0xb8, 0x57, 0x40, 0xb6,
+ 0xbf, 0x13, 0x01, 0xb6, 0xb5, 0xaf, 0x1e, 0x0d, 0x3a, 0xb7, 0x3f, 0x63, 0x1e, 0x2d, 0x5e, 0xd7,
+ 0x40, 0x6f, 0x60, 0xa6, 0x06, 0x8f, 0xca, 0xa5, 0xd4, 0xc6, 0xf7, 0x47, 0xca, 0xf8, 0x70, 0x21,
+ 0x49, 0x40, 0x8c, 0x2f, 0x78, 0x5e, 0x53, 0x13, 0x08, 0xa3, 0xf1, 0x25, 0x53, 0x3d, 0x0f, 0xd1,
+ 0x5e, 0x8f, 0x71, 0x21, 0xb2, 0x42, 0xf7, 0x78, 0xc8, 0x50, 0xbe, 0xdb, 0xf7, 0x40, 0x87, 0x18,
+ 0x46, 0x30, 0x65, 0x8d, 0x22, 0xd9, 0xac, 0x9c, 0x06, 0xe8, 0x34, 0x6b, 0xac, 0x61, 0x95, 0x2c,
+ 0xae, 0x83, 0xf9, 0x93, 0x5b, 0xe5, 0xdc, 0x5f, 0x28, 0x6a, 0xb3, 0xb1, 0xdc, 0xc9, 0x33, 0x13,
+ 0x65, 0x28, 0xb6, 0x2a, 0x33, 0x54, 0xfa, 0xd2, 0x05, 0x9c, 0x2e, 0xbf, 0xfa, 0xb0, 0x3e, 0x3a,
+ 0x24, 0xbc, 0x36, 0x61, 0x3b, 0xc2, 0x21, 0x9d, 0xf6, 0x57, 0x18, 0x4b, 0x21, 0x92, 0x3f, 0x46,
+ 0x5c, 0xba, 0x72, 0x38, 0xae, 0x70, 0xd5, 0x6f, 0x86, 0x4a, 0xff, 0x7e, 0xd5, 0x37, 0x65, 0xa2,
+ 0x72, 0xe7, 0x4b, 0x24, 0xf9, 0x48, 0x5e, 0xb9, 0xc5, 0x6f, 0x61, 0x41, 0x5e, 0xcd, 0xb6, 0xf3,
+ 0x97, 0x11, 0x3d, 0x81, 0xc6, 0xc1, 0xf3, 0xe2, 0xab, 0xbc, 0x62, 0x70, 0xf3, 0x4e, 0x68, 0x8b,
+ 0xaf, 0x78, 0x19, 0x7e, 0x55, 0xfc, 0xcd, 0xb5, 0x0f, 0x67, 0x72, 0x02, 0xcd, 0x13, 0x42, 0x4e,
+ 0x0d, 0x45, 0xea, 0xbb, 0x46, 0xb5, 0xdd, 0x98, 0x40, 0x51, 0x84, 0xeb, 0xdd, 0x2b, 0x78, 0x47,
+ 0xb9, 0x4c, 0x04, 0x9d, 0x91, 0xf9, 0x78, 0x34, 0xe8, 0x99, 0xfc, 0x4f, 0x78, 0xb4, 0xbb, 0xda,
+ 0x45, 0xfe, 0x86, 0x79, 0x30, 0xf2, 0x9f, 0x61, 0x6f, 0xff, 0xb4, 0x7d, 0x9f, 0xcc, 0x06, 0xcb,
+ 0x76, 0x8d, 0x4d, 0x16, 0xc1, 0x2c, 0x1a, 0x97, 0x59, 0x5b, 0xe3, 0xc8, 0x1a, 0x23, 0xb1, 0x44,
+ 0x43, 0xa1, 0x83, 0x52, 0x14, 0xa4, 0xf9, 0x58, 0xbd, 0xd1, 0x77, 0x51, 0xf9, 0x55, 0xe3, 0xc6,
+ 0x51, 0xff, 0x98, 0x83, 0xe8, 0xc5, 0x08, 0xf7, 0xc6, 0x1b, 0x7b, 0x95, 0x08, 0x1c, 0x1d, 0xe5,
+ 0x85, 0x4f, 0x26, 0x50, 0x3a, 0xa0, 0x02, 0x4d, 0xd0, 0x76, 0x6e, 0xb4, 0x02, 0x07, 0x96, 0xa8,
+ 0x5a, 0xe5, 0x77, 0x13, 0x8a, 0x26, 0xb3, 0x56, 0x54, 0x64, 0x3c, 0x52, 0xb3, 0xae, 0x80, 0xaf,
+ 0x7c, 0x6c, 0x42, 0x6b, 0xad, 0xd6, 0xb0, 0xdc, 0xec, 0x29, 0x65, 0xbc, 0xb0, 0x4b, 0x5d, 0x53,
+ 0xd0, 0xda, 0xb8, 0xe1, 0xea, 0x01, 0x4e, 0x94, 0x8a, 0x59, 0x97, 0xa8, 0x4e, 0xf5, 0x8c, 0xfa,
+ 0x08, 0xd4, 0x0c, 0x64, 0x70, 0xc8, 0x88, 0x5c, 0xfb, 0x68, 0xc7, 0xd1, 0x88, 0x1f, 0x0e, 0xad,
+ 0x05, 0x91, 0xe6, 0xdf, 0x36, 0x7d, 0x55, 0xc4, 0xbb, 0x39, 0x43, 0x3a, 0x55, 0x34, 0x76, 0xea,
+ 0xb8, 0xb7, 0xe4, 0x70, 0x9f, 0xe0, 0x69, 0xde, 0xcf, 0x94, 0x3d, 0xfc, 0x69, 0x6e, 0xca, 0x87,
+ 0x0f, 0x70, 0xe9, 0xa2, 0x5a, 0x87, 0xff, 0x8f, 0x0e, 0x4b, 0xc5, 0x4e, 0xff, 0x5c, 0x9a, 0xfd,
+ 0x7a, 0x33, 0x47, 0x40, 0x89, 0x80, 0xd6, 0xe5, 0x3e, 0x07, 0xa6, 0x90, 0xd6, 0xd2, 0xb8, 0x5e,
+ 0xff, 0x7c, 0x61, 0x10, 0xb3, 0x20, 0xd4, 0xa8, 0xee, 0x71, 0xc8, 0x24, 0xd4, 0xd5, 0x2e, 0xf6,
+ 0xda, 0x3b, 0xb7, 0x9c, 0x86, 0xfb, 0xe4, 0xdf, 0x3f, 0x2b, 0x11, 0xdc, 0xe4, 0x9d, 0x60, 0xed,
+ 0xdb, 0xc0, 0x57, 0x71, 0x88, 0xe2, 0xf5, 0x35, 0x18, 0x26, 0xd0, 0x6f, 0xf5, 0x47, 0x11, 0xb0,
+ 0xf2, 0x39, 0x8b, 0xab, 0xf5, 0x95, 0x09, 0x30, 0xae, 0x20, 0x4c, 0xcf, 0x09, 0xfe, 0x56, 0xb1,
+ 0x99, 0x9a, 0x34, 0xce, 0x92, 0x5f, 0x1d, 0x87, 0x82, 0xfa, 0x66, 0x8d, 0x1d, 0xc8, 0x83, 0x2b,
+ 0xa9, 0x27, 0x1c, 0x55, 0x71, 0xaa, 0xab, 0x8c, 0xdd, 0x49, 0xb1, 0x2e, 0xab, 0x8a, 0xa7, 0x43,
+ 0x54, 0x6e, 0x7e, 0x5c, 0xde, 0xb8, 0x5d, 0x33, 0x7d, 0x22, 0x38, 0xaf, 0x5d, 0x28, 0x6b, 0x0f,
+ 0x95, 0x24, 0x3e, 0x98, 0xda, 0xf3, 0xd1, 0xf5, 0xe5, 0xa6, 0x23, 0xd5, 0xd1, 0x39, 0x8a, 0x31,
+ 0x68, 0x6d, 0x5c, 0x91, 0x75, 0xe1, 0x27, 0x4a, 0x45, 0xcd, 0xaa, 0x54, 0x27, 0x9b, 0x46, 0x7d,
+ 0x1c, 0xd5, 0x12, 0x9e, 0xa8, 0xff, 0x1f, 0xca, 0x52, 0x8c, 0x08, 0x39, 0x1f, 0xcf, 0x15, 0x83,
+ 0x6a, 0x58, 0x5f, 0x88, 0x69, 0xd3, 0x05, 0x5d, 0x0b, 0xd7, 0xeb, 0xf1, 0x05, 0xec, 0xa4, 0xc7,
+ 0x0e, 0x8b, 0x09, 0x4f, 0x54, 0x9e, 0xee, 0x65, 0x29, 0x46, 0x04, 0xfd, 0xee, 0x86, 0xeb, 0xa0,
+ 0x93, 0x7b, 0x3b, 0xb3, 0xfe, 0xa5, 0xb7, 0xcc, 0x37, 0x88, 0xe0, 0xf9, 0xb7, 0xa0, 0x6f, 0x3c,
+ 0xa8, 0xdc, 0xfc, 0xb8, 0x7f, 0xb3, 0xba, 0x66, 0xfa, 0x44, 0x70, 0x9d, 0xba, 0x50, 0xd6, 0x1e,
+ 0xcf, 0xc1, 0x49, 0x8b, 0x50, 0xd5, 0x62, 0xa3, 0xb1, 0xc2, 0x1f, 0x87, 0x62, 0x97, 0x0a, 0x9e,
+ 0xc2, 0x84, 0xa3, 0x30, 0x16, 0x60, 0xbf, 0x3b, 0xf1, 0x93, 0x9b, 0x6c, 0xbf, 0xbc, 0x72, 0xd9,
+ 0xcb, 0xab, 0x4f, 0xb9, 0x68, 0xb1, 0x26, 0x8d, 0x2d, 0xf6, 0x9d, 0x0e, 0x26, 0x79, 0x0d, 0x29,
+ 0x8e, 0x55, 0xc9, 0xc0, 0x58, 0x43, 0xb9, 0xec, 0x42, 0x09, 0x29, 0x73, 0xb9, 0xb5, 0x0b, 0xe2,
+ 0x33, 0x73, 0xcb, 0x6f, 0xf1, 0xde, 0x85, 0xf6, 0x36, 0xa4, 0x57, 0xb5, 0x85, 0xef, 0xb7, 0x8f,
+ 0x15, 0xfa, 0xfe, 0x17, 0xd6, 0x2e, 0x86, 0x7c, 0x8e, 0xe9, 0x0e, 0x5b, 0x86, 0x0a, 0x6a, 0x73,
+ 0x89, 0xf1, 0x2c, 0x06, 0x72, 0x0c, 0xce, 0x3f, 0xb7, 0x2a, 0x2b, 0xec, 0xce, 0xf6, 0x9f, 0xb2,
+ 0xd1, 0x21, 0x58, 0x0c, 0xe4, 0x18, 0x5f, 0x7e, 0xad, 0x54, 0x56, 0x1b, 0x5f, 0x2f, 0xfd, 0xa7,
+ 0x1a, 0x8a, 0x17, 0xb5, 0x8c, 0xa9, 0x79, 0xf3, 0x80, 0xa2, 0xcb, 0x15, 0x79, 0x56, 0xf0, 0x8e,
+ 0x98, 0x61, 0xd4, 0x23, 0x9c, 0x46, 0x0c, 0x6d, 0xa5, 0xf7, 0xa7, 0x3e, 0x0c, 0x12, 0xf2, 0x76,
+ 0xce, 0x3a, 0xa9, 0x66, 0x5e, 0xcc, 0x73, 0x49, 0x96, 0xcf, 0xde, 0x34, 0x73, 0x4d, 0x7b, 0xc3,
+ 0x1b, 0x71, 0xf7, 0x58, 0x82, 0xb0, 0x68, 0x19, 0xa7, 0xaf, 0x0a, 0xa6, 0x68, 0x8c, 0x81, 0xd3,
+ 0xe3, 0xa9, 0x73, 0x8e, 0x1b, 0xdf, 0xcb, 0x62, 0xbc, 0xfd, 0xc0, 0x1d, 0xcb, 0x1a, 0x3b, 0x75,
+ 0x9d, 0xf0, 0x32, 0xfc, 0xaa, 0x3b, 0x59, 0xa9, 0x1e, 0xce, 0xe4, 0x04, 0x59, 0x26, 0x84, 0x9c,
+ 0x8c, 0x60, 0xca, 0xd9, 0x44, 0x71, 0x9b, 0xfb, 0x0c, 0x13, 0x68, 0xd6, 0x9b, 0xc2, 0xe9, 0x58,
+ 0x6e, 0x32, 0x59, 0xba, 0x51, 0xb7, 0x41, 0x73, 0x97, 0xe3, 0x69, 0x78, 0x41, 0x02, 0xa3, 0x70,
+ 0x66, 0xe6, 0x55, 0xde, 0x21, 0x7f, 0xc9, 0x2f, 0x6c, 0x8b, 0xae, 0xa9, 0xc9, 0x1d, 0xad, 0xdd,
+ 0x58, 0xd0, 0x74, 0x0a, 0x96, 0x14, 0x91, 0x41, 0x1a, 0x7e, 0x7d, 0xf7, 0x91, 0xd9, 0x62, 0x15,
+ 0x9a, 0x54, 0xd7, 0x3a, 0x80, 0x74, 0x2e, 0x7a, 0xeb, 0xed, 0xe6, 0x9b, 0x2e, 0x65, 0x10, 0xcc,
+ 0x47, 0xcb, 0x85, 0x60, 0x2c, 0xc0, 0xbd, 0x76, 0x21, 0xe5, 0xf5, 0xd8, 0xbd, 0xbb, 0xe4, 0x71,
+ 0x18, 0xbf, 0x14, 0xac, 0x90, 0x9b, 0x5b, 0xe4, 0xce, 0xb8, 0x8a, 0xb0, 0x5b, 0x21, 0x12, 0x34,
+ 0xad, 0x4d, 0x1a, 0x67, 0x49, 0xce, 0xef, 0xa2, 0x41, 0x7d, 0x33, 0xa7, 0xef, 0x64, 0xa0, 0xf4,
+ 0x1e, 0xe0, 0x11, 0x87, 0xb4, 0xcd, 0x3d, 0xdd, 0x1c, 0x96, 0x49, 0x9c, 0x3d, 0xb8, 0xf7, 0x39,
+ 0xdc, 0x64, 0xb2, 0xb7, 0xa2, 0xad, 0x82, 0xe6, 0xed, 0x05, 0xd2, 0xf0, 0x82, 0x04, 0x85, 0xe0,
+ 0xa4, 0x62, 0xf6, 0xee, 0x37, 0x1f, 0x76, 0x14, 0x9d, 0x18, 0x35, 0xc5, 0x76, 0xa1, 0xdf, 0x04,
+ 0x34, 0xd7, 0x2e, 0xa9, 0xdb, 0x91, 0xf2, 0x25, 0xc3, 0x87, 0x55, 0x2a, 0xf2, 0xac, 0x23, 0xdf,
+ 0xfd, 0x49, 0x62, 0x09, 0xaf, 0x12, 0xf6, 0xbf, 0xa0, 0x6b, 0x89, 0x81, 0xf6, 0xa2, 0xcc, 0x4c,
+ 0x9f, 0xc5, 0x31, 0xe5, 0xb6, 0x09, 0x7b, 0xbe, 0x50, 0xd4, 0xa5, 0xa1, 0x7b, 0x51, 0x66, 0x26,
+ 0x8f, 0xae, 0x29, 0x2d, 0x56, 0x5a, 0xa8, 0x06, 0x65, 0x04, 0xe8, 0xc0, 0xa8, 0x6f, 0x7a, 0xbf,
+ 0xed, 0x22, 0x7a, 0xc1, 0x4f, 0x41, 0x25, 0x07, 0x95, 0xbb, 0xc4, 0xe0, 0x25, 0x9c, 0xd0, 0xd5,
+ 0xf1, 0xf7, 0x68, 0x5f, 0xe7, 0xbe, 0x3a, 0xcd, 0xc7, 0x37, 0xcc, 0xd9, 0x3a, 0x53, 0xc5, 0x56,
+ 0xe5, 0xf6, 0x76, 0xa5, 0x3f, 0x89, 0xad, 0x5b, 0x6e, 0xd3, 0x03, 0x31, 0xad, 0x83, 0xde, 0x78,
+ 0x1f, 0x1b, 0xf1, 0x6a, 0xba, 0xd4, 0x2c, 0x37, 0x3b, 0x9b, 0x88, 0x2f, 0x2c, 0x62, 0x86, 0x64,
+ 0x82, 0xeb, 0xc3, 0x96, 0x10, 0xef, 0x75, 0x9e, 0x25, 0x55, 0x6c, 0x2b, 0x75, 0x44, 0x02, 0xf8,
+ 0xf0, 0x0c, 0x88, 0xb2, 0xe9, 0xa7, 0x2b, 0x27, 0xe0, 0x3a, 0x0d, 0x6a, 0x2b, 0x89, 0xb4, 0x0b,
+ 0xe6, 0x38, 0x95, 0x51, 0x2d, 0xa2, 0x9e, 0xa6, 0x07, 0xc4, 0x83, 0x27, 0x9e, 0x2e, 0x4d, 0x9f,
+ 0xc3, 0x7f, 0x43, 0xdd, 0x18, 0x79, 0xae, 0xd1, 0xd6, 0x9e, 0x5a, 0xdf, 0xae, 0x66, 0x03, 0x84,
+ 0xef, 0x17, 0x79, 0xd8, 0x53, 0x73, 0x07, 0x10, 0xdb, 0xa1, 0x85, 0x45, 0x07, 0xeb, 0x32, 0x6f,
+ 0x1d, 0x2e, 0xf2, 0x73, 0xa6, 0xe6, 0x0e, 0x20, 0x75, 0x81, 0xc9, 0x8a, 0x0e, 0x15, 0x64, 0xde,
+ 0xc0, 0xb1, 0xa0, 0x29, 0x0a, 0x52, 0x9d, 0x2c, 0xbf, 0x89, 0xda, 0xc9, 0x9d, 0xcb, 0x90, 0x63,
+ 0xf6, 0x53, 0x8d, 0x99, 0xcd, 0xf1, 0x4d, 0x1e, 0x32, 0x14, 0xce, 0x46, 0x4d, 0x10, 0x51, 0x06,
+ 0x4b, 0x75, 0x8f, 0x36, 0x64, 0x6c, 0x71, 0x04, 0x46, 0xb9, 0xb0, 0x80, 0x71, 0x4a, 0xed, 0x6b,
+ 0xee, 0xec, 0x99, 0x35, 0x5d, 0x6a, 0x16, 0xfa, 0xfc, 0xac, 0x44, 0xf6, 0x16, 0x31, 0x43, 0x32,
+ 0xe9, 0x48, 0x7c, 0xf3, 0x77, 0x25, 0x61, 0x29, 0x09, 0x8f, 0x46, 0x69, 0x61, 0x72, 0xd7, 0x62,
+ 0xe2, 0x52, 0x93, 0x63, 0x15, 0xc6, 0xda, 0x88, 0x9b, 0xf0, 0x01, 0xae, 0xda, 0xc0, 0x4a, 0x28,
+ 0x16, 0x34, 0x1d, 0xe3, 0xc4, 0x05, 0xb5, 0x81, 0xe7, 0xfe, 0x8e, 0x4d, 0xb5, 0xa7, 0xf9, 0x94,
+ 0x53, 0xca, 0x9b, 0x9a, 0xf4, 0xf7, 0x2a, 0xe0, 0x88, 0x01, 0x3a, 0x30, 0x2a, 0x6b, 0xff, 0x5f,
+ 0xdd, 0x9f, 0x52, 0x5a, 0xac, 0xb4, 0x93, 0x0c, 0xca, 0x08, 0x13, 0x43, 0x93, 0xde, 0xf4, 0xbd,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0xfb, 0xe0, 0xed, 0x0e, 0x19, 0x11, 0xea, 0x27, 0x0d, 0xc1, 0xb3, 0x11, 0xda, 0x71, 0x5d,
+ 0x8b, 0xc4, 0x2f, 0x1f, 0x6e, 0x3e, 0xec, 0x28, 0xf9, 0x30, 0x6a, 0x49, 0xec, 0x81, 0x7d, 0x08,
+ 0xf3, 0xc2, 0x6b, 0x46, 0xfb, 0x8c, 0x18, 0xda, 0x89, 0x2d, 0x8d, 0x7c, 0x18, 0x24, 0x27, 0xec,
+ 0xde, 0x51, 0xb1, 0xae, 0xbe, 0x9f, 0xa0, 0xf1, 0xa3, 0x1f, 0x93, 0x55, 0xa0, 0x73, 0x67, 0x5a,
+ 0x57, 0xa0, 0x9d, 0xa8, 0xcc, 0x93, 0x6e, 0xce, 0x14, 0x35, 0xb8, 0xb9, 0x6e, 0x85, 0xf8, 0xe8,
+ 0x9e, 0x3e, 0xd1, 0x08, 0xb8, 0x10, 0x6a, 0x54, 0x77, 0xd9, 0x64, 0x12, 0x6a, 0x8b, 0x17, 0x7b,
+ 0x38, 0x69, 0x24, 0xff, 0x93, 0x3d, 0x3e, 0x57, 0xa4, 0xdb, 0x10, 0x72, 0x3e, 0x5d, 0x2a, 0xc5,
+ 0xbe, 0xe8, 0xe1, 0x5b, 0xbb, 0xb6, 0x0f, 0xe7, 0x1d, 0xba, 0xfe, 0xd0, 0x0f, 0xf7, 0x2f, 0x8a,
+ 0x8a, 0x3f, 0xcf, 0xf2, 0x60, 0x27, 0xfd, 0xc2, 0xde, 0x3d, 0xab, 0xfa, 0xfd, 0x5b, 0x0c, 0x55,
+ 0x4f, 0x1f, 0x89, 0x04, 0x5c, 0x08, 0x35, 0x2a, 0xda, 0x8d, 0x32, 0x09, 0x35, 0xa4, 0xea, 0xdc,
+ 0xa2, 0x3d, 0xf3, 0xc5, 0x13, 0x49, 0x10, 0x2d, 0x4f, 0x36, 0xf6, 0xe9, 0x10, 0x38, 0x3a, 0x09,
+ 0x61, 0x42, 0xb0, 0x18, 0x0b, 0x30, 0xbe, 0xfc, 0x99, 0xa8, 0xac, 0x36, 0xbe, 0x5e, 0x39, 0x8d,
+ 0x9c, 0x0b, 0xd2, 0x11, 0xa4, 0x22, 0x48, 0x43, 0x39, 0xc3, 0x25, 0xb7, 0x48, 0xfc, 0xf5, 0xc1,
+ 0x26, 0x89, 0x35, 0x78, 0x27, 0xf0, 0x03, 0x8a, 0xb8, 0x4d, 0x59, 0xee, 0x03, 0xe5, 0xdd, 0xfc,
+ 0x60, 0xb9, 0x50, 0xf5, 0x05, 0x29, 0xaf, 0x16, 0xbe, 0xa5, 0x6d, 0x85, 0xaf, 0x84, 0x48, 0xd0,
+ 0x78, 0x06, 0x44, 0x59, 0x95, 0xb2, 0xf4, 0xf2, 0x70, 0x1d, 0xe7, 0x35, 0xf4, 0xa5, 0x5a, 0xe4,
+ 0xd9, 0xf5, 0x54, 0x68, 0x94, 0xd0, 0xd7, 0x22, 0x56, 0x3c, 0x91, 0xca, 0xd7, 0x30, 0xf3, 0x0a,
+ 0x3c, 0x03, 0x22, 0xcd, 0xab, 0x59, 0x7a, 0x79, 0x38, 0xef, 0x92, 0xfb, 0x7a, 0xb3, 0x2d, 0x72,
+ 0xfb, 0x16, 0x67, 0x22, 0x8b, 0x44, 0x90, 0x86, 0x72, 0x45, 0x4a, 0xad, 0x90, 0x3b, 0x29, 0x41,
+ 0xc7, 0x15, 0x45, 0xef, 0x20, 0x1d, 0xea, 0xff, 0x4a, 0xaa, 0xd8, 0x56, 0xea, 0x88, 0x04, 0x33,
+ 0xfe, 0x87, 0x81, 0xfd, 0xbd, 0x39, 0xc5, 0x42, 0xc9, 0x7c, 0x09, 0x97, 0xc5, 0x0f, 0x5f, 0xab,
+ 0x36, 0xe2, 0x2d, 0xb0, 0xc7, 0xa3, 0xd0, 0x32, 0x8d, 0x9d, 0x14, 0x8f, 0xd0, 0xdb, 0xc1, 0x65,
+ 0xa0, 0x08, 0xf0, 0xdc, 0x0f, 0x7b, 0x32, 0x3a, 0x01, 0x2c, 0xb7, 0x4c, 0x32, 0x4f, 0xd8, 0xb3,
+ 0x50, 0x04, 0x78, 0x6e, 0xe6, 0xdc, 0x19, 0x1d, 0xe1, 0x16, 0xba, 0x26, 0x19, 0xc6, 0x6c, 0xb8,
+ 0xf5, 0x9d, 0x6e, 0x6d, 0xdf, 0xda, 0x7e, 0xe3, 0x5b, 0x03, 0x4e, 0x50, 0x7e, 0xbd, 0xc2, 0xe1,
+ 0xaa, 0xe9, 0xff, 0xa1, 0x63, 0x81, 0x98, 0x71, 0xb4, 0x5e, 0x31, 0x38, 0x98, 0x27, 0x34, 0xa4,
+ 0xd3, 0x14, 0x5b, 0x15, 0xf8, 0x2a, 0x7d, 0x69, 0xe3, 0x4e, 0x17, 0xbe, 0x7d, 0x58, 0x1f, 0x1d,
+ 0x41, 0x94, 0x80, 0x4b, 0x08, 0x96, 0xdb, 0x4f, 0xf3, 0xcb, 0x36, 0xf4, 0xdb, 0x22, 0x01, 0x7c,
+ 0x7f, 0xa2, 0xa1, 0x9f, 0xbf, 0xfd, 0x83, 0x21, 0x85, 0x3e, 0xe5, 0xaa, 0x83, 0xe6, 0xce, 0xb4,
+ 0xa5, 0x99, 0x16, 0x03, 0x39, 0x06, 0x67, 0xfe, 0xba, 0x15, 0xf4, 0x76, 0x67, 0x7b, 0xae, 0x59,
+ 0xb0, 0x63, 0xe8, 0x14, 0xef, 0x28, 0xe1, 0x82, 0x34, 0xfc, 0xfa, 0x2d, 0xe1, 0x71, 0xc4, 0x2a,
+ 0x48, 0xbb, 0x6c, 0xc2, 0x76, 0x47, 0x42, 0xf9, 0x2f, 0xae, 0x30, 0x96, 0x42, 0xe7, 0x7e, 0x8c,
+ 0x20, 0xd6, 0x30, 0x53, 0x03, 0xa6, 0x65, 0xb3, 0x6a, 0x63, 0x9a, 0xc2, 0x65, 0x7c, 0x38, 0xf1,
+ 0xf4, 0x66, 0x8e, 0x80, 0xd1, 0xc3, 0x6f, 0x09, 0x7c, 0x0e, 0x8f, 0xe3, 0x6f, 0x67, 0xb3, 0xbc,
+ 0x0b, 0x1a, 0xef, 0x90, 0x62, 0xe3, 0xbb, 0xa1, 0x92, 0x7f, 0x47, 0xc7, 0xbb, 0xb2, 0x9d, 0x4a,
+ 0xd8, 0x0e, 0xb4, 0x85, 0x9a, 0xc9, 0xc6, 0xc8, 0x71, 0x31, 0x50, 0x79, 0xc6, 0xea, 0x82, 0x57,
+ 0xb7, 0xc7, 0x0d, 0xd2, 0xc5, 0x67, 0x96, 0x51, 0xc1, 0xdf, 0xf8, 0xb2, 0x96, 0x32, 0x50, 0x7a,
+ 0xb1, 0x98, 0x08, 0xf9, 0xe1, 0x31, 0xf0, 0x68, 0x13, 0xf1, 0x3b, 0x9e, 0xf0, 0xab, 0xb5, 0x77,
+ 0xd5, 0x4b, 0x5e, 0x3e, 0xdc, 0x7c, 0x1b, 0x50, 0x31, 0x60, 0xd4, 0x92, 0x1b, 0xc1, 0xfa, 0x10,
+ 0x22, 0xe3, 0x33, 0x4a, 0x1f, 0x94, 0x47, 0xa4, 0x24, 0x79, 0xdb, 0x67, 0x47, 0x0b, 0xda, 0x4b,
+ 0x4c, 0xd1, 0x6a, 0xf0, 0x4e, 0x23, 0x06, 0xd7, 0xb3, 0x9a, 0xb2, 0x1f, 0x06, 0x09, 0x79, 0x3b,
+ 0x3f, 0xcd, 0xc1, 0x39, 0xb9, 0x72, 0x49, 0x84, 0x51, 0xf8, 0x12, 0xed, 0x49, 0x1e, 0xbe, 0x95,
+ 0x75, 0x43, 0xae, 0xe2, 0xd3, 0x07, 0x29, 0x6a, 0x30, 0x4c, 0x63, 0xde, 0x29, 0x8e, 0x22, 0xa3,
+ 0x19, 0x44, 0xf4, 0x41, 0x9e, 0x82, 0x4a, 0x0e, 0xe9, 0xb5, 0x4b, 0x03, 0x4a, 0xfb, 0x63, 0x69,
+ 0x74, 0xb8, 0x4e, 0x0f, 0xdd, 0x1e, 0x38, 0x80, 0x17, 0x41, 0xa2, 0x6d, 0x38, 0x54, 0x53, 0xfe,
+ 0x13, 0xa5, 0xfb, 0x3c, 0xf2, 0x78, 0xe0, 0x45, 0x5c, 0xc7, 0xcd, 0x77, 0xe0, 0x93, 0x8f, 0x7e,
+ 0xd7, 0x7e, 0x5d, 0x27, 0xc0, 0x4e, 0x39, 0x47, 0x7f, 0x7a, 0x95, 0x37, 0x39, 0xb6, 0x18, 0xaa,
+ 0x84, 0xb4, 0xc6, 0xbd, 0x34, 0xb9, 0x13, 0xa7, 0xf7, 0x7b, 0xaf, 0x07, 0x13, 0xdd, 0xe7, 0xf5,
+ 0x7b, 0xc8, 0xa7, 0xad, 0x87, 0x99, 0xc7, 0x0f, 0x19, 0x0a, 0x67, 0x23, 0xc7, 0x08, 0xc9, 0x03,
+ 0x42, 0x5a, 0x63, 0xbf, 0x1a, 0xbd, 0xe8, 0xb2, 0x9a, 0xdc, 0xb6, 0xe2, 0xe8, 0x8f, 0x92, 0x9b,
+ 0x11, 0x90, 0xf8, 0x25, 0xee, 0x4a, 0xc2, 0x52, 0x12, 0xdd, 0x8c, 0xd2, 0xc2, 0xe4, 0x6d, 0xc4,
+ 0xe0, 0x67, 0x90, 0x7a, 0x09, 0xf4, 0xf8, 0x9f, 0xd5, 0xea, 0x40, 0x0b, 0xf8, 0xb7, 0xa8, 0x92,
+ 0x71, 0x29, 0xa8, 0xd0, 0xeb, 0x63, 0x6d, 0x44, 0xac, 0x78, 0xe1, 0x57, 0x6d, 0x60, 0x25, 0x14,
+ 0x31, 0x46, 0xc8, 0x76, 0xed, 0xec, 0xa7, 0xe1, 0x78, 0xbe, 0x16, 0x10, 0xa7, 0x98, 0x55, 0x35,
+ 0x67, 0x1d, 0xb5, 0x33, 0x2f, 0x66, 0xd8, 0xc5, 0x4b, 0x86, 0x6f, 0x1a, 0xd8, 0xc7, 0xdc, 0x80,
+ 0xc8, 0x65, 0xac, 0x4d, 0x7a, 0x9a, 0x15, 0x70, 0x44, 0xe1, 0x1d, 0x18, 0x15, 0xd4, 0x9e, 0xce,
+ 0x4d, 0x2a, 0x8a, 0x1d, 0x40, 0x3a, 0x17, 0x3d, 0x94, 0x97, 0x73, 0xac, 0x17, 0xd3, 0x08, 0x66,
+ 0xfc, 0xb2, 0x82, 0xe4, 0xa1, 0x0b, 0xe7, 0x55, 0x87, 0x66, 0x48, 0x32, 0xe7, 0x78, 0xbd, 0x11,
+ 0xb3, 0xad, 0x0b, 0xe0, 0xfd, 0x03, 0xd2, 0x7f, 0x5d, 0xeb, 0x7a, 0x3b, 0xd2, 0xdc, 0x57, 0xcd,
+ 0x44, 0x05, 0x66, 0x94, 0x3e, 0xeb, 0x8e, 0x8b, 0x48, 0xf2, 0x75, 0xce, 0x8e, 0x16, 0x77, 0x96,
+ 0xc5, 0x20, 0x46, 0xf6, 0x3c, 0x2f, 0xc8, 0xe8, 0x04, 0xb0, 0x99, 0xf3, 0xc8, 0xff, 0xe6, 0x89,
+ 0x14, 0x01, 0x1e, 0xfa, 0xd8, 0x37, 0x97, 0x96, 0xa9, 0xe4, 0xcf, 0xe8, 0x97, 0xd0, 0x1b, 0x2e,
+ 0x2b, 0xcc, 0xdf, 0xc3, 0x61, 0x45, 0xde, 0x12, 0xf8, 0x1c, 0xdd, 0x05, 0xde, 0xce, 0xa5, 0xbb,
+ 0x12, 0x5e, 0x1b, 0xd1, 0xfc, 0x61, 0xf1, 0xaf, 0x7b, 0xca, 0x0c, 0xc4, 0xf1, 0x49, 0xfe, 0x23,
+ 0xb6, 0x3c, 0xed, 0x3f, 0xcb, 0x7e, 0x87, 0xbb, 0xe6, 0xd2, 0x39, 0x01, 0x87, 0xe8, 0x21, 0x27,
+ 0xbc, 0xdd, 0xe2, 0x42, 0xa7, 0x84, 0x2d, 0xf0, 0x53, 0xa0, 0xbf, 0x75, 0x2d, 0x80, 0xcd, 0x30,
+ 0x8d, 0x9b, 0x2a, 0x34, 0x4a, 0x68, 0x8a, 0x11, 0x2b, 0x1e, 0xa9, 0x65, 0x8a, 0x18, 0x98, 0x05,
+ 0x90, 0xb5, 0xd8, 0x47, 0xec, 0x8e, 0x84, 0x31, 0x5e, 0x9f, 0x60, 0xef, 0x84, 0x0d, 0xfc, 0xdb,
+ 0x77, 0x76, 0xad, 0xfb, 0xcf, 0x35, 0x0b, 0x7d, 0x7e, 0x56, 0x22, 0x7b, 0x0b, 0xf9, 0xc0, 0x19,
+ 0x94, 0xdf, 0xde, 0x75, 0xd4, 0xea, 0xc0, 0x1f, 0xc2, 0xab, 0xe2, 0x66, 0xc0, 0xe3, 0xfb, 0x6c,
+ 0xe7, 0xc3, 0x75, 0xbc, 0x23, 0xbb, 0x8f, 0x4c, 0x20, 0xc9, 0x42, 0x94, 0x8f, 0xf4, 0x3c, 0xc2,
+ 0x5b, 0x1e, 0x97, 0xfe, 0x84, 0x3f, 0xa2, 0xbc, 0x73, 0x69, 0xfd, 0xe1, 0xa2, 0x74, 0xf1, 0xf2,
+ 0x64, 0xd3, 0x56, 0xc7, 0x3d, 0x4d, 0xeb, 0x38, 0x22, 0x91, 0xef, 0x0c, 0xeb, 0x6a, 0x4f, 0x67,
+ 0x0a, 0xe1, 0x0f, 0x7d, 0x6c, 0xfa, 0xaa, 0x4b, 0xb5, 0x72, 0x86, 0x74, 0xaa, 0x68, 0xec, 0x17,
+ 0xab, 0x12, 0x1f, 0x4c, 0x6d, 0x98, 0x89, 0x9b, 0x93, 0x53, 0xf0, 0x8b, 0x89, 0xfd, 0x45, 0xf9,
+ 0x03, 0xce, 0xe3, 0xf4, 0x12, 0x2b, 0x33, 0xfd, 0x69, 0x17, 0x80, 0x16, 0x33, 0xad, 0x93, 0xe7,
+ 0x80, 0xde, 0xc0, 0x8f, 0x0c, 0xdd, 0x57, 0x89, 0x6b, 0x4f, 0x2d, 0x8e, 0x57, 0x33, 0xe0, 0x42,
+ 0x83, 0x10, 0x23, 0x7b, 0x1e, 0xf6, 0x64, 0x74, 0x02, 0x58, 0xad, 0x98, 0x64, 0x9e, 0x73, 0xa5,
+ 0xa6, 0x57, 0xf5, 0xf7, 0x2b, 0x2d, 0x54, 0x03, 0xd3, 0x02, 0x74, 0x60, 0x54, 0xd6, 0x3d, 0xbe,
+ 0x09, 0x2f, 0xec, 0x89, 0x7e, 0xd1, 0x99, 0xb6, 0xdc, 0x65, 0x06, 0x62, 0x99, 0xc5, 0x7f, 0xf0,
+ 0xac, 0xb6, 0xfa, 0x8a, 0x47, 0xd7, 0xfe, 0x48, 0x66, 0x70, 0xf2, 0x14, 0xfe, 0xbe, 0xd1, 0xa9,
+ 0x2c, 0x68, 0x3a, 0x05, 0x4b, 0x0a, 0xa9, 0xc1, 0x0d, 0x3f, 0xdf, 0x9a, 0xa9, 0x8d, 0x31, 0xeb,
+ 0x7e, 0x59, 0x41, 0x72, 0xb1, 0xe4, 0x92, 0xcb, 0xa2, 0x33, 0x24, 0x19, 0x92, 0x3c, 0xbf, 0xe9,
+ 0x2f, 0xa6, 0xd9, 0xf1, 0x59, 0x21, 0x9a, 0x3c, 0x64, 0x28, 0x5f, 0x8c, 0x9a, 0x20, 0xa2, 0x0c,
+ 0xb5, 0xf2, 0x0e, 0xcb, 0xd9, 0x55, 0xb4, 0x46, 0x8f, 0xc5, 0xb9, 0x17, 0xb4, 0x45, 0xb2, 0xc0,
+ 0x3b, 0xa7, 0xc7, 0x0b, 0x81, 0x16, 0x0d, 0xaa, 0xcd, 0xcc, 0x90, 0x64, 0x0d, 0xf0, 0xb9, 0x22,
+ 0xbd, 0x26, 0x02, 0xaf, 0xa9, 0x9d, 0x3c, 0x1a, 0x74, 0xad, 0x7e, 0xc6, 0x3c, 0x5a, 0xbc, 0x6d,
+ 0x04, 0x6a, 0x06, 0x32, 0x38, 0x64, 0x44, 0x2e, 0x9c, 0x34, 0x82, 0x89, 0x44, 0xee, 0x07, 0xb7,
+ 0xeb, 0x7d, 0x7f, 0xea, 0x6b, 0x17, 0x43, 0x3e, 0x47, 0x95, 0x07, 0xcc, 0x43, 0x05, 0x35, 0xd8,
+ 0xbb, 0x79, 0x07, 0x84, 0x8d, 0xcb, 0x5a, 0x23, 0xa6, 0x83, 0xbd, 0xea, 0x5a, 0xc3, 0x59, 0x60,
+ },
+ { /* 13 */
+ 0x79, 0x1a, 0x2d, 0x6d, 0xc9, 0x3b, 0x13, 0xe1, 0x79, 0x58, 0x80, 0x80, 0x75, 0x80, 0xb7, 0x36,
+ 0x91, 0x58, 0xcb, 0xc6, 0xfe, 0x1f, 0xb1, 0x50, 0x91, 0xd6, 0x1a, 0x1a, 0x1d, 0x1a, 0x89, 0x33,
+ 0x99, 0x09, 0xd2, 0xbc, 0x88, 0x79, 0x33, 0xc2, 0x99, 0xe9, 0xdc, 0xdc, 0x3b, 0xdc, 0x07, 0x9c,
+ 0xb9, 0x8e, 0xb6, 0x97, 0x93, 0x22, 0x7e, 0xcf, 0xb9, 0x15, 0x42, 0x42, 0xa3, 0x42, 0x7a, 0x65,
+ 0x71, 0x4b, 0x34, 0x17, 0xbf, 0x5d, 0x91, 0x73, 0x71, 0x67, 0x46, 0x46, 0x53, 0x46, 0x39, 0x99,
+ 0xea, 0xc7, 0x71, 0x54, 0xcb, 0xdc, 0x63, 0x74, 0xea, 0xf1, 0x4a, 0x4a, 0x80, 0x4a, 0xfc, 0x5e,
+ 0xd7, 0xd9, 0x79, 0x52, 0x0f, 0x62, 0xab, 0xc6, 0xd7, 0x6c, 0x56, 0x56, 0x15, 0x56, 0xf6, 0xef,
+ 0x95, 0x91, 0x26, 0xfb, 0xc5, 0x2c, 0xf0, 0x19, 0x95, 0x28, 0x79, 0x79, 0x0e, 0x79, 0xce, 0x85,
+ 0x55, 0x05, 0xbd, 0x01, 0x9f, 0x35, 0x9d, 0x37, 0x55, 0x65, 0xbb, 0xbb, 0xd8, 0xbb, 0x03, 0xd6,
+ 0xda, 0xe2, 0x27, 0x8b, 0x3c, 0x4b, 0xe9, 0x9e, 0xda, 0x73, 0x9b, 0x9b, 0x54, 0x9b, 0x5e, 0x3a,
+ 0xdb, 0x41, 0x8d, 0x15, 0x42, 0x37, 0x68, 0x1d, 0xdb, 0xad, 0xf3, 0xf3, 0x20, 0xf3, 0x3f, 0xf6,
+ 0xb5, 0x16, 0x42, 0xd0, 0xde, 0x77, 0xbd, 0x14, 0xb5, 0xd4, 0xe7, 0xe7, 0x96, 0xe7, 0xb3, 0x7c,
+ 0x3f, 0x9b, 0x9f, 0xf9, 0x38, 0x46, 0x09, 0x77, 0x3f, 0xe2, 0xcc, 0xcc, 0x7d, 0xcc, 0xc8, 0xea,
+ 0x54, 0xa6, 0x17, 0x9f, 0xe1, 0x49, 0x1c, 0xb4, 0x54, 0xbb, 0xd3, 0xd3, 0xac, 0xd3, 0x62, 0x1a,
+ 0x7d, 0xd3, 0xc0, 0x50, 0xf2, 0x08, 0x52, 0xa8, 0x7d, 0xa6, 0xe3, 0xe3, 0x66, 0xe3, 0xf0, 0x80,
+ 0xd5, 0x5c, 0xee, 0xad, 0xf3, 0x9a, 0x6a, 0x03, 0xd5, 0x13, 0x86, 0x86, 0xfd, 0x86, 0x34, 0xb4,
+ 0xbd, 0x47, 0x5b, 0xaa, 0xa8, 0x11, 0x3f, 0x86, 0xbd, 0xeb, 0x21, 0x21, 0xb0, 0x21, 0x3d, 0xd3,
+ 0xa9, 0x2c, 0x84, 0x63, 0x7f, 0xee, 0xb9, 0x28, 0xa9, 0x6b, 0x0d, 0x0d, 0xef, 0x0d, 0xa5, 0xf8,
+ 0xfe, 0xac, 0xae, 0x9d, 0x1c, 0x23, 0xe5, 0xda, 0xfe, 0x71, 0x66, 0x66, 0xdf, 0x66, 0x64, 0x75,
+ 0x3b, 0x52, 0x72, 0xc4, 0x03, 0x75, 0x48, 0x3e, 0x3b, 0x1c, 0xaf, 0xaf, 0x6e, 0xaf, 0x8f, 0x5c,
+ 0x1d, 0x99, 0x6c, 0x2d, 0xdf, 0xe5, 0x85, 0xbf, 0x1d, 0x61, 0x82, 0x82, 0x0d, 0x82, 0x77, 0x48,
+ 0x36, 0x69, 0x2c, 0x1d, 0x30, 0x5c, 0x0a, 0x66, 0x36, 0x03, 0x62, 0x62, 0x2f, 0x62, 0x27, 0x89,
+ 0x38, 0x74, 0x4f, 0xa5, 0x81, 0xf1, 0x08, 0x78, 0x38, 0xbd, 0x17, 0x17, 0xf2, 0x17, 0x2c, 0xcb,
+ 0x07, 0xef, 0xd0, 0x5c, 0xb9, 0xb7, 0x01, 0x0f, 0x07, 0x5f, 0xdb, 0xdb, 0x8f, 0xdb, 0xe4, 0x21,
+ 0x1b, 0xd5, 0x16, 0xef, 0x18, 0x2e, 0x05, 0x33, 0x1b, 0xe0, 0x31, 0x31, 0xf6, 0x31, 0xf2, 0xa5,
+ 0xfb, 0xc6, 0xe9, 0x3e, 0x59, 0x6c, 0x25, 0x10, 0xfb, 0x51, 0x6d, 0x6d, 0xb8, 0x6d, 0x42, 0x0f,
+ 0x70, 0xe8, 0x9e, 0x89, 0xc1, 0x21, 0x10, 0xf0, 0x70, 0xb9, 0x2e, 0x2e, 0x27, 0x2e, 0x58, 0x55,
+ 0x89, 0xab, 0xe0, 0x48, 0x64, 0xb5, 0xf4, 0x25, 0x89, 0x97, 0x93, 0x93, 0x77, 0x93, 0xd8, 0x01,
+ 0x4a, 0x19, 0x46, 0xd3, 0xbc, 0x28, 0xd9, 0x4d, 0x4a, 0x7b, 0xe9, 0xe9, 0x3d, 0xe9, 0xb6, 0xc5,
+ 0xae, 0xc3, 0x54, 0x3f, 0xc6, 0x59, 0xb8, 0x27, 0xae, 0x34, 0xd6, 0xd6, 0x60, 0xd6, 0x41, 0xd9,
+ 0x3d, 0x1e, 0x08, 0x06, 0xc4, 0xbe, 0xc8, 0xb2, 0x3d, 0x9d, 0x1c, 0x1c, 0x95, 0x1c, 0x0a, 0xb1,
+ 0x29, 0x75, 0xd7, 0xcf, 0x13, 0x41, 0x4e, 0x1c, 0x29, 0x1d, 0x30, 0x30, 0xca, 0x30, 0x92, 0x9a,
+ 0x8a, 0x8d, 0xdd, 0x29, 0xe6, 0x31, 0xb4, 0x63, 0x8a, 0x36, 0x2b, 0x2b, 0xeb, 0x2b, 0x7b, 0x96,
+ 0xcd, 0xaf, 0xc5, 0x23, 0x69, 0x30, 0x2f, 0x76, 0xcd, 0x52, 0x0f, 0x0f, 0x97, 0x0f, 0x65, 0x86,
+ 0x41, 0x6e, 0x62, 0xc8, 0x48, 0xca, 0x1b, 0x99, 0x41, 0xe5, 0x97, 0x97, 0x87, 0x97, 0x9b, 0xfd,
+ 0xce, 0x89, 0xf8, 0x42, 0xeb, 0xb4, 0x6f, 0x30, 0xce, 0xf3, 0xb7, 0xb7, 0x0b, 0xb7, 0xc6, 0x11,
+ 0x16, 0xee, 0x48, 0x36, 0x2b, 0x07, 0x47, 0x6b, 0x16, 0xff, 0xfc, 0xfc, 0xb7, 0xfc, 0x5a, 0x70,
+ 0x6c, 0xd2, 0x58, 0x3a, 0x60, 0xb8, 0x14, 0xcc, 0x6c, 0x06, 0xc4, 0xc4, 0x5e, 0xc4, 0x4e, 0xd1,
+ 0x1f, 0x1c, 0xfb, 0xd2, 0x23, 0x1d, 0x44, 0x7a, 0x1f, 0x1e, 0x52, 0x52, 0xe5, 0x52, 0xb5, 0x13,
+ 0xe0, 0x13, 0xff, 0xd1, 0x41, 0x42, 0x20, 0x23, 0xe0, 0xb1, 0x5c, 0x5c, 0x4e, 0x5c, 0xb0, 0xaa,
+ 0xf5, 0xdb, 0x8a, 0x86, 0xe8, 0xc1, 0x27, 0x0e, 0xf5, 0xef, 0x18, 0x18, 0x65, 0x18, 0x49, 0x4d,
+ 0xb0, 0x7c, 0x05, 0x73, 0x9b, 0x38, 0x7d, 0xde, 0xb0, 0xf4, 0xec, 0xec, 0xf1, 0xec, 0x95, 0x06,
+ 0xde, 0x2b, 0xca, 0xb6, 0x07, 0x78, 0xa8, 0xd7, 0xde, 0x8d, 0xf8, 0xf8, 0x47, 0xf8, 0x19, 0x8c,
+ 0x03, 0x26, 0x3d, 0x61, 0x82, 0x84, 0x40, 0x46, 0x03, 0xa1, 0xb8, 0xb8, 0x9c, 0xb8, 0xa3, 0x97,
+ 0xd0, 0x36, 0xa9, 0x0e, 0xb6, 0xd5, 0xaa, 0xc9, 0xd0, 0x33, 0x8d, 0x8d, 0x9a, 0x8d, 0x12, 0xce,
+ 0x8e, 0x44, 0x30, 0x14, 0xdd, 0x02, 0xf5, 0x2a, 0x8e, 0xc8, 0x48, 0x48, 0xf8, 0x48, 0x3c, 0x20,
+ 0x23, 0xa1, 0x59, 0x4a, 0x99, 0xdf, 0x0d, 0x4b, 0x23, 0x5d, 0x26, 0x26, 0x04, 0x26, 0xde, 0x6e,
+ 0x0a, 0xd4, 0x8e, 0x85, 0x8a, 0x9e, 0x43, 0x57, 0x0a, 0x40, 0x16, 0x16, 0xce, 0x16, 0x4c, 0xf4,
+ 0xf3, 0x97, 0xf0, 0x44, 0x2f, 0x0a, 0xa7, 0x82, 0xf3, 0x6e, 0xab, 0xab, 0x9e, 0xab, 0xcc, 0xa0,
+ 0x06, 0x4c, 0x7a, 0xc2, 0xc7, 0xcb, 0x80, 0x8c, 0x06, 0x81, 0xb3, 0xb3, 0xfb, 0xb3, 0x85, 0xed,
+ 0xdf, 0x88, 0x60, 0x28, 0x79, 0x04, 0x29, 0x54, 0xdf, 0x53, 0x90, 0x90, 0x33, 0x90, 0x78, 0x40,
+ 0x4d, 0xf6, 0x96, 0x8f, 0x05, 0x9f, 0xd8, 0x42, 0x4d, 0x24, 0x32, 0x32, 0xb2, 0x32, 0x52, 0xe4,
+ 0x98, 0xaa, 0x78, 0x22, 0xf6, 0x05, 0xb2, 0x41, 0x98, 0x37, 0xb4, 0xb4, 0x4f, 0xb4, 0x66, 0x50,
+ 0x97, 0x14, 0xb1, 0x04, 0x39, 0xd4, 0x31, 0xdc, 0x97, 0x57, 0xa9, 0xa9, 0xe6, 0xa9, 0x0c, 0xde,
+ 0xad, 0xe5, 0x69, 0x5e, 0x44, 0xdd, 0xf8, 0x61, 0xad, 0x95, 0x6e, 0x6e, 0xfc, 0x6e, 0xe2, 0x4e,
+ 0x15, 0xc8, 0x75, 0x57, 0xa9, 0x83, 0x07, 0x2d, 0x15, 0x5e, 0x44, 0x44, 0x2b, 0x44, 0xf9, 0xe7,
+ 0xa2, 0x5b, 0xa0, 0x78, 0x8b, 0x0c, 0x7b, 0xfc, 0xa2, 0xf5, 0x73, 0x73, 0x55, 0x73, 0x88, 0xc0,
+ 0xab, 0xa9, 0x13, 0x9c, 0x83, 0x16, 0x78, 0xed, 0xab, 0x14, 0xdd, 0xdd, 0x07, 0xdd, 0x67, 0xa3,
+ 0xc0, 0x94, 0x9b, 0xfa, 0x5a, 0x19, 0x6d, 0x2e, 0xc0, 0x4d, 0xc2, 0xc2, 0xd6, 0xc2, 0xcd, 0x53,
+ 0xb6, 0x30, 0x7f, 0xb1, 0x5c, 0xf3, 0xfd, 0x52, 0xb6, 0x75, 0x5f, 0x5f, 0x0a, 0x5f, 0x10, 0xeb,
+ 0x53, 0x49, 0xc7, 0xc3, 0x58, 0xfe, 0x1d, 0xbb, 0x53, 0xe4, 0x08, 0x08, 0x23, 0x08, 0x86, 0x3b,
+ 0xed, 0x28, 0xa1, 0x08, 0x72, 0x6b, 0x62, 0x7b, 0xed, 0xae, 0x91, 0x91, 0x0f, 0x91, 0x18, 0x7f,
+ 0xc1, 0x37, 0x31, 0x64, 0x24, 0x65, 0xec, 0xad, 0xc1, 0x93, 0xaa, 0xaa, 0xa2, 0xaa, 0xac, 0x9f,
+ 0xe1, 0xb0, 0x55, 0x4f, 0x3f, 0x3e, 0xa1, 0xa0, 0xe1, 0x6f, 0x34, 0x34, 0x3a, 0x34, 0xd1, 0x66,
+ 0x62, 0xcf, 0x3b, 0x82, 0xd1, 0x15, 0x16, 0xd2, 0x62, 0xb8, 0xb1, 0xb1, 0x83, 0xb1, 0x45, 0x93,
+ 0x24, 0x4e, 0x89, 0x16, 0x20, 0x68, 0x0c, 0x44, 0x24, 0x02, 0xfd, 0xfd, 0x8b, 0xfd, 0x3a, 0x4f,
+ 0xe9, 0xe1, 0x4c, 0x35, 0x49, 0x58, 0x23, 0x32, 0xe9, 0x50, 0xf2, 0xf2, 0x1c, 0xf2, 0x5f, 0xc9,
+ 0x65, 0x20, 0xeb, 0xde, 0x68, 0xa2, 0x17, 0xdd, 0x65, 0xe7, 0x6a, 0x6a, 0x0c, 0x6a, 0xa1, 0xb2,
+ 0xec, 0x8b, 0x0b, 0x96, 0x0c, 0x17, 0xe3, 0xf8, 0xec, 0x70, 0xf9, 0xf9, 0x7b, 0xf9, 0x79, 0xb3,
+ 0x5d, 0x54, 0xa4, 0x7b, 0xe9, 0x53, 0x1f, 0xa5, 0x5d, 0x5a, 0x7d, 0x7d, 0xfe, 0x7d, 0x8d, 0x79,
+ 0x26, 0xcb, 0x1e, 0xe9, 0xdc, 0x90, 0xcd, 0x81, 0x26, 0x7d, 0x2d, 0x2d, 0x63, 0x2d, 0xf8, 0x14,
+ 0xbe, 0x61, 0x66, 0xcb, 0x2a, 0x95, 0x7f, 0xc0, 0xbe, 0x4a, 0x99, 0x99, 0x2c, 0x99, 0x9e, 0x44,
+ 0x21, 0x24, 0xce, 0xb5, 0x65, 0x27, 0xcc, 0x8e, 0x21, 0x22, 0xf6, 0xf6, 0xec, 0xf6, 0x1c, 0x35,
+ 0x4b, 0xba, 0xec, 0x4d, 0xc2, 0x54, 0x58, 0xce, 0x4b, 0xa5, 0x81, 0x81, 0x49, 0x81, 0xd7, 0x09,
+ 0x48, 0x9c, 0xd1, 0x2c, 0x40, 0xd0, 0x18, 0x88, 0x48, 0x04, 0x39, 0x39, 0xd5, 0x39, 0x74, 0x9e,
+ 0xca, 0x40, 0x15, 0x7f, 0xd0, 0x87, 0x2e, 0x79, 0xca, 0x0d, 0xd4, 0xd4, 0x18, 0xd4, 0x81, 0xa7,
+ 0xf7, 0x5e, 0x1d, 0x79, 0x14, 0x39, 0xe6, 0xcb, 0xf7, 0x90, 0xc8, 0xc8, 0x8d, 0xc8, 0x8b, 0x16,
+ 0x7c, 0x70, 0x6a, 0xce, 0x8c, 0x74, 0xd3, 0x2b, 0x7c, 0x78, 0x8b, 0x8b, 0x12, 0x8b, 0x91, 0x4c,
+ 0xff, 0x0f, 0x04, 0x03, 0x62, 0x5f, 0x64, 0x59, 0xff, 0xaf, 0x0e, 0x0e, 0xab, 0x0e, 0x05, 0xb9,
+ 0x20, 0x87, 0x64, 0x2b, 0x1b, 0x5b, 0x4d, 0x0d, 0x20, 0xfc, 0x9e, 0x9e, 0x98, 0x9e, 0x7d, 0xf9,
+ 0xd1, 0x95, 0x03, 0x90, 0xc8, 0xa9, 0x2b, 0x4a, 0xd1, 0xed, 0xe5, 0xe5, 0xee, 0xe5, 0x73, 0x02,
+ 0x85, 0x33, 0x14, 0x0f, 0x29, 0xe0, 0x37, 0xfe, 0x85, 0x56, 0x36, 0x36, 0x42, 0x36, 0x11, 0x18,
+ 0x58, 0x3e, 0xe3, 0xd8, 0xac, 0x1c, 0xdf, 0x6f, 0x58, 0x7a, 0x76, 0x76, 0x99, 0x76, 0xab, 0x03,
+ 0x49, 0x3f, 0x7b, 0xb2, 0x3e, 0xac, 0x99, 0x0b, 0x49, 0xda, 0x51, 0x51, 0xa1, 0x51, 0x15, 0x52,
+ 0xfa, 0x65, 0x43, 0xa0, 0x27, 0x10, 0xa4, 0x93, 0xfa, 0x8f, 0x05, 0x05, 0xcc, 0x05, 0x23, 0xc3,
+ 0x87, 0xb6, 0x83, 0xf0, 0xd5, 0x18, 0xf6, 0x3b, 0x87, 0x29, 0xe6, 0xe6, 0xaa, 0xe6, 0xd3, 0x43,
+ 0x27, 0x68, 0xb4, 0x77, 0xa2, 0xec, 0x4c, 0x02, 0x27, 0xa3, 0x45, 0x45, 0x17, 0x45, 0x99, 0xd8,
+ 0xe8, 0x42, 0xe6, 0xab, 0x37, 0x24, 0xa2, 0xb1, 0xe8, 0x8e, 0x9a, 0x9a, 0x68, 0x9a, 0x3e, 0x05,
+ 0xf4, 0x78, 0x20, 0x18, 0x96, 0xbd, 0xa6, 0x8d, 0xf4, 0x31, 0x70, 0x70, 0x11, 0x70, 0x28, 0x81,
+ 0x5a, 0xbb, 0x74, 0x27, 0x50, 0xe4, 0x1e, 0xaa, 0x5a, 0x05, 0xa6, 0xa6, 0x71, 0xa6, 0x69, 0x58,
+ 0x66, 0x06, 0xd6, 0xbf, 0xea, 0x26, 0x57, 0x9b, 0x66, 0x46, 0xd2, 0xd2, 0x90, 0xd2, 0x02, 0x25,
+ 0xf0, 0xb1, 0xcd, 0x25, 0xad, 0x8e, 0xe7, 0xc4, 0xf0, 0xcf, 0x13, 0x13, 0x02, 0x13, 0x6f, 0x37,
+ 0xcb, 0xe3, 0xbf, 0xe1, 0xae, 0xfb, 0xaf, 0xfa, 0xcb, 0xd3, 0xbc, 0xbc, 0x6c, 0xbc, 0xe0, 0x6b,
+ 0x0e, 0x1d, 0x63, 0xb8, 0xb1, 0xad, 0x02, 0x1e, 0x0e, 0xbe, 0x75, 0x75, 0xdd, 0x75, 0x0b, 0x42,
+ 0xe2, 0x96, 0x68, 0x2e, 0xbd, 0xba, 0xe1, 0xe6, 0xe2, 0xce, 0x8c, 0x8c, 0xa6, 0x8c, 0x72, 0xf1,
+ 0x57, 0x80, 0x2a, 0xfe, 0x63, 0xcd, 0x5c, 0xf2, 0x57, 0x1a, 0x6b, 0x6b, 0x30, 0x6b, 0xc1, 0x8d,
+ 0xc4, 0x5d, 0x76, 0xc7, 0x61, 0x2a, 0x2c, 0x67, 0xc4, 0xb3, 0xa1, 0xa1, 0xc5, 0xa1, 0x8a, 0xe5,
+ 0x9b, 0x8c, 0x45, 0x43, 0x74, 0x81, 0xf2, 0x07, 0x9b, 0x96, 0x0c, 0x0c, 0xd3, 0x0c, 0xc5, 0xc7,
+ 0xee, 0x0e, 0x9c, 0x69, 0xf0, 0xef, 0x22, 0x3d, 0xee, 0x0f, 0x29, 0x29, 0x93, 0x29, 0xbb, 0xe8,
+ 0x1a, 0x76, 0xbc, 0x71, 0x66, 0x52, 0x84, 0xb0, 0x1a, 0x3e, 0x59, 0x59, 0x82, 0x59, 0x93, 0x69,
+ 0x37, 0xca, 0x86, 0x83, 0x4e, 0x20, 0x8b, 0xe5, 0x37, 0xdd, 0x0a, 0x0a, 0x5b, 0x0a, 0x46, 0x45,
+ 0x2e, 0x9a, 0x07, 0x93, 0xaa, 0xf6, 0x4f, 0x13, 0x2e, 0x42, 0xeb, 0xeb, 0x45, 0xeb, 0x76, 0xbb,
+ 0x69, 0xb8, 0x1f, 0x99, 0x25, 0xf7, 0xd4, 0x06, 0x69, 0x26, 0xcf, 0xcf, 0x39, 0xcf, 0x68, 0xab,
+ 0x8b, 0x2e, 0x77, 0xb7, 0x98, 0x4d, 0x35, 0xe0, 0x8b, 0xe8, 0x43, 0x43, 0x9f, 0x43, 0x1a, 0x5a,
+ 0xaf, 0x60, 0xfe, 0xa1, 0xb8, 0x25, 0x39, 0xa4, 0xaf, 0xea, 0xbe, 0xbe, 0x14, 0xbe, 0x20, 0x15,
+ 0xc2, 0x11, 0x0c, 0x05, 0xa6, 0xe1, 0xac, 0xeb, 0xc2, 0x32, 0x12, 0x12, 0x3e, 0x12, 0x0f, 0x08,
+ 0x7f, 0x56, 0x57, 0xaf, 0x0e, 0xf0, 0x93, 0x6d, 0x7f, 0xd9, 0x33, 0x33, 0x8e, 0x33, 0x32, 0xdb,
+ 0x64, 0x83, 0x41, 0x40, 0x16, 0xde, 0x96, 0x5e, 0x64, 0x39, 0x02, 0x02, 0x78, 0x02, 0xc0, 0x7e,
+ 0x45, 0xa7, 0x8f, 0xf5, 0x73, 0xf9, 0x5a, 0xd0, 0x45, 0x1b, 0xf4, 0xf4, 0x94, 0xf4, 0xdc, 0x4b,
+ 0x14, 0x6b, 0xdf, 0xc9, 0xd7, 0xff, 0x86, 0xae, 0x14, 0x80, 0x2c, 0x2c, 0x5f, 0x2c, 0x98, 0x2b,
+ 0xfd, 0x8a, 0x93, 0xfc, 0x9e, 0xa7, 0xa5, 0x9c, 0xfd, 0xd0, 0xde, 0xde, 0x43, 0xde, 0xc7, 0xe2,
+ 0xac, 0x46, 0xc3, 0xc0, 0x3a, 0xa1, 0x79, 0xe2, 0xac, 0x4b, 0x06, 0x06, 0x88, 0x06, 0x83, 0x82,
+ 0x86, 0x15, 0x29, 0x6e, 0xab, 0x64, 0x77, 0xb8, 0x86, 0xf7, 0x8e, 0x8e, 0xde, 0x8e, 0xb2, 0x8f,
+ 0x76, 0xa4, 0xe4, 0x4b, 0x06, 0xea, 0x90, 0x7c, 0x76, 0x38, 0x9d, 0x9d, 0xdc, 0x9d, 0xdd, 0xb8,
+ 0x43, 0xeb, 0xf5, 0x37, 0xb4, 0x32, 0xda, 0x5c, 0x43, 0x9a, 0x47, 0x47, 0x6f, 0x47, 0x59, 0xa6,
+ 0x50, 0x6f, 0xfa, 0xa2, 0xda, 0x7a, 0x5d, 0xfd, 0x50, 0x45, 0xb0, 0xb0, 0xbf, 0xb0, 0x25, 0xac,
+ 0x28, 0xd6, 0x7d, 0x51, 0x6d, 0x3d, 0xcf, 0x9f, 0x28, 0xc3, 0x58, 0x58, 0xbe, 0x58, 0xf3, 0x56,
+ 0xaa, 0x0a, 0xb9, 0x02, 0xfd, 0x6a, 0xf9, 0x6e, 0xaa, 0xca, 0xb5, 0xb5, 0x73, 0xb5, 0x06, 0x6f,
+ 0x5e, 0x72, 0x99, 0x1a, 0x6b, 0xd7, 0x5f, 0xe3, 0x5e, 0xfb, 0xc5, 0xc5, 0x62, 0xc5, 0x2e, 0xee,
+ 0xdd, 0x0d, 0xf7, 0xd7, 0x85, 0xfc, 0xe8, 0x91, 0xdd, 0x2c, 0x40, 0x40, 0xdb, 0x40, 0xba, 0x1b,
+ 0xbb, 0x0b, 0x21, 0x68, 0x6f, 0xda, 0xbf, 0x0a, 0xbb, 0x6a, 0x92, 0x92, 0x4b, 0x92, 0xb8, 0x3e,
+ 0x96, 0xb7, 0x1b, 0x9a, 0x47, 0xa8, 0xb0, 0x5f, 0x96, 0x89, 0xc1, 0xc1, 0x92, 0xc1, 0x6d, 0x12,
+ 0x05, 0x6a, 0x47, 0xa3, 0x45, 0x4f, 0xc0, 0xca, 0x05, 0x20, 0x0b, 0x0b, 0x67, 0x0b, 0x26, 0x7a,
+ 0x7b, 0x9f, 0xba, 0x92, 0x35, 0xc3, 0xd2, 0x24, 0x7b, 0x27, 0x50, 0x50, 0x9d, 0x50, 0x75, 0x6d,
+ 0xf6, 0xfd, 0xb7, 0xe7, 0x6a, 0x45, 0x67, 0x48, 0xf6, 0x4e, 0xa0, 0xa0, 0xf9, 0xa0, 0xea, 0xda,
+ 0x2b, 0xf0, 0x40, 0x30, 0xef, 0xb9, 0x8f, 0xd9, 0x2b, 0x62, 0xe0, 0xe0, 0x22, 0xe0, 0x50, 0xc1,
+ 0x09, 0xf2, 0xb3, 0xe4, 0x08, 0x1a, 0x03, 0x11, 0x09, 0xe1, 0xae, 0xae, 0x52, 0xae, 0xef, 0x63,
+ 0xc7, 0x7b, 0x4b, 0xa6, 0xe3, 0xae, 0x6c, 0x21, 0xc7, 0x12, 0x19, 0x19, 0x59, 0x19, 0x29, 0x72,
+ 0x46, 0x81, 0xb2, 0x94, 0xf1, 0x7d, 0x1a, 0x96, 0x46, 0xba, 0x4c, 0x4c, 0x08, 0x4c, 0x7f, 0xdc,
+ 0x0d, 0x3b, 0x5e, 0xd9, 0x33, 0x29, 0x42, 0x58, 0x0d, 0x1f, 0xcd, 0xcd, 0x41, 0xcd, 0xa8, 0xd5,
+ 0x13, 0x84, 0x0f, 0x95, 0x6e, 0x48, 0x87, 0xa1, 0x13, 0xdf, 0xf7, 0xf7, 0xd0, 0xf7, 0x7c, 0x0a,
+ 0x61, 0xe9, 0x06, 0xe3, 0x53, 0x91, 0x56, 0x94, 0x61, 0x19, 0x09, 0x09, 0x1f, 0x09, 0xe6, 0x04,
+ 0x01, 0xa3, 0xaa, 0x9e, 0x7e, 0x7c, 0x81, 0x83, 0x01, 0xde, 0x68, 0x68, 0x74, 0x68, 0x61, 0xcc,
+ 0xef, 0xad, 0x36, 0xf7, 0x8e, 0x93, 0xa3, 0xbe, 0xef, 0xd1, 0x41, 0x41, 0xe7, 0x41, 0xda, 0x24,
+ 0x8d, 0x62, 0x0d, 0x75, 0x5f, 0x86, 0xb5, 0x6c, 0x8d, 0x69, 0xf0, 0xf0, 0x64, 0xf0, 0x9f, 0xb7,
+ 0xd3, 0x10, 0x94, 0x6f, 0x34, 0x51, 0xea, 0x8f, 0xd3, 0x92, 0x35, 0x35, 0x06, 0x35, 0xb1, 0x59,
+ 0xbc, 0xe4, 0xf1, 0x34, 0xd6, 0x6d, 0xbe, 0x05, 0xbc, 0x35, 0x49, 0x49, 0xc4, 0x49, 0x5c, 0x1f,
+ 0xf1, 0x12, 0x67, 0xbb, 0xd3, 0xf2, 0x66, 0x47, 0xf1, 0x11, 0x7b, 0x7b, 0x76, 0x7b, 0x0e, 0xfb,
+ 0x32, 0xa0, 0xc1, 0x20, 0x0b, 0x6f, 0x4b, 0x2f, 0x32, 0xfd, 0x01, 0x01, 0x3c, 0x01, 0x60, 0x3f,
+ 0x5c, 0xf7, 0x0e, 0xe5, 0x97, 0x2f, 0x9e, 0x26, 0x5c, 0x84, 0x15, 0x15, 0x8a, 0x15, 0xec, 0xb5,
+ 0x02, 0x85, 0x97, 0xff, 0xfc, 0xf8, 0xc1, 0xc5, 0x02, 0x7f, 0xd0, 0xd0, 0xe8, 0xd0, 0xc2, 0x5b,
+ 0xb1, 0xdf, 0xaf, 0xed, 0xe5, 0x44, 0xfc, 0x5d, 0xb1, 0x2a, 0x84, 0x84, 0x85, 0x84, 0xf4, 0xca,
+ 0x56, 0x23, 0x80, 0x60, 0x1d, 0xb1, 0xdd, 0x71, 0x56, 0xc4, 0x03, 0x03, 0x44, 0x03, 0xa0, 0x41,
+ 0x51, 0xcc, 0x50, 0x3c, 0xa4, 0x06, 0xdc, 0x7e, 0x51, 0x9b, 0xd8, 0xd8, 0xcb, 0xd8, 0x44, 0x60,
+ 0xc9, 0x66, 0x28, 0x1e, 0x52, 0x03, 0x6e, 0x3f, 0xc9, 0xac, 0x6c, 0x6c, 0x84, 0x6c, 0x22, 0x30,
+ 0xd6, 0x7a, 0xd3, 0xcc, 0x71, 0x1e, 0x2a, 0x45, 0xd6, 0xb2, 0x3e, 0x3e, 0x61, 0x3e, 0x97, 0x23,
+ 0x4e, 0xd0, 0xab, 0xee, 0x87, 0x1b, 0x98, 0x04, 0x4e, 0x85, 0x8a, 0x8a, 0x2e, 0x8a, 0xf1, 0x73,
+ 0xc8, 0xc5, 0x82, 0x80, 0x2c, 0x7f, 0xef, 0xbc, 0xc8, 0x72, 0x04, 0x04, 0xf0, 0x04, 0x43, 0xfc,
+ 0xa0, 0xde, 0x37, 0x87, 0x77, 0xf4, 0xba, 0x39, 0xa0, 0x8a, 0xa3, 0xa3, 0xbd, 0xa3, 0x4a, 0x9b,
+ 0x31, 0x86, 0xfc, 0x41, 0x89, 0xeb, 0x0b, 0x69, 0x31, 0x5c, 0xb9, 0xb9, 0xa0, 0xb9, 0xc3, 0xa8,
+ 0x22, 0x02, 0xf3, 0xd4, 0xe7, 0xa3, 0x8c, 0xc8, 0x22, 0x83, 0x4e, 0x4e, 0x70, 0x4e, 0xbf, 0xa2,
+ 0xa5, 0xb4, 0x70, 0x24, 0x32, 0xbb, 0x7a, 0xf3, 0xa5, 0xaa, 0xa8, 0xa8, 0xda, 0xa8, 0x6c, 0xe1,
+ 0x17, 0x4d, 0xe2, 0xa8, 0x55, 0x7b, 0xc6, 0xe8, 0x17, 0x21, 0x94, 0x94, 0xc3, 0x94, 0x3b, 0xbc,
+ 0x33, 0x03, 0x6b, 0xbe, 0x75, 0x13, 0xca, 0xac, 0x33, 0x23, 0x69, 0x69, 0x48, 0x69, 0x01, 0xf3,
+ 0x94, 0x32, 0x8c, 0x65, 0xbb, 0x50, 0x71, 0x9a, 0x94, 0xf6, 0x11, 0x11, 0x7a, 0x11, 0xaf, 0x49,
+ 0xeb, 0x64, 0xdb, 0xca, 0xb5, 0xa0, 0xe2, 0xf7, 0xeb, 0x2f, 0x22, 0x22, 0xf4, 0x22, 0x9d, 0x92,
+ 0x84, 0x90, 0xbe, 0x91, 0x57, 0x9c, 0xb6, 0x7d, 0x84, 0x88, 0x5e, 0x5e, 0x36, 0x5e, 0x70, 0xd4,
+ 0x08, 0x51, 0x19, 0x7a, 0x76, 0x66, 0x82, 0x92, 0x08, 0x3f, 0xc6, 0xc6, 0x26, 0xc6, 0x8e, 0xaf,
+ 0x25, 0xed, 0x23, 0x88, 0x5e, 0x14, 0x8d, 0xc7, 0x25, 0xdc, 0x95, 0x95, 0xff, 0x95, 0x5b, 0x83,
+ 0xf9, 0x43, 0x7e, 0xc1, 0xa5, 0x94, 0xe4, 0xd5, 0xf9, 0x2e, 0xbd, 0xbd, 0x50, 0xbd, 0x80, 0x54,
+ 0x39, 0xd7, 0xe5, 0x3b, 0xff, 0x8d, 0x89, 0xfb, 0x39, 0x63, 0x7f, 0x7f, 0x86, 0x7f, 0x4d, 0x07,
+ 0x60, 0x4a, 0xac, 0x7d, 0x2d, 0xed, 0xd7, 0x17, 0x60, 0xc7, 0x61, 0x61, 0x6b, 0x61, 0x87, 0xc8,
+ 0xb2, 0xf9, 0x92, 0x8c, 0x67, 0xc0, 0xbc, 0x1b, 0xb2, 0x8b, 0x3c, 0x3c, 0x19, 0x3c, 0x57, 0x5d,
+ 0xd4, 0xff, 0x44, 0x33, 0x8d, 0xe6, 0xeb, 0x80, 0xd4, 0xcd, 0xee, 0xee, 0x89, 0xee, 0x55, 0x78,
+ 0x6f, 0xf4, 0x65, 0x5b, 0xe2, 0x3c, 0x54, 0x8a, 0x6f, 0xa7, 0x7c, 0x7c, 0xc2, 0x7c, 0xed, 0x46,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x6d, 0x71, 0xf2, 0xa4, 0x1e, 0xc4, 0x95, 0x4f, 0x6d, 0xd8, 0xac, 0xac, 0x2a, 0xac, 0x2f, 0x1d,
+ 0xa1, 0x7d, 0x9d, 0x19, 0x09, 0x88, 0x3b, 0xba, 0xa1, 0x54, 0xcb, 0xcb, 0xc9, 0xcb, 0x2b, 0x57,
+ 0x12, 0x27, 0xa5, 0x0b, 0x10, 0x34, 0x06, 0x22, 0x12, 0x01, 0x9f, 0x9f, 0xa4, 0x9f, 0x1d, 0xc6,
+ 0xd8, 0x67, 0xb0, 0x74, 0xc0, 0xb3, 0x28, 0x5b, 0xd8, 0x0c, 0x4b, 0x4b, 0xbc, 0x4b, 0x9c, 0x61,
+ 0xa3, 0xf8, 0x0a, 0xe6, 0xf5, 0x70, 0xfa, 0x7f, 0xa3, 0x2b, 0x1b, 0x1b, 0x21, 0x1b, 0xe9, 0x0c,
+ 0xa4, 0x17, 0xda, 0xba, 0x4c, 0xc7, 0xfb, 0x70, 0xa4, 0x74, 0xc0, 0xc0, 0xae, 0xc0, 0x0d, 0x2d,
+ 0xcf, 0x2a, 0x52, 0xdc, 0x95, 0xc8, 0xee, 0xb3, 0xcf, 0x2d, 0xdf, 0xdf, 0x7f, 0xdf, 0xa7, 0xdd,
+ 0x9a, 0x2f, 0xef, 0xdd, 0x0a, 0xfd, 0x73, 0x84, 0x9a, 0x48, 0x64, 0x64, 0xa7, 0x64, 0xa4, 0x0b,
+ 0xcc, 0x0c, 0x6f, 0xbd, 0x17, 0x4c, 0xae, 0xf5, 0xcc, 0x8c, 0x67, 0x67, 0xe3, 0x67, 0x04, 0x4a,
+ 0x52, 0xea, 0x6d, 0x5d, 0x26, 0x82, 0x9c, 0x38, 0x52, 0x3a, 0x60, 0x60, 0x57, 0x60, 0xe7, 0xf7,
+ 0x1c, 0x3a, 0xc6, 0xb3, 0xa1, 0x99, 0x04, 0x3c, 0x1c, 0xbf, 0xea, 0xea, 0x79, 0xea, 0x16, 0x84,
+ 0x2f, 0x39, 0xad, 0x0d, 0xd4, 0x8a, 0xce, 0x90, 0x2f, 0x9c, 0x83, 0x83, 0x31, 0x83, 0x17, 0x77,
+ 0x7e, 0xf5, 0xfd, 0x31, 0x70, 0x8c, 0x12, 0xee, 0x7e, 0x07, 0x5b, 0x5b, 0xfa, 0x5b, 0x53, 0x17,
+ 0x93, 0xdd, 0x5c, 0x39, 0x02, 0xe7, 0x70, 0x95, 0x93, 0xa9, 0xca, 0xca, 0xf5, 0xca, 0x4b, 0x68,
+ 0x42, 0x48, 0x5f, 0xa9, 0xca, 0x4e, 0x5b, 0xdf, 0x42, 0x44, 0x2f, 0x2f, 0x1b, 0x2f, 0x38, 0x6a,
+ 0xb3, 0x5a, 0x38, 0x12, 0x19, 0xbc, 0x3d, 0x98, 0xb3, 0x55, 0x54, 0x54, 0x6d, 0x54, 0x36, 0x91,
+ 0x18, 0xf3, 0x2b, 0x8e, 0x9a, 0xaa, 0x45, 0x75, 0x18, 0x41, 0x89, 0x89, 0x6a, 0x89, 0x51, 0x32,
+ 0xb8, 0x2d, 0x1c, 0x09, 0xed, 0x5e, 0xff, 0x4c, 0xb8, 0xcb, 0x2a, 0x2a, 0xd7, 0x2a, 0x1b, 0xa9,
+ 0xfc, 0x29, 0x39, 0x62, 0xe0, 0xdb, 0x24, 0x1f, 0xfc, 0x0e, 0xb6, 0xb6, 0x37, 0xb6, 0xa6, 0x2e,
+ 0x44, 0x04, 0x25, 0x6b, 0x0d, 0x85, 0xdb, 0x53, 0x44, 0xc5, 0x9c, 0x9c, 0xe0, 0x9c, 0xbd, 0x87,
+ 0xe6, 0x5f, 0x85, 0x13, 0x86, 0x89, 0xa0, 0xaf, 0xe6, 0x30, 0xef, 0xef, 0xb5, 0xef, 0x35, 0x47,
+ 0x8c, 0xc1, 0xa7, 0xeb, 0x21, 0xfa, 0x34, 0xef, 0x8c, 0xb7, 0x98, 0x98, 0x10, 0x98, 0xfe, 0x7b,
+ 0xc6, 0xd8, 0xe1, 0x38, 0x9d, 0xd2, 0xed, 0xa2, 0xc6, 0xcc, 0x71, 0x71, 0x2d, 0x71, 0x48, 0xbe,
+ 0x63, 0x6c, 0x91, 0x1c, 0xaf, 0x69, 0x97, 0x51, 0x63, 0x66, 0xd9, 0xd9, 0xf7, 0xd9, 0x24, 0x5f,
+ 0xbf, 0xc2, 0xcc, 0x55, 0x54, 0xe9, 0xfe, 0x43, 0xbf, 0x94, 0xf1, 0xf1, 0x58, 0xf1, 0xff, 0x88,
+ 0xf2, 0x34, 0x5a, 0xda, 0x51, 0x76, 0x26, 0x01, 0xf2, 0xb0, 0xc3, 0xc3, 0xea, 0xc3, 0xad, 0x6c,
+ 0x2c, 0x1f, 0x90, 0x6c, 0x56, 0x0e, 0x8e, 0xd6, 0x2c, 0x3d, 0x3b, 0x3b, 0xad, 0x3b, 0xb4, 0xe0,
+ 0x11, 0x01, 0x98, 0x6a, 0x92, 0xb0, 0x46, 0x64, 0x11, 0xa0, 0x27, 0x27, 0x38, 0x27, 0xbe, 0x51,
+ 0x73, 0xce, 0xa3, 0xe8, 0x43, 0xa5, 0x50, 0xb6, 0x73, 0x18, 0x96, 0x96, 0xbb, 0x96, 0xfb, 0xc2,
+ 0xdc, 0xae, 0x5d, 0x49, 0xfb, 0x80, 0x69, 0x12, 0xdc, 0xf2, 0x28, 0x28, 0xaf, 0x28, 0xdb, 0xd7,
+ 0xd9, 0xc4, 0x1a, 0xea, 0xbe, 0xcf, 0xa9, 0xd8, 0xd9, 0xd2, 0x23, 0x23, 0xc8, 0x23, 0xfd, 0xad,
+ 0x92, 0x7e, 0xf6, 0xa7, 0x7c, 0x9b, 0xf1, 0x16, 0x92, 0x77, 0xa2, 0xa2, 0x81, 0xa2, 0x2a, 0xa4,
+ 0x3e, 0x38, 0x35, 0x67, 0x46, 0x3a, 0x88, 0xf4, 0x3e, 0x3c, 0xa4, 0xa4, 0x09, 0xa4, 0xa9, 0x26,
+ 0xd2, 0xb3, 0x3e, 0xf1, 0x4a, 0x2d, 0x6b, 0x0c, 0xd2, 0x4c, 0x5d, 0x5d, 0x72, 0x5d, 0xd0, 0x95,
+ 0x59, 0x9d, 0x49, 0x46, 0xd2, 0x60, 0x5e, 0xec, 0x59, 0xa4, 0x1e, 0x1e, 0xed, 0x1e, 0xca, 0xcf,
+ 0x75, 0x82, 0xd9, 0x2a, 0x84, 0x6e, 0xd0, 0x3a, 0x75, 0x99, 0x25, 0x25, 0x40, 0x25, 0x7e, 0x2f,
+ 0x19, 0x50, 0x81, 0x10, 0xe4, 0xd6, 0xc4, 0xf6, 0x19, 0x9f, 0xe1, 0xe1, 0x1e, 0xe1, 0x30, 0xfe,
+ 0xb4, 0xb5, 0xe8, 0x4e, 0xa0, 0x0b, 0x3c, 0x97, 0xb4, 0x0a, 0x8f, 0x8f, 0xe2, 0x8f, 0xd2, 0xb0,
+ 0x81, 0xfa, 0xf9, 0x32, 0x12, 0xd3, 0x76, 0xb7, 0x81, 0xa8, 0x55, 0x55, 0x51, 0x55, 0x56, 0xae,
+ 0xe4, 0xda, 0x12, 0xec, 0x7a, 0x71, 0x61, 0x6a, 0xe4, 0x4f, 0x3f, 0x3f, 0x5d, 0x3f, 0xf7, 0x1c,
+ 0xe5, 0x79, 0xb8, 0x72, 0x04, 0x0d, 0xe0, 0xe9, 0xe5, 0x91, 0x57, 0x57, 0x29, 0x57, 0x96, 0xd0,
+ 0x0f, 0xbe, 0xc9, 0x26, 0xcf, 0xd1, 0x83, 0x9d, 0x0f, 0x60, 0x1d, 0x1d, 0xa9, 0x1d, 0x6a, 0x8e,
+ 0x47, 0x22, 0x18, 0x0a, 0x8f, 0x01, 0x9b, 0x15, 0x47, 0x64, 0x24, 0x24, 0x7c, 0x24, 0x1e, 0x10,
+ 0x9c, 0x63, 0x95, 0x1f, 0xcd, 0x36, 0xf3, 0x08, 0x9c, 0xc9, 0xd7, 0xd7, 0x5c, 0xd7, 0x21, 0xe6,
+ 0x2a, 0x53, 0xea, 0xae, 0x91, 0xc5, 0x0e, 0x5a, 0x2a, 0xbc, 0x88, 0x88, 0x56, 0x88, 0x31, 0x0d,
+ 0xa8, 0x8f, 0x2e, 0xfd, 0x01, 0x92, 0x38, 0xab, 0xa8, 0xb5, 0x65, 0x65, 0x9b, 0x65, 0xc4, 0x34,
+ 0x5b, 0x18, 0xde, 0xb9, 0x2e, 0x98, 0x9f, 0x29, 0x5b, 0xdb, 0xce, 0xce, 0x05, 0xce, 0x08, 0x94,
+ 0x8f, 0xe7, 0x9a, 0x8a, 0xa3, 0x7e, 0x74, 0xa9, 0x8f, 0x16, 0x20, 0x20, 0x8c, 0x20, 0x5d, 0xec,
+ 0x04, 0xc9, 0xed, 0x3d, 0x3b, 0x33, 0x41, 0x49, 0x04, 0xfe, 0x63, 0x63, 0x13, 0x63, 0x47, 0xb6,
+ 0xa6, 0x92, 0x4d, 0x45, 0xb0, 0x3f, 0x3a, 0xb5, 0xa6, 0x0b, 0x10, 0x10, 0x46, 0x10, 0xcf, 0x76,
+ 0x72, 0x6d, 0x09, 0x76, 0x3d, 0xd9, 0xd1, 0x35, 0x72, 0xc6, 0xfe, 0xfe, 0xcf, 0xfe, 0x9a, 0x0e,
+ 0xba, 0xa8, 0x8b, 0xf6, 0x11, 0xa6, 0x3e, 0x89, 0xba, 0xb4, 0xfa, 0xfa, 0x3f, 0xfa, 0xd9, 0xf2,
+ 0x30, 0x25, 0x56, 0xdf, 0xf7, 0x97, 0x8a, 0xea, 0x30, 0x82, 0xd1, 0xd1, 0xd4, 0xd1, 0xa2, 0x64,
+ 0x4c, 0x55, 0x3c, 0x11, 0x7b, 0xe3, 0x59, 0xc1, 0x4c, 0xfa, 0x5a, 0x5a, 0xc6, 0x5a, 0x33, 0x28,
+ 0x82, 0xdc, 0xc4, 0x53, 0x90, 0x57, 0x36, 0xf1, 0x82, 0x09, 0xed, 0xed, 0xcd, 0xed, 0xf5, 0x39,
+ 0x6a, 0x9e, 0x22, 0xf8, 0xa7, 0x73, 0x94, 0x40, 0x6a, 0x87, 0x77, 0x77, 0xa5, 0x77, 0xcb, 0x3c,
+ 0x88, 0x08, 0x4a, 0xd6, 0x1a, 0xc9, 0x75, 0xa6, 0x88, 0x49, 0xfb, 0xfb, 0x03, 0xfb, 0xb9, 0xcd,
+ 0x3c, 0xbd, 0xa2, 0x98, 0xba, 0xc2, 0x49, 0x31, 0x3c, 0x43, 0x74, 0x74, 0xe1, 0x74, 0x6b, 0x7d,
+ 0x6e, 0x57, 0xcf, 0xc5, 0x9c, 0x40, 0xd5, 0x09, 0x6e, 0x79, 0x14, 0x14, 0xb6, 0x14, 0x8c, 0x8a,
+ 0x0b, 0x77, 0x24, 0x1b, 0xf4, 0xe2, 0xc2, 0xd4, 0x0b, 0x9e, 0x7e, 0x7e, 0xba, 0x7e, 0x2d, 0x38,
+ 0x9e, 0xe6, 0x02, 0xe0, 0x31, 0xce, 0x32, 0xcd, 0x9e, 0xb6, 0x07, 0x07, 0xb4, 0x07, 0xe3, 0xbd,
+ 0x68, 0x1b, 0xb5, 0x07, 0x5b, 0x8b, 0x55, 0x85, 0x68, 0xf8, 0xa7, 0xa7, 0x4d, 0xa7, 0x09, 0x67,
+ 0x67, 0xa5, 0x7c, 0x21, 0x94, 0x5a, 0xd6, 0x18, 0x67, 0x98, 0xba, 0xba, 0xe4, 0xba, 0x63, 0xe9,
+ 0xc5, 0xfe, 0xdc, 0x59, 0x1f, 0x56, 0xad, 0xe4, 0xc5, 0x6d, 0xc9, 0xc9, 0xb1, 0xc9, 0xeb, 0x29,
+ 0x74, 0x21, 0x73, 0xb4, 0xfa, 0x12, 0x51, 0xb9, 0x74, 0x47, 0x4d, 0x4d, 0x34, 0x4d, 0x1f, 0xe3,
+ 0x40, 0xcd, 0xc8, 0x56, 0x36, 0xb6, 0x9a, 0x1a, 0x40, 0x3b, 0xff, 0xff, 0xf3, 0xff, 0xfa, 0x31,
+ 0x0c, 0x98, 0xf4, 0x47, 0x4d, 0x55, 0xc3, 0xdb, 0x0c, 0xc1, 0xa5, 0xa5, 0x35, 0xa5, 0xc9, 0x19,
+ 0xe7, 0xfc, 0x2f, 0x8d, 0xf8, 0xf5, 0x21, 0x2c, 0xe7, 0xee, 0x87, 0x87, 0xc1, 0x87, 0x54, 0x8b,
+ 0x9d, 0xc0, 0x3f, 0x81, 0xb3, 0x4a, 0x72, 0x8b, 0x9d, 0x17, 0xbf, 0xbf, 0x28, 0xbf, 0x40, 0x2a,
+ 0x90, 0xfb, 0x61, 0x58, 0x80, 0x63, 0x30, 0xd3, 0x90, 0x08, 0x72, 0x72, 0x69, 0x72, 0xe8, 0xff,
+ 0x7a, 0x3c, 0x10, 0x0c, 0x4b, 0xbf, 0x53, 0xa7, 0x7a, 0xf9, 0x38, 0x38, 0xe9, 0x38, 0x14, 0xa1,
+ 0x3a, 0xf1, 0xd8, 0x5a, 0x7d, 0x09, 0xc9, 0xbd, 0x3a, 0xc2, 0xc7, 0xc7, 0x1a, 0xc7, 0xee, 0x90,
+ 0x35, 0x4f, 0x11, 0x7c, 0xb2, 0xd8, 0x4a, 0x20, 0x35, 0xa2, 0xda, 0xda, 0xb3, 0xda, 0x84, 0x1e,
+ 0x34, 0xec, 0xbb, 0xe2, 0xcc, 0xa4, 0xcb, 0xa3, 0x34, 0x7c, 0xb2, 0xb2, 0xc7, 0xb2, 0xe5, 0xd2,
+ 0x9f, 0x45, 0xa8, 0x7e, 0x4f, 0xb2, 0xb3, 0x4e, 0x9f, 0x68, 0x6f, 0x6f, 0xc0, 0x6f, 0x82, 0x71,
+ 0xb7, 0x93, 0xd5, 0x2f, 0x22, 0x8f, 0x7c, 0xd1, 0xb7, 0xab, 0x37, 0x37, 0x7e, 0x37, 0x71, 0x27,
+ 0xf8, 0xe0, 0xd4, 0x5f, 0xdb, 0xe8, 0x65, 0x56, 0xf8, 0xf0, 0xd5, 0xd5, 0x24, 0xd5, 0xe1, 0x98,
+ 0x4f, 0x73, 0x01, 0x70, 0xf9, 0x67, 0x19, 0x87, 0x4f, 0x5b, 0xe2, 0xe2, 0x5a, 0xe2, 0x90, 0xbf,
+ 0x6b, 0x3d, 0x88, 0x66, 0xd9, 0x0f, 0x15, 0xc3, 0x6b, 0x59, 0x1f, 0x1f, 0xd1, 0x1f, 0xaa, 0xf0,
+ 0x83, 0x7f, 0x6e, 0xcd, 0xee, 0x2b, 0xb7, 0x72, 0x83, 0xd7, 0x85, 0x85, 0xb9, 0x85, 0x94, 0xf5,
+ 0x5f, 0xd1, 0x33, 0x84, 0x15, 0xab, 0xde, 0x60, 0x5f, 0x25, 0xad, 0xad, 0x16, 0xad, 0x4f, 0x22,
+ 0xa7, 0x31, 0xe7, 0xdb, 0xce, 0x43, 0xbb, 0x36, 0xa7, 0xd5, 0x78, 0x78, 0x32, 0x78, 0xae, 0xba,
+ 0x1e, 0xbf, 0x51, 0x4c, 0x5d, 0x61, 0xc5, 0xf9, 0x1e, 0xc0, 0x3a, 0x3a, 0x91, 0x3a, 0xd4, 0xdf,
+ 0x10, 0xa2, 0x32, 0xf4, 0xec, 0xcc, 0xc7, 0xe7, 0x10, 0x7e, 0x4f, 0x4f, 0x4c, 0x4f, 0xdf, 0x9d,
+ 0xc3, 0xb2, 0xa6, 0x9b, 0xd8, 0x9d, 0x2d, 0x68, 0xc3, 0xec, 0x7a, 0x7a, 0x4a, 0x7a, 0x6e, 0xc4,
+ 0x78, 0xb9, 0x87, 0xf3, 0xb7, 0x47, 0x92, 0x62, 0x78, 0x86, 0xe8, 0xe8, 0x01, 0xe8, 0xd6, 0xfa,
+ 0x2d, 0xbc, 0x3a, 0xf2, 0x28, 0x72, 0x0f, 0x55, 0x2d, 0xe3, 0x53, 0x53, 0xd9, 0x53, 0xd5, 0x2c,
+ 0x77, 0x07, 0x4e, 0xd5, 0x78, 0x96, 0x11, 0xff, 0x77, 0xe6, 0xf5, 0xf5, 0xa8, 0xf5, 0xbc, 0x74,
+ 0xe3, 0x35, 0xc2, 0xb0, 0xc3, 0xc6, 0x60, 0x65, 0xe3, 0x10, 0xe4, 0xe4, 0xd2, 0xe4, 0x13, 0x3d,
+ 0x80, 0x59, 0x53, 0xac, 0x6c, 0xaf, 0xf7, 0x34, 0x80, 0x76, 0x3d, 0x3d, 0x25, 0x3d, 0x37, 0x62,
+ },
+ { /* 14 */
+ 0x0a, 0xaf, 0x45, 0x6e, 0xf6, 0x73, 0x56, 0xfb, 0x47, 0x1c, 0xd5, 0xc8, 0x66, 0x2c, 0x64, 0xb5,
+ 0xca, 0x52, 0x68, 0xe5, 0x24, 0x5b, 0xd9, 0x08, 0xeb, 0x1e, 0xe0, 0x5e, 0xac, 0x6b, 0x2f, 0x0a,
+ 0xf3, 0x80, 0xf6, 0x75, 0x2e, 0x6a, 0xc5, 0xcb, 0x78, 0x58, 0xd0, 0xcf, 0x08, 0x95, 0x86, 0x89,
+ 0x17, 0x4e, 0xcb, 0x70, 0x06, 0xae, 0xb5, 0x41, 0x71, 0x83, 0x10, 0xce, 0xdd, 0xeb, 0x67, 0xc0,
+ 0x33, 0x7d, 0xdb, 0xfe, 0xfc, 0x42, 0x4a, 0x38, 0xd4, 0x5a, 0xe5, 0x59, 0xc2, 0xd2, 0xcd, 0x36,
+ 0x5f, 0x28, 0xeb, 0xaf, 0x31, 0xb5, 0x88, 0xb3, 0xf8, 0xf2, 0x39, 0x23, 0xe3, 0x99, 0xf0, 0xef,
+ 0xa3, 0xb1, 0x9b, 0x83, 0x92, 0x74, 0x30, 0x1f, 0x05, 0xb8, 0xb7, 0x40, 0xbe, 0x36, 0x20, 0x68,
+ 0x37, 0x3b, 0x27, 0xad, 0x21, 0xa2, 0xd7, 0x88, 0x43, 0x3d, 0xf8, 0xf7, 0xfe, 0x14, 0x9a, 0xaa,
+ 0x2a, 0xda, 0xa9, 0xb3, 0xd1, 0x7f, 0x34, 0x32, 0x75, 0xa2, 0x3d, 0xf1, 0x45, 0xd3, 0x99, 0xdf,
+ 0xc9, 0x81, 0x29, 0x49, 0x0d, 0x13, 0xc0, 0x7c, 0x14, 0xa5, 0x99, 0xc3, 0xbd, 0xd8, 0x80, 0x63,
+ 0x67, 0x0a, 0x4a, 0x5b, 0x9d, 0xbc, 0x22, 0x5c, 0x3e, 0xdd, 0x9f, 0x78, 0x48, 0xb7, 0x3c, 0x4b,
+ 0xd3, 0xf5, 0x1a, 0xa8, 0x09, 0x66, 0xa7, 0x02, 0x4a, 0xe6, 0x38, 0xf6, 0x2b, 0x6a, 0x7b, 0xe3,
+ 0x63, 0x4c, 0xb6, 0x08, 0x40, 0x5c, 0xbf, 0xec, 0xa9, 0xba, 0x82, 0xd6, 0x74, 0x71, 0x6b, 0xd7,
+ 0x84, 0x51, 0xca, 0xa1, 0x41, 0xd0, 0xd6, 0x12, 0x5f, 0xda, 0x3b, 0x4a, 0xb0, 0xbc, 0x25, 0xf7,
+ 0xf7, 0xc6, 0x0a, 0x26, 0xf3, 0x8a, 0x58, 0x7b, 0xef, 0x3f, 0xcd, 0x61, 0x34, 0x53, 0xd1, 0x15,
+ 0x3c, 0x64, 0x5d, 0xa7, 0x71, 0xe9, 0x37, 0x5f, 0x51, 0x48, 0xbb, 0xf5, 0x97, 0xe8, 0x9b, 0x38,
+ 0xea, 0x27, 0x84, 0x38, 0x03, 0x57, 0xbb, 0xc1, 0xd9, 0xa0, 0x08, 0x67, 0x8f, 0x94, 0xd2, 0x60,
+ 0x65, 0x29, 0x34, 0x93, 0x12, 0xcc, 0x8d, 0x04, 0x94, 0x0f, 0x70, 0x2f, 0x56, 0xd4, 0xf6, 0x05,
+ 0xd0, 0x26, 0x5b, 0x04, 0x20, 0x2e, 0xbe, 0x76, 0xb5, 0x5d, 0x41, 0x6b, 0x3a, 0xd9, 0xd4, 0x8a,
+ 0x9e, 0x25, 0xf9, 0x40, 0x45, 0xa5, 0xb1, 0x6c, 0x01, 0x99, 0x9a, 0x7f, 0x26, 0x0e, 0xde, 0x77,
+ 0x18, 0x57, 0x4d, 0x29, 0x8b, 0x05, 0xc8, 0x26, 0xf4, 0x91, 0x4e, 0x62, 0x88, 0xd1, 0x31, 0xce,
+ 0xf4, 0x15, 0x4b, 0x8a, 0xda, 0xc2, 0x41, 0x0f, 0x10, 0x84, 0xb4, 0xfc, 0x25, 0xe0, 0x7e, 0x7c,
+ 0xaf, 0x7b, 0x5c, 0x76, 0x36, 0x97, 0x54, 0x0c, 0x7f, 0x11, 0x90, 0x71, 0xfa, 0xbf, 0xd9, 0x0f,
+ 0xcc, 0x37, 0xea, 0x7e, 0x76, 0xcb, 0xeb, 0xe0, 0xd6, 0xab, 0x12, 0xa7, 0x8e, 0xce, 0xb2, 0xd8,
+ 0x7a, 0xeb, 0xc4, 0x45, 0x6d, 0x61, 0xc1, 0xe6, 0x08, 0x42, 0x5a, 0x7e, 0xf3, 0x70, 0x3f, 0x3e,
+ 0x83, 0xc4, 0x77, 0x5e, 0xb5, 0x78, 0x52, 0xd6, 0x37, 0x06, 0x5f, 0x79, 0x9d, 0xc9, 0xdd, 0x02,
+ 0x9d, 0xf6, 0xb8, 0xec, 0x6c, 0xed, 0xa8, 0x18, 0xfe, 0x22, 0xe3, 0xe2, 0x37, 0xbd, 0x71, 0x1e,
+ 0x81, 0xe7, 0x09, 0x96, 0x3a, 0x08, 0xfd, 0x8e, 0x9d, 0xd4, 0xb0, 0x2e, 0x83, 0xaa, 0x17, 0x4c,
+ 0xad, 0x58, 0x22, 0xbe, 0xb9, 0xe7, 0xfb, 0x54, 0xd5, 0xc3, 0x7f, 0x26, 0xe4, 0xdc, 0x13, 0x41,
+ 0xa9, 0x1e, 0xde, 0xed, 0x64, 0x07, 0x66, 0xe4, 0x42, 0xa4, 0x62, 0x88, 0xd8, 0x1a, 0x44, 0xdd,
+ 0xfc, 0x99, 0x70, 0x2c, 0xa3, 0xc1, 0xb8, 0xac, 0xfd, 0x4a, 0x8e, 0x63, 0x5d, 0xaf, 0xd0, 0x87,
+ 0x73, 0x97, 0xc0, 0x87, 0xb2, 0x5a, 0x8e, 0x69, 0xb0, 0xe5, 0xf6, 0x2b, 0x84, 0xef, 0xf4, 0xe2,
+ 0xb0, 0xb9, 0xac, 0xa0, 0x49, 0x3a, 0x18, 0xee, 0xe3, 0x5c, 0xba, 0x20, 0x5f, 0x1b, 0x10, 0x34,
+ 0x77, 0xd1, 0x3c, 0xd4, 0x6f, 0xba, 0x13, 0xd9, 0x27, 0x82, 0xeb, 0x85, 0xb8, 0x29, 0xa3, 0x7e,
+ 0xa5, 0xd4, 0x19, 0x18, 0xc0, 0xe4, 0x02, 0xf7, 0x38, 0x0d, 0x45, 0xb9, 0x9c, 0x93, 0xbd, 0xba,
+ 0x46, 0x8f, 0x99, 0xe2, 0x1c, 0x88, 0xf6, 0xb9, 0x59, 0x0a, 0xe1, 0x8b, 0x64, 0x98, 0xa4, 0x06,
+ 0x10, 0xdb, 0x76, 0x8f, 0xf2, 0x06, 0x31, 0x85, 0x19, 0x5f, 0x74, 0xfd, 0xf0, 0x9e, 0x9f, 0x35,
+ 0x2b, 0x2a, 0x96, 0xd7, 0x77, 0x47, 0x82, 0x1e, 0x20, 0xcb, 0xab, 0x3b, 0x4a, 0x03, 0xfc, 0xf8,
+ 0x87, 0x82, 0x8b, 0x0d, 0x68, 0x98, 0xcf, 0x66, 0xa0, 0x61, 0x42, 0xd7, 0xa1, 0x0f, 0x8a, 0x9e,
+ 0xf9, 0x2f, 0xb3, 0x1b, 0xd8, 0x19, 0x93, 0x30, 0x3f, 0x44, 0x05, 0x07, 0x6e, 0xb9, 0xe2, 0x3c,
+ 0xd8, 0xaa, 0x60, 0xa2, 0x59, 0x2d, 0x47, 0xd5, 0x58, 0x93, 0x7b, 0xf4, 0x42, 0x96, 0x7a, 0x71,
+ 0x80, 0x17, 0x36, 0xf2, 0x9c, 0x30, 0x4b, 0xa2, 0xc8, 0xbd, 0x26, 0xe4, 0x8c, 0x7a, 0x72, 0x6b,
+ 0x34, 0xe8, 0x66, 0x01, 0x08, 0xea, 0xce, 0xfc, 0xbc, 0x86, 0x81, 0x6a, 0xef, 0xa7, 0x35, 0xc3,
+ 0x31, 0x5e, 0xa5, 0x36, 0x73, 0x32, 0xe5, 0x60, 0x7e, 0x88, 0x0a, 0x0e, 0xdc, 0xb1, 0x07, 0x78,
+ 0x6f, 0x86, 0x71, 0xfd, 0xe4, 0xbf, 0xdb, 0xff, 0xd3, 0x13, 0xa5, 0xe7, 0x30, 0xf8, 0x92, 0xb0,
+ 0x4d, 0xd0, 0xe3, 0xe8, 0x4c, 0xc3, 0x16, 0x6e, 0x4b, 0x7f, 0xa2, 0x89, 0x0d, 0x64, 0xa5, 0x94,
+ 0xd5, 0x90, 0x98, 0x33, 0x5b, 0xf6, 0x95, 0xea, 0x77, 0x53, 0xca, 0x0f, 0x09, 0xcf, 0xe6, 0x31,
+ 0xa6, 0x07, 0x58, 0xb4, 0xe9, 0xac, 0x1b, 0x83, 0xc7, 0xb6, 0x3c, 0x24, 0x8d, 0x20, 0x12, 0xd3,
+ 0xba, 0x16, 0xe9, 0xce, 0xbf, 0x49, 0x4e, 0x15, 0xa4, 0x40, 0x6f, 0xe8, 0x39, 0x37, 0x74, 0x81,
+ 0x62, 0xbc, 0x89, 0x6c, 0xe6, 0x64, 0x09, 0xc0, 0xfc, 0xd3, 0x14, 0x1c, 0x7b, 0xa1, 0x0e, 0xf0,
+ 0x9a, 0x63, 0x05, 0x13, 0x98, 0x45, 0x2c, 0xdc, 0x96, 0xfe, 0x87, 0xd1, 0x1a, 0xc8, 0x89, 0xeb,
+ 0x61, 0x6f, 0xc8, 0xc0, 0xcf, 0x2c, 0x10, 0xb4, 0x03, 0x68, 0x6d, 0x81, 0x6a, 0x12, 0xa1, 0x99,
+ 0x5d, 0x0b, 0x95, 0x67, 0xbe, 0xc5, 0x27, 0xeb, 0x52, 0x20, 0xd6, 0x74, 0xfd, 0xfa, 0x3a, 0xa1,
+ 0xa8, 0xee, 0xe1, 0x89, 0xc2, 0x3f, 0xd0, 0xc8, 0x17, 0xcd, 0xf4, 0x42, 0xd7, 0xca, 0x21, 0xfa,
+ 0x98, 0x40, 0x7b, 0xdb, 0x17, 0x35, 0x83, 0x84, 0x3c, 0x2c, 0x68, 0x86, 0x04, 0xab, 0x43, 0xa5,
+ 0x21, 0x85, 0xd3, 0xb9, 0x81, 0x34, 0xd4, 0xe5, 0x67, 0xd7, 0x7e, 0xf3, 0x2c, 0x2f, 0x98, 0x4d,
+ 0x6d, 0xa5, 0x0f, 0x35, 0x6b, 0xcf, 0x74, 0xa7, 0x79, 0xc1, 0x4a, 0xb0, 0x2e, 0x9b, 0x58, 0xfe,
+ 0xfa, 0xfc, 0xf2, 0xb7, 0xf1, 0x51, 0x8a, 0x44, 0xc0, 0xff, 0x7c, 0x9a, 0x7f, 0x0a, 0x4d, 0x55,
+ 0x1d, 0xe1, 0x8e, 0x1e, 0xf0, 0xdd, 0xe3, 0xba, 0x36, 0x9f, 0xc5, 0x06, 0xbb, 0xc7, 0x03, 0x75,
+ 0xe2, 0xab, 0xbf, 0x9e, 0x7a, 0x54, 0x42, 0x62, 0x34, 0x6e, 0x32, 0xf8, 0xf7, 0xdb, 0x7c, 0x9b,
+ 0x48, 0x66, 0x20, 0xdf, 0x37, 0x1b, 0x3d, 0xf2, 0x89, 0x71, 0x29, 0xed, 0x3e, 0x72, 0x97, 0x2f,
+ 0x93, 0x1f, 0x01, 0xd1, 0x47, 0x7e, 0x63, 0x53, 0x2e, 0x59, 0x2b, 0x84, 0x6d, 0x57, 0x42, 0x37,
+ 0xb3, 0x6a, 0xed, 0x0c, 0x60, 0x72, 0x01, 0x9a, 0x1c, 0xe7, 0xc3, 0xbd, 0x4e, 0xa8, 0xbf, 0x5d,
+ 0x57, 0xa4, 0xd0, 0x09, 0x48, 0xb6, 0x71, 0x10, 0x15, 0x3c, 0x03, 0xbc, 0x9b, 0xd6, 0x5e, 0x14,
+ 0x70, 0x44, 0x81, 0x2b, 0x9b, 0x12, 0x97, 0x1d, 0x4f, 0x5e, 0x8f, 0xb6, 0x95, 0x5c, 0x5b, 0x8b,
+ 0x19, 0xa7, 0x72, 0x4d, 0x2d, 0x3d, 0x7e, 0x0a, 0xa1, 0xf8, 0xd8, 0xa8, 0x87, 0x01, 0x54, 0xe9,
+ 0x6e, 0x76, 0x4e, 0x99, 0x42, 0x87, 0x6d, 0xd3, 0x86, 0x7a, 0x33, 0x2d, 0x3f, 0x28, 0xf7, 0x97,
+ 0xbc, 0x73, 0x6b, 0x55, 0xed, 0xd9, 0x7c, 0xfd, 0x99, 0xf5, 0x9d, 0x11, 0x1b, 0x92, 0xe9, 0x53,
+ 0x3d, 0x94, 0x62, 0xc3, 0xd7, 0xd1, 0x81, 0x73, 0x04, 0x21, 0x2d, 0x3f, 0x98, 0x38, 0xfe, 0x1f,
+ 0x13, 0x08, 0x37, 0x23, 0xdb, 0x4e, 0x28, 0xf1, 0xe6, 0xe4, 0x0d, 0x60, 0xe1, 0x2d, 0x30, 0x5c,
+ 0x86, 0x72, 0xb4, 0x69, 0xce, 0xa0, 0x79, 0x4a, 0xf5, 0x08, 0xd4, 0x1d, 0xae, 0xdf, 0xef, 0xb9,
+ 0xdb, 0x79, 0x21, 0x0e, 0x70, 0x65, 0x5e, 0xa1, 0xa7, 0x28, 0x02, 0x69, 0x53, 0x25, 0xd5, 0x18,
+ 0x4a, 0x45, 0x5e, 0x17, 0xb8, 0x6b, 0x92, 0xaa, 0x23, 0xa3, 0xc6, 0xba, 0x20, 0x11, 0x5d, 0x61,
+ 0x03, 0xd3, 0x41, 0xac, 0x29, 0x48, 0x19, 0x74, 0xff, 0xbb, 0x79, 0x9d, 0x11, 0xb3, 0xaf, 0x69,
+ 0x32, 0x8d, 0xe4, 0x9a, 0x5a, 0x7a, 0xfc, 0x14, 0x81, 0x33, 0x73, 0x93, 0xcd, 0x02, 0xa8, 0x11,
+ 0xbb, 0xe6, 0xd6, 0xaa, 0x19, 0x71, 0xf8, 0x39, 0xf1, 0x29, 0xf9, 0x22, 0x36, 0xe7, 0x11, 0xa6,
+ 0x47, 0x7f, 0xa6, 0x86, 0xba, 0xb0, 0x40, 0x95, 0x0c, 0x63, 0x77, 0x41, 0x6b, 0x48, 0xc1, 0x21,
+ 0x59, 0x4d, 0x69, 0x34, 0x63, 0x25, 0xba, 0x5b, 0xc5, 0x47, 0xcb, 0xda, 0xc1, 0x3c, 0x6d, 0x3d,
+ 0x7e, 0xad, 0x38, 0x16, 0xb0, 0x81, 0x5c, 0x56, 0x9f, 0x25, 0x47, 0xd0, 0xcf, 0xb6, 0x68, 0xa2,
+ 0xe4, 0xce, 0x3d, 0x05, 0x28, 0xc4, 0x70, 0x8a, 0x09, 0xdb, 0xc0, 0x01, 0xd5, 0x7e, 0xe1, 0x49,
+ 0xc1, 0x0d, 0x12, 0xef, 0x74, 0x10, 0x39, 0xdf, 0xf9, 0x6b, 0xa3, 0x5c, 0xc5, 0x97, 0x2e, 0x98,
+ 0x45, 0x5c, 0xd8, 0x4e, 0x35, 0xc0, 0xef, 0xcd, 0xa6, 0xb1, 0x98, 0x16, 0x75, 0x2b, 0x0b, 0x6f,
+ 0x40, 0xea, 0x1b, 0x79, 0x4e, 0x18, 0xc4, 0x51, 0x64, 0xbf, 0x13, 0x72, 0x46, 0x3d, 0x39, 0xd4,
+ 0x9c, 0x06, 0x87, 0x88, 0xca, 0xd5, 0x1e, 0x34, 0xab, 0x4b, 0x75, 0x28, 0x38, 0x6d, 0x14, 0x39,
+ 0x2d, 0x4f, 0x14, 0x4c, 0x25, 0xd7, 0xb0, 0xf6, 0x1d, 0x7e, 0x59, 0xc2, 0x68, 0xa6, 0x61, 0x2a,
+ 0xda, 0x89, 0x1e, 0x6a, 0xd6, 0x5d, 0xe8, 0x8d, 0xf2, 0x41, 0x94, 0xa3, 0x5c, 0xf5, 0xb0, 0x3f,
+ 0x28, 0xf9, 0xd7, 0x7b, 0x5e, 0x0f, 0x9b, 0x6a, 0xdf, 0x70, 0xd2, 0xa6, 0x5b, 0xb0, 0x53, 0x91,
+ 0xc0, 0xfd, 0x2d, 0x8b, 0xd2, 0x28, 0x8f, 0xf3, 0xac, 0x02, 0x35, 0x96, 0xca, 0x47, 0x4b, 0xbf,
+ 0x76, 0x21, 0x03, 0xb0, 0xc9, 0x82, 0xa5, 0xf5, 0x72, 0xeb, 0x7d, 0x4f, 0xb7, 0xf9, 0xc6, 0x59,
+ 0xdf, 0x3f, 0xdd, 0x5d, 0xad, 0x85, 0xc3, 0x11, 0x30, 0x4f, 0x1f, 0xc7, 0x6f, 0xe3, 0x82, 0x84,
+ 0x8d, 0x2d, 0xce, 0x63, 0x9e, 0xeb, 0x99, 0x9d, 0xe7, 0x7d, 0x97, 0x1f, 0xc7, 0x23, 0xee, 0x2b,
+ 0x8b, 0x48, 0x4c, 0xf8, 0xcc, 0x7b, 0xab, 0x75, 0xda, 0xc8, 0x65, 0xe6, 0xe5, 0x86, 0x73, 0xf9,
+ 0x15, 0x6d, 0xb5, 0xb8, 0x89, 0xde, 0x1a, 0x19, 0xdb, 0x51, 0xff, 0x99, 0xc3, 0x88, 0xad, 0x8e,
+ 0x5b, 0x6e, 0x17, 0xfc, 0xec, 0x55, 0x15, 0x03, 0x6f, 0x95, 0x24, 0x8d, 0xdf, 0x5f, 0xa7, 0x73,
+ 0x66, 0xfa, 0x75, 0x3f, 0x3b, 0x84, 0x94, 0x70, 0x6b, 0xb4, 0x09, 0xb2, 0x47, 0x67, 0x59, 0x6c,
+ 0xb5, 0x0f, 0x6f, 0x97, 0x32, 0xe2, 0x33, 0x72, 0x21, 0x52, 0x31, 0x44, 0x6c, 0x0d, 0x22, 0x8f,
+ 0xe0, 0x88, 0xc1, 0x56, 0xf5, 0x24, 0xed, 0x3a, 0x9e, 0xbc, 0xdd, 0xaf, 0xe9, 0xb8, 0xb6, 0xd5,
+ 0x6c, 0x55, 0x30, 0x51, 0xcd, 0xf7, 0xc2, 0x8b, 0x2c, 0xa8, 0xdc, 0x7a, 0x21, 0x4b, 0x3d, 0xd9,
+ 0xa2, 0x41, 0xa4, 0xe7, 0x34, 0x4c, 0x86, 0x33, 0x50, 0xd1, 0x21, 0x8a, 0xb1, 0xe6, 0x45, 0x4f,
+ 0xd4, 0x60, 0xa7, 0x57, 0xfd, 0xce, 0x23, 0xc6, 0x22, 0x3a, 0x5c, 0xc5, 0x06, 0x1f, 0x83, 0x16,
+ 0x5a, 0x9e, 0x28, 0x98, 0x4a, 0x6d, 0xa3, 0x2f, 0x3a, 0xfc, 0xb2, 0x47, 0xd0, 0x8f, 0xc2, 0x54,
+ 0xbf, 0xa0, 0x2a, 0xf9, 0xc4, 0x91, 0x65, 0x89, 0x66, 0x4e, 0xe4, 0x8c, 0x0a, 0x21, 0x46, 0x3a,
+ 0x78, 0xc8, 0xba, 0x8d, 0xe2, 0x11, 0x6e, 0xbe, 0xa2, 0x90, 0xb5, 0x29, 0xed, 0x13, 0xf5, 0x70,
+ 0x1e, 0x32, 0xcf, 0xb2, 0xd9, 0x95, 0xfa, 0xce, 0xc9, 0x24, 0xbc, 0x9b, 0xaa, 0x74, 0xac, 0x1c,
+ 0x07, 0x95, 0xbd, 0xff, 0xf4, 0xa8, 0x84, 0xc4, 0x68, 0xdc, 0x64, 0x33, 0x2d, 0x75, 0xf8, 0xf5,
+ 0x82, 0x34, 0x48, 0x3a, 0x13, 0x40, 0xe4, 0xfa, 0x62, 0x6f, 0xc9, 0xb3, 0x92, 0x19, 0xb8, 0x25,
+ 0x68, 0x13, 0xcc, 0x02, 0x10, 0x17, 0x5f, 0x3b, 0xbb, 0xcf, 0xc1, 0xd4, 0x1d, 0x8d, 0x6a, 0x45,
+ 0x12, 0xf8, 0x08, 0x47, 0x7d, 0x76, 0x9e, 0xdd, 0xb3, 0x8d, 0x9b, 0xaa, 0xee, 0xfd, 0x55, 0x7b,
+ 0x58, 0xbd, 0x56, 0x50, 0xc5, 0x1d, 0x0c, 0x77, 0x90, 0x2e, 0x5d, 0x10, 0xce, 0xec, 0x08, 0x1a,
+ 0x8f, 0x0e, 0xb0, 0xab, 0x11, 0x9b, 0x36, 0xc5, 0x4d, 0xaf, 0x78, 0x48, 0xd9, 0x40, 0x24, 0x65,
+ 0xe1, 0x78, 0xfe, 0x32, 0x53, 0x1c, 0x5b, 0x16, 0xcb, 0xd5, 0x4b, 0x65, 0xe6, 0x68, 0xd3, 0xf2,
+ 0x36, 0xcb, 0x18, 0xc9, 0x87, 0x9a, 0x61, 0xa4, 0x16, 0x54, 0x6e, 0x3d, 0xf1, 0xc4, 0xff, 0x8d,
+ 0x74, 0x02, 0x7d, 0x78, 0x46, 0xf2, 0x0a, 0xad, 0xd8, 0x39, 0x92, 0x18, 0xa9, 0x9a, 0x0c, 0x17,
+ 0xff, 0x4a, 0x31, 0x80, 0x8a, 0x89, 0xa1, 0xd8, 0x02, 0xf1, 0xf7, 0xfe, 0x4c, 0x1c, 0x7f, 0xee,
+ 0x3a, 0x01, 0xdf, 0x3c, 0x23, 0x79, 0x05, 0xb7, 0x6c, 0xfd, 0x49, 0x0c, 0xb5, 0x4d, 0x06, 0xea,
+ 0x79, 0x38, 0x85, 0xe9, 0x44, 0x29, 0xd8, 0x92, 0xf7, 0xf9, 0x23, 0xe3, 0xe2, 0xc3, 0x90, 0x57,
+ 0xdd, 0x1c, 0xa3, 0x95, 0x22, 0xf5, 0x6c, 0x49, 0x9a, 0x9d, 0xf0, 0x90, 0x71, 0x80, 0x48, 0xca,
+ 0x54, 0x77, 0x91, 0xa5, 0x61, 0xfe, 0x68, 0x64, 0xea, 0x87, 0x7a, 0x21, 0x8a, 0x65, 0xf1, 0x7d,
+ 0x22, 0x56, 0x92, 0x15, 0xa8, 0x7c, 0xcd, 0x91, 0x98, 0x6c, 0x07, 0x6e, 0x3d, 0x9c, 0x37, 0x24,
+ 0x05, 0xb6, 0xc3, 0x37, 0x7b, 0xd8, 0x2b, 0x9c, 0xc2, 0x0e, 0x8b, 0x64, 0x33, 0x16, 0x32, 0xbb,
+ 0x88, 0x9b, 0x0d, 0x54, 0xe5, 0x33, 0xb2, 0x01, 0x25, 0x73, 0x1c, 0x7b, 0xf4, 0x35, 0xdc, 0x90,
+ 0x06, 0x65, 0x82, 0x9b, 0x52, 0x90, 0x32, 0xe8, 0x3d, 0xb5, 0xf2, 0xf9, 0x22, 0xa5, 0x9d, 0xd2,
+ 0x53, 0xe2, 0x2c, 0x5a, 0x95, 0x56, 0xec, 0xa0, 0x82, 0x5b, 0x1e, 0x12, 0xa7, 0x10, 0x09, 0x88,
+ 0x95, 0x7a, 0x83, 0x4a, 0x15, 0xee, 0x51, 0xbb, 0x13, 0xec, 0xd9, 0x7d, 0x4f, 0xf2, 0xdf, 0xe5,
+ 0xe9, 0xf4, 0xc5, 0x94, 0x2a, 0x1f, 0xa2, 0xb5, 0x26, 0x1b, 0x71, 0xfa, 0x9e, 0x27, 0x7d, 0x09,
+ 0xec, 0x42, 0x06, 0xa3, 0x51, 0xc7, 0x89, 0x29, 0xe4, 0x15, 0xfa, 0x9e, 0xad, 0x31, 0x4f, 0xb2,
+ 0x97, 0x59, 0xfd, 0x82, 0x9a, 0x9e, 0xfe, 0xe3, 0xb9, 0x3e, 0x36, 0x2a, 0x51, 0x91, 0x15, 0xab,
+ 0xd1, 0xd6, 0x64, 0x60, 0x86, 0x16, 0x08, 0x5a, 0xe0, 0x34, 0xd7, 0xa1, 0x35, 0x09, 0xb1, 0xad,
+ 0x69, 0xe3, 0xf3, 0x66, 0xb6, 0x2f, 0xe9, 0x17, 0xee, 0xa6, 0x57, 0x1e, 0x12, 0x5d, 0x0f, 0x62,
+ 0x6a, 0x30, 0xb2, 0xca, 0x9f, 0x67, 0xf0, 0x63, 0x11, 0x1d, 0x2e, 0x83, 0x03, 0xee, 0xa0, 0x0b,
+ 0x43, 0x39, 0x5a, 0xd5, 0x67, 0x50, 0xdd, 0x25, 0x9b, 0x04, 0x6a, 0xef, 0x57, 0x8e, 0x96, 0xbd,
+ 0x41, 0x1a, 0x24, 0x1d, 0xe8, 0x20, 0x72, 0x7d, 0x31, 0xd6, 0x85, 0xb8, 0x49, 0xed, 0x5c, 0xf3,
+ 0xae, 0x8b, 0x63, 0x12, 0x90, 0xaf, 0xe2, 0x20, 0x2a, 0x78, 0x06, 0xbb, 0xf5, 0x6f, 0xbc, 0x28,
+ 0x0c, 0xca, 0xc7, 0xf5, 0xa4, 0xe3, 0x64, 0x13, 0x7a, 0xa9, 0x27, 0x31, 0x44, 0x89, 0xf9, 0x67,
+ 0x7c, 0x8e, 0x46, 0xde, 0x3f, 0xf1, 0xf3, 0x0e, 0x35, 0xf7, 0xa8, 0x87, 0xd1, 0xd5, 0xa2, 0xec,
+ 0x5e, 0xd8, 0xd4, 0xcb, 0x97, 0x8d, 0x3e, 0x9f, 0xad, 0x9b, 0xaf, 0xe9, 0xec, 0x49, 0x95, 0xc8,
+ 0x44, 0xac, 0xe7, 0x2a, 0x93, 0xf8, 0x59, 0xe1, 0xf3, 0xd8, 0x0e, 0xdc, 0x7a, 0xfb, 0x6e, 0x48,
+ 0x25, 0xc3, 0x2f, 0xea, 0x5c, 0xd4, 0x49, 0x55, 0xf0, 0xb0, 0x63, 0x5d, 0x10, 0xe9, 0xcf, 0xd1,
+ 0x09, 0x7c, 0x04, 0xc2, 0xdf, 0x3b, 0x4f, 0x8f, 0xb8, 0xa7, 0xac, 0x55, 0x77, 0x9f, 0xcb, 0xdc,
+ 0xbd, 0x83, 0x54, 0x31, 0x4b, 0xe1, 0xca, 0xd1, 0xcc, 0x9c, 0x0b, 0xdb, 0x14, 0x42, 0x8c, 0x74,
+ 0x9f, 0xd5, 0xc6, 0x24, 0xe3, 0x9d, 0x07, 0x40, 0x54, 0xf0, 0x0c, 0xb5, 0x29, 0xde, 0xbb, 0x50,
+ 0x2e, 0x9c, 0x55, 0xe0, 0x0c, 0x9f, 0xa9, 0x82, 0xe2, 0xc5, 0x20, 0x5f, 0x79, 0x15, 0xce, 0x43,
+ 0x1b, 0x84, 0x0c, 0x85, 0xa2, 0x4d, 0xd1, 0x52, 0x0b, 0x2a, 0x37, 0xff, 0x99, 0x62, 0x9e, 0xa7,
+ 0xd7, 0xb3, 0xe6, 0xfb, 0xd4, 0x86, 0x3a, 0xb2, 0xdd, 0x81, 0x25, 0x58, 0x17, 0xac, 0x2c, 0x7f,
+ 0x8a, 0xb8, 0x73, 0x9c, 0x6a, 0x43, 0x1d, 0x59, 0x8f, 0xa1, 0xf3, 0x2c, 0xea, 0x56, 0x16, 0xde,
+ 0x0d, 0x3a, 0xf8, 0x91, 0x02, 0xdb, 0xd2, 0x3f, 0x2f, 0xc0, 0xb1, 0xfb, 0x4b, 0x59, 0x9c, 0x40,
+ 0x50, 0x31, 0x6d, 0xf6, 0xbc, 0x1e, 0xf5, 0xd4, 0x7d, 0xe0, 0x67, 0x8f, 0xb6, 0xa3, 0xa6, 0xe1,
+ 0x24, 0x33, 0x10, 0x8e, 0xfa, 0xec, 0xff, 0x79, 0xa5, 0xd9, 0xf5, 0x97, 0x1f, 0x39, 0xaa, 0xf6,
+ 0xf2, 0x70, 0xc9, 0x11, 0x88, 0x52, 0x73, 0xe7, 0x2d, 0x31, 0x46, 0x05, 0x07, 0x45, 0xe3, 0xae,
+ 0x38, 0x22, 0xa1, 0xf4, 0xac, 0x09, 0xaa, 0xef, 0xc6, 0x2f, 0xa6, 0x5b, 0xab, 0x2e, 0xcc, 0xa4,
+ 0x7b, 0x1b, 0xfb, 0x21, 0xcb, 0x59, 0x77, 0xca, 0x5d, 0x2b, 0xcc, 0xb4, 0xfc, 0xa0, 0x5a, 0x19,
+ 0xa1, 0x92, 0xe5, 0x4b, 0x1d, 0x04, 0x9f, 0x47, 0xaf, 0x6a, 0x58, 0x17, 0xa0, 0x55, 0xea, 0x26,
+ 0xbe, 0x50, 0x15, 0x9d, 0x62, 0xa9, 0xd3, 0xa5, 0x33, 0x27, 0x72, 0x46, 0x05, 0xf1, 0x23, 0x1d,
+ 0xa7, 0xf7, 0x67, 0xd0, 0x4f, 0x94, 0xad, 0xaf, 0x92, 0xdf, 0xaa, 0xee, 0x82, 0xf0, 0x77, 0xf4,
+ 0x99, 0xb0, 0x44, 0xbf, 0xb1, 0x0d, 0x35, 0xa8, 0x69, 0x45, 0xfe, 0x4c, 0x0b, 0x7b, 0x26, 0x82,
+ 0xf1, 0xa3, 0x88, 0xbd, 0xa1, 0x1a, 0x6a, 0x93, 0xd2, 0x8a, 0x3f, 0x98, 0x16, 0xf6, 0x4c, 0xc7,
+ 0xeb, 0xd7, 0xbb, 0x5c, 0xa5, 0x6f, 0x0d, 0xed, 0x8c, 0xc9, 0x9e, 0xad, 0x80, 0x44, 0xb7, 0x47,
+ 0x39, 0xd2, 0x9e, 0x90, 0x0a, 0x31, 0x1c, 0xc3, 0x93, 0x46, 0x30, 0x91, 0xa4, 0xfe, 0xa9, 0x83,
+ 0xb7, 0x2c, 0x11, 0x5f, 0xbd, 0x92, 0x9c, 0x2a, 0x8b, 0x80, 0xde, 0x13, 0x72, 0x6e, 0xe8, 0xc1,
+ 0x1c, 0x11, 0xb1, 0x7a, 0x56, 0xe5, 0x55, 0x96, 0x63, 0xf6, 0x53, 0xcc, 0xb4, 0x17, 0x66, 0x52,
+ 0x01, 0xf0, 0x3f, 0x64, 0xa6, 0x38, 0xb6, 0x2c, 0x55, 0x69, 0x96, 0xca, 0x0f, 0xd0, 0x65, 0x27,
+ 0xef, 0x91, 0x47, 0x0f, 0x78, 0x8f, 0x90, 0x5d, 0x1b, 0xae, 0x83, 0x03, 0xbc, 0x82, 0xe0, 0xdb,
+ 0x1f, 0xc2, 0xf0, 0xd6, 0x7f, 0xad, 0x4c, 0xe2, 0x9c, 0x4d, 0x2a, 0x51, 0xa5, 0xa4, 0xc9, 0x3b,
+ 0x92, 0xef, 0x3e, 0xb5, 0xe1, 0x46, 0xd5, 0x7f, 0x7b, 0x30, 0xbd, 0x4e, 0x62, 0x87, 0x27, 0x10,
+ 0x1a, 0x74, 0x33, 0xe1, 0x04, 0x75, 0x67, 0x7e, 0x5e, 0x43, 0xa1, 0x35, 0x96, 0xb2, 0xfb, 0x80,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x85, 0xa1, 0xf5, 0xc5, 0xe7, 0xe8, 0x60, 0x3e, 0x0a, 0xb3, 0xad, 0x80, 0xbf, 0x6c, 0x40, 0xd0,
+ 0x5c, 0xfb, 0xaa, 0x03, 0x18, 0xfd, 0x91, 0xc7, 0x07, 0x49, 0x40, 0xbe, 0xf2, 0x2a, 0x5f, 0x86,
+ 0xed, 0xb2, 0x39, 0xc7, 0xf7, 0xff, 0x3f, 0x05, 0xb1, 0x7c, 0x6c, 0x54, 0xa2, 0xe1, 0x2a, 0x95,
+ 0x56, 0x54, 0xef, 0x6d, 0xee, 0x8e, 0xc7, 0x3c, 0x40, 0x55, 0x95, 0x76, 0x94, 0x06, 0x3b, 0x33,
+ 0xc3, 0x2e, 0x6c, 0x27, 0xfb, 0x60, 0x96, 0x87, 0x53, 0xb9, 0x4c, 0x0b, 0xdb, 0xf4, 0xe4, 0xd6,
+ 0x0f, 0x19, 0x86, 0x59, 0x8d, 0xab, 0x7d, 0x67, 0x85, 0x12, 0x5e, 0xac, 0x55, 0x3a, 0x56, 0x0e,
+ 0xe8, 0x04, 0xfa, 0xf0, 0x8c, 0x27, 0x14, 0x99, 0x73, 0x72, 0xe7, 0x30, 0x91, 0xf7, 0x18, 0x2e,
+ 0xc2, 0xde, 0x53, 0x43, 0x5d, 0x58, 0x20, 0xab, 0x06, 0xd0, 0xda, 0xc1, 0xd4, 0x24, 0x81, 0xf1,
+ 0xd9, 0x5a, 0x5f, 0xc6, 0xff, 0x15, 0xf1, 0xf9, 0x0d, 0xfa, 0xed, 0x3e, 0x4d, 0x46, 0x1f, 0x56,
+ 0xe6, 0xed, 0x43, 0xcd, 0xa7, 0xb4, 0xdf, 0xd2, 0xa3, 0x09, 0x2f, 0x56, 0xcb, 0x1d, 0x2b, 0x07,
+ 0xb6, 0xdc, 0x2e, 0x3b, 0x1b, 0xaa, 0x2a, 0x06, 0xde, 0xe9, 0x48, 0xd9, 0x7d, 0xbe, 0x8d, 0xe6,
+ 0x11, 0x2b, 0x49, 0xeb, 0x54, 0x3e, 0x87, 0xa9, 0x4c, 0x36, 0xe2, 0x37, 0xff, 0x4e, 0xfa, 0x12,
+ 0xc6, 0x98, 0xaf, 0x10, 0x80, 0xb8, 0xbd, 0x1b, 0x91, 0xb7, 0xc7, 0x6f, 0xe8, 0xe2, 0xd6, 0x6d,
+ 0x55, 0x87, 0xae, 0xc1, 0xc7, 0xc6, 0xde, 0x48, 0xbf, 0xee, 0xec, 0xeb, 0x85, 0xb5, 0x94, 0x5a,
+ 0x94, 0x8a, 0xbc, 0x2e, 0xb3, 0xd6, 0xe7, 0x97, 0x46, 0x85, 0x4f, 0xb7, 0x40, 0x22, 0xba, 0xc2,
+ 0xb1, 0x49, 0x93, 0xc4, 0xef, 0x02, 0xae, 0xc2, 0xb6, 0x35, 0x2c, 0xea, 0x50, 0xcb, 0x75, 0x13,
+ 0x4b, 0xb5, 0x61, 0x73, 0x1e, 0x53, 0x24, 0x86, 0x76, 0xca, 0x50, 0x70, 0x2f, 0xc1, 0x38, 0x46,
+ 0xb9, 0xc5, 0xa8, 0x62, 0x96, 0x01, 0x57, 0x61, 0x5b, 0xfb, 0x16, 0x75, 0x28, 0x84, 0xdb, 0xe8,
+ 0x4f, 0xf3, 0x9d, 0x20, 0xc3, 0xb3, 0xb9, 0x36, 0xe1, 0xad, 0x4d, 0xde, 0x13, 0x07, 0x6f, 0xda,
+ 0xf6, 0x36, 0x35, 0x42, 0x55, 0xb2, 0xee, 0x57, 0xba, 0x56, 0x5b, 0xab, 0x3b, 0x83, 0xb4, 0x32,
+ 0x9b, 0x93, 0x3a, 0x77, 0x3e, 0x7d, 0x9a, 0xf0, 0xc3, 0x97, 0x11, 0x1b, 0x15, 0x18, 0xec, 0xcc,
+ 0xd2, 0x05, 0x25, 0xcc, 0xaf, 0x5e, 0x11, 0x2e, 0x1f, 0x8f, 0xae, 0x3c, 0x24, 0xba, 0x1e, 0xc4,
+ 0x7f, 0x5d, 0x07, 0x72, 0x16, 0xb9, 0xea, 0x7a, 0xca, 0x4c, 0xd1, 0x1a, 0xc0, 0x66, 0x0d, 0x85,
+ 0xde, 0xcf, 0xe2, 0x39, 0x0b, 0xbd, 0x75, 0x3d, 0x65, 0x26, 0x89, 0x0d, 0x60, 0x33, 0xe7, 0xa3,
+ 0x75, 0xf2, 0x42, 0x1c, 0xe0, 0xca, 0xbc, 0x81, 0x8d, 0x50, 0x04, 0xd2, 0xa6, 0x4a, 0x69, 0x30,
+ 0x14, 0x9d, 0x8a, 0xdc, 0x2f, 0xe6, 0xac, 0x35, 0x8e, 0x38, 0x69, 0x53, 0xcc, 0x58, 0xc8, 0xa9,
+ 0x20, 0x75, 0xec, 0xdd, 0x27, 0x0c, 0x62, 0xc9, 0x32, 0xbe, 0xe8, 0x39, 0x23, 0xff, 0xfd, 0x6a,
+ 0xdc, 0xec, 0x9c, 0xf1, 0x84, 0xcd, 0xda, 0x65, 0xcf, 0xf4, 0x66, 0x5a, 0x7e, 0x50, 0x2d, 0xed,
+ 0xac, 0xa8, 0x1d, 0xda, 0x1f, 0xdf, 0x4d, 0x78, 0x80, 0xaa, 0xe9, 0xec, 0xeb, 0x0c, 0x76, 0x66,
+ 0xab, 0x3d, 0xa0, 0x25, 0xeb, 0x77, 0xc9, 0xbc, 0xe8, 0x76, 0x8d, 0xdf, 0xc6, 0x79, 0x8e, 0x93,
+ 0xf8, 0xdf, 0x8c, 0x7f, 0x7e, 0x21, 0x25, 0x1c, 0x6a, 0x2d, 0x93, 0xcd, 0x61, 0x69, 0x87, 0x1b,
+ 0xfb, 0x0c, 0xcd, 0xd3, 0x57, 0x69, 0x3c, 0x68, 0x95, 0x96, 0xea, 0x50, 0x70, 0xda, 0x28, 0x72,
+ 0xcd, 0xc7, 0xd5, 0x1a, 0xd0, 0xf3, 0x5d, 0xcc, 0x83, 0xc2, 0x84, 0x6d, 0x81, 0x1e, 0xd7, 0xff,
+ 0xf0, 0x53, 0xb7, 0xd9, 0x07, 0x22, 0xdc, 0xbf, 0x87, 0xe3, 0xa9, 0x52, 0x19, 0x26, 0x29, 0xe0,
+ 0xee, 0x61, 0x78, 0x6b, 0xde, 0xb7, 0x26, 0x71, 0x4e, 0xc7, 0x15, 0xc9, 0xb3, 0x52, 0x85, 0xfc,
+ 0xce, 0x14, 0x94, 0xb6, 0xf9, 0xbb, 0x44, 0xb8, 0x7c, 0x79, 0xfd, 0xf0, 0x90, 0xad, 0x78, 0x96,
+ 0xe5, 0x3e, 0x02, 0x61, 0x8e, 0xfc, 0xc6, 0xa6, 0x5c, 0xb2, 0x56, 0xcb, 0xda, 0xae, 0x84, 0x6e,
+ 0x7d, 0x7e, 0x79, 0xba, 0x99, 0xc9, 0x45, 0x22, 0x60, 0x9e, 0x3e, 0x4d, 0xde, 0x05, 0xc7, 0xcb,
+ 0xb8, 0x35, 0x97, 0x06, 0x30, 0x39, 0xe1, 0x4d, 0x0e, 0x92, 0x80, 0xbf, 0x27, 0x54, 0xbe, 0xcf,
+ 0x04, 0x46, 0xfc, 0x53, 0xdd, 0xe0, 0x9d, 0xb0, 0x97, 0x67, 0x1d, 0xae, 0x3c, 0xc6, 0x57, 0x9c,
+ 0xaa, 0xcd, 0x9f, 0x41, 0x4d, 0x4f, 0x7f, 0x90, 0xbd, 0x1f, 0x1b, 0x15, 0xc9, 0xa9, 0xeb, 0xb4,
+ 0xf5, 0xe5, 0x74, 0xee, 0x7c, 0xfa, 0xf7, 0x23, 0x45, 0xed, 0x22, 0x36, 0x2a, 0x30, 0x1b, 0x5b,
+ 0xc7, 0x68, 0x90, 0x74, 0x26, 0x80, 0x0b, 0x37, 0xc4, 0xde, 0x51, 0xa5, 0xe7, 0x32, 0xb3, 0x4a,
+ 0xa0, 0x62, 0xda, 0x2f, 0xbb, 0x3c, 0x29, 0x6b, 0xfa, 0x03, 0xce, 0xdd, 0xaf, 0x85, 0x8f, 0x01,
+ 0x42, 0xc9, 0x65, 0xb1, 0xc1, 0x68, 0x6b, 0x09, 0xce, 0x6d, 0xfc, 0x25, 0x58, 0x5e, 0xf3, 0x9a,
+ 0xcb, 0xa2, 0x57, 0x81, 0x82, 0x63, 0x6f, 0x24, 0xbe, 0x77, 0x76, 0x94, 0xa3, 0xbb, 0x4a, 0x2d,
+ 0x71, 0xb4, 0xbe, 0x4f, 0x3d, 0x2a, 0x21, 0x31, 0x1a, 0x37, 0x19, 0x7c, 0x9a, 0x8c, 0x3e, 0xac,
+ 0xe3, 0x5b, 0x80, 0xfa, 0xdc, 0x6c, 0xf4, 0x4e, 0x61, 0x07, 0xa4, 0x32, 0xf8, 0x0b, 0x19, 0xbc,
+ 0xfd, 0x69, 0x4f, 0x48, 0x05, 0xf9, 0x0e, 0x80, 0xa8, 0x23, 0x18, 0xa9, 0x52, 0x7f, 0xb5, 0xa0,
+ 0x90, 0xcc, 0x40, 0x7d, 0x6e, 0x36, 0x7a, 0x27, 0xd1, 0xe2, 0x52, 0x19, 0x7c, 0xe4, 0xed, 0x5e,
+ 0x02, 0x23, 0x7e, 0xc8, 0x8f, 0x70, 0xaf, 0x58, 0xaa, 0xd2, 0xef, 0x57, 0x1e, 0x63, 0xca, 0x4e,
+ 0x26, 0x10, 0x6e, 0x46, 0x75, 0x9c, 0x50, 0x21, 0x0f, 0x0b, 0x1a, 0xc0, 0x01, 0x5a, 0x60, 0xb8,
+ 0x96, 0xa9, 0xc2, 0xe6, 0x3c, 0xa6, 0x48, 0xcf, 0xec, 0x57, 0xa0, 0xe0, 0x5e, 0x41, 0x70, 0x8c,
+ 0xcf, 0xe4, 0xab, 0xd2, 0x5f, 0x83, 0xf2, 0x94, 0x29, 0x10, 0x6b, 0x3a, 0x9f, 0x7d, 0x1d, 0xb1,
+ 0x89, 0x6b, 0x32, 0x30, 0x43, 0x0b, 0x04, 0x2d, 0x70, 0x1a, 0x8a, 0xb1, 0xfb, 0xe5, 0xb9, 0xb7,
+ 0x49, 0x96, 0x1f, 0xbb, 0x91, 0x23, 0x8b, 0xde, 0xdc, 0x18, 0xbf, 0x27, 0x31, 0xa2, 0xf2, 0x08,
+ 0x2f, 0x6c, 0x6a, 0x84, 0xaa, 0xa7, 0x1f, 0xae, 0xb7, 0xac, 0xb6, 0x95, 0x76, 0xc5, 0xab, 0x64,
+ 0x52, 0x12, 0x13, 0x3e, 0x33, 0x6e, 0x5a, 0x8c, 0xd7, 0x32, 0x88, 0xd8, 0xa8, 0xc0, 0x6c, 0xaf,
+ 0xb4, 0xff, 0x50, 0xf3, 0x94, 0xda, 0x85, 0x5e, 0x74, 0x3b, 0xa7, 0x8e, 0x63, 0xdd, 0x47, 0xa8,
+ 0x08, 0x8c, 0x3b, 0xa6, 0x79, 0x03, 0xf9, 0xa3, 0xed, 0xce, 0x3a, 0x9f, 0x78, 0x4f, 0xae, 0xfb,
+ 0x3f, 0xb7, 0x1c, 0x0b, 0x58, 0xa1, 0x2e, 0x2b, 0xae, 0xf3, 0xc2, 0x68, 0x86, 0x5b, 0x34, 0x51,
+ 0xd6, 0x43, 0xd9, 0x9f, 0x72, 0xbe, 0x8c, 0x9e, 0x88, 0xe8, 0xb3, 0x92, 0x18, 0x7c, 0x49, 0x58,
+ 0x23, 0xa6, 0xad, 0x71, 0x0e, 0x44, 0x7b, 0xbd, 0xcd, 0x05, 0x91, 0xa4, 0x32, 0x4c, 0x52, 0x03,
+ 0x4e, 0x03, 0xa2, 0x44, 0x65, 0x8b, 0x0f, 0x1a, 0xb4, 0xc4, 0xdb, 0x14, 0x1c, 0xd7, 0x0a, 0xfd,
+ 0x60, 0x9f, 0xf7, 0xa4, 0x69, 0x14, 0xa6, 0x98, 0x56, 0x01, 0xfb, 0x4b, 0x65, 0xc2, 0xc4, 0xbe,
+ 0x0b, 0x5f, 0x7a, 0x0a, 0x50, 0x4b, 0xe0, 0xd7, 0x12, 0x75, 0x43, 0x02, 0x69, 0xfc, 0x01, 0x92,
+ 0xc4, 0xbb, 0xd1, 0xd8, 0x0f, 0xc8, 0x12, 0x43, 0x3b, 0x65, 0x28, 0x38, 0xf6, 0x81, 0x1c, 0x23,
+ 0x35, 0x18, 0x59, 0x65, 0xae, 0xd2, 0x78, 0xd0, 0xe9, 0xef, 0x17, 0xa0, 0xe0, 0x77, 0x50, 0xe4,
+ 0x0e, 0xe9, 0xb9, 0x3d, 0x2b, 0x93, 0xcb, 0x4b, 0xd0, 0x7b, 0xc8, 0x66, 0x5a, 0xea, 0x33, 0x29,
+ 0x64, 0xd9, 0x0b, 0xf7, 0xb4, 0xf4, 0x3b, 0x28, 0xc1, 0x66, 0xe6, 0xe5, 0x59, 0x04, 0x93, 0x22,
+ 0x3b, 0xf1, 0xe0, 0x58, 0x85, 0x41, 0xb3, 0x9b, 0x39, 0x94, 0xdf, 0xc6, 0xba, 0x9d, 0x63, 0xcd,
+ 0x30, 0xae, 0x9a, 0x52, 0xd5, 0x0a, 0x53, 0x4c, 0x2b, 0xe1, 0x9c, 0xc4, 0xd3, 0x61, 0x62, 0x5f,
+ 0xc5, 0x4b, 0xee, 0xbc, 0xa9, 0xf0, 0xa4, 0x6f, 0x6e, 0x0c, 0xbe, 0xf2, 0xf9, 0x51, 0x79, 0x04,
+ 0x6b, 0xc0, 0x8d, 0xae, 0x39, 0x5f, 0x46, 0x4f, 0x44, 0x74, 0xb8, 0x49, 0x0c, 0x3e, 0xc5, 0x2c,
+ 0x91, 0x3c, 0x7f, 0x19, 0xc8, 0x0e, 0xcc, 0x0b, 0x84, 0x8b, 0xc4, 0xd3, 0x73, 0x34, 0x88, 0x79,
+ 0x4c, 0x20, 0xdc, 0x8c, 0xea, 0xfb, 0xa0, 0x42, 0x1e, 0x16, 0x34, 0x43, 0x02, 0xb4, 0xc0, 0xb3,
+ 0xb2, 0x9a, 0xd2, 0x68, 0xc6, 0x4a, 0xb7, 0xb6, 0x49, 0x8e, 0x55, 0x77, 0x41, 0x78, 0xda, 0x7a,
+ 0xfe, 0xba, 0x0e, 0xe4, 0x2c, 0xb1, 0x17, 0xf4, 0x57, 0x98, 0x61, 0x34, 0x43, 0xcc, 0x1a, 0xc9,
+ 0xe7, 0x1d, 0x7c, 0xa9, 0x01, 0x8c, 0x69, 0xfe, 0xf6, 0x60, 0xb9, 0x9c, 0xc4, 0xcd, 0x4e, 0x20,
+ 0x27, 0xe0, 0x51, 0x22, 0xd3, 0xa4, 0xe6, 0x0d, 0x5a, 0x62, 0x8c, 0x0a, 0x0e, 0x8a, 0x05, 0x9f,
+ 0x8c, 0xdd, 0xf1, 0x07, 0x38, 0xd3, 0x2f, 0xb1, 0xb2, 0x14, 0x01, 0xd5, 0xc8, 0xf3, 0x8b, 0x0c,
+ 0x3e, 0x47, 0x23, 0x6f, 0xfe, 0x99, 0x98, 0x07, 0xfb, 0x9a, 0x54, 0xa2, 0x89, 0x8b, 0x51, 0x76,
+ 0x29, 0x09, 0xe8, 0x1f, 0xf8, 0x37, 0x2d, 0x46, 0x8a, 0x19, 0x44, 0x6c, 0x54, 0x60, 0x36, 0xb6,
+ 0x72, 0x67, 0xff, 0xe3, 0x14, 0x62, 0x38, 0x45, 0xe5, 0x8c, 0x60, 0xe1, 0x8b, 0x3f, 0x91, 0xc5,
+ 0x2c, 0xbf, 0x2b, 0x28, 0x83, 0xef, 0x06, 0xda, 0x48, 0x17, 0xcf, 0x08, 0x67, 0x76, 0x04, 0x0d,
+ 0xa4, 0x24, 0x26, 0x7c, 0x66, 0xdc, 0xb4, 0xdb, 0x6d, 0x64, 0xd3, 0x73, 0x93, 0x43, 0xd8, 0x9d,
+ 0x8e, 0xfe, 0x8f, 0xcf, 0xb7, 0xa3, 0x80, 0xe9, 0x18, 0xc6, 0xee, 0x82, 0xd6, 0x90, 0x41, 0x42,
+ 0x51, 0xc1, 0x52, 0x92, 0x1a, 0x26, 0x43, 0xf8, 0x28, 0x89, 0xf1, 0x45, 0xb9, 0x73, 0xc3, 0xc6,
+ 0xc8, 0x71, 0x16, 0x2d, 0xab, 0x2b, 0x76, 0x50, 0x41, 0xcc, 0x0f, 0x09, 0xb2, 0x08, 0xe5, 0x44,
+ 0x16, 0xbe, 0xf4, 0x14, 0xa0, 0x96, 0x03, 0x6d, 0x24, 0xea, 0x86, 0x04, 0xd2, 0x3b, 0x02, 0xe7,
+ },
+ { /* 15 */
+ 0xfb, 0xd5, 0x0c, 0x7a, 0xc0, 0x80, 0x96, 0x19, 0x11, 0x87, 0x93, 0x1b, 0xc9, 0xae, 0xb5, 0xfc,
+ 0x08, 0xe0, 0x8c, 0xb2, 0x17, 0x1a, 0xce, 0x7b, 0x32, 0xfc, 0xab, 0xf8, 0xfe, 0xf2, 0x0a, 0xee,
+ 0xcb, 0xd0, 0xa2, 0x50, 0xb2, 0xdc, 0x77, 0xc0, 0xbd, 0xca, 0xef, 0x4e, 0x88, 0xc7, 0x89, 0xdd,
+ 0x41, 0x10, 0x1a, 0x5e, 0x63, 0x42, 0xd6, 0x69, 0xc4, 0x12, 0x3c, 0xd3, 0x93, 0x13, 0xc0, 0x11,
+ 0x38, 0xe5, 0x22, 0x98, 0x65, 0x46, 0x2f, 0xa2, 0x9e, 0xb1, 0xd7, 0xad, 0xbf, 0x9b, 0x36, 0xcf,
+ 0xb3, 0x39, 0x6a, 0x11, 0x6f, 0x4a, 0xe7, 0x3c, 0x70, 0x97, 0x29, 0x2f, 0xcb, 0xc0, 0xef, 0x6e,
+ 0x1f, 0xb7, 0xc2, 0x06, 0x7d, 0x56, 0x4d, 0x08, 0x35, 0x78, 0xfd, 0x96, 0x0f, 0xfe, 0x68, 0x31,
+ 0x88, 0xf8, 0x9b, 0xc3, 0xa4, 0x79, 0x73, 0xc7, 0x94, 0xe7, 0x89, 0xa3, 0xc5, 0x09, 0xaa, 0x16,
+ 0x32, 0x3d, 0x8d, 0xe7, 0x07, 0xbb, 0x33, 0xb7, 0x41, 0x72, 0x26, 0x6b, 0x9f, 0xb4, 0xdf, 0xfb,
+ 0x7c, 0x99, 0x8e, 0x18, 0x37, 0x9b, 0xf7, 0x20, 0xd4, 0x23, 0x72, 0x1d, 0x3c, 0x7e, 0x63, 0xc4,
+ 0x5c, 0x9f, 0xfb, 0x95, 0x6b, 0xf3, 0x49, 0x0f, 0x1c, 0x55, 0x9b, 0x7b, 0x42, 0x30, 0x4b, 0xfa,
+ 0x02, 0x38, 0x23, 0xcd, 0x75, 0xe7, 0xd2, 0x6e, 0xed, 0x3f, 0x5a, 0x3e, 0xde, 0xdd, 0xe3, 0xda,
+ 0xec, 0x82, 0x42, 0xce, 0xaa, 0xcc, 0x15, 0x6a, 0x16, 0x03, 0xc5, 0x75, 0x38, 0xa2, 0xd7, 0x23,
+ 0x12, 0x3b, 0xf8, 0x6a, 0x5b, 0xd3, 0x8d, 0x98, 0x89, 0x04, 0xcf, 0x0d, 0xe1, 0xfa, 0xf7, 0xc5,
+ 0x7b, 0xcd, 0x1b, 0x0b, 0x73, 0xe3, 0x2b, 0xa5, 0xb7, 0x9c, 0xb1, 0x40, 0xf2, 0x55, 0x15, 0x04,
+ 0x5f, 0xbb, 0x28, 0xdf, 0xc5, 0x86, 0xf2, 0x56, 0x66, 0x94, 0xec, 0x5a, 0xf3, 0x62, 0x38, 0x4d,
+ 0xc1, 0x08, 0x0d, 0x2f, 0xd0, 0x21, 0x6b, 0xd5, 0x62, 0x09, 0x1e, 0x88, 0xa8, 0xe8, 0x60, 0xe9,
+ 0x04, 0x70, 0x46, 0x59, 0xea, 0x0d, 0x67, 0xdc, 0x19, 0x7e, 0xb4, 0x7c, 0x7f, 0x79, 0x05, 0x77,
+ 0x76, 0x41, 0x21, 0x67, 0x55, 0x66, 0xeb, 0x35, 0x0b, 0xe0, 0x83, 0xdb, 0x1c, 0x51, 0x8a, 0xf0,
+ 0x6c, 0x9a, 0x55, 0xbf, 0x19, 0xaf, 0xa8, 0xd6, 0xb0, 0x18, 0xe7, 0x2e, 0x03, 0x59, 0x77, 0xdb,
+ 0x26, 0x4e, 0x10, 0x19, 0xc3, 0x82, 0x0b, 0x9d, 0x3c, 0x37, 0x07, 0x24, 0xdf, 0xea, 0xce, 0x93,
+ 0x0f, 0xb4, 0x19, 0xa1, 0x53, 0x62, 0x12, 0xfe, 0x51, 0x43, 0x68, 0xa5, 0x30, 0xd9, 0x7c, 0x2e,
+ 0x0c, 0x90, 0xca, 0xeb, 0xfd, 0x17, 0xa9, 0xa7, 0x2b, 0x82, 0x1f, 0x84, 0x81, 0x8b, 0x0f, 0x99,
+ 0xe0, 0x12, 0x88, 0x25, 0x57, 0xdb, 0xbc, 0xcd, 0x3d, 0x81, 0xda, 0xf1, 0xb9, 0x29, 0xd8, 0xba,
+ 0xe6, 0x5a, 0xed, 0xb1, 0xc8, 0x31, 0x09, 0x7f, 0xc9, 0xc0, 0x34, 0xb3, 0x18, 0x8d, 0x3e, 0x17,
+ 0xd6, 0x5f, 0x43, 0x9b, 0xba, 0x6d, 0xe8, 0xa6, 0x65, 0x8d, 0x48, 0xe6, 0x59, 0xe4, 0x02, 0x36,
+ 0x18, 0xe3, 0x57, 0x15, 0x39, 0x2e, 0x91, 0x8d, 0x56, 0xc7, 0x3e, 0xcb, 0xc1, 0xd5, 0x1e, 0xf1,
+ 0x8e, 0xb0, 0xfe, 0x57, 0x3b, 0x93, 0xc6, 0x75, 0x60, 0xa6, 0x67, 0xe1, 0x64, 0xad, 0x4c, 0xbb,
+ 0x54, 0x7f, 0x77, 0x27, 0x7c, 0xe9, 0x87, 0x74, 0x2e, 0xa9, 0x30, 0x83, 0xbc, 0xc2, 0x41, 0x14,
+ 0xe4, 0x62, 0xce, 0x7c, 0xbd, 0xd6, 0xdb, 0x11, 0x24, 0xff, 0x6e, 0x8d, 0xc6, 0x50, 0xdd, 0xcd,
+ 0xac, 0x8e, 0xa8, 0x17, 0x12, 0x1c, 0xaa, 0x34, 0x45, 0xef, 0xd4, 0xb9, 0xc4, 0x3e, 0x87, 0x5f,
+ 0x69, 0xf6, 0xe3, 0x61, 0x28, 0x30, 0xa6, 0x3d, 0x3e, 0x98, 0x7e, 0x4d, 0x13, 0xaf, 0xe2, 0xc1,
+ 0xee, 0xba, 0x61, 0x03, 0xdf, 0x2b, 0xc7, 0x04, 0xfb, 0x3c, 0x9f, 0x4b, 0xe6, 0x7f, 0x34, 0xf9,
+ 0xd9, 0xeb, 0x5a, 0x3a, 0xe9, 0x0f, 0xfa, 0x58, 0x34, 0xce, 0x20, 0x43, 0x69, 0x3d, 0x7e, 0x18,
+ 0xf7, 0x45, 0xc6, 0x91, 0x3d, 0x97, 0x3f, 0xbe, 0x3a, 0x05, 0x8c, 0x9f, 0x48, 0x25, 0xba, 0x65,
+ 0xb9, 0xe1, 0xc5, 0x6e, 0x0d, 0xb7, 0xfb, 0x29, 0xaf, 0x54, 0xd8, 0xe9, 0xeb, 0xef, 0x06, 0x5a,
+ 0x85, 0x74, 0xa1, 0xaf, 0x82, 0xfc, 0xb3, 0x57, 0x28, 0x9b, 0xbb, 0x38, 0x2b, 0x0d, 0x35, 0xe2,
+ 0x1e, 0xab, 0x32, 0x81, 0xa6, 0xc4, 0x24, 0x3f, 0xa2, 0x86, 0xd0, 0x89, 0x60, 0x71, 0xf8, 0x5c,
+ 0x66, 0x42, 0xfa, 0xc0, 0x7b, 0x52, 0xb4, 0xc3, 0x6f, 0xdb, 0x16, 0xe8, 0x23, 0x76, 0x9e, 0xef,
+ 0x30, 0x05, 0xae, 0x2a, 0x72, 0x5c, 0xe1, 0xd9, 0xac, 0x4d, 0x7c, 0x55, 0x41, 0x69, 0x3c, 0x21,
+ 0xd5, 0x7b, 0x90, 0xd1, 0x14, 0x18, 0x53, 0xff, 0x1f, 0x4c, 0x3f, 0xc7, 0xe8, 0xb6, 0x71, 0x81,
+ 0xa2, 0x26, 0x41, 0x31, 0x9a, 0xec, 0xd1, 0xfd, 0x83, 0x52, 0x91, 0x03, 0x9b, 0x68, 0x6b, 0x1c,
+ 0xfc, 0x81, 0x99, 0x69, 0x84, 0xf8, 0x4a, 0x9c, 0x72, 0x38, 0x50, 0x46, 0x07, 0x85, 0xc3, 0x3c,
+ 0x60, 0x0a, 0x9f, 0x54, 0xe4, 0xb8, 0x01, 0x71, 0x9b, 0x9a, 0xf8, 0xaa, 0x82, 0xd2, 0x78, 0x42,
+ 0xff, 0xa5, 0x4a, 0x23, 0x2a, 0x8d, 0xf1, 0xc5, 0x08, 0xf9, 0x27, 0x67, 0xb6, 0xd7, 0xb0, 0x8b,
+ 0x6e, 0xa2, 0x76, 0x72, 0x6c, 0x48, 0x7a, 0xb8, 0x5d, 0x27, 0xbd, 0x10, 0xdd, 0x84, 0x94, 0x01,
+ 0xea, 0xca, 0x27, 0x5a, 0x35, 0x26, 0xa0, 0xd8, 0xe2, 0x42, 0x2b, 0x37, 0x99, 0x06, 0x31, 0x8e,
+ 0x83, 0x3c, 0xc4, 0x3b, 0x1d, 0x16, 0x06, 0xe5, 0xdc, 0xda, 0x55, 0x7a, 0x8a, 0xa9, 0xd3, 0x4f,
+ 0x15, 0x6f, 0x6d, 0x79, 0x1f, 0xab, 0x51, 0x1d, 0xea, 0xbb, 0x0c, 0x50, 0x2f, 0xd1, 0x81, 0x05,
+ 0xc0, 0x14, 0xfd, 0xa8, 0x0b, 0xb3, 0x02, 0xe2, 0xf5, 0xf7, 0x33, 0x97, 0xc7, 0x67, 0xf0, 0x84,
+ 0xdc, 0x87, 0xec, 0xe4, 0xd8, 0x90, 0xf4, 0xb3, 0xba, 0x4e, 0xb9, 0x20, 0x79, 0xcb, 0xeb, 0x02,
+ 0xb4, 0x6d, 0xff, 0x02, 0x2b, 0x32, 0x3b, 0xb9, 0x13, 0x28, 0xea, 0x72, 0x05, 0xeb, 0x99, 0xae,
+ 0xeb, 0xd6, 0xd7, 0xdd, 0xee, 0xb4, 0xc9, 0xef, 0x75, 0xbc, 0x06, 0x28, 0xf6, 0x89, 0xa1, 0xe3,
+ 0xc8, 0xf4, 0x71, 0x1a, 0x1c, 0xa9, 0xcc, 0x99, 0xc7, 0x0b, 0x98, 0x6f, 0x39, 0x95, 0xfa, 0x6a,
+ 0x84, 0x68, 0x51, 0x28, 0x59, 0x6e, 0xda, 0x60, 0xbf, 0x65, 0x96, 0x27, 0x44, 0x82, 0xa5, 0x8f,
+ 0xe5, 0x7e, 0x3e, 0xfb, 0x66, 0x44, 0xb2, 0x26, 0xb3, 0x01, 0x43, 0x92, 0xa9, 0xdf, 0x4d, 0xa0,
+ 0xa7, 0x4a, 0xf7, 0xef, 0xab, 0x73, 0xdf, 0x16, 0x0d, 0xd2, 0x08, 0x60, 0x8b, 0x9e, 0xfe, 0x06,
+ 0x44, 0x7c, 0xac, 0x80, 0x52, 0xdd, 0xd8, 0x82, 0x4a, 0x92, 0xa5, 0xb0, 0x83, 0xe5, 0x55, 0x0b,
+ 0xba, 0xc5, 0x16, 0x24, 0xa3, 0xc2, 0x40, 0x70, 0xd5, 0x95, 0xaf, 0xc8, 0x5a, 0xbd, 0x75, 0xed,
+ 0x62, 0x32, 0xbc, 0x99, 0x91, 0x5f, 0xd3, 0x1f, 0x76, 0xa5, 0xa2, 0x94, 0x5c, 0x0f, 0x9b, 0x98,
+ 0xf2, 0x29, 0x70, 0x4f, 0x0c, 0x08, 0x31, 0x55, 0xb4, 0x85, 0x15, 0xfc, 0x58, 0xd3, 0x2f, 0x7f,
+ 0x53, 0x2b, 0xe2, 0x34, 0x38, 0x91, 0x5b, 0xf1, 0x4d, 0x16, 0xf3, 0xde, 0x72, 0xe9, 0x37, 0xd4,
+ 0x9a, 0xc3, 0x63, 0xa9, 0xff, 0xaa, 0xfe, 0x5f, 0x1d, 0xe3, 0x46, 0xae, 0x24, 0xf3, 0x5d, 0xd3,
+ 0x10, 0x03, 0xdb, 0xa7, 0x2e, 0x34, 0x5f, 0xf6, 0x64, 0x3b, 0x95, 0x33, 0x3f, 0x27, 0x14, 0x1f,
+ 0x1d, 0x8f, 0xe1, 0xcb, 0x08, 0xb1, 0x9f, 0x66, 0xd8, 0x47, 0xa7, 0xa8, 0xd1, 0x23, 0x8b, 0xeb,
+ 0x0a, 0xd8, 0xaf, 0x7f, 0x62, 0xfd, 0x1c, 0x15, 0xdf, 0xc3, 0xf1, 0xc6, 0x20, 0x2f, 0xe9, 0x34,
+ 0xd3, 0x33, 0xf5, 0x45, 0x8b, 0xf2, 0xe6, 0x4d, 0xeb, 0x0d, 0xd1, 0x85, 0x49, 0x12, 0x97, 0x2c,
+ 0xfd, 0x9d, 0x69, 0xee, 0x5f, 0x6a, 0x23, 0xab, 0xe5, 0xc6, 0x7d, 0x59, 0x68, 0x0a, 0x53, 0x51,
+ 0x73, 0x2d, 0x97, 0xb9, 0x64, 0xf9, 0xe5, 0xde, 0x85, 0x60, 0x1a, 0xb8, 0x0c, 0xa7, 0x1f, 0xea,
+ 0xf1, 0x0d, 0xa3, 0x05, 0xa2, 0x7d, 0x8a, 0x0c, 0xce, 0x44, 0x62, 0xdd, 0xe9, 0x81, 0x5c, 0xc8,
+ 0x4a, 0xd4, 0x45, 0xa6, 0xda, 0x2d, 0xa3, 0x4b, 0x8c, 0x2f, 0xe0, 0x0a, 0xdc, 0xb3, 0xb9, 0x48,
+ 0xa1, 0x02, 0x92, 0x7b, 0x34, 0x99, 0x6a, 0xa4, 0xf9, 0x93, 0xe6, 0x22, 0x2a, 0x3a, 0x18, 0xab,
+ 0xaa, 0xc6, 0xcd, 0x83, 0x8d, 0xf6, 0x1f, 0x86, 0xb1, 0xae, 0x3a, 0xfb, 0x65, 0x9a, 0x61, 0xf2,
+ 0x74, 0x79, 0x02, 0xaa, 0x20, 0x81, 0x39, 0x5b, 0xe6, 0xdf, 0xd9, 0xe5, 0xc2, 0x8c, 0x69, 0x2a,
+ 0x14, 0x73, 0x9d, 0xfe, 0xc4, 0x39, 0x38, 0x2a, 0x7d, 0x45, 0x21, 0x4f, 0x40, 0x5e, 0x11, 0x68,
+ 0x39, 0xf9, 0xd2, 0x1f, 0xbe, 0xd4, 0x46, 0x95, 0x09, 0x4f, 0xfa, 0xb2, 0xd0, 0x14, 0xa6, 0xa2,
+ 0x95, 0x77, 0x7a, 0x08, 0xac, 0xc8, 0xec, 0xa1, 0x4c, 0xa0, 0x2e, 0x0b, 0x14, 0x2a, 0x21, 0xfd,
+ 0x5b, 0xcb, 0x6e, 0x86, 0x2f, 0x8b, 0x95, 0x8a, 0x7f, 0xea, 0x58, 0x26, 0x8c, 0x1b, 0x3d, 0x3a,
+ 0x56, 0x47, 0x54, 0xea, 0x09, 0x0e, 0x55, 0x1a, 0xc3, 0x96, 0x6a, 0xbd, 0x62, 0x1f, 0xa2, 0xce,
+ 0x8a, 0xc0, 0xb8, 0x0e, 0xd1, 0x9e, 0xa1, 0xa9, 0x79, 0xd8, 0xd3, 0x9d, 0x1b, 0xd4, 0x49, 0xcc,
+ 0xdf, 0xa3, 0x3f, 0xae, 0x76, 0xe5, 0x4f, 0xea, 0xc0, 0x8f, 0xce, 0x01, 0xc8, 0x99, 0x98, 0xb5,
+ 0xcd, 0x98, 0xc7, 0xc4, 0x2d, 0x36, 0xc2, 0x72, 0x49, 0x8b, 0x01, 0x0c, 0x29, 0x63, 0x6f, 0x70,
+ 0x51, 0x13, 0xc1, 0xf9, 0x4d, 0x76, 0x89, 0x9f, 0xa0, 0x29, 0xa9, 0xe0, 0xac, 0x34, 0xd4, 0x0e,
+ 0x34, 0x75, 0xe8, 0x73, 0x98, 0x51, 0x86, 0x05, 0xb5, 0x33, 0xc8, 0x29, 0x3e, 0x10, 0x39, 0x56,
+ 0xf6, 0x59, 0x36, 0x16, 0xe6, 0x05, 0x56, 0x89, 0xad, 0xfb, 0xa1, 0x80, 0x27, 0xaa, 0x2a, 0x08,
+ 0x8d, 0x94, 0x2d, 0x1d, 0x95, 0xe6, 0x7d, 0x2c, 0x1a, 0x67, 0x10, 0xc0, 0xd5, 0xff, 0x3f, 0x0c,
+ 0x6a, 0xd2, 0x30, 0x2b, 0x86, 0x45, 0x1d, 0x64, 0x44, 0x59, 0x09, 0x6c, 0xa2, 0xfd, 0x91, 0x76,
+ 0xf3, 0x35, 0x80, 0xc8, 0xd7, 0x9a, 0x58, 0x62, 0x23, 0x7b, 0x38, 0xe3, 0x37, 0x5c, 0xbf, 0x12,
+ 0xf5, 0x7d, 0xe5, 0x5c, 0x48, 0x70, 0xed, 0xd0, 0xd7, 0x3a, 0xd6, 0xa1, 0x96, 0xf8, 0x59, 0xbf,
+ 0x11, 0x1f, 0x2b, 0x20, 0xf5, 0xa6, 0x36, 0xc1, 0xf3, 0xc5, 0xb8, 0x2c, 0x50, 0xa8, 0x84, 0x72,
+ 0x9d, 0x97, 0xf6, 0xba, 0xbb, 0xd2, 0x22, 0xda, 0x7e, 0x5c, 0x85, 0xf3, 0xea, 0xd8, 0x2b, 0x13,
+ 0x75, 0x65, 0xf2, 0x2d, 0xfb, 0x13, 0x50, 0x6c, 0x71, 0x21, 0xf4, 0xfa, 0xad, 0x03, 0xf9, 0x47,
+ 0x19, 0xff, 0xa7, 0x92, 0xe2, 0xbc, 0xf8, 0xba, 0xc1, 0x39, 0x13, 0xd4, 0xae, 0x5a, 0x8e, 0x9c,
+ 0x03, 0x24, 0xd3, 0x4a, 0xae, 0x75, 0xbb, 0x59, 0x7a, 0xc1, 0x77, 0x21, 0xb1, 0x52, 0x73, 0xb7,
+ 0x70, 0x09, 0x44, 0xf3, 0xca, 0x8c, 0x5e, 0x87, 0xff, 0xa1, 0x6d, 0x99, 0xbd, 0xf5, 0x6c, 0x5d,
+ 0x72, 0x31, 0x67, 0x3e, 0xbf, 0x6b, 0x8c, 0xe9, 0x12, 0x9e, 0x37, 0xa7, 0x63, 0x28, 0x8f, 0x87,
+ 0x3a, 0xdd, 0x01, 0x55, 0x10, 0xa1, 0xfd, 0xcc, 0x73, 0x8e, 0x8d, 0x93, 0x61, 0x46, 0xd5, 0x15,
+ 0x8b, 0xdc, 0x48, 0x89, 0x0a, 0x0c, 0xc8, 0x9e, 0xee, 0x26, 0xfe, 0x82, 0x74, 0x5b, 0xd9, 0xa1,
+ 0x33, 0x21, 0x7d, 0x60, 0xdc, 0x29, 0x5a, 0x80, 0xd6, 0x8c, 0x0b, 0x74, 0xf0, 0x3b, 0x4f, 0x96,
+ 0xc6, 0x5c, 0x98, 0x3c, 0x94, 0x59, 0xb7, 0x50, 0x01, 0xb6, 0xdd, 0xd5, 0x66, 0xc3, 0x16, 0x29,
+ 0x2f, 0xb2, 0x6c, 0x2c, 0x0f, 0x0a, 0xac, 0xd1, 0x99, 0x35, 0x81, 0xc3, 0x4e, 0x97, 0x54, 0x10,
+ 0x89, 0xe4, 0x6b, 0x44, 0x7f, 0xeb, 0x1a, 0xf0, 0x03, 0x19, 0xa4, 0xbc, 0xaa, 0x86, 0x3a, 0x7b,
+ 0xbe, 0xb5, 0x50, 0x7d, 0x49, 0xcf, 0x27, 0xac, 0xcc, 0xeb, 0x1b, 0xb4, 0x25, 0xc4, 0x70, 0x9a,
+ 0xce, 0xbc, 0x14, 0x8e, 0x83, 0x43, 0x79, 0x2b, 0x33, 0x4a, 0x76, 0x2d, 0x98, 0x31, 0x1c, 0xc7,
+ 0xc4, 0x64, 0xbb, 0xf1, 0xe1, 0xbe, 0x65, 0x3e, 0xec, 0x89, 0x87, 0xeb, 0xb8, 0x1e, 0xf5, 0xf3,
+ 0xfa, 0xc9, 0xfc, 0xfd, 0x1b, 0x12, 0xff, 0x2e, 0x86, 0x79, 0xbe, 0x04, 0xa6, 0x21, 0x25, 0x91,
+ 0x3b, 0xc1, 0xf1, 0xd2, 0xcb, 0x33, 0x94, 0xfb, 0xe4, 0x70, 0xa0, 0x8c, 0x0e, 0xc9, 0x45, 0x78,
+ 0xdd, 0x9b, 0x1c, 0x63, 0x03, 0x02, 0x9d, 0x84, 0x2d, 0xb0, 0x94, 0x3f, 0x16, 0x44, 0x7b, 0x6f,
+ 0x77, 0x5d, 0xd1, 0xe0, 0x8e, 0xf4, 0x82, 0x02, 0x9c, 0x1e, 0xae, 0xc4, 0x73, 0xde, 0x1a, 0x9d,
+ 0xc5, 0x78, 0x4b, 0x76, 0x3a, 0x2c, 0x0c, 0x09, 0x7b, 0x77, 0xaa, 0xf4, 0xd7, 0x91, 0x65, 0x9e,
+ 0x16, 0x4b, 0xbe, 0x33, 0xb1, 0xde, 0xea, 0x44, 0x90, 0x7a, 0x7b, 0x71, 0x9e, 0x83, 0xf2, 0xb2,
+ 0xa4, 0x6e, 0x24, 0xa5, 0x05, 0x06, 0x64, 0x4f, 0x77, 0x13, 0x7f, 0x41, 0x3a, 0xcc, 0x8d, 0xb1,
+ 0xad, 0x92, 0x58, 0x90, 0xc9, 0x8e, 0xc3, 0x03, 0xd2, 0x11, 0xf9, 0xa6, 0xab, 0xb1, 0x17, 0x32,
+ 0xd8, 0xf7, 0xaa, 0xbd, 0x32, 0x9d, 0x93, 0x6f, 0xa3, 0x30, 0x0d, 0x5c, 0x06, 0xb2, 0xee, 0x75,
+ 0xb7, 0x49, 0x2c, 0x48, 0x85, 0x47, 0x80, 0xe0, 0x69, 0xe9, 0x9d, 0x53, 0xb4, 0xb9, 0xea, 0x19,
+ 0x92, 0x23, 0xef, 0x1b, 0xe8, 0xb0, 0x30, 0x24, 0x2f, 0x1f, 0xed, 0x56, 0xda, 0x01, 0x57, 0x3d,
+ 0x49, 0xf0, 0x96, 0xec, 0x74, 0x58, 0x18, 0x12, 0xf6, 0xee, 0x97, 0x2b, 0x6d, 0xe1, 0xca, 0xff,
+ 0x64, 0x7a, 0xd9, 0x0d, 0x0e, 0xb5, 0x66, 0xad, 0x82, 0xe4, 0x4c, 0xd6, 0xfd, 0xab, 0x7d, 0x35,
+ 0x91, 0x07, 0x3c, 0x51, 0x46, 0xc5, 0x8b, 0x7d, 0x55, 0xde, 0x9a, 0x77, 0x6b, 0x53, 0x24, 0x8a,
+ 0x9c, 0x8b, 0x06, 0x3d, 0x60, 0x40, 0x4b, 0xed, 0xe9, 0xa2, 0xa8, 0xec, 0x85, 0x57, 0xbb, 0x7e,
+ 0x01, 0x1c, 0xf0, 0x87, 0xdb, 0x92, 0x69, 0x37, 0x97, 0xfe, 0x2d, 0x1f, 0x6f, 0x8f, 0x90, 0x6d,
+ 0xe8, 0xf2, 0x04, 0x97, 0x40, 0xc1, 0x72, 0xb6, 0x0f, 0x7d, 0x71, 0x09, 0x47, 0xdb, 0xd2, 0x54,
+ 0xa0, 0x1e, 0x62, 0xfc, 0xef, 0x0b, 0x03, 0x93, 0x6e, 0x6d, 0xcb, 0x3d, 0x45, 0xb5, 0x88, 0xc6,
+ 0xbb, 0xd9, 0xe6, 0xa3, 0x78, 0x50, 0x29, 0x47, 0x42, 0x6b, 0x82, 0xd7, 0x35, 0x32, 0xe5, 0x80,
+ 0xb5, 0x71, 0x0f, 0x85, 0xf0, 0xa0, 0x52, 0x8e, 0x84, 0xd6, 0xc7, 0x6d, 0x6a, 0x64, 0x09, 0xc3,
+ 0x29, 0xfa, 0x09, 0xb8, 0x90, 0xe0, 0x19, 0x63, 0x6d, 0x74, 0x6f, 0x81, 0xef, 0x33, 0xb2, 0xbd,
+ 0xe3, 0x36, 0x5b, 0x6f, 0xf9, 0xae, 0x07, 0x94, 0x47, 0x40, 0xad, 0xd0, 0x08, 0x7b, 0xab, 0x0d,
+ 0x5a, 0xd7, 0x9e, 0x01, 0xf4, 0x19, 0xfc, 0xbd, 0xe8, 0x14, 0x75, 0x39, 0xe3, 0x94, 0xad, 0x57,
+ 0x17, 0x57, 0x4e, 0xb4, 0x6a, 0x4c, 0x83, 0x73, 0x07, 0x84, 0x56, 0x6e, 0xf1, 0x0c, 0x62, 0xdf,
+ 0x63, 0x2e, 0x4c, 0x1e, 0x4a, 0xcd, 0xba, 0x28, 0xe1, 0x5b, 0x8f, 0x8b, 0x33, 0x80, 0x0b, 0xf5,
+ 0x25, 0x6a, 0xc3, 0x53, 0x6d, 0xf7, 0xb0, 0xc4, 0x46, 0xf6, 0x70, 0x05, 0x6e, 0xb8, 0xbd, 0x24,
+ 0x7d, 0x85, 0x7e, 0x9f, 0xec, 0x09, 0x9e, 0x17, 0x43, 0xdd, 0x5f, 0x02, 0x53, 0xf1, 0xf3, 0xa9,
+ 0x20, 0x06, 0x75, 0x8d, 0x5c, 0x68, 0xbe, 0x2f, 0xc8, 0x76, 0xe9, 0x66, 0x7e, 0x4e, 0x28, 0x3e,
+ 0x13, 0x27, 0x08, 0xed, 0x80, 0x41, 0xe4, 0xaf, 0x1e, 0xfa, 0xe2, 0x12, 0x8e, 0x75, 0x67, 0xa8,
+ 0x0e, 0xa8, 0xe9, 0x26, 0x88, 0xf0, 0x7b, 0xc9, 0xc6, 0xbd, 0x45, 0xba, 0x5f, 0x56, 0xec, 0x43,
+ 0x9f, 0xaf, 0xd5, 0x77, 0xce, 0x35, 0xf0, 0xb4, 0x93, 0x63, 0xdf, 0xcd, 0x34, 0x05, 0xc8, 0xc9,
+ 0xe1, 0x0e, 0x78, 0xa2, 0x8c, 0x49, 0xd5, 0xfa, 0xaa, 0x7f, 0xf7, 0xee, 0xd6, 0xa6, 0x48, 0xd7,
+ 0x55, 0x63, 0x87, 0xa0, 0xa7, 0x7b, 0xee, 0x43, 0xb9, 0x57, 0x1d, 0x9c, 0xd3, 0x4d, 0xd1, 0x79,
+ 0x8f, 0xac, 0x0e, 0xd0, 0xe0, 0x01, 0xaf, 0x42, 0xf7, 0x58, 0x4a, 0xfe, 0x0b, 0x22, 0xdc, 0xd6,
+ 0xd1, 0x0b, 0xd6, 0x88, 0xfe, 0x15, 0x34, 0x23, 0x06, 0x32, 0x8b, 0xbb, 0x97, 0xcf, 0x74, 0xf6,
+ 0x40, 0x0c, 0xea, 0xd9, 0xb8, 0xd0, 0xbf, 0x5e, 0x53, 0xec, 0x11, 0xcc, 0xfc, 0x9c, 0x50, 0x7c,
+ 0x82, 0x20, 0x34, 0xbc, 0xc6, 0x84, 0x6f, 0xd2, 0x4b, 0x24, 0x78, 0x65, 0xe5, 0x26, 0x43, 0x22,
+ 0x52, 0x37, 0x12, 0xb3, 0xe3, 0x03, 0x32, 0xc6, 0xda, 0xe8, 0xde, 0xc1, 0x1d, 0x66, 0xa7, 0xb9,
+ 0xb2, 0x25, 0x9a, 0x96, 0xb4, 0xd8, 0x8e, 0x0b, 0xe7, 0x69, 0x04, 0x30, 0xa4, 0x4f, 0x7f, 0x03,
+ 0x59, 0xf3, 0x4d, 0x4b, 0x5a, 0x6c, 0x47, 0xe4, 0x92, 0xd5, 0x02, 0x18, 0x52, 0xc6, 0xde, 0xe0,
+ 0x3f, 0xb1, 0xb7, 0x8b, 0x21, 0x3e, 0xf3, 0x27, 0xfd, 0x0e, 0x14, 0xf0, 0x71, 0xb0, 0x40, 0x0f,
+ 0xd4, 0x67, 0x60, 0x56, 0xcf, 0x8a, 0x3a, 0xc8, 0x88, 0xb2, 0x12, 0xd8, 0x87, 0x39, 0xe1, 0xec,
+ 0x79, 0xf5, 0x38, 0xc6, 0x06, 0x04, 0xf9, 0xcb, 0x5a, 0xa3, 0xeb, 0x7e, 0x2c, 0x88, 0xf6, 0xde,
+ 0xe7, 0x46, 0x1d, 0x36, 0x13, 0xa3, 0x60, 0x48, 0x5e, 0x3e, 0x19, 0xac, 0x77, 0x02, 0xae, 0x7a,
+ 0xef, 0xa6, 0x91, 0x84, 0x04, 0xb9, 0xae, 0x33, 0x6c, 0xc2, 0xb2, 0x54, 0x89, 0xf0, 0xa4, 0x94,
+ 0xca, 0xcc, 0x52, 0xd7, 0x69, 0x4e, 0x1e, 0xf7, 0x2a, 0x34, 0xc2, 0x51, 0xe7, 0x48, 0x19, 0xb0,
+ 0x47, 0x58, 0x7f, 0xca, 0xfc, 0xa8, 0x63, 0xdb, 0x30, 0x53, 0xd2, 0x91, 0x32, 0xb7, 0x26, 0xbc,
+ 0xa5, 0x72, 0xd4, 0x22, 0xde, 0x94, 0x0d, 0x78, 0xe0, 0xed, 0x52, 0x5e, 0x55, 0x43, 0x1d, 0xdc,
+ 0xaf, 0xaa, 0x7b, 0x5d, 0xbc, 0x69, 0x11, 0x6d, 0x3f, 0x2e, 0xa3, 0x98, 0x75, 0x6c, 0xf4, 0xe8,
+ 0xa8, 0xfe, 0xee, 0x4e, 0xf8, 0x11, 0xcd, 0xe8, 0x5c, 0x91, 0x60, 0xc5, 0xbb, 0x47, 0x82, 0x28,
+ 0x93, 0x3f, 0x1f, 0x9c, 0x33, 0x22, 0x59, 0x13, 0xb8, 0xe1, 0xc0, 0x49, 0xb5, 0x8e, 0xc7, 0x50,
+ 0xed, 0x9e, 0xb2, 0x49, 0x71, 0x5e, 0x7c, 0x5d, 0x81, 0xfd, 0xe8, 0x6a, 0x57, 0x2d, 0x47, 0x4e,
+ 0xc3, 0x30, 0x2e, 0xe2, 0xa5, 0xc6, 0xb9, 0xbb, 0x8f, 0x36, 0x44, 0xb6, 0x76, 0x35, 0x83, 0x33,
+ 0x2a, 0xde, 0xda, 0xf2, 0x3e, 0x95, 0xa2, 0x3a, 0x17, 0xb5, 0x18, 0xa0, 0x5e, 0x61, 0xc1, 0x0a,
+ 0x96, 0x53, 0xa9, 0x42, 0x02, 0xbd, 0x57, 0xf8, 0x36, 0x61, 0x59, 0x2a, 0xa5, 0x78, 0x52, 0x4a,
+ 0x2c, 0x96, 0xbf, 0x66, 0xa1, 0x7f, 0x17, 0x88, 0xe3, 0xf4, 0xf6, 0xe2, 0xff, 0xc5, 0x27, 0xa7,
+ 0x5d, 0x83, 0x0b, 0x12, 0xb0, 0x61, 0x20, 0x38, 0x8b, 0xab, 0xb6, 0x64, 0x2d, 0xbf, 0xdb, 0x97,
+ 0xe2, 0x2a, 0xab, 0xe8, 0x22, 0x3c, 0x6e, 0xa3, 0xd0, 0xbe, 0x80, 0xcf, 0x67, 0xf4, 0x3b, 0x60,
+ 0x7f, 0xbd, 0x5d, 0x52, 0x99, 0xee, 0x4c, 0x79, 0xae, 0xe2, 0x05, 0x3c, 0x8d, 0x2c, 0x10, 0x73,
+ 0x7e, 0xa1, 0xad, 0xd5, 0x42, 0x7c, 0x25, 0x4e, 0x39, 0x1c, 0x28, 0x23, 0xe2, 0xa3, 0x80, 0x1e,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x3e, 0xad, 0x47, 0x0c, 0xfa, 0xac, 0x9a, 0x10, 0x6a, 0xf0, 0x39, 0xef, 0x1e, 0x3f, 0xd0, 0x62,
+ 0xc7, 0x40, 0x68, 0xbb, 0x4f, 0xcb, 0xde, 0x67, 0x96, 0x48, 0xf0, 0xca, 0x09, 0x4c, 0x86, 0x44,
+ 0x05, 0x6c, 0xb6, 0xde, 0x31, 0x9f, 0x0e, 0xeb, 0x8e, 0x80, 0x99, 0x63, 0x10, 0xf6, 0x95, 0x1a,
+ 0x3c, 0x95, 0x64, 0xc1, 0x8f, 0x4b, 0x48, 0x7e, 0x87, 0xcf, 0x63, 0xd1, 0xc0, 0xe2, 0x33, 0xb8,
+ 0x87, 0x4c, 0x82, 0x62, 0xf7, 0x1b, 0x61, 0x39, 0xc5, 0xa4, 0xe1, 0x06, 0xf5, 0xd0, 0xd6, 0x38,
+ 0x67, 0x5e, 0x0a, 0x47, 0xa0, 0xc0, 0xdd, 0xf4, 0xf8, 0x25, 0x3b, 0xf7, 0x4c, 0xf9, 0x0e, 0x82,
+ 0x99, 0xe7, 0xb0, 0xe3, 0x51, 0xdf, 0x45, 0x06, 0x67, 0x22, 0x31, 0x8f, 0x95, 0xa1, 0x2e, 0x64,
+ 0xab, 0xda, 0x3d, 0x04, 0x56, 0x64, 0x76, 0xb1, 0x26, 0x50, 0x17, 0xe4, 0x0a, 0x15, 0xf1, 0x9f,
+ 0xf9, 0xed, 0x2f, 0xb7, 0xb5, 0x67, 0x44, 0x77, 0xfc, 0xb8, 0xc9, 0x25, 0x17, 0x73, 0x56, 0x26,
+ 0xd2, 0x2f, 0x05, 0xc2, 0x50, 0x60, 0x8f, 0x7a, 0x7c, 0xf3, 0xfc, 0x9a, 0x26, 0x9d, 0x07, 0x41,
+ 0x06, 0x48, 0x65, 0x94, 0x9f, 0xea, 0xb5, 0xb2, 0xf4, 0x41, 0xee, 0x42, 0xa1, 0xa4, 0xe6, 0xad,
+ 0xa9, 0xe2, 0x1e, 0xc9, 0x23, 0x83, 0xa4, 0xdf, 0xcb, 0x6f, 0x4d, 0xda, 0xd4, 0xc8, 0x12, 0x45,
+ 0x1b, 0xc7, 0x84, 0x5f, 0x97, 0x5b, 0x2a, 0xd4, 0x2c, 0x06, 0x49, 0xea, 0x70, 0x87, 0x6d, 0x46,
+ 0x48, 0xec, 0x66, 0x6b, 0xaf, 0xca, 0x71, 0x25, 0x61, 0x10, 0xba, 0x34, 0x02, 0x6e, 0x5a, 0x92,
+ 0x97, 0x4f, 0x59, 0xc5, 0xd9, 0x2f, 0x3e, 0xcf, 0xa1, 0x9f, 0x74, 0x35, 0xca, 0xf7, 0xc2, 0x27,
+ 0xc2, 0x2c, 0xde, 0x65, 0x7e, 0x54, 0xd0, 0x8c, 0x18, 0xc8, 0x69, 0xa9, 0x19, 0xba, 0x13, 0x5e,
+ 0x86, 0x50, 0x72, 0xe5, 0x2c, 0x89, 0x08, 0x0e, 0x52, 0x5a, 0xcc, 0x19, 0x9a, 0x5f, 0x46, 0x55,
+ 0x61, 0x16, 0x6f, 0xd3, 0x3f, 0x2a, 0x68, 0x46, 0x0c, 0x64, 0xd5, 0xb5, 0xed, 0x5d, 0xe8, 0x2f,
+ 0x36, 0x4d, 0xcb, 0xbe, 0xed, 0xb6, 0x54, 0x6b, 0x58, 0x0c, 0x92, 0x17, 0xe0, 0xcd, 0xda, 0x8c,
+ 0x57, 0x5b, 0xa4, 0x6d, 0xd2, 0x9c, 0x3c, 0x2d, 0x54, 0x68, 0x47, 0xa2, 0x0d, 0x90, 0x32, 0xa3,
+ 0xf0, 0x11, 0x53, 0x82, 0x79, 0xef, 0xe3, 0x3b, 0x59, 0xba, 0x4f, 0xc2, 0x86, 0x0e, 0xcc, 0xa5,
+ 0x2e, 0xae, 0x9c, 0xab, 0xd4, 0x98, 0xc5, 0xe6, 0x0e, 0xcb, 0xac, 0xdc, 0x21, 0x18, 0xc4, 0x7d,
+ 0x7a, 0xd1, 0xeb, 0x8c, 0xa8, 0x71, 0x42, 0x92, 0x20, 0x62, 0x9c, 0x5f, 0x9d, 0xda, 0x85, 0x69,
+ 0x3d, 0x89, 0x94, 0x46, 0x54, 0xd9, 0x21, 0x49, 0x10, 0x31, 0x4e, 0xce, 0xaf, 0x6d, 0xa3, 0xd5,
+ 0x81, 0x04, 0xe7, 0xf6, 0x68, 0xf1, 0xd4, 0x8b, 0x31, 0xe5, 0x0f, 0x44, 0x54, 0x74, 0x30, 0x95,
+ 0x35, 0x69, 0x18, 0xf4, 0x43, 0xc3, 0xef, 0x32, 0x22, 0xcd, 0xe5, 0x36, 0x51, 0x9f, 0xa9, 0x3b,
+ 0xc9, 0xe8, 0x81, 0x9d, 0xc7, 0x3b, 0xa5, 0xae, 0x50, 0xf5, 0xb5, 0x70, 0x56, 0x1a, 0x6a, 0x07,
+ 0x65, 0x66, 0x29, 0x8a, 0xd5, 0x27, 0x0f, 0x9a, 0x15, 0x1a, 0x61, 0xc9, 0x92, 0x24, 0xed, 0x58,
+ 0x78, 0xe9, 0xc8, 0x41, 0xdd, 0x96, 0x90, 0xfc, 0xcd, 0x5d, 0xc6, 0x61, 0x43, 0x07, 0x66, 0xb3,
+ 0xbc, 0x8d, 0x73, 0xb0, 0x3c, 0x28, 0xf5, 0xc2, 0x21, 0xd4, 0x41, 0x8a, 0xfb, 0x19, 0x93, 0x40,
+ 0x1c, 0x93, 0x11, 0x4c, 0xd3, 0x23, 0xf6, 0x51, 0x4f, 0xb9, 0x8a, 0xb7, 0xbe, 0xac, 0x1b, 0x86,
+ 0x68, 0xea, 0x13, 0xe6, 0xf3, 0xa2, 0xcf, 0x0a, 0xa9, 0x66, 0x53, 0x52, 0x7c, 0x20, 0x72, 0xac,
+ 0xcc, 0x84, 0x37, 0x43, 0xf6, 0xa4, 0xab, 0x45, 0xde, 0x75, 0x2c, 0x13, 0x46, 0xec, 0xff, 0x1d,
+ 0xbf, 0xa9, 0xa0, 0xfa, 0x92, 0x5d, 0x4e, 0x9b, 0x5b, 0x15, 0x36, 0xab, 0x4a, 0x4b, 0xe0, 0xf7,
+ 0x71, 0x15, 0xb4, 0x74, 0x11, 0x1e, 0x37, 0xb0, 0x68, 0x5f, 0x40, 0x86, 0xd2, 0x7a, 0xfc, 0x30,
+ 0xb8, 0xfd, 0x35, 0xe9, 0xd6, 0x25, 0x92, 0x1e, 0x38, 0xaa, 0xf5, 0xf6, 0x84, 0x60, 0x96, 0x37,
+ 0xa6, 0x56, 0x07, 0x68, 0x70, 0xe1, 0xb6, 0x21, 0x9a, 0x2c, 0x25, 0x7f, 0xe4, 0x11, 0x6e, 0x6b,
+ 0x22, 0x3e, 0x56, 0x40, 0x29, 0x8f, 0x6c, 0x41, 0x25, 0x49, 0xb3, 0x58, 0xa0, 0x93, 0xcb, 0xe4,
+ 0x4d, 0x80, 0xd0, 0xb5, 0x9e, 0x55, 0x7f, 0xce, 0xef, 0x90, 0x23, 0x57, 0x12, 0x98, 0xcf, 0x88,
+ 0xb0, 0x1d, 0xb9, 0x5b, 0xc1, 0x3f, 0x5c, 0x65, 0x0a, 0x56, 0x5e, 0x0e, 0x7a, 0x92, 0x9c, 0xd9,
+ 0x90, 0x1b, 0xcc, 0xd6, 0x9d, 0x57, 0xe2, 0x4a, 0xc2, 0x20, 0xb7, 0x68, 0x04, 0xdc, 0xb4, 0xe7,
+ 0x23, 0x22, 0xa6, 0xc7, 0xf2, 0x1d, 0x05, 0x76, 0xb2, 0xb7, 0x9e, 0x47, 0xcf, 0x1c, 0x5b, 0x89,
+ 0x37, 0x51, 0x3b, 0x39, 0x36, 0x24, 0x3d, 0x5c, 0xcf, 0xf2, 0xbf, 0x08, 0x8f, 0x42, 0x4a, 0xe1,
+ 0x6b, 0xce, 0xc0, 0xac, 0x5d, 0xd7, 0x74, 0x53, 0xd3, 0xa7, 0x24, 0x73, 0xcd, 0x72, 0x01, 0x1b,
+ 0x09, 0xfc, 0x7c, 0x35, 0xcc, 0x88, 0xa7, 0x4c, 0xa5, 0x02, 0x86, 0xe7, 0x91, 0x7d, 0x9a, 0x83,
+ 0x24, 0x76, 0x33, 0xd4, 0xb6, 0x65, 0xd9, 0xf3, 0xd1, 0x08, 0x5d, 0x1a, 0x01, 0x37, 0x2d, 0x49,
+ 0x31, 0x19, 0x5e, 0xad, 0xa9, 0xce, 0x88, 0xee, 0x3b, 0xb3, 0x51, 0x4a, 0x2e, 0xe6, 0xac, 0x4c,
+ 0x4e, 0xa4, 0x03, 0xff, 0x30, 0x20, 0xc4, 0x97, 0x95, 0x51, 0x54, 0x76, 0xa3, 0xca, 0xbc, 0x3f,
+ 0x80, 0x18, 0x17, 0x71, 0xb3, 0x63, 0xbd, 0xbc, 0xa6, 0x1b, 0x22, 0x5b, 0x3b, 0xfb, 0xa0, 0xf8,
+ 0x27, 0x52, 0xe0, 0x9e, 0x18, 0x10, 0x62, 0xaa, 0xab, 0xc9, 0x2a, 0x3b, 0xb0, 0x65, 0x5e, 0xfe,
+ 0x58, 0xef, 0xbd, 0xcc, 0x81, 0xfe, 0x2e, 0xd3, 0x05, 0x2b, 0x2f, 0x07, 0x3d, 0x49, 0x4e, 0x8d,
+ 0x21, 0x1a, 0x85, 0x0a, 0x87, 0xfa, 0xd7, 0x18, 0x5f, 0x88, 0xc4, 0x79, 0x11, 0xc1, 0xb8, 0x53,
+ 0xcf, 0xa0, 0xe4, 0x09, 0x58, 0xd1, 0x10, 0x1c, 0xa4, 0xb4, 0x5b, 0x32, 0xf7, 0xbe, 0x8c, 0xaa,
+ 0x94, 0x6b, 0x8a, 0x8f, 0x77, 0x5a, 0x85, 0x96, 0xdb, 0x5e, 0x03, 0x14, 0x7b, 0xa5, 0xb1, 0x90,
+ 0x2d, 0x8a, 0x4f, 0xe1, 0x7a, 0xed, 0x7e, 0xbf, 0x74, 0x0a, 0xdb, 0xfd, 0x90, 0x4a, 0xb7, 0xca,
+ 0xde, 0xbf, 0xcf, 0x29, 0xad, 0x77, 0x26, 0xdd, 0x57, 0x71, 0xe3, 0x1e, 0xa7, 0x16, 0x08, 0xd8,
+ 0xae, 0xb6, 0x8b, 0xda, 0x67, 0xfb, 0x78, 0x5a, 0xa8, 0xd0, 0x8e, 0x87, 0x1a, 0xe3, 0x64, 0x85,
+ 0x8c, 0x88, 0xdd, 0x9a, 0x4e, 0x74, 0x14, 0x1b, 0x8d, 0x99, 0x3d, 0xdf, 0xba, 0x70, 0xaf, 0x61,
+ 0x5e, 0xa7, 0xd8, 0x58, 0x1e, 0x14, 0x9b, 0x61, 0xf1, 0x6a, 0xc1, 0x45, 0x9c, 0xed, 0xa8, 0x20,
+ 0xa3, 0x3a, 0xb1, 0xb6, 0x41, 0x7e, 0xb8, 0xca, 0x14, 0xac, 0xbc, 0x1c, 0xf4, 0xe7, 0xfb, 0x71,
+ 0x2b, 0xc2, 0x2a, 0x75, 0xe5, 0x07, 0xcb, 0x0d, 0x80, 0x4b, 0x35, 0xbf, 0x31, 0xee, 0x51, 0x67,
+ 0x9e, 0xb3, 0x25, 0xf0, 0x15, 0xa7, 0x99, 0x83, 0x04, 0x9d, 0xf2, 0xd2, 0x5b, 0x8a, 0x58, 0xa4,
+ 0xbd, 0x91, 0x83, 0x37, 0xe7, 0xba, 0x9c, 0xf5, 0xb6, 0x2a, 0x6c, 0x95, 0x94, 0x96, 0x03, 0x2d,
+ 0x1a, 0xdb, 0x74, 0xd8, 0x4c, 0xc9, 0x43, 0xe3, 0xbb, 0xf8, 0x64, 0xf5, 0x1f, 0x08, 0xfd, 0x2b,
+ 0x98, 0xfb, 0x40, 0x64, 0x8a, 0x4d, 0x2c, 0x31, 0xf0, 0xdc, 0x1c, 0x90, 0xfa, 0x2e, 0xbe, 0x09,
+ 0xd7, 0x43, 0xb3, 0x1c, 0x61, 0xff, 0x81, 0x91, 0xf2, 0x73, 0x65, 0xf9, 0x36, 0x6b, 0x92, 0x5b,
+ 0x43, 0x28, 0x39, 0x93, 0x16, 0xa5, 0x04, 0x07, 0x29, 0x2d, 0x66, 0xed, 0x4d, 0xce, 0x23, 0xcb,
+ 0xd0, 0x17, 0x26, 0x0f, 0x25, 0x87, 0x5d, 0x14, 0x91, 0xcc, 0xa6, 0xa4, 0xf8, 0x40, 0xe4, 0x9b,
+ 0x4b, 0xc8, 0xb5, 0x21, 0x01, 0xbf, 0xca, 0x7c, 0x1b, 0xd1, 0xcd, 0x15, 0xb3, 0x3c, 0x29, 0x25,
+ 0x28, 0xe6, 0xf9, 0x3f, 0x4b, 0x72, 0x70, 0x54, 0xfa, 0x8a, 0x42, 0x9e, 0x80, 0xbc, 0x22, 0xd0,
+ 0x9b, 0xdf, 0x93, 0x2e, 0x24, 0x38, 0x97, 0x68, 0x8a, 0x1d, 0x6b, 0xb1, 0x4b, 0x7c, 0xcd, 0xbe,
+ 0x4c, 0x9c, 0x20, 0x32, 0x45, 0xc7, 0x16, 0xf9, 0x78, 0x6e, 0x0e, 0x48, 0x7d, 0x17, 0x5f, 0xe5,
+ 0x6f, 0xbe, 0x86, 0xf5, 0xb7, 0xda, 0x13, 0x8f, 0xca, 0xd9, 0x90, 0x0f, 0xb2, 0x0b, 0x04, 0x6c,
+ 0x4f, 0xb8, 0xf3, 0x78, 0xeb, 0xb2, 0xad, 0xa0, 0x02, 0xaf, 0x79, 0x69, 0xcc, 0x45, 0x2c, 0x52,
+ 0x0b, 0xc4, 0x5f, 0xf8, 0xb9, 0x6f, 0x75, 0x22, 0x48, 0x3d, 0xdc, 0xd9, 0x4f, 0xa0, 0x79, 0x59,
+ 0x42, 0x34, 0xc9, 0x14, 0xcd, 0x37, 0x6d, 0x30, 0xbe, 0xd3, 0x4b, 0xf2, 0x22, 0x41, 0xb3, 0xa6,
+ 0xb6, 0x55, 0xdc, 0xcf, 0x5e, 0xd5, 0xe9, 0xd7, 0xfe, 0x17, 0xb0, 0x4c, 0xdb, 0x36, 0x7a, 0x74,
+ 0xf4, 0x61, 0x15, 0xdb, 0x93, 0xe2, 0x84, 0xe7, 0x40, 0xc4, 0xfb, 0xbe, 0xf9, 0x77, 0xc9, 0xd2,
+ 0xfe, 0xb9, 0xba, 0xa4, 0xf1, 0x1f, 0x98, 0xf2, 0x9f, 0x07, 0x0a, 0x78, 0xd9, 0x58, 0x20, 0xe6,
+ 0x0d, 0x8c, 0x3a, 0x6c, 0x26, 0x85, 0xc0, 0x90, 0xbc, 0x7c, 0x32, 0x9b, 0xee, 0x04, 0x9f, 0xf4,
+ 0xb1, 0x01, 0x49, 0xdc, 0x1a, 0xad, 0x35, 0x52, 0x9d, 0xa8, 0x73, 0x11, 0x15, 0x1d, 0x0c, 0xb4,
+ 0x07, 0x54, 0x95, 0x13, 0x44, 0x78, 0xdc, 0x85, 0x63, 0xbf, 0xc3, 0x5d, 0xce, 0x2b, 0x76, 0xc0,
+ 0x46, 0x44, 0x8f, 0x4d, 0x27, 0x3a, 0x0a, 0xec, 0xa7, 0xad, 0xff, 0x8e, 0x5d, 0x38, 0xb6, 0xd1,
+ 0x45, 0x60, 0x5c, 0x07, 0x89, 0x4f, 0xb1, 0xb5, 0xdd, 0x6c, 0x88, 0xaf, 0xec, 0x6a, 0xc5, 0x66,
+ 0xda, 0xcf, 0x89, 0x70, 0x47, 0x7a, 0x41, 0x01, 0x4e, 0x0f, 0x57, 0x62, 0xd8, 0x6f, 0x0d, 0xaf,
+ 0xdb, 0xd3, 0x79, 0xf7, 0x9c, 0xe8, 0x28, 0x36, 0xd9, 0xf1, 0x7a, 0x7d, 0xb7, 0xe0, 0x9d, 0xc2,
+ 0xe9, 0xee, 0xf4, 0x10, 0x9b, 0x53, 0x1b, 0x81, 0x98, 0x83, 0x5c, 0x16, 0x28, 0x54, 0x42, 0x39,
+ 0xf8, 0xf1, 0xdf, 0x30, 0x6e, 0xf5, 0x2d, 0x40, 0x6b, 0x46, 0xe4, 0x3a, 0x78, 0xfc, 0xc6, 0x4b,
+ 0x50, 0x0f, 0x31, 0x7e, 0x96, 0xe4, 0xe0, 0xa8, 0x37, 0xd7, 0x84, 0xff, 0xc3, 0xbb, 0x44, 0x63,
+ 0x6d, 0x86, 0xa5, 0x38, 0xc2, 0x3d, 0xc1, 0xe1, 0x27, 0xe6, 0xca, 0x31, 0x6c, 0xd6, 0xe7, 0xb6,
+ },
+};
+
+static const uint8_t kuz_table_inv[16][256 * 16] =
+{
+ { /* 0 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x94, 0x84, 0xdd, 0x10, 0xbd, 0x27, 0x5d, 0xb8, 0x7a, 0x48, 0x6c, 0x72, 0x76, 0xa2, 0x6e,
+ 0x02, 0xeb, 0xcb, 0x79, 0x20, 0xb9, 0x4e, 0xba, 0xb3, 0xf4, 0x90, 0xd8, 0xe4, 0xec, 0x87, 0xdc,
+ 0x03, 0x7f, 0x4f, 0xa4, 0x30, 0x04, 0x69, 0xe7, 0x0b, 0x8e, 0xd8, 0xb4, 0x96, 0x9a, 0x25, 0xb2,
+ 0x04, 0x15, 0x55, 0xf2, 0x40, 0xb1, 0x9c, 0xb7, 0xa5, 0x2b, 0xe3, 0x73, 0x0b, 0x1b, 0xcd, 0x7b,
+ 0x05, 0x81, 0xd1, 0x2f, 0x50, 0x0c, 0xbb, 0xea, 0x1d, 0x51, 0xab, 0x1f, 0x79, 0x6d, 0x6f, 0x15,
+ 0x06, 0xfe, 0x9e, 0x8b, 0x60, 0x08, 0xd2, 0x0d, 0x16, 0xdf, 0x73, 0xab, 0xef, 0xf7, 0x4a, 0xa7,
+ 0x07, 0x6a, 0x1a, 0x56, 0x70, 0xb5, 0xf5, 0x50, 0xae, 0xa5, 0x3b, 0xc7, 0x9d, 0x81, 0xe8, 0xc9,
+ 0x08, 0x2a, 0xaa, 0x27, 0x80, 0xa1, 0xfb, 0xad, 0x89, 0x56, 0x05, 0xe6, 0x16, 0x36, 0x59, 0xf6,
+ 0x09, 0xbe, 0x2e, 0xfa, 0x90, 0x1c, 0xdc, 0xf0, 0x31, 0x2c, 0x4d, 0x8a, 0x64, 0x40, 0xfb, 0x98,
+ 0x0a, 0xc1, 0x61, 0x5e, 0xa0, 0x18, 0xb5, 0x17, 0x3a, 0xa2, 0x95, 0x3e, 0xf2, 0xda, 0xde, 0x2a,
+ 0x0b, 0x55, 0xe5, 0x83, 0xb0, 0xa5, 0x92, 0x4a, 0x82, 0xd8, 0xdd, 0x52, 0x80, 0xac, 0x7c, 0x44,
+ 0x0c, 0x3f, 0xff, 0xd5, 0xc0, 0x10, 0x67, 0x1a, 0x2c, 0x7d, 0xe6, 0x95, 0x1d, 0x2d, 0x94, 0x8d,
+ 0x0d, 0xab, 0x7b, 0x08, 0xd0, 0xad, 0x40, 0x47, 0x94, 0x07, 0xae, 0xf9, 0x6f, 0x5b, 0x36, 0xe3,
+ 0x0e, 0xd4, 0x34, 0xac, 0xe0, 0xa9, 0x29, 0xa0, 0x9f, 0x89, 0x76, 0x4d, 0xf9, 0xc1, 0x13, 0x51,
+ 0x0f, 0x40, 0xb0, 0x71, 0xf0, 0x14, 0x0e, 0xfd, 0x27, 0xf3, 0x3e, 0x21, 0x8b, 0xb7, 0xb1, 0x3f,
+ 0x10, 0x54, 0x97, 0x4e, 0xc3, 0x81, 0x35, 0x99, 0xd1, 0xac, 0x0a, 0x0f, 0x2c, 0x6c, 0xb2, 0x2f,
+ 0x11, 0xc0, 0x13, 0x93, 0xd3, 0x3c, 0x12, 0xc4, 0x69, 0xd6, 0x42, 0x63, 0x5e, 0x1a, 0x10, 0x41,
+ 0x12, 0xbf, 0x5c, 0x37, 0xe3, 0x38, 0x7b, 0x23, 0x62, 0x58, 0x9a, 0xd7, 0xc8, 0x80, 0x35, 0xf3,
+ 0x13, 0x2b, 0xd8, 0xea, 0xf3, 0x85, 0x5c, 0x7e, 0xda, 0x22, 0xd2, 0xbb, 0xba, 0xf6, 0x97, 0x9d,
+ 0x14, 0x41, 0xc2, 0xbc, 0x83, 0x30, 0xa9, 0x2e, 0x74, 0x87, 0xe9, 0x7c, 0x27, 0x77, 0x7f, 0x54,
+ 0x15, 0xd5, 0x46, 0x61, 0x93, 0x8d, 0x8e, 0x73, 0xcc, 0xfd, 0xa1, 0x10, 0x55, 0x01, 0xdd, 0x3a,
+ 0x16, 0xaa, 0x09, 0xc5, 0xa3, 0x89, 0xe7, 0x94, 0xc7, 0x73, 0x79, 0xa4, 0xc3, 0x9b, 0xf8, 0x88,
+ 0x17, 0x3e, 0x8d, 0x18, 0xb3, 0x34, 0xc0, 0xc9, 0x7f, 0x09, 0x31, 0xc8, 0xb1, 0xed, 0x5a, 0xe6,
+ 0x18, 0x7e, 0x3d, 0x69, 0x43, 0x20, 0xce, 0x34, 0x58, 0xfa, 0x0f, 0xe9, 0x3a, 0x5a, 0xeb, 0xd9,
+ 0x19, 0xea, 0xb9, 0xb4, 0x53, 0x9d, 0xe9, 0x69, 0xe0, 0x80, 0x47, 0x85, 0x48, 0x2c, 0x49, 0xb7,
+ 0x1a, 0x95, 0xf6, 0x10, 0x63, 0x99, 0x80, 0x8e, 0xeb, 0x0e, 0x9f, 0x31, 0xde, 0xb6, 0x6c, 0x05,
+ 0x1b, 0x01, 0x72, 0xcd, 0x73, 0x24, 0xa7, 0xd3, 0x53, 0x74, 0xd7, 0x5d, 0xac, 0xc0, 0xce, 0x6b,
+ 0x1c, 0x6b, 0x68, 0x9b, 0x03, 0x91, 0x52, 0x83, 0xfd, 0xd1, 0xec, 0x9a, 0x31, 0x41, 0x26, 0xa2,
+ 0x1d, 0xff, 0xec, 0x46, 0x13, 0x2c, 0x75, 0xde, 0x45, 0xab, 0xa4, 0xf6, 0x43, 0x37, 0x84, 0xcc,
+ 0x1e, 0x80, 0xa3, 0xe2, 0x23, 0x28, 0x1c, 0x39, 0x4e, 0x25, 0x7c, 0x42, 0xd5, 0xad, 0xa1, 0x7e,
+ 0x1f, 0x14, 0x27, 0x3f, 0x33, 0x95, 0x3b, 0x64, 0xf6, 0x5f, 0x34, 0x2e, 0xa7, 0xdb, 0x03, 0x10,
+ 0x20, 0xa8, 0xed, 0x9c, 0x45, 0xc1, 0x6a, 0xf1, 0x61, 0x9b, 0x14, 0x1e, 0x58, 0xd8, 0xa7, 0x5e,
+ 0x21, 0x3c, 0x69, 0x41, 0x55, 0x7c, 0x4d, 0xac, 0xd9, 0xe1, 0x5c, 0x72, 0x2a, 0xae, 0x05, 0x30,
+ 0x22, 0x43, 0x26, 0xe5, 0x65, 0x78, 0x24, 0x4b, 0xd2, 0x6f, 0x84, 0xc6, 0xbc, 0x34, 0x20, 0x82,
+ 0x23, 0xd7, 0xa2, 0x38, 0x75, 0xc5, 0x03, 0x16, 0x6a, 0x15, 0xcc, 0xaa, 0xce, 0x42, 0x82, 0xec,
+ 0x24, 0xbd, 0xb8, 0x6e, 0x05, 0x70, 0xf6, 0x46, 0xc4, 0xb0, 0xf7, 0x6d, 0x53, 0xc3, 0x6a, 0x25,
+ 0x25, 0x29, 0x3c, 0xb3, 0x15, 0xcd, 0xd1, 0x1b, 0x7c, 0xca, 0xbf, 0x01, 0x21, 0xb5, 0xc8, 0x4b,
+ 0x26, 0x56, 0x73, 0x17, 0x25, 0xc9, 0xb8, 0xfc, 0x77, 0x44, 0x67, 0xb5, 0xb7, 0x2f, 0xed, 0xf9,
+ 0x27, 0xc2, 0xf7, 0xca, 0x35, 0x74, 0x9f, 0xa1, 0xcf, 0x3e, 0x2f, 0xd9, 0xc5, 0x59, 0x4f, 0x97,
+ 0x28, 0x82, 0x47, 0xbb, 0xc5, 0x60, 0x91, 0x5c, 0xe8, 0xcd, 0x11, 0xf8, 0x4e, 0xee, 0xfe, 0xa8,
+ 0x29, 0x16, 0xc3, 0x66, 0xd5, 0xdd, 0xb6, 0x01, 0x50, 0xb7, 0x59, 0x94, 0x3c, 0x98, 0x5c, 0xc6,
+ 0x2a, 0x69, 0x8c, 0xc2, 0xe5, 0xd9, 0xdf, 0xe6, 0x5b, 0x39, 0x81, 0x20, 0xaa, 0x02, 0x79, 0x74,
+ 0x2b, 0xfd, 0x08, 0x1f, 0xf5, 0x64, 0xf8, 0xbb, 0xe3, 0x43, 0xc9, 0x4c, 0xd8, 0x74, 0xdb, 0x1a,
+ 0x2c, 0x97, 0x12, 0x49, 0x85, 0xd1, 0x0d, 0xeb, 0x4d, 0xe6, 0xf2, 0x8b, 0x45, 0xf5, 0x33, 0xd3,
+ 0x2d, 0x03, 0x96, 0x94, 0x95, 0x6c, 0x2a, 0xb6, 0xf5, 0x9c, 0xba, 0xe7, 0x37, 0x83, 0x91, 0xbd,
+ 0x2e, 0x7c, 0xd9, 0x30, 0xa5, 0x68, 0x43, 0x51, 0xfe, 0x12, 0x62, 0x53, 0xa1, 0x19, 0xb4, 0x0f,
+ 0x2f, 0xe8, 0x5d, 0xed, 0xb5, 0xd5, 0x64, 0x0c, 0x46, 0x68, 0x2a, 0x3f, 0xd3, 0x6f, 0x16, 0x61,
+ 0x30, 0xfc, 0x7a, 0xd2, 0x86, 0x40, 0x5f, 0x68, 0xb0, 0x37, 0x1e, 0x11, 0x74, 0xb4, 0x15, 0x71,
+ 0x31, 0x68, 0xfe, 0x0f, 0x96, 0xfd, 0x78, 0x35, 0x08, 0x4d, 0x56, 0x7d, 0x06, 0xc2, 0xb7, 0x1f,
+ 0x32, 0x17, 0xb1, 0xab, 0xa6, 0xf9, 0x11, 0xd2, 0x03, 0xc3, 0x8e, 0xc9, 0x90, 0x58, 0x92, 0xad,
+ 0x33, 0x83, 0x35, 0x76, 0xb6, 0x44, 0x36, 0x8f, 0xbb, 0xb9, 0xc6, 0xa5, 0xe2, 0x2e, 0x30, 0xc3,
+ 0x34, 0xe9, 0x2f, 0x20, 0xc6, 0xf1, 0xc3, 0xdf, 0x15, 0x1c, 0xfd, 0x62, 0x7f, 0xaf, 0xd8, 0x0a,
+ 0x35, 0x7d, 0xab, 0xfd, 0xd6, 0x4c, 0xe4, 0x82, 0xad, 0x66, 0xb5, 0x0e, 0x0d, 0xd9, 0x7a, 0x64,
+ 0x36, 0x02, 0xe4, 0x59, 0xe6, 0x48, 0x8d, 0x65, 0xa6, 0xe8, 0x6d, 0xba, 0x9b, 0x43, 0x5f, 0xd6,
+ 0x37, 0x96, 0x60, 0x84, 0xf6, 0xf5, 0xaa, 0x38, 0x1e, 0x92, 0x25, 0xd6, 0xe9, 0x35, 0xfd, 0xb8,
+ 0x38, 0xd6, 0xd0, 0xf5, 0x06, 0xe1, 0xa4, 0xc5, 0x39, 0x61, 0x1b, 0xf7, 0x62, 0x82, 0x4c, 0x87,
+ 0x39, 0x42, 0x54, 0x28, 0x16, 0x5c, 0x83, 0x98, 0x81, 0x1b, 0x53, 0x9b, 0x10, 0xf4, 0xee, 0xe9,
+ 0x3a, 0x3d, 0x1b, 0x8c, 0x26, 0x58, 0xea, 0x7f, 0x8a, 0x95, 0x8b, 0x2f, 0x86, 0x6e, 0xcb, 0x5b,
+ 0x3b, 0xa9, 0x9f, 0x51, 0x36, 0xe5, 0xcd, 0x22, 0x32, 0xef, 0xc3, 0x43, 0xf4, 0x18, 0x69, 0x35,
+ 0x3c, 0xc3, 0x85, 0x07, 0x46, 0x50, 0x38, 0x72, 0x9c, 0x4a, 0xf8, 0x84, 0x69, 0x99, 0x81, 0xfc,
+ 0x3d, 0x57, 0x01, 0xda, 0x56, 0xed, 0x1f, 0x2f, 0x24, 0x30, 0xb0, 0xe8, 0x1b, 0xef, 0x23, 0x92,
+ 0x3e, 0x28, 0x4e, 0x7e, 0x66, 0xe9, 0x76, 0xc8, 0x2f, 0xbe, 0x68, 0x5c, 0x8d, 0x75, 0x06, 0x20,
+ 0x3f, 0xbc, 0xca, 0xa3, 0x76, 0x54, 0x51, 0x95, 0x97, 0xc4, 0x20, 0x30, 0xff, 0x03, 0xa4, 0x4e,
+ 0x40, 0x93, 0x19, 0xfb, 0x8a, 0x41, 0xd4, 0x21, 0xc2, 0xf5, 0x28, 0x3c, 0xb0, 0x73, 0x8d, 0xbc,
+ 0x41, 0x07, 0x9d, 0x26, 0x9a, 0xfc, 0xf3, 0x7c, 0x7a, 0x8f, 0x60, 0x50, 0xc2, 0x05, 0x2f, 0xd2,
+ 0x42, 0x78, 0xd2, 0x82, 0xaa, 0xf8, 0x9a, 0x9b, 0x71, 0x01, 0xb8, 0xe4, 0x54, 0x9f, 0x0a, 0x60,
+ 0x43, 0xec, 0x56, 0x5f, 0xba, 0x45, 0xbd, 0xc6, 0xc9, 0x7b, 0xf0, 0x88, 0x26, 0xe9, 0xa8, 0x0e,
+ 0x44, 0x86, 0x4c, 0x09, 0xca, 0xf0, 0x48, 0x96, 0x67, 0xde, 0xcb, 0x4f, 0xbb, 0x68, 0x40, 0xc7,
+ 0x45, 0x12, 0xc8, 0xd4, 0xda, 0x4d, 0x6f, 0xcb, 0xdf, 0xa4, 0x83, 0x23, 0xc9, 0x1e, 0xe2, 0xa9,
+ 0x46, 0x6d, 0x87, 0x70, 0xea, 0x49, 0x06, 0x2c, 0xd4, 0x2a, 0x5b, 0x97, 0x5f, 0x84, 0xc7, 0x1b,
+ 0x47, 0xf9, 0x03, 0xad, 0xfa, 0xf4, 0x21, 0x71, 0x6c, 0x50, 0x13, 0xfb, 0x2d, 0xf2, 0x65, 0x75,
+ 0x48, 0xb9, 0xb3, 0xdc, 0x0a, 0xe0, 0x2f, 0x8c, 0x4b, 0xa3, 0x2d, 0xda, 0xa6, 0x45, 0xd4, 0x4a,
+ 0x49, 0x2d, 0x37, 0x01, 0x1a, 0x5d, 0x08, 0xd1, 0xf3, 0xd9, 0x65, 0xb6, 0xd4, 0x33, 0x76, 0x24,
+ 0x4a, 0x52, 0x78, 0xa5, 0x2a, 0x59, 0x61, 0x36, 0xf8, 0x57, 0xbd, 0x02, 0x42, 0xa9, 0x53, 0x96,
+ 0x4b, 0xc6, 0xfc, 0x78, 0x3a, 0xe4, 0x46, 0x6b, 0x40, 0x2d, 0xf5, 0x6e, 0x30, 0xdf, 0xf1, 0xf8,
+ 0x4c, 0xac, 0xe6, 0x2e, 0x4a, 0x51, 0xb3, 0x3b, 0xee, 0x88, 0xce, 0xa9, 0xad, 0x5e, 0x19, 0x31,
+ 0x4d, 0x38, 0x62, 0xf3, 0x5a, 0xec, 0x94, 0x66, 0x56, 0xf2, 0x86, 0xc5, 0xdf, 0x28, 0xbb, 0x5f,
+ 0x4e, 0x47, 0x2d, 0x57, 0x6a, 0xe8, 0xfd, 0x81, 0x5d, 0x7c, 0x5e, 0x71, 0x49, 0xb2, 0x9e, 0xed,
+ 0x4f, 0xd3, 0xa9, 0x8a, 0x7a, 0x55, 0xda, 0xdc, 0xe5, 0x06, 0x16, 0x1d, 0x3b, 0xc4, 0x3c, 0x83,
+ 0x50, 0xc7, 0x8e, 0xb5, 0x49, 0xc0, 0xe1, 0xb8, 0x13, 0x59, 0x22, 0x33, 0x9c, 0x1f, 0x3f, 0x93,
+ 0x51, 0x53, 0x0a, 0x68, 0x59, 0x7d, 0xc6, 0xe5, 0xab, 0x23, 0x6a, 0x5f, 0xee, 0x69, 0x9d, 0xfd,
+ 0x52, 0x2c, 0x45, 0xcc, 0x69, 0x79, 0xaf, 0x02, 0xa0, 0xad, 0xb2, 0xeb, 0x78, 0xf3, 0xb8, 0x4f,
+ 0x53, 0xb8, 0xc1, 0x11, 0x79, 0xc4, 0x88, 0x5f, 0x18, 0xd7, 0xfa, 0x87, 0x0a, 0x85, 0x1a, 0x21,
+ 0x54, 0xd2, 0xdb, 0x47, 0x09, 0x71, 0x7d, 0x0f, 0xb6, 0x72, 0xc1, 0x40, 0x97, 0x04, 0xf2, 0xe8,
+ 0x55, 0x46, 0x5f, 0x9a, 0x19, 0xcc, 0x5a, 0x52, 0x0e, 0x08, 0x89, 0x2c, 0xe5, 0x72, 0x50, 0x86,
+ 0x56, 0x39, 0x10, 0x3e, 0x29, 0xc8, 0x33, 0xb5, 0x05, 0x86, 0x51, 0x98, 0x73, 0xe8, 0x75, 0x34,
+ 0x57, 0xad, 0x94, 0xe3, 0x39, 0x75, 0x14, 0xe8, 0xbd, 0xfc, 0x19, 0xf4, 0x01, 0x9e, 0xd7, 0x5a,
+ 0x58, 0xed, 0x24, 0x92, 0xc9, 0x61, 0x1a, 0x15, 0x9a, 0x0f, 0x27, 0xd5, 0x8a, 0x29, 0x66, 0x65,
+ 0x59, 0x79, 0xa0, 0x4f, 0xd9, 0xdc, 0x3d, 0x48, 0x22, 0x75, 0x6f, 0xb9, 0xf8, 0x5f, 0xc4, 0x0b,
+ 0x5a, 0x06, 0xef, 0xeb, 0xe9, 0xd8, 0x54, 0xaf, 0x29, 0xfb, 0xb7, 0x0d, 0x6e, 0xc5, 0xe1, 0xb9,
+ 0x5b, 0x92, 0x6b, 0x36, 0xf9, 0x65, 0x73, 0xf2, 0x91, 0x81, 0xff, 0x61, 0x1c, 0xb3, 0x43, 0xd7,
+ 0x5c, 0xf8, 0x71, 0x60, 0x89, 0xd0, 0x86, 0xa2, 0x3f, 0x24, 0xc4, 0xa6, 0x81, 0x32, 0xab, 0x1e,
+ 0x5d, 0x6c, 0xf5, 0xbd, 0x99, 0x6d, 0xa1, 0xff, 0x87, 0x5e, 0x8c, 0xca, 0xf3, 0x44, 0x09, 0x70,
+ 0x5e, 0x13, 0xba, 0x19, 0xa9, 0x69, 0xc8, 0x18, 0x8c, 0xd0, 0x54, 0x7e, 0x65, 0xde, 0x2c, 0xc2,
+ 0x5f, 0x87, 0x3e, 0xc4, 0xb9, 0xd4, 0xef, 0x45, 0x34, 0xaa, 0x1c, 0x12, 0x17, 0xa8, 0x8e, 0xac,
+ 0x60, 0x3b, 0xf4, 0x67, 0xcf, 0x80, 0xbe, 0xd0, 0xa3, 0x6e, 0x3c, 0x22, 0xe8, 0xab, 0x2a, 0xe2,
+ 0x61, 0xaf, 0x70, 0xba, 0xdf, 0x3d, 0x99, 0x8d, 0x1b, 0x14, 0x74, 0x4e, 0x9a, 0xdd, 0x88, 0x8c,
+ 0x62, 0xd0, 0x3f, 0x1e, 0xef, 0x39, 0xf0, 0x6a, 0x10, 0x9a, 0xac, 0xfa, 0x0c, 0x47, 0xad, 0x3e,
+ 0x63, 0x44, 0xbb, 0xc3, 0xff, 0x84, 0xd7, 0x37, 0xa8, 0xe0, 0xe4, 0x96, 0x7e, 0x31, 0x0f, 0x50,
+ 0x64, 0x2e, 0xa1, 0x95, 0x8f, 0x31, 0x22, 0x67, 0x06, 0x45, 0xdf, 0x51, 0xe3, 0xb0, 0xe7, 0x99,
+ 0x65, 0xba, 0x25, 0x48, 0x9f, 0x8c, 0x05, 0x3a, 0xbe, 0x3f, 0x97, 0x3d, 0x91, 0xc6, 0x45, 0xf7,
+ 0x66, 0xc5, 0x6a, 0xec, 0xaf, 0x88, 0x6c, 0xdd, 0xb5, 0xb1, 0x4f, 0x89, 0x07, 0x5c, 0x60, 0x45,
+ 0x67, 0x51, 0xee, 0x31, 0xbf, 0x35, 0x4b, 0x80, 0x0d, 0xcb, 0x07, 0xe5, 0x75, 0x2a, 0xc2, 0x2b,
+ 0x68, 0x11, 0x5e, 0x40, 0x4f, 0x21, 0x45, 0x7d, 0x2a, 0x38, 0x39, 0xc4, 0xfe, 0x9d, 0x73, 0x14,
+ 0x69, 0x85, 0xda, 0x9d, 0x5f, 0x9c, 0x62, 0x20, 0x92, 0x42, 0x71, 0xa8, 0x8c, 0xeb, 0xd1, 0x7a,
+ 0x6a, 0xfa, 0x95, 0x39, 0x6f, 0x98, 0x0b, 0xc7, 0x99, 0xcc, 0xa9, 0x1c, 0x1a, 0x71, 0xf4, 0xc8,
+ 0x6b, 0x6e, 0x11, 0xe4, 0x7f, 0x25, 0x2c, 0x9a, 0x21, 0xb6, 0xe1, 0x70, 0x68, 0x07, 0x56, 0xa6,
+ 0x6c, 0x04, 0x0b, 0xb2, 0x0f, 0x90, 0xd9, 0xca, 0x8f, 0x13, 0xda, 0xb7, 0xf5, 0x86, 0xbe, 0x6f,
+ 0x6d, 0x90, 0x8f, 0x6f, 0x1f, 0x2d, 0xfe, 0x97, 0x37, 0x69, 0x92, 0xdb, 0x87, 0xf0, 0x1c, 0x01,
+ 0x6e, 0xef, 0xc0, 0xcb, 0x2f, 0x29, 0x97, 0x70, 0x3c, 0xe7, 0x4a, 0x6f, 0x11, 0x6a, 0x39, 0xb3,
+ 0x6f, 0x7b, 0x44, 0x16, 0x3f, 0x94, 0xb0, 0x2d, 0x84, 0x9d, 0x02, 0x03, 0x63, 0x1c, 0x9b, 0xdd,
+ 0x70, 0x6f, 0x63, 0x29, 0x0c, 0x01, 0x8b, 0x49, 0x72, 0xc2, 0x36, 0x2d, 0xc4, 0xc7, 0x98, 0xcd,
+ 0x71, 0xfb, 0xe7, 0xf4, 0x1c, 0xbc, 0xac, 0x14, 0xca, 0xb8, 0x7e, 0x41, 0xb6, 0xb1, 0x3a, 0xa3,
+ 0x72, 0x84, 0xa8, 0x50, 0x2c, 0xb8, 0xc5, 0xf3, 0xc1, 0x36, 0xa6, 0xf5, 0x20, 0x2b, 0x1f, 0x11,
+ 0x73, 0x10, 0x2c, 0x8d, 0x3c, 0x05, 0xe2, 0xae, 0x79, 0x4c, 0xee, 0x99, 0x52, 0x5d, 0xbd, 0x7f,
+ 0x74, 0x7a, 0x36, 0xdb, 0x4c, 0xb0, 0x17, 0xfe, 0xd7, 0xe9, 0xd5, 0x5e, 0xcf, 0xdc, 0x55, 0xb6,
+ 0x75, 0xee, 0xb2, 0x06, 0x5c, 0x0d, 0x30, 0xa3, 0x6f, 0x93, 0x9d, 0x32, 0xbd, 0xaa, 0xf7, 0xd8,
+ 0x76, 0x91, 0xfd, 0xa2, 0x6c, 0x09, 0x59, 0x44, 0x64, 0x1d, 0x45, 0x86, 0x2b, 0x30, 0xd2, 0x6a,
+ 0x77, 0x05, 0x79, 0x7f, 0x7c, 0xb4, 0x7e, 0x19, 0xdc, 0x67, 0x0d, 0xea, 0x59, 0x46, 0x70, 0x04,
+ 0x78, 0x45, 0xc9, 0x0e, 0x8c, 0xa0, 0x70, 0xe4, 0xfb, 0x94, 0x33, 0xcb, 0xd2, 0xf1, 0xc1, 0x3b,
+ 0x79, 0xd1, 0x4d, 0xd3, 0x9c, 0x1d, 0x57, 0xb9, 0x43, 0xee, 0x7b, 0xa7, 0xa0, 0x87, 0x63, 0x55,
+ 0x7a, 0xae, 0x02, 0x77, 0xac, 0x19, 0x3e, 0x5e, 0x48, 0x60, 0xa3, 0x13, 0x36, 0x1d, 0x46, 0xe7,
+ 0x7b, 0x3a, 0x86, 0xaa, 0xbc, 0xa4, 0x19, 0x03, 0xf0, 0x1a, 0xeb, 0x7f, 0x44, 0x6b, 0xe4, 0x89,
+ 0x7c, 0x50, 0x9c, 0xfc, 0xcc, 0x11, 0xec, 0x53, 0x5e, 0xbf, 0xd0, 0xb8, 0xd9, 0xea, 0x0c, 0x40,
+ 0x7d, 0xc4, 0x18, 0x21, 0xdc, 0xac, 0xcb, 0x0e, 0xe6, 0xc5, 0x98, 0xd4, 0xab, 0x9c, 0xae, 0x2e,
+ 0x7e, 0xbb, 0x57, 0x85, 0xec, 0xa8, 0xa2, 0xe9, 0xed, 0x4b, 0x40, 0x60, 0x3d, 0x06, 0x8b, 0x9c,
+ 0x7f, 0x2f, 0xd3, 0x58, 0xfc, 0x15, 0x85, 0xb4, 0x55, 0x31, 0x08, 0x0c, 0x4f, 0x70, 0x29, 0xf2,
+ 0x80, 0xe5, 0x32, 0x35, 0xd7, 0x82, 0x6b, 0x42, 0x47, 0x29, 0x50, 0x78, 0xa3, 0xe6, 0xd9, 0xbb,
+ 0x81, 0x71, 0xb6, 0xe8, 0xc7, 0x3f, 0x4c, 0x1f, 0xff, 0x53, 0x18, 0x14, 0xd1, 0x90, 0x7b, 0xd5,
+ 0x82, 0x0e, 0xf9, 0x4c, 0xf7, 0x3b, 0x25, 0xf8, 0xf4, 0xdd, 0xc0, 0xa0, 0x47, 0x0a, 0x5e, 0x67,
+ 0x83, 0x9a, 0x7d, 0x91, 0xe7, 0x86, 0x02, 0xa5, 0x4c, 0xa7, 0x88, 0xcc, 0x35, 0x7c, 0xfc, 0x09,
+ 0x84, 0xf0, 0x67, 0xc7, 0x97, 0x33, 0xf7, 0xf5, 0xe2, 0x02, 0xb3, 0x0b, 0xa8, 0xfd, 0x14, 0xc0,
+ 0x85, 0x64, 0xe3, 0x1a, 0x87, 0x8e, 0xd0, 0xa8, 0x5a, 0x78, 0xfb, 0x67, 0xda, 0x8b, 0xb6, 0xae,
+ 0x86, 0x1b, 0xac, 0xbe, 0xb7, 0x8a, 0xb9, 0x4f, 0x51, 0xf6, 0x23, 0xd3, 0x4c, 0x11, 0x93, 0x1c,
+ 0x87, 0x8f, 0x28, 0x63, 0xa7, 0x37, 0x9e, 0x12, 0xe9, 0x8c, 0x6b, 0xbf, 0x3e, 0x67, 0x31, 0x72,
+ 0x88, 0xcf, 0x98, 0x12, 0x57, 0x23, 0x90, 0xef, 0xce, 0x7f, 0x55, 0x9e, 0xb5, 0xd0, 0x80, 0x4d,
+ 0x89, 0x5b, 0x1c, 0xcf, 0x47, 0x9e, 0xb7, 0xb2, 0x76, 0x05, 0x1d, 0xf2, 0xc7, 0xa6, 0x22, 0x23,
+ 0x8a, 0x24, 0x53, 0x6b, 0x77, 0x9a, 0xde, 0x55, 0x7d, 0x8b, 0xc5, 0x46, 0x51, 0x3c, 0x07, 0x91,
+ 0x8b, 0xb0, 0xd7, 0xb6, 0x67, 0x27, 0xf9, 0x08, 0xc5, 0xf1, 0x8d, 0x2a, 0x23, 0x4a, 0xa5, 0xff,
+ 0x8c, 0xda, 0xcd, 0xe0, 0x17, 0x92, 0x0c, 0x58, 0x6b, 0x54, 0xb6, 0xed, 0xbe, 0xcb, 0x4d, 0x36,
+ 0x8d, 0x4e, 0x49, 0x3d, 0x07, 0x2f, 0x2b, 0x05, 0xd3, 0x2e, 0xfe, 0x81, 0xcc, 0xbd, 0xef, 0x58,
+ 0x8e, 0x31, 0x06, 0x99, 0x37, 0x2b, 0x42, 0xe2, 0xd8, 0xa0, 0x26, 0x35, 0x5a, 0x27, 0xca, 0xea,
+ 0x8f, 0xa5, 0x82, 0x44, 0x27, 0x96, 0x65, 0xbf, 0x60, 0xda, 0x6e, 0x59, 0x28, 0x51, 0x68, 0x84,
+ 0x90, 0xb1, 0xa5, 0x7b, 0x14, 0x03, 0x5e, 0xdb, 0x96, 0x85, 0x5a, 0x77, 0x8f, 0x8a, 0x6b, 0x94,
+ 0x91, 0x25, 0x21, 0xa6, 0x04, 0xbe, 0x79, 0x86, 0x2e, 0xff, 0x12, 0x1b, 0xfd, 0xfc, 0xc9, 0xfa,
+ 0x92, 0x5a, 0x6e, 0x02, 0x34, 0xba, 0x10, 0x61, 0x25, 0x71, 0xca, 0xaf, 0x6b, 0x66, 0xec, 0x48,
+ 0x93, 0xce, 0xea, 0xdf, 0x24, 0x07, 0x37, 0x3c, 0x9d, 0x0b, 0x82, 0xc3, 0x19, 0x10, 0x4e, 0x26,
+ 0x94, 0xa4, 0xf0, 0x89, 0x54, 0xb2, 0xc2, 0x6c, 0x33, 0xae, 0xb9, 0x04, 0x84, 0x91, 0xa6, 0xef,
+ 0x95, 0x30, 0x74, 0x54, 0x44, 0x0f, 0xe5, 0x31, 0x8b, 0xd4, 0xf1, 0x68, 0xf6, 0xe7, 0x04, 0x81,
+ 0x96, 0x4f, 0x3b, 0xf0, 0x74, 0x0b, 0x8c, 0xd6, 0x80, 0x5a, 0x29, 0xdc, 0x60, 0x7d, 0x21, 0x33,
+ 0x97, 0xdb, 0xbf, 0x2d, 0x64, 0xb6, 0xab, 0x8b, 0x38, 0x20, 0x61, 0xb0, 0x12, 0x0b, 0x83, 0x5d,
+ 0x98, 0x9b, 0x0f, 0x5c, 0x94, 0xa2, 0xa5, 0x76, 0x1f, 0xd3, 0x5f, 0x91, 0x99, 0xbc, 0x32, 0x62,
+ 0x99, 0x0f, 0x8b, 0x81, 0x84, 0x1f, 0x82, 0x2b, 0xa7, 0xa9, 0x17, 0xfd, 0xeb, 0xca, 0x90, 0x0c,
+ 0x9a, 0x70, 0xc4, 0x25, 0xb4, 0x1b, 0xeb, 0xcc, 0xac, 0x27, 0xcf, 0x49, 0x7d, 0x50, 0xb5, 0xbe,
+ 0x9b, 0xe4, 0x40, 0xf8, 0xa4, 0xa6, 0xcc, 0x91, 0x14, 0x5d, 0x87, 0x25, 0x0f, 0x26, 0x17, 0xd0,
+ 0x9c, 0x8e, 0x5a, 0xae, 0xd4, 0x13, 0x39, 0xc1, 0xba, 0xf8, 0xbc, 0xe2, 0x92, 0xa7, 0xff, 0x19,
+ 0x9d, 0x1a, 0xde, 0x73, 0xc4, 0xae, 0x1e, 0x9c, 0x02, 0x82, 0xf4, 0x8e, 0xe0, 0xd1, 0x5d, 0x77,
+ 0x9e, 0x65, 0x91, 0xd7, 0xf4, 0xaa, 0x77, 0x7b, 0x09, 0x0c, 0x2c, 0x3a, 0x76, 0x4b, 0x78, 0xc5,
+ 0x9f, 0xf1, 0x15, 0x0a, 0xe4, 0x17, 0x50, 0x26, 0xb1, 0x76, 0x64, 0x56, 0x04, 0x3d, 0xda, 0xab,
+ 0xa0, 0x4d, 0xdf, 0xa9, 0x92, 0x43, 0x01, 0xb3, 0x26, 0xb2, 0x44, 0x66, 0xfb, 0x3e, 0x7e, 0xe5,
+ 0xa1, 0xd9, 0x5b, 0x74, 0x82, 0xfe, 0x26, 0xee, 0x9e, 0xc8, 0x0c, 0x0a, 0x89, 0x48, 0xdc, 0x8b,
+ 0xa2, 0xa6, 0x14, 0xd0, 0xb2, 0xfa, 0x4f, 0x09, 0x95, 0x46, 0xd4, 0xbe, 0x1f, 0xd2, 0xf9, 0x39,
+ 0xa3, 0x32, 0x90, 0x0d, 0xa2, 0x47, 0x68, 0x54, 0x2d, 0x3c, 0x9c, 0xd2, 0x6d, 0xa4, 0x5b, 0x57,
+ 0xa4, 0x58, 0x8a, 0x5b, 0xd2, 0xf2, 0x9d, 0x04, 0x83, 0x99, 0xa7, 0x15, 0xf0, 0x25, 0xb3, 0x9e,
+ 0xa5, 0xcc, 0x0e, 0x86, 0xc2, 0x4f, 0xba, 0x59, 0x3b, 0xe3, 0xef, 0x79, 0x82, 0x53, 0x11, 0xf0,
+ 0xa6, 0xb3, 0x41, 0x22, 0xf2, 0x4b, 0xd3, 0xbe, 0x30, 0x6d, 0x37, 0xcd, 0x14, 0xc9, 0x34, 0x42,
+ 0xa7, 0x27, 0xc5, 0xff, 0xe2, 0xf6, 0xf4, 0xe3, 0x88, 0x17, 0x7f, 0xa1, 0x66, 0xbf, 0x96, 0x2c,
+ 0xa8, 0x67, 0x75, 0x8e, 0x12, 0xe2, 0xfa, 0x1e, 0xaf, 0xe4, 0x41, 0x80, 0xed, 0x08, 0x27, 0x13,
+ 0xa9, 0xf3, 0xf1, 0x53, 0x02, 0x5f, 0xdd, 0x43, 0x17, 0x9e, 0x09, 0xec, 0x9f, 0x7e, 0x85, 0x7d,
+ 0xaa, 0x8c, 0xbe, 0xf7, 0x32, 0x5b, 0xb4, 0xa4, 0x1c, 0x10, 0xd1, 0x58, 0x09, 0xe4, 0xa0, 0xcf,
+ 0xab, 0x18, 0x3a, 0x2a, 0x22, 0xe6, 0x93, 0xf9, 0xa4, 0x6a, 0x99, 0x34, 0x7b, 0x92, 0x02, 0xa1,
+ 0xac, 0x72, 0x20, 0x7c, 0x52, 0x53, 0x66, 0xa9, 0x0a, 0xcf, 0xa2, 0xf3, 0xe6, 0x13, 0xea, 0x68,
+ 0xad, 0xe6, 0xa4, 0xa1, 0x42, 0xee, 0x41, 0xf4, 0xb2, 0xb5, 0xea, 0x9f, 0x94, 0x65, 0x48, 0x06,
+ 0xae, 0x99, 0xeb, 0x05, 0x72, 0xea, 0x28, 0x13, 0xb9, 0x3b, 0x32, 0x2b, 0x02, 0xff, 0x6d, 0xb4,
+ 0xaf, 0x0d, 0x6f, 0xd8, 0x62, 0x57, 0x0f, 0x4e, 0x01, 0x41, 0x7a, 0x47, 0x70, 0x89, 0xcf, 0xda,
+ 0xb0, 0x19, 0x48, 0xe7, 0x51, 0xc2, 0x34, 0x2a, 0xf7, 0x1e, 0x4e, 0x69, 0xd7, 0x52, 0xcc, 0xca,
+ 0xb1, 0x8d, 0xcc, 0x3a, 0x41, 0x7f, 0x13, 0x77, 0x4f, 0x64, 0x06, 0x05, 0xa5, 0x24, 0x6e, 0xa4,
+ 0xb2, 0xf2, 0x83, 0x9e, 0x71, 0x7b, 0x7a, 0x90, 0x44, 0xea, 0xde, 0xb1, 0x33, 0xbe, 0x4b, 0x16,
+ 0xb3, 0x66, 0x07, 0x43, 0x61, 0xc6, 0x5d, 0xcd, 0xfc, 0x90, 0x96, 0xdd, 0x41, 0xc8, 0xe9, 0x78,
+ 0xb4, 0x0c, 0x1d, 0x15, 0x11, 0x73, 0xa8, 0x9d, 0x52, 0x35, 0xad, 0x1a, 0xdc, 0x49, 0x01, 0xb1,
+ 0xb5, 0x98, 0x99, 0xc8, 0x01, 0xce, 0x8f, 0xc0, 0xea, 0x4f, 0xe5, 0x76, 0xae, 0x3f, 0xa3, 0xdf,
+ 0xb6, 0xe7, 0xd6, 0x6c, 0x31, 0xca, 0xe6, 0x27, 0xe1, 0xc1, 0x3d, 0xc2, 0x38, 0xa5, 0x86, 0x6d,
+ 0xb7, 0x73, 0x52, 0xb1, 0x21, 0x77, 0xc1, 0x7a, 0x59, 0xbb, 0x75, 0xae, 0x4a, 0xd3, 0x24, 0x03,
+ 0xb8, 0x33, 0xe2, 0xc0, 0xd1, 0x63, 0xcf, 0x87, 0x7e, 0x48, 0x4b, 0x8f, 0xc1, 0x64, 0x95, 0x3c,
+ 0xb9, 0xa7, 0x66, 0x1d, 0xc1, 0xde, 0xe8, 0xda, 0xc6, 0x32, 0x03, 0xe3, 0xb3, 0x12, 0x37, 0x52,
+ 0xba, 0xd8, 0x29, 0xb9, 0xf1, 0xda, 0x81, 0x3d, 0xcd, 0xbc, 0xdb, 0x57, 0x25, 0x88, 0x12, 0xe0,
+ 0xbb, 0x4c, 0xad, 0x64, 0xe1, 0x67, 0xa6, 0x60, 0x75, 0xc6, 0x93, 0x3b, 0x57, 0xfe, 0xb0, 0x8e,
+ 0xbc, 0x26, 0xb7, 0x32, 0x91, 0xd2, 0x53, 0x30, 0xdb, 0x63, 0xa8, 0xfc, 0xca, 0x7f, 0x58, 0x47,
+ 0xbd, 0xb2, 0x33, 0xef, 0x81, 0x6f, 0x74, 0x6d, 0x63, 0x19, 0xe0, 0x90, 0xb8, 0x09, 0xfa, 0x29,
+ 0xbe, 0xcd, 0x7c, 0x4b, 0xb1, 0x6b, 0x1d, 0x8a, 0x68, 0x97, 0x38, 0x24, 0x2e, 0x93, 0xdf, 0x9b,
+ 0xbf, 0x59, 0xf8, 0x96, 0xa1, 0xd6, 0x3a, 0xd7, 0xd0, 0xed, 0x70, 0x48, 0x5c, 0xe5, 0x7d, 0xf5,
+ 0xc0, 0x76, 0x2b, 0xce, 0x5d, 0xc3, 0xbf, 0x63, 0x85, 0xdc, 0x78, 0x44, 0x13, 0x95, 0x54, 0x07,
+ 0xc1, 0xe2, 0xaf, 0x13, 0x4d, 0x7e, 0x98, 0x3e, 0x3d, 0xa6, 0x30, 0x28, 0x61, 0xe3, 0xf6, 0x69,
+ 0xc2, 0x9d, 0xe0, 0xb7, 0x7d, 0x7a, 0xf1, 0xd9, 0x36, 0x28, 0xe8, 0x9c, 0xf7, 0x79, 0xd3, 0xdb,
+ 0xc3, 0x09, 0x64, 0x6a, 0x6d, 0xc7, 0xd6, 0x84, 0x8e, 0x52, 0xa0, 0xf0, 0x85, 0x0f, 0x71, 0xb5,
+ 0xc4, 0x63, 0x7e, 0x3c, 0x1d, 0x72, 0x23, 0xd4, 0x20, 0xf7, 0x9b, 0x37, 0x18, 0x8e, 0x99, 0x7c,
+ 0xc5, 0xf7, 0xfa, 0xe1, 0x0d, 0xcf, 0x04, 0x89, 0x98, 0x8d, 0xd3, 0x5b, 0x6a, 0xf8, 0x3b, 0x12,
+ 0xc6, 0x88, 0xb5, 0x45, 0x3d, 0xcb, 0x6d, 0x6e, 0x93, 0x03, 0x0b, 0xef, 0xfc, 0x62, 0x1e, 0xa0,
+ 0xc7, 0x1c, 0x31, 0x98, 0x2d, 0x76, 0x4a, 0x33, 0x2b, 0x79, 0x43, 0x83, 0x8e, 0x14, 0xbc, 0xce,
+ 0xc8, 0x5c, 0x81, 0xe9, 0xdd, 0x62, 0x44, 0xce, 0x0c, 0x8a, 0x7d, 0xa2, 0x05, 0xa3, 0x0d, 0xf1,
+ 0xc9, 0xc8, 0x05, 0x34, 0xcd, 0xdf, 0x63, 0x93, 0xb4, 0xf0, 0x35, 0xce, 0x77, 0xd5, 0xaf, 0x9f,
+ 0xca, 0xb7, 0x4a, 0x90, 0xfd, 0xdb, 0x0a, 0x74, 0xbf, 0x7e, 0xed, 0x7a, 0xe1, 0x4f, 0x8a, 0x2d,
+ 0xcb, 0x23, 0xce, 0x4d, 0xed, 0x66, 0x2d, 0x29, 0x07, 0x04, 0xa5, 0x16, 0x93, 0x39, 0x28, 0x43,
+ 0xcc, 0x49, 0xd4, 0x1b, 0x9d, 0xd3, 0xd8, 0x79, 0xa9, 0xa1, 0x9e, 0xd1, 0x0e, 0xb8, 0xc0, 0x8a,
+ 0xcd, 0xdd, 0x50, 0xc6, 0x8d, 0x6e, 0xff, 0x24, 0x11, 0xdb, 0xd6, 0xbd, 0x7c, 0xce, 0x62, 0xe4,
+ 0xce, 0xa2, 0x1f, 0x62, 0xbd, 0x6a, 0x96, 0xc3, 0x1a, 0x55, 0x0e, 0x09, 0xea, 0x54, 0x47, 0x56,
+ 0xcf, 0x36, 0x9b, 0xbf, 0xad, 0xd7, 0xb1, 0x9e, 0xa2, 0x2f, 0x46, 0x65, 0x98, 0x22, 0xe5, 0x38,
+ 0xd0, 0x22, 0xbc, 0x80, 0x9e, 0x42, 0x8a, 0xfa, 0x54, 0x70, 0x72, 0x4b, 0x3f, 0xf9, 0xe6, 0x28,
+ 0xd1, 0xb6, 0x38, 0x5d, 0x8e, 0xff, 0xad, 0xa7, 0xec, 0x0a, 0x3a, 0x27, 0x4d, 0x8f, 0x44, 0x46,
+ 0xd2, 0xc9, 0x77, 0xf9, 0xbe, 0xfb, 0xc4, 0x40, 0xe7, 0x84, 0xe2, 0x93, 0xdb, 0x15, 0x61, 0xf4,
+ 0xd3, 0x5d, 0xf3, 0x24, 0xae, 0x46, 0xe3, 0x1d, 0x5f, 0xfe, 0xaa, 0xff, 0xa9, 0x63, 0xc3, 0x9a,
+ 0xd4, 0x37, 0xe9, 0x72, 0xde, 0xf3, 0x16, 0x4d, 0xf1, 0x5b, 0x91, 0x38, 0x34, 0xe2, 0x2b, 0x53,
+ 0xd5, 0xa3, 0x6d, 0xaf, 0xce, 0x4e, 0x31, 0x10, 0x49, 0x21, 0xd9, 0x54, 0x46, 0x94, 0x89, 0x3d,
+ 0xd6, 0xdc, 0x22, 0x0b, 0xfe, 0x4a, 0x58, 0xf7, 0x42, 0xaf, 0x01, 0xe0, 0xd0, 0x0e, 0xac, 0x8f,
+ 0xd7, 0x48, 0xa6, 0xd6, 0xee, 0xf7, 0x7f, 0xaa, 0xfa, 0xd5, 0x49, 0x8c, 0xa2, 0x78, 0x0e, 0xe1,
+ 0xd8, 0x08, 0x16, 0xa7, 0x1e, 0xe3, 0x71, 0x57, 0xdd, 0x26, 0x77, 0xad, 0x29, 0xcf, 0xbf, 0xde,
+ 0xd9, 0x9c, 0x92, 0x7a, 0x0e, 0x5e, 0x56, 0x0a, 0x65, 0x5c, 0x3f, 0xc1, 0x5b, 0xb9, 0x1d, 0xb0,
+ 0xda, 0xe3, 0xdd, 0xde, 0x3e, 0x5a, 0x3f, 0xed, 0x6e, 0xd2, 0xe7, 0x75, 0xcd, 0x23, 0x38, 0x02,
+ 0xdb, 0x77, 0x59, 0x03, 0x2e, 0xe7, 0x18, 0xb0, 0xd6, 0xa8, 0xaf, 0x19, 0xbf, 0x55, 0x9a, 0x6c,
+ 0xdc, 0x1d, 0x43, 0x55, 0x5e, 0x52, 0xed, 0xe0, 0x78, 0x0d, 0x94, 0xde, 0x22, 0xd4, 0x72, 0xa5,
+ 0xdd, 0x89, 0xc7, 0x88, 0x4e, 0xef, 0xca, 0xbd, 0xc0, 0x77, 0xdc, 0xb2, 0x50, 0xa2, 0xd0, 0xcb,
+ 0xde, 0xf6, 0x88, 0x2c, 0x7e, 0xeb, 0xa3, 0x5a, 0xcb, 0xf9, 0x04, 0x06, 0xc6, 0x38, 0xf5, 0x79,
+ 0xdf, 0x62, 0x0c, 0xf1, 0x6e, 0x56, 0x84, 0x07, 0x73, 0x83, 0x4c, 0x6a, 0xb4, 0x4e, 0x57, 0x17,
+ 0xe0, 0xde, 0xc6, 0x52, 0x18, 0x02, 0xd5, 0x92, 0xe4, 0x47, 0x6c, 0x5a, 0x4b, 0x4d, 0xf3, 0x59,
+ 0xe1, 0x4a, 0x42, 0x8f, 0x08, 0xbf, 0xf2, 0xcf, 0x5c, 0x3d, 0x24, 0x36, 0x39, 0x3b, 0x51, 0x37,
+ 0xe2, 0x35, 0x0d, 0x2b, 0x38, 0xbb, 0x9b, 0x28, 0x57, 0xb3, 0xfc, 0x82, 0xaf, 0xa1, 0x74, 0x85,
+ 0xe3, 0xa1, 0x89, 0xf6, 0x28, 0x06, 0xbc, 0x75, 0xef, 0xc9, 0xb4, 0xee, 0xdd, 0xd7, 0xd6, 0xeb,
+ 0xe4, 0xcb, 0x93, 0xa0, 0x58, 0xb3, 0x49, 0x25, 0x41, 0x6c, 0x8f, 0x29, 0x40, 0x56, 0x3e, 0x22,
+ 0xe5, 0x5f, 0x17, 0x7d, 0x48, 0x0e, 0x6e, 0x78, 0xf9, 0x16, 0xc7, 0x45, 0x32, 0x20, 0x9c, 0x4c,
+ 0xe6, 0x20, 0x58, 0xd9, 0x78, 0x0a, 0x07, 0x9f, 0xf2, 0x98, 0x1f, 0xf1, 0xa4, 0xba, 0xb9, 0xfe,
+ 0xe7, 0xb4, 0xdc, 0x04, 0x68, 0xb7, 0x20, 0xc2, 0x4a, 0xe2, 0x57, 0x9d, 0xd6, 0xcc, 0x1b, 0x90,
+ 0xe8, 0xf4, 0x6c, 0x75, 0x98, 0xa3, 0x2e, 0x3f, 0x6d, 0x11, 0x69, 0xbc, 0x5d, 0x7b, 0xaa, 0xaf,
+ 0xe9, 0x60, 0xe8, 0xa8, 0x88, 0x1e, 0x09, 0x62, 0xd5, 0x6b, 0x21, 0xd0, 0x2f, 0x0d, 0x08, 0xc1,
+ 0xea, 0x1f, 0xa7, 0x0c, 0xb8, 0x1a, 0x60, 0x85, 0xde, 0xe5, 0xf9, 0x64, 0xb9, 0x97, 0x2d, 0x73,
+ 0xeb, 0x8b, 0x23, 0xd1, 0xa8, 0xa7, 0x47, 0xd8, 0x66, 0x9f, 0xb1, 0x08, 0xcb, 0xe1, 0x8f, 0x1d,
+ 0xec, 0xe1, 0x39, 0x87, 0xd8, 0x12, 0xb2, 0x88, 0xc8, 0x3a, 0x8a, 0xcf, 0x56, 0x60, 0x67, 0xd4,
+ 0xed, 0x75, 0xbd, 0x5a, 0xc8, 0xaf, 0x95, 0xd5, 0x70, 0x40, 0xc2, 0xa3, 0x24, 0x16, 0xc5, 0xba,
+ 0xee, 0x0a, 0xf2, 0xfe, 0xf8, 0xab, 0xfc, 0x32, 0x7b, 0xce, 0x1a, 0x17, 0xb2, 0x8c, 0xe0, 0x08,
+ 0xef, 0x9e, 0x76, 0x23, 0xe8, 0x16, 0xdb, 0x6f, 0xc3, 0xb4, 0x52, 0x7b, 0xc0, 0xfa, 0x42, 0x66,
+ 0xf0, 0x8a, 0x51, 0x1c, 0xdb, 0x83, 0xe0, 0x0b, 0x35, 0xeb, 0x66, 0x55, 0x67, 0x21, 0x41, 0x76,
+ 0xf1, 0x1e, 0xd5, 0xc1, 0xcb, 0x3e, 0xc7, 0x56, 0x8d, 0x91, 0x2e, 0x39, 0x15, 0x57, 0xe3, 0x18,
+ 0xf2, 0x61, 0x9a, 0x65, 0xfb, 0x3a, 0xae, 0xb1, 0x86, 0x1f, 0xf6, 0x8d, 0x83, 0xcd, 0xc6, 0xaa,
+ 0xf3, 0xf5, 0x1e, 0xb8, 0xeb, 0x87, 0x89, 0xec, 0x3e, 0x65, 0xbe, 0xe1, 0xf1, 0xbb, 0x64, 0xc4,
+ 0xf4, 0x9f, 0x04, 0xee, 0x9b, 0x32, 0x7c, 0xbc, 0x90, 0xc0, 0x85, 0x26, 0x6c, 0x3a, 0x8c, 0x0d,
+ 0xf5, 0x0b, 0x80, 0x33, 0x8b, 0x8f, 0x5b, 0xe1, 0x28, 0xba, 0xcd, 0x4a, 0x1e, 0x4c, 0x2e, 0x63,
+ 0xf6, 0x74, 0xcf, 0x97, 0xbb, 0x8b, 0x32, 0x06, 0x23, 0x34, 0x15, 0xfe, 0x88, 0xd6, 0x0b, 0xd1,
+ 0xf7, 0xe0, 0x4b, 0x4a, 0xab, 0x36, 0x15, 0x5b, 0x9b, 0x4e, 0x5d, 0x92, 0xfa, 0xa0, 0xa9, 0xbf,
+ 0xf8, 0xa0, 0xfb, 0x3b, 0x5b, 0x22, 0x1b, 0xa6, 0xbc, 0xbd, 0x63, 0xb3, 0x71, 0x17, 0x18, 0x80,
+ 0xf9, 0x34, 0x7f, 0xe6, 0x4b, 0x9f, 0x3c, 0xfb, 0x04, 0xc7, 0x2b, 0xdf, 0x03, 0x61, 0xba, 0xee,
+ 0xfa, 0x4b, 0x30, 0x42, 0x7b, 0x9b, 0x55, 0x1c, 0x0f, 0x49, 0xf3, 0x6b, 0x95, 0xfb, 0x9f, 0x5c,
+ 0xfb, 0xdf, 0xb4, 0x9f, 0x6b, 0x26, 0x72, 0x41, 0xb7, 0x33, 0xbb, 0x07, 0xe7, 0x8d, 0x3d, 0x32,
+ 0xfc, 0xb5, 0xae, 0xc9, 0x1b, 0x93, 0x87, 0x11, 0x19, 0x96, 0x80, 0xc0, 0x7a, 0x0c, 0xd5, 0xfb,
+ 0xfd, 0x21, 0x2a, 0x14, 0x0b, 0x2e, 0xa0, 0x4c, 0xa1, 0xec, 0xc8, 0xac, 0x08, 0x7a, 0x77, 0x95,
+ 0xfe, 0x5e, 0x65, 0xb0, 0x3b, 0x2a, 0xc9, 0xab, 0xaa, 0x62, 0x10, 0x18, 0x9e, 0xe0, 0x52, 0x27,
+ 0xff, 0xca, 0xe1, 0x6d, 0x2b, 0x97, 0xee, 0xf6, 0x12, 0x18, 0x58, 0x74, 0xec, 0x96, 0xf0, 0x49,
+ },
+ { /* 1 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x94, 0xa5, 0x64, 0x0d, 0x89, 0xa2, 0x7f, 0x4b, 0x6e, 0x16, 0xc3, 0x4c, 0xe8, 0xe3, 0xd0, 0x4d,
+ 0xeb, 0x89, 0xc8, 0x1a, 0xd1, 0x87, 0xfe, 0x96, 0xdc, 0x2c, 0x45, 0x98, 0x13, 0x05, 0x63, 0x9a,
+ 0x7f, 0x2c, 0xac, 0x17, 0x58, 0x25, 0x81, 0xdd, 0xb2, 0x3a, 0x86, 0xd4, 0xfb, 0xe6, 0xb3, 0xd7,
+ 0x15, 0xd1, 0x53, 0x34, 0x61, 0xcd, 0x3f, 0xef, 0x7b, 0x58, 0x8a, 0xf3, 0x26, 0x0a, 0xc6, 0xf7,
+ 0x81, 0x74, 0x37, 0x39, 0xe8, 0x6f, 0x40, 0xa4, 0x15, 0x4e, 0x49, 0xbf, 0xce, 0xe9, 0x16, 0xba,
+ 0xfe, 0x58, 0x9b, 0x2e, 0xb0, 0x4a, 0xc1, 0x79, 0xa7, 0x74, 0xcf, 0x6b, 0x35, 0x0f, 0xa5, 0x6d,
+ 0x6a, 0xfd, 0xff, 0x23, 0x39, 0xe8, 0xbe, 0x32, 0xc9, 0x62, 0x0c, 0x27, 0xdd, 0xec, 0x75, 0x20,
+ 0x2a, 0x61, 0xa6, 0x68, 0xc2, 0x59, 0x7e, 0x1d, 0xf6, 0xb0, 0xd7, 0x25, 0x4c, 0x14, 0x4f, 0x2d,
+ 0xbe, 0xc4, 0xc2, 0x65, 0x4b, 0xfb, 0x01, 0x56, 0x98, 0xa6, 0x14, 0x69, 0xa4, 0xf7, 0x9f, 0x60,
+ 0xc1, 0xe8, 0x6e, 0x72, 0x13, 0xde, 0x80, 0x8b, 0x2a, 0x9c, 0x92, 0xbd, 0x5f, 0x11, 0x2c, 0xb7,
+ 0x55, 0x4d, 0x0a, 0x7f, 0x9a, 0x7c, 0xff, 0xc0, 0x44, 0x8a, 0x51, 0xf1, 0xb7, 0xf2, 0xfc, 0xfa,
+ 0x3f, 0xb0, 0xf5, 0x5c, 0xa3, 0x94, 0x41, 0xf2, 0x8d, 0xe8, 0x5d, 0xd6, 0x6a, 0x1e, 0x89, 0xda,
+ 0xab, 0x15, 0x91, 0x51, 0x2a, 0x36, 0x3e, 0xb9, 0xe3, 0xfe, 0x9e, 0x9a, 0x82, 0xfd, 0x59, 0x97,
+ 0xd4, 0x39, 0x3d, 0x46, 0x72, 0x13, 0xbf, 0x64, 0x51, 0xc4, 0x18, 0x4e, 0x79, 0x1b, 0xea, 0x40,
+ 0x40, 0x9c, 0x59, 0x4b, 0xfb, 0xb1, 0xc0, 0x2f, 0x3f, 0xd2, 0xdb, 0x02, 0x91, 0xf8, 0x3a, 0x0d,
+ 0x54, 0xc2, 0x8f, 0xd0, 0x47, 0xb2, 0xfc, 0x3a, 0x2f, 0xa3, 0x6d, 0x4a, 0x98, 0x28, 0x9e, 0x5a,
+ 0xc0, 0x67, 0xeb, 0xdd, 0xce, 0x10, 0x83, 0x71, 0x41, 0xb5, 0xae, 0x06, 0x70, 0xcb, 0x4e, 0x17,
+ 0xbf, 0x4b, 0x47, 0xca, 0x96, 0x35, 0x02, 0xac, 0xf3, 0x8f, 0x28, 0xd2, 0x8b, 0x2d, 0xfd, 0xc0,
+ 0x2b, 0xee, 0x23, 0xc7, 0x1f, 0x97, 0x7d, 0xe7, 0x9d, 0x99, 0xeb, 0x9e, 0x63, 0xce, 0x2d, 0x8d,
+ 0x41, 0x13, 0xdc, 0xe4, 0x26, 0x7f, 0xc3, 0xd5, 0x54, 0xfb, 0xe7, 0xb9, 0xbe, 0x22, 0x58, 0xad,
+ 0xd5, 0xb6, 0xb8, 0xe9, 0xaf, 0xdd, 0xbc, 0x9e, 0x3a, 0xed, 0x24, 0xf5, 0x56, 0xc1, 0x88, 0xe0,
+ 0xaa, 0x9a, 0x14, 0xfe, 0xf7, 0xf8, 0x3d, 0x43, 0x88, 0xd7, 0xa2, 0x21, 0xad, 0x27, 0x3b, 0x37,
+ 0x3e, 0x3f, 0x70, 0xf3, 0x7e, 0x5a, 0x42, 0x08, 0xe6, 0xc1, 0x61, 0x6d, 0x45, 0xc4, 0xeb, 0x7a,
+ 0x7e, 0xa3, 0x29, 0xb8, 0x85, 0xeb, 0x82, 0x27, 0xd9, 0x13, 0xba, 0x6f, 0xd4, 0x3c, 0xd1, 0x77,
+ 0xea, 0x06, 0x4d, 0xb5, 0x0c, 0x49, 0xfd, 0x6c, 0xb7, 0x05, 0x79, 0x23, 0x3c, 0xdf, 0x01, 0x3a,
+ 0x95, 0x2a, 0xe1, 0xa2, 0x54, 0x6c, 0x7c, 0xb1, 0x05, 0x3f, 0xff, 0xf7, 0xc7, 0x39, 0xb2, 0xed,
+ 0x01, 0x8f, 0x85, 0xaf, 0xdd, 0xce, 0x03, 0xfa, 0x6b, 0x29, 0x3c, 0xbb, 0x2f, 0xda, 0x62, 0xa0,
+ 0x6b, 0x72, 0x7a, 0x8c, 0xe4, 0x26, 0xbd, 0xc8, 0xa2, 0x4b, 0x30, 0x9c, 0xf2, 0x36, 0x17, 0x80,
+ 0xff, 0xd7, 0x1e, 0x81, 0x6d, 0x84, 0xc2, 0x83, 0xcc, 0x5d, 0xf3, 0xd0, 0x1a, 0xd5, 0xc7, 0xcd,
+ 0x80, 0xfb, 0xb2, 0x96, 0x35, 0xa1, 0x43, 0x5e, 0x7e, 0x67, 0x75, 0x04, 0xe1, 0x33, 0x74, 0x1a,
+ 0x14, 0x5e, 0xd6, 0x9b, 0xbc, 0x03, 0x3c, 0x15, 0x10, 0x71, 0xb6, 0x48, 0x09, 0xd0, 0xa4, 0x57,
+ 0xa8, 0x47, 0xdd, 0x63, 0x8e, 0xa7, 0x3b, 0x74, 0x5e, 0x85, 0xda, 0x94, 0xf3, 0x50, 0xff, 0xb4,
+ 0x3c, 0xe2, 0xb9, 0x6e, 0x07, 0x05, 0x44, 0x3f, 0x30, 0x93, 0x19, 0xd8, 0x1b, 0xb3, 0x2f, 0xf9,
+ 0x43, 0xce, 0x15, 0x79, 0x5f, 0x20, 0xc5, 0xe2, 0x82, 0xa9, 0x9f, 0x0c, 0xe0, 0x55, 0x9c, 0x2e,
+ 0xd7, 0x6b, 0x71, 0x74, 0xd6, 0x82, 0xba, 0xa9, 0xec, 0xbf, 0x5c, 0x40, 0x08, 0xb6, 0x4c, 0x63,
+ 0xbd, 0x96, 0x8e, 0x57, 0xef, 0x6a, 0x04, 0x9b, 0x25, 0xdd, 0x50, 0x67, 0xd5, 0x5a, 0x39, 0x43,
+ 0x29, 0x33, 0xea, 0x5a, 0x66, 0xc8, 0x7b, 0xd0, 0x4b, 0xcb, 0x93, 0x2b, 0x3d, 0xb9, 0xe9, 0x0e,
+ 0x56, 0x1f, 0x46, 0x4d, 0x3e, 0xed, 0xfa, 0x0d, 0xf9, 0xf1, 0x15, 0xff, 0xc6, 0x5f, 0x5a, 0xd9,
+ 0xc2, 0xba, 0x22, 0x40, 0xb7, 0x4f, 0x85, 0x46, 0x97, 0xe7, 0xd6, 0xb3, 0x2e, 0xbc, 0x8a, 0x94,
+ 0x82, 0x26, 0x7b, 0x0b, 0x4c, 0xfe, 0x45, 0x69, 0xa8, 0x35, 0x0d, 0xb1, 0xbf, 0x44, 0xb0, 0x99,
+ 0x16, 0x83, 0x1f, 0x06, 0xc5, 0x5c, 0x3a, 0x22, 0xc6, 0x23, 0xce, 0xfd, 0x57, 0xa7, 0x60, 0xd4,
+ 0x69, 0xaf, 0xb3, 0x11, 0x9d, 0x79, 0xbb, 0xff, 0x74, 0x19, 0x48, 0x29, 0xac, 0x41, 0xd3, 0x03,
+ 0xfd, 0x0a, 0xd7, 0x1c, 0x14, 0xdb, 0xc4, 0xb4, 0x1a, 0x0f, 0x8b, 0x65, 0x44, 0xa2, 0x03, 0x4e,
+ 0x97, 0xf7, 0x28, 0x3f, 0x2d, 0x33, 0x7a, 0x86, 0xd3, 0x6d, 0x87, 0x42, 0x99, 0x4e, 0x76, 0x6e,
+ 0x03, 0x52, 0x4c, 0x32, 0xa4, 0x91, 0x05, 0xcd, 0xbd, 0x7b, 0x44, 0x0e, 0x71, 0xad, 0xa6, 0x23,
+ 0x7c, 0x7e, 0xe0, 0x25, 0xfc, 0xb4, 0x84, 0x10, 0x0f, 0x41, 0xc2, 0xda, 0x8a, 0x4b, 0x15, 0xf4,
+ 0xe8, 0xdb, 0x84, 0x28, 0x75, 0x16, 0xfb, 0x5b, 0x61, 0x57, 0x01, 0x96, 0x62, 0xa8, 0xc5, 0xb9,
+ 0xfc, 0x85, 0x52, 0xb3, 0xc9, 0x15, 0xc7, 0x4e, 0x71, 0x26, 0xb7, 0xde, 0x6b, 0x78, 0x61, 0xee,
+ 0x68, 0x20, 0x36, 0xbe, 0x40, 0xb7, 0xb8, 0x05, 0x1f, 0x30, 0x74, 0x92, 0x83, 0x9b, 0xb1, 0xa3,
+ 0x17, 0x0c, 0x9a, 0xa9, 0x18, 0x92, 0x39, 0xd8, 0xad, 0x0a, 0xf2, 0x46, 0x78, 0x7d, 0x02, 0x74,
+ 0x83, 0xa9, 0xfe, 0xa4, 0x91, 0x30, 0x46, 0x93, 0xc3, 0x1c, 0x31, 0x0a, 0x90, 0x9e, 0xd2, 0x39,
+ 0xe9, 0x54, 0x01, 0x87, 0xa8, 0xd8, 0xf8, 0xa1, 0x0a, 0x7e, 0x3d, 0x2d, 0x4d, 0x72, 0xa7, 0x19,
+ 0x7d, 0xf1, 0x65, 0x8a, 0x21, 0x7a, 0x87, 0xea, 0x64, 0x68, 0xfe, 0x61, 0xa5, 0x91, 0x77, 0x54,
+ 0x02, 0xdd, 0xc9, 0x9d, 0x79, 0x5f, 0x06, 0x37, 0xd6, 0x52, 0x78, 0xb5, 0x5e, 0x77, 0xc4, 0x83,
+ 0x96, 0x78, 0xad, 0x90, 0xf0, 0xfd, 0x79, 0x7c, 0xb8, 0x44, 0xbb, 0xf9, 0xb6, 0x94, 0x14, 0xce,
+ 0xd6, 0xe4, 0xf4, 0xdb, 0x0b, 0x4c, 0xb9, 0x53, 0x87, 0x96, 0x60, 0xfb, 0x27, 0x6c, 0x2e, 0xc3,
+ 0x42, 0x41, 0x90, 0xd6, 0x82, 0xee, 0xc6, 0x18, 0xe9, 0x80, 0xa3, 0xb7, 0xcf, 0x8f, 0xfe, 0x8e,
+ 0x3d, 0x6d, 0x3c, 0xc1, 0xda, 0xcb, 0x47, 0xc5, 0x5b, 0xba, 0x25, 0x63, 0x34, 0x69, 0x4d, 0x59,
+ 0xa9, 0xc8, 0x58, 0xcc, 0x53, 0x69, 0x38, 0x8e, 0x35, 0xac, 0xe6, 0x2f, 0xdc, 0x8a, 0x9d, 0x14,
+ 0xc3, 0x35, 0xa7, 0xef, 0x6a, 0x81, 0x86, 0xbc, 0xfc, 0xce, 0xea, 0x08, 0x01, 0x66, 0xe8, 0x34,
+ 0x57, 0x90, 0xc3, 0xe2, 0xe3, 0x23, 0xf9, 0xf7, 0x92, 0xd8, 0x29, 0x44, 0xe9, 0x85, 0x38, 0x79,
+ 0x28, 0xbc, 0x6f, 0xf5, 0xbb, 0x06, 0x78, 0x2a, 0x20, 0xe2, 0xaf, 0x90, 0x12, 0x63, 0x8b, 0xae,
+ 0xbc, 0x19, 0x0b, 0xf8, 0x32, 0xa4, 0x07, 0x61, 0x4e, 0xf4, 0x6c, 0xdc, 0xfa, 0x80, 0x5b, 0xe3,
+ 0x93, 0x8e, 0x79, 0xc6, 0xdf, 0x8d, 0x76, 0xe8, 0xbc, 0xc9, 0x77, 0xeb, 0x25, 0xa0, 0x3d, 0xab,
+ 0x07, 0x2b, 0x1d, 0xcb, 0x56, 0x2f, 0x09, 0xa3, 0xd2, 0xdf, 0xb4, 0xa7, 0xcd, 0x43, 0xed, 0xe6,
+ 0x78, 0x07, 0xb1, 0xdc, 0x0e, 0x0a, 0x88, 0x7e, 0x60, 0xe5, 0x32, 0x73, 0x36, 0xa5, 0x5e, 0x31,
+ 0xec, 0xa2, 0xd5, 0xd1, 0x87, 0xa8, 0xf7, 0x35, 0x0e, 0xf3, 0xf1, 0x3f, 0xde, 0x46, 0x8e, 0x7c,
+ 0x86, 0x5f, 0x2a, 0xf2, 0xbe, 0x40, 0x49, 0x07, 0xc7, 0x91, 0xfd, 0x18, 0x03, 0xaa, 0xfb, 0x5c,
+ 0x12, 0xfa, 0x4e, 0xff, 0x37, 0xe2, 0x36, 0x4c, 0xa9, 0x87, 0x3e, 0x54, 0xeb, 0x49, 0x2b, 0x11,
+ 0x6d, 0xd6, 0xe2, 0xe8, 0x6f, 0xc7, 0xb7, 0x91, 0x1b, 0xbd, 0xb8, 0x80, 0x10, 0xaf, 0x98, 0xc6,
+ 0xf9, 0x73, 0x86, 0xe5, 0xe6, 0x65, 0xc8, 0xda, 0x75, 0xab, 0x7b, 0xcc, 0xf8, 0x4c, 0x48, 0x8b,
+ 0xb9, 0xef, 0xdf, 0xae, 0x1d, 0xd4, 0x08, 0xf5, 0x4a, 0x79, 0xa0, 0xce, 0x69, 0xb4, 0x72, 0x86,
+ 0x2d, 0x4a, 0xbb, 0xa3, 0x94, 0x76, 0x77, 0xbe, 0x24, 0x6f, 0x63, 0x82, 0x81, 0x57, 0xa2, 0xcb,
+ 0x52, 0x66, 0x17, 0xb4, 0xcc, 0x53, 0xf6, 0x63, 0x96, 0x55, 0xe5, 0x56, 0x7a, 0xb1, 0x11, 0x1c,
+ 0xc6, 0xc3, 0x73, 0xb9, 0x45, 0xf1, 0x89, 0x28, 0xf8, 0x43, 0x26, 0x1a, 0x92, 0x52, 0xc1, 0x51,
+ 0xac, 0x3e, 0x8c, 0x9a, 0x7c, 0x19, 0x37, 0x1a, 0x31, 0x21, 0x2a, 0x3d, 0x4f, 0xbe, 0xb4, 0x71,
+ 0x38, 0x9b, 0xe8, 0x97, 0xf5, 0xbb, 0x48, 0x51, 0x5f, 0x37, 0xe9, 0x71, 0xa7, 0x5d, 0x64, 0x3c,
+ 0x47, 0xb7, 0x44, 0x80, 0xad, 0x9e, 0xc9, 0x8c, 0xed, 0x0d, 0x6f, 0xa5, 0x5c, 0xbb, 0xd7, 0xeb,
+ 0xd3, 0x12, 0x20, 0x8d, 0x24, 0x3c, 0xb6, 0xc7, 0x83, 0x1b, 0xac, 0xe9, 0xb4, 0x58, 0x07, 0xa6,
+ 0xc7, 0x4c, 0xf6, 0x16, 0x98, 0x3f, 0x8a, 0xd2, 0x93, 0x6a, 0x1a, 0xa1, 0xbd, 0x88, 0xa3, 0xf1,
+ 0x53, 0xe9, 0x92, 0x1b, 0x11, 0x9d, 0xf5, 0x99, 0xfd, 0x7c, 0xd9, 0xed, 0x55, 0x6b, 0x73, 0xbc,
+ 0x2c, 0xc5, 0x3e, 0x0c, 0x49, 0xb8, 0x74, 0x44, 0x4f, 0x46, 0x5f, 0x39, 0xae, 0x8d, 0xc0, 0x6b,
+ 0xb8, 0x60, 0x5a, 0x01, 0xc0, 0x1a, 0x0b, 0x0f, 0x21, 0x50, 0x9c, 0x75, 0x46, 0x6e, 0x10, 0x26,
+ 0xd2, 0x9d, 0xa5, 0x22, 0xf9, 0xf2, 0xb5, 0x3d, 0xe8, 0x32, 0x90, 0x52, 0x9b, 0x82, 0x65, 0x06,
+ 0x46, 0x38, 0xc1, 0x2f, 0x70, 0x50, 0xca, 0x76, 0x86, 0x24, 0x53, 0x1e, 0x73, 0x61, 0xb5, 0x4b,
+ 0x39, 0x14, 0x6d, 0x38, 0x28, 0x75, 0x4b, 0xab, 0x34, 0x1e, 0xd5, 0xca, 0x88, 0x87, 0x06, 0x9c,
+ 0xad, 0xb1, 0x09, 0x35, 0xa1, 0xd7, 0x34, 0xe0, 0x5a, 0x08, 0x16, 0x86, 0x60, 0x64, 0xd6, 0xd1,
+ 0xed, 0x2d, 0x50, 0x7e, 0x5a, 0x66, 0xf4, 0xcf, 0x65, 0xda, 0xcd, 0x84, 0xf1, 0x9c, 0xec, 0xdc,
+ 0x79, 0x88, 0x34, 0x73, 0xd3, 0xc4, 0x8b, 0x84, 0x0b, 0xcc, 0x0e, 0xc8, 0x19, 0x7f, 0x3c, 0x91,
+ 0x06, 0xa4, 0x98, 0x64, 0x8b, 0xe1, 0x0a, 0x59, 0xb9, 0xf6, 0x88, 0x1c, 0xe2, 0x99, 0x8f, 0x46,
+ 0x92, 0x01, 0xfc, 0x69, 0x02, 0x43, 0x75, 0x12, 0xd7, 0xe0, 0x4b, 0x50, 0x0a, 0x7a, 0x5f, 0x0b,
+ 0xf8, 0xfc, 0x03, 0x4a, 0x3b, 0xab, 0xcb, 0x20, 0x1e, 0x82, 0x47, 0x77, 0xd7, 0x96, 0x2a, 0x2b,
+ 0x6c, 0x59, 0x67, 0x47, 0xb2, 0x09, 0xb4, 0x6b, 0x70, 0x94, 0x84, 0x3b, 0x3f, 0x75, 0xfa, 0x66,
+ 0x13, 0x75, 0xcb, 0x50, 0xea, 0x2c, 0x35, 0xb6, 0xc2, 0xae, 0x02, 0xef, 0xc4, 0x93, 0x49, 0xb1,
+ 0x87, 0xd0, 0xaf, 0x5d, 0x63, 0x8e, 0x4a, 0xfd, 0xac, 0xb8, 0xc1, 0xa3, 0x2c, 0x70, 0x99, 0xfc,
+ 0x3b, 0xc9, 0xa4, 0xa5, 0x51, 0x2a, 0x4d, 0x9c, 0xe2, 0x4c, 0xad, 0x7f, 0xd6, 0xf0, 0xc2, 0x1f,
+ 0xaf, 0x6c, 0xc0, 0xa8, 0xd8, 0x88, 0x32, 0xd7, 0x8c, 0x5a, 0x6e, 0x33, 0x3e, 0x13, 0x12, 0x52,
+ 0xd0, 0x40, 0x6c, 0xbf, 0x80, 0xad, 0xb3, 0x0a, 0x3e, 0x60, 0xe8, 0xe7, 0xc5, 0xf5, 0xa1, 0x85,
+ 0x44, 0xe5, 0x08, 0xb2, 0x09, 0x0f, 0xcc, 0x41, 0x50, 0x76, 0x2b, 0xab, 0x2d, 0x16, 0x71, 0xc8,
+ 0x2e, 0x18, 0xf7, 0x91, 0x30, 0xe7, 0x72, 0x73, 0x99, 0x14, 0x27, 0x8c, 0xf0, 0xfa, 0x04, 0xe8,
+ 0xba, 0xbd, 0x93, 0x9c, 0xb9, 0x45, 0x0d, 0x38, 0xf7, 0x02, 0xe4, 0xc0, 0x18, 0x19, 0xd4, 0xa5,
+ 0xc5, 0x91, 0x3f, 0x8b, 0xe1, 0x60, 0x8c, 0xe5, 0x45, 0x38, 0x62, 0x14, 0xe3, 0xff, 0x67, 0x72,
+ 0x51, 0x34, 0x5b, 0x86, 0x68, 0xc2, 0xf3, 0xae, 0x2b, 0x2e, 0xa1, 0x58, 0x0b, 0x1c, 0xb7, 0x3f,
+ 0x11, 0xa8, 0x02, 0xcd, 0x93, 0x73, 0x33, 0x81, 0x14, 0xfc, 0x7a, 0x5a, 0x9a, 0xe4, 0x8d, 0x32,
+ 0x85, 0x0d, 0x66, 0xc0, 0x1a, 0xd1, 0x4c, 0xca, 0x7a, 0xea, 0xb9, 0x16, 0x72, 0x07, 0x5d, 0x7f,
+ 0xfa, 0x21, 0xca, 0xd7, 0x42, 0xf4, 0xcd, 0x17, 0xc8, 0xd0, 0x3f, 0xc2, 0x89, 0xe1, 0xee, 0xa8,
+ 0x6e, 0x84, 0xae, 0xda, 0xcb, 0x56, 0xb2, 0x5c, 0xa6, 0xc6, 0xfc, 0x8e, 0x61, 0x02, 0x3e, 0xe5,
+ 0x04, 0x79, 0x51, 0xf9, 0xf2, 0xbe, 0x0c, 0x6e, 0x6f, 0xa4, 0xf0, 0xa9, 0xbc, 0xee, 0x4b, 0xc5,
+ 0x90, 0xdc, 0x35, 0xf4, 0x7b, 0x1c, 0x73, 0x25, 0x01, 0xb2, 0x33, 0xe5, 0x54, 0x0d, 0x9b, 0x88,
+ 0xef, 0xf0, 0x99, 0xe3, 0x23, 0x39, 0xf2, 0xf8, 0xb3, 0x88, 0xb5, 0x31, 0xaf, 0xeb, 0x28, 0x5f,
+ 0x7b, 0x55, 0xfd, 0xee, 0xaa, 0x9b, 0x8d, 0xb3, 0xdd, 0x9e, 0x76, 0x7d, 0x47, 0x08, 0xf8, 0x12,
+ 0x6f, 0x0b, 0x2b, 0x75, 0x16, 0x98, 0xb1, 0xa6, 0xcd, 0xef, 0xc0, 0x35, 0x4e, 0xd8, 0x5c, 0x45,
+ 0xfb, 0xae, 0x4f, 0x78, 0x9f, 0x3a, 0xce, 0xed, 0xa3, 0xf9, 0x03, 0x79, 0xa6, 0x3b, 0x8c, 0x08,
+ 0x84, 0x82, 0xe3, 0x6f, 0xc7, 0x1f, 0x4f, 0x30, 0x11, 0xc3, 0x85, 0xad, 0x5d, 0xdd, 0x3f, 0xdf,
+ 0x10, 0x27, 0x87, 0x62, 0x4e, 0xbd, 0x30, 0x7b, 0x7f, 0xd5, 0x46, 0xe1, 0xb5, 0x3e, 0xef, 0x92,
+ 0x7a, 0xda, 0x78, 0x41, 0x77, 0x55, 0x8e, 0x49, 0xb6, 0xb7, 0x4a, 0xc6, 0x68, 0xd2, 0x9a, 0xb2,
+ 0xee, 0x7f, 0x1c, 0x4c, 0xfe, 0xf7, 0xf1, 0x02, 0xd8, 0xa1, 0x89, 0x8a, 0x80, 0x31, 0x4a, 0xff,
+ 0x91, 0x53, 0xb0, 0x5b, 0xa6, 0xd2, 0x70, 0xdf, 0x6a, 0x9b, 0x0f, 0x5e, 0x7b, 0xd7, 0xf9, 0x28,
+ 0x05, 0xf6, 0xd4, 0x56, 0x2f, 0x70, 0x0f, 0x94, 0x04, 0x8d, 0xcc, 0x12, 0x93, 0x34, 0x29, 0x65,
+ 0x45, 0x6a, 0x8d, 0x1d, 0xd4, 0xc1, 0xcf, 0xbb, 0x3b, 0x5f, 0x17, 0x10, 0x02, 0xcc, 0x13, 0x68,
+ 0xd1, 0xcf, 0xe9, 0x10, 0x5d, 0x63, 0xb0, 0xf0, 0x55, 0x49, 0xd4, 0x5c, 0xea, 0x2f, 0xc3, 0x25,
+ 0xae, 0xe3, 0x45, 0x07, 0x05, 0x46, 0x31, 0x2d, 0xe7, 0x73, 0x52, 0x88, 0x11, 0xc9, 0x70, 0xf2,
+ 0x3a, 0x46, 0x21, 0x0a, 0x8c, 0xe4, 0x4e, 0x66, 0x89, 0x65, 0x91, 0xc4, 0xf9, 0x2a, 0xa0, 0xbf,
+ 0x50, 0xbb, 0xde, 0x29, 0xb5, 0x0c, 0xf0, 0x54, 0x40, 0x07, 0x9d, 0xe3, 0x24, 0xc6, 0xd5, 0x9f,
+ 0xc4, 0x1e, 0xba, 0x24, 0x3c, 0xae, 0x8f, 0x1f, 0x2e, 0x11, 0x5e, 0xaf, 0xcc, 0x25, 0x05, 0xd2,
+ 0xbb, 0x32, 0x16, 0x33, 0x64, 0x8b, 0x0e, 0xc2, 0x9c, 0x2b, 0xd8, 0x7b, 0x37, 0xc3, 0xb6, 0x05,
+ 0x2f, 0x97, 0x72, 0x3e, 0xed, 0x29, 0x71, 0x89, 0xf2, 0x3d, 0x1b, 0x37, 0xdf, 0x20, 0x66, 0x48,
+ 0xe5, 0xdf, 0xf2, 0x4f, 0x7d, 0xd9, 0xec, 0x13, 0xbb, 0x51, 0xee, 0x15, 0x4a, 0x83, 0x7a, 0x95,
+ 0x71, 0x7a, 0x96, 0x42, 0xf4, 0x7b, 0x93, 0x58, 0xd5, 0x47, 0x2d, 0x59, 0xa2, 0x60, 0xaa, 0xd8,
+ 0x0e, 0x56, 0x3a, 0x55, 0xac, 0x5e, 0x12, 0x85, 0x67, 0x7d, 0xab, 0x8d, 0x59, 0x86, 0x19, 0x0f,
+ 0x9a, 0xf3, 0x5e, 0x58, 0x25, 0xfc, 0x6d, 0xce, 0x09, 0x6b, 0x68, 0xc1, 0xb1, 0x65, 0xc9, 0x42,
+ 0xf0, 0x0e, 0xa1, 0x7b, 0x1c, 0x14, 0xd3, 0xfc, 0xc0, 0x09, 0x64, 0xe6, 0x6c, 0x89, 0xbc, 0x62,
+ 0x64, 0xab, 0xc5, 0x76, 0x95, 0xb6, 0xac, 0xb7, 0xae, 0x1f, 0xa7, 0xaa, 0x84, 0x6a, 0x6c, 0x2f,
+ 0x1b, 0x87, 0x69, 0x61, 0xcd, 0x93, 0x2d, 0x6a, 0x1c, 0x25, 0x21, 0x7e, 0x7f, 0x8c, 0xdf, 0xf8,
+ 0x8f, 0x22, 0x0d, 0x6c, 0x44, 0x31, 0x52, 0x21, 0x72, 0x33, 0xe2, 0x32, 0x97, 0x6f, 0x0f, 0xb5,
+ 0xcf, 0xbe, 0x54, 0x27, 0xbf, 0x80, 0x92, 0x0e, 0x4d, 0xe1, 0x39, 0x30, 0x06, 0x97, 0x35, 0xb8,
+ 0x5b, 0x1b, 0x30, 0x2a, 0x36, 0x22, 0xed, 0x45, 0x23, 0xf7, 0xfa, 0x7c, 0xee, 0x74, 0xe5, 0xf5,
+ 0x24, 0x37, 0x9c, 0x3d, 0x6e, 0x07, 0x6c, 0x98, 0x91, 0xcd, 0x7c, 0xa8, 0x15, 0x92, 0x56, 0x22,
+ 0xb0, 0x92, 0xf8, 0x30, 0xe7, 0xa5, 0x13, 0xd3, 0xff, 0xdb, 0xbf, 0xe4, 0xfd, 0x71, 0x86, 0x6f,
+ 0xda, 0x6f, 0x07, 0x13, 0xde, 0x4d, 0xad, 0xe1, 0x36, 0xb9, 0xb3, 0xc3, 0x20, 0x9d, 0xf3, 0x4f,
+ 0x4e, 0xca, 0x63, 0x1e, 0x57, 0xef, 0xd2, 0xaa, 0x58, 0xaf, 0x70, 0x8f, 0xc8, 0x7e, 0x23, 0x02,
+ 0x31, 0xe6, 0xcf, 0x09, 0x0f, 0xca, 0x53, 0x77, 0xea, 0x95, 0xf6, 0x5b, 0x33, 0x98, 0x90, 0xd5,
+ 0xa5, 0x43, 0xab, 0x04, 0x86, 0x68, 0x2c, 0x3c, 0x84, 0x83, 0x35, 0x17, 0xdb, 0x7b, 0x40, 0x98,
+ 0xb1, 0x1d, 0x7d, 0x9f, 0x3a, 0x6b, 0x10, 0x29, 0x94, 0xf2, 0x83, 0x5f, 0xd2, 0xab, 0xe4, 0xcf,
+ 0x25, 0xb8, 0x19, 0x92, 0xb3, 0xc9, 0x6f, 0x62, 0xfa, 0xe4, 0x40, 0x13, 0x3a, 0x48, 0x34, 0x82,
+ 0x5a, 0x94, 0xb5, 0x85, 0xeb, 0xec, 0xee, 0xbf, 0x48, 0xde, 0xc6, 0xc7, 0xc1, 0xae, 0x87, 0x55,
+ 0xce, 0x31, 0xd1, 0x88, 0x62, 0x4e, 0x91, 0xf4, 0x26, 0xc8, 0x05, 0x8b, 0x29, 0x4d, 0x57, 0x18,
+ 0xa4, 0xcc, 0x2e, 0xab, 0x5b, 0xa6, 0x2f, 0xc6, 0xef, 0xaa, 0x09, 0xac, 0xf4, 0xa1, 0x22, 0x38,
+ 0x30, 0x69, 0x4a, 0xa6, 0xd2, 0x04, 0x50, 0x8d, 0x81, 0xbc, 0xca, 0xe0, 0x1c, 0x42, 0xf2, 0x75,
+ 0x4f, 0x45, 0xe6, 0xb1, 0x8a, 0x21, 0xd1, 0x50, 0x33, 0x86, 0x4c, 0x34, 0xe7, 0xa4, 0x41, 0xa2,
+ 0xdb, 0xe0, 0x82, 0xbc, 0x03, 0x83, 0xae, 0x1b, 0x5d, 0x90, 0x8f, 0x78, 0x0f, 0x47, 0x91, 0xef,
+ 0x9b, 0x7c, 0xdb, 0xf7, 0xf8, 0x32, 0x6e, 0x34, 0x62, 0x42, 0x54, 0x7a, 0x9e, 0xbf, 0xab, 0xe2,
+ 0x0f, 0xd9, 0xbf, 0xfa, 0x71, 0x90, 0x11, 0x7f, 0x0c, 0x54, 0x97, 0x36, 0x76, 0x5c, 0x7b, 0xaf,
+ 0x70, 0xf5, 0x13, 0xed, 0x29, 0xb5, 0x90, 0xa2, 0xbe, 0x6e, 0x11, 0xe2, 0x8d, 0xba, 0xc8, 0x78,
+ 0xe4, 0x50, 0x77, 0xe0, 0xa0, 0x17, 0xef, 0xe9, 0xd0, 0x78, 0xd2, 0xae, 0x65, 0x59, 0x18, 0x35,
+ 0x8e, 0xad, 0x88, 0xc3, 0x99, 0xff, 0x51, 0xdb, 0x19, 0x1a, 0xde, 0x89, 0xb8, 0xb5, 0x6d, 0x15,
+ 0x1a, 0x08, 0xec, 0xce, 0x10, 0x5d, 0x2e, 0x90, 0x77, 0x0c, 0x1d, 0xc5, 0x50, 0x56, 0xbd, 0x58,
+ 0x65, 0x24, 0x40, 0xd9, 0x48, 0x78, 0xaf, 0x4d, 0xc5, 0x36, 0x9b, 0x11, 0xab, 0xb0, 0x0e, 0x8f,
+ 0xf1, 0x81, 0x24, 0xd4, 0xc1, 0xda, 0xd0, 0x06, 0xab, 0x20, 0x58, 0x5d, 0x43, 0x53, 0xde, 0xc2,
+ 0x4d, 0x98, 0x2f, 0x2c, 0xf3, 0x7e, 0xd7, 0x67, 0xe5, 0xd4, 0x34, 0x81, 0xb9, 0xd3, 0x85, 0x21,
+ 0xd9, 0x3d, 0x4b, 0x21, 0x7a, 0xdc, 0xa8, 0x2c, 0x8b, 0xc2, 0xf7, 0xcd, 0x51, 0x30, 0x55, 0x6c,
+ 0xa6, 0x11, 0xe7, 0x36, 0x22, 0xf9, 0x29, 0xf1, 0x39, 0xf8, 0x71, 0x19, 0xaa, 0xd6, 0xe6, 0xbb,
+ 0x32, 0xb4, 0x83, 0x3b, 0xab, 0x5b, 0x56, 0xba, 0x57, 0xee, 0xb2, 0x55, 0x42, 0x35, 0x36, 0xf6,
+ 0x58, 0x49, 0x7c, 0x18, 0x92, 0xb3, 0xe8, 0x88, 0x9e, 0x8c, 0xbe, 0x72, 0x9f, 0xd9, 0x43, 0xd6,
+ 0xcc, 0xec, 0x18, 0x15, 0x1b, 0x11, 0x97, 0xc3, 0xf0, 0x9a, 0x7d, 0x3e, 0x77, 0x3a, 0x93, 0x9b,
+ 0xb3, 0xc0, 0xb4, 0x02, 0x43, 0x34, 0x16, 0x1e, 0x42, 0xa0, 0xfb, 0xea, 0x8c, 0xdc, 0x20, 0x4c,
+ 0x27, 0x65, 0xd0, 0x0f, 0xca, 0x96, 0x69, 0x55, 0x2c, 0xb6, 0x38, 0xa6, 0x64, 0x3f, 0xf0, 0x01,
+ 0x67, 0xf9, 0x89, 0x44, 0x31, 0x27, 0xa9, 0x7a, 0x13, 0x64, 0xe3, 0xa4, 0xf5, 0xc7, 0xca, 0x0c,
+ 0xf3, 0x5c, 0xed, 0x49, 0xb8, 0x85, 0xd6, 0x31, 0x7d, 0x72, 0x20, 0xe8, 0x1d, 0x24, 0x1a, 0x41,
+ 0x8c, 0x70, 0x41, 0x5e, 0xe0, 0xa0, 0x57, 0xec, 0xcf, 0x48, 0xa6, 0x3c, 0xe6, 0xc2, 0xa9, 0x96,
+ 0x18, 0xd5, 0x25, 0x53, 0x69, 0x02, 0x28, 0xa7, 0xa1, 0x5e, 0x65, 0x70, 0x0e, 0x21, 0x79, 0xdb,
+ 0x72, 0x28, 0xda, 0x70, 0x50, 0xea, 0x96, 0x95, 0x68, 0x3c, 0x69, 0x57, 0xd3, 0xcd, 0x0c, 0xfb,
+ 0xe6, 0x8d, 0xbe, 0x7d, 0xd9, 0x48, 0xe9, 0xde, 0x06, 0x2a, 0xaa, 0x1b, 0x3b, 0x2e, 0xdc, 0xb6,
+ 0x99, 0xa1, 0x12, 0x6a, 0x81, 0x6d, 0x68, 0x03, 0xb4, 0x10, 0x2c, 0xcf, 0xc0, 0xc8, 0x6f, 0x61,
+ 0x0d, 0x04, 0x76, 0x67, 0x08, 0xcf, 0x17, 0x48, 0xda, 0x06, 0xef, 0x83, 0x28, 0x2b, 0xbf, 0x2c,
+ 0x19, 0x5a, 0xa0, 0xfc, 0xb4, 0xcc, 0x2b, 0x5d, 0xca, 0x77, 0x59, 0xcb, 0x21, 0xfb, 0x1b, 0x7b,
+ 0x8d, 0xff, 0xc4, 0xf1, 0x3d, 0x6e, 0x54, 0x16, 0xa4, 0x61, 0x9a, 0x87, 0xc9, 0x18, 0xcb, 0x36,
+ 0xf2, 0xd3, 0x68, 0xe6, 0x65, 0x4b, 0xd5, 0xcb, 0x16, 0x5b, 0x1c, 0x53, 0x32, 0xfe, 0x78, 0xe1,
+ 0x66, 0x76, 0x0c, 0xeb, 0xec, 0xe9, 0xaa, 0x80, 0x78, 0x4d, 0xdf, 0x1f, 0xda, 0x1d, 0xa8, 0xac,
+ 0x0c, 0x8b, 0xf3, 0xc8, 0xd5, 0x01, 0x14, 0xb2, 0xb1, 0x2f, 0xd3, 0x38, 0x07, 0xf1, 0xdd, 0x8c,
+ 0x98, 0x2e, 0x97, 0xc5, 0x5c, 0xa3, 0x6b, 0xf9, 0xdf, 0x39, 0x10, 0x74, 0xef, 0x12, 0x0d, 0xc1,
+ 0xe7, 0x02, 0x3b, 0xd2, 0x04, 0x86, 0xea, 0x24, 0x6d, 0x03, 0x96, 0xa0, 0x14, 0xf4, 0xbe, 0x16,
+ 0x73, 0xa7, 0x5f, 0xdf, 0x8d, 0x24, 0x95, 0x6f, 0x03, 0x15, 0x55, 0xec, 0xfc, 0x17, 0x6e, 0x5b,
+ 0x33, 0x3b, 0x06, 0x94, 0x76, 0x95, 0x55, 0x40, 0x3c, 0xc7, 0x8e, 0xee, 0x6d, 0xef, 0x54, 0x56,
+ 0xa7, 0x9e, 0x62, 0x99, 0xff, 0x37, 0x2a, 0x0b, 0x52, 0xd1, 0x4d, 0xa2, 0x85, 0x0c, 0x84, 0x1b,
+ 0xd8, 0xb2, 0xce, 0x8e, 0xa7, 0x12, 0xab, 0xd6, 0xe0, 0xeb, 0xcb, 0x76, 0x7e, 0xea, 0x37, 0xcc,
+ 0x4c, 0x17, 0xaa, 0x83, 0x2e, 0xb0, 0xd4, 0x9d, 0x8e, 0xfd, 0x08, 0x3a, 0x96, 0x09, 0xe7, 0x81,
+ 0x26, 0xea, 0x55, 0xa0, 0x17, 0x58, 0x6a, 0xaf, 0x47, 0x9f, 0x04, 0x1d, 0x4b, 0xe5, 0x92, 0xa1,
+ 0xb2, 0x4f, 0x31, 0xad, 0x9e, 0xfa, 0x15, 0xe4, 0x29, 0x89, 0xc7, 0x51, 0xa3, 0x06, 0x42, 0xec,
+ 0xcd, 0x63, 0x9d, 0xba, 0xc6, 0xdf, 0x94, 0x39, 0x9b, 0xb3, 0x41, 0x85, 0x58, 0xe0, 0xf1, 0x3b,
+ 0x59, 0xc6, 0xf9, 0xb7, 0x4f, 0x7d, 0xeb, 0x72, 0xf5, 0xa5, 0x82, 0xc9, 0xb0, 0x03, 0x21, 0x76,
+ 0x76, 0x51, 0x8b, 0x89, 0xa2, 0x54, 0x9a, 0xfb, 0x07, 0x98, 0x99, 0xfe, 0x6f, 0x23, 0x47, 0x3e,
+ 0xe2, 0xf4, 0xef, 0x84, 0x2b, 0xf6, 0xe5, 0xb0, 0x69, 0x8e, 0x5a, 0xb2, 0x87, 0xc0, 0x97, 0x73,
+ 0x9d, 0xd8, 0x43, 0x93, 0x73, 0xd3, 0x64, 0x6d, 0xdb, 0xb4, 0xdc, 0x66, 0x7c, 0x26, 0x24, 0xa4,
+ 0x09, 0x7d, 0x27, 0x9e, 0xfa, 0x71, 0x1b, 0x26, 0xb5, 0xa2, 0x1f, 0x2a, 0x94, 0xc5, 0xf4, 0xe9,
+ 0x63, 0x80, 0xd8, 0xbd, 0xc3, 0x99, 0xa5, 0x14, 0x7c, 0xc0, 0x13, 0x0d, 0x49, 0x29, 0x81, 0xc9,
+ 0xf7, 0x25, 0xbc, 0xb0, 0x4a, 0x3b, 0xda, 0x5f, 0x12, 0xd6, 0xd0, 0x41, 0xa1, 0xca, 0x51, 0x84,
+ 0x88, 0x09, 0x10, 0xa7, 0x12, 0x1e, 0x5b, 0x82, 0xa0, 0xec, 0x56, 0x95, 0x5a, 0x2c, 0xe2, 0x53,
+ 0x1c, 0xac, 0x74, 0xaa, 0x9b, 0xbc, 0x24, 0xc9, 0xce, 0xfa, 0x95, 0xd9, 0xb2, 0xcf, 0x32, 0x1e,
+ 0x5c, 0x30, 0x2d, 0xe1, 0x60, 0x0d, 0xe4, 0xe6, 0xf1, 0x28, 0x4e, 0xdb, 0x23, 0x37, 0x08, 0x13,
+ 0xc8, 0x95, 0x49, 0xec, 0xe9, 0xaf, 0x9b, 0xad, 0x9f, 0x3e, 0x8d, 0x97, 0xcb, 0xd4, 0xd8, 0x5e,
+ 0xb7, 0xb9, 0xe5, 0xfb, 0xb1, 0x8a, 0x1a, 0x70, 0x2d, 0x04, 0x0b, 0x43, 0x30, 0x32, 0x6b, 0x89,
+ 0x23, 0x1c, 0x81, 0xf6, 0x38, 0x28, 0x65, 0x3b, 0x43, 0x12, 0xc8, 0x0f, 0xd8, 0xd1, 0xbb, 0xc4,
+ 0x49, 0xe1, 0x7e, 0xd5, 0x01, 0xc0, 0xdb, 0x09, 0x8a, 0x70, 0xc4, 0x28, 0x05, 0x3d, 0xce, 0xe4,
+ 0xdd, 0x44, 0x1a, 0xd8, 0x88, 0x62, 0xa4, 0x42, 0xe4, 0x66, 0x07, 0x64, 0xed, 0xde, 0x1e, 0xa9,
+ 0xa2, 0x68, 0xb6, 0xcf, 0xd0, 0x47, 0x25, 0x9f, 0x56, 0x5c, 0x81, 0xb0, 0x16, 0x38, 0xad, 0x7e,
+ 0x36, 0xcd, 0xd2, 0xc2, 0x59, 0xe5, 0x5a, 0xd4, 0x38, 0x4a, 0x42, 0xfc, 0xfe, 0xdb, 0x7d, 0x33,
+ 0x22, 0x93, 0x04, 0x59, 0xe5, 0xe6, 0x66, 0xc1, 0x28, 0x3b, 0xf4, 0xb4, 0xf7, 0x0b, 0xd9, 0x64,
+ 0xb6, 0x36, 0x60, 0x54, 0x6c, 0x44, 0x19, 0x8a, 0x46, 0x2d, 0x37, 0xf8, 0x1f, 0xe8, 0x09, 0x29,
+ 0xc9, 0x1a, 0xcc, 0x43, 0x34, 0x61, 0x98, 0x57, 0xf4, 0x17, 0xb1, 0x2c, 0xe4, 0x0e, 0xba, 0xfe,
+ 0x5d, 0xbf, 0xa8, 0x4e, 0xbd, 0xc3, 0xe7, 0x1c, 0x9a, 0x01, 0x72, 0x60, 0x0c, 0xed, 0x6a, 0xb3,
+ 0x37, 0x42, 0x57, 0x6d, 0x84, 0x2b, 0x59, 0x2e, 0x53, 0x63, 0x7e, 0x47, 0xd1, 0x01, 0x1f, 0x93,
+ 0xa3, 0xe7, 0x33, 0x60, 0x0d, 0x89, 0x26, 0x65, 0x3d, 0x75, 0xbd, 0x0b, 0x39, 0xe2, 0xcf, 0xde,
+ 0xdc, 0xcb, 0x9f, 0x77, 0x55, 0xac, 0xa7, 0xb8, 0x8f, 0x4f, 0x3b, 0xdf, 0xc2, 0x04, 0x7c, 0x09,
+ 0x48, 0x6e, 0xfb, 0x7a, 0xdc, 0x0e, 0xd8, 0xf3, 0xe1, 0x59, 0xf8, 0x93, 0x2a, 0xe7, 0xac, 0x44,
+ 0x08, 0xf2, 0xa2, 0x31, 0x27, 0xbf, 0x18, 0xdc, 0xde, 0x8b, 0x23, 0x91, 0xbb, 0x1f, 0x96, 0x49,
+ 0x9c, 0x57, 0xc6, 0x3c, 0xae, 0x1d, 0x67, 0x97, 0xb0, 0x9d, 0xe0, 0xdd, 0x53, 0xfc, 0x46, 0x04,
+ 0xe3, 0x7b, 0x6a, 0x2b, 0xf6, 0x38, 0xe6, 0x4a, 0x02, 0xa7, 0x66, 0x09, 0xa8, 0x1a, 0xf5, 0xd3,
+ 0x77, 0xde, 0x0e, 0x26, 0x7f, 0x9a, 0x99, 0x01, 0x6c, 0xb1, 0xa5, 0x45, 0x40, 0xf9, 0x25, 0x9e,
+ 0x1d, 0x23, 0xf1, 0x05, 0x46, 0x72, 0x27, 0x33, 0xa5, 0xd3, 0xa9, 0x62, 0x9d, 0x15, 0x50, 0xbe,
+ 0x89, 0x86, 0x95, 0x08, 0xcf, 0xd0, 0x58, 0x78, 0xcb, 0xc5, 0x6a, 0x2e, 0x75, 0xf6, 0x80, 0xf3,
+ 0xf6, 0xaa, 0x39, 0x1f, 0x97, 0xf5, 0xd9, 0xa5, 0x79, 0xff, 0xec, 0xfa, 0x8e, 0x10, 0x33, 0x24,
+ 0x62, 0x0f, 0x5d, 0x12, 0x1e, 0x57, 0xa6, 0xee, 0x17, 0xe9, 0x2f, 0xb6, 0x66, 0xf3, 0xe3, 0x69,
+ 0xde, 0x16, 0x56, 0xea, 0x2c, 0xf3, 0xa1, 0x8f, 0x59, 0x1d, 0x43, 0x6a, 0x9c, 0x73, 0xb8, 0x8a,
+ 0x4a, 0xb3, 0x32, 0xe7, 0xa5, 0x51, 0xde, 0xc4, 0x37, 0x0b, 0x80, 0x26, 0x74, 0x90, 0x68, 0xc7,
+ 0x35, 0x9f, 0x9e, 0xf0, 0xfd, 0x74, 0x5f, 0x19, 0x85, 0x31, 0x06, 0xf2, 0x8f, 0x76, 0xdb, 0x10,
+ 0xa1, 0x3a, 0xfa, 0xfd, 0x74, 0xd6, 0x20, 0x52, 0xeb, 0x27, 0xc5, 0xbe, 0x67, 0x95, 0x0b, 0x5d,
+ 0xcb, 0xc7, 0x05, 0xde, 0x4d, 0x3e, 0x9e, 0x60, 0x22, 0x45, 0xc9, 0x99, 0xba, 0x79, 0x7e, 0x7d,
+ 0x5f, 0x62, 0x61, 0xd3, 0xc4, 0x9c, 0xe1, 0x2b, 0x4c, 0x53, 0x0a, 0xd5, 0x52, 0x9a, 0xae, 0x30,
+ 0x20, 0x4e, 0xcd, 0xc4, 0x9c, 0xb9, 0x60, 0xf6, 0xfe, 0x69, 0x8c, 0x01, 0xa9, 0x7c, 0x1d, 0xe7,
+ 0xb4, 0xeb, 0xa9, 0xc9, 0x15, 0x1b, 0x1f, 0xbd, 0x90, 0x7f, 0x4f, 0x4d, 0x41, 0x9f, 0xcd, 0xaa,
+ 0xf4, 0x77, 0xf0, 0x82, 0xee, 0xaa, 0xdf, 0x92, 0xaf, 0xad, 0x94, 0x4f, 0xd0, 0x67, 0xf7, 0xa7,
+ 0x60, 0xd2, 0x94, 0x8f, 0x67, 0x08, 0xa0, 0xd9, 0xc1, 0xbb, 0x57, 0x03, 0x38, 0x84, 0x27, 0xea,
+ 0x1f, 0xfe, 0x38, 0x98, 0x3f, 0x2d, 0x21, 0x04, 0x73, 0x81, 0xd1, 0xd7, 0xc3, 0x62, 0x94, 0x3d,
+ 0x8b, 0x5b, 0x5c, 0x95, 0xb6, 0x8f, 0x5e, 0x4f, 0x1d, 0x97, 0x12, 0x9b, 0x2b, 0x81, 0x44, 0x70,
+ 0xe1, 0xa6, 0xa3, 0xb6, 0x8f, 0x67, 0xe0, 0x7d, 0xd4, 0xf5, 0x1e, 0xbc, 0xf6, 0x6d, 0x31, 0x50,
+ 0x75, 0x03, 0xc7, 0xbb, 0x06, 0xc5, 0x9f, 0x36, 0xba, 0xe3, 0xdd, 0xf0, 0x1e, 0x8e, 0xe1, 0x1d,
+ 0x0a, 0x2f, 0x6b, 0xac, 0x5e, 0xe0, 0x1e, 0xeb, 0x08, 0xd9, 0x5b, 0x24, 0xe5, 0x68, 0x52, 0xca,
+ 0x9e, 0x8a, 0x0f, 0xa1, 0xd7, 0x42, 0x61, 0xa0, 0x66, 0xcf, 0x98, 0x68, 0x0d, 0x8b, 0x82, 0x87,
+ 0x8a, 0xd4, 0xd9, 0x3a, 0x6b, 0x41, 0x5d, 0xb5, 0x76, 0xbe, 0x2e, 0x20, 0x04, 0x5b, 0x26, 0xd0,
+ 0x1e, 0x71, 0xbd, 0x37, 0xe2, 0xe3, 0x22, 0xfe, 0x18, 0xa8, 0xed, 0x6c, 0xec, 0xb8, 0xf6, 0x9d,
+ 0x61, 0x5d, 0x11, 0x20, 0xba, 0xc6, 0xa3, 0x23, 0xaa, 0x92, 0x6b, 0xb8, 0x17, 0x5e, 0x45, 0x4a,
+ 0xf5, 0xf8, 0x75, 0x2d, 0x33, 0x64, 0xdc, 0x68, 0xc4, 0x84, 0xa8, 0xf4, 0xff, 0xbd, 0x95, 0x07,
+ 0x9f, 0x05, 0x8a, 0x0e, 0x0a, 0x8c, 0x62, 0x5a, 0x0d, 0xe6, 0xa4, 0xd3, 0x22, 0x51, 0xe0, 0x27,
+ 0x0b, 0xa0, 0xee, 0x03, 0x83, 0x2e, 0x1d, 0x11, 0x63, 0xf0, 0x67, 0x9f, 0xca, 0xb2, 0x30, 0x6a,
+ 0x74, 0x8c, 0x42, 0x14, 0xdb, 0x0b, 0x9c, 0xcc, 0xd1, 0xca, 0xe1, 0x4b, 0x31, 0x54, 0x83, 0xbd,
+ 0xe0, 0x29, 0x26, 0x19, 0x52, 0xa9, 0xe3, 0x87, 0xbf, 0xdc, 0x22, 0x07, 0xd9, 0xb7, 0x53, 0xf0,
+ 0xa0, 0xb5, 0x7f, 0x52, 0xa9, 0x18, 0x23, 0xa8, 0x80, 0x0e, 0xf9, 0x05, 0x48, 0x4f, 0x69, 0xfd,
+ 0x34, 0x10, 0x1b, 0x5f, 0x20, 0xba, 0x5c, 0xe3, 0xee, 0x18, 0x3a, 0x49, 0xa0, 0xac, 0xb9, 0xb0,
+ 0x4b, 0x3c, 0xb7, 0x48, 0x78, 0x9f, 0xdd, 0x3e, 0x5c, 0x22, 0xbc, 0x9d, 0x5b, 0x4a, 0x0a, 0x67,
+ 0xdf, 0x99, 0xd3, 0x45, 0xf1, 0x3d, 0xa2, 0x75, 0x32, 0x34, 0x7f, 0xd1, 0xb3, 0xa9, 0xda, 0x2a,
+ 0xb5, 0x64, 0x2c, 0x66, 0xc8, 0xd5, 0x1c, 0x47, 0xfb, 0x56, 0x73, 0xf6, 0x6e, 0x45, 0xaf, 0x0a,
+ 0x21, 0xc1, 0x48, 0x6b, 0x41, 0x77, 0x63, 0x0c, 0x95, 0x40, 0xb0, 0xba, 0x86, 0xa6, 0x7f, 0x47,
+ 0x5e, 0xed, 0xe4, 0x7c, 0x19, 0x52, 0xe2, 0xd1, 0x27, 0x7a, 0x36, 0x6e, 0x7d, 0x40, 0xcc, 0x90,
+ 0xca, 0x48, 0x80, 0x71, 0x90, 0xf0, 0x9d, 0x9a, 0x49, 0x6c, 0xf5, 0x22, 0x95, 0xa3, 0x1c, 0xdd,
+ },
+ { /* 2 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x20, 0x3c, 0x48, 0xf8, 0x48, 0x48, 0xc8, 0x8e, 0x2a, 0xf5, 0x02, 0xdd, 0x14, 0x30, 0x44, 0x8e,
+ 0x40, 0x78, 0x90, 0x33, 0x90, 0x90, 0x53, 0xdf, 0x54, 0x29, 0x04, 0x79, 0x28, 0x60, 0x88, 0xdf,
+ 0x60, 0x44, 0xd8, 0xcb, 0xd8, 0xd8, 0x9b, 0x51, 0x7e, 0xdc, 0x06, 0xa4, 0x3c, 0x50, 0xcc, 0x51,
+ 0x80, 0xf0, 0xe3, 0x66, 0xe3, 0xe3, 0xa6, 0x7d, 0xa8, 0x52, 0x08, 0xf2, 0x50, 0xc0, 0xd3, 0x7d,
+ 0xa0, 0xcc, 0xab, 0x9e, 0xab, 0xab, 0x6e, 0xf3, 0x82, 0xa7, 0x0a, 0x2f, 0x44, 0xf0, 0x97, 0xf3,
+ 0xc0, 0x88, 0x73, 0x55, 0x73, 0x73, 0xf5, 0xa2, 0xfc, 0x7b, 0x0c, 0x8b, 0x78, 0xa0, 0x5b, 0xa2,
+ 0xe0, 0xb4, 0x3b, 0xad, 0x3b, 0x3b, 0x3d, 0x2c, 0xd6, 0x8e, 0x0e, 0x56, 0x6c, 0x90, 0x1f, 0x2c,
+ 0xc3, 0x23, 0x05, 0xcc, 0x05, 0x05, 0x8f, 0xfa, 0x93, 0xa4, 0x10, 0x27, 0xa0, 0x43, 0x65, 0xfa,
+ 0xe3, 0x1f, 0x4d, 0x34, 0x4d, 0x4d, 0x47, 0x74, 0xb9, 0x51, 0x12, 0xfa, 0xb4, 0x73, 0x21, 0x74,
+ 0x83, 0x5b, 0x95, 0xff, 0x95, 0x95, 0xdc, 0x25, 0xc7, 0x8d, 0x14, 0x5e, 0x88, 0x23, 0xed, 0x25,
+ 0xa3, 0x67, 0xdd, 0x07, 0xdd, 0xdd, 0x14, 0xab, 0xed, 0x78, 0x16, 0x83, 0x9c, 0x13, 0xa9, 0xab,
+ 0x43, 0xd3, 0xe6, 0xaa, 0xe6, 0xe6, 0x29, 0x87, 0x3b, 0xf6, 0x18, 0xd5, 0xf0, 0x83, 0xb6, 0x87,
+ 0x63, 0xef, 0xae, 0x52, 0xae, 0xae, 0xe1, 0x09, 0x11, 0x03, 0x1a, 0x08, 0xe4, 0xb3, 0xf2, 0x09,
+ 0x03, 0xab, 0x76, 0x99, 0x76, 0x76, 0x7a, 0x58, 0x6f, 0xdf, 0x1c, 0xac, 0xd8, 0xe3, 0x3e, 0x58,
+ 0x23, 0x97, 0x3e, 0x61, 0x3e, 0x3e, 0xb2, 0xd6, 0x45, 0x2a, 0x1e, 0x71, 0xcc, 0xd3, 0x7a, 0xd6,
+ 0x45, 0x46, 0x0a, 0x5b, 0x0a, 0x0a, 0xdd, 0x37, 0xe5, 0x8b, 0x20, 0x4e, 0x83, 0x86, 0xca, 0x37,
+ 0x65, 0x7a, 0x42, 0xa3, 0x42, 0x42, 0x15, 0xb9, 0xcf, 0x7e, 0x22, 0x93, 0x97, 0xb6, 0x8e, 0xb9,
+ 0x05, 0x3e, 0x9a, 0x68, 0x9a, 0x9a, 0x8e, 0xe8, 0xb1, 0xa2, 0x24, 0x37, 0xab, 0xe6, 0x42, 0xe8,
+ 0x25, 0x02, 0xd2, 0x90, 0xd2, 0xd2, 0x46, 0x66, 0x9b, 0x57, 0x26, 0xea, 0xbf, 0xd6, 0x06, 0x66,
+ 0xc5, 0xb6, 0xe9, 0x3d, 0xe9, 0xe9, 0x7b, 0x4a, 0x4d, 0xd9, 0x28, 0xbc, 0xd3, 0x46, 0x19, 0x4a,
+ 0xe5, 0x8a, 0xa1, 0xc5, 0xa1, 0xa1, 0xb3, 0xc4, 0x67, 0x2c, 0x2a, 0x61, 0xc7, 0x76, 0x5d, 0xc4,
+ 0x85, 0xce, 0x79, 0x0e, 0x79, 0x79, 0x28, 0x95, 0x19, 0xf0, 0x2c, 0xc5, 0xfb, 0x26, 0x91, 0x95,
+ 0xa5, 0xf2, 0x31, 0xf6, 0x31, 0x31, 0xe0, 0x1b, 0x33, 0x05, 0x2e, 0x18, 0xef, 0x16, 0xd5, 0x1b,
+ 0x86, 0x65, 0x0f, 0x97, 0x0f, 0x0f, 0x52, 0xcd, 0x76, 0x2f, 0x30, 0x69, 0x23, 0xc5, 0xaf, 0xcd,
+ 0xa6, 0x59, 0x47, 0x6f, 0x47, 0x47, 0x9a, 0x43, 0x5c, 0xda, 0x32, 0xb4, 0x37, 0xf5, 0xeb, 0x43,
+ 0xc6, 0x1d, 0x9f, 0xa4, 0x9f, 0x9f, 0x01, 0x12, 0x22, 0x06, 0x34, 0x10, 0x0b, 0xa5, 0x27, 0x12,
+ 0xe6, 0x21, 0xd7, 0x5c, 0xd7, 0xd7, 0xc9, 0x9c, 0x08, 0xf3, 0x36, 0xcd, 0x1f, 0x95, 0x63, 0x9c,
+ 0x06, 0x95, 0xec, 0xf1, 0xec, 0xec, 0xf4, 0xb0, 0xde, 0x7d, 0x38, 0x9b, 0x73, 0x05, 0x7c, 0xb0,
+ 0x26, 0xa9, 0xa4, 0x09, 0xa4, 0xa4, 0x3c, 0x3e, 0xf4, 0x88, 0x3a, 0x46, 0x67, 0x35, 0x38, 0x3e,
+ 0x46, 0xed, 0x7c, 0xc2, 0x7c, 0x7c, 0xa7, 0x6f, 0x8a, 0x54, 0x3c, 0xe2, 0x5b, 0x65, 0xf4, 0x6f,
+ 0x66, 0xd1, 0x34, 0x3a, 0x34, 0x34, 0x6f, 0xe1, 0xa0, 0xa1, 0x3e, 0x3f, 0x4f, 0x55, 0xb0, 0xe1,
+ 0x8a, 0x8c, 0x14, 0xb6, 0x14, 0x14, 0x79, 0x6e, 0x09, 0xd5, 0x40, 0x9c, 0xc5, 0xcf, 0x57, 0x6e,
+ 0xaa, 0xb0, 0x5c, 0x4e, 0x5c, 0x5c, 0xb1, 0xe0, 0x23, 0x20, 0x42, 0x41, 0xd1, 0xff, 0x13, 0xe0,
+ 0xca, 0xf4, 0x84, 0x85, 0x84, 0x84, 0x2a, 0xb1, 0x5d, 0xfc, 0x44, 0xe5, 0xed, 0xaf, 0xdf, 0xb1,
+ 0xea, 0xc8, 0xcc, 0x7d, 0xcc, 0xcc, 0xe2, 0x3f, 0x77, 0x09, 0x46, 0x38, 0xf9, 0x9f, 0x9b, 0x3f,
+ 0x0a, 0x7c, 0xf7, 0xd0, 0xf7, 0xf7, 0xdf, 0x13, 0xa1, 0x87, 0x48, 0x6e, 0x95, 0x0f, 0x84, 0x13,
+ 0x2a, 0x40, 0xbf, 0x28, 0xbf, 0xbf, 0x17, 0x9d, 0x8b, 0x72, 0x4a, 0xb3, 0x81, 0x3f, 0xc0, 0x9d,
+ 0x4a, 0x04, 0x67, 0xe3, 0x67, 0x67, 0x8c, 0xcc, 0xf5, 0xae, 0x4c, 0x17, 0xbd, 0x6f, 0x0c, 0xcc,
+ 0x6a, 0x38, 0x2f, 0x1b, 0x2f, 0x2f, 0x44, 0x42, 0xdf, 0x5b, 0x4e, 0xca, 0xa9, 0x5f, 0x48, 0x42,
+ 0x49, 0xaf, 0x11, 0x7a, 0x11, 0x11, 0xf6, 0x94, 0x9a, 0x71, 0x50, 0xbb, 0x65, 0x8c, 0x32, 0x94,
+ 0x69, 0x93, 0x59, 0x82, 0x59, 0x59, 0x3e, 0x1a, 0xb0, 0x84, 0x52, 0x66, 0x71, 0xbc, 0x76, 0x1a,
+ 0x09, 0xd7, 0x81, 0x49, 0x81, 0x81, 0xa5, 0x4b, 0xce, 0x58, 0x54, 0xc2, 0x4d, 0xec, 0xba, 0x4b,
+ 0x29, 0xeb, 0xc9, 0xb1, 0xc9, 0xc9, 0x6d, 0xc5, 0xe4, 0xad, 0x56, 0x1f, 0x59, 0xdc, 0xfe, 0xc5,
+ 0xc9, 0x5f, 0xf2, 0x1c, 0xf2, 0xf2, 0x50, 0xe9, 0x32, 0x23, 0x58, 0x49, 0x35, 0x4c, 0xe1, 0xe9,
+ 0xe9, 0x63, 0xba, 0xe4, 0xba, 0xba, 0x98, 0x67, 0x18, 0xd6, 0x5a, 0x94, 0x21, 0x7c, 0xa5, 0x67,
+ 0x89, 0x27, 0x62, 0x2f, 0x62, 0x62, 0x03, 0x36, 0x66, 0x0a, 0x5c, 0x30, 0x1d, 0x2c, 0x69, 0x36,
+ 0xa9, 0x1b, 0x2a, 0xd7, 0x2a, 0x2a, 0xcb, 0xb8, 0x4c, 0xff, 0x5e, 0xed, 0x09, 0x1c, 0x2d, 0xb8,
+ 0xcf, 0xca, 0x1e, 0xed, 0x1e, 0x1e, 0xa4, 0x59, 0xec, 0x5e, 0x60, 0xd2, 0x46, 0x49, 0x9d, 0x59,
+ 0xef, 0xf6, 0x56, 0x15, 0x56, 0x56, 0x6c, 0xd7, 0xc6, 0xab, 0x62, 0x0f, 0x52, 0x79, 0xd9, 0xd7,
+ 0x8f, 0xb2, 0x8e, 0xde, 0x8e, 0x8e, 0xf7, 0x86, 0xb8, 0x77, 0x64, 0xab, 0x6e, 0x29, 0x15, 0x86,
+ 0xaf, 0x8e, 0xc6, 0x26, 0xc6, 0xc6, 0x3f, 0x08, 0x92, 0x82, 0x66, 0x76, 0x7a, 0x19, 0x51, 0x08,
+ 0x4f, 0x3a, 0xfd, 0x8b, 0xfd, 0xfd, 0x02, 0x24, 0x44, 0x0c, 0x68, 0x20, 0x16, 0x89, 0x4e, 0x24,
+ 0x6f, 0x06, 0xb5, 0x73, 0xb5, 0xb5, 0xca, 0xaa, 0x6e, 0xf9, 0x6a, 0xfd, 0x02, 0xb9, 0x0a, 0xaa,
+ 0x0f, 0x42, 0x6d, 0xb8, 0x6d, 0x6d, 0x51, 0xfb, 0x10, 0x25, 0x6c, 0x59, 0x3e, 0xe9, 0xc6, 0xfb,
+ 0x2f, 0x7e, 0x25, 0x40, 0x25, 0x25, 0x99, 0x75, 0x3a, 0xd0, 0x6e, 0x84, 0x2a, 0xd9, 0x82, 0x75,
+ 0x0c, 0xe9, 0x1b, 0x21, 0x1b, 0x1b, 0x2b, 0xa3, 0x7f, 0xfa, 0x70, 0xf5, 0xe6, 0x0a, 0xf8, 0xa3,
+ 0x2c, 0xd5, 0x53, 0xd9, 0x53, 0x53, 0xe3, 0x2d, 0x55, 0x0f, 0x72, 0x28, 0xf2, 0x3a, 0xbc, 0x2d,
+ 0x4c, 0x91, 0x8b, 0x12, 0x8b, 0x8b, 0x78, 0x7c, 0x2b, 0xd3, 0x74, 0x8c, 0xce, 0x6a, 0x70, 0x7c,
+ 0x6c, 0xad, 0xc3, 0xea, 0xc3, 0xc3, 0xb0, 0xf2, 0x01, 0x26, 0x76, 0x51, 0xda, 0x5a, 0x34, 0xf2,
+ 0x8c, 0x19, 0xf8, 0x47, 0xf8, 0xf8, 0x8d, 0xde, 0xd7, 0xa8, 0x78, 0x07, 0xb6, 0xca, 0x2b, 0xde,
+ 0xac, 0x25, 0xb0, 0xbf, 0xb0, 0xb0, 0x45, 0x50, 0xfd, 0x5d, 0x7a, 0xda, 0xa2, 0xfa, 0x6f, 0x50,
+ 0xcc, 0x61, 0x68, 0x74, 0x68, 0x68, 0xde, 0x01, 0x83, 0x81, 0x7c, 0x7e, 0x9e, 0xaa, 0xa3, 0x01,
+ 0xec, 0x5d, 0x20, 0x8c, 0x20, 0x20, 0x16, 0x8f, 0xa9, 0x74, 0x7e, 0xa3, 0x8a, 0x9a, 0xe7, 0x8f,
+ 0xd7, 0xdb, 0x28, 0xaf, 0x28, 0x28, 0xf2, 0xdc, 0x12, 0x69, 0x80, 0xfb, 0x49, 0x5d, 0xae, 0xdc,
+ 0xf7, 0xe7, 0x60, 0x57, 0x60, 0x60, 0x3a, 0x52, 0x38, 0x9c, 0x82, 0x26, 0x5d, 0x6d, 0xea, 0x52,
+ 0x97, 0xa3, 0xb8, 0x9c, 0xb8, 0xb8, 0xa1, 0x03, 0x46, 0x40, 0x84, 0x82, 0x61, 0x3d, 0x26, 0x03,
+ 0xb7, 0x9f, 0xf0, 0x64, 0xf0, 0xf0, 0x69, 0x8d, 0x6c, 0xb5, 0x86, 0x5f, 0x75, 0x0d, 0x62, 0x8d,
+ 0x57, 0x2b, 0xcb, 0xc9, 0xcb, 0xcb, 0x54, 0xa1, 0xba, 0x3b, 0x88, 0x09, 0x19, 0x9d, 0x7d, 0xa1,
+ 0x77, 0x17, 0x83, 0x31, 0x83, 0x83, 0x9c, 0x2f, 0x90, 0xce, 0x8a, 0xd4, 0x0d, 0xad, 0x39, 0x2f,
+ 0x17, 0x53, 0x5b, 0xfa, 0x5b, 0x5b, 0x07, 0x7e, 0xee, 0x12, 0x8c, 0x70, 0x31, 0xfd, 0xf5, 0x7e,
+ 0x37, 0x6f, 0x13, 0x02, 0x13, 0x13, 0xcf, 0xf0, 0xc4, 0xe7, 0x8e, 0xad, 0x25, 0xcd, 0xb1, 0xf0,
+ 0x14, 0xf8, 0x2d, 0x63, 0x2d, 0x2d, 0x7d, 0x26, 0x81, 0xcd, 0x90, 0xdc, 0xe9, 0x1e, 0xcb, 0x26,
+ 0x34, 0xc4, 0x65, 0x9b, 0x65, 0x65, 0xb5, 0xa8, 0xab, 0x38, 0x92, 0x01, 0xfd, 0x2e, 0x8f, 0xa8,
+ 0x54, 0x80, 0xbd, 0x50, 0xbd, 0xbd, 0x2e, 0xf9, 0xd5, 0xe4, 0x94, 0xa5, 0xc1, 0x7e, 0x43, 0xf9,
+ 0x74, 0xbc, 0xf5, 0xa8, 0xf5, 0xf5, 0xe6, 0x77, 0xff, 0x11, 0x96, 0x78, 0xd5, 0x4e, 0x07, 0x77,
+ 0x94, 0x08, 0xce, 0x05, 0xce, 0xce, 0xdb, 0x5b, 0x29, 0x9f, 0x98, 0x2e, 0xb9, 0xde, 0x18, 0x5b,
+ 0xb4, 0x34, 0x86, 0xfd, 0x86, 0x86, 0x13, 0xd5, 0x03, 0x6a, 0x9a, 0xf3, 0xad, 0xee, 0x5c, 0xd5,
+ 0xd4, 0x70, 0x5e, 0x36, 0x5e, 0x5e, 0x88, 0x84, 0x7d, 0xb6, 0x9c, 0x57, 0x91, 0xbe, 0x90, 0x84,
+ 0xf4, 0x4c, 0x16, 0xce, 0x16, 0x16, 0x40, 0x0a, 0x57, 0x43, 0x9e, 0x8a, 0x85, 0x8e, 0xd4, 0x0a,
+ 0x92, 0x9d, 0x22, 0xf4, 0x22, 0x22, 0x2f, 0xeb, 0xf7, 0xe2, 0xa0, 0xb5, 0xca, 0xdb, 0x64, 0xeb,
+ 0xb2, 0xa1, 0x6a, 0x0c, 0x6a, 0x6a, 0xe7, 0x65, 0xdd, 0x17, 0xa2, 0x68, 0xde, 0xeb, 0x20, 0x65,
+ 0xd2, 0xe5, 0xb2, 0xc7, 0xb2, 0xb2, 0x7c, 0x34, 0xa3, 0xcb, 0xa4, 0xcc, 0xe2, 0xbb, 0xec, 0x34,
+ 0xf2, 0xd9, 0xfa, 0x3f, 0xfa, 0xfa, 0xb4, 0xba, 0x89, 0x3e, 0xa6, 0x11, 0xf6, 0x8b, 0xa8, 0xba,
+ 0x12, 0x6d, 0xc1, 0x92, 0xc1, 0xc1, 0x89, 0x96, 0x5f, 0xb0, 0xa8, 0x47, 0x9a, 0x1b, 0xb7, 0x96,
+ 0x32, 0x51, 0x89, 0x6a, 0x89, 0x89, 0x41, 0x18, 0x75, 0x45, 0xaa, 0x9a, 0x8e, 0x2b, 0xf3, 0x18,
+ 0x52, 0x15, 0x51, 0xa1, 0x51, 0x51, 0xda, 0x49, 0x0b, 0x99, 0xac, 0x3e, 0xb2, 0x7b, 0x3f, 0x49,
+ 0x72, 0x29, 0x19, 0x59, 0x19, 0x19, 0x12, 0xc7, 0x21, 0x6c, 0xae, 0xe3, 0xa6, 0x4b, 0x7b, 0xc7,
+ 0x51, 0xbe, 0x27, 0x38, 0x27, 0x27, 0xa0, 0x11, 0x64, 0x46, 0xb0, 0x92, 0x6a, 0x98, 0x01, 0x11,
+ 0x71, 0x82, 0x6f, 0xc0, 0x6f, 0x6f, 0x68, 0x9f, 0x4e, 0xb3, 0xb2, 0x4f, 0x7e, 0xa8, 0x45, 0x9f,
+ 0x11, 0xc6, 0xb7, 0x0b, 0xb7, 0xb7, 0xf3, 0xce, 0x30, 0x6f, 0xb4, 0xeb, 0x42, 0xf8, 0x89, 0xce,
+ 0x31, 0xfa, 0xff, 0xf3, 0xff, 0xff, 0x3b, 0x40, 0x1a, 0x9a, 0xb6, 0x36, 0x56, 0xc8, 0xcd, 0x40,
+ 0xd1, 0x4e, 0xc4, 0x5e, 0xc4, 0xc4, 0x06, 0x6c, 0xcc, 0x14, 0xb8, 0x60, 0x3a, 0x58, 0xd2, 0x6c,
+ 0xf1, 0x72, 0x8c, 0xa6, 0x8c, 0x8c, 0xce, 0xe2, 0xe6, 0xe1, 0xba, 0xbd, 0x2e, 0x68, 0x96, 0xe2,
+ 0x91, 0x36, 0x54, 0x6d, 0x54, 0x54, 0x55, 0xb3, 0x98, 0x3d, 0xbc, 0x19, 0x12, 0x38, 0x5a, 0xb3,
+ 0xb1, 0x0a, 0x1c, 0x95, 0x1c, 0x1c, 0x9d, 0x3d, 0xb2, 0xc8, 0xbe, 0xc4, 0x06, 0x08, 0x1e, 0x3d,
+ 0x5d, 0x57, 0x3c, 0x19, 0x3c, 0x3c, 0x8b, 0xb2, 0x1b, 0xbc, 0xc0, 0x67, 0x8c, 0x92, 0xf9, 0xb2,
+ 0x7d, 0x6b, 0x74, 0xe1, 0x74, 0x74, 0x43, 0x3c, 0x31, 0x49, 0xc2, 0xba, 0x98, 0xa2, 0xbd, 0x3c,
+ 0x1d, 0x2f, 0xac, 0x2a, 0xac, 0xac, 0xd8, 0x6d, 0x4f, 0x95, 0xc4, 0x1e, 0xa4, 0xf2, 0x71, 0x6d,
+ 0x3d, 0x13, 0xe4, 0xd2, 0xe4, 0xe4, 0x10, 0xe3, 0x65, 0x60, 0xc6, 0xc3, 0xb0, 0xc2, 0x35, 0xe3,
+ 0xdd, 0xa7, 0xdf, 0x7f, 0xdf, 0xdf, 0x2d, 0xcf, 0xb3, 0xee, 0xc8, 0x95, 0xdc, 0x52, 0x2a, 0xcf,
+ 0xfd, 0x9b, 0x97, 0x87, 0x97, 0x97, 0xe5, 0x41, 0x99, 0x1b, 0xca, 0x48, 0xc8, 0x62, 0x6e, 0x41,
+ 0x9d, 0xdf, 0x4f, 0x4c, 0x4f, 0x4f, 0x7e, 0x10, 0xe7, 0xc7, 0xcc, 0xec, 0xf4, 0x32, 0xa2, 0x10,
+ 0xbd, 0xe3, 0x07, 0xb4, 0x07, 0x07, 0xb6, 0x9e, 0xcd, 0x32, 0xce, 0x31, 0xe0, 0x02, 0xe6, 0x9e,
+ 0x9e, 0x74, 0x39, 0xd5, 0x39, 0x39, 0x04, 0x48, 0x88, 0x18, 0xd0, 0x40, 0x2c, 0xd1, 0x9c, 0x48,
+ 0xbe, 0x48, 0x71, 0x2d, 0x71, 0x71, 0xcc, 0xc6, 0xa2, 0xed, 0xd2, 0x9d, 0x38, 0xe1, 0xd8, 0xc6,
+ 0xde, 0x0c, 0xa9, 0xe6, 0xa9, 0xa9, 0x57, 0x97, 0xdc, 0x31, 0xd4, 0x39, 0x04, 0xb1, 0x14, 0x97,
+ 0xfe, 0x30, 0xe1, 0x1e, 0xe1, 0xe1, 0x9f, 0x19, 0xf6, 0xc4, 0xd6, 0xe4, 0x10, 0x81, 0x50, 0x19,
+ 0x1e, 0x84, 0xda, 0xb3, 0xda, 0xda, 0xa2, 0x35, 0x20, 0x4a, 0xd8, 0xb2, 0x7c, 0x11, 0x4f, 0x35,
+ 0x3e, 0xb8, 0x92, 0x4b, 0x92, 0x92, 0x6a, 0xbb, 0x0a, 0xbf, 0xda, 0x6f, 0x68, 0x21, 0x0b, 0xbb,
+ 0x5e, 0xfc, 0x4a, 0x80, 0x4a, 0x4a, 0xf1, 0xea, 0x74, 0x63, 0xdc, 0xcb, 0x54, 0x71, 0xc7, 0xea,
+ 0x7e, 0xc0, 0x02, 0x78, 0x02, 0x02, 0x39, 0x64, 0x5e, 0x96, 0xde, 0x16, 0x40, 0x41, 0x83, 0x64,
+ 0x18, 0x11, 0x36, 0x42, 0x36, 0x36, 0x56, 0x85, 0xfe, 0x37, 0xe0, 0x29, 0x0f, 0x14, 0x33, 0x85,
+ 0x38, 0x2d, 0x7e, 0xba, 0x7e, 0x7e, 0x9e, 0x0b, 0xd4, 0xc2, 0xe2, 0xf4, 0x1b, 0x24, 0x77, 0x0b,
+ 0x58, 0x69, 0xa6, 0x71, 0xa6, 0xa6, 0x05, 0x5a, 0xaa, 0x1e, 0xe4, 0x50, 0x27, 0x74, 0xbb, 0x5a,
+ 0x78, 0x55, 0xee, 0x89, 0xee, 0xee, 0xcd, 0xd4, 0x80, 0xeb, 0xe6, 0x8d, 0x33, 0x44, 0xff, 0xd4,
+ 0x98, 0xe1, 0xd5, 0x24, 0xd5, 0xd5, 0xf0, 0xf8, 0x56, 0x65, 0xe8, 0xdb, 0x5f, 0xd4, 0xe0, 0xf8,
+ 0xb8, 0xdd, 0x9d, 0xdc, 0x9d, 0x9d, 0x38, 0x76, 0x7c, 0x90, 0xea, 0x06, 0x4b, 0xe4, 0xa4, 0x76,
+ 0xd8, 0x99, 0x45, 0x17, 0x45, 0x45, 0xa3, 0x27, 0x02, 0x4c, 0xec, 0xa2, 0x77, 0xb4, 0x68, 0x27,
+ 0xf8, 0xa5, 0x0d, 0xef, 0x0d, 0x0d, 0x6b, 0xa9, 0x28, 0xb9, 0xee, 0x7f, 0x63, 0x84, 0x2c, 0xa9,
+ 0xdb, 0x32, 0x33, 0x8e, 0x33, 0x33, 0xd9, 0x7f, 0x6d, 0x93, 0xf0, 0x0e, 0xaf, 0x57, 0x56, 0x7f,
+ 0xfb, 0x0e, 0x7b, 0x76, 0x7b, 0x7b, 0x11, 0xf1, 0x47, 0x66, 0xf2, 0xd3, 0xbb, 0x67, 0x12, 0xf1,
+ 0x9b, 0x4a, 0xa3, 0xbd, 0xa3, 0xa3, 0x8a, 0xa0, 0x39, 0xba, 0xf4, 0x77, 0x87, 0x37, 0xde, 0xa0,
+ 0xbb, 0x76, 0xeb, 0x45, 0xeb, 0xeb, 0x42, 0x2e, 0x13, 0x4f, 0xf6, 0xaa, 0x93, 0x07, 0x9a, 0x2e,
+ 0x5b, 0xc2, 0xd0, 0xe8, 0xd0, 0xd0, 0x7f, 0x02, 0xc5, 0xc1, 0xf8, 0xfc, 0xff, 0x97, 0x85, 0x02,
+ 0x7b, 0xfe, 0x98, 0x10, 0x98, 0x98, 0xb7, 0x8c, 0xef, 0x34, 0xfa, 0x21, 0xeb, 0xa7, 0xc1, 0x8c,
+ 0x1b, 0xba, 0x40, 0xdb, 0x40, 0x40, 0x2c, 0xdd, 0x91, 0xe8, 0xfc, 0x85, 0xd7, 0xf7, 0x0d, 0xdd,
+ 0x3b, 0x86, 0x08, 0x23, 0x08, 0x08, 0xe4, 0x53, 0xbb, 0x1d, 0xfe, 0x58, 0xc3, 0xc7, 0x49, 0x53,
+ 0x6d, 0x75, 0x50, 0x9d, 0x50, 0x50, 0x27, 0x7b, 0x24, 0xd2, 0xc3, 0x35, 0x92, 0xba, 0x9f, 0x7b,
+ 0x4d, 0x49, 0x18, 0x65, 0x18, 0x18, 0xef, 0xf5, 0x0e, 0x27, 0xc1, 0xe8, 0x86, 0x8a, 0xdb, 0xf5,
+ 0x2d, 0x0d, 0xc0, 0xae, 0xc0, 0xc0, 0x74, 0xa4, 0x70, 0xfb, 0xc7, 0x4c, 0xba, 0xda, 0x17, 0xa4,
+ 0x0d, 0x31, 0x88, 0x56, 0x88, 0x88, 0xbc, 0x2a, 0x5a, 0x0e, 0xc5, 0x91, 0xae, 0xea, 0x53, 0x2a,
+ 0xed, 0x85, 0xb3, 0xfb, 0xb3, 0xb3, 0x81, 0x06, 0x8c, 0x80, 0xcb, 0xc7, 0xc2, 0x7a, 0x4c, 0x06,
+ 0xcd, 0xb9, 0xfb, 0x03, 0xfb, 0xfb, 0x49, 0x88, 0xa6, 0x75, 0xc9, 0x1a, 0xd6, 0x4a, 0x08, 0x88,
+ 0xad, 0xfd, 0x23, 0xc8, 0x23, 0x23, 0xd2, 0xd9, 0xd8, 0xa9, 0xcf, 0xbe, 0xea, 0x1a, 0xc4, 0xd9,
+ 0x8d, 0xc1, 0x6b, 0x30, 0x6b, 0x6b, 0x1a, 0x57, 0xf2, 0x5c, 0xcd, 0x63, 0xfe, 0x2a, 0x80, 0x57,
+ 0xae, 0x56, 0x55, 0x51, 0x55, 0x55, 0xa8, 0x81, 0xb7, 0x76, 0xd3, 0x12, 0x32, 0xf9, 0xfa, 0x81,
+ 0x8e, 0x6a, 0x1d, 0xa9, 0x1d, 0x1d, 0x60, 0x0f, 0x9d, 0x83, 0xd1, 0xcf, 0x26, 0xc9, 0xbe, 0x0f,
+ 0xee, 0x2e, 0xc5, 0x62, 0xc5, 0xc5, 0xfb, 0x5e, 0xe3, 0x5f, 0xd7, 0x6b, 0x1a, 0x99, 0x72, 0x5e,
+ 0xce, 0x12, 0x8d, 0x9a, 0x8d, 0x8d, 0x33, 0xd0, 0xc9, 0xaa, 0xd5, 0xb6, 0x0e, 0xa9, 0x36, 0xd0,
+ 0x2e, 0xa6, 0xb6, 0x37, 0xb6, 0xb6, 0x0e, 0xfc, 0x1f, 0x24, 0xdb, 0xe0, 0x62, 0x39, 0x29, 0xfc,
+ 0x0e, 0x9a, 0xfe, 0xcf, 0xfe, 0xfe, 0xc6, 0x72, 0x35, 0xd1, 0xd9, 0x3d, 0x76, 0x09, 0x6d, 0x72,
+ 0x6e, 0xde, 0x26, 0x04, 0x26, 0x26, 0x5d, 0x23, 0x4b, 0x0d, 0xdf, 0x99, 0x4a, 0x59, 0xa1, 0x23,
+ 0x4e, 0xe2, 0x6e, 0xfc, 0x6e, 0x6e, 0x95, 0xad, 0x61, 0xf8, 0xdd, 0x44, 0x5e, 0x69, 0xe5, 0xad,
+ 0x28, 0x33, 0x5a, 0xc6, 0x5a, 0x5a, 0xfa, 0x4c, 0xc1, 0x59, 0xe3, 0x7b, 0x11, 0x3c, 0x55, 0x4c,
+ 0x08, 0x0f, 0x12, 0x3e, 0x12, 0x12, 0x32, 0xc2, 0xeb, 0xac, 0xe1, 0xa6, 0x05, 0x0c, 0x11, 0xc2,
+ 0x68, 0x4b, 0xca, 0xf5, 0xca, 0xca, 0xa9, 0x93, 0x95, 0x70, 0xe7, 0x02, 0x39, 0x5c, 0xdd, 0x93,
+ 0x48, 0x77, 0x82, 0x0d, 0x82, 0x82, 0x61, 0x1d, 0xbf, 0x85, 0xe5, 0xdf, 0x2d, 0x6c, 0x99, 0x1d,
+ 0xa8, 0xc3, 0xb9, 0xa0, 0xb9, 0xb9, 0x5c, 0x31, 0x69, 0x0b, 0xeb, 0x89, 0x41, 0xfc, 0x86, 0x31,
+ 0x88, 0xff, 0xf1, 0x58, 0xf1, 0xf1, 0x94, 0xbf, 0x43, 0xfe, 0xe9, 0x54, 0x55, 0xcc, 0xc2, 0xbf,
+ 0xe8, 0xbb, 0x29, 0x93, 0x29, 0x29, 0x0f, 0xee, 0x3d, 0x22, 0xef, 0xf0, 0x69, 0x9c, 0x0e, 0xee,
+ 0xc8, 0x87, 0x61, 0x6b, 0x61, 0x61, 0xc7, 0x60, 0x17, 0xd7, 0xed, 0x2d, 0x7d, 0xac, 0x4a, 0x60,
+ 0xeb, 0x10, 0x5f, 0x0a, 0x5f, 0x5f, 0x75, 0xb6, 0x52, 0xfd, 0xf3, 0x5c, 0xb1, 0x7f, 0x30, 0xb6,
+ 0xcb, 0x2c, 0x17, 0xf2, 0x17, 0x17, 0xbd, 0x38, 0x78, 0x08, 0xf1, 0x81, 0xa5, 0x4f, 0x74, 0x38,
+ 0xab, 0x68, 0xcf, 0x39, 0xcf, 0xcf, 0x26, 0x69, 0x06, 0xd4, 0xf7, 0x25, 0x99, 0x1f, 0xb8, 0x69,
+ 0x8b, 0x54, 0x87, 0xc1, 0x87, 0x87, 0xee, 0xe7, 0x2c, 0x21, 0xf5, 0xf8, 0x8d, 0x2f, 0xfc, 0xe7,
+ 0x6b, 0xe0, 0xbc, 0x6c, 0xbc, 0xbc, 0xd3, 0xcb, 0xfa, 0xaf, 0xfb, 0xae, 0xe1, 0xbf, 0xe3, 0xcb,
+ 0x4b, 0xdc, 0xf4, 0x94, 0xf4, 0xf4, 0x1b, 0x45, 0xd0, 0x5a, 0xf9, 0x73, 0xf5, 0x8f, 0xa7, 0x45,
+ 0x2b, 0x98, 0x2c, 0x5f, 0x2c, 0x2c, 0x80, 0x14, 0xae, 0x86, 0xff, 0xd7, 0xc9, 0xdf, 0x6b, 0x14,
+ 0x0b, 0xa4, 0x64, 0xa7, 0x64, 0x64, 0x48, 0x9a, 0x84, 0x73, 0xfd, 0x0a, 0xdd, 0xef, 0x2f, 0x9a,
+ 0xe7, 0xf9, 0x44, 0x2b, 0x44, 0x44, 0x5e, 0x15, 0x2d, 0x07, 0x83, 0xa9, 0x57, 0x75, 0xc8, 0x15,
+ 0xc7, 0xc5, 0x0c, 0xd3, 0x0c, 0x0c, 0x96, 0x9b, 0x07, 0xf2, 0x81, 0x74, 0x43, 0x45, 0x8c, 0x9b,
+ 0xa7, 0x81, 0xd4, 0x18, 0xd4, 0xd4, 0x0d, 0xca, 0x79, 0x2e, 0x87, 0xd0, 0x7f, 0x15, 0x40, 0xca,
+ 0x87, 0xbd, 0x9c, 0xe0, 0x9c, 0x9c, 0xc5, 0x44, 0x53, 0xdb, 0x85, 0x0d, 0x6b, 0x25, 0x04, 0x44,
+ 0x67, 0x09, 0xa7, 0x4d, 0xa7, 0xa7, 0xf8, 0x68, 0x85, 0x55, 0x8b, 0x5b, 0x07, 0xb5, 0x1b, 0x68,
+ 0x47, 0x35, 0xef, 0xb5, 0xef, 0xef, 0x30, 0xe6, 0xaf, 0xa0, 0x89, 0x86, 0x13, 0x85, 0x5f, 0xe6,
+ 0x27, 0x71, 0x37, 0x7e, 0x37, 0x37, 0xab, 0xb7, 0xd1, 0x7c, 0x8f, 0x22, 0x2f, 0xd5, 0x93, 0xb7,
+ 0x07, 0x4d, 0x7f, 0x86, 0x7f, 0x7f, 0x63, 0x39, 0xfb, 0x89, 0x8d, 0xff, 0x3b, 0xe5, 0xd7, 0x39,
+ 0x24, 0xda, 0x41, 0xe7, 0x41, 0x41, 0xd1, 0xef, 0xbe, 0xa3, 0x93, 0x8e, 0xf7, 0x36, 0xad, 0xef,
+ 0x04, 0xe6, 0x09, 0x1f, 0x09, 0x09, 0x19, 0x61, 0x94, 0x56, 0x91, 0x53, 0xe3, 0x06, 0xe9, 0x61,
+ 0x64, 0xa2, 0xd1, 0xd4, 0xd1, 0xd1, 0x82, 0x30, 0xea, 0x8a, 0x97, 0xf7, 0xdf, 0x56, 0x25, 0x30,
+ 0x44, 0x9e, 0x99, 0x2c, 0x99, 0x99, 0x4a, 0xbe, 0xc0, 0x7f, 0x95, 0x2a, 0xcb, 0x66, 0x61, 0xbe,
+ 0xa4, 0x2a, 0xa2, 0x81, 0xa2, 0xa2, 0x77, 0x92, 0x16, 0xf1, 0x9b, 0x7c, 0xa7, 0xf6, 0x7e, 0x92,
+ 0x84, 0x16, 0xea, 0x79, 0xea, 0xea, 0xbf, 0x1c, 0x3c, 0x04, 0x99, 0xa1, 0xb3, 0xc6, 0x3a, 0x1c,
+ 0xe4, 0x52, 0x32, 0xb2, 0x32, 0x32, 0x24, 0x4d, 0x42, 0xd8, 0x9f, 0x05, 0x8f, 0x96, 0xf6, 0x4d,
+ 0xc4, 0x6e, 0x7a, 0x4a, 0x7a, 0x7a, 0xec, 0xc3, 0x68, 0x2d, 0x9d, 0xd8, 0x9b, 0xa6, 0xb2, 0xc3,
+ 0xa2, 0xbf, 0x4e, 0x70, 0x4e, 0x4e, 0x83, 0x22, 0xc8, 0x8c, 0xa3, 0xe7, 0xd4, 0xf3, 0x02, 0x22,
+ 0x82, 0x83, 0x06, 0x88, 0x06, 0x06, 0x4b, 0xac, 0xe2, 0x79, 0xa1, 0x3a, 0xc0, 0xc3, 0x46, 0xac,
+ 0xe2, 0xc7, 0xde, 0x43, 0xde, 0xde, 0xd0, 0xfd, 0x9c, 0xa5, 0xa7, 0x9e, 0xfc, 0x93, 0x8a, 0xfd,
+ 0xc2, 0xfb, 0x96, 0xbb, 0x96, 0x96, 0x18, 0x73, 0xb6, 0x50, 0xa5, 0x43, 0xe8, 0xa3, 0xce, 0x73,
+ 0x22, 0x4f, 0xad, 0x16, 0xad, 0xad, 0x25, 0x5f, 0x60, 0xde, 0xab, 0x15, 0x84, 0x33, 0xd1, 0x5f,
+ 0x02, 0x73, 0xe5, 0xee, 0xe5, 0xe5, 0xed, 0xd1, 0x4a, 0x2b, 0xa9, 0xc8, 0x90, 0x03, 0x95, 0xd1,
+ 0x62, 0x37, 0x3d, 0x25, 0x3d, 0x3d, 0x76, 0x80, 0x34, 0xf7, 0xaf, 0x6c, 0xac, 0x53, 0x59, 0x80,
+ 0x42, 0x0b, 0x75, 0xdd, 0x75, 0x75, 0xbe, 0x0e, 0x1e, 0x02, 0xad, 0xb1, 0xb8, 0x63, 0x1d, 0x0e,
+ 0x61, 0x9c, 0x4b, 0xbc, 0x4b, 0x4b, 0x0c, 0xd8, 0x5b, 0x28, 0xb3, 0xc0, 0x74, 0xb0, 0x67, 0xd8,
+ 0x41, 0xa0, 0x03, 0x44, 0x03, 0x03, 0xc4, 0x56, 0x71, 0xdd, 0xb1, 0x1d, 0x60, 0x80, 0x23, 0x56,
+ 0x21, 0xe4, 0xdb, 0x8f, 0xdb, 0xdb, 0x5f, 0x07, 0x0f, 0x01, 0xb7, 0xb9, 0x5c, 0xd0, 0xef, 0x07,
+ 0x01, 0xd8, 0x93, 0x77, 0x93, 0x93, 0x97, 0x89, 0x25, 0xf4, 0xb5, 0x64, 0x48, 0xe0, 0xab, 0x89,
+ 0xe1, 0x6c, 0xa8, 0xda, 0xa8, 0xa8, 0xaa, 0xa5, 0xf3, 0x7a, 0xbb, 0x32, 0x24, 0x70, 0xb4, 0xa5,
+ 0xc1, 0x50, 0xe0, 0x22, 0xe0, 0xe0, 0x62, 0x2b, 0xd9, 0x8f, 0xb9, 0xef, 0x30, 0x40, 0xf0, 0x2b,
+ 0xa1, 0x14, 0x38, 0xe9, 0x38, 0x38, 0xf9, 0x7a, 0xa7, 0x53, 0xbf, 0x4b, 0x0c, 0x10, 0x3c, 0x7a,
+ 0x81, 0x28, 0x70, 0x11, 0x70, 0x70, 0x31, 0xf4, 0x8d, 0xa6, 0xbd, 0x96, 0x18, 0x20, 0x78, 0xf4,
+ 0xba, 0xae, 0x78, 0x32, 0x78, 0x78, 0xd5, 0xa7, 0x36, 0xbb, 0x43, 0xce, 0xdb, 0xe7, 0x31, 0xa7,
+ 0x9a, 0x92, 0x30, 0xca, 0x30, 0x30, 0x1d, 0x29, 0x1c, 0x4e, 0x41, 0x13, 0xcf, 0xd7, 0x75, 0x29,
+ 0xfa, 0xd6, 0xe8, 0x01, 0xe8, 0xe8, 0x86, 0x78, 0x62, 0x92, 0x47, 0xb7, 0xf3, 0x87, 0xb9, 0x78,
+ 0xda, 0xea, 0xa0, 0xf9, 0xa0, 0xa0, 0x4e, 0xf6, 0x48, 0x67, 0x45, 0x6a, 0xe7, 0xb7, 0xfd, 0xf6,
+ 0x3a, 0x5e, 0x9b, 0x54, 0x9b, 0x9b, 0x73, 0xda, 0x9e, 0xe9, 0x4b, 0x3c, 0x8b, 0x27, 0xe2, 0xda,
+ 0x1a, 0x62, 0xd3, 0xac, 0xd3, 0xd3, 0xbb, 0x54, 0xb4, 0x1c, 0x49, 0xe1, 0x9f, 0x17, 0xa6, 0x54,
+ 0x7a, 0x26, 0x0b, 0x67, 0x0b, 0x0b, 0x20, 0x05, 0xca, 0xc0, 0x4f, 0x45, 0xa3, 0x47, 0x6a, 0x05,
+ 0x5a, 0x1a, 0x43, 0x9f, 0x43, 0x43, 0xe8, 0x8b, 0xe0, 0x35, 0x4d, 0x98, 0xb7, 0x77, 0x2e, 0x8b,
+ 0x79, 0x8d, 0x7d, 0xfe, 0x7d, 0x7d, 0x5a, 0x5d, 0xa5, 0x1f, 0x53, 0xe9, 0x7b, 0xa4, 0x54, 0x5d,
+ 0x59, 0xb1, 0x35, 0x06, 0x35, 0x35, 0x92, 0xd3, 0x8f, 0xea, 0x51, 0x34, 0x6f, 0x94, 0x10, 0xd3,
+ 0x39, 0xf5, 0xed, 0xcd, 0xed, 0xed, 0x09, 0x82, 0xf1, 0x36, 0x57, 0x90, 0x53, 0xc4, 0xdc, 0x82,
+ 0x19, 0xc9, 0xa5, 0x35, 0xa5, 0xa5, 0xc1, 0x0c, 0xdb, 0xc3, 0x55, 0x4d, 0x47, 0xf4, 0x98, 0x0c,
+ 0xf9, 0x7d, 0x9e, 0x98, 0x9e, 0x9e, 0xfc, 0x20, 0x0d, 0x4d, 0x5b, 0x1b, 0x2b, 0x64, 0x87, 0x20,
+ 0xd9, 0x41, 0xd6, 0x60, 0xd6, 0xd6, 0x34, 0xae, 0x27, 0xb8, 0x59, 0xc6, 0x3f, 0x54, 0xc3, 0xae,
+ 0xb9, 0x05, 0x0e, 0xab, 0x0e, 0x0e, 0xaf, 0xff, 0x59, 0x64, 0x5f, 0x62, 0x03, 0x04, 0x0f, 0xff,
+ 0x99, 0x39, 0x46, 0x53, 0x46, 0x46, 0x67, 0x71, 0x73, 0x91, 0x5d, 0xbf, 0x17, 0x34, 0x4b, 0x71,
+ 0xff, 0xe8, 0x72, 0x69, 0x72, 0x72, 0x08, 0x90, 0xd3, 0x30, 0x63, 0x80, 0x58, 0x61, 0xfb, 0x90,
+ 0xdf, 0xd4, 0x3a, 0x91, 0x3a, 0x3a, 0xc0, 0x1e, 0xf9, 0xc5, 0x61, 0x5d, 0x4c, 0x51, 0xbf, 0x1e,
+ 0xbf, 0x90, 0xe2, 0x5a, 0xe2, 0xe2, 0x5b, 0x4f, 0x87, 0x19, 0x67, 0xf9, 0x70, 0x01, 0x73, 0x4f,
+ 0x9f, 0xac, 0xaa, 0xa2, 0xaa, 0xaa, 0x93, 0xc1, 0xad, 0xec, 0x65, 0x24, 0x64, 0x31, 0x37, 0xc1,
+ 0x7f, 0x18, 0x91, 0x0f, 0x91, 0x91, 0xae, 0xed, 0x7b, 0x62, 0x6b, 0x72, 0x08, 0xa1, 0x28, 0xed,
+ 0x5f, 0x24, 0xd9, 0xf7, 0xd9, 0xd9, 0x66, 0x63, 0x51, 0x97, 0x69, 0xaf, 0x1c, 0x91, 0x6c, 0x63,
+ 0x3f, 0x60, 0x01, 0x3c, 0x01, 0x01, 0xfd, 0x32, 0x2f, 0x4b, 0x6f, 0x0b, 0x20, 0xc1, 0xa0, 0x32,
+ 0x1f, 0x5c, 0x49, 0xc4, 0x49, 0x49, 0x35, 0xbc, 0x05, 0xbe, 0x6d, 0xd6, 0x34, 0xf1, 0xe4, 0xbc,
+ 0x3c, 0xcb, 0x77, 0xa5, 0x77, 0x77, 0x87, 0x6a, 0x40, 0x94, 0x73, 0xa7, 0xf8, 0x22, 0x9e, 0x6a,
+ 0x1c, 0xf7, 0x3f, 0x5d, 0x3f, 0x3f, 0x4f, 0xe4, 0x6a, 0x61, 0x71, 0x7a, 0xec, 0x12, 0xda, 0xe4,
+ 0x7c, 0xb3, 0xe7, 0x96, 0xe7, 0xe7, 0xd4, 0xb5, 0x14, 0xbd, 0x77, 0xde, 0xd0, 0x42, 0x16, 0xb5,
+ 0x5c, 0x8f, 0xaf, 0x6e, 0xaf, 0xaf, 0x1c, 0x3b, 0x3e, 0x48, 0x75, 0x03, 0xc4, 0x72, 0x52, 0x3b,
+ 0xbc, 0x3b, 0x94, 0xc3, 0x94, 0x94, 0x21, 0x17, 0xe8, 0xc6, 0x7b, 0x55, 0xa8, 0xe2, 0x4d, 0x17,
+ 0x9c, 0x07, 0xdc, 0x3b, 0xdc, 0xdc, 0xe9, 0x99, 0xc2, 0x33, 0x79, 0x88, 0xbc, 0xd2, 0x09, 0x99,
+ 0xfc, 0x43, 0x04, 0xf0, 0x04, 0x04, 0x72, 0xc8, 0xbc, 0xef, 0x7f, 0x2c, 0x80, 0x82, 0xc5, 0xc8,
+ 0xdc, 0x7f, 0x4c, 0x08, 0x4c, 0x4c, 0xba, 0x46, 0x96, 0x1a, 0x7d, 0xf1, 0x94, 0xb2, 0x81, 0x46,
+ 0x30, 0x22, 0x6c, 0x84, 0x6c, 0x6c, 0xac, 0xc9, 0x3f, 0x6e, 0x03, 0x52, 0x1e, 0x28, 0x66, 0xc9,
+ 0x10, 0x1e, 0x24, 0x7c, 0x24, 0x24, 0x64, 0x47, 0x15, 0x9b, 0x01, 0x8f, 0x0a, 0x18, 0x22, 0x47,
+ 0x70, 0x5a, 0xfc, 0xb7, 0xfc, 0xfc, 0xff, 0x16, 0x6b, 0x47, 0x07, 0x2b, 0x36, 0x48, 0xee, 0x16,
+ 0x50, 0x66, 0xb4, 0x4f, 0xb4, 0xb4, 0x37, 0x98, 0x41, 0xb2, 0x05, 0xf6, 0x22, 0x78, 0xaa, 0x98,
+ 0xb0, 0xd2, 0x8f, 0xe2, 0x8f, 0x8f, 0x0a, 0xb4, 0x97, 0x3c, 0x0b, 0xa0, 0x4e, 0xe8, 0xb5, 0xb4,
+ 0x90, 0xee, 0xc7, 0x1a, 0xc7, 0xc7, 0xc2, 0x3a, 0xbd, 0xc9, 0x09, 0x7d, 0x5a, 0xd8, 0xf1, 0x3a,
+ 0xf0, 0xaa, 0x1f, 0xd1, 0x1f, 0x1f, 0x59, 0x6b, 0xc3, 0x15, 0x0f, 0xd9, 0x66, 0x88, 0x3d, 0x6b,
+ 0xd0, 0x96, 0x57, 0x29, 0x57, 0x57, 0x91, 0xe5, 0xe9, 0xe0, 0x0d, 0x04, 0x72, 0xb8, 0x79, 0xe5,
+ 0xf3, 0x01, 0x69, 0x48, 0x69, 0x69, 0x23, 0x33, 0xac, 0xca, 0x13, 0x75, 0xbe, 0x6b, 0x03, 0x33,
+ 0xd3, 0x3d, 0x21, 0xb0, 0x21, 0x21, 0xeb, 0xbd, 0x86, 0x3f, 0x11, 0xa8, 0xaa, 0x5b, 0x47, 0xbd,
+ 0xb3, 0x79, 0xf9, 0x7b, 0xf9, 0xf9, 0x70, 0xec, 0xf8, 0xe3, 0x17, 0x0c, 0x96, 0x0b, 0x8b, 0xec,
+ 0x93, 0x45, 0xb1, 0x83, 0xb1, 0xb1, 0xb8, 0x62, 0xd2, 0x16, 0x15, 0xd1, 0x82, 0x3b, 0xcf, 0x62,
+ 0x73, 0xf1, 0x8a, 0x2e, 0x8a, 0x8a, 0x85, 0x4e, 0x04, 0x98, 0x1b, 0x87, 0xee, 0xab, 0xd0, 0x4e,
+ 0x53, 0xcd, 0xc2, 0xd6, 0xc2, 0xc2, 0x4d, 0xc0, 0x2e, 0x6d, 0x19, 0x5a, 0xfa, 0x9b, 0x94, 0xc0,
+ 0x33, 0x89, 0x1a, 0x1d, 0x1a, 0x1a, 0xd6, 0x91, 0x50, 0xb1, 0x1f, 0xfe, 0xc6, 0xcb, 0x58, 0x91,
+ 0x13, 0xb5, 0x52, 0xe5, 0x52, 0x52, 0x1e, 0x1f, 0x7a, 0x44, 0x1d, 0x23, 0xd2, 0xfb, 0x1c, 0x1f,
+ 0x75, 0x64, 0x66, 0xdf, 0x66, 0x66, 0x71, 0xfe, 0xda, 0xe5, 0x23, 0x1c, 0x9d, 0xae, 0xac, 0xfe,
+ 0x55, 0x58, 0x2e, 0x27, 0x2e, 0x2e, 0xb9, 0x70, 0xf0, 0x10, 0x21, 0xc1, 0x89, 0x9e, 0xe8, 0x70,
+ 0x35, 0x1c, 0xf6, 0xec, 0xf6, 0xf6, 0x22, 0x21, 0x8e, 0xcc, 0x27, 0x65, 0xb5, 0xce, 0x24, 0x21,
+ 0x15, 0x20, 0xbe, 0x14, 0xbe, 0xbe, 0xea, 0xaf, 0xa4, 0x39, 0x25, 0xb8, 0xa1, 0xfe, 0x60, 0xaf,
+ 0xf5, 0x94, 0x85, 0xb9, 0x85, 0x85, 0xd7, 0x83, 0x72, 0xb7, 0x2b, 0xee, 0xcd, 0x6e, 0x7f, 0x83,
+ 0xd5, 0xa8, 0xcd, 0x41, 0xcd, 0xcd, 0x1f, 0x0d, 0x58, 0x42, 0x29, 0x33, 0xd9, 0x5e, 0x3b, 0x0d,
+ 0xb5, 0xec, 0x15, 0x8a, 0x15, 0x15, 0x84, 0x5c, 0x26, 0x9e, 0x2f, 0x97, 0xe5, 0x0e, 0xf7, 0x5c,
+ 0x95, 0xd0, 0x5d, 0x72, 0x5d, 0x5d, 0x4c, 0xd2, 0x0c, 0x6b, 0x2d, 0x4a, 0xf1, 0x3e, 0xb3, 0xd2,
+ 0xb6, 0x47, 0x63, 0x13, 0x63, 0x63, 0xfe, 0x04, 0x49, 0x41, 0x33, 0x3b, 0x3d, 0xed, 0xc9, 0x04,
+ 0x96, 0x7b, 0x2b, 0xeb, 0x2b, 0x2b, 0x36, 0x8a, 0x63, 0xb4, 0x31, 0xe6, 0x29, 0xdd, 0x8d, 0x8a,
+ 0xf6, 0x3f, 0xf3, 0x20, 0xf3, 0xf3, 0xad, 0xdb, 0x1d, 0x68, 0x37, 0x42, 0x15, 0x8d, 0x41, 0xdb,
+ 0xd6, 0x03, 0xbb, 0xd8, 0xbb, 0xbb, 0x65, 0x55, 0x37, 0x9d, 0x35, 0x9f, 0x01, 0xbd, 0x05, 0x55,
+ 0x36, 0xb7, 0x80, 0x75, 0x80, 0x80, 0x58, 0x79, 0xe1, 0x13, 0x3b, 0xc9, 0x6d, 0x2d, 0x1a, 0x79,
+ 0x16, 0x8b, 0xc8, 0x8d, 0xc8, 0xc8, 0x90, 0xf7, 0xcb, 0xe6, 0x39, 0x14, 0x79, 0x1d, 0x5e, 0xf7,
+ 0x76, 0xcf, 0x10, 0x46, 0x10, 0x10, 0x0b, 0xa6, 0xb5, 0x3a, 0x3f, 0xb0, 0x45, 0x4d, 0x92, 0xa6,
+ 0x56, 0xf3, 0x58, 0xbe, 0x58, 0x58, 0xc3, 0x28, 0x9f, 0xcf, 0x3d, 0x6d, 0x51, 0x7d, 0xd6, 0x28,
+ },
+ { /* 3 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x85, 0x44, 0xdf, 0x52, 0x7f, 0xc6, 0x98, 0x60, 0xd4, 0x52, 0x0e, 0x65, 0x07, 0x9f, 0x86, 0xea,
+ 0xc9, 0x88, 0x7d, 0xa4, 0xfe, 0x4f, 0xf3, 0xc0, 0x6b, 0xa4, 0x1c, 0xca, 0x0e, 0xfd, 0xcf, 0x17,
+ 0x4c, 0xcc, 0xa2, 0xf6, 0x81, 0x89, 0x6b, 0xa0, 0xbf, 0xf6, 0x12, 0xaf, 0x09, 0x62, 0x49, 0xfd,
+ 0x51, 0xd3, 0xfa, 0x8b, 0x3f, 0x9e, 0x25, 0x43, 0xd6, 0x8b, 0x38, 0x57, 0x1c, 0x39, 0x5d, 0x2e,
+ 0xd4, 0x97, 0x25, 0xd9, 0x40, 0x58, 0xbd, 0x23, 0x02, 0xd9, 0x36, 0x32, 0x1b, 0xa6, 0xdb, 0xc4,
+ 0x98, 0x5b, 0x87, 0x2f, 0xc1, 0xd1, 0xd6, 0x83, 0xbd, 0x2f, 0x24, 0x9d, 0x12, 0xc4, 0x92, 0x39,
+ 0x1d, 0x1f, 0x58, 0x7d, 0xbe, 0x17, 0x4e, 0xe3, 0x69, 0x7d, 0x2a, 0xf8, 0x15, 0x5b, 0x14, 0xd3,
+ 0xa2, 0x65, 0x37, 0xd5, 0x7e, 0xff, 0x4a, 0x86, 0x6f, 0xd5, 0x70, 0xae, 0x38, 0x72, 0xba, 0x5c,
+ 0x27, 0x21, 0xe8, 0x87, 0x01, 0x39, 0xd2, 0xe6, 0xbb, 0x87, 0x7e, 0xcb, 0x3f, 0xed, 0x3c, 0xb6,
+ 0x6b, 0xed, 0x4a, 0x71, 0x80, 0xb0, 0xb9, 0x46, 0x04, 0x71, 0x6c, 0x64, 0x36, 0x8f, 0x75, 0x4b,
+ 0xee, 0xa9, 0x95, 0x23, 0xff, 0x76, 0x21, 0x26, 0xd0, 0x23, 0x62, 0x01, 0x31, 0x10, 0xf3, 0xa1,
+ 0xf3, 0xb6, 0xcd, 0x5e, 0x41, 0x61, 0x6f, 0xc5, 0xb9, 0x5e, 0x48, 0xf9, 0x24, 0x4b, 0xe7, 0x72,
+ 0x76, 0xf2, 0x12, 0x0c, 0x3e, 0xa7, 0xf7, 0xa5, 0x6d, 0x0c, 0x46, 0x9c, 0x23, 0xd4, 0x61, 0x98,
+ 0x3a, 0x3e, 0xb0, 0xfa, 0xbf, 0x2e, 0x9c, 0x05, 0xd2, 0xfa, 0x54, 0x33, 0x2a, 0xb6, 0x28, 0x65,
+ 0xbf, 0x7a, 0x6f, 0xa8, 0xc0, 0xe8, 0x04, 0x65, 0x06, 0xa8, 0x5a, 0x56, 0x2d, 0x29, 0xae, 0x8f,
+ 0x87, 0xca, 0x6e, 0x69, 0xfc, 0x3d, 0x94, 0xcf, 0xde, 0x69, 0xe0, 0x9f, 0x70, 0xe4, 0xb7, 0xb8,
+ 0x02, 0x8e, 0xb1, 0x3b, 0x83, 0xfb, 0x0c, 0xaf, 0x0a, 0x3b, 0xee, 0xfa, 0x77, 0x7b, 0x31, 0x52,
+ 0x4e, 0x42, 0x13, 0xcd, 0x02, 0x72, 0x67, 0x0f, 0xb5, 0xcd, 0xfc, 0x55, 0x7e, 0x19, 0x78, 0xaf,
+ 0xcb, 0x06, 0xcc, 0x9f, 0x7d, 0xb4, 0xff, 0x6f, 0x61, 0x9f, 0xf2, 0x30, 0x79, 0x86, 0xfe, 0x45,
+ 0xd6, 0x19, 0x94, 0xe2, 0xc3, 0xa3, 0xb1, 0x8c, 0x08, 0xe2, 0xd8, 0xc8, 0x6c, 0xdd, 0xea, 0x96,
+ 0x53, 0x5d, 0x4b, 0xb0, 0xbc, 0x65, 0x29, 0xec, 0xdc, 0xb0, 0xd6, 0xad, 0x6b, 0x42, 0x6c, 0x7c,
+ 0x1f, 0x91, 0xe9, 0x46, 0x3d, 0xec, 0x42, 0x4c, 0x63, 0x46, 0xc4, 0x02, 0x62, 0x20, 0x25, 0x81,
+ 0x9a, 0xd5, 0x36, 0x14, 0x42, 0x2a, 0xda, 0x2c, 0xb7, 0x14, 0xca, 0x67, 0x65, 0xbf, 0xa3, 0x6b,
+ 0x25, 0xaf, 0x59, 0xbc, 0x82, 0xc2, 0xde, 0x49, 0xb1, 0xbc, 0x90, 0x31, 0x48, 0x96, 0x0d, 0xe4,
+ 0xa0, 0xeb, 0x86, 0xee, 0xfd, 0x04, 0x46, 0x29, 0x65, 0xee, 0x9e, 0x54, 0x4f, 0x09, 0x8b, 0x0e,
+ 0xec, 0x27, 0x24, 0x18, 0x7c, 0x8d, 0x2d, 0x89, 0xda, 0x18, 0x8c, 0xfb, 0x46, 0x6b, 0xc2, 0xf3,
+ 0x69, 0x63, 0xfb, 0x4a, 0x03, 0x4b, 0xb5, 0xe9, 0x0e, 0x4a, 0x82, 0x9e, 0x41, 0xf4, 0x44, 0x19,
+ 0x74, 0x7c, 0xa3, 0x37, 0xbd, 0x5c, 0xfb, 0x0a, 0x67, 0x37, 0xa8, 0x66, 0x54, 0xaf, 0x50, 0xca,
+ 0xf1, 0x38, 0x7c, 0x65, 0xc2, 0x9a, 0x63, 0x6a, 0xb3, 0x65, 0xa6, 0x03, 0x53, 0x30, 0xd6, 0x20,
+ 0xbd, 0xf4, 0xde, 0x93, 0x43, 0x13, 0x08, 0xca, 0x0c, 0x93, 0xb4, 0xac, 0x5a, 0x52, 0x9f, 0xdd,
+ 0x38, 0xb0, 0x01, 0xc1, 0x3c, 0xd5, 0x90, 0xaa, 0xd8, 0xc1, 0xba, 0xc9, 0x5d, 0xcd, 0x19, 0x37,
+ 0xcd, 0x57, 0xdc, 0xd2, 0x3b, 0x7a, 0xeb, 0x5d, 0x7f, 0xd2, 0x03, 0xfd, 0xe0, 0x0b, 0xad, 0xb3,
+ 0x48, 0x13, 0x03, 0x80, 0x44, 0xbc, 0x73, 0x3d, 0xab, 0x80, 0x0d, 0x98, 0xe7, 0x94, 0x2b, 0x59,
+ 0x04, 0xdf, 0xa1, 0x76, 0xc5, 0x35, 0x18, 0x9d, 0x14, 0x76, 0x1f, 0x37, 0xee, 0xf6, 0x62, 0xa4,
+ 0x81, 0x9b, 0x7e, 0x24, 0xba, 0xf3, 0x80, 0xfd, 0xc0, 0x24, 0x11, 0x52, 0xe9, 0x69, 0xe4, 0x4e,
+ 0x9c, 0x84, 0x26, 0x59, 0x04, 0xe4, 0xce, 0x1e, 0xa9, 0x59, 0x3b, 0xaa, 0xfc, 0x32, 0xf0, 0x9d,
+ 0x19, 0xc0, 0xf9, 0x0b, 0x7b, 0x22, 0x56, 0x7e, 0x7d, 0x0b, 0x35, 0xcf, 0xfb, 0xad, 0x76, 0x77,
+ 0x55, 0x0c, 0x5b, 0xfd, 0xfa, 0xab, 0x3d, 0xde, 0xc2, 0xfd, 0x27, 0x60, 0xf2, 0xcf, 0x3f, 0x8a,
+ 0xd0, 0x48, 0x84, 0xaf, 0x85, 0x6d, 0xa5, 0xbe, 0x16, 0xaf, 0x29, 0x05, 0xf5, 0x50, 0xb9, 0x60,
+ 0x6f, 0x32, 0xeb, 0x07, 0x45, 0x85, 0xa1, 0xdb, 0x10, 0x07, 0x73, 0x53, 0xd8, 0x79, 0x17, 0xef,
+ 0xea, 0x76, 0x34, 0x55, 0x3a, 0x43, 0x39, 0xbb, 0xc4, 0x55, 0x7d, 0x36, 0xdf, 0xe6, 0x91, 0x05,
+ 0xa6, 0xba, 0x96, 0xa3, 0xbb, 0xca, 0x52, 0x1b, 0x7b, 0xa3, 0x6f, 0x99, 0xd6, 0x84, 0xd8, 0xf8,
+ 0x23, 0xfe, 0x49, 0xf1, 0xc4, 0x0c, 0xca, 0x7b, 0xaf, 0xf1, 0x61, 0xfc, 0xd1, 0x1b, 0x5e, 0x12,
+ 0x3e, 0xe1, 0x11, 0x8c, 0x7a, 0x1b, 0x84, 0x98, 0xc6, 0x8c, 0x4b, 0x04, 0xc4, 0x40, 0x4a, 0xc1,
+ 0xbb, 0xa5, 0xce, 0xde, 0x05, 0xdd, 0x1c, 0xf8, 0x12, 0xde, 0x45, 0x61, 0xc3, 0xdf, 0xcc, 0x2b,
+ 0xf7, 0x69, 0x6c, 0x28, 0x84, 0x54, 0x77, 0x58, 0xad, 0x28, 0x57, 0xce, 0xca, 0xbd, 0x85, 0xd6,
+ 0x72, 0x2d, 0xb3, 0x7a, 0xfb, 0x92, 0xef, 0x38, 0x79, 0x7a, 0x59, 0xab, 0xcd, 0x22, 0x03, 0x3c,
+ 0x4a, 0x9d, 0xb2, 0xbb, 0xc7, 0x47, 0x7f, 0x92, 0xa1, 0xbb, 0xe3, 0x62, 0x90, 0xef, 0x1a, 0x0b,
+ 0xcf, 0xd9, 0x6d, 0xe9, 0xb8, 0x81, 0xe7, 0xf2, 0x75, 0xe9, 0xed, 0x07, 0x97, 0x70, 0x9c, 0xe1,
+ 0x83, 0x15, 0xcf, 0x1f, 0x39, 0x08, 0x8c, 0x52, 0xca, 0x1f, 0xff, 0xa8, 0x9e, 0x12, 0xd5, 0x1c,
+ 0x06, 0x51, 0x10, 0x4d, 0x46, 0xce, 0x14, 0x32, 0x1e, 0x4d, 0xf1, 0xcd, 0x99, 0x8d, 0x53, 0xf6,
+ 0x1b, 0x4e, 0x48, 0x30, 0xf8, 0xd9, 0x5a, 0xd1, 0x77, 0x30, 0xdb, 0x35, 0x8c, 0xd6, 0x47, 0x25,
+ 0x9e, 0x0a, 0x97, 0x62, 0x87, 0x1f, 0xc2, 0xb1, 0xa3, 0x62, 0xd5, 0x50, 0x8b, 0x49, 0xc1, 0xcf,
+ 0xd2, 0xc6, 0x35, 0x94, 0x06, 0x96, 0xa9, 0x11, 0x1c, 0x94, 0xc7, 0xff, 0x82, 0x2b, 0x88, 0x32,
+ 0x57, 0x82, 0xea, 0xc6, 0x79, 0x50, 0x31, 0x71, 0xc8, 0xc6, 0xc9, 0x9a, 0x85, 0xb4, 0x0e, 0xd8,
+ 0xe8, 0xf8, 0x85, 0x6e, 0xb9, 0xb8, 0x35, 0x14, 0xce, 0x6e, 0x93, 0xcc, 0xa8, 0x9d, 0xa0, 0x57,
+ 0x6d, 0xbc, 0x5a, 0x3c, 0xc6, 0x7e, 0xad, 0x74, 0x1a, 0x3c, 0x9d, 0xa9, 0xaf, 0x02, 0x26, 0xbd,
+ 0x21, 0x70, 0xf8, 0xca, 0x47, 0xf7, 0xc6, 0xd4, 0xa5, 0xca, 0x8f, 0x06, 0xa6, 0x60, 0x6f, 0x40,
+ 0xa4, 0x34, 0x27, 0x98, 0x38, 0x31, 0x5e, 0xb4, 0x71, 0x98, 0x81, 0x63, 0xa1, 0xff, 0xe9, 0xaa,
+ 0xb9, 0x2b, 0x7f, 0xe5, 0x86, 0x26, 0x10, 0x57, 0x18, 0xe5, 0xab, 0x9b, 0xb4, 0xa4, 0xfd, 0x79,
+ 0x3c, 0x6f, 0xa0, 0xb7, 0xf9, 0xe0, 0x88, 0x37, 0xcc, 0xb7, 0xa5, 0xfe, 0xb3, 0x3b, 0x7b, 0x93,
+ 0x70, 0xa3, 0x02, 0x41, 0x78, 0x69, 0xe3, 0x97, 0x73, 0x41, 0xb7, 0x51, 0xba, 0x59, 0x32, 0x6e,
+ 0xf5, 0xe7, 0xdd, 0x13, 0x07, 0xaf, 0x7b, 0xf7, 0xa7, 0x13, 0xb9, 0x34, 0xbd, 0xc6, 0xb4, 0x84,
+ 0x59, 0xae, 0x7b, 0x67, 0x76, 0xf4, 0x15, 0xba, 0xfe, 0x67, 0x06, 0x39, 0x03, 0x16, 0x99, 0xa5,
+ 0xdc, 0xea, 0xa4, 0x35, 0x09, 0x32, 0x8d, 0xda, 0x2a, 0x35, 0x08, 0x5c, 0x04, 0x89, 0x1f, 0x4f,
+ 0x90, 0x26, 0x06, 0xc3, 0x88, 0xbb, 0xe6, 0x7a, 0x95, 0xc3, 0x1a, 0xf3, 0x0d, 0xeb, 0x56, 0xb2,
+ 0x15, 0x62, 0xd9, 0x91, 0xf7, 0x7d, 0x7e, 0x1a, 0x41, 0x91, 0x14, 0x96, 0x0a, 0x74, 0xd0, 0x58,
+ 0x08, 0x7d, 0x81, 0xec, 0x49, 0x6a, 0x30, 0xf9, 0x28, 0xec, 0x3e, 0x6e, 0x1f, 0x2f, 0xc4, 0x8b,
+ 0x8d, 0x39, 0x5e, 0xbe, 0x36, 0xac, 0xa8, 0x99, 0xfc, 0xbe, 0x30, 0x0b, 0x18, 0xb0, 0x42, 0x61,
+ 0xc1, 0xf5, 0xfc, 0x48, 0xb7, 0x25, 0xc3, 0x39, 0x43, 0x48, 0x22, 0xa4, 0x11, 0xd2, 0x0b, 0x9c,
+ 0x44, 0xb1, 0x23, 0x1a, 0xc8, 0xe3, 0x5b, 0x59, 0x97, 0x1a, 0x2c, 0xc1, 0x16, 0x4d, 0x8d, 0x76,
+ 0xfb, 0xcb, 0x4c, 0xb2, 0x08, 0x0b, 0x5f, 0x3c, 0x91, 0xb2, 0x76, 0x97, 0x3b, 0x64, 0x23, 0xf9,
+ 0x7e, 0x8f, 0x93, 0xe0, 0x77, 0xcd, 0xc7, 0x5c, 0x45, 0xe0, 0x78, 0xf2, 0x3c, 0xfb, 0xa5, 0x13,
+ 0x32, 0x43, 0x31, 0x16, 0xf6, 0x44, 0xac, 0xfc, 0xfa, 0x16, 0x6a, 0x5d, 0x35, 0x99, 0xec, 0xee,
+ 0xb7, 0x07, 0xee, 0x44, 0x89, 0x82, 0x34, 0x9c, 0x2e, 0x44, 0x64, 0x38, 0x32, 0x06, 0x6a, 0x04,
+ 0xaa, 0x18, 0xb6, 0x39, 0x37, 0x95, 0x7a, 0x7f, 0x47, 0x39, 0x4e, 0xc0, 0x27, 0x5d, 0x7e, 0xd7,
+ 0x2f, 0x5c, 0x69, 0x6b, 0x48, 0x53, 0xe2, 0x1f, 0x93, 0x6b, 0x40, 0xa5, 0x20, 0xc2, 0xf8, 0x3d,
+ 0x63, 0x90, 0xcb, 0x9d, 0xc9, 0xda, 0x89, 0xbf, 0x2c, 0x9d, 0x52, 0x0a, 0x29, 0xa0, 0xb1, 0xc0,
+ 0xe6, 0xd4, 0x14, 0xcf, 0xb6, 0x1c, 0x11, 0xdf, 0xf8, 0xcf, 0x5c, 0x6f, 0x2e, 0x3f, 0x37, 0x2a,
+ 0xde, 0x64, 0x15, 0x0e, 0x8a, 0xc9, 0x81, 0x75, 0x20, 0x0e, 0xe6, 0xa6, 0x73, 0xf2, 0x2e, 0x1d,
+ 0x5b, 0x20, 0xca, 0x5c, 0xf5, 0x0f, 0x19, 0x15, 0xf4, 0x5c, 0xe8, 0xc3, 0x74, 0x6d, 0xa8, 0xf7,
+ 0x17, 0xec, 0x68, 0xaa, 0x74, 0x86, 0x72, 0xb5, 0x4b, 0xaa, 0xfa, 0x6c, 0x7d, 0x0f, 0xe1, 0x0a,
+ 0x92, 0xa8, 0xb7, 0xf8, 0x0b, 0x40, 0xea, 0xd5, 0x9f, 0xf8, 0xf4, 0x09, 0x7a, 0x90, 0x67, 0xe0,
+ 0x8f, 0xb7, 0xef, 0x85, 0xb5, 0x57, 0xa4, 0x36, 0xf6, 0x85, 0xde, 0xf1, 0x6f, 0xcb, 0x73, 0x33,
+ 0x0a, 0xf3, 0x30, 0xd7, 0xca, 0x91, 0x3c, 0x56, 0x22, 0xd7, 0xd0, 0x94, 0x68, 0x54, 0xf5, 0xd9,
+ 0x46, 0x3f, 0x92, 0x21, 0x4b, 0x18, 0x57, 0xf6, 0x9d, 0x21, 0xc2, 0x3b, 0x61, 0x36, 0xbc, 0x24,
+ 0xc3, 0x7b, 0x4d, 0x73, 0x34, 0xde, 0xcf, 0x96, 0x49, 0x73, 0xcc, 0x5e, 0x66, 0xa9, 0x3a, 0xce,
+ 0x7c, 0x01, 0x22, 0xdb, 0xf4, 0x36, 0xcb, 0xf3, 0x4f, 0xdb, 0x96, 0x08, 0x4b, 0x80, 0x94, 0x41,
+ 0xf9, 0x45, 0xfd, 0x89, 0x8b, 0xf0, 0x53, 0x93, 0x9b, 0x89, 0x98, 0x6d, 0x4c, 0x1f, 0x12, 0xab,
+ 0xb5, 0x89, 0x5f, 0x7f, 0x0a, 0x79, 0x38, 0x33, 0x24, 0x7f, 0x8a, 0xc2, 0x45, 0x7d, 0x5b, 0x56,
+ 0x30, 0xcd, 0x80, 0x2d, 0x75, 0xbf, 0xa0, 0x53, 0xf0, 0x2d, 0x84, 0xa7, 0x42, 0xe2, 0xdd, 0xbc,
+ 0x2d, 0xd2, 0xd8, 0x50, 0xcb, 0xa8, 0xee, 0xb0, 0x99, 0x50, 0xae, 0x5f, 0x57, 0xb9, 0xc9, 0x6f,
+ 0xa8, 0x96, 0x07, 0x02, 0xb4, 0x6e, 0x76, 0xd0, 0x4d, 0x02, 0xa0, 0x3a, 0x50, 0x26, 0x4f, 0x85,
+ 0xe4, 0x5a, 0xa5, 0xf4, 0x35, 0xe7, 0x1d, 0x70, 0xf2, 0xf4, 0xb2, 0x95, 0x59, 0x44, 0x06, 0x78,
+ 0x61, 0x1e, 0x7a, 0xa6, 0x4a, 0x21, 0x85, 0x10, 0x26, 0xa6, 0xbc, 0xf0, 0x5e, 0xdb, 0x80, 0x92,
+ 0x94, 0xf9, 0xa7, 0xb5, 0x4d, 0x8e, 0xfe, 0xe7, 0x81, 0xb5, 0x05, 0xc4, 0xe3, 0x1d, 0x34, 0x16,
+ 0x11, 0xbd, 0x78, 0xe7, 0x32, 0x48, 0x66, 0x87, 0x55, 0xe7, 0x0b, 0xa1, 0xe4, 0x82, 0xb2, 0xfc,
+ 0x5d, 0x71, 0xda, 0x11, 0xb3, 0xc1, 0x0d, 0x27, 0xea, 0x11, 0x19, 0x0e, 0xed, 0xe0, 0xfb, 0x01,
+ 0xd8, 0x35, 0x05, 0x43, 0xcc, 0x07, 0x95, 0x47, 0x3e, 0x43, 0x17, 0x6b, 0xea, 0x7f, 0x7d, 0xeb,
+ 0xc5, 0x2a, 0x5d, 0x3e, 0x72, 0x10, 0xdb, 0xa4, 0x57, 0x3e, 0x3d, 0x93, 0xff, 0x24, 0x69, 0x38,
+ 0x40, 0x6e, 0x82, 0x6c, 0x0d, 0xd6, 0x43, 0xc4, 0x83, 0x6c, 0x33, 0xf6, 0xf8, 0xbb, 0xef, 0xd2,
+ 0x0c, 0xa2, 0x20, 0x9a, 0x8c, 0x5f, 0x28, 0x64, 0x3c, 0x9a, 0x21, 0x59, 0xf1, 0xd9, 0xa6, 0x2f,
+ 0x89, 0xe6, 0xff, 0xc8, 0xf3, 0x99, 0xb0, 0x04, 0xe8, 0xc8, 0x2f, 0x3c, 0xf6, 0x46, 0x20, 0xc5,
+ 0x36, 0x9c, 0x90, 0x60, 0x33, 0x71, 0xb4, 0x61, 0xee, 0x60, 0x75, 0x6a, 0xdb, 0x6f, 0x8e, 0x4a,
+ 0xb3, 0xd8, 0x4f, 0x32, 0x4c, 0xb7, 0x2c, 0x01, 0x3a, 0x32, 0x7b, 0x0f, 0xdc, 0xf0, 0x08, 0xa0,
+ 0xff, 0x14, 0xed, 0xc4, 0xcd, 0x3e, 0x47, 0xa1, 0x85, 0xc4, 0x69, 0xa0, 0xd5, 0x92, 0x41, 0x5d,
+ 0x7a, 0x50, 0x32, 0x96, 0xb2, 0xf8, 0xdf, 0xc1, 0x51, 0x96, 0x67, 0xc5, 0xd2, 0x0d, 0xc7, 0xb7,
+ 0x67, 0x4f, 0x6a, 0xeb, 0x0c, 0xef, 0x91, 0x22, 0x38, 0xeb, 0x4d, 0x3d, 0xc7, 0x56, 0xd3, 0x64,
+ 0xe2, 0x0b, 0xb5, 0xb9, 0x73, 0x29, 0x09, 0x42, 0xec, 0xb9, 0x43, 0x58, 0xc0, 0xc9, 0x55, 0x8e,
+ 0xae, 0xc7, 0x17, 0x4f, 0xf2, 0xa0, 0x62, 0xe2, 0x53, 0x4f, 0x51, 0xf7, 0xc9, 0xab, 0x1c, 0x73,
+ 0x2b, 0x83, 0xc8, 0x1d, 0x8d, 0x66, 0xfa, 0x82, 0x87, 0x1d, 0x5f, 0x92, 0xce, 0x34, 0x9a, 0x99,
+ 0x13, 0x33, 0xc9, 0xdc, 0xb1, 0xb3, 0x6a, 0x28, 0x5f, 0xdc, 0xe5, 0x5b, 0x93, 0xf9, 0x83, 0xae,
+ 0x96, 0x77, 0x16, 0x8e, 0xce, 0x75, 0xf2, 0x48, 0x8b, 0x8e, 0xeb, 0x3e, 0x94, 0x66, 0x05, 0x44,
+ 0xda, 0xbb, 0xb4, 0x78, 0x4f, 0xfc, 0x99, 0xe8, 0x34, 0x78, 0xf9, 0x91, 0x9d, 0x04, 0x4c, 0xb9,
+ 0x5f, 0xff, 0x6b, 0x2a, 0x30, 0x3a, 0x01, 0x88, 0xe0, 0x2a, 0xf7, 0xf4, 0x9a, 0x9b, 0xca, 0x53,
+ 0x42, 0xe0, 0x33, 0x57, 0x8e, 0x2d, 0x4f, 0x6b, 0x89, 0x57, 0xdd, 0x0c, 0x8f, 0xc0, 0xde, 0x80,
+ 0xc7, 0xa4, 0xec, 0x05, 0xf1, 0xeb, 0xd7, 0x0b, 0x5d, 0x05, 0xd3, 0x69, 0x88, 0x5f, 0x58, 0x6a,
+ 0x8b, 0x68, 0x4e, 0xf3, 0x70, 0x62, 0xbc, 0xab, 0xe2, 0xf3, 0xc1, 0xc6, 0x81, 0x3d, 0x11, 0x97,
+ 0x0e, 0x2c, 0x91, 0xa1, 0x0f, 0xa4, 0x24, 0xcb, 0x36, 0xa1, 0xcf, 0xa3, 0x86, 0xa2, 0x97, 0x7d,
+ 0xb1, 0x56, 0xfe, 0x09, 0xcf, 0x4c, 0x20, 0xae, 0x30, 0x09, 0x95, 0xf5, 0xab, 0x8b, 0x39, 0xf2,
+ 0x34, 0x12, 0x21, 0x5b, 0xb0, 0x8a, 0xb8, 0xce, 0xe4, 0x5b, 0x9b, 0x90, 0xac, 0x14, 0xbf, 0x18,
+ 0x78, 0xde, 0x83, 0xad, 0x31, 0x03, 0xd3, 0x6e, 0x5b, 0xad, 0x89, 0x3f, 0xa5, 0x76, 0xf6, 0xe5,
+ 0xfd, 0x9a, 0x5c, 0xff, 0x4e, 0xc5, 0x4b, 0x0e, 0x8f, 0xff, 0x87, 0x5a, 0xa2, 0xe9, 0x70, 0x0f,
+ 0xe0, 0x85, 0x04, 0x82, 0xf0, 0xd2, 0x05, 0xed, 0xe6, 0x82, 0xad, 0xa2, 0xb7, 0xb2, 0x64, 0xdc,
+ 0x65, 0xc1, 0xdb, 0xd0, 0x8f, 0x14, 0x9d, 0x8d, 0x32, 0xd0, 0xa3, 0xc7, 0xb0, 0x2d, 0xe2, 0x36,
+ 0x29, 0x0d, 0x79, 0x26, 0x0e, 0x9d, 0xf6, 0x2d, 0x8d, 0x26, 0xb1, 0x68, 0xb9, 0x4f, 0xab, 0xcb,
+ 0xac, 0x49, 0xa6, 0x74, 0x71, 0x5b, 0x6e, 0x4d, 0x59, 0x74, 0xbf, 0x0d, 0xbe, 0xd0, 0x2d, 0x21,
+ 0xb2, 0x9f, 0xf6, 0xce, 0xec, 0x2b, 0x2a, 0xb7, 0x3f, 0xce, 0x0c, 0x72, 0x06, 0x2c, 0xf1, 0x89,
+ 0x37, 0xdb, 0x29, 0x9c, 0x93, 0xed, 0xb2, 0xd7, 0xeb, 0x9c, 0x02, 0x17, 0x01, 0xb3, 0x77, 0x63,
+ 0x7b, 0x17, 0x8b, 0x6a, 0x12, 0x64, 0xd9, 0x77, 0x54, 0x6a, 0x10, 0xb8, 0x08, 0xd1, 0x3e, 0x9e,
+ 0xfe, 0x53, 0x54, 0x38, 0x6d, 0xa2, 0x41, 0x17, 0x80, 0x38, 0x1e, 0xdd, 0x0f, 0x4e, 0xb8, 0x74,
+ 0xe3, 0x4c, 0x0c, 0x45, 0xd3, 0xb5, 0x0f, 0xf4, 0xe9, 0x45, 0x34, 0x25, 0x1a, 0x15, 0xac, 0xa7,
+ 0x66, 0x08, 0xd3, 0x17, 0xac, 0x73, 0x97, 0x94, 0x3d, 0x17, 0x3a, 0x40, 0x1d, 0x8a, 0x2a, 0x4d,
+ 0x2a, 0xc4, 0x71, 0xe1, 0x2d, 0xfa, 0xfc, 0x34, 0x82, 0xe1, 0x28, 0xef, 0x14, 0xe8, 0x63, 0xb0,
+ 0xaf, 0x80, 0xae, 0xb3, 0x52, 0x3c, 0x64, 0x54, 0x56, 0xb3, 0x26, 0x8a, 0x13, 0x77, 0xe5, 0x5a,
+ 0x10, 0xfa, 0xc1, 0x1b, 0x92, 0xd4, 0x60, 0x31, 0x50, 0x1b, 0x7c, 0xdc, 0x3e, 0x5e, 0x4b, 0xd5,
+ 0x95, 0xbe, 0x1e, 0x49, 0xed, 0x12, 0xf8, 0x51, 0x84, 0x49, 0x72, 0xb9, 0x39, 0xc1, 0xcd, 0x3f,
+ 0xd9, 0x72, 0xbc, 0xbf, 0x6c, 0x9b, 0x93, 0xf1, 0x3b, 0xbf, 0x60, 0x16, 0x30, 0xa3, 0x84, 0xc2,
+ 0x5c, 0x36, 0x63, 0xed, 0x13, 0x5d, 0x0b, 0x91, 0xef, 0xed, 0x6e, 0x73, 0x37, 0x3c, 0x02, 0x28,
+ 0x41, 0x29, 0x3b, 0x90, 0xad, 0x4a, 0x45, 0x72, 0x86, 0x90, 0x44, 0x8b, 0x22, 0x67, 0x16, 0xfb,
+ 0xc4, 0x6d, 0xe4, 0xc2, 0xd2, 0x8c, 0xdd, 0x12, 0x52, 0xc2, 0x4a, 0xee, 0x25, 0xf8, 0x90, 0x11,
+ 0x88, 0xa1, 0x46, 0x34, 0x53, 0x05, 0xb6, 0xb2, 0xed, 0x34, 0x58, 0x41, 0x2c, 0x9a, 0xd9, 0xec,
+ 0x0d, 0xe5, 0x99, 0x66, 0x2c, 0xc3, 0x2e, 0xd2, 0x39, 0x66, 0x56, 0x24, 0x2b, 0x05, 0x5f, 0x06,
+ 0x35, 0x55, 0x98, 0xa7, 0x10, 0x16, 0xbe, 0x78, 0xe1, 0xa7, 0xec, 0xed, 0x76, 0xc8, 0x46, 0x31,
+ 0xb0, 0x11, 0x47, 0xf5, 0x6f, 0xd0, 0x26, 0x18, 0x35, 0xf5, 0xe2, 0x88, 0x71, 0x57, 0xc0, 0xdb,
+ 0xfc, 0xdd, 0xe5, 0x03, 0xee, 0x59, 0x4d, 0xb8, 0x8a, 0x03, 0xf0, 0x27, 0x78, 0x35, 0x89, 0x26,
+ 0x79, 0x99, 0x3a, 0x51, 0x91, 0x9f, 0xd5, 0xd8, 0x5e, 0x51, 0xfe, 0x42, 0x7f, 0xaa, 0x0f, 0xcc,
+ 0x64, 0x86, 0x62, 0x2c, 0x2f, 0x88, 0x9b, 0x3b, 0x37, 0x2c, 0xd4, 0xba, 0x6a, 0xf1, 0x1b, 0x1f,
+ 0xe1, 0xc2, 0xbd, 0x7e, 0x50, 0x4e, 0x03, 0x5b, 0xe3, 0x7e, 0xda, 0xdf, 0x6d, 0x6e, 0x9d, 0xf5,
+ 0xad, 0x0e, 0x1f, 0x88, 0xd1, 0xc7, 0x68, 0xfb, 0x5c, 0x88, 0xc8, 0x70, 0x64, 0x0c, 0xd4, 0x08,
+ 0x28, 0x4a, 0xc0, 0xda, 0xae, 0x01, 0xf0, 0x9b, 0x88, 0xda, 0xc6, 0x15, 0x63, 0x93, 0x52, 0xe2,
+ 0x97, 0x30, 0xaf, 0x72, 0x6e, 0xe9, 0xf4, 0xfe, 0x8e, 0x72, 0x9c, 0x43, 0x4e, 0xba, 0xfc, 0x6d,
+ 0x12, 0x74, 0x70, 0x20, 0x11, 0x2f, 0x6c, 0x9e, 0x5a, 0x20, 0x92, 0x26, 0x49, 0x25, 0x7a, 0x87,
+ 0x5e, 0xb8, 0xd2, 0xd6, 0x90, 0xa6, 0x07, 0x3e, 0xe5, 0xd6, 0x80, 0x89, 0x40, 0x47, 0x33, 0x7a,
+ 0xdb, 0xfc, 0x0d, 0x84, 0xef, 0x60, 0x9f, 0x5e, 0x31, 0x84, 0x8e, 0xec, 0x47, 0xd8, 0xb5, 0x90,
+ 0xc6, 0xe3, 0x55, 0xf9, 0x51, 0x77, 0xd1, 0xbd, 0x58, 0xf9, 0xa4, 0x14, 0x52, 0x83, 0xa1, 0x43,
+ 0x43, 0xa7, 0x8a, 0xab, 0x2e, 0xb1, 0x49, 0xdd, 0x8c, 0xab, 0xaa, 0x71, 0x55, 0x1c, 0x27, 0xa9,
+ 0x0f, 0x6b, 0x28, 0x5d, 0xaf, 0x38, 0x22, 0x7d, 0x33, 0x5d, 0xb8, 0xde, 0x5c, 0x7e, 0x6e, 0x54,
+ 0x8a, 0x2f, 0xf7, 0x0f, 0xd0, 0xfe, 0xba, 0x1d, 0xe7, 0x0f, 0xb6, 0xbb, 0x5b, 0xe1, 0xe8, 0xbe,
+ 0x7f, 0xc8, 0x2a, 0x1c, 0xd7, 0x51, 0xc1, 0xea, 0x40, 0x1c, 0x0f, 0x8f, 0xe6, 0x27, 0x5c, 0x3a,
+ 0xfa, 0x8c, 0xf5, 0x4e, 0xa8, 0x97, 0x59, 0x8a, 0x94, 0x4e, 0x01, 0xea, 0xe1, 0xb8, 0xda, 0xd0,
+ 0xb6, 0x40, 0x57, 0xb8, 0x29, 0x1e, 0x32, 0x2a, 0x2b, 0xb8, 0x13, 0x45, 0xe8, 0xda, 0x93, 0x2d,
+ 0x33, 0x04, 0x88, 0xea, 0x56, 0xd8, 0xaa, 0x4a, 0xff, 0xea, 0x1d, 0x20, 0xef, 0x45, 0x15, 0xc7,
+ 0x2e, 0x1b, 0xd0, 0x97, 0xe8, 0xcf, 0xe4, 0xa9, 0x96, 0x97, 0x37, 0xd8, 0xfa, 0x1e, 0x01, 0x14,
+ 0xab, 0x5f, 0x0f, 0xc5, 0x97, 0x09, 0x7c, 0xc9, 0x42, 0xc5, 0x39, 0xbd, 0xfd, 0x81, 0x87, 0xfe,
+ 0xe7, 0x93, 0xad, 0x33, 0x16, 0x80, 0x17, 0x69, 0xfd, 0x33, 0x2b, 0x12, 0xf4, 0xe3, 0xce, 0x03,
+ 0x62, 0xd7, 0x72, 0x61, 0x69, 0x46, 0x8f, 0x09, 0x29, 0x61, 0x25, 0x77, 0xf3, 0x7c, 0x48, 0xe9,
+ 0xdd, 0xad, 0x1d, 0xc9, 0xa9, 0xae, 0x8b, 0x6c, 0x2f, 0xc9, 0x7f, 0x21, 0xde, 0x55, 0xe6, 0x66,
+ 0x58, 0xe9, 0xc2, 0x9b, 0xd6, 0x68, 0x13, 0x0c, 0xfb, 0x9b, 0x71, 0x44, 0xd9, 0xca, 0x60, 0x8c,
+ 0x14, 0x25, 0x60, 0x6d, 0x57, 0xe1, 0x78, 0xac, 0x44, 0x6d, 0x63, 0xeb, 0xd0, 0xa8, 0x29, 0x71,
+ 0x91, 0x61, 0xbf, 0x3f, 0x28, 0x27, 0xe0, 0xcc, 0x90, 0x3f, 0x6d, 0x8e, 0xd7, 0x37, 0xaf, 0x9b,
+ 0x8c, 0x7e, 0xe7, 0x42, 0x96, 0x30, 0xae, 0x2f, 0xf9, 0x42, 0x47, 0x76, 0xc2, 0x6c, 0xbb, 0x48,
+ 0x09, 0x3a, 0x38, 0x10, 0xe9, 0xf6, 0x36, 0x4f, 0x2d, 0x10, 0x49, 0x13, 0xc5, 0xf3, 0x3d, 0xa2,
+ 0x45, 0xf6, 0x9a, 0xe6, 0x68, 0x7f, 0x5d, 0xef, 0x92, 0xe6, 0x5b, 0xbc, 0xcc, 0x91, 0x74, 0x5f,
+ 0xc0, 0xb2, 0x45, 0xb4, 0x17, 0xb9, 0xc5, 0x8f, 0x46, 0xb4, 0x55, 0xd9, 0xcb, 0x0e, 0xf2, 0xb5,
+ 0xf8, 0x02, 0x44, 0x75, 0x2b, 0x6c, 0x55, 0x25, 0x9e, 0x75, 0xef, 0x10, 0x96, 0xc3, 0xeb, 0x82,
+ 0x7d, 0x46, 0x9b, 0x27, 0x54, 0xaa, 0xcd, 0x45, 0x4a, 0x27, 0xe1, 0x75, 0x91, 0x5c, 0x6d, 0x68,
+ 0x31, 0x8a, 0x39, 0xd1, 0xd5, 0x23, 0xa6, 0xe5, 0xf5, 0xd1, 0xf3, 0xda, 0x98, 0x3e, 0x24, 0x95,
+ 0xb4, 0xce, 0xe6, 0x83, 0xaa, 0xe5, 0x3e, 0x85, 0x21, 0x83, 0xfd, 0xbf, 0x9f, 0xa1, 0xa2, 0x7f,
+ 0xa9, 0xd1, 0xbe, 0xfe, 0x14, 0xf2, 0x70, 0x66, 0x48, 0xfe, 0xd7, 0x47, 0x8a, 0xfa, 0xb6, 0xac,
+ 0x2c, 0x95, 0x61, 0xac, 0x6b, 0x34, 0xe8, 0x06, 0x9c, 0xac, 0xd9, 0x22, 0x8d, 0x65, 0x30, 0x46,
+ 0x60, 0x59, 0xc3, 0x5a, 0xea, 0xbd, 0x83, 0xa6, 0x23, 0x5a, 0xcb, 0x8d, 0x84, 0x07, 0x79, 0xbb,
+ 0xe5, 0x1d, 0x1c, 0x08, 0x95, 0x7b, 0x1b, 0xc6, 0xf7, 0x08, 0xc5, 0xe8, 0x83, 0x98, 0xff, 0x51,
+ 0x5a, 0x67, 0x73, 0xa0, 0x55, 0x93, 0x1f, 0xa3, 0xf1, 0xa0, 0x9f, 0xbe, 0xae, 0xb1, 0x51, 0xde,
+ 0xdf, 0x23, 0xac, 0xf2, 0x2a, 0x55, 0x87, 0xc3, 0x25, 0xf2, 0x91, 0xdb, 0xa9, 0x2e, 0xd7, 0x34,
+ 0x93, 0xef, 0x0e, 0x04, 0xab, 0xdc, 0xec, 0x63, 0x9a, 0x04, 0x83, 0x74, 0xa0, 0x4c, 0x9e, 0xc9,
+ 0x16, 0xab, 0xd1, 0x56, 0xd4, 0x1a, 0x74, 0x03, 0x4e, 0x56, 0x8d, 0x11, 0xa7, 0xd3, 0x18, 0x23,
+ 0x0b, 0xb4, 0x89, 0x2b, 0x6a, 0x0d, 0x3a, 0xe0, 0x27, 0x2b, 0xa7, 0xe9, 0xb2, 0x88, 0x0c, 0xf0,
+ 0x8e, 0xf0, 0x56, 0x79, 0x15, 0xcb, 0xa2, 0x80, 0xf3, 0x79, 0xa9, 0x8c, 0xb5, 0x17, 0x8a, 0x1a,
+ 0xc2, 0x3c, 0xf4, 0x8f, 0x94, 0x42, 0xc9, 0x20, 0x4c, 0x8f, 0xbb, 0x23, 0xbc, 0x75, 0xc3, 0xe7,
+ 0x47, 0x78, 0x2b, 0xdd, 0xeb, 0x84, 0x51, 0x40, 0x98, 0xdd, 0xb5, 0x46, 0xbb, 0xea, 0x45, 0x0d,
+ 0xeb, 0x31, 0x8d, 0xa9, 0x9a, 0xdf, 0x3f, 0x0d, 0xc1, 0xa9, 0x0a, 0x4b, 0x05, 0x3a, 0x68, 0x2c,
+ 0x6e, 0x75, 0x52, 0xfb, 0xe5, 0x19, 0xa7, 0x6d, 0x15, 0xfb, 0x04, 0x2e, 0x02, 0xa5, 0xee, 0xc6,
+ 0x22, 0xb9, 0xf0, 0x0d, 0x64, 0x90, 0xcc, 0xcd, 0xaa, 0x0d, 0x16, 0x81, 0x0b, 0xc7, 0xa7, 0x3b,
+ 0xa7, 0xfd, 0x2f, 0x5f, 0x1b, 0x56, 0x54, 0xad, 0x7e, 0x5f, 0x18, 0xe4, 0x0c, 0x58, 0x21, 0xd1,
+ 0xba, 0xe2, 0x77, 0x22, 0xa5, 0x41, 0x1a, 0x4e, 0x17, 0x22, 0x32, 0x1c, 0x19, 0x03, 0x35, 0x02,
+ 0x3f, 0xa6, 0xa8, 0x70, 0xda, 0x87, 0x82, 0x2e, 0xc3, 0x70, 0x3c, 0x79, 0x1e, 0x9c, 0xb3, 0xe8,
+ 0x73, 0x6a, 0x0a, 0x86, 0x5b, 0x0e, 0xe9, 0x8e, 0x7c, 0x86, 0x2e, 0xd6, 0x17, 0xfe, 0xfa, 0x15,
+ 0xf6, 0x2e, 0xd5, 0xd4, 0x24, 0xc8, 0x71, 0xee, 0xa8, 0xd4, 0x20, 0xb3, 0x10, 0x61, 0x7c, 0xff,
+ 0x49, 0x54, 0xba, 0x7c, 0xe4, 0x20, 0x75, 0x8b, 0xae, 0x7c, 0x7a, 0xe5, 0x3d, 0x48, 0xd2, 0x70,
+ 0xcc, 0x10, 0x65, 0x2e, 0x9b, 0xe6, 0xed, 0xeb, 0x7a, 0x2e, 0x74, 0x80, 0x3a, 0xd7, 0x54, 0x9a,
+ 0x80, 0xdc, 0xc7, 0xd8, 0x1a, 0x6f, 0x86, 0x4b, 0xc5, 0xd8, 0x66, 0x2f, 0x33, 0xb5, 0x1d, 0x67,
+ 0x05, 0x98, 0x18, 0x8a, 0x65, 0xa9, 0x1e, 0x2b, 0x11, 0x8a, 0x68, 0x4a, 0x34, 0x2a, 0x9b, 0x8d,
+ 0x18, 0x87, 0x40, 0xf7, 0xdb, 0xbe, 0x50, 0xc8, 0x78, 0xf7, 0x42, 0xb2, 0x21, 0x71, 0x8f, 0x5e,
+ 0x9d, 0xc3, 0x9f, 0xa5, 0xa4, 0x78, 0xc8, 0xa8, 0xac, 0xa5, 0x4c, 0xd7, 0x26, 0xee, 0x09, 0xb4,
+ 0xd1, 0x0f, 0x3d, 0x53, 0x25, 0xf1, 0xa3, 0x08, 0x13, 0x53, 0x5e, 0x78, 0x2f, 0x8c, 0x40, 0x49,
+ 0x54, 0x4b, 0xe2, 0x01, 0x5a, 0x37, 0x3b, 0x68, 0xc7, 0x01, 0x50, 0x1d, 0x28, 0x13, 0xc6, 0xa3,
+ 0x6c, 0xfb, 0xe3, 0xc0, 0x66, 0xe2, 0xab, 0xc2, 0x1f, 0xc0, 0xea, 0xd4, 0x75, 0xde, 0xdf, 0x94,
+ 0xe9, 0xbf, 0x3c, 0x92, 0x19, 0x24, 0x33, 0xa2, 0xcb, 0x92, 0xe4, 0xb1, 0x72, 0x41, 0x59, 0x7e,
+ 0xa5, 0x73, 0x9e, 0x64, 0x98, 0xad, 0x58, 0x02, 0x74, 0x64, 0xf6, 0x1e, 0x7b, 0x23, 0x10, 0x83,
+ 0x20, 0x37, 0x41, 0x36, 0xe7, 0x6b, 0xc0, 0x62, 0xa0, 0x36, 0xf8, 0x7b, 0x7c, 0xbc, 0x96, 0x69,
+ 0x3d, 0x28, 0x19, 0x4b, 0x59, 0x7c, 0x8e, 0x81, 0xc9, 0x4b, 0xd2, 0x83, 0x69, 0xe7, 0x82, 0xba,
+ 0xb8, 0x6c, 0xc6, 0x19, 0x26, 0xba, 0x16, 0xe1, 0x1d, 0x19, 0xdc, 0xe6, 0x6e, 0x78, 0x04, 0x50,
+ 0xf4, 0xa0, 0x64, 0xef, 0xa7, 0x33, 0x7d, 0x41, 0xa2, 0xef, 0xce, 0x49, 0x67, 0x1a, 0x4d, 0xad,
+ 0x71, 0xe4, 0xbb, 0xbd, 0xd8, 0xf5, 0xe5, 0x21, 0x76, 0xbd, 0xc0, 0x2c, 0x60, 0x85, 0xcb, 0x47,
+ 0xce, 0x9e, 0xd4, 0x15, 0x18, 0x1d, 0xe1, 0x44, 0x70, 0x15, 0x9a, 0x7a, 0x4d, 0xac, 0x65, 0xc8,
+ 0x4b, 0xda, 0x0b, 0x47, 0x67, 0xdb, 0x79, 0x24, 0xa4, 0x47, 0x94, 0x1f, 0x4a, 0x33, 0xe3, 0x22,
+ 0x07, 0x16, 0xa9, 0xb1, 0xe6, 0x52, 0x12, 0x84, 0x1b, 0xb1, 0x86, 0xb0, 0x43, 0x51, 0xaa, 0xdf,
+ 0x82, 0x52, 0x76, 0xe3, 0x99, 0x94, 0x8a, 0xe4, 0xcf, 0xe3, 0x88, 0xd5, 0x44, 0xce, 0x2c, 0x35,
+ 0x9f, 0x4d, 0x2e, 0x9e, 0x27, 0x83, 0xc4, 0x07, 0xa6, 0x9e, 0xa2, 0x2d, 0x51, 0x95, 0x38, 0xe6,
+ 0x1a, 0x09, 0xf1, 0xcc, 0x58, 0x45, 0x5c, 0x67, 0x72, 0xcc, 0xac, 0x48, 0x56, 0x0a, 0xbe, 0x0c,
+ 0x56, 0xc5, 0x53, 0x3a, 0xd9, 0xcc, 0x37, 0xc7, 0xcd, 0x3a, 0xbe, 0xe7, 0x5f, 0x68, 0xf7, 0xf1,
+ 0xd3, 0x81, 0x8c, 0x68, 0xa6, 0x0a, 0xaf, 0xa7, 0x19, 0x68, 0xb0, 0x82, 0x58, 0xf7, 0x71, 0x1b,
+ 0x26, 0x66, 0x51, 0x7b, 0xa1, 0xa5, 0xd4, 0x50, 0xbe, 0x7b, 0x09, 0xb6, 0xe5, 0x31, 0xc5, 0x9f,
+ 0xa3, 0x22, 0x8e, 0x29, 0xde, 0x63, 0x4c, 0x30, 0x6a, 0x29, 0x07, 0xd3, 0xe2, 0xae, 0x43, 0x75,
+ 0xef, 0xee, 0x2c, 0xdf, 0x5f, 0xea, 0x27, 0x90, 0xd5, 0xdf, 0x15, 0x7c, 0xeb, 0xcc, 0x0a, 0x88,
+ 0x6a, 0xaa, 0xf3, 0x8d, 0x20, 0x2c, 0xbf, 0xf0, 0x01, 0x8d, 0x1b, 0x19, 0xec, 0x53, 0x8c, 0x62,
+ 0x77, 0xb5, 0xab, 0xf0, 0x9e, 0x3b, 0xf1, 0x13, 0x68, 0xf0, 0x31, 0xe1, 0xf9, 0x08, 0x98, 0xb1,
+ 0xf2, 0xf1, 0x74, 0xa2, 0xe1, 0xfd, 0x69, 0x73, 0xbc, 0xa2, 0x3f, 0x84, 0xfe, 0x97, 0x1e, 0x5b,
+ 0xbe, 0x3d, 0xd6, 0x54, 0x60, 0x74, 0x02, 0xd3, 0x03, 0x54, 0x2d, 0x2b, 0xf7, 0xf5, 0x57, 0xa6,
+ 0x3b, 0x79, 0x09, 0x06, 0x1f, 0xb2, 0x9a, 0xb3, 0xd7, 0x06, 0x23, 0x4e, 0xf0, 0x6a, 0xd1, 0x4c,
+ 0x84, 0x03, 0x66, 0xae, 0xdf, 0x5a, 0x9e, 0xd6, 0xd1, 0xae, 0x79, 0x18, 0xdd, 0x43, 0x7f, 0xc3,
+ 0x01, 0x47, 0xb9, 0xfc, 0xa0, 0x9c, 0x06, 0xb6, 0x05, 0xfc, 0x77, 0x7d, 0xda, 0xdc, 0xf9, 0x29,
+ 0x4d, 0x8b, 0x1b, 0x0a, 0x21, 0x15, 0x6d, 0x16, 0xba, 0x0a, 0x65, 0xd2, 0xd3, 0xbe, 0xb0, 0xd4,
+ 0xc8, 0xcf, 0xc4, 0x58, 0x5e, 0xd3, 0xf5, 0x76, 0x6e, 0x58, 0x6b, 0xb7, 0xd4, 0x21, 0x36, 0x3e,
+ 0xd5, 0xd0, 0x9c, 0x25, 0xe0, 0xc4, 0xbb, 0x95, 0x07, 0x25, 0x41, 0x4f, 0xc1, 0x7a, 0x22, 0xed,
+ 0x50, 0x94, 0x43, 0x77, 0x9f, 0x02, 0x23, 0xf5, 0xd3, 0x77, 0x4f, 0x2a, 0xc6, 0xe5, 0xa4, 0x07,
+ 0x1c, 0x58, 0xe1, 0x81, 0x1e, 0x8b, 0x48, 0x55, 0x6c, 0x81, 0x5d, 0x85, 0xcf, 0x87, 0xed, 0xfa,
+ 0x99, 0x1c, 0x3e, 0xd3, 0x61, 0x4d, 0xd0, 0x35, 0xb8, 0xd3, 0x53, 0xe0, 0xc8, 0x18, 0x6b, 0x10,
+ 0xa1, 0xac, 0x3f, 0x12, 0x5d, 0x98, 0x40, 0x9f, 0x60, 0x12, 0xe9, 0x29, 0x95, 0xd5, 0x72, 0x27,
+ 0x24, 0xe8, 0xe0, 0x40, 0x22, 0x5e, 0xd8, 0xff, 0xb4, 0x40, 0xe7, 0x4c, 0x92, 0x4a, 0xf4, 0xcd,
+ 0x68, 0x24, 0x42, 0xb6, 0xa3, 0xd7, 0xb3, 0x5f, 0x0b, 0xb6, 0xf5, 0xe3, 0x9b, 0x28, 0xbd, 0x30,
+ 0xed, 0x60, 0x9d, 0xe4, 0xdc, 0x11, 0x2b, 0x3f, 0xdf, 0xe4, 0xfb, 0x86, 0x9c, 0xb7, 0x3b, 0xda,
+ 0xf0, 0x7f, 0xc5, 0x99, 0x62, 0x06, 0x65, 0xdc, 0xb6, 0x99, 0xd1, 0x7e, 0x89, 0xec, 0x2f, 0x09,
+ 0x75, 0x3b, 0x1a, 0xcb, 0x1d, 0xc0, 0xfd, 0xbc, 0x62, 0xcb, 0xdf, 0x1b, 0x8e, 0x73, 0xa9, 0xe3,
+ 0x39, 0xf7, 0xb8, 0x3d, 0x9c, 0x49, 0x96, 0x1c, 0xdd, 0x3d, 0xcd, 0xb4, 0x87, 0x11, 0xe0, 0x1e,
+ 0xbc, 0xb3, 0x67, 0x6f, 0xe3, 0x8f, 0x0e, 0x7c, 0x09, 0x6f, 0xc3, 0xd1, 0x80, 0x8e, 0x66, 0xf4,
+ 0x03, 0xc9, 0x08, 0xc7, 0x23, 0x67, 0x0a, 0x19, 0x0f, 0xc7, 0x99, 0x87, 0xad, 0xa7, 0xc8, 0x7b,
+ 0x86, 0x8d, 0xd7, 0x95, 0x5c, 0xa1, 0x92, 0x79, 0xdb, 0x95, 0x97, 0xe2, 0xaa, 0x38, 0x4e, 0x91,
+ 0xca, 0x41, 0x75, 0x63, 0xdd, 0x28, 0xf9, 0xd9, 0x64, 0x63, 0x85, 0x4d, 0xa3, 0x5a, 0x07, 0x6c,
+ 0x4f, 0x05, 0xaa, 0x31, 0xa2, 0xee, 0x61, 0xb9, 0xb0, 0x31, 0x8b, 0x28, 0xa4, 0xc5, 0x81, 0x86,
+ 0x52, 0x1a, 0xf2, 0x4c, 0x1c, 0xf9, 0x2f, 0x5a, 0xd9, 0x4c, 0xa1, 0xd0, 0xb1, 0x9e, 0x95, 0x55,
+ 0xd7, 0x5e, 0x2d, 0x1e, 0x63, 0x3f, 0xb7, 0x3a, 0x0d, 0x1e, 0xaf, 0xb5, 0xb6, 0x01, 0x13, 0xbf,
+ 0x9b, 0x92, 0x8f, 0xe8, 0xe2, 0xb6, 0xdc, 0x9a, 0xb2, 0xe8, 0xbd, 0x1a, 0xbf, 0x63, 0x5a, 0x42,
+ 0x1e, 0xd6, 0x50, 0xba, 0x9d, 0x70, 0x44, 0xfa, 0x66, 0xba, 0xb3, 0x7f, 0xb8, 0xfc, 0xdc, 0xa8,
+ },
+ { /* 4 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x10, 0xd1, 0xd3, 0x91, 0x91, 0xfe, 0xf3, 0x01, 0xb1, 0x78, 0x58, 0x01, 0x49, 0x6b, 0x2d, 0xa9,
+ 0x20, 0x61, 0x65, 0xe1, 0xe1, 0x3f, 0x25, 0x02, 0xa1, 0xf0, 0xb0, 0x02, 0x92, 0xd6, 0x5a, 0x91,
+ 0x30, 0xb0, 0xb6, 0x70, 0x70, 0xc1, 0xd6, 0x03, 0x10, 0x88, 0xe8, 0x03, 0xdb, 0xbd, 0x77, 0x38,
+ 0x40, 0xc2, 0xca, 0x01, 0x01, 0x7e, 0x4a, 0x04, 0x81, 0x23, 0xa3, 0x04, 0xe7, 0x6f, 0xb4, 0xe1,
+ 0x50, 0x13, 0x19, 0x90, 0x90, 0x80, 0xb9, 0x05, 0x30, 0x5b, 0xfb, 0x05, 0xae, 0x04, 0x99, 0x48,
+ 0x60, 0xa3, 0xaf, 0xe0, 0xe0, 0x41, 0x6f, 0x06, 0x20, 0xd3, 0x13, 0x06, 0x75, 0xb9, 0xee, 0x70,
+ 0x70, 0x72, 0x7c, 0x71, 0x71, 0xbf, 0x9c, 0x07, 0x91, 0xab, 0x4b, 0x07, 0x3c, 0xd2, 0xc3, 0xd9,
+ 0x80, 0x47, 0x57, 0x02, 0x02, 0xfc, 0x94, 0x08, 0xc1, 0x46, 0x85, 0x08, 0x0d, 0xde, 0xab, 0x01,
+ 0x90, 0x96, 0x84, 0x93, 0x93, 0x02, 0x67, 0x09, 0x70, 0x3e, 0xdd, 0x09, 0x44, 0xb5, 0x86, 0xa8,
+ 0xa0, 0x26, 0x32, 0xe3, 0xe3, 0xc3, 0xb1, 0x0a, 0x60, 0xb6, 0x35, 0x0a, 0x9f, 0x08, 0xf1, 0x90,
+ 0xb0, 0xf7, 0xe1, 0x72, 0x72, 0x3d, 0x42, 0x0b, 0xd1, 0xce, 0x6d, 0x0b, 0xd6, 0x63, 0xdc, 0x39,
+ 0xc0, 0x85, 0x9d, 0x03, 0x03, 0x82, 0xde, 0x0c, 0x40, 0x65, 0x26, 0x0c, 0xea, 0xb1, 0x1f, 0xe0,
+ 0xd0, 0x54, 0x4e, 0x92, 0x92, 0x7c, 0x2d, 0x0d, 0xf1, 0x1d, 0x7e, 0x0d, 0xa3, 0xda, 0x32, 0x49,
+ 0xe0, 0xe4, 0xf8, 0xe2, 0xe2, 0xbd, 0xfb, 0x0e, 0xe1, 0x95, 0x96, 0x0e, 0x78, 0x67, 0x45, 0x71,
+ 0xf0, 0x35, 0x2b, 0x73, 0x73, 0x43, 0x08, 0x0f, 0x50, 0xed, 0xce, 0x0f, 0x31, 0x0c, 0x68, 0xd8,
+ 0xc3, 0x8e, 0xae, 0x04, 0x04, 0x3b, 0xeb, 0x10, 0x41, 0x8c, 0xc9, 0x10, 0x1a, 0x7f, 0x95, 0x02,
+ 0xd3, 0x5f, 0x7d, 0x95, 0x95, 0xc5, 0x18, 0x11, 0xf0, 0xf4, 0x91, 0x11, 0x53, 0x14, 0xb8, 0xab,
+ 0xe3, 0xef, 0xcb, 0xe5, 0xe5, 0x04, 0xce, 0x12, 0xe0, 0x7c, 0x79, 0x12, 0x88, 0xa9, 0xcf, 0x93,
+ 0xf3, 0x3e, 0x18, 0x74, 0x74, 0xfa, 0x3d, 0x13, 0x51, 0x04, 0x21, 0x13, 0xc1, 0xc2, 0xe2, 0x3a,
+ 0x83, 0x4c, 0x64, 0x05, 0x05, 0x45, 0xa1, 0x14, 0xc0, 0xaf, 0x6a, 0x14, 0xfd, 0x10, 0x21, 0xe3,
+ 0x93, 0x9d, 0xb7, 0x94, 0x94, 0xbb, 0x52, 0x15, 0x71, 0xd7, 0x32, 0x15, 0xb4, 0x7b, 0x0c, 0x4a,
+ 0xa3, 0x2d, 0x01, 0xe4, 0xe4, 0x7a, 0x84, 0x16, 0x61, 0x5f, 0xda, 0x16, 0x6f, 0xc6, 0x7b, 0x72,
+ 0xb3, 0xfc, 0xd2, 0x75, 0x75, 0x84, 0x77, 0x17, 0xd0, 0x27, 0x82, 0x17, 0x26, 0xad, 0x56, 0xdb,
+ 0x43, 0xc9, 0xf9, 0x06, 0x06, 0xc7, 0x7f, 0x18, 0x80, 0xca, 0x4c, 0x18, 0x17, 0xa1, 0x3e, 0x03,
+ 0x53, 0x18, 0x2a, 0x97, 0x97, 0x39, 0x8c, 0x19, 0x31, 0xb2, 0x14, 0x19, 0x5e, 0xca, 0x13, 0xaa,
+ 0x63, 0xa8, 0x9c, 0xe7, 0xe7, 0xf8, 0x5a, 0x1a, 0x21, 0x3a, 0xfc, 0x1a, 0x85, 0x77, 0x64, 0x92,
+ 0x73, 0x79, 0x4f, 0x76, 0x76, 0x06, 0xa9, 0x1b, 0x90, 0x42, 0xa4, 0x1b, 0xcc, 0x1c, 0x49, 0x3b,
+ 0x03, 0x0b, 0x33, 0x07, 0x07, 0xb9, 0x35, 0x1c, 0x01, 0xe9, 0xef, 0x1c, 0xf0, 0xce, 0x8a, 0xe2,
+ 0x13, 0xda, 0xe0, 0x96, 0x96, 0x47, 0xc6, 0x1d, 0xb0, 0x91, 0xb7, 0x1d, 0xb9, 0xa5, 0xa7, 0x4b,
+ 0x23, 0x6a, 0x56, 0xe6, 0xe6, 0x86, 0x10, 0x1e, 0xa0, 0x19, 0x5f, 0x1e, 0x62, 0x18, 0xd0, 0x73,
+ 0x33, 0xbb, 0x85, 0x77, 0x77, 0x78, 0xe3, 0x1f, 0x11, 0x61, 0x07, 0x1f, 0x2b, 0x73, 0xfd, 0xda,
+ 0x45, 0xdf, 0x9f, 0x08, 0x08, 0x76, 0x15, 0x20, 0x82, 0xdb, 0x51, 0x20, 0x34, 0xfe, 0xe9, 0x04,
+ 0x55, 0x0e, 0x4c, 0x99, 0x99, 0x88, 0xe6, 0x21, 0x33, 0xa3, 0x09, 0x21, 0x7d, 0x95, 0xc4, 0xad,
+ 0x65, 0xbe, 0xfa, 0xe9, 0xe9, 0x49, 0x30, 0x22, 0x23, 0x2b, 0xe1, 0x22, 0xa6, 0x28, 0xb3, 0x95,
+ 0x75, 0x6f, 0x29, 0x78, 0x78, 0xb7, 0xc3, 0x23, 0x92, 0x53, 0xb9, 0x23, 0xef, 0x43, 0x9e, 0x3c,
+ 0x05, 0x1d, 0x55, 0x09, 0x09, 0x08, 0x5f, 0x24, 0x03, 0xf8, 0xf2, 0x24, 0xd3, 0x91, 0x5d, 0xe5,
+ 0x15, 0xcc, 0x86, 0x98, 0x98, 0xf6, 0xac, 0x25, 0xb2, 0x80, 0xaa, 0x25, 0x9a, 0xfa, 0x70, 0x4c,
+ 0x25, 0x7c, 0x30, 0xe8, 0xe8, 0x37, 0x7a, 0x26, 0xa2, 0x08, 0x42, 0x26, 0x41, 0x47, 0x07, 0x74,
+ 0x35, 0xad, 0xe3, 0x79, 0x79, 0xc9, 0x89, 0x27, 0x13, 0x70, 0x1a, 0x27, 0x08, 0x2c, 0x2a, 0xdd,
+ 0xc5, 0x98, 0xc8, 0x0a, 0x0a, 0x8a, 0x81, 0x28, 0x43, 0x9d, 0xd4, 0x28, 0x39, 0x20, 0x42, 0x05,
+ 0xd5, 0x49, 0x1b, 0x9b, 0x9b, 0x74, 0x72, 0x29, 0xf2, 0xe5, 0x8c, 0x29, 0x70, 0x4b, 0x6f, 0xac,
+ 0xe5, 0xf9, 0xad, 0xeb, 0xeb, 0xb5, 0xa4, 0x2a, 0xe2, 0x6d, 0x64, 0x2a, 0xab, 0xf6, 0x18, 0x94,
+ 0xf5, 0x28, 0x7e, 0x7a, 0x7a, 0x4b, 0x57, 0x2b, 0x53, 0x15, 0x3c, 0x2b, 0xe2, 0x9d, 0x35, 0x3d,
+ 0x85, 0x5a, 0x02, 0x0b, 0x0b, 0xf4, 0xcb, 0x2c, 0xc2, 0xbe, 0x77, 0x2c, 0xde, 0x4f, 0xf6, 0xe4,
+ 0x95, 0x8b, 0xd1, 0x9a, 0x9a, 0x0a, 0x38, 0x2d, 0x73, 0xc6, 0x2f, 0x2d, 0x97, 0x24, 0xdb, 0x4d,
+ 0xa5, 0x3b, 0x67, 0xea, 0xea, 0xcb, 0xee, 0x2e, 0x63, 0x4e, 0xc7, 0x2e, 0x4c, 0x99, 0xac, 0x75,
+ 0xb5, 0xea, 0xb4, 0x7b, 0x7b, 0x35, 0x1d, 0x2f, 0xd2, 0x36, 0x9f, 0x2f, 0x05, 0xf2, 0x81, 0xdc,
+ 0x86, 0x51, 0x31, 0x0c, 0x0c, 0x4d, 0xfe, 0x30, 0xc3, 0x57, 0x98, 0x30, 0x2e, 0x81, 0x7c, 0x06,
+ 0x96, 0x80, 0xe2, 0x9d, 0x9d, 0xb3, 0x0d, 0x31, 0x72, 0x2f, 0xc0, 0x31, 0x67, 0xea, 0x51, 0xaf,
+ 0xa6, 0x30, 0x54, 0xed, 0xed, 0x72, 0xdb, 0x32, 0x62, 0xa7, 0x28, 0x32, 0xbc, 0x57, 0x26, 0x97,
+ 0xb6, 0xe1, 0x87, 0x7c, 0x7c, 0x8c, 0x28, 0x33, 0xd3, 0xdf, 0x70, 0x33, 0xf5, 0x3c, 0x0b, 0x3e,
+ 0xc6, 0x93, 0xfb, 0x0d, 0x0d, 0x33, 0xb4, 0x34, 0x42, 0x74, 0x3b, 0x34, 0xc9, 0xee, 0xc8, 0xe7,
+ 0xd6, 0x42, 0x28, 0x9c, 0x9c, 0xcd, 0x47, 0x35, 0xf3, 0x0c, 0x63, 0x35, 0x80, 0x85, 0xe5, 0x4e,
+ 0xe6, 0xf2, 0x9e, 0xec, 0xec, 0x0c, 0x91, 0x36, 0xe3, 0x84, 0x8b, 0x36, 0x5b, 0x38, 0x92, 0x76,
+ 0xf6, 0x23, 0x4d, 0x7d, 0x7d, 0xf2, 0x62, 0x37, 0x52, 0xfc, 0xd3, 0x37, 0x12, 0x53, 0xbf, 0xdf,
+ 0x06, 0x16, 0x66, 0x0e, 0x0e, 0xb1, 0x6a, 0x38, 0x02, 0x11, 0x1d, 0x38, 0x23, 0x5f, 0xd7, 0x07,
+ 0x16, 0xc7, 0xb5, 0x9f, 0x9f, 0x4f, 0x99, 0x39, 0xb3, 0x69, 0x45, 0x39, 0x6a, 0x34, 0xfa, 0xae,
+ 0x26, 0x77, 0x03, 0xef, 0xef, 0x8e, 0x4f, 0x3a, 0xa3, 0xe1, 0xad, 0x3a, 0xb1, 0x89, 0x8d, 0x96,
+ 0x36, 0xa6, 0xd0, 0x7e, 0x7e, 0x70, 0xbc, 0x3b, 0x12, 0x99, 0xf5, 0x3b, 0xf8, 0xe2, 0xa0, 0x3f,
+ 0x46, 0xd4, 0xac, 0x0f, 0x0f, 0xcf, 0x20, 0x3c, 0x83, 0x32, 0xbe, 0x3c, 0xc4, 0x30, 0x63, 0xe6,
+ 0x56, 0x05, 0x7f, 0x9e, 0x9e, 0x31, 0xd3, 0x3d, 0x32, 0x4a, 0xe6, 0x3d, 0x8d, 0x5b, 0x4e, 0x4f,
+ 0x66, 0xb5, 0xc9, 0xee, 0xee, 0xf0, 0x05, 0x3e, 0x22, 0xc2, 0x0e, 0x3e, 0x56, 0xe6, 0x39, 0x77,
+ 0x76, 0x64, 0x1a, 0x7f, 0x7f, 0x0e, 0xf6, 0x3f, 0x93, 0xba, 0x56, 0x3f, 0x1f, 0x8d, 0x14, 0xde,
+ 0x8a, 0x7d, 0xfd, 0x10, 0x10, 0xec, 0x2a, 0x40, 0xc7, 0x75, 0xa2, 0x40, 0x68, 0x3f, 0x11, 0x08,
+ 0x9a, 0xac, 0x2e, 0x81, 0x81, 0x12, 0xd9, 0x41, 0x76, 0x0d, 0xfa, 0x41, 0x21, 0x54, 0x3c, 0xa1,
+ 0xaa, 0x1c, 0x98, 0xf1, 0xf1, 0xd3, 0x0f, 0x42, 0x66, 0x85, 0x12, 0x42, 0xfa, 0xe9, 0x4b, 0x99,
+ 0xba, 0xcd, 0x4b, 0x60, 0x60, 0x2d, 0xfc, 0x43, 0xd7, 0xfd, 0x4a, 0x43, 0xb3, 0x82, 0x66, 0x30,
+ 0xca, 0xbf, 0x37, 0x11, 0x11, 0x92, 0x60, 0x44, 0x46, 0x56, 0x01, 0x44, 0x8f, 0x50, 0xa5, 0xe9,
+ 0xda, 0x6e, 0xe4, 0x80, 0x80, 0x6c, 0x93, 0x45, 0xf7, 0x2e, 0x59, 0x45, 0xc6, 0x3b, 0x88, 0x40,
+ 0xea, 0xde, 0x52, 0xf0, 0xf0, 0xad, 0x45, 0x46, 0xe7, 0xa6, 0xb1, 0x46, 0x1d, 0x86, 0xff, 0x78,
+ 0xfa, 0x0f, 0x81, 0x61, 0x61, 0x53, 0xb6, 0x47, 0x56, 0xde, 0xe9, 0x47, 0x54, 0xed, 0xd2, 0xd1,
+ 0x0a, 0x3a, 0xaa, 0x12, 0x12, 0x10, 0xbe, 0x48, 0x06, 0x33, 0x27, 0x48, 0x65, 0xe1, 0xba, 0x09,
+ 0x1a, 0xeb, 0x79, 0x83, 0x83, 0xee, 0x4d, 0x49, 0xb7, 0x4b, 0x7f, 0x49, 0x2c, 0x8a, 0x97, 0xa0,
+ 0x2a, 0x5b, 0xcf, 0xf3, 0xf3, 0x2f, 0x9b, 0x4a, 0xa7, 0xc3, 0x97, 0x4a, 0xf7, 0x37, 0xe0, 0x98,
+ 0x3a, 0x8a, 0x1c, 0x62, 0x62, 0xd1, 0x68, 0x4b, 0x16, 0xbb, 0xcf, 0x4b, 0xbe, 0x5c, 0xcd, 0x31,
+ 0x4a, 0xf8, 0x60, 0x13, 0x13, 0x6e, 0xf4, 0x4c, 0x87, 0x10, 0x84, 0x4c, 0x82, 0x8e, 0x0e, 0xe8,
+ 0x5a, 0x29, 0xb3, 0x82, 0x82, 0x90, 0x07, 0x4d, 0x36, 0x68, 0xdc, 0x4d, 0xcb, 0xe5, 0x23, 0x41,
+ 0x6a, 0x99, 0x05, 0xf2, 0xf2, 0x51, 0xd1, 0x4e, 0x26, 0xe0, 0x34, 0x4e, 0x10, 0x58, 0x54, 0x79,
+ 0x7a, 0x48, 0xd6, 0x63, 0x63, 0xaf, 0x22, 0x4f, 0x97, 0x98, 0x6c, 0x4f, 0x59, 0x33, 0x79, 0xd0,
+ 0x49, 0xf3, 0x53, 0x14, 0x14, 0xd7, 0xc1, 0x50, 0x86, 0xf9, 0x6b, 0x50, 0x72, 0x40, 0x84, 0x0a,
+ 0x59, 0x22, 0x80, 0x85, 0x85, 0x29, 0x32, 0x51, 0x37, 0x81, 0x33, 0x51, 0x3b, 0x2b, 0xa9, 0xa3,
+ 0x69, 0x92, 0x36, 0xf5, 0xf5, 0xe8, 0xe4, 0x52, 0x27, 0x09, 0xdb, 0x52, 0xe0, 0x96, 0xde, 0x9b,
+ 0x79, 0x43, 0xe5, 0x64, 0x64, 0x16, 0x17, 0x53, 0x96, 0x71, 0x83, 0x53, 0xa9, 0xfd, 0xf3, 0x32,
+ 0x09, 0x31, 0x99, 0x15, 0x15, 0xa9, 0x8b, 0x54, 0x07, 0xda, 0xc8, 0x54, 0x95, 0x2f, 0x30, 0xeb,
+ 0x19, 0xe0, 0x4a, 0x84, 0x84, 0x57, 0x78, 0x55, 0xb6, 0xa2, 0x90, 0x55, 0xdc, 0x44, 0x1d, 0x42,
+ 0x29, 0x50, 0xfc, 0xf4, 0xf4, 0x96, 0xae, 0x56, 0xa6, 0x2a, 0x78, 0x56, 0x07, 0xf9, 0x6a, 0x7a,
+ 0x39, 0x81, 0x2f, 0x65, 0x65, 0x68, 0x5d, 0x57, 0x17, 0x52, 0x20, 0x57, 0x4e, 0x92, 0x47, 0xd3,
+ 0xc9, 0xb4, 0x04, 0x16, 0x16, 0x2b, 0x55, 0x58, 0x47, 0xbf, 0xee, 0x58, 0x7f, 0x9e, 0x2f, 0x0b,
+ 0xd9, 0x65, 0xd7, 0x87, 0x87, 0xd5, 0xa6, 0x59, 0xf6, 0xc7, 0xb6, 0x59, 0x36, 0xf5, 0x02, 0xa2,
+ 0xe9, 0xd5, 0x61, 0xf7, 0xf7, 0x14, 0x70, 0x5a, 0xe6, 0x4f, 0x5e, 0x5a, 0xed, 0x48, 0x75, 0x9a,
+ 0xf9, 0x04, 0xb2, 0x66, 0x66, 0xea, 0x83, 0x5b, 0x57, 0x37, 0x06, 0x5b, 0xa4, 0x23, 0x58, 0x33,
+ 0x89, 0x76, 0xce, 0x17, 0x17, 0x55, 0x1f, 0x5c, 0xc6, 0x9c, 0x4d, 0x5c, 0x98, 0xf1, 0x9b, 0xea,
+ 0x99, 0xa7, 0x1d, 0x86, 0x86, 0xab, 0xec, 0x5d, 0x77, 0xe4, 0x15, 0x5d, 0xd1, 0x9a, 0xb6, 0x43,
+ 0xa9, 0x17, 0xab, 0xf6, 0xf6, 0x6a, 0x3a, 0x5e, 0x67, 0x6c, 0xfd, 0x5e, 0x0a, 0x27, 0xc1, 0x7b,
+ 0xb9, 0xc6, 0x78, 0x67, 0x67, 0x94, 0xc9, 0x5f, 0xd6, 0x14, 0xa5, 0x5f, 0x43, 0x4c, 0xec, 0xd2,
+ 0xcf, 0xa2, 0x62, 0x18, 0x18, 0x9a, 0x3f, 0x60, 0x45, 0xae, 0xf3, 0x60, 0x5c, 0xc1, 0xf8, 0x0c,
+ 0xdf, 0x73, 0xb1, 0x89, 0x89, 0x64, 0xcc, 0x61, 0xf4, 0xd6, 0xab, 0x61, 0x15, 0xaa, 0xd5, 0xa5,
+ 0xef, 0xc3, 0x07, 0xf9, 0xf9, 0xa5, 0x1a, 0x62, 0xe4, 0x5e, 0x43, 0x62, 0xce, 0x17, 0xa2, 0x9d,
+ 0xff, 0x12, 0xd4, 0x68, 0x68, 0x5b, 0xe9, 0x63, 0x55, 0x26, 0x1b, 0x63, 0x87, 0x7c, 0x8f, 0x34,
+ 0x8f, 0x60, 0xa8, 0x19, 0x19, 0xe4, 0x75, 0x64, 0xc4, 0x8d, 0x50, 0x64, 0xbb, 0xae, 0x4c, 0xed,
+ 0x9f, 0xb1, 0x7b, 0x88, 0x88, 0x1a, 0x86, 0x65, 0x75, 0xf5, 0x08, 0x65, 0xf2, 0xc5, 0x61, 0x44,
+ 0xaf, 0x01, 0xcd, 0xf8, 0xf8, 0xdb, 0x50, 0x66, 0x65, 0x7d, 0xe0, 0x66, 0x29, 0x78, 0x16, 0x7c,
+ 0xbf, 0xd0, 0x1e, 0x69, 0x69, 0x25, 0xa3, 0x67, 0xd4, 0x05, 0xb8, 0x67, 0x60, 0x13, 0x3b, 0xd5,
+ 0x4f, 0xe5, 0x35, 0x1a, 0x1a, 0x66, 0xab, 0x68, 0x84, 0xe8, 0x76, 0x68, 0x51, 0x1f, 0x53, 0x0d,
+ 0x5f, 0x34, 0xe6, 0x8b, 0x8b, 0x98, 0x58, 0x69, 0x35, 0x90, 0x2e, 0x69, 0x18, 0x74, 0x7e, 0xa4,
+ 0x6f, 0x84, 0x50, 0xfb, 0xfb, 0x59, 0x8e, 0x6a, 0x25, 0x18, 0xc6, 0x6a, 0xc3, 0xc9, 0x09, 0x9c,
+ 0x7f, 0x55, 0x83, 0x6a, 0x6a, 0xa7, 0x7d, 0x6b, 0x94, 0x60, 0x9e, 0x6b, 0x8a, 0xa2, 0x24, 0x35,
+ 0x0f, 0x27, 0xff, 0x1b, 0x1b, 0x18, 0xe1, 0x6c, 0x05, 0xcb, 0xd5, 0x6c, 0xb6, 0x70, 0xe7, 0xec,
+ 0x1f, 0xf6, 0x2c, 0x8a, 0x8a, 0xe6, 0x12, 0x6d, 0xb4, 0xb3, 0x8d, 0x6d, 0xff, 0x1b, 0xca, 0x45,
+ 0x2f, 0x46, 0x9a, 0xfa, 0xfa, 0x27, 0xc4, 0x6e, 0xa4, 0x3b, 0x65, 0x6e, 0x24, 0xa6, 0xbd, 0x7d,
+ 0x3f, 0x97, 0x49, 0x6b, 0x6b, 0xd9, 0x37, 0x6f, 0x15, 0x43, 0x3d, 0x6f, 0x6d, 0xcd, 0x90, 0xd4,
+ 0x0c, 0x2c, 0xcc, 0x1c, 0x1c, 0xa1, 0xd4, 0x70, 0x04, 0x22, 0x3a, 0x70, 0x46, 0xbe, 0x6d, 0x0e,
+ 0x1c, 0xfd, 0x1f, 0x8d, 0x8d, 0x5f, 0x27, 0x71, 0xb5, 0x5a, 0x62, 0x71, 0x0f, 0xd5, 0x40, 0xa7,
+ 0x2c, 0x4d, 0xa9, 0xfd, 0xfd, 0x9e, 0xf1, 0x72, 0xa5, 0xd2, 0x8a, 0x72, 0xd4, 0x68, 0x37, 0x9f,
+ 0x3c, 0x9c, 0x7a, 0x6c, 0x6c, 0x60, 0x02, 0x73, 0x14, 0xaa, 0xd2, 0x73, 0x9d, 0x03, 0x1a, 0x36,
+ 0x4c, 0xee, 0x06, 0x1d, 0x1d, 0xdf, 0x9e, 0x74, 0x85, 0x01, 0x99, 0x74, 0xa1, 0xd1, 0xd9, 0xef,
+ 0x5c, 0x3f, 0xd5, 0x8c, 0x8c, 0x21, 0x6d, 0x75, 0x34, 0x79, 0xc1, 0x75, 0xe8, 0xba, 0xf4, 0x46,
+ 0x6c, 0x8f, 0x63, 0xfc, 0xfc, 0xe0, 0xbb, 0x76, 0x24, 0xf1, 0x29, 0x76, 0x33, 0x07, 0x83, 0x7e,
+ 0x7c, 0x5e, 0xb0, 0x6d, 0x6d, 0x1e, 0x48, 0x77, 0x95, 0x89, 0x71, 0x77, 0x7a, 0x6c, 0xae, 0xd7,
+ 0x8c, 0x6b, 0x9b, 0x1e, 0x1e, 0x5d, 0x40, 0x78, 0xc5, 0x64, 0xbf, 0x78, 0x4b, 0x60, 0xc6, 0x0f,
+ 0x9c, 0xba, 0x48, 0x8f, 0x8f, 0xa3, 0xb3, 0x79, 0x74, 0x1c, 0xe7, 0x79, 0x02, 0x0b, 0xeb, 0xa6,
+ 0xac, 0x0a, 0xfe, 0xff, 0xff, 0x62, 0x65, 0x7a, 0x64, 0x94, 0x0f, 0x7a, 0xd9, 0xb6, 0x9c, 0x9e,
+ 0xbc, 0xdb, 0x2d, 0x6e, 0x6e, 0x9c, 0x96, 0x7b, 0xd5, 0xec, 0x57, 0x7b, 0x90, 0xdd, 0xb1, 0x37,
+ 0xcc, 0xa9, 0x51, 0x1f, 0x1f, 0x23, 0x0a, 0x7c, 0x44, 0x47, 0x1c, 0x7c, 0xac, 0x0f, 0x72, 0xee,
+ 0xdc, 0x78, 0x82, 0x8e, 0x8e, 0xdd, 0xf9, 0x7d, 0xf5, 0x3f, 0x44, 0x7d, 0xe5, 0x64, 0x5f, 0x47,
+ 0xec, 0xc8, 0x34, 0xfe, 0xfe, 0x1c, 0x2f, 0x7e, 0xe5, 0xb7, 0xac, 0x7e, 0x3e, 0xd9, 0x28, 0x7f,
+ 0xfc, 0x19, 0xe7, 0x6f, 0x6f, 0xe2, 0xdc, 0x7f, 0x54, 0xcf, 0xf4, 0x7f, 0x77, 0xb2, 0x05, 0xd6,
+ 0xd7, 0xfa, 0x39, 0x20, 0x20, 0x1b, 0x54, 0x80, 0x4d, 0xea, 0x87, 0x80, 0xd0, 0x7e, 0x22, 0x10,
+ 0xc7, 0x2b, 0xea, 0xb1, 0xb1, 0xe5, 0xa7, 0x81, 0xfc, 0x92, 0xdf, 0x81, 0x99, 0x15, 0x0f, 0xb9,
+ 0xf7, 0x9b, 0x5c, 0xc1, 0xc1, 0x24, 0x71, 0x82, 0xec, 0x1a, 0x37, 0x82, 0x42, 0xa8, 0x78, 0x81,
+ 0xe7, 0x4a, 0x8f, 0x50, 0x50, 0xda, 0x82, 0x83, 0x5d, 0x62, 0x6f, 0x83, 0x0b, 0xc3, 0x55, 0x28,
+ 0x97, 0x38, 0xf3, 0x21, 0x21, 0x65, 0x1e, 0x84, 0xcc, 0xc9, 0x24, 0x84, 0x37, 0x11, 0x96, 0xf1,
+ 0x87, 0xe9, 0x20, 0xb0, 0xb0, 0x9b, 0xed, 0x85, 0x7d, 0xb1, 0x7c, 0x85, 0x7e, 0x7a, 0xbb, 0x58,
+ 0xb7, 0x59, 0x96, 0xc0, 0xc0, 0x5a, 0x3b, 0x86, 0x6d, 0x39, 0x94, 0x86, 0xa5, 0xc7, 0xcc, 0x60,
+ 0xa7, 0x88, 0x45, 0x51, 0x51, 0xa4, 0xc8, 0x87, 0xdc, 0x41, 0xcc, 0x87, 0xec, 0xac, 0xe1, 0xc9,
+ 0x57, 0xbd, 0x6e, 0x22, 0x22, 0xe7, 0xc0, 0x88, 0x8c, 0xac, 0x02, 0x88, 0xdd, 0xa0, 0x89, 0x11,
+ 0x47, 0x6c, 0xbd, 0xb3, 0xb3, 0x19, 0x33, 0x89, 0x3d, 0xd4, 0x5a, 0x89, 0x94, 0xcb, 0xa4, 0xb8,
+ 0x77, 0xdc, 0x0b, 0xc3, 0xc3, 0xd8, 0xe5, 0x8a, 0x2d, 0x5c, 0xb2, 0x8a, 0x4f, 0x76, 0xd3, 0x80,
+ 0x67, 0x0d, 0xd8, 0x52, 0x52, 0x26, 0x16, 0x8b, 0x9c, 0x24, 0xea, 0x8b, 0x06, 0x1d, 0xfe, 0x29,
+ 0x17, 0x7f, 0xa4, 0x23, 0x23, 0x99, 0x8a, 0x8c, 0x0d, 0x8f, 0xa1, 0x8c, 0x3a, 0xcf, 0x3d, 0xf0,
+ 0x07, 0xae, 0x77, 0xb2, 0xb2, 0x67, 0x79, 0x8d, 0xbc, 0xf7, 0xf9, 0x8d, 0x73, 0xa4, 0x10, 0x59,
+ 0x37, 0x1e, 0xc1, 0xc2, 0xc2, 0xa6, 0xaf, 0x8e, 0xac, 0x7f, 0x11, 0x8e, 0xa8, 0x19, 0x67, 0x61,
+ 0x27, 0xcf, 0x12, 0x53, 0x53, 0x58, 0x5c, 0x8f, 0x1d, 0x07, 0x49, 0x8f, 0xe1, 0x72, 0x4a, 0xc8,
+ 0x14, 0x74, 0x97, 0x24, 0x24, 0x20, 0xbf, 0x90, 0x0c, 0x66, 0x4e, 0x90, 0xca, 0x01, 0xb7, 0x12,
+ 0x04, 0xa5, 0x44, 0xb5, 0xb5, 0xde, 0x4c, 0x91, 0xbd, 0x1e, 0x16, 0x91, 0x83, 0x6a, 0x9a, 0xbb,
+ 0x34, 0x15, 0xf2, 0xc5, 0xc5, 0x1f, 0x9a, 0x92, 0xad, 0x96, 0xfe, 0x92, 0x58, 0xd7, 0xed, 0x83,
+ 0x24, 0xc4, 0x21, 0x54, 0x54, 0xe1, 0x69, 0x93, 0x1c, 0xee, 0xa6, 0x93, 0x11, 0xbc, 0xc0, 0x2a,
+ 0x54, 0xb6, 0x5d, 0x25, 0x25, 0x5e, 0xf5, 0x94, 0x8d, 0x45, 0xed, 0x94, 0x2d, 0x6e, 0x03, 0xf3,
+ 0x44, 0x67, 0x8e, 0xb4, 0xb4, 0xa0, 0x06, 0x95, 0x3c, 0x3d, 0xb5, 0x95, 0x64, 0x05, 0x2e, 0x5a,
+ 0x74, 0xd7, 0x38, 0xc4, 0xc4, 0x61, 0xd0, 0x96, 0x2c, 0xb5, 0x5d, 0x96, 0xbf, 0xb8, 0x59, 0x62,
+ 0x64, 0x06, 0xeb, 0x55, 0x55, 0x9f, 0x23, 0x97, 0x9d, 0xcd, 0x05, 0x97, 0xf6, 0xd3, 0x74, 0xcb,
+ 0x94, 0x33, 0xc0, 0x26, 0x26, 0xdc, 0x2b, 0x98, 0xcd, 0x20, 0xcb, 0x98, 0xc7, 0xdf, 0x1c, 0x13,
+ 0x84, 0xe2, 0x13, 0xb7, 0xb7, 0x22, 0xd8, 0x99, 0x7c, 0x58, 0x93, 0x99, 0x8e, 0xb4, 0x31, 0xba,
+ 0xb4, 0x52, 0xa5, 0xc7, 0xc7, 0xe3, 0x0e, 0x9a, 0x6c, 0xd0, 0x7b, 0x9a, 0x55, 0x09, 0x46, 0x82,
+ 0xa4, 0x83, 0x76, 0x56, 0x56, 0x1d, 0xfd, 0x9b, 0xdd, 0xa8, 0x23, 0x9b, 0x1c, 0x62, 0x6b, 0x2b,
+ 0xd4, 0xf1, 0x0a, 0x27, 0x27, 0xa2, 0x61, 0x9c, 0x4c, 0x03, 0x68, 0x9c, 0x20, 0xb0, 0xa8, 0xf2,
+ 0xc4, 0x20, 0xd9, 0xb6, 0xb6, 0x5c, 0x92, 0x9d, 0xfd, 0x7b, 0x30, 0x9d, 0x69, 0xdb, 0x85, 0x5b,
+ 0xf4, 0x90, 0x6f, 0xc6, 0xc6, 0x9d, 0x44, 0x9e, 0xed, 0xf3, 0xd8, 0x9e, 0xb2, 0x66, 0xf2, 0x63,
+ 0xe4, 0x41, 0xbc, 0x57, 0x57, 0x63, 0xb7, 0x9f, 0x5c, 0x8b, 0x80, 0x9f, 0xfb, 0x0d, 0xdf, 0xca,
+ 0x92, 0x25, 0xa6, 0x28, 0x28, 0x6d, 0x41, 0xa0, 0xcf, 0x31, 0xd6, 0xa0, 0xe4, 0x80, 0xcb, 0x14,
+ 0x82, 0xf4, 0x75, 0xb9, 0xb9, 0x93, 0xb2, 0xa1, 0x7e, 0x49, 0x8e, 0xa1, 0xad, 0xeb, 0xe6, 0xbd,
+ 0xb2, 0x44, 0xc3, 0xc9, 0xc9, 0x52, 0x64, 0xa2, 0x6e, 0xc1, 0x66, 0xa2, 0x76, 0x56, 0x91, 0x85,
+ 0xa2, 0x95, 0x10, 0x58, 0x58, 0xac, 0x97, 0xa3, 0xdf, 0xb9, 0x3e, 0xa3, 0x3f, 0x3d, 0xbc, 0x2c,
+ 0xd2, 0xe7, 0x6c, 0x29, 0x29, 0x13, 0x0b, 0xa4, 0x4e, 0x12, 0x75, 0xa4, 0x03, 0xef, 0x7f, 0xf5,
+ 0xc2, 0x36, 0xbf, 0xb8, 0xb8, 0xed, 0xf8, 0xa5, 0xff, 0x6a, 0x2d, 0xa5, 0x4a, 0x84, 0x52, 0x5c,
+ 0xf2, 0x86, 0x09, 0xc8, 0xc8, 0x2c, 0x2e, 0xa6, 0xef, 0xe2, 0xc5, 0xa6, 0x91, 0x39, 0x25, 0x64,
+ 0xe2, 0x57, 0xda, 0x59, 0x59, 0xd2, 0xdd, 0xa7, 0x5e, 0x9a, 0x9d, 0xa7, 0xd8, 0x52, 0x08, 0xcd,
+ 0x12, 0x62, 0xf1, 0x2a, 0x2a, 0x91, 0xd5, 0xa8, 0x0e, 0x77, 0x53, 0xa8, 0xe9, 0x5e, 0x60, 0x15,
+ 0x02, 0xb3, 0x22, 0xbb, 0xbb, 0x6f, 0x26, 0xa9, 0xbf, 0x0f, 0x0b, 0xa9, 0xa0, 0x35, 0x4d, 0xbc,
+ 0x32, 0x03, 0x94, 0xcb, 0xcb, 0xae, 0xf0, 0xaa, 0xaf, 0x87, 0xe3, 0xaa, 0x7b, 0x88, 0x3a, 0x84,
+ 0x22, 0xd2, 0x47, 0x5a, 0x5a, 0x50, 0x03, 0xab, 0x1e, 0xff, 0xbb, 0xab, 0x32, 0xe3, 0x17, 0x2d,
+ 0x52, 0xa0, 0x3b, 0x2b, 0x2b, 0xef, 0x9f, 0xac, 0x8f, 0x54, 0xf0, 0xac, 0x0e, 0x31, 0xd4, 0xf4,
+ 0x42, 0x71, 0xe8, 0xba, 0xba, 0x11, 0x6c, 0xad, 0x3e, 0x2c, 0xa8, 0xad, 0x47, 0x5a, 0xf9, 0x5d,
+ 0x72, 0xc1, 0x5e, 0xca, 0xca, 0xd0, 0xba, 0xae, 0x2e, 0xa4, 0x40, 0xae, 0x9c, 0xe7, 0x8e, 0x65,
+ 0x62, 0x10, 0x8d, 0x5b, 0x5b, 0x2e, 0x49, 0xaf, 0x9f, 0xdc, 0x18, 0xaf, 0xd5, 0x8c, 0xa3, 0xcc,
+ 0x51, 0xab, 0x08, 0x2c, 0x2c, 0x56, 0xaa, 0xb0, 0x8e, 0xbd, 0x1f, 0xb0, 0xfe, 0xff, 0x5e, 0x16,
+ 0x41, 0x7a, 0xdb, 0xbd, 0xbd, 0xa8, 0x59, 0xb1, 0x3f, 0xc5, 0x47, 0xb1, 0xb7, 0x94, 0x73, 0xbf,
+ 0x71, 0xca, 0x6d, 0xcd, 0xcd, 0x69, 0x8f, 0xb2, 0x2f, 0x4d, 0xaf, 0xb2, 0x6c, 0x29, 0x04, 0x87,
+ 0x61, 0x1b, 0xbe, 0x5c, 0x5c, 0x97, 0x7c, 0xb3, 0x9e, 0x35, 0xf7, 0xb3, 0x25, 0x42, 0x29, 0x2e,
+ 0x11, 0x69, 0xc2, 0x2d, 0x2d, 0x28, 0xe0, 0xb4, 0x0f, 0x9e, 0xbc, 0xb4, 0x19, 0x90, 0xea, 0xf7,
+ 0x01, 0xb8, 0x11, 0xbc, 0xbc, 0xd6, 0x13, 0xb5, 0xbe, 0xe6, 0xe4, 0xb5, 0x50, 0xfb, 0xc7, 0x5e,
+ 0x31, 0x08, 0xa7, 0xcc, 0xcc, 0x17, 0xc5, 0xb6, 0xae, 0x6e, 0x0c, 0xb6, 0x8b, 0x46, 0xb0, 0x66,
+ 0x21, 0xd9, 0x74, 0x5d, 0x5d, 0xe9, 0x36, 0xb7, 0x1f, 0x16, 0x54, 0xb7, 0xc2, 0x2d, 0x9d, 0xcf,
+ 0xd1, 0xec, 0x5f, 0x2e, 0x2e, 0xaa, 0x3e, 0xb8, 0x4f, 0xfb, 0x9a, 0xb8, 0xf3, 0x21, 0xf5, 0x17,
+ 0xc1, 0x3d, 0x8c, 0xbf, 0xbf, 0x54, 0xcd, 0xb9, 0xfe, 0x83, 0xc2, 0xb9, 0xba, 0x4a, 0xd8, 0xbe,
+ 0xf1, 0x8d, 0x3a, 0xcf, 0xcf, 0x95, 0x1b, 0xba, 0xee, 0x0b, 0x2a, 0xba, 0x61, 0xf7, 0xaf, 0x86,
+ 0xe1, 0x5c, 0xe9, 0x5e, 0x5e, 0x6b, 0xe8, 0xbb, 0x5f, 0x73, 0x72, 0xbb, 0x28, 0x9c, 0x82, 0x2f,
+ 0x91, 0x2e, 0x95, 0x2f, 0x2f, 0xd4, 0x74, 0xbc, 0xce, 0xd8, 0x39, 0xbc, 0x14, 0x4e, 0x41, 0xf6,
+ 0x81, 0xff, 0x46, 0xbe, 0xbe, 0x2a, 0x87, 0xbd, 0x7f, 0xa0, 0x61, 0xbd, 0x5d, 0x25, 0x6c, 0x5f,
+ 0xb1, 0x4f, 0xf0, 0xce, 0xce, 0xeb, 0x51, 0xbe, 0x6f, 0x28, 0x89, 0xbe, 0x86, 0x98, 0x1b, 0x67,
+ 0xa1, 0x9e, 0x23, 0x5f, 0x5f, 0x15, 0xa2, 0xbf, 0xde, 0x50, 0xd1, 0xbf, 0xcf, 0xf3, 0x36, 0xce,
+ 0x5d, 0x87, 0xc4, 0x30, 0x30, 0xf7, 0x7e, 0xc0, 0x8a, 0x9f, 0x25, 0xc0, 0xb8, 0x41, 0x33, 0x18,
+ 0x4d, 0x56, 0x17, 0xa1, 0xa1, 0x09, 0x8d, 0xc1, 0x3b, 0xe7, 0x7d, 0xc1, 0xf1, 0x2a, 0x1e, 0xb1,
+ 0x7d, 0xe6, 0xa1, 0xd1, 0xd1, 0xc8, 0x5b, 0xc2, 0x2b, 0x6f, 0x95, 0xc2, 0x2a, 0x97, 0x69, 0x89,
+ 0x6d, 0x37, 0x72, 0x40, 0x40, 0x36, 0xa8, 0xc3, 0x9a, 0x17, 0xcd, 0xc3, 0x63, 0xfc, 0x44, 0x20,
+ 0x1d, 0x45, 0x0e, 0x31, 0x31, 0x89, 0x34, 0xc4, 0x0b, 0xbc, 0x86, 0xc4, 0x5f, 0x2e, 0x87, 0xf9,
+ 0x0d, 0x94, 0xdd, 0xa0, 0xa0, 0x77, 0xc7, 0xc5, 0xba, 0xc4, 0xde, 0xc5, 0x16, 0x45, 0xaa, 0x50,
+ 0x3d, 0x24, 0x6b, 0xd0, 0xd0, 0xb6, 0x11, 0xc6, 0xaa, 0x4c, 0x36, 0xc6, 0xcd, 0xf8, 0xdd, 0x68,
+ 0x2d, 0xf5, 0xb8, 0x41, 0x41, 0x48, 0xe2, 0xc7, 0x1b, 0x34, 0x6e, 0xc7, 0x84, 0x93, 0xf0, 0xc1,
+ 0xdd, 0xc0, 0x93, 0x32, 0x32, 0x0b, 0xea, 0xc8, 0x4b, 0xd9, 0xa0, 0xc8, 0xb5, 0x9f, 0x98, 0x19,
+ 0xcd, 0x11, 0x40, 0xa3, 0xa3, 0xf5, 0x19, 0xc9, 0xfa, 0xa1, 0xf8, 0xc9, 0xfc, 0xf4, 0xb5, 0xb0,
+ 0xfd, 0xa1, 0xf6, 0xd3, 0xd3, 0x34, 0xcf, 0xca, 0xea, 0x29, 0x10, 0xca, 0x27, 0x49, 0xc2, 0x88,
+ 0xed, 0x70, 0x25, 0x42, 0x42, 0xca, 0x3c, 0xcb, 0x5b, 0x51, 0x48, 0xcb, 0x6e, 0x22, 0xef, 0x21,
+ 0x9d, 0x02, 0x59, 0x33, 0x33, 0x75, 0xa0, 0xcc, 0xca, 0xfa, 0x03, 0xcc, 0x52, 0xf0, 0x2c, 0xf8,
+ 0x8d, 0xd3, 0x8a, 0xa2, 0xa2, 0x8b, 0x53, 0xcd, 0x7b, 0x82, 0x5b, 0xcd, 0x1b, 0x9b, 0x01, 0x51,
+ 0xbd, 0x63, 0x3c, 0xd2, 0xd2, 0x4a, 0x85, 0xce, 0x6b, 0x0a, 0xb3, 0xce, 0xc0, 0x26, 0x76, 0x69,
+ 0xad, 0xb2, 0xef, 0x43, 0x43, 0xb4, 0x76, 0xcf, 0xda, 0x72, 0xeb, 0xcf, 0x89, 0x4d, 0x5b, 0xc0,
+ 0x9e, 0x09, 0x6a, 0x34, 0x34, 0xcc, 0x95, 0xd0, 0xcb, 0x13, 0xec, 0xd0, 0xa2, 0x3e, 0xa6, 0x1a,
+ 0x8e, 0xd8, 0xb9, 0xa5, 0xa5, 0x32, 0x66, 0xd1, 0x7a, 0x6b, 0xb4, 0xd1, 0xeb, 0x55, 0x8b, 0xb3,
+ 0xbe, 0x68, 0x0f, 0xd5, 0xd5, 0xf3, 0xb0, 0xd2, 0x6a, 0xe3, 0x5c, 0xd2, 0x30, 0xe8, 0xfc, 0x8b,
+ 0xae, 0xb9, 0xdc, 0x44, 0x44, 0x0d, 0x43, 0xd3, 0xdb, 0x9b, 0x04, 0xd3, 0x79, 0x83, 0xd1, 0x22,
+ 0xde, 0xcb, 0xa0, 0x35, 0x35, 0xb2, 0xdf, 0xd4, 0x4a, 0x30, 0x4f, 0xd4, 0x45, 0x51, 0x12, 0xfb,
+ 0xce, 0x1a, 0x73, 0xa4, 0xa4, 0x4c, 0x2c, 0xd5, 0xfb, 0x48, 0x17, 0xd5, 0x0c, 0x3a, 0x3f, 0x52,
+ 0xfe, 0xaa, 0xc5, 0xd4, 0xd4, 0x8d, 0xfa, 0xd6, 0xeb, 0xc0, 0xff, 0xd6, 0xd7, 0x87, 0x48, 0x6a,
+ 0xee, 0x7b, 0x16, 0x45, 0x45, 0x73, 0x09, 0xd7, 0x5a, 0xb8, 0xa7, 0xd7, 0x9e, 0xec, 0x65, 0xc3,
+ 0x1e, 0x4e, 0x3d, 0x36, 0x36, 0x30, 0x01, 0xd8, 0x0a, 0x55, 0x69, 0xd8, 0xaf, 0xe0, 0x0d, 0x1b,
+ 0x0e, 0x9f, 0xee, 0xa7, 0xa7, 0xce, 0xf2, 0xd9, 0xbb, 0x2d, 0x31, 0xd9, 0xe6, 0x8b, 0x20, 0xb2,
+ 0x3e, 0x2f, 0x58, 0xd7, 0xd7, 0x0f, 0x24, 0xda, 0xab, 0xa5, 0xd9, 0xda, 0x3d, 0x36, 0x57, 0x8a,
+ 0x2e, 0xfe, 0x8b, 0x46, 0x46, 0xf1, 0xd7, 0xdb, 0x1a, 0xdd, 0x81, 0xdb, 0x74, 0x5d, 0x7a, 0x23,
+ 0x5e, 0x8c, 0xf7, 0x37, 0x37, 0x4e, 0x4b, 0xdc, 0x8b, 0x76, 0xca, 0xdc, 0x48, 0x8f, 0xb9, 0xfa,
+ 0x4e, 0x5d, 0x24, 0xa6, 0xa6, 0xb0, 0xb8, 0xdd, 0x3a, 0x0e, 0x92, 0xdd, 0x01, 0xe4, 0x94, 0x53,
+ 0x7e, 0xed, 0x92, 0xd6, 0xd6, 0x71, 0x6e, 0xde, 0x2a, 0x86, 0x7a, 0xde, 0xda, 0x59, 0xe3, 0x6b,
+ 0x6e, 0x3c, 0x41, 0x47, 0x47, 0x8f, 0x9d, 0xdf, 0x9b, 0xfe, 0x22, 0xdf, 0x93, 0x32, 0xce, 0xc2,
+ 0x18, 0x58, 0x5b, 0x38, 0x38, 0x81, 0x6b, 0xe0, 0x08, 0x44, 0x74, 0xe0, 0x8c, 0xbf, 0xda, 0x1c,
+ 0x08, 0x89, 0x88, 0xa9, 0xa9, 0x7f, 0x98, 0xe1, 0xb9, 0x3c, 0x2c, 0xe1, 0xc5, 0xd4, 0xf7, 0xb5,
+ 0x38, 0x39, 0x3e, 0xd9, 0xd9, 0xbe, 0x4e, 0xe2, 0xa9, 0xb4, 0xc4, 0xe2, 0x1e, 0x69, 0x80, 0x8d,
+ 0x28, 0xe8, 0xed, 0x48, 0x48, 0x40, 0xbd, 0xe3, 0x18, 0xcc, 0x9c, 0xe3, 0x57, 0x02, 0xad, 0x24,
+ 0x58, 0x9a, 0x91, 0x39, 0x39, 0xff, 0x21, 0xe4, 0x89, 0x67, 0xd7, 0xe4, 0x6b, 0xd0, 0x6e, 0xfd,
+ 0x48, 0x4b, 0x42, 0xa8, 0xa8, 0x01, 0xd2, 0xe5, 0x38, 0x1f, 0x8f, 0xe5, 0x22, 0xbb, 0x43, 0x54,
+ 0x78, 0xfb, 0xf4, 0xd8, 0xd8, 0xc0, 0x04, 0xe6, 0x28, 0x97, 0x67, 0xe6, 0xf9, 0x06, 0x34, 0x6c,
+ 0x68, 0x2a, 0x27, 0x49, 0x49, 0x3e, 0xf7, 0xe7, 0x99, 0xef, 0x3f, 0xe7, 0xb0, 0x6d, 0x19, 0xc5,
+ 0x98, 0x1f, 0x0c, 0x3a, 0x3a, 0x7d, 0xff, 0xe8, 0xc9, 0x02, 0xf1, 0xe8, 0x81, 0x61, 0x71, 0x1d,
+ 0x88, 0xce, 0xdf, 0xab, 0xab, 0x83, 0x0c, 0xe9, 0x78, 0x7a, 0xa9, 0xe9, 0xc8, 0x0a, 0x5c, 0xb4,
+ 0xb8, 0x7e, 0x69, 0xdb, 0xdb, 0x42, 0xda, 0xea, 0x68, 0xf2, 0x41, 0xea, 0x13, 0xb7, 0x2b, 0x8c,
+ 0xa8, 0xaf, 0xba, 0x4a, 0x4a, 0xbc, 0x29, 0xeb, 0xd9, 0x8a, 0x19, 0xeb, 0x5a, 0xdc, 0x06, 0x25,
+ 0xd8, 0xdd, 0xc6, 0x3b, 0x3b, 0x03, 0xb5, 0xec, 0x48, 0x21, 0x52, 0xec, 0x66, 0x0e, 0xc5, 0xfc,
+ 0xc8, 0x0c, 0x15, 0xaa, 0xaa, 0xfd, 0x46, 0xed, 0xf9, 0x59, 0x0a, 0xed, 0x2f, 0x65, 0xe8, 0x55,
+ 0xf8, 0xbc, 0xa3, 0xda, 0xda, 0x3c, 0x90, 0xee, 0xe9, 0xd1, 0xe2, 0xee, 0xf4, 0xd8, 0x9f, 0x6d,
+ 0xe8, 0x6d, 0x70, 0x4b, 0x4b, 0xc2, 0x63, 0xef, 0x58, 0xa9, 0xba, 0xef, 0xbd, 0xb3, 0xb2, 0xc4,
+ 0xdb, 0xd6, 0xf5, 0x3c, 0x3c, 0xba, 0x80, 0xf0, 0x49, 0xc8, 0xbd, 0xf0, 0x96, 0xc0, 0x4f, 0x1e,
+ 0xcb, 0x07, 0x26, 0xad, 0xad, 0x44, 0x73, 0xf1, 0xf8, 0xb0, 0xe5, 0xf1, 0xdf, 0xab, 0x62, 0xb7,
+ 0xfb, 0xb7, 0x90, 0xdd, 0xdd, 0x85, 0xa5, 0xf2, 0xe8, 0x38, 0x0d, 0xf2, 0x04, 0x16, 0x15, 0x8f,
+ 0xeb, 0x66, 0x43, 0x4c, 0x4c, 0x7b, 0x56, 0xf3, 0x59, 0x40, 0x55, 0xf3, 0x4d, 0x7d, 0x38, 0x26,
+ 0x9b, 0x14, 0x3f, 0x3d, 0x3d, 0xc4, 0xca, 0xf4, 0xc8, 0xeb, 0x1e, 0xf4, 0x71, 0xaf, 0xfb, 0xff,
+ 0x8b, 0xc5, 0xec, 0xac, 0xac, 0x3a, 0x39, 0xf5, 0x79, 0x93, 0x46, 0xf5, 0x38, 0xc4, 0xd6, 0x56,
+ 0xbb, 0x75, 0x5a, 0xdc, 0xdc, 0xfb, 0xef, 0xf6, 0x69, 0x1b, 0xae, 0xf6, 0xe3, 0x79, 0xa1, 0x6e,
+ 0xab, 0xa4, 0x89, 0x4d, 0x4d, 0x05, 0x1c, 0xf7, 0xd8, 0x63, 0xf6, 0xf7, 0xaa, 0x12, 0x8c, 0xc7,
+ 0x5b, 0x91, 0xa2, 0x3e, 0x3e, 0x46, 0x14, 0xf8, 0x88, 0x8e, 0x38, 0xf8, 0x9b, 0x1e, 0xe4, 0x1f,
+ 0x4b, 0x40, 0x71, 0xaf, 0xaf, 0xb8, 0xe7, 0xf9, 0x39, 0xf6, 0x60, 0xf9, 0xd2, 0x75, 0xc9, 0xb6,
+ 0x7b, 0xf0, 0xc7, 0xdf, 0xdf, 0x79, 0x31, 0xfa, 0x29, 0x7e, 0x88, 0xfa, 0x09, 0xc8, 0xbe, 0x8e,
+ 0x6b, 0x21, 0x14, 0x4e, 0x4e, 0x87, 0xc2, 0xfb, 0x98, 0x06, 0xd0, 0xfb, 0x40, 0xa3, 0x93, 0x27,
+ 0x1b, 0x53, 0x68, 0x3f, 0x3f, 0x38, 0x5e, 0xfc, 0x09, 0xad, 0x9b, 0xfc, 0x7c, 0x71, 0x50, 0xfe,
+ 0x0b, 0x82, 0xbb, 0xae, 0xae, 0xc6, 0xad, 0xfd, 0xb8, 0xd5, 0xc3, 0xfd, 0x35, 0x1a, 0x7d, 0x57,
+ 0x3b, 0x32, 0x0d, 0xde, 0xde, 0x07, 0x7b, 0xfe, 0xa8, 0x5d, 0x2b, 0xfe, 0xee, 0xa7, 0x0a, 0x6f,
+ 0x2b, 0xe3, 0xde, 0x4f, 0x4f, 0xf9, 0x88, 0xff, 0x19, 0x25, 0x73, 0xff, 0xa7, 0xcc, 0x27, 0xc6,
+ },
+ { /* 5 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xc2, 0x8d, 0x31, 0x64, 0xec, 0xeb, 0x0f, 0x2a, 0x37, 0x99, 0x90, 0xc4, 0xf6, 0x30, 0xb8, 0xf6,
+ 0x47, 0xd9, 0x62, 0xc8, 0x1b, 0x15, 0x1e, 0x54, 0x6e, 0xf1, 0xe3, 0x4b, 0x2f, 0x60, 0xb3, 0x2f,
+ 0x85, 0x54, 0x53, 0xac, 0xf7, 0xfe, 0x11, 0x7e, 0x59, 0x68, 0x73, 0x8f, 0xd9, 0x50, 0x0b, 0xd9,
+ 0x8e, 0x71, 0xc4, 0x53, 0x36, 0x2a, 0x3c, 0xa8, 0xdc, 0x21, 0x05, 0x96, 0x5e, 0xc0, 0xa5, 0x5e,
+ 0x4c, 0xfc, 0xf5, 0x37, 0xda, 0xc1, 0x33, 0x82, 0xeb, 0xb8, 0x95, 0x52, 0xa8, 0xf0, 0x1d, 0xa8,
+ 0xc9, 0xa8, 0xa6, 0x9b, 0x2d, 0x3f, 0x22, 0xfc, 0xb2, 0xd0, 0xe6, 0xdd, 0x71, 0xa0, 0x16, 0x71,
+ 0x0b, 0x25, 0x97, 0xff, 0xc1, 0xd4, 0x2d, 0xd6, 0x85, 0x49, 0x76, 0x19, 0x87, 0x90, 0xae, 0x87,
+ 0xdf, 0xe2, 0x4b, 0xa6, 0x6c, 0x54, 0x78, 0x93, 0x7b, 0x42, 0x0a, 0xef, 0xbc, 0x43, 0x89, 0xbc,
+ 0x1d, 0x6f, 0x7a, 0xc2, 0x80, 0xbf, 0x77, 0xb9, 0x4c, 0xdb, 0x9a, 0x2b, 0x4a, 0x73, 0x31, 0x4a,
+ 0x98, 0x3b, 0x29, 0x6e, 0x77, 0x41, 0x66, 0xc7, 0x15, 0xb3, 0xe9, 0xa4, 0x93, 0x23, 0x3a, 0x93,
+ 0x5a, 0xb6, 0x18, 0x0a, 0x9b, 0xaa, 0x69, 0xed, 0x22, 0x2a, 0x79, 0x60, 0x65, 0x13, 0x82, 0x65,
+ 0x51, 0x93, 0x8f, 0xf5, 0x5a, 0x7e, 0x44, 0x3b, 0xa7, 0x63, 0x0f, 0x79, 0xe2, 0x83, 0x2c, 0xe2,
+ 0x93, 0x1e, 0xbe, 0x91, 0xb6, 0x95, 0x4b, 0x11, 0x90, 0xfa, 0x9f, 0xbd, 0x14, 0xb3, 0x94, 0x14,
+ 0x16, 0x4a, 0xed, 0x3d, 0x41, 0x6b, 0x5a, 0x6f, 0xc9, 0x92, 0xec, 0x32, 0xcd, 0xe3, 0x9f, 0xcd,
+ 0xd4, 0xc7, 0xdc, 0x59, 0xad, 0x80, 0x55, 0x45, 0xfe, 0x0b, 0x7c, 0xf6, 0x3b, 0xd3, 0x27, 0x3b,
+ 0x7d, 0x07, 0x96, 0x8f, 0xd8, 0xa8, 0xf0, 0xe5, 0xf6, 0x84, 0x14, 0x1d, 0xbb, 0x86, 0xd1, 0xbb,
+ 0xbf, 0x8a, 0xa7, 0xeb, 0x34, 0x43, 0xff, 0xcf, 0xc1, 0x1d, 0x84, 0xd9, 0x4d, 0xb6, 0x69, 0x4d,
+ 0x3a, 0xde, 0xf4, 0x47, 0xc3, 0xbd, 0xee, 0xb1, 0x98, 0x75, 0xf7, 0x56, 0x94, 0xe6, 0x62, 0x94,
+ 0xf8, 0x53, 0xc5, 0x23, 0x2f, 0x56, 0xe1, 0x9b, 0xaf, 0xec, 0x67, 0x92, 0x62, 0xd6, 0xda, 0x62,
+ 0xf3, 0x76, 0x52, 0xdc, 0xee, 0x82, 0xcc, 0x4d, 0x2a, 0xa5, 0x11, 0x8b, 0xe5, 0x46, 0x74, 0xe5,
+ 0x31, 0xfb, 0x63, 0xb8, 0x02, 0x69, 0xc3, 0x67, 0x1d, 0x3c, 0x81, 0x4f, 0x13, 0x76, 0xcc, 0x13,
+ 0xb4, 0xaf, 0x30, 0x14, 0xf5, 0x97, 0xd2, 0x19, 0x44, 0x54, 0xf2, 0xc0, 0xca, 0x26, 0xc7, 0xca,
+ 0x76, 0x22, 0x01, 0x70, 0x19, 0x7c, 0xdd, 0x33, 0x73, 0xcd, 0x62, 0x04, 0x3c, 0x16, 0x7f, 0x3c,
+ 0xa2, 0xe5, 0xdd, 0x29, 0xb4, 0xfc, 0x88, 0x76, 0x8d, 0xc6, 0x1e, 0xf2, 0x07, 0xc5, 0x58, 0x07,
+ 0x60, 0x68, 0xec, 0x4d, 0x58, 0x17, 0x87, 0x5c, 0xba, 0x5f, 0x8e, 0x36, 0xf1, 0xf5, 0xe0, 0xf1,
+ 0xe5, 0x3c, 0xbf, 0xe1, 0xaf, 0xe9, 0x96, 0x22, 0xe3, 0x37, 0xfd, 0xb9, 0x28, 0xa5, 0xeb, 0x28,
+ 0x27, 0xb1, 0x8e, 0x85, 0x43, 0x02, 0x99, 0x08, 0xd4, 0xae, 0x6d, 0x7d, 0xde, 0x95, 0x53, 0xde,
+ 0x2c, 0x94, 0x19, 0x7a, 0x82, 0xd6, 0xb4, 0xde, 0x51, 0xe7, 0x1b, 0x64, 0x59, 0x05, 0xfd, 0x59,
+ 0xee, 0x19, 0x28, 0x1e, 0x6e, 0x3d, 0xbb, 0xf4, 0x66, 0x7e, 0x8b, 0xa0, 0xaf, 0x35, 0x45, 0xaf,
+ 0x6b, 0x4d, 0x7b, 0xb2, 0x99, 0xc3, 0xaa, 0x8a, 0x3f, 0x16, 0xf8, 0x2f, 0x76, 0x65, 0x4e, 0x76,
+ 0xa9, 0xc0, 0x4a, 0xd6, 0x75, 0x28, 0xa5, 0xa0, 0x08, 0x8f, 0x68, 0xeb, 0x80, 0x55, 0xf6, 0x80,
+ 0xfa, 0x0e, 0xef, 0xdd, 0x73, 0x93, 0x23, 0x09, 0x2f, 0xcb, 0x28, 0x3a, 0xb5, 0xcf, 0x61, 0xb5,
+ 0x38, 0x83, 0xde, 0xb9, 0x9f, 0x78, 0x2c, 0x23, 0x18, 0x52, 0xb8, 0xfe, 0x43, 0xff, 0xd9, 0x43,
+ 0xbd, 0xd7, 0x8d, 0x15, 0x68, 0x86, 0x3d, 0x5d, 0x41, 0x3a, 0xcb, 0x71, 0x9a, 0xaf, 0xd2, 0x9a,
+ 0x7f, 0x5a, 0xbc, 0x71, 0x84, 0x6d, 0x32, 0x77, 0x76, 0xa3, 0x5b, 0xb5, 0x6c, 0x9f, 0x6a, 0x6c,
+ 0x74, 0x7f, 0x2b, 0x8e, 0x45, 0xb9, 0x1f, 0xa1, 0xf3, 0xea, 0x2d, 0xac, 0xeb, 0x0f, 0xc4, 0xeb,
+ 0xb6, 0xf2, 0x1a, 0xea, 0xa9, 0x52, 0x10, 0x8b, 0xc4, 0x73, 0xbd, 0x68, 0x1d, 0x3f, 0x7c, 0x1d,
+ 0x33, 0xa6, 0x49, 0x46, 0x5e, 0xac, 0x01, 0xf5, 0x9d, 0x1b, 0xce, 0xe7, 0xc4, 0x6f, 0x77, 0xc4,
+ 0xf1, 0x2b, 0x78, 0x22, 0xb2, 0x47, 0x0e, 0xdf, 0xaa, 0x82, 0x5e, 0x23, 0x32, 0x5f, 0xcf, 0x32,
+ 0x25, 0xec, 0xa4, 0x7b, 0x1f, 0xc7, 0x5b, 0x9a, 0x54, 0x89, 0x22, 0xd5, 0x09, 0x8c, 0xe8, 0x09,
+ 0xe7, 0x61, 0x95, 0x1f, 0xf3, 0x2c, 0x54, 0xb0, 0x63, 0x10, 0xb2, 0x11, 0xff, 0xbc, 0x50, 0xff,
+ 0x62, 0x35, 0xc6, 0xb3, 0x04, 0xd2, 0x45, 0xce, 0x3a, 0x78, 0xc1, 0x9e, 0x26, 0xec, 0x5b, 0x26,
+ 0xa0, 0xb8, 0xf7, 0xd7, 0xe8, 0x39, 0x4a, 0xe4, 0x0d, 0xe1, 0x51, 0x5a, 0xd0, 0xdc, 0xe3, 0xd0,
+ 0xab, 0x9d, 0x60, 0x28, 0x29, 0xed, 0x67, 0x32, 0x88, 0xa8, 0x27, 0x43, 0x57, 0x4c, 0x4d, 0x57,
+ 0x69, 0x10, 0x51, 0x4c, 0xc5, 0x06, 0x68, 0x18, 0xbf, 0x31, 0xb7, 0x87, 0xa1, 0x7c, 0xf5, 0xa1,
+ 0xec, 0x44, 0x02, 0xe0, 0x32, 0xf8, 0x79, 0x66, 0xe6, 0x59, 0xc4, 0x08, 0x78, 0x2c, 0xfe, 0x78,
+ 0x2e, 0xc9, 0x33, 0x84, 0xde, 0x13, 0x76, 0x4c, 0xd1, 0xc0, 0x54, 0xcc, 0x8e, 0x1c, 0x46, 0x8e,
+ 0x87, 0x09, 0x79, 0x52, 0xab, 0x3b, 0xd3, 0xec, 0xd9, 0x4f, 0x3c, 0x27, 0x0e, 0x49, 0xb0, 0x0e,
+ 0x45, 0x84, 0x48, 0x36, 0x47, 0xd0, 0xdc, 0xc6, 0xee, 0xd6, 0xac, 0xe3, 0xf8, 0x79, 0x08, 0xf8,
+ 0xc0, 0xd0, 0x1b, 0x9a, 0xb0, 0x2e, 0xcd, 0xb8, 0xb7, 0xbe, 0xdf, 0x6c, 0x21, 0x29, 0x03, 0x21,
+ 0x02, 0x5d, 0x2a, 0xfe, 0x5c, 0xc5, 0xc2, 0x92, 0x80, 0x27, 0x4f, 0xa8, 0xd7, 0x19, 0xbb, 0xd7,
+ 0x09, 0x78, 0xbd, 0x01, 0x9d, 0x11, 0xef, 0x44, 0x05, 0x6e, 0x39, 0xb1, 0x50, 0x89, 0x15, 0x50,
+ 0xcb, 0xf5, 0x8c, 0x65, 0x71, 0xfa, 0xe0, 0x6e, 0x32, 0xf7, 0xa9, 0x75, 0xa6, 0xb9, 0xad, 0xa6,
+ 0x4e, 0xa1, 0xdf, 0xc9, 0x86, 0x04, 0xf1, 0x10, 0x6b, 0x9f, 0xda, 0xfa, 0x7f, 0xe9, 0xa6, 0x7f,
+ 0x8c, 0x2c, 0xee, 0xad, 0x6a, 0xef, 0xfe, 0x3a, 0x5c, 0x06, 0x4a, 0x3e, 0x89, 0xd9, 0x1e, 0x89,
+ 0x58, 0xeb, 0x32, 0xf4, 0xc7, 0x6f, 0xab, 0x7f, 0xa2, 0x0d, 0x36, 0xc8, 0xb2, 0x0a, 0x39, 0xb2,
+ 0x9a, 0x66, 0x03, 0x90, 0x2b, 0x84, 0xa4, 0x55, 0x95, 0x94, 0xa6, 0x0c, 0x44, 0x3a, 0x81, 0x44,
+ 0x1f, 0x32, 0x50, 0x3c, 0xdc, 0x7a, 0xb5, 0x2b, 0xcc, 0xfc, 0xd5, 0x83, 0x9d, 0x6a, 0x8a, 0x9d,
+ 0xdd, 0xbf, 0x61, 0x58, 0x30, 0x91, 0xba, 0x01, 0xfb, 0x65, 0x45, 0x47, 0x6b, 0x5a, 0x32, 0x6b,
+ 0xd6, 0x9a, 0xf6, 0xa7, 0xf1, 0x45, 0x97, 0xd7, 0x7e, 0x2c, 0x33, 0x5e, 0xec, 0xca, 0x9c, 0xec,
+ 0x14, 0x17, 0xc7, 0xc3, 0x1d, 0xae, 0x98, 0xfd, 0x49, 0xb5, 0xa3, 0x9a, 0x1a, 0xfa, 0x24, 0x1a,
+ 0x91, 0x43, 0x94, 0x6f, 0xea, 0x50, 0x89, 0x83, 0x10, 0xdd, 0xd0, 0x15, 0xc3, 0xaa, 0x2f, 0xc3,
+ 0x53, 0xce, 0xa5, 0x0b, 0x06, 0xbb, 0x86, 0xa9, 0x27, 0x44, 0x40, 0xd1, 0x35, 0x9a, 0x97, 0x35,
+ 0x37, 0x1c, 0x1d, 0x79, 0xe6, 0xe5, 0x46, 0x12, 0x5e, 0x55, 0x50, 0x74, 0xa9, 0x5d, 0xc2, 0xa9,
+ 0xf5, 0x91, 0x2c, 0x1d, 0x0a, 0x0e, 0x49, 0x38, 0x69, 0xcc, 0xc0, 0xb0, 0x5f, 0x6d, 0x7a, 0x5f,
+ 0x70, 0xc5, 0x7f, 0xb1, 0xfd, 0xf0, 0x58, 0x46, 0x30, 0xa4, 0xb3, 0x3f, 0x86, 0x3d, 0x71, 0x86,
+ 0xb2, 0x48, 0x4e, 0xd5, 0x11, 0x1b, 0x57, 0x6c, 0x07, 0x3d, 0x23, 0xfb, 0x70, 0x0d, 0xc9, 0x70,
+ 0xb9, 0x6d, 0xd9, 0x2a, 0xd0, 0xcf, 0x7a, 0xba, 0x82, 0x74, 0x55, 0xe2, 0xf7, 0x9d, 0x67, 0xf7,
+ 0x7b, 0xe0, 0xe8, 0x4e, 0x3c, 0x24, 0x75, 0x90, 0xb5, 0xed, 0xc5, 0x26, 0x01, 0xad, 0xdf, 0x01,
+ 0xfe, 0xb4, 0xbb, 0xe2, 0xcb, 0xda, 0x64, 0xee, 0xec, 0x85, 0xb6, 0xa9, 0xd8, 0xfd, 0xd4, 0xd8,
+ 0x3c, 0x39, 0x8a, 0x86, 0x27, 0x31, 0x6b, 0xc4, 0xdb, 0x1c, 0x26, 0x6d, 0x2e, 0xcd, 0x6c, 0x2e,
+ 0xe8, 0xfe, 0x56, 0xdf, 0x8a, 0xb1, 0x3e, 0x81, 0x25, 0x17, 0x5a, 0x9b, 0x15, 0x1e, 0x4b, 0x15,
+ 0x2a, 0x73, 0x67, 0xbb, 0x66, 0x5a, 0x31, 0xab, 0x12, 0x8e, 0xca, 0x5f, 0xe3, 0x2e, 0xf3, 0xe3,
+ 0xaf, 0x27, 0x34, 0x17, 0x91, 0xa4, 0x20, 0xd5, 0x4b, 0xe6, 0xb9, 0xd0, 0x3a, 0x7e, 0xf8, 0x3a,
+ 0x6d, 0xaa, 0x05, 0x73, 0x7d, 0x4f, 0x2f, 0xff, 0x7c, 0x7f, 0x29, 0x14, 0xcc, 0x4e, 0x40, 0xcc,
+ 0x66, 0x8f, 0x92, 0x8c, 0xbc, 0x9b, 0x02, 0x29, 0xf9, 0x36, 0x5f, 0x0d, 0x4b, 0xde, 0xee, 0x4b,
+ 0xa4, 0x02, 0xa3, 0xe8, 0x50, 0x70, 0x0d, 0x03, 0xce, 0xaf, 0xcf, 0xc9, 0xbd, 0xee, 0x56, 0xbd,
+ 0x21, 0x56, 0xf0, 0x44, 0xa7, 0x8e, 0x1c, 0x7d, 0x97, 0xc7, 0xbc, 0x46, 0x64, 0xbe, 0x5d, 0x64,
+ 0xe3, 0xdb, 0xc1, 0x20, 0x4b, 0x65, 0x13, 0x57, 0xa0, 0x5e, 0x2c, 0x82, 0x92, 0x8e, 0xe5, 0x92,
+ 0x4a, 0x1b, 0x8b, 0xf6, 0x3e, 0x4d, 0xb6, 0xf7, 0xa8, 0xd1, 0x44, 0x69, 0x12, 0xdb, 0x13, 0x12,
+ 0x88, 0x96, 0xba, 0x92, 0xd2, 0xa6, 0xb9, 0xdd, 0x9f, 0x48, 0xd4, 0xad, 0xe4, 0xeb, 0xab, 0xe4,
+ 0x0d, 0xc2, 0xe9, 0x3e, 0x25, 0x58, 0xa8, 0xa3, 0xc6, 0x20, 0xa7, 0x22, 0x3d, 0xbb, 0xa0, 0x3d,
+ 0xcf, 0x4f, 0xd8, 0x5a, 0xc9, 0xb3, 0xa7, 0x89, 0xf1, 0xb9, 0x37, 0xe6, 0xcb, 0x8b, 0x18, 0xcb,
+ 0xc4, 0x6a, 0x4f, 0xa5, 0x08, 0x67, 0x8a, 0x5f, 0x74, 0xf0, 0x41, 0xff, 0x4c, 0x1b, 0xb6, 0x4c,
+ 0x06, 0xe7, 0x7e, 0xc1, 0xe4, 0x8c, 0x85, 0x75, 0x43, 0x69, 0xd1, 0x3b, 0xba, 0x2b, 0x0e, 0xba,
+ 0x83, 0xb3, 0x2d, 0x6d, 0x13, 0x72, 0x94, 0x0b, 0x1a, 0x01, 0xa2, 0xb4, 0x63, 0x7b, 0x05, 0x63,
+ 0x41, 0x3e, 0x1c, 0x09, 0xff, 0x99, 0x9b, 0x21, 0x2d, 0x98, 0x32, 0x70, 0x95, 0x4b, 0xbd, 0x95,
+ 0x95, 0xf9, 0xc0, 0x50, 0x52, 0x19, 0xce, 0x64, 0xd3, 0x93, 0x4e, 0x86, 0xae, 0x98, 0x9a, 0xae,
+ 0x57, 0x74, 0xf1, 0x34, 0xbe, 0xf2, 0xc1, 0x4e, 0xe4, 0x0a, 0xde, 0x42, 0x58, 0xa8, 0x22, 0x58,
+ 0xd2, 0x20, 0xa2, 0x98, 0x49, 0x0c, 0xd0, 0x30, 0xbd, 0x62, 0xad, 0xcd, 0x81, 0xf8, 0x29, 0x81,
+ 0x10, 0xad, 0x93, 0xfc, 0xa5, 0xe7, 0xdf, 0x1a, 0x8a, 0xfb, 0x3d, 0x09, 0x77, 0xc8, 0x91, 0x77,
+ 0x1b, 0x88, 0x04, 0x03, 0x64, 0x33, 0xf2, 0xcc, 0x0f, 0xb2, 0x4b, 0x10, 0xf0, 0x58, 0x3f, 0xf0,
+ 0xd9, 0x05, 0x35, 0x67, 0x88, 0xd8, 0xfd, 0xe6, 0x38, 0x2b, 0xdb, 0xd4, 0x06, 0x68, 0x87, 0x06,
+ 0x5c, 0x51, 0x66, 0xcb, 0x7f, 0x26, 0xec, 0x98, 0x61, 0x43, 0xa8, 0x5b, 0xdf, 0x38, 0x8c, 0xdf,
+ 0x9e, 0xdc, 0x57, 0xaf, 0x93, 0xcd, 0xe3, 0xb2, 0x56, 0xda, 0x38, 0x9f, 0x29, 0x08, 0x34, 0x29,
+ 0xcd, 0x12, 0xf2, 0xa4, 0x95, 0x76, 0x65, 0x1b, 0x71, 0x9e, 0x78, 0x4e, 0x1c, 0x92, 0xa3, 0x1c,
+ 0x0f, 0x9f, 0xc3, 0xc0, 0x79, 0x9d, 0x6a, 0x31, 0x46, 0x07, 0xe8, 0x8a, 0xea, 0xa2, 0x1b, 0xea,
+ 0x8a, 0xcb, 0x90, 0x6c, 0x8e, 0x63, 0x7b, 0x4f, 0x1f, 0x6f, 0x9b, 0x05, 0x33, 0xf2, 0x10, 0x33,
+ 0x48, 0x46, 0xa1, 0x08, 0x62, 0x88, 0x74, 0x65, 0x28, 0xf6, 0x0b, 0xc1, 0xc5, 0xc2, 0xa8, 0xc5,
+ 0x43, 0x63, 0x36, 0xf7, 0xa3, 0x5c, 0x59, 0xb3, 0xad, 0xbf, 0x7d, 0xd8, 0x42, 0x52, 0x06, 0x42,
+ 0x81, 0xee, 0x07, 0x93, 0x4f, 0xb7, 0x56, 0x99, 0x9a, 0x26, 0xed, 0x1c, 0xb4, 0x62, 0xbe, 0xb4,
+ 0x04, 0xba, 0x54, 0x3f, 0xb8, 0x49, 0x47, 0xe7, 0xc3, 0x4e, 0x9e, 0x93, 0x6d, 0x32, 0xb5, 0x6d,
+ 0xc6, 0x37, 0x65, 0x5b, 0x54, 0xa2, 0x48, 0xcd, 0xf4, 0xd7, 0x0e, 0x57, 0x9b, 0x02, 0x0d, 0x9b,
+ 0x12, 0xf0, 0xb9, 0x02, 0xf9, 0x22, 0x1d, 0x88, 0x0a, 0xdc, 0x72, 0xa1, 0xa0, 0xd1, 0x2a, 0xa0,
+ 0xd0, 0x7d, 0x88, 0x66, 0x15, 0xc9, 0x12, 0xa2, 0x3d, 0x45, 0xe2, 0x65, 0x56, 0xe1, 0x92, 0x56,
+ 0x55, 0x29, 0xdb, 0xca, 0xe2, 0x37, 0x03, 0xdc, 0x64, 0x2d, 0x91, 0xea, 0x8f, 0xb1, 0x99, 0x8f,
+ 0x97, 0xa4, 0xea, 0xae, 0x0e, 0xdc, 0x0c, 0xf6, 0x53, 0xb4, 0x01, 0x2e, 0x79, 0x81, 0x21, 0x79,
+ 0x9c, 0x81, 0x7d, 0x51, 0xcf, 0x08, 0x21, 0x20, 0xd6, 0xfd, 0x77, 0x37, 0xfe, 0x11, 0x8f, 0xfe,
+ 0x5e, 0x0c, 0x4c, 0x35, 0x23, 0xe3, 0x2e, 0x0a, 0xe1, 0x64, 0xe7, 0xf3, 0x08, 0x21, 0x37, 0x08,
+ 0xdb, 0x58, 0x1f, 0x99, 0xd4, 0x1d, 0x3f, 0x74, 0xb8, 0x0c, 0x94, 0x7c, 0xd1, 0x71, 0x3c, 0xd1,
+ 0x19, 0xd5, 0x2e, 0xfd, 0x38, 0xf6, 0x30, 0x5e, 0x8f, 0x95, 0x04, 0xb8, 0x27, 0x41, 0x84, 0x27,
+ 0xb0, 0x15, 0x64, 0x2b, 0x4d, 0xde, 0x95, 0xfe, 0x87, 0x1a, 0x6c, 0x53, 0xa7, 0x14, 0x72, 0xa7,
+ 0x72, 0x98, 0x55, 0x4f, 0xa1, 0x35, 0x9a, 0xd4, 0xb0, 0x83, 0xfc, 0x97, 0x51, 0x24, 0xca, 0x51,
+ 0xf7, 0xcc, 0x06, 0xe3, 0x56, 0xcb, 0x8b, 0xaa, 0xe9, 0xeb, 0x8f, 0x18, 0x88, 0x74, 0xc1, 0x88,
+ 0x35, 0x41, 0x37, 0x87, 0xba, 0x20, 0x84, 0x80, 0xde, 0x72, 0x1f, 0xdc, 0x7e, 0x44, 0x79, 0x7e,
+ 0x3e, 0x64, 0xa0, 0x78, 0x7b, 0xf4, 0xa9, 0x56, 0x5b, 0x3b, 0x69, 0xc5, 0xf9, 0xd4, 0xd7, 0xf9,
+ 0xfc, 0xe9, 0x91, 0x1c, 0x97, 0x1f, 0xa6, 0x7c, 0x6c, 0xa2, 0xf9, 0x01, 0x0f, 0xe4, 0x6f, 0x0f,
+ 0x79, 0xbd, 0xc2, 0xb0, 0x60, 0xe1, 0xb7, 0x02, 0x35, 0xca, 0x8a, 0x8e, 0xd6, 0xb4, 0x64, 0xd6,
+ 0xbb, 0x30, 0xf3, 0xd4, 0x8c, 0x0a, 0xb8, 0x28, 0x02, 0x53, 0x1a, 0x4a, 0x20, 0x84, 0xdc, 0x20,
+ 0x6f, 0xf7, 0x2f, 0x8d, 0x21, 0x8a, 0xed, 0x6d, 0xfc, 0x58, 0x66, 0xbc, 0x1b, 0x57, 0xfb, 0x1b,
+ 0xad, 0x7a, 0x1e, 0xe9, 0xcd, 0x61, 0xe2, 0x47, 0xcb, 0xc1, 0xf6, 0x78, 0xed, 0x67, 0x43, 0xed,
+ 0x28, 0x2e, 0x4d, 0x45, 0x3a, 0x9f, 0xf3, 0x39, 0x92, 0xa9, 0x85, 0xf7, 0x34, 0x37, 0x48, 0x34,
+ 0xea, 0xa3, 0x7c, 0x21, 0xd6, 0x74, 0xfc, 0x13, 0xa5, 0x30, 0x15, 0x33, 0xc2, 0x07, 0xf0, 0xc2,
+ 0xe1, 0x86, 0xeb, 0xde, 0x17, 0xa0, 0xd1, 0xc5, 0x20, 0x79, 0x63, 0x2a, 0x45, 0x97, 0x5e, 0x45,
+ 0x23, 0x0b, 0xda, 0xba, 0xfb, 0x4b, 0xde, 0xef, 0x17, 0xe0, 0xf3, 0xee, 0xb3, 0xa7, 0xe6, 0xb3,
+ 0xa6, 0x5f, 0x89, 0x16, 0x0c, 0xb5, 0xcf, 0x91, 0x4e, 0x88, 0x80, 0x61, 0x6a, 0xf7, 0xed, 0x6a,
+ 0x64, 0xd2, 0xb8, 0x72, 0xe0, 0x5e, 0xc0, 0xbb, 0x79, 0x11, 0x10, 0xa5, 0x9c, 0xc7, 0x55, 0x9c,
+ 0x6e, 0x38, 0x3a, 0xf2, 0x0f, 0x09, 0x8c, 0x24, 0xbc, 0xaa, 0xa0, 0xe8, 0x91, 0xba, 0x47, 0x91,
+ 0xac, 0xb5, 0x0b, 0x96, 0xe3, 0xe2, 0x83, 0x0e, 0x8b, 0x33, 0x30, 0x2c, 0x67, 0x8a, 0xff, 0x67,
+ 0x29, 0xe1, 0x58, 0x3a, 0x14, 0x1c, 0x92, 0x70, 0xd2, 0x5b, 0x43, 0xa3, 0xbe, 0xda, 0xf4, 0xbe,
+ 0xeb, 0x6c, 0x69, 0x5e, 0xf8, 0xf7, 0x9d, 0x5a, 0xe5, 0xc2, 0xd3, 0x67, 0x48, 0xea, 0x4c, 0x48,
+ 0xe0, 0x49, 0xfe, 0xa1, 0x39, 0x23, 0xb0, 0x8c, 0x60, 0x8b, 0xa5, 0x7e, 0xcf, 0x7a, 0xe2, 0xcf,
+ 0x22, 0xc4, 0xcf, 0xc5, 0xd5, 0xc8, 0xbf, 0xa6, 0x57, 0x12, 0x35, 0xba, 0x39, 0x4a, 0x5a, 0x39,
+ 0xa7, 0x90, 0x9c, 0x69, 0x22, 0x36, 0xae, 0xd8, 0x0e, 0x7a, 0x46, 0x35, 0xe0, 0x1a, 0x51, 0xe0,
+ 0x65, 0x1d, 0xad, 0x0d, 0xce, 0xdd, 0xa1, 0xf2, 0x39, 0xe3, 0xd6, 0xf1, 0x16, 0x2a, 0xe9, 0x16,
+ 0xb1, 0xda, 0x71, 0x54, 0x63, 0x5d, 0xf4, 0xb7, 0xc7, 0xe8, 0xaa, 0x07, 0x2d, 0xf9, 0xce, 0x2d,
+ 0x73, 0x57, 0x40, 0x30, 0x8f, 0xb6, 0xfb, 0x9d, 0xf0, 0x71, 0x3a, 0xc3, 0xdb, 0xc9, 0x76, 0xdb,
+ 0xf6, 0x03, 0x13, 0x9c, 0x78, 0x48, 0xea, 0xe3, 0xa9, 0x19, 0x49, 0x4c, 0x02, 0x99, 0x7d, 0x02,
+ 0x34, 0x8e, 0x22, 0xf8, 0x94, 0xa3, 0xe5, 0xc9, 0x9e, 0x80, 0xd9, 0x88, 0xf4, 0xa9, 0xc5, 0xf4,
+ 0x3f, 0xab, 0xb5, 0x07, 0x55, 0x77, 0xc8, 0x1f, 0x1b, 0xc9, 0xaf, 0x91, 0x73, 0x39, 0x6b, 0x73,
+ 0xfd, 0x26, 0x84, 0x63, 0xb9, 0x9c, 0xc7, 0x35, 0x2c, 0x50, 0x3f, 0x55, 0x85, 0x09, 0xd3, 0x85,
+ 0x78, 0x72, 0xd7, 0xcf, 0x4e, 0x62, 0xd6, 0x4b, 0x75, 0x38, 0x4c, 0xda, 0x5c, 0x59, 0xd8, 0x5c,
+ 0xba, 0xff, 0xe6, 0xab, 0xa2, 0x89, 0xd9, 0x61, 0x42, 0xa1, 0xdc, 0x1e, 0xaa, 0x69, 0x60, 0xaa,
+ 0x13, 0x3f, 0xac, 0x7d, 0xd7, 0xa1, 0x7c, 0xc1, 0x4a, 0x2e, 0xb4, 0xf5, 0x2a, 0x3c, 0x96, 0x2a,
+ 0xd1, 0xb2, 0x9d, 0x19, 0x3b, 0x4a, 0x73, 0xeb, 0x7d, 0xb7, 0x24, 0x31, 0xdc, 0x0c, 0x2e, 0xdc,
+ 0x54, 0xe6, 0xce, 0xb5, 0xcc, 0xb4, 0x62, 0x95, 0x24, 0xdf, 0x57, 0xbe, 0x05, 0x5c, 0x25, 0x05,
+ 0x96, 0x6b, 0xff, 0xd1, 0x20, 0x5f, 0x6d, 0xbf, 0x13, 0x46, 0xc7, 0x7a, 0xf3, 0x6c, 0x9d, 0xf3,
+ 0x9d, 0x4e, 0x68, 0x2e, 0xe1, 0x8b, 0x40, 0x69, 0x96, 0x0f, 0xb1, 0x63, 0x74, 0xfc, 0x33, 0x74,
+ 0x5f, 0xc3, 0x59, 0x4a, 0x0d, 0x60, 0x4f, 0x43, 0xa1, 0x96, 0x21, 0xa7, 0x82, 0xcc, 0x8b, 0x82,
+ 0xda, 0x97, 0x0a, 0xe6, 0xfa, 0x9e, 0x5e, 0x3d, 0xf8, 0xfe, 0x52, 0x28, 0x5b, 0x9c, 0x80, 0x5b,
+ 0x18, 0x1a, 0x3b, 0x82, 0x16, 0x75, 0x51, 0x17, 0xcf, 0x67, 0xc2, 0xec, 0xad, 0xac, 0x38, 0xad,
+ 0xcc, 0xdd, 0xe7, 0xdb, 0xbb, 0xf5, 0x04, 0x52, 0x31, 0x6c, 0xbe, 0x1a, 0x96, 0x7f, 0x1f, 0x96,
+ 0x0e, 0x50, 0xd6, 0xbf, 0x57, 0x1e, 0x0b, 0x78, 0x06, 0xf5, 0x2e, 0xde, 0x60, 0x4f, 0xa7, 0x60,
+ 0x8b, 0x04, 0x85, 0x13, 0xa0, 0xe0, 0x1a, 0x06, 0x5f, 0x9d, 0x5d, 0x51, 0xb9, 0x1f, 0xac, 0xb9,
+ 0x49, 0x89, 0xb4, 0x77, 0x4c, 0x0b, 0x15, 0x2c, 0x68, 0x04, 0xcd, 0x95, 0x4f, 0x2f, 0x14, 0x4f,
+ 0x42, 0xac, 0x23, 0x88, 0x8d, 0xdf, 0x38, 0xfa, 0xed, 0x4d, 0xbb, 0x8c, 0xc8, 0xbf, 0xba, 0xc8,
+ 0x80, 0x21, 0x12, 0xec, 0x61, 0x34, 0x37, 0xd0, 0xda, 0xd4, 0x2b, 0x48, 0x3e, 0x8f, 0x02, 0x3e,
+ 0x05, 0x75, 0x41, 0x40, 0x96, 0xca, 0x26, 0xae, 0x83, 0xbc, 0x58, 0xc7, 0xe7, 0xdf, 0x09, 0xe7,
+ 0xc7, 0xf8, 0x70, 0x24, 0x7a, 0x21, 0x29, 0x84, 0xb4, 0x25, 0xc8, 0x03, 0x11, 0xef, 0xb1, 0x11,
+ 0x94, 0x36, 0xd5, 0x2f, 0x7c, 0x9a, 0xaf, 0x2d, 0x93, 0x61, 0x88, 0xd2, 0x24, 0x75, 0x26, 0x24,
+ 0x56, 0xbb, 0xe4, 0x4b, 0x90, 0x71, 0xa0, 0x07, 0xa4, 0xf8, 0x18, 0x16, 0xd2, 0x45, 0x9e, 0xd2,
+ 0xd3, 0xef, 0xb7, 0xe7, 0x67, 0x8f, 0xb1, 0x79, 0xfd, 0x90, 0x6b, 0x99, 0x0b, 0x15, 0x95, 0x0b,
+ 0x11, 0x62, 0x86, 0x83, 0x8b, 0x64, 0xbe, 0x53, 0xca, 0x09, 0xfb, 0x5d, 0xfd, 0x25, 0x2d, 0xfd,
+ 0x1a, 0x47, 0x11, 0x7c, 0x4a, 0xb0, 0x93, 0x85, 0x4f, 0x40, 0x8d, 0x44, 0x7a, 0xb5, 0x83, 0x7a,
+ 0xd8, 0xca, 0x20, 0x18, 0xa6, 0x5b, 0x9c, 0xaf, 0x78, 0xd9, 0x1d, 0x80, 0x8c, 0x85, 0x3b, 0x8c,
+ 0x5d, 0x9e, 0x73, 0xb4, 0x51, 0xa5, 0x8d, 0xd1, 0x21, 0xb1, 0x6e, 0x0f, 0x55, 0xd5, 0x30, 0x55,
+ 0x9f, 0x13, 0x42, 0xd0, 0xbd, 0x4e, 0x82, 0xfb, 0x16, 0x28, 0xfe, 0xcb, 0xa3, 0xe5, 0x88, 0xa3,
+ 0x4b, 0xd4, 0x9e, 0x89, 0x10, 0xce, 0xd7, 0xbe, 0xe8, 0x23, 0x82, 0x3d, 0x98, 0x36, 0xaf, 0x98,
+ 0x89, 0x59, 0xaf, 0xed, 0xfc, 0x25, 0xd8, 0x94, 0xdf, 0xba, 0x12, 0xf9, 0x6e, 0x06, 0x17, 0x6e,
+ 0x0c, 0x0d, 0xfc, 0x41, 0x0b, 0xdb, 0xc9, 0xea, 0x86, 0xd2, 0x61, 0x76, 0xb7, 0x56, 0x1c, 0xb7,
+ 0xce, 0x80, 0xcd, 0x25, 0xe7, 0x30, 0xc6, 0xc0, 0xb1, 0x4b, 0xf1, 0xb2, 0x41, 0x66, 0xa4, 0x41,
+ 0xc5, 0xa5, 0x5a, 0xda, 0x26, 0xe4, 0xeb, 0x16, 0x34, 0x02, 0x87, 0xab, 0xc6, 0xf6, 0x0a, 0xc6,
+ 0x07, 0x28, 0x6b, 0xbe, 0xca, 0x0f, 0xe4, 0x3c, 0x03, 0x9b, 0x17, 0x6f, 0x30, 0xc6, 0xb2, 0x30,
+ 0x82, 0x7c, 0x38, 0x12, 0x3d, 0xf1, 0xf5, 0x42, 0x5a, 0xf3, 0x64, 0xe0, 0xe9, 0x96, 0xb9, 0xe9,
+ 0x40, 0xf1, 0x09, 0x76, 0xd1, 0x1a, 0xfa, 0x68, 0x6d, 0x6a, 0xf4, 0x24, 0x1f, 0xa6, 0x01, 0x1f,
+ 0xe9, 0x31, 0x43, 0xa0, 0xa4, 0x32, 0x5f, 0xc8, 0x65, 0xe5, 0x9c, 0xcf, 0x9f, 0xf3, 0xf7, 0x9f,
+ 0x2b, 0xbc, 0x72, 0xc4, 0x48, 0xd9, 0x50, 0xe2, 0x52, 0x7c, 0x0c, 0x0b, 0x69, 0xc3, 0x4f, 0x69,
+ 0xae, 0xe8, 0x21, 0x68, 0xbf, 0x27, 0x41, 0x9c, 0x0b, 0x14, 0x7f, 0x84, 0xb0, 0x93, 0x44, 0xb0,
+ 0x6c, 0x65, 0x10, 0x0c, 0x53, 0xcc, 0x4e, 0xb6, 0x3c, 0x8d, 0xef, 0x40, 0x46, 0xa3, 0xfc, 0x46,
+ 0x67, 0x40, 0x87, 0xf3, 0x92, 0x18, 0x63, 0x60, 0xb9, 0xc4, 0x99, 0x59, 0xc1, 0x33, 0x52, 0xc1,
+ 0xa5, 0xcd, 0xb6, 0x97, 0x7e, 0xf3, 0x6c, 0x4a, 0x8e, 0x5d, 0x09, 0x9d, 0x37, 0x03, 0xea, 0x37,
+ 0x20, 0x99, 0xe5, 0x3b, 0x89, 0x0d, 0x7d, 0x34, 0xd7, 0x35, 0x7a, 0x12, 0xee, 0x53, 0xe1, 0xee,
+ 0xe2, 0x14, 0xd4, 0x5f, 0x65, 0xe6, 0x72, 0x1e, 0xe0, 0xac, 0xea, 0xd6, 0x18, 0x63, 0x59, 0x18,
+ 0x36, 0xd3, 0x08, 0x06, 0xc8, 0x66, 0x27, 0x5b, 0x1e, 0xa7, 0x96, 0x20, 0x23, 0xb0, 0x7e, 0x23,
+ 0xf4, 0x5e, 0x39, 0x62, 0x24, 0x8d, 0x28, 0x71, 0x29, 0x3e, 0x06, 0xe4, 0xd5, 0x80, 0xc6, 0xd5,
+ 0x71, 0x0a, 0x6a, 0xce, 0xd3, 0x73, 0x39, 0x0f, 0x70, 0x56, 0x75, 0x6b, 0x0c, 0xd0, 0xcd, 0x0c,
+ 0xb3, 0x87, 0x5b, 0xaa, 0x3f, 0x98, 0x36, 0x25, 0x47, 0xcf, 0xe5, 0xaf, 0xfa, 0xe0, 0x75, 0xfa,
+ 0xb8, 0xa2, 0xcc, 0x55, 0xfe, 0x4c, 0x1b, 0xf3, 0xc2, 0x86, 0x93, 0xb6, 0x7d, 0x70, 0xdb, 0x7d,
+ 0x7a, 0x2f, 0xfd, 0x31, 0x12, 0xa7, 0x14, 0xd9, 0xf5, 0x1f, 0x03, 0x72, 0x8b, 0x40, 0x63, 0x8b,
+ 0xff, 0x7b, 0xae, 0x9d, 0xe5, 0x59, 0x05, 0xa7, 0xac, 0x77, 0x70, 0xfd, 0x52, 0x10, 0x68, 0x52,
+ 0x3d, 0xf6, 0x9f, 0xf9, 0x09, 0xb2, 0x0a, 0x8d, 0x9b, 0xee, 0xe0, 0x39, 0xa4, 0x20, 0xd0, 0xa4,
+ 0x59, 0x24, 0x27, 0x8b, 0xe9, 0xec, 0xca, 0x36, 0xe2, 0xff, 0xf0, 0x9c, 0x38, 0xe7, 0x85, 0x38,
+ 0x9b, 0xa9, 0x16, 0xef, 0x05, 0x07, 0xc5, 0x1c, 0xd5, 0x66, 0x60, 0x58, 0xce, 0xd7, 0x3d, 0xce,
+ 0x1e, 0xfd, 0x45, 0x43, 0xf2, 0xf9, 0xd4, 0x62, 0x8c, 0x0e, 0x13, 0xd7, 0x17, 0x87, 0x36, 0x17,
+ 0xdc, 0x70, 0x74, 0x27, 0x1e, 0x12, 0xdb, 0x48, 0xbb, 0x97, 0x83, 0x13, 0xe1, 0xb7, 0x8e, 0xe1,
+ 0xd7, 0x55, 0xe3, 0xd8, 0xdf, 0xc6, 0xf6, 0x9e, 0x3e, 0xde, 0xf5, 0x0a, 0x66, 0x27, 0x20, 0x66,
+ 0x15, 0xd8, 0xd2, 0xbc, 0x33, 0x2d, 0xf9, 0xb4, 0x09, 0x47, 0x65, 0xce, 0x90, 0x17, 0x98, 0x90,
+ 0x90, 0x8c, 0x81, 0x10, 0xc4, 0xd3, 0xe8, 0xca, 0x50, 0x2f, 0x16, 0x41, 0x49, 0x47, 0x93, 0x49,
+ 0x52, 0x01, 0xb0, 0x74, 0x28, 0x38, 0xe7, 0xe0, 0x67, 0xb6, 0x86, 0x85, 0xbf, 0x77, 0x2b, 0xbf,
+ 0x86, 0xc6, 0x6c, 0x2d, 0x85, 0xb8, 0xb2, 0xa5, 0x99, 0xbd, 0xfa, 0x73, 0x84, 0xa4, 0x0c, 0x84,
+ 0x44, 0x4b, 0x5d, 0x49, 0x69, 0x53, 0xbd, 0x8f, 0xae, 0x24, 0x6a, 0xb7, 0x72, 0x94, 0xb4, 0x72,
+ 0xc1, 0x1f, 0x0e, 0xe5, 0x9e, 0xad, 0xac, 0xf1, 0xf7, 0x4c, 0x19, 0x38, 0xab, 0xc4, 0xbf, 0xab,
+ 0x03, 0x92, 0x3f, 0x81, 0x72, 0x46, 0xa3, 0xdb, 0xc0, 0xd5, 0x89, 0xfc, 0x5d, 0xf4, 0x07, 0x5d,
+ 0x08, 0xb7, 0xa8, 0x7e, 0xb3, 0x92, 0x8e, 0x0d, 0x45, 0x9c, 0xff, 0xe5, 0xda, 0x64, 0xa9, 0xda,
+ 0xca, 0x3a, 0x99, 0x1a, 0x5f, 0x79, 0x81, 0x27, 0x72, 0x05, 0x6f, 0x21, 0x2c, 0x54, 0x11, 0x2c,
+ 0x4f, 0x6e, 0xca, 0xb6, 0xa8, 0x87, 0x90, 0x59, 0x2b, 0x6d, 0x1c, 0xae, 0xf5, 0x04, 0x1a, 0xf5,
+ 0x8d, 0xe3, 0xfb, 0xd2, 0x44, 0x6c, 0x9f, 0x73, 0x1c, 0xf4, 0x8c, 0x6a, 0x03, 0x34, 0xa2, 0x03,
+ 0x24, 0x23, 0xb1, 0x04, 0x31, 0x44, 0x3a, 0xd3, 0x14, 0x7b, 0xe4, 0x81, 0x83, 0x61, 0x54, 0x83,
+ 0xe6, 0xae, 0x80, 0x60, 0xdd, 0xaf, 0x35, 0xf9, 0x23, 0xe2, 0x74, 0x45, 0x75, 0x51, 0xec, 0x75,
+ 0x63, 0xfa, 0xd3, 0xcc, 0x2a, 0x51, 0x24, 0x87, 0x7a, 0x8a, 0x07, 0xca, 0xac, 0x01, 0xe7, 0xac,
+ 0xa1, 0x77, 0xe2, 0xa8, 0xc6, 0xba, 0x2b, 0xad, 0x4d, 0x13, 0x97, 0x0e, 0x5a, 0x31, 0x5f, 0x5a,
+ 0xaa, 0x52, 0x75, 0x57, 0x07, 0x6e, 0x06, 0x7b, 0xc8, 0x5a, 0xe1, 0x17, 0xdd, 0xa1, 0xf1, 0xdd,
+ 0x68, 0xdf, 0x44, 0x33, 0xeb, 0x85, 0x09, 0x51, 0xff, 0xc3, 0x71, 0xd3, 0x2b, 0x91, 0x49, 0x2b,
+ 0xed, 0x8b, 0x17, 0x9f, 0x1c, 0x7b, 0x18, 0x2f, 0xa6, 0xab, 0x02, 0x5c, 0xf2, 0xc1, 0x42, 0xf2,
+ 0x2f, 0x06, 0x26, 0xfb, 0xf0, 0x90, 0x17, 0x05, 0x91, 0x32, 0x92, 0x98, 0x04, 0xf1, 0xfa, 0x04,
+ 0xfb, 0xc1, 0xfa, 0xa2, 0x5d, 0x10, 0x42, 0x40, 0x6f, 0x39, 0xee, 0x6e, 0x3f, 0x22, 0xdd, 0x3f,
+ 0x39, 0x4c, 0xcb, 0xc6, 0xb1, 0xfb, 0x4d, 0x6a, 0x58, 0xa0, 0x7e, 0xaa, 0xc9, 0x12, 0x65, 0xc9,
+ 0xbc, 0x18, 0x98, 0x6a, 0x46, 0x05, 0x5c, 0x14, 0x01, 0xc8, 0x0d, 0x25, 0x10, 0x42, 0x6e, 0x10,
+ 0x7e, 0x95, 0xa9, 0x0e, 0xaa, 0xee, 0x53, 0x3e, 0x36, 0x51, 0x9d, 0xe1, 0xe6, 0x72, 0xd6, 0xe6,
+ 0x75, 0xb0, 0x3e, 0xf1, 0x6b, 0x3a, 0x7e, 0xe8, 0xb3, 0x18, 0xeb, 0xf8, 0x61, 0xe2, 0x78, 0x61,
+ 0xb7, 0x3d, 0x0f, 0x95, 0x87, 0xd1, 0x71, 0xc2, 0x84, 0x81, 0x7b, 0x3c, 0x97, 0xd2, 0xc0, 0x97,
+ 0x32, 0x69, 0x5c, 0x39, 0x70, 0x2f, 0x60, 0xbc, 0xdd, 0xe9, 0x08, 0xb3, 0x4e, 0x82, 0xcb, 0x4e,
+ 0xf0, 0xe4, 0x6d, 0x5d, 0x9c, 0xc4, 0x6f, 0x96, 0xea, 0x70, 0x98, 0x77, 0xb8, 0xb2, 0x73, 0xb8,
+ 0xa3, 0x2a, 0xc8, 0x56, 0x9a, 0x7f, 0xe9, 0x3f, 0xcd, 0x34, 0xd8, 0xa6, 0x8d, 0x28, 0xe4, 0x8d,
+ 0x61, 0xa7, 0xf9, 0x32, 0x76, 0x94, 0xe6, 0x15, 0xfa, 0xad, 0x48, 0x62, 0x7b, 0x18, 0x5c, 0x7b,
+ 0xe4, 0xf3, 0xaa, 0x9e, 0x81, 0x6a, 0xf7, 0x6b, 0xa3, 0xc5, 0x3b, 0xed, 0xa2, 0x48, 0x57, 0xa2,
+ 0x26, 0x7e, 0x9b, 0xfa, 0x6d, 0x81, 0xf8, 0x41, 0x94, 0x5c, 0xab, 0x29, 0x54, 0x78, 0xef, 0x54,
+ 0x2d, 0x5b, 0x0c, 0x05, 0xac, 0x55, 0xd5, 0x97, 0x11, 0x15, 0xdd, 0x30, 0xd3, 0xe8, 0x41, 0xd3,
+ 0xef, 0xd6, 0x3d, 0x61, 0x40, 0xbe, 0xda, 0xbd, 0x26, 0x8c, 0x4d, 0xf4, 0x25, 0xd8, 0xf9, 0x25,
+ 0x6a, 0x82, 0x6e, 0xcd, 0xb7, 0x40, 0xcb, 0xc3, 0x7f, 0xe4, 0x3e, 0x7b, 0xfc, 0x88, 0xf2, 0xfc,
+ 0xa8, 0x0f, 0x5f, 0xa9, 0x5b, 0xab, 0xc4, 0xe9, 0x48, 0x7d, 0xae, 0xbf, 0x0a, 0xb8, 0x4a, 0x0a,
+ 0x7c, 0xc8, 0x83, 0xf0, 0xf6, 0x2b, 0x91, 0xac, 0xb6, 0x76, 0xd2, 0x49, 0x31, 0x6b, 0x6d, 0x31,
+ 0xbe, 0x45, 0xb2, 0x94, 0x1a, 0xc0, 0x9e, 0x86, 0x81, 0xef, 0x42, 0x8d, 0xc7, 0x5b, 0xd5, 0xc7,
+ 0x3b, 0x11, 0xe1, 0x38, 0xed, 0x3e, 0x8f, 0xf8, 0xd8, 0x87, 0x31, 0x02, 0x1e, 0x0b, 0xde, 0x1e,
+ 0xf9, 0x9c, 0xd0, 0x5c, 0x01, 0xd5, 0x80, 0xd2, 0xef, 0x1e, 0xa1, 0xc6, 0xe8, 0x3b, 0x66, 0xe8,
+ 0xf2, 0xb9, 0x47, 0xa3, 0xc0, 0x01, 0xad, 0x04, 0x6a, 0x57, 0xd7, 0xdf, 0x6f, 0xab, 0xc8, 0x6f,
+ 0x30, 0x34, 0x76, 0xc7, 0x2c, 0xea, 0xa2, 0x2e, 0x5d, 0xce, 0x47, 0x1b, 0x99, 0x9b, 0x70, 0x99,
+ 0xb5, 0x60, 0x25, 0x6b, 0xdb, 0x14, 0xb3, 0x50, 0x04, 0xa6, 0x34, 0x94, 0x40, 0xcb, 0x7b, 0x40,
+ 0x77, 0xed, 0x14, 0x0f, 0x37, 0xff, 0xbc, 0x7a, 0x33, 0x3f, 0xa4, 0x50, 0xb6, 0xfb, 0xc3, 0xb6,
+ 0xde, 0x2d, 0x5e, 0xd9, 0x42, 0xd7, 0x19, 0xda, 0x3b, 0xb0, 0xcc, 0xbb, 0x36, 0xae, 0x35, 0x36,
+ 0x1c, 0xa0, 0x6f, 0xbd, 0xae, 0x3c, 0x16, 0xf0, 0x0c, 0x29, 0x5c, 0x7f, 0xc0, 0x9e, 0x8d, 0xc0,
+ 0x99, 0xf4, 0x3c, 0x11, 0x59, 0xc2, 0x07, 0x8e, 0x55, 0x41, 0x2f, 0xf0, 0x19, 0xce, 0x86, 0x19,
+ 0x5b, 0x79, 0x0d, 0x75, 0xb5, 0x29, 0x08, 0xa4, 0x62, 0xd8, 0xbf, 0x34, 0xef, 0xfe, 0x3e, 0xef,
+ 0x50, 0x5c, 0x9a, 0x8a, 0x74, 0xfd, 0x25, 0x72, 0xe7, 0x91, 0xc9, 0x2d, 0x68, 0x6e, 0x90, 0x68,
+ 0x92, 0xd1, 0xab, 0xee, 0x98, 0x16, 0x2a, 0x58, 0xd0, 0x08, 0x59, 0xe9, 0x9e, 0x5e, 0x28, 0x9e,
+ 0x17, 0x85, 0xf8, 0x42, 0x6f, 0xe8, 0x3b, 0x26, 0x89, 0x60, 0x2a, 0x66, 0x47, 0x0e, 0x23, 0x47,
+ 0xd5, 0x08, 0xc9, 0x26, 0x83, 0x03, 0x34, 0x0c, 0xbe, 0xf9, 0xba, 0xa2, 0xb1, 0x3e, 0x9b, 0xb1,
+ 0x01, 0xcf, 0x15, 0x7f, 0x2e, 0x83, 0x61, 0x49, 0x40, 0xf2, 0xc6, 0x54, 0x8a, 0xed, 0xbc, 0x8a,
+ 0xc3, 0x42, 0x24, 0x1b, 0xc2, 0x68, 0x6e, 0x63, 0x77, 0x6b, 0x56, 0x90, 0x7c, 0xdd, 0x04, 0x7c,
+ 0x46, 0x16, 0x77, 0xb7, 0x35, 0x96, 0x7f, 0x1d, 0x2e, 0x03, 0x25, 0x1f, 0xa5, 0x8d, 0x0f, 0xa5,
+ 0x84, 0x9b, 0x46, 0xd3, 0xd9, 0x7d, 0x70, 0x37, 0x19, 0x9a, 0xb5, 0xdb, 0x53, 0xbd, 0xb7, 0x53,
+ 0x8f, 0xbe, 0xd1, 0x2c, 0x18, 0xa9, 0x5d, 0xe1, 0x9c, 0xd3, 0xc3, 0xc2, 0xd4, 0x2d, 0x19, 0xd4,
+ 0x4d, 0x33, 0xe0, 0x48, 0xf4, 0x42, 0x52, 0xcb, 0xab, 0x4a, 0x53, 0x06, 0x22, 0x1d, 0xa1, 0x22,
+ 0xc8, 0x67, 0xb3, 0xe4, 0x03, 0xbc, 0x43, 0xb5, 0xf2, 0x22, 0x20, 0x89, 0xfb, 0x4d, 0xaa, 0xfb,
+ 0x0a, 0xea, 0x82, 0x80, 0xef, 0x57, 0x4c, 0x9f, 0xc5, 0xbb, 0xb0, 0x4d, 0x0d, 0x7d, 0x12, 0x0d,
+ },
+ { /* 6 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xc0, 0xb4, 0xa6, 0xff, 0x39, 0x2f, 0x54, 0x6c, 0xaf, 0xeb, 0xe1, 0xd4, 0xd7, 0x63, 0x64, 0xbf,
+ 0x43, 0xab, 0x8f, 0x3d, 0x72, 0x5e, 0xa8, 0xd8, 0x9d, 0x15, 0x01, 0x6b, 0x6d, 0xc6, 0xc8, 0xbd,
+ 0x83, 0x1f, 0x29, 0xc2, 0x4b, 0x71, 0xfc, 0xb4, 0x32, 0xfe, 0xe0, 0xbf, 0xba, 0xa5, 0xac, 0x02,
+ 0x86, 0x95, 0xdd, 0x7a, 0xe4, 0xbc, 0x93, 0x73, 0xf9, 0x2a, 0x02, 0xd6, 0xda, 0x4f, 0x53, 0xb9,
+ 0x46, 0x21, 0x7b, 0x85, 0xdd, 0x93, 0xc7, 0x1f, 0x56, 0xc1, 0xe3, 0x02, 0x0d, 0x2c, 0x37, 0x06,
+ 0xc5, 0x3e, 0x52, 0x47, 0x96, 0xe2, 0x3b, 0xab, 0x64, 0x3f, 0x03, 0xbd, 0xb7, 0x89, 0x9b, 0x04,
+ 0x05, 0x8a, 0xf4, 0xb8, 0xaf, 0xcd, 0x6f, 0xc7, 0xcb, 0xd4, 0xe2, 0x69, 0x60, 0xea, 0xff, 0xbb,
+ 0xcf, 0xe9, 0x79, 0xf4, 0x0b, 0xbb, 0xe5, 0xe6, 0x31, 0x54, 0x04, 0x6f, 0x77, 0x9e, 0xa6, 0xb1,
+ 0x0f, 0x5d, 0xdf, 0x0b, 0x32, 0x94, 0xb1, 0x8a, 0x9e, 0xbf, 0xe5, 0xbb, 0xa0, 0xfd, 0xc2, 0x0e,
+ 0x8c, 0x42, 0xf6, 0xc9, 0x79, 0xe5, 0x4d, 0x3e, 0xac, 0x41, 0x05, 0x04, 0x1a, 0x58, 0x6e, 0x0c,
+ 0x4c, 0xf6, 0x50, 0x36, 0x40, 0xca, 0x19, 0x52, 0x03, 0xaa, 0xe4, 0xd0, 0xcd, 0x3b, 0x0a, 0xb3,
+ 0x49, 0x7c, 0xa4, 0x8e, 0xef, 0x07, 0x76, 0x95, 0xc8, 0x7e, 0x06, 0xb9, 0xad, 0xd1, 0xf5, 0x08,
+ 0x89, 0xc8, 0x02, 0x71, 0xd6, 0x28, 0x22, 0xf9, 0x67, 0x95, 0xe7, 0x6d, 0x7a, 0xb2, 0x91, 0xb7,
+ 0x0a, 0xd7, 0x2b, 0xb3, 0x9d, 0x59, 0xde, 0x4d, 0x55, 0x6b, 0x07, 0xd2, 0xc0, 0x17, 0x3d, 0xb5,
+ 0xca, 0x63, 0x8d, 0x4c, 0xa4, 0x76, 0x8a, 0x21, 0xfa, 0x80, 0xe6, 0x06, 0x17, 0x74, 0x59, 0x0a,
+ 0x5d, 0x11, 0xf2, 0x2b, 0x16, 0xb5, 0x09, 0x0f, 0x62, 0xa8, 0x08, 0xde, 0xee, 0xff, 0x8f, 0xa1,
+ 0x9d, 0xa5, 0x54, 0xd4, 0x2f, 0x9a, 0x5d, 0x63, 0xcd, 0x43, 0xe9, 0x0a, 0x39, 0x9c, 0xeb, 0x1e,
+ 0x1e, 0xba, 0x7d, 0x16, 0x64, 0xeb, 0xa1, 0xd7, 0xff, 0xbd, 0x09, 0xb5, 0x83, 0x39, 0x47, 0x1c,
+ 0xde, 0x0e, 0xdb, 0xe9, 0x5d, 0xc4, 0xf5, 0xbb, 0x50, 0x56, 0xe8, 0x61, 0x54, 0x5a, 0x23, 0xa3,
+ 0xdb, 0x84, 0x2f, 0x51, 0xf2, 0x09, 0x9a, 0x7c, 0x9b, 0x82, 0x0a, 0x08, 0x34, 0xb0, 0xdc, 0x18,
+ 0x1b, 0x30, 0x89, 0xae, 0xcb, 0x26, 0xce, 0x10, 0x34, 0x69, 0xeb, 0xdc, 0xe3, 0xd3, 0xb8, 0xa7,
+ 0x98, 0x2f, 0xa0, 0x6c, 0x80, 0x57, 0x32, 0xa4, 0x06, 0x97, 0x0b, 0x63, 0x59, 0x76, 0x14, 0xa5,
+ 0x58, 0x9b, 0x06, 0x93, 0xb9, 0x78, 0x66, 0xc8, 0xa9, 0x7c, 0xea, 0xb7, 0x8e, 0x15, 0x70, 0x1a,
+ 0x92, 0xf8, 0x8b, 0xdf, 0x1d, 0x0e, 0xec, 0xe9, 0x53, 0xfc, 0x0c, 0xb1, 0x99, 0x61, 0x29, 0x10,
+ 0x52, 0x4c, 0x2d, 0x20, 0x24, 0x21, 0xb8, 0x85, 0xfc, 0x17, 0xed, 0x65, 0x4e, 0x02, 0x4d, 0xaf,
+ 0xd1, 0x53, 0x04, 0xe2, 0x6f, 0x50, 0x44, 0x31, 0xce, 0xe9, 0x0d, 0xda, 0xf4, 0xa7, 0xe1, 0xad,
+ 0x11, 0xe7, 0xa2, 0x1d, 0x56, 0x7f, 0x10, 0x5d, 0x61, 0x02, 0xec, 0x0e, 0x23, 0xc4, 0x85, 0x12,
+ 0x14, 0x6d, 0x56, 0xa5, 0xf9, 0xb2, 0x7f, 0x9a, 0xaa, 0xd6, 0x0e, 0x67, 0x43, 0x2e, 0x7a, 0xa9,
+ 0xd4, 0xd9, 0xf0, 0x5a, 0xc0, 0x9d, 0x2b, 0xf6, 0x05, 0x3d, 0xef, 0xb3, 0x94, 0x4d, 0x1e, 0x16,
+ 0x57, 0xc6, 0xd9, 0x98, 0x8b, 0xec, 0xd7, 0x42, 0x37, 0xc3, 0x0f, 0x0c, 0x2e, 0xe8, 0xb2, 0x14,
+ 0x97, 0x72, 0x7f, 0x67, 0xb2, 0xc3, 0x83, 0x2e, 0x98, 0x28, 0xee, 0xd8, 0xf9, 0x8b, 0xd6, 0xab,
+ 0xba, 0x22, 0x27, 0x56, 0x2c, 0xa9, 0x12, 0x1e, 0xc4, 0x93, 0x10, 0x7f, 0x1f, 0x3d, 0xdd, 0x81,
+ 0x7a, 0x96, 0x81, 0xa9, 0x15, 0x86, 0x46, 0x72, 0x6b, 0x78, 0xf1, 0xab, 0xc8, 0x5e, 0xb9, 0x3e,
+ 0xf9, 0x89, 0xa8, 0x6b, 0x5e, 0xf7, 0xba, 0xc6, 0x59, 0x86, 0x11, 0x14, 0x72, 0xfb, 0x15, 0x3c,
+ 0x39, 0x3d, 0x0e, 0x94, 0x67, 0xd8, 0xee, 0xaa, 0xf6, 0x6d, 0xf0, 0xc0, 0xa5, 0x98, 0x71, 0x83,
+ 0x3c, 0xb7, 0xfa, 0x2c, 0xc8, 0x15, 0x81, 0x6d, 0x3d, 0xb9, 0x12, 0xa9, 0xc5, 0x72, 0x8e, 0x38,
+ 0xfc, 0x03, 0x5c, 0xd3, 0xf1, 0x3a, 0xd5, 0x01, 0x92, 0x52, 0xf3, 0x7d, 0x12, 0x11, 0xea, 0x87,
+ 0x7f, 0x1c, 0x75, 0x11, 0xba, 0x4b, 0x29, 0xb5, 0xa0, 0xac, 0x13, 0xc2, 0xa8, 0xb4, 0x46, 0x85,
+ 0xbf, 0xa8, 0xd3, 0xee, 0x83, 0x64, 0x7d, 0xd9, 0x0f, 0x47, 0xf2, 0x16, 0x7f, 0xd7, 0x22, 0x3a,
+ 0x75, 0xcb, 0x5e, 0xa2, 0x27, 0x12, 0xf7, 0xf8, 0xf5, 0xc7, 0x14, 0x10, 0x68, 0xa3, 0x7b, 0x30,
+ 0xb5, 0x7f, 0xf8, 0x5d, 0x1e, 0x3d, 0xa3, 0x94, 0x5a, 0x2c, 0xf5, 0xc4, 0xbf, 0xc0, 0x1f, 0x8f,
+ 0x36, 0x60, 0xd1, 0x9f, 0x55, 0x4c, 0x5f, 0x20, 0x68, 0xd2, 0x15, 0x7b, 0x05, 0x65, 0xb3, 0x8d,
+ 0xf6, 0xd4, 0x77, 0x60, 0x6c, 0x63, 0x0b, 0x4c, 0xc7, 0x39, 0xf4, 0xaf, 0xd2, 0x06, 0xd7, 0x32,
+ 0xf3, 0x5e, 0x83, 0xd8, 0xc3, 0xae, 0x64, 0x8b, 0x0c, 0xed, 0x16, 0xc6, 0xb2, 0xec, 0x28, 0x89,
+ 0x33, 0xea, 0x25, 0x27, 0xfa, 0x81, 0x30, 0xe7, 0xa3, 0x06, 0xf7, 0x12, 0x65, 0x8f, 0x4c, 0x36,
+ 0xb0, 0xf5, 0x0c, 0xe5, 0xb1, 0xf0, 0xcc, 0x53, 0x91, 0xf8, 0x17, 0xad, 0xdf, 0x2a, 0xe0, 0x34,
+ 0x70, 0x41, 0xaa, 0x1a, 0x88, 0xdf, 0x98, 0x3f, 0x3e, 0x13, 0xf6, 0x79, 0x08, 0x49, 0x84, 0x8b,
+ 0xe7, 0x33, 0xd5, 0x7d, 0x3a, 0x1c, 0x1b, 0x11, 0xa6, 0x3b, 0x18, 0xa1, 0xf1, 0xc2, 0x52, 0x20,
+ 0x27, 0x87, 0x73, 0x82, 0x03, 0x33, 0x4f, 0x7d, 0x09, 0xd0, 0xf9, 0x75, 0x26, 0xa1, 0x36, 0x9f,
+ 0xa4, 0x98, 0x5a, 0x40, 0x48, 0x42, 0xb3, 0xc9, 0x3b, 0x2e, 0x19, 0xca, 0x9c, 0x04, 0x9a, 0x9d,
+ 0x64, 0x2c, 0xfc, 0xbf, 0x71, 0x6d, 0xe7, 0xa5, 0x94, 0xc5, 0xf8, 0x1e, 0x4b, 0x67, 0xfe, 0x22,
+ 0x61, 0xa6, 0x08, 0x07, 0xde, 0xa0, 0x88, 0x62, 0x5f, 0x11, 0x1a, 0x77, 0x2b, 0x8d, 0x01, 0x99,
+ 0xa1, 0x12, 0xae, 0xf8, 0xe7, 0x8f, 0xdc, 0x0e, 0xf0, 0xfa, 0xfb, 0xa3, 0xfc, 0xee, 0x65, 0x26,
+ 0x22, 0x0d, 0x87, 0x3a, 0xac, 0xfe, 0x20, 0xba, 0xc2, 0x04, 0x1b, 0x1c, 0x46, 0x4b, 0xc9, 0x24,
+ 0xe2, 0xb9, 0x21, 0xc5, 0x95, 0xd1, 0x74, 0xd6, 0x6d, 0xef, 0xfa, 0xc8, 0x91, 0x28, 0xad, 0x9b,
+ 0x28, 0xda, 0xac, 0x89, 0x31, 0xa7, 0xfe, 0xf7, 0x97, 0x6f, 0x1c, 0xce, 0x86, 0x5c, 0xf4, 0x91,
+ 0xe8, 0x6e, 0x0a, 0x76, 0x08, 0x88, 0xaa, 0x9b, 0x38, 0x84, 0xfd, 0x1a, 0x51, 0x3f, 0x90, 0x2e,
+ 0x6b, 0x71, 0x23, 0xb4, 0x43, 0xf9, 0x56, 0x2f, 0x0a, 0x7a, 0x1d, 0xa5, 0xeb, 0x9a, 0x3c, 0x2c,
+ 0xab, 0xc5, 0x85, 0x4b, 0x7a, 0xd6, 0x02, 0x43, 0xa5, 0x91, 0xfc, 0x71, 0x3c, 0xf9, 0x58, 0x93,
+ 0xae, 0x4f, 0x71, 0xf3, 0xd5, 0x1b, 0x6d, 0x84, 0x6e, 0x45, 0x1e, 0x18, 0x5c, 0x13, 0xa7, 0x28,
+ 0x6e, 0xfb, 0xd7, 0x0c, 0xec, 0x34, 0x39, 0xe8, 0xc1, 0xae, 0xff, 0xcc, 0x8b, 0x70, 0xc3, 0x97,
+ 0xed, 0xe4, 0xfe, 0xce, 0xa7, 0x45, 0xc5, 0x5c, 0xf3, 0x50, 0x1f, 0x73, 0x31, 0xd5, 0x6f, 0x95,
+ 0x2d, 0x50, 0x58, 0x31, 0x9e, 0x6a, 0x91, 0x30, 0x5c, 0xbb, 0xfe, 0xa7, 0xe6, 0xb6, 0x0b, 0x2a,
+ 0xb7, 0x44, 0x4e, 0xac, 0x58, 0x91, 0x24, 0x3c, 0x4b, 0xe5, 0x20, 0xfe, 0x3e, 0x7a, 0x79, 0xc1,
+ 0x77, 0xf0, 0xe8, 0x53, 0x61, 0xbe, 0x70, 0x50, 0xe4, 0x0e, 0xc1, 0x2a, 0xe9, 0x19, 0x1d, 0x7e,
+ 0xf4, 0xef, 0xc1, 0x91, 0x2a, 0xcf, 0x8c, 0xe4, 0xd6, 0xf0, 0x21, 0x95, 0x53, 0xbc, 0xb1, 0x7c,
+ 0x34, 0x5b, 0x67, 0x6e, 0x13, 0xe0, 0xd8, 0x88, 0x79, 0x1b, 0xc0, 0x41, 0x84, 0xdf, 0xd5, 0xc3,
+ 0x31, 0xd1, 0x93, 0xd6, 0xbc, 0x2d, 0xb7, 0x4f, 0xb2, 0xcf, 0x22, 0x28, 0xe4, 0x35, 0x2a, 0x78,
+ 0xf1, 0x65, 0x35, 0x29, 0x85, 0x02, 0xe3, 0x23, 0x1d, 0x24, 0xc3, 0xfc, 0x33, 0x56, 0x4e, 0xc7,
+ 0x72, 0x7a, 0x1c, 0xeb, 0xce, 0x73, 0x1f, 0x97, 0x2f, 0xda, 0x23, 0x43, 0x89, 0xf3, 0xe2, 0xc5,
+ 0xb2, 0xce, 0xba, 0x14, 0xf7, 0x5c, 0x4b, 0xfb, 0x80, 0x31, 0xc2, 0x97, 0x5e, 0x90, 0x86, 0x7a,
+ 0x78, 0xad, 0x37, 0x58, 0x53, 0x2a, 0xc1, 0xda, 0x7a, 0xb1, 0x24, 0x91, 0x49, 0xe4, 0xdf, 0x70,
+ 0xb8, 0x19, 0x91, 0xa7, 0x6a, 0x05, 0x95, 0xb6, 0xd5, 0x5a, 0xc5, 0x45, 0x9e, 0x87, 0xbb, 0xcf,
+ 0x3b, 0x06, 0xb8, 0x65, 0x21, 0x74, 0x69, 0x02, 0xe7, 0xa4, 0x25, 0xfa, 0x24, 0x22, 0x17, 0xcd,
+ 0xfb, 0xb2, 0x1e, 0x9a, 0x18, 0x5b, 0x3d, 0x6e, 0x48, 0x4f, 0xc4, 0x2e, 0xf3, 0x41, 0x73, 0x72,
+ 0xfe, 0x38, 0xea, 0x22, 0xb7, 0x96, 0x52, 0xa9, 0x83, 0x9b, 0x26, 0x47, 0x93, 0xab, 0x8c, 0xc9,
+ 0x3e, 0x8c, 0x4c, 0xdd, 0x8e, 0xb9, 0x06, 0xc5, 0x2c, 0x70, 0xc7, 0x93, 0x44, 0xc8, 0xe8, 0x76,
+ 0xbd, 0x93, 0x65, 0x1f, 0xc5, 0xc8, 0xfa, 0x71, 0x1e, 0x8e, 0x27, 0x2c, 0xfe, 0x6d, 0x44, 0x74,
+ 0x7d, 0x27, 0xc3, 0xe0, 0xfc, 0xe7, 0xae, 0x1d, 0xb1, 0x65, 0xc6, 0xf8, 0x29, 0x0e, 0x20, 0xcb,
+ 0xea, 0x55, 0xbc, 0x87, 0x4e, 0x24, 0x2d, 0x33, 0x29, 0x4d, 0x28, 0x20, 0xd0, 0x85, 0xf6, 0x60,
+ 0x2a, 0xe1, 0x1a, 0x78, 0x77, 0x0b, 0x79, 0x5f, 0x86, 0xa6, 0xc9, 0xf4, 0x07, 0xe6, 0x92, 0xdf,
+ 0xa9, 0xfe, 0x33, 0xba, 0x3c, 0x7a, 0x85, 0xeb, 0xb4, 0x58, 0x29, 0x4b, 0xbd, 0x43, 0x3e, 0xdd,
+ 0x69, 0x4a, 0x95, 0x45, 0x05, 0x55, 0xd1, 0x87, 0x1b, 0xb3, 0xc8, 0x9f, 0x6a, 0x20, 0x5a, 0x62,
+ 0x6c, 0xc0, 0x61, 0xfd, 0xaa, 0x98, 0xbe, 0x40, 0xd0, 0x67, 0x2a, 0xf6, 0x0a, 0xca, 0xa5, 0xd9,
+ 0xac, 0x74, 0xc7, 0x02, 0x93, 0xb7, 0xea, 0x2c, 0x7f, 0x8c, 0xcb, 0x22, 0xdd, 0xa9, 0xc1, 0x66,
+ 0x2f, 0x6b, 0xee, 0xc0, 0xd8, 0xc6, 0x16, 0x98, 0x4d, 0x72, 0x2b, 0x9d, 0x67, 0x0c, 0x6d, 0x64,
+ 0xef, 0xdf, 0x48, 0x3f, 0xe1, 0xe9, 0x42, 0xf4, 0xe2, 0x99, 0xca, 0x49, 0xb0, 0x6f, 0x09, 0xdb,
+ 0x25, 0xbc, 0xc5, 0x73, 0x45, 0x9f, 0xc8, 0xd5, 0x18, 0x19, 0x2c, 0x4f, 0xa7, 0x1b, 0x50, 0xd1,
+ 0xe5, 0x08, 0x63, 0x8c, 0x7c, 0xb0, 0x9c, 0xb9, 0xb7, 0xf2, 0xcd, 0x9b, 0x70, 0x78, 0x34, 0x6e,
+ 0x66, 0x17, 0x4a, 0x4e, 0x37, 0xc1, 0x60, 0x0d, 0x85, 0x0c, 0x2d, 0x24, 0xca, 0xdd, 0x98, 0x6c,
+ 0xa6, 0xa3, 0xec, 0xb1, 0x0e, 0xee, 0x34, 0x61, 0x2a, 0xe7, 0xcc, 0xf0, 0x1d, 0xbe, 0xfc, 0xd3,
+ 0xa3, 0x29, 0x18, 0x09, 0xa1, 0x23, 0x5b, 0xa6, 0xe1, 0x33, 0x2e, 0x99, 0x7d, 0x54, 0x03, 0x68,
+ 0x63, 0x9d, 0xbe, 0xf6, 0x98, 0x0c, 0x0f, 0xca, 0x4e, 0xd8, 0xcf, 0x4d, 0xaa, 0x37, 0x67, 0xd7,
+ 0xe0, 0x82, 0x97, 0x34, 0xd3, 0x7d, 0xf3, 0x7e, 0x7c, 0x26, 0x2f, 0xf2, 0x10, 0x92, 0xcb, 0xd5,
+ 0x20, 0x36, 0x31, 0xcb, 0xea, 0x52, 0xa7, 0x12, 0xd3, 0xcd, 0xce, 0x26, 0xc7, 0xf1, 0xaf, 0x6a,
+ 0x0d, 0x66, 0x69, 0xfa, 0x74, 0x38, 0x36, 0x22, 0x8f, 0x76, 0x30, 0x81, 0x21, 0x47, 0xa4, 0x40,
+ 0xcd, 0xd2, 0xcf, 0x05, 0x4d, 0x17, 0x62, 0x4e, 0x20, 0x9d, 0xd1, 0x55, 0xf6, 0x24, 0xc0, 0xff,
+ 0x4e, 0xcd, 0xe6, 0xc7, 0x06, 0x66, 0x9e, 0xfa, 0x12, 0x63, 0x31, 0xea, 0x4c, 0x81, 0x6c, 0xfd,
+ 0x8e, 0x79, 0x40, 0x38, 0x3f, 0x49, 0xca, 0x96, 0xbd, 0x88, 0xd0, 0x3e, 0x9b, 0xe2, 0x08, 0x42,
+ 0x8b, 0xf3, 0xb4, 0x80, 0x90, 0x84, 0xa5, 0x51, 0x76, 0x5c, 0x32, 0x57, 0xfb, 0x08, 0xf7, 0xf9,
+ 0x4b, 0x47, 0x12, 0x7f, 0xa9, 0xab, 0xf1, 0x3d, 0xd9, 0xb7, 0xd3, 0x83, 0x2c, 0x6b, 0x93, 0x46,
+ 0xc8, 0x58, 0x3b, 0xbd, 0xe2, 0xda, 0x0d, 0x89, 0xeb, 0x49, 0x33, 0x3c, 0x96, 0xce, 0x3f, 0x44,
+ 0x08, 0xec, 0x9d, 0x42, 0xdb, 0xf5, 0x59, 0xe5, 0x44, 0xa2, 0xd2, 0xe8, 0x41, 0xad, 0x5b, 0xfb,
+ 0xc2, 0x8f, 0x10, 0x0e, 0x7f, 0x83, 0xd3, 0xc4, 0xbe, 0x22, 0x34, 0xee, 0x56, 0xd9, 0x02, 0xf1,
+ 0x02, 0x3b, 0xb6, 0xf1, 0x46, 0xac, 0x87, 0xa8, 0x11, 0xc9, 0xd5, 0x3a, 0x81, 0xba, 0x66, 0x4e,
+ 0x81, 0x24, 0x9f, 0x33, 0x0d, 0xdd, 0x7b, 0x1c, 0x23, 0x37, 0x35, 0x85, 0x3b, 0x1f, 0xca, 0x4c,
+ 0x41, 0x90, 0x39, 0xcc, 0x34, 0xf2, 0x2f, 0x70, 0x8c, 0xdc, 0xd4, 0x51, 0xec, 0x7c, 0xae, 0xf3,
+ 0x44, 0x1a, 0xcd, 0x74, 0x9b, 0x3f, 0x40, 0xb7, 0x47, 0x08, 0x36, 0x38, 0x8c, 0x96, 0x51, 0x48,
+ 0x84, 0xae, 0x6b, 0x8b, 0xa2, 0x10, 0x14, 0xdb, 0xe8, 0xe3, 0xd7, 0xec, 0x5b, 0xf5, 0x35, 0xf7,
+ 0x07, 0xb1, 0x42, 0x49, 0xe9, 0x61, 0xe8, 0x6f, 0xda, 0x1d, 0x37, 0x53, 0xe1, 0x50, 0x99, 0xf5,
+ 0xc7, 0x05, 0xe4, 0xb6, 0xd0, 0x4e, 0xbc, 0x03, 0x75, 0xf6, 0xd6, 0x87, 0x36, 0x33, 0xfd, 0x4a,
+ 0x50, 0x77, 0x9b, 0xd1, 0x62, 0x8d, 0x3f, 0x2d, 0xed, 0xde, 0x38, 0x5f, 0xcf, 0xb8, 0x2b, 0xe1,
+ 0x90, 0xc3, 0x3d, 0x2e, 0x5b, 0xa2, 0x6b, 0x41, 0x42, 0x35, 0xd9, 0x8b, 0x18, 0xdb, 0x4f, 0x5e,
+ 0x13, 0xdc, 0x14, 0xec, 0x10, 0xd3, 0x97, 0xf5, 0x70, 0xcb, 0x39, 0x34, 0xa2, 0x7e, 0xe3, 0x5c,
+ 0xd3, 0x68, 0xb2, 0x13, 0x29, 0xfc, 0xc3, 0x99, 0xdf, 0x20, 0xd8, 0xe0, 0x75, 0x1d, 0x87, 0xe3,
+ 0xd6, 0xe2, 0x46, 0xab, 0x86, 0x31, 0xac, 0x5e, 0x14, 0xf4, 0x3a, 0x89, 0x15, 0xf7, 0x78, 0x58,
+ 0x16, 0x56, 0xe0, 0x54, 0xbf, 0x1e, 0xf8, 0x32, 0xbb, 0x1f, 0xdb, 0x5d, 0xc2, 0x94, 0x1c, 0xe7,
+ 0x95, 0x49, 0xc9, 0x96, 0xf4, 0x6f, 0x04, 0x86, 0x89, 0xe1, 0x3b, 0xe2, 0x78, 0x31, 0xb0, 0xe5,
+ 0x55, 0xfd, 0x6f, 0x69, 0xcd, 0x40, 0x50, 0xea, 0x26, 0x0a, 0xda, 0x36, 0xaf, 0x52, 0xd4, 0x5a,
+ 0x9f, 0x9e, 0xe2, 0x25, 0x69, 0x36, 0xda, 0xcb, 0xdc, 0x8a, 0x3c, 0x30, 0xb8, 0x26, 0x8d, 0x50,
+ 0x5f, 0x2a, 0x44, 0xda, 0x50, 0x19, 0x8e, 0xa7, 0x73, 0x61, 0xdd, 0xe4, 0x6f, 0x45, 0xe9, 0xef,
+ 0xdc, 0x35, 0x6d, 0x18, 0x1b, 0x68, 0x72, 0x13, 0x41, 0x9f, 0x3d, 0x5b, 0xd5, 0xe0, 0x45, 0xed,
+ 0x1c, 0x81, 0xcb, 0xe7, 0x22, 0x47, 0x26, 0x7f, 0xee, 0x74, 0xdc, 0x8f, 0x02, 0x83, 0x21, 0x52,
+ 0x19, 0x0b, 0x3f, 0x5f, 0x8d, 0x8a, 0x49, 0xb8, 0x25, 0xa0, 0x3e, 0xe6, 0x62, 0x69, 0xde, 0xe9,
+ 0xd9, 0xbf, 0x99, 0xa0, 0xb4, 0xa5, 0x1d, 0xd4, 0x8a, 0x4b, 0xdf, 0x32, 0xb5, 0x0a, 0xba, 0x56,
+ 0x5a, 0xa0, 0xb0, 0x62, 0xff, 0xd4, 0xe1, 0x60, 0xb8, 0xb5, 0x3f, 0x8d, 0x0f, 0xaf, 0x16, 0x54,
+ 0x9a, 0x14, 0x16, 0x9d, 0xc6, 0xfb, 0xb5, 0x0c, 0x17, 0x5e, 0xde, 0x59, 0xd8, 0xcc, 0x72, 0xeb,
+ 0xad, 0x88, 0x9c, 0x9b, 0xb0, 0xe1, 0x48, 0x78, 0x96, 0x09, 0x40, 0x3f, 0x7c, 0xf4, 0xf2, 0x41,
+ 0x6d, 0x3c, 0x3a, 0x64, 0x89, 0xce, 0x1c, 0x14, 0x39, 0xe2, 0xa1, 0xeb, 0xab, 0x97, 0x96, 0xfe,
+ 0xee, 0x23, 0x13, 0xa6, 0xc2, 0xbf, 0xe0, 0xa0, 0x0b, 0x1c, 0x41, 0x54, 0x11, 0x32, 0x3a, 0xfc,
+ 0x2e, 0x97, 0xb5, 0x59, 0xfb, 0x90, 0xb4, 0xcc, 0xa4, 0xf7, 0xa0, 0x80, 0xc6, 0x51, 0x5e, 0x43,
+ 0x2b, 0x1d, 0x41, 0xe1, 0x54, 0x5d, 0xdb, 0x0b, 0x6f, 0x23, 0x42, 0xe9, 0xa6, 0xbb, 0xa1, 0xf8,
+ 0xeb, 0xa9, 0xe7, 0x1e, 0x6d, 0x72, 0x8f, 0x67, 0xc0, 0xc8, 0xa3, 0x3d, 0x71, 0xd8, 0xc5, 0x47,
+ 0x68, 0xb6, 0xce, 0xdc, 0x26, 0x03, 0x73, 0xd3, 0xf2, 0x36, 0x43, 0x82, 0xcb, 0x7d, 0x69, 0x45,
+ 0xa8, 0x02, 0x68, 0x23, 0x1f, 0x2c, 0x27, 0xbf, 0x5d, 0xdd, 0xa2, 0x56, 0x1c, 0x1e, 0x0d, 0xfa,
+ 0x62, 0x61, 0xe5, 0x6f, 0xbb, 0x5a, 0xad, 0x9e, 0xa7, 0x5d, 0x44, 0x50, 0x0b, 0x6a, 0x54, 0xf0,
+ 0xa2, 0xd5, 0x43, 0x90, 0x82, 0x75, 0xf9, 0xf2, 0x08, 0xb6, 0xa5, 0x84, 0xdc, 0x09, 0x30, 0x4f,
+ 0x21, 0xca, 0x6a, 0x52, 0xc9, 0x04, 0x05, 0x46, 0x3a, 0x48, 0x45, 0x3b, 0x66, 0xac, 0x9c, 0x4d,
+ 0xe1, 0x7e, 0xcc, 0xad, 0xf0, 0x2b, 0x51, 0x2a, 0x95, 0xa3, 0xa4, 0xef, 0xb1, 0xcf, 0xf8, 0xf2,
+ 0xe4, 0xf4, 0x38, 0x15, 0x5f, 0xe6, 0x3e, 0xed, 0x5e, 0x77, 0x46, 0x86, 0xd1, 0x25, 0x07, 0x49,
+ 0x24, 0x40, 0x9e, 0xea, 0x66, 0xc9, 0x6a, 0x81, 0xf1, 0x9c, 0xa7, 0x52, 0x06, 0x46, 0x63, 0xf6,
+ 0xa7, 0x5f, 0xb7, 0x28, 0x2d, 0xb8, 0x96, 0x35, 0xc3, 0x62, 0x47, 0xed, 0xbc, 0xe3, 0xcf, 0xf4,
+ 0x67, 0xeb, 0x11, 0xd7, 0x14, 0x97, 0xc2, 0x59, 0x6c, 0x89, 0xa6, 0x39, 0x6b, 0x80, 0xab, 0x4b,
+ 0xf0, 0x99, 0x6e, 0xb0, 0xa6, 0x54, 0x41, 0x77, 0xf4, 0xa1, 0x48, 0xe1, 0x92, 0x0b, 0x7d, 0xe0,
+ 0x30, 0x2d, 0xc8, 0x4f, 0x9f, 0x7b, 0x15, 0x1b, 0x5b, 0x4a, 0xa9, 0x35, 0x45, 0x68, 0x19, 0x5f,
+ 0xb3, 0x32, 0xe1, 0x8d, 0xd4, 0x0a, 0xe9, 0xaf, 0x69, 0xb4, 0x49, 0x8a, 0xff, 0xcd, 0xb5, 0x5d,
+ 0x73, 0x86, 0x47, 0x72, 0xed, 0x25, 0xbd, 0xc3, 0xc6, 0x5f, 0xa8, 0x5e, 0x28, 0xae, 0xd1, 0xe2,
+ 0x76, 0x0c, 0xb3, 0xca, 0x42, 0xe8, 0xd2, 0x04, 0x0d, 0x8b, 0x4a, 0x37, 0x48, 0x44, 0x2e, 0x59,
+ 0xb6, 0xb8, 0x15, 0x35, 0x7b, 0xc7, 0x86, 0x68, 0xa2, 0x60, 0xab, 0xe3, 0x9f, 0x27, 0x4a, 0xe6,
+ 0x35, 0xa7, 0x3c, 0xf7, 0x30, 0xb6, 0x7a, 0xdc, 0x90, 0x9e, 0x4b, 0x5c, 0x25, 0x82, 0xe6, 0xe4,
+ 0xf5, 0x13, 0x9a, 0x08, 0x09, 0x99, 0x2e, 0xb0, 0x3f, 0x75, 0xaa, 0x88, 0xf2, 0xe1, 0x82, 0x5b,
+ 0x3f, 0x70, 0x17, 0x44, 0xad, 0xef, 0xa4, 0x91, 0xc5, 0xf5, 0x4c, 0x8e, 0xe5, 0x95, 0xdb, 0x51,
+ 0xff, 0xc4, 0xb1, 0xbb, 0x94, 0xc0, 0xf0, 0xfd, 0x6a, 0x1e, 0xad, 0x5a, 0x32, 0xf6, 0xbf, 0xee,
+ 0x7c, 0xdb, 0x98, 0x79, 0xdf, 0xb1, 0x0c, 0x49, 0x58, 0xe0, 0x4d, 0xe5, 0x88, 0x53, 0x13, 0xec,
+ 0xbc, 0x6f, 0x3e, 0x86, 0xe6, 0x9e, 0x58, 0x25, 0xf7, 0x0b, 0xac, 0x31, 0x5f, 0x30, 0x77, 0x53,
+ 0xb9, 0xe5, 0xca, 0x3e, 0x49, 0x53, 0x37, 0xe2, 0x3c, 0xdf, 0x4e, 0x58, 0x3f, 0xda, 0x88, 0xe8,
+ 0x79, 0x51, 0x6c, 0xc1, 0x70, 0x7c, 0x63, 0x8e, 0x93, 0x34, 0xaf, 0x8c, 0xe8, 0xb9, 0xec, 0x57,
+ 0xfa, 0x4e, 0x45, 0x03, 0x3b, 0x0d, 0x9f, 0x3a, 0xa1, 0xca, 0x4f, 0x33, 0x52, 0x1c, 0x40, 0x55,
+ 0x3a, 0xfa, 0xe3, 0xfc, 0x02, 0x22, 0xcb, 0x56, 0x0e, 0x21, 0xae, 0xe7, 0x85, 0x7f, 0x24, 0xea,
+ 0x17, 0xaa, 0xbb, 0xcd, 0x9c, 0x48, 0x5a, 0x66, 0x52, 0x9a, 0x50, 0x40, 0x63, 0xc9, 0x2f, 0xc0,
+ 0xd7, 0x1e, 0x1d, 0x32, 0xa5, 0x67, 0x0e, 0x0a, 0xfd, 0x71, 0xb1, 0x94, 0xb4, 0xaa, 0x4b, 0x7f,
+ 0x54, 0x01, 0x34, 0xf0, 0xee, 0x16, 0xf2, 0xbe, 0xcf, 0x8f, 0x51, 0x2b, 0x0e, 0x0f, 0xe7, 0x7d,
+ 0x94, 0xb5, 0x92, 0x0f, 0xd7, 0x39, 0xa6, 0xd2, 0x60, 0x64, 0xb0, 0xff, 0xd9, 0x6c, 0x83, 0xc2,
+ 0x91, 0x3f, 0x66, 0xb7, 0x78, 0xf4, 0xc9, 0x15, 0xab, 0xb0, 0x52, 0x96, 0xb9, 0x86, 0x7c, 0x79,
+ 0x51, 0x8b, 0xc0, 0x48, 0x41, 0xdb, 0x9d, 0x79, 0x04, 0x5b, 0xb3, 0x42, 0x6e, 0xe5, 0x18, 0xc6,
+ 0xd2, 0x94, 0xe9, 0x8a, 0x0a, 0xaa, 0x61, 0xcd, 0x36, 0xa5, 0x53, 0xfd, 0xd4, 0x40, 0xb4, 0xc4,
+ 0x12, 0x20, 0x4f, 0x75, 0x33, 0x85, 0x35, 0xa1, 0x99, 0x4e, 0xb2, 0x29, 0x03, 0x23, 0xd0, 0x7b,
+ 0xd8, 0x43, 0xc2, 0x39, 0x97, 0xf3, 0xbf, 0x80, 0x63, 0xce, 0x54, 0x2f, 0x14, 0x57, 0x89, 0x71,
+ 0x18, 0xf7, 0x64, 0xc6, 0xae, 0xdc, 0xeb, 0xec, 0xcc, 0x25, 0xb5, 0xfb, 0xc3, 0x34, 0xed, 0xce,
+ 0x9b, 0xe8, 0x4d, 0x04, 0xe5, 0xad, 0x17, 0x58, 0xfe, 0xdb, 0x55, 0x44, 0x79, 0x91, 0x41, 0xcc,
+ 0x5b, 0x5c, 0xeb, 0xfb, 0xdc, 0x82, 0x43, 0x34, 0x51, 0x30, 0xb4, 0x90, 0xae, 0xf2, 0x25, 0x73,
+ 0x5e, 0xd6, 0x1f, 0x43, 0x73, 0x4f, 0x2c, 0xf3, 0x9a, 0xe4, 0x56, 0xf9, 0xce, 0x18, 0xda, 0xc8,
+ 0x9e, 0x62, 0xb9, 0xbc, 0x4a, 0x60, 0x78, 0x9f, 0x35, 0x0f, 0xb7, 0x2d, 0x19, 0x7b, 0xbe, 0x77,
+ 0x1d, 0x7d, 0x90, 0x7e, 0x01, 0x11, 0x84, 0x2b, 0x07, 0xf1, 0x57, 0x92, 0xa3, 0xde, 0x12, 0x75,
+ 0xdd, 0xc9, 0x36, 0x81, 0x38, 0x3e, 0xd0, 0x47, 0xa8, 0x1a, 0xb6, 0x46, 0x74, 0xbd, 0x76, 0xca,
+ 0x4a, 0xbb, 0x49, 0xe6, 0x8a, 0xfd, 0x53, 0x69, 0x30, 0x32, 0x58, 0x9e, 0x8d, 0x36, 0xa0, 0x61,
+ 0x8a, 0x0f, 0xef, 0x19, 0xb3, 0xd2, 0x07, 0x05, 0x9f, 0xd9, 0xb9, 0x4a, 0x5a, 0x55, 0xc4, 0xde,
+ 0x09, 0x10, 0xc6, 0xdb, 0xf8, 0xa3, 0xfb, 0xb1, 0xad, 0x27, 0x59, 0xf5, 0xe0, 0xf0, 0x68, 0xdc,
+ 0xc9, 0xa4, 0x60, 0x24, 0xc1, 0x8c, 0xaf, 0xdd, 0x02, 0xcc, 0xb8, 0x21, 0x37, 0x93, 0x0c, 0x63,
+ 0xcc, 0x2e, 0x94, 0x9c, 0x6e, 0x41, 0xc0, 0x1a, 0xc9, 0x18, 0x5a, 0x48, 0x57, 0x79, 0xf3, 0xd8,
+ 0x0c, 0x9a, 0x32, 0x63, 0x57, 0x6e, 0x94, 0x76, 0x66, 0xf3, 0xbb, 0x9c, 0x80, 0x1a, 0x97, 0x67,
+ 0x8f, 0x85, 0x1b, 0xa1, 0x1c, 0x1f, 0x68, 0xc2, 0x54, 0x0d, 0x5b, 0x23, 0x3a, 0xbf, 0x3b, 0x65,
+ 0x4f, 0x31, 0xbd, 0x5e, 0x25, 0x30, 0x3c, 0xae, 0xfb, 0xe6, 0xba, 0xf7, 0xed, 0xdc, 0x5f, 0xda,
+ 0x85, 0x52, 0x30, 0x12, 0x81, 0x46, 0xb6, 0x8f, 0x01, 0x66, 0x5c, 0xf1, 0xfa, 0xa8, 0x06, 0xd0,
+ 0x45, 0xe6, 0x96, 0xed, 0xb8, 0x69, 0xe2, 0xe3, 0xae, 0x8d, 0xbd, 0x25, 0x2d, 0xcb, 0x62, 0x6f,
+ 0xc6, 0xf9, 0xbf, 0x2f, 0xf3, 0x18, 0x1e, 0x57, 0x9c, 0x73, 0x5d, 0x9a, 0x97, 0x6e, 0xce, 0x6d,
+ 0x06, 0x4d, 0x19, 0xd0, 0xca, 0x37, 0x4a, 0x3b, 0x33, 0x98, 0xbc, 0x4e, 0x40, 0x0d, 0xaa, 0xd2,
+ 0x03, 0xc7, 0xed, 0x68, 0x65, 0xfa, 0x25, 0xfc, 0xf8, 0x4c, 0x5e, 0x27, 0x20, 0xe7, 0x55, 0x69,
+ 0xc3, 0x73, 0x4b, 0x97, 0x5c, 0xd5, 0x71, 0x90, 0x57, 0xa7, 0xbf, 0xf3, 0xf7, 0x84, 0x31, 0xd6,
+ 0x40, 0x6c, 0x62, 0x55, 0x17, 0xa4, 0x8d, 0x24, 0x65, 0x59, 0x5f, 0x4c, 0x4d, 0x21, 0x9d, 0xd4,
+ 0x80, 0xd8, 0xc4, 0xaa, 0x2e, 0x8b, 0xd9, 0x48, 0xca, 0xb2, 0xbe, 0x98, 0x9a, 0x42, 0xf9, 0x6b,
+ 0x1a, 0xcc, 0xd2, 0x37, 0xe8, 0x70, 0x6c, 0x44, 0xdd, 0xec, 0x60, 0xc1, 0x42, 0x8e, 0x8b, 0x80,
+ 0xda, 0x78, 0x74, 0xc8, 0xd1, 0x5f, 0x38, 0x28, 0x72, 0x07, 0x81, 0x15, 0x95, 0xed, 0xef, 0x3f,
+ 0x59, 0x67, 0x5d, 0x0a, 0x9a, 0x2e, 0xc4, 0x9c, 0x40, 0xf9, 0x61, 0xaa, 0x2f, 0x48, 0x43, 0x3d,
+ 0x99, 0xd3, 0xfb, 0xf5, 0xa3, 0x01, 0x90, 0xf0, 0xef, 0x12, 0x80, 0x7e, 0xf8, 0x2b, 0x27, 0x82,
+ 0x9c, 0x59, 0x0f, 0x4d, 0x0c, 0xcc, 0xff, 0x37, 0x24, 0xc6, 0x62, 0x17, 0x98, 0xc1, 0xd8, 0x39,
+ 0x5c, 0xed, 0xa9, 0xb2, 0x35, 0xe3, 0xab, 0x5b, 0x8b, 0x2d, 0x83, 0xc3, 0x4f, 0xa2, 0xbc, 0x86,
+ 0xdf, 0xf2, 0x80, 0x70, 0x7e, 0x92, 0x57, 0xef, 0xb9, 0xd3, 0x63, 0x7c, 0xf5, 0x07, 0x10, 0x84,
+ 0x1f, 0x46, 0x26, 0x8f, 0x47, 0xbd, 0x03, 0x83, 0x16, 0x38, 0x82, 0xa8, 0x22, 0x64, 0x74, 0x3b,
+ 0xd5, 0x25, 0xab, 0xc3, 0xe3, 0xcb, 0x89, 0xa2, 0xec, 0xb8, 0x64, 0xae, 0x35, 0x10, 0x2d, 0x31,
+ 0x15, 0x91, 0x0d, 0x3c, 0xda, 0xe4, 0xdd, 0xce, 0x43, 0x53, 0x85, 0x7a, 0xe2, 0x73, 0x49, 0x8e,
+ 0x96, 0x8e, 0x24, 0xfe, 0x91, 0x95, 0x21, 0x7a, 0x71, 0xad, 0x65, 0xc5, 0x58, 0xd6, 0xe5, 0x8c,
+ 0x56, 0x3a, 0x82, 0x01, 0xa8, 0xba, 0x75, 0x16, 0xde, 0x46, 0x84, 0x11, 0x8f, 0xb5, 0x81, 0x33,
+ 0x53, 0xb0, 0x76, 0xb9, 0x07, 0x77, 0x1a, 0xd1, 0x15, 0x92, 0x66, 0x78, 0xef, 0x5f, 0x7e, 0x88,
+ 0x93, 0x04, 0xd0, 0x46, 0x3e, 0x58, 0x4e, 0xbd, 0xba, 0x79, 0x87, 0xac, 0x38, 0x3c, 0x1a, 0x37,
+ 0x10, 0x1b, 0xf9, 0x84, 0x75, 0x29, 0xb2, 0x09, 0x88, 0x87, 0x67, 0x13, 0x82, 0x99, 0xb6, 0x35,
+ 0xd0, 0xaf, 0x5f, 0x7b, 0x4c, 0x06, 0xe6, 0x65, 0x27, 0x6c, 0x86, 0xc7, 0x55, 0xfa, 0xd2, 0x8a,
+ 0x47, 0xdd, 0x20, 0x1c, 0xfe, 0xc5, 0x65, 0x4b, 0xbf, 0x44, 0x68, 0x1f, 0xac, 0x71, 0x04, 0x21,
+ 0x87, 0x69, 0x86, 0xe3, 0xc7, 0xea, 0x31, 0x27, 0x10, 0xaf, 0x89, 0xcb, 0x7b, 0x12, 0x60, 0x9e,
+ 0x04, 0x76, 0xaf, 0x21, 0x8c, 0x9b, 0xcd, 0x93, 0x22, 0x51, 0x69, 0x74, 0xc1, 0xb7, 0xcc, 0x9c,
+ 0xc4, 0xc2, 0x09, 0xde, 0xb5, 0xb4, 0x99, 0xff, 0x8d, 0xba, 0x88, 0xa0, 0x16, 0xd4, 0xa8, 0x23,
+ 0xc1, 0x48, 0xfd, 0x66, 0x1a, 0x79, 0xf6, 0x38, 0x46, 0x6e, 0x6a, 0xc9, 0x76, 0x3e, 0x57, 0x98,
+ 0x01, 0xfc, 0x5b, 0x99, 0x23, 0x56, 0xa2, 0x54, 0xe9, 0x85, 0x8b, 0x1d, 0xa1, 0x5d, 0x33, 0x27,
+ 0x82, 0xe3, 0x72, 0x5b, 0x68, 0x27, 0x5e, 0xe0, 0xdb, 0x7b, 0x6b, 0xa2, 0x1b, 0xf8, 0x9f, 0x25,
+ 0x42, 0x57, 0xd4, 0xa4, 0x51, 0x08, 0x0a, 0x8c, 0x74, 0x90, 0x8a, 0x76, 0xcc, 0x9b, 0xfb, 0x9a,
+ 0x88, 0x34, 0x59, 0xe8, 0xf5, 0x7e, 0x80, 0xad, 0x8e, 0x10, 0x6c, 0x70, 0xdb, 0xef, 0xa2, 0x90,
+ 0x48, 0x80, 0xff, 0x17, 0xcc, 0x51, 0xd4, 0xc1, 0x21, 0xfb, 0x8d, 0xa4, 0x0c, 0x8c, 0xc6, 0x2f,
+ 0xcb, 0x9f, 0xd6, 0xd5, 0x87, 0x20, 0x28, 0x75, 0x13, 0x05, 0x6d, 0x1b, 0xb6, 0x29, 0x6a, 0x2d,
+ 0x0b, 0x2b, 0x70, 0x2a, 0xbe, 0x0f, 0x7c, 0x19, 0xbc, 0xee, 0x8c, 0xcf, 0x61, 0x4a, 0x0e, 0x92,
+ 0x0e, 0xa1, 0x84, 0x92, 0x11, 0xc2, 0x13, 0xde, 0x77, 0x3a, 0x6e, 0xa6, 0x01, 0xa0, 0xf1, 0x29,
+ 0xce, 0x15, 0x22, 0x6d, 0x28, 0xed, 0x47, 0xb2, 0xd8, 0xd1, 0x8f, 0x72, 0xd6, 0xc3, 0x95, 0x96,
+ 0x4d, 0x0a, 0x0b, 0xaf, 0x63, 0x9c, 0xbb, 0x06, 0xea, 0x2f, 0x6f, 0xcd, 0x6c, 0x66, 0x39, 0x94,
+ 0x8d, 0xbe, 0xad, 0x50, 0x5a, 0xb3, 0xef, 0x6a, 0x45, 0xc4, 0x8e, 0x19, 0xbb, 0x05, 0x5d, 0x2b,
+ 0xa0, 0xee, 0xf5, 0x61, 0xc4, 0xd9, 0x7e, 0x5a, 0x19, 0x7f, 0x70, 0xbe, 0x5d, 0xb3, 0x56, 0x01,
+ 0x60, 0x5a, 0x53, 0x9e, 0xfd, 0xf6, 0x2a, 0x36, 0xb6, 0x94, 0x91, 0x6a, 0x8a, 0xd0, 0x32, 0xbe,
+ 0xe3, 0x45, 0x7a, 0x5c, 0xb6, 0x87, 0xd6, 0x82, 0x84, 0x6a, 0x71, 0xd5, 0x30, 0x75, 0x9e, 0xbc,
+ 0x23, 0xf1, 0xdc, 0xa3, 0x8f, 0xa8, 0x82, 0xee, 0x2b, 0x81, 0x90, 0x01, 0xe7, 0x16, 0xfa, 0x03,
+ 0x26, 0x7b, 0x28, 0x1b, 0x20, 0x65, 0xed, 0x29, 0xe0, 0x55, 0x72, 0x68, 0x87, 0xfc, 0x05, 0xb8,
+ 0xe6, 0xcf, 0x8e, 0xe4, 0x19, 0x4a, 0xb9, 0x45, 0x4f, 0xbe, 0x93, 0xbc, 0x50, 0x9f, 0x61, 0x07,
+ 0x65, 0xd0, 0xa7, 0x26, 0x52, 0x3b, 0x45, 0xf1, 0x7d, 0x40, 0x73, 0x03, 0xea, 0x3a, 0xcd, 0x05,
+ 0xa5, 0x64, 0x01, 0xd9, 0x6b, 0x14, 0x11, 0x9d, 0xd2, 0xab, 0x92, 0xd7, 0x3d, 0x59, 0xa9, 0xba,
+ 0x6f, 0x07, 0x8c, 0x95, 0xcf, 0x62, 0x9b, 0xbc, 0x28, 0x2b, 0x74, 0xd1, 0x2a, 0x2d, 0xf0, 0xb0,
+ 0xaf, 0xb3, 0x2a, 0x6a, 0xf6, 0x4d, 0xcf, 0xd0, 0x87, 0xc0, 0x95, 0x05, 0xfd, 0x4e, 0x94, 0x0f,
+ 0x2c, 0xac, 0x03, 0xa8, 0xbd, 0x3c, 0x33, 0x64, 0xb5, 0x3e, 0x75, 0xba, 0x47, 0xeb, 0x38, 0x0d,
+ 0xec, 0x18, 0xa5, 0x57, 0x84, 0x13, 0x67, 0x08, 0x1a, 0xd5, 0x94, 0x6e, 0x90, 0x88, 0x5c, 0xb2,
+ 0xe9, 0x92, 0x51, 0xef, 0x2b, 0xde, 0x08, 0xcf, 0xd1, 0x01, 0x76, 0x07, 0xf0, 0x62, 0xa3, 0x09,
+ 0x29, 0x26, 0xf7, 0x10, 0x12, 0xf1, 0x5c, 0xa3, 0x7e, 0xea, 0x97, 0xd3, 0x27, 0x01, 0xc7, 0xb6,
+ 0xaa, 0x39, 0xde, 0xd2, 0x59, 0x80, 0xa0, 0x17, 0x4c, 0x14, 0x77, 0x6c, 0x9d, 0xa4, 0x6b, 0xb4,
+ 0x6a, 0x8d, 0x78, 0x2d, 0x60, 0xaf, 0xf4, 0x7b, 0xe3, 0xff, 0x96, 0xb8, 0x4a, 0xc7, 0x0f, 0x0b,
+ 0xfd, 0xff, 0x07, 0x4a, 0xd2, 0x6c, 0x77, 0x55, 0x7b, 0xd7, 0x78, 0x60, 0xb3, 0x4c, 0xd9, 0xa0,
+ 0x3d, 0x4b, 0xa1, 0xb5, 0xeb, 0x43, 0x23, 0x39, 0xd4, 0x3c, 0x99, 0xb4, 0x64, 0x2f, 0xbd, 0x1f,
+ 0xbe, 0x54, 0x88, 0x77, 0xa0, 0x32, 0xdf, 0x8d, 0xe6, 0xc2, 0x79, 0x0b, 0xde, 0x8a, 0x11, 0x1d,
+ 0x7e, 0xe0, 0x2e, 0x88, 0x99, 0x1d, 0x8b, 0xe1, 0x49, 0x29, 0x98, 0xdf, 0x09, 0xe9, 0x75, 0xa2,
+ 0x7b, 0x6a, 0xda, 0x30, 0x36, 0xd0, 0xe4, 0x26, 0x82, 0xfd, 0x7a, 0xb6, 0x69, 0x03, 0x8a, 0x19,
+ 0xbb, 0xde, 0x7c, 0xcf, 0x0f, 0xff, 0xb0, 0x4a, 0x2d, 0x16, 0x9b, 0x62, 0xbe, 0x60, 0xee, 0xa6,
+ 0x38, 0xc1, 0x55, 0x0d, 0x44, 0x8e, 0x4c, 0xfe, 0x1f, 0xe8, 0x7b, 0xdd, 0x04, 0xc5, 0x42, 0xa4,
+ 0xf8, 0x75, 0xf3, 0xf2, 0x7d, 0xa1, 0x18, 0x92, 0xb0, 0x03, 0x9a, 0x09, 0xd3, 0xa6, 0x26, 0x1b,
+ 0x32, 0x16, 0x7e, 0xbe, 0xd9, 0xd7, 0x92, 0xb3, 0x4a, 0x83, 0x7c, 0x0f, 0xc4, 0xd2, 0x7f, 0x11,
+ 0xf2, 0xa2, 0xd8, 0x41, 0xe0, 0xf8, 0xc6, 0xdf, 0xe5, 0x68, 0x9d, 0xdb, 0x13, 0xb1, 0x1b, 0xae,
+ 0x71, 0xbd, 0xf1, 0x83, 0xab, 0x89, 0x3a, 0x6b, 0xd7, 0x96, 0x7d, 0x64, 0xa9, 0x14, 0xb7, 0xac,
+ 0xb1, 0x09, 0x57, 0x7c, 0x92, 0xa6, 0x6e, 0x07, 0x78, 0x7d, 0x9c, 0xb0, 0x7e, 0x77, 0xd3, 0x13,
+ 0xb4, 0x83, 0xa3, 0xc4, 0x3d, 0x6b, 0x01, 0xc0, 0xb3, 0xa9, 0x7e, 0xd9, 0x1e, 0x9d, 0x2c, 0xa8,
+ 0x74, 0x37, 0x05, 0x3b, 0x04, 0x44, 0x55, 0xac, 0x1c, 0x42, 0x9f, 0x0d, 0xc9, 0xfe, 0x48, 0x17,
+ 0xf7, 0x28, 0x2c, 0xf9, 0x4f, 0x35, 0xa9, 0x18, 0x2e, 0xbc, 0x7f, 0xb2, 0x73, 0x5b, 0xe4, 0x15,
+ 0x37, 0x9c, 0x8a, 0x06, 0x76, 0x1a, 0xfd, 0x74, 0x81, 0x57, 0x9e, 0x66, 0xa4, 0x38, 0x80, 0xaa,
+ },
+ { /* 7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x54, 0x30, 0x7b, 0xef, 0x84, 0x08, 0x09, 0xd4, 0xd5, 0xa3, 0x8d, 0xa6, 0xa1, 0xc1, 0x0a,
+ 0x02, 0xa8, 0x60, 0xf6, 0x1d, 0xcb, 0x10, 0x12, 0x6b, 0x69, 0x85, 0xd9, 0x8f, 0x81, 0x41, 0x14,
+ 0x03, 0xfc, 0x50, 0x8d, 0xf2, 0x4f, 0x18, 0x1b, 0xbf, 0xbc, 0x26, 0x54, 0x29, 0x20, 0x80, 0x1e,
+ 0x04, 0x93, 0xc0, 0x2f, 0x3a, 0x55, 0x20, 0x24, 0xd6, 0xd2, 0xc9, 0x71, 0xdd, 0xc1, 0x82, 0x28,
+ 0x05, 0xc7, 0xf0, 0x54, 0xd5, 0xd1, 0x28, 0x2d, 0x02, 0x07, 0x6a, 0xfc, 0x7b, 0x60, 0x43, 0x22,
+ 0x06, 0x3b, 0xa0, 0xd9, 0x27, 0x9e, 0x30, 0x36, 0xbd, 0xbb, 0x4c, 0xa8, 0x52, 0x40, 0xc3, 0x3c,
+ 0x07, 0x6f, 0x90, 0xa2, 0xc8, 0x1a, 0x38, 0x3f, 0x69, 0x6e, 0xef, 0x25, 0xf4, 0xe1, 0x02, 0x36,
+ 0x08, 0xe5, 0x43, 0x5e, 0x74, 0xaa, 0x40, 0x48, 0x6f, 0x67, 0x51, 0xe2, 0x79, 0x41, 0xc7, 0x50,
+ 0x09, 0xb1, 0x73, 0x25, 0x9b, 0x2e, 0x48, 0x41, 0xbb, 0xb2, 0xf2, 0x6f, 0xdf, 0xe0, 0x06, 0x5a,
+ 0x0a, 0x4d, 0x23, 0xa8, 0x69, 0x61, 0x50, 0x5a, 0x04, 0x0e, 0xd4, 0x3b, 0xf6, 0xc0, 0x86, 0x44,
+ 0x0b, 0x19, 0x13, 0xd3, 0x86, 0xe5, 0x58, 0x53, 0xd0, 0xdb, 0x77, 0xb6, 0x50, 0x61, 0x47, 0x4e,
+ 0x0c, 0x76, 0x83, 0x71, 0x4e, 0xff, 0x60, 0x6c, 0xb9, 0xb5, 0x98, 0x93, 0xa4, 0x80, 0x45, 0x78,
+ 0x0d, 0x22, 0xb3, 0x0a, 0xa1, 0x7b, 0x68, 0x65, 0x6d, 0x60, 0x3b, 0x1e, 0x02, 0x21, 0x84, 0x72,
+ 0x0e, 0xde, 0xe3, 0x87, 0x53, 0x34, 0x70, 0x7e, 0xd2, 0xdc, 0x1d, 0x4a, 0x2b, 0x01, 0x04, 0x6c,
+ 0x0f, 0x8a, 0xd3, 0xfc, 0xbc, 0xb0, 0x78, 0x77, 0x06, 0x09, 0xbe, 0xc7, 0x8d, 0xa0, 0xc5, 0x66,
+ 0x10, 0x09, 0x86, 0xbc, 0xe8, 0x97, 0x80, 0x90, 0xde, 0xce, 0xa2, 0x07, 0xf2, 0x82, 0x4d, 0xa0,
+ 0x11, 0x5d, 0xb6, 0xc7, 0x07, 0x13, 0x88, 0x99, 0x0a, 0x1b, 0x01, 0x8a, 0x54, 0x23, 0x8c, 0xaa,
+ 0x12, 0xa1, 0xe6, 0x4a, 0xf5, 0x5c, 0x90, 0x82, 0xb5, 0xa7, 0x27, 0xde, 0x7d, 0x03, 0x0c, 0xb4,
+ 0x13, 0xf5, 0xd6, 0x31, 0x1a, 0xd8, 0x98, 0x8b, 0x61, 0x72, 0x84, 0x53, 0xdb, 0xa2, 0xcd, 0xbe,
+ 0x14, 0x9a, 0x46, 0x93, 0xd2, 0xc2, 0xa0, 0xb4, 0x08, 0x1c, 0x6b, 0x76, 0x2f, 0x43, 0xcf, 0x88,
+ 0x15, 0xce, 0x76, 0xe8, 0x3d, 0x46, 0xa8, 0xbd, 0xdc, 0xc9, 0xc8, 0xfb, 0x89, 0xe2, 0x0e, 0x82,
+ 0x16, 0x32, 0x26, 0x65, 0xcf, 0x09, 0xb0, 0xa6, 0x63, 0x75, 0xee, 0xaf, 0xa0, 0xc2, 0x8e, 0x9c,
+ 0x17, 0x66, 0x16, 0x1e, 0x20, 0x8d, 0xb8, 0xaf, 0xb7, 0xa0, 0x4d, 0x22, 0x06, 0x63, 0x4f, 0x96,
+ 0x18, 0xec, 0xc5, 0xe2, 0x9c, 0x3d, 0xc0, 0xd8, 0xb1, 0xa9, 0xf3, 0xe5, 0x8b, 0xc3, 0x8a, 0xf0,
+ 0x19, 0xb8, 0xf5, 0x99, 0x73, 0xb9, 0xc8, 0xd1, 0x65, 0x7c, 0x50, 0x68, 0x2d, 0x62, 0x4b, 0xfa,
+ 0x1a, 0x44, 0xa5, 0x14, 0x81, 0xf6, 0xd0, 0xca, 0xda, 0xc0, 0x76, 0x3c, 0x04, 0x42, 0xcb, 0xe4,
+ 0x1b, 0x10, 0x95, 0x6f, 0x6e, 0x72, 0xd8, 0xc3, 0x0e, 0x15, 0xd5, 0xb1, 0xa2, 0xe3, 0x0a, 0xee,
+ 0x1c, 0x7f, 0x05, 0xcd, 0xa6, 0x68, 0xe0, 0xfc, 0x67, 0x7b, 0x3a, 0x94, 0x56, 0x02, 0x08, 0xd8,
+ 0x1d, 0x2b, 0x35, 0xb6, 0x49, 0xec, 0xe8, 0xf5, 0xb3, 0xae, 0x99, 0x19, 0xf0, 0xa3, 0xc9, 0xd2,
+ 0x1e, 0xd7, 0x65, 0x3b, 0xbb, 0xa3, 0xf0, 0xee, 0x0c, 0x12, 0xbf, 0x4d, 0xd9, 0x83, 0x49, 0xcc,
+ 0x1f, 0x83, 0x55, 0x40, 0x54, 0x27, 0xf8, 0xe7, 0xd8, 0xc7, 0x1c, 0xc0, 0x7f, 0x22, 0x88, 0xc6,
+ 0x20, 0x12, 0xcf, 0xbb, 0x13, 0xed, 0xc3, 0xe3, 0x7f, 0x5f, 0x87, 0x0e, 0x27, 0xc7, 0x9a, 0x83,
+ 0x21, 0x46, 0xff, 0xc0, 0xfc, 0x69, 0xcb, 0xea, 0xab, 0x8a, 0x24, 0x83, 0x81, 0x66, 0x5b, 0x89,
+ 0x22, 0xba, 0xaf, 0x4d, 0x0e, 0x26, 0xd3, 0xf1, 0x14, 0x36, 0x02, 0xd7, 0xa8, 0x46, 0xdb, 0x97,
+ 0x23, 0xee, 0x9f, 0x36, 0xe1, 0xa2, 0xdb, 0xf8, 0xc0, 0xe3, 0xa1, 0x5a, 0x0e, 0xe7, 0x1a, 0x9d,
+ 0x24, 0x81, 0x0f, 0x94, 0x29, 0xb8, 0xe3, 0xc7, 0xa9, 0x8d, 0x4e, 0x7f, 0xfa, 0x06, 0x18, 0xab,
+ 0x25, 0xd5, 0x3f, 0xef, 0xc6, 0x3c, 0xeb, 0xce, 0x7d, 0x58, 0xed, 0xf2, 0x5c, 0xa7, 0xd9, 0xa1,
+ 0x26, 0x29, 0x6f, 0x62, 0x34, 0x73, 0xf3, 0xd5, 0xc2, 0xe4, 0xcb, 0xa6, 0x75, 0x87, 0x59, 0xbf,
+ 0x27, 0x7d, 0x5f, 0x19, 0xdb, 0xf7, 0xfb, 0xdc, 0x16, 0x31, 0x68, 0x2b, 0xd3, 0x26, 0x98, 0xb5,
+ 0x28, 0xf7, 0x8c, 0xe5, 0x67, 0x47, 0x83, 0xab, 0x10, 0x38, 0xd6, 0xec, 0x5e, 0x86, 0x5d, 0xd3,
+ 0x29, 0xa3, 0xbc, 0x9e, 0x88, 0xc3, 0x8b, 0xa2, 0xc4, 0xed, 0x75, 0x61, 0xf8, 0x27, 0x9c, 0xd9,
+ 0x2a, 0x5f, 0xec, 0x13, 0x7a, 0x8c, 0x93, 0xb9, 0x7b, 0x51, 0x53, 0x35, 0xd1, 0x07, 0x1c, 0xc7,
+ 0x2b, 0x0b, 0xdc, 0x68, 0x95, 0x08, 0x9b, 0xb0, 0xaf, 0x84, 0xf0, 0xb8, 0x77, 0xa6, 0xdd, 0xcd,
+ 0x2c, 0x64, 0x4c, 0xca, 0x5d, 0x12, 0xa3, 0x8f, 0xc6, 0xea, 0x1f, 0x9d, 0x83, 0x47, 0xdf, 0xfb,
+ 0x2d, 0x30, 0x7c, 0xb1, 0xb2, 0x96, 0xab, 0x86, 0x12, 0x3f, 0xbc, 0x10, 0x25, 0xe6, 0x1e, 0xf1,
+ 0x2e, 0xcc, 0x2c, 0x3c, 0x40, 0xd9, 0xb3, 0x9d, 0xad, 0x83, 0x9a, 0x44, 0x0c, 0xc6, 0x9e, 0xef,
+ 0x2f, 0x98, 0x1c, 0x47, 0xaf, 0x5d, 0xbb, 0x94, 0x79, 0x56, 0x39, 0xc9, 0xaa, 0x67, 0x5f, 0xe5,
+ 0x30, 0x1b, 0x49, 0x07, 0xfb, 0x7a, 0x43, 0x73, 0xa1, 0x91, 0x25, 0x09, 0xd5, 0x45, 0xd7, 0x23,
+ 0x31, 0x4f, 0x79, 0x7c, 0x14, 0xfe, 0x4b, 0x7a, 0x75, 0x44, 0x86, 0x84, 0x73, 0xe4, 0x16, 0x29,
+ 0x32, 0xb3, 0x29, 0xf1, 0xe6, 0xb1, 0x53, 0x61, 0xca, 0xf8, 0xa0, 0xd0, 0x5a, 0xc4, 0x96, 0x37,
+ 0x33, 0xe7, 0x19, 0x8a, 0x09, 0x35, 0x5b, 0x68, 0x1e, 0x2d, 0x03, 0x5d, 0xfc, 0x65, 0x57, 0x3d,
+ 0x34, 0x88, 0x89, 0x28, 0xc1, 0x2f, 0x63, 0x57, 0x77, 0x43, 0xec, 0x78, 0x08, 0x84, 0x55, 0x0b,
+ 0x35, 0xdc, 0xb9, 0x53, 0x2e, 0xab, 0x6b, 0x5e, 0xa3, 0x96, 0x4f, 0xf5, 0xae, 0x25, 0x94, 0x01,
+ 0x36, 0x20, 0xe9, 0xde, 0xdc, 0xe4, 0x73, 0x45, 0x1c, 0x2a, 0x69, 0xa1, 0x87, 0x05, 0x14, 0x1f,
+ 0x37, 0x74, 0xd9, 0xa5, 0x33, 0x60, 0x7b, 0x4c, 0xc8, 0xff, 0xca, 0x2c, 0x21, 0xa4, 0xd5, 0x15,
+ 0x38, 0xfe, 0x0a, 0x59, 0x8f, 0xd0, 0x03, 0x3b, 0xce, 0xf6, 0x74, 0xeb, 0xac, 0x04, 0x10, 0x73,
+ 0x39, 0xaa, 0x3a, 0x22, 0x60, 0x54, 0x0b, 0x32, 0x1a, 0x23, 0xd7, 0x66, 0x0a, 0xa5, 0xd1, 0x79,
+ 0x3a, 0x56, 0x6a, 0xaf, 0x92, 0x1b, 0x13, 0x29, 0xa5, 0x9f, 0xf1, 0x32, 0x23, 0x85, 0x51, 0x67,
+ 0x3b, 0x02, 0x5a, 0xd4, 0x7d, 0x9f, 0x1b, 0x20, 0x71, 0x4a, 0x52, 0xbf, 0x85, 0x24, 0x90, 0x6d,
+ 0x3c, 0x6d, 0xca, 0x76, 0xb5, 0x85, 0x23, 0x1f, 0x18, 0x24, 0xbd, 0x9a, 0x71, 0xc5, 0x92, 0x5b,
+ 0x3d, 0x39, 0xfa, 0x0d, 0x5a, 0x01, 0x2b, 0x16, 0xcc, 0xf1, 0x1e, 0x17, 0xd7, 0x64, 0x53, 0x51,
+ 0x3e, 0xc5, 0xaa, 0x80, 0xa8, 0x4e, 0x33, 0x0d, 0x73, 0x4d, 0x38, 0x43, 0xfe, 0x44, 0xd3, 0x4f,
+ 0x3f, 0x91, 0x9a, 0xfb, 0x47, 0xca, 0x3b, 0x04, 0xa7, 0x98, 0x9b, 0xce, 0x58, 0xe5, 0x12, 0x45,
+ 0x40, 0x24, 0x5d, 0xb5, 0x26, 0x19, 0x45, 0x05, 0xfe, 0xbe, 0xcd, 0x1c, 0x4e, 0x4d, 0xf7, 0xc5,
+ 0x41, 0x70, 0x6d, 0xce, 0xc9, 0x9d, 0x4d, 0x0c, 0x2a, 0x6b, 0x6e, 0x91, 0xe8, 0xec, 0x36, 0xcf,
+ 0x42, 0x8c, 0x3d, 0x43, 0x3b, 0xd2, 0x55, 0x17, 0x95, 0xd7, 0x48, 0xc5, 0xc1, 0xcc, 0xb6, 0xd1,
+ 0x43, 0xd8, 0x0d, 0x38, 0xd4, 0x56, 0x5d, 0x1e, 0x41, 0x02, 0xeb, 0x48, 0x67, 0x6d, 0x77, 0xdb,
+ 0x44, 0xb7, 0x9d, 0x9a, 0x1c, 0x4c, 0x65, 0x21, 0x28, 0x6c, 0x04, 0x6d, 0x93, 0x8c, 0x75, 0xed,
+ 0x45, 0xe3, 0xad, 0xe1, 0xf3, 0xc8, 0x6d, 0x28, 0xfc, 0xb9, 0xa7, 0xe0, 0x35, 0x2d, 0xb4, 0xe7,
+ 0x46, 0x1f, 0xfd, 0x6c, 0x01, 0x87, 0x75, 0x33, 0x43, 0x05, 0x81, 0xb4, 0x1c, 0x0d, 0x34, 0xf9,
+ 0x47, 0x4b, 0xcd, 0x17, 0xee, 0x03, 0x7d, 0x3a, 0x97, 0xd0, 0x22, 0x39, 0xba, 0xac, 0xf5, 0xf3,
+ 0x48, 0xc1, 0x1e, 0xeb, 0x52, 0xb3, 0x05, 0x4d, 0x91, 0xd9, 0x9c, 0xfe, 0x37, 0x0c, 0x30, 0x95,
+ 0x49, 0x95, 0x2e, 0x90, 0xbd, 0x37, 0x0d, 0x44, 0x45, 0x0c, 0x3f, 0x73, 0x91, 0xad, 0xf1, 0x9f,
+ 0x4a, 0x69, 0x7e, 0x1d, 0x4f, 0x78, 0x15, 0x5f, 0xfa, 0xb0, 0x19, 0x27, 0xb8, 0x8d, 0x71, 0x81,
+ 0x4b, 0x3d, 0x4e, 0x66, 0xa0, 0xfc, 0x1d, 0x56, 0x2e, 0x65, 0xba, 0xaa, 0x1e, 0x2c, 0xb0, 0x8b,
+ 0x4c, 0x52, 0xde, 0xc4, 0x68, 0xe6, 0x25, 0x69, 0x47, 0x0b, 0x55, 0x8f, 0xea, 0xcd, 0xb2, 0xbd,
+ 0x4d, 0x06, 0xee, 0xbf, 0x87, 0x62, 0x2d, 0x60, 0x93, 0xde, 0xf6, 0x02, 0x4c, 0x6c, 0x73, 0xb7,
+ 0x4e, 0xfa, 0xbe, 0x32, 0x75, 0x2d, 0x35, 0x7b, 0x2c, 0x62, 0xd0, 0x56, 0x65, 0x4c, 0xf3, 0xa9,
+ 0x4f, 0xae, 0x8e, 0x49, 0x9a, 0xa9, 0x3d, 0x72, 0xf8, 0xb7, 0x73, 0xdb, 0xc3, 0xed, 0x32, 0xa3,
+ 0x50, 0x2d, 0xdb, 0x09, 0xce, 0x8e, 0xc5, 0x95, 0x20, 0x70, 0x6f, 0x1b, 0xbc, 0xcf, 0xba, 0x65,
+ 0x51, 0x79, 0xeb, 0x72, 0x21, 0x0a, 0xcd, 0x9c, 0xf4, 0xa5, 0xcc, 0x96, 0x1a, 0x6e, 0x7b, 0x6f,
+ 0x52, 0x85, 0xbb, 0xff, 0xd3, 0x45, 0xd5, 0x87, 0x4b, 0x19, 0xea, 0xc2, 0x33, 0x4e, 0xfb, 0x71,
+ 0x53, 0xd1, 0x8b, 0x84, 0x3c, 0xc1, 0xdd, 0x8e, 0x9f, 0xcc, 0x49, 0x4f, 0x95, 0xef, 0x3a, 0x7b,
+ 0x54, 0xbe, 0x1b, 0x26, 0xf4, 0xdb, 0xe5, 0xb1, 0xf6, 0xa2, 0xa6, 0x6a, 0x61, 0x0e, 0x38, 0x4d,
+ 0x55, 0xea, 0x2b, 0x5d, 0x1b, 0x5f, 0xed, 0xb8, 0x22, 0x77, 0x05, 0xe7, 0xc7, 0xaf, 0xf9, 0x47,
+ 0x56, 0x16, 0x7b, 0xd0, 0xe9, 0x10, 0xf5, 0xa3, 0x9d, 0xcb, 0x23, 0xb3, 0xee, 0x8f, 0x79, 0x59,
+ 0x57, 0x42, 0x4b, 0xab, 0x06, 0x94, 0xfd, 0xaa, 0x49, 0x1e, 0x80, 0x3e, 0x48, 0x2e, 0xb8, 0x53,
+ 0x58, 0xc8, 0x98, 0x57, 0xba, 0x24, 0x85, 0xdd, 0x4f, 0x17, 0x3e, 0xf9, 0xc5, 0x8e, 0x7d, 0x35,
+ 0x59, 0x9c, 0xa8, 0x2c, 0x55, 0xa0, 0x8d, 0xd4, 0x9b, 0xc2, 0x9d, 0x74, 0x63, 0x2f, 0xbc, 0x3f,
+ 0x5a, 0x60, 0xf8, 0xa1, 0xa7, 0xef, 0x95, 0xcf, 0x24, 0x7e, 0xbb, 0x20, 0x4a, 0x0f, 0x3c, 0x21,
+ 0x5b, 0x34, 0xc8, 0xda, 0x48, 0x6b, 0x9d, 0xc6, 0xf0, 0xab, 0x18, 0xad, 0xec, 0xae, 0xfd, 0x2b,
+ 0x5c, 0x5b, 0x58, 0x78, 0x80, 0x71, 0xa5, 0xf9, 0x99, 0xc5, 0xf7, 0x88, 0x18, 0x4f, 0xff, 0x1d,
+ 0x5d, 0x0f, 0x68, 0x03, 0x6f, 0xf5, 0xad, 0xf0, 0x4d, 0x10, 0x54, 0x05, 0xbe, 0xee, 0x3e, 0x17,
+ 0x5e, 0xf3, 0x38, 0x8e, 0x9d, 0xba, 0xb5, 0xeb, 0xf2, 0xac, 0x72, 0x51, 0x97, 0xce, 0xbe, 0x09,
+ 0x5f, 0xa7, 0x08, 0xf5, 0x72, 0x3e, 0xbd, 0xe2, 0x26, 0x79, 0xd1, 0xdc, 0x31, 0x6f, 0x7f, 0x03,
+ 0x60, 0x36, 0x92, 0x0e, 0x35, 0xf4, 0x86, 0xe6, 0x81, 0xe1, 0x4a, 0x12, 0x69, 0x8a, 0x6d, 0x46,
+ 0x61, 0x62, 0xa2, 0x75, 0xda, 0x70, 0x8e, 0xef, 0x55, 0x34, 0xe9, 0x9f, 0xcf, 0x2b, 0xac, 0x4c,
+ 0x62, 0x9e, 0xf2, 0xf8, 0x28, 0x3f, 0x96, 0xf4, 0xea, 0x88, 0xcf, 0xcb, 0xe6, 0x0b, 0x2c, 0x52,
+ 0x63, 0xca, 0xc2, 0x83, 0xc7, 0xbb, 0x9e, 0xfd, 0x3e, 0x5d, 0x6c, 0x46, 0x40, 0xaa, 0xed, 0x58,
+ 0x64, 0xa5, 0x52, 0x21, 0x0f, 0xa1, 0xa6, 0xc2, 0x57, 0x33, 0x83, 0x63, 0xb4, 0x4b, 0xef, 0x6e,
+ 0x65, 0xf1, 0x62, 0x5a, 0xe0, 0x25, 0xae, 0xcb, 0x83, 0xe6, 0x20, 0xee, 0x12, 0xea, 0x2e, 0x64,
+ 0x66, 0x0d, 0x32, 0xd7, 0x12, 0x6a, 0xb6, 0xd0, 0x3c, 0x5a, 0x06, 0xba, 0x3b, 0xca, 0xae, 0x7a,
+ 0x67, 0x59, 0x02, 0xac, 0xfd, 0xee, 0xbe, 0xd9, 0xe8, 0x8f, 0xa5, 0x37, 0x9d, 0x6b, 0x6f, 0x70,
+ 0x68, 0xd3, 0xd1, 0x50, 0x41, 0x5e, 0xc6, 0xae, 0xee, 0x86, 0x1b, 0xf0, 0x10, 0xcb, 0xaa, 0x16,
+ 0x69, 0x87, 0xe1, 0x2b, 0xae, 0xda, 0xce, 0xa7, 0x3a, 0x53, 0xb8, 0x7d, 0xb6, 0x6a, 0x6b, 0x1c,
+ 0x6a, 0x7b, 0xb1, 0xa6, 0x5c, 0x95, 0xd6, 0xbc, 0x85, 0xef, 0x9e, 0x29, 0x9f, 0x4a, 0xeb, 0x02,
+ 0x6b, 0x2f, 0x81, 0xdd, 0xb3, 0x11, 0xde, 0xb5, 0x51, 0x3a, 0x3d, 0xa4, 0x39, 0xeb, 0x2a, 0x08,
+ 0x6c, 0x40, 0x11, 0x7f, 0x7b, 0x0b, 0xe6, 0x8a, 0x38, 0x54, 0xd2, 0x81, 0xcd, 0x0a, 0x28, 0x3e,
+ 0x6d, 0x14, 0x21, 0x04, 0x94, 0x8f, 0xee, 0x83, 0xec, 0x81, 0x71, 0x0c, 0x6b, 0xab, 0xe9, 0x34,
+ 0x6e, 0xe8, 0x71, 0x89, 0x66, 0xc0, 0xf6, 0x98, 0x53, 0x3d, 0x57, 0x58, 0x42, 0x8b, 0x69, 0x2a,
+ 0x6f, 0xbc, 0x41, 0xf2, 0x89, 0x44, 0xfe, 0x91, 0x87, 0xe8, 0xf4, 0xd5, 0xe4, 0x2a, 0xa8, 0x20,
+ 0x70, 0x3f, 0x14, 0xb2, 0xdd, 0x63, 0x06, 0x76, 0x5f, 0x2f, 0xe8, 0x15, 0x9b, 0x08, 0x20, 0xe6,
+ 0x71, 0x6b, 0x24, 0xc9, 0x32, 0xe7, 0x0e, 0x7f, 0x8b, 0xfa, 0x4b, 0x98, 0x3d, 0xa9, 0xe1, 0xec,
+ 0x72, 0x97, 0x74, 0x44, 0xc0, 0xa8, 0x16, 0x64, 0x34, 0x46, 0x6d, 0xcc, 0x14, 0x89, 0x61, 0xf2,
+ 0x73, 0xc3, 0x44, 0x3f, 0x2f, 0x2c, 0x1e, 0x6d, 0xe0, 0x93, 0xce, 0x41, 0xb2, 0x28, 0xa0, 0xf8,
+ 0x74, 0xac, 0xd4, 0x9d, 0xe7, 0x36, 0x26, 0x52, 0x89, 0xfd, 0x21, 0x64, 0x46, 0xc9, 0xa2, 0xce,
+ 0x75, 0xf8, 0xe4, 0xe6, 0x08, 0xb2, 0x2e, 0x5b, 0x5d, 0x28, 0x82, 0xe9, 0xe0, 0x68, 0x63, 0xc4,
+ 0x76, 0x04, 0xb4, 0x6b, 0xfa, 0xfd, 0x36, 0x40, 0xe2, 0x94, 0xa4, 0xbd, 0xc9, 0x48, 0xe3, 0xda,
+ 0x77, 0x50, 0x84, 0x10, 0x15, 0x79, 0x3e, 0x49, 0x36, 0x41, 0x07, 0x30, 0x6f, 0xe9, 0x22, 0xd0,
+ 0x78, 0xda, 0x57, 0xec, 0xa9, 0xc9, 0x46, 0x3e, 0x30, 0x48, 0xb9, 0xf7, 0xe2, 0x49, 0xe7, 0xb6,
+ 0x79, 0x8e, 0x67, 0x97, 0x46, 0x4d, 0x4e, 0x37, 0xe4, 0x9d, 0x1a, 0x7a, 0x44, 0xe8, 0x26, 0xbc,
+ 0x7a, 0x72, 0x37, 0x1a, 0xb4, 0x02, 0x56, 0x2c, 0x5b, 0x21, 0x3c, 0x2e, 0x6d, 0xc8, 0xa6, 0xa2,
+ 0x7b, 0x26, 0x07, 0x61, 0x5b, 0x86, 0x5e, 0x25, 0x8f, 0xf4, 0x9f, 0xa3, 0xcb, 0x69, 0x67, 0xa8,
+ 0x7c, 0x49, 0x97, 0xc3, 0x93, 0x9c, 0x66, 0x1a, 0xe6, 0x9a, 0x70, 0x86, 0x3f, 0x88, 0x65, 0x9e,
+ 0x7d, 0x1d, 0xa7, 0xb8, 0x7c, 0x18, 0x6e, 0x13, 0x32, 0x4f, 0xd3, 0x0b, 0x99, 0x29, 0xa4, 0x94,
+ 0x7e, 0xe1, 0xf7, 0x35, 0x8e, 0x57, 0x76, 0x08, 0x8d, 0xf3, 0xf5, 0x5f, 0xb0, 0x09, 0x24, 0x8a,
+ 0x7f, 0xb5, 0xc7, 0x4e, 0x61, 0xd3, 0x7e, 0x01, 0x59, 0x26, 0x56, 0xd2, 0x16, 0xa8, 0xe5, 0x80,
+ 0x80, 0x48, 0xba, 0xa9, 0x4c, 0x32, 0x8a, 0x0a, 0x3f, 0xbf, 0x59, 0x38, 0x9c, 0x9a, 0x2d, 0x49,
+ 0x81, 0x1c, 0x8a, 0xd2, 0xa3, 0xb6, 0x82, 0x03, 0xeb, 0x6a, 0xfa, 0xb5, 0x3a, 0x3b, 0xec, 0x43,
+ 0x82, 0xe0, 0xda, 0x5f, 0x51, 0xf9, 0x9a, 0x18, 0x54, 0xd6, 0xdc, 0xe1, 0x13, 0x1b, 0x6c, 0x5d,
+ 0x83, 0xb4, 0xea, 0x24, 0xbe, 0x7d, 0x92, 0x11, 0x80, 0x03, 0x7f, 0x6c, 0xb5, 0xba, 0xad, 0x57,
+ 0x84, 0xdb, 0x7a, 0x86, 0x76, 0x67, 0xaa, 0x2e, 0xe9, 0x6d, 0x90, 0x49, 0x41, 0x5b, 0xaf, 0x61,
+ 0x85, 0x8f, 0x4a, 0xfd, 0x99, 0xe3, 0xa2, 0x27, 0x3d, 0xb8, 0x33, 0xc4, 0xe7, 0xfa, 0x6e, 0x6b,
+ 0x86, 0x73, 0x1a, 0x70, 0x6b, 0xac, 0xba, 0x3c, 0x82, 0x04, 0x15, 0x90, 0xce, 0xda, 0xee, 0x75,
+ 0x87, 0x27, 0x2a, 0x0b, 0x84, 0x28, 0xb2, 0x35, 0x56, 0xd1, 0xb6, 0x1d, 0x68, 0x7b, 0x2f, 0x7f,
+ 0x88, 0xad, 0xf9, 0xf7, 0x38, 0x98, 0xca, 0x42, 0x50, 0xd8, 0x08, 0xda, 0xe5, 0xdb, 0xea, 0x19,
+ 0x89, 0xf9, 0xc9, 0x8c, 0xd7, 0x1c, 0xc2, 0x4b, 0x84, 0x0d, 0xab, 0x57, 0x43, 0x7a, 0x2b, 0x13,
+ 0x8a, 0x05, 0x99, 0x01, 0x25, 0x53, 0xda, 0x50, 0x3b, 0xb1, 0x8d, 0x03, 0x6a, 0x5a, 0xab, 0x0d,
+ 0x8b, 0x51, 0xa9, 0x7a, 0xca, 0xd7, 0xd2, 0x59, 0xef, 0x64, 0x2e, 0x8e, 0xcc, 0xfb, 0x6a, 0x07,
+ 0x8c, 0x3e, 0x39, 0xd8, 0x02, 0xcd, 0xea, 0x66, 0x86, 0x0a, 0xc1, 0xab, 0x38, 0x1a, 0x68, 0x31,
+ 0x8d, 0x6a, 0x09, 0xa3, 0xed, 0x49, 0xe2, 0x6f, 0x52, 0xdf, 0x62, 0x26, 0x9e, 0xbb, 0xa9, 0x3b,
+ 0x8e, 0x96, 0x59, 0x2e, 0x1f, 0x06, 0xfa, 0x74, 0xed, 0x63, 0x44, 0x72, 0xb7, 0x9b, 0x29, 0x25,
+ 0x8f, 0xc2, 0x69, 0x55, 0xf0, 0x82, 0xf2, 0x7d, 0x39, 0xb6, 0xe7, 0xff, 0x11, 0x3a, 0xe8, 0x2f,
+ 0x90, 0x41, 0x3c, 0x15, 0xa4, 0xa5, 0x0a, 0x9a, 0xe1, 0x71, 0xfb, 0x3f, 0x6e, 0x18, 0x60, 0xe9,
+ 0x91, 0x15, 0x0c, 0x6e, 0x4b, 0x21, 0x02, 0x93, 0x35, 0xa4, 0x58, 0xb2, 0xc8, 0xb9, 0xa1, 0xe3,
+ 0x92, 0xe9, 0x5c, 0xe3, 0xb9, 0x6e, 0x1a, 0x88, 0x8a, 0x18, 0x7e, 0xe6, 0xe1, 0x99, 0x21, 0xfd,
+ 0x93, 0xbd, 0x6c, 0x98, 0x56, 0xea, 0x12, 0x81, 0x5e, 0xcd, 0xdd, 0x6b, 0x47, 0x38, 0xe0, 0xf7,
+ 0x94, 0xd2, 0xfc, 0x3a, 0x9e, 0xf0, 0x2a, 0xbe, 0x37, 0xa3, 0x32, 0x4e, 0xb3, 0xd9, 0xe2, 0xc1,
+ 0x95, 0x86, 0xcc, 0x41, 0x71, 0x74, 0x22, 0xb7, 0xe3, 0x76, 0x91, 0xc3, 0x15, 0x78, 0x23, 0xcb,
+ 0x96, 0x7a, 0x9c, 0xcc, 0x83, 0x3b, 0x3a, 0xac, 0x5c, 0xca, 0xb7, 0x97, 0x3c, 0x58, 0xa3, 0xd5,
+ 0x97, 0x2e, 0xac, 0xb7, 0x6c, 0xbf, 0x32, 0xa5, 0x88, 0x1f, 0x14, 0x1a, 0x9a, 0xf9, 0x62, 0xdf,
+ 0x98, 0xa4, 0x7f, 0x4b, 0xd0, 0x0f, 0x4a, 0xd2, 0x8e, 0x16, 0xaa, 0xdd, 0x17, 0x59, 0xa7, 0xb9,
+ 0x99, 0xf0, 0x4f, 0x30, 0x3f, 0x8b, 0x42, 0xdb, 0x5a, 0xc3, 0x09, 0x50, 0xb1, 0xf8, 0x66, 0xb3,
+ 0x9a, 0x0c, 0x1f, 0xbd, 0xcd, 0xc4, 0x5a, 0xc0, 0xe5, 0x7f, 0x2f, 0x04, 0x98, 0xd8, 0xe6, 0xad,
+ 0x9b, 0x58, 0x2f, 0xc6, 0x22, 0x40, 0x52, 0xc9, 0x31, 0xaa, 0x8c, 0x89, 0x3e, 0x79, 0x27, 0xa7,
+ 0x9c, 0x37, 0xbf, 0x64, 0xea, 0x5a, 0x6a, 0xf6, 0x58, 0xc4, 0x63, 0xac, 0xca, 0x98, 0x25, 0x91,
+ 0x9d, 0x63, 0x8f, 0x1f, 0x05, 0xde, 0x62, 0xff, 0x8c, 0x11, 0xc0, 0x21, 0x6c, 0x39, 0xe4, 0x9b,
+ 0x9e, 0x9f, 0xdf, 0x92, 0xf7, 0x91, 0x7a, 0xe4, 0x33, 0xad, 0xe6, 0x75, 0x45, 0x19, 0x64, 0x85,
+ 0x9f, 0xcb, 0xef, 0xe9, 0x18, 0x15, 0x72, 0xed, 0xe7, 0x78, 0x45, 0xf8, 0xe3, 0xb8, 0xa5, 0x8f,
+ 0xa0, 0x5a, 0x75, 0x12, 0x5f, 0xdf, 0x49, 0xe9, 0x40, 0xe0, 0xde, 0x36, 0xbb, 0x5d, 0xb7, 0xca,
+ 0xa1, 0x0e, 0x45, 0x69, 0xb0, 0x5b, 0x41, 0xe0, 0x94, 0x35, 0x7d, 0xbb, 0x1d, 0xfc, 0x76, 0xc0,
+ 0xa2, 0xf2, 0x15, 0xe4, 0x42, 0x14, 0x59, 0xfb, 0x2b, 0x89, 0x5b, 0xef, 0x34, 0xdc, 0xf6, 0xde,
+ 0xa3, 0xa6, 0x25, 0x9f, 0xad, 0x90, 0x51, 0xf2, 0xff, 0x5c, 0xf8, 0x62, 0x92, 0x7d, 0x37, 0xd4,
+ 0xa4, 0xc9, 0xb5, 0x3d, 0x65, 0x8a, 0x69, 0xcd, 0x96, 0x32, 0x17, 0x47, 0x66, 0x9c, 0x35, 0xe2,
+ 0xa5, 0x9d, 0x85, 0x46, 0x8a, 0x0e, 0x61, 0xc4, 0x42, 0xe7, 0xb4, 0xca, 0xc0, 0x3d, 0xf4, 0xe8,
+ 0xa6, 0x61, 0xd5, 0xcb, 0x78, 0x41, 0x79, 0xdf, 0xfd, 0x5b, 0x92, 0x9e, 0xe9, 0x1d, 0x74, 0xf6,
+ 0xa7, 0x35, 0xe5, 0xb0, 0x97, 0xc5, 0x71, 0xd6, 0x29, 0x8e, 0x31, 0x13, 0x4f, 0xbc, 0xb5, 0xfc,
+ 0xa8, 0xbf, 0x36, 0x4c, 0x2b, 0x75, 0x09, 0xa1, 0x2f, 0x87, 0x8f, 0xd4, 0xc2, 0x1c, 0x70, 0x9a,
+ 0xa9, 0xeb, 0x06, 0x37, 0xc4, 0xf1, 0x01, 0xa8, 0xfb, 0x52, 0x2c, 0x59, 0x64, 0xbd, 0xb1, 0x90,
+ 0xaa, 0x17, 0x56, 0xba, 0x36, 0xbe, 0x19, 0xb3, 0x44, 0xee, 0x0a, 0x0d, 0x4d, 0x9d, 0x31, 0x8e,
+ 0xab, 0x43, 0x66, 0xc1, 0xd9, 0x3a, 0x11, 0xba, 0x90, 0x3b, 0xa9, 0x80, 0xeb, 0x3c, 0xf0, 0x84,
+ 0xac, 0x2c, 0xf6, 0x63, 0x11, 0x20, 0x29, 0x85, 0xf9, 0x55, 0x46, 0xa5, 0x1f, 0xdd, 0xf2, 0xb2,
+ 0xad, 0x78, 0xc6, 0x18, 0xfe, 0xa4, 0x21, 0x8c, 0x2d, 0x80, 0xe5, 0x28, 0xb9, 0x7c, 0x33, 0xb8,
+ 0xae, 0x84, 0x96, 0x95, 0x0c, 0xeb, 0x39, 0x97, 0x92, 0x3c, 0xc3, 0x7c, 0x90, 0x5c, 0xb3, 0xa6,
+ 0xaf, 0xd0, 0xa6, 0xee, 0xe3, 0x6f, 0x31, 0x9e, 0x46, 0xe9, 0x60, 0xf1, 0x36, 0xfd, 0x72, 0xac,
+ 0xb0, 0x53, 0xf3, 0xae, 0xb7, 0x48, 0xc9, 0x79, 0x9e, 0x2e, 0x7c, 0x31, 0x49, 0xdf, 0xfa, 0x6a,
+ 0xb1, 0x07, 0xc3, 0xd5, 0x58, 0xcc, 0xc1, 0x70, 0x4a, 0xfb, 0xdf, 0xbc, 0xef, 0x7e, 0x3b, 0x60,
+ 0xb2, 0xfb, 0x93, 0x58, 0xaa, 0x83, 0xd9, 0x6b, 0xf5, 0x47, 0xf9, 0xe8, 0xc6, 0x5e, 0xbb, 0x7e,
+ 0xb3, 0xaf, 0xa3, 0x23, 0x45, 0x07, 0xd1, 0x62, 0x21, 0x92, 0x5a, 0x65, 0x60, 0xff, 0x7a, 0x74,
+ 0xb4, 0xc0, 0x33, 0x81, 0x8d, 0x1d, 0xe9, 0x5d, 0x48, 0xfc, 0xb5, 0x40, 0x94, 0x1e, 0x78, 0x42,
+ 0xb5, 0x94, 0x03, 0xfa, 0x62, 0x99, 0xe1, 0x54, 0x9c, 0x29, 0x16, 0xcd, 0x32, 0xbf, 0xb9, 0x48,
+ 0xb6, 0x68, 0x53, 0x77, 0x90, 0xd6, 0xf9, 0x4f, 0x23, 0x95, 0x30, 0x99, 0x1b, 0x9f, 0x39, 0x56,
+ 0xb7, 0x3c, 0x63, 0x0c, 0x7f, 0x52, 0xf1, 0x46, 0xf7, 0x40, 0x93, 0x14, 0xbd, 0x3e, 0xf8, 0x5c,
+ 0xb8, 0xb6, 0xb0, 0xf0, 0xc3, 0xe2, 0x89, 0x31, 0xf1, 0x49, 0x2d, 0xd3, 0x30, 0x9e, 0x3d, 0x3a,
+ 0xb9, 0xe2, 0x80, 0x8b, 0x2c, 0x66, 0x81, 0x38, 0x25, 0x9c, 0x8e, 0x5e, 0x96, 0x3f, 0xfc, 0x30,
+ 0xba, 0x1e, 0xd0, 0x06, 0xde, 0x29, 0x99, 0x23, 0x9a, 0x20, 0xa8, 0x0a, 0xbf, 0x1f, 0x7c, 0x2e,
+ 0xbb, 0x4a, 0xe0, 0x7d, 0x31, 0xad, 0x91, 0x2a, 0x4e, 0xf5, 0x0b, 0x87, 0x19, 0xbe, 0xbd, 0x24,
+ 0xbc, 0x25, 0x70, 0xdf, 0xf9, 0xb7, 0xa9, 0x15, 0x27, 0x9b, 0xe4, 0xa2, 0xed, 0x5f, 0xbf, 0x12,
+ 0xbd, 0x71, 0x40, 0xa4, 0x16, 0x33, 0xa1, 0x1c, 0xf3, 0x4e, 0x47, 0x2f, 0x4b, 0xfe, 0x7e, 0x18,
+ 0xbe, 0x8d, 0x10, 0x29, 0xe4, 0x7c, 0xb9, 0x07, 0x4c, 0xf2, 0x61, 0x7b, 0x62, 0xde, 0xfe, 0x06,
+ 0xbf, 0xd9, 0x20, 0x52, 0x0b, 0xf8, 0xb1, 0x0e, 0x98, 0x27, 0xc2, 0xf6, 0xc4, 0x7f, 0x3f, 0x0c,
+ 0xc0, 0x6c, 0xe7, 0x1c, 0x6a, 0x2b, 0xcf, 0x0f, 0xc1, 0x01, 0x94, 0x24, 0xd2, 0xd7, 0xda, 0x8c,
+ 0xc1, 0x38, 0xd7, 0x67, 0x85, 0xaf, 0xc7, 0x06, 0x15, 0xd4, 0x37, 0xa9, 0x74, 0x76, 0x1b, 0x86,
+ 0xc2, 0xc4, 0x87, 0xea, 0x77, 0xe0, 0xdf, 0x1d, 0xaa, 0x68, 0x11, 0xfd, 0x5d, 0x56, 0x9b, 0x98,
+ 0xc3, 0x90, 0xb7, 0x91, 0x98, 0x64, 0xd7, 0x14, 0x7e, 0xbd, 0xb2, 0x70, 0xfb, 0xf7, 0x5a, 0x92,
+ 0xc4, 0xff, 0x27, 0x33, 0x50, 0x7e, 0xef, 0x2b, 0x17, 0xd3, 0x5d, 0x55, 0x0f, 0x16, 0x58, 0xa4,
+ 0xc5, 0xab, 0x17, 0x48, 0xbf, 0xfa, 0xe7, 0x22, 0xc3, 0x06, 0xfe, 0xd8, 0xa9, 0xb7, 0x99, 0xae,
+ 0xc6, 0x57, 0x47, 0xc5, 0x4d, 0xb5, 0xff, 0x39, 0x7c, 0xba, 0xd8, 0x8c, 0x80, 0x97, 0x19, 0xb0,
+ 0xc7, 0x03, 0x77, 0xbe, 0xa2, 0x31, 0xf7, 0x30, 0xa8, 0x6f, 0x7b, 0x01, 0x26, 0x36, 0xd8, 0xba,
+ 0xc8, 0x89, 0xa4, 0x42, 0x1e, 0x81, 0x8f, 0x47, 0xae, 0x66, 0xc5, 0xc6, 0xab, 0x96, 0x1d, 0xdc,
+ 0xc9, 0xdd, 0x94, 0x39, 0xf1, 0x05, 0x87, 0x4e, 0x7a, 0xb3, 0x66, 0x4b, 0x0d, 0x37, 0xdc, 0xd6,
+ 0xca, 0x21, 0xc4, 0xb4, 0x03, 0x4a, 0x9f, 0x55, 0xc5, 0x0f, 0x40, 0x1f, 0x24, 0x17, 0x5c, 0xc8,
+ 0xcb, 0x75, 0xf4, 0xcf, 0xec, 0xce, 0x97, 0x5c, 0x11, 0xda, 0xe3, 0x92, 0x82, 0xb6, 0x9d, 0xc2,
+ 0xcc, 0x1a, 0x64, 0x6d, 0x24, 0xd4, 0xaf, 0x63, 0x78, 0xb4, 0x0c, 0xb7, 0x76, 0x57, 0x9f, 0xf4,
+ 0xcd, 0x4e, 0x54, 0x16, 0xcb, 0x50, 0xa7, 0x6a, 0xac, 0x61, 0xaf, 0x3a, 0xd0, 0xf6, 0x5e, 0xfe,
+ 0xce, 0xb2, 0x04, 0x9b, 0x39, 0x1f, 0xbf, 0x71, 0x13, 0xdd, 0x89, 0x6e, 0xf9, 0xd6, 0xde, 0xe0,
+ 0xcf, 0xe6, 0x34, 0xe0, 0xd6, 0x9b, 0xb7, 0x78, 0xc7, 0x08, 0x2a, 0xe3, 0x5f, 0x77, 0x1f, 0xea,
+ 0xd0, 0x65, 0x61, 0xa0, 0x82, 0xbc, 0x4f, 0x9f, 0x1f, 0xcf, 0x36, 0x23, 0x20, 0x55, 0x97, 0x2c,
+ 0xd1, 0x31, 0x51, 0xdb, 0x6d, 0x38, 0x47, 0x96, 0xcb, 0x1a, 0x95, 0xae, 0x86, 0xf4, 0x56, 0x26,
+ 0xd2, 0xcd, 0x01, 0x56, 0x9f, 0x77, 0x5f, 0x8d, 0x74, 0xa6, 0xb3, 0xfa, 0xaf, 0xd4, 0xd6, 0x38,
+ 0xd3, 0x99, 0x31, 0x2d, 0x70, 0xf3, 0x57, 0x84, 0xa0, 0x73, 0x10, 0x77, 0x09, 0x75, 0x17, 0x32,
+ 0xd4, 0xf6, 0xa1, 0x8f, 0xb8, 0xe9, 0x6f, 0xbb, 0xc9, 0x1d, 0xff, 0x52, 0xfd, 0x94, 0x15, 0x04,
+ 0xd5, 0xa2, 0x91, 0xf4, 0x57, 0x6d, 0x67, 0xb2, 0x1d, 0xc8, 0x5c, 0xdf, 0x5b, 0x35, 0xd4, 0x0e,
+ 0xd6, 0x5e, 0xc1, 0x79, 0xa5, 0x22, 0x7f, 0xa9, 0xa2, 0x74, 0x7a, 0x8b, 0x72, 0x15, 0x54, 0x10,
+ 0xd7, 0x0a, 0xf1, 0x02, 0x4a, 0xa6, 0x77, 0xa0, 0x76, 0xa1, 0xd9, 0x06, 0xd4, 0xb4, 0x95, 0x1a,
+ 0xd8, 0x80, 0x22, 0xfe, 0xf6, 0x16, 0x0f, 0xd7, 0x70, 0xa8, 0x67, 0xc1, 0x59, 0x14, 0x50, 0x7c,
+ 0xd9, 0xd4, 0x12, 0x85, 0x19, 0x92, 0x07, 0xde, 0xa4, 0x7d, 0xc4, 0x4c, 0xff, 0xb5, 0x91, 0x76,
+ 0xda, 0x28, 0x42, 0x08, 0xeb, 0xdd, 0x1f, 0xc5, 0x1b, 0xc1, 0xe2, 0x18, 0xd6, 0x95, 0x11, 0x68,
+ 0xdb, 0x7c, 0x72, 0x73, 0x04, 0x59, 0x17, 0xcc, 0xcf, 0x14, 0x41, 0x95, 0x70, 0x34, 0xd0, 0x62,
+ 0xdc, 0x13, 0xe2, 0xd1, 0xcc, 0x43, 0x2f, 0xf3, 0xa6, 0x7a, 0xae, 0xb0, 0x84, 0xd5, 0xd2, 0x54,
+ 0xdd, 0x47, 0xd2, 0xaa, 0x23, 0xc7, 0x27, 0xfa, 0x72, 0xaf, 0x0d, 0x3d, 0x22, 0x74, 0x13, 0x5e,
+ 0xde, 0xbb, 0x82, 0x27, 0xd1, 0x88, 0x3f, 0xe1, 0xcd, 0x13, 0x2b, 0x69, 0x0b, 0x54, 0x93, 0x40,
+ 0xdf, 0xef, 0xb2, 0x5c, 0x3e, 0x0c, 0x37, 0xe8, 0x19, 0xc6, 0x88, 0xe4, 0xad, 0xf5, 0x52, 0x4a,
+ 0xe0, 0x7e, 0x28, 0xa7, 0x79, 0xc6, 0x0c, 0xec, 0xbe, 0x5e, 0x13, 0x2a, 0xf5, 0x10, 0x40, 0x0f,
+ 0xe1, 0x2a, 0x18, 0xdc, 0x96, 0x42, 0x04, 0xe5, 0x6a, 0x8b, 0xb0, 0xa7, 0x53, 0xb1, 0x81, 0x05,
+ 0xe2, 0xd6, 0x48, 0x51, 0x64, 0x0d, 0x1c, 0xfe, 0xd5, 0x37, 0x96, 0xf3, 0x7a, 0x91, 0x01, 0x1b,
+ 0xe3, 0x82, 0x78, 0x2a, 0x8b, 0x89, 0x14, 0xf7, 0x01, 0xe2, 0x35, 0x7e, 0xdc, 0x30, 0xc0, 0x11,
+ 0xe4, 0xed, 0xe8, 0x88, 0x43, 0x93, 0x2c, 0xc8, 0x68, 0x8c, 0xda, 0x5b, 0x28, 0xd1, 0xc2, 0x27,
+ 0xe5, 0xb9, 0xd8, 0xf3, 0xac, 0x17, 0x24, 0xc1, 0xbc, 0x59, 0x79, 0xd6, 0x8e, 0x70, 0x03, 0x2d,
+ 0xe6, 0x45, 0x88, 0x7e, 0x5e, 0x58, 0x3c, 0xda, 0x03, 0xe5, 0x5f, 0x82, 0xa7, 0x50, 0x83, 0x33,
+ 0xe7, 0x11, 0xb8, 0x05, 0xb1, 0xdc, 0x34, 0xd3, 0xd7, 0x30, 0xfc, 0x0f, 0x01, 0xf1, 0x42, 0x39,
+ 0xe8, 0x9b, 0x6b, 0xf9, 0x0d, 0x6c, 0x4c, 0xa4, 0xd1, 0x39, 0x42, 0xc8, 0x8c, 0x51, 0x87, 0x5f,
+ 0xe9, 0xcf, 0x5b, 0x82, 0xe2, 0xe8, 0x44, 0xad, 0x05, 0xec, 0xe1, 0x45, 0x2a, 0xf0, 0x46, 0x55,
+ 0xea, 0x33, 0x0b, 0x0f, 0x10, 0xa7, 0x5c, 0xb6, 0xba, 0x50, 0xc7, 0x11, 0x03, 0xd0, 0xc6, 0x4b,
+ 0xeb, 0x67, 0x3b, 0x74, 0xff, 0x23, 0x54, 0xbf, 0x6e, 0x85, 0x64, 0x9c, 0xa5, 0x71, 0x07, 0x41,
+ 0xec, 0x08, 0xab, 0xd6, 0x37, 0x39, 0x6c, 0x80, 0x07, 0xeb, 0x8b, 0xb9, 0x51, 0x90, 0x05, 0x77,
+ 0xed, 0x5c, 0x9b, 0xad, 0xd8, 0xbd, 0x64, 0x89, 0xd3, 0x3e, 0x28, 0x34, 0xf7, 0x31, 0xc4, 0x7d,
+ 0xee, 0xa0, 0xcb, 0x20, 0x2a, 0xf2, 0x7c, 0x92, 0x6c, 0x82, 0x0e, 0x60, 0xde, 0x11, 0x44, 0x63,
+ 0xef, 0xf4, 0xfb, 0x5b, 0xc5, 0x76, 0x74, 0x9b, 0xb8, 0x57, 0xad, 0xed, 0x78, 0xb0, 0x85, 0x69,
+ 0xf0, 0x77, 0xae, 0x1b, 0x91, 0x51, 0x8c, 0x7c, 0x60, 0x90, 0xb1, 0x2d, 0x07, 0x92, 0x0d, 0xaf,
+ 0xf1, 0x23, 0x9e, 0x60, 0x7e, 0xd5, 0x84, 0x75, 0xb4, 0x45, 0x12, 0xa0, 0xa1, 0x33, 0xcc, 0xa5,
+ 0xf2, 0xdf, 0xce, 0xed, 0x8c, 0x9a, 0x9c, 0x6e, 0x0b, 0xf9, 0x34, 0xf4, 0x88, 0x13, 0x4c, 0xbb,
+ 0xf3, 0x8b, 0xfe, 0x96, 0x63, 0x1e, 0x94, 0x67, 0xdf, 0x2c, 0x97, 0x79, 0x2e, 0xb2, 0x8d, 0xb1,
+ 0xf4, 0xe4, 0x6e, 0x34, 0xab, 0x04, 0xac, 0x58, 0xb6, 0x42, 0x78, 0x5c, 0xda, 0x53, 0x8f, 0x87,
+ 0xf5, 0xb0, 0x5e, 0x4f, 0x44, 0x80, 0xa4, 0x51, 0x62, 0x97, 0xdb, 0xd1, 0x7c, 0xf2, 0x4e, 0x8d,
+ 0xf6, 0x4c, 0x0e, 0xc2, 0xb6, 0xcf, 0xbc, 0x4a, 0xdd, 0x2b, 0xfd, 0x85, 0x55, 0xd2, 0xce, 0x93,
+ 0xf7, 0x18, 0x3e, 0xb9, 0x59, 0x4b, 0xb4, 0x43, 0x09, 0xfe, 0x5e, 0x08, 0xf3, 0x73, 0x0f, 0x99,
+ 0xf8, 0x92, 0xed, 0x45, 0xe5, 0xfb, 0xcc, 0x34, 0x0f, 0xf7, 0xe0, 0xcf, 0x7e, 0xd3, 0xca, 0xff,
+ 0xf9, 0xc6, 0xdd, 0x3e, 0x0a, 0x7f, 0xc4, 0x3d, 0xdb, 0x22, 0x43, 0x42, 0xd8, 0x72, 0x0b, 0xf5,
+ 0xfa, 0x3a, 0x8d, 0xb3, 0xf8, 0x30, 0xdc, 0x26, 0x64, 0x9e, 0x65, 0x16, 0xf1, 0x52, 0x8b, 0xeb,
+ 0xfb, 0x6e, 0xbd, 0xc8, 0x17, 0xb4, 0xd4, 0x2f, 0xb0, 0x4b, 0xc6, 0x9b, 0x57, 0xf3, 0x4a, 0xe1,
+ 0xfc, 0x01, 0x2d, 0x6a, 0xdf, 0xae, 0xec, 0x10, 0xd9, 0x25, 0x29, 0xbe, 0xa3, 0x12, 0x48, 0xd7,
+ 0xfd, 0x55, 0x1d, 0x11, 0x30, 0x2a, 0xe4, 0x19, 0x0d, 0xf0, 0x8a, 0x33, 0x05, 0xb3, 0x89, 0xdd,
+ 0xfe, 0xa9, 0x4d, 0x9c, 0xc2, 0x65, 0xfc, 0x02, 0xb2, 0x4c, 0xac, 0x67, 0x2c, 0x93, 0x09, 0xc3,
+ 0xff, 0xfd, 0x7d, 0xe7, 0x2d, 0xe1, 0xf4, 0x0b, 0x66, 0x99, 0x0f, 0xea, 0x8a, 0x32, 0xc8, 0xc9,
+ },
+ { /* 8 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xfb, 0xde, 0xe0, 0xaf, 0x10, 0xc9, 0xf6, 0x49, 0xbe, 0xe7, 0x6e, 0xa4, 0x6a, 0x2b, 0x9c, 0xf3,
+ 0x35, 0x7f, 0x03, 0x9d, 0x20, 0x51, 0x2f, 0x92, 0xbf, 0x0d, 0xdc, 0x8b, 0xd4, 0x56, 0xfb, 0x25,
+ 0xce, 0xa1, 0xe3, 0x32, 0x30, 0x98, 0xd9, 0xdb, 0x01, 0xea, 0xb2, 0x2f, 0xbe, 0x7d, 0x67, 0xd6,
+ 0x6a, 0xfe, 0x06, 0xf9, 0x40, 0xa2, 0x5e, 0xe7, 0xbd, 0x1a, 0x7b, 0xd5, 0x6b, 0xac, 0x35, 0x4a,
+ 0x91, 0x20, 0xe6, 0x56, 0x50, 0x6b, 0xa8, 0xae, 0x03, 0xfd, 0x15, 0x71, 0x01, 0x87, 0xa9, 0xb9,
+ 0x5f, 0x81, 0x05, 0x64, 0x60, 0xf3, 0x71, 0x75, 0x02, 0x17, 0xa7, 0x5e, 0xbf, 0xfa, 0xce, 0x6f,
+ 0xa4, 0x5f, 0xe5, 0xcb, 0x70, 0x3a, 0x87, 0x3c, 0xbc, 0xf0, 0xc9, 0xfa, 0xd5, 0xd1, 0x52, 0x9c,
+ 0xd4, 0x3f, 0x0c, 0x31, 0x80, 0x87, 0xbc, 0x0d, 0xb9, 0x34, 0xf6, 0x69, 0xd6, 0x9b, 0x6a, 0x94,
+ 0x2f, 0xe1, 0xec, 0x9e, 0x90, 0x4e, 0x4a, 0x44, 0x07, 0xd3, 0x98, 0xcd, 0xbc, 0xb0, 0xf6, 0x67,
+ 0xe1, 0x40, 0x0f, 0xac, 0xa0, 0xd6, 0x93, 0x9f, 0x06, 0x39, 0x2a, 0xe2, 0x02, 0xcd, 0x91, 0xb1,
+ 0x1a, 0x9e, 0xef, 0x03, 0xb0, 0x1f, 0x65, 0xd6, 0xb8, 0xde, 0x44, 0x46, 0x68, 0xe6, 0x0d, 0x42,
+ 0xbe, 0xc1, 0x0a, 0xc8, 0xc0, 0x25, 0xe2, 0xea, 0x04, 0x2e, 0x8d, 0xbc, 0xbd, 0x37, 0x5f, 0xde,
+ 0x45, 0x1f, 0xea, 0x67, 0xd0, 0xec, 0x14, 0xa3, 0xba, 0xc9, 0xe3, 0x18, 0xd7, 0x1c, 0xc3, 0x2d,
+ 0x8b, 0xbe, 0x09, 0x55, 0xe0, 0x74, 0xcd, 0x78, 0xbb, 0x23, 0x51, 0x37, 0x69, 0x61, 0xa4, 0xfb,
+ 0x70, 0x60, 0xe9, 0xfa, 0xf0, 0xbd, 0x3b, 0x31, 0x05, 0xc4, 0x3f, 0x93, 0x03, 0x4a, 0x38, 0x08,
+ 0x6b, 0x7e, 0x18, 0x62, 0xc3, 0xcd, 0xbb, 0x1a, 0xb1, 0x68, 0x2f, 0xd2, 0x6f, 0xf5, 0xd4, 0xeb,
+ 0x90, 0xa0, 0xf8, 0xcd, 0xd3, 0x04, 0x4d, 0x53, 0x0f, 0x8f, 0x41, 0x76, 0x05, 0xde, 0x48, 0x18,
+ 0x5e, 0x01, 0x1b, 0xff, 0xe3, 0x9c, 0x94, 0x88, 0x0e, 0x65, 0xf3, 0x59, 0xbb, 0xa3, 0x2f, 0xce,
+ 0xa5, 0xdf, 0xfb, 0x50, 0xf3, 0x55, 0x62, 0xc1, 0xb0, 0x82, 0x9d, 0xfd, 0xd1, 0x88, 0xb3, 0x3d,
+ 0x01, 0x80, 0x1e, 0x9b, 0x83, 0x6f, 0xe5, 0xfd, 0x0c, 0x72, 0x54, 0x07, 0x04, 0x59, 0xe1, 0xa1,
+ 0xfa, 0x5e, 0xfe, 0x34, 0x93, 0xa6, 0x13, 0xb4, 0xb2, 0x95, 0x3a, 0xa3, 0x6e, 0x72, 0x7d, 0x52,
+ 0x34, 0xff, 0x1d, 0x06, 0xa3, 0x3e, 0xca, 0x6f, 0xb3, 0x7f, 0x88, 0x8c, 0xd0, 0x0f, 0x1a, 0x84,
+ 0xcf, 0x21, 0xfd, 0xa9, 0xb3, 0xf7, 0x3c, 0x26, 0x0d, 0x98, 0xe6, 0x28, 0xba, 0x24, 0x86, 0x77,
+ 0xbf, 0x41, 0x14, 0x53, 0x43, 0x4a, 0x07, 0x17, 0x08, 0x5c, 0xd9, 0xbb, 0xb9, 0x6e, 0xbe, 0x7f,
+ 0x44, 0x9f, 0xf4, 0xfc, 0x53, 0x83, 0xf1, 0x5e, 0xb6, 0xbb, 0xb7, 0x1f, 0xd3, 0x45, 0x22, 0x8c,
+ 0x8a, 0x3e, 0x17, 0xce, 0x63, 0x1b, 0x28, 0x85, 0xb7, 0x51, 0x05, 0x30, 0x6d, 0x38, 0x45, 0x5a,
+ 0x71, 0xe0, 0xf7, 0x61, 0x73, 0xd2, 0xde, 0xcc, 0x09, 0xb6, 0x6b, 0x94, 0x07, 0x13, 0xd9, 0xa9,
+ 0xd5, 0xbf, 0x12, 0xaa, 0x03, 0xe8, 0x59, 0xf0, 0xb5, 0x46, 0xa2, 0x6e, 0xd2, 0xc2, 0x8b, 0x35,
+ 0x2e, 0x61, 0xf2, 0x05, 0x13, 0x21, 0xaf, 0xb9, 0x0b, 0xa1, 0xcc, 0xca, 0xb8, 0xe9, 0x17, 0xc6,
+ 0xe0, 0xc0, 0x11, 0x37, 0x23, 0xb9, 0x76, 0x62, 0x0a, 0x4b, 0x7e, 0xe5, 0x06, 0x94, 0x70, 0x10,
+ 0x1b, 0x1e, 0xf1, 0x98, 0x33, 0x70, 0x80, 0x2b, 0xb4, 0xac, 0x10, 0x41, 0x6c, 0xbf, 0xec, 0xe3,
+ 0xd6, 0xfc, 0x30, 0xc4, 0x45, 0x59, 0xb5, 0x34, 0xa1, 0xd0, 0x5e, 0x67, 0xde, 0x29, 0x6b, 0x15,
+ 0x2d, 0x22, 0xd0, 0x6b, 0x55, 0x90, 0x43, 0x7d, 0x1f, 0x37, 0x30, 0xc3, 0xb4, 0x02, 0xf7, 0xe6,
+ 0xe3, 0x83, 0x33, 0x59, 0x65, 0x08, 0x9a, 0xa6, 0x1e, 0xdd, 0x82, 0xec, 0x0a, 0x7f, 0x90, 0x30,
+ 0x18, 0x5d, 0xd3, 0xf6, 0x75, 0xc1, 0x6c, 0xef, 0xa0, 0x3a, 0xec, 0x48, 0x60, 0x54, 0x0c, 0xc3,
+ 0xbc, 0x02, 0x36, 0x3d, 0x05, 0xfb, 0xeb, 0xd3, 0x1c, 0xca, 0x25, 0xb2, 0xb5, 0x85, 0x5e, 0x5f,
+ 0x47, 0xdc, 0xd6, 0x92, 0x15, 0x32, 0x1d, 0x9a, 0xa2, 0x2d, 0x4b, 0x16, 0xdf, 0xae, 0xc2, 0xac,
+ 0x89, 0x7d, 0x35, 0xa0, 0x25, 0xaa, 0xc4, 0x41, 0xa3, 0xc7, 0xf9, 0x39, 0x61, 0xd3, 0xa5, 0x7a,
+ 0x72, 0xa3, 0xd5, 0x0f, 0x35, 0x63, 0x32, 0x08, 0x1d, 0x20, 0x97, 0x9d, 0x0b, 0xf8, 0x39, 0x89,
+ 0x02, 0xc3, 0x3c, 0xf5, 0xc5, 0xde, 0x09, 0x39, 0x18, 0xe4, 0xa8, 0x0e, 0x08, 0xb2, 0x01, 0x81,
+ 0xf9, 0x1d, 0xdc, 0x5a, 0xd5, 0x17, 0xff, 0x70, 0xa6, 0x03, 0xc6, 0xaa, 0x62, 0x99, 0x9d, 0x72,
+ 0x37, 0xbc, 0x3f, 0x68, 0xe5, 0x8f, 0x26, 0xab, 0xa7, 0xe9, 0x74, 0x85, 0xdc, 0xe4, 0xfa, 0xa4,
+ 0xcc, 0x62, 0xdf, 0xc7, 0xf5, 0x46, 0xd0, 0xe2, 0x19, 0x0e, 0x1a, 0x21, 0xb6, 0xcf, 0x66, 0x57,
+ 0x68, 0x3d, 0x3a, 0x0c, 0x85, 0x7c, 0x57, 0xde, 0xa5, 0xfe, 0xd3, 0xdb, 0x63, 0x1e, 0x34, 0xcb,
+ 0x93, 0xe3, 0xda, 0xa3, 0x95, 0xb5, 0xa1, 0x97, 0x1b, 0x19, 0xbd, 0x7f, 0x09, 0x35, 0xa8, 0x38,
+ 0x5d, 0x42, 0x39, 0x91, 0xa5, 0x2d, 0x78, 0x4c, 0x1a, 0xf3, 0x0f, 0x50, 0xb7, 0x48, 0xcf, 0xee,
+ 0xa6, 0x9c, 0xd9, 0x3e, 0xb5, 0xe4, 0x8e, 0x05, 0xa4, 0x14, 0x61, 0xf4, 0xdd, 0x63, 0x53, 0x1d,
+ 0xbd, 0x82, 0x28, 0xa6, 0x86, 0x94, 0x0e, 0x2e, 0x10, 0xb8, 0x71, 0xb5, 0xb1, 0xdc, 0xbf, 0xfe,
+ 0x46, 0x5c, 0xc8, 0x09, 0x96, 0x5d, 0xf8, 0x67, 0xae, 0x5f, 0x1f, 0x11, 0xdb, 0xf7, 0x23, 0x0d,
+ 0x88, 0xfd, 0x2b, 0x3b, 0xa6, 0xc5, 0x21, 0xbc, 0xaf, 0xb5, 0xad, 0x3e, 0x65, 0x8a, 0x44, 0xdb,
+ 0x73, 0x23, 0xcb, 0x94, 0xb6, 0x0c, 0xd7, 0xf5, 0x11, 0x52, 0xc3, 0x9a, 0x0f, 0xa1, 0xd8, 0x28,
+ 0xd7, 0x7c, 0x2e, 0x5f, 0xc6, 0x36, 0x50, 0xc9, 0xad, 0xa2, 0x0a, 0x60, 0xda, 0x70, 0x8a, 0xb4,
+ 0x2c, 0xa2, 0xce, 0xf0, 0xd6, 0xff, 0xa6, 0x80, 0x13, 0x45, 0x64, 0xc4, 0xb0, 0x5b, 0x16, 0x47,
+ 0xe2, 0x03, 0x2d, 0xc2, 0xe6, 0x67, 0x7f, 0x5b, 0x12, 0xaf, 0xd6, 0xeb, 0x0e, 0x26, 0x71, 0x91,
+ 0x19, 0xdd, 0xcd, 0x6d, 0xf6, 0xae, 0x89, 0x12, 0xac, 0x48, 0xb8, 0x4f, 0x64, 0x0d, 0xed, 0x62,
+ 0x69, 0xbd, 0x24, 0x97, 0x06, 0x13, 0xb2, 0x23, 0xa9, 0x8c, 0x87, 0xdc, 0x67, 0x47, 0xd5, 0x6a,
+ 0x92, 0x63, 0xc4, 0x38, 0x16, 0xda, 0x44, 0x6a, 0x17, 0x6b, 0xe9, 0x78, 0x0d, 0x6c, 0x49, 0x99,
+ 0x5c, 0xc2, 0x27, 0x0a, 0x26, 0x42, 0x9d, 0xb1, 0x16, 0x81, 0x5b, 0x57, 0xb3, 0x11, 0x2e, 0x4f,
+ 0xa7, 0x1c, 0xc7, 0xa5, 0x36, 0x8b, 0x6b, 0xf8, 0xa8, 0x66, 0x35, 0xf3, 0xd9, 0x3a, 0xb2, 0xbc,
+ 0x03, 0x43, 0x22, 0x6e, 0x46, 0xb1, 0xec, 0xc4, 0x14, 0x96, 0xfc, 0x09, 0x0c, 0xeb, 0xe0, 0x20,
+ 0xf8, 0x9d, 0xc2, 0xc1, 0x56, 0x78, 0x1a, 0x8d, 0xaa, 0x71, 0x92, 0xad, 0x66, 0xc0, 0x7c, 0xd3,
+ 0x36, 0x3c, 0x21, 0xf3, 0x66, 0xe0, 0xc3, 0x56, 0xab, 0x9b, 0x20, 0x82, 0xd8, 0xbd, 0x1b, 0x05,
+ 0xcd, 0xe2, 0xc1, 0x5c, 0x76, 0x29, 0x35, 0x1f, 0x15, 0x7c, 0x4e, 0x26, 0xb2, 0x96, 0x87, 0xf6,
+ 0x6f, 0x3b, 0x60, 0x4b, 0x8a, 0xb2, 0xa9, 0x68, 0x81, 0x63, 0xbc, 0xce, 0x7f, 0x52, 0xd6, 0x2a,
+ 0x94, 0xe5, 0x80, 0xe4, 0x9a, 0x7b, 0x5f, 0x21, 0x3f, 0x84, 0xd2, 0x6a, 0x15, 0x79, 0x4a, 0xd9,
+ 0x5a, 0x44, 0x63, 0xd6, 0xaa, 0xe3, 0x86, 0xfa, 0x3e, 0x6e, 0x60, 0x45, 0xab, 0x04, 0x2d, 0x0f,
+ 0xa1, 0x9a, 0x83, 0x79, 0xba, 0x2a, 0x70, 0xb3, 0x80, 0x89, 0x0e, 0xe1, 0xc1, 0x2f, 0xb1, 0xfc,
+ 0x05, 0xc5, 0x66, 0xb2, 0xca, 0x10, 0xf7, 0x8f, 0x3c, 0x79, 0xc7, 0x1b, 0x14, 0xfe, 0xe3, 0x60,
+ 0xfe, 0x1b, 0x86, 0x1d, 0xda, 0xd9, 0x01, 0xc6, 0x82, 0x9e, 0xa9, 0xbf, 0x7e, 0xd5, 0x7f, 0x93,
+ 0x30, 0xba, 0x65, 0x2f, 0xea, 0x41, 0xd8, 0x1d, 0x83, 0x74, 0x1b, 0x90, 0xc0, 0xa8, 0x18, 0x45,
+ 0xcb, 0x64, 0x85, 0x80, 0xfa, 0x88, 0x2e, 0x54, 0x3d, 0x93, 0x75, 0x34, 0xaa, 0x83, 0x84, 0xb6,
+ 0xbb, 0x04, 0x6c, 0x7a, 0x0a, 0x35, 0x15, 0x65, 0x38, 0x57, 0x4a, 0xa7, 0xa9, 0xc9, 0xbc, 0xbe,
+ 0x40, 0xda, 0x8c, 0xd5, 0x1a, 0xfc, 0xe3, 0x2c, 0x86, 0xb0, 0x24, 0x03, 0xc3, 0xe2, 0x20, 0x4d,
+ 0x8e, 0x7b, 0x6f, 0xe7, 0x2a, 0x64, 0x3a, 0xf7, 0x87, 0x5a, 0x96, 0x2c, 0x7d, 0x9f, 0x47, 0x9b,
+ 0x75, 0xa5, 0x8f, 0x48, 0x3a, 0xad, 0xcc, 0xbe, 0x39, 0xbd, 0xf8, 0x88, 0x17, 0xb4, 0xdb, 0x68,
+ 0xd1, 0xfa, 0x6a, 0x83, 0x4a, 0x97, 0x4b, 0x82, 0x85, 0x4d, 0x31, 0x72, 0xc2, 0x65, 0x89, 0xf4,
+ 0x2a, 0x24, 0x8a, 0x2c, 0x5a, 0x5e, 0xbd, 0xcb, 0x3b, 0xaa, 0x5f, 0xd6, 0xa8, 0x4e, 0x15, 0x07,
+ 0xe4, 0x85, 0x69, 0x1e, 0x6a, 0xc6, 0x64, 0x10, 0x3a, 0x40, 0xed, 0xf9, 0x16, 0x33, 0x72, 0xd1,
+ 0x1f, 0x5b, 0x89, 0xb1, 0x7a, 0x0f, 0x92, 0x59, 0x84, 0xa7, 0x83, 0x5d, 0x7c, 0x18, 0xee, 0x22,
+ 0x04, 0x45, 0x78, 0x29, 0x49, 0x7f, 0x12, 0x72, 0x30, 0x0b, 0x93, 0x1c, 0x10, 0xa7, 0x02, 0xc1,
+ 0xff, 0x9b, 0x98, 0x86, 0x59, 0xb6, 0xe4, 0x3b, 0x8e, 0xec, 0xfd, 0xb8, 0x7a, 0x8c, 0x9e, 0x32,
+ 0x31, 0x3a, 0x7b, 0xb4, 0x69, 0x2e, 0x3d, 0xe0, 0x8f, 0x06, 0x4f, 0x97, 0xc4, 0xf1, 0xf9, 0xe4,
+ 0xca, 0xe4, 0x9b, 0x1b, 0x79, 0xe7, 0xcb, 0xa9, 0x31, 0xe1, 0x21, 0x33, 0xae, 0xda, 0x65, 0x17,
+ 0x6e, 0xbb, 0x7e, 0xd0, 0x09, 0xdd, 0x4c, 0x95, 0x8d, 0x11, 0xe8, 0xc9, 0x7b, 0x0b, 0x37, 0x8b,
+ 0x95, 0x65, 0x9e, 0x7f, 0x19, 0x14, 0xba, 0xdc, 0x33, 0xf6, 0x86, 0x6d, 0x11, 0x20, 0xab, 0x78,
+ 0x5b, 0xc4, 0x7d, 0x4d, 0x29, 0x8c, 0x63, 0x07, 0x32, 0x1c, 0x34, 0x42, 0xaf, 0x5d, 0xcc, 0xae,
+ 0xa0, 0x1a, 0x9d, 0xe2, 0x39, 0x45, 0x95, 0x4e, 0x8c, 0xfb, 0x5a, 0xe6, 0xc5, 0x76, 0x50, 0x5d,
+ 0xd0, 0x7a, 0x74, 0x18, 0xc9, 0xf8, 0xae, 0x7f, 0x89, 0x3f, 0x65, 0x75, 0xc6, 0x3c, 0x68, 0x55,
+ 0x2b, 0xa4, 0x94, 0xb7, 0xd9, 0x31, 0x58, 0x36, 0x37, 0xd8, 0x0b, 0xd1, 0xac, 0x17, 0xf4, 0xa6,
+ 0xe5, 0x05, 0x77, 0x85, 0xe9, 0xa9, 0x81, 0xed, 0x36, 0x32, 0xb9, 0xfe, 0x12, 0x6a, 0x93, 0x70,
+ 0x1e, 0xdb, 0x97, 0x2a, 0xf9, 0x60, 0x77, 0xa4, 0x88, 0xd5, 0xd7, 0x5a, 0x78, 0x41, 0x0f, 0x83,
+ 0xba, 0x84, 0x72, 0xe1, 0x89, 0x5a, 0xf0, 0x98, 0x34, 0x25, 0x1e, 0xa0, 0xad, 0x90, 0x5d, 0x1f,
+ 0x41, 0x5a, 0x92, 0x4e, 0x99, 0x93, 0x06, 0xd1, 0x8a, 0xc2, 0x70, 0x04, 0xc7, 0xbb, 0xc1, 0xec,
+ 0x8f, 0xfb, 0x71, 0x7c, 0xa9, 0x0b, 0xdf, 0x0a, 0x8b, 0x28, 0xc2, 0x2b, 0x79, 0xc6, 0xa6, 0x3a,
+ 0x74, 0x25, 0x91, 0xd3, 0xb9, 0xc2, 0x29, 0x43, 0x35, 0xcf, 0xac, 0x8f, 0x13, 0xed, 0x3a, 0xc9,
+ 0xb9, 0xc7, 0x50, 0x8f, 0xcf, 0xeb, 0x1c, 0x5c, 0x20, 0xb3, 0xe2, 0xa9, 0xa1, 0x7b, 0xbd, 0x3f,
+ 0x42, 0x19, 0xb0, 0x20, 0xdf, 0x22, 0xea, 0x15, 0x9e, 0x54, 0x8c, 0x0d, 0xcb, 0x50, 0x21, 0xcc,
+ 0x8c, 0xb8, 0x53, 0x12, 0xef, 0xba, 0x33, 0xce, 0x9f, 0xbe, 0x3e, 0x22, 0x75, 0x2d, 0x46, 0x1a,
+ 0x77, 0x66, 0xb3, 0xbd, 0xff, 0x73, 0xc5, 0x87, 0x21, 0x59, 0x50, 0x86, 0x1f, 0x06, 0xda, 0xe9,
+ 0xd3, 0x39, 0x56, 0x76, 0x8f, 0x49, 0x42, 0xbb, 0x9d, 0xa9, 0x99, 0x7c, 0xca, 0xd7, 0x88, 0x75,
+ 0x28, 0xe7, 0xb6, 0xd9, 0x9f, 0x80, 0xb4, 0xf2, 0x23, 0x4e, 0xf7, 0xd8, 0xa0, 0xfc, 0x14, 0x86,
+ 0xe6, 0x46, 0x55, 0xeb, 0xaf, 0x18, 0x6d, 0x29, 0x22, 0xa4, 0x45, 0xf7, 0x1e, 0x81, 0x73, 0x50,
+ 0x1d, 0x98, 0xb5, 0x44, 0xbf, 0xd1, 0x9b, 0x60, 0x9c, 0x43, 0x2b, 0x53, 0x74, 0xaa, 0xef, 0xa3,
+ 0x6d, 0xf8, 0x5c, 0xbe, 0x4f, 0x6c, 0xa0, 0x51, 0x99, 0x87, 0x14, 0xc0, 0x77, 0xe0, 0xd7, 0xab,
+ 0x96, 0x26, 0xbc, 0x11, 0x5f, 0xa5, 0x56, 0x18, 0x27, 0x60, 0x7a, 0x64, 0x1d, 0xcb, 0x4b, 0x58,
+ 0x58, 0x87, 0x5f, 0x23, 0x6f, 0x3d, 0x8f, 0xc3, 0x26, 0x8a, 0xc8, 0x4b, 0xa3, 0xb6, 0x2c, 0x8e,
+ 0xa3, 0x59, 0xbf, 0x8c, 0x7f, 0xf4, 0x79, 0x8a, 0x98, 0x6d, 0xa6, 0xef, 0xc9, 0x9d, 0xb0, 0x7d,
+ 0x07, 0x06, 0x5a, 0x47, 0x0f, 0xce, 0xfe, 0xb6, 0x24, 0x9d, 0x6f, 0x15, 0x1c, 0x4c, 0xe2, 0xe1,
+ 0xfc, 0xd8, 0xba, 0xe8, 0x1f, 0x07, 0x08, 0xff, 0x9a, 0x7a, 0x01, 0xb1, 0x76, 0x67, 0x7e, 0x12,
+ 0x32, 0x79, 0x59, 0xda, 0x2f, 0x9f, 0xd1, 0x24, 0x9b, 0x90, 0xb3, 0x9e, 0xc8, 0x1a, 0x19, 0xc4,
+ 0xc9, 0xa7, 0xb9, 0x75, 0x3f, 0x56, 0x27, 0x6d, 0x25, 0x77, 0xdd, 0x3a, 0xa2, 0x31, 0x85, 0x37,
+ 0xd2, 0xb9, 0x48, 0xed, 0x0c, 0x26, 0xa7, 0x46, 0x91, 0xdb, 0xcd, 0x7b, 0xce, 0x8e, 0x69, 0xd4,
+ 0x29, 0x67, 0xa8, 0x42, 0x1c, 0xef, 0x51, 0x0f, 0x2f, 0x3c, 0xa3, 0xdf, 0xa4, 0xa5, 0xf5, 0x27,
+ 0xe7, 0xc6, 0x4b, 0x70, 0x2c, 0x77, 0x88, 0xd4, 0x2e, 0xd6, 0x11, 0xf0, 0x1a, 0xd8, 0x92, 0xf1,
+ 0x1c, 0x18, 0xab, 0xdf, 0x3c, 0xbe, 0x7e, 0x9d, 0x90, 0x31, 0x7f, 0x54, 0x70, 0xf3, 0x0e, 0x02,
+ 0xb8, 0x47, 0x4e, 0x14, 0x4c, 0x84, 0xf9, 0xa1, 0x2c, 0xc1, 0xb6, 0xae, 0xa5, 0x22, 0x5c, 0x9e,
+ 0x43, 0x99, 0xae, 0xbb, 0x5c, 0x4d, 0x0f, 0xe8, 0x92, 0x26, 0xd8, 0x0a, 0xcf, 0x09, 0xc0, 0x6d,
+ 0x8d, 0x38, 0x4d, 0x89, 0x6c, 0xd5, 0xd6, 0x33, 0x93, 0xcc, 0x6a, 0x25, 0x71, 0x74, 0xa7, 0xbb,
+ 0x76, 0xe6, 0xad, 0x26, 0x7c, 0x1c, 0x20, 0x7a, 0x2d, 0x2b, 0x04, 0x81, 0x1b, 0x5f, 0x3b, 0x48,
+ 0x06, 0x86, 0x44, 0xdc, 0x8c, 0xa1, 0x1b, 0x4b, 0x28, 0xef, 0x3b, 0x12, 0x18, 0x15, 0x03, 0x40,
+ 0xfd, 0x58, 0xa4, 0x73, 0x9c, 0x68, 0xed, 0x02, 0x96, 0x08, 0x55, 0xb6, 0x72, 0x3e, 0x9f, 0xb3,
+ 0x33, 0xf9, 0x47, 0x41, 0xac, 0xf0, 0x34, 0xd9, 0x97, 0xe2, 0xe7, 0x99, 0xcc, 0x43, 0xf8, 0x65,
+ 0xc8, 0x27, 0xa7, 0xee, 0xbc, 0x39, 0xc2, 0x90, 0x29, 0x05, 0x89, 0x3d, 0xa6, 0x68, 0x64, 0x96,
+ 0x6c, 0x78, 0x42, 0x25, 0xcc, 0x03, 0x45, 0xac, 0x95, 0xf5, 0x40, 0xc7, 0x73, 0xb9, 0x36, 0x0a,
+ 0x97, 0xa6, 0xa2, 0x8a, 0xdc, 0xca, 0xb3, 0xe5, 0x2b, 0x12, 0x2e, 0x63, 0x19, 0x92, 0xaa, 0xf9,
+ 0x59, 0x07, 0x41, 0xb8, 0xec, 0x52, 0x6a, 0x3e, 0x2a, 0xf8, 0x9c, 0x4c, 0xa7, 0xef, 0xcd, 0x2f,
+ 0xa2, 0xd9, 0xa1, 0x17, 0xfc, 0x9b, 0x9c, 0x77, 0x94, 0x1f, 0xf2, 0xe8, 0xcd, 0xc4, 0x51, 0xdc,
+ 0xde, 0x76, 0xc0, 0x96, 0xd7, 0xa7, 0x91, 0xd0, 0xc1, 0xc6, 0xbb, 0x5f, 0xfe, 0xa4, 0x6f, 0x54,
+ 0x25, 0xa8, 0x20, 0x39, 0xc7, 0x6e, 0x67, 0x99, 0x7f, 0x21, 0xd5, 0xfb, 0x94, 0x8f, 0xf3, 0xa7,
+ 0xeb, 0x09, 0xc3, 0x0b, 0xf7, 0xf6, 0xbe, 0x42, 0x7e, 0xcb, 0x67, 0xd4, 0x2a, 0xf2, 0x94, 0x71,
+ 0x10, 0xd7, 0x23, 0xa4, 0xe7, 0x3f, 0x48, 0x0b, 0xc0, 0x2c, 0x09, 0x70, 0x40, 0xd9, 0x08, 0x82,
+ 0xb4, 0x88, 0xc6, 0x6f, 0x97, 0x05, 0xcf, 0x37, 0x7c, 0xdc, 0xc0, 0x8a, 0x95, 0x08, 0x5a, 0x1e,
+ 0x4f, 0x56, 0x26, 0xc0, 0x87, 0xcc, 0x39, 0x7e, 0xc2, 0x3b, 0xae, 0x2e, 0xff, 0x23, 0xc6, 0xed,
+ 0x81, 0xf7, 0xc5, 0xf2, 0xb7, 0x54, 0xe0, 0xa5, 0xc3, 0xd1, 0x1c, 0x01, 0x41, 0x5e, 0xa1, 0x3b,
+ 0x7a, 0x29, 0x25, 0x5d, 0xa7, 0x9d, 0x16, 0xec, 0x7d, 0x36, 0x72, 0xa5, 0x2b, 0x75, 0x3d, 0xc8,
+ 0x0a, 0x49, 0xcc, 0xa7, 0x57, 0x20, 0x2d, 0xdd, 0x78, 0xf2, 0x4d, 0x36, 0x28, 0x3f, 0x05, 0xc0,
+ 0xf1, 0x97, 0x2c, 0x08, 0x47, 0xe9, 0xdb, 0x94, 0xc6, 0x15, 0x23, 0x92, 0x42, 0x14, 0x99, 0x33,
+ 0x3f, 0x36, 0xcf, 0x3a, 0x77, 0x71, 0x02, 0x4f, 0xc7, 0xff, 0x91, 0xbd, 0xfc, 0x69, 0xfe, 0xe5,
+ 0xc4, 0xe8, 0x2f, 0x95, 0x67, 0xb8, 0xf4, 0x06, 0x79, 0x18, 0xff, 0x19, 0x96, 0x42, 0x62, 0x16,
+ 0x60, 0xb7, 0xca, 0x5e, 0x17, 0x82, 0x73, 0x3a, 0xc5, 0xe8, 0x36, 0xe3, 0x43, 0x93, 0x30, 0x8a,
+ 0x9b, 0x69, 0x2a, 0xf1, 0x07, 0x4b, 0x85, 0x73, 0x7b, 0x0f, 0x58, 0x47, 0x29, 0xb8, 0xac, 0x79,
+ 0x55, 0xc8, 0xc9, 0xc3, 0x37, 0xd3, 0x5c, 0xa8, 0x7a, 0xe5, 0xea, 0x68, 0x97, 0xc5, 0xcb, 0xaf,
+ 0xae, 0x16, 0x29, 0x6c, 0x27, 0x1a, 0xaa, 0xe1, 0xc4, 0x02, 0x84, 0xcc, 0xfd, 0xee, 0x57, 0x5c,
+ 0xb5, 0x08, 0xd8, 0xf4, 0x14, 0x6a, 0x2a, 0xca, 0x70, 0xae, 0x94, 0x8d, 0x91, 0x51, 0xbb, 0xbf,
+ 0x4e, 0xd6, 0x38, 0x5b, 0x04, 0xa3, 0xdc, 0x83, 0xce, 0x49, 0xfa, 0x29, 0xfb, 0x7a, 0x27, 0x4c,
+ 0x80, 0x77, 0xdb, 0x69, 0x34, 0x3b, 0x05, 0x58, 0xcf, 0xa3, 0x48, 0x06, 0x45, 0x07, 0x40, 0x9a,
+ 0x7b, 0xa9, 0x3b, 0xc6, 0x24, 0xf2, 0xf3, 0x11, 0x71, 0x44, 0x26, 0xa2, 0x2f, 0x2c, 0xdc, 0x69,
+ 0xdf, 0xf6, 0xde, 0x0d, 0x54, 0xc8, 0x74, 0x2d, 0xcd, 0xb4, 0xef, 0x58, 0xfa, 0xfd, 0x8e, 0xf5,
+ 0x24, 0x28, 0x3e, 0xa2, 0x44, 0x01, 0x82, 0x64, 0x73, 0x53, 0x81, 0xfc, 0x90, 0xd6, 0x12, 0x06,
+ 0xea, 0x89, 0xdd, 0x90, 0x74, 0x99, 0x5b, 0xbf, 0x72, 0xb9, 0x33, 0xd3, 0x2e, 0xab, 0x75, 0xd0,
+ 0x11, 0x57, 0x3d, 0x3f, 0x64, 0x50, 0xad, 0xf6, 0xcc, 0x5e, 0x5d, 0x77, 0x44, 0x80, 0xe9, 0x23,
+ 0x61, 0x37, 0xd4, 0xc5, 0x94, 0xed, 0x96, 0xc7, 0xc9, 0x9a, 0x62, 0xe4, 0x47, 0xca, 0xd1, 0x2b,
+ 0x9a, 0xe9, 0x34, 0x6a, 0x84, 0x24, 0x60, 0x8e, 0x77, 0x7d, 0x0c, 0x40, 0x2d, 0xe1, 0x4d, 0xd8,
+ 0x54, 0x48, 0xd7, 0x58, 0xb4, 0xbc, 0xb9, 0x55, 0x76, 0x97, 0xbe, 0x6f, 0x93, 0x9c, 0x2a, 0x0e,
+ 0xaf, 0x96, 0x37, 0xf7, 0xa4, 0x75, 0x4f, 0x1c, 0xc8, 0x70, 0xd0, 0xcb, 0xf9, 0xb7, 0xb6, 0xfd,
+ 0x0b, 0xc9, 0xd2, 0x3c, 0xd4, 0x4f, 0xc8, 0x20, 0x74, 0x80, 0x19, 0x31, 0x2c, 0x66, 0xe4, 0x61,
+ 0xf0, 0x17, 0x32, 0x93, 0xc4, 0x86, 0x3e, 0x69, 0xca, 0x67, 0x77, 0x95, 0x46, 0x4d, 0x78, 0x92,
+ 0x3e, 0xb6, 0xd1, 0xa1, 0xf4, 0x1e, 0xe7, 0xb2, 0xcb, 0x8d, 0xc5, 0xba, 0xf8, 0x30, 0x1f, 0x44,
+ 0xc5, 0x68, 0x31, 0x0e, 0xe4, 0xd7, 0x11, 0xfb, 0x75, 0x6a, 0xab, 0x1e, 0x92, 0x1b, 0x83, 0xb7,
+ 0x08, 0x8a, 0xf0, 0x52, 0x92, 0xfe, 0x24, 0xe4, 0x60, 0x16, 0xe5, 0x38, 0x20, 0x8d, 0x04, 0x41,
+ 0xf3, 0x54, 0x10, 0xfd, 0x82, 0x37, 0xd2, 0xad, 0xde, 0xf1, 0x8b, 0x9c, 0x4a, 0xa6, 0x98, 0xb2,
+ 0x3d, 0xf5, 0xf3, 0xcf, 0xb2, 0xaf, 0x0b, 0x76, 0xdf, 0x1b, 0x39, 0xb3, 0xf4, 0xdb, 0xff, 0x64,
+ 0xc6, 0x2b, 0x13, 0x60, 0xa2, 0x66, 0xfd, 0x3f, 0x61, 0xfc, 0x57, 0x17, 0x9e, 0xf0, 0x63, 0x97,
+ 0x62, 0x74, 0xf6, 0xab, 0xd2, 0x5c, 0x7a, 0x03, 0xdd, 0x0c, 0x9e, 0xed, 0x4b, 0x21, 0x31, 0x0b,
+ 0x99, 0xaa, 0x16, 0x04, 0xc2, 0x95, 0x8c, 0x4a, 0x63, 0xeb, 0xf0, 0x49, 0x21, 0x0a, 0xad, 0xf8,
+ 0x57, 0x0b, 0xf5, 0x36, 0xf2, 0x0d, 0x55, 0x91, 0x62, 0x01, 0x42, 0x66, 0x9f, 0x77, 0xca, 0x2e,
+ 0xac, 0xd5, 0x15, 0x99, 0xe2, 0xc4, 0xa3, 0xd8, 0xdc, 0xe6, 0x2c, 0xc2, 0xf5, 0x5c, 0x56, 0xdd,
+ 0xdc, 0xb5, 0xfc, 0x63, 0x12, 0x79, 0x98, 0xe9, 0xd9, 0x22, 0x13, 0x51, 0xf6, 0x16, 0x6e, 0xd5,
+ 0x27, 0x6b, 0x1c, 0xcc, 0x02, 0xb0, 0x6e, 0xa0, 0x67, 0xc5, 0x7d, 0xf5, 0x9c, 0x3d, 0xf2, 0x26,
+ 0xe9, 0xca, 0xff, 0xfe, 0x32, 0x28, 0xb7, 0x7b, 0x66, 0x2f, 0xcf, 0xda, 0x22, 0x40, 0x95, 0xf0,
+ 0x12, 0x14, 0x1f, 0x51, 0x22, 0xe1, 0x41, 0x32, 0xd8, 0xc8, 0xa1, 0x7e, 0x48, 0x6b, 0x09, 0x03,
+ 0xb6, 0x4b, 0xfa, 0x9a, 0x52, 0xdb, 0xc6, 0x0e, 0x64, 0x38, 0x68, 0x84, 0x9d, 0xba, 0x5b, 0x9f,
+ 0x4d, 0x95, 0x1a, 0x35, 0x42, 0x12, 0x30, 0x47, 0xda, 0xdf, 0x06, 0x20, 0xf7, 0x91, 0xc7, 0x6c,
+ 0x83, 0x34, 0xf9, 0x07, 0x72, 0x8a, 0xe9, 0x9c, 0xdb, 0x35, 0xb4, 0x0f, 0x49, 0xec, 0xa0, 0xba,
+ 0x78, 0xea, 0x19, 0xa8, 0x62, 0x43, 0x1f, 0xd5, 0x65, 0xd2, 0xda, 0xab, 0x23, 0xc7, 0x3c, 0x49,
+ 0x63, 0xf4, 0xe8, 0x30, 0x51, 0x33, 0x9f, 0xfe, 0xd1, 0x7e, 0xca, 0xea, 0x4f, 0x78, 0xd0, 0xaa,
+ 0x98, 0x2a, 0x08, 0x9f, 0x41, 0xfa, 0x69, 0xb7, 0x6f, 0x99, 0xa4, 0x4e, 0x25, 0x53, 0x4c, 0x59,
+ 0x56, 0x8b, 0xeb, 0xad, 0x71, 0x62, 0xb0, 0x6c, 0x6e, 0x73, 0x16, 0x61, 0x9b, 0x2e, 0x2b, 0x8f,
+ 0xad, 0x55, 0x0b, 0x02, 0x61, 0xab, 0x46, 0x25, 0xd0, 0x94, 0x78, 0xc5, 0xf1, 0x05, 0xb7, 0x7c,
+ 0x09, 0x0a, 0xee, 0xc9, 0x11, 0x91, 0xc1, 0x19, 0x6c, 0x64, 0xb1, 0x3f, 0x24, 0xd4, 0xe5, 0xe0,
+ 0xf2, 0xd4, 0x0e, 0x66, 0x01, 0x58, 0x37, 0x50, 0xd2, 0x83, 0xdf, 0x9b, 0x4e, 0xff, 0x79, 0x13,
+ 0x3c, 0x75, 0xed, 0x54, 0x31, 0xc0, 0xee, 0x8b, 0xd3, 0x69, 0x6d, 0xb4, 0xf0, 0x82, 0x1e, 0xc5,
+ 0xc7, 0xab, 0x0d, 0xfb, 0x21, 0x09, 0x18, 0xc2, 0x6d, 0x8e, 0x03, 0x10, 0x9a, 0xa9, 0x82, 0x36,
+ 0xb7, 0xcb, 0xe4, 0x01, 0xd1, 0xb4, 0x23, 0xf3, 0x68, 0x4a, 0x3c, 0x83, 0x99, 0xe3, 0xba, 0x3e,
+ 0x4c, 0x15, 0x04, 0xae, 0xc1, 0x7d, 0xd5, 0xba, 0xd6, 0xad, 0x52, 0x27, 0xf3, 0xc8, 0x26, 0xcd,
+ 0x82, 0xb4, 0xe7, 0x9c, 0xf1, 0xe5, 0x0c, 0x61, 0xd7, 0x47, 0xe0, 0x08, 0x4d, 0xb5, 0x41, 0x1b,
+ 0x79, 0x6a, 0x07, 0x33, 0xe1, 0x2c, 0xfa, 0x28, 0x69, 0xa0, 0x8e, 0xac, 0x27, 0x9e, 0xdd, 0xe8,
+ 0xdd, 0x35, 0xe2, 0xf8, 0x91, 0x16, 0x7d, 0x14, 0xd5, 0x50, 0x47, 0x56, 0xf2, 0x4f, 0x8f, 0x74,
+ 0x26, 0xeb, 0x02, 0x57, 0x81, 0xdf, 0x8b, 0x5d, 0x6b, 0xb7, 0x29, 0xf2, 0x98, 0x64, 0x13, 0x87,
+ 0xe8, 0x4a, 0xe1, 0x65, 0xb1, 0x47, 0x52, 0x86, 0x6a, 0x5d, 0x9b, 0xdd, 0x26, 0x19, 0x74, 0x51,
+ 0x13, 0x94, 0x01, 0xca, 0xa1, 0x8e, 0xa4, 0xcf, 0xd4, 0xba, 0xf5, 0x79, 0x4c, 0x32, 0xe8, 0xa2,
+ 0xb1, 0x4d, 0xa0, 0xdd, 0x5d, 0x15, 0x38, 0xb8, 0x40, 0xa5, 0x07, 0x91, 0x81, 0xf6, 0xb9, 0x7e,
+ 0x4a, 0x93, 0x40, 0x72, 0x4d, 0xdc, 0xce, 0xf1, 0xfe, 0x42, 0x69, 0x35, 0xeb, 0xdd, 0x25, 0x8d,
+ 0x84, 0x32, 0xa3, 0x40, 0x7d, 0x44, 0x17, 0x2a, 0xff, 0xa8, 0xdb, 0x1a, 0x55, 0xa0, 0x42, 0x5b,
+ 0x7f, 0xec, 0x43, 0xef, 0x6d, 0x8d, 0xe1, 0x63, 0x41, 0x4f, 0xb5, 0xbe, 0x3f, 0x8b, 0xde, 0xa8,
+ 0xdb, 0xb3, 0xa6, 0x24, 0x1d, 0xb7, 0x66, 0x5f, 0xfd, 0xbf, 0x7c, 0x44, 0xea, 0x5a, 0x8c, 0x34,
+ 0x20, 0x6d, 0x46, 0x8b, 0x0d, 0x7e, 0x90, 0x16, 0x43, 0x58, 0x12, 0xe0, 0x80, 0x71, 0x10, 0xc7,
+ 0xee, 0xcc, 0xa5, 0xb9, 0x3d, 0xe6, 0x49, 0xcd, 0x42, 0xb2, 0xa0, 0xcf, 0x3e, 0x0c, 0x77, 0x11,
+ 0x15, 0x12, 0x45, 0x16, 0x2d, 0x2f, 0xbf, 0x84, 0xfc, 0x55, 0xce, 0x6b, 0x54, 0x27, 0xeb, 0xe2,
+ 0x65, 0x72, 0xac, 0xec, 0xdd, 0x92, 0x84, 0xb5, 0xf9, 0x91, 0xf1, 0xf8, 0x57, 0x6d, 0xd3, 0xea,
+ 0x9e, 0xac, 0x4c, 0x43, 0xcd, 0x5b, 0x72, 0xfc, 0x47, 0x76, 0x9f, 0x5c, 0x3d, 0x46, 0x4f, 0x19,
+ 0x50, 0x0d, 0xaf, 0x71, 0xfd, 0xc3, 0xab, 0x27, 0x46, 0x9c, 0x2d, 0x73, 0x83, 0x3b, 0x28, 0xcf,
+ 0xab, 0xd3, 0x4f, 0xde, 0xed, 0x0a, 0x5d, 0x6e, 0xf8, 0x7b, 0x43, 0xd7, 0xe9, 0x10, 0xb4, 0x3c,
+ 0x0f, 0x8c, 0xaa, 0x15, 0x9d, 0x30, 0xda, 0x52, 0x44, 0x8b, 0x8a, 0x2d, 0x3c, 0xc1, 0xe6, 0xa0,
+ 0xf4, 0x52, 0x4a, 0xba, 0x8d, 0xf9, 0x2c, 0x1b, 0xfa, 0x6c, 0xe4, 0x89, 0x56, 0xea, 0x7a, 0x53,
+ 0x3a, 0xf3, 0xa9, 0x88, 0xbd, 0x61, 0xf5, 0xc0, 0xfb, 0x86, 0x56, 0xa6, 0xe8, 0x97, 0x1d, 0x85,
+ 0xc1, 0x2d, 0x49, 0x27, 0xad, 0xa8, 0x03, 0x89, 0x45, 0x61, 0x38, 0x02, 0x82, 0xbc, 0x81, 0x76,
+ 0xda, 0x33, 0xb8, 0xbf, 0x9e, 0xd8, 0x83, 0xa2, 0xf1, 0xcd, 0x28, 0x43, 0xee, 0x03, 0x6d, 0x95,
+ 0x21, 0xed, 0x58, 0x10, 0x8e, 0x11, 0x75, 0xeb, 0x4f, 0x2a, 0x46, 0xe7, 0x84, 0x28, 0xf1, 0x66,
+ 0xef, 0x4c, 0xbb, 0x22, 0xbe, 0x89, 0xac, 0x30, 0x4e, 0xc0, 0xf4, 0xc8, 0x3a, 0x55, 0x96, 0xb0,
+ 0x14, 0x92, 0x5b, 0x8d, 0xae, 0x40, 0x5a, 0x79, 0xf0, 0x27, 0x9a, 0x6c, 0x50, 0x7e, 0x0a, 0x43,
+ 0xb0, 0xcd, 0xbe, 0x46, 0xde, 0x7a, 0xdd, 0x45, 0x4c, 0xd7, 0x53, 0x96, 0x85, 0xaf, 0x58, 0xdf,
+ 0x4b, 0x13, 0x5e, 0xe9, 0xce, 0xb3, 0x2b, 0x0c, 0xf2, 0x30, 0x3d, 0x32, 0xef, 0x84, 0xc4, 0x2c,
+ 0x85, 0xb2, 0xbd, 0xdb, 0xfe, 0x2b, 0xf2, 0xd7, 0xf3, 0xda, 0x8f, 0x1d, 0x51, 0xf9, 0xa3, 0xfa,
+ 0x7e, 0x6c, 0x5d, 0x74, 0xee, 0xe2, 0x04, 0x9e, 0x4d, 0x3d, 0xe1, 0xb9, 0x3b, 0xd2, 0x3f, 0x09,
+ 0x0e, 0x0c, 0xb4, 0x8e, 0x1e, 0x5f, 0x3f, 0xaf, 0x48, 0xf9, 0xde, 0x2a, 0x38, 0x98, 0x07, 0x01,
+ 0xf5, 0xd2, 0x54, 0x21, 0x0e, 0x96, 0xc9, 0xe6, 0xf6, 0x1e, 0xb0, 0x8e, 0x52, 0xb3, 0x9b, 0xf2,
+ 0x3b, 0x73, 0xb7, 0x13, 0x3e, 0x0e, 0x10, 0x3d, 0xf7, 0xf4, 0x02, 0xa1, 0xec, 0xce, 0xfc, 0x24,
+ 0xc0, 0xad, 0x57, 0xbc, 0x2e, 0xc7, 0xe6, 0x74, 0x49, 0x13, 0x6c, 0x05, 0x86, 0xe5, 0x60, 0xd7,
+ 0x64, 0xf2, 0xb2, 0x77, 0x5e, 0xfd, 0x61, 0x48, 0xf5, 0xe3, 0xa5, 0xff, 0x53, 0x34, 0x32, 0x4b,
+ 0x9f, 0x2c, 0x52, 0xd8, 0x4e, 0x34, 0x97, 0x01, 0x4b, 0x04, 0xcb, 0x5b, 0x39, 0x1f, 0xae, 0xb8,
+ 0x51, 0x8d, 0xb1, 0xea, 0x7e, 0xac, 0x4e, 0xda, 0x4a, 0xee, 0x79, 0x74, 0x87, 0x62, 0xc9, 0x6e,
+ 0xaa, 0x53, 0x51, 0x45, 0x6e, 0x65, 0xb8, 0x93, 0xf4, 0x09, 0x17, 0xd0, 0xed, 0x49, 0x55, 0x9d,
+ 0x67, 0xb1, 0x90, 0x19, 0x18, 0x4c, 0x8d, 0x8c, 0xe1, 0x75, 0x59, 0xf6, 0x5f, 0xdf, 0xd2, 0x6b,
+ 0x9c, 0x6f, 0x70, 0xb6, 0x08, 0x85, 0x7b, 0xc5, 0x5f, 0x92, 0x37, 0x52, 0x35, 0xf4, 0x4e, 0x98,
+ 0x52, 0xce, 0x93, 0x84, 0x38, 0x1d, 0xa2, 0x1e, 0x5e, 0x78, 0x85, 0x7d, 0x8b, 0x89, 0x29, 0x4e,
+ 0xa9, 0x10, 0x73, 0x2b, 0x28, 0xd4, 0x54, 0x57, 0xe0, 0x9f, 0xeb, 0xd9, 0xe1, 0xa2, 0xb5, 0xbd,
+ 0x0d, 0x4f, 0x96, 0xe0, 0x58, 0xee, 0xd3, 0x6b, 0x5c, 0x6f, 0x22, 0x23, 0x34, 0x73, 0xe7, 0x21,
+ 0xf6, 0x91, 0x76, 0x4f, 0x48, 0x27, 0x25, 0x22, 0xe2, 0x88, 0x4c, 0x87, 0x5e, 0x58, 0x7b, 0xd2,
+ 0x38, 0x30, 0x95, 0x7d, 0x78, 0xbf, 0xfc, 0xf9, 0xe3, 0x62, 0xfe, 0xa8, 0xe0, 0x25, 0x1c, 0x04,
+ 0xc3, 0xee, 0x75, 0xd2, 0x68, 0x76, 0x0a, 0xb0, 0x5d, 0x85, 0x90, 0x0c, 0x8a, 0x0e, 0x80, 0xf7,
+ 0xb3, 0x8e, 0x9c, 0x28, 0x98, 0xcb, 0x31, 0x81, 0x58, 0x41, 0xaf, 0x9f, 0x89, 0x44, 0xb8, 0xff,
+ 0x48, 0x50, 0x7c, 0x87, 0x88, 0x02, 0xc7, 0xc8, 0xe6, 0xa6, 0xc1, 0x3b, 0xe3, 0x6f, 0x24, 0x0c,
+ 0x86, 0xf1, 0x9f, 0xb5, 0xb8, 0x9a, 0x1e, 0x13, 0xe7, 0x4c, 0x73, 0x14, 0x5d, 0x12, 0x43, 0xda,
+ 0x7d, 0x2f, 0x7f, 0x1a, 0xa8, 0x53, 0xe8, 0x5a, 0x59, 0xab, 0x1d, 0xb0, 0x37, 0x39, 0xdf, 0x29,
+ 0xd9, 0x70, 0x9a, 0xd1, 0xd8, 0x69, 0x6f, 0x66, 0xe5, 0x5b, 0xd4, 0x4a, 0xe2, 0xe8, 0x8d, 0xb5,
+ 0x22, 0xae, 0x7a, 0x7e, 0xc8, 0xa0, 0x99, 0x2f, 0x5b, 0xbc, 0xba, 0xee, 0x88, 0xc3, 0x11, 0x46,
+ 0xec, 0x0f, 0x99, 0x4c, 0xf8, 0x38, 0x40, 0xf4, 0x5a, 0x56, 0x08, 0xc1, 0x36, 0xbe, 0x76, 0x90,
+ 0x17, 0xd1, 0x79, 0xe3, 0xe8, 0xf1, 0xb6, 0xbd, 0xe4, 0xb1, 0x66, 0x65, 0x5c, 0x95, 0xea, 0x63,
+ 0x0c, 0xcf, 0x88, 0x7b, 0xdb, 0x81, 0x36, 0x96, 0x50, 0x1d, 0x76, 0x24, 0x30, 0x2a, 0x06, 0x80,
+ 0xf7, 0x11, 0x68, 0xd4, 0xcb, 0x48, 0xc0, 0xdf, 0xee, 0xfa, 0x18, 0x80, 0x5a, 0x01, 0x9a, 0x73,
+ 0x39, 0xb0, 0x8b, 0xe6, 0xfb, 0xd0, 0x19, 0x04, 0xef, 0x10, 0xaa, 0xaf, 0xe4, 0x7c, 0xfd, 0xa5,
+ 0xc2, 0x6e, 0x6b, 0x49, 0xeb, 0x19, 0xef, 0x4d, 0x51, 0xf7, 0xc4, 0x0b, 0x8e, 0x57, 0x61, 0x56,
+ 0x66, 0x31, 0x8e, 0x82, 0x9b, 0x23, 0x68, 0x71, 0xed, 0x07, 0x0d, 0xf1, 0x5b, 0x86, 0x33, 0xca,
+ 0x9d, 0xef, 0x6e, 0x2d, 0x8b, 0xea, 0x9e, 0x38, 0x53, 0xe0, 0x63, 0x55, 0x31, 0xad, 0xaf, 0x39,
+ 0x53, 0x4e, 0x8d, 0x1f, 0xbb, 0x72, 0x47, 0xe3, 0x52, 0x0a, 0xd1, 0x7a, 0x8f, 0xd0, 0xc8, 0xef,
+ 0xa8, 0x90, 0x6d, 0xb0, 0xab, 0xbb, 0xb1, 0xaa, 0xec, 0xed, 0xbf, 0xde, 0xe5, 0xfb, 0x54, 0x1c,
+ 0xd8, 0xf0, 0x84, 0x4a, 0x5b, 0x06, 0x8a, 0x9b, 0xe9, 0x29, 0x80, 0x4d, 0xe6, 0xb1, 0x6c, 0x14,
+ 0x23, 0x2e, 0x64, 0xe5, 0x4b, 0xcf, 0x7c, 0xd2, 0x57, 0xce, 0xee, 0xe9, 0x8c, 0x9a, 0xf0, 0xe7,
+ 0xed, 0x8f, 0x87, 0xd7, 0x7b, 0x57, 0xa5, 0x09, 0x56, 0x24, 0x5c, 0xc6, 0x32, 0xe7, 0x97, 0x31,
+ 0x16, 0x51, 0x67, 0x78, 0x6b, 0x9e, 0x53, 0x40, 0xe8, 0xc3, 0x32, 0x62, 0x58, 0xcc, 0x0b, 0xc2,
+ 0xb2, 0x0e, 0x82, 0xb3, 0x1b, 0xa4, 0xd4, 0x7c, 0x54, 0x33, 0xfb, 0x98, 0x8d, 0x1d, 0x59, 0x5e,
+ 0x49, 0xd0, 0x62, 0x1c, 0x0b, 0x6d, 0x22, 0x35, 0xea, 0xd4, 0x95, 0x3c, 0xe7, 0x36, 0xc5, 0xad,
+ 0x87, 0x71, 0x81, 0x2e, 0x3b, 0xf5, 0xfb, 0xee, 0xeb, 0x3e, 0x27, 0x13, 0x59, 0x4b, 0xa2, 0x7b,
+ 0x7c, 0xaf, 0x61, 0x81, 0x2b, 0x3c, 0x0d, 0xa7, 0x55, 0xd9, 0x49, 0xb7, 0x33, 0x60, 0x3e, 0x88,
+ },
+ { /* 9 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x6f, 0x5a, 0x3d, 0xbf, 0xad, 0xee, 0xab, 0xf1, 0xc4, 0xaf, 0x02, 0xd6, 0x1c, 0x89, 0xf2,
+ 0x02, 0xde, 0xb4, 0x7a, 0xbd, 0x99, 0x1f, 0x95, 0x21, 0x4b, 0x9d, 0x04, 0x6f, 0x38, 0xd1, 0x27,
+ 0x03, 0xb1, 0xee, 0x47, 0x02, 0x34, 0xf1, 0x3e, 0xd0, 0x8f, 0x32, 0x06, 0xb9, 0x24, 0x58, 0xd5,
+ 0x04, 0x7f, 0xab, 0xf4, 0xb9, 0xf1, 0x3e, 0xe9, 0x42, 0x96, 0xf9, 0x08, 0xde, 0x70, 0x61, 0x4e,
+ 0x05, 0x10, 0xf1, 0xc9, 0x06, 0x5c, 0xd0, 0x42, 0xb3, 0x52, 0x56, 0x0a, 0x08, 0x6c, 0xe8, 0xbc,
+ 0x06, 0xa1, 0x1f, 0x8e, 0x04, 0x68, 0x21, 0x7c, 0x63, 0xdd, 0x64, 0x0c, 0xb1, 0x48, 0xb0, 0x69,
+ 0x07, 0xce, 0x45, 0xb3, 0xbb, 0xc5, 0xcf, 0xd7, 0x92, 0x19, 0xcb, 0x0e, 0x67, 0x54, 0x39, 0x9b,
+ 0x08, 0xfe, 0x95, 0x2b, 0xb1, 0x21, 0x7c, 0x11, 0x84, 0xef, 0x31, 0x10, 0x7f, 0xe0, 0xc2, 0x9c,
+ 0x09, 0x91, 0xcf, 0x16, 0x0e, 0x8c, 0x92, 0xba, 0x75, 0x2b, 0x9e, 0x12, 0xa9, 0xfc, 0x4b, 0x6e,
+ 0x0a, 0x20, 0x21, 0x51, 0x0c, 0xb8, 0x63, 0x84, 0xa5, 0xa4, 0xac, 0x14, 0x10, 0xd8, 0x13, 0xbb,
+ 0x0b, 0x4f, 0x7b, 0x6c, 0xb3, 0x15, 0x8d, 0x2f, 0x54, 0x60, 0x03, 0x16, 0xc6, 0xc4, 0x9a, 0x49,
+ 0x0c, 0x81, 0x3e, 0xdf, 0x08, 0xd0, 0x42, 0xf8, 0xc6, 0x79, 0xc8, 0x18, 0xa1, 0x90, 0xa3, 0xd2,
+ 0x0d, 0xee, 0x64, 0xe2, 0xb7, 0x7d, 0xac, 0x53, 0x37, 0xbd, 0x67, 0x1a, 0x77, 0x8c, 0x2a, 0x20,
+ 0x0e, 0x5f, 0x8a, 0xa5, 0xb5, 0x49, 0x5d, 0x6d, 0xe7, 0x32, 0x55, 0x1c, 0xce, 0xa8, 0x72, 0xf5,
+ 0x0f, 0x30, 0xd0, 0x98, 0x0a, 0xe4, 0xb3, 0xc6, 0x16, 0xf6, 0xfa, 0x1e, 0x18, 0xb4, 0xfb, 0x07,
+ 0x10, 0x3f, 0xe9, 0x56, 0xa1, 0x42, 0xf8, 0x22, 0xcb, 0x1d, 0x62, 0x20, 0xfe, 0x03, 0x47, 0xfb,
+ 0x11, 0x50, 0xb3, 0x6b, 0x1e, 0xef, 0x16, 0x89, 0x3a, 0xd9, 0xcd, 0x22, 0x28, 0x1f, 0xce, 0x09,
+ 0x12, 0xe1, 0x5d, 0x2c, 0x1c, 0xdb, 0xe7, 0xb7, 0xea, 0x56, 0xff, 0x24, 0x91, 0x3b, 0x96, 0xdc,
+ 0x13, 0x8e, 0x07, 0x11, 0xa3, 0x76, 0x09, 0x1c, 0x1b, 0x92, 0x50, 0x26, 0x47, 0x27, 0x1f, 0x2e,
+ 0x14, 0x40, 0x42, 0xa2, 0x18, 0xb3, 0xc6, 0xcb, 0x89, 0x8b, 0x9b, 0x28, 0x20, 0x73, 0x26, 0xb5,
+ 0x15, 0x2f, 0x18, 0x9f, 0xa7, 0x1e, 0x28, 0x60, 0x78, 0x4f, 0x34, 0x2a, 0xf6, 0x6f, 0xaf, 0x47,
+ 0x16, 0x9e, 0xf6, 0xd8, 0xa5, 0x2a, 0xd9, 0x5e, 0xa8, 0xc0, 0x06, 0x2c, 0x4f, 0x4b, 0xf7, 0x92,
+ 0x17, 0xf1, 0xac, 0xe5, 0x1a, 0x87, 0x37, 0xf5, 0x59, 0x04, 0xa9, 0x2e, 0x99, 0x57, 0x7e, 0x60,
+ 0x18, 0xc1, 0x7c, 0x7d, 0x10, 0x63, 0x84, 0x33, 0x4f, 0xf2, 0x53, 0x30, 0x81, 0xe3, 0x85, 0x67,
+ 0x19, 0xae, 0x26, 0x40, 0xaf, 0xce, 0x6a, 0x98, 0xbe, 0x36, 0xfc, 0x32, 0x57, 0xff, 0x0c, 0x95,
+ 0x1a, 0x1f, 0xc8, 0x07, 0xad, 0xfa, 0x9b, 0xa6, 0x6e, 0xb9, 0xce, 0x34, 0xee, 0xdb, 0x54, 0x40,
+ 0x1b, 0x70, 0x92, 0x3a, 0x12, 0x57, 0x75, 0x0d, 0x9f, 0x7d, 0x61, 0x36, 0x38, 0xc7, 0xdd, 0xb2,
+ 0x1c, 0xbe, 0xd7, 0x89, 0xa9, 0x92, 0xba, 0xda, 0x0d, 0x64, 0xaa, 0x38, 0x5f, 0x93, 0xe4, 0x29,
+ 0x1d, 0xd1, 0x8d, 0xb4, 0x16, 0x3f, 0x54, 0x71, 0xfc, 0xa0, 0x05, 0x3a, 0x89, 0x8f, 0x6d, 0xdb,
+ 0x1e, 0x60, 0x63, 0xf3, 0x14, 0x0b, 0xa5, 0x4f, 0x2c, 0x2f, 0x37, 0x3c, 0x30, 0xab, 0x35, 0x0e,
+ 0x1f, 0x0f, 0x39, 0xce, 0xab, 0xa6, 0x4b, 0xe4, 0xdd, 0xeb, 0x98, 0x3e, 0xe6, 0xb7, 0xbc, 0xfc,
+ 0x20, 0x7e, 0x11, 0xac, 0x81, 0x84, 0x33, 0x44, 0x55, 0x3a, 0xc4, 0x40, 0x3f, 0x06, 0x8e, 0x35,
+ 0x21, 0x11, 0x4b, 0x91, 0x3e, 0x29, 0xdd, 0xef, 0xa4, 0xfe, 0x6b, 0x42, 0xe9, 0x1a, 0x07, 0xc7,
+ 0x22, 0xa0, 0xa5, 0xd6, 0x3c, 0x1d, 0x2c, 0xd1, 0x74, 0x71, 0x59, 0x44, 0x50, 0x3e, 0x5f, 0x12,
+ 0x23, 0xcf, 0xff, 0xeb, 0x83, 0xb0, 0xc2, 0x7a, 0x85, 0xb5, 0xf6, 0x46, 0x86, 0x22, 0xd6, 0xe0,
+ 0x24, 0x01, 0xba, 0x58, 0x38, 0x75, 0x0d, 0xad, 0x17, 0xac, 0x3d, 0x48, 0xe1, 0x76, 0xef, 0x7b,
+ 0x25, 0x6e, 0xe0, 0x65, 0x87, 0xd8, 0xe3, 0x06, 0xe6, 0x68, 0x92, 0x4a, 0x37, 0x6a, 0x66, 0x89,
+ 0x26, 0xdf, 0x0e, 0x22, 0x85, 0xec, 0x12, 0x38, 0x36, 0xe7, 0xa0, 0x4c, 0x8e, 0x4e, 0x3e, 0x5c,
+ 0x27, 0xb0, 0x54, 0x1f, 0x3a, 0x41, 0xfc, 0x93, 0xc7, 0x23, 0x0f, 0x4e, 0x58, 0x52, 0xb7, 0xae,
+ 0x28, 0x80, 0x84, 0x87, 0x30, 0xa5, 0x4f, 0x55, 0xd1, 0xd5, 0xf5, 0x50, 0x40, 0xe6, 0x4c, 0xa9,
+ 0x29, 0xef, 0xde, 0xba, 0x8f, 0x08, 0xa1, 0xfe, 0x20, 0x11, 0x5a, 0x52, 0x96, 0xfa, 0xc5, 0x5b,
+ 0x2a, 0x5e, 0x30, 0xfd, 0x8d, 0x3c, 0x50, 0xc0, 0xf0, 0x9e, 0x68, 0x54, 0x2f, 0xde, 0x9d, 0x8e,
+ 0x2b, 0x31, 0x6a, 0xc0, 0x32, 0x91, 0xbe, 0x6b, 0x01, 0x5a, 0xc7, 0x56, 0xf9, 0xc2, 0x14, 0x7c,
+ 0x2c, 0xff, 0x2f, 0x73, 0x89, 0x54, 0x71, 0xbc, 0x93, 0x43, 0x0c, 0x58, 0x9e, 0x96, 0x2d, 0xe7,
+ 0x2d, 0x90, 0x75, 0x4e, 0x36, 0xf9, 0x9f, 0x17, 0x62, 0x87, 0xa3, 0x5a, 0x48, 0x8a, 0xa4, 0x15,
+ 0x2e, 0x21, 0x9b, 0x09, 0x34, 0xcd, 0x6e, 0x29, 0xb2, 0x08, 0x91, 0x5c, 0xf1, 0xae, 0xfc, 0xc0,
+ 0x2f, 0x4e, 0xc1, 0x34, 0x8b, 0x60, 0x80, 0x82, 0x43, 0xcc, 0x3e, 0x5e, 0x27, 0xb2, 0x75, 0x32,
+ 0x30, 0x41, 0xf8, 0xfa, 0x20, 0xc6, 0xcb, 0x66, 0x9e, 0x27, 0xa6, 0x60, 0xc1, 0x05, 0xc9, 0xce,
+ 0x31, 0x2e, 0xa2, 0xc7, 0x9f, 0x6b, 0x25, 0xcd, 0x6f, 0xe3, 0x09, 0x62, 0x17, 0x19, 0x40, 0x3c,
+ 0x32, 0x9f, 0x4c, 0x80, 0x9d, 0x5f, 0xd4, 0xf3, 0xbf, 0x6c, 0x3b, 0x64, 0xae, 0x3d, 0x18, 0xe9,
+ 0x33, 0xf0, 0x16, 0xbd, 0x22, 0xf2, 0x3a, 0x58, 0x4e, 0xa8, 0x94, 0x66, 0x78, 0x21, 0x91, 0x1b,
+ 0x34, 0x3e, 0x53, 0x0e, 0x99, 0x37, 0xf5, 0x8f, 0xdc, 0xb1, 0x5f, 0x68, 0x1f, 0x75, 0xa8, 0x80,
+ 0x35, 0x51, 0x09, 0x33, 0x26, 0x9a, 0x1b, 0x24, 0x2d, 0x75, 0xf0, 0x6a, 0xc9, 0x69, 0x21, 0x72,
+ 0x36, 0xe0, 0xe7, 0x74, 0x24, 0xae, 0xea, 0x1a, 0xfd, 0xfa, 0xc2, 0x6c, 0x70, 0x4d, 0x79, 0xa7,
+ 0x37, 0x8f, 0xbd, 0x49, 0x9b, 0x03, 0x04, 0xb1, 0x0c, 0x3e, 0x6d, 0x6e, 0xa6, 0x51, 0xf0, 0x55,
+ 0x38, 0xbf, 0x6d, 0xd1, 0x91, 0xe7, 0xb7, 0x77, 0x1a, 0xc8, 0x97, 0x70, 0xbe, 0xe5, 0x0b, 0x52,
+ 0x39, 0xd0, 0x37, 0xec, 0x2e, 0x4a, 0x59, 0xdc, 0xeb, 0x0c, 0x38, 0x72, 0x68, 0xf9, 0x82, 0xa0,
+ 0x3a, 0x61, 0xd9, 0xab, 0x2c, 0x7e, 0xa8, 0xe2, 0x3b, 0x83, 0x0a, 0x74, 0xd1, 0xdd, 0xda, 0x75,
+ 0x3b, 0x0e, 0x83, 0x96, 0x93, 0xd3, 0x46, 0x49, 0xca, 0x47, 0xa5, 0x76, 0x07, 0xc1, 0x53, 0x87,
+ 0x3c, 0xc0, 0xc6, 0x25, 0x28, 0x16, 0x89, 0x9e, 0x58, 0x5e, 0x6e, 0x78, 0x60, 0x95, 0x6a, 0x1c,
+ 0x3d, 0xaf, 0x9c, 0x18, 0x97, 0xbb, 0x67, 0x35, 0xa9, 0x9a, 0xc1, 0x7a, 0xb6, 0x89, 0xe3, 0xee,
+ 0x3e, 0x1e, 0x72, 0x5f, 0x95, 0x8f, 0x96, 0x0b, 0x79, 0x15, 0xf3, 0x7c, 0x0f, 0xad, 0xbb, 0x3b,
+ 0x3f, 0x71, 0x28, 0x62, 0x2a, 0x22, 0x78, 0xa0, 0x88, 0xd1, 0x5c, 0x7e, 0xd9, 0xb1, 0x32, 0xc9,
+ 0x40, 0xfc, 0x22, 0x9b, 0xc1, 0xcb, 0x66, 0x88, 0xaa, 0x74, 0x4b, 0x80, 0x7e, 0x0c, 0xdf, 0x6a,
+ 0x41, 0x93, 0x78, 0xa6, 0x7e, 0x66, 0x88, 0x23, 0x5b, 0xb0, 0xe4, 0x82, 0xa8, 0x10, 0x56, 0x98,
+ 0x42, 0x22, 0x96, 0xe1, 0x7c, 0x52, 0x79, 0x1d, 0x8b, 0x3f, 0xd6, 0x84, 0x11, 0x34, 0x0e, 0x4d,
+ 0x43, 0x4d, 0xcc, 0xdc, 0xc3, 0xff, 0x97, 0xb6, 0x7a, 0xfb, 0x79, 0x86, 0xc7, 0x28, 0x87, 0xbf,
+ 0x44, 0x83, 0x89, 0x6f, 0x78, 0x3a, 0x58, 0x61, 0xe8, 0xe2, 0xb2, 0x88, 0xa0, 0x7c, 0xbe, 0x24,
+ 0x45, 0xec, 0xd3, 0x52, 0xc7, 0x97, 0xb6, 0xca, 0x19, 0x26, 0x1d, 0x8a, 0x76, 0x60, 0x37, 0xd6,
+ 0x46, 0x5d, 0x3d, 0x15, 0xc5, 0xa3, 0x47, 0xf4, 0xc9, 0xa9, 0x2f, 0x8c, 0xcf, 0x44, 0x6f, 0x03,
+ 0x47, 0x32, 0x67, 0x28, 0x7a, 0x0e, 0xa9, 0x5f, 0x38, 0x6d, 0x80, 0x8e, 0x19, 0x58, 0xe6, 0xf1,
+ 0x48, 0x02, 0xb7, 0xb0, 0x70, 0xea, 0x1a, 0x99, 0x2e, 0x9b, 0x7a, 0x90, 0x01, 0xec, 0x1d, 0xf6,
+ 0x49, 0x6d, 0xed, 0x8d, 0xcf, 0x47, 0xf4, 0x32, 0xdf, 0x5f, 0xd5, 0x92, 0xd7, 0xf0, 0x94, 0x04,
+ 0x4a, 0xdc, 0x03, 0xca, 0xcd, 0x73, 0x05, 0x0c, 0x0f, 0xd0, 0xe7, 0x94, 0x6e, 0xd4, 0xcc, 0xd1,
+ 0x4b, 0xb3, 0x59, 0xf7, 0x72, 0xde, 0xeb, 0xa7, 0xfe, 0x14, 0x48, 0x96, 0xb8, 0xc8, 0x45, 0x23,
+ 0x4c, 0x7d, 0x1c, 0x44, 0xc9, 0x1b, 0x24, 0x70, 0x6c, 0x0d, 0x83, 0x98, 0xdf, 0x9c, 0x7c, 0xb8,
+ 0x4d, 0x12, 0x46, 0x79, 0x76, 0xb6, 0xca, 0xdb, 0x9d, 0xc9, 0x2c, 0x9a, 0x09, 0x80, 0xf5, 0x4a,
+ 0x4e, 0xa3, 0xa8, 0x3e, 0x74, 0x82, 0x3b, 0xe5, 0x4d, 0x46, 0x1e, 0x9c, 0xb0, 0xa4, 0xad, 0x9f,
+ 0x4f, 0xcc, 0xf2, 0x03, 0xcb, 0x2f, 0xd5, 0x4e, 0xbc, 0x82, 0xb1, 0x9e, 0x66, 0xb8, 0x24, 0x6d,
+ 0x50, 0xc3, 0xcb, 0xcd, 0x60, 0x89, 0x9e, 0xaa, 0x61, 0x69, 0x29, 0xa0, 0x80, 0x0f, 0x98, 0x91,
+ 0x51, 0xac, 0x91, 0xf0, 0xdf, 0x24, 0x70, 0x01, 0x90, 0xad, 0x86, 0xa2, 0x56, 0x13, 0x11, 0x63,
+ 0x52, 0x1d, 0x7f, 0xb7, 0xdd, 0x10, 0x81, 0x3f, 0x40, 0x22, 0xb4, 0xa4, 0xef, 0x37, 0x49, 0xb6,
+ 0x53, 0x72, 0x25, 0x8a, 0x62, 0xbd, 0x6f, 0x94, 0xb1, 0xe6, 0x1b, 0xa6, 0x39, 0x2b, 0xc0, 0x44,
+ 0x54, 0xbc, 0x60, 0x39, 0xd9, 0x78, 0xa0, 0x43, 0x23, 0xff, 0xd0, 0xa8, 0x5e, 0x7f, 0xf9, 0xdf,
+ 0x55, 0xd3, 0x3a, 0x04, 0x66, 0xd5, 0x4e, 0xe8, 0xd2, 0x3b, 0x7f, 0xaa, 0x88, 0x63, 0x70, 0x2d,
+ 0x56, 0x62, 0xd4, 0x43, 0x64, 0xe1, 0xbf, 0xd6, 0x02, 0xb4, 0x4d, 0xac, 0x31, 0x47, 0x28, 0xf8,
+ 0x57, 0x0d, 0x8e, 0x7e, 0xdb, 0x4c, 0x51, 0x7d, 0xf3, 0x70, 0xe2, 0xae, 0xe7, 0x5b, 0xa1, 0x0a,
+ 0x58, 0x3d, 0x5e, 0xe6, 0xd1, 0xa8, 0xe2, 0xbb, 0xe5, 0x86, 0x18, 0xb0, 0xff, 0xef, 0x5a, 0x0d,
+ 0x59, 0x52, 0x04, 0xdb, 0x6e, 0x05, 0x0c, 0x10, 0x14, 0x42, 0xb7, 0xb2, 0x29, 0xf3, 0xd3, 0xff,
+ 0x5a, 0xe3, 0xea, 0x9c, 0x6c, 0x31, 0xfd, 0x2e, 0xc4, 0xcd, 0x85, 0xb4, 0x90, 0xd7, 0x8b, 0x2a,
+ 0x5b, 0x8c, 0xb0, 0xa1, 0xd3, 0x9c, 0x13, 0x85, 0x35, 0x09, 0x2a, 0xb6, 0x46, 0xcb, 0x02, 0xd8,
+ 0x5c, 0x42, 0xf5, 0x12, 0x68, 0x59, 0xdc, 0x52, 0xa7, 0x10, 0xe1, 0xb8, 0x21, 0x9f, 0x3b, 0x43,
+ 0x5d, 0x2d, 0xaf, 0x2f, 0xd7, 0xf4, 0x32, 0xf9, 0x56, 0xd4, 0x4e, 0xba, 0xf7, 0x83, 0xb2, 0xb1,
+ 0x5e, 0x9c, 0x41, 0x68, 0xd5, 0xc0, 0xc3, 0xc7, 0x86, 0x5b, 0x7c, 0xbc, 0x4e, 0xa7, 0xea, 0x64,
+ 0x5f, 0xf3, 0x1b, 0x55, 0x6a, 0x6d, 0x2d, 0x6c, 0x77, 0x9f, 0xd3, 0xbe, 0x98, 0xbb, 0x63, 0x96,
+ 0x60, 0x82, 0x33, 0x37, 0x40, 0x4f, 0x55, 0xcc, 0xff, 0x4e, 0x8f, 0xc0, 0x41, 0x0a, 0x51, 0x5f,
+ 0x61, 0xed, 0x69, 0x0a, 0xff, 0xe2, 0xbb, 0x67, 0x0e, 0x8a, 0x20, 0xc2, 0x97, 0x16, 0xd8, 0xad,
+ 0x62, 0x5c, 0x87, 0x4d, 0xfd, 0xd6, 0x4a, 0x59, 0xde, 0x05, 0x12, 0xc4, 0x2e, 0x32, 0x80, 0x78,
+ 0x63, 0x33, 0xdd, 0x70, 0x42, 0x7b, 0xa4, 0xf2, 0x2f, 0xc1, 0xbd, 0xc6, 0xf8, 0x2e, 0x09, 0x8a,
+ 0x64, 0xfd, 0x98, 0xc3, 0xf9, 0xbe, 0x6b, 0x25, 0xbd, 0xd8, 0x76, 0xc8, 0x9f, 0x7a, 0x30, 0x11,
+ 0x65, 0x92, 0xc2, 0xfe, 0x46, 0x13, 0x85, 0x8e, 0x4c, 0x1c, 0xd9, 0xca, 0x49, 0x66, 0xb9, 0xe3,
+ 0x66, 0x23, 0x2c, 0xb9, 0x44, 0x27, 0x74, 0xb0, 0x9c, 0x93, 0xeb, 0xcc, 0xf0, 0x42, 0xe1, 0x36,
+ 0x67, 0x4c, 0x76, 0x84, 0xfb, 0x8a, 0x9a, 0x1b, 0x6d, 0x57, 0x44, 0xce, 0x26, 0x5e, 0x68, 0xc4,
+ 0x68, 0x7c, 0xa6, 0x1c, 0xf1, 0x6e, 0x29, 0xdd, 0x7b, 0xa1, 0xbe, 0xd0, 0x3e, 0xea, 0x93, 0xc3,
+ 0x69, 0x13, 0xfc, 0x21, 0x4e, 0xc3, 0xc7, 0x76, 0x8a, 0x65, 0x11, 0xd2, 0xe8, 0xf6, 0x1a, 0x31,
+ 0x6a, 0xa2, 0x12, 0x66, 0x4c, 0xf7, 0x36, 0x48, 0x5a, 0xea, 0x23, 0xd4, 0x51, 0xd2, 0x42, 0xe4,
+ 0x6b, 0xcd, 0x48, 0x5b, 0xf3, 0x5a, 0xd8, 0xe3, 0xab, 0x2e, 0x8c, 0xd6, 0x87, 0xce, 0xcb, 0x16,
+ 0x6c, 0x03, 0x0d, 0xe8, 0x48, 0x9f, 0x17, 0x34, 0x39, 0x37, 0x47, 0xd8, 0xe0, 0x9a, 0xf2, 0x8d,
+ 0x6d, 0x6c, 0x57, 0xd5, 0xf7, 0x32, 0xf9, 0x9f, 0xc8, 0xf3, 0xe8, 0xda, 0x36, 0x86, 0x7b, 0x7f,
+ 0x6e, 0xdd, 0xb9, 0x92, 0xf5, 0x06, 0x08, 0xa1, 0x18, 0x7c, 0xda, 0xdc, 0x8f, 0xa2, 0x23, 0xaa,
+ 0x6f, 0xb2, 0xe3, 0xaf, 0x4a, 0xab, 0xe6, 0x0a, 0xe9, 0xb8, 0x75, 0xde, 0x59, 0xbe, 0xaa, 0x58,
+ 0x70, 0xbd, 0xda, 0x61, 0xe1, 0x0d, 0xad, 0xee, 0x34, 0x53, 0xed, 0xe0, 0xbf, 0x09, 0x16, 0xa4,
+ 0x71, 0xd2, 0x80, 0x5c, 0x5e, 0xa0, 0x43, 0x45, 0xc5, 0x97, 0x42, 0xe2, 0x69, 0x15, 0x9f, 0x56,
+ 0x72, 0x63, 0x6e, 0x1b, 0x5c, 0x94, 0xb2, 0x7b, 0x15, 0x18, 0x70, 0xe4, 0xd0, 0x31, 0xc7, 0x83,
+ 0x73, 0x0c, 0x34, 0x26, 0xe3, 0x39, 0x5c, 0xd0, 0xe4, 0xdc, 0xdf, 0xe6, 0x06, 0x2d, 0x4e, 0x71,
+ 0x74, 0xc2, 0x71, 0x95, 0x58, 0xfc, 0x93, 0x07, 0x76, 0xc5, 0x14, 0xe8, 0x61, 0x79, 0x77, 0xea,
+ 0x75, 0xad, 0x2b, 0xa8, 0xe7, 0x51, 0x7d, 0xac, 0x87, 0x01, 0xbb, 0xea, 0xb7, 0x65, 0xfe, 0x18,
+ 0x76, 0x1c, 0xc5, 0xef, 0xe5, 0x65, 0x8c, 0x92, 0x57, 0x8e, 0x89, 0xec, 0x0e, 0x41, 0xa6, 0xcd,
+ 0x77, 0x73, 0x9f, 0xd2, 0x5a, 0xc8, 0x62, 0x39, 0xa6, 0x4a, 0x26, 0xee, 0xd8, 0x5d, 0x2f, 0x3f,
+ 0x78, 0x43, 0x4f, 0x4a, 0x50, 0x2c, 0xd1, 0xff, 0xb0, 0xbc, 0xdc, 0xf0, 0xc0, 0xe9, 0xd4, 0x38,
+ 0x79, 0x2c, 0x15, 0x77, 0xef, 0x81, 0x3f, 0x54, 0x41, 0x78, 0x73, 0xf2, 0x16, 0xf5, 0x5d, 0xca,
+ 0x7a, 0x9d, 0xfb, 0x30, 0xed, 0xb5, 0xce, 0x6a, 0x91, 0xf7, 0x41, 0xf4, 0xaf, 0xd1, 0x05, 0x1f,
+ 0x7b, 0xf2, 0xa1, 0x0d, 0x52, 0x18, 0x20, 0xc1, 0x60, 0x33, 0xee, 0xf6, 0x79, 0xcd, 0x8c, 0xed,
+ 0x7c, 0x3c, 0xe4, 0xbe, 0xe9, 0xdd, 0xef, 0x16, 0xf2, 0x2a, 0x25, 0xf8, 0x1e, 0x99, 0xb5, 0x76,
+ 0x7d, 0x53, 0xbe, 0x83, 0x56, 0x70, 0x01, 0xbd, 0x03, 0xee, 0x8a, 0xfa, 0xc8, 0x85, 0x3c, 0x84,
+ 0x7e, 0xe2, 0x50, 0xc4, 0x54, 0x44, 0xf0, 0x83, 0xd3, 0x61, 0xb8, 0xfc, 0x71, 0xa1, 0x64, 0x51,
+ 0x7f, 0x8d, 0x0a, 0xf9, 0xeb, 0xe9, 0x1e, 0x28, 0x22, 0xa5, 0x17, 0xfe, 0xa7, 0xbd, 0xed, 0xa3,
+ 0x80, 0x3b, 0x44, 0xf5, 0x41, 0x55, 0xcc, 0xd3, 0x97, 0xe8, 0x96, 0xc3, 0xfc, 0x18, 0x7d, 0xd4,
+ 0x81, 0x54, 0x1e, 0xc8, 0xfe, 0xf8, 0x22, 0x78, 0x66, 0x2c, 0x39, 0xc1, 0x2a, 0x04, 0xf4, 0x26,
+ 0x82, 0xe5, 0xf0, 0x8f, 0xfc, 0xcc, 0xd3, 0x46, 0xb6, 0xa3, 0x0b, 0xc7, 0x93, 0x20, 0xac, 0xf3,
+ 0x83, 0x8a, 0xaa, 0xb2, 0x43, 0x61, 0x3d, 0xed, 0x47, 0x67, 0xa4, 0xc5, 0x45, 0x3c, 0x25, 0x01,
+ 0x84, 0x44, 0xef, 0x01, 0xf8, 0xa4, 0xf2, 0x3a, 0xd5, 0x7e, 0x6f, 0xcb, 0x22, 0x68, 0x1c, 0x9a,
+ 0x85, 0x2b, 0xb5, 0x3c, 0x47, 0x09, 0x1c, 0x91, 0x24, 0xba, 0xc0, 0xc9, 0xf4, 0x74, 0x95, 0x68,
+ 0x86, 0x9a, 0x5b, 0x7b, 0x45, 0x3d, 0xed, 0xaf, 0xf4, 0x35, 0xf2, 0xcf, 0x4d, 0x50, 0xcd, 0xbd,
+ 0x87, 0xf5, 0x01, 0x46, 0xfa, 0x90, 0x03, 0x04, 0x05, 0xf1, 0x5d, 0xcd, 0x9b, 0x4c, 0x44, 0x4f,
+ 0x88, 0xc5, 0xd1, 0xde, 0xf0, 0x74, 0xb0, 0xc2, 0x13, 0x07, 0xa7, 0xd3, 0x83, 0xf8, 0xbf, 0x48,
+ 0x89, 0xaa, 0x8b, 0xe3, 0x4f, 0xd9, 0x5e, 0x69, 0xe2, 0xc3, 0x08, 0xd1, 0x55, 0xe4, 0x36, 0xba,
+ 0x8a, 0x1b, 0x65, 0xa4, 0x4d, 0xed, 0xaf, 0x57, 0x32, 0x4c, 0x3a, 0xd7, 0xec, 0xc0, 0x6e, 0x6f,
+ 0x8b, 0x74, 0x3f, 0x99, 0xf2, 0x40, 0x41, 0xfc, 0xc3, 0x88, 0x95, 0xd5, 0x3a, 0xdc, 0xe7, 0x9d,
+ 0x8c, 0xba, 0x7a, 0x2a, 0x49, 0x85, 0x8e, 0x2b, 0x51, 0x91, 0x5e, 0xdb, 0x5d, 0x88, 0xde, 0x06,
+ 0x8d, 0xd5, 0x20, 0x17, 0xf6, 0x28, 0x60, 0x80, 0xa0, 0x55, 0xf1, 0xd9, 0x8b, 0x94, 0x57, 0xf4,
+ 0x8e, 0x64, 0xce, 0x50, 0xf4, 0x1c, 0x91, 0xbe, 0x70, 0xda, 0xc3, 0xdf, 0x32, 0xb0, 0x0f, 0x21,
+ 0x8f, 0x0b, 0x94, 0x6d, 0x4b, 0xb1, 0x7f, 0x15, 0x81, 0x1e, 0x6c, 0xdd, 0xe4, 0xac, 0x86, 0xd3,
+ 0x90, 0x04, 0xad, 0xa3, 0xe0, 0x17, 0x34, 0xf1, 0x5c, 0xf5, 0xf4, 0xe3, 0x02, 0x1b, 0x3a, 0x2f,
+ 0x91, 0x6b, 0xf7, 0x9e, 0x5f, 0xba, 0xda, 0x5a, 0xad, 0x31, 0x5b, 0xe1, 0xd4, 0x07, 0xb3, 0xdd,
+ 0x92, 0xda, 0x19, 0xd9, 0x5d, 0x8e, 0x2b, 0x64, 0x7d, 0xbe, 0x69, 0xe7, 0x6d, 0x23, 0xeb, 0x08,
+ 0x93, 0xb5, 0x43, 0xe4, 0xe2, 0x23, 0xc5, 0xcf, 0x8c, 0x7a, 0xc6, 0xe5, 0xbb, 0x3f, 0x62, 0xfa,
+ 0x94, 0x7b, 0x06, 0x57, 0x59, 0xe6, 0x0a, 0x18, 0x1e, 0x63, 0x0d, 0xeb, 0xdc, 0x6b, 0x5b, 0x61,
+ 0x95, 0x14, 0x5c, 0x6a, 0xe6, 0x4b, 0xe4, 0xb3, 0xef, 0xa7, 0xa2, 0xe9, 0x0a, 0x77, 0xd2, 0x93,
+ 0x96, 0xa5, 0xb2, 0x2d, 0xe4, 0x7f, 0x15, 0x8d, 0x3f, 0x28, 0x90, 0xef, 0xb3, 0x53, 0x8a, 0x46,
+ 0x97, 0xca, 0xe8, 0x10, 0x5b, 0xd2, 0xfb, 0x26, 0xce, 0xec, 0x3f, 0xed, 0x65, 0x4f, 0x03, 0xb4,
+ 0x98, 0xfa, 0x38, 0x88, 0x51, 0x36, 0x48, 0xe0, 0xd8, 0x1a, 0xc5, 0xf3, 0x7d, 0xfb, 0xf8, 0xb3,
+ 0x99, 0x95, 0x62, 0xb5, 0xee, 0x9b, 0xa6, 0x4b, 0x29, 0xde, 0x6a, 0xf1, 0xab, 0xe7, 0x71, 0x41,
+ 0x9a, 0x24, 0x8c, 0xf2, 0xec, 0xaf, 0x57, 0x75, 0xf9, 0x51, 0x58, 0xf7, 0x12, 0xc3, 0x29, 0x94,
+ 0x9b, 0x4b, 0xd6, 0xcf, 0x53, 0x02, 0xb9, 0xde, 0x08, 0x95, 0xf7, 0xf5, 0xc4, 0xdf, 0xa0, 0x66,
+ 0x9c, 0x85, 0x93, 0x7c, 0xe8, 0xc7, 0x76, 0x09, 0x9a, 0x8c, 0x3c, 0xfb, 0xa3, 0x8b, 0x99, 0xfd,
+ 0x9d, 0xea, 0xc9, 0x41, 0x57, 0x6a, 0x98, 0xa2, 0x6b, 0x48, 0x93, 0xf9, 0x75, 0x97, 0x10, 0x0f,
+ 0x9e, 0x5b, 0x27, 0x06, 0x55, 0x5e, 0x69, 0x9c, 0xbb, 0xc7, 0xa1, 0xff, 0xcc, 0xb3, 0x48, 0xda,
+ 0x9f, 0x34, 0x7d, 0x3b, 0xea, 0xf3, 0x87, 0x37, 0x4a, 0x03, 0x0e, 0xfd, 0x1a, 0xaf, 0xc1, 0x28,
+ 0xa0, 0x45, 0x55, 0x59, 0xc0, 0xd1, 0xff, 0x97, 0xc2, 0xd2, 0x52, 0x83, 0xc3, 0x1e, 0xf3, 0xe1,
+ 0xa1, 0x2a, 0x0f, 0x64, 0x7f, 0x7c, 0x11, 0x3c, 0x33, 0x16, 0xfd, 0x81, 0x15, 0x02, 0x7a, 0x13,
+ 0xa2, 0x9b, 0xe1, 0x23, 0x7d, 0x48, 0xe0, 0x02, 0xe3, 0x99, 0xcf, 0x87, 0xac, 0x26, 0x22, 0xc6,
+ 0xa3, 0xf4, 0xbb, 0x1e, 0xc2, 0xe5, 0x0e, 0xa9, 0x12, 0x5d, 0x60, 0x85, 0x7a, 0x3a, 0xab, 0x34,
+ 0xa4, 0x3a, 0xfe, 0xad, 0x79, 0x20, 0xc1, 0x7e, 0x80, 0x44, 0xab, 0x8b, 0x1d, 0x6e, 0x92, 0xaf,
+ 0xa5, 0x55, 0xa4, 0x90, 0xc6, 0x8d, 0x2f, 0xd5, 0x71, 0x80, 0x04, 0x89, 0xcb, 0x72, 0x1b, 0x5d,
+ 0xa6, 0xe4, 0x4a, 0xd7, 0xc4, 0xb9, 0xde, 0xeb, 0xa1, 0x0f, 0x36, 0x8f, 0x72, 0x56, 0x43, 0x88,
+ 0xa7, 0x8b, 0x10, 0xea, 0x7b, 0x14, 0x30, 0x40, 0x50, 0xcb, 0x99, 0x8d, 0xa4, 0x4a, 0xca, 0x7a,
+ 0xa8, 0xbb, 0xc0, 0x72, 0x71, 0xf0, 0x83, 0x86, 0x46, 0x3d, 0x63, 0x93, 0xbc, 0xfe, 0x31, 0x7d,
+ 0xa9, 0xd4, 0x9a, 0x4f, 0xce, 0x5d, 0x6d, 0x2d, 0xb7, 0xf9, 0xcc, 0x91, 0x6a, 0xe2, 0xb8, 0x8f,
+ 0xaa, 0x65, 0x74, 0x08, 0xcc, 0x69, 0x9c, 0x13, 0x67, 0x76, 0xfe, 0x97, 0xd3, 0xc6, 0xe0, 0x5a,
+ 0xab, 0x0a, 0x2e, 0x35, 0x73, 0xc4, 0x72, 0xb8, 0x96, 0xb2, 0x51, 0x95, 0x05, 0xda, 0x69, 0xa8,
+ 0xac, 0xc4, 0x6b, 0x86, 0xc8, 0x01, 0xbd, 0x6f, 0x04, 0xab, 0x9a, 0x9b, 0x62, 0x8e, 0x50, 0x33,
+ 0xad, 0xab, 0x31, 0xbb, 0x77, 0xac, 0x53, 0xc4, 0xf5, 0x6f, 0x35, 0x99, 0xb4, 0x92, 0xd9, 0xc1,
+ 0xae, 0x1a, 0xdf, 0xfc, 0x75, 0x98, 0xa2, 0xfa, 0x25, 0xe0, 0x07, 0x9f, 0x0d, 0xb6, 0x81, 0x14,
+ 0xaf, 0x75, 0x85, 0xc1, 0xca, 0x35, 0x4c, 0x51, 0xd4, 0x24, 0xa8, 0x9d, 0xdb, 0xaa, 0x08, 0xe6,
+ 0xb0, 0x7a, 0xbc, 0x0f, 0x61, 0x93, 0x07, 0xb5, 0x09, 0xcf, 0x30, 0xa3, 0x3d, 0x1d, 0xb4, 0x1a,
+ 0xb1, 0x15, 0xe6, 0x32, 0xde, 0x3e, 0xe9, 0x1e, 0xf8, 0x0b, 0x9f, 0xa1, 0xeb, 0x01, 0x3d, 0xe8,
+ 0xb2, 0xa4, 0x08, 0x75, 0xdc, 0x0a, 0x18, 0x20, 0x28, 0x84, 0xad, 0xa7, 0x52, 0x25, 0x65, 0x3d,
+ 0xb3, 0xcb, 0x52, 0x48, 0x63, 0xa7, 0xf6, 0x8b, 0xd9, 0x40, 0x02, 0xa5, 0x84, 0x39, 0xec, 0xcf,
+ 0xb4, 0x05, 0x17, 0xfb, 0xd8, 0x62, 0x39, 0x5c, 0x4b, 0x59, 0xc9, 0xab, 0xe3, 0x6d, 0xd5, 0x54,
+ 0xb5, 0x6a, 0x4d, 0xc6, 0x67, 0xcf, 0xd7, 0xf7, 0xba, 0x9d, 0x66, 0xa9, 0x35, 0x71, 0x5c, 0xa6,
+ 0xb6, 0xdb, 0xa3, 0x81, 0x65, 0xfb, 0x26, 0xc9, 0x6a, 0x12, 0x54, 0xaf, 0x8c, 0x55, 0x04, 0x73,
+ 0xb7, 0xb4, 0xf9, 0xbc, 0xda, 0x56, 0xc8, 0x62, 0x9b, 0xd6, 0xfb, 0xad, 0x5a, 0x49, 0x8d, 0x81,
+ 0xb8, 0x84, 0x29, 0x24, 0xd0, 0xb2, 0x7b, 0xa4, 0x8d, 0x20, 0x01, 0xb3, 0x42, 0xfd, 0x76, 0x86,
+ 0xb9, 0xeb, 0x73, 0x19, 0x6f, 0x1f, 0x95, 0x0f, 0x7c, 0xe4, 0xae, 0xb1, 0x94, 0xe1, 0xff, 0x74,
+ 0xba, 0x5a, 0x9d, 0x5e, 0x6d, 0x2b, 0x64, 0x31, 0xac, 0x6b, 0x9c, 0xb7, 0x2d, 0xc5, 0xa7, 0xa1,
+ 0xbb, 0x35, 0xc7, 0x63, 0xd2, 0x86, 0x8a, 0x9a, 0x5d, 0xaf, 0x33, 0xb5, 0xfb, 0xd9, 0x2e, 0x53,
+ 0xbc, 0xfb, 0x82, 0xd0, 0x69, 0x43, 0x45, 0x4d, 0xcf, 0xb6, 0xf8, 0xbb, 0x9c, 0x8d, 0x17, 0xc8,
+ 0xbd, 0x94, 0xd8, 0xed, 0xd6, 0xee, 0xab, 0xe6, 0x3e, 0x72, 0x57, 0xb9, 0x4a, 0x91, 0x9e, 0x3a,
+ 0xbe, 0x25, 0x36, 0xaa, 0xd4, 0xda, 0x5a, 0xd8, 0xee, 0xfd, 0x65, 0xbf, 0xf3, 0xb5, 0xc6, 0xef,
+ 0xbf, 0x4a, 0x6c, 0x97, 0x6b, 0x77, 0xb4, 0x73, 0x1f, 0x39, 0xca, 0xbd, 0x25, 0xa9, 0x4f, 0x1d,
+ 0xc0, 0xc7, 0x66, 0x6e, 0x80, 0x9e, 0xaa, 0x5b, 0x3d, 0x9c, 0xdd, 0x43, 0x82, 0x14, 0xa2, 0xbe,
+ 0xc1, 0xa8, 0x3c, 0x53, 0x3f, 0x33, 0x44, 0xf0, 0xcc, 0x58, 0x72, 0x41, 0x54, 0x08, 0x2b, 0x4c,
+ 0xc2, 0x19, 0xd2, 0x14, 0x3d, 0x07, 0xb5, 0xce, 0x1c, 0xd7, 0x40, 0x47, 0xed, 0x2c, 0x73, 0x99,
+ 0xc3, 0x76, 0x88, 0x29, 0x82, 0xaa, 0x5b, 0x65, 0xed, 0x13, 0xef, 0x45, 0x3b, 0x30, 0xfa, 0x6b,
+ 0xc4, 0xb8, 0xcd, 0x9a, 0x39, 0x6f, 0x94, 0xb2, 0x7f, 0x0a, 0x24, 0x4b, 0x5c, 0x64, 0xc3, 0xf0,
+ 0xc5, 0xd7, 0x97, 0xa7, 0x86, 0xc2, 0x7a, 0x19, 0x8e, 0xce, 0x8b, 0x49, 0x8a, 0x78, 0x4a, 0x02,
+ 0xc6, 0x66, 0x79, 0xe0, 0x84, 0xf6, 0x8b, 0x27, 0x5e, 0x41, 0xb9, 0x4f, 0x33, 0x5c, 0x12, 0xd7,
+ 0xc7, 0x09, 0x23, 0xdd, 0x3b, 0x5b, 0x65, 0x8c, 0xaf, 0x85, 0x16, 0x4d, 0xe5, 0x40, 0x9b, 0x25,
+ 0xc8, 0x39, 0xf3, 0x45, 0x31, 0xbf, 0xd6, 0x4a, 0xb9, 0x73, 0xec, 0x53, 0xfd, 0xf4, 0x60, 0x22,
+ 0xc9, 0x56, 0xa9, 0x78, 0x8e, 0x12, 0x38, 0xe1, 0x48, 0xb7, 0x43, 0x51, 0x2b, 0xe8, 0xe9, 0xd0,
+ 0xca, 0xe7, 0x47, 0x3f, 0x8c, 0x26, 0xc9, 0xdf, 0x98, 0x38, 0x71, 0x57, 0x92, 0xcc, 0xb1, 0x05,
+ 0xcb, 0x88, 0x1d, 0x02, 0x33, 0x8b, 0x27, 0x74, 0x69, 0xfc, 0xde, 0x55, 0x44, 0xd0, 0x38, 0xf7,
+ 0xcc, 0x46, 0x58, 0xb1, 0x88, 0x4e, 0xe8, 0xa3, 0xfb, 0xe5, 0x15, 0x5b, 0x23, 0x84, 0x01, 0x6c,
+ 0xcd, 0x29, 0x02, 0x8c, 0x37, 0xe3, 0x06, 0x08, 0x0a, 0x21, 0xba, 0x59, 0xf5, 0x98, 0x88, 0x9e,
+ 0xce, 0x98, 0xec, 0xcb, 0x35, 0xd7, 0xf7, 0x36, 0xda, 0xae, 0x88, 0x5f, 0x4c, 0xbc, 0xd0, 0x4b,
+ 0xcf, 0xf7, 0xb6, 0xf6, 0x8a, 0x7a, 0x19, 0x9d, 0x2b, 0x6a, 0x27, 0x5d, 0x9a, 0xa0, 0x59, 0xb9,
+ 0xd0, 0xf8, 0x8f, 0x38, 0x21, 0xdc, 0x52, 0x79, 0xf6, 0x81, 0xbf, 0x63, 0x7c, 0x17, 0xe5, 0x45,
+ 0xd1, 0x97, 0xd5, 0x05, 0x9e, 0x71, 0xbc, 0xd2, 0x07, 0x45, 0x10, 0x61, 0xaa, 0x0b, 0x6c, 0xb7,
+ 0xd2, 0x26, 0x3b, 0x42, 0x9c, 0x45, 0x4d, 0xec, 0xd7, 0xca, 0x22, 0x67, 0x13, 0x2f, 0x34, 0x62,
+ 0xd3, 0x49, 0x61, 0x7f, 0x23, 0xe8, 0xa3, 0x47, 0x26, 0x0e, 0x8d, 0x65, 0xc5, 0x33, 0xbd, 0x90,
+ 0xd4, 0x87, 0x24, 0xcc, 0x98, 0x2d, 0x6c, 0x90, 0xb4, 0x17, 0x46, 0x6b, 0xa2, 0x67, 0x84, 0x0b,
+ 0xd5, 0xe8, 0x7e, 0xf1, 0x27, 0x80, 0x82, 0x3b, 0x45, 0xd3, 0xe9, 0x69, 0x74, 0x7b, 0x0d, 0xf9,
+ 0xd6, 0x59, 0x90, 0xb6, 0x25, 0xb4, 0x73, 0x05, 0x95, 0x5c, 0xdb, 0x6f, 0xcd, 0x5f, 0x55, 0x2c,
+ 0xd7, 0x36, 0xca, 0x8b, 0x9a, 0x19, 0x9d, 0xae, 0x64, 0x98, 0x74, 0x6d, 0x1b, 0x43, 0xdc, 0xde,
+ 0xd8, 0x06, 0x1a, 0x13, 0x90, 0xfd, 0x2e, 0x68, 0x72, 0x6e, 0x8e, 0x73, 0x03, 0xf7, 0x27, 0xd9,
+ 0xd9, 0x69, 0x40, 0x2e, 0x2f, 0x50, 0xc0, 0xc3, 0x83, 0xaa, 0x21, 0x71, 0xd5, 0xeb, 0xae, 0x2b,
+ 0xda, 0xd8, 0xae, 0x69, 0x2d, 0x64, 0x31, 0xfd, 0x53, 0x25, 0x13, 0x77, 0x6c, 0xcf, 0xf6, 0xfe,
+ 0xdb, 0xb7, 0xf4, 0x54, 0x92, 0xc9, 0xdf, 0x56, 0xa2, 0xe1, 0xbc, 0x75, 0xba, 0xd3, 0x7f, 0x0c,
+ 0xdc, 0x79, 0xb1, 0xe7, 0x29, 0x0c, 0x10, 0x81, 0x30, 0xf8, 0x77, 0x7b, 0xdd, 0x87, 0x46, 0x97,
+ 0xdd, 0x16, 0xeb, 0xda, 0x96, 0xa1, 0xfe, 0x2a, 0xc1, 0x3c, 0xd8, 0x79, 0x0b, 0x9b, 0xcf, 0x65,
+ 0xde, 0xa7, 0x05, 0x9d, 0x94, 0x95, 0x0f, 0x14, 0x11, 0xb3, 0xea, 0x7f, 0xb2, 0xbf, 0x97, 0xb0,
+ 0xdf, 0xc8, 0x5f, 0xa0, 0x2b, 0x38, 0xe1, 0xbf, 0xe0, 0x77, 0x45, 0x7d, 0x64, 0xa3, 0x1e, 0x42,
+ 0xe0, 0xb9, 0x77, 0xc2, 0x01, 0x1a, 0x99, 0x1f, 0x68, 0xa6, 0x19, 0x03, 0xbd, 0x12, 0x2c, 0x8b,
+ 0xe1, 0xd6, 0x2d, 0xff, 0xbe, 0xb7, 0x77, 0xb4, 0x99, 0x62, 0xb6, 0x01, 0x6b, 0x0e, 0xa5, 0x79,
+ 0xe2, 0x67, 0xc3, 0xb8, 0xbc, 0x83, 0x86, 0x8a, 0x49, 0xed, 0x84, 0x07, 0xd2, 0x2a, 0xfd, 0xac,
+ 0xe3, 0x08, 0x99, 0x85, 0x03, 0x2e, 0x68, 0x21, 0xb8, 0x29, 0x2b, 0x05, 0x04, 0x36, 0x74, 0x5e,
+ 0xe4, 0xc6, 0xdc, 0x36, 0xb8, 0xeb, 0xa7, 0xf6, 0x2a, 0x30, 0xe0, 0x0b, 0x63, 0x62, 0x4d, 0xc5,
+ 0xe5, 0xa9, 0x86, 0x0b, 0x07, 0x46, 0x49, 0x5d, 0xdb, 0xf4, 0x4f, 0x09, 0xb5, 0x7e, 0xc4, 0x37,
+ 0xe6, 0x18, 0x68, 0x4c, 0x05, 0x72, 0xb8, 0x63, 0x0b, 0x7b, 0x7d, 0x0f, 0x0c, 0x5a, 0x9c, 0xe2,
+ 0xe7, 0x77, 0x32, 0x71, 0xba, 0xdf, 0x56, 0xc8, 0xfa, 0xbf, 0xd2, 0x0d, 0xda, 0x46, 0x15, 0x10,
+ 0xe8, 0x47, 0xe2, 0xe9, 0xb0, 0x3b, 0xe5, 0x0e, 0xec, 0x49, 0x28, 0x13, 0xc2, 0xf2, 0xee, 0x17,
+ 0xe9, 0x28, 0xb8, 0xd4, 0x0f, 0x96, 0x0b, 0xa5, 0x1d, 0x8d, 0x87, 0x11, 0x14, 0xee, 0x67, 0xe5,
+ 0xea, 0x99, 0x56, 0x93, 0x0d, 0xa2, 0xfa, 0x9b, 0xcd, 0x02, 0xb5, 0x17, 0xad, 0xca, 0x3f, 0x30,
+ 0xeb, 0xf6, 0x0c, 0xae, 0xb2, 0x0f, 0x14, 0x30, 0x3c, 0xc6, 0x1a, 0x15, 0x7b, 0xd6, 0xb6, 0xc2,
+ 0xec, 0x38, 0x49, 0x1d, 0x09, 0xca, 0xdb, 0xe7, 0xae, 0xdf, 0xd1, 0x1b, 0x1c, 0x82, 0x8f, 0x59,
+ 0xed, 0x57, 0x13, 0x20, 0xb6, 0x67, 0x35, 0x4c, 0x5f, 0x1b, 0x7e, 0x19, 0xca, 0x9e, 0x06, 0xab,
+ 0xee, 0xe6, 0xfd, 0x67, 0xb4, 0x53, 0xc4, 0x72, 0x8f, 0x94, 0x4c, 0x1f, 0x73, 0xba, 0x5e, 0x7e,
+ 0xef, 0x89, 0xa7, 0x5a, 0x0b, 0xfe, 0x2a, 0xd9, 0x7e, 0x50, 0xe3, 0x1d, 0xa5, 0xa6, 0xd7, 0x8c,
+ 0xf0, 0x86, 0x9e, 0x94, 0xa0, 0x58, 0x61, 0x3d, 0xa3, 0xbb, 0x7b, 0x23, 0x43, 0x11, 0x6b, 0x70,
+ 0xf1, 0xe9, 0xc4, 0xa9, 0x1f, 0xf5, 0x8f, 0x96, 0x52, 0x7f, 0xd4, 0x21, 0x95, 0x0d, 0xe2, 0x82,
+ 0xf2, 0x58, 0x2a, 0xee, 0x1d, 0xc1, 0x7e, 0xa8, 0x82, 0xf0, 0xe6, 0x27, 0x2c, 0x29, 0xba, 0x57,
+ 0xf3, 0x37, 0x70, 0xd3, 0xa2, 0x6c, 0x90, 0x03, 0x73, 0x34, 0x49, 0x25, 0xfa, 0x35, 0x33, 0xa5,
+ 0xf4, 0xf9, 0x35, 0x60, 0x19, 0xa9, 0x5f, 0xd4, 0xe1, 0x2d, 0x82, 0x2b, 0x9d, 0x61, 0x0a, 0x3e,
+ 0xf5, 0x96, 0x6f, 0x5d, 0xa6, 0x04, 0xb1, 0x7f, 0x10, 0xe9, 0x2d, 0x29, 0x4b, 0x7d, 0x83, 0xcc,
+ 0xf6, 0x27, 0x81, 0x1a, 0xa4, 0x30, 0x40, 0x41, 0xc0, 0x66, 0x1f, 0x2f, 0xf2, 0x59, 0xdb, 0x19,
+ 0xf7, 0x48, 0xdb, 0x27, 0x1b, 0x9d, 0xae, 0xea, 0x31, 0xa2, 0xb0, 0x2d, 0x24, 0x45, 0x52, 0xeb,
+ 0xf8, 0x78, 0x0b, 0xbf, 0x11, 0x79, 0x1d, 0x2c, 0x27, 0x54, 0x4a, 0x33, 0x3c, 0xf1, 0xa9, 0xec,
+ 0xf9, 0x17, 0x51, 0x82, 0xae, 0xd4, 0xf3, 0x87, 0xd6, 0x90, 0xe5, 0x31, 0xea, 0xed, 0x20, 0x1e,
+ 0xfa, 0xa6, 0xbf, 0xc5, 0xac, 0xe0, 0x02, 0xb9, 0x06, 0x1f, 0xd7, 0x37, 0x53, 0xc9, 0x78, 0xcb,
+ 0xfb, 0xc9, 0xe5, 0xf8, 0x13, 0x4d, 0xec, 0x12, 0xf7, 0xdb, 0x78, 0x35, 0x85, 0xd5, 0xf1, 0x39,
+ 0xfc, 0x07, 0xa0, 0x4b, 0xa8, 0x88, 0x23, 0xc5, 0x65, 0xc2, 0xb3, 0x3b, 0xe2, 0x81, 0xc8, 0xa2,
+ 0xfd, 0x68, 0xfa, 0x76, 0x17, 0x25, 0xcd, 0x6e, 0x94, 0x06, 0x1c, 0x39, 0x34, 0x9d, 0x41, 0x50,
+ 0xfe, 0xd9, 0x14, 0x31, 0x15, 0x11, 0x3c, 0x50, 0x44, 0x89, 0x2e, 0x3f, 0x8d, 0xb9, 0x19, 0x85,
+ 0xff, 0xb6, 0x4e, 0x0c, 0xaa, 0xbc, 0xd2, 0xfb, 0xb5, 0x4d, 0x81, 0x3d, 0x5b, 0xa5, 0x90, 0x77,
+ },
+ { /* 10 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xc0, 0x77, 0x44, 0x94, 0x60, 0x7c, 0x12, 0x8d, 0x2e, 0x2d, 0xbc, 0xeb, 0x11, 0x43, 0x48, 0x8e,
+ 0x43, 0xee, 0x88, 0xeb, 0xc0, 0xf8, 0x24, 0xd9, 0x5c, 0x5a, 0xbb, 0x15, 0x22, 0x86, 0x90, 0xdf,
+ 0x83, 0x99, 0xcc, 0x7f, 0xa0, 0x84, 0x36, 0x54, 0x72, 0x77, 0x07, 0xfe, 0x33, 0xc5, 0xd8, 0x51,
+ 0x86, 0x1f, 0xd3, 0x15, 0x43, 0x33, 0x48, 0x71, 0xb8, 0xb4, 0xb5, 0x2a, 0x44, 0xcf, 0xe3, 0x7d,
+ 0x46, 0x68, 0x97, 0x81, 0x23, 0x4f, 0x5a, 0xfc, 0x96, 0x99, 0x09, 0xc1, 0x55, 0x8c, 0xab, 0xf3,
+ 0xc5, 0xf1, 0x5b, 0xfe, 0x83, 0xcb, 0x6c, 0xa8, 0xe4, 0xee, 0x0e, 0x3f, 0x66, 0x49, 0x73, 0xa2,
+ 0x05, 0x86, 0x1f, 0x6a, 0xe3, 0xb7, 0x7e, 0x25, 0xca, 0xc3, 0xb2, 0xd4, 0x77, 0x0a, 0x3b, 0x2c,
+ 0xcf, 0x3e, 0x65, 0x2a, 0x86, 0x66, 0x90, 0xe2, 0xb3, 0xab, 0xa9, 0x54, 0x88, 0x5d, 0x05, 0xfa,
+ 0x0f, 0x49, 0x21, 0xbe, 0xe6, 0x1a, 0x82, 0x6f, 0x9d, 0x86, 0x15, 0xbf, 0x99, 0x1e, 0x4d, 0x74,
+ 0x8c, 0xd0, 0xed, 0xc1, 0x46, 0x9e, 0xb4, 0x3b, 0xef, 0xf1, 0x12, 0x41, 0xaa, 0xdb, 0x95, 0x25,
+ 0x4c, 0xa7, 0xa9, 0x55, 0x26, 0xe2, 0xa6, 0xb6, 0xc1, 0xdc, 0xae, 0xaa, 0xbb, 0x98, 0xdd, 0xab,
+ 0x49, 0x21, 0xb6, 0x3f, 0xc5, 0x55, 0xd8, 0x93, 0x0b, 0x1f, 0x1c, 0x7e, 0xcc, 0x92, 0xe6, 0x87,
+ 0x89, 0x56, 0xf2, 0xab, 0xa5, 0x29, 0xca, 0x1e, 0x25, 0x32, 0xa0, 0x95, 0xdd, 0xd1, 0xae, 0x09,
+ 0x0a, 0xcf, 0x3e, 0xd4, 0x05, 0xad, 0xfc, 0x4a, 0x57, 0x45, 0xa7, 0x6b, 0xee, 0x14, 0x76, 0x58,
+ 0xca, 0xb8, 0x7a, 0x40, 0x65, 0xd1, 0xee, 0xc7, 0x79, 0x68, 0x1b, 0x80, 0xff, 0x57, 0x3e, 0xd6,
+ 0x5d, 0x7c, 0xca, 0x54, 0xcf, 0xcc, 0xe3, 0x07, 0xa5, 0x95, 0x91, 0xa8, 0xd3, 0xba, 0x0a, 0x37,
+ 0x9d, 0x0b, 0x8e, 0xc0, 0xaf, 0xb0, 0xf1, 0x8a, 0x8b, 0xb8, 0x2d, 0x43, 0xc2, 0xf9, 0x42, 0xb9,
+ 0x1e, 0x92, 0x42, 0xbf, 0x0f, 0x34, 0xc7, 0xde, 0xf9, 0xcf, 0x2a, 0xbd, 0xf1, 0x3c, 0x9a, 0xe8,
+ 0xde, 0xe5, 0x06, 0x2b, 0x6f, 0x48, 0xd5, 0x53, 0xd7, 0xe2, 0x96, 0x56, 0xe0, 0x7f, 0xd2, 0x66,
+ 0xdb, 0x63, 0x19, 0x41, 0x8c, 0xff, 0xab, 0x76, 0x1d, 0x21, 0x24, 0x82, 0x97, 0x75, 0xe9, 0x4a,
+ 0x1b, 0x14, 0x5d, 0xd5, 0xec, 0x83, 0xb9, 0xfb, 0x33, 0x0c, 0x98, 0x69, 0x86, 0x36, 0xa1, 0xc4,
+ 0x98, 0x8d, 0x91, 0xaa, 0x4c, 0x07, 0x8f, 0xaf, 0x41, 0x7b, 0x9f, 0x97, 0xb5, 0xf3, 0x79, 0x95,
+ 0x58, 0xfa, 0xd5, 0x3e, 0x2c, 0x7b, 0x9d, 0x22, 0x6f, 0x56, 0x23, 0x7c, 0xa4, 0xb0, 0x31, 0x1b,
+ 0x92, 0x42, 0xaf, 0x7e, 0x49, 0xaa, 0x73, 0xe5, 0x16, 0x3e, 0x38, 0xfc, 0x5b, 0xe7, 0x0f, 0xcd,
+ 0x52, 0x35, 0xeb, 0xea, 0x29, 0xd6, 0x61, 0x68, 0x38, 0x13, 0x84, 0x17, 0x4a, 0xa4, 0x47, 0x43,
+ 0xd1, 0xac, 0x27, 0x95, 0x89, 0x52, 0x57, 0x3c, 0x4a, 0x64, 0x83, 0xe9, 0x79, 0x61, 0x9f, 0x12,
+ 0x11, 0xdb, 0x63, 0x01, 0xe9, 0x2e, 0x45, 0xb1, 0x64, 0x49, 0x3f, 0x02, 0x68, 0x22, 0xd7, 0x9c,
+ 0x14, 0x5d, 0x7c, 0x6b, 0x0a, 0x99, 0x3b, 0x94, 0xae, 0x8a, 0x8d, 0xd6, 0x1f, 0x28, 0xec, 0xb0,
+ 0xd4, 0x2a, 0x38, 0xff, 0x6a, 0xe5, 0x29, 0x19, 0x80, 0xa7, 0x31, 0x3d, 0x0e, 0x6b, 0xa4, 0x3e,
+ 0x57, 0xb3, 0xf4, 0x80, 0xca, 0x61, 0x1f, 0x4d, 0xf2, 0xd0, 0x36, 0xc3, 0x3d, 0xae, 0x7c, 0x6f,
+ 0x97, 0xc4, 0xb0, 0x14, 0xaa, 0x1d, 0x0d, 0xc0, 0xdc, 0xfd, 0x8a, 0x28, 0x2c, 0xed, 0x34, 0xe1,
+ 0xba, 0xf8, 0x57, 0xa8, 0x5d, 0x5b, 0x05, 0x0e, 0x89, 0xe9, 0xe1, 0x93, 0x65, 0xb7, 0x14, 0x6e,
+ 0x7a, 0x8f, 0x13, 0x3c, 0x3d, 0x27, 0x17, 0x83, 0xa7, 0xc4, 0x5d, 0x78, 0x74, 0xf4, 0x5c, 0xe0,
+ 0xf9, 0x16, 0xdf, 0x43, 0x9d, 0xa3, 0x21, 0xd7, 0xd5, 0xb3, 0x5a, 0x86, 0x47, 0x31, 0x84, 0xb1,
+ 0x39, 0x61, 0x9b, 0xd7, 0xfd, 0xdf, 0x33, 0x5a, 0xfb, 0x9e, 0xe6, 0x6d, 0x56, 0x72, 0xcc, 0x3f,
+ 0x3c, 0xe7, 0x84, 0xbd, 0x1e, 0x68, 0x4d, 0x7f, 0x31, 0x5d, 0x54, 0xb9, 0x21, 0x78, 0xf7, 0x13,
+ 0xfc, 0x90, 0xc0, 0x29, 0x7e, 0x14, 0x5f, 0xf2, 0x1f, 0x70, 0xe8, 0x52, 0x30, 0x3b, 0xbf, 0x9d,
+ 0x7f, 0x09, 0x0c, 0x56, 0xde, 0x90, 0x69, 0xa6, 0x6d, 0x07, 0xef, 0xac, 0x03, 0xfe, 0x67, 0xcc,
+ 0xbf, 0x7e, 0x48, 0xc2, 0xbe, 0xec, 0x7b, 0x2b, 0x43, 0x2a, 0x53, 0x47, 0x12, 0xbd, 0x2f, 0x42,
+ 0x75, 0xc6, 0x32, 0x82, 0xdb, 0x3d, 0x95, 0xec, 0x3a, 0x42, 0x48, 0xc7, 0xed, 0xea, 0x11, 0x94,
+ 0xb5, 0xb1, 0x76, 0x16, 0xbb, 0x41, 0x87, 0x61, 0x14, 0x6f, 0xf4, 0x2c, 0xfc, 0xa9, 0x59, 0x1a,
+ 0x36, 0x28, 0xba, 0x69, 0x1b, 0xc5, 0xb1, 0x35, 0x66, 0x18, 0xf3, 0xd2, 0xcf, 0x6c, 0x81, 0x4b,
+ 0xf6, 0x5f, 0xfe, 0xfd, 0x7b, 0xb9, 0xa3, 0xb8, 0x48, 0x35, 0x4f, 0x39, 0xde, 0x2f, 0xc9, 0xc5,
+ 0xf3, 0xd9, 0xe1, 0x97, 0x98, 0x0e, 0xdd, 0x9d, 0x82, 0xf6, 0xfd, 0xed, 0xa9, 0x25, 0xf2, 0xe9,
+ 0x33, 0xae, 0xa5, 0x03, 0xf8, 0x72, 0xcf, 0x10, 0xac, 0xdb, 0x41, 0x06, 0xb8, 0x66, 0xba, 0x67,
+ 0xb0, 0x37, 0x69, 0x7c, 0x58, 0xf6, 0xf9, 0x44, 0xde, 0xac, 0x46, 0xf8, 0x8b, 0xa3, 0x62, 0x36,
+ 0x70, 0x40, 0x2d, 0xe8, 0x38, 0x8a, 0xeb, 0xc9, 0xf0, 0x81, 0xfa, 0x13, 0x9a, 0xe0, 0x2a, 0xb8,
+ 0xe7, 0x84, 0x9d, 0xfc, 0x92, 0x97, 0xe6, 0x09, 0x2c, 0x7c, 0x70, 0x3b, 0xb6, 0x0d, 0x1e, 0x59,
+ 0x27, 0xf3, 0xd9, 0x68, 0xf2, 0xeb, 0xf4, 0x84, 0x02, 0x51, 0xcc, 0xd0, 0xa7, 0x4e, 0x56, 0xd7,
+ 0xa4, 0x6a, 0x15, 0x17, 0x52, 0x6f, 0xc2, 0xd0, 0x70, 0x26, 0xcb, 0x2e, 0x94, 0x8b, 0x8e, 0x86,
+ 0x64, 0x1d, 0x51, 0x83, 0x32, 0x13, 0xd0, 0x5d, 0x5e, 0x0b, 0x77, 0xc5, 0x85, 0xc8, 0xc6, 0x08,
+ 0x61, 0x9b, 0x4e, 0xe9, 0xd1, 0xa4, 0xae, 0x78, 0x94, 0xc8, 0xc5, 0x11, 0xf2, 0xc2, 0xfd, 0x24,
+ 0xa1, 0xec, 0x0a, 0x7d, 0xb1, 0xd8, 0xbc, 0xf5, 0xba, 0xe5, 0x79, 0xfa, 0xe3, 0x81, 0xb5, 0xaa,
+ 0x22, 0x75, 0xc6, 0x02, 0x11, 0x5c, 0x8a, 0xa1, 0xc8, 0x92, 0x7e, 0x04, 0xd0, 0x44, 0x6d, 0xfb,
+ 0xe2, 0x02, 0x82, 0x96, 0x71, 0x20, 0x98, 0x2c, 0xe6, 0xbf, 0xc2, 0xef, 0xc1, 0x07, 0x25, 0x75,
+ 0x28, 0xba, 0xf8, 0xd6, 0x14, 0xf1, 0x76, 0xeb, 0x9f, 0xd7, 0xd9, 0x6f, 0x3e, 0x50, 0x1b, 0xa3,
+ 0xe8, 0xcd, 0xbc, 0x42, 0x74, 0x8d, 0x64, 0x66, 0xb1, 0xfa, 0x65, 0x84, 0x2f, 0x13, 0x53, 0x2d,
+ 0x6b, 0x54, 0x70, 0x3d, 0xd4, 0x09, 0x52, 0x32, 0xc3, 0x8d, 0x62, 0x7a, 0x1c, 0xd6, 0x8b, 0x7c,
+ 0xab, 0x23, 0x34, 0xa9, 0xb4, 0x75, 0x40, 0xbf, 0xed, 0xa0, 0xde, 0x91, 0x0d, 0x95, 0xc3, 0xf2,
+ 0xae, 0xa5, 0x2b, 0xc3, 0x57, 0xc2, 0x3e, 0x9a, 0x27, 0x63, 0x6c, 0x45, 0x7a, 0x9f, 0xf8, 0xde,
+ 0x6e, 0xd2, 0x6f, 0x57, 0x37, 0xbe, 0x2c, 0x17, 0x09, 0x4e, 0xd0, 0xae, 0x6b, 0xdc, 0xb0, 0x50,
+ 0xed, 0x4b, 0xa3, 0x28, 0x97, 0x3a, 0x1a, 0x43, 0x7b, 0x39, 0xd7, 0x50, 0x58, 0x19, 0x68, 0x01,
+ 0x2d, 0x3c, 0xe7, 0xbc, 0xf7, 0x46, 0x08, 0xce, 0x55, 0x14, 0x6b, 0xbb, 0x49, 0x5a, 0x20, 0x8f,
+ 0xb7, 0x33, 0xae, 0x93, 0xba, 0xb6, 0x0a, 0x1c, 0xd1, 0x11, 0x01, 0xe5, 0xca, 0xad, 0x28, 0xdc,
+ 0x77, 0x44, 0xea, 0x07, 0xda, 0xca, 0x18, 0x91, 0xff, 0x3c, 0xbd, 0x0e, 0xdb, 0xee, 0x60, 0x52,
+ 0xf4, 0xdd, 0x26, 0x78, 0x7a, 0x4e, 0x2e, 0xc5, 0x8d, 0x4b, 0xba, 0xf0, 0xe8, 0x2b, 0xb8, 0x03,
+ 0x34, 0xaa, 0x62, 0xec, 0x1a, 0x32, 0x3c, 0x48, 0xa3, 0x66, 0x06, 0x1b, 0xf9, 0x68, 0xf0, 0x8d,
+ 0x31, 0x2c, 0x7d, 0x86, 0xf9, 0x85, 0x42, 0x6d, 0x69, 0xa5, 0xb4, 0xcf, 0x8e, 0x62, 0xcb, 0xa1,
+ 0xf1, 0x5b, 0x39, 0x12, 0x99, 0xf9, 0x50, 0xe0, 0x47, 0x88, 0x08, 0x24, 0x9f, 0x21, 0x83, 0x2f,
+ 0x72, 0xc2, 0xf5, 0x6d, 0x39, 0x7d, 0x66, 0xb4, 0x35, 0xff, 0x0f, 0xda, 0xac, 0xe4, 0x5b, 0x7e,
+ 0xb2, 0xb5, 0xb1, 0xf9, 0x59, 0x01, 0x74, 0x39, 0x1b, 0xd2, 0xb3, 0x31, 0xbd, 0xa7, 0x13, 0xf0,
+ 0x78, 0x0d, 0xcb, 0xb9, 0x3c, 0xd0, 0x9a, 0xfe, 0x62, 0xba, 0xa8, 0xb1, 0x42, 0xf0, 0x2d, 0x26,
+ 0xb8, 0x7a, 0x8f, 0x2d, 0x5c, 0xac, 0x88, 0x73, 0x4c, 0x97, 0x14, 0x5a, 0x53, 0xb3, 0x65, 0xa8,
+ 0x3b, 0xe3, 0x43, 0x52, 0xfc, 0x28, 0xbe, 0x27, 0x3e, 0xe0, 0x13, 0xa4, 0x60, 0x76, 0xbd, 0xf9,
+ 0xfb, 0x94, 0x07, 0xc6, 0x9c, 0x54, 0xac, 0xaa, 0x10, 0xcd, 0xaf, 0x4f, 0x71, 0x35, 0xf5, 0x77,
+ 0xfe, 0x12, 0x18, 0xac, 0x7f, 0xe3, 0xd2, 0x8f, 0xda, 0x0e, 0x1d, 0x9b, 0x06, 0x3f, 0xce, 0x5b,
+ 0x3e, 0x65, 0x5c, 0x38, 0x1f, 0x9f, 0xc0, 0x02, 0xf4, 0x23, 0xa1, 0x70, 0x17, 0x7c, 0x86, 0xd5,
+ 0xbd, 0xfc, 0x90, 0x47, 0xbf, 0x1b, 0xf6, 0x56, 0x86, 0x54, 0xa6, 0x8e, 0x24, 0xb9, 0x5e, 0x84,
+ 0x7d, 0x8b, 0xd4, 0xd3, 0xdf, 0x67, 0xe4, 0xdb, 0xa8, 0x79, 0x1a, 0x65, 0x35, 0xfa, 0x16, 0x0a,
+ 0xea, 0x4f, 0x64, 0xc7, 0x75, 0x7a, 0xe9, 0x1b, 0x74, 0x84, 0x90, 0x4d, 0x19, 0x17, 0x22, 0xeb,
+ 0x2a, 0x38, 0x20, 0x53, 0x15, 0x06, 0xfb, 0x96, 0x5a, 0xa9, 0x2c, 0xa6, 0x08, 0x54, 0x6a, 0x65,
+ 0xa9, 0xa1, 0xec, 0x2c, 0xb5, 0x82, 0xcd, 0xc2, 0x28, 0xde, 0x2b, 0x58, 0x3b, 0x91, 0xb2, 0x34,
+ 0x69, 0xd6, 0xa8, 0xb8, 0xd5, 0xfe, 0xdf, 0x4f, 0x06, 0xf3, 0x97, 0xb3, 0x2a, 0xd2, 0xfa, 0xba,
+ 0x6c, 0x50, 0xb7, 0xd2, 0x36, 0x49, 0xa1, 0x6a, 0xcc, 0x30, 0x25, 0x67, 0x5d, 0xd8, 0xc1, 0x96,
+ 0xac, 0x27, 0xf3, 0x46, 0x56, 0x35, 0xb3, 0xe7, 0xe2, 0x1d, 0x99, 0x8c, 0x4c, 0x9b, 0x89, 0x18,
+ 0x2f, 0xbe, 0x3f, 0x39, 0xf6, 0xb1, 0x85, 0xb3, 0x90, 0x6a, 0x9e, 0x72, 0x7f, 0x5e, 0x51, 0x49,
+ 0xef, 0xc9, 0x7b, 0xad, 0x96, 0xcd, 0x97, 0x3e, 0xbe, 0x47, 0x22, 0x99, 0x6e, 0x1d, 0x19, 0xc7,
+ 0x25, 0x71, 0x01, 0xed, 0xf3, 0x1c, 0x79, 0xf9, 0xc7, 0x2f, 0x39, 0x19, 0x91, 0x4a, 0x27, 0x11,
+ 0xe5, 0x06, 0x45, 0x79, 0x93, 0x60, 0x6b, 0x74, 0xe9, 0x02, 0x85, 0xf2, 0x80, 0x09, 0x6f, 0x9f,
+ 0x66, 0x9f, 0x89, 0x06, 0x33, 0xe4, 0x5d, 0x20, 0x9b, 0x75, 0x82, 0x0c, 0xb3, 0xcc, 0xb7, 0xce,
+ 0xa6, 0xe8, 0xcd, 0x92, 0x53, 0x98, 0x4f, 0xad, 0xb5, 0x58, 0x3e, 0xe7, 0xa2, 0x8f, 0xff, 0x40,
+ 0xa3, 0x6e, 0xd2, 0xf8, 0xb0, 0x2f, 0x31, 0x88, 0x7f, 0x9b, 0x8c, 0x33, 0xd5, 0x85, 0xc4, 0x6c,
+ 0x63, 0x19, 0x96, 0x6c, 0xd0, 0x53, 0x23, 0x05, 0x51, 0xb6, 0x30, 0xd8, 0xc4, 0xc6, 0x8c, 0xe2,
+ 0xe0, 0x80, 0x5a, 0x13, 0x70, 0xd7, 0x15, 0x51, 0x23, 0xc1, 0x37, 0x26, 0xf7, 0x03, 0x54, 0xb3,
+ 0x20, 0xf7, 0x1e, 0x87, 0x10, 0xab, 0x07, 0xdc, 0x0d, 0xec, 0x8b, 0xcd, 0xe6, 0x40, 0x1c, 0x3d,
+ 0x0d, 0xcb, 0xf9, 0x3b, 0xe7, 0xed, 0x0f, 0x12, 0x58, 0xf8, 0xe0, 0x76, 0xaf, 0x1a, 0x3c, 0xb2,
+ 0xcd, 0xbc, 0xbd, 0xaf, 0x87, 0x91, 0x1d, 0x9f, 0x76, 0xd5, 0x5c, 0x9d, 0xbe, 0x59, 0x74, 0x3c,
+ 0x4e, 0x25, 0x71, 0xd0, 0x27, 0x15, 0x2b, 0xcb, 0x04, 0xa2, 0x5b, 0x63, 0x8d, 0x9c, 0xac, 0x6d,
+ 0x8e, 0x52, 0x35, 0x44, 0x47, 0x69, 0x39, 0x46, 0x2a, 0x8f, 0xe7, 0x88, 0x9c, 0xdf, 0xe4, 0xe3,
+ 0x8b, 0xd4, 0x2a, 0x2e, 0xa4, 0xde, 0x47, 0x63, 0xe0, 0x4c, 0x55, 0x5c, 0xeb, 0xd5, 0xdf, 0xcf,
+ 0x4b, 0xa3, 0x6e, 0xba, 0xc4, 0xa2, 0x55, 0xee, 0xce, 0x61, 0xe9, 0xb7, 0xfa, 0x96, 0x97, 0x41,
+ 0xc8, 0x3a, 0xa2, 0xc5, 0x64, 0x26, 0x63, 0xba, 0xbc, 0x16, 0xee, 0x49, 0xc9, 0x53, 0x4f, 0x10,
+ 0x08, 0x4d, 0xe6, 0x51, 0x04, 0x5a, 0x71, 0x37, 0x92, 0x3b, 0x52, 0xa2, 0xd8, 0x10, 0x07, 0x9e,
+ 0xc2, 0xf5, 0x9c, 0x11, 0x61, 0x8b, 0x9f, 0xf0, 0xeb, 0x53, 0x49, 0x22, 0x27, 0x47, 0x39, 0x48,
+ 0x02, 0x82, 0xd8, 0x85, 0x01, 0xf7, 0x8d, 0x7d, 0xc5, 0x7e, 0xf5, 0xc9, 0x36, 0x04, 0x71, 0xc6,
+ 0x81, 0x1b, 0x14, 0xfa, 0xa1, 0x73, 0xbb, 0x29, 0xb7, 0x09, 0xf2, 0x37, 0x05, 0xc1, 0xa9, 0x97,
+ 0x41, 0x6c, 0x50, 0x6e, 0xc1, 0x0f, 0xa9, 0xa4, 0x99, 0x24, 0x4e, 0xdc, 0x14, 0x82, 0xe1, 0x19,
+ 0x44, 0xea, 0x4f, 0x04, 0x22, 0xb8, 0xd7, 0x81, 0x53, 0xe7, 0xfc, 0x08, 0x63, 0x88, 0xda, 0x35,
+ 0x84, 0x9d, 0x0b, 0x90, 0x42, 0xc4, 0xc5, 0x0c, 0x7d, 0xca, 0x40, 0xe3, 0x72, 0xcb, 0x92, 0xbb,
+ 0x07, 0x04, 0xc7, 0xef, 0xe2, 0x40, 0xf3, 0x58, 0x0f, 0xbd, 0x47, 0x1d, 0x41, 0x0e, 0x4a, 0xea,
+ 0xc7, 0x73, 0x83, 0x7b, 0x82, 0x3c, 0xe1, 0xd5, 0x21, 0x90, 0xfb, 0xf6, 0x50, 0x4d, 0x02, 0x64,
+ 0x50, 0xb7, 0x33, 0x6f, 0x28, 0x21, 0xec, 0x15, 0xfd, 0x6d, 0x71, 0xde, 0x7c, 0xa0, 0x36, 0x85,
+ 0x90, 0xc0, 0x77, 0xfb, 0x48, 0x5d, 0xfe, 0x98, 0xd3, 0x40, 0xcd, 0x35, 0x6d, 0xe3, 0x7e, 0x0b,
+ 0x13, 0x59, 0xbb, 0x84, 0xe8, 0xd9, 0xc8, 0xcc, 0xa1, 0x37, 0xca, 0xcb, 0x5e, 0x26, 0xa6, 0x5a,
+ 0xd3, 0x2e, 0xff, 0x10, 0x88, 0xa5, 0xda, 0x41, 0x8f, 0x1a, 0x76, 0x20, 0x4f, 0x65, 0xee, 0xd4,
+ 0xd6, 0xa8, 0xe0, 0x7a, 0x6b, 0x12, 0xa4, 0x64, 0x45, 0xd9, 0xc4, 0xf4, 0x38, 0x6f, 0xd5, 0xf8,
+ 0x16, 0xdf, 0xa4, 0xee, 0x0b, 0x6e, 0xb6, 0xe9, 0x6b, 0xf4, 0x78, 0x1f, 0x29, 0x2c, 0x9d, 0x76,
+ 0x95, 0x46, 0x68, 0x91, 0xab, 0xea, 0x80, 0xbd, 0x19, 0x83, 0x7f, 0xe1, 0x1a, 0xe9, 0x45, 0x27,
+ 0x55, 0x31, 0x2c, 0x05, 0xcb, 0x96, 0x92, 0x30, 0x37, 0xae, 0xc3, 0x0a, 0x0b, 0xaa, 0x0d, 0xa9,
+ 0x9f, 0x89, 0x56, 0x45, 0xae, 0x47, 0x7c, 0xf7, 0x4e, 0xc6, 0xd8, 0x8a, 0xf4, 0xfd, 0x33, 0x7f,
+ 0x5f, 0xfe, 0x12, 0xd1, 0xce, 0x3b, 0x6e, 0x7a, 0x60, 0xeb, 0x64, 0x61, 0xe5, 0xbe, 0x7b, 0xf1,
+ 0xdc, 0x67, 0xde, 0xae, 0x6e, 0xbf, 0x58, 0x2e, 0x12, 0x9c, 0x63, 0x9f, 0xd6, 0x7b, 0xa3, 0xa0,
+ 0x1c, 0x10, 0x9a, 0x3a, 0x0e, 0xc3, 0x4a, 0xa3, 0x3c, 0xb1, 0xdf, 0x74, 0xc7, 0x38, 0xeb, 0x2e,
+ 0x19, 0x96, 0x85, 0x50, 0xed, 0x74, 0x34, 0x86, 0xf6, 0x72, 0x6d, 0xa0, 0xb0, 0x32, 0xd0, 0x02,
+ 0xd9, 0xe1, 0xc1, 0xc4, 0x8d, 0x08, 0x26, 0x0b, 0xd8, 0x5f, 0xd1, 0x4b, 0xa1, 0x71, 0x98, 0x8c,
+ 0x5a, 0x78, 0x0d, 0xbb, 0x2d, 0x8c, 0x10, 0x5f, 0xaa, 0x28, 0xd6, 0xb5, 0x92, 0xb4, 0x40, 0xdd,
+ 0x9a, 0x0f, 0x49, 0x2f, 0x4d, 0xf0, 0x02, 0xd2, 0x84, 0x05, 0x6a, 0x5e, 0x83, 0xf7, 0x08, 0x53,
+ 0xad, 0x66, 0x9f, 0xe5, 0xb7, 0xaf, 0x14, 0x38, 0x61, 0x22, 0x02, 0x09, 0x57, 0x99, 0x50, 0x7b,
+ 0x6d, 0x11, 0xdb, 0x71, 0xd7, 0xd3, 0x06, 0xb5, 0x4f, 0x0f, 0xbe, 0xe2, 0x46, 0xda, 0x18, 0xf5,
+ 0xee, 0x88, 0x17, 0x0e, 0x77, 0x57, 0x30, 0xe1, 0x3d, 0x78, 0xb9, 0x1c, 0x75, 0x1f, 0xc0, 0xa4,
+ 0x2e, 0xff, 0x53, 0x9a, 0x17, 0x2b, 0x22, 0x6c, 0x13, 0x55, 0x05, 0xf7, 0x64, 0x5c, 0x88, 0x2a,
+ 0x2b, 0x79, 0x4c, 0xf0, 0xf4, 0x9c, 0x5c, 0x49, 0xd9, 0x96, 0xb7, 0x23, 0x13, 0x56, 0xb3, 0x06,
+ 0xeb, 0x0e, 0x08, 0x64, 0x94, 0xe0, 0x4e, 0xc4, 0xf7, 0xbb, 0x0b, 0xc8, 0x02, 0x15, 0xfb, 0x88,
+ 0x68, 0x97, 0xc4, 0x1b, 0x34, 0x64, 0x78, 0x90, 0x85, 0xcc, 0x0c, 0x36, 0x31, 0xd0, 0x23, 0xd9,
+ 0xa8, 0xe0, 0x80, 0x8f, 0x54, 0x18, 0x6a, 0x1d, 0xab, 0xe1, 0xb0, 0xdd, 0x20, 0x93, 0x6b, 0x57,
+ 0x62, 0x58, 0xfa, 0xcf, 0x31, 0xc9, 0x84, 0xda, 0xd2, 0x89, 0xab, 0x5d, 0xdf, 0xc4, 0x55, 0x81,
+ 0xa2, 0x2f, 0xbe, 0x5b, 0x51, 0xb5, 0x96, 0x57, 0xfc, 0xa4, 0x17, 0xb6, 0xce, 0x87, 0x1d, 0x0f,
+ 0x21, 0xb6, 0x72, 0x24, 0xf1, 0x31, 0xa0, 0x03, 0x8e, 0xd3, 0x10, 0x48, 0xfd, 0x42, 0xc5, 0x5e,
+ 0xe1, 0xc1, 0x36, 0xb0, 0x91, 0x4d, 0xb2, 0x8e, 0xa0, 0xfe, 0xac, 0xa3, 0xec, 0x01, 0x8d, 0xd0,
+ 0xe4, 0x47, 0x29, 0xda, 0x72, 0xfa, 0xcc, 0xab, 0x6a, 0x3d, 0x1e, 0x77, 0x9b, 0x0b, 0xb6, 0xfc,
+ 0x24, 0x30, 0x6d, 0x4e, 0x12, 0x86, 0xde, 0x26, 0x44, 0x10, 0xa2, 0x9c, 0x8a, 0x48, 0xfe, 0x72,
+ 0xa7, 0xa9, 0xa1, 0x31, 0xb2, 0x02, 0xe8, 0x72, 0x36, 0x67, 0xa5, 0x62, 0xb9, 0x8d, 0x26, 0x23,
+ 0x67, 0xde, 0xe5, 0xa5, 0xd2, 0x7e, 0xfa, 0xff, 0x18, 0x4a, 0x19, 0x89, 0xa8, 0xce, 0x6e, 0xad,
+ 0xf0, 0x1a, 0x55, 0xb1, 0x78, 0x63, 0xf7, 0x3f, 0xc4, 0xb7, 0x93, 0xa1, 0x84, 0x23, 0x5a, 0x4c,
+ 0x30, 0x6d, 0x11, 0x25, 0x18, 0x1f, 0xe5, 0xb2, 0xea, 0x9a, 0x2f, 0x4a, 0x95, 0x60, 0x12, 0xc2,
+ 0xb3, 0xf4, 0xdd, 0x5a, 0xb8, 0x9b, 0xd3, 0xe6, 0x98, 0xed, 0x28, 0xb4, 0xa6, 0xa5, 0xca, 0x93,
+ 0x73, 0x83, 0x99, 0xce, 0xd8, 0xe7, 0xc1, 0x6b, 0xb6, 0xc0, 0x94, 0x5f, 0xb7, 0xe6, 0x82, 0x1d,
+ 0x76, 0x05, 0x86, 0xa4, 0x3b, 0x50, 0xbf, 0x4e, 0x7c, 0x03, 0x26, 0x8b, 0xc0, 0xec, 0xb9, 0x31,
+ 0xb6, 0x72, 0xc2, 0x30, 0x5b, 0x2c, 0xad, 0xc3, 0x52, 0x2e, 0x9a, 0x60, 0xd1, 0xaf, 0xf1, 0xbf,
+ 0x35, 0xeb, 0x0e, 0x4f, 0xfb, 0xa8, 0x9b, 0x97, 0x20, 0x59, 0x9d, 0x9e, 0xe2, 0x6a, 0x29, 0xee,
+ 0xf5, 0x9c, 0x4a, 0xdb, 0x9b, 0xd4, 0x89, 0x1a, 0x0e, 0x74, 0x21, 0x75, 0xf3, 0x29, 0x61, 0x60,
+ 0x3f, 0x24, 0x30, 0x9b, 0xfe, 0x05, 0x67, 0xdd, 0x77, 0x1c, 0x3a, 0xf5, 0x0c, 0x7e, 0x5f, 0xb6,
+ 0xff, 0x53, 0x74, 0x0f, 0x9e, 0x79, 0x75, 0x50, 0x59, 0x31, 0x86, 0x1e, 0x1d, 0x3d, 0x17, 0x38,
+ 0x7c, 0xca, 0xb8, 0x70, 0x3e, 0xfd, 0x43, 0x04, 0x2b, 0x46, 0x81, 0xe0, 0x2e, 0xf8, 0xcf, 0x69,
+ 0xbc, 0xbd, 0xfc, 0xe4, 0x5e, 0x81, 0x51, 0x89, 0x05, 0x6b, 0x3d, 0x0b, 0x3f, 0xbb, 0x87, 0xe7,
+ 0xb9, 0x3b, 0xe3, 0x8e, 0xbd, 0x36, 0x2f, 0xac, 0xcf, 0xa8, 0x8f, 0xdf, 0x48, 0xb1, 0xbc, 0xcb,
+ 0x79, 0x4c, 0xa7, 0x1a, 0xdd, 0x4a, 0x3d, 0x21, 0xe1, 0x85, 0x33, 0x34, 0x59, 0xf2, 0xf4, 0x45,
+ 0xfa, 0xd5, 0x6b, 0x65, 0x7d, 0xce, 0x0b, 0x75, 0x93, 0xf2, 0x34, 0xca, 0x6a, 0x37, 0x2c, 0x14,
+ 0x3a, 0xa2, 0x2f, 0xf1, 0x1d, 0xb2, 0x19, 0xf8, 0xbd, 0xdf, 0x88, 0x21, 0x7b, 0x74, 0x64, 0x9a,
+ 0x17, 0x9e, 0xc8, 0x4d, 0xea, 0xf4, 0x11, 0x36, 0xe8, 0xcb, 0xe3, 0x9a, 0x32, 0x2e, 0x44, 0x15,
+ 0xd7, 0xe9, 0x8c, 0xd9, 0x8a, 0x88, 0x03, 0xbb, 0xc6, 0xe6, 0x5f, 0x71, 0x23, 0x6d, 0x0c, 0x9b,
+ 0x54, 0x70, 0x40, 0xa6, 0x2a, 0x0c, 0x35, 0xef, 0xb4, 0x91, 0x58, 0x8f, 0x10, 0xa8, 0xd4, 0xca,
+ 0x94, 0x07, 0x04, 0x32, 0x4a, 0x70, 0x27, 0x62, 0x9a, 0xbc, 0xe4, 0x64, 0x01, 0xeb, 0x9c, 0x44,
+ 0x91, 0x81, 0x1b, 0x58, 0xa9, 0xc7, 0x59, 0x47, 0x50, 0x7f, 0x56, 0xb0, 0x76, 0xe1, 0xa7, 0x68,
+ 0x51, 0xf6, 0x5f, 0xcc, 0xc9, 0xbb, 0x4b, 0xca, 0x7e, 0x52, 0xea, 0x5b, 0x67, 0xa2, 0xef, 0xe6,
+ 0xd2, 0x6f, 0x93, 0xb3, 0x69, 0x3f, 0x7d, 0x9e, 0x0c, 0x25, 0xed, 0xa5, 0x54, 0x67, 0x37, 0xb7,
+ 0x12, 0x18, 0xd7, 0x27, 0x09, 0x43, 0x6f, 0x13, 0x22, 0x08, 0x51, 0x4e, 0x45, 0x24, 0x7f, 0x39,
+ 0xd8, 0xa0, 0xad, 0x67, 0x6c, 0x92, 0x81, 0xd4, 0x5b, 0x60, 0x4a, 0xce, 0xba, 0x73, 0x41, 0xef,
+ 0x18, 0xd7, 0xe9, 0xf3, 0x0c, 0xee, 0x93, 0x59, 0x75, 0x4d, 0xf6, 0x25, 0xab, 0x30, 0x09, 0x61,
+ 0x9b, 0x4e, 0x25, 0x8c, 0xac, 0x6a, 0xa5, 0x0d, 0x07, 0x3a, 0xf1, 0xdb, 0x98, 0xf5, 0xd1, 0x30,
+ 0x5b, 0x39, 0x61, 0x18, 0xcc, 0x16, 0xb7, 0x80, 0x29, 0x17, 0x4d, 0x30, 0x89, 0xb6, 0x99, 0xbe,
+ 0x5e, 0xbf, 0x7e, 0x72, 0x2f, 0xa1, 0xc9, 0xa5, 0xe3, 0xd4, 0xff, 0xe4, 0xfe, 0xbc, 0xa2, 0x92,
+ 0x9e, 0xc8, 0x3a, 0xe6, 0x4f, 0xdd, 0xdb, 0x28, 0xcd, 0xf9, 0x43, 0x0f, 0xef, 0xff, 0xea, 0x1c,
+ 0x1d, 0x51, 0xf6, 0x99, 0xef, 0x59, 0xed, 0x7c, 0xbf, 0x8e, 0x44, 0xf1, 0xdc, 0x3a, 0x32, 0x4d,
+ 0xdd, 0x26, 0xb2, 0x0d, 0x8f, 0x25, 0xff, 0xf1, 0x91, 0xa3, 0xf8, 0x1a, 0xcd, 0x79, 0x7a, 0xc3,
+ 0x4a, 0xe2, 0x02, 0x19, 0x25, 0x38, 0xf2, 0x31, 0x4d, 0x5e, 0x72, 0x32, 0xe1, 0x94, 0x4e, 0x22,
+ 0x8a, 0x95, 0x46, 0x8d, 0x45, 0x44, 0xe0, 0xbc, 0x63, 0x73, 0xce, 0xd9, 0xf0, 0xd7, 0x06, 0xac,
+ 0x09, 0x0c, 0x8a, 0xf2, 0xe5, 0xc0, 0xd6, 0xe8, 0x11, 0x04, 0xc9, 0x27, 0xc3, 0x12, 0xde, 0xfd,
+ 0xc9, 0x7b, 0xce, 0x66, 0x85, 0xbc, 0xc4, 0x65, 0x3f, 0x29, 0x75, 0xcc, 0xd2, 0x51, 0x96, 0x73,
+ 0xcc, 0xfd, 0xd1, 0x0c, 0x66, 0x0b, 0xba, 0x40, 0xf5, 0xea, 0xc7, 0x18, 0xa5, 0x5b, 0xad, 0x5f,
+ 0x0c, 0x8a, 0x95, 0x98, 0x06, 0x77, 0xa8, 0xcd, 0xdb, 0xc7, 0x7b, 0xf3, 0xb4, 0x18, 0xe5, 0xd1,
+ 0x8f, 0x13, 0x59, 0xe7, 0xa6, 0xf3, 0x9e, 0x99, 0xa9, 0xb0, 0x7c, 0x0d, 0x87, 0xdd, 0x3d, 0x80,
+ 0x4f, 0x64, 0x1d, 0x73, 0xc6, 0x8f, 0x8c, 0x14, 0x87, 0x9d, 0xc0, 0xe6, 0x96, 0x9e, 0x75, 0x0e,
+ 0x85, 0xdc, 0x67, 0x33, 0xa3, 0x5e, 0x62, 0xd3, 0xfe, 0xf5, 0xdb, 0x66, 0x69, 0xc9, 0x4b, 0xd8,
+ 0x45, 0xab, 0x23, 0xa7, 0xc3, 0x22, 0x70, 0x5e, 0xd0, 0xd8, 0x67, 0x8d, 0x78, 0x8a, 0x03, 0x56,
+ 0xc6, 0x32, 0xef, 0xd8, 0x63, 0xa6, 0x46, 0x0a, 0xa2, 0xaf, 0x60, 0x73, 0x4b, 0x4f, 0xdb, 0x07,
+ 0x06, 0x45, 0xab, 0x4c, 0x03, 0xda, 0x54, 0x87, 0x8c, 0x82, 0xdc, 0x98, 0x5a, 0x0c, 0x93, 0x89,
+ 0x03, 0xc3, 0xb4, 0x26, 0xe0, 0x6d, 0x2a, 0xa2, 0x46, 0x41, 0x6e, 0x4c, 0x2d, 0x06, 0xa8, 0xa5,
+ 0xc3, 0xb4, 0xf0, 0xb2, 0x80, 0x11, 0x38, 0x2f, 0x68, 0x6c, 0xd2, 0xa7, 0x3c, 0x45, 0xe0, 0x2b,
+ 0x40, 0x2d, 0x3c, 0xcd, 0x20, 0x95, 0x0e, 0x7b, 0x1a, 0x1b, 0xd5, 0x59, 0x0f, 0x80, 0x38, 0x7a,
+ 0x80, 0x5a, 0x78, 0x59, 0x40, 0xe9, 0x1c, 0xf6, 0x34, 0x36, 0x69, 0xb2, 0x1e, 0xc3, 0x70, 0xf4,
+ 0x1a, 0x55, 0x31, 0x76, 0x0d, 0x19, 0x1e, 0x24, 0xb0, 0x33, 0x03, 0xec, 0x9d, 0x34, 0x78, 0xa7,
+ 0xda, 0x22, 0x75, 0xe2, 0x6d, 0x65, 0x0c, 0xa9, 0x9e, 0x1e, 0xbf, 0x07, 0x8c, 0x77, 0x30, 0x29,
+ 0x59, 0xbb, 0xb9, 0x9d, 0xcd, 0xe1, 0x3a, 0xfd, 0xec, 0x69, 0xb8, 0xf9, 0xbf, 0xb2, 0xe8, 0x78,
+ 0x99, 0xcc, 0xfd, 0x09, 0xad, 0x9d, 0x28, 0x70, 0xc2, 0x44, 0x04, 0x12, 0xae, 0xf1, 0xa0, 0xf6,
+ 0x9c, 0x4a, 0xe2, 0x63, 0x4e, 0x2a, 0x56, 0x55, 0x08, 0x87, 0xb6, 0xc6, 0xd9, 0xfb, 0x9b, 0xda,
+ 0x5c, 0x3d, 0xa6, 0xf7, 0x2e, 0x56, 0x44, 0xd8, 0x26, 0xaa, 0x0a, 0x2d, 0xc8, 0xb8, 0xd3, 0x54,
+ 0xdf, 0xa4, 0x6a, 0x88, 0x8e, 0xd2, 0x72, 0x8c, 0x54, 0xdd, 0x0d, 0xd3, 0xfb, 0x7d, 0x0b, 0x05,
+ 0x1f, 0xd3, 0x2e, 0x1c, 0xee, 0xae, 0x60, 0x01, 0x7a, 0xf0, 0xb1, 0x38, 0xea, 0x3e, 0x43, 0x8b,
+ 0xd5, 0x6b, 0x54, 0x5c, 0x8b, 0x7f, 0x8e, 0xc6, 0x03, 0x98, 0xaa, 0xb8, 0x15, 0x69, 0x7d, 0x5d,
+ 0x15, 0x1c, 0x10, 0xc8, 0xeb, 0x03, 0x9c, 0x4b, 0x2d, 0xb5, 0x16, 0x53, 0x04, 0x2a, 0x35, 0xd3,
+ 0x96, 0x85, 0xdc, 0xb7, 0x4b, 0x87, 0xaa, 0x1f, 0x5f, 0xc2, 0x11, 0xad, 0x37, 0xef, 0xed, 0x82,
+ 0x56, 0xf2, 0x98, 0x23, 0x2b, 0xfb, 0xb8, 0x92, 0x71, 0xef, 0xad, 0x46, 0x26, 0xac, 0xa5, 0x0c,
+ 0x53, 0x74, 0x87, 0x49, 0xc8, 0x4c, 0xc6, 0xb7, 0xbb, 0x2c, 0x1f, 0x92, 0x51, 0xa6, 0x9e, 0x20,
+ 0x93, 0x03, 0xc3, 0xdd, 0xa8, 0x30, 0xd4, 0x3a, 0x95, 0x01, 0xa3, 0x79, 0x40, 0xe5, 0xd6, 0xae,
+ 0x10, 0x9a, 0x0f, 0xa2, 0x08, 0xb4, 0xe2, 0x6e, 0xe7, 0x76, 0xa4, 0x87, 0x73, 0x20, 0x0e, 0xff,
+ 0xd0, 0xed, 0x4b, 0x36, 0x68, 0xc8, 0xf0, 0xe3, 0xc9, 0x5b, 0x18, 0x6c, 0x62, 0x63, 0x46, 0x71,
+ 0x47, 0x29, 0xfb, 0x22, 0xc2, 0xd5, 0xfd, 0x23, 0x15, 0xa6, 0x92, 0x44, 0x4e, 0x8e, 0x72, 0x90,
+ 0x87, 0x5e, 0xbf, 0xb6, 0xa2, 0xa9, 0xef, 0xae, 0x3b, 0x8b, 0x2e, 0xaf, 0x5f, 0xcd, 0x3a, 0x1e,
+ 0x04, 0xc7, 0x73, 0xc9, 0x02, 0x2d, 0xd9, 0xfa, 0x49, 0xfc, 0x29, 0x51, 0x6c, 0x08, 0xe2, 0x4f,
+ 0xc4, 0xb0, 0x37, 0x5d, 0x62, 0x51, 0xcb, 0x77, 0x67, 0xd1, 0x95, 0xba, 0x7d, 0x4b, 0xaa, 0xc1,
+ 0xc1, 0x36, 0x28, 0x37, 0x81, 0xe6, 0xb5, 0x52, 0xad, 0x12, 0x27, 0x6e, 0x0a, 0x41, 0x91, 0xed,
+ 0x01, 0x41, 0x6c, 0xa3, 0xe1, 0x9a, 0xa7, 0xdf, 0x83, 0x3f, 0x9b, 0x85, 0x1b, 0x02, 0xd9, 0x63,
+ 0x82, 0xd8, 0xa0, 0xdc, 0x41, 0x1e, 0x91, 0x8b, 0xf1, 0x48, 0x9c, 0x7b, 0x28, 0xc7, 0x01, 0x32,
+ 0x42, 0xaf, 0xe4, 0x48, 0x21, 0x62, 0x83, 0x06, 0xdf, 0x65, 0x20, 0x90, 0x39, 0x84, 0x49, 0xbc,
+ 0x88, 0x17, 0x9e, 0x08, 0x44, 0xb3, 0x6d, 0xc1, 0xa6, 0x0d, 0x3b, 0x10, 0xc6, 0xd3, 0x77, 0x6a,
+ 0x48, 0x60, 0xda, 0x9c, 0x24, 0xcf, 0x7f, 0x4c, 0x88, 0x20, 0x87, 0xfb, 0xd7, 0x90, 0x3f, 0xe4,
+ 0xcb, 0xf9, 0x16, 0xe3, 0x84, 0x4b, 0x49, 0x18, 0xfa, 0x57, 0x80, 0x05, 0xe4, 0x55, 0xe7, 0xb5,
+ 0x0b, 0x8e, 0x52, 0x77, 0xe4, 0x37, 0x5b, 0x95, 0xd4, 0x7a, 0x3c, 0xee, 0xf5, 0x16, 0xaf, 0x3b,
+ 0x0e, 0x08, 0x4d, 0x1d, 0x07, 0x80, 0x25, 0xb0, 0x1e, 0xb9, 0x8e, 0x3a, 0x82, 0x1c, 0x94, 0x17,
+ 0xce, 0x7f, 0x09, 0x89, 0x67, 0xfc, 0x37, 0x3d, 0x30, 0x94, 0x32, 0xd1, 0x93, 0x5f, 0xdc, 0x99,
+ 0x4d, 0xe6, 0xc5, 0xf6, 0xc7, 0x78, 0x01, 0x69, 0x42, 0xe3, 0x35, 0x2f, 0xa0, 0x9a, 0x04, 0xc8,
+ 0x8d, 0x91, 0x81, 0x62, 0xa7, 0x04, 0x13, 0xe4, 0x6c, 0xce, 0x89, 0xc4, 0xb1, 0xd9, 0x4c, 0x46,
+ 0xa0, 0xad, 0x66, 0xde, 0x50, 0x42, 0x1b, 0x2a, 0x39, 0xda, 0xe2, 0x7f, 0xf8, 0x83, 0x6c, 0xc9,
+ 0x60, 0xda, 0x22, 0x4a, 0x30, 0x3e, 0x09, 0xa7, 0x17, 0xf7, 0x5e, 0x94, 0xe9, 0xc0, 0x24, 0x47,
+ 0xe3, 0x43, 0xee, 0x35, 0x90, 0xba, 0x3f, 0xf3, 0x65, 0x80, 0x59, 0x6a, 0xda, 0x05, 0xfc, 0x16,
+ 0x23, 0x34, 0xaa, 0xa1, 0xf0, 0xc6, 0x2d, 0x7e, 0x4b, 0xad, 0xe5, 0x81, 0xcb, 0x46, 0xb4, 0x98,
+ 0x26, 0xb2, 0xb5, 0xcb, 0x13, 0x71, 0x53, 0x5b, 0x81, 0x6e, 0x57, 0x55, 0xbc, 0x4c, 0x8f, 0xb4,
+ 0xe6, 0xc5, 0xf1, 0x5f, 0x73, 0x0d, 0x41, 0xd6, 0xaf, 0x43, 0xeb, 0xbe, 0xad, 0x0f, 0xc7, 0x3a,
+ 0x65, 0x5c, 0x3d, 0x20, 0xd3, 0x89, 0x77, 0x82, 0xdd, 0x34, 0xec, 0x40, 0x9e, 0xca, 0x1f, 0x6b,
+ 0xa5, 0x2b, 0x79, 0xb4, 0xb3, 0xf5, 0x65, 0x0f, 0xf3, 0x19, 0x50, 0xab, 0x8f, 0x89, 0x57, 0xe5,
+ 0x6f, 0x93, 0x03, 0xf4, 0xd6, 0x24, 0x8b, 0xc8, 0x8a, 0x71, 0x4b, 0x2b, 0x70, 0xde, 0x69, 0x33,
+ 0xaf, 0xe4, 0x47, 0x60, 0xb6, 0x58, 0x99, 0x45, 0xa4, 0x5c, 0xf7, 0xc0, 0x61, 0x9d, 0x21, 0xbd,
+ 0x2c, 0x7d, 0x8b, 0x1f, 0x16, 0xdc, 0xaf, 0x11, 0xd6, 0x2b, 0xf0, 0x3e, 0x52, 0x58, 0xf9, 0xec,
+ 0xec, 0x0a, 0xcf, 0x8b, 0x76, 0xa0, 0xbd, 0x9c, 0xf8, 0x06, 0x4c, 0xd5, 0x43, 0x1b, 0xb1, 0x62,
+ 0xe9, 0x8c, 0xd0, 0xe1, 0x95, 0x17, 0xc3, 0xb9, 0x32, 0xc5, 0xfe, 0x01, 0x34, 0x11, 0x8a, 0x4e,
+ 0x29, 0xfb, 0x94, 0x75, 0xf5, 0x6b, 0xd1, 0x34, 0x1c, 0xe8, 0x42, 0xea, 0x25, 0x52, 0xc2, 0xc0,
+ 0xaa, 0x62, 0x58, 0x0a, 0x55, 0xef, 0xe7, 0x60, 0x6e, 0x9f, 0x45, 0x14, 0x16, 0x97, 0x1a, 0x91,
+ 0x6a, 0x15, 0x1c, 0x9e, 0x35, 0x93, 0xf5, 0xed, 0x40, 0xb2, 0xf9, 0xff, 0x07, 0xd4, 0x52, 0x1f,
+ 0xfd, 0xd1, 0xac, 0x8a, 0x9f, 0x8e, 0xf8, 0x2d, 0x9c, 0x4f, 0x73, 0xd7, 0x2b, 0x39, 0x66, 0xfe,
+ 0x3d, 0xa6, 0xe8, 0x1e, 0xff, 0xf2, 0xea, 0xa0, 0xb2, 0x62, 0xcf, 0x3c, 0x3a, 0x7a, 0x2e, 0x70,
+ 0xbe, 0x3f, 0x24, 0x61, 0x5f, 0x76, 0xdc, 0xf4, 0xc0, 0x15, 0xc8, 0xc2, 0x09, 0xbf, 0xf6, 0x21,
+ 0x7e, 0x48, 0x60, 0xf5, 0x3f, 0x0a, 0xce, 0x79, 0xee, 0x38, 0x74, 0x29, 0x18, 0xfc, 0xbe, 0xaf,
+ 0x7b, 0xce, 0x7f, 0x9f, 0xdc, 0xbd, 0xb0, 0x5c, 0x24, 0xfb, 0xc6, 0xfd, 0x6f, 0xf6, 0x85, 0x83,
+ 0xbb, 0xb9, 0x3b, 0x0b, 0xbc, 0xc1, 0xa2, 0xd1, 0x0a, 0xd6, 0x7a, 0x16, 0x7e, 0xb5, 0xcd, 0x0d,
+ 0x38, 0x20, 0xf7, 0x74, 0x1c, 0x45, 0x94, 0x85, 0x78, 0xa1, 0x7d, 0xe8, 0x4d, 0x70, 0x15, 0x5c,
+ 0xf8, 0x57, 0xb3, 0xe0, 0x7c, 0x39, 0x86, 0x08, 0x56, 0x8c, 0xc1, 0x03, 0x5c, 0x33, 0x5d, 0xd2,
+ 0x32, 0xef, 0xc9, 0xa0, 0x19, 0xe8, 0x68, 0xcf, 0x2f, 0xe4, 0xda, 0x83, 0xa3, 0x64, 0x63, 0x04,
+ 0xf2, 0x98, 0x8d, 0x34, 0x79, 0x94, 0x7a, 0x42, 0x01, 0xc9, 0x66, 0x68, 0xb2, 0x27, 0x2b, 0x8a,
+ 0x71, 0x01, 0x41, 0x4b, 0xd9, 0x10, 0x4c, 0x16, 0x73, 0xbe, 0x61, 0x96, 0x81, 0xe2, 0xf3, 0xdb,
+ 0xb1, 0x76, 0x05, 0xdf, 0xb9, 0x6c, 0x5e, 0x9b, 0x5d, 0x93, 0xdd, 0x7d, 0x90, 0xa1, 0xbb, 0x55,
+ 0xb4, 0xf0, 0x1a, 0xb5, 0x5a, 0xdb, 0x20, 0xbe, 0x97, 0x50, 0x6f, 0xa9, 0xe7, 0xab, 0x80, 0x79,
+ 0x74, 0x87, 0x5e, 0x21, 0x3a, 0xa7, 0x32, 0x33, 0xb9, 0x7d, 0xd3, 0x42, 0xf6, 0xe8, 0xc8, 0xf7,
+ 0xf7, 0x1e, 0x92, 0x5e, 0x9a, 0x23, 0x04, 0x67, 0xcb, 0x0a, 0xd4, 0xbc, 0xc5, 0x2d, 0x10, 0xa6,
+ 0x37, 0x69, 0xd6, 0xca, 0xfa, 0x5f, 0x16, 0xea, 0xe5, 0x27, 0x68, 0x57, 0xd4, 0x6e, 0x58, 0x28,
+ },
+ { /* 11 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xc2, 0x5d, 0x97, 0xf3, 0xe9, 0x1a, 0x8d, 0xcb, 0xbb, 0x06, 0xc5, 0x20, 0x1c, 0x68, 0x90, 0x93,
+ 0x47, 0xba, 0xed, 0x25, 0x11, 0x34, 0xd9, 0x55, 0xb5, 0x0c, 0x49, 0x40, 0x38, 0xd0, 0xe3, 0xe5,
+ 0x85, 0xe7, 0x7a, 0xd6, 0xf8, 0x2e, 0x54, 0x9e, 0x0e, 0x0a, 0x8c, 0x60, 0x24, 0xb8, 0x73, 0x76,
+ 0x8e, 0xb7, 0x19, 0x4a, 0x22, 0x68, 0x71, 0xaa, 0xa9, 0x18, 0x92, 0x80, 0x70, 0x63, 0x05, 0x09,
+ 0x4c, 0xea, 0x8e, 0xb9, 0xcb, 0x72, 0xfc, 0x61, 0x12, 0x1e, 0x57, 0xa0, 0x6c, 0x0b, 0x95, 0x9a,
+ 0xc9, 0x0d, 0xf4, 0x6f, 0x33, 0x5c, 0xa8, 0xff, 0x1c, 0x14, 0xdb, 0xc0, 0x48, 0xb3, 0xe6, 0xec,
+ 0x0b, 0x50, 0x63, 0x9c, 0xda, 0x46, 0x25, 0x34, 0xa7, 0x12, 0x1e, 0xe0, 0x54, 0xdb, 0x76, 0x7f,
+ 0xdf, 0xad, 0x32, 0x94, 0x44, 0xd0, 0xe2, 0x97, 0x91, 0x30, 0xe7, 0xc3, 0xe0, 0xc6, 0x0a, 0x12,
+ 0x1d, 0xf0, 0xa5, 0x67, 0xad, 0xca, 0x6f, 0x5c, 0x2a, 0x36, 0x22, 0xe3, 0xfc, 0xae, 0x9a, 0x81,
+ 0x98, 0x17, 0xdf, 0xb1, 0x55, 0xe4, 0x3b, 0xc2, 0x24, 0x3c, 0xae, 0x83, 0xd8, 0x16, 0xe9, 0xf7,
+ 0x5a, 0x4a, 0x48, 0x42, 0xbc, 0xfe, 0xb6, 0x09, 0x9f, 0x3a, 0x6b, 0xa3, 0xc4, 0x7e, 0x79, 0x64,
+ 0x51, 0x1a, 0x2b, 0xde, 0x66, 0xb8, 0x93, 0x3d, 0x38, 0x28, 0x75, 0x43, 0x90, 0xa5, 0x0f, 0x1b,
+ 0x93, 0x47, 0xbc, 0x2d, 0x8f, 0xa2, 0x1e, 0xf6, 0x83, 0x2e, 0xb0, 0x63, 0x8c, 0xcd, 0x9f, 0x88,
+ 0x16, 0xa0, 0xc6, 0xfb, 0x77, 0x8c, 0x4a, 0x68, 0x8d, 0x24, 0x3c, 0x03, 0xa8, 0x75, 0xec, 0xfe,
+ 0xd4, 0xfd, 0x51, 0x08, 0x9e, 0x96, 0xc7, 0xa3, 0x36, 0x22, 0xf9, 0x23, 0xb4, 0x1d, 0x7c, 0x6d,
+ 0x7d, 0x99, 0x64, 0xeb, 0x88, 0x63, 0x07, 0xed, 0xe1, 0x60, 0x0d, 0x45, 0x03, 0x4f, 0x14, 0x24,
+ 0xbf, 0xc4, 0xf3, 0x18, 0x61, 0x79, 0x8a, 0x26, 0x5a, 0x66, 0xc8, 0x65, 0x1f, 0x27, 0x84, 0xb7,
+ 0x3a, 0x23, 0x89, 0xce, 0x99, 0x57, 0xde, 0xb8, 0x54, 0x6c, 0x44, 0x05, 0x3b, 0x9f, 0xf7, 0xc1,
+ 0xf8, 0x7e, 0x1e, 0x3d, 0x70, 0x4d, 0x53, 0x73, 0xef, 0x6a, 0x81, 0x25, 0x27, 0xf7, 0x67, 0x52,
+ 0xf3, 0x2e, 0x7d, 0xa1, 0xaa, 0x0b, 0x76, 0x47, 0x48, 0x78, 0x9f, 0xc5, 0x73, 0x2c, 0x11, 0x2d,
+ 0x31, 0x73, 0xea, 0x52, 0x43, 0x11, 0xfb, 0x8c, 0xf3, 0x7e, 0x5a, 0xe5, 0x6f, 0x44, 0x81, 0xbe,
+ 0xb4, 0x94, 0x90, 0x84, 0xbb, 0x3f, 0xaf, 0x12, 0xfd, 0x74, 0xd6, 0x85, 0x4b, 0xfc, 0xf2, 0xc8,
+ 0x76, 0xc9, 0x07, 0x77, 0x52, 0x25, 0x22, 0xd9, 0x46, 0x72, 0x13, 0xa5, 0x57, 0x94, 0x62, 0x5b,
+ 0xa2, 0x34, 0x56, 0x7f, 0xcc, 0xb3, 0xe5, 0x7a, 0x70, 0x50, 0xea, 0x86, 0xe3, 0x89, 0x1e, 0x36,
+ 0x60, 0x69, 0xc1, 0x8c, 0x25, 0xa9, 0x68, 0xb1, 0xcb, 0x56, 0x2f, 0xa6, 0xff, 0xe1, 0x8e, 0xa5,
+ 0xe5, 0x8e, 0xbb, 0x5a, 0xdd, 0x87, 0x3c, 0x2f, 0xc5, 0x5c, 0xa3, 0xc6, 0xdb, 0x59, 0xfd, 0xd3,
+ 0x27, 0xd3, 0x2c, 0xa9, 0x34, 0x9d, 0xb1, 0xe4, 0x7e, 0x5a, 0x66, 0xe6, 0xc7, 0x31, 0x6d, 0x40,
+ 0x2c, 0x83, 0x4f, 0x35, 0xee, 0xdb, 0x94, 0xd0, 0xd9, 0x48, 0x78, 0x06, 0x93, 0xea, 0x1b, 0x3f,
+ 0xee, 0xde, 0xd8, 0xc6, 0x07, 0xc1, 0x19, 0x1b, 0x62, 0x4e, 0xbd, 0x26, 0x8f, 0x82, 0x8b, 0xac,
+ 0x6b, 0x39, 0xa2, 0x10, 0xff, 0xef, 0x4d, 0x85, 0x6c, 0x44, 0x31, 0x46, 0xab, 0x3a, 0xf8, 0xda,
+ 0xa9, 0x64, 0x35, 0xe3, 0x16, 0xf5, 0xc0, 0x4e, 0xd7, 0x42, 0xf4, 0x66, 0xb7, 0x52, 0x68, 0x49,
+ 0xfa, 0xf1, 0xc8, 0x15, 0xd3, 0xc6, 0x0e, 0x19, 0x01, 0xc0, 0x1a, 0x8a, 0x06, 0x9e, 0x28, 0x48,
+ 0x38, 0xac, 0x5f, 0xe6, 0x3a, 0xdc, 0x83, 0xd2, 0xba, 0xc6, 0xdf, 0xaa, 0x1a, 0xf6, 0xb8, 0xdb,
+ 0xbd, 0x4b, 0x25, 0x30, 0xc2, 0xf2, 0xd7, 0x4c, 0xb4, 0xcc, 0x53, 0xca, 0x3e, 0x4e, 0xcb, 0xad,
+ 0x7f, 0x16, 0xb2, 0xc3, 0x2b, 0xe8, 0x5a, 0x87, 0x0f, 0xca, 0x96, 0xea, 0x22, 0x26, 0x5b, 0x3e,
+ 0x74, 0x46, 0xd1, 0x5f, 0xf1, 0xae, 0x7f, 0xb3, 0xa8, 0xd8, 0x88, 0x0a, 0x76, 0xfd, 0x2d, 0x41,
+ 0xb6, 0x1b, 0x46, 0xac, 0x18, 0xb4, 0xf2, 0x78, 0x13, 0xde, 0x4d, 0x2a, 0x6a, 0x95, 0xbd, 0xd2,
+ 0x33, 0xfc, 0x3c, 0x7a, 0xe0, 0x9a, 0xa6, 0xe6, 0x1d, 0xd4, 0xc1, 0x4a, 0x4e, 0x2d, 0xce, 0xa4,
+ 0xf1, 0xa1, 0xab, 0x89, 0x09, 0x80, 0x2b, 0x2d, 0xa6, 0xd2, 0x04, 0x6a, 0x52, 0x45, 0x5e, 0x37,
+ 0x25, 0x5c, 0xfa, 0x81, 0x97, 0x16, 0xec, 0x8e, 0x90, 0xf0, 0xfd, 0x49, 0xe6, 0x58, 0x22, 0x5a,
+ 0xe7, 0x01, 0x6d, 0x72, 0x7e, 0x0c, 0x61, 0x45, 0x2b, 0xf6, 0x38, 0x69, 0xfa, 0x30, 0xb2, 0xc9,
+ 0x62, 0xe6, 0x17, 0xa4, 0x86, 0x22, 0x35, 0xdb, 0x25, 0xfc, 0xb4, 0x09, 0xde, 0x88, 0xc1, 0xbf,
+ 0xa0, 0xbb, 0x80, 0x57, 0x6f, 0x38, 0xb8, 0x10, 0x9e, 0xfa, 0x71, 0x29, 0xc2, 0xe0, 0x51, 0x2c,
+ 0xab, 0xeb, 0xe3, 0xcb, 0xb5, 0x7e, 0x9d, 0x24, 0x39, 0xe8, 0x6f, 0xc9, 0x96, 0x3b, 0x27, 0x53,
+ 0x69, 0xb6, 0x74, 0x38, 0x5c, 0x64, 0x10, 0xef, 0x82, 0xee, 0xaa, 0xe9, 0x8a, 0x53, 0xb7, 0xc0,
+ 0xec, 0x51, 0x0e, 0xee, 0xa4, 0x4a, 0x44, 0x71, 0x8c, 0xe4, 0x26, 0x89, 0xae, 0xeb, 0xc4, 0xb6,
+ 0x2e, 0x0c, 0x99, 0x1d, 0x4d, 0x50, 0xc9, 0xba, 0x37, 0xe2, 0xe3, 0xa9, 0xb2, 0x83, 0x54, 0x25,
+ 0x87, 0x68, 0xac, 0xfe, 0x5b, 0xa5, 0x09, 0xf4, 0xe0, 0xa0, 0x17, 0xcf, 0x05, 0xd1, 0x3c, 0x6c,
+ 0x45, 0x35, 0x3b, 0x0d, 0xb2, 0xbf, 0x84, 0x3f, 0x5b, 0xa6, 0xd2, 0xef, 0x19, 0xb9, 0xac, 0xff,
+ 0xc0, 0xd2, 0x41, 0xdb, 0x4a, 0x91, 0xd0, 0xa1, 0x55, 0xac, 0x5e, 0x8f, 0x3d, 0x01, 0xdf, 0x89,
+ 0x02, 0x8f, 0xd6, 0x28, 0xa3, 0x8b, 0x5d, 0x6a, 0xee, 0xaa, 0x9b, 0xaf, 0x21, 0x69, 0x4f, 0x1a,
+ 0x09, 0xdf, 0xb5, 0xb4, 0x79, 0xcd, 0x78, 0x5e, 0x49, 0xb8, 0x85, 0x4f, 0x75, 0xb2, 0x39, 0x65,
+ 0xcb, 0x82, 0x22, 0x47, 0x90, 0xd7, 0xf5, 0x95, 0xf2, 0xbe, 0x40, 0x6f, 0x69, 0xda, 0xa9, 0xf6,
+ 0x4e, 0x65, 0x58, 0x91, 0x68, 0xf9, 0xa1, 0x0b, 0xfc, 0xb4, 0xcc, 0x0f, 0x4d, 0x62, 0xda, 0x80,
+ 0x8c, 0x38, 0xcf, 0x62, 0x81, 0xe3, 0x2c, 0xc0, 0x47, 0xb2, 0x09, 0x2f, 0x51, 0x0a, 0x4a, 0x13,
+ 0x58, 0xc5, 0x9e, 0x6a, 0x1f, 0x75, 0xeb, 0x63, 0x71, 0x90, 0xf0, 0x0c, 0xe5, 0x17, 0x36, 0x7e,
+ 0x9a, 0x98, 0x09, 0x99, 0xf6, 0x6f, 0x66, 0xa8, 0xca, 0x96, 0x35, 0x2c, 0xf9, 0x7f, 0xa6, 0xed,
+ 0x1f, 0x7f, 0x73, 0x4f, 0x0e, 0x41, 0x32, 0x36, 0xc4, 0x9c, 0xb9, 0x4c, 0xdd, 0xc7, 0xd5, 0x9b,
+ 0xdd, 0x22, 0xe4, 0xbc, 0xe7, 0x5b, 0xbf, 0xfd, 0x7f, 0x9a, 0x7c, 0x6c, 0xc1, 0xaf, 0x45, 0x08,
+ 0xd6, 0x72, 0x87, 0x20, 0x3d, 0x1d, 0x9a, 0xc9, 0xd8, 0x88, 0x62, 0x8c, 0x95, 0x74, 0x33, 0x77,
+ 0x14, 0x2f, 0x10, 0xd3, 0xd4, 0x07, 0x17, 0x02, 0x63, 0x8e, 0xa7, 0xac, 0x89, 0x1c, 0xa3, 0xe4,
+ 0x91, 0xc8, 0x6a, 0x05, 0x2c, 0x29, 0x43, 0x9c, 0x6d, 0x84, 0x2b, 0xcc, 0xad, 0xa4, 0xd0, 0x92,
+ 0x53, 0x95, 0xfd, 0xf6, 0xc5, 0x33, 0xce, 0x57, 0xd6, 0x82, 0xee, 0xec, 0xb1, 0xcc, 0x40, 0x01,
+ 0x37, 0x21, 0x53, 0x2a, 0x65, 0x4f, 0x1c, 0x32, 0x02, 0x43, 0x34, 0xd7, 0x0c, 0xff, 0x50, 0x90,
+ 0xf5, 0x7c, 0xc4, 0xd9, 0x8c, 0x55, 0x91, 0xf9, 0xb9, 0x45, 0xf1, 0xf7, 0x10, 0x97, 0xc0, 0x03,
+ 0x70, 0x9b, 0xbe, 0x0f, 0x74, 0x7b, 0xc5, 0x67, 0xb7, 0x4f, 0x7d, 0x97, 0x34, 0x2f, 0xb3, 0x75,
+ 0xb2, 0xc6, 0x29, 0xfc, 0x9d, 0x61, 0x48, 0xac, 0x0c, 0x49, 0xb8, 0xb7, 0x28, 0x47, 0x23, 0xe6,
+ 0xb9, 0x96, 0x4a, 0x60, 0x47, 0x27, 0x6d, 0x98, 0xab, 0x5b, 0xa6, 0x57, 0x7c, 0x9c, 0x55, 0x99,
+ 0x7b, 0xcb, 0xdd, 0x93, 0xae, 0x3d, 0xe0, 0x53, 0x10, 0x5d, 0x63, 0x77, 0x60, 0xf4, 0xc5, 0x0a,
+ 0xfe, 0x2c, 0xa7, 0x45, 0x56, 0x13, 0xb4, 0xcd, 0x1e, 0x57, 0xef, 0x17, 0x44, 0x4c, 0xb6, 0x7c,
+ 0x3c, 0x71, 0x30, 0xb6, 0xbf, 0x09, 0x39, 0x06, 0xa5, 0x51, 0x2a, 0x37, 0x58, 0x24, 0x26, 0xef,
+ 0xe8, 0x8c, 0x61, 0xbe, 0x21, 0x9f, 0xfe, 0xa5, 0x93, 0x73, 0xd3, 0x14, 0xec, 0x39, 0x5a, 0x82,
+ 0x2a, 0xd1, 0xf6, 0x4d, 0xc8, 0x85, 0x73, 0x6e, 0x28, 0x75, 0x16, 0x34, 0xf0, 0x51, 0xca, 0x11,
+ 0xaf, 0x36, 0x8c, 0x9b, 0x30, 0xab, 0x27, 0xf0, 0x26, 0x7f, 0x9a, 0x54, 0xd4, 0xe9, 0xb9, 0x67,
+ 0x6d, 0x6b, 0x1b, 0x68, 0xd9, 0xb1, 0xaa, 0x3b, 0x9d, 0x79, 0x5f, 0x74, 0xc8, 0x81, 0x29, 0xf4,
+ 0x66, 0x3b, 0x78, 0xf4, 0x03, 0xf7, 0x8f, 0x0f, 0x3a, 0x6b, 0x41, 0x94, 0x9c, 0x5a, 0x5f, 0x8b,
+ 0xa4, 0x66, 0xef, 0x07, 0xea, 0xed, 0x02, 0xc4, 0x81, 0x6d, 0x84, 0xb4, 0x80, 0x32, 0xcf, 0x18,
+ 0x21, 0x81, 0x95, 0xd1, 0x12, 0xc3, 0x56, 0x5a, 0x8f, 0x67, 0x08, 0xd4, 0xa4, 0x8a, 0xbc, 0x6e,
+ 0xe3, 0xdc, 0x02, 0x22, 0xfb, 0xd9, 0xdb, 0x91, 0x34, 0x61, 0xcd, 0xf4, 0xb8, 0xe2, 0x2c, 0xfd,
+ 0x4a, 0xb8, 0x37, 0xc1, 0xed, 0x2c, 0x1b, 0xdf, 0xe3, 0x23, 0x39, 0x92, 0x0f, 0xb0, 0x44, 0xb4,
+ 0x88, 0xe5, 0xa0, 0x32, 0x04, 0x36, 0x96, 0x14, 0x58, 0x25, 0xfc, 0xb2, 0x13, 0xd8, 0xd4, 0x27,
+ 0x0d, 0x02, 0xda, 0xe4, 0xfc, 0x18, 0xc2, 0x8a, 0x56, 0x2f, 0x70, 0xd2, 0x37, 0x60, 0xa7, 0x51,
+ 0xcf, 0x5f, 0x4d, 0x17, 0x15, 0x02, 0x4f, 0x41, 0xed, 0x29, 0xb5, 0xf2, 0x2b, 0x08, 0x37, 0xc2,
+ 0xc4, 0x0f, 0x2e, 0x8b, 0xcf, 0x44, 0x6a, 0x75, 0x4a, 0x3b, 0xab, 0x12, 0x7f, 0xd3, 0x41, 0xbd,
+ 0x06, 0x52, 0xb9, 0x78, 0x26, 0x5e, 0xe7, 0xbe, 0xf1, 0x3d, 0x6e, 0x32, 0x63, 0xbb, 0xd1, 0x2e,
+ 0x83, 0xb5, 0xc3, 0xae, 0xde, 0x70, 0xb3, 0x20, 0xff, 0x37, 0xe2, 0x52, 0x47, 0x03, 0xa2, 0x58,
+ 0x41, 0xe8, 0x54, 0x5d, 0x37, 0x6a, 0x3e, 0xeb, 0x44, 0x31, 0x27, 0x72, 0x5b, 0x6b, 0x32, 0xcb,
+ 0x95, 0x15, 0x05, 0x55, 0xa9, 0xfc, 0xf9, 0x48, 0x72, 0x13, 0xde, 0x51, 0xef, 0x76, 0x4e, 0xa6,
+ 0x57, 0x48, 0x92, 0xa6, 0x40, 0xe6, 0x74, 0x83, 0xc9, 0x15, 0x1b, 0x71, 0xf3, 0x1e, 0xde, 0x35,
+ 0xd2, 0xaf, 0xe8, 0x70, 0xb8, 0xc8, 0x20, 0x1d, 0xc7, 0x1f, 0x97, 0x11, 0xd7, 0xa6, 0xad, 0x43,
+ 0x10, 0xf2, 0x7f, 0x83, 0x51, 0xd2, 0xad, 0xd6, 0x7c, 0x19, 0x52, 0x31, 0xcb, 0xce, 0x3d, 0xd0,
+ 0x1b, 0xa2, 0x1c, 0x1f, 0x8b, 0x94, 0x88, 0xe2, 0xdb, 0x0b, 0x4c, 0xd1, 0x9f, 0x15, 0x4b, 0xaf,
+ 0xd9, 0xff, 0x8b, 0xec, 0x62, 0x8e, 0x05, 0x29, 0x60, 0x0d, 0x89, 0xf1, 0x83, 0x7d, 0xdb, 0x3c,
+ 0x5c, 0x18, 0xf1, 0x3a, 0x9a, 0xa0, 0x51, 0xb7, 0x6e, 0x07, 0x05, 0x91, 0xa7, 0xc5, 0xa8, 0x4a,
+ 0x9e, 0x45, 0x66, 0xc9, 0x73, 0xba, 0xdc, 0x7c, 0xd5, 0x01, 0xc0, 0xb1, 0xbb, 0xad, 0x38, 0xd9,
+ 0xcd, 0xd0, 0x9b, 0x3f, 0xb6, 0x89, 0x12, 0x2b, 0x03, 0x83, 0x2e, 0x5d, 0x0a, 0x61, 0x78, 0xd8,
+ 0x0f, 0x8d, 0x0c, 0xcc, 0x5f, 0x93, 0x9f, 0xe0, 0xb8, 0x85, 0xeb, 0x7d, 0x16, 0x09, 0xe8, 0x4b,
+ 0x8a, 0x6a, 0x76, 0x1a, 0xa7, 0xbd, 0xcb, 0x7e, 0xb6, 0x8f, 0x67, 0x1d, 0x32, 0xb1, 0x9b, 0x3d,
+ 0x48, 0x37, 0xe1, 0xe9, 0x4e, 0xa7, 0x46, 0xb5, 0x0d, 0x89, 0xa2, 0x3d, 0x2e, 0xd9, 0x0b, 0xae,
+ 0x43, 0x67, 0x82, 0x75, 0x94, 0xe1, 0x63, 0x81, 0xaa, 0x9b, 0xbc, 0xdd, 0x7a, 0x02, 0x7d, 0xd1,
+ 0x81, 0x3a, 0x15, 0x86, 0x7d, 0xfb, 0xee, 0x4a, 0x11, 0x9d, 0x79, 0xfd, 0x66, 0x6a, 0xed, 0x42,
+ 0x04, 0xdd, 0x6f, 0x50, 0x85, 0xd5, 0xba, 0xd4, 0x1f, 0x97, 0xf5, 0x9d, 0x42, 0xd2, 0x9e, 0x34,
+ 0xc6, 0x80, 0xf8, 0xa3, 0x6c, 0xcf, 0x37, 0x1f, 0xa4, 0x91, 0x30, 0xbd, 0x5e, 0xba, 0x0e, 0xa7,
+ 0x12, 0x7d, 0xa9, 0xab, 0xf2, 0x59, 0xf0, 0xbc, 0x92, 0xb3, 0xc9, 0x9e, 0xea, 0xa7, 0x72, 0xca,
+ 0xd0, 0x20, 0x3e, 0x58, 0x1b, 0x43, 0x7d, 0x77, 0x29, 0xb5, 0x0c, 0xbe, 0xf6, 0xcf, 0xe2, 0x59,
+ 0x55, 0xc7, 0x44, 0x8e, 0xe3, 0x6d, 0x29, 0xe9, 0x27, 0xbf, 0x80, 0xde, 0xd2, 0x77, 0x91, 0x2f,
+ 0x97, 0x9a, 0xd3, 0x7d, 0x0a, 0x77, 0xa4, 0x22, 0x9c, 0xb9, 0x45, 0xfe, 0xce, 0x1f, 0x01, 0xbc,
+ 0x9c, 0xca, 0xb0, 0xe1, 0xd0, 0x31, 0x81, 0x16, 0x3b, 0xab, 0x5b, 0x1e, 0x9a, 0xc4, 0x77, 0xc3,
+ 0x5e, 0x97, 0x27, 0x12, 0x39, 0x2b, 0x0c, 0xdd, 0x80, 0xad, 0x9e, 0x3e, 0x86, 0xac, 0xe7, 0x50,
+ 0xdb, 0x70, 0x5d, 0xc4, 0xc1, 0x05, 0x58, 0x43, 0x8e, 0xa7, 0x12, 0x5e, 0xa2, 0x14, 0x94, 0x26,
+ 0x19, 0x2d, 0xca, 0x37, 0x28, 0x1f, 0xd5, 0x88, 0x35, 0xa1, 0xd7, 0x7e, 0xbe, 0x7c, 0x04, 0xb5,
+ 0xb0, 0x49, 0xff, 0xd4, 0x3e, 0xea, 0x15, 0xc6, 0xe2, 0xe3, 0x23, 0x18, 0x09, 0x2e, 0x6c, 0xfc,
+ 0x72, 0x14, 0x68, 0x27, 0xd7, 0xf0, 0x98, 0x0d, 0x59, 0xe5, 0xe6, 0x38, 0x15, 0x46, 0xfc, 0x6f,
+ 0xf7, 0xf3, 0x12, 0xf1, 0x2f, 0xde, 0xcc, 0x93, 0x57, 0xef, 0x6a, 0x58, 0x31, 0xfe, 0x8f, 0x19,
+ 0x35, 0xae, 0x85, 0x02, 0xc6, 0xc4, 0x41, 0x58, 0xec, 0xe9, 0xaf, 0x78, 0x2d, 0x96, 0x1f, 0x8a,
+ 0x3e, 0xfe, 0xe6, 0x9e, 0x1c, 0x82, 0x64, 0x6c, 0x4b, 0xfb, 0xb1, 0x98, 0x79, 0x4d, 0x69, 0xf5,
+ 0xfc, 0xa3, 0x71, 0x6d, 0xf5, 0x98, 0xe9, 0xa7, 0xf0, 0xfd, 0x74, 0xb8, 0x65, 0x25, 0xf9, 0x66,
+ 0x79, 0x44, 0x0b, 0xbb, 0x0d, 0xb6, 0xbd, 0x39, 0xfe, 0xf7, 0xf8, 0xd8, 0x41, 0x9d, 0x8a, 0x10,
+ 0xbb, 0x19, 0x9c, 0x48, 0xe4, 0xac, 0x30, 0xf2, 0x45, 0xf1, 0x3d, 0xf8, 0x5d, 0xf5, 0x1a, 0x83,
+ 0x6f, 0xe4, 0xcd, 0x40, 0x7a, 0x3a, 0xf7, 0x51, 0x73, 0xd3, 0xc4, 0xdb, 0xe9, 0xe8, 0x66, 0xee,
+ 0xad, 0xb9, 0x5a, 0xb3, 0x93, 0x20, 0x7a, 0x9a, 0xc8, 0xd5, 0x01, 0xfb, 0xf5, 0x80, 0xf6, 0x7d,
+ 0x28, 0x5e, 0x20, 0x65, 0x6b, 0x0e, 0x2e, 0x04, 0xc6, 0xdf, 0x8d, 0x9b, 0xd1, 0x38, 0x85, 0x0b,
+ 0xea, 0x03, 0xb7, 0x96, 0x82, 0x14, 0xa3, 0xcf, 0x7d, 0xd9, 0x48, 0xbb, 0xcd, 0x50, 0x15, 0x98,
+ 0xe1, 0x53, 0xd4, 0x0a, 0x58, 0x52, 0x86, 0xfb, 0xda, 0xcb, 0x56, 0x5b, 0x99, 0x8b, 0x63, 0xe7,
+ 0x23, 0x0e, 0x43, 0xf9, 0xb1, 0x48, 0x0b, 0x30, 0x61, 0xcd, 0x93, 0x7b, 0x85, 0xe3, 0xf3, 0x74,
+ 0xa6, 0xe9, 0x39, 0x2f, 0x49, 0x66, 0x5f, 0xae, 0x6f, 0xc7, 0x1f, 0x1b, 0xa1, 0x5b, 0x80, 0x02,
+ 0x64, 0xb4, 0xae, 0xdc, 0xa0, 0x7c, 0xd2, 0x65, 0xd4, 0xc1, 0xda, 0x3b, 0xbd, 0x33, 0x10, 0x91,
+ 0x6e, 0x42, 0xa6, 0x54, 0xca, 0x9e, 0x38, 0x64, 0x04, 0x86, 0x68, 0x6d, 0x18, 0x3d, 0xa0, 0xe3,
+ 0xac, 0x1f, 0x31, 0xa7, 0x23, 0x84, 0xb5, 0xaf, 0xbf, 0x80, 0xad, 0x4d, 0x04, 0x55, 0x30, 0x70,
+ 0x29, 0xf8, 0x4b, 0x71, 0xdb, 0xaa, 0xe1, 0x31, 0xb1, 0x8a, 0x21, 0x2d, 0x20, 0xed, 0x43, 0x06,
+ 0xeb, 0xa5, 0xdc, 0x82, 0x32, 0xb0, 0x6c, 0xfa, 0x0a, 0x8c, 0xe4, 0x0d, 0x3c, 0x85, 0xd3, 0x95,
+ 0xe0, 0xf5, 0xbf, 0x1e, 0xe8, 0xf6, 0x49, 0xce, 0xad, 0x9e, 0xfa, 0xed, 0x68, 0x5e, 0xa5, 0xea,
+ 0x22, 0xa8, 0x28, 0xed, 0x01, 0xec, 0xc4, 0x05, 0x16, 0x98, 0x3f, 0xcd, 0x74, 0x36, 0x35, 0x79,
+ 0xa7, 0x4f, 0x52, 0x3b, 0xf9, 0xc2, 0x90, 0x9b, 0x18, 0x92, 0xb3, 0xad, 0x50, 0x8e, 0x46, 0x0f,
+ 0x65, 0x12, 0xc5, 0xc8, 0x10, 0xd8, 0x1d, 0x50, 0xa3, 0x94, 0x76, 0x8d, 0x4c, 0xe6, 0xd6, 0x9c,
+ 0xb1, 0xef, 0x94, 0xc0, 0x8e, 0x4e, 0xda, 0xf3, 0x95, 0xb6, 0x8f, 0xae, 0xf8, 0xfb, 0xaa, 0xf1,
+ 0x73, 0xb2, 0x03, 0x33, 0x67, 0x54, 0x57, 0x38, 0x2e, 0xb0, 0x4a, 0x8e, 0xe4, 0x93, 0x3a, 0x62,
+ 0xf6, 0x55, 0x79, 0xe5, 0x9f, 0x7a, 0x03, 0xa6, 0x20, 0xba, 0xc6, 0xee, 0xc0, 0x2b, 0x49, 0x14,
+ 0x34, 0x08, 0xee, 0x16, 0x76, 0x60, 0x8e, 0x6d, 0x9b, 0xbc, 0x03, 0xce, 0xdc, 0x43, 0xd9, 0x87,
+ 0x3f, 0x58, 0x8d, 0x8a, 0xac, 0x26, 0xab, 0x59, 0x3c, 0xae, 0x1d, 0x2e, 0x88, 0x98, 0xaf, 0xf8,
+ 0xfd, 0x05, 0x1a, 0x79, 0x45, 0x3c, 0x26, 0x92, 0x87, 0xa8, 0xd8, 0x0e, 0x94, 0xf0, 0x3f, 0x6b,
+ 0x78, 0xe2, 0x60, 0xaf, 0xbd, 0x12, 0x72, 0x0c, 0x89, 0xa2, 0x54, 0x6e, 0xb0, 0x48, 0x4c, 0x1d,
+ 0xba, 0xbf, 0xf7, 0x5c, 0x54, 0x08, 0xff, 0xc7, 0x32, 0xa4, 0x91, 0x4e, 0xac, 0x20, 0xdc, 0x8e,
+ 0x13, 0xdb, 0xc2, 0xbf, 0x42, 0xfd, 0x3f, 0x89, 0xe5, 0xe6, 0x65, 0x28, 0x1b, 0x72, 0xb4, 0xc7,
+ 0xd1, 0x86, 0x55, 0x4c, 0xab, 0xe7, 0xb2, 0x42, 0x5e, 0xe0, 0xa0, 0x08, 0x07, 0x1a, 0x24, 0x54,
+ 0x54, 0x61, 0x2f, 0x9a, 0x53, 0xc9, 0xe6, 0xdc, 0x50, 0xea, 0x2c, 0x68, 0x23, 0xa2, 0x57, 0x22,
+ 0x96, 0x3c, 0xb8, 0x69, 0xba, 0xd3, 0x6b, 0x17, 0xeb, 0xec, 0xe9, 0x48, 0x3f, 0xca, 0xc7, 0xb1,
+ 0x9d, 0x6c, 0xdb, 0xf5, 0x60, 0x95, 0x4e, 0x23, 0x4c, 0xfe, 0xf7, 0xa8, 0x6b, 0x11, 0xb1, 0xce,
+ 0x5f, 0x31, 0x4c, 0x06, 0x89, 0x8f, 0xc3, 0xe8, 0xf7, 0xf8, 0x32, 0x88, 0x77, 0x79, 0x21, 0x5d,
+ 0xda, 0xd6, 0x36, 0xd0, 0x71, 0xa1, 0x97, 0x76, 0xf9, 0xf2, 0xbe, 0xe8, 0x53, 0xc1, 0x52, 0x2b,
+ 0x18, 0x8b, 0xa1, 0x23, 0x98, 0xbb, 0x1a, 0xbd, 0x42, 0xf4, 0x7b, 0xc8, 0x4f, 0xa9, 0xc2, 0xb8,
+ 0xcc, 0x76, 0xf0, 0x2b, 0x06, 0x2d, 0xdd, 0x1e, 0x74, 0xd6, 0x82, 0xeb, 0xfb, 0xb4, 0xbe, 0xd5,
+ 0x0e, 0x2b, 0x67, 0xd8, 0xef, 0x37, 0x50, 0xd5, 0xcf, 0xd0, 0x47, 0xcb, 0xe7, 0xdc, 0x2e, 0x46,
+ 0x8b, 0xcc, 0x1d, 0x0e, 0x17, 0x19, 0x04, 0x4b, 0xc1, 0xda, 0xcb, 0xab, 0xc3, 0x64, 0x5d, 0x30,
+ 0x49, 0x91, 0x8a, 0xfd, 0xfe, 0x03, 0x89, 0x80, 0x7a, 0xdc, 0x0e, 0x8b, 0xdf, 0x0c, 0xcd, 0xa3,
+ 0x42, 0xc1, 0xe9, 0x61, 0x24, 0x45, 0xac, 0xb4, 0xdd, 0xce, 0x10, 0x6b, 0x8b, 0xd7, 0xbb, 0xdc,
+ 0x80, 0x9c, 0x7e, 0x92, 0xcd, 0x5f, 0x21, 0x7f, 0x66, 0xc8, 0xd5, 0x4b, 0x97, 0xbf, 0x2b, 0x4f,
+ 0x05, 0x7b, 0x04, 0x44, 0x35, 0x71, 0x75, 0xe1, 0x68, 0xc2, 0x59, 0x2b, 0xb3, 0x07, 0x58, 0x39,
+ 0xc7, 0x26, 0x93, 0xb7, 0xdc, 0x6b, 0xf8, 0x2a, 0xd3, 0xc4, 0x9c, 0x0b, 0xaf, 0x6f, 0xc8, 0xaa,
+ 0x94, 0xb3, 0x6e, 0x41, 0x19, 0x58, 0x36, 0x7d, 0x05, 0x46, 0x72, 0xe7, 0x1e, 0xa3, 0x88, 0xab,
+ 0x56, 0xee, 0xf9, 0xb2, 0xf0, 0x42, 0xbb, 0xb6, 0xbe, 0x40, 0xb7, 0xc7, 0x02, 0xcb, 0x18, 0x38,
+ 0xd3, 0x09, 0x83, 0x64, 0x08, 0x6c, 0xef, 0x28, 0xb0, 0x4a, 0x3b, 0xa7, 0x26, 0x73, 0x6b, 0x4e,
+ 0x11, 0x54, 0x14, 0x97, 0xe1, 0x76, 0x62, 0xe3, 0x0b, 0x4c, 0xfe, 0x87, 0x3a, 0x1b, 0xfb, 0xdd,
+ 0x1a, 0x04, 0x77, 0x0b, 0x3b, 0x30, 0x47, 0xd7, 0xac, 0x5e, 0xe0, 0x67, 0x6e, 0xc0, 0x8d, 0xa2,
+ 0xd8, 0x59, 0xe0, 0xf8, 0xd2, 0x2a, 0xca, 0x1c, 0x17, 0x58, 0x25, 0x47, 0x72, 0xa8, 0x1d, 0x31,
+ 0x5d, 0xbe, 0x9a, 0x2e, 0x2a, 0x04, 0x9e, 0x82, 0x19, 0x52, 0xa9, 0x27, 0x56, 0x10, 0x6e, 0x47,
+ 0x9f, 0xe3, 0x0d, 0xdd, 0xc3, 0x1e, 0x13, 0x49, 0xa2, 0x54, 0x6c, 0x07, 0x4a, 0x78, 0xfe, 0xd4,
+ 0x4b, 0x1e, 0x5c, 0xd5, 0x5d, 0x88, 0xd4, 0xea, 0x94, 0x76, 0x95, 0x24, 0xfe, 0x65, 0x82, 0xb9,
+ 0x89, 0x43, 0xcb, 0x26, 0xb4, 0x92, 0x59, 0x21, 0x2f, 0x70, 0x50, 0x04, 0xe2, 0x0d, 0x12, 0x2a,
+ 0x0c, 0xa4, 0xb1, 0xf0, 0x4c, 0xbc, 0x0d, 0xbf, 0x21, 0x7a, 0xdc, 0x64, 0xc6, 0xb5, 0x61, 0x5c,
+ 0xce, 0xf9, 0x26, 0x03, 0xa5, 0xa6, 0x80, 0x74, 0x9a, 0x7c, 0x19, 0x44, 0xda, 0xdd, 0xf1, 0xcf,
+ 0xc5, 0xa9, 0x45, 0x9f, 0x7f, 0xe0, 0xa5, 0x40, 0x3d, 0x6e, 0x07, 0xa4, 0x8e, 0x06, 0x87, 0xb0,
+ 0x07, 0xf4, 0xd2, 0x6c, 0x96, 0xfa, 0x28, 0x8b, 0x86, 0x68, 0xc2, 0x84, 0x92, 0x6e, 0x17, 0x23,
+ 0x82, 0x13, 0xa8, 0xba, 0x6e, 0xd4, 0x7c, 0x15, 0x88, 0x62, 0x4e, 0xe4, 0xb6, 0xd6, 0x64, 0x55,
+ 0x40, 0x4e, 0x3f, 0x49, 0x87, 0xce, 0xf1, 0xde, 0x33, 0x64, 0x8b, 0xc4, 0xaa, 0xbe, 0xf4, 0xc6,
+ 0xe9, 0x2a, 0x0a, 0xaa, 0x91, 0x3b, 0x31, 0x90, 0xe4, 0x26, 0x7f, 0xa2, 0x1d, 0xec, 0x9c, 0x8f,
+ 0x2b, 0x77, 0x9d, 0x59, 0x78, 0x21, 0xbc, 0x5b, 0x5f, 0x20, 0xba, 0x82, 0x01, 0x84, 0x0c, 0x1c,
+ 0xae, 0x90, 0xe7, 0x8f, 0x80, 0x0f, 0xe8, 0xc5, 0x51, 0x2a, 0x36, 0xe2, 0x25, 0x3c, 0x7f, 0x6a,
+ 0x6c, 0xcd, 0x70, 0x7c, 0x69, 0x15, 0x65, 0x0e, 0xea, 0x2c, 0xf3, 0xc2, 0x39, 0x54, 0xef, 0xf9,
+ 0x67, 0x9d, 0x13, 0xe0, 0xb3, 0x53, 0x40, 0x3a, 0x4d, 0x3e, 0xed, 0x22, 0x6d, 0x8f, 0x99, 0x86,
+ 0xa5, 0xc0, 0x84, 0x13, 0x5a, 0x49, 0xcd, 0xf1, 0xf6, 0x38, 0x28, 0x02, 0x71, 0xe7, 0x09, 0x15,
+ 0x20, 0x27, 0xfe, 0xc5, 0xa2, 0x67, 0x99, 0x6f, 0xf8, 0x32, 0xa4, 0x62, 0x55, 0x5f, 0x7a, 0x63,
+ 0xe2, 0x7a, 0x69, 0x36, 0x4b, 0x7d, 0x14, 0xa4, 0x43, 0x34, 0x61, 0x42, 0x49, 0x37, 0xea, 0xf0,
+ 0x36, 0x87, 0x38, 0x3e, 0xd5, 0xeb, 0xd3, 0x07, 0x75, 0x16, 0x98, 0x61, 0xfd, 0x2a, 0x96, 0x9d,
+ 0xf4, 0xda, 0xaf, 0xcd, 0x3c, 0xf1, 0x5e, 0xcc, 0xce, 0x10, 0x5d, 0x41, 0xe1, 0x42, 0x06, 0x0e,
+ 0x71, 0x3d, 0xd5, 0x1b, 0xc4, 0xdf, 0x0a, 0x52, 0xc0, 0x1a, 0xd1, 0x21, 0xc5, 0xfa, 0x75, 0x78,
+ 0xb3, 0x60, 0x42, 0xe8, 0x2d, 0xc5, 0x87, 0x99, 0x7b, 0x1c, 0x14, 0x01, 0xd9, 0x92, 0xe5, 0xeb,
+ 0xb8, 0x30, 0x21, 0x74, 0xf7, 0x83, 0xa2, 0xad, 0xdc, 0x0e, 0x0a, 0xe1, 0x8d, 0x49, 0x93, 0x94,
+ 0x7a, 0x6d, 0xb6, 0x87, 0x1e, 0x99, 0x2f, 0x66, 0x67, 0x08, 0xcf, 0xc1, 0x91, 0x21, 0x03, 0x07,
+ 0xff, 0x8a, 0xcc, 0x51, 0xe6, 0xb7, 0x7b, 0xf8, 0x69, 0x02, 0x43, 0xa1, 0xb5, 0x99, 0x70, 0x71,
+ 0x3d, 0xd7, 0x5b, 0xa2, 0x0f, 0xad, 0xf6, 0x33, 0xd2, 0x04, 0x86, 0x81, 0xa9, 0xf1, 0xe0, 0xe2,
+ 0x59, 0x63, 0xf5, 0x7e, 0xaf, 0xd1, 0x24, 0x56, 0x06, 0xc5, 0x5c, 0xba, 0x14, 0xc2, 0xf0, 0x73,
+ 0x9b, 0x3e, 0x62, 0x8d, 0x46, 0xcb, 0xa9, 0x9d, 0xbd, 0xc3, 0x99, 0x9a, 0x08, 0xaa, 0x60, 0xe0,
+ 0x1e, 0xd9, 0x18, 0x5b, 0xbe, 0xe5, 0xfd, 0x03, 0xb3, 0xc9, 0x15, 0xfa, 0x2c, 0x12, 0x13, 0x96,
+ 0xdc, 0x84, 0x8f, 0xa8, 0x57, 0xff, 0x70, 0xc8, 0x08, 0xcf, 0xd0, 0xda, 0x30, 0x7a, 0x83, 0x05,
+ 0xd7, 0xd4, 0xec, 0x34, 0x8d, 0xb9, 0x55, 0xfc, 0xaf, 0xdd, 0xce, 0x3a, 0x64, 0xa1, 0xf5, 0x7a,
+ 0x15, 0x89, 0x7b, 0xc7, 0x64, 0xa3, 0xd8, 0x37, 0x14, 0xdb, 0x0b, 0x1a, 0x78, 0xc9, 0x65, 0xe9,
+ 0x90, 0x6e, 0x01, 0x11, 0x9c, 0x8d, 0x8c, 0xa9, 0x1a, 0xd1, 0x87, 0x7a, 0x5c, 0x71, 0x16, 0x9f,
+ 0x52, 0x33, 0x96, 0xe2, 0x75, 0x97, 0x01, 0x62, 0xa1, 0xd7, 0x42, 0x5a, 0x40, 0x19, 0x86, 0x0c,
+ 0x86, 0xce, 0xc7, 0xea, 0xeb, 0x01, 0xc6, 0xc1, 0x97, 0xf5, 0xbb, 0x79, 0xf4, 0x04, 0xfa, 0x61,
+ 0x44, 0x93, 0x50, 0x19, 0x02, 0x1b, 0x4b, 0x0a, 0x2c, 0xf3, 0x7e, 0x59, 0xe8, 0x6c, 0x6a, 0xf2,
+ 0xc1, 0x74, 0x2a, 0xcf, 0xfa, 0x35, 0x1f, 0x94, 0x22, 0xf9, 0xf2, 0x39, 0xcc, 0xd4, 0x19, 0x84,
+ 0x03, 0x29, 0xbd, 0x3c, 0x13, 0x2f, 0x92, 0x5f, 0x99, 0xff, 0x37, 0x19, 0xd0, 0xbc, 0x89, 0x17,
+ 0x08, 0x79, 0xde, 0xa0, 0xc9, 0x69, 0xb7, 0x6b, 0x3e, 0xed, 0x29, 0xf9, 0x84, 0x67, 0xff, 0x68,
+ 0xca, 0x24, 0x49, 0x53, 0x20, 0x73, 0x3a, 0xa0, 0x85, 0xeb, 0xec, 0xd9, 0x98, 0x0f, 0x6f, 0xfb,
+ 0x4f, 0xc3, 0x33, 0x85, 0xd8, 0x5d, 0x6e, 0x3e, 0x8b, 0xe1, 0x60, 0xb9, 0xbc, 0xb7, 0x1c, 0x8d,
+ 0x8d, 0x9e, 0xa4, 0x76, 0x31, 0x47, 0xe3, 0xf5, 0x30, 0xe7, 0xa5, 0x99, 0xa0, 0xdf, 0x8c, 0x1e,
+ 0x24, 0xfa, 0x91, 0x95, 0x27, 0xb2, 0x23, 0xbb, 0xe7, 0xa5, 0x51, 0xff, 0x17, 0x8d, 0xe4, 0x57,
+ 0xe6, 0xa7, 0x06, 0x66, 0xce, 0xa8, 0xae, 0x70, 0x5c, 0xa3, 0x94, 0xdf, 0x0b, 0xe5, 0x74, 0xc4,
+ 0x63, 0x40, 0x7c, 0xb0, 0x36, 0x86, 0xfa, 0xee, 0x52, 0xa9, 0x18, 0xbf, 0x2f, 0x5d, 0x07, 0xb2,
+ 0xa1, 0x1d, 0xeb, 0x43, 0xdf, 0x9c, 0x77, 0x25, 0xe9, 0xaf, 0xdd, 0x9f, 0x33, 0x35, 0x97, 0x21,
+ 0xaa, 0x4d, 0x88, 0xdf, 0x05, 0xda, 0x52, 0x11, 0x4e, 0xbd, 0xc3, 0x7f, 0x67, 0xee, 0xe1, 0x5e,
+ 0x68, 0x10, 0x1f, 0x2c, 0xec, 0xc0, 0xdf, 0xda, 0xf5, 0xbb, 0x06, 0x5f, 0x7b, 0x86, 0x71, 0xcd,
+ 0xed, 0xf7, 0x65, 0xfa, 0x14, 0xee, 0x8b, 0x44, 0xfb, 0xb1, 0x8a, 0x3f, 0x5f, 0x3e, 0x02, 0xbb,
+ 0x2f, 0xaa, 0xf2, 0x09, 0xfd, 0xf4, 0x06, 0x8f, 0x40, 0xb7, 0x4f, 0x1f, 0x43, 0x56, 0x92, 0x28,
+ 0xfb, 0x57, 0xa3, 0x01, 0x63, 0x62, 0xc1, 0x2c, 0x76, 0x95, 0xb6, 0x3c, 0xf7, 0x4b, 0xee, 0x45,
+ 0x39, 0x0a, 0x34, 0xf2, 0x8a, 0x78, 0x4c, 0xe7, 0xcd, 0x93, 0x73, 0x1c, 0xeb, 0x23, 0x7e, 0xd6,
+ 0xbc, 0xed, 0x4e, 0x24, 0x72, 0x56, 0x18, 0x79, 0xc3, 0x99, 0xff, 0x7c, 0xcf, 0x9b, 0x0d, 0xa0,
+ 0x7e, 0xb0, 0xd9, 0xd7, 0x9b, 0x4c, 0x95, 0xb2, 0x78, 0x9f, 0x3a, 0x5c, 0xd3, 0xf3, 0x9d, 0x33,
+ 0x75, 0xe0, 0xba, 0x4b, 0x41, 0x0a, 0xb0, 0x86, 0xdf, 0x8d, 0x24, 0xbc, 0x87, 0x28, 0xeb, 0x4c,
+ 0xb7, 0xbd, 0x2d, 0xb8, 0xa8, 0x10, 0x3d, 0x4d, 0x64, 0x8b, 0xe1, 0x9c, 0x9b, 0x40, 0x7b, 0xdf,
+ 0x32, 0x5a, 0x57, 0x6e, 0x50, 0x3e, 0x69, 0xd3, 0x6a, 0x81, 0x6d, 0xfc, 0xbf, 0xf8, 0x08, 0xa9,
+ 0xf0, 0x07, 0xc0, 0x9d, 0xb9, 0x24, 0xe4, 0x18, 0xd1, 0x87, 0xa8, 0xdc, 0xa3, 0x90, 0x98, 0x3a,
+ 0xa3, 0x92, 0x3d, 0x6b, 0x7c, 0x17, 0x2a, 0x4f, 0x07, 0x05, 0x46, 0x30, 0x12, 0x5c, 0xd8, 0x3b,
+ 0x61, 0xcf, 0xaa, 0x98, 0x95, 0x0d, 0xa7, 0x84, 0xbc, 0x03, 0x83, 0x10, 0x0e, 0x34, 0x48, 0xa8,
+ 0xe4, 0x28, 0xd0, 0x4e, 0x6d, 0x23, 0xf3, 0x1a, 0xb2, 0x09, 0x0f, 0x70, 0x2a, 0x8c, 0x3b, 0xde,
+ 0x26, 0x75, 0x47, 0xbd, 0x84, 0x39, 0x7e, 0xd1, 0x09, 0x0f, 0xca, 0x50, 0x36, 0xe4, 0xab, 0x4d,
+ 0x2d, 0x25, 0x24, 0x21, 0x5e, 0x7f, 0x5b, 0xe5, 0xae, 0x1d, 0xd4, 0xb0, 0x62, 0x3f, 0xdd, 0x32,
+ 0xef, 0x78, 0xb3, 0xd2, 0xb7, 0x65, 0xd6, 0x2e, 0x15, 0x1b, 0x11, 0x90, 0x7e, 0x57, 0x4d, 0xa1,
+ 0x6a, 0x9f, 0xc9, 0x04, 0x4f, 0x4b, 0x82, 0xb0, 0x1b, 0x11, 0x9d, 0xf0, 0x5a, 0xef, 0x3e, 0xd7,
+ 0xa8, 0xc2, 0x5e, 0xf7, 0xa6, 0x51, 0x0f, 0x7b, 0xa0, 0x17, 0x58, 0xd0, 0x46, 0x87, 0xae, 0x44,
+ 0x7c, 0x3f, 0x0f, 0xff, 0x38, 0xc7, 0xc8, 0xd8, 0x96, 0x35, 0xa1, 0xf3, 0xf2, 0x9a, 0xd2, 0x29,
+ 0xbe, 0x62, 0x98, 0x0c, 0xd1, 0xdd, 0x45, 0x13, 0x2d, 0x33, 0x64, 0xd3, 0xee, 0xf2, 0x42, 0xba,
+ 0x3b, 0x85, 0xe2, 0xda, 0x29, 0xf3, 0x11, 0x8d, 0x23, 0x39, 0xe8, 0xb3, 0xca, 0x4a, 0x31, 0xcc,
+ 0xf9, 0xd8, 0x75, 0x29, 0xc0, 0xe9, 0x9c, 0x46, 0x98, 0x3f, 0x2d, 0x93, 0xd6, 0x22, 0xa1, 0x5f,
+ 0xf2, 0x88, 0x16, 0xb5, 0x1a, 0xaf, 0xb9, 0x72, 0x3f, 0x2d, 0x33, 0x73, 0x82, 0xf9, 0xd7, 0x20,
+ 0x30, 0xd5, 0x81, 0x46, 0xf3, 0xb5, 0x34, 0xb9, 0x84, 0x2b, 0xf6, 0x53, 0x9e, 0x91, 0x47, 0xb3,
+ 0xb5, 0x32, 0xfb, 0x90, 0x0b, 0x9b, 0x60, 0x27, 0x8a, 0x21, 0x7a, 0x33, 0xba, 0x29, 0x34, 0xc5,
+ 0x77, 0x6f, 0x6c, 0x63, 0xe2, 0x81, 0xed, 0xec, 0x31, 0x27, 0xbf, 0x13, 0xa6, 0x41, 0xa4, 0x56,
+ 0xde, 0x0b, 0x59, 0x80, 0xf4, 0x74, 0x2d, 0xa2, 0xe6, 0x65, 0x4b, 0x75, 0x11, 0x13, 0xcc, 0x1f,
+ 0x1c, 0x56, 0xce, 0x73, 0x1d, 0x6e, 0xa0, 0x69, 0x5d, 0x63, 0x8e, 0x55, 0x0d, 0x7b, 0x5c, 0x8c,
+ 0x99, 0xb1, 0xb4, 0xa5, 0xe5, 0x40, 0xf4, 0xf7, 0x53, 0x69, 0x02, 0x35, 0x29, 0xc3, 0x2f, 0xfa,
+ 0x5b, 0xec, 0x23, 0x56, 0x0c, 0x5a, 0x79, 0x3c, 0xe8, 0x6f, 0xc7, 0x15, 0x35, 0xab, 0xbf, 0x69,
+ 0x50, 0xbc, 0x40, 0xca, 0xd6, 0x1c, 0x5c, 0x08, 0x4f, 0x7d, 0xd9, 0xf5, 0x61, 0x70, 0xc9, 0x16,
+ 0x92, 0xe1, 0xd7, 0x39, 0x3f, 0x06, 0xd1, 0xc3, 0xf4, 0x7b, 0x1c, 0xd5, 0x7d, 0x18, 0x59, 0x85,
+ 0x17, 0x06, 0xad, 0xef, 0xc7, 0x28, 0x85, 0x5d, 0xfa, 0x71, 0x90, 0xb5, 0x59, 0xa0, 0x2a, 0xf3,
+ 0xd5, 0x5b, 0x3a, 0x1c, 0x2e, 0x32, 0x08, 0x96, 0x41, 0x77, 0x55, 0x95, 0x45, 0xc8, 0xba, 0x60,
+ 0x01, 0xa6, 0x6b, 0x14, 0xb0, 0xa4, 0xcf, 0x35, 0x77, 0x55, 0xac, 0xb6, 0xf1, 0xd5, 0xc6, 0x0d,
+ 0xc3, 0xfb, 0xfc, 0xe7, 0x59, 0xbe, 0x42, 0xfe, 0xcc, 0x53, 0x69, 0x96, 0xed, 0xbd, 0x56, 0x9e,
+ 0x46, 0x1c, 0x86, 0x31, 0xa1, 0x90, 0x16, 0x60, 0xc2, 0x59, 0xe5, 0xf6, 0xc9, 0x05, 0x25, 0xe8,
+ 0x84, 0x41, 0x11, 0xc2, 0x48, 0x8a, 0x9b, 0xab, 0x79, 0x5f, 0x20, 0xd6, 0xd5, 0x6d, 0xb5, 0x7b,
+ 0x8f, 0x11, 0x72, 0x5e, 0x92, 0xcc, 0xbe, 0x9f, 0xde, 0x4d, 0x3e, 0x36, 0x81, 0xb6, 0xc3, 0x04,
+ 0x4d, 0x4c, 0xe5, 0xad, 0x7b, 0xd6, 0x33, 0x54, 0x65, 0x4b, 0xfb, 0x16, 0x9d, 0xde, 0x53, 0x97,
+ 0xc8, 0xab, 0x9f, 0x7b, 0x83, 0xf8, 0x67, 0xca, 0x6b, 0x41, 0x77, 0x76, 0xb9, 0x66, 0x20, 0xe1,
+ 0x0a, 0xf6, 0x08, 0x88, 0x6a, 0xe2, 0xea, 0x01, 0xd0, 0x47, 0xb2, 0x56, 0xa5, 0x0e, 0xb0, 0x72,
+ },
+ { /* 12 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x10, 0x96, 0xca, 0xd9, 0x30, 0x68, 0x2f, 0x14, 0x1a, 0x17, 0x0c, 0xca, 0x0c, 0x70, 0xda, 0xbf,
+ 0x20, 0xef, 0x57, 0x71, 0x60, 0xd0, 0x5e, 0x28, 0x34, 0x2e, 0x18, 0x57, 0x18, 0xe0, 0x77, 0xbd,
+ 0x30, 0x79, 0x9d, 0xa8, 0x50, 0xb8, 0x71, 0x3c, 0x2e, 0x39, 0x14, 0x9d, 0x14, 0x90, 0xad, 0x02,
+ 0x40, 0x1d, 0xae, 0xe2, 0xc0, 0x63, 0xbc, 0x50, 0x68, 0x5c, 0x30, 0xae, 0x30, 0x03, 0xee, 0xb9,
+ 0x50, 0x8b, 0x64, 0x3b, 0xf0, 0x0b, 0x93, 0x44, 0x72, 0x4b, 0x3c, 0x64, 0x3c, 0x73, 0x34, 0x06,
+ 0x60, 0xf2, 0xf9, 0x93, 0xa0, 0xb3, 0xe2, 0x78, 0x5c, 0x72, 0x28, 0xf9, 0x28, 0xe3, 0x99, 0x04,
+ 0x70, 0x64, 0x33, 0x4a, 0x90, 0xdb, 0xcd, 0x6c, 0x46, 0x65, 0x24, 0x33, 0x24, 0x93, 0x43, 0xbb,
+ 0x80, 0x3a, 0x9f, 0x07, 0x43, 0xc6, 0xbb, 0xa0, 0xd0, 0xb8, 0x60, 0x9f, 0x60, 0x06, 0x1f, 0xb1,
+ 0x90, 0xac, 0x55, 0xde, 0x73, 0xae, 0x94, 0xb4, 0xca, 0xaf, 0x6c, 0x55, 0x6c, 0x76, 0xc5, 0x0e,
+ 0xa0, 0xd5, 0xc8, 0x76, 0x23, 0x16, 0xe5, 0x88, 0xe4, 0x96, 0x78, 0xc8, 0x78, 0xe6, 0x68, 0x0c,
+ 0xb0, 0x43, 0x02, 0xaf, 0x13, 0x7e, 0xca, 0x9c, 0xfe, 0x81, 0x74, 0x02, 0x74, 0x96, 0xb2, 0xb3,
+ 0xc0, 0x27, 0x31, 0xe5, 0x83, 0xa5, 0x07, 0xf0, 0xb8, 0xe4, 0x50, 0x31, 0x50, 0x05, 0xf1, 0x08,
+ 0xd0, 0xb1, 0xfb, 0x3c, 0xb3, 0xcd, 0x28, 0xe4, 0xa2, 0xf3, 0x5c, 0xfb, 0x5c, 0x75, 0x2b, 0xb7,
+ 0xe0, 0xc8, 0x66, 0x94, 0xe3, 0x75, 0x59, 0xd8, 0x8c, 0xca, 0x48, 0x66, 0x48, 0xe5, 0x86, 0xb5,
+ 0xf0, 0x5e, 0xac, 0x4d, 0xd3, 0x1d, 0x76, 0xcc, 0x96, 0xdd, 0x44, 0xac, 0x44, 0x95, 0x5c, 0x0a,
+ 0xc3, 0x74, 0xfd, 0x0e, 0x86, 0x4f, 0xb5, 0x83, 0x63, 0xb3, 0xc0, 0xfd, 0xc0, 0x0c, 0x3e, 0xa1,
+ 0xd3, 0xe2, 0x37, 0xd7, 0xb6, 0x27, 0x9a, 0x97, 0x79, 0xa4, 0xcc, 0x37, 0xcc, 0x7c, 0xe4, 0x1e,
+ 0xe3, 0x9b, 0xaa, 0x7f, 0xe6, 0x9f, 0xeb, 0xab, 0x57, 0x9d, 0xd8, 0xaa, 0xd8, 0xec, 0x49, 0x1c,
+ 0xf3, 0x0d, 0x60, 0xa6, 0xd6, 0xf7, 0xc4, 0xbf, 0x4d, 0x8a, 0xd4, 0x60, 0xd4, 0x9c, 0x93, 0xa3,
+ 0x83, 0x69, 0x53, 0xec, 0x46, 0x2c, 0x09, 0xd3, 0x0b, 0xef, 0xf0, 0x53, 0xf0, 0x0f, 0xd0, 0x18,
+ 0x93, 0xff, 0x99, 0x35, 0x76, 0x44, 0x26, 0xc7, 0x11, 0xf8, 0xfc, 0x99, 0xfc, 0x7f, 0x0a, 0xa7,
+ 0xa3, 0x86, 0x04, 0x9d, 0x26, 0xfc, 0x57, 0xfb, 0x3f, 0xc1, 0xe8, 0x04, 0xe8, 0xef, 0xa7, 0xa5,
+ 0xb3, 0x10, 0xce, 0x44, 0x16, 0x94, 0x78, 0xef, 0x25, 0xd6, 0xe4, 0xce, 0xe4, 0x9f, 0x7d, 0x1a,
+ 0x43, 0x4e, 0x62, 0x09, 0xc5, 0x89, 0x0e, 0x23, 0xb3, 0x0b, 0xa0, 0x62, 0xa0, 0x0a, 0x21, 0x10,
+ 0x53, 0xd8, 0xa8, 0xd0, 0xf5, 0xe1, 0x21, 0x37, 0xa9, 0x1c, 0xac, 0xa8, 0xac, 0x7a, 0xfb, 0xaf,
+ 0x63, 0xa1, 0x35, 0x78, 0xa5, 0x59, 0x50, 0x0b, 0x87, 0x25, 0xb8, 0x35, 0xb8, 0xea, 0x56, 0xad,
+ 0x73, 0x37, 0xff, 0xa1, 0x95, 0x31, 0x7f, 0x1f, 0x9d, 0x32, 0xb4, 0xff, 0xb4, 0x9a, 0x8c, 0x12,
+ 0x03, 0x53, 0xcc, 0xeb, 0x05, 0xea, 0xb2, 0x73, 0xdb, 0x57, 0x90, 0xcc, 0x90, 0x09, 0xcf, 0xa9,
+ 0x13, 0xc5, 0x06, 0x32, 0x35, 0x82, 0x9d, 0x67, 0xc1, 0x40, 0x9c, 0x06, 0x9c, 0x79, 0x15, 0x16,
+ 0x23, 0xbc, 0x9b, 0x9a, 0x65, 0x3a, 0xec, 0x5b, 0xef, 0x79, 0x88, 0x9b, 0x88, 0xe9, 0xb8, 0x14,
+ 0x33, 0x2a, 0x51, 0x43, 0x55, 0x52, 0xc3, 0x4f, 0xf5, 0x6e, 0x84, 0x51, 0x84, 0x99, 0x62, 0xab,
+ 0x45, 0xe8, 0x39, 0x1c, 0xcf, 0x9e, 0xa9, 0xc5, 0xc6, 0xa5, 0x43, 0x39, 0x43, 0x18, 0x7c, 0x81,
+ 0x55, 0x7e, 0xf3, 0xc5, 0xff, 0xf6, 0x86, 0xd1, 0xdc, 0xb2, 0x4f, 0xf3, 0x4f, 0x68, 0xa6, 0x3e,
+ 0x65, 0x07, 0x6e, 0x6d, 0xaf, 0x4e, 0xf7, 0xed, 0xf2, 0x8b, 0x5b, 0x6e, 0x5b, 0xf8, 0x0b, 0x3c,
+ 0x75, 0x91, 0xa4, 0xb4, 0x9f, 0x26, 0xd8, 0xf9, 0xe8, 0x9c, 0x57, 0xa4, 0x57, 0x88, 0xd1, 0x83,
+ 0x05, 0xf5, 0x97, 0xfe, 0x0f, 0xfd, 0x15, 0x95, 0xae, 0xf9, 0x73, 0x97, 0x73, 0x1b, 0x92, 0x38,
+ 0x15, 0x63, 0x5d, 0x27, 0x3f, 0x95, 0x3a, 0x81, 0xb4, 0xee, 0x7f, 0x5d, 0x7f, 0x6b, 0x48, 0x87,
+ 0x25, 0x1a, 0xc0, 0x8f, 0x6f, 0x2d, 0x4b, 0xbd, 0x9a, 0xd7, 0x6b, 0xc0, 0x6b, 0xfb, 0xe5, 0x85,
+ 0x35, 0x8c, 0x0a, 0x56, 0x5f, 0x45, 0x64, 0xa9, 0x80, 0xc0, 0x67, 0x0a, 0x67, 0x8b, 0x3f, 0x3a,
+ 0xc5, 0xd2, 0xa6, 0x1b, 0x8c, 0x58, 0x12, 0x65, 0x16, 0x1d, 0x23, 0xa6, 0x23, 0x1e, 0x63, 0x30,
+ 0xd5, 0x44, 0x6c, 0xc2, 0xbc, 0x30, 0x3d, 0x71, 0x0c, 0x0a, 0x2f, 0x6c, 0x2f, 0x6e, 0xb9, 0x8f,
+ 0xe5, 0x3d, 0xf1, 0x6a, 0xec, 0x88, 0x4c, 0x4d, 0x22, 0x33, 0x3b, 0xf1, 0x3b, 0xfe, 0x14, 0x8d,
+ 0xf5, 0xab, 0x3b, 0xb3, 0xdc, 0xe0, 0x63, 0x59, 0x38, 0x24, 0x37, 0x3b, 0x37, 0x8e, 0xce, 0x32,
+ 0x85, 0xcf, 0x08, 0xf9, 0x4c, 0x3b, 0xae, 0x35, 0x7e, 0x41, 0x13, 0x08, 0x13, 0x1d, 0x8d, 0x89,
+ 0x95, 0x59, 0xc2, 0x20, 0x7c, 0x53, 0x81, 0x21, 0x64, 0x56, 0x1f, 0xc2, 0x1f, 0x6d, 0x57, 0x36,
+ 0xa5, 0x20, 0x5f, 0x88, 0x2c, 0xeb, 0xf0, 0x1d, 0x4a, 0x6f, 0x0b, 0x5f, 0x0b, 0xfd, 0xfa, 0x34,
+ 0xb5, 0xb6, 0x95, 0x51, 0x1c, 0x83, 0xdf, 0x09, 0x50, 0x78, 0x07, 0x95, 0x07, 0x8d, 0x20, 0x8b,
+ 0x86, 0x9c, 0xc4, 0x12, 0x49, 0xd1, 0x1c, 0x46, 0xa5, 0x16, 0x83, 0xc4, 0x83, 0x14, 0x42, 0x20,
+ 0x96, 0x0a, 0x0e, 0xcb, 0x79, 0xb9, 0x33, 0x52, 0xbf, 0x01, 0x8f, 0x0e, 0x8f, 0x64, 0x98, 0x9f,
+ 0xa6, 0x73, 0x93, 0x63, 0x29, 0x01, 0x42, 0x6e, 0x91, 0x38, 0x9b, 0x93, 0x9b, 0xf4, 0x35, 0x9d,
+ 0xb6, 0xe5, 0x59, 0xba, 0x19, 0x69, 0x6d, 0x7a, 0x8b, 0x2f, 0x97, 0x59, 0x97, 0x84, 0xef, 0x22,
+ 0xc6, 0x81, 0x6a, 0xf0, 0x89, 0xb2, 0xa0, 0x16, 0xcd, 0x4a, 0xb3, 0x6a, 0xb3, 0x17, 0xac, 0x99,
+ 0xd6, 0x17, 0xa0, 0x29, 0xb9, 0xda, 0x8f, 0x02, 0xd7, 0x5d, 0xbf, 0xa0, 0xbf, 0x67, 0x76, 0x26,
+ 0xe6, 0x6e, 0x3d, 0x81, 0xe9, 0x62, 0xfe, 0x3e, 0xf9, 0x64, 0xab, 0x3d, 0xab, 0xf7, 0xdb, 0x24,
+ 0xf6, 0xf8, 0xf7, 0x58, 0xd9, 0x0a, 0xd1, 0x2a, 0xe3, 0x73, 0xa7, 0xf7, 0xa7, 0x87, 0x01, 0x9b,
+ 0x06, 0xa6, 0x5b, 0x15, 0x0a, 0x17, 0xa7, 0xe6, 0x75, 0xae, 0xe3, 0x5b, 0xe3, 0x12, 0x5d, 0x91,
+ 0x16, 0x30, 0x91, 0xcc, 0x3a, 0x7f, 0x88, 0xf2, 0x6f, 0xb9, 0xef, 0x91, 0xef, 0x62, 0x87, 0x2e,
+ 0x26, 0x49, 0x0c, 0x64, 0x6a, 0xc7, 0xf9, 0xce, 0x41, 0x80, 0xfb, 0x0c, 0xfb, 0xf2, 0x2a, 0x2c,
+ 0x36, 0xdf, 0xc6, 0xbd, 0x5a, 0xaf, 0xd6, 0xda, 0x5b, 0x97, 0xf7, 0xc6, 0xf7, 0x82, 0xf0, 0x93,
+ 0x46, 0xbb, 0xf5, 0xf7, 0xca, 0x74, 0x1b, 0xb6, 0x1d, 0xf2, 0xd3, 0xf5, 0xd3, 0x11, 0xb3, 0x28,
+ 0x56, 0x2d, 0x3f, 0x2e, 0xfa, 0x1c, 0x34, 0xa2, 0x07, 0xe5, 0xdf, 0x3f, 0xdf, 0x61, 0x69, 0x97,
+ 0x66, 0x54, 0xa2, 0x86, 0xaa, 0xa4, 0x45, 0x9e, 0x29, 0xdc, 0xcb, 0xa2, 0xcb, 0xf1, 0xc4, 0x95,
+ 0x76, 0xc2, 0x68, 0x5f, 0x9a, 0xcc, 0x6a, 0x8a, 0x33, 0xcb, 0xc7, 0x68, 0xc7, 0x81, 0x1e, 0x2a,
+ 0x8a, 0x13, 0x72, 0x38, 0x5d, 0xff, 0x91, 0x49, 0x4f, 0x89, 0x86, 0x72, 0x86, 0x30, 0xf8, 0xc1,
+ 0x9a, 0x85, 0xb8, 0xe1, 0x6d, 0x97, 0xbe, 0x5d, 0x55, 0x9e, 0x8a, 0xb8, 0x8a, 0x40, 0x22, 0x7e,
+ 0xaa, 0xfc, 0x25, 0x49, 0x3d, 0x2f, 0xcf, 0x61, 0x7b, 0xa7, 0x9e, 0x25, 0x9e, 0xd0, 0x8f, 0x7c,
+ 0xba, 0x6a, 0xef, 0x90, 0x0d, 0x47, 0xe0, 0x75, 0x61, 0xb0, 0x92, 0xef, 0x92, 0xa0, 0x55, 0xc3,
+ 0xca, 0x0e, 0xdc, 0xda, 0x9d, 0x9c, 0x2d, 0x19, 0x27, 0xd5, 0xb6, 0xdc, 0xb6, 0x33, 0x16, 0x78,
+ 0xda, 0x98, 0x16, 0x03, 0xad, 0xf4, 0x02, 0x0d, 0x3d, 0xc2, 0xba, 0x16, 0xba, 0x43, 0xcc, 0xc7,
+ 0xea, 0xe1, 0x8b, 0xab, 0xfd, 0x4c, 0x73, 0x31, 0x13, 0xfb, 0xae, 0x8b, 0xae, 0xd3, 0x61, 0xc5,
+ 0xfa, 0x77, 0x41, 0x72, 0xcd, 0x24, 0x5c, 0x25, 0x09, 0xec, 0xa2, 0x41, 0xa2, 0xa3, 0xbb, 0x7a,
+ 0x0a, 0x29, 0xed, 0x3f, 0x1e, 0x39, 0x2a, 0xe9, 0x9f, 0x31, 0xe6, 0xed, 0xe6, 0x36, 0xe7, 0x70,
+ 0x1a, 0xbf, 0x27, 0xe6, 0x2e, 0x51, 0x05, 0xfd, 0x85, 0x26, 0xea, 0x27, 0xea, 0x46, 0x3d, 0xcf,
+ 0x2a, 0xc6, 0xba, 0x4e, 0x7e, 0xe9, 0x74, 0xc1, 0xab, 0x1f, 0xfe, 0xba, 0xfe, 0xd6, 0x90, 0xcd,
+ 0x3a, 0x50, 0x70, 0x97, 0x4e, 0x81, 0x5b, 0xd5, 0xb1, 0x08, 0xf2, 0x70, 0xf2, 0xa6, 0x4a, 0x72,
+ 0x4a, 0x34, 0x43, 0xdd, 0xde, 0x5a, 0x96, 0xb9, 0xf7, 0x6d, 0xd6, 0x43, 0xd6, 0x35, 0x09, 0xc9,
+ 0x5a, 0xa2, 0x89, 0x04, 0xee, 0x32, 0xb9, 0xad, 0xed, 0x7a, 0xda, 0x89, 0xda, 0x45, 0xd3, 0x76,
+ 0x6a, 0xdb, 0x14, 0xac, 0xbe, 0x8a, 0xc8, 0x91, 0xc3, 0x43, 0xce, 0x14, 0xce, 0xd5, 0x7e, 0x74,
+ 0x7a, 0x4d, 0xde, 0x75, 0x8e, 0xe2, 0xe7, 0x85, 0xd9, 0x54, 0xc2, 0xde, 0xc2, 0xa5, 0xa4, 0xcb,
+ 0x49, 0x67, 0x8f, 0x36, 0xdb, 0xb0, 0x24, 0xca, 0x2c, 0x3a, 0x46, 0x8f, 0x46, 0x3c, 0xc6, 0x60,
+ 0x59, 0xf1, 0x45, 0xef, 0xeb, 0xd8, 0x0b, 0xde, 0x36, 0x2d, 0x4a, 0x45, 0x4a, 0x4c, 0x1c, 0xdf,
+ 0x69, 0x88, 0xd8, 0x47, 0xbb, 0x60, 0x7a, 0xe2, 0x18, 0x14, 0x5e, 0xd8, 0x5e, 0xdc, 0xb1, 0xdd,
+ 0x79, 0x1e, 0x12, 0x9e, 0x8b, 0x08, 0x55, 0xf6, 0x02, 0x03, 0x52, 0x12, 0x52, 0xac, 0x6b, 0x62,
+ 0x09, 0x7a, 0x21, 0xd4, 0x1b, 0xd3, 0x98, 0x9a, 0x44, 0x66, 0x76, 0x21, 0x76, 0x3f, 0x28, 0xd9,
+ 0x19, 0xec, 0xeb, 0x0d, 0x2b, 0xbb, 0xb7, 0x8e, 0x5e, 0x71, 0x7a, 0xeb, 0x7a, 0x4f, 0xf2, 0x66,
+ 0x29, 0x95, 0x76, 0xa5, 0x7b, 0x03, 0xc6, 0xb2, 0x70, 0x48, 0x6e, 0x76, 0x6e, 0xdf, 0x5f, 0x64,
+ 0x39, 0x03, 0xbc, 0x7c, 0x4b, 0x6b, 0xe9, 0xa6, 0x6a, 0x5f, 0x62, 0xbc, 0x62, 0xaf, 0x85, 0xdb,
+ 0xc9, 0x5d, 0x10, 0x31, 0x98, 0x76, 0x9f, 0x6a, 0xfc, 0x82, 0x26, 0x10, 0x26, 0x3a, 0xd9, 0xd1,
+ 0xd9, 0xcb, 0xda, 0xe8, 0xa8, 0x1e, 0xb0, 0x7e, 0xe6, 0x95, 0x2a, 0xda, 0x2a, 0x4a, 0x03, 0x6e,
+ 0xe9, 0xb2, 0x47, 0x40, 0xf8, 0xa6, 0xc1, 0x42, 0xc8, 0xac, 0x3e, 0x47, 0x3e, 0xda, 0xae, 0x6c,
+ 0xf9, 0x24, 0x8d, 0x99, 0xc8, 0xce, 0xee, 0x56, 0xd2, 0xbb, 0x32, 0x8d, 0x32, 0xaa, 0x74, 0xd3,
+ 0x89, 0x40, 0xbe, 0xd3, 0x58, 0x15, 0x23, 0x3a, 0x94, 0xde, 0x16, 0xbe, 0x16, 0x39, 0x37, 0x68,
+ 0x99, 0xd6, 0x74, 0x0a, 0x68, 0x7d, 0x0c, 0x2e, 0x8e, 0xc9, 0x1a, 0x74, 0x1a, 0x49, 0xed, 0xd7,
+ 0xa9, 0xaf, 0xe9, 0xa2, 0x38, 0xc5, 0x7d, 0x12, 0xa0, 0xf0, 0x0e, 0xe9, 0x0e, 0xd9, 0x40, 0xd5,
+ 0xb9, 0x39, 0x23, 0x7b, 0x08, 0xad, 0x52, 0x06, 0xba, 0xe7, 0x02, 0x23, 0x02, 0xa9, 0x9a, 0x6a,
+ 0xcf, 0xfb, 0x4b, 0x24, 0x92, 0x61, 0x38, 0x8c, 0x89, 0x2c, 0xc5, 0x4b, 0xc5, 0x28, 0x84, 0x40,
+ 0xdf, 0x6d, 0x81, 0xfd, 0xa2, 0x09, 0x17, 0x98, 0x93, 0x3b, 0xc9, 0x81, 0xc9, 0x58, 0x5e, 0xff,
+ 0xef, 0x14, 0x1c, 0x55, 0xf2, 0xb1, 0x66, 0xa4, 0xbd, 0x02, 0xdd, 0x1c, 0xdd, 0xc8, 0xf3, 0xfd,
+ 0xff, 0x82, 0xd6, 0x8c, 0xc2, 0xd9, 0x49, 0xb0, 0xa7, 0x15, 0xd1, 0xd6, 0xd1, 0xb8, 0x29, 0x42,
+ 0x8f, 0xe6, 0xe5, 0xc6, 0x52, 0x02, 0x84, 0xdc, 0xe1, 0x70, 0xf5, 0xe5, 0xf5, 0x2b, 0x6a, 0xf9,
+ 0x9f, 0x70, 0x2f, 0x1f, 0x62, 0x6a, 0xab, 0xc8, 0xfb, 0x67, 0xf9, 0x2f, 0xf9, 0x5b, 0xb0, 0x46,
+ 0xaf, 0x09, 0xb2, 0xb7, 0x32, 0xd2, 0xda, 0xf4, 0xd5, 0x5e, 0xed, 0xb2, 0xed, 0xcb, 0x1d, 0x44,
+ 0xbf, 0x9f, 0x78, 0x6e, 0x02, 0xba, 0xf5, 0xe0, 0xcf, 0x49, 0xe1, 0x78, 0xe1, 0xbb, 0xc7, 0xfb,
+ 0x4f, 0xc1, 0xd4, 0x23, 0xd1, 0xa7, 0x83, 0x2c, 0x59, 0x94, 0xa5, 0xd4, 0xa5, 0x2e, 0x9b, 0xf1,
+ 0x5f, 0x57, 0x1e, 0xfa, 0xe1, 0xcf, 0xac, 0x38, 0x43, 0x83, 0xa9, 0x1e, 0xa9, 0x5e, 0x41, 0x4e,
+ 0x6f, 0x2e, 0x83, 0x52, 0xb1, 0x77, 0xdd, 0x04, 0x6d, 0xba, 0xbd, 0x83, 0xbd, 0xce, 0xec, 0x4c,
+ 0x7f, 0xb8, 0x49, 0x8b, 0x81, 0x1f, 0xf2, 0x10, 0x77, 0xad, 0xb1, 0x49, 0xb1, 0xbe, 0x36, 0xf3,
+ 0x0f, 0xdc, 0x7a, 0xc1, 0x11, 0xc4, 0x3f, 0x7c, 0x31, 0xc8, 0x95, 0x7a, 0x95, 0x2d, 0x75, 0x48,
+ 0x1f, 0x4a, 0xb0, 0x18, 0x21, 0xac, 0x10, 0x68, 0x2b, 0xdf, 0x99, 0xb0, 0x99, 0x5d, 0xaf, 0xf7,
+ 0x2f, 0x33, 0x2d, 0xb0, 0x71, 0x14, 0x61, 0x54, 0x05, 0xe6, 0x8d, 0x2d, 0x8d, 0xcd, 0x02, 0xf5,
+ 0x3f, 0xa5, 0xe7, 0x69, 0x41, 0x7c, 0x4e, 0x40, 0x1f, 0xf1, 0x81, 0xe7, 0x81, 0xbd, 0xd8, 0x4a,
+ 0x0c, 0x8f, 0xb6, 0x2a, 0x14, 0x2e, 0x8d, 0x0f, 0xea, 0x9f, 0x05, 0xb6, 0x05, 0x24, 0xba, 0xe1,
+ 0x1c, 0x19, 0x7c, 0xf3, 0x24, 0x46, 0xa2, 0x1b, 0xf0, 0x88, 0x09, 0x7c, 0x09, 0x54, 0x60, 0x5e,
+ 0x2c, 0x60, 0xe1, 0x5b, 0x74, 0xfe, 0xd3, 0x27, 0xde, 0xb1, 0x1d, 0xe1, 0x1d, 0xc4, 0xcd, 0x5c,
+ 0x3c, 0xf6, 0x2b, 0x82, 0x44, 0x96, 0xfc, 0x33, 0xc4, 0xa6, 0x11, 0x2b, 0x11, 0xb4, 0x17, 0xe3,
+ 0x4c, 0x92, 0x18, 0xc8, 0xd4, 0x4d, 0x31, 0x5f, 0x82, 0xc3, 0x35, 0x18, 0x35, 0x27, 0x54, 0x58,
+ 0x5c, 0x04, 0xd2, 0x11, 0xe4, 0x25, 0x1e, 0x4b, 0x98, 0xd4, 0x39, 0xd2, 0x39, 0x57, 0x8e, 0xe7,
+ 0x6c, 0x7d, 0x4f, 0xb9, 0xb4, 0x9d, 0x6f, 0x77, 0xb6, 0xed, 0x2d, 0x4f, 0x2d, 0xc7, 0x23, 0xe5,
+ 0x7c, 0xeb, 0x85, 0x60, 0x84, 0xf5, 0x40, 0x63, 0xac, 0xfa, 0x21, 0x85, 0x21, 0xb7, 0xf9, 0x5a,
+ 0x8c, 0xb5, 0x29, 0x2d, 0x57, 0xe8, 0x36, 0xaf, 0x3a, 0x27, 0x65, 0x29, 0x65, 0x22, 0xa5, 0x50,
+ 0x9c, 0x23, 0xe3, 0xf4, 0x67, 0x80, 0x19, 0xbb, 0x20, 0x30, 0x69, 0xe3, 0x69, 0x52, 0x7f, 0xef,
+ 0xac, 0x5a, 0x7e, 0x5c, 0x37, 0x38, 0x68, 0x87, 0x0e, 0x09, 0x7d, 0x7e, 0x7d, 0xc2, 0xd2, 0xed,
+ 0xbc, 0xcc, 0xb4, 0x85, 0x07, 0x50, 0x47, 0x93, 0x14, 0x1e, 0x71, 0xb4, 0x71, 0xb2, 0x08, 0x52,
+ 0xcc, 0xa8, 0x87, 0xcf, 0x97, 0x8b, 0x8a, 0xff, 0x52, 0x7b, 0x55, 0x87, 0x55, 0x21, 0x4b, 0xe9,
+ 0xdc, 0x3e, 0x4d, 0x16, 0xa7, 0xe3, 0xa5, 0xeb, 0x48, 0x6c, 0x59, 0x4d, 0x59, 0x51, 0x91, 0x56,
+ 0xec, 0x47, 0xd0, 0xbe, 0xf7, 0x5b, 0xd4, 0xd7, 0x66, 0x55, 0x4d, 0xd0, 0x4d, 0xc1, 0x3c, 0x54,
+ 0xfc, 0xd1, 0x1a, 0x67, 0xc7, 0x33, 0xfb, 0xc3, 0x7c, 0x42, 0x41, 0x1a, 0x41, 0xb1, 0xe6, 0xeb,
+ 0xd7, 0x26, 0xe4, 0x70, 0xba, 0x3d, 0xe1, 0x92, 0x9e, 0xd1, 0xcf, 0xe4, 0xcf, 0x60, 0x33, 0x41,
+ 0xc7, 0xb0, 0x2e, 0xa9, 0x8a, 0x55, 0xce, 0x86, 0x84, 0xc6, 0xc3, 0x2e, 0xc3, 0x10, 0xe9, 0xfe,
+ 0xf7, 0xc9, 0xb3, 0x01, 0xda, 0xed, 0xbf, 0xba, 0xaa, 0xff, 0xd7, 0xb3, 0xd7, 0x80, 0x44, 0xfc,
+ 0xe7, 0x5f, 0x79, 0xd8, 0xea, 0x85, 0x90, 0xae, 0xb0, 0xe8, 0xdb, 0x79, 0xdb, 0xf0, 0x9e, 0x43,
+ 0x97, 0x3b, 0x4a, 0x92, 0x7a, 0x5e, 0x5d, 0xc2, 0xf6, 0x8d, 0xff, 0x4a, 0xff, 0x63, 0xdd, 0xf8,
+ 0x87, 0xad, 0x80, 0x4b, 0x4a, 0x36, 0x72, 0xd6, 0xec, 0x9a, 0xf3, 0x80, 0xf3, 0x13, 0x07, 0x47,
+ 0xb7, 0xd4, 0x1d, 0xe3, 0x1a, 0x8e, 0x03, 0xea, 0xc2, 0xa3, 0xe7, 0x1d, 0xe7, 0x83, 0xaa, 0x45,
+ 0xa7, 0x42, 0xd7, 0x3a, 0x2a, 0xe6, 0x2c, 0xfe, 0xd8, 0xb4, 0xeb, 0xd7, 0xeb, 0xf3, 0x70, 0xfa,
+ 0x57, 0x1c, 0x7b, 0x77, 0xf9, 0xfb, 0x5a, 0x32, 0x4e, 0x69, 0xaf, 0x7b, 0xaf, 0x66, 0x2c, 0xf0,
+ 0x47, 0x8a, 0xb1, 0xae, 0xc9, 0x93, 0x75, 0x26, 0x54, 0x7e, 0xa3, 0xb1, 0xa3, 0x16, 0xf6, 0x4f,
+ 0x77, 0xf3, 0x2c, 0x06, 0x99, 0x2b, 0x04, 0x1a, 0x7a, 0x47, 0xb7, 0x2c, 0xb7, 0x86, 0x5b, 0x4d,
+ 0x67, 0x65, 0xe6, 0xdf, 0xa9, 0x43, 0x2b, 0x0e, 0x60, 0x50, 0xbb, 0xe6, 0xbb, 0xf6, 0x81, 0xf2,
+ 0x17, 0x01, 0xd5, 0x95, 0x39, 0x98, 0xe6, 0x62, 0x26, 0x35, 0x9f, 0xd5, 0x9f, 0x65, 0xc2, 0x49,
+ 0x07, 0x97, 0x1f, 0x4c, 0x09, 0xf0, 0xc9, 0x76, 0x3c, 0x22, 0x93, 0x1f, 0x93, 0x15, 0x18, 0xf6,
+ 0x37, 0xee, 0x82, 0xe4, 0x59, 0x48, 0xb8, 0x4a, 0x12, 0x1b, 0x87, 0x82, 0x87, 0x85, 0xb5, 0xf4,
+ 0x27, 0x78, 0x48, 0x3d, 0x69, 0x20, 0x97, 0x5e, 0x08, 0x0c, 0x8b, 0x48, 0x8b, 0xf5, 0x6f, 0x4b,
+ 0x14, 0x52, 0x19, 0x7e, 0x3c, 0x72, 0x54, 0x11, 0xfd, 0x62, 0x0f, 0x19, 0x0f, 0x6c, 0x0d, 0xe0,
+ 0x04, 0xc4, 0xd3, 0xa7, 0x0c, 0x1a, 0x7b, 0x05, 0xe7, 0x75, 0x03, 0xd3, 0x03, 0x1c, 0xd7, 0x5f,
+ 0x34, 0xbd, 0x4e, 0x0f, 0x5c, 0xa2, 0x0a, 0x39, 0xc9, 0x4c, 0x17, 0x4e, 0x17, 0x8c, 0x7a, 0x5d,
+ 0x24, 0x2b, 0x84, 0xd6, 0x6c, 0xca, 0x25, 0x2d, 0xd3, 0x5b, 0x1b, 0x84, 0x1b, 0xfc, 0xa0, 0xe2,
+ 0x54, 0x4f, 0xb7, 0x9c, 0xfc, 0x11, 0xe8, 0x41, 0x95, 0x3e, 0x3f, 0xb7, 0x3f, 0x6f, 0xe3, 0x59,
+ 0x44, 0xd9, 0x7d, 0x45, 0xcc, 0x79, 0xc7, 0x55, 0x8f, 0x29, 0x33, 0x7d, 0x33, 0x1f, 0x39, 0xe6,
+ 0x74, 0xa0, 0xe0, 0xed, 0x9c, 0xc1, 0xb6, 0x69, 0xa1, 0x10, 0x27, 0xe0, 0x27, 0x8f, 0x94, 0xe4,
+ 0x64, 0x36, 0x2a, 0x34, 0xac, 0xa9, 0x99, 0x7d, 0xbb, 0x07, 0x2b, 0x2a, 0x2b, 0xff, 0x4e, 0x5b,
+ 0x94, 0x68, 0x86, 0x79, 0x7f, 0xb4, 0xef, 0xb1, 0x2d, 0xda, 0x6f, 0x86, 0x6f, 0x6a, 0x12, 0x51,
+ 0x84, 0xfe, 0x4c, 0xa0, 0x4f, 0xdc, 0xc0, 0xa5, 0x37, 0xcd, 0x63, 0x4c, 0x63, 0x1a, 0xc8, 0xee,
+ 0xb4, 0x87, 0xd1, 0x08, 0x1f, 0x64, 0xb1, 0x99, 0x19, 0xf4, 0x77, 0xd1, 0x77, 0x8a, 0x65, 0xec,
+ 0xa4, 0x11, 0x1b, 0xd1, 0x2f, 0x0c, 0x9e, 0x8d, 0x03, 0xe3, 0x7b, 0x1b, 0x7b, 0xfa, 0xbf, 0x53,
+ 0xd4, 0x75, 0x28, 0x9b, 0xbf, 0xd7, 0x53, 0xe1, 0x45, 0x86, 0x5f, 0x28, 0x5f, 0x69, 0xfc, 0xe8,
+ 0xc4, 0xe3, 0xe2, 0x42, 0x8f, 0xbf, 0x7c, 0xf5, 0x5f, 0x91, 0x53, 0xe2, 0x53, 0x19, 0x26, 0x57,
+ 0xf4, 0x9a, 0x7f, 0xea, 0xdf, 0x07, 0x0d, 0xc9, 0x71, 0xa8, 0x47, 0x7f, 0x47, 0x89, 0x8b, 0x55,
+ 0xe4, 0x0c, 0xb5, 0x33, 0xef, 0x6f, 0x22, 0xdd, 0x6b, 0xbf, 0x4b, 0xb5, 0x4b, 0xf9, 0x51, 0xea,
+ 0x92, 0xce, 0xdd, 0x6c, 0x75, 0xa3, 0x48, 0x57, 0x58, 0x74, 0x8c, 0xdd, 0x8c, 0x78, 0x4f, 0xc0,
+ 0x82, 0x58, 0x17, 0xb5, 0x45, 0xcb, 0x67, 0x43, 0x42, 0x63, 0x80, 0x17, 0x80, 0x08, 0x95, 0x7f,
+ 0xb2, 0x21, 0x8a, 0x1d, 0x15, 0x73, 0x16, 0x7f, 0x6c, 0x5a, 0x94, 0x8a, 0x94, 0x98, 0x38, 0x7d,
+ 0xa2, 0xb7, 0x40, 0xc4, 0x25, 0x1b, 0x39, 0x6b, 0x76, 0x4d, 0x98, 0x40, 0x98, 0xe8, 0xe2, 0xc2,
+ 0xd2, 0xd3, 0x73, 0x8e, 0xb5, 0xc0, 0xf4, 0x07, 0x30, 0x28, 0xbc, 0x73, 0xbc, 0x7b, 0xa1, 0x79,
+ 0xc2, 0x45, 0xb9, 0x57, 0x85, 0xa8, 0xdb, 0x13, 0x2a, 0x3f, 0xb0, 0xb9, 0xb0, 0x0b, 0x7b, 0xc6,
+ 0xf2, 0x3c, 0x24, 0xff, 0xd5, 0x10, 0xaa, 0x2f, 0x04, 0x06, 0xa4, 0x24, 0xa4, 0x9b, 0xd6, 0xc4,
+ 0xe2, 0xaa, 0xee, 0x26, 0xe5, 0x78, 0x85, 0x3b, 0x1e, 0x11, 0xa8, 0xee, 0xa8, 0xeb, 0x0c, 0x7b,
+ 0x12, 0xf4, 0x42, 0x6b, 0x36, 0x65, 0xf3, 0xf7, 0x88, 0xcc, 0xec, 0x42, 0xec, 0x7e, 0x50, 0x71,
+ 0x02, 0x62, 0x88, 0xb2, 0x06, 0x0d, 0xdc, 0xe3, 0x92, 0xdb, 0xe0, 0x88, 0xe0, 0x0e, 0x8a, 0xce,
+ 0x32, 0x1b, 0x15, 0x1a, 0x56, 0xb5, 0xad, 0xdf, 0xbc, 0xe2, 0xf4, 0x15, 0xf4, 0x9e, 0x27, 0xcc,
+ 0x22, 0x8d, 0xdf, 0xc3, 0x66, 0xdd, 0x82, 0xcb, 0xa6, 0xf5, 0xf8, 0xdf, 0xf8, 0xee, 0xfd, 0x73,
+ 0x52, 0xe9, 0xec, 0x89, 0xf6, 0x06, 0x4f, 0xa7, 0xe0, 0x90, 0xdc, 0xec, 0xdc, 0x7d, 0xbe, 0xc8,
+ 0x42, 0x7f, 0x26, 0x50, 0xc6, 0x6e, 0x60, 0xb3, 0xfa, 0x87, 0xd0, 0x26, 0xd0, 0x0d, 0x64, 0x77,
+ 0x72, 0x06, 0xbb, 0xf8, 0x96, 0xd6, 0x11, 0x8f, 0xd4, 0xbe, 0xc4, 0xbb, 0xc4, 0x9d, 0xc9, 0x75,
+ 0x62, 0x90, 0x71, 0x21, 0xa6, 0xbe, 0x3e, 0x9b, 0xce, 0xa9, 0xc8, 0x71, 0xc8, 0xed, 0x13, 0xca,
+ 0x51, 0xba, 0x20, 0x62, 0xf3, 0xec, 0xfd, 0xd4, 0x3b, 0xc7, 0x4c, 0x20, 0x4c, 0x74, 0x71, 0x61,
+ 0x41, 0x2c, 0xea, 0xbb, 0xc3, 0x84, 0xd2, 0xc0, 0x21, 0xd0, 0x40, 0xea, 0x40, 0x04, 0xab, 0xde,
+ 0x71, 0x55, 0x77, 0x13, 0x93, 0x3c, 0xa3, 0xfc, 0x0f, 0xe9, 0x54, 0x77, 0x54, 0x94, 0x06, 0xdc,
+ 0x61, 0xc3, 0xbd, 0xca, 0xa3, 0x54, 0x8c, 0xe8, 0x15, 0xfe, 0x58, 0xbd, 0x58, 0xe4, 0xdc, 0x63,
+ 0x11, 0xa7, 0x8e, 0x80, 0x33, 0x8f, 0x41, 0x84, 0x53, 0x9b, 0x7c, 0x8e, 0x7c, 0x77, 0x9f, 0xd8,
+ 0x01, 0x31, 0x44, 0x59, 0x03, 0xe7, 0x6e, 0x90, 0x49, 0x8c, 0x70, 0x44, 0x70, 0x07, 0x45, 0x67,
+ 0x31, 0x48, 0xd9, 0xf1, 0x53, 0x5f, 0x1f, 0xac, 0x67, 0xb5, 0x64, 0xd9, 0x64, 0x97, 0xe8, 0x65,
+ 0x21, 0xde, 0x13, 0x28, 0x63, 0x37, 0x30, 0xb8, 0x7d, 0xa2, 0x68, 0x13, 0x68, 0xe7, 0x32, 0xda,
+ 0xd1, 0x80, 0xbf, 0x65, 0xb0, 0x2a, 0x46, 0x74, 0xeb, 0x7f, 0x2c, 0xbf, 0x2c, 0x72, 0x6e, 0xd0,
+ 0xc1, 0x16, 0x75, 0xbc, 0x80, 0x42, 0x69, 0x60, 0xf1, 0x68, 0x20, 0x75, 0x20, 0x02, 0xb4, 0x6f,
+ 0xf1, 0x6f, 0xe8, 0x14, 0xd0, 0xfa, 0x18, 0x5c, 0xdf, 0x51, 0x34, 0xe8, 0x34, 0x92, 0x19, 0x6d,
+ 0xe1, 0xf9, 0x22, 0xcd, 0xe0, 0x92, 0x37, 0x48, 0xc5, 0x46, 0x38, 0x22, 0x38, 0xe2, 0xc3, 0xd2,
+ 0x91, 0x9d, 0x11, 0x87, 0x70, 0x49, 0xfa, 0x24, 0x83, 0x23, 0x1c, 0x11, 0x1c, 0x71, 0x80, 0x69,
+ 0x81, 0x0b, 0xdb, 0x5e, 0x40, 0x21, 0xd5, 0x30, 0x99, 0x34, 0x10, 0xdb, 0x10, 0x01, 0x5a, 0xd6,
+ 0xb1, 0x72, 0x46, 0xf6, 0x10, 0x99, 0xa4, 0x0c, 0xb7, 0x0d, 0x04, 0x46, 0x04, 0x91, 0xf7, 0xd4,
+ 0xa1, 0xe4, 0x8c, 0x2f, 0x20, 0xf1, 0x8b, 0x18, 0xad, 0x1a, 0x08, 0x8c, 0x08, 0xe1, 0x2d, 0x6b,
+ 0x5d, 0x35, 0x96, 0x48, 0xe7, 0xc2, 0x70, 0xdb, 0xd1, 0x58, 0x49, 0x96, 0x49, 0x50, 0xcb, 0x80,
+ 0x4d, 0xa3, 0x5c, 0x91, 0xd7, 0xaa, 0x5f, 0xcf, 0xcb, 0x4f, 0x45, 0x5c, 0x45, 0x20, 0x11, 0x3f,
+ 0x7d, 0xda, 0xc1, 0x39, 0x87, 0x12, 0x2e, 0xf3, 0xe5, 0x76, 0x51, 0xc1, 0x51, 0xb0, 0xbc, 0x3d,
+ 0x6d, 0x4c, 0x0b, 0xe0, 0xb7, 0x7a, 0x01, 0xe7, 0xff, 0x61, 0x5d, 0x0b, 0x5d, 0xc0, 0x66, 0x82,
+ 0x1d, 0x28, 0x38, 0xaa, 0x27, 0xa1, 0xcc, 0x8b, 0xb9, 0x04, 0x79, 0x38, 0x79, 0x53, 0x25, 0x39,
+ 0x0d, 0xbe, 0xf2, 0x73, 0x17, 0xc9, 0xe3, 0x9f, 0xa3, 0x13, 0x75, 0xf2, 0x75, 0x23, 0xff, 0x86,
+ 0x3d, 0xc7, 0x6f, 0xdb, 0x47, 0x71, 0x92, 0xa3, 0x8d, 0x2a, 0x61, 0x6f, 0x61, 0xb3, 0x52, 0x84,
+ 0x2d, 0x51, 0xa5, 0x02, 0x77, 0x19, 0xbd, 0xb7, 0x97, 0x3d, 0x6d, 0xa5, 0x6d, 0xc3, 0x88, 0x3b,
+ 0xdd, 0x0f, 0x09, 0x4f, 0xa4, 0x04, 0xcb, 0x7b, 0x01, 0xe0, 0x29, 0x09, 0x29, 0x56, 0xd4, 0x31,
+ 0xcd, 0x99, 0xc3, 0x96, 0x94, 0x6c, 0xe4, 0x6f, 0x1b, 0xf7, 0x25, 0xc3, 0x25, 0x26, 0x0e, 0x8e,
+ 0xfd, 0xe0, 0x5e, 0x3e, 0xc4, 0xd4, 0x95, 0x53, 0x35, 0xce, 0x31, 0x5e, 0x31, 0xb6, 0xa3, 0x8c,
+ 0xed, 0x76, 0x94, 0xe7, 0xf4, 0xbc, 0xba, 0x47, 0x2f, 0xd9, 0x3d, 0x94, 0x3d, 0xc6, 0x79, 0x33,
+ 0x9d, 0x12, 0xa7, 0xad, 0x64, 0x67, 0x77, 0x2b, 0x69, 0xbc, 0x19, 0xa7, 0x19, 0x55, 0x3a, 0x88,
+ 0x8d, 0x84, 0x6d, 0x74, 0x54, 0x0f, 0x58, 0x3f, 0x73, 0xab, 0x15, 0x6d, 0x15, 0x25, 0xe0, 0x37,
+ 0xbd, 0xfd, 0xf0, 0xdc, 0x04, 0xb7, 0x29, 0x03, 0x5d, 0x92, 0x01, 0xf0, 0x01, 0xb5, 0x4d, 0x35,
+ 0xad, 0x6b, 0x3a, 0x05, 0x34, 0xdf, 0x06, 0x17, 0x47, 0x85, 0x0d, 0x3a, 0x0d, 0xc5, 0x97, 0x8a,
+ 0x9e, 0x41, 0x6b, 0x46, 0x61, 0x8d, 0xc5, 0x58, 0xb2, 0xeb, 0x89, 0x6b, 0x89, 0x5c, 0xf5, 0x21,
+ 0x8e, 0xd7, 0xa1, 0x9f, 0x51, 0xe5, 0xea, 0x4c, 0xa8, 0xfc, 0x85, 0xa1, 0x85, 0x2c, 0x2f, 0x9e,
+ 0xbe, 0xae, 0x3c, 0x37, 0x01, 0x5d, 0x9b, 0x70, 0x86, 0xc5, 0x91, 0x3c, 0x91, 0xbc, 0x82, 0x9c,
+ 0xae, 0x38, 0xf6, 0xee, 0x31, 0x35, 0xb4, 0x64, 0x9c, 0xd2, 0x9d, 0xf6, 0x9d, 0xcc, 0x58, 0x23,
+ 0xde, 0x5c, 0xc5, 0xa4, 0xa1, 0xee, 0x79, 0x08, 0xda, 0xb7, 0xb9, 0xc5, 0xb9, 0x5f, 0x1b, 0x98,
+ 0xce, 0xca, 0x0f, 0x7d, 0x91, 0x86, 0x56, 0x1c, 0xc0, 0xa0, 0xb5, 0x0f, 0xb5, 0x2f, 0xc1, 0x27,
+ 0xfe, 0xb3, 0x92, 0xd5, 0xc1, 0x3e, 0x27, 0x20, 0xee, 0x99, 0xa1, 0x92, 0xa1, 0xbf, 0x6c, 0x25,
+ 0xee, 0x25, 0x58, 0x0c, 0xf1, 0x56, 0x08, 0x34, 0xf4, 0x8e, 0xad, 0x58, 0xad, 0xcf, 0xb6, 0x9a,
+ 0x1e, 0x7b, 0xf4, 0x41, 0x22, 0x4b, 0x7e, 0xf8, 0x62, 0x53, 0xe9, 0xf4, 0xe9, 0x5a, 0xea, 0x90,
+ 0x0e, 0xed, 0x3e, 0x98, 0x12, 0x23, 0x51, 0xec, 0x78, 0x44, 0xe5, 0x3e, 0xe5, 0x2a, 0x30, 0x2f,
+ 0x3e, 0x94, 0xa3, 0x30, 0x42, 0x9b, 0x20, 0xd0, 0x56, 0x7d, 0xf1, 0xa3, 0xf1, 0xba, 0x9d, 0x2d,
+ 0x2e, 0x02, 0x69, 0xe9, 0x72, 0xf3, 0x0f, 0xc4, 0x4c, 0x6a, 0xfd, 0x69, 0xfd, 0xca, 0x47, 0x92,
+ 0x5e, 0x66, 0x5a, 0xa3, 0xe2, 0x28, 0xc2, 0xa8, 0x0a, 0x0f, 0xd9, 0x5a, 0xd9, 0x59, 0x04, 0x29,
+ 0x4e, 0xf0, 0x90, 0x7a, 0xd2, 0x40, 0xed, 0xbc, 0x10, 0x18, 0xd5, 0x90, 0xd5, 0x29, 0xde, 0x96,
+ 0x7e, 0x89, 0x0d, 0xd2, 0x82, 0xf8, 0x9c, 0x80, 0x3e, 0x21, 0xc1, 0x0d, 0xc1, 0xb9, 0x73, 0x94,
+ 0x6e, 0x1f, 0xc7, 0x0b, 0xb2, 0x90, 0xb3, 0x94, 0x24, 0x36, 0xcd, 0xc7, 0xcd, 0xc9, 0xa9, 0x2b,
+ 0x18, 0xdd, 0xaf, 0x54, 0x28, 0x5c, 0xd9, 0x1e, 0x17, 0xfd, 0x0a, 0xaf, 0x0a, 0x48, 0xb7, 0x01,
+ 0x08, 0x4b, 0x65, 0x8d, 0x18, 0x34, 0xf6, 0x0a, 0x0d, 0xea, 0x06, 0x65, 0x06, 0x38, 0x6d, 0xbe,
+ 0x38, 0x32, 0xf8, 0x25, 0x48, 0x8c, 0x87, 0x36, 0x23, 0xd3, 0x12, 0xf8, 0x12, 0xa8, 0xc0, 0xbc,
+ 0x28, 0xa4, 0x32, 0xfc, 0x78, 0xe4, 0xa8, 0x22, 0x39, 0xc4, 0x1e, 0x32, 0x1e, 0xd8, 0x1a, 0x03,
+ 0x58, 0xc0, 0x01, 0xb6, 0xe8, 0x3f, 0x65, 0x4e, 0x7f, 0xa1, 0x3a, 0x01, 0x3a, 0x4b, 0x59, 0xb8,
+ 0x48, 0x56, 0xcb, 0x6f, 0xd8, 0x57, 0x4a, 0x5a, 0x65, 0xb6, 0x36, 0xcb, 0x36, 0x3b, 0x83, 0x07,
+ 0x78, 0x2f, 0x56, 0xc7, 0x88, 0xef, 0x3b, 0x66, 0x4b, 0x8f, 0x22, 0x56, 0x22, 0xab, 0x2e, 0x05,
+ 0x68, 0xb9, 0x9c, 0x1e, 0xb8, 0x87, 0x14, 0x72, 0x51, 0x98, 0x2e, 0x9c, 0x2e, 0xdb, 0xf4, 0xba,
+ 0x98, 0xe7, 0x30, 0x53, 0x6b, 0x9a, 0x62, 0xbe, 0xc7, 0x45, 0x6a, 0x30, 0x6a, 0x4e, 0xa8, 0xb0,
+ 0x88, 0x71, 0xfa, 0x8a, 0x5b, 0xf2, 0x4d, 0xaa, 0xdd, 0x52, 0x66, 0xfa, 0x66, 0x3e, 0x72, 0x0f,
+ 0xb8, 0x08, 0x67, 0x22, 0x0b, 0x4a, 0x3c, 0x96, 0xf3, 0x6b, 0x72, 0x67, 0x72, 0xae, 0xdf, 0x0d,
+ 0xa8, 0x9e, 0xad, 0xfb, 0x3b, 0x22, 0x13, 0x82, 0xe9, 0x7c, 0x7e, 0xad, 0x7e, 0xde, 0x05, 0xb2,
+ 0xd8, 0xfa, 0x9e, 0xb1, 0xab, 0xf9, 0xde, 0xee, 0xaf, 0x19, 0x5a, 0x9e, 0x5a, 0x4d, 0x46, 0x09,
+ 0xc8, 0x6c, 0x54, 0x68, 0x9b, 0x91, 0xf1, 0xfa, 0xb5, 0x0e, 0x56, 0x54, 0x56, 0x3d, 0x9c, 0xb6,
+ 0xf8, 0x15, 0xc9, 0xc0, 0xcb, 0x29, 0x80, 0xc6, 0x9b, 0x37, 0x42, 0xc9, 0x42, 0xad, 0x31, 0xb4,
+ 0xe8, 0x83, 0x03, 0x19, 0xfb, 0x41, 0xaf, 0xd2, 0x81, 0x20, 0x4e, 0x03, 0x4e, 0xdd, 0xeb, 0x0b,
+ 0xdb, 0xa9, 0x52, 0x5a, 0xae, 0x13, 0x6c, 0x9d, 0x74, 0x4e, 0xca, 0x52, 0xca, 0x44, 0x89, 0xa0,
+ 0xcb, 0x3f, 0x98, 0x83, 0x9e, 0x7b, 0x43, 0x89, 0x6e, 0x59, 0xc6, 0x98, 0xc6, 0x34, 0x53, 0x1f,
+ 0xfb, 0x46, 0x05, 0x2b, 0xce, 0xc3, 0x32, 0xb5, 0x40, 0x60, 0xd2, 0x05, 0xd2, 0xa4, 0xfe, 0x1d,
+ 0xeb, 0xd0, 0xcf, 0xf2, 0xfe, 0xab, 0x1d, 0xa1, 0x5a, 0x77, 0xde, 0xcf, 0xde, 0xd4, 0x24, 0xa2,
+ 0x9b, 0xb4, 0xfc, 0xb8, 0x6e, 0x70, 0xd0, 0xcd, 0x1c, 0x12, 0xfa, 0xfc, 0xfa, 0x47, 0x67, 0x19,
+ 0x8b, 0x22, 0x36, 0x61, 0x5e, 0x18, 0xff, 0xd9, 0x06, 0x05, 0xf6, 0x36, 0xf6, 0x37, 0xbd, 0xa6,
+ 0xbb, 0x5b, 0xab, 0xc9, 0x0e, 0xa0, 0x8e, 0xe5, 0x28, 0x3c, 0xe2, 0xab, 0xe2, 0xa7, 0x10, 0xa4,
+ 0xab, 0xcd, 0x61, 0x10, 0x3e, 0xc8, 0xa1, 0xf1, 0x32, 0x2b, 0xee, 0x61, 0xee, 0xd7, 0xca, 0x1b,
+ 0x5b, 0x93, 0xcd, 0x5d, 0xed, 0xd5, 0xd7, 0x3d, 0xa4, 0xf6, 0xaa, 0xcd, 0xaa, 0x42, 0x96, 0x11,
+ 0x4b, 0x05, 0x07, 0x84, 0xdd, 0xbd, 0xf8, 0x29, 0xbe, 0xe1, 0xa6, 0x07, 0xa6, 0x32, 0x4c, 0xae,
+ 0x7b, 0x7c, 0x9a, 0x2c, 0x8d, 0x05, 0x89, 0x15, 0x90, 0xd8, 0xb2, 0x9a, 0xb2, 0xa2, 0xe1, 0xac,
+ 0x6b, 0xea, 0x50, 0xf5, 0xbd, 0x6d, 0xa6, 0x01, 0x8a, 0xcf, 0xbe, 0x50, 0xbe, 0xd2, 0x3b, 0x13,
+ 0x1b, 0x8e, 0x63, 0xbf, 0x2d, 0xb6, 0x6b, 0x6d, 0xcc, 0xaa, 0x9a, 0x63, 0x9a, 0x41, 0x78, 0xa8,
+ 0x0b, 0x18, 0xa9, 0x66, 0x1d, 0xde, 0x44, 0x79, 0xd6, 0xbd, 0x96, 0xa9, 0x96, 0x31, 0xa2, 0x17,
+ 0x3b, 0x61, 0x34, 0xce, 0x4d, 0x66, 0x35, 0x45, 0xf8, 0x84, 0x82, 0x34, 0x82, 0xa1, 0x0f, 0x15,
+ 0x2b, 0xf7, 0xfe, 0x17, 0x7d, 0x0e, 0x1a, 0x51, 0xe2, 0x93, 0x8e, 0xfe, 0x8e, 0xd1, 0xd5, 0xaa,
+ },
+ { /* 13 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x85, 0x74, 0x75, 0xd0, 0x5e, 0xbe, 0xb8, 0x87, 0x4e, 0x62, 0xec, 0x6b, 0x10, 0x87, 0xc6, 0x74,
+ 0xc9, 0xe8, 0xea, 0x63, 0xbc, 0xbf, 0xb3, 0xcd, 0x9c, 0xc4, 0x1b, 0xd6, 0x20, 0xcd, 0x4f, 0xe8,
+ 0x4c, 0x9c, 0x9f, 0xb3, 0xe2, 0x01, 0x0b, 0x4a, 0xd2, 0xa6, 0xf7, 0xbd, 0x30, 0x4a, 0x89, 0x9c,
+ 0x51, 0x13, 0x17, 0xc6, 0xbb, 0xbd, 0xa5, 0x59, 0xfb, 0x4b, 0x36, 0x6f, 0x40, 0x59, 0x9e, 0x13,
+ 0xd4, 0x67, 0x62, 0x16, 0xe5, 0x03, 0x1d, 0xde, 0xb5, 0x29, 0xda, 0x04, 0x50, 0xde, 0x58, 0x67,
+ 0x98, 0xfb, 0xfd, 0xa5, 0x07, 0x02, 0x16, 0x94, 0x67, 0x8f, 0x2d, 0xb9, 0x60, 0x94, 0xd1, 0xfb,
+ 0x1d, 0x8f, 0x88, 0x75, 0x59, 0xbc, 0xae, 0x13, 0x29, 0xed, 0xc1, 0xd2, 0x70, 0x13, 0x17, 0x8f,
+ 0xa2, 0x26, 0x2e, 0x4f, 0xb5, 0xb9, 0x89, 0xb2, 0x35, 0x96, 0x6c, 0xde, 0x80, 0xb2, 0xff, 0x26,
+ 0x27, 0x52, 0x5b, 0x9f, 0xeb, 0x07, 0x31, 0x35, 0x7b, 0xf4, 0x80, 0xb5, 0x90, 0x35, 0x39, 0x52,
+ 0x6b, 0xce, 0xc4, 0x2c, 0x09, 0x06, 0x3a, 0x7f, 0xa9, 0x52, 0x77, 0x08, 0xa0, 0x7f, 0xb0, 0xce,
+ 0xee, 0xba, 0xb1, 0xfc, 0x57, 0xb8, 0x82, 0xf8, 0xe7, 0x30, 0x9b, 0x63, 0xb0, 0xf8, 0x76, 0xba,
+ 0xf3, 0x35, 0x39, 0x89, 0x0e, 0x04, 0x2c, 0xeb, 0xce, 0xdd, 0x5a, 0xb1, 0xc0, 0xeb, 0x61, 0x35,
+ 0x76, 0x41, 0x4c, 0x59, 0x50, 0xba, 0x94, 0x6c, 0x80, 0xbf, 0xb6, 0xda, 0xd0, 0x6c, 0xa7, 0x41,
+ 0x3a, 0xdd, 0xd3, 0xea, 0xb2, 0xbb, 0x9f, 0x26, 0x52, 0x19, 0x41, 0x67, 0xe0, 0x26, 0x2e, 0xdd,
+ 0xbf, 0xa9, 0xa6, 0x3a, 0xec, 0x05, 0x27, 0xa1, 0x1c, 0x7b, 0xad, 0x0c, 0xf0, 0xa1, 0xe8, 0xa9,
+ 0x87, 0x4c, 0x5c, 0x9e, 0xa9, 0xb1, 0xd1, 0xa7, 0x6a, 0xef, 0xd8, 0x7f, 0xc3, 0xa7, 0x3d, 0x4c,
+ 0x02, 0x38, 0x29, 0x4e, 0xf7, 0x0f, 0x69, 0x20, 0x24, 0x8d, 0x34, 0x14, 0xd3, 0x20, 0xfb, 0x38,
+ 0x4e, 0xa4, 0xb6, 0xfd, 0x15, 0x0e, 0x62, 0x6a, 0xf6, 0x2b, 0xc3, 0xa9, 0xe3, 0x6a, 0x72, 0xa4,
+ 0xcb, 0xd0, 0xc3, 0x2d, 0x4b, 0xb0, 0xda, 0xed, 0xb8, 0x49, 0x2f, 0xc2, 0xf3, 0xed, 0xb4, 0xd0,
+ 0xd6, 0x5f, 0x4b, 0x58, 0x12, 0x0c, 0x74, 0xfe, 0x91, 0xa4, 0xee, 0x10, 0x83, 0xfe, 0xa3, 0x5f,
+ 0x53, 0x2b, 0x3e, 0x88, 0x4c, 0xb2, 0xcc, 0x79, 0xdf, 0xc6, 0x02, 0x7b, 0x93, 0x79, 0x65, 0x2b,
+ 0x1f, 0xb7, 0xa1, 0x3b, 0xae, 0xb3, 0xc7, 0x33, 0x0d, 0x60, 0xf5, 0xc6, 0xa3, 0x33, 0xec, 0xb7,
+ 0x9a, 0xc3, 0xd4, 0xeb, 0xf0, 0x0d, 0x7f, 0xb4, 0x43, 0x02, 0x19, 0xad, 0xb3, 0xb4, 0x2a, 0xc3,
+ 0x25, 0x6a, 0x72, 0xd1, 0x1c, 0x08, 0x58, 0x15, 0x5f, 0x79, 0xb4, 0xa1, 0x43, 0x15, 0xc2, 0x6a,
+ 0xa0, 0x1e, 0x07, 0x01, 0x42, 0xb6, 0xe0, 0x92, 0x11, 0x1b, 0x58, 0xca, 0x53, 0x92, 0x04, 0x1e,
+ 0xec, 0x82, 0x98, 0xb2, 0xa0, 0xb7, 0xeb, 0xd8, 0xc3, 0xbd, 0xaf, 0x77, 0x63, 0xd8, 0x8d, 0x82,
+ 0x69, 0xf6, 0xed, 0x62, 0xfe, 0x09, 0x53, 0x5f, 0x8d, 0xdf, 0x43, 0x1c, 0x73, 0x5f, 0x4b, 0xf6,
+ 0x74, 0x79, 0x65, 0x17, 0xa7, 0xb5, 0xfd, 0x4c, 0xa4, 0x32, 0x82, 0xce, 0x03, 0x4c, 0x5c, 0x79,
+ 0xf1, 0x0d, 0x10, 0xc7, 0xf9, 0x0b, 0x45, 0xcb, 0xea, 0x50, 0x6e, 0xa5, 0x13, 0xcb, 0x9a, 0x0d,
+ 0xbd, 0x91, 0x8f, 0x74, 0x1b, 0x0a, 0x4e, 0x81, 0x38, 0xf6, 0x99, 0x18, 0x23, 0x81, 0x13, 0x91,
+ 0x38, 0xe5, 0xfa, 0xa4, 0x45, 0xb4, 0xf6, 0x06, 0x76, 0x94, 0x75, 0x73, 0x33, 0x06, 0xd5, 0xe5,
+ 0xcd, 0x98, 0xb8, 0xff, 0x91, 0xa1, 0x61, 0x8d, 0xd4, 0x1d, 0x73, 0xfe, 0x45, 0x8d, 0x7a, 0x98,
+ 0x48, 0xec, 0xcd, 0x2f, 0xcf, 0x1f, 0xd9, 0x0a, 0x9a, 0x7f, 0x9f, 0x95, 0x55, 0x0a, 0xbc, 0xec,
+ 0x04, 0x70, 0x52, 0x9c, 0x2d, 0x1e, 0xd2, 0x40, 0x48, 0xd9, 0x68, 0x28, 0x65, 0x40, 0x35, 0x70,
+ 0x81, 0x04, 0x27, 0x4c, 0x73, 0xa0, 0x6a, 0xc7, 0x06, 0xbb, 0x84, 0x43, 0x75, 0xc7, 0xf3, 0x04,
+ 0x9c, 0x8b, 0xaf, 0x39, 0x2a, 0x1c, 0xc4, 0xd4, 0x2f, 0x56, 0x45, 0x91, 0x05, 0xd4, 0xe4, 0x8b,
+ 0x19, 0xff, 0xda, 0xe9, 0x74, 0xa2, 0x7c, 0x53, 0x61, 0x34, 0xa9, 0xfa, 0x15, 0x53, 0x22, 0xff,
+ 0x55, 0x63, 0x45, 0x5a, 0x96, 0xa3, 0x77, 0x19, 0xb3, 0x92, 0x5e, 0x47, 0x25, 0x19, 0xab, 0x63,
+ 0xd0, 0x17, 0x30, 0x8a, 0xc8, 0x1d, 0xcf, 0x9e, 0xfd, 0xf0, 0xb2, 0x2c, 0x35, 0x9e, 0x6d, 0x17,
+ 0x6f, 0xbe, 0x96, 0xb0, 0x24, 0x18, 0xe8, 0x3f, 0xe1, 0x8b, 0x1f, 0x20, 0xc5, 0x3f, 0x85, 0xbe,
+ 0xea, 0xca, 0xe3, 0x60, 0x7a, 0xa6, 0x50, 0xb8, 0xaf, 0xe9, 0xf3, 0x4b, 0xd5, 0xb8, 0x43, 0xca,
+ 0xa6, 0x56, 0x7c, 0xd3, 0x98, 0xa7, 0x5b, 0xf2, 0x7d, 0x4f, 0x04, 0xf6, 0xe5, 0xf2, 0xca, 0x56,
+ 0x23, 0x22, 0x09, 0x03, 0xc6, 0x19, 0xe3, 0x75, 0x33, 0x2d, 0xe8, 0x9d, 0xf5, 0x75, 0x0c, 0x22,
+ 0x3e, 0xad, 0x81, 0x76, 0x9f, 0xa5, 0x4d, 0x66, 0x1a, 0xc0, 0x29, 0x4f, 0x85, 0x66, 0x1b, 0xad,
+ 0xbb, 0xd9, 0xf4, 0xa6, 0xc1, 0x1b, 0xf5, 0xe1, 0x54, 0xa2, 0xc5, 0x24, 0x95, 0xe1, 0xdd, 0xd9,
+ 0xf7, 0x45, 0x6b, 0x15, 0x23, 0x1a, 0xfe, 0xab, 0x86, 0x04, 0x32, 0x99, 0xa5, 0xab, 0x54, 0x45,
+ 0x72, 0x31, 0x1e, 0xc5, 0x7d, 0xa4, 0x46, 0x2c, 0xc8, 0x66, 0xde, 0xf2, 0xb5, 0x2c, 0x92, 0x31,
+ 0x4a, 0xd4, 0xe4, 0x61, 0x38, 0x10, 0xb0, 0x2a, 0xbe, 0xf2, 0xab, 0x81, 0x86, 0x2a, 0x47, 0xd4,
+ 0xcf, 0xa0, 0x91, 0xb1, 0x66, 0xae, 0x08, 0xad, 0xf0, 0x90, 0x47, 0xea, 0x96, 0xad, 0x81, 0xa0,
+ 0x83, 0x3c, 0x0e, 0x02, 0x84, 0xaf, 0x03, 0xe7, 0x22, 0x36, 0xb0, 0x57, 0xa6, 0xe7, 0x08, 0x3c,
+ 0x06, 0x48, 0x7b, 0xd2, 0xda, 0x11, 0xbb, 0x60, 0x6c, 0x54, 0x5c, 0x3c, 0xb6, 0x60, 0xce, 0x48,
+ 0x1b, 0xc7, 0xf3, 0xa7, 0x83, 0xad, 0x15, 0x73, 0x45, 0xb9, 0x9d, 0xee, 0xc6, 0x73, 0xd9, 0xc7,
+ 0x9e, 0xb3, 0x86, 0x77, 0xdd, 0x13, 0xad, 0xf4, 0x0b, 0xdb, 0x71, 0x85, 0xd6, 0xf4, 0x1f, 0xb3,
+ 0xd2, 0x2f, 0x19, 0xc4, 0x3f, 0x12, 0xa6, 0xbe, 0xd9, 0x7d, 0x86, 0x38, 0xe6, 0xbe, 0x96, 0x2f,
+ 0x57, 0x5b, 0x6c, 0x14, 0x61, 0xac, 0x1e, 0x39, 0x97, 0x1f, 0x6a, 0x53, 0xf6, 0x39, 0x50, 0x5b,
+ 0xe8, 0xf2, 0xca, 0x2e, 0x8d, 0xa9, 0x39, 0x98, 0x8b, 0x64, 0xc7, 0x5f, 0x06, 0x98, 0xb8, 0xf2,
+ 0x6d, 0x86, 0xbf, 0xfe, 0xd3, 0x17, 0x81, 0x1f, 0xc5, 0x06, 0x2b, 0x34, 0x16, 0x1f, 0x7e, 0x86,
+ 0x21, 0x1a, 0x20, 0x4d, 0x31, 0x16, 0x8a, 0x55, 0x17, 0xa0, 0xdc, 0x89, 0x26, 0x55, 0xf7, 0x1a,
+ 0xa4, 0x6e, 0x55, 0x9d, 0x6f, 0xa8, 0x32, 0xd2, 0x59, 0xc2, 0x30, 0xe2, 0x36, 0xd2, 0x31, 0x6e,
+ 0xb9, 0xe1, 0xdd, 0xe8, 0x36, 0x14, 0x9c, 0xc1, 0x70, 0x2f, 0xf1, 0x30, 0x46, 0xc1, 0x26, 0xe1,
+ 0x3c, 0x95, 0xa8, 0x38, 0x68, 0xaa, 0x24, 0x46, 0x3e, 0x4d, 0x1d, 0x5b, 0x56, 0x46, 0xe0, 0x95,
+ 0x70, 0x09, 0x37, 0x8b, 0x8a, 0xab, 0x2f, 0x0c, 0xec, 0xeb, 0xea, 0xe6, 0x66, 0x0c, 0x69, 0x09,
+ 0xf5, 0x7d, 0x42, 0x5b, 0xd4, 0x15, 0x97, 0x8b, 0xa2, 0x89, 0x06, 0x8d, 0x76, 0x8b, 0xaf, 0x7d,
+ 0x59, 0xf3, 0xb3, 0x3d, 0xe1, 0x81, 0xc2, 0xd9, 0x6b, 0x3a, 0xe6, 0x3f, 0x8a, 0xd9, 0xf4, 0xf3,
+ 0xdc, 0x87, 0xc6, 0xed, 0xbf, 0x3f, 0x7a, 0x5e, 0x25, 0x58, 0x0a, 0x54, 0x9a, 0x5e, 0x32, 0x87,
+ 0x90, 0x1b, 0x59, 0x5e, 0x5d, 0x3e, 0x71, 0x14, 0xf7, 0xfe, 0xfd, 0xe9, 0xaa, 0x14, 0xbb, 0x1b,
+ 0x15, 0x6f, 0x2c, 0x8e, 0x03, 0x80, 0xc9, 0x93, 0xb9, 0x9c, 0x11, 0x82, 0xba, 0x93, 0x7d, 0x6f,
+ 0x08, 0xe0, 0xa4, 0xfb, 0x5a, 0x3c, 0x67, 0x80, 0x90, 0x71, 0xd0, 0x50, 0xca, 0x80, 0x6a, 0xe0,
+ 0x8d, 0x94, 0xd1, 0x2b, 0x04, 0x82, 0xdf, 0x07, 0xde, 0x13, 0x3c, 0x3b, 0xda, 0x07, 0xac, 0x94,
+ 0xc1, 0x08, 0x4e, 0x98, 0xe6, 0x83, 0xd4, 0x4d, 0x0c, 0xb5, 0xcb, 0x86, 0xea, 0x4d, 0x25, 0x08,
+ 0x44, 0x7c, 0x3b, 0x48, 0xb8, 0x3d, 0x6c, 0xca, 0x42, 0xd7, 0x27, 0xed, 0xfa, 0xca, 0xe3, 0x7c,
+ 0xfb, 0xd5, 0x9d, 0x72, 0x54, 0x38, 0x4b, 0x6b, 0x5e, 0xac, 0x8a, 0xe1, 0x0a, 0x6b, 0x0b, 0xd5,
+ 0x7e, 0xa1, 0xe8, 0xa2, 0x0a, 0x86, 0xf3, 0xec, 0x10, 0xce, 0x66, 0x8a, 0x1a, 0xec, 0xcd, 0xa1,
+ 0x32, 0x3d, 0x77, 0x11, 0xe8, 0x87, 0xf8, 0xa6, 0xc2, 0x68, 0x91, 0x37, 0x2a, 0xa6, 0x44, 0x3d,
+ 0xb7, 0x49, 0x02, 0xc1, 0xb6, 0x39, 0x40, 0x21, 0x8c, 0x0a, 0x7d, 0x5c, 0x3a, 0x21, 0x82, 0x49,
+ 0xaa, 0xc6, 0x8a, 0xb4, 0xef, 0x85, 0xee, 0x32, 0xa5, 0xe7, 0xbc, 0x8e, 0x4a, 0x32, 0x95, 0xc6,
+ 0x2f, 0xb2, 0xff, 0x64, 0xb1, 0x3b, 0x56, 0xb5, 0xeb, 0x85, 0x50, 0xe5, 0x5a, 0xb5, 0x53, 0xb2,
+ 0x63, 0x2e, 0x60, 0xd7, 0x53, 0x3a, 0x5d, 0xff, 0x39, 0x23, 0xa7, 0x58, 0x6a, 0xff, 0xda, 0x2e,
+ 0xe6, 0x5a, 0x15, 0x07, 0x0d, 0x84, 0xe5, 0x78, 0x77, 0x41, 0x4b, 0x33, 0x7a, 0x78, 0x1c, 0x5a,
+ 0xde, 0xbf, 0xef, 0xa3, 0x48, 0x30, 0x13, 0x7e, 0x01, 0xd5, 0x3e, 0x40, 0x49, 0x7e, 0xc9, 0xbf,
+ 0x5b, 0xcb, 0x9a, 0x73, 0x16, 0x8e, 0xab, 0xf9, 0x4f, 0xb7, 0xd2, 0x2b, 0x59, 0xf9, 0x0f, 0xcb,
+ 0x17, 0x57, 0x05, 0xc0, 0xf4, 0x8f, 0xa0, 0xb3, 0x9d, 0x11, 0x25, 0x96, 0x69, 0xb3, 0x86, 0x57,
+ 0x92, 0x23, 0x70, 0x10, 0xaa, 0x31, 0x18, 0x34, 0xd3, 0x73, 0xc9, 0xfd, 0x79, 0x34, 0x40, 0x23,
+ 0x8f, 0xac, 0xf8, 0x65, 0xf3, 0x8d, 0xb6, 0x27, 0xfa, 0x9e, 0x08, 0x2f, 0x09, 0x27, 0x57, 0xac,
+ 0x0a, 0xd8, 0x8d, 0xb5, 0xad, 0x33, 0x0e, 0xa0, 0xb4, 0xfc, 0xe4, 0x44, 0x19, 0xa0, 0x91, 0xd8,
+ 0x46, 0x44, 0x12, 0x06, 0x4f, 0x32, 0x05, 0xea, 0x66, 0x5a, 0x13, 0xf9, 0x29, 0xea, 0x18, 0x44,
+ 0xc3, 0x30, 0x67, 0xd6, 0x11, 0x8c, 0xbd, 0x6d, 0x28, 0x38, 0xff, 0x92, 0x39, 0x6d, 0xde, 0x30,
+ 0x7c, 0x99, 0xc1, 0xec, 0xfd, 0x89, 0x9a, 0xcc, 0x34, 0x43, 0x52, 0x9e, 0xc9, 0xcc, 0x36, 0x99,
+ 0xf9, 0xed, 0xb4, 0x3c, 0xa3, 0x37, 0x22, 0x4b, 0x7a, 0x21, 0xbe, 0xf5, 0xd9, 0x4b, 0xf0, 0xed,
+ 0xb5, 0x71, 0x2b, 0x8f, 0x41, 0x36, 0x29, 0x01, 0xa8, 0x87, 0x49, 0x48, 0xe9, 0x01, 0x79, 0x71,
+ 0x30, 0x05, 0x5e, 0x5f, 0x1f, 0x88, 0x91, 0x86, 0xe6, 0xe5, 0xa5, 0x23, 0xf9, 0x86, 0xbf, 0x05,
+ 0x2d, 0x8a, 0xd6, 0x2a, 0x46, 0x34, 0x3f, 0x95, 0xcf, 0x08, 0x64, 0xf1, 0x89, 0x95, 0xa8, 0x8a,
+ 0xa8, 0xfe, 0xa3, 0xfa, 0x18, 0x8a, 0x87, 0x12, 0x81, 0x6a, 0x88, 0x9a, 0x99, 0x12, 0x6e, 0xfe,
+ 0xe4, 0x62, 0x3c, 0x49, 0xfa, 0x8b, 0x8c, 0x58, 0x53, 0xcc, 0x7f, 0x27, 0xa9, 0x58, 0xe7, 0x62,
+ 0x61, 0x16, 0x49, 0x99, 0xa4, 0x35, 0x34, 0xdf, 0x1d, 0xae, 0x93, 0x4c, 0xb9, 0xdf, 0x21, 0x16,
+ 0x94, 0x6b, 0x0b, 0xc2, 0x70, 0x20, 0xa3, 0x54, 0xbf, 0x27, 0x95, 0xc1, 0xcf, 0x54, 0x8e, 0x6b,
+ 0x11, 0x1f, 0x7e, 0x12, 0x2e, 0x9e, 0x1b, 0xd3, 0xf1, 0x45, 0x79, 0xaa, 0xdf, 0xd3, 0x48, 0x1f,
+ 0x5d, 0x83, 0xe1, 0xa1, 0xcc, 0x9f, 0x10, 0x99, 0x23, 0xe3, 0x8e, 0x17, 0xef, 0x99, 0xc1, 0x83,
+ 0xd8, 0xf7, 0x94, 0x71, 0x92, 0x21, 0xa8, 0x1e, 0x6d, 0x81, 0x62, 0x7c, 0xff, 0x1e, 0x07, 0xf7,
+ 0xc5, 0x78, 0x1c, 0x04, 0xcb, 0x9d, 0x06, 0x0d, 0x44, 0x6c, 0xa3, 0xae, 0x8f, 0x0d, 0x10, 0x78,
+ 0x40, 0x0c, 0x69, 0xd4, 0x95, 0x23, 0xbe, 0x8a, 0x0a, 0x0e, 0x4f, 0xc5, 0x9f, 0x8a, 0xd6, 0x0c,
+ 0x0c, 0x90, 0xf6, 0x67, 0x77, 0x22, 0xb5, 0xc0, 0xd8, 0xa8, 0xb8, 0x78, 0xaf, 0xc0, 0x5f, 0x90,
+ 0x89, 0xe4, 0x83, 0xb7, 0x29, 0x9c, 0x0d, 0x47, 0x96, 0xca, 0x54, 0x13, 0xbf, 0x47, 0x99, 0xe4,
+ 0x36, 0x4d, 0x25, 0x8d, 0xc5, 0x99, 0x2a, 0xe6, 0x8a, 0xb1, 0xf9, 0x1f, 0x4f, 0xe6, 0x71, 0x4d,
+ 0xb3, 0x39, 0x50, 0x5d, 0x9b, 0x27, 0x92, 0x61, 0xc4, 0xd3, 0x15, 0x74, 0x5f, 0x61, 0xb7, 0x39,
+ 0xff, 0xa5, 0xcf, 0xee, 0x79, 0x26, 0x99, 0x2b, 0x16, 0x75, 0xe2, 0xc9, 0x6f, 0x2b, 0x3e, 0xa5,
+ 0x7a, 0xd1, 0xba, 0x3e, 0x27, 0x98, 0x21, 0xac, 0x58, 0x17, 0x0e, 0xa2, 0x7f, 0xac, 0xf8, 0xd1,
+ 0x67, 0x5e, 0x32, 0x4b, 0x7e, 0x24, 0x8f, 0xbf, 0x71, 0xfa, 0xcf, 0x70, 0x0f, 0xbf, 0xef, 0x5e,
+ 0xe2, 0x2a, 0x47, 0x9b, 0x20, 0x9a, 0x37, 0x38, 0x3f, 0x98, 0x23, 0x1b, 0x1f, 0x38, 0x29, 0x2a,
+ 0xae, 0xb6, 0xd8, 0x28, 0xc2, 0x9b, 0x3c, 0x72, 0xed, 0x3e, 0xd4, 0xa6, 0x2f, 0x72, 0xa0, 0xb6,
+ 0x2b, 0xc2, 0xad, 0xf8, 0x9c, 0x25, 0x84, 0xf5, 0xa3, 0x5c, 0x38, 0xcd, 0x3f, 0xf5, 0x66, 0xc2,
+ 0x13, 0x27, 0x57, 0x5c, 0xd9, 0x91, 0x72, 0xf3, 0xd5, 0xc8, 0x4d, 0xbe, 0x0c, 0xf3, 0xb3, 0x27,
+ 0x96, 0x53, 0x22, 0x8c, 0x87, 0x2f, 0xca, 0x74, 0x9b, 0xaa, 0xa1, 0xd5, 0x1c, 0x74, 0x75, 0x53,
+ 0xda, 0xcf, 0xbd, 0x3f, 0x65, 0x2e, 0xc1, 0x3e, 0x49, 0x0c, 0x56, 0x68, 0x2c, 0x3e, 0xfc, 0xcf,
+ 0x5f, 0xbb, 0xc8, 0xef, 0x3b, 0x90, 0x79, 0xb9, 0x07, 0x6e, 0xba, 0x03, 0x3c, 0xb9, 0x3a, 0xbb,
+ 0x42, 0x34, 0x40, 0x9a, 0x62, 0x2c, 0xd7, 0xaa, 0x2e, 0x83, 0x7b, 0xd1, 0x4c, 0xaa, 0x2d, 0x34,
+ 0xc7, 0x40, 0x35, 0x4a, 0x3c, 0x92, 0x6f, 0x2d, 0x60, 0xe1, 0x97, 0xba, 0x5c, 0x2d, 0xeb, 0x40,
+ 0x8b, 0xdc, 0xaa, 0xf9, 0xde, 0x93, 0x64, 0x67, 0xb2, 0x47, 0x60, 0x07, 0x6c, 0x67, 0x62, 0xdc,
+ 0x0e, 0xa8, 0xdf, 0x29, 0x80, 0x2d, 0xdc, 0xe0, 0xfc, 0x25, 0x8c, 0x6c, 0x7c, 0xe0, 0xa4, 0xa8,
+ 0xb1, 0x01, 0x79, 0x13, 0x6c, 0x28, 0xfb, 0x41, 0xe0, 0x5e, 0x21, 0x60, 0x8c, 0x41, 0x4c, 0x01,
+ 0x34, 0x75, 0x0c, 0xc3, 0x32, 0x96, 0x43, 0xc6, 0xae, 0x3c, 0xcd, 0x0b, 0x9c, 0xc6, 0x8a, 0x75,
+ 0x78, 0xe9, 0x93, 0x70, 0xd0, 0x97, 0x48, 0x8c, 0x7c, 0x9a, 0x3a, 0xb6, 0xac, 0x8c, 0x03, 0xe9,
+ 0xfd, 0x9d, 0xe6, 0xa0, 0x8e, 0x29, 0xf0, 0x0b, 0x32, 0xf8, 0xd6, 0xdd, 0xbc, 0x0b, 0xc5, 0x9d,
+ 0xe0, 0x12, 0x6e, 0xd5, 0xd7, 0x95, 0x5e, 0x18, 0x1b, 0x15, 0x17, 0x0f, 0xcc, 0x18, 0xd2, 0x12,
+ 0x65, 0x66, 0x1b, 0x05, 0x89, 0x2b, 0xe6, 0x9f, 0x55, 0x77, 0xfb, 0x64, 0xdc, 0x9f, 0x14, 0x66,
+ 0x29, 0xfa, 0x84, 0xb6, 0x6b, 0x2a, 0xed, 0xd5, 0x87, 0xd1, 0x0c, 0xd9, 0xec, 0xd5, 0x9d, 0xfa,
+ 0xac, 0x8e, 0xf1, 0x66, 0x35, 0x94, 0x55, 0x52, 0xc9, 0xb3, 0xe0, 0xb2, 0xfc, 0x52, 0x5b, 0x8e,
+ 0xb2, 0x25, 0xa5, 0x7a, 0x01, 0xc1, 0x47, 0x71, 0xd6, 0x74, 0x0f, 0x7e, 0xd7, 0x71, 0x2b, 0x25,
+ 0x37, 0x51, 0xd0, 0xaa, 0x5f, 0x7f, 0xff, 0xf6, 0x98, 0x16, 0xe3, 0x15, 0xc7, 0xf6, 0xed, 0x51,
+ 0x7b, 0xcd, 0x4f, 0x19, 0xbd, 0x7e, 0xf4, 0xbc, 0x4a, 0xb0, 0x14, 0xa8, 0xf7, 0xbc, 0x64, 0xcd,
+ 0xfe, 0xb9, 0x3a, 0xc9, 0xe3, 0xc0, 0x4c, 0x3b, 0x04, 0xd2, 0xf8, 0xc3, 0xe7, 0x3b, 0xa2, 0xb9,
+ 0xe3, 0x36, 0xb2, 0xbc, 0xba, 0x7c, 0xe2, 0x28, 0x2d, 0x3f, 0x39, 0x11, 0x97, 0x28, 0xb5, 0x36,
+ 0x66, 0x42, 0xc7, 0x6c, 0xe4, 0xc2, 0x5a, 0xaf, 0x63, 0x5d, 0xd5, 0x7a, 0x87, 0xaf, 0x73, 0x42,
+ 0x2a, 0xde, 0x58, 0xdf, 0x06, 0xc3, 0x51, 0xe5, 0xb1, 0xfb, 0x22, 0xc7, 0xb7, 0xe5, 0xfa, 0xde,
+ 0xaf, 0xaa, 0x2d, 0x0f, 0x58, 0x7d, 0xe9, 0x62, 0xff, 0x99, 0xce, 0xac, 0xa7, 0x62, 0x3c, 0xaa,
+ 0x10, 0x03, 0x8b, 0x35, 0xb4, 0x78, 0xce, 0xc3, 0xe3, 0xe2, 0x63, 0xa0, 0x57, 0xc3, 0xd4, 0x03,
+ 0x95, 0x77, 0xfe, 0xe5, 0xea, 0xc6, 0x76, 0x44, 0xad, 0x80, 0x8f, 0xcb, 0x47, 0x44, 0x12, 0x77,
+ 0xd9, 0xeb, 0x61, 0x56, 0x08, 0xc7, 0x7d, 0x0e, 0x7f, 0x26, 0x78, 0x76, 0x77, 0x0e, 0x9b, 0xeb,
+ 0x5c, 0x9f, 0x14, 0x86, 0x56, 0x79, 0xc5, 0x89, 0x31, 0x44, 0x94, 0x1d, 0x67, 0x89, 0x5d, 0x9f,
+ 0x41, 0x10, 0x9c, 0xf3, 0x0f, 0xc5, 0x6b, 0x9a, 0x18, 0xa9, 0x55, 0xcf, 0x17, 0x9a, 0x4a, 0x10,
+ 0xc4, 0x64, 0xe9, 0x23, 0x51, 0x7b, 0xd3, 0x1d, 0x56, 0xcb, 0xb9, 0xa4, 0x07, 0x1d, 0x8c, 0x64,
+ 0x88, 0xf8, 0x76, 0x90, 0xb3, 0x7a, 0xd8, 0x57, 0x84, 0x6d, 0x4e, 0x19, 0x37, 0x57, 0x05, 0xf8,
+ 0x0d, 0x8c, 0x03, 0x40, 0xed, 0xc4, 0x60, 0xd0, 0xca, 0x0f, 0xa2, 0x72, 0x27, 0xd0, 0xc3, 0x8c,
+ 0x35, 0x69, 0xf9, 0xe4, 0xa8, 0x70, 0x96, 0xd6, 0xbc, 0x9b, 0xd7, 0x01, 0x14, 0xd6, 0x16, 0x69,
+ 0xb0, 0x1d, 0x8c, 0x34, 0xf6, 0xce, 0x2e, 0x51, 0xf2, 0xf9, 0x3b, 0x6a, 0x04, 0x51, 0xd0, 0x1d,
+ 0xfc, 0x81, 0x13, 0x87, 0x14, 0xcf, 0x25, 0x1b, 0x20, 0x5f, 0xcc, 0xd7, 0x34, 0x1b, 0x59, 0x81,
+ 0x79, 0xf5, 0x66, 0x57, 0x4a, 0x71, 0x9d, 0x9c, 0x6e, 0x3d, 0x20, 0xbc, 0x24, 0x9c, 0x9f, 0xf5,
+ 0x64, 0x7a, 0xee, 0x22, 0x13, 0xcd, 0x33, 0x8f, 0x47, 0xd0, 0xe1, 0x6e, 0x54, 0x8f, 0x88, 0x7a,
+ 0xe1, 0x0e, 0x9b, 0xf2, 0x4d, 0x73, 0x8b, 0x08, 0x09, 0xb2, 0x0d, 0x05, 0x44, 0x08, 0x4e, 0x0e,
+ 0xad, 0x92, 0x04, 0x41, 0xaf, 0x72, 0x80, 0x42, 0xdb, 0x14, 0xfa, 0xb8, 0x74, 0x42, 0xc7, 0x92,
+ 0x28, 0xe6, 0x71, 0x91, 0xf1, 0xcc, 0x38, 0xc5, 0x95, 0x76, 0x16, 0xd3, 0x64, 0xc5, 0x01, 0xe6,
+ 0x97, 0x4f, 0xd7, 0xab, 0x1d, 0xc9, 0x1f, 0x64, 0x89, 0x0d, 0xbb, 0xdf, 0x94, 0x64, 0xe9, 0x4f,
+ 0x12, 0x3b, 0xa2, 0x7b, 0x43, 0x77, 0xa7, 0xe3, 0xc7, 0x6f, 0x57, 0xb4, 0x84, 0xe3, 0x2f, 0x3b,
+ 0x5e, 0xa7, 0x3d, 0xc8, 0xa1, 0x76, 0xac, 0xa9, 0x15, 0xc9, 0xa0, 0x09, 0xb4, 0xa9, 0xa6, 0xa7,
+ 0xdb, 0xd3, 0x48, 0x18, 0xff, 0xc8, 0x14, 0x2e, 0x5b, 0xab, 0x4c, 0x62, 0xa4, 0x2e, 0x60, 0xd3,
+ 0xc6, 0x5c, 0xc0, 0x6d, 0xa6, 0x74, 0xba, 0x3d, 0x72, 0x46, 0x8d, 0xb0, 0xd4, 0x3d, 0x77, 0x5c,
+ 0x43, 0x28, 0xb5, 0xbd, 0xf8, 0xca, 0x02, 0xba, 0x3c, 0x24, 0x61, 0xdb, 0xc4, 0xba, 0xb1, 0x28,
+ 0x0f, 0xb4, 0x2a, 0x0e, 0x1a, 0xcb, 0x09, 0xf0, 0xee, 0x82, 0x96, 0x66, 0xf4, 0xf0, 0x38, 0xb4,
+ 0x8a, 0xc0, 0x5f, 0xde, 0x44, 0x75, 0xb1, 0x77, 0xa0, 0xe0, 0x7a, 0x0d, 0xe4, 0x77, 0xfe, 0xc0,
+ 0x7f, 0xbd, 0x1d, 0x85, 0x90, 0x60, 0x26, 0xfc, 0x02, 0x69, 0x7c, 0x80, 0x92, 0xfc, 0x51, 0xbd,
+ 0xfa, 0xc9, 0x68, 0x55, 0xce, 0xde, 0x9e, 0x7b, 0x4c, 0x0b, 0x90, 0xeb, 0x82, 0x7b, 0x97, 0xc9,
+ 0xb6, 0x55, 0xf7, 0xe6, 0x2c, 0xdf, 0x95, 0x31, 0x9e, 0xad, 0x67, 0x56, 0xb2, 0x31, 0x1e, 0x55,
+ 0x33, 0x21, 0x82, 0x36, 0x72, 0x61, 0x2d, 0xb6, 0xd0, 0xcf, 0x8b, 0x3d, 0xa2, 0xb6, 0xd8, 0x21,
+ 0x2e, 0xae, 0x0a, 0x43, 0x2b, 0xdd, 0x83, 0xa5, 0xf9, 0x22, 0x4a, 0xef, 0xd2, 0xa5, 0xcf, 0xae,
+ 0xab, 0xda, 0x7f, 0x93, 0x75, 0x63, 0x3b, 0x22, 0xb7, 0x40, 0xa6, 0x84, 0xc2, 0x22, 0x09, 0xda,
+ 0xe7, 0x46, 0xe0, 0x20, 0x97, 0x62, 0x30, 0x68, 0x65, 0xe6, 0x51, 0x39, 0xf2, 0x68, 0x80, 0x46,
+ 0x62, 0x32, 0x95, 0xf0, 0xc9, 0xdc, 0x88, 0xef, 0x2b, 0x84, 0xbd, 0x52, 0xe2, 0xef, 0x46, 0x32,
+ 0xdd, 0x9b, 0x33, 0xca, 0x25, 0xd9, 0xaf, 0x4e, 0x37, 0xff, 0x10, 0x5e, 0x12, 0x4e, 0xae, 0x9b,
+ 0x58, 0xef, 0x46, 0x1a, 0x7b, 0x67, 0x17, 0xc9, 0x79, 0x9d, 0xfc, 0x35, 0x02, 0xc9, 0x68, 0xef,
+ 0x14, 0x73, 0xd9, 0xa9, 0x99, 0x66, 0x1c, 0x83, 0xab, 0x3b, 0x0b, 0x88, 0x32, 0x83, 0xe1, 0x73,
+ 0x91, 0x07, 0xac, 0x79, 0xc7, 0xd8, 0xa4, 0x04, 0xe5, 0x59, 0xe7, 0xe3, 0x22, 0x04, 0x27, 0x07,
+ 0x8c, 0x88, 0x24, 0x0c, 0x9e, 0x64, 0x0a, 0x17, 0xcc, 0xb4, 0x26, 0x31, 0x52, 0x17, 0x30, 0x88,
+ 0x09, 0xfc, 0x51, 0xdc, 0xc0, 0xda, 0xb2, 0x90, 0x82, 0xd6, 0xca, 0x5a, 0x42, 0x90, 0xf6, 0xfc,
+ 0x45, 0x60, 0xce, 0x6f, 0x22, 0xdb, 0xb9, 0xda, 0x50, 0x70, 0x3d, 0xe7, 0x72, 0xda, 0x7f, 0x60,
+ 0xc0, 0x14, 0xbb, 0xbf, 0x7c, 0x65, 0x01, 0x5d, 0x1e, 0x12, 0xd1, 0x8c, 0x62, 0x5d, 0xb9, 0x14,
+ 0xf8, 0xf1, 0x41, 0x1b, 0x39, 0xd1, 0xf7, 0x5b, 0x68, 0x86, 0xa4, 0xff, 0x51, 0x5b, 0x6c, 0xf1,
+ 0x7d, 0x85, 0x34, 0xcb, 0x67, 0x6f, 0x4f, 0xdc, 0x26, 0xe4, 0x48, 0x94, 0x41, 0xdc, 0xaa, 0x85,
+ 0x31, 0x19, 0xab, 0x78, 0x85, 0x6e, 0x44, 0x96, 0xf4, 0x42, 0xbf, 0x29, 0x71, 0x96, 0x23, 0x19,
+ 0xb4, 0x6d, 0xde, 0xa8, 0xdb, 0xd0, 0xfc, 0x11, 0xba, 0x20, 0x53, 0x42, 0x61, 0x11, 0xe5, 0x6d,
+ 0xa9, 0xe2, 0x56, 0xdd, 0x82, 0x6c, 0x52, 0x02, 0x93, 0xcd, 0x92, 0x90, 0x11, 0x02, 0xf2, 0xe2,
+ 0x2c, 0x96, 0x23, 0x0d, 0xdc, 0xd2, 0xea, 0x85, 0xdd, 0xaf, 0x7e, 0xfb, 0x01, 0x85, 0x34, 0x96,
+ 0x60, 0x0a, 0xbc, 0xbe, 0x3e, 0xd3, 0xe1, 0xcf, 0x0f, 0x09, 0x89, 0x46, 0x31, 0xcf, 0xbd, 0x0a,
+ 0xe5, 0x7e, 0xc9, 0x6e, 0x60, 0x6d, 0x59, 0x48, 0x41, 0x6b, 0x65, 0x2d, 0x21, 0x48, 0x7b, 0x7e,
+ 0x5a, 0xd7, 0x6f, 0x54, 0x8c, 0x68, 0x7e, 0xe9, 0x5d, 0x10, 0xc8, 0x21, 0xd1, 0xe9, 0x93, 0xd7,
+ 0xdf, 0xa3, 0x1a, 0x84, 0xd2, 0xd6, 0xc6, 0x6e, 0x13, 0x72, 0x24, 0x4a, 0xc1, 0x6e, 0x55, 0xa3,
+ 0x93, 0x3f, 0x85, 0x37, 0x30, 0xd7, 0xcd, 0x24, 0xc1, 0xd4, 0xd3, 0xf7, 0xf1, 0x24, 0xdc, 0x3f,
+ 0x16, 0x4b, 0xf0, 0xe7, 0x6e, 0x69, 0x75, 0xa3, 0x8f, 0xb6, 0x3f, 0x9c, 0xe1, 0xa3, 0x1a, 0x4b,
+ 0x0b, 0xc4, 0x78, 0x92, 0x37, 0xd5, 0xdb, 0xb0, 0xa6, 0x5b, 0xfe, 0x4e, 0x91, 0xb0, 0x0d, 0xc4,
+ 0x8e, 0xb0, 0x0d, 0x42, 0x69, 0x6b, 0x63, 0x37, 0xe8, 0x39, 0x12, 0x25, 0x81, 0x37, 0xcb, 0xb0,
+ 0xc2, 0x2c, 0x92, 0xf1, 0x8b, 0x6a, 0x68, 0x7d, 0x3a, 0x9f, 0xe5, 0x98, 0xb1, 0x7d, 0x42, 0x2c,
+ 0x47, 0x58, 0xe7, 0x21, 0xd5, 0xd4, 0xd0, 0xfa, 0x74, 0xfd, 0x09, 0xf3, 0xa1, 0xfa, 0x84, 0x58,
+ 0xeb, 0xd6, 0x16, 0x47, 0xe0, 0x40, 0x85, 0xa8, 0xbd, 0x4e, 0xe9, 0x41, 0x5d, 0xa8, 0xdf, 0xd6,
+ 0x6e, 0xa2, 0x63, 0x97, 0xbe, 0xfe, 0x3d, 0x2f, 0xf3, 0x2c, 0x05, 0x2a, 0x4d, 0x2f, 0x19, 0xa2,
+ 0x22, 0x3e, 0xfc, 0x24, 0x5c, 0xff, 0x36, 0x65, 0x21, 0x8a, 0xf2, 0x97, 0x7d, 0x65, 0x90, 0x3e,
+ 0xa7, 0x4a, 0x89, 0xf4, 0x02, 0x41, 0x8e, 0xe2, 0x6f, 0xe8, 0x1e, 0xfc, 0x6d, 0xe2, 0x56, 0x4a,
+ 0xba, 0xc5, 0x01, 0x81, 0x5b, 0xfd, 0x20, 0xf1, 0x46, 0x05, 0xdf, 0x2e, 0x1d, 0xf1, 0x41, 0xc5,
+ 0x3f, 0xb1, 0x74, 0x51, 0x05, 0x43, 0x98, 0x76, 0x08, 0x67, 0x33, 0x45, 0x0d, 0x76, 0x87, 0xb1,
+ 0x73, 0x2d, 0xeb, 0xe2, 0xe7, 0x42, 0x93, 0x3c, 0xda, 0xc1, 0xc4, 0xf8, 0x3d, 0x3c, 0x0e, 0x2d,
+ 0xf6, 0x59, 0x9e, 0x32, 0xb9, 0xfc, 0x2b, 0xbb, 0x94, 0xa3, 0x28, 0x93, 0x2d, 0xbb, 0xc8, 0x59,
+ 0x49, 0xf0, 0x38, 0x08, 0x55, 0xf9, 0x0c, 0x1a, 0x88, 0xd8, 0x85, 0x9f, 0xdd, 0x1a, 0x20, 0xf0,
+ 0xcc, 0x84, 0x4d, 0xd8, 0x0b, 0x47, 0xb4, 0x9d, 0xc6, 0xba, 0x69, 0xf4, 0xcd, 0x9d, 0xe6, 0x84,
+ 0x80, 0x18, 0xd2, 0x6b, 0xe9, 0x46, 0xbf, 0xd7, 0x14, 0x1c, 0x9e, 0x49, 0xfd, 0xd7, 0x6f, 0x18,
+ 0x05, 0x6c, 0xa7, 0xbb, 0xb7, 0xf8, 0x07, 0x50, 0x5a, 0x7e, 0x72, 0x22, 0xed, 0x50, 0xa9, 0x6c,
+ 0x18, 0xe3, 0x2f, 0xce, 0xee, 0x44, 0xa9, 0x43, 0x73, 0x93, 0xb3, 0xf0, 0x9d, 0x43, 0xbe, 0xe3,
+ 0x9d, 0x97, 0x5a, 0x1e, 0xb0, 0xfa, 0x11, 0xc4, 0x3d, 0xf1, 0x5f, 0x9b, 0x8d, 0xc4, 0x78, 0x97,
+ 0xd1, 0x0b, 0xc5, 0xad, 0x52, 0xfb, 0x1a, 0x8e, 0xef, 0x57, 0xa8, 0x26, 0xbd, 0x8e, 0xf1, 0x0b,
+ 0x54, 0x7f, 0xb0, 0x7d, 0x0c, 0x45, 0xa2, 0x09, 0xa1, 0x35, 0x44, 0x4d, 0xad, 0x09, 0x37, 0x7f,
+ 0x6c, 0x9a, 0x4a, 0xd9, 0x49, 0xf1, 0x54, 0x0f, 0xd7, 0xa1, 0x31, 0x3e, 0x9e, 0x0f, 0xe2, 0x9a,
+ 0xe9, 0xee, 0x3f, 0x09, 0x17, 0x4f, 0xec, 0x88, 0x99, 0xc3, 0xdd, 0x55, 0x8e, 0x88, 0x24, 0xee,
+ 0xa5, 0x72, 0xa0, 0xba, 0xf5, 0x4e, 0xe7, 0xc2, 0x4b, 0x65, 0x2a, 0xe8, 0xbe, 0xc2, 0xad, 0x72,
+ 0x20, 0x06, 0xd5, 0x6a, 0xab, 0xf0, 0x5f, 0x45, 0x05, 0x07, 0xc6, 0x83, 0xae, 0x45, 0x6b, 0x06,
+ 0x3d, 0x89, 0x5d, 0x1f, 0xf2, 0x4c, 0xf1, 0x56, 0x2c, 0xea, 0x07, 0x51, 0xde, 0x56, 0x7c, 0x89,
+ 0xb8, 0xfd, 0x28, 0xcf, 0xac, 0xf2, 0x49, 0xd1, 0x62, 0x88, 0xeb, 0x3a, 0xce, 0xd1, 0xba, 0xfd,
+ 0xf4, 0x61, 0xb7, 0x7c, 0x4e, 0xf3, 0x42, 0x9b, 0xb0, 0x2e, 0x1c, 0x87, 0xfe, 0x9b, 0x33, 0x61,
+ 0x71, 0x15, 0xc2, 0xac, 0x10, 0x4d, 0xfa, 0x1c, 0xfe, 0x4c, 0xf0, 0xec, 0xee, 0x1c, 0xf5, 0x15,
+ 0xce, 0xbc, 0x64, 0x96, 0xfc, 0x48, 0xdd, 0xbd, 0xe2, 0x37, 0x5d, 0xe0, 0x1e, 0xbd, 0x1d, 0xbc,
+ 0x4b, 0xc8, 0x11, 0x46, 0xa2, 0xf6, 0x65, 0x3a, 0xac, 0x55, 0xb1, 0x8b, 0x0e, 0x3a, 0xdb, 0xc8,
+ 0x07, 0x54, 0x8e, 0xf5, 0x40, 0xf7, 0x6e, 0x70, 0x7e, 0xf3, 0x46, 0x36, 0x3e, 0x70, 0x52, 0x54,
+ 0x82, 0x20, 0xfb, 0x25, 0x1e, 0x49, 0xd6, 0xf7, 0x30, 0x91, 0xaa, 0x5d, 0x2e, 0xf7, 0x94, 0x20,
+ 0x9f, 0xaf, 0x73, 0x50, 0x47, 0xf5, 0x78, 0xe4, 0x19, 0x7c, 0x6b, 0x8f, 0x5e, 0xe4, 0x83, 0xaf,
+ 0x1a, 0xdb, 0x06, 0x80, 0x19, 0x4b, 0xc0, 0x63, 0x57, 0x1e, 0x87, 0xe4, 0x4e, 0x63, 0x45, 0xdb,
+ 0x56, 0x47, 0x99, 0x33, 0xfb, 0x4a, 0xcb, 0x29, 0x85, 0xb8, 0x70, 0x59, 0x7e, 0x29, 0xcc, 0x47,
+ 0xd3, 0x33, 0xec, 0xe3, 0xa5, 0xf4, 0x73, 0xae, 0xcb, 0xda, 0x9c, 0x32, 0x6e, 0xae, 0x0a, 0x33,
+ 0x26, 0x4e, 0xae, 0xb8, 0x71, 0xe1, 0xe4, 0x25, 0x69, 0x53, 0x9a, 0xbf, 0x18, 0x25, 0xa5, 0x4e,
+ 0xa3, 0x3a, 0xdb, 0x68, 0x2f, 0x5f, 0x5c, 0xa2, 0x27, 0x31, 0x76, 0xd4, 0x08, 0xa2, 0x63, 0x3a,
+ 0xef, 0xa6, 0x44, 0xdb, 0xcd, 0x5e, 0x57, 0xe8, 0xf5, 0x97, 0x81, 0x69, 0x38, 0xe8, 0xea, 0xa6,
+ 0x6a, 0xd2, 0x31, 0x0b, 0x93, 0xe0, 0xef, 0x6f, 0xbb, 0xf5, 0x6d, 0x02, 0x28, 0x6f, 0x2c, 0xd2,
+ 0x77, 0x5d, 0xb9, 0x7e, 0xca, 0x5c, 0x41, 0x7c, 0x92, 0x18, 0xac, 0xd0, 0x58, 0x7c, 0x3b, 0x5d,
+ 0xf2, 0x29, 0xcc, 0xae, 0x94, 0xe2, 0xf9, 0xfb, 0xdc, 0x7a, 0x40, 0xbb, 0x48, 0xfb, 0xfd, 0x29,
+ 0xbe, 0xb5, 0x53, 0x1d, 0x76, 0xe3, 0xf2, 0xb1, 0x0e, 0xdc, 0xb7, 0x06, 0x78, 0xb1, 0x74, 0xb5,
+ 0x3b, 0xc1, 0x26, 0xcd, 0x28, 0x5d, 0x4a, 0x36, 0x40, 0xbe, 0x5b, 0x6d, 0x68, 0x36, 0xb2, 0xc1,
+ 0x84, 0x68, 0x80, 0xf7, 0xc4, 0x58, 0x6d, 0x97, 0x5c, 0xc5, 0xf6, 0x61, 0x98, 0x97, 0x5a, 0x68,
+ 0x01, 0x1c, 0xf5, 0x27, 0x9a, 0xe6, 0xd5, 0x10, 0x12, 0xa7, 0x1a, 0x0a, 0x88, 0x10, 0x9c, 0x1c,
+ 0x4d, 0x80, 0x6a, 0x94, 0x78, 0xe7, 0xde, 0x5a, 0xc0, 0x01, 0xed, 0xb7, 0xb8, 0x5a, 0x15, 0x80,
+ 0xc8, 0xf4, 0x1f, 0x44, 0x26, 0x59, 0x66, 0xdd, 0x8e, 0x63, 0x01, 0xdc, 0xa8, 0xdd, 0xd3, 0xf4,
+ 0xd5, 0x7b, 0x97, 0x31, 0x7f, 0xe5, 0xc8, 0xce, 0xa7, 0x8e, 0xc0, 0x0e, 0xd8, 0xce, 0xc4, 0x7b,
+ 0x50, 0x0f, 0xe2, 0xe1, 0x21, 0x5b, 0x70, 0x49, 0xe9, 0xec, 0x2c, 0x65, 0xc8, 0x49, 0x02, 0x0f,
+ 0x1c, 0x93, 0x7d, 0x52, 0xc3, 0x5a, 0x7b, 0x03, 0x3b, 0x4a, 0xdb, 0xd8, 0xf8, 0x03, 0x8b, 0x93,
+ 0x99, 0xe7, 0x08, 0x82, 0x9d, 0xe4, 0xc3, 0x84, 0x75, 0x28, 0x37, 0xb3, 0xe8, 0x84, 0x4d, 0xe7,
+ 0xa1, 0x02, 0xf2, 0x26, 0xd8, 0x50, 0x35, 0x82, 0x03, 0xbc, 0x42, 0xc0, 0xdb, 0x82, 0x98, 0x02,
+ 0x24, 0x76, 0x87, 0xf6, 0x86, 0xee, 0x8d, 0x05, 0x4d, 0xde, 0xae, 0xab, 0xcb, 0x05, 0x5e, 0x76,
+ 0x68, 0xea, 0x18, 0x45, 0x64, 0xef, 0x86, 0x4f, 0x9f, 0x78, 0x59, 0x16, 0xfb, 0x4f, 0xd7, 0xea,
+ 0xed, 0x9e, 0x6d, 0x95, 0x3a, 0x51, 0x3e, 0xc8, 0xd1, 0x1a, 0xb5, 0x7d, 0xeb, 0xc8, 0x11, 0x9e,
+ 0xf0, 0x11, 0xe5, 0xe0, 0x63, 0xed, 0x90, 0xdb, 0xf8, 0xf7, 0x74, 0xaf, 0x9b, 0xdb, 0x06, 0x11,
+ 0x75, 0x65, 0x90, 0x30, 0x3d, 0x53, 0x28, 0x5c, 0xb6, 0x95, 0x98, 0xc4, 0x8b, 0x5c, 0xc0, 0x65,
+ 0x39, 0xf9, 0x0f, 0x83, 0xdf, 0x52, 0x23, 0x16, 0x64, 0x33, 0x6f, 0x79, 0xbb, 0x16, 0x49, 0xf9,
+ 0xbc, 0x8d, 0x7a, 0x53, 0x81, 0xec, 0x9b, 0x91, 0x2a, 0x51, 0x83, 0x12, 0xab, 0x91, 0x8f, 0x8d,
+ 0x03, 0x24, 0xdc, 0x69, 0x6d, 0xe9, 0xbc, 0x30, 0x36, 0x2a, 0x2e, 0x1e, 0x5b, 0x30, 0x67, 0x24,
+ 0x86, 0x50, 0xa9, 0xb9, 0x33, 0x57, 0x04, 0xb7, 0x78, 0x48, 0xc2, 0x75, 0x4b, 0xb7, 0xa1, 0x50,
+ 0xca, 0xcc, 0x36, 0x0a, 0xd1, 0x56, 0x0f, 0xfd, 0xaa, 0xee, 0x35, 0xc8, 0x7b, 0xfd, 0x28, 0xcc,
+ 0x4f, 0xb8, 0x43, 0xda, 0x8f, 0xe8, 0xb7, 0x7a, 0xe4, 0x8c, 0xd9, 0xa3, 0x6b, 0x7a, 0xee, 0xb8,
+ 0x52, 0x37, 0xcb, 0xaf, 0xd6, 0x54, 0x19, 0x69, 0xcd, 0x61, 0x18, 0x71, 0x1b, 0x69, 0xf9, 0x37,
+ 0xd7, 0x43, 0xbe, 0x7f, 0x88, 0xea, 0xa1, 0xee, 0x83, 0x03, 0xf4, 0x1a, 0x0b, 0xee, 0x3f, 0x43,
+ 0x9b, 0xdf, 0x21, 0xcc, 0x6a, 0xeb, 0xaa, 0xa4, 0x51, 0xa5, 0x03, 0xa7, 0x3b, 0xa4, 0xb6, 0xdf,
+ 0x1e, 0xab, 0x54, 0x1c, 0x34, 0x55, 0x12, 0x23, 0x1f, 0xc7, 0xef, 0xcc, 0x2b, 0x23, 0x70, 0xab,
+ },
+ { /* 14 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x20, 0x2d, 0x99, 0xe9, 0x95, 0x9f, 0xd4, 0x49, 0xe6, 0xd5, 0x76, 0xf2, 0x33, 0xc8, 0x20, 0x98,
+ 0x40, 0x5a, 0xf1, 0x11, 0xe9, 0xfd, 0x6b, 0x92, 0x0f, 0x69, 0xec, 0x27, 0x66, 0x53, 0x40, 0xf3,
+ 0x60, 0x77, 0x68, 0xf8, 0x7c, 0x62, 0xbf, 0xdb, 0xe9, 0xbc, 0x9a, 0xd5, 0x55, 0x9b, 0x60, 0x6b,
+ 0x80, 0xb4, 0x21, 0x22, 0x11, 0x39, 0xd6, 0xe7, 0x1e, 0xd2, 0x1b, 0x4e, 0xcc, 0xa6, 0x80, 0x25,
+ 0xa0, 0x99, 0xb8, 0xcb, 0x84, 0xa6, 0x02, 0xae, 0xf8, 0x07, 0x6d, 0xbc, 0xff, 0x6e, 0xa0, 0xbd,
+ 0xc0, 0xee, 0xd0, 0x33, 0xf8, 0xc4, 0xbd, 0x75, 0x11, 0xbb, 0xf7, 0x69, 0xaa, 0xf5, 0xc0, 0xd6,
+ 0xe0, 0xc3, 0x49, 0xda, 0x6d, 0x5b, 0x69, 0x3c, 0xf7, 0x6e, 0x81, 0x9b, 0x99, 0x3d, 0xe0, 0x4e,
+ 0xc3, 0xab, 0x42, 0x44, 0x22, 0x72, 0x6f, 0x0d, 0x3c, 0x67, 0x36, 0x9c, 0x5b, 0x8f, 0xc3, 0x4a,
+ 0xe3, 0x86, 0xdb, 0xad, 0xb7, 0xed, 0xbb, 0x44, 0xda, 0xb2, 0x40, 0x6e, 0x68, 0x47, 0xe3, 0xd2,
+ 0x83, 0xf1, 0xb3, 0x55, 0xcb, 0x8f, 0x04, 0x9f, 0x33, 0x0e, 0xda, 0xbb, 0x3d, 0xdc, 0x83, 0xb9,
+ 0xa3, 0xdc, 0x2a, 0xbc, 0x5e, 0x10, 0xd0, 0xd6, 0xd5, 0xdb, 0xac, 0x49, 0x0e, 0x14, 0xa3, 0x21,
+ 0x43, 0x1f, 0x63, 0x66, 0x33, 0x4b, 0xb9, 0xea, 0x22, 0xb5, 0x2d, 0xd2, 0x97, 0x29, 0x43, 0x6f,
+ 0x63, 0x32, 0xfa, 0x8f, 0xa6, 0xd4, 0x6d, 0xa3, 0xc4, 0x60, 0x5b, 0x20, 0xa4, 0xe1, 0x63, 0xf7,
+ 0x03, 0x45, 0x92, 0x77, 0xda, 0xb6, 0xd2, 0x78, 0x2d, 0xdc, 0xc1, 0xf5, 0xf1, 0x7a, 0x03, 0x9c,
+ 0x23, 0x68, 0x0b, 0x9e, 0x4f, 0x29, 0x06, 0x31, 0xcb, 0x09, 0xb7, 0x07, 0xc2, 0xb2, 0x23, 0x04,
+ 0x45, 0x95, 0x84, 0x88, 0x44, 0xe4, 0xde, 0x1a, 0x78, 0xce, 0x6c, 0xfb, 0xb6, 0xdd, 0x45, 0x94,
+ 0x65, 0xb8, 0x1d, 0x61, 0xd1, 0x7b, 0x0a, 0x53, 0x9e, 0x1b, 0x1a, 0x09, 0x85, 0x15, 0x65, 0x0c,
+ 0x05, 0xcf, 0x75, 0x99, 0xad, 0x19, 0xb5, 0x88, 0x77, 0xa7, 0x80, 0xdc, 0xd0, 0x8e, 0x05, 0x67,
+ 0x25, 0xe2, 0xec, 0x70, 0x38, 0x86, 0x61, 0xc1, 0x91, 0x72, 0xf6, 0x2e, 0xe3, 0x46, 0x25, 0xff,
+ 0xc5, 0x21, 0xa5, 0xaa, 0x55, 0xdd, 0x08, 0xfd, 0x66, 0x1c, 0x77, 0xb5, 0x7a, 0x7b, 0xc5, 0xb1,
+ 0xe5, 0x0c, 0x3c, 0x43, 0xc0, 0x42, 0xdc, 0xb4, 0x80, 0xc9, 0x01, 0x47, 0x49, 0xb3, 0xe5, 0x29,
+ 0x85, 0x7b, 0x54, 0xbb, 0xbc, 0x20, 0x63, 0x6f, 0x69, 0x75, 0x9b, 0x92, 0x1c, 0x28, 0x85, 0x42,
+ 0xa5, 0x56, 0xcd, 0x52, 0x29, 0xbf, 0xb7, 0x26, 0x8f, 0xa0, 0xed, 0x60, 0x2f, 0xe0, 0xa5, 0xda,
+ 0x86, 0x3e, 0xc6, 0xcc, 0x66, 0x96, 0xb1, 0x17, 0x44, 0xa9, 0x5a, 0x67, 0xed, 0x52, 0x86, 0xde,
+ 0xa6, 0x13, 0x5f, 0x25, 0xf3, 0x09, 0x65, 0x5e, 0xa2, 0x7c, 0x2c, 0x95, 0xde, 0x9a, 0xa6, 0x46,
+ 0xc6, 0x64, 0x37, 0xdd, 0x8f, 0x6b, 0xda, 0x85, 0x4b, 0xc0, 0xb6, 0x40, 0x8b, 0x01, 0xc6, 0x2d,
+ 0xe6, 0x49, 0xae, 0x34, 0x1a, 0xf4, 0x0e, 0xcc, 0xad, 0x15, 0xc0, 0xb2, 0xb8, 0xc9, 0xe6, 0xb5,
+ 0x06, 0x8a, 0xe7, 0xee, 0x77, 0xaf, 0x67, 0xf0, 0x5a, 0x7b, 0x41, 0x29, 0x21, 0xf4, 0x06, 0xfb,
+ 0x26, 0xa7, 0x7e, 0x07, 0xe2, 0x30, 0xb3, 0xb9, 0xbc, 0xae, 0x37, 0xdb, 0x12, 0x3c, 0x26, 0x63,
+ 0x46, 0xd0, 0x16, 0xff, 0x9e, 0x52, 0x0c, 0x62, 0x55, 0x12, 0xad, 0x0e, 0x47, 0xa7, 0x46, 0x08,
+ 0x66, 0xfd, 0x8f, 0x16, 0x0b, 0xcd, 0xd8, 0x2b, 0xb3, 0xc7, 0xdb, 0xfc, 0x74, 0x6f, 0x66, 0x90,
+ 0x8a, 0xe9, 0xcb, 0xd3, 0x88, 0x0b, 0x7f, 0x34, 0xf0, 0x5f, 0xd8, 0x35, 0xaf, 0x79, 0x8a, 0xeb,
+ 0xaa, 0xc4, 0x52, 0x3a, 0x1d, 0x94, 0xab, 0x7d, 0x16, 0x8a, 0xae, 0xc7, 0x9c, 0xb1, 0xaa, 0x73,
+ 0xca, 0xb3, 0x3a, 0xc2, 0x61, 0xf6, 0x14, 0xa6, 0xff, 0x36, 0x34, 0x12, 0xc9, 0x2a, 0xca, 0x18,
+ 0xea, 0x9e, 0xa3, 0x2b, 0xf4, 0x69, 0xc0, 0xef, 0x19, 0xe3, 0x42, 0xe0, 0xfa, 0xe2, 0xea, 0x80,
+ 0x0a, 0x5d, 0xea, 0xf1, 0x99, 0x32, 0xa9, 0xd3, 0xee, 0x8d, 0xc3, 0x7b, 0x63, 0xdf, 0x0a, 0xce,
+ 0x2a, 0x70, 0x73, 0x18, 0x0c, 0xad, 0x7d, 0x9a, 0x08, 0x58, 0xb5, 0x89, 0x50, 0x17, 0x2a, 0x56,
+ 0x4a, 0x07, 0x1b, 0xe0, 0x70, 0xcf, 0xc2, 0x41, 0xe1, 0xe4, 0x2f, 0x5c, 0x05, 0x8c, 0x4a, 0x3d,
+ 0x6a, 0x2a, 0x82, 0x09, 0xe5, 0x50, 0x16, 0x08, 0x07, 0x31, 0x59, 0xae, 0x36, 0x44, 0x6a, 0xa5,
+ 0x49, 0x42, 0x89, 0x97, 0xaa, 0x79, 0x10, 0x39, 0xcc, 0x38, 0xee, 0xa9, 0xf4, 0xf6, 0x49, 0xa1,
+ 0x69, 0x6f, 0x10, 0x7e, 0x3f, 0xe6, 0xc4, 0x70, 0x2a, 0xed, 0x98, 0x5b, 0xc7, 0x3e, 0x69, 0x39,
+ 0x09, 0x18, 0x78, 0x86, 0x43, 0x84, 0x7b, 0xab, 0xc3, 0x51, 0x02, 0x8e, 0x92, 0xa5, 0x09, 0x52,
+ 0x29, 0x35, 0xe1, 0x6f, 0xd6, 0x1b, 0xaf, 0xe2, 0x25, 0x84, 0x74, 0x7c, 0xa1, 0x6d, 0x29, 0xca,
+ 0xc9, 0xf6, 0xa8, 0xb5, 0xbb, 0x40, 0xc6, 0xde, 0xd2, 0xea, 0xf5, 0xe7, 0x38, 0x50, 0xc9, 0x84,
+ 0xe9, 0xdb, 0x31, 0x5c, 0x2e, 0xdf, 0x12, 0x97, 0x34, 0x3f, 0x83, 0x15, 0x0b, 0x98, 0xe9, 0x1c,
+ 0x89, 0xac, 0x59, 0xa4, 0x52, 0xbd, 0xad, 0x4c, 0xdd, 0x83, 0x19, 0xc0, 0x5e, 0x03, 0x89, 0x77,
+ 0xa9, 0x81, 0xc0, 0x4d, 0xc7, 0x22, 0x79, 0x05, 0x3b, 0x56, 0x6f, 0x32, 0x6d, 0xcb, 0xa9, 0xef,
+ 0xcf, 0x7c, 0x4f, 0x5b, 0xcc, 0xef, 0xa1, 0x2e, 0x88, 0x91, 0xb4, 0xce, 0x19, 0xa4, 0xcf, 0x7f,
+ 0xef, 0x51, 0xd6, 0xb2, 0x59, 0x70, 0x75, 0x67, 0x6e, 0x44, 0xc2, 0x3c, 0x2a, 0x6c, 0xef, 0xe7,
+ 0x8f, 0x26, 0xbe, 0x4a, 0x25, 0x12, 0xca, 0xbc, 0x87, 0xf8, 0x58, 0xe9, 0x7f, 0xf7, 0x8f, 0x8c,
+ 0xaf, 0x0b, 0x27, 0xa3, 0xb0, 0x8d, 0x1e, 0xf5, 0x61, 0x2d, 0x2e, 0x1b, 0x4c, 0x3f, 0xaf, 0x14,
+ 0x4f, 0xc8, 0x6e, 0x79, 0xdd, 0xd6, 0x77, 0xc9, 0x96, 0x43, 0xaf, 0x80, 0xd5, 0x02, 0x4f, 0x5a,
+ 0x6f, 0xe5, 0xf7, 0x90, 0x48, 0x49, 0xa3, 0x80, 0x70, 0x96, 0xd9, 0x72, 0xe6, 0xca, 0x6f, 0xc2,
+ 0x0f, 0x92, 0x9f, 0x68, 0x34, 0x2b, 0x1c, 0x5b, 0x99, 0x2a, 0x43, 0xa7, 0xb3, 0x51, 0x0f, 0xa9,
+ 0x2f, 0xbf, 0x06, 0x81, 0xa1, 0xb4, 0xc8, 0x12, 0x7f, 0xff, 0x35, 0x55, 0x80, 0x99, 0x2f, 0x31,
+ 0x0c, 0xd7, 0x0d, 0x1f, 0xee, 0x9d, 0xce, 0x23, 0xb4, 0xf6, 0x82, 0x52, 0x42, 0x2b, 0x0c, 0x35,
+ 0x2c, 0xfa, 0x94, 0xf6, 0x7b, 0x02, 0x1a, 0x6a, 0x52, 0x23, 0xf4, 0xa0, 0x71, 0xe3, 0x2c, 0xad,
+ 0x4c, 0x8d, 0xfc, 0x0e, 0x07, 0x60, 0xa5, 0xb1, 0xbb, 0x9f, 0x6e, 0x75, 0x24, 0x78, 0x4c, 0xc6,
+ 0x6c, 0xa0, 0x65, 0xe7, 0x92, 0xff, 0x71, 0xf8, 0x5d, 0x4a, 0x18, 0x87, 0x17, 0xb0, 0x6c, 0x5e,
+ 0x8c, 0x63, 0x2c, 0x3d, 0xff, 0xa4, 0x18, 0xc4, 0xaa, 0x24, 0x99, 0x1c, 0x8e, 0x8d, 0x8c, 0x10,
+ 0xac, 0x4e, 0xb5, 0xd4, 0x6a, 0x3b, 0xcc, 0x8d, 0x4c, 0xf1, 0xef, 0xee, 0xbd, 0x45, 0xac, 0x88,
+ 0xcc, 0x39, 0xdd, 0x2c, 0x16, 0x59, 0x73, 0x56, 0xa5, 0x4d, 0x75, 0x3b, 0xe8, 0xde, 0xcc, 0xe3,
+ 0xec, 0x14, 0x44, 0xc5, 0x83, 0xc6, 0xa7, 0x1f, 0x43, 0x98, 0x03, 0xc9, 0xdb, 0x16, 0xec, 0x7b,
+ 0xd7, 0x11, 0x55, 0x65, 0xd3, 0x16, 0xfe, 0x68, 0x23, 0xbe, 0x73, 0x6a, 0x9d, 0xf2, 0xd7, 0x15,
+ 0xf7, 0x3c, 0xcc, 0x8c, 0x46, 0x89, 0x2a, 0x21, 0xc5, 0x6b, 0x05, 0x98, 0xae, 0x3a, 0xf7, 0x8d,
+ 0x97, 0x4b, 0xa4, 0x74, 0x3a, 0xeb, 0x95, 0xfa, 0x2c, 0xd7, 0x9f, 0x4d, 0xfb, 0xa1, 0x97, 0xe6,
+ 0xb7, 0x66, 0x3d, 0x9d, 0xaf, 0x74, 0x41, 0xb3, 0xca, 0x02, 0xe9, 0xbf, 0xc8, 0x69, 0xb7, 0x7e,
+ 0x57, 0xa5, 0x74, 0x47, 0xc2, 0x2f, 0x28, 0x8f, 0x3d, 0x6c, 0x68, 0x24, 0x51, 0x54, 0x57, 0x30,
+ 0x77, 0x88, 0xed, 0xae, 0x57, 0xb0, 0xfc, 0xc6, 0xdb, 0xb9, 0x1e, 0xd6, 0x62, 0x9c, 0x77, 0xa8,
+ 0x17, 0xff, 0x85, 0x56, 0x2b, 0xd2, 0x43, 0x1d, 0x32, 0x05, 0x84, 0x03, 0x37, 0x07, 0x17, 0xc3,
+ 0x37, 0xd2, 0x1c, 0xbf, 0xbe, 0x4d, 0x97, 0x54, 0xd4, 0xd0, 0xf2, 0xf1, 0x04, 0xcf, 0x37, 0x5b,
+ 0x14, 0xba, 0x17, 0x21, 0xf1, 0x64, 0x91, 0x65, 0x1f, 0xd9, 0x45, 0xf6, 0xc6, 0x7d, 0x14, 0x5f,
+ 0x34, 0x97, 0x8e, 0xc8, 0x64, 0xfb, 0x45, 0x2c, 0xf9, 0x0c, 0x33, 0x04, 0xf5, 0xb5, 0x34, 0xc7,
+ 0x54, 0xe0, 0xe6, 0x30, 0x18, 0x99, 0xfa, 0xf7, 0x10, 0xb0, 0xa9, 0xd1, 0xa0, 0x2e, 0x54, 0xac,
+ 0x74, 0xcd, 0x7f, 0xd9, 0x8d, 0x06, 0x2e, 0xbe, 0xf6, 0x65, 0xdf, 0x23, 0x93, 0xe6, 0x74, 0x34,
+ 0x94, 0x0e, 0x36, 0x03, 0xe0, 0x5d, 0x47, 0x82, 0x01, 0x0b, 0x5e, 0xb8, 0x0a, 0xdb, 0x94, 0x7a,
+ 0xb4, 0x23, 0xaf, 0xea, 0x75, 0xc2, 0x93, 0xcb, 0xe7, 0xde, 0x28, 0x4a, 0x39, 0x13, 0xb4, 0xe2,
+ 0xd4, 0x54, 0xc7, 0x12, 0x09, 0xa0, 0x2c, 0x10, 0x0e, 0x62, 0xb2, 0x9f, 0x6c, 0x88, 0xd4, 0x89,
+ 0xf4, 0x79, 0x5e, 0xfb, 0x9c, 0x3f, 0xf8, 0x59, 0xe8, 0xb7, 0xc4, 0x6d, 0x5f, 0x40, 0xf4, 0x11,
+ 0x92, 0x84, 0xd1, 0xed, 0x97, 0xf2, 0x20, 0x72, 0x5b, 0x70, 0x1f, 0x91, 0x2b, 0x2f, 0x92, 0x81,
+ 0xb2, 0xa9, 0x48, 0x04, 0x02, 0x6d, 0xf4, 0x3b, 0xbd, 0xa5, 0x69, 0x63, 0x18, 0xe7, 0xb2, 0x19,
+ 0xd2, 0xde, 0x20, 0xfc, 0x7e, 0x0f, 0x4b, 0xe0, 0x54, 0x19, 0xf3, 0xb6, 0x4d, 0x7c, 0xd2, 0x72,
+ 0xf2, 0xf3, 0xb9, 0x15, 0xeb, 0x90, 0x9f, 0xa9, 0xb2, 0xcc, 0x85, 0x44, 0x7e, 0xb4, 0xf2, 0xea,
+ 0x12, 0x30, 0xf0, 0xcf, 0x86, 0xcb, 0xf6, 0x95, 0x45, 0xa2, 0x04, 0xdf, 0xe7, 0x89, 0x12, 0xa4,
+ 0x32, 0x1d, 0x69, 0x26, 0x13, 0x54, 0x22, 0xdc, 0xa3, 0x77, 0x72, 0x2d, 0xd4, 0x41, 0x32, 0x3c,
+ 0x52, 0x6a, 0x01, 0xde, 0x6f, 0x36, 0x9d, 0x07, 0x4a, 0xcb, 0xe8, 0xf8, 0x81, 0xda, 0x52, 0x57,
+ 0x72, 0x47, 0x98, 0x37, 0xfa, 0xa9, 0x49, 0x4e, 0xac, 0x1e, 0x9e, 0x0a, 0xb2, 0x12, 0x72, 0xcf,
+ 0x51, 0x2f, 0x93, 0xa9, 0xb5, 0x80, 0x4f, 0x7f, 0x67, 0x17, 0x29, 0x0d, 0x70, 0xa0, 0x51, 0xcb,
+ 0x71, 0x02, 0x0a, 0x40, 0x20, 0x1f, 0x9b, 0x36, 0x81, 0xc2, 0x5f, 0xff, 0x43, 0x68, 0x71, 0x53,
+ 0x11, 0x75, 0x62, 0xb8, 0x5c, 0x7d, 0x24, 0xed, 0x68, 0x7e, 0xc5, 0x2a, 0x16, 0xf3, 0x11, 0x38,
+ 0x31, 0x58, 0xfb, 0x51, 0xc9, 0xe2, 0xf0, 0xa4, 0x8e, 0xab, 0xb3, 0xd8, 0x25, 0x3b, 0x31, 0xa0,
+ 0xd1, 0x9b, 0xb2, 0x8b, 0xa4, 0xb9, 0x99, 0x98, 0x79, 0xc5, 0x32, 0x43, 0xbc, 0x06, 0xd1, 0xee,
+ 0xf1, 0xb6, 0x2b, 0x62, 0x31, 0x26, 0x4d, 0xd1, 0x9f, 0x10, 0x44, 0xb1, 0x8f, 0xce, 0xf1, 0x76,
+ 0x91, 0xc1, 0x43, 0x9a, 0x4d, 0x44, 0xf2, 0x0a, 0x76, 0xac, 0xde, 0x64, 0xda, 0x55, 0x91, 0x1d,
+ 0xb1, 0xec, 0xda, 0x73, 0xd8, 0xdb, 0x26, 0x43, 0x90, 0x79, 0xa8, 0x96, 0xe9, 0x9d, 0xb1, 0x85,
+ 0x5d, 0xf8, 0x9e, 0xb6, 0x5b, 0x1d, 0x81, 0x5c, 0xd3, 0xe1, 0xab, 0x5f, 0x32, 0x8b, 0x5d, 0xfe,
+ 0x7d, 0xd5, 0x07, 0x5f, 0xce, 0x82, 0x55, 0x15, 0x35, 0x34, 0xdd, 0xad, 0x01, 0x43, 0x7d, 0x66,
+ 0x1d, 0xa2, 0x6f, 0xa7, 0xb2, 0xe0, 0xea, 0xce, 0xdc, 0x88, 0x47, 0x78, 0x54, 0xd8, 0x1d, 0x0d,
+ 0x3d, 0x8f, 0xf6, 0x4e, 0x27, 0x7f, 0x3e, 0x87, 0x3a, 0x5d, 0x31, 0x8a, 0x67, 0x10, 0x3d, 0x95,
+ 0xdd, 0x4c, 0xbf, 0x94, 0x4a, 0x24, 0x57, 0xbb, 0xcd, 0x33, 0xb0, 0x11, 0xfe, 0x2d, 0xdd, 0xdb,
+ 0xfd, 0x61, 0x26, 0x7d, 0xdf, 0xbb, 0x83, 0xf2, 0x2b, 0xe6, 0xc6, 0xe3, 0xcd, 0xe5, 0xfd, 0x43,
+ 0x9d, 0x16, 0x4e, 0x85, 0xa3, 0xd9, 0x3c, 0x29, 0xc2, 0x5a, 0x5c, 0x36, 0x98, 0x7e, 0x9d, 0x28,
+ 0xbd, 0x3b, 0xd7, 0x6c, 0x36, 0x46, 0xe8, 0x60, 0x24, 0x8f, 0x2a, 0xc4, 0xab, 0xb6, 0xbd, 0xb0,
+ 0x9e, 0x53, 0xdc, 0xf2, 0x79, 0x6f, 0xee, 0x51, 0xef, 0x86, 0x9d, 0xc3, 0x69, 0x04, 0x9e, 0xb4,
+ 0xbe, 0x7e, 0x45, 0x1b, 0xec, 0xf0, 0x3a, 0x18, 0x09, 0x53, 0xeb, 0x31, 0x5a, 0xcc, 0xbe, 0x2c,
+ 0xde, 0x09, 0x2d, 0xe3, 0x90, 0x92, 0x85, 0xc3, 0xe0, 0xef, 0x71, 0xe4, 0x0f, 0x57, 0xde, 0x47,
+ 0xfe, 0x24, 0xb4, 0x0a, 0x05, 0x0d, 0x51, 0x8a, 0x06, 0x3a, 0x07, 0x16, 0x3c, 0x9f, 0xfe, 0xdf,
+ 0x1e, 0xe7, 0xfd, 0xd0, 0x68, 0x56, 0x38, 0xb6, 0xf1, 0x54, 0x86, 0x8d, 0xa5, 0xa2, 0x1e, 0x91,
+ 0x3e, 0xca, 0x64, 0x39, 0xfd, 0xc9, 0xec, 0xff, 0x17, 0x81, 0xf0, 0x7f, 0x96, 0x6a, 0x3e, 0x09,
+ 0x5e, 0xbd, 0x0c, 0xc1, 0x81, 0xab, 0x53, 0x24, 0xfe, 0x3d, 0x6a, 0xaa, 0xc3, 0xf1, 0x5e, 0x62,
+ 0x7e, 0x90, 0x95, 0x28, 0x14, 0x34, 0x87, 0x6d, 0x18, 0xe8, 0x1c, 0x58, 0xf0, 0x39, 0x7e, 0xfa,
+ 0x18, 0x6d, 0x1a, 0x3e, 0x1f, 0xf9, 0x5f, 0x46, 0xab, 0x2f, 0xc7, 0xa4, 0x84, 0x56, 0x18, 0x6a,
+ 0x38, 0x40, 0x83, 0xd7, 0x8a, 0x66, 0x8b, 0x0f, 0x4d, 0xfa, 0xb1, 0x56, 0xb7, 0x9e, 0x38, 0xf2,
+ 0x58, 0x37, 0xeb, 0x2f, 0xf6, 0x04, 0x34, 0xd4, 0xa4, 0x46, 0x2b, 0x83, 0xe2, 0x05, 0x58, 0x99,
+ 0x78, 0x1a, 0x72, 0xc6, 0x63, 0x9b, 0xe0, 0x9d, 0x42, 0x93, 0x5d, 0x71, 0xd1, 0xcd, 0x78, 0x01,
+ 0x98, 0xd9, 0x3b, 0x1c, 0x0e, 0xc0, 0x89, 0xa1, 0xb5, 0xfd, 0xdc, 0xea, 0x48, 0xf0, 0x98, 0x4f,
+ 0xb8, 0xf4, 0xa2, 0xf5, 0x9b, 0x5f, 0x5d, 0xe8, 0x53, 0x28, 0xaa, 0x18, 0x7b, 0x38, 0xb8, 0xd7,
+ 0xd8, 0x83, 0xca, 0x0d, 0xe7, 0x3d, 0xe2, 0x33, 0xba, 0x94, 0x30, 0xcd, 0x2e, 0xa3, 0xd8, 0xbc,
+ 0xf8, 0xae, 0x53, 0xe4, 0x72, 0xa2, 0x36, 0x7a, 0x5c, 0x41, 0x46, 0x3f, 0x1d, 0x6b, 0xf8, 0x24,
+ 0xdb, 0xc6, 0x58, 0x7a, 0x3d, 0x8b, 0x30, 0x4b, 0x97, 0x48, 0xf1, 0x38, 0xdf, 0xd9, 0xdb, 0x20,
+ 0xfb, 0xeb, 0xc1, 0x93, 0xa8, 0x14, 0xe4, 0x02, 0x71, 0x9d, 0x87, 0xca, 0xec, 0x11, 0xfb, 0xb8,
+ 0x9b, 0x9c, 0xa9, 0x6b, 0xd4, 0x76, 0x5b, 0xd9, 0x98, 0x21, 0x1d, 0x1f, 0xb9, 0x8a, 0x9b, 0xd3,
+ 0xbb, 0xb1, 0x30, 0x82, 0x41, 0xe9, 0x8f, 0x90, 0x7e, 0xf4, 0x6b, 0xed, 0x8a, 0x42, 0xbb, 0x4b,
+ 0x5b, 0x72, 0x79, 0x58, 0x2c, 0xb2, 0xe6, 0xac, 0x89, 0x9a, 0xea, 0x76, 0x13, 0x7f, 0x5b, 0x05,
+ 0x7b, 0x5f, 0xe0, 0xb1, 0xb9, 0x2d, 0x32, 0xe5, 0x6f, 0x4f, 0x9c, 0x84, 0x20, 0xb7, 0x7b, 0x9d,
+ 0x1b, 0x28, 0x88, 0x49, 0xc5, 0x4f, 0x8d, 0x3e, 0x86, 0xf3, 0x06, 0x51, 0x75, 0x2c, 0x1b, 0xf6,
+ 0x3b, 0x05, 0x11, 0xa0, 0x50, 0xd0, 0x59, 0x77, 0x60, 0x26, 0x70, 0xa3, 0x46, 0xe4, 0x3b, 0x6e,
+ 0x6d, 0x22, 0xaa, 0xca, 0x65, 0x2c, 0x3f, 0xd0, 0x46, 0xbf, 0xe6, 0xd4, 0xf9, 0x27, 0x6d, 0x2a,
+ 0x4d, 0x0f, 0x33, 0x23, 0xf0, 0xb3, 0xeb, 0x99, 0xa0, 0x6a, 0x90, 0x26, 0xca, 0xef, 0x4d, 0xb2,
+ 0x2d, 0x78, 0x5b, 0xdb, 0x8c, 0xd1, 0x54, 0x42, 0x49, 0xd6, 0x0a, 0xf3, 0x9f, 0x74, 0x2d, 0xd9,
+ 0x0d, 0x55, 0xc2, 0x32, 0x19, 0x4e, 0x80, 0x0b, 0xaf, 0x03, 0x7c, 0x01, 0xac, 0xbc, 0x0d, 0x41,
+ 0xed, 0x96, 0x8b, 0xe8, 0x74, 0x15, 0xe9, 0x37, 0x58, 0x6d, 0xfd, 0x9a, 0x35, 0x81, 0xed, 0x0f,
+ 0xcd, 0xbb, 0x12, 0x01, 0xe1, 0x8a, 0x3d, 0x7e, 0xbe, 0xb8, 0x8b, 0x68, 0x06, 0x49, 0xcd, 0x97,
+ 0xad, 0xcc, 0x7a, 0xf9, 0x9d, 0xe8, 0x82, 0xa5, 0x57, 0x04, 0x11, 0xbd, 0x53, 0xd2, 0xad, 0xfc,
+ 0x8d, 0xe1, 0xe3, 0x10, 0x08, 0x77, 0x56, 0xec, 0xb1, 0xd1, 0x67, 0x4f, 0x60, 0x1a, 0x8d, 0x64,
+ 0xae, 0x89, 0xe8, 0x8e, 0x47, 0x5e, 0x50, 0xdd, 0x7a, 0xd8, 0xd0, 0x48, 0xa2, 0xa8, 0xae, 0x60,
+ 0x8e, 0xa4, 0x71, 0x67, 0xd2, 0xc1, 0x84, 0x94, 0x9c, 0x0d, 0xa6, 0xba, 0x91, 0x60, 0x8e, 0xf8,
+ 0xee, 0xd3, 0x19, 0x9f, 0xae, 0xa3, 0x3b, 0x4f, 0x75, 0xb1, 0x3c, 0x6f, 0xc4, 0xfb, 0xee, 0x93,
+ 0xce, 0xfe, 0x80, 0x76, 0x3b, 0x3c, 0xef, 0x06, 0x93, 0x64, 0x4a, 0x9d, 0xf7, 0x33, 0xce, 0x0b,
+ 0x2e, 0x3d, 0xc9, 0xac, 0x56, 0x67, 0x86, 0x3a, 0x64, 0x0a, 0xcb, 0x06, 0x6e, 0x0e, 0x2e, 0x45,
+ 0x0e, 0x10, 0x50, 0x45, 0xc3, 0xf8, 0x52, 0x73, 0x82, 0xdf, 0xbd, 0xf4, 0x5d, 0xc6, 0x0e, 0xdd,
+ 0x6e, 0x67, 0x38, 0xbd, 0xbf, 0x9a, 0xed, 0xa8, 0x6b, 0x63, 0x27, 0x21, 0x08, 0x5d, 0x6e, 0xb6,
+ 0x4e, 0x4a, 0xa1, 0x54, 0x2a, 0x05, 0x39, 0xe1, 0x8d, 0xb6, 0x51, 0xd3, 0x3b, 0x95, 0x4e, 0x2e,
+ 0x28, 0xb7, 0x2e, 0x42, 0x21, 0xc8, 0xe1, 0xca, 0x3e, 0x71, 0x8a, 0x2f, 0x4f, 0xfa, 0x28, 0xbe,
+ 0x08, 0x9a, 0xb7, 0xab, 0xb4, 0x57, 0x35, 0x83, 0xd8, 0xa4, 0xfc, 0xdd, 0x7c, 0x32, 0x08, 0x26,
+ 0x68, 0xed, 0xdf, 0x53, 0xc8, 0x35, 0x8a, 0x58, 0x31, 0x18, 0x66, 0x08, 0x29, 0xa9, 0x68, 0x4d,
+ 0x48, 0xc0, 0x46, 0xba, 0x5d, 0xaa, 0x5e, 0x11, 0xd7, 0xcd, 0x10, 0xfa, 0x1a, 0x61, 0x48, 0xd5,
+ 0xa8, 0x03, 0x0f, 0x60, 0x30, 0xf1, 0x37, 0x2d, 0x20, 0xa3, 0x91, 0x61, 0x83, 0x5c, 0xa8, 0x9b,
+ 0x88, 0x2e, 0x96, 0x89, 0xa5, 0x6e, 0xe3, 0x64, 0xc6, 0x76, 0xe7, 0x93, 0xb0, 0x94, 0x88, 0x03,
+ 0xe8, 0x59, 0xfe, 0x71, 0xd9, 0x0c, 0x5c, 0xbf, 0x2f, 0xca, 0x7d, 0x46, 0xe5, 0x0f, 0xe8, 0x68,
+ 0xc8, 0x74, 0x67, 0x98, 0x4c, 0x93, 0x88, 0xf6, 0xc9, 0x1f, 0x0b, 0xb4, 0xd6, 0xc7, 0xc8, 0xf0,
+ 0xeb, 0x1c, 0x6c, 0x06, 0x03, 0xba, 0x8e, 0xc7, 0x02, 0x16, 0xbc, 0xb3, 0x14, 0x75, 0xeb, 0xf4,
+ 0xcb, 0x31, 0xf5, 0xef, 0x96, 0x25, 0x5a, 0x8e, 0xe4, 0xc3, 0xca, 0x41, 0x27, 0xbd, 0xcb, 0x6c,
+ 0xab, 0x46, 0x9d, 0x17, 0xea, 0x47, 0xe5, 0x55, 0x0d, 0x7f, 0x50, 0x94, 0x72, 0x26, 0xab, 0x07,
+ 0x8b, 0x6b, 0x04, 0xfe, 0x7f, 0xd8, 0x31, 0x1c, 0xeb, 0xaa, 0x26, 0x66, 0x41, 0xee, 0x8b, 0x9f,
+ 0x6b, 0xa8, 0x4d, 0x24, 0x12, 0x83, 0x58, 0x20, 0x1c, 0xc4, 0xa7, 0xfd, 0xd8, 0xd3, 0x6b, 0xd1,
+ 0x4b, 0x85, 0xd4, 0xcd, 0x87, 0x1c, 0x8c, 0x69, 0xfa, 0x11, 0xd1, 0x0f, 0xeb, 0x1b, 0x4b, 0x49,
+ 0x2b, 0xf2, 0xbc, 0x35, 0xfb, 0x7e, 0x33, 0xb2, 0x13, 0xad, 0x4b, 0xda, 0xbe, 0x80, 0x2b, 0x22,
+ 0x0b, 0xdf, 0x25, 0xdc, 0x6e, 0xe1, 0xe7, 0xfb, 0xf5, 0x78, 0x3d, 0x28, 0x8d, 0x48, 0x0b, 0xba,
+ 0xe7, 0xcb, 0x61, 0x19, 0xed, 0x27, 0x40, 0xe4, 0xb6, 0xe0, 0x3e, 0xe1, 0x56, 0x5e, 0xe7, 0xc1,
+ 0xc7, 0xe6, 0xf8, 0xf0, 0x78, 0xb8, 0x94, 0xad, 0x50, 0x35, 0x48, 0x13, 0x65, 0x96, 0xc7, 0x59,
+ 0xa7, 0x91, 0x90, 0x08, 0x04, 0xda, 0x2b, 0x76, 0xb9, 0x89, 0xd2, 0xc6, 0x30, 0x0d, 0xa7, 0x32,
+ 0x87, 0xbc, 0x09, 0xe1, 0x91, 0x45, 0xff, 0x3f, 0x5f, 0x5c, 0xa4, 0x34, 0x03, 0xc5, 0x87, 0xaa,
+ 0x67, 0x7f, 0x40, 0x3b, 0xfc, 0x1e, 0x96, 0x03, 0xa8, 0x32, 0x25, 0xaf, 0x9a, 0xf8, 0x67, 0xe4,
+ 0x47, 0x52, 0xd9, 0xd2, 0x69, 0x81, 0x42, 0x4a, 0x4e, 0xe7, 0x53, 0x5d, 0xa9, 0x30, 0x47, 0x7c,
+ 0x27, 0x25, 0xb1, 0x2a, 0x15, 0xe3, 0xfd, 0x91, 0xa7, 0x5b, 0xc9, 0x88, 0xfc, 0xab, 0x27, 0x17,
+ 0x07, 0x08, 0x28, 0xc3, 0x80, 0x7c, 0x29, 0xd8, 0x41, 0x8e, 0xbf, 0x7a, 0xcf, 0x63, 0x07, 0x8f,
+ 0x24, 0x60, 0x23, 0x5d, 0xcf, 0x55, 0x2f, 0xe9, 0x8a, 0x87, 0x08, 0x7d, 0x0d, 0xd1, 0x24, 0x8b,
+ 0x04, 0x4d, 0xba, 0xb4, 0x5a, 0xca, 0xfb, 0xa0, 0x6c, 0x52, 0x7e, 0x8f, 0x3e, 0x19, 0x04, 0x13,
+ 0x64, 0x3a, 0xd2, 0x4c, 0x26, 0xa8, 0x44, 0x7b, 0x85, 0xee, 0xe4, 0x5a, 0x6b, 0x82, 0x64, 0x78,
+ 0x44, 0x17, 0x4b, 0xa5, 0xb3, 0x37, 0x90, 0x32, 0x63, 0x3b, 0x92, 0xa8, 0x58, 0x4a, 0x44, 0xe0,
+ 0xa4, 0xd4, 0x02, 0x7f, 0xde, 0x6c, 0xf9, 0x0e, 0x94, 0x55, 0x13, 0x33, 0xc1, 0x77, 0xa4, 0xae,
+ 0x84, 0xf9, 0x9b, 0x96, 0x4b, 0xf3, 0x2d, 0x47, 0x72, 0x80, 0x65, 0xc1, 0xf2, 0xbf, 0x84, 0x36,
+ 0xe4, 0x8e, 0xf3, 0x6e, 0x37, 0x91, 0x92, 0x9c, 0x9b, 0x3c, 0xff, 0x14, 0xa7, 0x24, 0xe4, 0x5d,
+ 0xc4, 0xa3, 0x6a, 0x87, 0xa2, 0x0e, 0x46, 0xd5, 0x7d, 0xe9, 0x89, 0xe6, 0x94, 0xec, 0xc4, 0xc5,
+ 0xa2, 0x5e, 0xe5, 0x91, 0xa9, 0xc3, 0x9e, 0xfe, 0xce, 0x2e, 0x52, 0x1a, 0xe0, 0x83, 0xa2, 0x55,
+ 0x82, 0x73, 0x7c, 0x78, 0x3c, 0x5c, 0x4a, 0xb7, 0x28, 0xfb, 0x24, 0xe8, 0xd3, 0x4b, 0x82, 0xcd,
+ 0xe2, 0x04, 0x14, 0x80, 0x40, 0x3e, 0xf5, 0x6c, 0xc1, 0x47, 0xbe, 0x3d, 0x86, 0xd0, 0xe2, 0xa6,
+ 0xc2, 0x29, 0x8d, 0x69, 0xd5, 0xa1, 0x21, 0x25, 0x27, 0x92, 0xc8, 0xcf, 0xb5, 0x18, 0xc2, 0x3e,
+ 0x22, 0xea, 0xc4, 0xb3, 0xb8, 0xfa, 0x48, 0x19, 0xd0, 0xfc, 0x49, 0x54, 0x2c, 0x25, 0x22, 0x70,
+ 0x02, 0xc7, 0x5d, 0x5a, 0x2d, 0x65, 0x9c, 0x50, 0x36, 0x29, 0x3f, 0xa6, 0x1f, 0xed, 0x02, 0xe8,
+ 0x62, 0xb0, 0x35, 0xa2, 0x51, 0x07, 0x23, 0x8b, 0xdf, 0x95, 0xa5, 0x73, 0x4a, 0x76, 0x62, 0x83,
+ 0x42, 0x9d, 0xac, 0x4b, 0xc4, 0x98, 0xf7, 0xc2, 0x39, 0x40, 0xd3, 0x81, 0x79, 0xbe, 0x42, 0x1b,
+ 0x61, 0xf5, 0xa7, 0xd5, 0x8b, 0xb1, 0xf1, 0xf3, 0xf2, 0x49, 0x64, 0x86, 0xbb, 0x0c, 0x61, 0x1f,
+ 0x41, 0xd8, 0x3e, 0x3c, 0x1e, 0x2e, 0x25, 0xba, 0x14, 0x9c, 0x12, 0x74, 0x88, 0xc4, 0x41, 0x87,
+ 0x21, 0xaf, 0x56, 0xc4, 0x62, 0x4c, 0x9a, 0x61, 0xfd, 0x20, 0x88, 0xa1, 0xdd, 0x5f, 0x21, 0xec,
+ 0x01, 0x82, 0xcf, 0x2d, 0xf7, 0xd3, 0x4e, 0x28, 0x1b, 0xf5, 0xfe, 0x53, 0xee, 0x97, 0x01, 0x74,
+ 0xe1, 0x41, 0x86, 0xf7, 0x9a, 0x88, 0x27, 0x14, 0xec, 0x9b, 0x7f, 0xc8, 0x77, 0xaa, 0xe1, 0x3a,
+ 0xc1, 0x6c, 0x1f, 0x1e, 0x0f, 0x17, 0xf3, 0x5d, 0x0a, 0x4e, 0x09, 0x3a, 0x44, 0x62, 0xc1, 0xa2,
+ 0xa1, 0x1b, 0x77, 0xe6, 0x73, 0x75, 0x4c, 0x86, 0xe3, 0xf2, 0x93, 0xef, 0x11, 0xf9, 0xa1, 0xc9,
+ 0x81, 0x36, 0xee, 0x0f, 0xe6, 0xea, 0x98, 0xcf, 0x05, 0x27, 0xe5, 0x1d, 0x22, 0x31, 0x81, 0x51,
+ 0xba, 0x33, 0xff, 0xaf, 0xb6, 0x3a, 0xc1, 0xb8, 0x65, 0x01, 0x95, 0xbe, 0x64, 0xd5, 0xba, 0x3f,
+ 0x9a, 0x1e, 0x66, 0x46, 0x23, 0xa5, 0x15, 0xf1, 0x83, 0xd4, 0xe3, 0x4c, 0x57, 0x1d, 0x9a, 0xa7,
+ 0xfa, 0x69, 0x0e, 0xbe, 0x5f, 0xc7, 0xaa, 0x2a, 0x6a, 0x68, 0x79, 0x99, 0x02, 0x86, 0xfa, 0xcc,
+ 0xda, 0x44, 0x97, 0x57, 0xca, 0x58, 0x7e, 0x63, 0x8c, 0xbd, 0x0f, 0x6b, 0x31, 0x4e, 0xda, 0x54,
+ 0x3a, 0x87, 0xde, 0x8d, 0xa7, 0x03, 0x17, 0x5f, 0x7b, 0xd3, 0x8e, 0xf0, 0xa8, 0x73, 0x3a, 0x1a,
+ 0x1a, 0xaa, 0x47, 0x64, 0x32, 0x9c, 0xc3, 0x16, 0x9d, 0x06, 0xf8, 0x02, 0x9b, 0xbb, 0x1a, 0x82,
+ 0x7a, 0xdd, 0x2f, 0x9c, 0x4e, 0xfe, 0x7c, 0xcd, 0x74, 0xba, 0x62, 0xd7, 0xce, 0x20, 0x7a, 0xe9,
+ 0x5a, 0xf0, 0xb6, 0x75, 0xdb, 0x61, 0xa8, 0x84, 0x92, 0x6f, 0x14, 0x25, 0xfd, 0xe8, 0x5a, 0x71,
+ 0x79, 0x98, 0xbd, 0xeb, 0x94, 0x48, 0xae, 0xb5, 0x59, 0x66, 0xa3, 0x22, 0x3f, 0x5a, 0x79, 0x75,
+ 0x59, 0xb5, 0x24, 0x02, 0x01, 0xd7, 0x7a, 0xfc, 0xbf, 0xb3, 0xd5, 0xd0, 0x0c, 0x92, 0x59, 0xed,
+ 0x39, 0xc2, 0x4c, 0xfa, 0x7d, 0xb5, 0xc5, 0x27, 0x56, 0x0f, 0x4f, 0x05, 0x59, 0x09, 0x39, 0x86,
+ 0x19, 0xef, 0xd5, 0x13, 0xe8, 0x2a, 0x11, 0x6e, 0xb0, 0xda, 0x39, 0xf7, 0x6a, 0xc1, 0x19, 0x1e,
+ 0xf9, 0x2c, 0x9c, 0xc9, 0x85, 0x71, 0x78, 0x52, 0x47, 0xb4, 0xb8, 0x6c, 0xf3, 0xfc, 0xf9, 0x50,
+ 0xd9, 0x01, 0x05, 0x20, 0x10, 0xee, 0xac, 0x1b, 0xa1, 0x61, 0xce, 0x9e, 0xc0, 0x34, 0xd9, 0xc8,
+ 0xb9, 0x76, 0x6d, 0xd8, 0x6c, 0x8c, 0x13, 0xc0, 0x48, 0xdd, 0x54, 0x4b, 0x95, 0xaf, 0xb9, 0xa3,
+ 0x99, 0x5b, 0xf4, 0x31, 0xf9, 0x13, 0xc7, 0x89, 0xae, 0x08, 0x22, 0xb9, 0xa6, 0x67, 0x99, 0x3b,
+ 0xff, 0xa6, 0x7b, 0x27, 0xf2, 0xde, 0x1f, 0xa2, 0x1d, 0xcf, 0xf9, 0x45, 0xd2, 0x08, 0xff, 0xab,
+ 0xdf, 0x8b, 0xe2, 0xce, 0x67, 0x41, 0xcb, 0xeb, 0xfb, 0x1a, 0x8f, 0xb7, 0xe1, 0xc0, 0xdf, 0x33,
+ 0xbf, 0xfc, 0x8a, 0x36, 0x1b, 0x23, 0x74, 0x30, 0x12, 0xa6, 0x15, 0x62, 0xb4, 0x5b, 0xbf, 0x58,
+ 0x9f, 0xd1, 0x13, 0xdf, 0x8e, 0xbc, 0xa0, 0x79, 0xf4, 0x73, 0x63, 0x90, 0x87, 0x93, 0x9f, 0xc0,
+ 0x7f, 0x12, 0x5a, 0x05, 0xe3, 0xe7, 0xc9, 0x45, 0x03, 0x1d, 0xe2, 0x0b, 0x1e, 0xae, 0x7f, 0x8e,
+ 0x5f, 0x3f, 0xc3, 0xec, 0x76, 0x78, 0x1d, 0x0c, 0xe5, 0xc8, 0x94, 0xf9, 0x2d, 0x66, 0x5f, 0x16,
+ 0x3f, 0x48, 0xab, 0x14, 0x0a, 0x1a, 0xa2, 0xd7, 0x0c, 0x74, 0x0e, 0x2c, 0x78, 0xfd, 0x3f, 0x7d,
+ 0x1f, 0x65, 0x32, 0xfd, 0x9f, 0x85, 0x76, 0x9e, 0xea, 0xa1, 0x78, 0xde, 0x4b, 0x35, 0x1f, 0xe5,
+ 0x3c, 0x0d, 0x39, 0x63, 0xd0, 0xac, 0x70, 0xaf, 0x21, 0xa8, 0xcf, 0xd9, 0x89, 0x87, 0x3c, 0xe1,
+ 0x1c, 0x20, 0xa0, 0x8a, 0x45, 0x33, 0xa4, 0xe6, 0xc7, 0x7d, 0xb9, 0x2b, 0xba, 0x4f, 0x1c, 0x79,
+ 0x7c, 0x57, 0xc8, 0x72, 0x39, 0x51, 0x1b, 0x3d, 0x2e, 0xc1, 0x23, 0xfe, 0xef, 0xd4, 0x7c, 0x12,
+ 0x5c, 0x7a, 0x51, 0x9b, 0xac, 0xce, 0xcf, 0x74, 0xc8, 0x14, 0x55, 0x0c, 0xdc, 0x1c, 0x5c, 0x8a,
+ 0xbc, 0xb9, 0x18, 0x41, 0xc1, 0x95, 0xa6, 0x48, 0x3f, 0x7a, 0xd4, 0x97, 0x45, 0x21, 0xbc, 0xc4,
+ 0x9c, 0x94, 0x81, 0xa8, 0x54, 0x0a, 0x72, 0x01, 0xd9, 0xaf, 0xa2, 0x65, 0x76, 0xe9, 0x9c, 0x5c,
+ 0xfc, 0xe3, 0xe9, 0x50, 0x28, 0x68, 0xcd, 0xda, 0x30, 0x13, 0x38, 0xb0, 0x23, 0x72, 0xfc, 0x37,
+ 0xdc, 0xce, 0x70, 0xb9, 0xbd, 0xf7, 0x19, 0x93, 0xd6, 0xc6, 0x4e, 0x42, 0x10, 0xba, 0xdc, 0xaf,
+ 0x30, 0xda, 0x34, 0x7c, 0x3e, 0x31, 0xbe, 0x8c, 0x95, 0x5e, 0x4d, 0x8b, 0xcb, 0xac, 0x30, 0xd4,
+ 0x10, 0xf7, 0xad, 0x95, 0xab, 0xae, 0x6a, 0xc5, 0x73, 0x8b, 0x3b, 0x79, 0xf8, 0x64, 0x10, 0x4c,
+ 0x70, 0x80, 0xc5, 0x6d, 0xd7, 0xcc, 0xd5, 0x1e, 0x9a, 0x37, 0xa1, 0xac, 0xad, 0xff, 0x70, 0x27,
+ 0x50, 0xad, 0x5c, 0x84, 0x42, 0x53, 0x01, 0x57, 0x7c, 0xe2, 0xd7, 0x5e, 0x9e, 0x37, 0x50, 0xbf,
+ 0xb0, 0x6e, 0x15, 0x5e, 0x2f, 0x08, 0x68, 0x6b, 0x8b, 0x8c, 0x56, 0xc5, 0x07, 0x0a, 0xb0, 0xf1,
+ 0x90, 0x43, 0x8c, 0xb7, 0xba, 0x97, 0xbc, 0x22, 0x6d, 0x59, 0x20, 0x37, 0x34, 0xc2, 0x90, 0x69,
+ 0xf0, 0x34, 0xe4, 0x4f, 0xc6, 0xf5, 0x03, 0xf9, 0x84, 0xe5, 0xba, 0xe2, 0x61, 0x59, 0xf0, 0x02,
+ 0xd0, 0x19, 0x7d, 0xa6, 0x53, 0x6a, 0xd7, 0xb0, 0x62, 0x30, 0xcc, 0x10, 0x52, 0x91, 0xd0, 0x9a,
+ 0xf3, 0x71, 0x76, 0x38, 0x1c, 0x43, 0xd1, 0x81, 0xa9, 0x39, 0x7b, 0x17, 0x90, 0x23, 0xf3, 0x9e,
+ 0xd3, 0x5c, 0xef, 0xd1, 0x89, 0xdc, 0x05, 0xc8, 0x4f, 0xec, 0x0d, 0xe5, 0xa3, 0xeb, 0xd3, 0x06,
+ 0xb3, 0x2b, 0x87, 0x29, 0xf5, 0xbe, 0xba, 0x13, 0xa6, 0x50, 0x97, 0x30, 0xf6, 0x70, 0xb3, 0x6d,
+ 0x93, 0x06, 0x1e, 0xc0, 0x60, 0x21, 0x6e, 0x5a, 0x40, 0x85, 0xe1, 0xc2, 0xc5, 0xb8, 0x93, 0xf5,
+ 0x73, 0xc5, 0x57, 0x1a, 0x0d, 0x7a, 0x07, 0x66, 0xb7, 0xeb, 0x60, 0x59, 0x5c, 0x85, 0x73, 0xbb,
+ 0x53, 0xe8, 0xce, 0xf3, 0x98, 0xe5, 0xd3, 0x2f, 0x51, 0x3e, 0x16, 0xab, 0x6f, 0x4d, 0x53, 0x23,
+ 0x33, 0x9f, 0xa6, 0x0b, 0xe4, 0x87, 0x6c, 0xf4, 0xb8, 0x82, 0x8c, 0x7e, 0x3a, 0xd6, 0x33, 0x48,
+ 0x13, 0xb2, 0x3f, 0xe2, 0x71, 0x18, 0xb8, 0xbd, 0x5e, 0x57, 0xfa, 0x8c, 0x09, 0x1e, 0x13, 0xd0,
+ 0x75, 0x4f, 0xb0, 0xf4, 0x7a, 0xd5, 0x60, 0x96, 0xed, 0x90, 0x21, 0x70, 0x7d, 0x71, 0x75, 0x40,
+ 0x55, 0x62, 0x29, 0x1d, 0xef, 0x4a, 0xb4, 0xdf, 0x0b, 0x45, 0x57, 0x82, 0x4e, 0xb9, 0x55, 0xd8,
+ 0x35, 0x15, 0x41, 0xe5, 0x93, 0x28, 0x0b, 0x04, 0xe2, 0xf9, 0xcd, 0x57, 0x1b, 0x22, 0x35, 0xb3,
+ 0x15, 0x38, 0xd8, 0x0c, 0x06, 0xb7, 0xdf, 0x4d, 0x04, 0x2c, 0xbb, 0xa5, 0x28, 0xea, 0x15, 0x2b,
+ 0xf5, 0xfb, 0x91, 0xd6, 0x6b, 0xec, 0xb6, 0x71, 0xf3, 0x42, 0x3a, 0x3e, 0xb1, 0xd7, 0xf5, 0x65,
+ 0xd5, 0xd6, 0x08, 0x3f, 0xfe, 0x73, 0x62, 0x38, 0x15, 0x97, 0x4c, 0xcc, 0x82, 0x1f, 0xd5, 0xfd,
+ 0xb5, 0xa1, 0x60, 0xc7, 0x82, 0x11, 0xdd, 0xe3, 0xfc, 0x2b, 0xd6, 0x19, 0xd7, 0x84, 0xb5, 0x96,
+ 0x95, 0x8c, 0xf9, 0x2e, 0x17, 0x8e, 0x09, 0xaa, 0x1a, 0xfe, 0xa0, 0xeb, 0xe4, 0x4c, 0x95, 0x0e,
+ 0xb6, 0xe4, 0xf2, 0xb0, 0x58, 0xa7, 0x0f, 0x9b, 0xd1, 0xf7, 0x17, 0xec, 0x26, 0xfe, 0xb6, 0x0a,
+ 0x96, 0xc9, 0x6b, 0x59, 0xcd, 0x38, 0xdb, 0xd2, 0x37, 0x22, 0x61, 0x1e, 0x15, 0x36, 0x96, 0x92,
+ 0xf6, 0xbe, 0x03, 0xa1, 0xb1, 0x5a, 0x64, 0x09, 0xde, 0x9e, 0xfb, 0xcb, 0x40, 0xad, 0xf6, 0xf9,
+ 0xd6, 0x93, 0x9a, 0x48, 0x24, 0xc5, 0xb0, 0x40, 0x38, 0x4b, 0x8d, 0x39, 0x73, 0x65, 0xd6, 0x61,
+ 0x36, 0x50, 0xd3, 0x92, 0x49, 0x9e, 0xd9, 0x7c, 0xcf, 0x25, 0x0c, 0xa2, 0xea, 0x58, 0x36, 0x2f,
+ 0x16, 0x7d, 0x4a, 0x7b, 0xdc, 0x01, 0x0d, 0x35, 0x29, 0xf0, 0x7a, 0x50, 0xd9, 0x90, 0x16, 0xb7,
+ 0x76, 0x0a, 0x22, 0x83, 0xa0, 0x63, 0xb2, 0xee, 0xc0, 0x4c, 0xe0, 0x85, 0x8c, 0x0b, 0x76, 0xdc,
+ 0x56, 0x27, 0xbb, 0x6a, 0x35, 0xfc, 0x66, 0xa7, 0x26, 0x99, 0x96, 0x77, 0xbf, 0xc3, 0x56, 0x44,
+ },
+ { /* 15 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x94, 0x84, 0xdd, 0x10, 0xbd, 0x27, 0x5d, 0xb8, 0x7a, 0x48, 0x6c, 0x72, 0x76, 0xa2, 0x6e, 0xcf,
+ 0xeb, 0xcb, 0x79, 0x20, 0xb9, 0x4e, 0xba, 0xb3, 0xf4, 0x90, 0xd8, 0xe4, 0xec, 0x87, 0xdc, 0x5d,
+ 0x7f, 0x4f, 0xa4, 0x30, 0x04, 0x69, 0xe7, 0x0b, 0x8e, 0xd8, 0xb4, 0x96, 0x9a, 0x25, 0xb2, 0x92,
+ 0x15, 0x55, 0xf2, 0x40, 0xb1, 0x9c, 0xb7, 0xa5, 0x2b, 0xe3, 0x73, 0x0b, 0x1b, 0xcd, 0x7b, 0xba,
+ 0x81, 0xd1, 0x2f, 0x50, 0x0c, 0xbb, 0xea, 0x1d, 0x51, 0xab, 0x1f, 0x79, 0x6d, 0x6f, 0x15, 0x75,
+ 0xfe, 0x9e, 0x8b, 0x60, 0x08, 0xd2, 0x0d, 0x16, 0xdf, 0x73, 0xab, 0xef, 0xf7, 0x4a, 0xa7, 0xe7,
+ 0x6a, 0x1a, 0x56, 0x70, 0xb5, 0xf5, 0x50, 0xae, 0xa5, 0x3b, 0xc7, 0x9d, 0x81, 0xe8, 0xc9, 0x28,
+ 0x2a, 0xaa, 0x27, 0x80, 0xa1, 0xfb, 0xad, 0x89, 0x56, 0x05, 0xe6, 0x16, 0x36, 0x59, 0xf6, 0xb7,
+ 0xbe, 0x2e, 0xfa, 0x90, 0x1c, 0xdc, 0xf0, 0x31, 0x2c, 0x4d, 0x8a, 0x64, 0x40, 0xfb, 0x98, 0x78,
+ 0xc1, 0x61, 0x5e, 0xa0, 0x18, 0xb5, 0x17, 0x3a, 0xa2, 0x95, 0x3e, 0xf2, 0xda, 0xde, 0x2a, 0xea,
+ 0x55, 0xe5, 0x83, 0xb0, 0xa5, 0x92, 0x4a, 0x82, 0xd8, 0xdd, 0x52, 0x80, 0xac, 0x7c, 0x44, 0x25,
+ 0x3f, 0xff, 0xd5, 0xc0, 0x10, 0x67, 0x1a, 0x2c, 0x7d, 0xe6, 0x95, 0x1d, 0x2d, 0x94, 0x8d, 0x0d,
+ 0xab, 0x7b, 0x08, 0xd0, 0xad, 0x40, 0x47, 0x94, 0x07, 0xae, 0xf9, 0x6f, 0x5b, 0x36, 0xe3, 0xc2,
+ 0xd4, 0x34, 0xac, 0xe0, 0xa9, 0x29, 0xa0, 0x9f, 0x89, 0x76, 0x4d, 0xf9, 0xc1, 0x13, 0x51, 0x50,
+ 0x40, 0xb0, 0x71, 0xf0, 0x14, 0x0e, 0xfd, 0x27, 0xf3, 0x3e, 0x21, 0x8b, 0xb7, 0xb1, 0x3f, 0x9f,
+ 0x54, 0x97, 0x4e, 0xc3, 0x81, 0x35, 0x99, 0xd1, 0xac, 0x0a, 0x0f, 0x2c, 0x6c, 0xb2, 0x2f, 0xad,
+ 0xc0, 0x13, 0x93, 0xd3, 0x3c, 0x12, 0xc4, 0x69, 0xd6, 0x42, 0x63, 0x5e, 0x1a, 0x10, 0x41, 0x62,
+ 0xbf, 0x5c, 0x37, 0xe3, 0x38, 0x7b, 0x23, 0x62, 0x58, 0x9a, 0xd7, 0xc8, 0x80, 0x35, 0xf3, 0xf0,
+ 0x2b, 0xd8, 0xea, 0xf3, 0x85, 0x5c, 0x7e, 0xda, 0x22, 0xd2, 0xbb, 0xba, 0xf6, 0x97, 0x9d, 0x3f,
+ 0x41, 0xc2, 0xbc, 0x83, 0x30, 0xa9, 0x2e, 0x74, 0x87, 0xe9, 0x7c, 0x27, 0x77, 0x7f, 0x54, 0x17,
+ 0xd5, 0x46, 0x61, 0x93, 0x8d, 0x8e, 0x73, 0xcc, 0xfd, 0xa1, 0x10, 0x55, 0x01, 0xdd, 0x3a, 0xd8,
+ 0xaa, 0x09, 0xc5, 0xa3, 0x89, 0xe7, 0x94, 0xc7, 0x73, 0x79, 0xa4, 0xc3, 0x9b, 0xf8, 0x88, 0x4a,
+ 0x3e, 0x8d, 0x18, 0xb3, 0x34, 0xc0, 0xc9, 0x7f, 0x09, 0x31, 0xc8, 0xb1, 0xed, 0x5a, 0xe6, 0x85,
+ 0x7e, 0x3d, 0x69, 0x43, 0x20, 0xce, 0x34, 0x58, 0xfa, 0x0f, 0xe9, 0x3a, 0x5a, 0xeb, 0xd9, 0x1a,
+ 0xea, 0xb9, 0xb4, 0x53, 0x9d, 0xe9, 0x69, 0xe0, 0x80, 0x47, 0x85, 0x48, 0x2c, 0x49, 0xb7, 0xd5,
+ 0x95, 0xf6, 0x10, 0x63, 0x99, 0x80, 0x8e, 0xeb, 0x0e, 0x9f, 0x31, 0xde, 0xb6, 0x6c, 0x05, 0x47,
+ 0x01, 0x72, 0xcd, 0x73, 0x24, 0xa7, 0xd3, 0x53, 0x74, 0xd7, 0x5d, 0xac, 0xc0, 0xce, 0x6b, 0x88,
+ 0x6b, 0x68, 0x9b, 0x03, 0x91, 0x52, 0x83, 0xfd, 0xd1, 0xec, 0x9a, 0x31, 0x41, 0x26, 0xa2, 0xa0,
+ 0xff, 0xec, 0x46, 0x13, 0x2c, 0x75, 0xde, 0x45, 0xab, 0xa4, 0xf6, 0x43, 0x37, 0x84, 0xcc, 0x6f,
+ 0x80, 0xa3, 0xe2, 0x23, 0x28, 0x1c, 0x39, 0x4e, 0x25, 0x7c, 0x42, 0xd5, 0xad, 0xa1, 0x7e, 0xfd,
+ 0x14, 0x27, 0x3f, 0x33, 0x95, 0x3b, 0x64, 0xf6, 0x5f, 0x34, 0x2e, 0xa7, 0xdb, 0x03, 0x10, 0x32,
+ 0xa8, 0xed, 0x9c, 0x45, 0xc1, 0x6a, 0xf1, 0x61, 0x9b, 0x14, 0x1e, 0x58, 0xd8, 0xa7, 0x5e, 0x99,
+ 0x3c, 0x69, 0x41, 0x55, 0x7c, 0x4d, 0xac, 0xd9, 0xe1, 0x5c, 0x72, 0x2a, 0xae, 0x05, 0x30, 0x56,
+ 0x43, 0x26, 0xe5, 0x65, 0x78, 0x24, 0x4b, 0xd2, 0x6f, 0x84, 0xc6, 0xbc, 0x34, 0x20, 0x82, 0xc4,
+ 0xd7, 0xa2, 0x38, 0x75, 0xc5, 0x03, 0x16, 0x6a, 0x15, 0xcc, 0xaa, 0xce, 0x42, 0x82, 0xec, 0x0b,
+ 0xbd, 0xb8, 0x6e, 0x05, 0x70, 0xf6, 0x46, 0xc4, 0xb0, 0xf7, 0x6d, 0x53, 0xc3, 0x6a, 0x25, 0x23,
+ 0x29, 0x3c, 0xb3, 0x15, 0xcd, 0xd1, 0x1b, 0x7c, 0xca, 0xbf, 0x01, 0x21, 0xb5, 0xc8, 0x4b, 0xec,
+ 0x56, 0x73, 0x17, 0x25, 0xc9, 0xb8, 0xfc, 0x77, 0x44, 0x67, 0xb5, 0xb7, 0x2f, 0xed, 0xf9, 0x7e,
+ 0xc2, 0xf7, 0xca, 0x35, 0x74, 0x9f, 0xa1, 0xcf, 0x3e, 0x2f, 0xd9, 0xc5, 0x59, 0x4f, 0x97, 0xb1,
+ 0x82, 0x47, 0xbb, 0xc5, 0x60, 0x91, 0x5c, 0xe8, 0xcd, 0x11, 0xf8, 0x4e, 0xee, 0xfe, 0xa8, 0x2e,
+ 0x16, 0xc3, 0x66, 0xd5, 0xdd, 0xb6, 0x01, 0x50, 0xb7, 0x59, 0x94, 0x3c, 0x98, 0x5c, 0xc6, 0xe1,
+ 0x69, 0x8c, 0xc2, 0xe5, 0xd9, 0xdf, 0xe6, 0x5b, 0x39, 0x81, 0x20, 0xaa, 0x02, 0x79, 0x74, 0x73,
+ 0xfd, 0x08, 0x1f, 0xf5, 0x64, 0xf8, 0xbb, 0xe3, 0x43, 0xc9, 0x4c, 0xd8, 0x74, 0xdb, 0x1a, 0xbc,
+ 0x97, 0x12, 0x49, 0x85, 0xd1, 0x0d, 0xeb, 0x4d, 0xe6, 0xf2, 0x8b, 0x45, 0xf5, 0x33, 0xd3, 0x94,
+ 0x03, 0x96, 0x94, 0x95, 0x6c, 0x2a, 0xb6, 0xf5, 0x9c, 0xba, 0xe7, 0x37, 0x83, 0x91, 0xbd, 0x5b,
+ 0x7c, 0xd9, 0x30, 0xa5, 0x68, 0x43, 0x51, 0xfe, 0x12, 0x62, 0x53, 0xa1, 0x19, 0xb4, 0x0f, 0xc9,
+ 0xe8, 0x5d, 0xed, 0xb5, 0xd5, 0x64, 0x0c, 0x46, 0x68, 0x2a, 0x3f, 0xd3, 0x6f, 0x16, 0x61, 0x06,
+ 0xfc, 0x7a, 0xd2, 0x86, 0x40, 0x5f, 0x68, 0xb0, 0x37, 0x1e, 0x11, 0x74, 0xb4, 0x15, 0x71, 0x34,
+ 0x68, 0xfe, 0x0f, 0x96, 0xfd, 0x78, 0x35, 0x08, 0x4d, 0x56, 0x7d, 0x06, 0xc2, 0xb7, 0x1f, 0xfb,
+ 0x17, 0xb1, 0xab, 0xa6, 0xf9, 0x11, 0xd2, 0x03, 0xc3, 0x8e, 0xc9, 0x90, 0x58, 0x92, 0xad, 0x69,
+ 0x83, 0x35, 0x76, 0xb6, 0x44, 0x36, 0x8f, 0xbb, 0xb9, 0xc6, 0xa5, 0xe2, 0x2e, 0x30, 0xc3, 0xa6,
+ 0xe9, 0x2f, 0x20, 0xc6, 0xf1, 0xc3, 0xdf, 0x15, 0x1c, 0xfd, 0x62, 0x7f, 0xaf, 0xd8, 0x0a, 0x8e,
+ 0x7d, 0xab, 0xfd, 0xd6, 0x4c, 0xe4, 0x82, 0xad, 0x66, 0xb5, 0x0e, 0x0d, 0xd9, 0x7a, 0x64, 0x41,
+ 0x02, 0xe4, 0x59, 0xe6, 0x48, 0x8d, 0x65, 0xa6, 0xe8, 0x6d, 0xba, 0x9b, 0x43, 0x5f, 0xd6, 0xd3,
+ 0x96, 0x60, 0x84, 0xf6, 0xf5, 0xaa, 0x38, 0x1e, 0x92, 0x25, 0xd6, 0xe9, 0x35, 0xfd, 0xb8, 0x1c,
+ 0xd6, 0xd0, 0xf5, 0x06, 0xe1, 0xa4, 0xc5, 0x39, 0x61, 0x1b, 0xf7, 0x62, 0x82, 0x4c, 0x87, 0x83,
+ 0x42, 0x54, 0x28, 0x16, 0x5c, 0x83, 0x98, 0x81, 0x1b, 0x53, 0x9b, 0x10, 0xf4, 0xee, 0xe9, 0x4c,
+ 0x3d, 0x1b, 0x8c, 0x26, 0x58, 0xea, 0x7f, 0x8a, 0x95, 0x8b, 0x2f, 0x86, 0x6e, 0xcb, 0x5b, 0xde,
+ 0xa9, 0x9f, 0x51, 0x36, 0xe5, 0xcd, 0x22, 0x32, 0xef, 0xc3, 0x43, 0xf4, 0x18, 0x69, 0x35, 0x11,
+ 0xc3, 0x85, 0x07, 0x46, 0x50, 0x38, 0x72, 0x9c, 0x4a, 0xf8, 0x84, 0x69, 0x99, 0x81, 0xfc, 0x39,
+ 0x57, 0x01, 0xda, 0x56, 0xed, 0x1f, 0x2f, 0x24, 0x30, 0xb0, 0xe8, 0x1b, 0xef, 0x23, 0x92, 0xf6,
+ 0x28, 0x4e, 0x7e, 0x66, 0xe9, 0x76, 0xc8, 0x2f, 0xbe, 0x68, 0x5c, 0x8d, 0x75, 0x06, 0x20, 0x64,
+ 0xbc, 0xca, 0xa3, 0x76, 0x54, 0x51, 0x95, 0x97, 0xc4, 0x20, 0x30, 0xff, 0x03, 0xa4, 0x4e, 0xab,
+ 0x93, 0x19, 0xfb, 0x8a, 0x41, 0xd4, 0x21, 0xc2, 0xf5, 0x28, 0x3c, 0xb0, 0x73, 0x8d, 0xbc, 0xf1,
+ 0x07, 0x9d, 0x26, 0x9a, 0xfc, 0xf3, 0x7c, 0x7a, 0x8f, 0x60, 0x50, 0xc2, 0x05, 0x2f, 0xd2, 0x3e,
+ 0x78, 0xd2, 0x82, 0xaa, 0xf8, 0x9a, 0x9b, 0x71, 0x01, 0xb8, 0xe4, 0x54, 0x9f, 0x0a, 0x60, 0xac,
+ 0xec, 0x56, 0x5f, 0xba, 0x45, 0xbd, 0xc6, 0xc9, 0x7b, 0xf0, 0x88, 0x26, 0xe9, 0xa8, 0x0e, 0x63,
+ 0x86, 0x4c, 0x09, 0xca, 0xf0, 0x48, 0x96, 0x67, 0xde, 0xcb, 0x4f, 0xbb, 0x68, 0x40, 0xc7, 0x4b,
+ 0x12, 0xc8, 0xd4, 0xda, 0x4d, 0x6f, 0xcb, 0xdf, 0xa4, 0x83, 0x23, 0xc9, 0x1e, 0xe2, 0xa9, 0x84,
+ 0x6d, 0x87, 0x70, 0xea, 0x49, 0x06, 0x2c, 0xd4, 0x2a, 0x5b, 0x97, 0x5f, 0x84, 0xc7, 0x1b, 0x16,
+ 0xf9, 0x03, 0xad, 0xfa, 0xf4, 0x21, 0x71, 0x6c, 0x50, 0x13, 0xfb, 0x2d, 0xf2, 0x65, 0x75, 0xd9,
+ 0xb9, 0xb3, 0xdc, 0x0a, 0xe0, 0x2f, 0x8c, 0x4b, 0xa3, 0x2d, 0xda, 0xa6, 0x45, 0xd4, 0x4a, 0x46,
+ 0x2d, 0x37, 0x01, 0x1a, 0x5d, 0x08, 0xd1, 0xf3, 0xd9, 0x65, 0xb6, 0xd4, 0x33, 0x76, 0x24, 0x89,
+ 0x52, 0x78, 0xa5, 0x2a, 0x59, 0x61, 0x36, 0xf8, 0x57, 0xbd, 0x02, 0x42, 0xa9, 0x53, 0x96, 0x1b,
+ 0xc6, 0xfc, 0x78, 0x3a, 0xe4, 0x46, 0x6b, 0x40, 0x2d, 0xf5, 0x6e, 0x30, 0xdf, 0xf1, 0xf8, 0xd4,
+ 0xac, 0xe6, 0x2e, 0x4a, 0x51, 0xb3, 0x3b, 0xee, 0x88, 0xce, 0xa9, 0xad, 0x5e, 0x19, 0x31, 0xfc,
+ 0x38, 0x62, 0xf3, 0x5a, 0xec, 0x94, 0x66, 0x56, 0xf2, 0x86, 0xc5, 0xdf, 0x28, 0xbb, 0x5f, 0x33,
+ 0x47, 0x2d, 0x57, 0x6a, 0xe8, 0xfd, 0x81, 0x5d, 0x7c, 0x5e, 0x71, 0x49, 0xb2, 0x9e, 0xed, 0xa1,
+ 0xd3, 0xa9, 0x8a, 0x7a, 0x55, 0xda, 0xdc, 0xe5, 0x06, 0x16, 0x1d, 0x3b, 0xc4, 0x3c, 0x83, 0x6e,
+ 0xc7, 0x8e, 0xb5, 0x49, 0xc0, 0xe1, 0xb8, 0x13, 0x59, 0x22, 0x33, 0x9c, 0x1f, 0x3f, 0x93, 0x5c,
+ 0x53, 0x0a, 0x68, 0x59, 0x7d, 0xc6, 0xe5, 0xab, 0x23, 0x6a, 0x5f, 0xee, 0x69, 0x9d, 0xfd, 0x93,
+ 0x2c, 0x45, 0xcc, 0x69, 0x79, 0xaf, 0x02, 0xa0, 0xad, 0xb2, 0xeb, 0x78, 0xf3, 0xb8, 0x4f, 0x01,
+ 0xb8, 0xc1, 0x11, 0x79, 0xc4, 0x88, 0x5f, 0x18, 0xd7, 0xfa, 0x87, 0x0a, 0x85, 0x1a, 0x21, 0xce,
+ 0xd2, 0xdb, 0x47, 0x09, 0x71, 0x7d, 0x0f, 0xb6, 0x72, 0xc1, 0x40, 0x97, 0x04, 0xf2, 0xe8, 0xe6,
+ 0x46, 0x5f, 0x9a, 0x19, 0xcc, 0x5a, 0x52, 0x0e, 0x08, 0x89, 0x2c, 0xe5, 0x72, 0x50, 0x86, 0x29,
+ 0x39, 0x10, 0x3e, 0x29, 0xc8, 0x33, 0xb5, 0x05, 0x86, 0x51, 0x98, 0x73, 0xe8, 0x75, 0x34, 0xbb,
+ 0xad, 0x94, 0xe3, 0x39, 0x75, 0x14, 0xe8, 0xbd, 0xfc, 0x19, 0xf4, 0x01, 0x9e, 0xd7, 0x5a, 0x74,
+ 0xed, 0x24, 0x92, 0xc9, 0x61, 0x1a, 0x15, 0x9a, 0x0f, 0x27, 0xd5, 0x8a, 0x29, 0x66, 0x65, 0xeb,
+ 0x79, 0xa0, 0x4f, 0xd9, 0xdc, 0x3d, 0x48, 0x22, 0x75, 0x6f, 0xb9, 0xf8, 0x5f, 0xc4, 0x0b, 0x24,
+ 0x06, 0xef, 0xeb, 0xe9, 0xd8, 0x54, 0xaf, 0x29, 0xfb, 0xb7, 0x0d, 0x6e, 0xc5, 0xe1, 0xb9, 0xb6,
+ 0x92, 0x6b, 0x36, 0xf9, 0x65, 0x73, 0xf2, 0x91, 0x81, 0xff, 0x61, 0x1c, 0xb3, 0x43, 0xd7, 0x79,
+ 0xf8, 0x71, 0x60, 0x89, 0xd0, 0x86, 0xa2, 0x3f, 0x24, 0xc4, 0xa6, 0x81, 0x32, 0xab, 0x1e, 0x51,
+ 0x6c, 0xf5, 0xbd, 0x99, 0x6d, 0xa1, 0xff, 0x87, 0x5e, 0x8c, 0xca, 0xf3, 0x44, 0x09, 0x70, 0x9e,
+ 0x13, 0xba, 0x19, 0xa9, 0x69, 0xc8, 0x18, 0x8c, 0xd0, 0x54, 0x7e, 0x65, 0xde, 0x2c, 0xc2, 0x0c,
+ 0x87, 0x3e, 0xc4, 0xb9, 0xd4, 0xef, 0x45, 0x34, 0xaa, 0x1c, 0x12, 0x17, 0xa8, 0x8e, 0xac, 0xc3,
+ 0x3b, 0xf4, 0x67, 0xcf, 0x80, 0xbe, 0xd0, 0xa3, 0x6e, 0x3c, 0x22, 0xe8, 0xab, 0x2a, 0xe2, 0x68,
+ 0xaf, 0x70, 0xba, 0xdf, 0x3d, 0x99, 0x8d, 0x1b, 0x14, 0x74, 0x4e, 0x9a, 0xdd, 0x88, 0x8c, 0xa7,
+ 0xd0, 0x3f, 0x1e, 0xef, 0x39, 0xf0, 0x6a, 0x10, 0x9a, 0xac, 0xfa, 0x0c, 0x47, 0xad, 0x3e, 0x35,
+ 0x44, 0xbb, 0xc3, 0xff, 0x84, 0xd7, 0x37, 0xa8, 0xe0, 0xe4, 0x96, 0x7e, 0x31, 0x0f, 0x50, 0xfa,
+ 0x2e, 0xa1, 0x95, 0x8f, 0x31, 0x22, 0x67, 0x06, 0x45, 0xdf, 0x51, 0xe3, 0xb0, 0xe7, 0x99, 0xd2,
+ 0xba, 0x25, 0x48, 0x9f, 0x8c, 0x05, 0x3a, 0xbe, 0x3f, 0x97, 0x3d, 0x91, 0xc6, 0x45, 0xf7, 0x1d,
+ 0xc5, 0x6a, 0xec, 0xaf, 0x88, 0x6c, 0xdd, 0xb5, 0xb1, 0x4f, 0x89, 0x07, 0x5c, 0x60, 0x45, 0x8f,
+ 0x51, 0xee, 0x31, 0xbf, 0x35, 0x4b, 0x80, 0x0d, 0xcb, 0x07, 0xe5, 0x75, 0x2a, 0xc2, 0x2b, 0x40,
+ 0x11, 0x5e, 0x40, 0x4f, 0x21, 0x45, 0x7d, 0x2a, 0x38, 0x39, 0xc4, 0xfe, 0x9d, 0x73, 0x14, 0xdf,
+ 0x85, 0xda, 0x9d, 0x5f, 0x9c, 0x62, 0x20, 0x92, 0x42, 0x71, 0xa8, 0x8c, 0xeb, 0xd1, 0x7a, 0x10,
+ 0xfa, 0x95, 0x39, 0x6f, 0x98, 0x0b, 0xc7, 0x99, 0xcc, 0xa9, 0x1c, 0x1a, 0x71, 0xf4, 0xc8, 0x82,
+ 0x6e, 0x11, 0xe4, 0x7f, 0x25, 0x2c, 0x9a, 0x21, 0xb6, 0xe1, 0x70, 0x68, 0x07, 0x56, 0xa6, 0x4d,
+ 0x04, 0x0b, 0xb2, 0x0f, 0x90, 0xd9, 0xca, 0x8f, 0x13, 0xda, 0xb7, 0xf5, 0x86, 0xbe, 0x6f, 0x65,
+ 0x90, 0x8f, 0x6f, 0x1f, 0x2d, 0xfe, 0x97, 0x37, 0x69, 0x92, 0xdb, 0x87, 0xf0, 0x1c, 0x01, 0xaa,
+ 0xef, 0xc0, 0xcb, 0x2f, 0x29, 0x97, 0x70, 0x3c, 0xe7, 0x4a, 0x6f, 0x11, 0x6a, 0x39, 0xb3, 0x38,
+ 0x7b, 0x44, 0x16, 0x3f, 0x94, 0xb0, 0x2d, 0x84, 0x9d, 0x02, 0x03, 0x63, 0x1c, 0x9b, 0xdd, 0xf7,
+ 0x6f, 0x63, 0x29, 0x0c, 0x01, 0x8b, 0x49, 0x72, 0xc2, 0x36, 0x2d, 0xc4, 0xc7, 0x98, 0xcd, 0xc5,
+ 0xfb, 0xe7, 0xf4, 0x1c, 0xbc, 0xac, 0x14, 0xca, 0xb8, 0x7e, 0x41, 0xb6, 0xb1, 0x3a, 0xa3, 0x0a,
+ 0x84, 0xa8, 0x50, 0x2c, 0xb8, 0xc5, 0xf3, 0xc1, 0x36, 0xa6, 0xf5, 0x20, 0x2b, 0x1f, 0x11, 0x98,
+ 0x10, 0x2c, 0x8d, 0x3c, 0x05, 0xe2, 0xae, 0x79, 0x4c, 0xee, 0x99, 0x52, 0x5d, 0xbd, 0x7f, 0x57,
+ 0x7a, 0x36, 0xdb, 0x4c, 0xb0, 0x17, 0xfe, 0xd7, 0xe9, 0xd5, 0x5e, 0xcf, 0xdc, 0x55, 0xb6, 0x7f,
+ 0xee, 0xb2, 0x06, 0x5c, 0x0d, 0x30, 0xa3, 0x6f, 0x93, 0x9d, 0x32, 0xbd, 0xaa, 0xf7, 0xd8, 0xb0,
+ 0x91, 0xfd, 0xa2, 0x6c, 0x09, 0x59, 0x44, 0x64, 0x1d, 0x45, 0x86, 0x2b, 0x30, 0xd2, 0x6a, 0x22,
+ 0x05, 0x79, 0x7f, 0x7c, 0xb4, 0x7e, 0x19, 0xdc, 0x67, 0x0d, 0xea, 0x59, 0x46, 0x70, 0x04, 0xed,
+ 0x45, 0xc9, 0x0e, 0x8c, 0xa0, 0x70, 0xe4, 0xfb, 0x94, 0x33, 0xcb, 0xd2, 0xf1, 0xc1, 0x3b, 0x72,
+ 0xd1, 0x4d, 0xd3, 0x9c, 0x1d, 0x57, 0xb9, 0x43, 0xee, 0x7b, 0xa7, 0xa0, 0x87, 0x63, 0x55, 0xbd,
+ 0xae, 0x02, 0x77, 0xac, 0x19, 0x3e, 0x5e, 0x48, 0x60, 0xa3, 0x13, 0x36, 0x1d, 0x46, 0xe7, 0x2f,
+ 0x3a, 0x86, 0xaa, 0xbc, 0xa4, 0x19, 0x03, 0xf0, 0x1a, 0xeb, 0x7f, 0x44, 0x6b, 0xe4, 0x89, 0xe0,
+ 0x50, 0x9c, 0xfc, 0xcc, 0x11, 0xec, 0x53, 0x5e, 0xbf, 0xd0, 0xb8, 0xd9, 0xea, 0x0c, 0x40, 0xc8,
+ 0xc4, 0x18, 0x21, 0xdc, 0xac, 0xcb, 0x0e, 0xe6, 0xc5, 0x98, 0xd4, 0xab, 0x9c, 0xae, 0x2e, 0x07,
+ 0xbb, 0x57, 0x85, 0xec, 0xa8, 0xa2, 0xe9, 0xed, 0x4b, 0x40, 0x60, 0x3d, 0x06, 0x8b, 0x9c, 0x95,
+ 0x2f, 0xd3, 0x58, 0xfc, 0x15, 0x85, 0xb4, 0x55, 0x31, 0x08, 0x0c, 0x4f, 0x70, 0x29, 0xf2, 0x5a,
+ 0xe5, 0x32, 0x35, 0xd7, 0x82, 0x6b, 0x42, 0x47, 0x29, 0x50, 0x78, 0xa3, 0xe6, 0xd9, 0xbb, 0x21,
+ 0x71, 0xb6, 0xe8, 0xc7, 0x3f, 0x4c, 0x1f, 0xff, 0x53, 0x18, 0x14, 0xd1, 0x90, 0x7b, 0xd5, 0xee,
+ 0x0e, 0xf9, 0x4c, 0xf7, 0x3b, 0x25, 0xf8, 0xf4, 0xdd, 0xc0, 0xa0, 0x47, 0x0a, 0x5e, 0x67, 0x7c,
+ 0x9a, 0x7d, 0x91, 0xe7, 0x86, 0x02, 0xa5, 0x4c, 0xa7, 0x88, 0xcc, 0x35, 0x7c, 0xfc, 0x09, 0xb3,
+ 0xf0, 0x67, 0xc7, 0x97, 0x33, 0xf7, 0xf5, 0xe2, 0x02, 0xb3, 0x0b, 0xa8, 0xfd, 0x14, 0xc0, 0x9b,
+ 0x64, 0xe3, 0x1a, 0x87, 0x8e, 0xd0, 0xa8, 0x5a, 0x78, 0xfb, 0x67, 0xda, 0x8b, 0xb6, 0xae, 0x54,
+ 0x1b, 0xac, 0xbe, 0xb7, 0x8a, 0xb9, 0x4f, 0x51, 0xf6, 0x23, 0xd3, 0x4c, 0x11, 0x93, 0x1c, 0xc6,
+ 0x8f, 0x28, 0x63, 0xa7, 0x37, 0x9e, 0x12, 0xe9, 0x8c, 0x6b, 0xbf, 0x3e, 0x67, 0x31, 0x72, 0x09,
+ 0xcf, 0x98, 0x12, 0x57, 0x23, 0x90, 0xef, 0xce, 0x7f, 0x55, 0x9e, 0xb5, 0xd0, 0x80, 0x4d, 0x96,
+ 0x5b, 0x1c, 0xcf, 0x47, 0x9e, 0xb7, 0xb2, 0x76, 0x05, 0x1d, 0xf2, 0xc7, 0xa6, 0x22, 0x23, 0x59,
+ 0x24, 0x53, 0x6b, 0x77, 0x9a, 0xde, 0x55, 0x7d, 0x8b, 0xc5, 0x46, 0x51, 0x3c, 0x07, 0x91, 0xcb,
+ 0xb0, 0xd7, 0xb6, 0x67, 0x27, 0xf9, 0x08, 0xc5, 0xf1, 0x8d, 0x2a, 0x23, 0x4a, 0xa5, 0xff, 0x04,
+ 0xda, 0xcd, 0xe0, 0x17, 0x92, 0x0c, 0x58, 0x6b, 0x54, 0xb6, 0xed, 0xbe, 0xcb, 0x4d, 0x36, 0x2c,
+ 0x4e, 0x49, 0x3d, 0x07, 0x2f, 0x2b, 0x05, 0xd3, 0x2e, 0xfe, 0x81, 0xcc, 0xbd, 0xef, 0x58, 0xe3,
+ 0x31, 0x06, 0x99, 0x37, 0x2b, 0x42, 0xe2, 0xd8, 0xa0, 0x26, 0x35, 0x5a, 0x27, 0xca, 0xea, 0x71,
+ 0xa5, 0x82, 0x44, 0x27, 0x96, 0x65, 0xbf, 0x60, 0xda, 0x6e, 0x59, 0x28, 0x51, 0x68, 0x84, 0xbe,
+ 0xb1, 0xa5, 0x7b, 0x14, 0x03, 0x5e, 0xdb, 0x96, 0x85, 0x5a, 0x77, 0x8f, 0x8a, 0x6b, 0x94, 0x8c,
+ 0x25, 0x21, 0xa6, 0x04, 0xbe, 0x79, 0x86, 0x2e, 0xff, 0x12, 0x1b, 0xfd, 0xfc, 0xc9, 0xfa, 0x43,
+ 0x5a, 0x6e, 0x02, 0x34, 0xba, 0x10, 0x61, 0x25, 0x71, 0xca, 0xaf, 0x6b, 0x66, 0xec, 0x48, 0xd1,
+ 0xce, 0xea, 0xdf, 0x24, 0x07, 0x37, 0x3c, 0x9d, 0x0b, 0x82, 0xc3, 0x19, 0x10, 0x4e, 0x26, 0x1e,
+ 0xa4, 0xf0, 0x89, 0x54, 0xb2, 0xc2, 0x6c, 0x33, 0xae, 0xb9, 0x04, 0x84, 0x91, 0xa6, 0xef, 0x36,
+ 0x30, 0x74, 0x54, 0x44, 0x0f, 0xe5, 0x31, 0x8b, 0xd4, 0xf1, 0x68, 0xf6, 0xe7, 0x04, 0x81, 0xf9,
+ 0x4f, 0x3b, 0xf0, 0x74, 0x0b, 0x8c, 0xd6, 0x80, 0x5a, 0x29, 0xdc, 0x60, 0x7d, 0x21, 0x33, 0x6b,
+ 0xdb, 0xbf, 0x2d, 0x64, 0xb6, 0xab, 0x8b, 0x38, 0x20, 0x61, 0xb0, 0x12, 0x0b, 0x83, 0x5d, 0xa4,
+ 0x9b, 0x0f, 0x5c, 0x94, 0xa2, 0xa5, 0x76, 0x1f, 0xd3, 0x5f, 0x91, 0x99, 0xbc, 0x32, 0x62, 0x3b,
+ 0x0f, 0x8b, 0x81, 0x84, 0x1f, 0x82, 0x2b, 0xa7, 0xa9, 0x17, 0xfd, 0xeb, 0xca, 0x90, 0x0c, 0xf4,
+ 0x70, 0xc4, 0x25, 0xb4, 0x1b, 0xeb, 0xcc, 0xac, 0x27, 0xcf, 0x49, 0x7d, 0x50, 0xb5, 0xbe, 0x66,
+ 0xe4, 0x40, 0xf8, 0xa4, 0xa6, 0xcc, 0x91, 0x14, 0x5d, 0x87, 0x25, 0x0f, 0x26, 0x17, 0xd0, 0xa9,
+ 0x8e, 0x5a, 0xae, 0xd4, 0x13, 0x39, 0xc1, 0xba, 0xf8, 0xbc, 0xe2, 0x92, 0xa7, 0xff, 0x19, 0x81,
+ 0x1a, 0xde, 0x73, 0xc4, 0xae, 0x1e, 0x9c, 0x02, 0x82, 0xf4, 0x8e, 0xe0, 0xd1, 0x5d, 0x77, 0x4e,
+ 0x65, 0x91, 0xd7, 0xf4, 0xaa, 0x77, 0x7b, 0x09, 0x0c, 0x2c, 0x3a, 0x76, 0x4b, 0x78, 0xc5, 0xdc,
+ 0xf1, 0x15, 0x0a, 0xe4, 0x17, 0x50, 0x26, 0xb1, 0x76, 0x64, 0x56, 0x04, 0x3d, 0xda, 0xab, 0x13,
+ 0x4d, 0xdf, 0xa9, 0x92, 0x43, 0x01, 0xb3, 0x26, 0xb2, 0x44, 0x66, 0xfb, 0x3e, 0x7e, 0xe5, 0xb8,
+ 0xd9, 0x5b, 0x74, 0x82, 0xfe, 0x26, 0xee, 0x9e, 0xc8, 0x0c, 0x0a, 0x89, 0x48, 0xdc, 0x8b, 0x77,
+ 0xa6, 0x14, 0xd0, 0xb2, 0xfa, 0x4f, 0x09, 0x95, 0x46, 0xd4, 0xbe, 0x1f, 0xd2, 0xf9, 0x39, 0xe5,
+ 0x32, 0x90, 0x0d, 0xa2, 0x47, 0x68, 0x54, 0x2d, 0x3c, 0x9c, 0xd2, 0x6d, 0xa4, 0x5b, 0x57, 0x2a,
+ 0x58, 0x8a, 0x5b, 0xd2, 0xf2, 0x9d, 0x04, 0x83, 0x99, 0xa7, 0x15, 0xf0, 0x25, 0xb3, 0x9e, 0x02,
+ 0xcc, 0x0e, 0x86, 0xc2, 0x4f, 0xba, 0x59, 0x3b, 0xe3, 0xef, 0x79, 0x82, 0x53, 0x11, 0xf0, 0xcd,
+ 0xb3, 0x41, 0x22, 0xf2, 0x4b, 0xd3, 0xbe, 0x30, 0x6d, 0x37, 0xcd, 0x14, 0xc9, 0x34, 0x42, 0x5f,
+ 0x27, 0xc5, 0xff, 0xe2, 0xf6, 0xf4, 0xe3, 0x88, 0x17, 0x7f, 0xa1, 0x66, 0xbf, 0x96, 0x2c, 0x90,
+ 0x67, 0x75, 0x8e, 0x12, 0xe2, 0xfa, 0x1e, 0xaf, 0xe4, 0x41, 0x80, 0xed, 0x08, 0x27, 0x13, 0x0f,
+ 0xf3, 0xf1, 0x53, 0x02, 0x5f, 0xdd, 0x43, 0x17, 0x9e, 0x09, 0xec, 0x9f, 0x7e, 0x85, 0x7d, 0xc0,
+ 0x8c, 0xbe, 0xf7, 0x32, 0x5b, 0xb4, 0xa4, 0x1c, 0x10, 0xd1, 0x58, 0x09, 0xe4, 0xa0, 0xcf, 0x52,
+ 0x18, 0x3a, 0x2a, 0x22, 0xe6, 0x93, 0xf9, 0xa4, 0x6a, 0x99, 0x34, 0x7b, 0x92, 0x02, 0xa1, 0x9d,
+ 0x72, 0x20, 0x7c, 0x52, 0x53, 0x66, 0xa9, 0x0a, 0xcf, 0xa2, 0xf3, 0xe6, 0x13, 0xea, 0x68, 0xb5,
+ 0xe6, 0xa4, 0xa1, 0x42, 0xee, 0x41, 0xf4, 0xb2, 0xb5, 0xea, 0x9f, 0x94, 0x65, 0x48, 0x06, 0x7a,
+ 0x99, 0xeb, 0x05, 0x72, 0xea, 0x28, 0x13, 0xb9, 0x3b, 0x32, 0x2b, 0x02, 0xff, 0x6d, 0xb4, 0xe8,
+ 0x0d, 0x6f, 0xd8, 0x62, 0x57, 0x0f, 0x4e, 0x01, 0x41, 0x7a, 0x47, 0x70, 0x89, 0xcf, 0xda, 0x27,
+ 0x19, 0x48, 0xe7, 0x51, 0xc2, 0x34, 0x2a, 0xf7, 0x1e, 0x4e, 0x69, 0xd7, 0x52, 0xcc, 0xca, 0x15,
+ 0x8d, 0xcc, 0x3a, 0x41, 0x7f, 0x13, 0x77, 0x4f, 0x64, 0x06, 0x05, 0xa5, 0x24, 0x6e, 0xa4, 0xda,
+ 0xf2, 0x83, 0x9e, 0x71, 0x7b, 0x7a, 0x90, 0x44, 0xea, 0xde, 0xb1, 0x33, 0xbe, 0x4b, 0x16, 0x48,
+ 0x66, 0x07, 0x43, 0x61, 0xc6, 0x5d, 0xcd, 0xfc, 0x90, 0x96, 0xdd, 0x41, 0xc8, 0xe9, 0x78, 0x87,
+ 0x0c, 0x1d, 0x15, 0x11, 0x73, 0xa8, 0x9d, 0x52, 0x35, 0xad, 0x1a, 0xdc, 0x49, 0x01, 0xb1, 0xaf,
+ 0x98, 0x99, 0xc8, 0x01, 0xce, 0x8f, 0xc0, 0xea, 0x4f, 0xe5, 0x76, 0xae, 0x3f, 0xa3, 0xdf, 0x60,
+ 0xe7, 0xd6, 0x6c, 0x31, 0xca, 0xe6, 0x27, 0xe1, 0xc1, 0x3d, 0xc2, 0x38, 0xa5, 0x86, 0x6d, 0xf2,
+ 0x73, 0x52, 0xb1, 0x21, 0x77, 0xc1, 0x7a, 0x59, 0xbb, 0x75, 0xae, 0x4a, 0xd3, 0x24, 0x03, 0x3d,
+ 0x33, 0xe2, 0xc0, 0xd1, 0x63, 0xcf, 0x87, 0x7e, 0x48, 0x4b, 0x8f, 0xc1, 0x64, 0x95, 0x3c, 0xa2,
+ 0xa7, 0x66, 0x1d, 0xc1, 0xde, 0xe8, 0xda, 0xc6, 0x32, 0x03, 0xe3, 0xb3, 0x12, 0x37, 0x52, 0x6d,
+ 0xd8, 0x29, 0xb9, 0xf1, 0xda, 0x81, 0x3d, 0xcd, 0xbc, 0xdb, 0x57, 0x25, 0x88, 0x12, 0xe0, 0xff,
+ 0x4c, 0xad, 0x64, 0xe1, 0x67, 0xa6, 0x60, 0x75, 0xc6, 0x93, 0x3b, 0x57, 0xfe, 0xb0, 0x8e, 0x30,
+ 0x26, 0xb7, 0x32, 0x91, 0xd2, 0x53, 0x30, 0xdb, 0x63, 0xa8, 0xfc, 0xca, 0x7f, 0x58, 0x47, 0x18,
+ 0xb2, 0x33, 0xef, 0x81, 0x6f, 0x74, 0x6d, 0x63, 0x19, 0xe0, 0x90, 0xb8, 0x09, 0xfa, 0x29, 0xd7,
+ 0xcd, 0x7c, 0x4b, 0xb1, 0x6b, 0x1d, 0x8a, 0x68, 0x97, 0x38, 0x24, 0x2e, 0x93, 0xdf, 0x9b, 0x45,
+ 0x59, 0xf8, 0x96, 0xa1, 0xd6, 0x3a, 0xd7, 0xd0, 0xed, 0x70, 0x48, 0x5c, 0xe5, 0x7d, 0xf5, 0x8a,
+ 0x76, 0x2b, 0xce, 0x5d, 0xc3, 0xbf, 0x63, 0x85, 0xdc, 0x78, 0x44, 0x13, 0x95, 0x54, 0x07, 0xd0,
+ 0xe2, 0xaf, 0x13, 0x4d, 0x7e, 0x98, 0x3e, 0x3d, 0xa6, 0x30, 0x28, 0x61, 0xe3, 0xf6, 0x69, 0x1f,
+ 0x9d, 0xe0, 0xb7, 0x7d, 0x7a, 0xf1, 0xd9, 0x36, 0x28, 0xe8, 0x9c, 0xf7, 0x79, 0xd3, 0xdb, 0x8d,
+ 0x09, 0x64, 0x6a, 0x6d, 0xc7, 0xd6, 0x84, 0x8e, 0x52, 0xa0, 0xf0, 0x85, 0x0f, 0x71, 0xb5, 0x42,
+ 0x63, 0x7e, 0x3c, 0x1d, 0x72, 0x23, 0xd4, 0x20, 0xf7, 0x9b, 0x37, 0x18, 0x8e, 0x99, 0x7c, 0x6a,
+ 0xf7, 0xfa, 0xe1, 0x0d, 0xcf, 0x04, 0x89, 0x98, 0x8d, 0xd3, 0x5b, 0x6a, 0xf8, 0x3b, 0x12, 0xa5,
+ 0x88, 0xb5, 0x45, 0x3d, 0xcb, 0x6d, 0x6e, 0x93, 0x03, 0x0b, 0xef, 0xfc, 0x62, 0x1e, 0xa0, 0x37,
+ 0x1c, 0x31, 0x98, 0x2d, 0x76, 0x4a, 0x33, 0x2b, 0x79, 0x43, 0x83, 0x8e, 0x14, 0xbc, 0xce, 0xf8,
+ 0x5c, 0x81, 0xe9, 0xdd, 0x62, 0x44, 0xce, 0x0c, 0x8a, 0x7d, 0xa2, 0x05, 0xa3, 0x0d, 0xf1, 0x67,
+ 0xc8, 0x05, 0x34, 0xcd, 0xdf, 0x63, 0x93, 0xb4, 0xf0, 0x35, 0xce, 0x77, 0xd5, 0xaf, 0x9f, 0xa8,
+ 0xb7, 0x4a, 0x90, 0xfd, 0xdb, 0x0a, 0x74, 0xbf, 0x7e, 0xed, 0x7a, 0xe1, 0x4f, 0x8a, 0x2d, 0x3a,
+ 0x23, 0xce, 0x4d, 0xed, 0x66, 0x2d, 0x29, 0x07, 0x04, 0xa5, 0x16, 0x93, 0x39, 0x28, 0x43, 0xf5,
+ 0x49, 0xd4, 0x1b, 0x9d, 0xd3, 0xd8, 0x79, 0xa9, 0xa1, 0x9e, 0xd1, 0x0e, 0xb8, 0xc0, 0x8a, 0xdd,
+ 0xdd, 0x50, 0xc6, 0x8d, 0x6e, 0xff, 0x24, 0x11, 0xdb, 0xd6, 0xbd, 0x7c, 0xce, 0x62, 0xe4, 0x12,
+ 0xa2, 0x1f, 0x62, 0xbd, 0x6a, 0x96, 0xc3, 0x1a, 0x55, 0x0e, 0x09, 0xea, 0x54, 0x47, 0x56, 0x80,
+ 0x36, 0x9b, 0xbf, 0xad, 0xd7, 0xb1, 0x9e, 0xa2, 0x2f, 0x46, 0x65, 0x98, 0x22, 0xe5, 0x38, 0x4f,
+ 0x22, 0xbc, 0x80, 0x9e, 0x42, 0x8a, 0xfa, 0x54, 0x70, 0x72, 0x4b, 0x3f, 0xf9, 0xe6, 0x28, 0x7d,
+ 0xb6, 0x38, 0x5d, 0x8e, 0xff, 0xad, 0xa7, 0xec, 0x0a, 0x3a, 0x27, 0x4d, 0x8f, 0x44, 0x46, 0xb2,
+ 0xc9, 0x77, 0xf9, 0xbe, 0xfb, 0xc4, 0x40, 0xe7, 0x84, 0xe2, 0x93, 0xdb, 0x15, 0x61, 0xf4, 0x20,
+ 0x5d, 0xf3, 0x24, 0xae, 0x46, 0xe3, 0x1d, 0x5f, 0xfe, 0xaa, 0xff, 0xa9, 0x63, 0xc3, 0x9a, 0xef,
+ 0x37, 0xe9, 0x72, 0xde, 0xf3, 0x16, 0x4d, 0xf1, 0x5b, 0x91, 0x38, 0x34, 0xe2, 0x2b, 0x53, 0xc7,
+ 0xa3, 0x6d, 0xaf, 0xce, 0x4e, 0x31, 0x10, 0x49, 0x21, 0xd9, 0x54, 0x46, 0x94, 0x89, 0x3d, 0x08,
+ 0xdc, 0x22, 0x0b, 0xfe, 0x4a, 0x58, 0xf7, 0x42, 0xaf, 0x01, 0xe0, 0xd0, 0x0e, 0xac, 0x8f, 0x9a,
+ 0x48, 0xa6, 0xd6, 0xee, 0xf7, 0x7f, 0xaa, 0xfa, 0xd5, 0x49, 0x8c, 0xa2, 0x78, 0x0e, 0xe1, 0x55,
+ 0x08, 0x16, 0xa7, 0x1e, 0xe3, 0x71, 0x57, 0xdd, 0x26, 0x77, 0xad, 0x29, 0xcf, 0xbf, 0xde, 0xca,
+ 0x9c, 0x92, 0x7a, 0x0e, 0x5e, 0x56, 0x0a, 0x65, 0x5c, 0x3f, 0xc1, 0x5b, 0xb9, 0x1d, 0xb0, 0x05,
+ 0xe3, 0xdd, 0xde, 0x3e, 0x5a, 0x3f, 0xed, 0x6e, 0xd2, 0xe7, 0x75, 0xcd, 0x23, 0x38, 0x02, 0x97,
+ 0x77, 0x59, 0x03, 0x2e, 0xe7, 0x18, 0xb0, 0xd6, 0xa8, 0xaf, 0x19, 0xbf, 0x55, 0x9a, 0x6c, 0x58,
+ 0x1d, 0x43, 0x55, 0x5e, 0x52, 0xed, 0xe0, 0x78, 0x0d, 0x94, 0xde, 0x22, 0xd4, 0x72, 0xa5, 0x70,
+ 0x89, 0xc7, 0x88, 0x4e, 0xef, 0xca, 0xbd, 0xc0, 0x77, 0xdc, 0xb2, 0x50, 0xa2, 0xd0, 0xcb, 0xbf,
+ 0xf6, 0x88, 0x2c, 0x7e, 0xeb, 0xa3, 0x5a, 0xcb, 0xf9, 0x04, 0x06, 0xc6, 0x38, 0xf5, 0x79, 0x2d,
+ 0x62, 0x0c, 0xf1, 0x6e, 0x56, 0x84, 0x07, 0x73, 0x83, 0x4c, 0x6a, 0xb4, 0x4e, 0x57, 0x17, 0xe2,
+ 0xde, 0xc6, 0x52, 0x18, 0x02, 0xd5, 0x92, 0xe4, 0x47, 0x6c, 0x5a, 0x4b, 0x4d, 0xf3, 0x59, 0x49,
+ 0x4a, 0x42, 0x8f, 0x08, 0xbf, 0xf2, 0xcf, 0x5c, 0x3d, 0x24, 0x36, 0x39, 0x3b, 0x51, 0x37, 0x86,
+ 0x35, 0x0d, 0x2b, 0x38, 0xbb, 0x9b, 0x28, 0x57, 0xb3, 0xfc, 0x82, 0xaf, 0xa1, 0x74, 0x85, 0x14,
+ 0xa1, 0x89, 0xf6, 0x28, 0x06, 0xbc, 0x75, 0xef, 0xc9, 0xb4, 0xee, 0xdd, 0xd7, 0xd6, 0xeb, 0xdb,
+ 0xcb, 0x93, 0xa0, 0x58, 0xb3, 0x49, 0x25, 0x41, 0x6c, 0x8f, 0x29, 0x40, 0x56, 0x3e, 0x22, 0xf3,
+ 0x5f, 0x17, 0x7d, 0x48, 0x0e, 0x6e, 0x78, 0xf9, 0x16, 0xc7, 0x45, 0x32, 0x20, 0x9c, 0x4c, 0x3c,
+ 0x20, 0x58, 0xd9, 0x78, 0x0a, 0x07, 0x9f, 0xf2, 0x98, 0x1f, 0xf1, 0xa4, 0xba, 0xb9, 0xfe, 0xae,
+ 0xb4, 0xdc, 0x04, 0x68, 0xb7, 0x20, 0xc2, 0x4a, 0xe2, 0x57, 0x9d, 0xd6, 0xcc, 0x1b, 0x90, 0x61,
+ 0xf4, 0x6c, 0x75, 0x98, 0xa3, 0x2e, 0x3f, 0x6d, 0x11, 0x69, 0xbc, 0x5d, 0x7b, 0xaa, 0xaf, 0xfe,
+ 0x60, 0xe8, 0xa8, 0x88, 0x1e, 0x09, 0x62, 0xd5, 0x6b, 0x21, 0xd0, 0x2f, 0x0d, 0x08, 0xc1, 0x31,
+ 0x1f, 0xa7, 0x0c, 0xb8, 0x1a, 0x60, 0x85, 0xde, 0xe5, 0xf9, 0x64, 0xb9, 0x97, 0x2d, 0x73, 0xa3,
+ 0x8b, 0x23, 0xd1, 0xa8, 0xa7, 0x47, 0xd8, 0x66, 0x9f, 0xb1, 0x08, 0xcb, 0xe1, 0x8f, 0x1d, 0x6c,
+ 0xe1, 0x39, 0x87, 0xd8, 0x12, 0xb2, 0x88, 0xc8, 0x3a, 0x8a, 0xcf, 0x56, 0x60, 0x67, 0xd4, 0x44,
+ 0x75, 0xbd, 0x5a, 0xc8, 0xaf, 0x95, 0xd5, 0x70, 0x40, 0xc2, 0xa3, 0x24, 0x16, 0xc5, 0xba, 0x8b,
+ 0x0a, 0xf2, 0xfe, 0xf8, 0xab, 0xfc, 0x32, 0x7b, 0xce, 0x1a, 0x17, 0xb2, 0x8c, 0xe0, 0x08, 0x19,
+ 0x9e, 0x76, 0x23, 0xe8, 0x16, 0xdb, 0x6f, 0xc3, 0xb4, 0x52, 0x7b, 0xc0, 0xfa, 0x42, 0x66, 0xd6,
+ 0x8a, 0x51, 0x1c, 0xdb, 0x83, 0xe0, 0x0b, 0x35, 0xeb, 0x66, 0x55, 0x67, 0x21, 0x41, 0x76, 0xe4,
+ 0x1e, 0xd5, 0xc1, 0xcb, 0x3e, 0xc7, 0x56, 0x8d, 0x91, 0x2e, 0x39, 0x15, 0x57, 0xe3, 0x18, 0x2b,
+ 0x61, 0x9a, 0x65, 0xfb, 0x3a, 0xae, 0xb1, 0x86, 0x1f, 0xf6, 0x8d, 0x83, 0xcd, 0xc6, 0xaa, 0xb9,
+ 0xf5, 0x1e, 0xb8, 0xeb, 0x87, 0x89, 0xec, 0x3e, 0x65, 0xbe, 0xe1, 0xf1, 0xbb, 0x64, 0xc4, 0x76,
+ 0x9f, 0x04, 0xee, 0x9b, 0x32, 0x7c, 0xbc, 0x90, 0xc0, 0x85, 0x26, 0x6c, 0x3a, 0x8c, 0x0d, 0x5e,
+ 0x0b, 0x80, 0x33, 0x8b, 0x8f, 0x5b, 0xe1, 0x28, 0xba, 0xcd, 0x4a, 0x1e, 0x4c, 0x2e, 0x63, 0x91,
+ 0x74, 0xcf, 0x97, 0xbb, 0x8b, 0x32, 0x06, 0x23, 0x34, 0x15, 0xfe, 0x88, 0xd6, 0x0b, 0xd1, 0x03,
+ 0xe0, 0x4b, 0x4a, 0xab, 0x36, 0x15, 0x5b, 0x9b, 0x4e, 0x5d, 0x92, 0xfa, 0xa0, 0xa9, 0xbf, 0xcc,
+ 0xa0, 0xfb, 0x3b, 0x5b, 0x22, 0x1b, 0xa6, 0xbc, 0xbd, 0x63, 0xb3, 0x71, 0x17, 0x18, 0x80, 0x53,
+ 0x34, 0x7f, 0xe6, 0x4b, 0x9f, 0x3c, 0xfb, 0x04, 0xc7, 0x2b, 0xdf, 0x03, 0x61, 0xba, 0xee, 0x9c,
+ 0x4b, 0x30, 0x42, 0x7b, 0x9b, 0x55, 0x1c, 0x0f, 0x49, 0xf3, 0x6b, 0x95, 0xfb, 0x9f, 0x5c, 0x0e,
+ 0xdf, 0xb4, 0x9f, 0x6b, 0x26, 0x72, 0x41, 0xb7, 0x33, 0xbb, 0x07, 0xe7, 0x8d, 0x3d, 0x32, 0xc1,
+ 0xb5, 0xae, 0xc9, 0x1b, 0x93, 0x87, 0x11, 0x19, 0x96, 0x80, 0xc0, 0x7a, 0x0c, 0xd5, 0xfb, 0xe9,
+ 0x21, 0x2a, 0x14, 0x0b, 0x2e, 0xa0, 0x4c, 0xa1, 0xec, 0xc8, 0xac, 0x08, 0x7a, 0x77, 0x95, 0x26,
+ 0x5e, 0x65, 0xb0, 0x3b, 0x2a, 0xc9, 0xab, 0xaa, 0x62, 0x10, 0x18, 0x9e, 0xe0, 0x52, 0x27, 0xb4,
+ 0xca, 0xe1, 0x6d, 0x2b, 0x97, 0xee, 0xf6, 0x12, 0x18, 0x58, 0x74, 0xec, 0x96, 0xf0, 0x49, 0x7b,
+ },
+};
+
+static const uint8_t kuz_table_inv_LS[16][256 * 16] =
+{
+ { /* 0 */
+ 0xa5, 0xcc, 0x0e, 0x86, 0xc2, 0x4f, 0xba, 0x59, 0x3b, 0xe3, 0xef, 0x79, 0x82, 0x53, 0x11, 0xf0,
+ 0x2d, 0x03, 0x96, 0x94, 0x95, 0x6c, 0x2a, 0xb6, 0xf5, 0x9c, 0xba, 0xe7, 0x37, 0x83, 0x91, 0xbd,
+ 0x32, 0x17, 0xb1, 0xab, 0xa6, 0xf9, 0x11, 0xd2, 0x03, 0xc3, 0x8e, 0xc9, 0x90, 0x58, 0x92, 0xad,
+ 0x8f, 0xa5, 0x82, 0x44, 0x27, 0x96, 0x65, 0xbf, 0x60, 0xda, 0x6e, 0x59, 0x28, 0x51, 0x68, 0x84,
+ 0x0e, 0xd4, 0x34, 0xac, 0xe0, 0xa9, 0x29, 0xa0, 0x9f, 0x89, 0x76, 0x4d, 0xf9, 0xc1, 0x13, 0x51,
+ 0x30, 0xfc, 0x7a, 0xd2, 0x86, 0x40, 0x5f, 0x68, 0xb0, 0x37, 0x1e, 0x11, 0x74, 0xb4, 0x15, 0x71,
+ 0x38, 0xd6, 0xd0, 0xf5, 0x06, 0xe1, 0xa4, 0xc5, 0x39, 0x61, 0x1b, 0xf7, 0x62, 0x82, 0x4c, 0x87,
+ 0xc0, 0x76, 0x2b, 0xce, 0x5d, 0xc3, 0xbf, 0x63, 0x85, 0xdc, 0x78, 0x44, 0x13, 0x95, 0x54, 0x07,
+ 0x54, 0xd2, 0xdb, 0x47, 0x09, 0x71, 0x7d, 0x0f, 0xb6, 0x72, 0xc1, 0x40, 0x97, 0x04, 0xf2, 0xe8,
+ 0xe6, 0x20, 0x58, 0xd9, 0x78, 0x0a, 0x07, 0x9f, 0xf2, 0x98, 0x1f, 0xf1, 0xa4, 0xba, 0xb9, 0xfe,
+ 0x9e, 0x65, 0x91, 0xd7, 0xf4, 0xaa, 0x77, 0x7b, 0x09, 0x0c, 0x2c, 0x3a, 0x76, 0x4b, 0x78, 0xc5,
+ 0x39, 0x42, 0x54, 0x28, 0x16, 0x5c, 0x83, 0x98, 0x81, 0x1b, 0x53, 0x9b, 0x10, 0xf4, 0xee, 0xe9,
+ 0x55, 0x46, 0x5f, 0x9a, 0x19, 0xcc, 0x5a, 0x52, 0x0e, 0x08, 0x89, 0x2c, 0xe5, 0x72, 0x50, 0x86,
+ 0x7e, 0xbb, 0x57, 0x85, 0xec, 0xa8, 0xa2, 0xe9, 0xed, 0x4b, 0x40, 0x60, 0x3d, 0x06, 0x8b, 0x9c,
+ 0x52, 0x2c, 0x45, 0xcc, 0x69, 0x79, 0xaf, 0x02, 0xa0, 0xad, 0xb2, 0xeb, 0x78, 0xf3, 0xb8, 0x4f,
+ 0x91, 0x25, 0x21, 0xa6, 0x04, 0xbe, 0x79, 0x86, 0x2e, 0xff, 0x12, 0x1b, 0xfd, 0xfc, 0xc9, 0xfa,
+ 0x64, 0x2e, 0xa1, 0x95, 0x8f, 0x31, 0x22, 0x67, 0x06, 0x45, 0xdf, 0x51, 0xe3, 0xb0, 0xe7, 0x99,
+ 0x03, 0x7f, 0x4f, 0xa4, 0x30, 0x04, 0x69, 0xe7, 0x0b, 0x8e, 0xd8, 0xb4, 0x96, 0x9a, 0x25, 0xb2,
+ 0x57, 0xad, 0x94, 0xe3, 0x39, 0x75, 0x14, 0xe8, 0xbd, 0xfc, 0x19, 0xf4, 0x01, 0x9e, 0xd7, 0x5a,
+ 0x5a, 0x06, 0xef, 0xeb, 0xe9, 0xd8, 0x54, 0xaf, 0x29, 0xfb, 0xb7, 0x0d, 0x6e, 0xc5, 0xe1, 0xb9,
+ 0x1c, 0x6b, 0x68, 0x9b, 0x03, 0x91, 0x52, 0x83, 0xfd, 0xd1, 0xec, 0x9a, 0x31, 0x41, 0x26, 0xa2,
+ 0x60, 0x3b, 0xf4, 0x67, 0xcf, 0x80, 0xbe, 0xd0, 0xa3, 0x6e, 0x3c, 0x22, 0xe8, 0xab, 0x2a, 0xe2,
+ 0x07, 0x6a, 0x1a, 0x56, 0x70, 0xb5, 0xf5, 0x50, 0xae, 0xa5, 0x3b, 0xc7, 0x9d, 0x81, 0xe8, 0xc9,
+ 0x18, 0x7e, 0x3d, 0x69, 0x43, 0x20, 0xce, 0x34, 0x58, 0xfa, 0x0f, 0xe9, 0x3a, 0x5a, 0xeb, 0xd9,
+ 0x21, 0x3c, 0x69, 0x41, 0x55, 0x7c, 0x4d, 0xac, 0xd9, 0xe1, 0x5c, 0x72, 0x2a, 0xae, 0x05, 0x30,
+ 0x72, 0x84, 0xa8, 0x50, 0x2c, 0xb8, 0xc5, 0xf3, 0xc1, 0x36, 0xa6, 0xf5, 0x20, 0x2b, 0x1f, 0x11,
+ 0xa8, 0x67, 0x75, 0x8e, 0x12, 0xe2, 0xfa, 0x1e, 0xaf, 0xe4, 0x41, 0x80, 0xed, 0x08, 0x27, 0x13,
+ 0xd1, 0xb6, 0x38, 0x5d, 0x8e, 0xff, 0xad, 0xa7, 0xec, 0x0a, 0x3a, 0x27, 0x4d, 0x8f, 0x44, 0x46,
+ 0x29, 0x16, 0xc3, 0x66, 0xd5, 0xdd, 0xb6, 0x01, 0x50, 0xb7, 0x59, 0x94, 0x3c, 0x98, 0x5c, 0xc6,
+ 0xc6, 0x88, 0xb5, 0x45, 0x3d, 0xcb, 0x6d, 0x6e, 0x93, 0x03, 0x0b, 0xef, 0xfc, 0x62, 0x1e, 0xa0,
+ 0xa4, 0x58, 0x8a, 0x5b, 0xd2, 0xf2, 0x9d, 0x04, 0x83, 0x99, 0xa7, 0x15, 0xf0, 0x25, 0xb3, 0x9e,
+ 0x3f, 0xbc, 0xca, 0xa3, 0x76, 0x54, 0x51, 0x95, 0x97, 0xc4, 0x20, 0x30, 0xff, 0x03, 0xa4, 0x4e,
+ 0xe0, 0xde, 0xc6, 0x52, 0x18, 0x02, 0xd5, 0x92, 0xe4, 0x47, 0x6c, 0x5a, 0x4b, 0x4d, 0xf3, 0x59,
+ 0x27, 0xc2, 0xf7, 0xca, 0x35, 0x74, 0x9f, 0xa1, 0xcf, 0x3e, 0x2f, 0xd9, 0xc5, 0x59, 0x4f, 0x97,
+ 0x8d, 0x4e, 0x49, 0x3d, 0x07, 0x2f, 0x2b, 0x05, 0xd3, 0x2e, 0xfe, 0x81, 0xcc, 0xbd, 0xef, 0x58,
+ 0x0c, 0x3f, 0xff, 0xd5, 0xc0, 0x10, 0x67, 0x1a, 0x2c, 0x7d, 0xe6, 0x95, 0x1d, 0x2d, 0x94, 0x8d,
+ 0x82, 0x0e, 0xf9, 0x4c, 0xf7, 0x3b, 0x25, 0xf8, 0xf4, 0xdd, 0xc0, 0xa0, 0x47, 0x0a, 0x5e, 0x67,
+ 0xea, 0x1f, 0xa7, 0x0c, 0xb8, 0x1a, 0x60, 0x85, 0xde, 0xe5, 0xf9, 0x64, 0xb9, 0x97, 0x2d, 0x73,
+ 0xae, 0x99, 0xeb, 0x05, 0x72, 0xea, 0x28, 0x13, 0xb9, 0x3b, 0x32, 0x2b, 0x02, 0xff, 0x6d, 0xb4,
+ 0xb4, 0x0c, 0x1d, 0x15, 0x11, 0x73, 0xa8, 0x9d, 0x52, 0x35, 0xad, 0x1a, 0xdc, 0x49, 0x01, 0xb1,
+ 0x9a, 0x70, 0xc4, 0x25, 0xb4, 0x1b, 0xeb, 0xcc, 0xac, 0x27, 0xcf, 0x49, 0x7d, 0x50, 0xb5, 0xbe,
+ 0x63, 0x44, 0xbb, 0xc3, 0xff, 0x84, 0xd7, 0x37, 0xa8, 0xe0, 0xe4, 0x96, 0x7e, 0x31, 0x0f, 0x50,
+ 0x49, 0x2d, 0x37, 0x01, 0x1a, 0x5d, 0x08, 0xd1, 0xf3, 0xd9, 0x65, 0xb6, 0xd4, 0x33, 0x76, 0x24,
+ 0xe5, 0x5f, 0x17, 0x7d, 0x48, 0x0e, 0x6e, 0x78, 0xf9, 0x16, 0xc7, 0x45, 0x32, 0x20, 0x9c, 0x4c,
+ 0x42, 0x78, 0xd2, 0x82, 0xaa, 0xf8, 0x9a, 0x9b, 0x71, 0x01, 0xb8, 0xe4, 0x54, 0x9f, 0x0a, 0x60,
+ 0xe4, 0xcb, 0x93, 0xa0, 0x58, 0xb3, 0x49, 0x25, 0x41, 0x6c, 0x8f, 0x29, 0x40, 0x56, 0x3e, 0x22,
+ 0x15, 0xd5, 0x46, 0x61, 0x93, 0x8d, 0x8e, 0x73, 0xcc, 0xfd, 0xa1, 0x10, 0x55, 0x01, 0xdd, 0x3a,
+ 0xb7, 0x73, 0x52, 0xb1, 0x21, 0x77, 0xc1, 0x7a, 0x59, 0xbb, 0x75, 0xae, 0x4a, 0xd3, 0x24, 0x03,
+ 0xc8, 0x5c, 0x81, 0xe9, 0xdd, 0x62, 0x44, 0xce, 0x0c, 0x8a, 0x7d, 0xa2, 0x05, 0xa3, 0x0d, 0xf1,
+ 0x06, 0xfe, 0x9e, 0x8b, 0x60, 0x08, 0xd2, 0x0d, 0x16, 0xdf, 0x73, 0xab, 0xef, 0xf7, 0x4a, 0xa7,
+ 0x70, 0x6f, 0x63, 0x29, 0x0c, 0x01, 0x8b, 0x49, 0x72, 0xc2, 0x36, 0x2d, 0xc4, 0xc7, 0x98, 0xcd,
+ 0x9d, 0x1a, 0xde, 0x73, 0xc4, 0xae, 0x1e, 0x9c, 0x02, 0x82, 0xf4, 0x8e, 0xe0, 0xd1, 0x5d, 0x77,
+ 0x41, 0x07, 0x9d, 0x26, 0x9a, 0xfc, 0xf3, 0x7c, 0x7a, 0x8f, 0x60, 0x50, 0xc2, 0x05, 0x2f, 0xd2,
+ 0x75, 0xee, 0xb2, 0x06, 0x5c, 0x0d, 0x30, 0xa3, 0x6f, 0x93, 0x9d, 0x32, 0xbd, 0xaa, 0xf7, 0xd8,
+ 0x19, 0xea, 0xb9, 0xb4, 0x53, 0x9d, 0xe9, 0x69, 0xe0, 0x80, 0x47, 0x85, 0x48, 0x2c, 0x49, 0xb7,
+ 0xc9, 0xc8, 0x05, 0x34, 0xcd, 0xdf, 0x63, 0x93, 0xb4, 0xf0, 0x35, 0xce, 0x77, 0xd5, 0xaf, 0x9f,
+ 0xaa, 0x8c, 0xbe, 0xf7, 0x32, 0x5b, 0xb4, 0xa4, 0x1c, 0x10, 0xd1, 0x58, 0x09, 0xe4, 0xa0, 0xcf,
+ 0xfc, 0xb5, 0xae, 0xc9, 0x1b, 0x93, 0x87, 0x11, 0x19, 0x96, 0x80, 0xc0, 0x7a, 0x0c, 0xd5, 0xfb,
+ 0x4d, 0x38, 0x62, 0xf3, 0x5a, 0xec, 0x94, 0x66, 0x56, 0xf2, 0x86, 0xc5, 0xdf, 0x28, 0xbb, 0x5f,
+ 0xbf, 0x59, 0xf8, 0x96, 0xa1, 0xd6, 0x3a, 0xd7, 0xd0, 0xed, 0x70, 0x48, 0x5c, 0xe5, 0x7d, 0xf5,
+ 0x2a, 0x69, 0x8c, 0xc2, 0xe5, 0xd9, 0xdf, 0xe6, 0x5b, 0x39, 0x81, 0x20, 0xaa, 0x02, 0x79, 0x74,
+ 0x73, 0x10, 0x2c, 0x8d, 0x3c, 0x05, 0xe2, 0xae, 0x79, 0x4c, 0xee, 0x99, 0x52, 0x5d, 0xbd, 0x7f,
+ 0x84, 0xf0, 0x67, 0xc7, 0x97, 0x33, 0xf7, 0xf5, 0xe2, 0x02, 0xb3, 0x0b, 0xa8, 0xfd, 0x14, 0xc0,
+ 0xd5, 0xa3, 0x6d, 0xaf, 0xce, 0x4e, 0x31, 0x10, 0x49, 0x21, 0xd9, 0x54, 0x46, 0x94, 0x89, 0x3d,
+ 0xc3, 0x09, 0x64, 0x6a, 0x6d, 0xc7, 0xd6, 0x84, 0x8e, 0x52, 0xa0, 0xf0, 0x85, 0x0f, 0x71, 0xb5,
+ 0xaf, 0x0d, 0x6f, 0xd8, 0x62, 0x57, 0x0f, 0x4e, 0x01, 0x41, 0x7a, 0x47, 0x70, 0x89, 0xcf, 0xda,
+ 0x2b, 0xfd, 0x08, 0x1f, 0xf5, 0x64, 0xf8, 0xbb, 0xe3, 0x43, 0xc9, 0x4c, 0xd8, 0x74, 0xdb, 0x1a,
+ 0x86, 0x1b, 0xac, 0xbe, 0xb7, 0x8a, 0xb9, 0x4f, 0x51, 0xf6, 0x23, 0xd3, 0x4c, 0x11, 0x93, 0x1c,
+ 0xa7, 0x27, 0xc5, 0xff, 0xe2, 0xf6, 0xf4, 0xe3, 0x88, 0x17, 0x7f, 0xa1, 0x66, 0xbf, 0x96, 0x2c,
+ 0xb1, 0x8d, 0xcc, 0x3a, 0x41, 0x7f, 0x13, 0x77, 0x4f, 0x64, 0x06, 0x05, 0xa5, 0x24, 0x6e, 0xa4,
+ 0xb2, 0xf2, 0x83, 0x9e, 0x71, 0x7b, 0x7a, 0x90, 0x44, 0xea, 0xde, 0xb1, 0x33, 0xbe, 0x4b, 0x16,
+ 0x5b, 0x92, 0x6b, 0x36, 0xf9, 0x65, 0x73, 0xf2, 0x91, 0x81, 0xff, 0x61, 0x1c, 0xb3, 0x43, 0xd7,
+ 0x46, 0x6d, 0x87, 0x70, 0xea, 0x49, 0x06, 0x2c, 0xd4, 0x2a, 0x5b, 0x97, 0x5f, 0x84, 0xc7, 0x1b,
+ 0xd3, 0x5d, 0xf3, 0x24, 0xae, 0x46, 0xe3, 0x1d, 0x5f, 0xfe, 0xaa, 0xff, 0xa9, 0x63, 0xc3, 0x9a,
+ 0x9f, 0xf1, 0x15, 0x0a, 0xe4, 0x17, 0x50, 0x26, 0xb1, 0x76, 0x64, 0x56, 0x04, 0x3d, 0xda, 0xab,
+ 0xfd, 0x21, 0x2a, 0x14, 0x0b, 0x2e, 0xa0, 0x4c, 0xa1, 0xec, 0xc8, 0xac, 0x08, 0x7a, 0x77, 0x95,
+ 0xd4, 0x37, 0xe9, 0x72, 0xde, 0xf3, 0x16, 0x4d, 0xf1, 0x5b, 0x91, 0x38, 0x34, 0xe2, 0x2b, 0x53,
+ 0x0f, 0x40, 0xb0, 0x71, 0xf0, 0x14, 0x0e, 0xfd, 0x27, 0xf3, 0x3e, 0x21, 0x8b, 0xb7, 0xb1, 0x3f,
+ 0x9c, 0x8e, 0x5a, 0xae, 0xd4, 0x13, 0x39, 0xc1, 0xba, 0xf8, 0xbc, 0xe2, 0x92, 0xa7, 0xff, 0x19,
+ 0x2f, 0xe8, 0x5d, 0xed, 0xb5, 0xd5, 0x64, 0x0c, 0x46, 0x68, 0x2a, 0x3f, 0xd3, 0x6f, 0x16, 0x61,
+ 0x9b, 0xe4, 0x40, 0xf8, 0xa4, 0xa6, 0xcc, 0x91, 0x14, 0x5d, 0x87, 0x25, 0x0f, 0x26, 0x17, 0xd0,
+ 0x43, 0xec, 0x56, 0x5f, 0xba, 0x45, 0xbd, 0xc6, 0xc9, 0x7b, 0xf0, 0x88, 0x26, 0xe9, 0xa8, 0x0e,
+ 0xef, 0x9e, 0x76, 0x23, 0xe8, 0x16, 0xdb, 0x6f, 0xc3, 0xb4, 0x52, 0x7b, 0xc0, 0xfa, 0x42, 0x66,
+ 0xd9, 0x9c, 0x92, 0x7a, 0x0e, 0x5e, 0x56, 0x0a, 0x65, 0x5c, 0x3f, 0xc1, 0x5b, 0xb9, 0x1d, 0xb0,
+ 0x79, 0xd1, 0x4d, 0xd3, 0x9c, 0x1d, 0x57, 0xb9, 0x43, 0xee, 0x7b, 0xa7, 0xa0, 0x87, 0x63, 0x55,
+ 0xb6, 0xe7, 0xd6, 0x6c, 0x31, 0xca, 0xe6, 0x27, 0xe1, 0xc1, 0x3d, 0xc2, 0x38, 0xa5, 0x86, 0x6d,
+ 0x53, 0xb8, 0xc1, 0x11, 0x79, 0xc4, 0x88, 0x5f, 0x18, 0xd7, 0xfa, 0x87, 0x0a, 0x85, 0x1a, 0x21,
+ 0x7f, 0x2f, 0xd3, 0x58, 0xfc, 0x15, 0x85, 0xb4, 0x55, 0x31, 0x08, 0x0c, 0x4f, 0x70, 0x29, 0xf2,
+ 0xc1, 0xe2, 0xaf, 0x13, 0x4d, 0x7e, 0x98, 0x3e, 0x3d, 0xa6, 0x30, 0x28, 0x61, 0xe3, 0xf6, 0x69,
+ 0xf0, 0x8a, 0x51, 0x1c, 0xdb, 0x83, 0xe0, 0x0b, 0x35, 0xeb, 0x66, 0x55, 0x67, 0x21, 0x41, 0x76,
+ 0x23, 0xd7, 0xa2, 0x38, 0x75, 0xc5, 0x03, 0x16, 0x6a, 0x15, 0xcc, 0xaa, 0xce, 0x42, 0x82, 0xec,
+ 0xe7, 0xb4, 0xdc, 0x04, 0x68, 0xb7, 0x20, 0xc2, 0x4a, 0xe2, 0x57, 0x9d, 0xd6, 0xcc, 0x1b, 0x90,
+ 0x25, 0x29, 0x3c, 0xb3, 0x15, 0xcd, 0xd1, 0x1b, 0x7c, 0xca, 0xbf, 0x01, 0x21, 0xb5, 0xc8, 0x4b,
+ 0x5e, 0x13, 0xba, 0x19, 0xa9, 0x69, 0xc8, 0x18, 0x8c, 0xd0, 0x54, 0x7e, 0x65, 0xde, 0x2c, 0xc2,
+ 0xb5, 0x98, 0x99, 0xc8, 0x01, 0xce, 0x8f, 0xc0, 0xea, 0x4f, 0xe5, 0x76, 0xae, 0x3f, 0xa3, 0xdf,
+ 0x1e, 0x80, 0xa3, 0xe2, 0x23, 0x28, 0x1c, 0x39, 0x4e, 0x25, 0x7c, 0x42, 0xd5, 0xad, 0xa1, 0x7e,
+ 0xa2, 0xa6, 0x14, 0xd0, 0xb2, 0xfa, 0x4f, 0x09, 0x95, 0x46, 0xd4, 0xbe, 0x1f, 0xd2, 0xf9, 0x39,
+ 0xdf, 0x62, 0x0c, 0xf1, 0x6e, 0x56, 0x84, 0x07, 0x73, 0x83, 0x4c, 0x6a, 0xb4, 0x4e, 0x57, 0x17,
+ 0xa6, 0xb3, 0x41, 0x22, 0xf2, 0x4b, 0xd3, 0xbe, 0x30, 0x6d, 0x37, 0xcd, 0x14, 0xc9, 0x34, 0x42,
+ 0xfe, 0x5e, 0x65, 0xb0, 0x3b, 0x2a, 0xc9, 0xab, 0xaa, 0x62, 0x10, 0x18, 0x9e, 0xe0, 0x52, 0x27,
+ 0xac, 0x72, 0x20, 0x7c, 0x52, 0x53, 0x66, 0xa9, 0x0a, 0xcf, 0xa2, 0xf3, 0xe6, 0x13, 0xea, 0x68,
+ 0x22, 0x43, 0x26, 0xe5, 0x65, 0x78, 0x24, 0x4b, 0xd2, 0x6f, 0x84, 0xc6, 0xbc, 0x34, 0x20, 0x82,
+ 0xf9, 0x34, 0x7f, 0xe6, 0x4b, 0x9f, 0x3c, 0xfb, 0x04, 0xc7, 0x2b, 0xdf, 0x03, 0x61, 0xba, 0xee,
+ 0xe2, 0x35, 0x0d, 0x2b, 0x38, 0xbb, 0x9b, 0x28, 0x57, 0xb3, 0xfc, 0x82, 0xaf, 0xa1, 0x74, 0x85,
+ 0x4a, 0x52, 0x78, 0xa5, 0x2a, 0x59, 0x61, 0x36, 0xf8, 0x57, 0xbd, 0x02, 0x42, 0xa9, 0x53, 0x96,
+ 0xbc, 0x26, 0xb7, 0x32, 0x91, 0xd2, 0x53, 0x30, 0xdb, 0x63, 0xa8, 0xfc, 0xca, 0x7f, 0x58, 0x47,
+ 0x35, 0x7d, 0xab, 0xfd, 0xd6, 0x4c, 0xe4, 0x82, 0xad, 0x66, 0xb5, 0x0e, 0x0d, 0xd9, 0x7a, 0x64,
+ 0xca, 0xb7, 0x4a, 0x90, 0xfd, 0xdb, 0x0a, 0x74, 0xbf, 0x7e, 0xed, 0x7a, 0xe1, 0x4f, 0x8a, 0x2d,
+ 0xee, 0x0a, 0xf2, 0xfe, 0xf8, 0xab, 0xfc, 0x32, 0x7b, 0xce, 0x1a, 0x17, 0xb2, 0x8c, 0xe0, 0x08,
+ 0x78, 0x45, 0xc9, 0x0e, 0x8c, 0xa0, 0x70, 0xe4, 0xfb, 0x94, 0x33, 0xcb, 0xd2, 0xf1, 0xc1, 0x3b,
+ 0x05, 0x81, 0xd1, 0x2f, 0x50, 0x0c, 0xbb, 0xea, 0x1d, 0x51, 0xab, 0x1f, 0x79, 0x6d, 0x6f, 0x15,
+ 0x6b, 0x6e, 0x11, 0xe4, 0x7f, 0x25, 0x2c, 0x9a, 0x21, 0xb6, 0xe1, 0x70, 0x68, 0x07, 0x56, 0xa6,
+ 0x51, 0x53, 0x0a, 0x68, 0x59, 0x7d, 0xc6, 0xe5, 0xab, 0x23, 0x6a, 0x5f, 0xee, 0x69, 0x9d, 0xfd,
+ 0xe1, 0x4a, 0x42, 0x8f, 0x08, 0xbf, 0xf2, 0xcf, 0x5c, 0x3d, 0x24, 0x36, 0x39, 0x3b, 0x51, 0x37,
+ 0x59, 0x79, 0xa0, 0x4f, 0xd9, 0xdc, 0x3d, 0x48, 0x22, 0x75, 0x6f, 0xb9, 0xf8, 0x5f, 0xc4, 0x0b,
+ 0xa3, 0x32, 0x90, 0x0d, 0xa2, 0x47, 0x68, 0x54, 0x2d, 0x3c, 0x9c, 0xd2, 0x6d, 0xa4, 0x5b, 0x57,
+ 0xf2, 0x61, 0x9a, 0x65, 0xfb, 0x3a, 0xae, 0xb1, 0x86, 0x1f, 0xf6, 0x8d, 0x83, 0xcd, 0xc6, 0xaa,
+ 0x71, 0xfb, 0xe7, 0xf4, 0x1c, 0xbc, 0xac, 0x14, 0xca, 0xb8, 0x7e, 0x41, 0xb6, 0xb1, 0x3a, 0xa3,
+ 0x56, 0x39, 0x10, 0x3e, 0x29, 0xc8, 0x33, 0xb5, 0x05, 0x86, 0x51, 0x98, 0x73, 0xe8, 0x75, 0x34,
+ 0x11, 0xc0, 0x13, 0x93, 0xd3, 0x3c, 0x12, 0xc4, 0x69, 0xd6, 0x42, 0x63, 0x5e, 0x1a, 0x10, 0x41,
+ 0x6a, 0xfa, 0x95, 0x39, 0x6f, 0x98, 0x0b, 0xc7, 0x99, 0xcc, 0xa9, 0x1c, 0x1a, 0x71, 0xf4, 0xc8,
+ 0x89, 0x5b, 0x1c, 0xcf, 0x47, 0x9e, 0xb7, 0xb2, 0x76, 0x05, 0x1d, 0xf2, 0xc7, 0xa6, 0x22, 0x23,
+ 0x94, 0xa4, 0xf0, 0x89, 0x54, 0xb2, 0xc2, 0x6c, 0x33, 0xae, 0xb9, 0x04, 0x84, 0x91, 0xa6, 0xef,
+ 0x65, 0xba, 0x25, 0x48, 0x9f, 0x8c, 0x05, 0x3a, 0xbe, 0x3f, 0x97, 0x3d, 0x91, 0xc6, 0x45, 0xf7,
+ 0x8c, 0xda, 0xcd, 0xe0, 0x17, 0x92, 0x0c, 0x58, 0x6b, 0x54, 0xb6, 0xed, 0xbe, 0xcb, 0x4d, 0x36,
+ 0xbb, 0x4c, 0xad, 0x64, 0xe1, 0x67, 0xa6, 0x60, 0x75, 0xc6, 0x93, 0x3b, 0x57, 0xfe, 0xb0, 0x8e,
+ 0x77, 0x05, 0x79, 0x7f, 0x7c, 0xb4, 0x7e, 0x19, 0xdc, 0x67, 0x0d, 0xea, 0x59, 0x46, 0x70, 0x04,
+ 0x3c, 0xc3, 0x85, 0x07, 0x46, 0x50, 0x38, 0x72, 0x9c, 0x4a, 0xf8, 0x84, 0x69, 0x99, 0x81, 0xfc,
+ 0x7b, 0x3a, 0x86, 0xaa, 0xbc, 0xa4, 0x19, 0x03, 0xf0, 0x1a, 0xeb, 0x7f, 0x44, 0x6b, 0xe4, 0x89,
+ 0x28, 0x82, 0x47, 0xbb, 0xc5, 0x60, 0x91, 0x5c, 0xe8, 0xcd, 0x11, 0xf8, 0x4e, 0xee, 0xfe, 0xa8,
+ 0xab, 0x18, 0x3a, 0x2a, 0x22, 0xe6, 0x93, 0xf9, 0xa4, 0x6a, 0x99, 0x34, 0x7b, 0x92, 0x02, 0xa1,
+ 0xd2, 0xc9, 0x77, 0xf9, 0xbe, 0xfb, 0xc4, 0x40, 0xe7, 0x84, 0xe2, 0x93, 0xdb, 0x15, 0x61, 0xf4,
+ 0x31, 0x68, 0xfe, 0x0f, 0x96, 0xfd, 0x78, 0x35, 0x08, 0x4d, 0x56, 0x7d, 0x06, 0xc2, 0xb7, 0x1f,
+ 0xde, 0xf6, 0x88, 0x2c, 0x7e, 0xeb, 0xa3, 0x5a, 0xcb, 0xf9, 0x04, 0x06, 0xc6, 0x38, 0xf5, 0x79,
+ 0xc4, 0x63, 0x7e, 0x3c, 0x1d, 0x72, 0x23, 0xd4, 0x20, 0xf7, 0x9b, 0x37, 0x18, 0x8e, 0x99, 0x7c,
+ 0x5f, 0x87, 0x3e, 0xc4, 0xb9, 0xd4, 0xef, 0x45, 0x34, 0xaa, 0x1c, 0x12, 0x17, 0xa8, 0x8e, 0xac,
+ 0xcc, 0x49, 0xd4, 0x1b, 0x9d, 0xd3, 0xd8, 0x79, 0xa9, 0xa1, 0x9e, 0xd1, 0x0e, 0xb8, 0xc0, 0x8a,
+ 0xcf, 0x36, 0x9b, 0xbf, 0xad, 0xd7, 0xb1, 0x9e, 0xa2, 0x2f, 0x46, 0x65, 0x98, 0x22, 0xe5, 0x38,
+ 0x76, 0x91, 0xfd, 0xa2, 0x6c, 0x09, 0x59, 0x44, 0x64, 0x1d, 0x45, 0x86, 0x2b, 0x30, 0xd2, 0x6a,
+ 0x2c, 0x97, 0x12, 0x49, 0x85, 0xd1, 0x0d, 0xeb, 0x4d, 0xe6, 0xf2, 0x8b, 0x45, 0xf5, 0x33, 0xd3,
+ 0xb8, 0x33, 0xe2, 0xc0, 0xd1, 0x63, 0xcf, 0x87, 0x7e, 0x48, 0x4b, 0x8f, 0xc1, 0x64, 0x95, 0x3c,
+ 0xd8, 0x08, 0x16, 0xa7, 0x1e, 0xe3, 0x71, 0x57, 0xdd, 0x26, 0x77, 0xad, 0x29, 0xcf, 0xbf, 0xde,
+ 0x2e, 0x7c, 0xd9, 0x30, 0xa5, 0x68, 0x43, 0x51, 0xfe, 0x12, 0x62, 0x53, 0xa1, 0x19, 0xb4, 0x0f,
+ 0x36, 0x02, 0xe4, 0x59, 0xe6, 0x48, 0x8d, 0x65, 0xa6, 0xe8, 0x6d, 0xba, 0x9b, 0x43, 0x5f, 0xd6,
+ 0xdb, 0x77, 0x59, 0x03, 0x2e, 0xe7, 0x18, 0xb0, 0xd6, 0xa8, 0xaf, 0x19, 0xbf, 0x55, 0x9a, 0x6c,
+ 0x69, 0x85, 0xda, 0x9d, 0x5f, 0x9c, 0x62, 0x20, 0x92, 0x42, 0x71, 0xa8, 0x8c, 0xeb, 0xd1, 0x7a,
+ 0xb3, 0x66, 0x07, 0x43, 0x61, 0xc6, 0x5d, 0xcd, 0xfc, 0x90, 0x96, 0xdd, 0x41, 0xc8, 0xe9, 0x78,
+ 0x14, 0x41, 0xc2, 0xbc, 0x83, 0x30, 0xa9, 0x2e, 0x74, 0x87, 0xe9, 0x7c, 0x27, 0x77, 0x7f, 0x54,
+ 0x95, 0x30, 0x74, 0x54, 0x44, 0x0f, 0xe5, 0x31, 0x8b, 0xd4, 0xf1, 0x68, 0xf6, 0xe7, 0x04, 0x81,
+ 0xbe, 0xcd, 0x7c, 0x4b, 0xb1, 0x6b, 0x1d, 0x8a, 0x68, 0x97, 0x38, 0x24, 0x2e, 0x93, 0xdf, 0x9b,
+ 0x62, 0xd0, 0x3f, 0x1e, 0xef, 0x39, 0xf0, 0x6a, 0x10, 0x9a, 0xac, 0xfa, 0x0c, 0x47, 0xad, 0x3e,
+ 0xa1, 0xd9, 0x5b, 0x74, 0x82, 0xfe, 0x26, 0xee, 0x9e, 0xc8, 0x0c, 0x0a, 0x89, 0x48, 0xdc, 0x8b,
+ 0x3b, 0xa9, 0x9f, 0x51, 0x36, 0xe5, 0xcd, 0x22, 0x32, 0xef, 0xc3, 0x43, 0xf4, 0x18, 0x69, 0x35,
+ 0x16, 0xaa, 0x09, 0xc5, 0xa3, 0x89, 0xe7, 0x94, 0xc7, 0x73, 0x79, 0xa4, 0xc3, 0x9b, 0xf8, 0x88,
+ 0x66, 0xc5, 0x6a, 0xec, 0xaf, 0x88, 0x6c, 0xdd, 0xb5, 0xb1, 0x4f, 0x89, 0x07, 0x5c, 0x60, 0x45,
+ 0xe9, 0x60, 0xe8, 0xa8, 0x88, 0x1e, 0x09, 0x62, 0xd5, 0x6b, 0x21, 0xd0, 0x2f, 0x0d, 0x08, 0xc1,
+ 0x5c, 0xf8, 0x71, 0x60, 0x89, 0xd0, 0x86, 0xa2, 0x3f, 0x24, 0xc4, 0xa6, 0x81, 0x32, 0xab, 0x1e,
+ 0x6c, 0x04, 0x0b, 0xb2, 0x0f, 0x90, 0xd9, 0xca, 0x8f, 0x13, 0xda, 0xb7, 0xf5, 0x86, 0xbe, 0x6f,
+ 0x6d, 0x90, 0x8f, 0x6f, 0x1f, 0x2d, 0xfe, 0x97, 0x37, 0x69, 0x92, 0xdb, 0x87, 0xf0, 0x1c, 0x01,
+ 0xad, 0xe6, 0xa4, 0xa1, 0x42, 0xee, 0x41, 0xf4, 0xb2, 0xb5, 0xea, 0x9f, 0x94, 0x65, 0x48, 0x06,
+ 0x37, 0x96, 0x60, 0x84, 0xf6, 0xf5, 0xaa, 0x38, 0x1e, 0x92, 0x25, 0xd6, 0xe9, 0x35, 0xfd, 0xb8,
+ 0x61, 0xaf, 0x70, 0xba, 0xdf, 0x3d, 0x99, 0x8d, 0x1b, 0x14, 0x74, 0x4e, 0x9a, 0xdd, 0x88, 0x8c,
+ 0x4b, 0xc6, 0xfc, 0x78, 0x3a, 0xe4, 0x46, 0x6b, 0x40, 0x2d, 0xf5, 0x6e, 0x30, 0xdf, 0xf1, 0xf8,
+ 0xb9, 0xa7, 0x66, 0x1d, 0xc1, 0xde, 0xe8, 0xda, 0xc6, 0x32, 0x03, 0xe3, 0xb3, 0x12, 0x37, 0x52,
+ 0xe3, 0xa1, 0x89, 0xf6, 0x28, 0x06, 0xbc, 0x75, 0xef, 0xc9, 0xb4, 0xee, 0xdd, 0xd7, 0xd6, 0xeb,
+ 0xba, 0xd8, 0x29, 0xb9, 0xf1, 0xda, 0x81, 0x3d, 0xcd, 0xbc, 0xdb, 0x57, 0x25, 0x88, 0x12, 0xe0,
+ 0xf1, 0x1e, 0xd5, 0xc1, 0xcb, 0x3e, 0xc7, 0x56, 0x8d, 0x91, 0x2e, 0x39, 0x15, 0x57, 0xe3, 0x18,
+ 0xa0, 0x4d, 0xdf, 0xa9, 0x92, 0x43, 0x01, 0xb3, 0x26, 0xb2, 0x44, 0x66, 0xfb, 0x3e, 0x7e, 0xe5,
+ 0x85, 0x64, 0xe3, 0x1a, 0x87, 0x8e, 0xd0, 0xa8, 0x5a, 0x78, 0xfb, 0x67, 0xda, 0x8b, 0xb6, 0xae,
+ 0x83, 0x9a, 0x7d, 0x91, 0xe7, 0x86, 0x02, 0xa5, 0x4c, 0xa7, 0x88, 0xcc, 0x35, 0x7c, 0xfc, 0x09,
+ 0xda, 0xe3, 0xdd, 0xde, 0x3e, 0x5a, 0x3f, 0xed, 0x6e, 0xd2, 0xe7, 0x75, 0xcd, 0x23, 0x38, 0x02,
+ 0x47, 0xf9, 0x03, 0xad, 0xfa, 0xf4, 0x21, 0x71, 0x6c, 0x50, 0x13, 0xfb, 0x2d, 0xf2, 0x65, 0x75,
+ 0xc5, 0xf7, 0xfa, 0xe1, 0x0d, 0xcf, 0x04, 0x89, 0x98, 0x8d, 0xd3, 0x5b, 0x6a, 0xf8, 0x3b, 0x12,
+ 0xb0, 0x19, 0x48, 0xe7, 0x51, 0xc2, 0x34, 0x2a, 0xf7, 0x1e, 0x4e, 0x69, 0xd7, 0x52, 0xcc, 0xca,
+ 0x33, 0x83, 0x35, 0x76, 0xb6, 0x44, 0x36, 0x8f, 0xbb, 0xb9, 0xc6, 0xa5, 0xe2, 0x2e, 0x30, 0xc3,
+ 0xfa, 0x4b, 0x30, 0x42, 0x7b, 0x9b, 0x55, 0x1c, 0x0f, 0x49, 0xf3, 0x6b, 0x95, 0xfb, 0x9f, 0x5c,
+ 0x96, 0x4f, 0x3b, 0xf0, 0x74, 0x0b, 0x8c, 0xd6, 0x80, 0x5a, 0x29, 0xdc, 0x60, 0x7d, 0x21, 0x33,
+ 0x6f, 0x7b, 0x44, 0x16, 0x3f, 0x94, 0xb0, 0x2d, 0x84, 0x9d, 0x02, 0x03, 0x63, 0x1c, 0x9b, 0xdd,
+ 0x6e, 0xef, 0xc0, 0xcb, 0x2f, 0x29, 0x97, 0x70, 0x3c, 0xe7, 0x4a, 0x6f, 0x11, 0x6a, 0x39, 0xb3,
+ 0xc2, 0x9d, 0xe0, 0xb7, 0x7d, 0x7a, 0xf1, 0xd9, 0x36, 0x28, 0xe8, 0x9c, 0xf7, 0x79, 0xd3, 0xdb,
+ 0xf6, 0x74, 0xcf, 0x97, 0xbb, 0x8b, 0x32, 0x06, 0x23, 0x34, 0x15, 0xfe, 0x88, 0xd6, 0x0b, 0xd1,
+ 0x50, 0xc7, 0x8e, 0xb5, 0x49, 0xc0, 0xe1, 0xb8, 0x13, 0x59, 0x22, 0x33, 0x9c, 0x1f, 0x3f, 0x93,
+ 0xff, 0xca, 0xe1, 0x6d, 0x2b, 0x97, 0xee, 0xf6, 0x12, 0x18, 0x58, 0x74, 0xec, 0x96, 0xf0, 0x49,
+ 0x5d, 0x6c, 0xf5, 0xbd, 0x99, 0x6d, 0xa1, 0xff, 0x87, 0x5e, 0x8c, 0xca, 0xf3, 0x44, 0x09, 0x70,
+ 0xa9, 0xf3, 0xf1, 0x53, 0x02, 0x5f, 0xdd, 0x43, 0x17, 0x9e, 0x09, 0xec, 0x9f, 0x7e, 0x85, 0x7d,
+ 0x8e, 0x31, 0x06, 0x99, 0x37, 0x2b, 0x42, 0xe2, 0xd8, 0xa0, 0x26, 0x35, 0x5a, 0x27, 0xca, 0xea,
+ 0x17, 0x3e, 0x8d, 0x18, 0xb3, 0x34, 0xc0, 0xc9, 0x7f, 0x09, 0x31, 0xc8, 0xb1, 0xed, 0x5a, 0xe6,
+ 0x1b, 0x01, 0x72, 0xcd, 0x73, 0x24, 0xa7, 0xd3, 0x53, 0x74, 0xd7, 0x5d, 0xac, 0xc0, 0xce, 0x6b,
+ 0x97, 0xdb, 0xbf, 0x2d, 0x64, 0xb6, 0xab, 0x8b, 0x38, 0x20, 0x61, 0xb0, 0x12, 0x0b, 0x83, 0x5d,
+ 0x7d, 0xc4, 0x18, 0x21, 0xdc, 0xac, 0xcb, 0x0e, 0xe6, 0xc5, 0x98, 0xd4, 0xab, 0x9c, 0xae, 0x2e,
+ 0xec, 0xe1, 0x39, 0x87, 0xd8, 0x12, 0xb2, 0x88, 0xc8, 0x3a, 0x8a, 0xcf, 0x56, 0x60, 0x67, 0xd4,
+ 0x58, 0xed, 0x24, 0x92, 0xc9, 0x61, 0x1a, 0x15, 0x9a, 0x0f, 0x27, 0xd5, 0x8a, 0x29, 0x66, 0x65,
+ 0xf7, 0xe0, 0x4b, 0x4a, 0xab, 0x36, 0x15, 0x5b, 0x9b, 0x4e, 0x5d, 0x92, 0xfa, 0xa0, 0xa9, 0xbf,
+ 0x1f, 0x14, 0x27, 0x3f, 0x33, 0x95, 0x3b, 0x64, 0xf6, 0x5f, 0x34, 0x2e, 0xa7, 0xdb, 0x03, 0x10,
+ 0xfb, 0xdf, 0xb4, 0x9f, 0x6b, 0x26, 0x72, 0x41, 0xb7, 0x33, 0xbb, 0x07, 0xe7, 0x8d, 0x3d, 0x32,
+ 0x7c, 0x50, 0x9c, 0xfc, 0xcc, 0x11, 0xec, 0x53, 0x5e, 0xbf, 0xd0, 0xb8, 0xd9, 0xea, 0x0c, 0x40,
+ 0x09, 0xbe, 0x2e, 0xfa, 0x90, 0x1c, 0xdc, 0xf0, 0x31, 0x2c, 0x4d, 0x8a, 0x64, 0x40, 0xfb, 0x98,
+ 0x0d, 0xab, 0x7b, 0x08, 0xd0, 0xad, 0x40, 0x47, 0x94, 0x07, 0xae, 0xf9, 0x6f, 0x5b, 0x36, 0xe3,
+ 0x7a, 0xae, 0x02, 0x77, 0xac, 0x19, 0x3e, 0x5e, 0x48, 0x60, 0xa3, 0x13, 0x36, 0x1d, 0x46, 0xe7,
+ 0x67, 0x51, 0xee, 0x31, 0xbf, 0x35, 0x4b, 0x80, 0x0d, 0xcb, 0x07, 0xe5, 0x75, 0x2a, 0xc2, 0x2b,
+ 0x45, 0x12, 0xc8, 0xd4, 0xda, 0x4d, 0x6f, 0xcb, 0xdf, 0xa4, 0x83, 0x23, 0xc9, 0x1e, 0xe2, 0xa9,
+ 0x87, 0x8f, 0x28, 0x63, 0xa7, 0x37, 0x9e, 0x12, 0xe9, 0x8c, 0x6b, 0xbf, 0x3e, 0x67, 0x31, 0x72,
+ 0xdc, 0x1d, 0x43, 0x55, 0x5e, 0x52, 0xed, 0xe0, 0x78, 0x0d, 0x94, 0xde, 0x22, 0xd4, 0x72, 0xa5,
+ 0xe8, 0xf4, 0x6c, 0x75, 0x98, 0xa3, 0x2e, 0x3f, 0x6d, 0x11, 0x69, 0xbc, 0x5d, 0x7b, 0xaa, 0xaf,
+ 0x4f, 0xd3, 0xa9, 0x8a, 0x7a, 0x55, 0xda, 0xdc, 0xe5, 0x06, 0x16, 0x1d, 0x3b, 0xc4, 0x3c, 0x83,
+ 0x1d, 0xff, 0xec, 0x46, 0x13, 0x2c, 0x75, 0xde, 0x45, 0xab, 0xa4, 0xf6, 0x43, 0x37, 0x84, 0xcc,
+ 0x4e, 0x47, 0x2d, 0x57, 0x6a, 0xe8, 0xfd, 0x81, 0x5d, 0x7c, 0x5e, 0x71, 0x49, 0xb2, 0x9e, 0xed,
+ 0x04, 0x15, 0x55, 0xf2, 0x40, 0xb1, 0x9c, 0xb7, 0xa5, 0x2b, 0xe3, 0x73, 0x0b, 0x1b, 0xcd, 0x7b,
+ 0xeb, 0x8b, 0x23, 0xd1, 0xa8, 0xa7, 0x47, 0xd8, 0x66, 0x9f, 0xb1, 0x08, 0xcb, 0xe1, 0x8f, 0x1d,
+ 0xf8, 0xa0, 0xfb, 0x3b, 0x5b, 0x22, 0x1b, 0xa6, 0xbc, 0xbd, 0x63, 0xb3, 0x71, 0x17, 0x18, 0x80,
+ 0xf3, 0xf5, 0x1e, 0xb8, 0xeb, 0x87, 0x89, 0xec, 0x3e, 0x65, 0xbe, 0xe1, 0xf1, 0xbb, 0x64, 0xc4,
+ 0x3e, 0x28, 0x4e, 0x7e, 0x66, 0xe9, 0x76, 0xc8, 0x2f, 0xbe, 0x68, 0x5c, 0x8d, 0x75, 0x06, 0x20,
+ 0x3d, 0x57, 0x01, 0xda, 0x56, 0xed, 0x1f, 0x2f, 0x24, 0x30, 0xb0, 0xe8, 0x1b, 0xef, 0x23, 0x92,
+ 0xbd, 0xb2, 0x33, 0xef, 0x81, 0x6f, 0x74, 0x6d, 0x63, 0x19, 0xe0, 0x90, 0xb8, 0x09, 0xfa, 0x29,
+ 0x8a, 0x24, 0x53, 0x6b, 0x77, 0x9a, 0xde, 0x55, 0x7d, 0x8b, 0xc5, 0x46, 0x51, 0x3c, 0x07, 0x91,
+ 0x88, 0xcf, 0x98, 0x12, 0x57, 0x23, 0x90, 0xef, 0xce, 0x7f, 0x55, 0x9e, 0xb5, 0xd0, 0x80, 0x4d,
+ 0xdd, 0x89, 0xc7, 0x88, 0x4e, 0xef, 0xca, 0xbd, 0xc0, 0x77, 0xdc, 0xb2, 0x50, 0xa2, 0xd0, 0xcb,
+ 0xcd, 0xdd, 0x50, 0xc6, 0x8d, 0x6e, 0xff, 0x24, 0x11, 0xdb, 0xd6, 0xbd, 0x7c, 0xce, 0x62, 0xe4,
+ 0x0b, 0x55, 0xe5, 0x83, 0xb0, 0xa5, 0x92, 0x4a, 0x82, 0xd8, 0xdd, 0x52, 0x80, 0xac, 0x7c, 0x44,
+ 0x13, 0x2b, 0xd8, 0xea, 0xf3, 0x85, 0x5c, 0x7e, 0xda, 0x22, 0xd2, 0xbb, 0xba, 0xf6, 0x97, 0x9d,
+ 0x98, 0x9b, 0x0f, 0x5c, 0x94, 0xa2, 0xa5, 0x76, 0x1f, 0xd3, 0x5f, 0x91, 0x99, 0xbc, 0x32, 0x62,
+ 0x02, 0xeb, 0xcb, 0x79, 0x20, 0xb9, 0x4e, 0xba, 0xb3, 0xf4, 0x90, 0xd8, 0xe4, 0xec, 0x87, 0xdc,
+ 0x93, 0xce, 0xea, 0xdf, 0x24, 0x07, 0x37, 0x3c, 0x9d, 0x0b, 0x82, 0xc3, 0x19, 0x10, 0x4e, 0x26,
+ 0x80, 0xe5, 0x32, 0x35, 0xd7, 0x82, 0x6b, 0x42, 0x47, 0x29, 0x50, 0x78, 0xa3, 0xe6, 0xd9, 0xbb,
+ 0x90, 0xb1, 0xa5, 0x7b, 0x14, 0x03, 0x5e, 0xdb, 0x96, 0x85, 0x5a, 0x77, 0x8f, 0x8a, 0x6b, 0x94,
+ 0xd0, 0x22, 0xbc, 0x80, 0x9e, 0x42, 0x8a, 0xfa, 0x54, 0x70, 0x72, 0x4b, 0x3f, 0xf9, 0xe6, 0x28,
+ 0x24, 0xbd, 0xb8, 0x6e, 0x05, 0x70, 0xf6, 0x46, 0xc4, 0xb0, 0xf7, 0x6d, 0x53, 0xc3, 0x6a, 0x25,
+ 0x34, 0xe9, 0x2f, 0x20, 0xc6, 0xf1, 0xc3, 0xdf, 0x15, 0x1c, 0xfd, 0x62, 0x7f, 0xaf, 0xd8, 0x0a,
+ 0xcb, 0x23, 0xce, 0x4d, 0xed, 0x66, 0x2d, 0x29, 0x07, 0x04, 0xa5, 0x16, 0x93, 0x39, 0x28, 0x43,
+ 0xed, 0x75, 0xbd, 0x5a, 0xc8, 0xaf, 0x95, 0xd5, 0x70, 0x40, 0xc2, 0xa3, 0x24, 0x16, 0xc5, 0xba,
+ 0xf4, 0x9f, 0x04, 0xee, 0x9b, 0x32, 0x7c, 0xbc, 0x90, 0xc0, 0x85, 0x26, 0x6c, 0x3a, 0x8c, 0x0d,
+ 0xce, 0xa2, 0x1f, 0x62, 0xbd, 0x6a, 0x96, 0xc3, 0x1a, 0x55, 0x0e, 0x09, 0xea, 0x54, 0x47, 0x56,
+ 0x99, 0x0f, 0x8b, 0x81, 0x84, 0x1f, 0x82, 0x2b, 0xa7, 0xa9, 0x17, 0xfd, 0xeb, 0xca, 0x90, 0x0c,
+ 0x10, 0x54, 0x97, 0x4e, 0xc3, 0x81, 0x35, 0x99, 0xd1, 0xac, 0x0a, 0x0f, 0x2c, 0x6c, 0xb2, 0x2f,
+ 0x44, 0x86, 0x4c, 0x09, 0xca, 0xf0, 0x48, 0x96, 0x67, 0xde, 0xcb, 0x4f, 0xbb, 0x68, 0x40, 0xc7,
+ 0x40, 0x93, 0x19, 0xfb, 0x8a, 0x41, 0xd4, 0x21, 0xc2, 0xf5, 0x28, 0x3c, 0xb0, 0x73, 0x8d, 0xbc,
+ 0x92, 0x5a, 0x6e, 0x02, 0x34, 0xba, 0x10, 0x61, 0x25, 0x71, 0xca, 0xaf, 0x6b, 0x66, 0xec, 0x48,
+ 0x3a, 0x3d, 0x1b, 0x8c, 0x26, 0x58, 0xea, 0x7f, 0x8a, 0x95, 0x8b, 0x2f, 0x86, 0x6e, 0xcb, 0x5b,
+ 0x01, 0x94, 0x84, 0xdd, 0x10, 0xbd, 0x27, 0x5d, 0xb8, 0x7a, 0x48, 0x6c, 0x72, 0x76, 0xa2, 0x6e,
+ 0x26, 0x56, 0x73, 0x17, 0x25, 0xc9, 0xb8, 0xfc, 0x77, 0x44, 0x67, 0xb5, 0xb7, 0x2f, 0xed, 0xf9,
+ 0x12, 0xbf, 0x5c, 0x37, 0xe3, 0x38, 0x7b, 0x23, 0x62, 0x58, 0x9a, 0xd7, 0xc8, 0x80, 0x35, 0xf3,
+ 0x1a, 0x95, 0xf6, 0x10, 0x63, 0x99, 0x80, 0x8e, 0xeb, 0x0e, 0x9f, 0x31, 0xde, 0xb6, 0x6c, 0x05,
+ 0x48, 0xb9, 0xb3, 0xdc, 0x0a, 0xe0, 0x2f, 0x8c, 0x4b, 0xa3, 0x2d, 0xda, 0xa6, 0x45, 0xd4, 0x4a,
+ 0x68, 0x11, 0x5e, 0x40, 0x4f, 0x21, 0x45, 0x7d, 0x2a, 0x38, 0x39, 0xc4, 0xfe, 0x9d, 0x73, 0x14,
+ 0xf5, 0x0b, 0x80, 0x33, 0x8b, 0x8f, 0x5b, 0xe1, 0x28, 0xba, 0xcd, 0x4a, 0x1e, 0x4c, 0x2e, 0x63,
+ 0x81, 0x71, 0xb6, 0xe8, 0xc7, 0x3f, 0x4c, 0x1f, 0xff, 0x53, 0x18, 0x14, 0xd1, 0x90, 0x7b, 0xd5,
+ 0x8b, 0xb0, 0xd7, 0xb6, 0x67, 0x27, 0xf9, 0x08, 0xc5, 0xf1, 0x8d, 0x2a, 0x23, 0x4a, 0xa5, 0xff,
+ 0xc7, 0x1c, 0x31, 0x98, 0x2d, 0x76, 0x4a, 0x33, 0x2b, 0x79, 0x43, 0x83, 0x8e, 0x14, 0xbc, 0xce,
+ 0xd6, 0xdc, 0x22, 0x0b, 0xfe, 0x4a, 0x58, 0xf7, 0x42, 0xaf, 0x01, 0xe0, 0xd0, 0x0e, 0xac, 0x8f,
+ 0x20, 0xa8, 0xed, 0x9c, 0x45, 0xc1, 0x6a, 0xf1, 0x61, 0x9b, 0x14, 0x1e, 0x58, 0xd8, 0xa7, 0x5e,
+ 0x0a, 0xc1, 0x61, 0x5e, 0xa0, 0x18, 0xb5, 0x17, 0x3a, 0xa2, 0x95, 0x3e, 0xf2, 0xda, 0xde, 0x2a,
+ 0x08, 0x2a, 0xaa, 0x27, 0x80, 0xa1, 0xfb, 0xad, 0x89, 0x56, 0x05, 0xe6, 0x16, 0x36, 0x59, 0xf6,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x4c, 0xac, 0xe6, 0x2e, 0x4a, 0x51, 0xb3, 0x3b, 0xee, 0x88, 0xce, 0xa9, 0xad, 0x5e, 0x19, 0x31,
+ 0xd7, 0x48, 0xa6, 0xd6, 0xee, 0xf7, 0x7f, 0xaa, 0xfa, 0xd5, 0x49, 0x8c, 0xa2, 0x78, 0x0e, 0xe1,
+ 0x74, 0x7a, 0x36, 0xdb, 0x4c, 0xb0, 0x17, 0xfe, 0xd7, 0xe9, 0xd5, 0x5e, 0xcf, 0xdc, 0x55, 0xb6,
+ },
+ { /* 1 */
+ 0xcc, 0xec, 0x18, 0x15, 0x1b, 0x11, 0x97, 0xc3, 0xf0, 0x9a, 0x7d, 0x3e, 0x77, 0x3a, 0x93, 0x9b,
+ 0x03, 0x52, 0x4c, 0x32, 0xa4, 0x91, 0x05, 0xcd, 0xbd, 0x7b, 0x44, 0x0e, 0x71, 0xad, 0xa6, 0x23,
+ 0x17, 0x0c, 0x9a, 0xa9, 0x18, 0x92, 0x39, 0xd8, 0xad, 0x0a, 0xf2, 0x46, 0x78, 0x7d, 0x02, 0x74,
+ 0xa5, 0x43, 0xab, 0x04, 0x86, 0x68, 0x2c, 0x3c, 0x84, 0x83, 0x35, 0x17, 0xdb, 0x7b, 0x40, 0x98,
+ 0xd4, 0x39, 0x3d, 0x46, 0x72, 0x13, 0xbf, 0x64, 0x51, 0xc4, 0x18, 0x4e, 0x79, 0x1b, 0xea, 0x40,
+ 0xfc, 0x85, 0x52, 0xb3, 0xc9, 0x15, 0xc7, 0x4e, 0x71, 0x26, 0xb7, 0xde, 0x6b, 0x78, 0x61, 0xee,
+ 0xd6, 0xe4, 0xf4, 0xdb, 0x0b, 0x4c, 0xb9, 0x53, 0x87, 0x96, 0x60, 0xfb, 0x27, 0x6c, 0x2e, 0xc3,
+ 0x76, 0x51, 0x8b, 0x89, 0xa2, 0x54, 0x9a, 0xfb, 0x07, 0x98, 0x99, 0xfe, 0x6f, 0x23, 0x47, 0x3e,
+ 0xd2, 0x9d, 0xa5, 0x22, 0xf9, 0xf2, 0xb5, 0x3d, 0xe8, 0x32, 0x90, 0x52, 0x9b, 0x82, 0x65, 0x06,
+ 0x20, 0x4e, 0xcd, 0xc4, 0x9c, 0xb9, 0x60, 0xf6, 0xfe, 0x69, 0x8c, 0x01, 0xa9, 0x7c, 0x1d, 0xe7,
+ 0x65, 0x24, 0x40, 0xd9, 0x48, 0x78, 0xaf, 0x4d, 0xc5, 0x36, 0x9b, 0x11, 0xab, 0xb0, 0x0e, 0x8f,
+ 0x42, 0x41, 0x90, 0xd6, 0x82, 0xee, 0xc6, 0x18, 0xe9, 0x80, 0xa3, 0xb7, 0xcf, 0x8f, 0xfe, 0x8e,
+ 0x46, 0x38, 0xc1, 0x2f, 0x70, 0x50, 0xca, 0x76, 0x86, 0x24, 0x53, 0x1e, 0x73, 0x61, 0xb5, 0x4b,
+ 0xbb, 0x32, 0x16, 0x33, 0x64, 0x8b, 0x0e, 0xc2, 0x9c, 0x2b, 0xd8, 0x7b, 0x37, 0xc3, 0xb6, 0x05,
+ 0x2c, 0xc5, 0x3e, 0x0c, 0x49, 0xb8, 0x74, 0x44, 0x4f, 0x46, 0x5f, 0x39, 0xae, 0x8d, 0xc0, 0x6b,
+ 0x25, 0xb8, 0x19, 0x92, 0xb3, 0xc9, 0x6f, 0x62, 0xfa, 0xe4, 0x40, 0x13, 0x3a, 0x48, 0x34, 0x82,
+ 0x2e, 0x18, 0xf7, 0x91, 0x30, 0xe7, 0x72, 0x73, 0x99, 0x14, 0x27, 0x8c, 0xf0, 0xfa, 0x04, 0xe8,
+ 0x7f, 0x2c, 0xac, 0x17, 0x58, 0x25, 0x81, 0xdd, 0xb2, 0x3a, 0x86, 0xd4, 0xfb, 0xe6, 0xb3, 0xd7,
+ 0xad, 0xb1, 0x09, 0x35, 0xa1, 0xd7, 0x34, 0xe0, 0x5a, 0x08, 0x16, 0x86, 0x60, 0x64, 0xd6, 0xd1,
+ 0x06, 0xa4, 0x98, 0x64, 0x8b, 0xe1, 0x0a, 0x59, 0xb9, 0xf6, 0x88, 0x1c, 0xe2, 0x99, 0x8f, 0x46,
+ 0x6b, 0x72, 0x7a, 0x8c, 0xe4, 0x26, 0xbd, 0xc8, 0xa2, 0x4b, 0x30, 0x9c, 0xf2, 0x36, 0x17, 0x80,
+ 0x3b, 0xc9, 0xa4, 0xa5, 0x51, 0x2a, 0x4d, 0x9c, 0xe2, 0x4c, 0xad, 0x7f, 0xd6, 0xf0, 0xc2, 0x1f,
+ 0x6a, 0xfd, 0xff, 0x23, 0x39, 0xe8, 0xbe, 0x32, 0xc9, 0x62, 0x0c, 0x27, 0xdd, 0xec, 0x75, 0x20,
+ 0x7e, 0xa3, 0x29, 0xb8, 0x85, 0xeb, 0x82, 0x27, 0xd9, 0x13, 0xba, 0x6f, 0xd4, 0x3c, 0xd1, 0x77,
+ 0x3c, 0xe2, 0xb9, 0x6e, 0x07, 0x05, 0x44, 0x3f, 0x30, 0x93, 0x19, 0xd8, 0x1b, 0xb3, 0x2f, 0xf9,
+ 0x84, 0x82, 0xe3, 0x6f, 0xc7, 0x1f, 0x4f, 0x30, 0x11, 0xc3, 0x85, 0xad, 0x5d, 0xdd, 0x3f, 0xdf,
+ 0x67, 0xf9, 0x89, 0x44, 0x31, 0x27, 0xa9, 0x7a, 0x13, 0x64, 0xe3, 0xa4, 0xf5, 0xc7, 0xca, 0x0c,
+ 0xb6, 0x36, 0x60, 0x54, 0x6c, 0x44, 0x19, 0x8a, 0x46, 0x2d, 0x37, 0xf8, 0x1f, 0xe8, 0x09, 0x29,
+ 0x16, 0x83, 0x1f, 0x06, 0xc5, 0x5c, 0x3a, 0x22, 0xc6, 0x23, 0xce, 0xfd, 0x57, 0xa7, 0x60, 0xd4,
+ 0x88, 0x09, 0x10, 0xa7, 0x12, 0x1e, 0x5b, 0x82, 0xa0, 0xec, 0x56, 0x95, 0x5a, 0x2c, 0xe2, 0x53,
+ 0x58, 0x49, 0x7c, 0x18, 0x92, 0xb3, 0xe8, 0x88, 0x9e, 0x8c, 0xbe, 0x72, 0x9f, 0xd9, 0x43, 0xd6,
+ 0xbc, 0x19, 0x0b, 0xf8, 0x32, 0xa4, 0x07, 0x61, 0x4e, 0xf4, 0x6c, 0xdc, 0xfa, 0x80, 0x5b, 0xe3,
+ 0xde, 0x16, 0x56, 0xea, 0x2c, 0xf3, 0xa1, 0x8f, 0x59, 0x1d, 0x43, 0x6a, 0x9c, 0x73, 0xb8, 0x8a,
+ 0xc2, 0xba, 0x22, 0x40, 0xb7, 0x4f, 0x85, 0x46, 0x97, 0xe7, 0xd6, 0xb3, 0x2e, 0xbc, 0x8a, 0x94,
+ 0x4e, 0xca, 0x63, 0x1e, 0x57, 0xef, 0xd2, 0xaa, 0x58, 0xaf, 0x70, 0x8f, 0xc8, 0x7e, 0x23, 0x02,
+ 0x3f, 0xb0, 0xf5, 0x5c, 0xa3, 0x94, 0x41, 0xf2, 0x8d, 0xe8, 0x5d, 0xd6, 0x6a, 0x1e, 0x89, 0xda,
+ 0x0e, 0x56, 0x3a, 0x55, 0xac, 0x5e, 0x12, 0x85, 0x67, 0x7d, 0xab, 0x8d, 0x59, 0x86, 0x19, 0x0f,
+ 0x1f, 0xfe, 0x38, 0x98, 0x3f, 0x2d, 0x21, 0x04, 0x73, 0x81, 0xd1, 0xd7, 0xc3, 0x62, 0x94, 0x3d,
+ 0x99, 0xa1, 0x12, 0x6a, 0x81, 0x6d, 0x68, 0x03, 0xb4, 0x10, 0x2c, 0xcf, 0xc0, 0xc8, 0x6f, 0x61,
+ 0x0c, 0x8b, 0xf3, 0xc8, 0xd5, 0x01, 0x14, 0xb2, 0xb1, 0x2f, 0xd3, 0x38, 0x07, 0xf1, 0xdd, 0x8c,
+ 0x70, 0xf5, 0x13, 0xed, 0x29, 0xb5, 0x90, 0xa2, 0xbe, 0x6e, 0x11, 0xe2, 0x8d, 0xba, 0xc8, 0x78,
+ 0x44, 0xe5, 0x08, 0xb2, 0x09, 0x0f, 0xcc, 0x41, 0x50, 0x76, 0x2b, 0xab, 0x2d, 0x16, 0x71, 0xc8,
+ 0x2d, 0x4a, 0xbb, 0xa3, 0x94, 0x76, 0x77, 0xbe, 0x24, 0x6f, 0x63, 0x82, 0x81, 0x57, 0xa2, 0xcb,
+ 0x5f, 0x62, 0x61, 0xd3, 0xc4, 0x9c, 0xe1, 0x2b, 0x4c, 0x53, 0x0a, 0xd5, 0x52, 0x9a, 0xae, 0x30,
+ 0x78, 0x07, 0xb1, 0xdc, 0x0e, 0x0a, 0x88, 0x7e, 0x60, 0xe5, 0x32, 0x73, 0x36, 0xa5, 0x5e, 0x31,
+ 0xcb, 0xc7, 0x05, 0xde, 0x4d, 0x3e, 0x9e, 0x60, 0x22, 0x45, 0xc9, 0x99, 0xba, 0x79, 0x7e, 0x7d,
+ 0xd5, 0xb6, 0xb8, 0xe9, 0xaf, 0xdd, 0xbc, 0x9e, 0x3a, 0xed, 0x24, 0xf5, 0x56, 0xc1, 0x88, 0xe0,
+ 0x73, 0xa7, 0x5f, 0xdf, 0x8d, 0x24, 0x95, 0x6f, 0x03, 0x15, 0x55, 0xec, 0xfc, 0x17, 0x6e, 0x5b,
+ 0x5c, 0x30, 0x2d, 0xe1, 0x60, 0x0d, 0xe4, 0xe6, 0xf1, 0x28, 0x4e, 0xdb, 0x23, 0x37, 0x08, 0x13,
+ 0xfe, 0x58, 0x9b, 0x2e, 0xb0, 0x4a, 0xc1, 0x79, 0xa7, 0x74, 0xcf, 0x6b, 0x35, 0x0f, 0xa5, 0x6d,
+ 0x6f, 0x0b, 0x2b, 0x75, 0x16, 0x98, 0xb1, 0xa6, 0xcd, 0xef, 0xc0, 0x35, 0x4e, 0xd8, 0x5c, 0x45,
+ 0x1a, 0x08, 0xec, 0xce, 0x10, 0x5d, 0x2e, 0x90, 0x77, 0x0c, 0x1d, 0xc5, 0x50, 0x56, 0xbd, 0x58,
+ 0x07, 0x2b, 0x1d, 0xcb, 0x56, 0x2f, 0x09, 0xa3, 0xd2, 0xdf, 0xb4, 0xa7, 0xcd, 0x43, 0xed, 0xe6,
+ 0xee, 0x7f, 0x1c, 0x4c, 0xfe, 0xf7, 0xf1, 0x02, 0xd8, 0xa1, 0x89, 0x8a, 0x80, 0x31, 0x4a, 0xff,
+ 0xea, 0x06, 0x4d, 0xb5, 0x0c, 0x49, 0xfd, 0x6c, 0xb7, 0x05, 0x79, 0x23, 0x3c, 0xdf, 0x01, 0x3a,
+ 0xc8, 0x95, 0x49, 0xec, 0xe9, 0xaf, 0x9b, 0xad, 0x9f, 0x3e, 0x8d, 0x97, 0xcb, 0xd4, 0xd8, 0x5e,
+ 0x8c, 0x70, 0x41, 0x5e, 0xe0, 0xa0, 0x57, 0xec, 0xcf, 0x48, 0xa6, 0x3c, 0xe6, 0xc2, 0xa9, 0x96,
+ 0xb5, 0x64, 0x2c, 0x66, 0xc8, 0xd5, 0x1c, 0x47, 0xfb, 0x56, 0x73, 0xf6, 0x6e, 0x45, 0xaf, 0x0a,
+ 0x38, 0x9b, 0xe8, 0x97, 0xf5, 0xbb, 0x48, 0x51, 0x5f, 0x37, 0xe9, 0x71, 0xa7, 0x5d, 0x64, 0x3c,
+ 0x59, 0xc6, 0xf9, 0xb7, 0x4f, 0x7d, 0xeb, 0x72, 0xf5, 0xa5, 0x82, 0xc9, 0xb0, 0x03, 0x21, 0x76,
+ 0x69, 0xaf, 0xb3, 0x11, 0x9d, 0x79, 0xbb, 0xff, 0x74, 0x19, 0x48, 0x29, 0xac, 0x41, 0xd3, 0x03,
+ 0x10, 0x27, 0x87, 0x62, 0x4e, 0xbd, 0x30, 0x7b, 0x7f, 0xd5, 0x46, 0xe1, 0xb5, 0x3e, 0xef, 0x92,
+ 0xf0, 0x0e, 0xa1, 0x7b, 0x1c, 0x14, 0xd3, 0xfc, 0xc0, 0x09, 0x64, 0xe6, 0x6c, 0x89, 0xbc, 0x62,
+ 0xa3, 0xe7, 0x33, 0x60, 0x0d, 0x89, 0x26, 0x65, 0x3d, 0x75, 0xbd, 0x0b, 0x39, 0xe2, 0xcf, 0xde,
+ 0x09, 0x7d, 0x27, 0x9e, 0xfa, 0x71, 0x1b, 0x26, 0xb5, 0xa2, 0x1f, 0x2a, 0x94, 0xc5, 0xf4, 0xe9,
+ 0x0d, 0x04, 0x76, 0x67, 0x08, 0xcf, 0x17, 0x48, 0xda, 0x06, 0xef, 0x83, 0x28, 0x2b, 0xbf, 0x2c,
+ 0xfd, 0x0a, 0xd7, 0x1c, 0x14, 0xdb, 0xc4, 0xb4, 0x1a, 0x0f, 0x8b, 0x65, 0x44, 0xa2, 0x03, 0x4e,
+ 0x1b, 0x87, 0x69, 0x61, 0xcd, 0x93, 0x2d, 0x6a, 0x1c, 0x25, 0x21, 0x7e, 0x7f, 0x8c, 0xdf, 0xf8,
+ 0x27, 0x65, 0xd0, 0x0f, 0xca, 0x96, 0x69, 0x55, 0x2c, 0xb6, 0x38, 0xa6, 0x64, 0x3f, 0xf0, 0x01,
+ 0x8d, 0xff, 0xc4, 0xf1, 0x3d, 0x6e, 0x54, 0x16, 0xa4, 0x61, 0x9a, 0x87, 0xc9, 0x18, 0xcb, 0x36,
+ 0xf2, 0xd3, 0x68, 0xe6, 0x65, 0x4b, 0xd5, 0xcb, 0x16, 0x5b, 0x1c, 0x53, 0x32, 0xfe, 0x78, 0xe1,
+ 0x92, 0x01, 0xfc, 0x69, 0x02, 0x43, 0x75, 0x12, 0xd7, 0xe0, 0x4b, 0x50, 0x0a, 0x7a, 0x5f, 0x0b,
+ 0x6d, 0xd6, 0xe2, 0xe8, 0x6f, 0xc7, 0xb7, 0x91, 0x1b, 0xbd, 0xb8, 0x80, 0x10, 0xaf, 0x98, 0xc6,
+ 0x5d, 0xbf, 0xa8, 0x4e, 0xbd, 0xc3, 0xe7, 0x1c, 0x9a, 0x01, 0x72, 0x60, 0x0c, 0xed, 0x6a, 0xb3,
+ 0xf1, 0x81, 0x24, 0xd4, 0xc1, 0xda, 0xd0, 0x06, 0xab, 0x20, 0x58, 0x5d, 0x43, 0x53, 0xde, 0xc2,
+ 0x21, 0xc1, 0x48, 0x6b, 0x41, 0x77, 0x63, 0x0c, 0x95, 0x40, 0xb0, 0xba, 0x86, 0xa6, 0x7f, 0x47,
+ 0x37, 0x42, 0x57, 0x6d, 0x84, 0x2b, 0x59, 0x2e, 0x53, 0x63, 0x7e, 0x47, 0xd1, 0x01, 0x1f, 0x93,
+ 0x40, 0x9c, 0x59, 0x4b, 0xfb, 0xb1, 0xc0, 0x2f, 0x3f, 0xd2, 0xdb, 0x02, 0x91, 0xf8, 0x3a, 0x0d,
+ 0x8e, 0xad, 0x88, 0xc3, 0x99, 0xff, 0x51, 0xdb, 0x19, 0x1a, 0xde, 0x89, 0xb8, 0xb5, 0x6d, 0x15,
+ 0xe8, 0xdb, 0x84, 0x28, 0x75, 0x16, 0xfb, 0x5b, 0x61, 0x57, 0x01, 0x96, 0x62, 0xa8, 0xc5, 0xb9,
+ 0xe4, 0x50, 0x77, 0xe0, 0xa0, 0x17, 0xef, 0xe9, 0xd0, 0x78, 0xd2, 0xae, 0x65, 0x59, 0x18, 0x35,
+ 0xec, 0xa2, 0xd5, 0xd1, 0x87, 0xa8, 0xf7, 0x35, 0x0e, 0xf3, 0xf1, 0x3f, 0xde, 0x46, 0x8e, 0x7c,
+ 0x9e, 0x8a, 0x0f, 0xa1, 0xd7, 0x42, 0x61, 0xa0, 0x66, 0xcf, 0x98, 0x68, 0x0d, 0x8b, 0x82, 0x87,
+ 0x9c, 0x57, 0xc6, 0x3c, 0xae, 0x1d, 0x67, 0x97, 0xb0, 0x9d, 0xe0, 0xdd, 0x53, 0xfc, 0x46, 0x04,
+ 0xd1, 0xcf, 0xe9, 0x10, 0x5d, 0x63, 0xb0, 0xf0, 0x55, 0x49, 0xd4, 0x5c, 0xea, 0x2f, 0xc3, 0x25,
+ 0xe7, 0x02, 0x3b, 0xd2, 0x04, 0x86, 0xea, 0x24, 0x6d, 0x03, 0x96, 0xa0, 0x14, 0xf4, 0xbe, 0x16,
+ 0xb8, 0x60, 0x5a, 0x01, 0xc0, 0x1a, 0x0b, 0x0f, 0x21, 0x50, 0x9c, 0x75, 0x46, 0x6e, 0x10, 0x26,
+ 0x2f, 0x97, 0x72, 0x3e, 0xed, 0x29, 0x71, 0x89, 0xf2, 0x3d, 0x1b, 0x37, 0xdf, 0x20, 0x66, 0x48,
+ 0xe2, 0xf4, 0xef, 0x84, 0x2b, 0xf6, 0xe5, 0xb0, 0x69, 0x8e, 0x5a, 0xb2, 0x87, 0xc0, 0x97, 0x73,
+ 0x8a, 0xd4, 0xd9, 0x3a, 0x6b, 0x41, 0x5d, 0xb5, 0x76, 0xbe, 0x2e, 0x20, 0x04, 0x5b, 0x26, 0xd0,
+ 0xd7, 0x6b, 0x71, 0x74, 0xd6, 0x82, 0xba, 0xa9, 0xec, 0xbf, 0x5c, 0x40, 0x08, 0xb6, 0x4c, 0x63,
+ 0xb4, 0xeb, 0xa9, 0xc9, 0x15, 0x1b, 0x1f, 0xbd, 0x90, 0x7f, 0x4f, 0x4d, 0x41, 0x9f, 0xcd, 0xaa,
+ 0x29, 0x33, 0xea, 0x5a, 0x66, 0xc8, 0x7b, 0xd0, 0x4b, 0xcb, 0x93, 0x2b, 0x3d, 0xb9, 0xe9, 0x0e,
+ 0x13, 0x75, 0xcb, 0x50, 0xea, 0x2c, 0x35, 0xb6, 0xc2, 0xae, 0x02, 0xef, 0xc4, 0x93, 0x49, 0xb1,
+ 0x98, 0x2e, 0x97, 0xc5, 0x5c, 0xa3, 0x6b, 0xf9, 0xdf, 0x39, 0x10, 0x74, 0xef, 0x12, 0x0d, 0xc1,
+ 0x80, 0xfb, 0xb2, 0x96, 0x35, 0xa1, 0x43, 0x5e, 0x7e, 0x67, 0x75, 0x04, 0xe1, 0x33, 0x74, 0x1a,
+ 0xa6, 0x11, 0xe7, 0x36, 0x22, 0xf9, 0x29, 0xf1, 0x39, 0xf8, 0x71, 0x19, 0xaa, 0xd6, 0xe6, 0xbb,
+ 0x62, 0x0f, 0x5d, 0x12, 0x1e, 0x57, 0xa6, 0xee, 0x17, 0xe9, 0x2f, 0xb6, 0x66, 0xf3, 0xe3, 0x69,
+ 0xb3, 0xc0, 0xb4, 0x02, 0x43, 0x34, 0x16, 0x1e, 0x42, 0xa0, 0xfb, 0xea, 0x8c, 0xdc, 0x20, 0x4c,
+ 0x5e, 0xed, 0xe4, 0x7c, 0x19, 0x52, 0xe2, 0xd1, 0x27, 0x7a, 0x36, 0x6e, 0x7d, 0x40, 0xcc, 0x90,
+ 0x72, 0x28, 0xda, 0x70, 0x50, 0xea, 0x96, 0x95, 0x68, 0x3c, 0x69, 0x57, 0xd3, 0xcd, 0x0c, 0xfb,
+ 0x43, 0xce, 0x15, 0x79, 0x5f, 0x20, 0xc5, 0xe2, 0x82, 0xa9, 0x9f, 0x0c, 0xe0, 0x55, 0x9c, 0x2e,
+ 0x34, 0x10, 0x1b, 0x5f, 0x20, 0xba, 0x5c, 0xe3, 0xee, 0x18, 0x3a, 0x49, 0xa0, 0xac, 0xb9, 0xb0,
+ 0x35, 0x9f, 0x9e, 0xf0, 0xfd, 0x74, 0x5f, 0x19, 0x85, 0x31, 0x06, 0xf2, 0x8f, 0x76, 0xdb, 0x10,
+ 0x52, 0x66, 0x17, 0xb4, 0xcc, 0x53, 0xf6, 0x63, 0x96, 0x55, 0xe5, 0x56, 0x7a, 0xb1, 0x11, 0x1c,
+ 0x26, 0xea, 0x55, 0xa0, 0x17, 0x58, 0x6a, 0xaf, 0x47, 0x9f, 0x04, 0x1d, 0x4b, 0xe5, 0x92, 0xa1,
+ 0x7d, 0xf1, 0x65, 0x8a, 0x21, 0x7a, 0x87, 0xea, 0x64, 0x68, 0xfe, 0x61, 0xa5, 0x91, 0x77, 0x54,
+ 0xb7, 0xb9, 0xe5, 0xfb, 0xb1, 0x8a, 0x1a, 0x70, 0x2d, 0x04, 0x0b, 0x43, 0x30, 0x32, 0x6b, 0x89,
+ 0x0a, 0x2f, 0x6b, 0xac, 0x5e, 0xe0, 0x1e, 0xeb, 0x08, 0xd9, 0x5b, 0x24, 0xe5, 0x68, 0x52, 0xca,
+ 0x45, 0x6a, 0x8d, 0x1d, 0xd4, 0xc1, 0xcf, 0xbb, 0x3b, 0x5f, 0x17, 0x10, 0x02, 0xcc, 0x13, 0x68,
+ 0x81, 0x74, 0x37, 0x39, 0xe8, 0x6f, 0x40, 0xa4, 0x15, 0x4e, 0x49, 0xbf, 0xce, 0xe9, 0x16, 0xba,
+ 0x6e, 0x84, 0xae, 0xda, 0xcb, 0x56, 0xb2, 0x5c, 0xa6, 0xc6, 0xfc, 0x8e, 0x61, 0x02, 0x3e, 0xe5,
+ 0x53, 0xe9, 0x92, 0x1b, 0x11, 0x9d, 0xf5, 0x99, 0xfd, 0x7c, 0xd9, 0xed, 0x55, 0x6b, 0x73, 0xbc,
+ 0x4a, 0xb3, 0x32, 0xe7, 0xa5, 0x51, 0xde, 0xc4, 0x37, 0x0b, 0x80, 0x26, 0x74, 0x90, 0x68, 0xc7,
+ 0x79, 0x88, 0x34, 0x73, 0xd3, 0xc4, 0x8b, 0x84, 0x0b, 0xcc, 0x0e, 0xc8, 0x19, 0x7f, 0x3c, 0x91,
+ 0x32, 0xb4, 0x83, 0x3b, 0xab, 0x5b, 0x56, 0xba, 0x57, 0xee, 0xb2, 0x55, 0x42, 0x35, 0x36, 0xf6,
+ 0x61, 0x5d, 0x11, 0x20, 0xba, 0xc6, 0xa3, 0x23, 0xaa, 0x92, 0x6b, 0xb8, 0x17, 0x5e, 0x45, 0x4a,
+ 0xfb, 0xae, 0x4f, 0x78, 0x9f, 0x3a, 0xce, 0xed, 0xa3, 0xf9, 0x03, 0x79, 0xa6, 0x3b, 0x8c, 0x08,
+ 0x39, 0x14, 0x6d, 0x38, 0x28, 0x75, 0x4b, 0xab, 0x34, 0x1e, 0xd5, 0xca, 0x88, 0x87, 0x06, 0x9c,
+ 0xc0, 0x67, 0xeb, 0xdd, 0xce, 0x10, 0x83, 0x71, 0x41, 0xb5, 0xae, 0x06, 0x70, 0xcb, 0x4e, 0x17,
+ 0xfa, 0x21, 0xca, 0xd7, 0x42, 0xf4, 0xcd, 0x17, 0xc8, 0xd0, 0x3f, 0xc2, 0x89, 0xe1, 0xee, 0xa8,
+ 0x5b, 0x1b, 0x30, 0x2a, 0x36, 0x22, 0xed, 0x45, 0x23, 0xf7, 0xfa, 0x7c, 0xee, 0x74, 0xe5, 0xf5,
+ 0xa4, 0xcc, 0x2e, 0xab, 0x5b, 0xa6, 0x2f, 0xc6, 0xef, 0xaa, 0x09, 0xac, 0xf4, 0xa1, 0x22, 0x38,
+ 0xba, 0xbd, 0x93, 0x9c, 0xb9, 0x45, 0x0d, 0x38, 0xf7, 0x02, 0xe4, 0xc0, 0x18, 0x19, 0xd4, 0xa5,
+ 0xda, 0x6f, 0x07, 0x13, 0xde, 0x4d, 0xad, 0xe1, 0x36, 0xb9, 0xb3, 0xc3, 0x20, 0x9d, 0xf3, 0x4f,
+ 0x4c, 0x17, 0xaa, 0x83, 0x2e, 0xb0, 0xd4, 0x9d, 0x8e, 0xfd, 0x08, 0x3a, 0x96, 0x09, 0xe7, 0x81,
+ 0x05, 0xf6, 0xd4, 0x56, 0x2f, 0x70, 0x0f, 0x94, 0x04, 0x8d, 0xcc, 0x12, 0x93, 0x34, 0x29, 0x65,
+ 0xc3, 0x35, 0xa7, 0xef, 0x6a, 0x81, 0x86, 0xbc, 0xfc, 0xce, 0xea, 0x08, 0x01, 0x66, 0xe8, 0x34,
+ 0x3a, 0x46, 0x21, 0x0a, 0x8c, 0xe4, 0x4e, 0x66, 0x89, 0x65, 0x91, 0xc4, 0xf9, 0x2a, 0xa0, 0xbf,
+ 0x82, 0x26, 0x7b, 0x0b, 0x4c, 0xfe, 0x45, 0x69, 0xa8, 0x35, 0x0d, 0xb1, 0xbf, 0x44, 0xb0, 0x99,
+ 0x18, 0xd5, 0x25, 0x53, 0x69, 0x02, 0x28, 0xa7, 0xa1, 0x5e, 0x65, 0x70, 0x0e, 0x21, 0x79, 0xdb,
+ 0xc9, 0x1a, 0xcc, 0x43, 0x34, 0x61, 0x98, 0x57, 0xf4, 0x17, 0xb1, 0x2c, 0xe4, 0x0e, 0xba, 0xfe,
+ 0x68, 0x20, 0x36, 0xbe, 0x40, 0xb7, 0xb8, 0x05, 0x1f, 0x30, 0x74, 0x92, 0x83, 0x9b, 0xb1, 0xa3,
+ 0xf6, 0xaa, 0x39, 0x1f, 0x97, 0xf5, 0xd9, 0xa5, 0x79, 0xff, 0xec, 0xfa, 0x8e, 0x10, 0x33, 0x24,
+ 0x63, 0x80, 0xd8, 0xbd, 0xc3, 0x99, 0xa5, 0x14, 0x7c, 0xc0, 0x13, 0x0d, 0x49, 0x29, 0x81, 0xc9,
+ 0x87, 0xd0, 0xaf, 0x5d, 0x63, 0x8e, 0x4a, 0xfd, 0xac, 0xb8, 0xc1, 0xa3, 0x2c, 0x70, 0x99, 0xfc,
+ 0x49, 0xe1, 0x7e, 0xd5, 0x01, 0xc0, 0xdb, 0x09, 0x8a, 0x70, 0xc4, 0x28, 0x05, 0x3d, 0xce, 0xe4,
+ 0x36, 0xcd, 0xd2, 0xc2, 0x59, 0xe5, 0x5a, 0xd4, 0x38, 0x4a, 0x42, 0xfc, 0xfe, 0xdb, 0x7d, 0x33,
+ 0x91, 0x53, 0xb0, 0x5b, 0xa6, 0xd2, 0x70, 0xdf, 0x6a, 0x9b, 0x0f, 0x5e, 0x7b, 0xd7, 0xf9, 0x28,
+ 0x97, 0xf7, 0x28, 0x3f, 0x2d, 0x33, 0x7a, 0x86, 0xd3, 0x6d, 0x87, 0x42, 0x99, 0x4e, 0x76, 0x6e,
+ 0x33, 0x3b, 0x06, 0x94, 0x76, 0x95, 0x55, 0x40, 0x3c, 0xc7, 0x8e, 0xee, 0x6d, 0xef, 0x54, 0x56,
+ 0x08, 0xf2, 0xa2, 0x31, 0x27, 0xbf, 0x18, 0xdc, 0xde, 0x8b, 0x23, 0x91, 0xbb, 0x1f, 0x96, 0x49,
+ 0x7c, 0x7e, 0xe0, 0x25, 0xfc, 0xb4, 0x84, 0x10, 0x0f, 0x41, 0xc2, 0xda, 0x8a, 0x4b, 0x15, 0xf4,
+ 0x02, 0xdd, 0xc9, 0x9d, 0x79, 0x5f, 0x06, 0x37, 0xd6, 0x52, 0x78, 0xb5, 0x5e, 0x77, 0xc4, 0x83,
+ 0x77, 0xde, 0x0e, 0x26, 0x7f, 0x9a, 0x99, 0x01, 0x6c, 0xb1, 0xa5, 0x45, 0x40, 0xf9, 0x25, 0x9e,
+ 0x85, 0x0d, 0x66, 0xc0, 0x1a, 0xd1, 0x4c, 0xca, 0x7a, 0xea, 0xb9, 0x16, 0x72, 0x07, 0x5d, 0x7f,
+ 0x66, 0x76, 0x0c, 0xeb, 0xec, 0xe9, 0xaa, 0x80, 0x78, 0x4d, 0xdf, 0x1f, 0xda, 0x1d, 0xa8, 0xac,
+ 0x41, 0x13, 0xdc, 0xe4, 0x26, 0x7f, 0xc3, 0xd5, 0x54, 0xfb, 0xe7, 0xb9, 0xbe, 0x22, 0x58, 0xad,
+ 0x30, 0x69, 0x4a, 0xa6, 0xd2, 0x04, 0x50, 0x8d, 0x81, 0xbc, 0xca, 0xe0, 0x1c, 0x42, 0xf2, 0x75,
+ 0xcd, 0x63, 0x9d, 0xba, 0xc6, 0xdf, 0x94, 0x39, 0x9b, 0xb3, 0x41, 0x85, 0x58, 0xe0, 0xf1, 0x3b,
+ 0xd0, 0x40, 0x6c, 0xbf, 0x80, 0xad, 0xb3, 0x0a, 0x3e, 0x60, 0xe8, 0xe7, 0xc5, 0xf5, 0xa1, 0x85,
+ 0xd9, 0x3d, 0x4b, 0x21, 0x7a, 0xdc, 0xa8, 0x2c, 0x8b, 0xc2, 0xf7, 0xcd, 0x51, 0x30, 0x55, 0x6c,
+ 0xa9, 0xc8, 0x58, 0xcc, 0x53, 0x69, 0x38, 0x8e, 0x35, 0xac, 0xe6, 0x2f, 0xdc, 0x8a, 0x9d, 0x14,
+ 0xaa, 0x9a, 0x14, 0xfe, 0xf7, 0xf8, 0x3d, 0x43, 0x88, 0xd7, 0xa2, 0x21, 0xad, 0x27, 0x3b, 0x37,
+ 0xc5, 0x91, 0x3f, 0x8b, 0xe1, 0x60, 0x8c, 0xe5, 0x45, 0x38, 0x62, 0x14, 0xe3, 0xff, 0x67, 0x72,
+ 0x60, 0xd2, 0x94, 0x8f, 0x67, 0x08, 0xa0, 0xd9, 0xc1, 0xbb, 0x57, 0x03, 0x38, 0x84, 0x27, 0xea,
+ 0xf8, 0xfc, 0x03, 0x4a, 0x3b, 0xab, 0xcb, 0x20, 0x1e, 0x82, 0x47, 0x77, 0xd7, 0x96, 0x2a, 0x2b,
+ 0x04, 0x79, 0x51, 0xf9, 0xf2, 0xbe, 0x0c, 0x6e, 0x6f, 0xa4, 0xf0, 0xa9, 0xbc, 0xee, 0x4b, 0xc5,
+ 0x90, 0xdc, 0x35, 0xf4, 0x7b, 0x1c, 0x73, 0x25, 0x01, 0xb2, 0x33, 0xe5, 0x54, 0x0d, 0x9b, 0x88,
+ 0xe6, 0x8d, 0xbe, 0x7d, 0xd9, 0x48, 0xe9, 0xde, 0x06, 0x2a, 0xaa, 0x1b, 0x3b, 0x2e, 0xdc, 0xb6,
+ 0x96, 0x78, 0xad, 0x90, 0xf0, 0xfd, 0x79, 0x7c, 0xb8, 0x44, 0xbb, 0xf9, 0xb6, 0x94, 0x14, 0xce,
+ 0xaf, 0x6c, 0xc0, 0xa8, 0xd8, 0x88, 0x32, 0xd7, 0x8c, 0x5a, 0x6e, 0x33, 0x3e, 0x13, 0x12, 0x52,
+ 0xc6, 0xc3, 0x73, 0xb9, 0x45, 0xf1, 0x89, 0x28, 0xf8, 0x43, 0x26, 0x1a, 0x92, 0x52, 0xc1, 0x51,
+ 0xa7, 0x9e, 0x62, 0x99, 0xff, 0x37, 0x2a, 0x0b, 0x52, 0xd1, 0x4d, 0xa2, 0x85, 0x0c, 0x84, 0x1b,
+ 0xa1, 0x3a, 0xfa, 0xfd, 0x74, 0xd6, 0x20, 0x52, 0xeb, 0x27, 0xc5, 0xbe, 0x67, 0x95, 0x0b, 0x5d,
+ 0xd8, 0xb2, 0xce, 0x8e, 0xa7, 0x12, 0xab, 0xd6, 0xe0, 0xeb, 0xcb, 0x76, 0x7e, 0xea, 0x37, 0xcc,
+ 0x1e, 0x71, 0xbd, 0x37, 0xe2, 0xe3, 0x22, 0xfe, 0x18, 0xa8, 0xed, 0x6c, 0xec, 0xb8, 0xf6, 0x9d,
+ 0x4d, 0x98, 0x2f, 0x2c, 0xf3, 0x7e, 0xd7, 0x67, 0xe5, 0xd4, 0x34, 0x81, 0xb9, 0xd3, 0x85, 0x21,
+ 0x64, 0xab, 0xc5, 0x76, 0x95, 0xb6, 0xac, 0xb7, 0xae, 0x1f, 0xa7, 0xaa, 0x84, 0x6a, 0x6c, 0x2f,
+ 0x9a, 0xf3, 0x5e, 0x58, 0x25, 0xfc, 0x6d, 0xce, 0x09, 0x6b, 0x68, 0xc1, 0xb1, 0x65, 0xc9, 0x42,
+ 0xe3, 0x7b, 0x6a, 0x2b, 0xf6, 0x38, 0xe6, 0x4a, 0x02, 0xa7, 0x66, 0x09, 0xa8, 0x1a, 0xf5, 0xd3,
+ 0xf9, 0x73, 0x86, 0xe5, 0xe6, 0x65, 0xc8, 0xda, 0x75, 0xab, 0x7b, 0xcc, 0xf8, 0x4c, 0x48, 0x8b,
+ 0xf7, 0x25, 0xbc, 0xb0, 0x4a, 0x3b, 0xda, 0x5f, 0x12, 0xd6, 0xd0, 0x41, 0xa1, 0xca, 0x51, 0x84,
+ 0x19, 0x5a, 0xa0, 0xfc, 0xb4, 0xcc, 0x2b, 0x5d, 0xca, 0x77, 0x59, 0xcb, 0x21, 0xfb, 0x1b, 0x7b,
+ 0x83, 0xa9, 0xfe, 0xa4, 0x91, 0x30, 0x46, 0x93, 0xc3, 0x1c, 0x31, 0x0a, 0x90, 0x9e, 0xd2, 0x39,
+ 0x4b, 0x3c, 0xb7, 0x48, 0x78, 0x9f, 0xdd, 0x3e, 0x5c, 0x22, 0xbc, 0x9d, 0x5b, 0x4a, 0x0a, 0x67,
+ 0x4f, 0x45, 0xe6, 0xb1, 0x8a, 0x21, 0xd1, 0x50, 0x33, 0x86, 0x4c, 0x34, 0xe7, 0xa4, 0x41, 0xa2,
+ 0x7b, 0x55, 0xfd, 0xee, 0xaa, 0x9b, 0x8d, 0xb3, 0xdd, 0x9e, 0x76, 0x7d, 0x47, 0x08, 0xf8, 0x12,
+ 0xef, 0xf0, 0x99, 0xe3, 0x23, 0x39, 0xf2, 0xf8, 0xb3, 0x88, 0xb5, 0x31, 0xaf, 0xeb, 0x28, 0x5f,
+ 0x9d, 0xd8, 0x43, 0x93, 0x73, 0xd3, 0x64, 0x6d, 0xdb, 0xb4, 0xdc, 0x66, 0x7c, 0x26, 0x24, 0xa4,
+ 0x74, 0x8c, 0x42, 0x14, 0xdb, 0x0b, 0x9c, 0xcc, 0xd1, 0xca, 0xe1, 0x4b, 0x31, 0x54, 0x83, 0xbd,
+ 0xc7, 0x4c, 0xf6, 0x16, 0x98, 0x3f, 0x8a, 0xd2, 0x93, 0x6a, 0x1a, 0xa1, 0xbd, 0x88, 0xa3, 0xf1,
+ 0xca, 0x48, 0x80, 0x71, 0x90, 0xf0, 0x9d, 0x9a, 0x49, 0x6c, 0xf5, 0x22, 0x95, 0xa3, 0x1c, 0xdd,
+ 0x6c, 0x59, 0x67, 0x47, 0xb2, 0x09, 0xb4, 0x6b, 0x70, 0x94, 0x84, 0x3b, 0x3f, 0x75, 0xfa, 0x66,
+ 0xf3, 0x5c, 0xed, 0x49, 0xb8, 0x85, 0xd6, 0x31, 0x7d, 0x72, 0x20, 0xe8, 0x1d, 0x24, 0x1a, 0x41,
+ 0x31, 0xe6, 0xcf, 0x09, 0x0f, 0xca, 0x53, 0x77, 0xea, 0x95, 0xf6, 0x5b, 0x33, 0x98, 0x90, 0xd5,
+ 0x3e, 0x3f, 0x70, 0xf3, 0x7e, 0x5a, 0x42, 0x08, 0xe6, 0xc1, 0x61, 0x6d, 0x45, 0xc4, 0xeb, 0x7a,
+ 0x01, 0x8f, 0x85, 0xaf, 0xdd, 0xce, 0x03, 0xfa, 0x6b, 0x29, 0x3c, 0xbb, 0x2f, 0xda, 0x62, 0xa0,
+ 0xdb, 0xe0, 0x82, 0xbc, 0x03, 0x83, 0xae, 0x1b, 0x5d, 0x90, 0x8f, 0x78, 0x0f, 0x47, 0x91, 0xef,
+ 0xc4, 0x1e, 0xba, 0x24, 0x3c, 0xae, 0x8f, 0x1f, 0x2e, 0x11, 0x5e, 0xaf, 0xcc, 0x25, 0x05, 0xd2,
+ 0xe1, 0xa6, 0xa3, 0xb6, 0x8f, 0x67, 0xe0, 0x7d, 0xd4, 0xf5, 0x1e, 0xbc, 0xf6, 0x6d, 0x31, 0x50,
+ 0xed, 0x2d, 0x50, 0x7e, 0x5a, 0x66, 0xf4, 0xcf, 0x65, 0xda, 0xcd, 0x84, 0xf1, 0x9c, 0xec, 0xdc,
+ 0xe0, 0x29, 0x26, 0x19, 0x52, 0xa9, 0xe3, 0x87, 0xbf, 0xdc, 0x22, 0x07, 0xd9, 0xb7, 0x53, 0xf0,
+ 0x14, 0x5e, 0xd6, 0x9b, 0xbc, 0x03, 0x3c, 0x15, 0x10, 0x71, 0xb6, 0x48, 0x09, 0xd0, 0xa4, 0x57,
+ 0xdf, 0x99, 0xd3, 0x45, 0xf1, 0x3d, 0xa2, 0x75, 0x32, 0x34, 0x7f, 0xd1, 0xb3, 0xa9, 0xda, 0x2a,
+ 0x50, 0xbb, 0xde, 0x29, 0xb5, 0x0c, 0xf0, 0x54, 0x40, 0x07, 0x9d, 0xe3, 0x24, 0xc6, 0xd5, 0x9f,
+ 0xbe, 0xc4, 0xc2, 0x65, 0x4b, 0xfb, 0x01, 0x56, 0x98, 0xa6, 0x14, 0x69, 0xa4, 0xf7, 0x9f, 0x60,
+ 0xab, 0x15, 0x91, 0x51, 0x2a, 0x36, 0x3e, 0xb9, 0xe3, 0xfe, 0x9e, 0x9a, 0x82, 0xfd, 0x59, 0x97,
+ 0xae, 0xe3, 0x45, 0x07, 0x05, 0x46, 0x31, 0x2d, 0xe7, 0x73, 0x52, 0x88, 0x11, 0xc9, 0x70, 0xf2,
+ 0x51, 0x34, 0x5b, 0x86, 0x68, 0xc2, 0xf3, 0xae, 0x2b, 0x2e, 0xa1, 0x58, 0x0b, 0x1c, 0xb7, 0x3f,
+ 0x12, 0xfa, 0x4e, 0xff, 0x37, 0xe2, 0x36, 0x4c, 0xa9, 0x87, 0x3e, 0x54, 0xeb, 0x49, 0x2b, 0x11,
+ 0x8f, 0x22, 0x0d, 0x6c, 0x44, 0x31, 0x52, 0x21, 0x72, 0x33, 0xe2, 0x32, 0x97, 0x6f, 0x0f, 0xb5,
+ 0x1d, 0x23, 0xf1, 0x05, 0x46, 0x72, 0x27, 0x33, 0xa5, 0xd3, 0xa9, 0x62, 0x9d, 0x15, 0x50, 0xbe,
+ 0xf4, 0x77, 0xf0, 0x82, 0xee, 0xaa, 0xdf, 0x92, 0xaf, 0xad, 0x94, 0x4f, 0xd0, 0x67, 0xf7, 0xa7,
+ 0xd3, 0x12, 0x20, 0x8d, 0x24, 0x3c, 0xb6, 0xc7, 0x83, 0x1b, 0xac, 0xe9, 0xb4, 0x58, 0x07, 0xa6,
+ 0xff, 0xd7, 0x1e, 0x81, 0x6d, 0x84, 0xc2, 0x83, 0xcc, 0x5d, 0xf3, 0xd0, 0x1a, 0xd5, 0xc7, 0xcd,
+ 0x47, 0xb7, 0x44, 0x80, 0xad, 0x9e, 0xc9, 0x8c, 0xed, 0x0d, 0x6f, 0xa5, 0x5c, 0xbb, 0xd7, 0xeb,
+ 0x15, 0xd1, 0x53, 0x34, 0x61, 0xcd, 0x3f, 0xef, 0x7b, 0x58, 0x8a, 0xf3, 0x26, 0x0a, 0xc6, 0xf7,
+ 0x8b, 0x5b, 0x5c, 0x95, 0xb6, 0x8f, 0x5e, 0x4f, 0x1d, 0x97, 0x12, 0x9b, 0x2b, 0x81, 0x44, 0x70,
+ 0xa0, 0xb5, 0x7f, 0x52, 0xa9, 0x18, 0x23, 0xa8, 0x80, 0x0e, 0xf9, 0x05, 0x48, 0x4f, 0x69, 0xfd,
+ 0xf5, 0xf8, 0x75, 0x2d, 0x33, 0x64, 0xdc, 0x68, 0xc4, 0x84, 0xa8, 0xf4, 0xff, 0xbd, 0x95, 0x07,
+ 0x28, 0xbc, 0x6f, 0xf5, 0xbb, 0x06, 0x78, 0x2a, 0x20, 0xe2, 0xaf, 0x90, 0x12, 0x63, 0x8b, 0xae,
+ 0x57, 0x90, 0xc3, 0xe2, 0xe3, 0x23, 0xf9, 0xf7, 0x92, 0xd8, 0x29, 0x44, 0xe9, 0x85, 0x38, 0x79,
+ 0xb2, 0x4f, 0x31, 0xad, 0x9e, 0xfa, 0x15, 0xe4, 0x29, 0x89, 0xc7, 0x51, 0xa3, 0x06, 0x42, 0xec,
+ 0x24, 0x37, 0x9c, 0x3d, 0x6e, 0x07, 0x6c, 0x98, 0x91, 0xcd, 0x7c, 0xa8, 0x15, 0x92, 0x56, 0x22,
+ 0xcf, 0xbe, 0x54, 0x27, 0xbf, 0x80, 0x92, 0x0e, 0x4d, 0xe1, 0x39, 0x30, 0x06, 0x97, 0x35, 0xb8,
+ 0x89, 0x86, 0x95, 0x08, 0xcf, 0xd0, 0x58, 0x78, 0xcb, 0xc5, 0x6a, 0x2e, 0x75, 0xf6, 0x80, 0xf3,
+ 0xdd, 0x44, 0x1a, 0xd8, 0x88, 0x62, 0xa4, 0x42, 0xe4, 0x66, 0x07, 0x64, 0xed, 0xde, 0x1e, 0xa9,
+ 0x55, 0x4d, 0x0a, 0x7f, 0x9a, 0x7c, 0xff, 0xc0, 0x44, 0x8a, 0x51, 0xf1, 0xb7, 0xf2, 0xfc, 0xfa,
+ 0x2b, 0xee, 0x23, 0xc7, 0x1f, 0x97, 0x7d, 0xe7, 0x9d, 0x99, 0xeb, 0x9e, 0x63, 0xce, 0x2d, 0x8d,
+ 0x9b, 0x7c, 0xdb, 0xf7, 0xf8, 0x32, 0x6e, 0x34, 0x62, 0x42, 0x54, 0x7a, 0x9e, 0xbf, 0xab, 0xe2,
+ 0xeb, 0x89, 0xc8, 0x1a, 0xd1, 0x87, 0xfe, 0x96, 0xdc, 0x2c, 0x45, 0x98, 0x13, 0x05, 0x63, 0x9a,
+ 0xce, 0x31, 0xd1, 0x88, 0x62, 0x4e, 0x91, 0xf4, 0x26, 0xc8, 0x05, 0x8b, 0x29, 0x4d, 0x57, 0x18,
+ 0xe5, 0xdf, 0xf2, 0x4f, 0x7d, 0xd9, 0xec, 0x13, 0xbb, 0x51, 0xee, 0x15, 0x4a, 0x83, 0x7a, 0x95,
+ 0xb1, 0x1d, 0x7d, 0x9f, 0x3a, 0x6b, 0x10, 0x29, 0x94, 0xf2, 0x83, 0x5f, 0xd2, 0xab, 0xe4, 0xcf,
+ 0x22, 0x93, 0x04, 0x59, 0xe5, 0xe6, 0x66, 0xc1, 0x28, 0x3b, 0xf4, 0xb4, 0xf7, 0x0b, 0xd9, 0x64,
+ 0xbd, 0x96, 0x8e, 0x57, 0xef, 0x6a, 0x04, 0x9b, 0x25, 0xdd, 0x50, 0x67, 0xd5, 0x5a, 0x39, 0x43,
+ 0xe9, 0x54, 0x01, 0x87, 0xa8, 0xd8, 0xf8, 0xa1, 0x0a, 0x7e, 0x3d, 0x2d, 0x4d, 0x72, 0xa7, 0x19,
+ 0x23, 0x1c, 0x81, 0xf6, 0x38, 0x28, 0x65, 0x3b, 0x43, 0x12, 0xc8, 0x0f, 0xd8, 0xd1, 0xbb, 0xc4,
+ 0x75, 0x03, 0xc7, 0xbb, 0x06, 0xc5, 0x9f, 0x36, 0xba, 0xe3, 0xdd, 0xf0, 0x1e, 0x8e, 0xe1, 0x1d,
+ 0x9f, 0x05, 0x8a, 0x0e, 0x0a, 0x8c, 0x62, 0x5a, 0x0d, 0xe6, 0xa4, 0xd3, 0x22, 0x51, 0xe0, 0x27,
+ 0xa2, 0x68, 0xb6, 0xcf, 0xd0, 0x47, 0x25, 0x9f, 0x56, 0x5c, 0x81, 0xb0, 0x16, 0x38, 0xad, 0x7e,
+ 0x0f, 0xd9, 0xbf, 0xfa, 0x71, 0x90, 0x11, 0x7f, 0x0c, 0x54, 0x97, 0x36, 0x76, 0x5c, 0x7b, 0xaf,
+ 0x54, 0xc2, 0x8f, 0xd0, 0x47, 0xb2, 0xfc, 0x3a, 0x2f, 0xa3, 0x6d, 0x4a, 0x98, 0x28, 0x9e, 0x5a,
+ 0x86, 0x5f, 0x2a, 0xf2, 0xbe, 0x40, 0x49, 0x07, 0xc7, 0x91, 0xfd, 0x18, 0x03, 0xaa, 0xfb, 0x5c,
+ 0x93, 0x8e, 0x79, 0xc6, 0xdf, 0x8d, 0x76, 0xe8, 0xbc, 0xc9, 0x77, 0xeb, 0x25, 0xa0, 0x3d, 0xab,
+ 0x5a, 0x94, 0xb5, 0x85, 0xeb, 0xec, 0xee, 0xbf, 0x48, 0xde, 0xc6, 0xc7, 0xc1, 0xae, 0x87, 0x55,
+ 0x3d, 0x6d, 0x3c, 0xc1, 0xda, 0xcb, 0x47, 0xc5, 0x5b, 0xba, 0x25, 0x63, 0x34, 0x69, 0x4d, 0x59,
+ 0x94, 0xa5, 0x64, 0x0d, 0x89, 0xa2, 0x7f, 0x4b, 0x6e, 0x16, 0xc3, 0x4c, 0xe8, 0xe3, 0xd0, 0x4d,
+ 0x56, 0x1f, 0x46, 0x4d, 0x3e, 0xed, 0xfa, 0x0d, 0xf9, 0xf1, 0x15, 0xff, 0xc6, 0x5f, 0x5a, 0xd9,
+ 0xbf, 0x4b, 0x47, 0xca, 0x96, 0x35, 0x02, 0xac, 0xf3, 0x8f, 0x28, 0xd2, 0x8b, 0x2d, 0xfd, 0xc0,
+ 0x95, 0x2a, 0xe1, 0xa2, 0x54, 0x6c, 0x7c, 0xb1, 0x05, 0x3f, 0xff, 0xf7, 0xc7, 0x39, 0xb2, 0xed,
+ 0xb9, 0xef, 0xdf, 0xae, 0x1d, 0xd4, 0x08, 0xf5, 0x4a, 0x79, 0xa0, 0xce, 0x69, 0xb4, 0x72, 0x86,
+ 0x11, 0xa8, 0x02, 0xcd, 0x93, 0x73, 0x33, 0x81, 0x14, 0xfc, 0x7a, 0x5a, 0x9a, 0xe4, 0x8d, 0x32,
+ 0x0b, 0xa0, 0xee, 0x03, 0x83, 0x2e, 0x1d, 0x11, 0x63, 0xf0, 0x67, 0x9f, 0xca, 0xb2, 0x30, 0x6a,
+ 0x71, 0x7a, 0x96, 0x42, 0xf4, 0x7b, 0x93, 0x58, 0xd5, 0x47, 0x2d, 0x59, 0xa2, 0x60, 0xaa, 0xd8,
+ 0xb0, 0x92, 0xf8, 0x30, 0xe7, 0xa5, 0x13, 0xd3, 0xff, 0xdb, 0xbf, 0xe4, 0xfd, 0x71, 0x86, 0x6f,
+ 0x1c, 0xac, 0x74, 0xaa, 0x9b, 0xbc, 0x24, 0xc9, 0xce, 0xfa, 0x95, 0xd9, 0xb2, 0xcf, 0x32, 0x1e,
+ 0xdc, 0xcb, 0x9f, 0x77, 0x55, 0xac, 0xa7, 0xb8, 0x8f, 0x4f, 0x3b, 0xdf, 0xc2, 0x04, 0x7c, 0x09,
+ 0xa8, 0x47, 0xdd, 0x63, 0x8e, 0xa7, 0x3b, 0x74, 0x5e, 0x85, 0xda, 0x94, 0xf3, 0x50, 0xff, 0xb4,
+ 0xc1, 0xe8, 0x6e, 0x72, 0x13, 0xde, 0x80, 0x8b, 0x2a, 0x9c, 0x92, 0xbd, 0x5f, 0x11, 0x2c, 0xb7,
+ 0x2a, 0x61, 0xa6, 0x68, 0xc2, 0x59, 0x7e, 0x1d, 0xf6, 0xb0, 0xd7, 0x25, 0x4c, 0x14, 0x4f, 0x2d,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xac, 0x3e, 0x8c, 0x9a, 0x7c, 0x19, 0x37, 0x1a, 0x31, 0x21, 0x2a, 0x3d, 0x4f, 0xbe, 0xb4, 0x71,
+ 0x48, 0x6e, 0xfb, 0x7a, 0xdc, 0x0e, 0xd8, 0xf3, 0xe1, 0x59, 0xf8, 0x93, 0x2a, 0xe7, 0xac, 0x44,
+ 0x7a, 0xda, 0x78, 0x41, 0x77, 0x55, 0x8e, 0x49, 0xb6, 0xb7, 0x4a, 0xc6, 0x68, 0xd2, 0x9a, 0xb2,
+ },
+ { /* 2 */
+ 0x47, 0x35, 0xef, 0xb5, 0xef, 0xef, 0x30, 0xe6, 0xaf, 0xa0, 0x89, 0x86, 0x13, 0x85, 0x5f, 0xe6,
+ 0xe9, 0x63, 0xba, 0xe4, 0xba, 0xba, 0x98, 0x67, 0x18, 0xd6, 0x5a, 0x94, 0x21, 0x7c, 0xa5, 0x67,
+ 0x8f, 0xb2, 0x8e, 0xde, 0x8e, 0x8e, 0xf7, 0x86, 0xb8, 0x77, 0x64, 0xab, 0x6e, 0x29, 0x15, 0x86,
+ 0x4e, 0xe2, 0x6e, 0xfc, 0x6e, 0x6e, 0x95, 0xad, 0x61, 0xf8, 0xdd, 0x44, 0x5e, 0x69, 0xe5, 0xad,
+ 0x03, 0xab, 0x76, 0x99, 0x76, 0x76, 0x7a, 0x58, 0x6f, 0xdf, 0x1c, 0xac, 0xd8, 0xe3, 0x3e, 0x58,
+ 0xcf, 0xca, 0x1e, 0xed, 0x1e, 0x1e, 0xa4, 0x59, 0xec, 0x5e, 0x60, 0xd2, 0x46, 0x49, 0x9d, 0x59,
+ 0x0c, 0xe9, 0x1b, 0x21, 0x1b, 0x1b, 0x2b, 0xa3, 0x7f, 0xfa, 0x70, 0xf5, 0xe6, 0x0a, 0xf8, 0xa3,
+ 0xba, 0xae, 0x78, 0x32, 0x78, 0x78, 0xd5, 0xa7, 0x36, 0xbb, 0x43, 0xce, 0xdb, 0xe7, 0x31, 0xa7,
+ 0x12, 0x6d, 0xc1, 0x92, 0xc1, 0xc1, 0x89, 0x96, 0x5f, 0xb0, 0xa8, 0x47, 0x9a, 0x1b, 0xb7, 0x96,
+ 0xf0, 0xaa, 0x1f, 0xd1, 0x1f, 0x1f, 0x59, 0x6b, 0xc3, 0x15, 0x0f, 0xd9, 0x66, 0x88, 0x3d, 0x6b,
+ 0x2b, 0x98, 0x2c, 0x5f, 0x2c, 0x2c, 0x80, 0x14, 0xae, 0x86, 0xff, 0xd7, 0xc9, 0xdf, 0x6b, 0x14,
+ 0x2c, 0xd5, 0x53, 0xd9, 0x53, 0x53, 0xe3, 0x2d, 0x55, 0x0f, 0x72, 0x28, 0xf2, 0x3a, 0xbc, 0x2d,
+ 0x32, 0x51, 0x89, 0x6a, 0x89, 0x89, 0x41, 0x18, 0x75, 0x45, 0xaa, 0x9a, 0x8e, 0x2b, 0xf3, 0x18,
+ 0x1b, 0xba, 0x40, 0xdb, 0x40, 0x40, 0x2c, 0xdd, 0x91, 0xe8, 0xfc, 0x85, 0xd7, 0xf7, 0x0d, 0xdd,
+ 0xd2, 0xe5, 0xb2, 0xc7, 0xb2, 0xb2, 0x7c, 0x34, 0xa3, 0xcb, 0xa4, 0xcc, 0xe2, 0xbb, 0xec, 0x34,
+ 0x08, 0x0f, 0x12, 0x3e, 0x12, 0x12, 0x32, 0xc2, 0xeb, 0xac, 0xe1, 0xa6, 0x05, 0x0c, 0x11, 0xc2,
+ 0xdd, 0xa7, 0xdf, 0x7f, 0xdf, 0xdf, 0x2d, 0xcf, 0xb3, 0xee, 0xc8, 0x95, 0xdc, 0x52, 0x2a, 0xcf,
+ 0x60, 0x44, 0xd8, 0xcb, 0xd8, 0xd8, 0x9b, 0x51, 0x7e, 0xdc, 0x06, 0xa4, 0x3c, 0x50, 0xcc, 0x51,
+ 0x72, 0x29, 0x19, 0x59, 0x19, 0x19, 0x12, 0xc7, 0x21, 0x6c, 0xae, 0xe3, 0xa6, 0x4b, 0x7b, 0xc7,
+ 0x11, 0xc6, 0xb7, 0x0b, 0xb7, 0xb7, 0xf3, 0xce, 0x30, 0x6f, 0xb4, 0xeb, 0x42, 0xf8, 0x89, 0xce,
+ 0x06, 0x95, 0xec, 0xf1, 0xec, 0xec, 0xf4, 0xb0, 0xde, 0x7d, 0x38, 0x9b, 0x73, 0x05, 0x7c, 0xb0,
+ 0x5d, 0x57, 0x3c, 0x19, 0x3c, 0x3c, 0x8b, 0xb2, 0x1b, 0xbc, 0xc0, 0x67, 0x8c, 0x92, 0xf9, 0xb2,
+ 0xe0, 0xb4, 0x3b, 0xad, 0x3b, 0x3b, 0x3d, 0x2c, 0xd6, 0x8e, 0x0e, 0x56, 0x6c, 0x90, 0x1f, 0x2c,
+ 0x86, 0x65, 0x0f, 0x97, 0x0f, 0x0f, 0x52, 0xcd, 0x76, 0x2f, 0x30, 0x69, 0x23, 0xc5, 0xaf, 0xcd,
+ 0xaa, 0xb0, 0x5c, 0x4e, 0x5c, 0x5c, 0xb1, 0xe0, 0x23, 0x20, 0x42, 0x41, 0xd1, 0xff, 0x13, 0xe0,
+ 0x58, 0x69, 0xa6, 0x71, 0xa6, 0xa6, 0x05, 0x5a, 0xaa, 0x1e, 0xe4, 0x50, 0x27, 0x74, 0xbb, 0x5a,
+ 0x24, 0xda, 0x41, 0xe7, 0x41, 0x41, 0xd1, 0xef, 0xbe, 0xa3, 0x93, 0x8e, 0xf7, 0x36, 0xad, 0xef,
+ 0xdf, 0xd4, 0x3a, 0x91, 0x3a, 0x3a, 0xc0, 0x1e, 0xf9, 0xc5, 0x61, 0x5d, 0x4c, 0x51, 0xbf, 0x1e,
+ 0x69, 0x93, 0x59, 0x82, 0x59, 0x59, 0x3e, 0x1a, 0xb0, 0x84, 0x52, 0x66, 0x71, 0xbc, 0x76, 0x1a,
+ 0x7a, 0x26, 0x0b, 0x67, 0x0b, 0x0b, 0x20, 0x05, 0xca, 0xc0, 0x4f, 0x45, 0xa3, 0x47, 0x6a, 0x05,
+ 0x67, 0x09, 0xa7, 0x4d, 0xa7, 0xa7, 0xf8, 0x68, 0x85, 0x55, 0x8b, 0x5b, 0x07, 0xb5, 0x1b, 0x68,
+ 0xec, 0x5d, 0x20, 0x8c, 0x20, 0x20, 0x16, 0x8f, 0xa9, 0x74, 0x7e, 0xa3, 0x8a, 0x9a, 0xe7, 0x8f,
+ 0x30, 0x22, 0x6c, 0x84, 0x6c, 0x6c, 0xac, 0xc9, 0x3f, 0x6e, 0x03, 0x52, 0x1e, 0x28, 0x66, 0xc9,
+ 0x6a, 0x38, 0x2f, 0x1b, 0x2f, 0x2f, 0x44, 0x42, 0xdf, 0x5b, 0x4e, 0xca, 0xa9, 0x5f, 0x48, 0x42,
+ 0x0e, 0x9a, 0xfe, 0xcf, 0xfe, 0xfe, 0xc6, 0x72, 0x35, 0xd1, 0xd9, 0x3d, 0x76, 0x09, 0x6d, 0x72,
+ 0x43, 0xd3, 0xe6, 0xaa, 0xe6, 0xe6, 0x29, 0x87, 0x3b, 0xf6, 0x18, 0xd5, 0xf0, 0x83, 0xb6, 0x87,
+ 0x2d, 0x0d, 0xc0, 0xae, 0xc0, 0xc0, 0x74, 0xa4, 0x70, 0xfb, 0xc7, 0x4c, 0xba, 0xda, 0x17, 0xa4,
+ 0xb3, 0x79, 0xf9, 0x7b, 0xf9, 0xf9, 0x70, 0xec, 0xf8, 0xe3, 0x17, 0x0c, 0x96, 0x0b, 0x8b, 0xec,
+ 0xe4, 0x52, 0x32, 0xb2, 0x32, 0x32, 0x24, 0x4d, 0x42, 0xd8, 0x9f, 0x05, 0x8f, 0x96, 0xf6, 0x4d,
+ 0x22, 0x4f, 0xad, 0x16, 0xad, 0xad, 0x25, 0x5f, 0x60, 0xde, 0xab, 0x15, 0x84, 0x33, 0xd1, 0x5f,
+ 0xab, 0x68, 0xcf, 0x39, 0xcf, 0xcf, 0x26, 0x69, 0x06, 0xd4, 0xf7, 0x25, 0x99, 0x1f, 0xb8, 0x69,
+ 0x3d, 0x13, 0xe4, 0xd2, 0xe4, 0xe4, 0x10, 0xe3, 0x65, 0x60, 0xc6, 0xc3, 0xb0, 0xc2, 0x35, 0xe3,
+ 0x34, 0xc4, 0x65, 0x9b, 0x65, 0x65, 0xb5, 0xa8, 0xab, 0x38, 0x92, 0x01, 0xfd, 0x2e, 0x8f, 0xa8,
+ 0x90, 0xee, 0xc7, 0x1a, 0xc7, 0xc7, 0xc2, 0x3a, 0xbd, 0xc9, 0x09, 0x7d, 0x5a, 0xd8, 0xf1, 0x3a,
+ 0x97, 0xa3, 0xb8, 0x9c, 0xb8, 0xb8, 0xa1, 0x03, 0x46, 0x40, 0x84, 0x82, 0x61, 0x3d, 0x26, 0x03,
+ 0xb0, 0xd2, 0x8f, 0xe2, 0x8f, 0x8f, 0x0a, 0xb4, 0x97, 0x3c, 0x0b, 0xa0, 0x4e, 0xe8, 0xb5, 0xb4,
+ 0xe5, 0x8a, 0xa1, 0xc5, 0xa1, 0xa1, 0xb3, 0xc4, 0x67, 0x2c, 0x2a, 0x61, 0xc7, 0x76, 0x5d, 0xc4,
+ 0x42, 0x0b, 0x75, 0xdd, 0x75, 0x75, 0xbe, 0x0e, 0x1e, 0x02, 0xad, 0xb1, 0xb8, 0x63, 0x1d, 0x0e,
+ 0x79, 0x8d, 0x7d, 0xfe, 0x7d, 0x7d, 0x5a, 0x5d, 0xa5, 0x1f, 0x53, 0xe9, 0x7b, 0xa4, 0x54, 0x5d,
+ 0xc0, 0x88, 0x73, 0x55, 0x73, 0x73, 0xf5, 0xa2, 0xfc, 0x7b, 0x0c, 0x8b, 0x78, 0xa0, 0x5b, 0xa2,
+ 0x18, 0x11, 0x36, 0x42, 0x36, 0x36, 0x56, 0x85, 0xfe, 0x37, 0xe0, 0x29, 0x0f, 0x14, 0x33, 0x85,
+ 0x4b, 0xdc, 0xf4, 0x94, 0xf4, 0xf4, 0x1b, 0x45, 0xd0, 0x5a, 0xf9, 0x73, 0xf5, 0x8f, 0xa7, 0x45,
+ 0xf7, 0xe7, 0x60, 0x57, 0x60, 0x60, 0x3a, 0x52, 0x38, 0x9c, 0x82, 0x26, 0x5d, 0x6d, 0xea, 0x52,
+ 0xb8, 0xdd, 0x9d, 0xdc, 0x9d, 0x9d, 0x38, 0x76, 0x7c, 0x90, 0xea, 0x06, 0x4b, 0xe4, 0xa4, 0x76,
+ 0xa6, 0x59, 0x47, 0x6f, 0x47, 0x47, 0x9a, 0x43, 0x5c, 0xda, 0x32, 0xb4, 0x37, 0xf5, 0xeb, 0x43,
+ 0x59, 0xb1, 0x35, 0x06, 0x35, 0x35, 0x92, 0xd3, 0x8f, 0xea, 0x51, 0x34, 0x6f, 0x94, 0x10, 0xd3,
+ 0x64, 0xa2, 0xd1, 0xd4, 0xd1, 0xd1, 0x82, 0x30, 0xea, 0x8a, 0x97, 0xf7, 0xdf, 0x56, 0x25, 0x30,
+ 0x36, 0xb7, 0x80, 0x75, 0x80, 0x80, 0x58, 0x79, 0xe1, 0x13, 0x3b, 0xc9, 0x6d, 0x2d, 0x1a, 0x79,
+ 0xb4, 0x34, 0x86, 0xfd, 0x86, 0x86, 0x13, 0xd5, 0x03, 0x6a, 0x9a, 0xf3, 0xad, 0xee, 0x5c, 0xd5,
+ 0x81, 0x28, 0x70, 0x11, 0x70, 0x70, 0x31, 0xf4, 0x8d, 0xa6, 0xbd, 0x96, 0x18, 0x20, 0x78, 0xf4,
+ 0x09, 0xd7, 0x81, 0x49, 0x81, 0x81, 0xa5, 0x4b, 0xce, 0x58, 0x54, 0xc2, 0x4d, 0xec, 0xba, 0x4b,
+ 0x78, 0x55, 0xee, 0x89, 0xee, 0xee, 0xcd, 0xd4, 0x80, 0xeb, 0xe6, 0x8d, 0x33, 0x44, 0xff, 0xd4,
+ 0xed, 0x85, 0xb3, 0xfb, 0xb3, 0xb3, 0x81, 0x06, 0x8c, 0x80, 0xcb, 0xc7, 0xc2, 0x7a, 0x4c, 0x06,
+ 0x5f, 0x24, 0xd9, 0xf7, 0xd9, 0xd9, 0x66, 0x63, 0x51, 0x97, 0x69, 0xaf, 0x1c, 0x91, 0x6c, 0x63,
+ 0xda, 0xea, 0xa0, 0xf9, 0xa0, 0xa0, 0x4e, 0xf6, 0x48, 0x67, 0x45, 0x6a, 0xe7, 0xb7, 0xfd, 0xf6,
+ 0xc4, 0x6e, 0x7a, 0x4a, 0x7a, 0x7a, 0xec, 0xc3, 0x68, 0x2d, 0x9d, 0xd8, 0x9b, 0xa6, 0xb2, 0xc3,
+ 0x29, 0xeb, 0xc9, 0xb1, 0xc9, 0xc9, 0x6d, 0xc5, 0xe4, 0xad, 0x56, 0x1f, 0x59, 0xdc, 0xfe, 0xc5,
+ 0xad, 0xfd, 0x23, 0xc8, 0x23, 0x23, 0xd2, 0xd9, 0xd8, 0xa9, 0xcf, 0xbe, 0xea, 0x1a, 0xc4, 0xd9,
+ 0x07, 0x4d, 0x7f, 0x86, 0x7f, 0x7f, 0x63, 0x39, 0xfb, 0x89, 0x8d, 0xff, 0x3b, 0xe5, 0xd7, 0x39,
+ 0x82, 0x83, 0x06, 0x88, 0x06, 0x06, 0x4b, 0xac, 0xe2, 0x79, 0xa1, 0x3a, 0xc0, 0xc3, 0x46, 0xac,
+ 0xe2, 0xc7, 0xde, 0x43, 0xde, 0xde, 0xd0, 0xfd, 0x9c, 0xa5, 0xa7, 0x9e, 0xfc, 0x93, 0x8a, 0xfd,
+ 0x31, 0xfa, 0xff, 0xf3, 0xff, 0xff, 0x3b, 0x40, 0x1a, 0x9a, 0xb6, 0x36, 0x56, 0xc8, 0xcd, 0x40,
+ 0x17, 0x53, 0x5b, 0xfa, 0x5b, 0x5b, 0x07, 0x7e, 0xee, 0x12, 0x8c, 0x70, 0x31, 0xfd, 0xf5, 0x7e,
+ 0x9f, 0xac, 0xaa, 0xa2, 0xaa, 0xaa, 0x93, 0xc1, 0xad, 0xec, 0x65, 0x24, 0x64, 0x31, 0x37, 0xc1,
+ 0x0b, 0xa4, 0x64, 0xa7, 0x64, 0x64, 0x48, 0x9a, 0x84, 0x73, 0xfd, 0x0a, 0xdd, 0xef, 0x2f, 0x9a,
+ 0x16, 0x8b, 0xc8, 0x8d, 0xc8, 0xc8, 0x90, 0xf7, 0xcb, 0xe6, 0x39, 0x14, 0x79, 0x1d, 0x5e, 0xf7,
+ 0x7f, 0x18, 0x91, 0x0f, 0x91, 0x91, 0xae, 0xed, 0x7b, 0x62, 0x6b, 0x72, 0x08, 0xa1, 0x28, 0xed,
+ 0x23, 0x97, 0x3e, 0x61, 0x3e, 0x3e, 0xb2, 0xd6, 0x45, 0x2a, 0x1e, 0x71, 0xcc, 0xd3, 0x7a, 0xd6,
+ 0x6b, 0xe0, 0xbc, 0x6c, 0xbc, 0xbc, 0xd3, 0xcb, 0xfa, 0xaf, 0xfb, 0xae, 0xe1, 0xbf, 0xe3, 0xcb,
+ 0xa9, 0x1b, 0x2a, 0xd7, 0x2a, 0x2a, 0xcb, 0xb8, 0x4c, 0xff, 0x5e, 0xed, 0x09, 0x1c, 0x2d, 0xb8,
+ 0x8b, 0x54, 0x87, 0xc1, 0x87, 0x87, 0xee, 0xe7, 0x2c, 0x21, 0xf5, 0xf8, 0x8d, 0x2f, 0xfc, 0xe7,
+ 0xb7, 0x9f, 0xf0, 0x64, 0xf0, 0xf0, 0x69, 0x8d, 0x6c, 0xb5, 0x86, 0x5f, 0x75, 0x0d, 0x62, 0x8d,
+ 0x13, 0xb5, 0x52, 0xe5, 0x52, 0x52, 0x1e, 0x1f, 0x7a, 0x44, 0x1d, 0x23, 0xd2, 0xfb, 0x1c, 0x1f,
+ 0x1c, 0xf7, 0x3f, 0x5d, 0x3f, 0x3f, 0x4f, 0xe4, 0x6a, 0x61, 0x71, 0x7a, 0xec, 0x12, 0xda, 0xe4,
+ 0xfb, 0x0e, 0x7b, 0x76, 0x7b, 0x7b, 0x11, 0xf1, 0x47, 0x66, 0xf2, 0xd3, 0xbb, 0x67, 0x12, 0xf1,
+ 0x62, 0x37, 0x3d, 0x25, 0x3d, 0x3d, 0x76, 0x80, 0x34, 0xf7, 0xaf, 0x6c, 0xac, 0x53, 0x59, 0x80,
+ 0xf2, 0xd9, 0xfa, 0x3f, 0xfa, 0xfa, 0xb4, 0xba, 0x89, 0x3e, 0xa6, 0x11, 0xf6, 0x8b, 0xa8, 0xba,
+ 0x3b, 0x86, 0x08, 0x23, 0x08, 0x08, 0xe4, 0x53, 0xbb, 0x1d, 0xfe, 0x58, 0xc3, 0xc7, 0x49, 0x53,
+ 0x9a, 0x92, 0x30, 0xca, 0x30, 0x30, 0x1d, 0x29, 0x1c, 0x4e, 0x41, 0x13, 0xcf, 0xd7, 0x75, 0x29,
+ 0x75, 0x64, 0x66, 0xdf, 0x66, 0x66, 0x71, 0xfe, 0xda, 0xe5, 0x23, 0x1c, 0x9d, 0xae, 0xac, 0xfe,
+ 0xea, 0xc8, 0xcc, 0x7d, 0xcc, 0xcc, 0xe2, 0x3f, 0x77, 0x09, 0x46, 0x38, 0xf9, 0x9f, 0x9b, 0x3f,
+ 0xd0, 0x96, 0x57, 0x29, 0x57, 0x57, 0x91, 0xe5, 0xe9, 0xe0, 0x0d, 0x04, 0x72, 0xb8, 0x79, 0xe5,
+ 0x2a, 0x40, 0xbf, 0x28, 0xbf, 0xbf, 0x17, 0x9d, 0x8b, 0x72, 0x4a, 0xb3, 0x81, 0x3f, 0xc0, 0x9d,
+ 0x91, 0x36, 0x54, 0x6d, 0x54, 0x54, 0x55, 0xb3, 0x98, 0x3d, 0xbc, 0x19, 0x12, 0x38, 0x5a, 0xb3,
+ 0x02, 0x73, 0xe5, 0xee, 0xe5, 0xe5, 0xed, 0xd1, 0x4a, 0x2b, 0xa9, 0xc8, 0x90, 0x03, 0x95, 0xd1,
+ 0x46, 0xed, 0x7c, 0xc2, 0x7c, 0x7c, 0xa7, 0x6f, 0x8a, 0x54, 0x3c, 0xe2, 0x5b, 0x65, 0xf4, 0x6f,
+ 0xa7, 0x81, 0xd4, 0x18, 0xd4, 0xd4, 0x0d, 0xca, 0x79, 0x2e, 0x87, 0xd0, 0x7f, 0x15, 0x40, 0xca,
+ 0xdc, 0x7f, 0x4c, 0x08, 0x4c, 0x4c, 0xba, 0x46, 0x96, 0x1a, 0x7d, 0xf1, 0x94, 0xb2, 0x81, 0x46,
+ 0x27, 0x71, 0x37, 0x7e, 0x37, 0x37, 0xab, 0xb7, 0xd1, 0x7c, 0x8f, 0x22, 0x2f, 0xd5, 0x93, 0xb7,
+ 0x76, 0xcf, 0x10, 0x46, 0x10, 0x10, 0x0b, 0xa6, 0xb5, 0x3a, 0x3f, 0xb0, 0x45, 0x4d, 0x92, 0xa6,
+ 0xa4, 0x2a, 0xa2, 0x81, 0xa2, 0xa2, 0x77, 0x92, 0x16, 0xf1, 0x9b, 0x7c, 0xa7, 0xf6, 0x7e, 0x92,
+ 0xca, 0xf4, 0x84, 0x85, 0x84, 0x84, 0x2a, 0xb1, 0x5d, 0xfc, 0x44, 0xe5, 0xed, 0xaf, 0xdf, 0xb1,
+ 0x96, 0x7b, 0x2b, 0xeb, 0x2b, 0x2b, 0x36, 0x8a, 0x63, 0xb4, 0x31, 0xe6, 0x29, 0xdd, 0x8d, 0x8a,
+ 0x70, 0x5a, 0xfc, 0xb7, 0xfc, 0xfc, 0xff, 0x16, 0x6b, 0x47, 0x07, 0x2b, 0x36, 0x48, 0xee, 0x16,
+ 0x54, 0x80, 0xbd, 0x50, 0xbd, 0xbd, 0x2e, 0xf9, 0xd5, 0xe4, 0x94, 0xa5, 0xc1, 0x7e, 0x43, 0xf9,
+ 0xe1, 0x6c, 0xa8, 0xda, 0xa8, 0xa8, 0xaa, 0xa5, 0xf3, 0x7a, 0xbb, 0x32, 0x24, 0x70, 0xb4, 0xa5,
+ 0x6f, 0x06, 0xb5, 0x73, 0xb5, 0xb5, 0xca, 0xaa, 0x6e, 0xf9, 0x6a, 0xfd, 0x02, 0xb9, 0x0a, 0xaa,
+ 0x39, 0xf5, 0xed, 0xcd, 0xed, 0xed, 0x09, 0x82, 0xf1, 0x36, 0x57, 0x90, 0x53, 0xc4, 0xdc, 0x82,
+ 0x33, 0x89, 0x1a, 0x1d, 0x1a, 0x1a, 0xd6, 0x91, 0x50, 0xb1, 0x1f, 0xfe, 0xc6, 0xcb, 0x58, 0x91,
+ 0xdb, 0x32, 0x33, 0x8e, 0x33, 0x33, 0xd9, 0x7f, 0x6d, 0x93, 0xf0, 0x0e, 0xaf, 0x57, 0x56, 0x7f,
+ 0xa0, 0xcc, 0xab, 0x9e, 0xab, 0xab, 0x6e, 0xf3, 0x82, 0xa7, 0x0a, 0x2f, 0x44, 0xf0, 0x97, 0xf3,
+ 0xfe, 0x30, 0xe1, 0x1e, 0xe1, 0xe1, 0x9f, 0x19, 0xf6, 0xc4, 0xd6, 0xe4, 0x10, 0x81, 0x50, 0x19,
+ 0xb2, 0xa1, 0x6a, 0x0c, 0x6a, 0x6a, 0xe7, 0x65, 0xdd, 0x17, 0xa2, 0x68, 0xde, 0xeb, 0x20, 0x65,
+ 0x10, 0x1e, 0x24, 0x7c, 0x24, 0x24, 0x64, 0x47, 0x15, 0x9b, 0x01, 0x8f, 0x0a, 0x18, 0x22, 0x47,
+ 0x71, 0x82, 0x6f, 0xc0, 0x6f, 0x6f, 0x68, 0x9f, 0x4e, 0xb3, 0xb2, 0x4f, 0x7e, 0xa8, 0x45, 0x9f,
+ 0x87, 0xbd, 0x9c, 0xe0, 0x9c, 0x9c, 0xc5, 0x44, 0x53, 0xdb, 0x85, 0x0d, 0x6b, 0x25, 0x04, 0x44,
+ 0x35, 0x1c, 0xf6, 0xec, 0xf6, 0xf6, 0x22, 0x21, 0x8e, 0xcc, 0x27, 0x65, 0xb5, 0xce, 0x24, 0x21,
+ 0x38, 0x2d, 0x7e, 0xba, 0x7e, 0x7e, 0x9e, 0x0b, 0xd4, 0xc2, 0xe2, 0xf4, 0x1b, 0x24, 0x77, 0x0b,
+ 0x52, 0x15, 0x51, 0xa1, 0x51, 0x51, 0xda, 0x49, 0x0b, 0x99, 0xac, 0x3e, 0xb2, 0x7b, 0x3f, 0x49,
+ 0x65, 0x7a, 0x42, 0xa3, 0x42, 0x42, 0x15, 0xb9, 0xcf, 0x7e, 0x22, 0x93, 0x97, 0xb6, 0x8e, 0xb9,
+ 0xde, 0x0c, 0xa9, 0xe6, 0xa9, 0xa9, 0x57, 0x97, 0xdc, 0x31, 0xd4, 0x39, 0x04, 0xb1, 0x14, 0x97,
+ 0x8e, 0x6a, 0x1d, 0xa9, 0x1d, 0x1d, 0x60, 0x0f, 0x9d, 0x83, 0xd1, 0xcf, 0x26, 0xc9, 0xbe, 0x0f,
+ 0xa8, 0xc3, 0xb9, 0xa0, 0xb9, 0xb9, 0x5c, 0x31, 0x69, 0x0b, 0xeb, 0x89, 0x41, 0xfc, 0x86, 0x31,
+ 0xfd, 0x9b, 0x97, 0x87, 0x97, 0x97, 0xe5, 0x41, 0x99, 0x1b, 0xca, 0x48, 0xc8, 0x62, 0x6e, 0x41,
+ 0x2e, 0xa6, 0xb6, 0x37, 0xb6, 0xb6, 0x0e, 0xfc, 0x1f, 0x24, 0xdb, 0xe0, 0x62, 0x39, 0x29, 0xfc,
+ 0x01, 0xd8, 0x93, 0x77, 0x93, 0x93, 0x97, 0x89, 0x25, 0xf4, 0xb5, 0x64, 0x48, 0xe0, 0xab, 0x89,
+ 0xf8, 0xa5, 0x0d, 0xef, 0x0d, 0x0d, 0x6b, 0xa9, 0x28, 0xb9, 0xee, 0x7f, 0x63, 0x84, 0x2c, 0xa9,
+ 0x8c, 0x19, 0xf8, 0x47, 0xf8, 0xf8, 0x8d, 0xde, 0xd7, 0xa8, 0x78, 0x07, 0xb6, 0xca, 0x2b, 0xde,
+ 0xbb, 0x76, 0xeb, 0x45, 0xeb, 0xeb, 0x42, 0x2e, 0x13, 0x4f, 0xf6, 0xaa, 0x93, 0x07, 0x9a, 0x2e,
+ 0x49, 0xaf, 0x11, 0x7a, 0x11, 0x11, 0xf6, 0x94, 0x9a, 0x71, 0x50, 0xbb, 0x65, 0x8c, 0x32, 0x94,
+ 0x44, 0x9e, 0x99, 0x2c, 0x99, 0x99, 0x4a, 0xbe, 0xc0, 0x7f, 0x95, 0x2a, 0xcb, 0x66, 0x61, 0xbe,
+ 0xbf, 0x90, 0xe2, 0x5a, 0xe2, 0xe2, 0x5b, 0x4f, 0x87, 0x19, 0x67, 0xf9, 0x70, 0x01, 0x73, 0x4f,
+ 0xef, 0xf6, 0x56, 0x15, 0x56, 0x56, 0x6c, 0xd7, 0xc6, 0xab, 0x62, 0x0f, 0x52, 0x79, 0xd9, 0xd7,
+ 0xfc, 0x43, 0x04, 0xf0, 0x04, 0x04, 0x72, 0xc8, 0xbc, 0xef, 0x7f, 0x2c, 0x80, 0x82, 0xc5, 0xc8,
+ 0x3a, 0x5e, 0x9b, 0x54, 0x9b, 0x9b, 0x73, 0xda, 0x9e, 0xe9, 0x4b, 0x3c, 0x8b, 0x27, 0xe2, 0xda,
+ 0xb1, 0x0a, 0x1c, 0x95, 0x1c, 0x1c, 0x9d, 0x3d, 0xb2, 0xc8, 0xbe, 0xc4, 0x06, 0x08, 0x1e, 0x3d,
+ 0xf9, 0x7d, 0x9e, 0x98, 0x9e, 0x9e, 0xfc, 0x20, 0x0d, 0x4d, 0x5b, 0x1b, 0x2b, 0x64, 0x87, 0x20,
+ 0x99, 0x39, 0x46, 0x53, 0x46, 0x46, 0x67, 0x71, 0x73, 0x91, 0x5d, 0xbf, 0x17, 0x34, 0x4b, 0x71,
+ 0xd8, 0x99, 0x45, 0x17, 0x45, 0x45, 0xa3, 0x27, 0x02, 0x4c, 0xec, 0xa2, 0x77, 0xb4, 0x68, 0x27,
+ 0xc9, 0x5f, 0xf2, 0x1c, 0xf2, 0xf2, 0x50, 0xe9, 0x32, 0x23, 0x58, 0x49, 0x35, 0x4c, 0xe1, 0xe9,
+ 0x61, 0x9c, 0x4b, 0xbc, 0x4b, 0x4b, 0x0c, 0xd8, 0x5b, 0x28, 0xb3, 0xc0, 0x74, 0xb0, 0x67, 0xd8,
+ 0x3c, 0xcb, 0x77, 0xa5, 0x77, 0x77, 0x87, 0x6a, 0x40, 0x94, 0x73, 0xa7, 0xf8, 0x22, 0x9e, 0x6a,
+ 0x89, 0x27, 0x62, 0x2f, 0x62, 0x62, 0x03, 0x36, 0x66, 0x0a, 0x5c, 0x30, 0x1d, 0x2c, 0x69, 0x36,
+ 0x0f, 0x42, 0x6d, 0xb8, 0x6d, 0x6d, 0x51, 0xfb, 0x10, 0x25, 0x6c, 0x59, 0x3e, 0xe9, 0xc6, 0xfb,
+ 0x5c, 0x8f, 0xaf, 0x6e, 0xaf, 0xaf, 0x1c, 0x3b, 0x3e, 0x48, 0x75, 0x03, 0xc4, 0x72, 0x52, 0x3b,
+ 0xbe, 0x48, 0x71, 0x2d, 0x71, 0x71, 0xcc, 0xc6, 0xa2, 0xed, 0xd2, 0x9d, 0x38, 0xe1, 0xd8, 0xc6,
+ 0xc2, 0xfb, 0x96, 0xbb, 0x96, 0x96, 0x18, 0x73, 0xb6, 0x50, 0xa5, 0x43, 0xe8, 0xa3, 0xce, 0x73,
+ 0xc5, 0xb6, 0xe9, 0x3d, 0xe9, 0xe9, 0x7b, 0x4a, 0x4d, 0xd9, 0x28, 0xbc, 0xd3, 0x46, 0x19, 0x4a,
+ 0x88, 0xff, 0xf1, 0x58, 0xf1, 0xf1, 0x94, 0xbf, 0x43, 0xfe, 0xe9, 0x54, 0x55, 0xcc, 0xc2, 0xbf,
+ 0xa1, 0x14, 0x38, 0xe9, 0x38, 0x38, 0xf9, 0x7a, 0xa7, 0x53, 0xbf, 0x4b, 0x0c, 0x10, 0x3c, 0x7a,
+ 0x1d, 0x2f, 0xac, 0x2a, 0xac, 0xac, 0xd8, 0x6d, 0x4f, 0x95, 0xc4, 0x1e, 0xa4, 0xf2, 0x71, 0x6d,
+ 0xc7, 0xc5, 0x0c, 0xd3, 0x0c, 0x0c, 0x96, 0x9b, 0x07, 0xf2, 0x81, 0x74, 0x43, 0x45, 0x8c, 0x9b,
+ 0x6c, 0xad, 0xc3, 0xea, 0xc3, 0xc3, 0xb0, 0xf2, 0x01, 0x26, 0x76, 0x51, 0xda, 0x5a, 0x34, 0xf2,
+ 0x85, 0xce, 0x79, 0x0e, 0x79, 0x79, 0x28, 0x95, 0x19, 0xf0, 0x2c, 0xc5, 0xfb, 0x26, 0x91, 0x95,
+ 0x9d, 0xdf, 0x4f, 0x4c, 0x4f, 0x4f, 0x7e, 0x10, 0xe7, 0xc7, 0xcc, 0xec, 0xf4, 0x32, 0xa2, 0x10,
+ 0xd3, 0x3d, 0x21, 0xb0, 0x21, 0x21, 0xeb, 0xbd, 0x86, 0x3f, 0x11, 0xa8, 0xaa, 0x5b, 0x47, 0xbd,
+ 0xd1, 0x4e, 0xc4, 0x5e, 0xc4, 0xc4, 0x06, 0x6c, 0xcc, 0x14, 0xb8, 0x60, 0x3a, 0x58, 0xd2, 0x6c,
+ 0x1e, 0x84, 0xda, 0xb3, 0xda, 0xda, 0xa2, 0x35, 0x20, 0x4a, 0xd8, 0xb2, 0x7c, 0x11, 0x4f, 0x35,
+ 0x3e, 0xb8, 0x92, 0x4b, 0x92, 0x92, 0x6a, 0xbb, 0x0a, 0xbf, 0xda, 0x6f, 0x68, 0x21, 0x0b, 0xbb,
+ 0x84, 0x16, 0xea, 0x79, 0xea, 0xea, 0xbf, 0x1c, 0x3c, 0x04, 0x99, 0xa1, 0xb3, 0xc6, 0x3a, 0x1c,
+ 0x2f, 0x7e, 0x25, 0x40, 0x25, 0x25, 0x99, 0x75, 0x3a, 0xd0, 0x6e, 0x84, 0x2a, 0xd9, 0x82, 0x75,
+ 0x7d, 0x6b, 0x74, 0xe1, 0x74, 0x74, 0x43, 0x3c, 0x31, 0x49, 0xc2, 0xba, 0x98, 0xa2, 0xbd, 0x3c,
+ 0x74, 0xbc, 0xf5, 0xa8, 0xf5, 0xf5, 0xe6, 0x77, 0xff, 0x11, 0x96, 0x78, 0xd5, 0x4e, 0x07, 0x77,
+ 0x41, 0xa0, 0x03, 0x44, 0x03, 0x03, 0xc4, 0x56, 0x71, 0xdd, 0xb1, 0x1d, 0x60, 0x80, 0x23, 0x56,
+ 0x50, 0x66, 0xb4, 0x4f, 0xb4, 0xb4, 0x37, 0x98, 0x41, 0xb2, 0x05, 0xf6, 0x22, 0x78, 0xaa, 0x98,
+ 0x21, 0xe4, 0xdb, 0x8f, 0xdb, 0xdb, 0x5f, 0x07, 0x0f, 0x01, 0xb7, 0xb9, 0x5c, 0xd0, 0xef, 0x07,
+ 0x55, 0x58, 0x2e, 0x27, 0x2e, 0x2e, 0xb9, 0x70, 0xf0, 0x10, 0x21, 0xc1, 0x89, 0x9e, 0xe8, 0x70,
+ 0xe7, 0xf9, 0x44, 0x2b, 0x44, 0x44, 0x5e, 0x15, 0x2d, 0x07, 0x83, 0xa9, 0x57, 0x75, 0xc8, 0x15,
+ 0xcd, 0xb9, 0xfb, 0x03, 0xfb, 0xfb, 0x49, 0x88, 0xa6, 0x75, 0xc9, 0x1a, 0xd6, 0x4a, 0x08, 0x88,
+ 0x0d, 0x31, 0x88, 0x56, 0x88, 0x88, 0xbc, 0x2a, 0x5a, 0x0e, 0xc5, 0x91, 0xae, 0xea, 0x53, 0x2a,
+ 0x7c, 0xb3, 0xe7, 0x96, 0xe7, 0xe7, 0xd4, 0xb5, 0x14, 0xbd, 0x77, 0xde, 0xd0, 0x42, 0x16, 0xb5,
+ 0x37, 0x6f, 0x13, 0x02, 0x13, 0x13, 0xcf, 0xf0, 0xc4, 0xe7, 0x8e, 0xad, 0x25, 0xcd, 0xb1, 0xf0,
+ 0x1a, 0x62, 0xd3, 0xac, 0xd3, 0xd3, 0xbb, 0x54, 0xb4, 0x1c, 0x49, 0xe1, 0x9f, 0x17, 0xa6, 0x54,
+ 0xa2, 0xbf, 0x4e, 0x70, 0x4e, 0x4e, 0x83, 0x22, 0xc8, 0x8c, 0xa3, 0xe7, 0xd4, 0xf3, 0x02, 0x22,
+ 0xaf, 0x8e, 0xc6, 0x26, 0xc6, 0xc6, 0x3f, 0x08, 0x92, 0x82, 0x66, 0x76, 0x7a, 0x19, 0x51, 0x08,
+ 0xf6, 0x3f, 0xf3, 0x20, 0xf3, 0xf3, 0xad, 0xdb, 0x1d, 0x68, 0x37, 0x42, 0x15, 0x8d, 0x41, 0xdb,
+ 0xe8, 0xbb, 0x29, 0x93, 0x29, 0x29, 0x0f, 0xee, 0x3d, 0x22, 0xef, 0xf0, 0x69, 0x9c, 0x0e, 0xee,
+ 0x7e, 0xc0, 0x02, 0x78, 0x02, 0x02, 0x39, 0x64, 0x5e, 0x96, 0xde, 0x16, 0x40, 0x41, 0x83, 0x64,
+ 0x5e, 0xfc, 0x4a, 0x80, 0x4a, 0x4a, 0xf1, 0xea, 0x74, 0x63, 0xdc, 0xcb, 0x54, 0x71, 0xc7, 0xea,
+ 0xfa, 0xd6, 0xe8, 0x01, 0xe8, 0xe8, 0x86, 0x78, 0x62, 0x92, 0x47, 0xb7, 0xf3, 0x87, 0xb9, 0x78,
+ 0xb5, 0xec, 0x15, 0x8a, 0x15, 0x15, 0x84, 0x5c, 0x26, 0x9e, 0x2f, 0x97, 0xe5, 0x0e, 0xf7, 0x5c,
+ 0x92, 0x9d, 0x22, 0xf4, 0x22, 0x22, 0x2f, 0xeb, 0xf7, 0xe2, 0xa0, 0xb5, 0xca, 0xdb, 0x64, 0xeb,
+ 0x56, 0xf3, 0x58, 0xbe, 0x58, 0x58, 0xc3, 0x28, 0x9f, 0xcf, 0x3d, 0x6d, 0x51, 0x7d, 0xd6, 0x28,
+ 0xf1, 0x72, 0x8c, 0xa6, 0x8c, 0x8c, 0xce, 0xe2, 0xe6, 0xe1, 0xba, 0xbd, 0x2e, 0x68, 0x96, 0xe2,
+ 0x04, 0xe6, 0x09, 0x1f, 0x09, 0x09, 0x19, 0x61, 0x94, 0x56, 0x91, 0x53, 0xe3, 0x06, 0xe9, 0x61,
+ 0x6e, 0xde, 0x26, 0x04, 0x26, 0x26, 0x5d, 0x23, 0x4b, 0x0d, 0xdf, 0x99, 0x4a, 0x59, 0xa1, 0x23,
+ 0xa5, 0xf2, 0x31, 0xf6, 0x31, 0x31, 0xe0, 0x1b, 0x33, 0x05, 0x2e, 0x18, 0xef, 0x16, 0xd5, 0x1b,
+ 0xe6, 0x21, 0xd7, 0x5c, 0xd7, 0xd7, 0xc9, 0x9c, 0x08, 0xf3, 0x36, 0xcd, 0x1f, 0x95, 0x63, 0x9c,
+ 0xc8, 0x87, 0x61, 0x6b, 0x61, 0x61, 0xc7, 0x60, 0x17, 0xd7, 0xed, 0x2d, 0x7d, 0xac, 0x4a, 0x60,
+ 0x7b, 0xfe, 0x98, 0x10, 0x98, 0x98, 0xb7, 0x8c, 0xef, 0x34, 0xfa, 0x21, 0xeb, 0xa7, 0xc1, 0x8c,
+ 0x73, 0xf1, 0x8a, 0x2e, 0x8a, 0x8a, 0x85, 0x4e, 0x04, 0x98, 0x1b, 0x87, 0xee, 0xab, 0xd0, 0x4e,
+ 0x51, 0xbe, 0x27, 0x38, 0x27, 0x27, 0xa0, 0x11, 0x64, 0x46, 0xb0, 0x92, 0x6a, 0x98, 0x01, 0x11,
+ 0x95, 0xd0, 0x5d, 0x72, 0x5d, 0x5d, 0x4c, 0xd2, 0x0c, 0x6b, 0x2d, 0x4a, 0xf1, 0x3e, 0xb3, 0xd2,
+ 0x66, 0xd1, 0x34, 0x3a, 0x34, 0x34, 0x6f, 0xe1, 0xa0, 0xa1, 0x3e, 0x3f, 0x4f, 0x55, 0xb0, 0xe1,
+ 0xd6, 0x03, 0xbb, 0xd8, 0xbb, 0xbb, 0x65, 0x55, 0x37, 0x9d, 0x35, 0x9f, 0x01, 0xbd, 0x05, 0x55,
+ 0x5b, 0xc2, 0xd0, 0xe8, 0xd0, 0xd0, 0x7f, 0x02, 0xc5, 0xc1, 0xf8, 0xfc, 0xff, 0x97, 0x85, 0x02,
+ 0xe3, 0x1f, 0x4d, 0x34, 0x4d, 0x4d, 0x47, 0x74, 0xb9, 0x51, 0x12, 0xfa, 0xb4, 0x73, 0x21, 0x74,
+ 0x63, 0xef, 0xae, 0x52, 0xae, 0xae, 0xe1, 0x09, 0x11, 0x03, 0x1a, 0x08, 0xe4, 0xb3, 0xf2, 0x09,
+ 0x9b, 0x4a, 0xa3, 0xbd, 0xa3, 0xa3, 0x8a, 0xa0, 0x39, 0xba, 0xf4, 0x77, 0x87, 0x37, 0xde, 0xa0,
+ 0xbd, 0xe3, 0x07, 0xb4, 0x07, 0x07, 0xb6, 0x9e, 0xcd, 0x32, 0xce, 0x31, 0xe0, 0x02, 0xe6, 0x9e,
+ 0x77, 0x17, 0x83, 0x31, 0x83, 0x83, 0x9c, 0x2f, 0x90, 0xce, 0x8a, 0xd4, 0x0d, 0xad, 0x39, 0x2f,
+ 0x8d, 0xc1, 0x6b, 0x30, 0x6b, 0x6b, 0x1a, 0x57, 0xf2, 0x5c, 0xcd, 0x63, 0xfe, 0x2a, 0x80, 0x57,
+ 0xbc, 0x3b, 0x94, 0xc3, 0x94, 0x94, 0x21, 0x17, 0xe8, 0xc6, 0x7b, 0x55, 0xa8, 0xe2, 0x4d, 0x17,
+ 0xf3, 0x01, 0x69, 0x48, 0x69, 0x69, 0x23, 0x33, 0xac, 0xca, 0x13, 0x75, 0xbe, 0x6b, 0x03, 0x33,
+ 0xf4, 0x4c, 0x16, 0xce, 0x16, 0x16, 0x40, 0x0a, 0x57, 0x43, 0x9e, 0x8a, 0x85, 0x8e, 0xd4, 0x0a,
+ 0x26, 0xa9, 0xa4, 0x09, 0xa4, 0xa4, 0x3c, 0x3e, 0xf4, 0x88, 0x3a, 0x46, 0x67, 0x35, 0x38, 0x3e,
+ 0xd4, 0x70, 0x5e, 0x36, 0x5e, 0x5e, 0x88, 0x84, 0x7d, 0xb6, 0x9c, 0x57, 0x91, 0xbe, 0x90, 0x84,
+ 0x80, 0xf0, 0xe3, 0x66, 0xe3, 0xe3, 0xa6, 0x7d, 0xa8, 0x52, 0x08, 0xf2, 0x50, 0xc0, 0xd3, 0x7d,
+ 0x93, 0x45, 0xb1, 0x83, 0xb1, 0xb1, 0xb8, 0x62, 0xd2, 0x16, 0x15, 0xd1, 0x82, 0x3b, 0xcf, 0x62,
+ 0xb6, 0x47, 0x63, 0x13, 0x63, 0x63, 0xfe, 0x04, 0x49, 0x41, 0x33, 0x3b, 0x3d, 0xed, 0xc9, 0x04,
+ 0x15, 0x20, 0xbe, 0x14, 0xbe, 0xbe, 0xea, 0xaf, 0xa4, 0x39, 0x25, 0xb8, 0xa1, 0xfe, 0x60, 0xaf,
+ 0xcc, 0x61, 0x68, 0x74, 0x68, 0x68, 0xde, 0x01, 0x83, 0x81, 0x7c, 0x7e, 0x9e, 0xaa, 0xa3, 0x01,
+ 0xac, 0x25, 0xb0, 0xbf, 0xb0, 0xb0, 0x45, 0x50, 0xfd, 0x5d, 0x7a, 0xda, 0xa2, 0xfa, 0x6f, 0x50,
+ 0xc1, 0x50, 0xe0, 0x22, 0xe0, 0xe0, 0x62, 0x2b, 0xd9, 0x8f, 0xb9, 0xef, 0x30, 0x40, 0xf0, 0x2b,
+ 0xee, 0x2e, 0xc5, 0x62, 0xc5, 0xc5, 0xfb, 0x5e, 0xe3, 0x5f, 0xd7, 0x6b, 0x1a, 0x99, 0x72, 0x5e,
+ 0xae, 0x56, 0x55, 0x51, 0x55, 0x55, 0xa8, 0x81, 0xb7, 0x76, 0xd3, 0x12, 0x32, 0xf9, 0xfa, 0x81,
+ 0x9c, 0x07, 0xdc, 0x3b, 0xdc, 0xdc, 0xe9, 0x99, 0xc2, 0x33, 0x79, 0x88, 0xbc, 0xd2, 0x09, 0x99,
+ 0xd9, 0x41, 0xd6, 0x60, 0xd6, 0xd6, 0x34, 0xae, 0x27, 0xb8, 0x59, 0xc6, 0x3f, 0x54, 0xc3, 0xae,
+ 0xa3, 0x67, 0xdd, 0x07, 0xdd, 0xdd, 0x14, 0xab, 0xed, 0x78, 0x16, 0x83, 0x9c, 0x13, 0xa9, 0xab,
+ 0x25, 0x02, 0xd2, 0x90, 0xd2, 0xd2, 0x46, 0x66, 0x9b, 0x57, 0x26, 0xea, 0xbf, 0xd6, 0x06, 0x66,
+ 0xeb, 0x10, 0x5f, 0x0a, 0x5f, 0x5f, 0x75, 0xb6, 0x52, 0xfd, 0xf3, 0x5c, 0xb1, 0x7f, 0x30, 0xb6,
+ 0x40, 0x78, 0x90, 0x33, 0x90, 0x90, 0x53, 0xdf, 0x54, 0x29, 0x04, 0x79, 0x28, 0x60, 0x88, 0xdf,
+ 0x48, 0x77, 0x82, 0x0d, 0x82, 0x82, 0x61, 0x1d, 0xbf, 0x85, 0xe5, 0xdf, 0x2d, 0x6c, 0x99, 0x1d,
+ 0x6d, 0x75, 0x50, 0x9d, 0x50, 0x50, 0x27, 0x7b, 0x24, 0xd2, 0xc3, 0x35, 0x92, 0xba, 0x9f, 0x7b,
+ 0x28, 0x33, 0x5a, 0xc6, 0x5a, 0x5a, 0xfa, 0x4c, 0xc1, 0x59, 0xe3, 0x7b, 0x11, 0x3c, 0x55, 0x4c,
+ 0xff, 0xe8, 0x72, 0x69, 0x72, 0x72, 0x08, 0x90, 0xd3, 0x30, 0x63, 0x80, 0x58, 0x61, 0xfb, 0x90,
+ 0x0a, 0x7c, 0xf7, 0xd0, 0xf7, 0xf7, 0xdf, 0x13, 0xa1, 0x87, 0x48, 0x6e, 0x95, 0x0f, 0x84, 0x13,
+ 0x4f, 0x3a, 0xfd, 0x8b, 0xfd, 0xfd, 0x02, 0x24, 0x44, 0x0c, 0x68, 0x20, 0x16, 0x89, 0x4e, 0x24,
+ 0x19, 0xc9, 0xa5, 0x35, 0xa5, 0xa5, 0xc1, 0x0c, 0xdb, 0xc3, 0x55, 0x4d, 0x47, 0xf4, 0x98, 0x0c,
+ 0x53, 0xcd, 0xc2, 0xd6, 0xc2, 0xc2, 0x4d, 0xc0, 0x2e, 0x6d, 0x19, 0x5a, 0xfa, 0x9b, 0x94, 0xc0,
+ 0xf5, 0x94, 0x85, 0xb9, 0x85, 0x85, 0xd7, 0x83, 0x72, 0xb7, 0x2b, 0xee, 0xcd, 0x6e, 0x7f, 0x83,
+ 0xb9, 0x05, 0x0e, 0xab, 0x0e, 0x0e, 0xaf, 0xff, 0x59, 0x64, 0x5f, 0x62, 0x03, 0x04, 0x0f, 0xff,
+ 0xcb, 0x2c, 0x17, 0xf2, 0x17, 0x17, 0xbd, 0x38, 0x78, 0x08, 0xf1, 0x81, 0xa5, 0x4f, 0x74, 0x38,
+ 0x45, 0x46, 0x0a, 0x5b, 0x0a, 0x0a, 0xdd, 0x37, 0xe5, 0x8b, 0x20, 0x4e, 0x83, 0x86, 0xca, 0x37,
+ 0x57, 0x2b, 0xcb, 0xc9, 0xcb, 0xcb, 0x54, 0xa1, 0xba, 0x3b, 0x88, 0x09, 0x19, 0x9d, 0x7d, 0xa1,
+ 0xd7, 0xdb, 0x28, 0xaf, 0x28, 0x28, 0xf2, 0xdc, 0x12, 0x69, 0x80, 0xfb, 0x49, 0x5d, 0xae, 0xdc,
+ 0x68, 0x4b, 0xca, 0xf5, 0xca, 0xca, 0xa9, 0x93, 0x95, 0x70, 0xe7, 0x02, 0x39, 0x5c, 0xdd, 0x93,
+ 0x4c, 0x91, 0x8b, 0x12, 0x8b, 0x8b, 0x78, 0x7c, 0x2b, 0xd3, 0x74, 0x8c, 0xce, 0x6a, 0x70, 0x7c,
+ 0x20, 0x3c, 0x48, 0xf8, 0x48, 0x48, 0xc8, 0x8e, 0x2a, 0xf5, 0x02, 0xdd, 0x14, 0x30, 0x44, 0x8e,
+ 0x4a, 0x04, 0x67, 0xe3, 0x67, 0x67, 0x8c, 0xcc, 0xf5, 0xae, 0x4c, 0x17, 0xbd, 0x6f, 0x0c, 0xcc,
+ 0x05, 0x3e, 0x9a, 0x68, 0x9a, 0x9a, 0x8e, 0xe8, 0xb1, 0xa2, 0x24, 0x37, 0xab, 0xe6, 0x42, 0xe8,
+ 0xc6, 0x1d, 0x9f, 0xa4, 0x9f, 0x9f, 0x01, 0x12, 0x22, 0x06, 0x34, 0x10, 0x0b, 0xa5, 0x27, 0x12,
+ 0x14, 0xf8, 0x2d, 0x63, 0x2d, 0x2d, 0x7d, 0x26, 0x81, 0xcd, 0x90, 0xdc, 0xe9, 0x1e, 0xcb, 0x26,
+ 0x9e, 0x74, 0x39, 0xd5, 0x39, 0x39, 0x04, 0x48, 0x88, 0x18, 0xd0, 0x40, 0x2c, 0xd1, 0x9c, 0x48,
+ 0xd5, 0xa8, 0xcd, 0x41, 0xcd, 0xcd, 0x1f, 0x0d, 0x58, 0x42, 0x29, 0x33, 0xd9, 0x5e, 0x3b, 0x0d,
+ 0x4d, 0x49, 0x18, 0x65, 0x18, 0x18, 0xef, 0xf5, 0x0e, 0x27, 0xc1, 0xe8, 0x86, 0x8a, 0xdb, 0xf5,
+ 0xce, 0x12, 0x8d, 0x9a, 0x8d, 0x8d, 0x33, 0xd0, 0xc9, 0xaa, 0xd5, 0xb6, 0x0e, 0xa9, 0x36, 0xd0,
+ 0x5a, 0x1a, 0x43, 0x9f, 0x43, 0x43, 0xe8, 0x8b, 0xe0, 0x35, 0x4d, 0x98, 0xb7, 0x77, 0x2e, 0x8b,
+ 0x3f, 0x60, 0x01, 0x3c, 0x01, 0x01, 0xfd, 0x32, 0x2f, 0x4b, 0x6f, 0x0b, 0x20, 0xc1, 0xa0, 0x32,
+ 0x8a, 0x8c, 0x14, 0xb6, 0x14, 0x14, 0x79, 0x6e, 0x09, 0xd5, 0x40, 0x9c, 0xc5, 0xcf, 0x57, 0x6e,
+ 0x83, 0x5b, 0x95, 0xff, 0x95, 0x95, 0xdc, 0x25, 0xc7, 0x8d, 0x14, 0x5e, 0x88, 0x23, 0xed, 0x25,
+ 0xc3, 0x23, 0x05, 0xcc, 0x05, 0x05, 0x8f, 0xfa, 0x93, 0xa4, 0x10, 0x27, 0xa0, 0x43, 0x65, 0xfa,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x94, 0x08, 0xce, 0x05, 0xce, 0xce, 0xdb, 0x5b, 0x29, 0x9f, 0x98, 0x2e, 0xb9, 0xde, 0x18, 0x5b,
+ 0x1f, 0x5c, 0x49, 0xc4, 0x49, 0x49, 0x35, 0xbc, 0x05, 0xbe, 0x6d, 0xd6, 0x34, 0xf1, 0xe4, 0xbc,
+ 0x98, 0xe1, 0xd5, 0x24, 0xd5, 0xd5, 0xf0, 0xf8, 0x56, 0x65, 0xe8, 0xdb, 0x5f, 0xd4, 0xe0, 0xf8,
+ },
+ { /* 3 */
+ 0xab, 0x5f, 0x0f, 0xc5, 0x97, 0x09, 0x7c, 0xc9, 0x42, 0xc5, 0x39, 0xbd, 0xfd, 0x81, 0x87, 0xfe,
+ 0xbb, 0xa5, 0xce, 0xde, 0x05, 0xdd, 0x1c, 0xf8, 0x12, 0xde, 0x45, 0x61, 0xc3, 0xdf, 0xcc, 0x2b,
+ 0x83, 0x15, 0xcf, 0x1f, 0x39, 0x08, 0x8c, 0x52, 0xca, 0x1f, 0xff, 0xa8, 0x9e, 0x12, 0xd5, 0x1c,
+ 0x0d, 0xe5, 0x99, 0x66, 0x2c, 0xc3, 0x2e, 0xd2, 0x39, 0x66, 0x56, 0x24, 0x2b, 0x05, 0x5f, 0x06,
+ 0x3a, 0x3e, 0xb0, 0xfa, 0xbf, 0x2e, 0x9c, 0x05, 0xd2, 0xfa, 0x54, 0x33, 0x2a, 0xb6, 0x28, 0x65,
+ 0x4a, 0x9d, 0xb2, 0xbb, 0xc7, 0x47, 0x7f, 0x92, 0xa1, 0xbb, 0xe3, 0x62, 0x90, 0xef, 0x1a, 0x0b,
+ 0xe8, 0xf8, 0x85, 0x6e, 0xb9, 0xb8, 0x35, 0x14, 0xce, 0x6e, 0x93, 0xcc, 0xa8, 0x9d, 0xa0, 0x57,
+ 0xeb, 0x31, 0x8d, 0xa9, 0x9a, 0xdf, 0x3f, 0x0d, 0xc1, 0xa9, 0x0a, 0x4b, 0x05, 0x3a, 0x68, 0x2c,
+ 0x8f, 0xb7, 0xef, 0x85, 0xb5, 0x57, 0xa4, 0x36, 0xf6, 0x85, 0xde, 0xf1, 0x6f, 0xcb, 0x73, 0x33,
+ 0xbe, 0x3d, 0xd6, 0x54, 0x60, 0x74, 0x02, 0xd3, 0x03, 0x54, 0x2d, 0x2b, 0xf7, 0xf5, 0x57, 0xa6,
+ 0x0f, 0x6b, 0x28, 0x5d, 0xaf, 0x38, 0x22, 0x7d, 0x33, 0x5d, 0xb8, 0xde, 0x5c, 0x7e, 0x6e, 0x54,
+ 0x6d, 0xbc, 0x5a, 0x3c, 0xc6, 0x7e, 0xad, 0x74, 0x1a, 0x3c, 0x9d, 0xa9, 0xaf, 0x02, 0x26, 0xbd,
+ 0x0a, 0xf3, 0x30, 0xd7, 0xca, 0x91, 0x3c, 0x56, 0x22, 0xd7, 0xd0, 0x94, 0x68, 0x54, 0xf5, 0xd9,
+ 0x29, 0x0d, 0x79, 0x26, 0x0e, 0x9d, 0xf6, 0x2d, 0x8d, 0x26, 0xb1, 0x68, 0xb9, 0x4f, 0xab, 0xcb,
+ 0x17, 0xec, 0x68, 0xaa, 0x74, 0x86, 0x72, 0xb5, 0x4b, 0xaa, 0xfa, 0x6c, 0x7d, 0x0f, 0xe1, 0x0a,
+ 0xb0, 0x11, 0x47, 0xf5, 0x6f, 0xd0, 0x26, 0x18, 0x35, 0xf5, 0xe2, 0x88, 0x71, 0x57, 0xc0, 0xdb,
+ 0xc5, 0x2a, 0x5d, 0x3e, 0x72, 0x10, 0xdb, 0xa4, 0x57, 0x3e, 0x3d, 0x93, 0xff, 0x24, 0x69, 0x38,
+ 0x4c, 0xcc, 0xa2, 0xf6, 0x81, 0x89, 0x6b, 0xa0, 0xbf, 0xf6, 0x12, 0xaf, 0x09, 0x62, 0x49, 0xfd,
+ 0xc3, 0x7b, 0x4d, 0x73, 0x34, 0xde, 0xcf, 0x96, 0x49, 0x73, 0xcc, 0x5e, 0x66, 0xa9, 0x3a, 0xce,
+ 0xb5, 0x89, 0x5f, 0x7f, 0x0a, 0x79, 0x38, 0x33, 0x24, 0x7f, 0x8a, 0xc2, 0x45, 0x7d, 0x5b, 0x56,
+ 0x74, 0x7c, 0xa3, 0x37, 0xbd, 0x5c, 0xfb, 0x0a, 0x67, 0x37, 0xa8, 0x66, 0x54, 0xaf, 0x50, 0xca,
+ 0x94, 0xf9, 0xa7, 0xb5, 0x4d, 0x8e, 0xfe, 0xe7, 0x81, 0xb5, 0x05, 0xc4, 0xe3, 0x1d, 0x34, 0x16,
+ 0x1d, 0x1f, 0x58, 0x7d, 0xbe, 0x17, 0x4e, 0xe3, 0x69, 0x7d, 0x2a, 0xf8, 0x15, 0x5b, 0x14, 0xd3,
+ 0x25, 0xaf, 0x59, 0xbc, 0x82, 0xc2, 0xde, 0x49, 0xb1, 0xbc, 0x90, 0x31, 0x48, 0x96, 0x0d, 0xe4,
+ 0x48, 0x13, 0x03, 0x80, 0x44, 0xbc, 0x73, 0x3d, 0xab, 0x80, 0x0d, 0x98, 0xe7, 0x94, 0x2b, 0x59,
+ 0xda, 0xbb, 0xb4, 0x78, 0x4f, 0xfc, 0x99, 0xe8, 0x34, 0x78, 0xf9, 0x91, 0x9d, 0x04, 0x4c, 0xb9,
+ 0xdd, 0xad, 0x1d, 0xc9, 0xa9, 0xae, 0x8b, 0x6c, 0x2f, 0xc9, 0x7f, 0x21, 0xde, 0x55, 0xe6, 0x66,
+ 0xe9, 0xbf, 0x3c, 0x92, 0x19, 0x24, 0x33, 0xa2, 0xcb, 0x92, 0xe4, 0xb1, 0x72, 0x41, 0x59, 0x7e,
+ 0xea, 0x76, 0x34, 0x55, 0x3a, 0x43, 0x39, 0xbb, 0xc4, 0x55, 0x7d, 0x36, 0xdf, 0xe6, 0x91, 0x05,
+ 0x73, 0x6a, 0x0a, 0x86, 0x5b, 0x0e, 0xe9, 0x8e, 0x7c, 0x86, 0x2e, 0xd6, 0x17, 0xfe, 0xfa, 0x15,
+ 0x2e, 0x1b, 0xd0, 0x97, 0xe8, 0xcf, 0xe4, 0xa9, 0x96, 0x97, 0x37, 0xd8, 0xfa, 0x1e, 0x01, 0x14,
+ 0xf5, 0xe7, 0xdd, 0x13, 0x07, 0xaf, 0x7b, 0xf7, 0xa7, 0x13, 0xb9, 0x34, 0xbd, 0xc6, 0xb4, 0x84,
+ 0x26, 0x66, 0x51, 0x7b, 0xa1, 0xa5, 0xd4, 0x50, 0xbe, 0x7b, 0x09, 0xb6, 0xe5, 0x31, 0xc5, 0x9f,
+ 0xd0, 0x48, 0x84, 0xaf, 0x85, 0x6d, 0xa5, 0xbe, 0x16, 0xaf, 0x29, 0x05, 0xf5, 0x50, 0xb9, 0x60,
+ 0xc4, 0x6d, 0xe4, 0xc2, 0xd2, 0x8c, 0xdd, 0x12, 0x52, 0xc2, 0x4a, 0xee, 0x25, 0xf8, 0x90, 0x11,
+ 0xf3, 0xb6, 0xcd, 0x5e, 0x41, 0x61, 0x6f, 0xc5, 0xb9, 0x5e, 0x48, 0xf9, 0x24, 0x4b, 0xe7, 0x72,
+ 0x7b, 0x17, 0x8b, 0x6a, 0x12, 0x64, 0xd9, 0x77, 0x54, 0x6a, 0x10, 0xb8, 0x08, 0xd1, 0x3e, 0x9e,
+ 0x4d, 0x8b, 0x1b, 0x0a, 0x21, 0x15, 0x6d, 0x16, 0xba, 0x0a, 0x65, 0xd2, 0xd3, 0xbe, 0xb0, 0xd4,
+ 0x45, 0xf6, 0x9a, 0xe6, 0x68, 0x7f, 0x5d, 0xef, 0x92, 0xe6, 0x5b, 0xbc, 0xcc, 0x91, 0x74, 0x5f,
+ 0xa9, 0xd1, 0xbe, 0xfe, 0x14, 0xf2, 0x70, 0x66, 0x48, 0xfe, 0xd7, 0x47, 0x8a, 0xfa, 0xb6, 0xac,
+ 0x5e, 0xb8, 0xd2, 0xd6, 0x90, 0xa6, 0x07, 0x3e, 0xe5, 0xd6, 0x80, 0x89, 0x40, 0x47, 0x33, 0x7a,
+ 0xd8, 0x35, 0x05, 0x43, 0xcc, 0x07, 0x95, 0x47, 0x3e, 0x43, 0x17, 0x6b, 0xea, 0x7f, 0x7d, 0xeb,
+ 0x7e, 0x8f, 0x93, 0xe0, 0x77, 0xcd, 0xc7, 0x5c, 0x45, 0xe0, 0x78, 0xf2, 0x3c, 0xfb, 0xa5, 0x13,
+ 0xf2, 0xf1, 0x74, 0xa2, 0xe1, 0xfd, 0x69, 0x73, 0xbc, 0xa2, 0x3f, 0x84, 0xfe, 0x97, 0x1e, 0x5b,
+ 0x90, 0x26, 0x06, 0xc3, 0x88, 0xbb, 0xe6, 0x7a, 0x95, 0xc3, 0x1a, 0xf3, 0x0d, 0xeb, 0x56, 0xb2,
+ 0x77, 0xb5, 0xab, 0xf0, 0x9e, 0x3b, 0xf1, 0x13, 0x68, 0xf0, 0x31, 0xe1, 0xf9, 0x08, 0x98, 0xb1,
+ 0x53, 0x5d, 0x4b, 0xb0, 0xbc, 0x65, 0x29, 0xec, 0xdc, 0xb0, 0xd6, 0xad, 0x6b, 0x42, 0x6c, 0x7c,
+ 0xe5, 0x1d, 0x1c, 0x08, 0x95, 0x7b, 0x1b, 0xc6, 0xf7, 0x08, 0xc5, 0xe8, 0x83, 0x98, 0xff, 0x51,
+ 0x49, 0x54, 0xba, 0x7c, 0xe4, 0x20, 0x75, 0x8b, 0xae, 0x7c, 0x7a, 0xe5, 0x3d, 0x48, 0xd2, 0x70,
+ 0x98, 0x5b, 0x87, 0x2f, 0xc1, 0xd1, 0xd6, 0x83, 0xbd, 0x2f, 0x24, 0x9d, 0x12, 0xc4, 0x92, 0x39,
+ 0x13, 0x33, 0xc9, 0xdc, 0xb1, 0xb3, 0x6a, 0x28, 0x5f, 0xdc, 0xe5, 0x5b, 0x93, 0xf9, 0x83, 0xae,
+ 0x43, 0xa7, 0x8a, 0xab, 0x2e, 0xb1, 0x49, 0xdd, 0x8c, 0xab, 0xaa, 0x71, 0x55, 0x1c, 0x27, 0xa9,
+ 0xdc, 0xea, 0xa4, 0x35, 0x09, 0x32, 0x8d, 0xda, 0x2a, 0x35, 0x08, 0x5c, 0x04, 0x89, 0x1f, 0x4f,
+ 0xc7, 0xa4, 0xec, 0x05, 0xf1, 0xeb, 0xd7, 0x0b, 0x5d, 0x05, 0xd3, 0x69, 0x88, 0x5f, 0x58, 0x6a,
+ 0xa0, 0xeb, 0x86, 0xee, 0xfd, 0x04, 0x46, 0x29, 0x65, 0xee, 0x9e, 0x54, 0x4f, 0x09, 0x8b, 0x0e,
+ 0xcc, 0x10, 0x65, 0x2e, 0x9b, 0xe6, 0xed, 0xeb, 0x7a, 0x2e, 0x74, 0x80, 0x3a, 0xd7, 0x54, 0x9a,
+ 0x14, 0x25, 0x60, 0x6d, 0x57, 0xe1, 0x78, 0xac, 0x44, 0x6d, 0x63, 0xeb, 0xd0, 0xa8, 0x29, 0x71,
+ 0x52, 0x1a, 0xf2, 0x4c, 0x1c, 0xf9, 0x2f, 0x5a, 0xd9, 0x4c, 0xa1, 0xd0, 0xb1, 0x9e, 0x95, 0x55,
+ 0x2f, 0x5c, 0x69, 0x6b, 0x48, 0x53, 0xe2, 0x1f, 0x93, 0x6b, 0x40, 0xa5, 0x20, 0xc2, 0xf8, 0x3d,
+ 0x47, 0x78, 0x2b, 0xdd, 0xeb, 0x84, 0x51, 0x40, 0x98, 0xdd, 0xb5, 0x46, 0xbb, 0xea, 0x45, 0x0d,
+ 0xa6, 0xba, 0x96, 0xa3, 0xbb, 0xca, 0x52, 0x1b, 0x7b, 0xa3, 0x6f, 0x99, 0xd6, 0x84, 0xd8, 0xf8,
+ 0x5f, 0xff, 0x6b, 0x2a, 0x30, 0x3a, 0x01, 0x88, 0xe0, 0x2a, 0xf7, 0xf4, 0x9a, 0x9b, 0xca, 0x53,
+ 0xe3, 0x4c, 0x0c, 0x45, 0xd3, 0xb5, 0x0f, 0xf4, 0xe9, 0x45, 0x34, 0x25, 0x1a, 0x15, 0xac, 0xa7,
+ 0xb8, 0x6c, 0xc6, 0x19, 0x26, 0xba, 0x16, 0xe1, 0x1d, 0x19, 0xdc, 0xe6, 0x6e, 0x78, 0x04, 0x50,
+ 0xa7, 0xfd, 0x2f, 0x5f, 0x1b, 0x56, 0x54, 0xad, 0x7e, 0x5f, 0x18, 0xe4, 0x0c, 0x58, 0x21, 0xd1,
+ 0xc0, 0xb2, 0x45, 0xb4, 0x17, 0xb9, 0xc5, 0x8f, 0x46, 0xb4, 0x55, 0xd9, 0xcb, 0x0e, 0xf2, 0xb5,
+ 0x23, 0xfe, 0x49, 0xf1, 0xc4, 0x0c, 0xca, 0x7b, 0xaf, 0xf1, 0x61, 0xfc, 0xd1, 0x1b, 0x5e, 0x12,
+ 0x2a, 0xc4, 0x71, 0xe1, 0x2d, 0xfa, 0xfc, 0x34, 0x82, 0xe1, 0x28, 0xef, 0x14, 0xe8, 0x63, 0xb0,
+ 0x62, 0xd7, 0x72, 0x61, 0x69, 0x46, 0x8f, 0x09, 0x29, 0x61, 0x25, 0x77, 0xf3, 0x7c, 0x48, 0xe9,
+ 0x7d, 0x46, 0x9b, 0x27, 0x54, 0xaa, 0xcd, 0x45, 0x4a, 0x27, 0xe1, 0x75, 0x91, 0x5c, 0x6d, 0x68,
+ 0x31, 0x8a, 0x39, 0xd1, 0xd5, 0x23, 0xa6, 0xe5, 0xf5, 0xd1, 0xf3, 0xda, 0x98, 0x3e, 0x24, 0x95,
+ 0x30, 0xcd, 0x80, 0x2d, 0x75, 0xbf, 0xa0, 0x53, 0xf0, 0x2d, 0x84, 0xa7, 0x42, 0xe2, 0xdd, 0xbc,
+ 0xc1, 0xf5, 0xfc, 0x48, 0xb7, 0x25, 0xc3, 0x39, 0x43, 0x48, 0x22, 0xa4, 0x11, 0xd2, 0x0b, 0x9c,
+ 0x20, 0x37, 0x41, 0x36, 0xe7, 0x6b, 0xc0, 0x62, 0xa0, 0x36, 0xf8, 0x7b, 0x7c, 0xbc, 0x96, 0x69,
+ 0x8a, 0x2f, 0xf7, 0x0f, 0xd0, 0xfe, 0xba, 0x1d, 0xe7, 0x0f, 0xb6, 0xbb, 0x5b, 0xe1, 0xe8, 0xbe,
+ 0xd7, 0x5e, 0x2d, 0x1e, 0x63, 0x3f, 0xb7, 0x3a, 0x0d, 0x1e, 0xaf, 0xb5, 0xb6, 0x01, 0x13, 0xbf,
+ 0x3d, 0x28, 0x19, 0x4b, 0x59, 0x7c, 0x8e, 0x81, 0xc9, 0x4b, 0xd2, 0x83, 0x69, 0xe7, 0x82, 0xba,
+ 0xbf, 0x7a, 0x6f, 0xa8, 0xc0, 0xe8, 0x04, 0x65, 0x06, 0xa8, 0x5a, 0x56, 0x2d, 0x29, 0xae, 0x8f,
+ 0xc6, 0xe3, 0x55, 0xf9, 0x51, 0x77, 0xd1, 0xbd, 0x58, 0xf9, 0xa4, 0x14, 0x52, 0x83, 0xa1, 0x43,
+ 0x72, 0x2d, 0xb3, 0x7a, 0xfb, 0x92, 0xef, 0x38, 0x79, 0x7a, 0x59, 0xab, 0xcd, 0x22, 0x03, 0x3c,
+ 0xdb, 0xfc, 0x0d, 0x84, 0xef, 0x60, 0x9f, 0x5e, 0x31, 0x84, 0x8e, 0xec, 0x47, 0xd8, 0xb5, 0x90,
+ 0x15, 0x62, 0xd9, 0x91, 0xf7, 0x7d, 0x7e, 0x1a, 0x41, 0x91, 0x14, 0x96, 0x0a, 0x74, 0xd0, 0x58,
+ 0x99, 0x1c, 0x3e, 0xd3, 0x61, 0x4d, 0xd0, 0x35, 0xb8, 0xd3, 0x53, 0xe0, 0xc8, 0x18, 0x6b, 0x10,
+ 0x4b, 0xda, 0x0b, 0x47, 0x67, 0xdb, 0x79, 0x24, 0xa4, 0x47, 0x94, 0x1f, 0x4a, 0x33, 0xe3, 0x22,
+ 0x34, 0x12, 0x21, 0x5b, 0xb0, 0x8a, 0xb8, 0xce, 0xe4, 0x5b, 0x9b, 0x90, 0xac, 0x14, 0xbf, 0x18,
+ 0x60, 0x59, 0xc3, 0x5a, 0xea, 0xbd, 0x83, 0xa6, 0x23, 0x5a, 0xcb, 0x8d, 0x84, 0x07, 0x79, 0xbb,
+ 0x92, 0xa8, 0xb7, 0xf8, 0x0b, 0x40, 0xea, 0xd5, 0x9f, 0xf8, 0xf4, 0x09, 0x7a, 0x90, 0x67, 0xe0,
+ 0xac, 0x49, 0xa6, 0x74, 0x71, 0x5b, 0x6e, 0x4d, 0x59, 0x74, 0xbf, 0x0d, 0xbe, 0xd0, 0x2d, 0x21,
+ 0x6e, 0x75, 0x52, 0xfb, 0xe5, 0x19, 0xa7, 0x6d, 0x15, 0xfb, 0x04, 0x2e, 0x02, 0xa5, 0xee, 0xc6,
+ 0xa1, 0xac, 0x3f, 0x12, 0x5d, 0x98, 0x40, 0x9f, 0x60, 0x12, 0xe9, 0x29, 0x95, 0xd5, 0x72, 0x27,
+ 0x81, 0x9b, 0x7e, 0x24, 0xba, 0xf3, 0x80, 0xfd, 0xc0, 0x24, 0x11, 0x52, 0xe9, 0x69, 0xe4, 0x4e,
+ 0x3b, 0x79, 0x09, 0x06, 0x1f, 0xb2, 0x9a, 0xb3, 0xd7, 0x06, 0x23, 0x4e, 0xf0, 0x6a, 0xd1, 0x4c,
+ 0x19, 0xc0, 0xf9, 0x0b, 0x7b, 0x22, 0x56, 0x7e, 0x7d, 0x0b, 0x35, 0xcf, 0xfb, 0xad, 0x76, 0x77,
+ 0xe4, 0x5a, 0xa5, 0xf4, 0x35, 0xe7, 0x1d, 0x70, 0xf2, 0xf4, 0xb2, 0x95, 0x59, 0x44, 0x06, 0x78,
+ 0x2c, 0x95, 0x61, 0xac, 0x6b, 0x34, 0xe8, 0x06, 0x9c, 0xac, 0xd9, 0x22, 0x8d, 0x65, 0x30, 0x46,
+ 0xbd, 0xf4, 0xde, 0x93, 0x43, 0x13, 0x08, 0xca, 0x0c, 0x93, 0xb4, 0xac, 0x5a, 0x52, 0x9f, 0xdd,
+ 0xb6, 0x40, 0x57, 0xb8, 0x29, 0x1e, 0x32, 0x2a, 0x2b, 0xb8, 0x13, 0x45, 0xe8, 0xda, 0x93, 0x2d,
+ 0xd3, 0x81, 0x8c, 0x68, 0xa6, 0x0a, 0xaf, 0xa7, 0x19, 0x68, 0xb0, 0x82, 0x58, 0xf7, 0x71, 0x1b,
+ 0xe7, 0x93, 0xad, 0x33, 0x16, 0x80, 0x17, 0x69, 0xfd, 0x33, 0x2b, 0x12, 0xf4, 0xe3, 0xce, 0x03,
+ 0x9b, 0x92, 0x8f, 0xe8, 0xe2, 0xb6, 0xdc, 0x9a, 0xb2, 0xe8, 0xbd, 0x1a, 0xbf, 0x63, 0x5a, 0x42,
+ 0x8c, 0x7e, 0xe7, 0x42, 0x96, 0x30, 0xae, 0x2f, 0xf9, 0x42, 0x47, 0x76, 0xc2, 0x6c, 0xbb, 0x48,
+ 0x04, 0xdf, 0xa1, 0x76, 0xc5, 0x35, 0x18, 0x9d, 0x14, 0x76, 0x1f, 0x37, 0xee, 0xf6, 0x62, 0xa4,
+ 0x86, 0x8d, 0xd7, 0x95, 0x5c, 0xa1, 0x92, 0x79, 0xdb, 0x95, 0x97, 0xe2, 0xaa, 0x38, 0x4e, 0x91,
+ 0xef, 0xee, 0x2c, 0xdf, 0x5f, 0xea, 0x27, 0x90, 0xd5, 0xdf, 0x15, 0x7c, 0xeb, 0xcc, 0x0a, 0x88,
+ 0x32, 0x43, 0x31, 0x16, 0xf6, 0x44, 0xac, 0xfc, 0xfa, 0x16, 0x6a, 0x5d, 0x35, 0x99, 0xec, 0xee,
+ 0x0b, 0xb4, 0x89, 0x2b, 0x6a, 0x0d, 0x3a, 0xe0, 0x27, 0x2b, 0xa7, 0xe9, 0xb2, 0x88, 0x0c, 0xf0,
+ 0x9e, 0x0a, 0x97, 0x62, 0x87, 0x1f, 0xc2, 0xb1, 0xa3, 0x62, 0xd5, 0x50, 0x8b, 0x49, 0xc1, 0xcf,
+ 0x80, 0xdc, 0xc7, 0xd8, 0x1a, 0x6f, 0x86, 0x4b, 0xc5, 0xd8, 0x66, 0x2f, 0x33, 0xb5, 0x1d, 0x67,
+ 0x1c, 0x58, 0xe1, 0x81, 0x1e, 0x8b, 0x48, 0x55, 0x6c, 0x81, 0x5d, 0x85, 0xcf, 0x87, 0xed, 0xfa,
+ 0xb1, 0x56, 0xfe, 0x09, 0xcf, 0x4c, 0x20, 0xae, 0x30, 0x09, 0x95, 0xf5, 0xab, 0x8b, 0x39, 0xf2,
+ 0xd4, 0x97, 0x25, 0xd9, 0x40, 0x58, 0xbd, 0x23, 0x02, 0xd9, 0x36, 0x32, 0x1b, 0xa6, 0xdb, 0xc4,
+ 0x7a, 0x50, 0x32, 0x96, 0xb2, 0xf8, 0xdf, 0xc1, 0x51, 0x96, 0x67, 0xc5, 0xd2, 0x0d, 0xc7, 0xb7,
+ 0x5b, 0x20, 0xca, 0x5c, 0xf5, 0x0f, 0x19, 0x15, 0xf4, 0x5c, 0xe8, 0xc3, 0x74, 0x6d, 0xa8, 0xf7,
+ 0xa3, 0x22, 0x8e, 0x29, 0xde, 0x63, 0x4c, 0x30, 0x6a, 0x29, 0x07, 0xd3, 0xe2, 0xae, 0x43, 0x75,
+ 0xf9, 0x45, 0xfd, 0x89, 0x8b, 0xf0, 0x53, 0x93, 0x9b, 0x89, 0x98, 0x6d, 0x4c, 0x1f, 0x12, 0xab,
+ 0x33, 0x04, 0x88, 0xea, 0x56, 0xd8, 0xaa, 0x4a, 0xff, 0xea, 0x1d, 0x20, 0xef, 0x45, 0x15, 0xc7,
+ 0x68, 0x24, 0x42, 0xb6, 0xa3, 0xd7, 0xb3, 0x5f, 0x0b, 0xb6, 0xf5, 0xe3, 0x9b, 0x28, 0xbd, 0x30,
+ 0x96, 0x77, 0x16, 0x8e, 0xce, 0x75, 0xf2, 0x48, 0x8b, 0x8e, 0xeb, 0x3e, 0x94, 0x66, 0x05, 0x44,
+ 0x46, 0x3f, 0x92, 0x21, 0x4b, 0x18, 0x57, 0xf6, 0x9d, 0x21, 0xc2, 0x3b, 0x61, 0x36, 0xbc, 0x24,
+ 0x02, 0x8e, 0xb1, 0x3b, 0x83, 0xfb, 0x0c, 0xaf, 0x0a, 0x3b, 0xee, 0xfa, 0x77, 0x7b, 0x31, 0x52,
+ 0xff, 0x14, 0xed, 0xc4, 0xcd, 0x3e, 0x47, 0xa1, 0x85, 0xc4, 0x69, 0xa0, 0xd5, 0x92, 0x41, 0x5d,
+ 0x95, 0xbe, 0x1e, 0x49, 0xed, 0x12, 0xf8, 0x51, 0x84, 0x49, 0x72, 0xb9, 0x39, 0xc1, 0xcd, 0x3f,
+ 0x64, 0x86, 0x62, 0x2c, 0x2f, 0x88, 0x9b, 0x3b, 0x37, 0x2c, 0xd4, 0xba, 0x6a, 0xf1, 0x1b, 0x1f,
+ 0x40, 0x6e, 0x82, 0x6c, 0x0d, 0xd6, 0x43, 0xc4, 0x83, 0x6c, 0x33, 0xf6, 0xf8, 0xbb, 0xef, 0xd2,
+ 0x41, 0x29, 0x3b, 0x90, 0xad, 0x4a, 0x45, 0x72, 0x86, 0x90, 0x44, 0x8b, 0x22, 0x67, 0x16, 0xfb,
+ 0x16, 0xab, 0xd1, 0x56, 0xd4, 0x1a, 0x74, 0x03, 0x4e, 0x56, 0x8d, 0x11, 0xa7, 0xd3, 0x18, 0x23,
+ 0x0e, 0x2c, 0x91, 0xa1, 0x0f, 0xa4, 0x24, 0xcb, 0x36, 0xa1, 0xcf, 0xa3, 0x86, 0xa2, 0x97, 0x7d,
+ 0xb9, 0x2b, 0x7f, 0xe5, 0x86, 0x26, 0x10, 0x57, 0x18, 0xe5, 0xab, 0x9b, 0xb4, 0xa4, 0xfd, 0x79,
+ 0xfd, 0x9a, 0x5c, 0xff, 0x4e, 0xc5, 0x4b, 0x0e, 0x8f, 0xff, 0x87, 0x5a, 0xa2, 0xe9, 0x70, 0x0f,
+ 0x6f, 0x32, 0xeb, 0x07, 0x45, 0x85, 0xa1, 0xdb, 0x10, 0x07, 0x73, 0x53, 0xd8, 0x79, 0x17, 0xef,
+ 0x91, 0x61, 0xbf, 0x3f, 0x28, 0x27, 0xe0, 0xcc, 0x90, 0x3f, 0x6d, 0x8e, 0xd7, 0x37, 0xaf, 0x9b,
+ 0xa5, 0x73, 0x9e, 0x64, 0x98, 0xad, 0x58, 0x02, 0x74, 0x64, 0xf6, 0x1e, 0x7b, 0x23, 0x10, 0x83,
+ 0xcf, 0xd9, 0x6d, 0xe9, 0xb8, 0x81, 0xe7, 0xf2, 0x75, 0xe9, 0xed, 0x07, 0x97, 0x70, 0x9c, 0xe1,
+ 0x56, 0xc5, 0x53, 0x3a, 0xd9, 0xcc, 0x37, 0xc7, 0xcd, 0x3a, 0xbe, 0xe7, 0x5f, 0x68, 0xf7, 0xf1,
+ 0xba, 0xe2, 0x77, 0x22, 0xa5, 0x41, 0x1a, 0x4e, 0x17, 0x22, 0x32, 0x1c, 0x19, 0x03, 0x35, 0x02,
+ 0x61, 0x1e, 0x7a, 0xa6, 0x4a, 0x21, 0x85, 0x10, 0x26, 0xa6, 0xbc, 0xf0, 0x5e, 0xdb, 0x80, 0x92,
+ 0x18, 0x87, 0x40, 0xf7, 0xdb, 0xbe, 0x50, 0xc8, 0x78, 0xf7, 0x42, 0xb2, 0x21, 0x71, 0x8f, 0x5e,
+ 0x54, 0x4b, 0xe2, 0x01, 0x5a, 0x37, 0x3b, 0x68, 0xc7, 0x01, 0x50, 0x1d, 0x28, 0x13, 0xc6, 0xa3,
+ 0x8b, 0x68, 0x4e, 0xf3, 0x70, 0x62, 0xbc, 0xab, 0xe2, 0xf3, 0xc1, 0xc6, 0x81, 0x3d, 0x11, 0x97,
+ 0x3e, 0xe1, 0x11, 0x8c, 0x7a, 0x1b, 0x84, 0x98, 0xc6, 0x8c, 0x4b, 0x04, 0xc4, 0x40, 0x4a, 0xc1,
+ 0x5a, 0x67, 0x73, 0xa0, 0x55, 0x93, 0x1f, 0xa3, 0xf1, 0xa0, 0x9f, 0xbe, 0xae, 0xb1, 0x51, 0xde,
+ 0xce, 0x9e, 0xd4, 0x15, 0x18, 0x1d, 0xe1, 0x44, 0x70, 0x15, 0x9a, 0x7a, 0x4d, 0xac, 0x65, 0xc8,
+ 0xf7, 0x69, 0x6c, 0x28, 0x84, 0x54, 0x77, 0x58, 0xad, 0x28, 0x57, 0xce, 0xca, 0xbd, 0x85, 0xd6,
+ 0xd2, 0xc6, 0x35, 0x94, 0x06, 0x96, 0xa9, 0x11, 0x1c, 0x94, 0xc7, 0xff, 0x82, 0x2b, 0x88, 0x32,
+ 0x82, 0x52, 0x76, 0xe3, 0x99, 0x94, 0x8a, 0xe4, 0xcf, 0xe3, 0x88, 0xd5, 0x44, 0xce, 0x2c, 0x35,
+ 0xb3, 0xd8, 0x4f, 0x32, 0x4c, 0xb7, 0x2c, 0x01, 0x3a, 0x32, 0x7b, 0x0f, 0xdc, 0xf0, 0x08, 0xa0,
+ 0xb4, 0xce, 0xe6, 0x83, 0xaa, 0xe5, 0x3e, 0x85, 0x21, 0x83, 0xfd, 0xbf, 0x9f, 0xa1, 0xa2, 0x7f,
+ 0xd6, 0x19, 0x94, 0xe2, 0xc3, 0xa3, 0xb1, 0x8c, 0x08, 0xe2, 0xd8, 0xc8, 0x6c, 0xdd, 0xea, 0x96,
+ 0xe1, 0xc2, 0xbd, 0x7e, 0x50, 0x4e, 0x03, 0x5b, 0xe3, 0x7e, 0xda, 0xdf, 0x6d, 0x6e, 0x9d, 0xf5,
+ 0xc2, 0x3c, 0xf4, 0x8f, 0x94, 0x42, 0xc9, 0x20, 0x4c, 0x8f, 0xbb, 0x23, 0xbc, 0x75, 0xc3, 0xe7,
+ 0x5d, 0x71, 0xda, 0x11, 0xb3, 0xc1, 0x0d, 0x27, 0xea, 0x11, 0x19, 0x0e, 0xed, 0xe0, 0xfb, 0x01,
+ 0xfa, 0x8c, 0xf5, 0x4e, 0xa8, 0x97, 0x59, 0x8a, 0x94, 0x4e, 0x01, 0xea, 0xe1, 0xb8, 0xda, 0xd0,
+ 0xa4, 0x34, 0x27, 0x98, 0x38, 0x31, 0x5e, 0xb4, 0x71, 0x98, 0x81, 0x63, 0xa1, 0xff, 0xe9, 0xaa,
+ 0x1f, 0x91, 0xe9, 0x46, 0x3d, 0xec, 0x42, 0x4c, 0x63, 0x46, 0xc4, 0x02, 0x62, 0x20, 0x25, 0x81,
+ 0x0c, 0xa2, 0x20, 0x9a, 0x8c, 0x5f, 0x28, 0x64, 0x3c, 0x9a, 0x21, 0x59, 0xf1, 0xd9, 0xa6, 0x2f,
+ 0x01, 0x47, 0xb9, 0xfc, 0xa0, 0x9c, 0x06, 0xb6, 0x05, 0xfc, 0x77, 0x7d, 0xda, 0xdc, 0xf9, 0x29,
+ 0x2d, 0xd2, 0xd8, 0x50, 0xcb, 0xa8, 0xee, 0xb0, 0x99, 0x50, 0xae, 0x5f, 0x57, 0xb9, 0xc9, 0x6f,
+ 0x67, 0x4f, 0x6a, 0xeb, 0x0c, 0xef, 0x91, 0x22, 0x38, 0xeb, 0x4d, 0x3d, 0xc7, 0x56, 0xd3, 0x64,
+ 0xe2, 0x0b, 0xb5, 0xb9, 0x73, 0x29, 0x09, 0x42, 0xec, 0xb9, 0x43, 0x58, 0xc0, 0xc9, 0x55, 0x8e,
+ 0x09, 0x3a, 0x38, 0x10, 0xe9, 0xf6, 0x36, 0x4f, 0x2d, 0x10, 0x49, 0x13, 0xc5, 0xf3, 0x3d, 0xa2,
+ 0x57, 0x82, 0xea, 0xc6, 0x79, 0x50, 0x31, 0x71, 0xc8, 0xc6, 0xc9, 0x9a, 0x85, 0xb4, 0x0e, 0xd8,
+ 0x11, 0xbd, 0x78, 0xe7, 0x32, 0x48, 0x66, 0x87, 0x55, 0xe7, 0x0b, 0xa1, 0xe4, 0x82, 0xb2, 0xfc,
+ 0xb7, 0x07, 0xee, 0x44, 0x89, 0x82, 0x34, 0x9c, 0x2e, 0x44, 0x64, 0x38, 0x32, 0x06, 0x6a, 0x04,
+ 0xdf, 0x23, 0xac, 0xf2, 0x2a, 0x55, 0x87, 0xc3, 0x25, 0xf2, 0x91, 0xdb, 0xa9, 0x2e, 0xd7, 0x34,
+ 0x6a, 0xaa, 0xf3, 0x8d, 0x20, 0x2c, 0xbf, 0xf0, 0x01, 0x8d, 0x1b, 0x19, 0xec, 0x53, 0x8c, 0x62,
+ 0x93, 0xef, 0x0e, 0x04, 0xab, 0xdc, 0xec, 0x63, 0x9a, 0x04, 0x83, 0x74, 0xa0, 0x4c, 0x9e, 0xc9,
+ 0x24, 0xe8, 0xe0, 0x40, 0x22, 0x5e, 0xd8, 0xff, 0xb4, 0x40, 0xe7, 0x4c, 0x92, 0x4a, 0xf4, 0xcd,
+ 0x7f, 0xc8, 0x2a, 0x1c, 0xd7, 0x51, 0xc1, 0xea, 0x40, 0x1c, 0x0f, 0x8f, 0xe6, 0x27, 0x5c, 0x3a,
+ 0x66, 0x08, 0xd3, 0x17, 0xac, 0x73, 0x97, 0x94, 0x3d, 0x17, 0x3a, 0x40, 0x1d, 0x8a, 0x2a, 0x4d,
+ 0xfe, 0x53, 0x54, 0x38, 0x6d, 0xa2, 0x41, 0x17, 0x80, 0x38, 0x1e, 0xdd, 0x0f, 0x4e, 0xb8, 0x74,
+ 0x07, 0x16, 0xa9, 0xb1, 0xe6, 0x52, 0x12, 0x84, 0x1b, 0xb1, 0x86, 0xb0, 0x43, 0x51, 0xaa, 0xdf,
+ 0x44, 0xb1, 0x23, 0x1a, 0xc8, 0xe3, 0x5b, 0x59, 0x97, 0x1a, 0x2c, 0xc1, 0x16, 0x4d, 0x8d, 0x76,
+ 0x3f, 0xa6, 0xa8, 0x70, 0xda, 0x87, 0x82, 0x2e, 0xc3, 0x70, 0x3c, 0x79, 0x1e, 0x9c, 0xb3, 0xe8,
+ 0xf8, 0x02, 0x44, 0x75, 0x2b, 0x6c, 0x55, 0x25, 0x9e, 0x75, 0xef, 0x10, 0x96, 0xc3, 0xeb, 0x82,
+ 0x06, 0x51, 0x10, 0x4d, 0x46, 0xce, 0x14, 0x32, 0x1e, 0x4d, 0xf1, 0xcd, 0x99, 0x8d, 0x53, 0xf6,
+ 0xca, 0x41, 0x75, 0x63, 0xdd, 0x28, 0xf9, 0xd9, 0x64, 0x63, 0x85, 0x4d, 0xa3, 0x5a, 0x07, 0x6c,
+ 0xad, 0x0e, 0x1f, 0x88, 0xd1, 0xc7, 0x68, 0xfb, 0x5c, 0x88, 0xc8, 0x70, 0x64, 0x0c, 0xd4, 0x08,
+ 0x2b, 0x83, 0xc8, 0x1d, 0x8d, 0x66, 0xfa, 0x82, 0x87, 0x1d, 0x5f, 0x92, 0xce, 0x34, 0x9a, 0x99,
+ 0xae, 0xc7, 0x17, 0x4f, 0xf2, 0xa0, 0x62, 0xe2, 0x53, 0x4f, 0x51, 0xf7, 0xc9, 0xab, 0x1c, 0x73,
+ 0x22, 0xb9, 0xf0, 0x0d, 0x64, 0x90, 0xcc, 0xcd, 0xaa, 0x0d, 0x16, 0x81, 0x0b, 0xc7, 0xa7, 0x3b,
+ 0x39, 0xf7, 0xb8, 0x3d, 0x9c, 0x49, 0x96, 0x1c, 0xdd, 0x3d, 0xcd, 0xb4, 0x87, 0x11, 0xe0, 0x1e,
+ 0xde, 0x64, 0x15, 0x0e, 0x8a, 0xc9, 0x81, 0x75, 0x20, 0x0e, 0xe6, 0xa6, 0x73, 0xf2, 0x2e, 0x1d,
+ 0x1e, 0xd6, 0x50, 0xba, 0x9d, 0x70, 0x44, 0xfa, 0x66, 0xba, 0xb3, 0x7f, 0xb8, 0xfc, 0xdc, 0xa8,
+ 0xa8, 0x96, 0x07, 0x02, 0xb4, 0x6e, 0x76, 0xd0, 0x4d, 0x02, 0xa0, 0x3a, 0x50, 0x26, 0x4f, 0x85,
+ 0x58, 0xe9, 0xc2, 0x9b, 0xd6, 0x68, 0x13, 0x0c, 0xfb, 0x9b, 0x71, 0x44, 0xd9, 0xca, 0x60, 0x8c,
+ 0x88, 0xa1, 0x46, 0x34, 0x53, 0x05, 0xb6, 0xb2, 0xed, 0x34, 0x58, 0x41, 0x2c, 0x9a, 0xd9, 0xec,
+ 0x9a, 0xd5, 0x36, 0x14, 0x42, 0x2a, 0xda, 0x2c, 0xb7, 0x14, 0xca, 0x67, 0x65, 0xbf, 0xa3, 0x6b,
+ 0x69, 0x63, 0xfb, 0x4a, 0x03, 0x4b, 0xb5, 0xe9, 0x0e, 0x4a, 0x82, 0x9e, 0x41, 0xf4, 0x44, 0x19,
+ 0x28, 0x4a, 0xc0, 0xda, 0xae, 0x01, 0xf0, 0x9b, 0x88, 0xda, 0xc6, 0x15, 0x63, 0x93, 0x52, 0xe2,
+ 0x65, 0xc1, 0xdb, 0xd0, 0x8f, 0x14, 0x9d, 0x8d, 0x32, 0xd0, 0xa3, 0xc7, 0xb0, 0x2d, 0xe2, 0x36,
+ 0xd5, 0xd0, 0x9c, 0x25, 0xe0, 0xc4, 0xbb, 0x95, 0x07, 0x25, 0x41, 0x4f, 0xc1, 0x7a, 0x22, 0xed,
+ 0x7c, 0x01, 0x22, 0xdb, 0xf4, 0x36, 0xcb, 0xf3, 0x4f, 0xdb, 0x96, 0x08, 0x4b, 0x80, 0x94, 0x41,
+ 0xbc, 0xb3, 0x67, 0x6f, 0xe3, 0x8f, 0x0e, 0x7c, 0x09, 0x6f, 0xc3, 0xd1, 0x80, 0x8e, 0x66, 0xf4,
+ 0x38, 0xb0, 0x01, 0xc1, 0x3c, 0xd5, 0x90, 0xaa, 0xd8, 0xc1, 0xba, 0xc9, 0x5d, 0xcd, 0x19, 0x37,
+ 0x4f, 0x05, 0xaa, 0x31, 0xa2, 0xee, 0x61, 0xb9, 0xb0, 0x31, 0x8b, 0x28, 0xa4, 0xc5, 0x81, 0x86,
+ 0xe0, 0x85, 0x04, 0x82, 0xf0, 0xd2, 0x05, 0xed, 0xe6, 0x82, 0xad, 0xa2, 0xb7, 0xb2, 0x64, 0xdc,
+ 0x27, 0x21, 0xe8, 0x87, 0x01, 0x39, 0xd2, 0xe6, 0xbb, 0x87, 0x7e, 0xcb, 0x3f, 0xed, 0x3c, 0xb6,
+ 0x76, 0xf2, 0x12, 0x0c, 0x3e, 0xa7, 0xf7, 0xa5, 0x6d, 0x0c, 0x46, 0x9c, 0x23, 0xd4, 0x61, 0x98,
+ 0x78, 0xde, 0x83, 0xad, 0x31, 0x03, 0xd3, 0x6e, 0x5b, 0xad, 0x89, 0x3f, 0xa5, 0x76, 0xf6, 0xe5,
+ 0x89, 0xe6, 0xff, 0xc8, 0xf3, 0x99, 0xb0, 0x04, 0xe8, 0xc8, 0x2f, 0x3c, 0xf6, 0x46, 0x20, 0xc5,
+ 0x8d, 0x39, 0x5e, 0xbe, 0x36, 0xac, 0xa8, 0x99, 0xfc, 0xbe, 0x30, 0x0b, 0x18, 0xb0, 0x42, 0x61,
+ 0xaf, 0x80, 0xae, 0xb3, 0x52, 0x3c, 0x64, 0x54, 0x56, 0xb3, 0x26, 0x8a, 0x13, 0x77, 0xe5, 0x5a,
+ 0x9f, 0x4d, 0x2e, 0x9e, 0x27, 0x83, 0xc4, 0x07, 0xa6, 0x9e, 0xa2, 0x2d, 0x51, 0x95, 0x38, 0xe6,
+ 0x84, 0x03, 0x66, 0xae, 0xdf, 0x5a, 0x9e, 0xd6, 0xd1, 0xae, 0x79, 0x18, 0xdd, 0x43, 0x7f, 0xc3,
+ 0xe6, 0xd4, 0x14, 0xcf, 0xb6, 0x1c, 0x11, 0xdf, 0xf8, 0xcf, 0x5c, 0x6f, 0x2e, 0x3f, 0x37, 0x2a,
+ 0xf1, 0x38, 0x7c, 0x65, 0xc2, 0x9a, 0x63, 0x6a, 0xb3, 0x65, 0xa6, 0x03, 0x53, 0x30, 0xd6, 0x20,
+ 0x63, 0x90, 0xcb, 0x9d, 0xc9, 0xda, 0x89, 0xbf, 0x2c, 0x9d, 0x52, 0x0a, 0x29, 0xa0, 0xb1, 0xc0,
+ 0x51, 0xd3, 0xfa, 0x8b, 0x3f, 0x9e, 0x25, 0x43, 0xd6, 0x8b, 0x38, 0x57, 0x1c, 0x39, 0x5d, 0x2e,
+ 0xc8, 0xcf, 0xc4, 0x58, 0x5e, 0xd3, 0xf5, 0x76, 0x6e, 0x58, 0x6b, 0xb7, 0xd4, 0x21, 0x36, 0x3e,
+ 0x03, 0xc9, 0x08, 0xc7, 0x23, 0x67, 0x0a, 0x19, 0x0f, 0xc7, 0x99, 0x87, 0xad, 0xa7, 0xc8, 0x7b,
+ 0xed, 0x60, 0x9d, 0xe4, 0xdc, 0x11, 0x2b, 0x3f, 0xdf, 0xe4, 0xfb, 0x86, 0x9c, 0xb7, 0x3b, 0xda,
+ 0x70, 0xa3, 0x02, 0x41, 0x78, 0x69, 0xe3, 0x97, 0x73, 0x41, 0xb7, 0x51, 0xba, 0x59, 0x32, 0x6e,
+ 0x3c, 0x6f, 0xa0, 0xb7, 0xf9, 0xe0, 0x88, 0x37, 0xcc, 0xb7, 0xa5, 0xfe, 0xb3, 0x3b, 0x7b, 0x93,
+ 0x8e, 0xf0, 0x56, 0x79, 0x15, 0xcb, 0xa2, 0x80, 0xf3, 0x79, 0xa9, 0x8c, 0xb5, 0x17, 0x8a, 0x1a,
+ 0xd9, 0x72, 0xbc, 0xbf, 0x6c, 0x9b, 0x93, 0xf1, 0x3b, 0xbf, 0x60, 0x16, 0x30, 0xa3, 0x84, 0xc2,
+ 0x10, 0xfa, 0xc1, 0x1b, 0x92, 0xd4, 0x60, 0x31, 0x50, 0x1b, 0x7c, 0xdc, 0x3e, 0x5e, 0x4b, 0xd5,
+ 0x1a, 0x09, 0xf1, 0xcc, 0x58, 0x45, 0x5c, 0x67, 0x72, 0xcc, 0xac, 0x48, 0x56, 0x0a, 0xbe, 0x0c,
+ 0x9d, 0xc3, 0x9f, 0xa5, 0xa4, 0x78, 0xc8, 0xa8, 0xac, 0xa5, 0x4c, 0xd7, 0x26, 0xee, 0x09, 0xb4,
+ 0xee, 0xa9, 0x95, 0x23, 0xff, 0x76, 0x21, 0x26, 0xd0, 0x23, 0x62, 0x01, 0x31, 0x10, 0xf3, 0xa1,
+ 0xcb, 0x06, 0xcc, 0x9f, 0x7d, 0xb4, 0xff, 0x6f, 0x61, 0x9f, 0xf2, 0x30, 0x79, 0x86, 0xfe, 0x45,
+ 0x97, 0x30, 0xaf, 0x72, 0x6e, 0xe9, 0xf4, 0xfe, 0x8e, 0x72, 0x9c, 0x43, 0x4e, 0xba, 0xfc, 0x6d,
+ 0xc9, 0x88, 0x7d, 0xa4, 0xfe, 0x4f, 0xf3, 0xc0, 0x6b, 0xa4, 0x1c, 0xca, 0x0e, 0xfd, 0xcf, 0x17,
+ 0x79, 0x99, 0x3a, 0x51, 0x91, 0x9f, 0xd5, 0xd8, 0x5e, 0x51, 0xfe, 0x42, 0x7f, 0xaa, 0x0f, 0xcc,
+ 0xb2, 0x9f, 0xf6, 0xce, 0xec, 0x2b, 0x2a, 0xb7, 0x3f, 0xce, 0x0c, 0x72, 0x06, 0x2c, 0xf1, 0x89,
+ 0x35, 0x55, 0x98, 0xa7, 0x10, 0x16, 0xbe, 0x78, 0xe1, 0xa7, 0xec, 0xed, 0x76, 0xc8, 0x46, 0x31,
+ 0x6c, 0xfb, 0xe3, 0xc0, 0x66, 0xe2, 0xab, 0xc2, 0x1f, 0xc0, 0xea, 0xd4, 0x75, 0xde, 0xdf, 0x94,
+ 0x9c, 0x84, 0x26, 0x59, 0x04, 0xe4, 0xce, 0x1e, 0xa9, 0x59, 0x3b, 0xaa, 0xfc, 0x32, 0xf0, 0x9d,
+ 0x1b, 0x4e, 0x48, 0x30, 0xf8, 0xd9, 0x5a, 0xd1, 0x77, 0x30, 0xdb, 0x35, 0x8c, 0xd6, 0x47, 0x25,
+ 0x05, 0x98, 0x18, 0x8a, 0x65, 0xa9, 0x1e, 0x2b, 0x11, 0x8a, 0x68, 0x4a, 0x34, 0x2a, 0x9b, 0x8d,
+ 0x50, 0x94, 0x43, 0x77, 0x9f, 0x02, 0x23, 0xf5, 0xd3, 0x77, 0x4f, 0x2a, 0xc6, 0xe5, 0xa4, 0x07,
+ 0xf0, 0x7f, 0xc5, 0x99, 0x62, 0x06, 0x65, 0xdc, 0xb6, 0x99, 0xd1, 0x7e, 0x89, 0xec, 0x2f, 0x09,
+ 0xd1, 0x0f, 0x3d, 0x53, 0x25, 0xf1, 0xa3, 0x08, 0x13, 0x53, 0x5e, 0x78, 0x2f, 0x8c, 0x40, 0x49,
+ 0x12, 0x74, 0x70, 0x20, 0x11, 0x2f, 0x6c, 0x9e, 0x5a, 0x20, 0x92, 0x26, 0x49, 0x25, 0x7a, 0x87,
+ 0x87, 0xca, 0x6e, 0x69, 0xfc, 0x3d, 0x94, 0xcf, 0xde, 0x69, 0xe0, 0x9f, 0x70, 0xe4, 0xb7, 0xb8,
+ 0x08, 0x7d, 0x81, 0xec, 0x49, 0x6a, 0x30, 0xf9, 0x28, 0xec, 0x3e, 0x6e, 0x1f, 0x2f, 0xc4, 0x8b,
+ 0x59, 0xae, 0x7b, 0x67, 0x76, 0xf4, 0x15, 0xba, 0xfe, 0x67, 0x06, 0x39, 0x03, 0x16, 0x99, 0xa5,
+ 0xfc, 0xdd, 0xe5, 0x03, 0xee, 0x59, 0x4d, 0xb8, 0x8a, 0x03, 0xf0, 0x27, 0x78, 0x35, 0x89, 0x26,
+ 0x21, 0x70, 0xf8, 0xca, 0x47, 0xf7, 0xc6, 0xd4, 0xa5, 0xca, 0x8f, 0x06, 0xa6, 0x60, 0x6f, 0x40,
+ 0x85, 0x44, 0xdf, 0x52, 0x7f, 0xc6, 0x98, 0x60, 0xd4, 0x52, 0x0e, 0x65, 0x07, 0x9f, 0x86, 0xea,
+ 0x55, 0x0c, 0x5b, 0xfd, 0xfa, 0xab, 0x3d, 0xde, 0xc2, 0xfd, 0x27, 0x60, 0xf2, 0xcf, 0x3f, 0x8a,
+ 0x4e, 0x42, 0x13, 0xcd, 0x02, 0x72, 0x67, 0x0f, 0xb5, 0xcd, 0xfc, 0x55, 0x7e, 0x19, 0x78, 0xaf,
+ 0xec, 0x27, 0x24, 0x18, 0x7c, 0x8d, 0x2d, 0x89, 0xda, 0x18, 0x8c, 0xfb, 0x46, 0x6b, 0xc2, 0xf3,
+ 0xfb, 0xcb, 0x4c, 0xb2, 0x08, 0x0b, 0x5f, 0x3c, 0x91, 0xb2, 0x76, 0x97, 0x3b, 0x64, 0x23, 0xf9,
+ 0x36, 0x9c, 0x90, 0x60, 0x33, 0x71, 0xb4, 0x61, 0xee, 0x60, 0x75, 0x6a, 0xdb, 0x6f, 0x8e, 0x4a,
+ 0x75, 0x3b, 0x1a, 0xcb, 0x1d, 0xc0, 0xfd, 0xbc, 0x62, 0xcb, 0xdf, 0x1b, 0x8e, 0x73, 0xa9, 0xe3,
+ 0x37, 0xdb, 0x29, 0x9c, 0x93, 0xed, 0xb2, 0xd7, 0xeb, 0x9c, 0x02, 0x17, 0x01, 0xb3, 0x77, 0x63,
+ 0x5c, 0x36, 0x63, 0xed, 0x13, 0x5d, 0x0b, 0x91, 0xef, 0xed, 0x6e, 0x73, 0x37, 0x3c, 0x02, 0x28,
+ 0xf6, 0x2e, 0xd5, 0xd4, 0x24, 0xc8, 0x71, 0xee, 0xa8, 0xd4, 0x20, 0xb3, 0x10, 0x61, 0x7c, 0xff,
+ 0xf4, 0xa0, 0x64, 0xef, 0xa7, 0x33, 0x7d, 0x41, 0xa2, 0xef, 0xce, 0x49, 0x67, 0x1a, 0x4d, 0xad,
+ 0xcd, 0x57, 0xdc, 0xd2, 0x3b, 0x7a, 0xeb, 0x5d, 0x7f, 0xd2, 0x03, 0xfd, 0xe0, 0x0b, 0xad, 0xb3,
+ 0x6b, 0xed, 0x4a, 0x71, 0x80, 0xb0, 0xb9, 0x46, 0x04, 0x71, 0x6c, 0x64, 0x36, 0x8f, 0x75, 0x4b,
+ 0xa2, 0x65, 0x37, 0xd5, 0x7e, 0xff, 0x4a, 0x86, 0x6f, 0xd5, 0x70, 0xae, 0x38, 0x72, 0xba, 0x5c,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xaa, 0x18, 0xb6, 0x39, 0x37, 0x95, 0x7a, 0x7f, 0x47, 0x39, 0x4e, 0xc0, 0x27, 0x5d, 0x7e, 0xd7,
+ 0x71, 0xe4, 0xbb, 0xbd, 0xd8, 0xf5, 0xe5, 0x21, 0x76, 0xbd, 0xc0, 0x2c, 0x60, 0x85, 0xcb, 0x47,
+ 0x42, 0xe0, 0x33, 0x57, 0x8e, 0x2d, 0x4f, 0x6b, 0x89, 0x57, 0xdd, 0x0c, 0x8f, 0xc0, 0xde, 0x80,
+ },
+ { /* 4 */
+ 0xc2, 0x36, 0xbf, 0xb8, 0xb8, 0xed, 0xf8, 0xa5, 0xff, 0x6a, 0x2d, 0xa5, 0x4a, 0x84, 0x52, 0x5c,
+ 0x95, 0x8b, 0xd1, 0x9a, 0x9a, 0x0a, 0x38, 0x2d, 0x73, 0xc6, 0x2f, 0x2d, 0x97, 0x24, 0xdb, 0x4d,
+ 0xa6, 0x30, 0x54, 0xed, 0xed, 0x72, 0xdb, 0x32, 0x62, 0xa7, 0x28, 0x32, 0xbc, 0x57, 0x26, 0x97,
+ 0x27, 0xcf, 0x12, 0x53, 0x53, 0x58, 0x5c, 0x8f, 0x1d, 0x07, 0x49, 0x8f, 0xe1, 0x72, 0x4a, 0xc8,
+ 0xe0, 0xe4, 0xf8, 0xe2, 0xe2, 0xbd, 0xfb, 0x0e, 0xe1, 0x95, 0x96, 0x0e, 0x78, 0x67, 0x45, 0x71,
+ 0x86, 0x51, 0x31, 0x0c, 0x0c, 0x4d, 0xfe, 0x30, 0xc3, 0x57, 0x98, 0x30, 0x2e, 0x81, 0x7c, 0x06,
+ 0x06, 0x16, 0x66, 0x0e, 0x0e, 0xb1, 0x6a, 0x38, 0x02, 0x11, 0x1d, 0x38, 0x23, 0x5f, 0xd7, 0x07,
+ 0x5d, 0x87, 0xc4, 0x30, 0x30, 0xf7, 0x7e, 0xc0, 0x8a, 0x9f, 0x25, 0xc0, 0xb8, 0x41, 0x33, 0x18,
+ 0x09, 0x31, 0x99, 0x15, 0x15, 0xa9, 0x8b, 0x54, 0x07, 0xda, 0xc8, 0x54, 0x95, 0x2f, 0x30, 0xeb,
+ 0x78, 0xfb, 0xf4, 0xd8, 0xd8, 0xc0, 0x04, 0xe6, 0x28, 0x97, 0x67, 0xe6, 0xf9, 0x06, 0x34, 0x6c,
+ 0xf4, 0x90, 0x6f, 0xc6, 0xc6, 0x9d, 0x44, 0x9e, 0xed, 0xf3, 0xd8, 0x9e, 0xb2, 0x66, 0xf2, 0x63,
+ 0x16, 0xc7, 0xb5, 0x9f, 0x9f, 0x4f, 0x99, 0x39, 0xb3, 0x69, 0x45, 0x39, 0x6a, 0x34, 0xfa, 0xae,
+ 0x19, 0xe0, 0x4a, 0x84, 0x84, 0x57, 0x78, 0x55, 0xb6, 0xa2, 0x90, 0x55, 0xdc, 0x44, 0x1d, 0x42,
+ 0xec, 0xc8, 0x34, 0xfe, 0xfe, 0x1c, 0x2f, 0x7e, 0xe5, 0xb7, 0xac, 0x7e, 0x3e, 0xd9, 0x28, 0x7f,
+ 0x69, 0x92, 0x36, 0xf5, 0xf5, 0xe8, 0xe4, 0x52, 0x27, 0x09, 0xdb, 0x52, 0xe0, 0x96, 0xde, 0x9b,
+ 0x04, 0xa5, 0x44, 0xb5, 0xb5, 0xde, 0x4c, 0x91, 0xbd, 0x1e, 0x16, 0x91, 0x83, 0x6a, 0x9a, 0xbb,
+ 0x8f, 0x60, 0xa8, 0x19, 0x19, 0xe4, 0x75, 0x64, 0xc4, 0x8d, 0x50, 0x64, 0xbb, 0xae, 0x4c, 0xed,
+ 0x30, 0xb0, 0xb6, 0x70, 0x70, 0xc1, 0xd6, 0x03, 0x10, 0x88, 0xe8, 0x03, 0xdb, 0xbd, 0x77, 0x38,
+ 0x39, 0x81, 0x2f, 0x65, 0x65, 0x68, 0x5d, 0x57, 0x17, 0x52, 0x20, 0x57, 0x4e, 0x92, 0x47, 0xd3,
+ 0xe9, 0xd5, 0x61, 0xf7, 0xf7, 0x14, 0x70, 0x5a, 0xe6, 0x4f, 0x5e, 0x5a, 0xed, 0x48, 0x75, 0x9a,
+ 0x03, 0x0b, 0x33, 0x07, 0x07, 0xb9, 0x35, 0x1c, 0x01, 0xe9, 0xef, 0x1c, 0xf0, 0xce, 0x8a, 0xe2,
+ 0xcf, 0xa2, 0x62, 0x18, 0x18, 0x9a, 0x3f, 0x60, 0x45, 0xae, 0xf3, 0x60, 0x5c, 0xc1, 0xf8, 0x0c,
+ 0x70, 0x72, 0x7c, 0x71, 0x71, 0xbf, 0x9c, 0x07, 0x91, 0xab, 0x4b, 0x07, 0x3c, 0xd2, 0xc3, 0xd9,
+ 0x43, 0xc9, 0xf9, 0x06, 0x06, 0xc7, 0x7f, 0x18, 0x80, 0xca, 0x4c, 0x18, 0x17, 0xa1, 0x3e, 0x03,
+ 0x55, 0x0e, 0x4c, 0x99, 0x99, 0x88, 0xe6, 0x21, 0x33, 0xa3, 0x09, 0x21, 0x7d, 0x95, 0xc4, 0xad,
+ 0x2c, 0x4d, 0xa9, 0xfd, 0xfd, 0x9e, 0xf1, 0x72, 0xa5, 0xd2, 0x8a, 0x72, 0xd4, 0x68, 0x37, 0x9f,
+ 0x12, 0x62, 0xf1, 0x2a, 0x2a, 0x91, 0xd5, 0xa8, 0x0e, 0x77, 0x53, 0xa8, 0xe9, 0x5e, 0x60, 0x15,
+ 0x8e, 0xd8, 0xb9, 0xa5, 0xa5, 0x32, 0x66, 0xd1, 0x7a, 0x6b, 0xb4, 0xd1, 0xeb, 0x55, 0x8b, 0xb3,
+ 0xd5, 0x49, 0x1b, 0x9b, 0x9b, 0x74, 0x72, 0x29, 0xf2, 0xe5, 0x8c, 0x29, 0x70, 0x4b, 0x6f, 0xac,
+ 0x3d, 0x24, 0x6b, 0xd0, 0xd0, 0xb6, 0x11, 0xc6, 0xaa, 0x4c, 0x36, 0xc6, 0xcd, 0xf8, 0xdd, 0x68,
+ 0xd2, 0xe7, 0x6c, 0x29, 0x29, 0x13, 0x0b, 0xa4, 0x4e, 0x12, 0x75, 0xa4, 0x03, 0xef, 0x7f, 0xf5,
+ 0x76, 0x64, 0x1a, 0x7f, 0x7f, 0x0e, 0xf6, 0x3f, 0x93, 0xba, 0x56, 0x3f, 0x1f, 0x8d, 0x14, 0xde,
+ 0x18, 0x58, 0x5b, 0x38, 0x38, 0x81, 0x6b, 0xe0, 0x08, 0x44, 0x74, 0xe0, 0x8c, 0xbf, 0xda, 0x1c,
+ 0x35, 0xad, 0xe3, 0x79, 0x79, 0xc9, 0x89, 0x27, 0x13, 0x70, 0x1a, 0x27, 0x08, 0x2c, 0x2a, 0xdd,
+ 0x07, 0xae, 0x77, 0xb2, 0xb2, 0x67, 0x79, 0x8d, 0xbc, 0xf7, 0xf9, 0x8d, 0x73, 0xa4, 0x10, 0x59,
+ 0xc0, 0x85, 0x9d, 0x03, 0x03, 0x82, 0xde, 0x0c, 0x40, 0x65, 0x26, 0x0c, 0xea, 0xb1, 0x1f, 0xe0,
+ 0xf7, 0x9b, 0x5c, 0xc1, 0xc1, 0x24, 0x71, 0x82, 0xec, 0x1a, 0x37, 0x82, 0x42, 0xa8, 0x78, 0x81,
+ 0xb8, 0x7e, 0x69, 0xdb, 0xdb, 0x42, 0xda, 0xea, 0x68, 0xf2, 0x41, 0xea, 0x13, 0xb7, 0x2b, 0x8c,
+ 0x72, 0xc1, 0x5e, 0xca, 0xca, 0xd0, 0xba, 0xae, 0x2e, 0xa4, 0x40, 0xae, 0x9c, 0xe7, 0x8e, 0x65,
+ 0x11, 0x69, 0xc2, 0x2d, 0x2d, 0x28, 0xe0, 0xb4, 0x0f, 0x9e, 0xbc, 0xb4, 0x19, 0x90, 0xea, 0xf7,
+ 0xb4, 0x52, 0xa5, 0xc7, 0xc7, 0xe3, 0x0e, 0x9a, 0x6c, 0xd0, 0x7b, 0x9a, 0x55, 0x09, 0x46, 0x82,
+ 0xff, 0x12, 0xd4, 0x68, 0x68, 0x5b, 0xe9, 0x63, 0x55, 0x26, 0x1b, 0x63, 0x87, 0x7c, 0x8f, 0x34,
+ 0x1a, 0xeb, 0x79, 0x83, 0x83, 0xee, 0x4d, 0x49, 0xb7, 0x4b, 0x7f, 0x49, 0x2c, 0x8a, 0x97, 0xa0,
+ 0x48, 0x4b, 0x42, 0xa8, 0xa8, 0x01, 0xd2, 0xe5, 0x38, 0x1f, 0x8f, 0xe5, 0x22, 0xbb, 0x43, 0x54,
+ 0xaa, 0x1c, 0x98, 0xf1, 0xf1, 0xd3, 0x0f, 0x42, 0x66, 0x85, 0x12, 0x42, 0xfa, 0xe9, 0x4b, 0x99,
+ 0x58, 0x9a, 0x91, 0x39, 0x39, 0xff, 0x21, 0xe4, 0x89, 0x67, 0xd7, 0xe4, 0x6b, 0xd0, 0x6e, 0xfd,
+ 0x93, 0x9d, 0xb7, 0x94, 0x94, 0xbb, 0x52, 0x15, 0x71, 0xd7, 0x32, 0x15, 0xb4, 0x7b, 0x0c, 0x4a,
+ 0x21, 0xd9, 0x74, 0x5d, 0x5d, 0xe9, 0x36, 0xb7, 0x1f, 0x16, 0x54, 0xb7, 0xc2, 0x2d, 0x9d, 0xcf,
+ 0xdd, 0xc0, 0x93, 0x32, 0x32, 0x0b, 0xea, 0xc8, 0x4b, 0xd9, 0xa0, 0xc8, 0xb5, 0x9f, 0x98, 0x19,
+ 0x60, 0xa3, 0xaf, 0xe0, 0xe0, 0x41, 0x6f, 0x06, 0x20, 0xd3, 0x13, 0x06, 0x75, 0xb9, 0xee, 0x70,
+ 0x0c, 0x2c, 0xcc, 0x1c, 0x1c, 0xa1, 0xd4, 0x70, 0x04, 0x22, 0x3a, 0x70, 0x46, 0xbe, 0x6d, 0x0e,
+ 0xc4, 0x20, 0xd9, 0xb6, 0xb6, 0x5c, 0x92, 0x9d, 0xfd, 0x7b, 0x30, 0x9d, 0x69, 0xdb, 0x85, 0x5b,
+ 0x9a, 0xac, 0x2e, 0x81, 0x81, 0x12, 0xd9, 0x41, 0x76, 0x0d, 0xfa, 0x41, 0x21, 0x54, 0x3c, 0xa1,
+ 0x5c, 0x3f, 0xd5, 0x8c, 0x8c, 0x21, 0x6d, 0x75, 0x34, 0x79, 0xc1, 0x75, 0xe8, 0xba, 0xf4, 0x46,
+ 0x53, 0x18, 0x2a, 0x97, 0x97, 0x39, 0x8c, 0x19, 0x31, 0xb2, 0x14, 0x19, 0x5e, 0xca, 0x13, 0xaa,
+ 0xcd, 0x11, 0x40, 0xa3, 0xa3, 0xf5, 0x19, 0xc9, 0xfa, 0xa1, 0xf8, 0xc9, 0xfc, 0xf4, 0xb5, 0xb0,
+ 0x32, 0x03, 0x94, 0xcb, 0xcb, 0xae, 0xf0, 0xaa, 0xaf, 0x87, 0xe3, 0xaa, 0x7b, 0x88, 0x3a, 0x84,
+ 0x1b, 0x53, 0x68, 0x3f, 0x3f, 0x38, 0x5e, 0xfc, 0x09, 0xad, 0x9b, 0xfc, 0x7c, 0x71, 0x50, 0xfe,
+ 0x5a, 0x29, 0xb3, 0x82, 0x82, 0x90, 0x07, 0x4d, 0x36, 0x68, 0xdc, 0x4d, 0xcb, 0xe5, 0x23, 0x41,
+ 0xa1, 0x9e, 0x23, 0x5f, 0x5f, 0x15, 0xa2, 0xbf, 0xde, 0x50, 0xd1, 0xbf, 0xcf, 0xf3, 0x36, 0xce,
+ 0xe5, 0xf9, 0xad, 0xeb, 0xeb, 0xb5, 0xa4, 0x2a, 0xe2, 0x6d, 0x64, 0x2a, 0xab, 0xf6, 0x18, 0x94,
+ 0x3c, 0x9c, 0x7a, 0x6c, 0x6c, 0x60, 0x02, 0x73, 0x14, 0xaa, 0xd2, 0x73, 0x9d, 0x03, 0x1a, 0x36,
+ 0x97, 0x38, 0xf3, 0x21, 0x21, 0x65, 0x1e, 0x84, 0xcc, 0xc9, 0x24, 0x84, 0x37, 0x11, 0x96, 0xf1,
+ 0xce, 0x1a, 0x73, 0xa4, 0xa4, 0x4c, 0x2c, 0xd5, 0xfb, 0x48, 0x17, 0xd5, 0x0c, 0x3a, 0x3f, 0x52,
+ 0x6d, 0x37, 0x72, 0x40, 0x40, 0x36, 0xa8, 0xc3, 0x9a, 0x17, 0xcd, 0xc3, 0x63, 0xfc, 0x44, 0x20,
+ 0x62, 0x10, 0x8d, 0x5b, 0x5b, 0x2e, 0x49, 0xaf, 0x9f, 0xdc, 0x18, 0xaf, 0xd5, 0x8c, 0xa3, 0xcc,
+ 0xf5, 0x28, 0x7e, 0x7a, 0x7a, 0x4b, 0x57, 0x2b, 0x53, 0x15, 0x3c, 0x2b, 0xe2, 0x9d, 0x35, 0x3d,
+ 0xb7, 0x59, 0x96, 0xc0, 0xc0, 0x5a, 0x3b, 0x86, 0x6d, 0x39, 0x94, 0x86, 0xa5, 0xc7, 0xcc, 0x60,
+ 0xe2, 0x57, 0xda, 0x59, 0x59, 0xd2, 0xdd, 0xa7, 0x5e, 0x9a, 0x9d, 0xa7, 0xd8, 0x52, 0x08, 0xcd,
+ 0x41, 0x7a, 0xdb, 0xbd, 0xbd, 0xa8, 0x59, 0xb1, 0x3f, 0xc5, 0x47, 0xb1, 0xb7, 0x94, 0x73, 0xbf,
+ 0x71, 0xca, 0x6d, 0xcd, 0xcd, 0x69, 0x8f, 0xb2, 0x2f, 0x4d, 0xaf, 0xb2, 0x6c, 0x29, 0x04, 0x87,
+ 0xf9, 0x04, 0xb2, 0x66, 0x66, 0xea, 0x83, 0x5b, 0x57, 0x37, 0x06, 0x5b, 0xa4, 0x23, 0x58, 0x33,
+ 0xea, 0xde, 0x52, 0xf0, 0xf0, 0xad, 0x45, 0x46, 0xe7, 0xa6, 0xb1, 0x46, 0x1d, 0x86, 0xff, 0x78,
+ 0xae, 0xb9, 0xdc, 0x44, 0x44, 0x0d, 0x43, 0xd3, 0xdb, 0x9b, 0x04, 0xd3, 0x79, 0x83, 0xd1, 0x22,
+ 0xe4, 0x41, 0xbc, 0x57, 0x57, 0x63, 0xb7, 0x9f, 0x5c, 0x8b, 0x80, 0x9f, 0xfb, 0x0d, 0xdf, 0xca,
+ 0x0b, 0x82, 0xbb, 0xae, 0xae, 0xc6, 0xad, 0xfd, 0xb8, 0xd5, 0xc3, 0xfd, 0x35, 0x1a, 0x7d, 0x57,
+ 0xde, 0xcb, 0xa0, 0x35, 0x35, 0xb2, 0xdf, 0xd4, 0x4a, 0x30, 0x4f, 0xd4, 0x45, 0x51, 0x12, 0xfb,
+ 0xf0, 0x35, 0x2b, 0x73, 0x73, 0x43, 0x08, 0x0f, 0x50, 0xed, 0xce, 0x0f, 0x31, 0x0c, 0x68, 0xd8,
+ 0xd4, 0xf1, 0x0a, 0x27, 0x27, 0xa2, 0x61, 0x9c, 0x4c, 0x03, 0x68, 0x9c, 0x20, 0xb0, 0xa8, 0xf2,
+ 0xb5, 0xea, 0xb4, 0x7b, 0x7b, 0x35, 0x1d, 0x2f, 0xd2, 0x36, 0x9f, 0x2f, 0x05, 0xf2, 0x81, 0xdc,
+ 0xa4, 0x83, 0x76, 0x56, 0x56, 0x1d, 0xfd, 0x9b, 0xdd, 0xa8, 0x23, 0x9b, 0x1c, 0x62, 0x6b, 0x2b,
+ 0xba, 0xcd, 0x4b, 0x60, 0x60, 0x2d, 0xfc, 0x43, 0xd7, 0xfd, 0x4a, 0x43, 0xb3, 0x82, 0x66, 0x30,
+ 0xe8, 0x6d, 0x70, 0x4b, 0x4b, 0xc2, 0x63, 0xef, 0x58, 0xa9, 0xba, 0xef, 0xbd, 0xb3, 0xb2, 0xc4,
+ 0x0e, 0x9f, 0xee, 0xa7, 0xa7, 0xce, 0xf2, 0xd9, 0xbb, 0x2d, 0x31, 0xd9, 0xe6, 0x8b, 0x20, 0xb2,
+ 0x9c, 0xba, 0x48, 0x8f, 0x8f, 0xa3, 0xb3, 0x79, 0x74, 0x1c, 0xe7, 0x79, 0x02, 0x0b, 0xeb, 0xa6,
+ 0x31, 0x08, 0xa7, 0xcc, 0xcc, 0x17, 0xc5, 0xb6, 0xae, 0x6e, 0x0c, 0xb6, 0x8b, 0x46, 0xb0, 0x66,
+ 0x79, 0x43, 0xe5, 0x64, 0x64, 0x16, 0x17, 0x53, 0x96, 0x71, 0x83, 0x53, 0xa9, 0xfd, 0xf3, 0x32,
+ 0xfc, 0x19, 0xe7, 0x6f, 0x6f, 0xe2, 0xdc, 0x7f, 0x54, 0xcf, 0xf4, 0x7f, 0x77, 0xb2, 0x05, 0xd6,
+ 0x4d, 0x56, 0x17, 0xa1, 0xa1, 0x09, 0x8d, 0xc1, 0x3b, 0xe7, 0x7d, 0xc1, 0xf1, 0x2a, 0x1e, 0xb1,
+ 0xdb, 0xd6, 0xf5, 0x3c, 0x3c, 0xba, 0x80, 0xf0, 0x49, 0xc8, 0xbd, 0xf0, 0x96, 0xc0, 0x4f, 0x1e,
+ 0x75, 0x6f, 0x29, 0x78, 0x78, 0xb7, 0xc3, 0x23, 0x92, 0x53, 0xb9, 0x23, 0xef, 0x43, 0x9e, 0x3c,
+ 0x68, 0x2a, 0x27, 0x49, 0x49, 0x3e, 0xf7, 0xe7, 0x99, 0xef, 0x3f, 0xe7, 0xb0, 0x6d, 0x19, 0xc5,
+ 0x15, 0xcc, 0x86, 0x98, 0x98, 0xf6, 0xac, 0x25, 0xb2, 0x80, 0xaa, 0x25, 0x9a, 0xfa, 0x70, 0x4c,
+ 0xa9, 0x17, 0xab, 0xf6, 0xf6, 0x6a, 0x3a, 0x5e, 0x67, 0x6c, 0xfd, 0x5e, 0x0a, 0x27, 0xc1, 0x7b,
+ 0x01, 0xb8, 0x11, 0xbc, 0xbc, 0xd6, 0x13, 0xb5, 0xbe, 0xe6, 0xe4, 0xb5, 0x50, 0xfb, 0xc7, 0x5e,
+ 0x23, 0x6a, 0x56, 0xe6, 0xe6, 0x86, 0x10, 0x1e, 0xa0, 0x19, 0x5f, 0x1e, 0x62, 0x18, 0xd0, 0x73,
+ 0xb2, 0x44, 0xc3, 0xc9, 0xc9, 0x52, 0x64, 0xa2, 0x6e, 0xc1, 0x66, 0xa2, 0x76, 0x56, 0x91, 0x85,
+ 0x6e, 0x3c, 0x41, 0x47, 0x47, 0x8f, 0x9d, 0xdf, 0x9b, 0xfe, 0x22, 0xdf, 0x93, 0x32, 0xce, 0xc2,
+ 0xf2, 0x86, 0x09, 0xc8, 0xc8, 0x2c, 0x2e, 0xa6, 0xef, 0xe2, 0xc5, 0xa6, 0x91, 0x39, 0x25, 0x64,
+ 0x3b, 0x32, 0x0d, 0xde, 0xde, 0x07, 0x7b, 0xfe, 0xa8, 0x5d, 0x2b, 0xfe, 0xee, 0xa7, 0x0a, 0x6f,
+ 0x52, 0xa0, 0x3b, 0x2b, 0x2b, 0xef, 0x9f, 0xac, 0x8f, 0x54, 0xf0, 0xac, 0x0e, 0x31, 0xd4, 0xf4,
+ 0x65, 0xbe, 0xfa, 0xe9, 0xe9, 0x49, 0x30, 0x22, 0x23, 0x2b, 0xe1, 0x22, 0xa6, 0x28, 0xb3, 0x95,
+ 0x4b, 0x40, 0x71, 0xaf, 0xaf, 0xb8, 0xe7, 0xf9, 0x39, 0xf6, 0x60, 0xf9, 0xd2, 0x75, 0xc9, 0xb6,
+ 0x38, 0x39, 0x3e, 0xd9, 0xd9, 0xbe, 0x4e, 0xe2, 0xa9, 0xb4, 0xc4, 0xe2, 0x1e, 0x69, 0x80, 0x8d,
+ 0x2a, 0x5b, 0xcf, 0xf3, 0xf3, 0x2f, 0x9b, 0x4a, 0xa7, 0xc3, 0x97, 0x4a, 0xf7, 0x37, 0xe0, 0x98,
+ 0x91, 0x2e, 0x95, 0x2f, 0x2f, 0xd4, 0x74, 0xbc, 0xce, 0xd8, 0x39, 0xbc, 0x14, 0x4e, 0x41, 0xf6,
+ 0xd6, 0x42, 0x28, 0x9c, 0x9c, 0xcd, 0x47, 0x35, 0xf3, 0x0c, 0x63, 0x35, 0x80, 0x85, 0xe5, 0x4e,
+ 0xfd, 0xa1, 0xf6, 0xd3, 0xd3, 0x34, 0xcf, 0xca, 0xea, 0x29, 0x10, 0xca, 0x27, 0x49, 0xc2, 0x88,
+ 0xf8, 0xbc, 0xa3, 0xda, 0xda, 0x3c, 0x90, 0xee, 0xe9, 0xd1, 0xe2, 0xee, 0xf4, 0xd8, 0x9f, 0x6d,
+ 0x8c, 0x6b, 0x9b, 0x1e, 0x1e, 0x5d, 0x40, 0x78, 0xc5, 0x64, 0xbf, 0x78, 0x4b, 0x60, 0xc6, 0x0f,
+ 0x50, 0x13, 0x19, 0x90, 0x90, 0x80, 0xb9, 0x05, 0x30, 0x5b, 0xfb, 0x05, 0xae, 0x04, 0x99, 0x48,
+ 0x7f, 0x55, 0x83, 0x6a, 0x6a, 0xa7, 0x7d, 0x6b, 0x94, 0x60, 0x9e, 0x6b, 0x8a, 0xa2, 0x24, 0x35,
+ 0x59, 0x22, 0x80, 0x85, 0x85, 0x29, 0x32, 0x51, 0x37, 0x81, 0x33, 0x51, 0x3b, 0x2b, 0xa9, 0xa3,
+ 0x08, 0x89, 0x88, 0xa9, 0xa9, 0x7f, 0x98, 0xe1, 0xb9, 0x3c, 0x2c, 0xe1, 0xc5, 0xd4, 0xf7, 0xb5,
+ 0xd9, 0x65, 0xd7, 0x87, 0x87, 0xd5, 0xa6, 0x59, 0xf6, 0xc7, 0xb6, 0x59, 0x36, 0xf5, 0x02, 0xa2,
+ 0xa2, 0x95, 0x10, 0x58, 0x58, 0xac, 0x97, 0xa3, 0xdf, 0xb9, 0x3e, 0xa3, 0x3f, 0x3d, 0xbc, 0x2c,
+ 0xfb, 0xb7, 0x90, 0xdd, 0xdd, 0x85, 0xa5, 0xf2, 0xe8, 0x38, 0x0d, 0xf2, 0x04, 0x16, 0x15, 0x8f,
+ 0x1c, 0xfd, 0x1f, 0x8d, 0x8d, 0x5f, 0x27, 0x71, 0xb5, 0x5a, 0x62, 0x71, 0x0f, 0xd5, 0x40, 0xa7,
+ 0x29, 0x50, 0xfc, 0xf4, 0xf4, 0x96, 0xae, 0x56, 0xa6, 0x2a, 0x78, 0x56, 0x07, 0xf9, 0x6a, 0x7a,
+ 0xd3, 0x5f, 0x7d, 0x95, 0x95, 0xc5, 0x18, 0x11, 0xf0, 0xf4, 0x91, 0x11, 0x53, 0x14, 0xb8, 0xab,
+ 0x6f, 0x84, 0x50, 0xfb, 0xfb, 0x59, 0x8e, 0x6a, 0x25, 0x18, 0xc6, 0x6a, 0xc3, 0xc9, 0x09, 0x9c,
+ 0x47, 0x6c, 0xbd, 0xb3, 0xb3, 0x19, 0x33, 0x89, 0x3d, 0xd4, 0x5a, 0x89, 0x94, 0xcb, 0xa4, 0xb8,
+ 0x54, 0xb6, 0x5d, 0x25, 0x25, 0x5e, 0xf5, 0x94, 0x8d, 0x45, 0xed, 0x94, 0x2d, 0x6e, 0x03, 0xf3,
+ 0x9f, 0xb1, 0x7b, 0x88, 0x88, 0x1a, 0x86, 0x65, 0x75, 0xf5, 0x08, 0x65, 0xf2, 0xc5, 0x61, 0x44,
+ 0x17, 0x7f, 0xa4, 0x23, 0x23, 0x99, 0x8a, 0x8c, 0x0d, 0x8f, 0xa1, 0x8c, 0x3a, 0xcf, 0x3d, 0xf0,
+ 0xe1, 0x5c, 0xe9, 0x5e, 0x5e, 0x6b, 0xe8, 0xbb, 0x5f, 0x73, 0x72, 0xbb, 0x28, 0x9c, 0x82, 0x2f,
+ 0x7c, 0x5e, 0xb0, 0x6d, 0x6d, 0x1e, 0x48, 0x77, 0x95, 0x89, 0x71, 0x77, 0x7a, 0x6c, 0xae, 0xd7,
+ 0x46, 0xd4, 0xac, 0x0f, 0x0f, 0xcf, 0x20, 0x3c, 0x83, 0x32, 0xbe, 0x3c, 0xc4, 0x30, 0x63, 0xe6,
+ 0xbc, 0xdb, 0x2d, 0x6e, 0x6e, 0x9c, 0x96, 0x7b, 0xd5, 0xec, 0x57, 0x7b, 0x90, 0xdd, 0xb1, 0x37,
+ 0xc5, 0x98, 0xc8, 0x0a, 0x0a, 0x8a, 0x81, 0x28, 0x43, 0x9d, 0xd4, 0x28, 0x39, 0x20, 0x42, 0x05,
+ 0x22, 0xd2, 0x47, 0x5a, 0x5a, 0x50, 0x03, 0xab, 0x1e, 0xff, 0xbb, 0xab, 0x32, 0xe3, 0x17, 0x2d,
+ 0xbe, 0x68, 0x0f, 0xd5, 0xd5, 0xf3, 0xb0, 0xd2, 0x6a, 0xe3, 0x5c, 0xd2, 0x30, 0xe8, 0xfc, 0x8b,
+ 0x96, 0x80, 0xe2, 0x9d, 0x9d, 0xb3, 0x0d, 0x31, 0x72, 0x2f, 0xc0, 0x31, 0x67, 0xea, 0x51, 0xaf,
+ 0x7e, 0xed, 0x92, 0xd6, 0xd6, 0x71, 0x6e, 0xde, 0x2a, 0x86, 0x7a, 0xde, 0xda, 0x59, 0xe3, 0x6b,
+ 0x1d, 0x45, 0x0e, 0x31, 0x31, 0x89, 0x34, 0xc4, 0x0b, 0xbc, 0x86, 0xc4, 0x5f, 0x2e, 0x87, 0xf9,
+ 0xb9, 0xc6, 0x78, 0x67, 0x67, 0x94, 0xc9, 0x5f, 0xd6, 0x14, 0xa5, 0x5f, 0x43, 0x4c, 0xec, 0xd2,
+ 0x9d, 0x02, 0x59, 0x33, 0x33, 0x75, 0xa0, 0xcc, 0xca, 0xfa, 0x03, 0xcc, 0x52, 0xf0, 0x2c, 0xf8,
+ 0xad, 0xb2, 0xef, 0x43, 0x43, 0xb4, 0x76, 0xcf, 0xda, 0x72, 0xeb, 0xcf, 0x89, 0x4d, 0x5b, 0xc0,
+ 0x6c, 0x8f, 0x63, 0xfc, 0xfc, 0xe0, 0xbb, 0x76, 0x24, 0xf1, 0x29, 0x76, 0x33, 0x07, 0x83, 0x7e,
+ 0x85, 0x5a, 0x02, 0x0b, 0x0b, 0xf4, 0xcb, 0x2c, 0xc2, 0xbe, 0x77, 0x2c, 0xde, 0x4f, 0xf6, 0xe4,
+ 0xd1, 0xec, 0x5f, 0x2e, 0x2e, 0xaa, 0x3e, 0xb8, 0x4f, 0xfb, 0x9a, 0xb8, 0xf3, 0x21, 0xf5, 0x17,
+ 0x1e, 0x4e, 0x3d, 0x36, 0x36, 0x30, 0x01, 0xd8, 0x0a, 0x55, 0x69, 0xd8, 0xaf, 0xe0, 0x0d, 0x1b,
+ 0xa5, 0x3b, 0x67, 0xea, 0xea, 0xcb, 0xee, 0x2e, 0x63, 0x4e, 0xc7, 0x2e, 0x4c, 0x99, 0xac, 0x75,
+ 0xe6, 0xf2, 0x9e, 0xec, 0xec, 0x0c, 0x91, 0x36, 0xe3, 0x84, 0x8b, 0x36, 0x5b, 0x38, 0x92, 0x76,
+ 0x2e, 0xfe, 0x8b, 0x46, 0x46, 0xf1, 0xd7, 0xdb, 0x1a, 0xdd, 0x81, 0xdb, 0x74, 0x5d, 0x7a, 0x23,
+ 0x5f, 0x34, 0xe6, 0x8b, 0x8b, 0x98, 0x58, 0x69, 0x35, 0x90, 0x2e, 0x69, 0x18, 0x74, 0x7e, 0xa4,
+ 0x61, 0x1b, 0xbe, 0x5c, 0x5c, 0x97, 0x7c, 0xb3, 0x9e, 0x35, 0xf7, 0xb3, 0x25, 0x42, 0x29, 0x2e,
+ 0x83, 0x4c, 0x64, 0x05, 0x05, 0x45, 0xa1, 0x14, 0xc0, 0xaf, 0x6a, 0x14, 0xfd, 0x10, 0x21, 0xe3,
+ 0x44, 0x67, 0x8e, 0xb4, 0xb4, 0xa0, 0x06, 0x95, 0x3c, 0x3d, 0xb5, 0x95, 0x64, 0x05, 0x2e, 0x5a,
+ 0xb1, 0x4f, 0xf0, 0xce, 0xce, 0xeb, 0x51, 0xbe, 0x6f, 0x28, 0x89, 0xbe, 0x86, 0x98, 0x1b, 0x67,
+ 0xef, 0xc3, 0x07, 0xf9, 0xf9, 0xa5, 0x1a, 0x62, 0xe4, 0x5e, 0x43, 0x62, 0xce, 0x17, 0xa2, 0x9d,
+ 0x82, 0xf4, 0x75, 0xb9, 0xb9, 0x93, 0xb2, 0xa1, 0x7e, 0x49, 0x8e, 0xa1, 0xad, 0xeb, 0xe6, 0xbd,
+ 0x36, 0xa6, 0xd0, 0x7e, 0x7e, 0x70, 0xbc, 0x3b, 0x12, 0x99, 0xf5, 0x3b, 0xf8, 0xe2, 0xa0, 0x3f,
+ 0xa3, 0x2d, 0x01, 0xe4, 0xe4, 0x7a, 0x84, 0x16, 0x61, 0x5f, 0xda, 0x16, 0x6f, 0xc6, 0x7b, 0x72,
+ 0xaf, 0x01, 0xcd, 0xf8, 0xf8, 0xdb, 0x50, 0x66, 0x65, 0x7d, 0xe0, 0x66, 0x29, 0x78, 0x16, 0x7c,
+ 0x88, 0xce, 0xdf, 0xab, 0xab, 0x83, 0x0c, 0xe9, 0x78, 0x7a, 0xa9, 0xe9, 0xc8, 0x0a, 0x5c, 0xb4,
+ 0x89, 0x76, 0xce, 0x17, 0x17, 0x55, 0x1f, 0x5c, 0xc6, 0x9c, 0x4d, 0x5c, 0x98, 0xf1, 0x9b, 0xea,
+ 0x0f, 0x27, 0xff, 0x1b, 0x1b, 0x18, 0xe1, 0x6c, 0x05, 0xcb, 0xd5, 0x6c, 0xb6, 0x70, 0xe7, 0xec,
+ 0x1f, 0xf6, 0x2c, 0x8a, 0x8a, 0xe6, 0x12, 0x6d, 0xb4, 0xb3, 0x8d, 0x6d, 0xff, 0x1b, 0xca, 0x45,
+ 0x42, 0x71, 0xe8, 0xba, 0xba, 0x11, 0x6c, 0xad, 0x3e, 0x2c, 0xa8, 0xad, 0x47, 0x5a, 0xf9, 0x5d,
+ 0xf6, 0x23, 0x4d, 0x7d, 0x7d, 0xf2, 0x62, 0x37, 0x52, 0xfc, 0xd3, 0x37, 0x12, 0x53, 0xbf, 0xdf,
+ 0xdf, 0x73, 0xb1, 0x89, 0x89, 0x64, 0xcc, 0x61, 0xf4, 0xd6, 0xab, 0x61, 0x15, 0xaa, 0xd5, 0xa5,
+ 0x3a, 0x8a, 0x1c, 0x62, 0x62, 0xd1, 0x68, 0x4b, 0x16, 0xbb, 0xcf, 0x4b, 0xbe, 0x5c, 0xcd, 0x31,
+ 0xc1, 0x3d, 0x8c, 0xbf, 0xbf, 0x54, 0xcd, 0xb9, 0xfe, 0x83, 0xc2, 0xb9, 0xba, 0x4a, 0xd8, 0xbe,
+ 0x28, 0xe8, 0xed, 0x48, 0x48, 0x40, 0xbd, 0xe3, 0x18, 0xcc, 0x9c, 0xe3, 0x57, 0x02, 0xad, 0x24,
+ 0xf1, 0x8d, 0x3a, 0xcf, 0xcf, 0x95, 0x1b, 0xba, 0xee, 0x0b, 0x2a, 0xba, 0x61, 0xf7, 0xaf, 0x86,
+ 0xcb, 0x07, 0x26, 0xad, 0xad, 0x44, 0x73, 0xf1, 0xf8, 0xb0, 0xe5, 0xf1, 0xdf, 0xab, 0x62, 0xb7,
+ 0x92, 0x25, 0xa6, 0x28, 0x28, 0x6d, 0x41, 0xa0, 0xcf, 0x31, 0xd6, 0xa0, 0xe4, 0x80, 0xcb, 0x14,
+ 0x87, 0xe9, 0x20, 0xb0, 0xb0, 0x9b, 0xed, 0x85, 0x7d, 0xb1, 0x7c, 0x85, 0x7e, 0x7a, 0xbb, 0x58,
+ 0xe7, 0x4a, 0x8f, 0x50, 0x50, 0xda, 0x82, 0x83, 0x5d, 0x62, 0x6f, 0x83, 0x0b, 0xc3, 0x55, 0x28,
+ 0x3e, 0x2f, 0x58, 0xd7, 0xd7, 0x0f, 0x24, 0xda, 0xab, 0xa5, 0xd9, 0xda, 0x3d, 0x36, 0x57, 0x8a,
+ 0xfa, 0x0f, 0x81, 0x61, 0x61, 0x53, 0xb6, 0x47, 0x56, 0xde, 0xe9, 0x47, 0x54, 0xed, 0xd2, 0xd1,
+ 0x0d, 0x94, 0xdd, 0xa0, 0xa0, 0x77, 0xc7, 0xc5, 0xba, 0xc4, 0xde, 0xc5, 0x16, 0x45, 0xaa, 0x50,
+ 0x51, 0xab, 0x08, 0x2c, 0x2c, 0x56, 0xaa, 0xb0, 0x8e, 0xbd, 0x1f, 0xb0, 0xfe, 0xff, 0x5e, 0x16,
+ 0xb6, 0xe1, 0x87, 0x7c, 0x7c, 0x8c, 0x28, 0x33, 0xd3, 0xdf, 0x70, 0x33, 0xf5, 0x3c, 0x0b, 0x3e,
+ 0x7b, 0xf0, 0xc7, 0xdf, 0xdf, 0x79, 0x31, 0xfa, 0x29, 0x7e, 0x88, 0xfa, 0x09, 0xc8, 0xbe, 0x8e,
+ 0x74, 0xd7, 0x38, 0xc4, 0xc4, 0x61, 0xd0, 0x96, 0x2c, 0xb5, 0x5d, 0x96, 0xbf, 0xb8, 0x59, 0x62,
+ 0x3f, 0x97, 0x49, 0x6b, 0x6b, 0xd9, 0x37, 0x6f, 0x15, 0x43, 0x3d, 0x6f, 0x6d, 0xcd, 0x90, 0xd4,
+ 0x2f, 0x46, 0x9a, 0xfa, 0xfa, 0x27, 0xc4, 0x6e, 0xa4, 0x3b, 0x65, 0x6e, 0x24, 0xa6, 0xbd, 0x7d,
+ 0x7d, 0xe6, 0xa1, 0xd1, 0xd1, 0xc8, 0x5b, 0xc2, 0x2b, 0x6f, 0x95, 0xc2, 0x2a, 0x97, 0x69, 0x89,
+ 0xbb, 0x75, 0x5a, 0xdc, 0xdc, 0xfb, 0xef, 0xf6, 0x69, 0x1b, 0xae, 0xf6, 0xe3, 0x79, 0xa1, 0x6e,
+ 0x49, 0xf3, 0x53, 0x14, 0x14, 0xd7, 0xc1, 0x50, 0x86, 0xf9, 0x6b, 0x50, 0x72, 0x40, 0x84, 0x0a,
+ 0x2b, 0xe3, 0xde, 0x4f, 0x4f, 0xf9, 0x88, 0xff, 0x19, 0x25, 0x73, 0xff, 0xa7, 0xcc, 0x27, 0xc6,
+ 0x99, 0xa7, 0x1d, 0x86, 0x86, 0xab, 0xec, 0x5d, 0x77, 0xe4, 0x15, 0x5d, 0xd1, 0x9a, 0xb6, 0x43,
+ 0x02, 0xb3, 0x22, 0xbb, 0xbb, 0x6f, 0x26, 0xa9, 0xbf, 0x0f, 0x0b, 0xa9, 0xa0, 0x35, 0x4d, 0xbc,
+ 0x37, 0x1e, 0xc1, 0xc2, 0xc2, 0xa6, 0xaf, 0x8e, 0xac, 0x7f, 0x11, 0x8e, 0xa8, 0x19, 0x67, 0x61,
+ 0xb3, 0xfc, 0xd2, 0x75, 0x75, 0x84, 0x77, 0x17, 0xd0, 0x27, 0x82, 0x17, 0x26, 0xad, 0x56, 0xdb,
+ 0x73, 0x79, 0x4f, 0x76, 0x76, 0x06, 0xa9, 0x1b, 0x90, 0x42, 0xa4, 0x1b, 0xcc, 0x1c, 0x49, 0x3b,
+ 0x64, 0x06, 0xeb, 0x55, 0x55, 0x9f, 0x23, 0x97, 0x9d, 0xcd, 0x05, 0x97, 0xf6, 0xd3, 0x74, 0xcb,
+ 0xdc, 0x78, 0x82, 0x8e, 0x8e, 0xdd, 0xf9, 0x7d, 0xf5, 0x3f, 0x44, 0x7d, 0xe5, 0x64, 0x5f, 0x47,
+ 0xd8, 0xdd, 0xc6, 0x3b, 0x3b, 0x03, 0xb5, 0xec, 0x48, 0x21, 0x52, 0xec, 0x66, 0x0e, 0xc5, 0xfc,
+ 0xc9, 0xb4, 0x04, 0x16, 0x16, 0x2b, 0x55, 0x58, 0x47, 0xbf, 0xee, 0x58, 0x7f, 0x9e, 0x2f, 0x0b,
+ 0xab, 0xa4, 0x89, 0x4d, 0x4d, 0x05, 0x1c, 0xf7, 0xd8, 0x63, 0xf6, 0xf7, 0xaa, 0x12, 0x8c, 0xc7,
+ 0x33, 0xbb, 0x85, 0x77, 0x77, 0x78, 0xe3, 0x1f, 0x11, 0x61, 0x07, 0x1f, 0x2b, 0x73, 0xfd, 0xda,
+ 0x6b, 0x21, 0x14, 0x4e, 0x4e, 0x87, 0xc2, 0xfb, 0x98, 0x06, 0xd0, 0xfb, 0x40, 0xa3, 0x93, 0x27,
+ 0xcc, 0xa9, 0x51, 0x1f, 0x1f, 0x23, 0x0a, 0x7c, 0x44, 0x47, 0x1c, 0x7c, 0xac, 0x0f, 0x72, 0xee,
+ 0x90, 0x96, 0x84, 0x93, 0x93, 0x02, 0x67, 0x09, 0x70, 0x3e, 0xdd, 0x09, 0x44, 0xb5, 0x86, 0xa8,
+ 0xd0, 0x54, 0x4e, 0x92, 0x92, 0x7c, 0x2d, 0x0d, 0xf1, 0x1d, 0x7e, 0x0d, 0xa3, 0xda, 0x32, 0x49,
+ 0xac, 0x0a, 0xfe, 0xff, 0xff, 0x62, 0x65, 0x7a, 0x64, 0x94, 0x0f, 0x7a, 0xd9, 0xb6, 0x9c, 0x9e,
+ 0xbf, 0xd0, 0x1e, 0x69, 0x69, 0x25, 0xa3, 0x67, 0xd4, 0x05, 0xb8, 0x67, 0x60, 0x13, 0x3b, 0xd5,
+ 0xda, 0x6e, 0xe4, 0x80, 0x80, 0x6c, 0x93, 0x45, 0xf7, 0x2e, 0x59, 0x45, 0xc6, 0x3b, 0x88, 0x40,
+ 0xa7, 0x88, 0x45, 0x51, 0x51, 0xa4, 0xc8, 0x87, 0xdc, 0x41, 0xcc, 0x87, 0xec, 0xac, 0xe1, 0xc9,
+ 0x5e, 0x8c, 0xf7, 0x37, 0x37, 0x4e, 0x4b, 0xdc, 0x8b, 0x76, 0xca, 0xdc, 0x48, 0x8f, 0xb9, 0xfa,
+ 0x98, 0x1f, 0x0c, 0x3a, 0x3a, 0x7d, 0xff, 0xe8, 0xc9, 0x02, 0xf1, 0xe8, 0x81, 0x61, 0x71, 0x1d,
+ 0x7a, 0x48, 0xd6, 0x63, 0x63, 0xaf, 0x22, 0x4f, 0x97, 0x98, 0x6c, 0x4f, 0x59, 0x33, 0x79, 0xd0,
+ 0x13, 0xda, 0xe0, 0x96, 0x96, 0x47, 0xc6, 0x1d, 0xb0, 0x91, 0xb7, 0x1d, 0xb9, 0xa5, 0xa7, 0x4b,
+ 0x6a, 0x99, 0x05, 0xf2, 0xf2, 0x51, 0xd1, 0x4e, 0x26, 0xe0, 0x34, 0x4e, 0x10, 0x58, 0x54, 0x79,
+ 0x40, 0xc2, 0xca, 0x01, 0x01, 0x7e, 0x4a, 0x04, 0x81, 0x23, 0xa3, 0x04, 0xe7, 0x6f, 0xb4, 0xe1,
+ 0xa8, 0xaf, 0xba, 0x4a, 0x4a, 0xbc, 0x29, 0xeb, 0xd9, 0x8a, 0x19, 0xeb, 0x5a, 0xdc, 0x06, 0x25,
+ 0x5b, 0x91, 0xa2, 0x3e, 0x3e, 0x46, 0x14, 0xf8, 0x88, 0x8e, 0x38, 0xf8, 0x9b, 0x1e, 0xe4, 0x1f,
+ 0xeb, 0x66, 0x43, 0x4c, 0x4c, 0x7b, 0x56, 0xf3, 0x59, 0x40, 0x55, 0xf3, 0x4d, 0x7d, 0x38, 0x26,
+ 0x66, 0xb5, 0xc9, 0xee, 0xee, 0xf0, 0x05, 0x3e, 0x22, 0xc2, 0x0e, 0x3e, 0x56, 0xe6, 0x39, 0x77,
+ 0x56, 0x05, 0x7f, 0x9e, 0x9e, 0x31, 0xd3, 0x3d, 0x32, 0x4a, 0xe6, 0x3d, 0x8d, 0x5b, 0x4e, 0x4f,
+ 0x81, 0xff, 0x46, 0xbe, 0xbe, 0x2a, 0x87, 0xbd, 0x7f, 0xa0, 0x61, 0xbd, 0x5d, 0x25, 0x6c, 0x5f,
+ 0x77, 0xdc, 0x0b, 0xc3, 0xc3, 0xd8, 0xe5, 0x8a, 0x2d, 0x5c, 0xb2, 0x8a, 0x4f, 0x76, 0xd3, 0x80,
+ 0x57, 0xbd, 0x6e, 0x22, 0x22, 0xe7, 0xc0, 0x88, 0x8c, 0xac, 0x02, 0x88, 0xdd, 0xa0, 0x89, 0x11,
+ 0x4e, 0x5d, 0x24, 0xa6, 0xa6, 0xb0, 0xb8, 0xdd, 0x3a, 0x0e, 0x92, 0xdd, 0x01, 0xe4, 0x94, 0x53,
+ 0x8d, 0xd3, 0x8a, 0xa2, 0xa2, 0x8b, 0x53, 0xcd, 0x7b, 0x82, 0x5b, 0xcd, 0x1b, 0x9b, 0x01, 0x51,
+ 0xb0, 0xf7, 0xe1, 0x72, 0x72, 0x3d, 0x42, 0x0b, 0xd1, 0xce, 0x6d, 0x0b, 0xd6, 0x63, 0xdc, 0x39,
+ 0xf3, 0x3e, 0x18, 0x74, 0x74, 0xfa, 0x3d, 0x13, 0x51, 0x04, 0x21, 0x13, 0xc1, 0xc2, 0xe2, 0x3a,
+ 0x94, 0x33, 0xc0, 0x26, 0x26, 0xdc, 0x2b, 0x98, 0xcd, 0x20, 0xcb, 0x98, 0xc7, 0xdf, 0x1c, 0x13,
+ 0x20, 0x61, 0x65, 0xe1, 0xe1, 0x3f, 0x25, 0x02, 0xa1, 0xf0, 0xb0, 0x02, 0x92, 0xd6, 0x5a, 0x91,
+ 0x24, 0xc4, 0x21, 0x54, 0x54, 0xe1, 0x69, 0x93, 0x1c, 0xee, 0xa6, 0x93, 0x11, 0xbc, 0xc0, 0x2a,
+ 0xd7, 0xfa, 0x39, 0x20, 0x20, 0x1b, 0x54, 0x80, 0x4d, 0xea, 0x87, 0x80, 0xd0, 0x7e, 0x22, 0x10,
+ 0x14, 0x74, 0x97, 0x24, 0x24, 0x20, 0xbf, 0x90, 0x0c, 0x66, 0x4e, 0x90, 0xca, 0x01, 0xb7, 0x12,
+ 0x9e, 0x09, 0x6a, 0x34, 0x34, 0xcc, 0x95, 0xd0, 0xcb, 0x13, 0xec, 0xd0, 0xa2, 0x3e, 0xa6, 0x1a,
+ 0x05, 0x1d, 0x55, 0x09, 0x09, 0x08, 0x5f, 0x24, 0x03, 0xf8, 0xf2, 0x24, 0xd3, 0x91, 0x5d, 0xe5,
+ 0xc6, 0x93, 0xfb, 0x0d, 0x0d, 0x33, 0xb4, 0x34, 0x42, 0x74, 0x3b, 0x34, 0xc9, 0xee, 0xc8, 0xe7,
+ 0xed, 0x70, 0x25, 0x42, 0x42, 0xca, 0x3c, 0xcb, 0x5b, 0x51, 0x48, 0xcb, 0x6e, 0x22, 0xef, 0x21,
+ 0xc8, 0x0c, 0x15, 0xaa, 0xaa, 0xfd, 0x46, 0xed, 0xf9, 0x59, 0x0a, 0xed, 0x2f, 0x65, 0xe8, 0x55,
+ 0x9b, 0x14, 0x3f, 0x3d, 0x3d, 0xc4, 0xca, 0xf4, 0xc8, 0xeb, 0x1e, 0xf4, 0x71, 0xaf, 0xfb, 0xff,
+ 0xbd, 0x63, 0x3c, 0xd2, 0xd2, 0x4a, 0x85, 0xce, 0x6b, 0x0a, 0xb3, 0xce, 0xc0, 0x26, 0x76, 0x69,
+ 0x84, 0xe2, 0x13, 0xb7, 0xb7, 0x22, 0xd8, 0x99, 0x7c, 0x58, 0x93, 0x99, 0x8e, 0xb4, 0x31, 0xba,
+ 0xc3, 0x8e, 0xae, 0x04, 0x04, 0x3b, 0xeb, 0x10, 0x41, 0x8c, 0xc9, 0x10, 0x1a, 0x7f, 0x95, 0x02,
+ 0xca, 0xbf, 0x37, 0x11, 0x11, 0x92, 0x60, 0x44, 0x46, 0x56, 0x01, 0x44, 0x8f, 0x50, 0xa5, 0xe9,
+ 0x8a, 0x7d, 0xfd, 0x10, 0x10, 0xec, 0x2a, 0x40, 0xc7, 0x75, 0xa2, 0x40, 0x68, 0x3f, 0x11, 0x08,
+ 0x34, 0x15, 0xf2, 0xc5, 0xc5, 0x1f, 0x9a, 0x92, 0xad, 0x96, 0xfe, 0x92, 0x58, 0xd7, 0xed, 0x83,
+ 0x26, 0x77, 0x03, 0xef, 0xef, 0x8e, 0x4f, 0x3a, 0xa3, 0xe1, 0xad, 0x3a, 0xb1, 0x89, 0x8d, 0x96,
+ 0x10, 0xd1, 0xd3, 0x91, 0x91, 0xfe, 0xf3, 0x01, 0xb1, 0x78, 0x58, 0x01, 0x49, 0x6b, 0x2d, 0xa9,
+ 0x25, 0x7c, 0x30, 0xe8, 0xe8, 0x37, 0x7a, 0x26, 0xa2, 0x08, 0x42, 0x26, 0x41, 0x47, 0x07, 0x74,
+ 0xe3, 0xef, 0xcb, 0xe5, 0xe5, 0x04, 0xce, 0x12, 0xe0, 0x7c, 0x79, 0x12, 0x88, 0xa9, 0xcf, 0x93,
+ 0x63, 0xa8, 0x9c, 0xe7, 0xe7, 0xf8, 0x5a, 0x1a, 0x21, 0x3a, 0xfc, 0x1a, 0x85, 0x77, 0x64, 0x92,
+ 0x0a, 0x3a, 0xaa, 0x12, 0x12, 0x10, 0xbe, 0x48, 0x06, 0x33, 0x27, 0x48, 0x65, 0xe1, 0xba, 0x09,
+ 0x4f, 0xe5, 0x35, 0x1a, 0x1a, 0x66, 0xab, 0x68, 0x84, 0xe8, 0x76, 0x68, 0x51, 0x1f, 0x53, 0x0d,
+ 0x8b, 0xc5, 0xec, 0xac, 0xac, 0x3a, 0x39, 0xf5, 0x79, 0x93, 0x46, 0xf5, 0x38, 0xc4, 0xd6, 0x56,
+ 0xc7, 0x2b, 0xea, 0xb1, 0xb1, 0xe5, 0xa7, 0x81, 0xfc, 0x92, 0xdf, 0x81, 0x99, 0x15, 0x0f, 0xb9,
+ 0x67, 0x0d, 0xd8, 0x52, 0x52, 0x26, 0x16, 0x8b, 0x9c, 0x24, 0xea, 0x8b, 0x06, 0x1d, 0xfe, 0x29,
+ 0x2d, 0xf5, 0xb8, 0x41, 0x41, 0x48, 0xe2, 0xc7, 0x1b, 0x34, 0x6e, 0xc7, 0x84, 0x93, 0xf0, 0xc1,
+ 0xfe, 0xaa, 0xc5, 0xd4, 0xd4, 0x8d, 0xfa, 0xd6, 0xeb, 0xc0, 0xff, 0xd6, 0xd7, 0x87, 0x48, 0x6a,
+ 0x45, 0xdf, 0x9f, 0x08, 0x08, 0x76, 0x15, 0x20, 0x82, 0xdb, 0x51, 0x20, 0x34, 0xfe, 0xe9, 0x04,
+ 0xa0, 0x26, 0x32, 0xe3, 0xe3, 0xc3, 0xb1, 0x0a, 0x60, 0xb6, 0x35, 0x0a, 0x9f, 0x08, 0xf1, 0x90,
+ 0x80, 0x47, 0x57, 0x02, 0x02, 0xfc, 0x94, 0x08, 0xc1, 0x46, 0x85, 0x08, 0x0d, 0xde, 0xab, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x4a, 0xf8, 0x60, 0x13, 0x13, 0x6e, 0xf4, 0x4c, 0x87, 0x10, 0x84, 0x4c, 0x82, 0x8e, 0x0e, 0xe8,
+ 0xee, 0x7b, 0x16, 0x45, 0x45, 0x73, 0x09, 0xd7, 0x5a, 0xb8, 0xa7, 0xd7, 0x9e, 0xec, 0x65, 0xc3,
+ 0x4c, 0xee, 0x06, 0x1d, 0x1d, 0xdf, 0x9e, 0x74, 0x85, 0x01, 0x99, 0x74, 0xa1, 0xd1, 0xd9, 0xef,
+ },
+ { /* 5 */
+ 0xd8, 0xca, 0x20, 0x18, 0xa6, 0x5b, 0x9c, 0xaf, 0x78, 0xd9, 0x1d, 0x80, 0x8c, 0x85, 0x3b, 0x8c,
+ 0x69, 0x10, 0x51, 0x4c, 0xc5, 0x06, 0x68, 0x18, 0xbf, 0x31, 0xb7, 0x87, 0xa1, 0x7c, 0xf5, 0xa1,
+ 0xc0, 0xd0, 0x1b, 0x9a, 0xb0, 0x2e, 0xcd, 0xb8, 0xb7, 0xbe, 0xdf, 0x6c, 0x21, 0x29, 0x03, 0x21,
+ 0xba, 0xff, 0xe6, 0xab, 0xa2, 0x89, 0xd9, 0x61, 0x42, 0xa1, 0xdc, 0x1e, 0xaa, 0x69, 0x60, 0xaa,
+ 0x16, 0x4a, 0xed, 0x3d, 0x41, 0x6b, 0x5a, 0x6f, 0xc9, 0x92, 0xec, 0x32, 0xcd, 0xe3, 0x9f, 0xcd,
+ 0x87, 0x09, 0x79, 0x52, 0xab, 0x3b, 0xd3, 0xec, 0xd9, 0x4f, 0x3c, 0x27, 0x0e, 0x49, 0xb0, 0x0e,
+ 0x58, 0xeb, 0x32, 0xf4, 0xc7, 0x6f, 0xab, 0x7f, 0xa2, 0x0d, 0x36, 0xc8, 0xb2, 0x0a, 0x39, 0xb2,
+ 0x59, 0x24, 0x27, 0x8b, 0xe9, 0xec, 0xca, 0x36, 0xe2, 0xff, 0xf0, 0x9c, 0x38, 0xe7, 0x85, 0x38,
+ 0xc4, 0x6a, 0x4f, 0xa5, 0x08, 0x67, 0x8a, 0x5f, 0x74, 0xf0, 0x41, 0xff, 0x4c, 0x1b, 0xb6, 0x4c,
+ 0x6a, 0x82, 0x6e, 0xcd, 0xb7, 0x40, 0xcb, 0xc3, 0x7f, 0xe4, 0x3e, 0x7b, 0xfc, 0x88, 0xf2, 0xfc,
+ 0x05, 0x75, 0x41, 0x40, 0x96, 0xca, 0x26, 0xae, 0x83, 0xbc, 0x58, 0xc7, 0xe7, 0xdf, 0x09, 0xe7,
+ 0x9a, 0x66, 0x03, 0x90, 0x2b, 0x84, 0xa4, 0x55, 0x95, 0x94, 0xa6, 0x0c, 0x44, 0x3a, 0x81, 0x44,
+ 0x06, 0xe7, 0x7e, 0xc1, 0xe4, 0x8c, 0x85, 0x75, 0x43, 0x69, 0xd1, 0x3b, 0xba, 0x2b, 0x0e, 0xba,
+ 0xa6, 0x5f, 0x89, 0x16, 0x0c, 0xb5, 0xcf, 0x91, 0x4e, 0x88, 0x80, 0x61, 0x6a, 0xf7, 0xed, 0x6a,
+ 0x0d, 0xc2, 0xe9, 0x3e, 0x25, 0x58, 0xa8, 0xa3, 0xc6, 0x20, 0xa7, 0x22, 0x3d, 0xbb, 0xa0, 0x3d,
+ 0xd1, 0xb2, 0x9d, 0x19, 0x3b, 0x4a, 0x73, 0xeb, 0x7d, 0xb7, 0x24, 0x31, 0xdc, 0x0c, 0x2e, 0xdc,
+ 0x43, 0x63, 0x36, 0xf7, 0xa3, 0x5c, 0x59, 0xb3, 0xad, 0xbf, 0x7d, 0xd8, 0x42, 0x52, 0x06, 0x42,
+ 0x85, 0x54, 0x53, 0xac, 0xf7, 0xfe, 0x11, 0x7e, 0x59, 0x68, 0x73, 0x8f, 0xd9, 0x50, 0x0b, 0xd9,
+ 0x41, 0x3e, 0x1c, 0x09, 0xff, 0x99, 0x9b, 0x21, 0x2d, 0x98, 0x32, 0x70, 0x95, 0x4b, 0xbd, 0x95,
+ 0xd2, 0x20, 0xa2, 0x98, 0x49, 0x0c, 0xd0, 0x30, 0xbd, 0x62, 0xad, 0xcd, 0x81, 0xf8, 0x29, 0x81,
+ 0x2c, 0x94, 0x19, 0x7a, 0x82, 0xd6, 0xb4, 0xde, 0x51, 0xe7, 0x1b, 0x64, 0x59, 0x05, 0xfd, 0x59,
+ 0xcd, 0x12, 0xf2, 0xa4, 0x95, 0x76, 0x65, 0x1b, 0x71, 0x9e, 0x78, 0x4e, 0x1c, 0x92, 0xa3, 0x1c,
+ 0x0b, 0x25, 0x97, 0xff, 0xc1, 0xd4, 0x2d, 0xd6, 0x85, 0x49, 0x76, 0x19, 0x87, 0x90, 0xae, 0x87,
+ 0xa2, 0xe5, 0xdd, 0x29, 0xb4, 0xfc, 0x88, 0x76, 0x8d, 0xc6, 0x1e, 0xf2, 0x07, 0xc5, 0x58, 0x07,
+ 0x38, 0x83, 0xde, 0xb9, 0x9f, 0x78, 0x2c, 0x23, 0x18, 0x52, 0xb8, 0xfe, 0x43, 0xff, 0xd9, 0x43,
+ 0xf7, 0xcc, 0x06, 0xe3, 0x56, 0xcb, 0x8b, 0xaa, 0xe9, 0xeb, 0x8f, 0x18, 0x88, 0x74, 0xc1, 0x88,
+ 0x4b, 0xd4, 0x9e, 0x89, 0x10, 0xce, 0xd7, 0xbe, 0xe8, 0x23, 0x82, 0x3d, 0x98, 0x36, 0xaf, 0x98,
+ 0xe6, 0xae, 0x80, 0x60, 0xdd, 0xaf, 0x35, 0xf9, 0x23, 0xe2, 0x74, 0x45, 0x75, 0x51, 0xec, 0x75,
+ 0xe7, 0x61, 0x95, 0x1f, 0xf3, 0x2c, 0x54, 0xb0, 0x63, 0x10, 0xb2, 0x11, 0xff, 0xbc, 0x50, 0xff,
+ 0x90, 0x8c, 0x81, 0x10, 0xc4, 0xd3, 0xe8, 0xca, 0x50, 0x2f, 0x16, 0x41, 0x49, 0x47, 0x93, 0x49,
+ 0x1a, 0x47, 0x11, 0x7c, 0x4a, 0xb0, 0x93, 0x85, 0x4f, 0x40, 0x8d, 0x44, 0x7a, 0xb5, 0x83, 0x7a,
+ 0x53, 0xce, 0xa5, 0x0b, 0x06, 0xbb, 0x86, 0xa9, 0x27, 0x44, 0x40, 0xd1, 0x35, 0x9a, 0x97, 0x35,
+ 0xa3, 0x2a, 0xc8, 0x56, 0x9a, 0x7f, 0xe9, 0x3f, 0xcd, 0x34, 0xd8, 0xa6, 0x8d, 0x28, 0xe4, 0x8d,
+ 0xf1, 0x2b, 0x78, 0x22, 0xb2, 0x47, 0x0e, 0xdf, 0xaa, 0x82, 0x5e, 0x23, 0x32, 0x5f, 0xcf, 0x32,
+ 0xfd, 0x26, 0x84, 0x63, 0xb9, 0x9c, 0xc7, 0x35, 0x2c, 0x50, 0x3f, 0x55, 0x85, 0x09, 0xd3, 0x85,
+ 0x51, 0x93, 0x8f, 0xf5, 0x5a, 0x7e, 0x44, 0x3b, 0xa7, 0x63, 0x0f, 0x79, 0xe2, 0x83, 0x2c, 0xe2,
+ 0x29, 0xe1, 0x58, 0x3a, 0x14, 0x1c, 0x92, 0x70, 0xd2, 0x5b, 0x43, 0xa3, 0xbe, 0xda, 0xf4, 0xbe,
+ 0x3b, 0x11, 0xe1, 0x38, 0xed, 0x3e, 0x8f, 0xf8, 0xd8, 0x87, 0x31, 0x02, 0x1e, 0x0b, 0xde, 0x1e,
+ 0x82, 0x7c, 0x38, 0x12, 0x3d, 0xf1, 0xf5, 0x42, 0x5a, 0xf3, 0x64, 0xe0, 0xe9, 0x96, 0xb9, 0xe9,
+ 0x67, 0x40, 0x87, 0xf3, 0x92, 0x18, 0x63, 0x60, 0xb9, 0xc4, 0x99, 0x59, 0xc1, 0x33, 0x52, 0xc1,
+ 0x8b, 0x04, 0x85, 0x13, 0xa0, 0xe0, 0x1a, 0x06, 0x5f, 0x9d, 0x5d, 0x51, 0xb9, 0x1f, 0xac, 0xb9,
+ 0x48, 0x46, 0xa1, 0x08, 0x62, 0x88, 0x74, 0x65, 0x28, 0xf6, 0x0b, 0xc1, 0xc5, 0xc2, 0xa8, 0xc5,
+ 0x2a, 0x73, 0x67, 0xbb, 0x66, 0x5a, 0x31, 0xab, 0x12, 0x8e, 0xca, 0x5f, 0xe3, 0x2e, 0xf3, 0xe3,
+ 0xef, 0xd6, 0x3d, 0x61, 0x40, 0xbe, 0xda, 0xbd, 0x26, 0x8c, 0x4d, 0xf4, 0x25, 0xd8, 0xf9, 0x25,
+ 0x70, 0xc5, 0x7f, 0xb1, 0xfd, 0xf0, 0x58, 0x46, 0x30, 0xa4, 0xb3, 0x3f, 0x86, 0x3d, 0x71, 0x86,
+ 0x2d, 0x5b, 0x0c, 0x05, 0xac, 0x55, 0xd5, 0x97, 0x11, 0x15, 0xdd, 0x30, 0xd3, 0xe8, 0x41, 0xd3,
+ 0x31, 0xfb, 0x63, 0xb8, 0x02, 0x69, 0xc3, 0x67, 0x1d, 0x3c, 0x81, 0x4f, 0x13, 0x76, 0xcc, 0x13,
+ 0xe2, 0x14, 0xd4, 0x5f, 0x65, 0xe6, 0x72, 0x1e, 0xe0, 0xac, 0xea, 0xd6, 0x18, 0x63, 0x59, 0x18,
+ 0x86, 0xc6, 0x6c, 0x2d, 0x85, 0xb8, 0xb2, 0xa5, 0x99, 0xbd, 0xfa, 0x73, 0x84, 0xa4, 0x0c, 0x84,
+ 0xc9, 0xa8, 0xa6, 0x9b, 0x2d, 0x3f, 0x22, 0xfc, 0xb2, 0xd0, 0xe6, 0xdd, 0x71, 0xa0, 0x16, 0x71,
+ 0xb0, 0x15, 0x64, 0x2b, 0x4d, 0xde, 0x95, 0xfe, 0x87, 0x1a, 0x6c, 0x53, 0xa7, 0x14, 0x72, 0xa7,
+ 0x80, 0x21, 0x12, 0xec, 0x61, 0x34, 0x37, 0xd0, 0xda, 0xd4, 0x2b, 0x48, 0x3e, 0x8f, 0x02, 0x3e,
+ 0xf5, 0x91, 0x2c, 0x1d, 0x0a, 0x0e, 0x49, 0x38, 0x69, 0xcc, 0xc0, 0xb0, 0x5f, 0x6d, 0x7a, 0x5f,
+ 0xfc, 0xe9, 0x91, 0x1c, 0x97, 0x1f, 0xa6, 0x7c, 0x6c, 0xa2, 0xf9, 0x01, 0x0f, 0xe4, 0x6f, 0x0f,
+ 0x60, 0x68, 0xec, 0x4d, 0x58, 0x17, 0x87, 0x5c, 0xba, 0x5f, 0x8e, 0x36, 0xf1, 0xf5, 0xe0, 0xf1,
+ 0x44, 0x4b, 0x5d, 0x49, 0x69, 0x53, 0xbd, 0x8f, 0xae, 0x24, 0x6a, 0xb7, 0x72, 0x94, 0xb4, 0x72,
+ 0x0c, 0x0d, 0xfc, 0x41, 0x0b, 0xdb, 0xc9, 0xea, 0x86, 0xd2, 0x61, 0x76, 0xb7, 0x56, 0x1c, 0xb7,
+ 0x8f, 0xbe, 0xd1, 0x2c, 0x18, 0xa9, 0x5d, 0xe1, 0x9c, 0xd3, 0xc3, 0xc2, 0xd4, 0x2d, 0x19, 0xd4,
+ 0xa4, 0x02, 0xa3, 0xe8, 0x50, 0x70, 0x0d, 0x03, 0xce, 0xaf, 0xcf, 0xc9, 0xbd, 0xee, 0x56, 0xbd,
+ 0x3d, 0xf6, 0x9f, 0xf9, 0x09, 0xb2, 0x0a, 0x8d, 0x9b, 0xee, 0xe0, 0x39, 0xa4, 0x20, 0xd0, 0xa4,
+ 0x62, 0x35, 0xc6, 0xb3, 0x04, 0xd2, 0x45, 0xce, 0x3a, 0x78, 0xc1, 0x9e, 0x26, 0xec, 0x5b, 0x26,
+ 0x35, 0x41, 0x37, 0x87, 0xba, 0x20, 0x84, 0x80, 0xde, 0x72, 0x1f, 0xdc, 0x7e, 0x44, 0x79, 0x7e,
+ 0xe0, 0x49, 0xfe, 0xa1, 0x39, 0x23, 0xb0, 0x8c, 0x60, 0x8b, 0xa5, 0x7e, 0xcf, 0x7a, 0xe2, 0xcf,
+ 0x68, 0xdf, 0x44, 0x33, 0xeb, 0x85, 0x09, 0x51, 0xff, 0xc3, 0x71, 0xd3, 0x2b, 0x91, 0x49, 0x2b,
+ 0xdc, 0x70, 0x74, 0x27, 0x1e, 0x12, 0xdb, 0x48, 0xbb, 0x97, 0x83, 0x13, 0xe1, 0xb7, 0x8e, 0xe1,
+ 0x40, 0xf1, 0x09, 0x76, 0xd1, 0x1a, 0xfa, 0x68, 0x6d, 0x6a, 0xf4, 0x24, 0x1f, 0xa6, 0x01, 0x1f,
+ 0xa0, 0xb8, 0xf7, 0xd7, 0xe8, 0x39, 0x4a, 0xe4, 0x0d, 0xe1, 0x51, 0x5a, 0xd0, 0xdc, 0xe3, 0xd0,
+ 0xa7, 0x90, 0x9c, 0x69, 0x22, 0x36, 0xae, 0xd8, 0x0e, 0x7a, 0x46, 0x35, 0xe0, 0x1a, 0x51, 0xe0,
+ 0x9f, 0x13, 0x42, 0xd0, 0xbd, 0x4e, 0x82, 0xfb, 0x16, 0x28, 0xfe, 0xcb, 0xa3, 0xe5, 0x88, 0xa3,
+ 0x2b, 0xbc, 0x72, 0xc4, 0x48, 0xd9, 0x50, 0xe2, 0x52, 0x7c, 0x0c, 0x0b, 0x69, 0xc3, 0x4f, 0x69,
+ 0xae, 0xe8, 0x21, 0x68, 0xbf, 0x27, 0x41, 0x9c, 0x0b, 0x14, 0x7f, 0x84, 0xb0, 0x93, 0x44, 0xb0,
+ 0x10, 0xad, 0x93, 0xfc, 0xa5, 0xe7, 0xdf, 0x1a, 0x8a, 0xfb, 0x3d, 0x09, 0x77, 0xc8, 0x91, 0x77,
+ 0xfe, 0xb4, 0xbb, 0xe2, 0xcb, 0xda, 0x64, 0xee, 0xec, 0x85, 0xb6, 0xa9, 0xd8, 0xfd, 0xd4, 0xd8,
+ 0xa1, 0x77, 0xe2, 0xa8, 0xc6, 0xba, 0x2b, 0xad, 0x4d, 0x13, 0x97, 0x0e, 0x5a, 0x31, 0x5f, 0x5a,
+ 0xc7, 0xf8, 0x70, 0x24, 0x7a, 0x21, 0x29, 0x84, 0xb4, 0x25, 0xc8, 0x03, 0x11, 0xef, 0xb1, 0x11,
+ 0x4d, 0x33, 0xe0, 0x48, 0xf4, 0x42, 0x52, 0xcb, 0xab, 0x4a, 0x53, 0x06, 0x22, 0x1d, 0xa1, 0x22,
+ 0xaa, 0x52, 0x75, 0x57, 0x07, 0x6e, 0x06, 0x7b, 0xc8, 0x5a, 0xe1, 0x17, 0xdd, 0xa1, 0xf1, 0xdd,
+ 0xd4, 0xc7, 0xdc, 0x59, 0xad, 0x80, 0x55, 0x45, 0xfe, 0x0b, 0x7c, 0xf6, 0x3b, 0xd3, 0x27, 0x3b,
+ 0x42, 0xac, 0x23, 0x88, 0x8d, 0xdf, 0x38, 0xfa, 0xed, 0x4d, 0xbb, 0x8c, 0xc8, 0xbf, 0xba, 0xc8,
+ 0x2e, 0xc9, 0x33, 0x84, 0xde, 0x13, 0x76, 0x4c, 0xd1, 0xc0, 0x54, 0xcc, 0x8e, 0x1c, 0x46, 0x8e,
+ 0x49, 0x89, 0xb4, 0x77, 0x4c, 0x0b, 0x15, 0x2c, 0x68, 0x04, 0xcd, 0x95, 0x4f, 0x2f, 0x14, 0x4f,
+ 0xb2, 0x48, 0x4e, 0xd5, 0x11, 0x1b, 0x57, 0x6c, 0x07, 0x3d, 0x23, 0xfb, 0x70, 0x0d, 0xc9, 0x70,
+ 0x77, 0xed, 0x14, 0x0f, 0x37, 0xff, 0xbc, 0x7a, 0x33, 0x3f, 0xa4, 0x50, 0xb6, 0xfb, 0xc3, 0xb6,
+ 0x39, 0x4c, 0xcb, 0xc6, 0xb1, 0xfb, 0x4d, 0x6a, 0x58, 0xa0, 0x7e, 0xaa, 0xc9, 0x12, 0x65, 0xc9,
+ 0xad, 0x7a, 0x1e, 0xe9, 0xcd, 0x61, 0xe2, 0x47, 0xcb, 0xc1, 0xf6, 0x78, 0xed, 0x67, 0x43, 0xed,
+ 0x20, 0x99, 0xe5, 0x3b, 0x89, 0x0d, 0x7d, 0x34, 0xd7, 0x35, 0x7a, 0x12, 0xee, 0x53, 0xe1, 0xee,
+ 0xcf, 0x4f, 0xd8, 0x5a, 0xc9, 0xb3, 0xa7, 0x89, 0xf1, 0xb9, 0x37, 0xe6, 0xcb, 0x8b, 0x18, 0xcb,
+ 0x64, 0xd2, 0xb8, 0x72, 0xe0, 0x5e, 0xc0, 0xbb, 0x79, 0x11, 0x10, 0xa5, 0x9c, 0xc7, 0x55, 0x9c,
+ 0x9b, 0xa9, 0x16, 0xef, 0x05, 0x07, 0xc5, 0x1c, 0xd5, 0x66, 0x60, 0x58, 0xce, 0xd7, 0x3d, 0xce,
+ 0xde, 0x2d, 0x5e, 0xd9, 0x42, 0xd7, 0x19, 0xda, 0x3b, 0xb0, 0xcc, 0xbb, 0x36, 0xae, 0x35, 0x36,
+ 0x7f, 0x5a, 0xbc, 0x71, 0x84, 0x6d, 0x32, 0x77, 0x76, 0xa3, 0x5b, 0xb5, 0x6c, 0x9f, 0x6a, 0x6c,
+ 0xa8, 0x0f, 0x5f, 0xa9, 0x5b, 0xab, 0xc4, 0xe9, 0x48, 0x7d, 0xae, 0xbf, 0x0a, 0xb8, 0x4a, 0x0a,
+ 0xb6, 0xf2, 0x1a, 0xea, 0xa9, 0x52, 0x10, 0x8b, 0xc4, 0x73, 0xbd, 0x68, 0x1d, 0x3f, 0x7c, 0x1d,
+ 0x5c, 0x51, 0x66, 0xcb, 0x7f, 0x26, 0xec, 0x98, 0x61, 0x43, 0xa8, 0x5b, 0xdf, 0x38, 0x8c, 0xdf,
+ 0xa5, 0xcd, 0xb6, 0x97, 0x7e, 0xf3, 0x6c, 0x4a, 0x8e, 0x5d, 0x09, 0x9d, 0x37, 0x03, 0xea, 0x37,
+ 0x6b, 0x4d, 0x7b, 0xb2, 0x99, 0xc3, 0xaa, 0x8a, 0x3f, 0x16, 0xf8, 0x2f, 0x76, 0x65, 0x4e, 0x76,
+ 0xd3, 0xef, 0xb7, 0xe7, 0x67, 0x8f, 0xb1, 0x79, 0xfd, 0x90, 0x6b, 0x99, 0x0b, 0x15, 0x95, 0x0b,
+ 0xf0, 0xe4, 0x6d, 0x5d, 0x9c, 0xc4, 0x6f, 0x96, 0xea, 0x70, 0x98, 0x77, 0xb8, 0xb2, 0x73, 0xb8,
+ 0x5d, 0x9e, 0x73, 0xb4, 0x51, 0xa5, 0x8d, 0xd1, 0x21, 0xb1, 0x6e, 0x0f, 0x55, 0xd5, 0x30, 0x55,
+ 0xc8, 0x67, 0xb3, 0xe4, 0x03, 0xbc, 0x43, 0xb5, 0xf2, 0x22, 0x20, 0x89, 0xfb, 0x4d, 0xaa, 0xfb,
+ 0xc5, 0xa5, 0x5a, 0xda, 0x26, 0xe4, 0xeb, 0x16, 0x34, 0x02, 0x87, 0xab, 0xc6, 0xf6, 0x0a, 0xc6,
+ 0xbd, 0xd7, 0x8d, 0x15, 0x68, 0x86, 0x3d, 0x5d, 0x41, 0x3a, 0xcb, 0x71, 0x9a, 0xaf, 0xd2, 0x9a,
+ 0xc3, 0x42, 0x24, 0x1b, 0xc2, 0x68, 0x6e, 0x63, 0x77, 0x6b, 0x56, 0x90, 0x7c, 0xdd, 0x04, 0x7c,
+ 0xe4, 0xf3, 0xaa, 0x9e, 0x81, 0x6a, 0xf7, 0x6b, 0xa3, 0xc5, 0x3b, 0xed, 0xa2, 0x48, 0x57, 0xa2,
+ 0xaf, 0x27, 0x34, 0x17, 0x91, 0xa4, 0x20, 0xd5, 0x4b, 0xe6, 0xb9, 0xd0, 0x3a, 0x7e, 0xf8, 0x3a,
+ 0xb8, 0xa2, 0xcc, 0x55, 0xfe, 0x4c, 0x1b, 0xf3, 0xc2, 0x86, 0x93, 0xb6, 0x7d, 0x70, 0xdb, 0x7d,
+ 0xcb, 0xf5, 0x8c, 0x65, 0x71, 0xfa, 0xe0, 0x6e, 0x32, 0xf7, 0xa9, 0x75, 0xa6, 0xb9, 0xad, 0xa6,
+ 0xc1, 0x1f, 0x0e, 0xe5, 0x9e, 0xad, 0xac, 0xf1, 0xf7, 0x4c, 0x19, 0x38, 0xab, 0xc4, 0xbf, 0xab,
+ 0xb5, 0x60, 0x25, 0x6b, 0xdb, 0x14, 0xb3, 0x50, 0x04, 0xa6, 0x34, 0x94, 0x40, 0xcb, 0x7b, 0x40,
+ 0x6f, 0xf7, 0x2f, 0x8d, 0x21, 0x8a, 0xed, 0x6d, 0xfc, 0x58, 0x66, 0xbc, 0x1b, 0x57, 0xfb, 0x1b,
+ 0x4c, 0xfc, 0xf5, 0x37, 0xda, 0xc1, 0x33, 0x82, 0xeb, 0xb8, 0x95, 0x52, 0xa8, 0xf0, 0x1d, 0xa8,
+ 0x97, 0xa4, 0xea, 0xae, 0x0e, 0xdc, 0x0c, 0xf6, 0x53, 0xb4, 0x01, 0x2e, 0x79, 0x81, 0x21, 0x79,
+ 0x88, 0x96, 0xba, 0x92, 0xd2, 0xa6, 0xb9, 0xdd, 0x9f, 0x48, 0xd4, 0xad, 0xe4, 0xeb, 0xab, 0xe4,
+ 0x61, 0xa7, 0xf9, 0x32, 0x76, 0x94, 0xe6, 0x15, 0xfa, 0xad, 0x48, 0x62, 0x7b, 0x18, 0x5c, 0x7b,
+ 0x57, 0x74, 0xf1, 0x34, 0xbe, 0xf2, 0xc1, 0x4e, 0xe4, 0x0a, 0xde, 0x42, 0x58, 0xa8, 0x22, 0x58,
+ 0x11, 0x62, 0x86, 0x83, 0x8b, 0x64, 0xbe, 0x53, 0xca, 0x09, 0xfb, 0x5d, 0xfd, 0x25, 0x2d, 0xfd,
+ 0x99, 0xf4, 0x3c, 0x11, 0x59, 0xc2, 0x07, 0x8e, 0x55, 0x41, 0x2f, 0xf0, 0x19, 0xce, 0x86, 0x19,
+ 0x72, 0x98, 0x55, 0x4f, 0xa1, 0x35, 0x9a, 0xd4, 0xb0, 0x83, 0xfc, 0x97, 0x51, 0x24, 0xca, 0x51,
+ 0x83, 0xb3, 0x2d, 0x6d, 0x13, 0x72, 0x94, 0x0b, 0x1a, 0x01, 0xa2, 0xb4, 0x63, 0x7b, 0x05, 0x63,
+ 0xbf, 0x8a, 0xa7, 0xeb, 0x34, 0x43, 0xff, 0xcf, 0xc1, 0x1d, 0x84, 0xd9, 0x4d, 0xb6, 0x69, 0x4d,
+ 0x55, 0x29, 0xdb, 0xca, 0xe2, 0x37, 0x03, 0xdc, 0x64, 0x2d, 0x91, 0xea, 0x8f, 0xb1, 0x99, 0x8f,
+ 0x73, 0x57, 0x40, 0x30, 0x8f, 0xb6, 0xfb, 0x9d, 0xf0, 0x71, 0x3a, 0xc3, 0xdb, 0xc9, 0x76, 0xdb,
+ 0x9d, 0x4e, 0x68, 0x2e, 0xe1, 0x8b, 0x40, 0x69, 0x96, 0x0f, 0xb1, 0x63, 0x74, 0xfc, 0x33, 0x74,
+ 0x81, 0xee, 0x07, 0x93, 0x4f, 0xb7, 0x56, 0x99, 0x9a, 0x26, 0xed, 0x1c, 0xb4, 0x62, 0xbe, 0xb4,
+ 0x3f, 0xab, 0xb5, 0x07, 0x55, 0x77, 0xc8, 0x1f, 0x1b, 0xc9, 0xaf, 0x91, 0x73, 0x39, 0x6b, 0x73,
+ 0xb3, 0x87, 0x5b, 0xaa, 0x3f, 0x98, 0x36, 0x25, 0x47, 0xcf, 0xe5, 0xaf, 0xfa, 0xe0, 0x75, 0xfa,
+ 0xbb, 0x30, 0xf3, 0xd4, 0x8c, 0x0a, 0xb8, 0x28, 0x02, 0x53, 0x1a, 0x4a, 0x20, 0x84, 0xdc, 0x20,
+ 0xd6, 0x9a, 0xf6, 0xa7, 0xf1, 0x45, 0x97, 0xd7, 0x7e, 0x2c, 0x33, 0x5e, 0xec, 0xca, 0x9c, 0xec,
+ 0xea, 0xa3, 0x7c, 0x21, 0xd6, 0x74, 0xfc, 0x13, 0xa5, 0x30, 0x15, 0x33, 0xc2, 0x07, 0xf0, 0xc2,
+ 0x25, 0xec, 0xa4, 0x7b, 0x1f, 0xc7, 0x5b, 0x9a, 0x54, 0x89, 0x22, 0xd5, 0x09, 0x8c, 0xe8, 0x09,
+ 0xce, 0x80, 0xcd, 0x25, 0xe7, 0x30, 0xc6, 0xc0, 0xb1, 0x4b, 0xf1, 0xb2, 0x41, 0x66, 0xa4, 0x41,
+ 0x63, 0xfa, 0xd3, 0xcc, 0x2a, 0x51, 0x24, 0x87, 0x7a, 0x8a, 0x07, 0xca, 0xac, 0x01, 0xe7, 0xac,
+ 0x45, 0x84, 0x48, 0x36, 0x47, 0xd0, 0xdc, 0xc6, 0xee, 0xd6, 0xac, 0xe3, 0xf8, 0x79, 0x08, 0xf8,
+ 0x32, 0x69, 0x5c, 0x39, 0x70, 0x2f, 0x60, 0xbc, 0xdd, 0xe9, 0x08, 0xb3, 0x4e, 0x82, 0xcb, 0x4e,
+ 0xd7, 0x55, 0xe3, 0xd8, 0xdf, 0xc6, 0xf6, 0x9e, 0x3e, 0xde, 0xf5, 0x0a, 0x66, 0x27, 0x20, 0x66,
+ 0x9e, 0xdc, 0x57, 0xaf, 0x93, 0xcd, 0xe3, 0xb2, 0x56, 0xda, 0x38, 0x9f, 0x29, 0x08, 0x34, 0x29,
+ 0x08, 0xb7, 0xa8, 0x7e, 0xb3, 0x92, 0x8e, 0x0d, 0x45, 0x9c, 0xff, 0xe5, 0xda, 0x64, 0xa9, 0xda,
+ 0x8d, 0xe3, 0xfb, 0xd2, 0x44, 0x6c, 0x9f, 0x73, 0x1c, 0xf4, 0x8c, 0x6a, 0x03, 0x34, 0xa2, 0x03,
+ 0x79, 0xbd, 0xc2, 0xb0, 0x60, 0xe1, 0xb7, 0x02, 0x35, 0xca, 0x8a, 0x8e, 0xd6, 0xb4, 0x64, 0xd6,
+ 0xab, 0x9d, 0x60, 0x28, 0x29, 0xed, 0x67, 0x32, 0x88, 0xa8, 0x27, 0x43, 0x57, 0x4c, 0x4d, 0x57,
+ 0x36, 0xd3, 0x08, 0x06, 0xc8, 0x66, 0x27, 0x5b, 0x1e, 0xa7, 0x96, 0x20, 0x23, 0xb0, 0x7e, 0x23,
+ 0xfb, 0xc1, 0xfa, 0xa2, 0x5d, 0x10, 0x42, 0x40, 0x6f, 0x39, 0xee, 0x6e, 0x3f, 0x22, 0xdd, 0x3f,
+ 0xec, 0x44, 0x02, 0xe0, 0x32, 0xf8, 0x79, 0x66, 0xe6, 0x59, 0xc4, 0x08, 0x78, 0x2c, 0xfe, 0x78,
+ 0x4e, 0xa1, 0xdf, 0xc9, 0x86, 0x04, 0xf1, 0x10, 0x6b, 0x9f, 0xda, 0xfa, 0x7f, 0xe9, 0xa6, 0x7f,
+ 0x7e, 0x95, 0xa9, 0x0e, 0xaa, 0xee, 0x53, 0x3e, 0x36, 0x51, 0x9d, 0xe1, 0xe6, 0x72, 0xd6, 0xe6,
+ 0xd0, 0x7d, 0x88, 0x66, 0x15, 0xc9, 0x12, 0xa2, 0x3d, 0x45, 0xe2, 0x65, 0x56, 0xe1, 0x92, 0x56,
+ 0x6c, 0x65, 0x10, 0x0c, 0x53, 0xcc, 0x4e, 0xb6, 0x3c, 0x8d, 0xef, 0x40, 0x46, 0xa3, 0xfc, 0x46,
+ 0xf3, 0x76, 0x52, 0xdc, 0xee, 0x82, 0xcc, 0x4d, 0x2a, 0xa5, 0x11, 0x8b, 0xe5, 0x46, 0x74, 0xe5,
+ 0x5f, 0xc3, 0x59, 0x4a, 0x0d, 0x60, 0x4f, 0x43, 0xa1, 0x96, 0x21, 0xa7, 0x82, 0xcc, 0x8b, 0x82,
+ 0xff, 0x7b, 0xae, 0x9d, 0xe5, 0x59, 0x05, 0xa7, 0xac, 0x77, 0x70, 0xfd, 0x52, 0x10, 0x68, 0x52,
+ 0x8a, 0xcb, 0x90, 0x6c, 0x8e, 0x63, 0x7b, 0x4f, 0x1f, 0x6f, 0x9b, 0x05, 0x33, 0xf2, 0x10, 0x33,
+ 0x56, 0xbb, 0xe4, 0x4b, 0x90, 0x71, 0xa0, 0x07, 0xa4, 0xf8, 0x18, 0x16, 0xd2, 0x45, 0x9e, 0xd2,
+ 0xdd, 0xbf, 0x61, 0x58, 0x30, 0x91, 0xba, 0x01, 0xfb, 0x65, 0x45, 0x47, 0x6b, 0x5a, 0x32, 0x6b,
+ 0xb4, 0xaf, 0x30, 0x14, 0xf5, 0x97, 0xd2, 0x19, 0x44, 0x54, 0xf2, 0xc0, 0xca, 0x26, 0xc7, 0xca,
+ 0x04, 0xba, 0x54, 0x3f, 0xb8, 0x49, 0x47, 0xe7, 0xc3, 0x4e, 0x9e, 0x93, 0x6d, 0x32, 0xb5, 0x6d,
+ 0xbe, 0x45, 0xb2, 0x94, 0x1a, 0xc0, 0x9e, 0x86, 0x81, 0xef, 0x42, 0x8d, 0xc7, 0x5b, 0xd5, 0xc7,
+ 0x1b, 0x88, 0x04, 0x03, 0x64, 0x33, 0xf2, 0xcc, 0x0f, 0xb2, 0x4b, 0x10, 0xf0, 0x58, 0x3f, 0xf0,
+ 0x9c, 0x81, 0x7d, 0x51, 0xcf, 0x08, 0x21, 0x20, 0xd6, 0xfd, 0x77, 0x37, 0xfe, 0x11, 0x8f, 0xfe,
+ 0x5e, 0x0c, 0x4c, 0x35, 0x23, 0xe3, 0x2e, 0x0a, 0xe1, 0x64, 0xe7, 0xf3, 0x08, 0x21, 0x37, 0x08,
+ 0x07, 0x28, 0x6b, 0xbe, 0xca, 0x0f, 0xe4, 0x3c, 0x03, 0x9b, 0x17, 0x6f, 0x30, 0xc6, 0xb2, 0x30,
+ 0x8c, 0x2c, 0xee, 0xad, 0x6a, 0xef, 0xfe, 0x3a, 0x5c, 0x06, 0x4a, 0x3e, 0x89, 0xd9, 0x1e, 0x89,
+ 0x0f, 0x9f, 0xc3, 0xc0, 0x79, 0x9d, 0x6a, 0x31, 0x46, 0x07, 0xe8, 0x8a, 0xea, 0xa2, 0x1b, 0xea,
+ 0x6d, 0xaa, 0x05, 0x73, 0x7d, 0x4f, 0x2f, 0xff, 0x7c, 0x7f, 0x29, 0x14, 0xcc, 0x4e, 0x40, 0xcc,
+ 0xf4, 0x5e, 0x39, 0x62, 0x24, 0x8d, 0x28, 0x71, 0x29, 0x3e, 0x06, 0xe4, 0xd5, 0x80, 0xc6, 0xd5,
+ 0x26, 0x7e, 0x9b, 0xfa, 0x6d, 0x81, 0xf8, 0x41, 0x94, 0x5c, 0xab, 0x29, 0x54, 0x78, 0xef, 0x54,
+ 0x71, 0x0a, 0x6a, 0xce, 0xd3, 0x73, 0x39, 0x0f, 0x70, 0x56, 0x75, 0x6b, 0x0c, 0xd0, 0xcd, 0x0c,
+ 0x1c, 0xa0, 0x6f, 0xbd, 0xae, 0x3c, 0x16, 0xf0, 0x0c, 0x29, 0x5c, 0x7f, 0xc0, 0x9e, 0x8d, 0xc0,
+ 0x94, 0x36, 0xd5, 0x2f, 0x7c, 0x9a, 0xaf, 0x2d, 0x93, 0x61, 0x88, 0xd2, 0x24, 0x75, 0x26, 0x24,
+ 0x22, 0xc4, 0xcf, 0xc5, 0xd5, 0xc8, 0xbf, 0xa6, 0x57, 0x12, 0x35, 0xba, 0x39, 0x4a, 0x5a, 0x39,
+ 0xeb, 0x6c, 0x69, 0x5e, 0xf8, 0xf7, 0x9d, 0x5a, 0xe5, 0xc2, 0xd3, 0x67, 0x48, 0xea, 0x4c, 0x48,
+ 0xbc, 0x18, 0x98, 0x6a, 0x46, 0x05, 0x5c, 0x14, 0x01, 0xc8, 0x0d, 0x25, 0x10, 0x42, 0x6e, 0x10,
+ 0x3c, 0x39, 0x8a, 0x86, 0x27, 0x31, 0x6b, 0xc4, 0xdb, 0x1c, 0x26, 0x6d, 0x2e, 0xcd, 0x6c, 0x2e,
+ 0x15, 0xd8, 0xd2, 0xbc, 0x33, 0x2d, 0xf9, 0xb4, 0x09, 0x47, 0x65, 0xce, 0x90, 0x17, 0x98, 0x90,
+ 0xe9, 0x31, 0x43, 0xa0, 0xa4, 0x32, 0x5f, 0xc8, 0x65, 0xe5, 0x9c, 0xcf, 0x9f, 0xf3, 0xf7, 0x9f,
+ 0x02, 0x5d, 0x2a, 0xfe, 0x5c, 0xc5, 0xc2, 0x92, 0x80, 0x27, 0x4f, 0xa8, 0xd7, 0x19, 0xbb, 0xd7,
+ 0x46, 0x16, 0x77, 0xb7, 0x35, 0x96, 0x7f, 0x1d, 0x2e, 0x03, 0x25, 0x1f, 0xa5, 0x8d, 0x0f, 0xa5,
+ 0xda, 0x97, 0x0a, 0xe6, 0xfa, 0x9e, 0x5e, 0x3d, 0xf8, 0xfe, 0x52, 0x28, 0x5b, 0x9c, 0x80, 0x5b,
+ 0x19, 0xd5, 0x2e, 0xfd, 0x38, 0xf6, 0x30, 0x5e, 0x8f, 0x95, 0x04, 0xb8, 0x27, 0x41, 0x84, 0x27,
+ 0xdb, 0x58, 0x1f, 0x99, 0xd4, 0x1d, 0x3f, 0x74, 0xb8, 0x0c, 0x94, 0x7c, 0xd1, 0x71, 0x3c, 0xd1,
+ 0x1e, 0xfd, 0x45, 0x43, 0xf2, 0xf9, 0xd4, 0x62, 0x8c, 0x0e, 0x13, 0xd7, 0x17, 0x87, 0x36, 0x17,
+ 0x17, 0x85, 0xf8, 0x42, 0x6f, 0xe8, 0x3b, 0x26, 0x89, 0x60, 0x2a, 0x66, 0x47, 0x0e, 0x23, 0x47,
+ 0x4a, 0x1b, 0x8b, 0xf6, 0x3e, 0x4d, 0xb6, 0xf7, 0xa8, 0xd1, 0x44, 0x69, 0x12, 0xdb, 0x13, 0x12,
+ 0x0a, 0xea, 0x82, 0x80, 0xef, 0x57, 0x4c, 0x9f, 0xc5, 0xbb, 0xb0, 0x4d, 0x0d, 0x7d, 0x12, 0x0d,
+ 0xd9, 0x05, 0x35, 0x67, 0x88, 0xd8, 0xfd, 0xe6, 0x38, 0x2b, 0xdb, 0xd4, 0x06, 0x68, 0x87, 0x06,
+ 0x89, 0x59, 0xaf, 0xed, 0xfc, 0x25, 0xd8, 0x94, 0xdf, 0xba, 0x12, 0xf9, 0x6e, 0x06, 0x17, 0x6e,
+ 0x78, 0x72, 0xd7, 0xcf, 0x4e, 0x62, 0xd6, 0x4b, 0x75, 0x38, 0x4c, 0xda, 0x5c, 0x59, 0xd8, 0x5c,
+ 0x76, 0x22, 0x01, 0x70, 0x19, 0x7c, 0xdd, 0x33, 0x73, 0xcd, 0x62, 0x04, 0x3c, 0x16, 0x7f, 0x3c,
+ 0x27, 0xb1, 0x8e, 0x85, 0x43, 0x02, 0x99, 0x08, 0xd4, 0xae, 0x6d, 0x7d, 0xde, 0x95, 0x53, 0xde,
+ 0x18, 0x1a, 0x3b, 0x82, 0x16, 0x75, 0x51, 0x17, 0xcf, 0x67, 0xc2, 0xec, 0xad, 0xac, 0x38, 0xad,
+ 0x23, 0x0b, 0xda, 0xba, 0xfb, 0x4b, 0xde, 0xef, 0x17, 0xe0, 0xf3, 0xee, 0xb3, 0xa7, 0xe6, 0xb3,
+ 0xf2, 0xb9, 0x47, 0xa3, 0xc0, 0x01, 0xad, 0x04, 0x6a, 0x57, 0xd7, 0xdf, 0x6f, 0xab, 0xc8, 0x6f,
+ 0x95, 0xf9, 0xc0, 0x50, 0x52, 0x19, 0xce, 0x64, 0xd3, 0x93, 0x4e, 0x86, 0xae, 0x98, 0x9a, 0xae,
+ 0xd5, 0x08, 0xc9, 0x26, 0x83, 0x03, 0x34, 0x0c, 0xbe, 0xf9, 0xba, 0xa2, 0xb1, 0x3e, 0x9b, 0xb1,
+ 0xa9, 0xc0, 0x4a, 0xd6, 0x75, 0x28, 0xa5, 0xa0, 0x08, 0x8f, 0x68, 0xeb, 0x80, 0x55, 0xf6, 0x80,
+ 0x84, 0x9b, 0x46, 0xd3, 0xd9, 0x7d, 0x70, 0x37, 0x19, 0x9a, 0xb5, 0xdb, 0x53, 0xbd, 0xb7, 0x53,
+ 0xe1, 0x86, 0xeb, 0xde, 0x17, 0xa0, 0xd1, 0xc5, 0x20, 0x79, 0x63, 0x2a, 0x45, 0x97, 0x5e, 0x45,
+ 0x1d, 0x6f, 0x7a, 0xc2, 0x80, 0xbf, 0x77, 0xb9, 0x4c, 0xdb, 0x9a, 0x2b, 0x4a, 0x73, 0x31, 0x4a,
+ 0x93, 0x1e, 0xbe, 0x91, 0xb6, 0x95, 0x4b, 0x11, 0x90, 0xfa, 0x9f, 0xbd, 0x14, 0xb3, 0x94, 0x14,
+ 0x28, 0x2e, 0x4d, 0x45, 0x3a, 0x9f, 0xf3, 0x39, 0x92, 0xa9, 0x85, 0xf7, 0x34, 0x37, 0x48, 0x34,
+ 0xc6, 0x37, 0x65, 0x5b, 0x54, 0xa2, 0x48, 0xcd, 0xf4, 0xd7, 0x0e, 0x57, 0x9b, 0x02, 0x0d, 0x9b,
+ 0x7b, 0xe0, 0xe8, 0x4e, 0x3c, 0x24, 0x75, 0x90, 0xb5, 0xed, 0xc5, 0x26, 0x01, 0xad, 0xdf, 0x01,
+ 0x65, 0x1d, 0xad, 0x0d, 0xce, 0xdd, 0xa1, 0xf2, 0x39, 0xe3, 0xd6, 0xf1, 0x16, 0x2a, 0xe9, 0x16,
+ 0x75, 0xb0, 0x3e, 0xf1, 0x6b, 0x3a, 0x7e, 0xe8, 0xb3, 0x18, 0xeb, 0xf8, 0x61, 0xe2, 0x78, 0x61,
+ 0x7c, 0xc8, 0x83, 0xf0, 0xf6, 0x2b, 0x91, 0xac, 0xb6, 0x76, 0xd2, 0x49, 0x31, 0x6b, 0x6d, 0x31,
+ 0xe3, 0xdb, 0xc1, 0x20, 0x4b, 0x65, 0x13, 0x57, 0xa0, 0x5e, 0x2c, 0x82, 0x92, 0x8e, 0xe5, 0x92,
+ 0xee, 0x19, 0x28, 0x1e, 0x6e, 0x3d, 0xbb, 0xf4, 0x66, 0x7e, 0x8b, 0xa0, 0xaf, 0x35, 0x45, 0xaf,
+ 0x21, 0x56, 0xf0, 0x44, 0xa7, 0x8e, 0x1c, 0x7d, 0x97, 0xc7, 0xbc, 0x46, 0x64, 0xbe, 0x5d, 0x64,
+ 0x8e, 0x71, 0xc4, 0x53, 0x36, 0x2a, 0x3c, 0xa8, 0xdc, 0x21, 0x05, 0x96, 0x5e, 0xc0, 0xa5, 0x5e,
+ 0xf9, 0x9c, 0xd0, 0x5c, 0x01, 0xd5, 0x80, 0xd2, 0xef, 0x1e, 0xa1, 0xc6, 0xe8, 0x3b, 0x66, 0xe8,
+ 0x01, 0xcf, 0x15, 0x7f, 0x2e, 0x83, 0x61, 0x49, 0x40, 0xf2, 0xc6, 0x54, 0x8a, 0xed, 0xbc, 0x8a,
+ 0x5b, 0x79, 0x0d, 0x75, 0xb5, 0x29, 0x08, 0xa4, 0x62, 0xd8, 0xbf, 0x34, 0xef, 0xfe, 0x3e, 0xef,
+ 0x91, 0x43, 0x94, 0x6f, 0xea, 0x50, 0x89, 0x83, 0x10, 0xdd, 0xd0, 0x15, 0xc3, 0xaa, 0x2f, 0xc3,
+ 0x14, 0x17, 0xc7, 0xc3, 0x1d, 0xae, 0x98, 0xfd, 0x49, 0xb5, 0xa3, 0x9a, 0x1a, 0xfa, 0x24, 0x1a,
+ 0x7a, 0x2f, 0xfd, 0x31, 0x12, 0xa7, 0x14, 0xd9, 0xf5, 0x1f, 0x03, 0x72, 0x8b, 0x40, 0x63, 0x8b,
+ 0xf6, 0x03, 0x13, 0x9c, 0x78, 0x48, 0xea, 0xe3, 0xa9, 0x19, 0x49, 0x4c, 0x02, 0x99, 0x7d, 0x02,
+ 0xb1, 0xda, 0x71, 0x54, 0x63, 0x5d, 0xf4, 0xb7, 0xc7, 0xe8, 0xaa, 0x07, 0x2d, 0xf9, 0xce, 0x2d,
+ 0xb7, 0x3d, 0x0f, 0x95, 0x87, 0xd1, 0x71, 0xc2, 0x84, 0x81, 0x7b, 0x3c, 0x97, 0xd2, 0xc0, 0x97,
+ 0xca, 0x3a, 0x99, 0x1a, 0x5f, 0x79, 0x81, 0x27, 0x72, 0x05, 0x6f, 0x21, 0x2c, 0x54, 0x11, 0x2c,
+ 0x5a, 0xb6, 0x18, 0x0a, 0x9b, 0xaa, 0x69, 0xed, 0x22, 0x2a, 0x79, 0x60, 0x65, 0x13, 0x82, 0x65,
+ 0xf8, 0x53, 0xc5, 0x23, 0x2f, 0x56, 0xe1, 0x9b, 0xaf, 0xec, 0x67, 0x92, 0x62, 0xd6, 0xda, 0x62,
+ 0xcc, 0xdd, 0xe7, 0xdb, 0xbb, 0xf5, 0x04, 0x52, 0x31, 0x6c, 0xbe, 0x1a, 0x96, 0x7f, 0x1f, 0x96,
+ 0x47, 0xd9, 0x62, 0xc8, 0x1b, 0x15, 0x1e, 0x54, 0x6e, 0xf1, 0xe3, 0x4b, 0x2f, 0x60, 0xb3, 0x2f,
+ 0x96, 0x6b, 0xff, 0xd1, 0x20, 0x5f, 0x6d, 0xbf, 0x13, 0x46, 0xc7, 0x7a, 0xf3, 0x6c, 0x9d, 0xf3,
+ 0x6e, 0x38, 0x3a, 0xf2, 0x0f, 0x09, 0x8c, 0x24, 0xbc, 0xaa, 0xa0, 0xe8, 0x91, 0xba, 0x47, 0x91,
+ 0x13, 0x3f, 0xac, 0x7d, 0xd7, 0xa1, 0x7c, 0xc1, 0x4a, 0x2e, 0xb4, 0xf5, 0x2a, 0x3c, 0x96, 0x2a,
+ 0x24, 0x23, 0xb1, 0x04, 0x31, 0x44, 0x3a, 0xd3, 0x14, 0x7b, 0xe4, 0x81, 0x83, 0x61, 0x54, 0x83,
+ 0x74, 0x7f, 0x2b, 0x8e, 0x45, 0xb9, 0x1f, 0xa1, 0xf3, 0xea, 0x2d, 0xac, 0xeb, 0x0f, 0xc4, 0xeb,
+ 0x09, 0x78, 0xbd, 0x01, 0x9d, 0x11, 0xef, 0x44, 0x05, 0x6e, 0x39, 0xb1, 0x50, 0x89, 0x15, 0x50,
+ 0x03, 0x92, 0x3f, 0x81, 0x72, 0x46, 0xa3, 0xdb, 0xc0, 0xd5, 0x89, 0xfc, 0x5d, 0xf4, 0x07, 0x5d,
+ 0x30, 0x34, 0x76, 0xc7, 0x2c, 0xea, 0xa2, 0x2e, 0x5d, 0xce, 0x47, 0x1b, 0x99, 0x9b, 0x70, 0x99,
+ 0x50, 0x5c, 0x9a, 0x8a, 0x74, 0xfd, 0x25, 0x72, 0xe7, 0x91, 0xc9, 0x2d, 0x68, 0x6e, 0x90, 0x68,
+ 0x4f, 0x6e, 0xca, 0xb6, 0xa8, 0x87, 0x90, 0x59, 0x2b, 0x6d, 0x1c, 0xae, 0xf5, 0x04, 0x1a, 0xf5,
+ 0x0e, 0x50, 0xd6, 0xbf, 0x57, 0x1e, 0x0b, 0x78, 0x06, 0xf5, 0x2e, 0xde, 0x60, 0x4f, 0xa7, 0x60,
+ 0x7d, 0x07, 0x96, 0x8f, 0xd8, 0xa8, 0xf0, 0xe5, 0xf6, 0x84, 0x14, 0x1d, 0xbb, 0x86, 0xd1, 0xbb,
+ 0xb9, 0x6d, 0xd9, 0x2a, 0xd0, 0xcf, 0x7a, 0xba, 0x82, 0x74, 0x55, 0xe2, 0xf7, 0x9d, 0x67, 0xf7,
+ 0x37, 0x1c, 0x1d, 0x79, 0xe6, 0xe5, 0x46, 0x12, 0x5e, 0x55, 0x50, 0x74, 0xa9, 0x5d, 0xc2, 0xa9,
+ 0x54, 0xe6, 0xce, 0xb5, 0xcc, 0xb4, 0x62, 0x95, 0x24, 0xdf, 0x57, 0xbe, 0x05, 0x5c, 0x25, 0x05,
+ 0x1f, 0x32, 0x50, 0x3c, 0xdc, 0x7a, 0xb5, 0x2b, 0xcc, 0xfc, 0xd5, 0x83, 0x9d, 0x6a, 0x8a, 0x9d,
+ 0xc2, 0x8d, 0x31, 0x64, 0xec, 0xeb, 0x0f, 0x2a, 0x37, 0x99, 0x90, 0xc4, 0xf6, 0x30, 0xb8, 0xf6,
+ 0x33, 0xa6, 0x49, 0x46, 0x5e, 0xac, 0x01, 0xf5, 0x9d, 0x1b, 0xce, 0xe7, 0xc4, 0x6f, 0x77, 0xc4,
+ 0x3a, 0xde, 0xf4, 0x47, 0xc3, 0xbd, 0xee, 0xb1, 0x98, 0x75, 0xf7, 0x56, 0x94, 0xe6, 0x62, 0x94,
+ 0xe5, 0x3c, 0xbf, 0xe1, 0xaf, 0xe9, 0x96, 0x22, 0xe3, 0x37, 0xfd, 0xb9, 0x28, 0xa5, 0xeb, 0x28,
+ 0xe8, 0xfe, 0x56, 0xdf, 0x8a, 0xb1, 0x3e, 0x81, 0x25, 0x17, 0x5a, 0x9b, 0x15, 0x1e, 0x4b, 0x15,
+ 0x12, 0xf0, 0xb9, 0x02, 0xf9, 0x22, 0x1d, 0x88, 0x0a, 0xdc, 0x72, 0xa1, 0xa0, 0xd1, 0x2a, 0xa0,
+ 0x92, 0xd1, 0xab, 0xee, 0x98, 0x16, 0x2a, 0x58, 0xd0, 0x08, 0x59, 0xe9, 0x9e, 0x5e, 0x28, 0x9e,
+ 0xac, 0xb5, 0x0b, 0x96, 0xe3, 0xe2, 0x83, 0x0e, 0x8b, 0x33, 0x30, 0x2c, 0x67, 0x8a, 0xff, 0x67,
+ 0x34, 0x8e, 0x22, 0xf8, 0x94, 0xa3, 0xe5, 0xc9, 0x9e, 0x80, 0xd9, 0x88, 0xf4, 0xa9, 0xc5, 0xf4,
+ 0x52, 0x01, 0xb0, 0x74, 0x28, 0x38, 0xe7, 0xe0, 0x67, 0xb6, 0x86, 0x85, 0xbf, 0x77, 0x2b, 0xbf,
+ 0xed, 0x8b, 0x17, 0x9f, 0x1c, 0x7b, 0x18, 0x2f, 0xa6, 0xab, 0x02, 0x5c, 0xf2, 0xc1, 0x42, 0xf2,
+ 0xfa, 0x0e, 0xef, 0xdd, 0x73, 0x93, 0x23, 0x09, 0x2f, 0xcb, 0x28, 0x3a, 0xb5, 0xcf, 0x61, 0xb5,
+ 0x98, 0x3b, 0x29, 0x6e, 0x77, 0x41, 0x66, 0xc7, 0x15, 0xb3, 0xe9, 0xa4, 0x93, 0x23, 0x3a, 0x93,
+ 0xdf, 0xe2, 0x4b, 0xa6, 0x6c, 0x54, 0x78, 0x93, 0x7b, 0x42, 0x0a, 0xef, 0xbc, 0x43, 0x89, 0xbc,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x66, 0x8f, 0x92, 0x8c, 0xbc, 0x9b, 0x02, 0x29, 0xf9, 0x36, 0x5f, 0x0d, 0x4b, 0xde, 0xee, 0x4b,
+ 0x2f, 0x06, 0x26, 0xfb, 0xf0, 0x90, 0x17, 0x05, 0x91, 0x32, 0x92, 0x98, 0x04, 0xf1, 0xfa, 0x04,
+ 0x3e, 0x64, 0xa0, 0x78, 0x7b, 0xf4, 0xa9, 0x56, 0x5b, 0x3b, 0x69, 0xc5, 0xf9, 0xd4, 0xd7, 0xf9,
+ },
+ { /* 6 */
+ 0x51, 0x8b, 0xc0, 0x48, 0x41, 0xdb, 0x9d, 0x79, 0x04, 0x5b, 0xb3, 0x42, 0x6e, 0xe5, 0x18, 0xc6,
+ 0x33, 0xea, 0x25, 0x27, 0xfa, 0x81, 0x30, 0xe7, 0xa3, 0x06, 0xf7, 0x12, 0x65, 0x8f, 0x4c, 0x36,
+ 0xa4, 0x98, 0x5a, 0x40, 0x48, 0x42, 0xb3, 0xc9, 0x3b, 0x2e, 0x19, 0xca, 0x9c, 0x04, 0x9a, 0x9d,
+ 0x67, 0xeb, 0x11, 0xd7, 0x14, 0x97, 0xc2, 0x59, 0x6c, 0x89, 0xa6, 0x39, 0x6b, 0x80, 0xab, 0x4b,
+ 0x0a, 0xd7, 0x2b, 0xb3, 0x9d, 0x59, 0xde, 0x4d, 0x55, 0x6b, 0x07, 0xd2, 0xc0, 0x17, 0x3d, 0xb5,
+ 0xe7, 0x33, 0xd5, 0x7d, 0x3a, 0x1c, 0x1b, 0x11, 0xa6, 0x3b, 0x18, 0xa1, 0xf1, 0xc2, 0x52, 0x20,
+ 0x28, 0xda, 0xac, 0x89, 0x31, 0xa7, 0xfe, 0xf7, 0x97, 0x6f, 0x1c, 0xce, 0x86, 0x5c, 0xf4, 0x91,
+ 0x1a, 0xcc, 0xd2, 0x37, 0xe8, 0x70, 0x6c, 0x44, 0xdd, 0xec, 0x60, 0xc1, 0x42, 0x8e, 0x8b, 0x80,
+ 0x6c, 0xc0, 0x61, 0xfd, 0xaa, 0x98, 0xbe, 0x40, 0xd0, 0x67, 0x2a, 0xf6, 0x0a, 0xca, 0xa5, 0xd9,
+ 0x65, 0xd0, 0xa7, 0x26, 0x52, 0x3b, 0x45, 0xf1, 0x7d, 0x40, 0x73, 0x03, 0xea, 0x3a, 0xcd, 0x05,
+ 0xfa, 0x4e, 0x45, 0x03, 0x3b, 0x0d, 0x9f, 0x3a, 0xa1, 0xca, 0x4f, 0x33, 0x52, 0x1c, 0x40, 0x55,
+ 0xe8, 0x6e, 0x0a, 0x76, 0x08, 0x88, 0xaa, 0x9b, 0x38, 0x84, 0xfd, 0x1a, 0x51, 0x3f, 0x90, 0x2e,
+ 0xac, 0x74, 0xc7, 0x02, 0x93, 0xb7, 0xea, 0x2c, 0x7f, 0x8c, 0xcb, 0x22, 0xdd, 0xa9, 0xc1, 0x66,
+ 0x5a, 0xa0, 0xb0, 0x62, 0xff, 0xd4, 0xe1, 0x60, 0xb8, 0xb5, 0x3f, 0x8d, 0x0f, 0xaf, 0x16, 0x54,
+ 0xa9, 0xfe, 0x33, 0xba, 0x3c, 0x7a, 0x85, 0xeb, 0xb4, 0x58, 0x29, 0x4b, 0xbd, 0x43, 0x3e, 0xdd,
+ 0x30, 0x2d, 0xc8, 0x4f, 0x9f, 0x7b, 0x15, 0x1b, 0x5b, 0x4a, 0xa9, 0x35, 0x45, 0x68, 0x19, 0x5f,
+ 0x8b, 0xf3, 0xb4, 0x80, 0x90, 0x84, 0xa5, 0x51, 0x76, 0x5c, 0x32, 0x57, 0xfb, 0x08, 0xf7, 0xf9,
+ 0x83, 0x1f, 0x29, 0xc2, 0x4b, 0x71, 0xfc, 0xb4, 0x32, 0xfe, 0xe0, 0xbf, 0xba, 0xa5, 0xac, 0x02,
+ 0xef, 0xdf, 0x48, 0x3f, 0xe1, 0xe9, 0x42, 0xf4, 0xe2, 0x99, 0xca, 0x49, 0xb0, 0x6f, 0x09, 0xdb,
+ 0x66, 0x17, 0x4a, 0x4e, 0x37, 0xc1, 0x60, 0x0d, 0x85, 0x0c, 0x2d, 0x24, 0xca, 0xdd, 0x98, 0x6c,
+ 0x14, 0x6d, 0x56, 0xa5, 0xf9, 0xb2, 0x7f, 0x9a, 0xaa, 0xd6, 0x0e, 0x67, 0x43, 0x2e, 0x7a, 0xa9,
+ 0x0d, 0x66, 0x69, 0xfa, 0x74, 0x38, 0x36, 0x22, 0x8f, 0x76, 0x30, 0x81, 0x21, 0x47, 0xa4, 0x40,
+ 0x05, 0x8a, 0xf4, 0xb8, 0xaf, 0xcd, 0x6f, 0xc7, 0xcb, 0xd4, 0xe2, 0x69, 0x60, 0xea, 0xff, 0xbb,
+ 0x92, 0xf8, 0x8b, 0xdf, 0x1d, 0x0e, 0xec, 0xe9, 0x53, 0xfc, 0x0c, 0xb1, 0x99, 0x61, 0x29, 0x10,
+ 0x7a, 0x96, 0x81, 0xa9, 0x15, 0x86, 0x46, 0x72, 0x6b, 0x78, 0xf1, 0xab, 0xc8, 0x5e, 0xb9, 0x3e,
+ 0x13, 0xdc, 0x14, 0xec, 0x10, 0xd3, 0x97, 0xf5, 0x70, 0xcb, 0x39, 0x34, 0xa2, 0x7e, 0xe3, 0x5c,
+ 0xd8, 0x43, 0xc2, 0x39, 0x97, 0xf3, 0xbf, 0x80, 0x63, 0xce, 0x54, 0x2f, 0x14, 0x57, 0x89, 0x71,
+ 0x87, 0x69, 0x86, 0xe3, 0xc7, 0xea, 0x31, 0x27, 0x10, 0xaf, 0x89, 0xcb, 0x7b, 0x12, 0x60, 0x9e,
+ 0xb5, 0x7f, 0xf8, 0x5d, 0x1e, 0x3d, 0xa3, 0x94, 0x5a, 0x2c, 0xf5, 0xc4, 0xbf, 0xc0, 0x1f, 0x8f,
+ 0xdf, 0xf2, 0x80, 0x70, 0x7e, 0x92, 0x57, 0xef, 0xb9, 0xd3, 0x63, 0x7c, 0xf5, 0x07, 0x10, 0x84,
+ 0x91, 0x3f, 0x66, 0xb7, 0x78, 0xf4, 0xc9, 0x15, 0xab, 0xb0, 0x52, 0x96, 0xb9, 0x86, 0x7c, 0x79,
+ 0x2d, 0x50, 0x58, 0x31, 0x9e, 0x6a, 0x91, 0x30, 0x5c, 0xbb, 0xfe, 0xa7, 0xe6, 0xb6, 0x0b, 0x2a,
+ 0xa0, 0xee, 0xf5, 0x61, 0xc4, 0xd9, 0x7e, 0x5a, 0x19, 0x7f, 0x70, 0xbe, 0x5d, 0xb3, 0x56, 0x01,
+ 0xbf, 0xa8, 0xd3, 0xee, 0x83, 0x64, 0x7d, 0xd9, 0x0f, 0x47, 0xf2, 0x16, 0x7f, 0xd7, 0x22, 0x3a,
+ 0x24, 0x40, 0x9e, 0xea, 0x66, 0xc9, 0x6a, 0x81, 0xf1, 0x9c, 0xa7, 0x52, 0x06, 0x46, 0x63, 0xf6,
+ 0x49, 0x7c, 0xa4, 0x8e, 0xef, 0x07, 0x76, 0x95, 0xc8, 0x7e, 0x06, 0xb9, 0xad, 0xd1, 0xf5, 0x08,
+ 0xee, 0x23, 0x13, 0xa6, 0xc2, 0xbf, 0xe0, 0xa0, 0x0b, 0x1c, 0x41, 0x54, 0x11, 0x32, 0x3a, 0xfc,
+ 0x2c, 0xac, 0x03, 0xa8, 0xbd, 0x3c, 0x33, 0x64, 0xb5, 0x3e, 0x75, 0xba, 0x47, 0xeb, 0x38, 0x0d,
+ 0x1d, 0x7d, 0x90, 0x7e, 0x01, 0x11, 0x84, 0x2b, 0x07, 0xf1, 0x57, 0x92, 0xa3, 0xde, 0x12, 0x75,
+ 0xcc, 0x2e, 0x94, 0x9c, 0x6e, 0x41, 0xc0, 0x1a, 0xc9, 0x18, 0x5a, 0x48, 0x57, 0x79, 0xf3, 0xd8,
+ 0x7c, 0xdb, 0x98, 0x79, 0xdf, 0xb1, 0x0c, 0x49, 0x58, 0xe0, 0x4d, 0xe5, 0x88, 0x53, 0x13, 0xec,
+ 0x8e, 0x79, 0x40, 0x38, 0x3f, 0x49, 0xca, 0x96, 0xbd, 0x88, 0xd0, 0x3e, 0x9b, 0xe2, 0x08, 0x42,
+ 0xb8, 0x19, 0x91, 0xa7, 0x6a, 0x05, 0x95, 0xb6, 0xd5, 0x5a, 0xc5, 0x45, 0x9e, 0x87, 0xbb, 0xcf,
+ 0xe6, 0xcf, 0x8e, 0xe4, 0x19, 0x4a, 0xb9, 0x45, 0x4f, 0xbe, 0x93, 0xbc, 0x50, 0x9f, 0x61, 0x07,
+ 0xf4, 0xef, 0xc1, 0x91, 0x2a, 0xcf, 0x8c, 0xe4, 0xd6, 0xf0, 0x21, 0x95, 0x53, 0xbc, 0xb1, 0x7c,
+ 0x26, 0x7b, 0x28, 0x1b, 0x20, 0x65, 0xed, 0x29, 0xe0, 0x55, 0x72, 0x68, 0x87, 0xfc, 0x05, 0xb8,
+ 0x1b, 0x30, 0x89, 0xae, 0xcb, 0x26, 0xce, 0x10, 0x34, 0x69, 0xeb, 0xdc, 0xe3, 0xd3, 0xb8, 0xa7,
+ 0x4f, 0x31, 0xbd, 0x5e, 0x25, 0x30, 0x3c, 0xae, 0xfb, 0xe6, 0xba, 0xf7, 0xed, 0xdc, 0x5f, 0xda,
+ 0xd5, 0x25, 0xab, 0xc3, 0xe3, 0xcb, 0x89, 0xa2, 0xec, 0xb8, 0x64, 0xae, 0x35, 0x10, 0x2d, 0x31,
+ 0xc5, 0x3e, 0x52, 0x47, 0x96, 0xe2, 0x3b, 0xab, 0x64, 0x3f, 0x03, 0xbd, 0xb7, 0x89, 0x9b, 0x04,
+ 0x50, 0x77, 0x9b, 0xd1, 0x62, 0x8d, 0x3f, 0x2d, 0xed, 0xde, 0x38, 0x5f, 0xcf, 0xb8, 0x2b, 0xe1,
+ 0x79, 0x51, 0x6c, 0xc1, 0x70, 0x7c, 0x63, 0x8e, 0x93, 0x34, 0xaf, 0x8c, 0xe8, 0xb9, 0xec, 0x57,
+ 0x77, 0xf0, 0xe8, 0x53, 0x61, 0xbe, 0x70, 0x50, 0xe4, 0x0e, 0xc1, 0x2a, 0xe9, 0x19, 0x1d, 0x7e,
+ 0x16, 0x56, 0xe0, 0x54, 0xbf, 0x1e, 0xf8, 0x32, 0xbb, 0x1f, 0xdb, 0x5d, 0xc2, 0x94, 0x1c, 0xe7,
+ 0x52, 0x4c, 0x2d, 0x20, 0x24, 0x21, 0xb8, 0x85, 0xfc, 0x17, 0xed, 0x65, 0x4e, 0x02, 0x4d, 0xaf,
+ 0x15, 0x91, 0x0d, 0x3c, 0xda, 0xe4, 0xdd, 0xce, 0x43, 0x53, 0x85, 0x7a, 0xe2, 0x73, 0x49, 0x8e,
+ 0x9b, 0xe8, 0x4d, 0x04, 0xe5, 0xad, 0x17, 0x58, 0xfe, 0xdb, 0x55, 0x44, 0x79, 0x91, 0x41, 0xcc,
+ 0xb4, 0x83, 0xa3, 0xc4, 0x3d, 0x6b, 0x01, 0xc0, 0xb3, 0xa9, 0x7e, 0xd9, 0x1e, 0x9d, 0x2c, 0xa8,
+ 0x3e, 0x8c, 0x4c, 0xdd, 0x8e, 0xb9, 0x06, 0xc5, 0x2c, 0x70, 0xc7, 0x93, 0x44, 0xc8, 0xe8, 0x76,
+ 0x80, 0xd8, 0xc4, 0xaa, 0x2e, 0x8b, 0xd9, 0x48, 0xca, 0xb2, 0xbe, 0x98, 0x9a, 0x42, 0xf9, 0x6b,
+ 0x36, 0x60, 0xd1, 0x9f, 0x55, 0x4c, 0x5f, 0x20, 0x68, 0xd2, 0x15, 0x7b, 0x05, 0x65, 0xb3, 0x8d,
+ 0xd3, 0x68, 0xb2, 0x13, 0x29, 0xfc, 0xc3, 0x99, 0xdf, 0x20, 0xd8, 0xe0, 0x75, 0x1d, 0x87, 0xe3,
+ 0x2b, 0x1d, 0x41, 0xe1, 0x54, 0x5d, 0xdb, 0x0b, 0x6f, 0x23, 0x42, 0xe9, 0xa6, 0xbb, 0xa1, 0xf8,
+ 0x01, 0xfc, 0x5b, 0x99, 0x23, 0x56, 0xa2, 0x54, 0xe9, 0x85, 0x8b, 0x1d, 0xa1, 0x5d, 0x33, 0x27,
+ 0x99, 0xd3, 0xfb, 0xf5, 0xa3, 0x01, 0x90, 0xf0, 0xef, 0x12, 0x80, 0x7e, 0xf8, 0x2b, 0x27, 0x82,
+ 0xdd, 0xc9, 0x36, 0x81, 0x38, 0x3e, 0xd0, 0x47, 0xa8, 0x1a, 0xb6, 0x46, 0x74, 0xbd, 0x76, 0xca,
+ 0xf6, 0xd4, 0x77, 0x60, 0x6c, 0x63, 0x0b, 0x4c, 0xc7, 0x39, 0xf4, 0xaf, 0xd2, 0x06, 0xd7, 0x32,
+ 0x68, 0xb6, 0xce, 0xdc, 0x26, 0x03, 0x73, 0xd3, 0xf2, 0x36, 0x43, 0x82, 0xcb, 0x7d, 0x69, 0x45,
+ 0x12, 0x20, 0x4f, 0x75, 0x33, 0x85, 0x35, 0xa1, 0x99, 0x4e, 0xb2, 0x29, 0x03, 0x23, 0xd0, 0x7b,
+ 0x8a, 0x0f, 0xef, 0x19, 0xb3, 0xd2, 0x07, 0x05, 0x9f, 0xd9, 0xb9, 0x4a, 0x5a, 0x55, 0xc4, 0xde,
+ 0x09, 0x10, 0xc6, 0xdb, 0xf8, 0xa3, 0xfb, 0xb1, 0xad, 0x27, 0x59, 0xf5, 0xe0, 0xf0, 0x68, 0xdc,
+ 0xa6, 0xa3, 0xec, 0xb1, 0x0e, 0xee, 0x34, 0x61, 0x2a, 0xe7, 0xcc, 0xf0, 0x1d, 0xbe, 0xfc, 0xd3,
+ 0x72, 0x7a, 0x1c, 0xeb, 0xce, 0x73, 0x1f, 0x97, 0x2f, 0xda, 0x23, 0x43, 0x89, 0xf3, 0xe2, 0xc5,
+ 0xc4, 0xc2, 0x09, 0xde, 0xb5, 0xb4, 0x99, 0xff, 0x8d, 0xba, 0x88, 0xa0, 0x16, 0xd4, 0xa8, 0x23,
+ 0x3a, 0xfa, 0xe3, 0xfc, 0x02, 0x22, 0xcb, 0x56, 0x0e, 0x21, 0xae, 0xe7, 0x85, 0x7f, 0x24, 0xea,
+ 0x74, 0x37, 0x05, 0x3b, 0x04, 0x44, 0x55, 0xac, 0x1c, 0x42, 0x9f, 0x0d, 0xc9, 0xfe, 0x48, 0x17,
+ 0xc1, 0x48, 0xfd, 0x66, 0x1a, 0x79, 0xf6, 0x38, 0x46, 0x6e, 0x6a, 0xc9, 0x76, 0x3e, 0x57, 0x98,
+ 0xca, 0x63, 0x8d, 0x4c, 0xa4, 0x76, 0x8a, 0x21, 0xfa, 0x80, 0xe6, 0x06, 0x17, 0x74, 0x59, 0x0a,
+ 0xb9, 0xe5, 0xca, 0x3e, 0x49, 0x53, 0x37, 0xe2, 0x3c, 0xdf, 0x4e, 0x58, 0x3f, 0xda, 0x88, 0xe8,
+ 0x70, 0x41, 0xaa, 0x1a, 0x88, 0xdf, 0x98, 0x3f, 0x3e, 0x13, 0xf6, 0x79, 0x08, 0x49, 0x84, 0x8b,
+ 0xbc, 0x6f, 0x3e, 0x86, 0xe6, 0x9e, 0x58, 0x25, 0xf7, 0x0b, 0xac, 0x31, 0x5f, 0x30, 0x77, 0x53,
+ 0x34, 0x5b, 0x67, 0x6e, 0x13, 0xe0, 0xd8, 0x88, 0x79, 0x1b, 0xc0, 0x41, 0x84, 0xdf, 0xd5, 0xc3,
+ 0x6a, 0x8d, 0x78, 0x2d, 0x60, 0xaf, 0xf4, 0x7b, 0xe3, 0xff, 0x96, 0xb8, 0x4a, 0xc7, 0x0f, 0x0b,
+ 0x48, 0x80, 0xff, 0x17, 0xcc, 0x51, 0xd4, 0xc1, 0x21, 0xfb, 0x8d, 0xa4, 0x0c, 0x8c, 0xc6, 0x2f,
+ 0x5f, 0x2a, 0x44, 0xda, 0x50, 0x19, 0x8e, 0xa7, 0x73, 0x61, 0xdd, 0xe4, 0x6f, 0x45, 0xe9, 0xef,
+ 0x8f, 0x85, 0x1b, 0xa1, 0x1c, 0x1f, 0x68, 0xc2, 0x54, 0x0d, 0x5b, 0x23, 0x3a, 0xbf, 0x3b, 0x65,
+ 0x69, 0x4a, 0x95, 0x45, 0x05, 0x55, 0xd1, 0x87, 0x1b, 0xb3, 0xc8, 0x9f, 0x6a, 0x20, 0x5a, 0x62,
+ 0x9a, 0x14, 0x16, 0x9d, 0xc6, 0xfb, 0xb5, 0x0c, 0x17, 0x5e, 0xde, 0x59, 0xd8, 0xcc, 0x72, 0xeb,
+ 0xda, 0x78, 0x74, 0xc8, 0xd1, 0x5f, 0x38, 0x28, 0x72, 0x07, 0x81, 0x15, 0x95, 0xed, 0xef, 0x3f,
+ 0xfd, 0xff, 0x07, 0x4a, 0xd2, 0x6c, 0x77, 0x55, 0x7b, 0xd7, 0x78, 0x60, 0xb3, 0x4c, 0xd9, 0xa0,
+ 0x39, 0x3d, 0x0e, 0x94, 0x67, 0xd8, 0xee, 0xaa, 0xf6, 0x6d, 0xf0, 0xc0, 0xa5, 0x98, 0x71, 0x83,
+ 0xa5, 0x64, 0x01, 0xd9, 0x6b, 0x14, 0x11, 0x9d, 0xd2, 0xab, 0x92, 0xd7, 0x3d, 0x59, 0xa9, 0xba,
+ 0xfc, 0x03, 0x5c, 0xd3, 0xf1, 0x3a, 0xd5, 0x01, 0x92, 0x52, 0xf3, 0x7d, 0x12, 0x11, 0xea, 0x87,
+ 0xe0, 0x82, 0x97, 0x34, 0xd3, 0x7d, 0xf3, 0x7e, 0x7c, 0x26, 0x2f, 0xf2, 0x10, 0x92, 0xcb, 0xd5,
+ 0x0c, 0x9a, 0x32, 0x63, 0x57, 0x6e, 0x94, 0x76, 0x66, 0xf3, 0xbb, 0x9c, 0x80, 0x1a, 0x97, 0x67,
+ 0x57, 0xc6, 0xd9, 0x98, 0x8b, 0xec, 0xd7, 0x42, 0x37, 0xc3, 0x0f, 0x0c, 0x2e, 0xe8, 0xb2, 0x14,
+ 0x54, 0x01, 0x34, 0xf0, 0xee, 0x16, 0xf2, 0xbe, 0xcf, 0x8f, 0x51, 0x2b, 0x0e, 0x0f, 0xe7, 0x7d,
+ 0x8d, 0xbe, 0xad, 0x50, 0x5a, 0xb3, 0xef, 0x6a, 0x45, 0xc4, 0x8e, 0x19, 0xbb, 0x05, 0x5d, 0x2b,
+ 0xd2, 0x94, 0xe9, 0x8a, 0x0a, 0xaa, 0x61, 0xcd, 0x36, 0xa5, 0x53, 0xfd, 0xd4, 0x40, 0xb4, 0xc4,
+ 0xf7, 0x28, 0x2c, 0xf9, 0x4f, 0x35, 0xa9, 0x18, 0x2e, 0xbc, 0x7f, 0xb2, 0x73, 0x5b, 0xe4, 0x15,
+ 0x5e, 0xd6, 0x1f, 0x43, 0x73, 0x4f, 0x2c, 0xf3, 0x9a, 0xe4, 0x56, 0xf9, 0xce, 0x18, 0xda, 0xc8,
+ 0xf9, 0x89, 0xa8, 0x6b, 0x5e, 0xf7, 0xba, 0xc6, 0x59, 0x86, 0x11, 0x14, 0x72, 0xfb, 0x15, 0x3c,
+ 0xf2, 0xa2, 0xd8, 0x41, 0xe0, 0xf8, 0xc6, 0xdf, 0xe5, 0x68, 0x9d, 0xdb, 0x13, 0xb1, 0x1b, 0xae,
+ 0xe3, 0x45, 0x7a, 0x5c, 0xb6, 0x87, 0xd6, 0x82, 0x84, 0x6a, 0x71, 0xd5, 0x30, 0x75, 0x9e, 0xbc,
+ 0x3b, 0x06, 0xb8, 0x65, 0x21, 0x74, 0x69, 0x02, 0xe7, 0xa4, 0x25, 0xfa, 0x24, 0x22, 0x17, 0xcd,
+ 0x03, 0xc7, 0xed, 0x68, 0x65, 0xfa, 0x25, 0xfc, 0xf8, 0x4c, 0x5e, 0x27, 0x20, 0xe7, 0x55, 0x69,
+ 0xa1, 0x12, 0xae, 0xf8, 0xe7, 0x8f, 0xdc, 0x0e, 0xf0, 0xfa, 0xfb, 0xa3, 0xfc, 0xee, 0x65, 0x26,
+ 0x96, 0x8e, 0x24, 0xfe, 0x91, 0x95, 0x21, 0x7a, 0x71, 0xad, 0x65, 0xc5, 0x58, 0xd6, 0xe5, 0x8c,
+ 0xaa, 0x39, 0xde, 0xd2, 0x59, 0x80, 0xa0, 0x17, 0x4c, 0x14, 0x77, 0x6c, 0x9d, 0xa4, 0x6b, 0xb4,
+ 0x9f, 0x9e, 0xe2, 0x25, 0x69, 0x36, 0xda, 0xcb, 0xdc, 0x8a, 0x3c, 0x30, 0xb8, 0x26, 0x8d, 0x50,
+ 0x46, 0x21, 0x7b, 0x85, 0xdd, 0x93, 0xc7, 0x1f, 0x56, 0xc1, 0xe3, 0x02, 0x0d, 0x2c, 0x37, 0x06,
+ 0x41, 0x90, 0x39, 0xcc, 0x34, 0xf2, 0x2f, 0x70, 0x8c, 0xdc, 0xd4, 0x51, 0xec, 0x7c, 0xae, 0xf3,
+ 0x2a, 0xe1, 0x1a, 0x78, 0x77, 0x0b, 0x79, 0x5f, 0x86, 0xa6, 0xc9, 0xf4, 0x07, 0xe6, 0x92, 0xdf,
+ 0x60, 0x5a, 0x53, 0x9e, 0xfd, 0xf6, 0x2a, 0x36, 0xb6, 0x94, 0x91, 0x6a, 0x8a, 0xd0, 0x32, 0xbe,
+ 0xe5, 0x08, 0x63, 0x8c, 0x7c, 0xb0, 0x9c, 0xb9, 0xb7, 0xf2, 0xcd, 0x9b, 0x70, 0x78, 0x34, 0x6e,
+ 0x94, 0xb5, 0x92, 0x0f, 0xd7, 0x39, 0xa6, 0xd2, 0x60, 0x64, 0xb0, 0xff, 0xd9, 0x6c, 0x83, 0xc2,
+ 0xbe, 0x54, 0x88, 0x77, 0xa0, 0x32, 0xdf, 0x8d, 0xe6, 0xc2, 0x79, 0x0b, 0xde, 0x8a, 0x11, 0x1d,
+ 0x90, 0xc3, 0x3d, 0x2e, 0x5b, 0xa2, 0x6b, 0x41, 0x42, 0x35, 0xd9, 0x8b, 0x18, 0xdb, 0x4f, 0x5e,
+ 0x2f, 0x6b, 0xee, 0xc0, 0xd8, 0xc6, 0x16, 0x98, 0x4d, 0x72, 0x2b, 0x9d, 0x67, 0x0c, 0x6d, 0x64,
+ 0x9d, 0xa5, 0x54, 0xd4, 0x2f, 0x9a, 0x5d, 0x63, 0xcd, 0x43, 0xe9, 0x0a, 0x39, 0x9c, 0xeb, 0x1e,
+ 0x81, 0x24, 0x9f, 0x33, 0x0d, 0xdd, 0x7b, 0x1c, 0x23, 0x37, 0x35, 0x85, 0x3b, 0x1f, 0xca, 0x4c,
+ 0xa2, 0xd5, 0x43, 0x90, 0x82, 0x75, 0xf9, 0xf2, 0x08, 0xb6, 0xa5, 0x84, 0xdc, 0x09, 0x30, 0x4f,
+ 0x76, 0x0c, 0xb3, 0xca, 0x42, 0xe8, 0xd2, 0x04, 0x0d, 0x8b, 0x4a, 0x37, 0x48, 0x44, 0x2e, 0x59,
+ 0x4b, 0x47, 0x12, 0x7f, 0xa9, 0xab, 0xf1, 0x3d, 0xd9, 0xb7, 0xd3, 0x83, 0x2c, 0x6b, 0x93, 0x46,
+ 0xe4, 0xf4, 0x38, 0x15, 0x5f, 0xe6, 0x3e, 0xed, 0x5e, 0x77, 0x46, 0x86, 0xd1, 0x25, 0x07, 0x49,
+ 0x06, 0x4d, 0x19, 0xd0, 0xca, 0x37, 0x4a, 0x3b, 0x33, 0x98, 0xbc, 0x4e, 0x40, 0x0d, 0xaa, 0xd2,
+ 0x55, 0xfd, 0x6f, 0x69, 0xcd, 0x40, 0x50, 0xea, 0x26, 0x0a, 0xda, 0x36, 0xaf, 0x52, 0xd4, 0x5a,
+ 0xae, 0x4f, 0x71, 0xf3, 0xd5, 0x1b, 0x6d, 0x84, 0x6e, 0x45, 0x1e, 0x18, 0x5c, 0x13, 0xa7, 0x28,
+ 0x1c, 0x81, 0xcb, 0xe7, 0x22, 0x47, 0x26, 0x7f, 0xee, 0x74, 0xdc, 0x8f, 0x02, 0x83, 0x21, 0x52,
+ 0x75, 0xcb, 0x5e, 0xa2, 0x27, 0x12, 0xf7, 0xf8, 0xf5, 0xc7, 0x14, 0x10, 0x68, 0xa3, 0x7b, 0x30,
+ 0x5b, 0x5c, 0xeb, 0xfb, 0xdc, 0x82, 0x43, 0x34, 0x51, 0x30, 0xb4, 0x90, 0xae, 0xf2, 0x25, 0x73,
+ 0x04, 0x76, 0xaf, 0x21, 0x8c, 0x9b, 0xcd, 0x93, 0x22, 0x51, 0x69, 0x74, 0xc1, 0xb7, 0xcc, 0x9c,
+ 0x27, 0x87, 0x73, 0x82, 0x03, 0x33, 0x4f, 0x7d, 0x09, 0xd0, 0xf9, 0x75, 0x26, 0xa1, 0x36, 0x9f,
+ 0x4d, 0x0a, 0x0b, 0xaf, 0x63, 0x9c, 0xbb, 0x06, 0xea, 0x2f, 0x6f, 0xcd, 0x6c, 0x66, 0x39, 0x94,
+ 0x9c, 0x59, 0x0f, 0x4d, 0x0c, 0xcc, 0xff, 0x37, 0x24, 0xc6, 0x62, 0x17, 0x98, 0xc1, 0xd8, 0x39,
+ 0x20, 0x36, 0x31, 0xcb, 0xea, 0x52, 0xa7, 0x12, 0xd3, 0xcd, 0xce, 0x26, 0xc7, 0xf1, 0xaf, 0x6a,
+ 0x53, 0xb0, 0x76, 0xb9, 0x07, 0x77, 0x1a, 0xd1, 0x15, 0x92, 0x66, 0x78, 0xef, 0x5f, 0x7e, 0x88,
+ 0xd0, 0xaf, 0x5f, 0x7b, 0x4c, 0x06, 0xe6, 0x65, 0x27, 0x6c, 0x86, 0xc7, 0x55, 0xfa, 0xd2, 0x8a,
+ 0x95, 0x49, 0xc9, 0x96, 0xf4, 0x6f, 0x04, 0x86, 0x89, 0xe1, 0x3b, 0xe2, 0x78, 0x31, 0xb0, 0xe5,
+ 0xf3, 0x5e, 0x83, 0xd8, 0xc3, 0xae, 0x64, 0x8b, 0x0c, 0xed, 0x16, 0xc6, 0xb2, 0xec, 0x28, 0x89,
+ 0x85, 0x52, 0x30, 0x12, 0x81, 0x46, 0xb6, 0x8f, 0x01, 0x66, 0x5c, 0xf1, 0xfa, 0xa8, 0x06, 0xd0,
+ 0x88, 0x34, 0x59, 0xe8, 0xf5, 0x7e, 0x80, 0xad, 0x8e, 0x10, 0x6c, 0x70, 0xdb, 0xef, 0xa2, 0x90,
+ 0xb0, 0xf5, 0x0c, 0xe5, 0xb1, 0xf0, 0xcc, 0x53, 0x91, 0xf8, 0x17, 0xad, 0xdf, 0x2a, 0xe0, 0x34,
+ 0x22, 0x0d, 0x87, 0x3a, 0xac, 0xfe, 0x20, 0xba, 0xc2, 0x04, 0x1b, 0x1c, 0x46, 0x4b, 0xc9, 0x24,
+ 0x0b, 0x2b, 0x70, 0x2a, 0xbe, 0x0f, 0x7c, 0x19, 0xbc, 0xee, 0x8c, 0xcf, 0x61, 0x4a, 0x0e, 0x92,
+ 0x02, 0x3b, 0xb6, 0xf1, 0x46, 0xac, 0x87, 0xa8, 0x11, 0xc9, 0xd5, 0x3a, 0x81, 0xba, 0x66, 0x4e,
+ 0xc9, 0xa4, 0x60, 0x24, 0xc1, 0x8c, 0xaf, 0xdd, 0x02, 0xcc, 0xb8, 0x21, 0x37, 0x93, 0x0c, 0x63,
+ 0xdb, 0x84, 0x2f, 0x51, 0xf2, 0x09, 0x9a, 0x7c, 0x9b, 0x82, 0x0a, 0x08, 0x34, 0xb0, 0xdc, 0x18,
+ 0xb6, 0xb8, 0x15, 0x35, 0x7b, 0xc7, 0x86, 0x68, 0xa2, 0x60, 0xab, 0xe3, 0x9f, 0x27, 0x4a, 0xe6,
+ 0x40, 0x6c, 0x62, 0x55, 0x17, 0xa4, 0x8d, 0x24, 0x65, 0x59, 0x5f, 0x4c, 0x4d, 0x21, 0x9d, 0xd4,
+ 0x4e, 0xcd, 0xe6, 0xc7, 0x06, 0x66, 0x9e, 0xfa, 0x12, 0x63, 0x31, 0xea, 0x4c, 0x81, 0x6c, 0xfd,
+ 0xd7, 0x1e, 0x1d, 0x32, 0xa5, 0x67, 0x0e, 0x0a, 0xfd, 0x71, 0xb1, 0x94, 0xb4, 0xaa, 0x4b, 0x7f,
+ 0xab, 0xc5, 0x85, 0x4b, 0x7a, 0xd6, 0x02, 0x43, 0xa5, 0x91, 0xfc, 0x71, 0x3c, 0xf9, 0x58, 0x93,
+ 0x98, 0x2f, 0xa0, 0x6c, 0x80, 0x57, 0x32, 0xa4, 0x06, 0x97, 0x0b, 0x63, 0x59, 0x76, 0x14, 0xa5,
+ 0xc8, 0x58, 0x3b, 0xbd, 0xe2, 0xda, 0x0d, 0x89, 0xeb, 0x49, 0x33, 0x3c, 0x96, 0xce, 0x3f, 0x44,
+ 0xaf, 0xb3, 0x2a, 0x6a, 0xf6, 0x4d, 0xcf, 0xd0, 0x87, 0xc0, 0x95, 0x05, 0xfd, 0x4e, 0x94, 0x0f,
+ 0xa3, 0x29, 0x18, 0x09, 0xa1, 0x23, 0x5b, 0xa6, 0xe1, 0x33, 0x2e, 0x99, 0x7d, 0x54, 0x03, 0x68,
+ 0x44, 0x1a, 0xcd, 0x74, 0x9b, 0x3f, 0x40, 0xb7, 0x47, 0x08, 0x36, 0x38, 0x8c, 0x96, 0x51, 0x48,
+ 0x84, 0xae, 0x6b, 0x8b, 0xa2, 0x10, 0x14, 0xdb, 0xe8, 0xe3, 0xd7, 0xec, 0x5b, 0xf5, 0x35, 0xf7,
+ 0x9e, 0x62, 0xb9, 0xbc, 0x4a, 0x60, 0x78, 0x9f, 0x35, 0x0f, 0xb7, 0x2d, 0x19, 0x7b, 0xbe, 0x77,
+ 0xe2, 0xb9, 0x21, 0xc5, 0x95, 0xd1, 0x74, 0xd6, 0x6d, 0xef, 0xfa, 0xc8, 0x91, 0x28, 0xad, 0x9b,
+ 0xcd, 0xd2, 0xcf, 0x05, 0x4d, 0x17, 0x62, 0x4e, 0x20, 0x9d, 0xd1, 0x55, 0xf6, 0x24, 0xc0, 0xff,
+ 0xfb, 0xb2, 0x1e, 0x9a, 0x18, 0x5b, 0x3d, 0x6e, 0x48, 0x4f, 0xc4, 0x2e, 0xf3, 0x41, 0x73, 0x72,
+ 0x45, 0xe6, 0x96, 0xed, 0xb8, 0x69, 0xe2, 0xe3, 0xae, 0x8d, 0xbd, 0x25, 0x2d, 0xcb, 0x62, 0x6f,
+ 0x23, 0xf1, 0xdc, 0xa3, 0x8f, 0xa8, 0x82, 0xee, 0x2b, 0x81, 0x90, 0x01, 0xe7, 0x16, 0xfa, 0x03,
+ 0xc6, 0xf9, 0xbf, 0x2f, 0xf3, 0x18, 0x1e, 0x57, 0x9c, 0x73, 0x5d, 0x9a, 0x97, 0x6e, 0xce, 0x6d,
+ 0x3d, 0x4b, 0xa1, 0xb5, 0xeb, 0x43, 0x23, 0x39, 0xd4, 0x3c, 0x99, 0xb4, 0x64, 0x2f, 0xbd, 0x1f,
+ 0x17, 0xaa, 0xbb, 0xcd, 0x9c, 0x48, 0x5a, 0x66, 0x52, 0x9a, 0x50, 0x40, 0x63, 0xc9, 0x2f, 0xc0,
+ 0xeb, 0xa9, 0xe7, 0x1e, 0x6d, 0x72, 0x8f, 0x67, 0xc0, 0xc8, 0xa3, 0x3d, 0x71, 0xd8, 0xc5, 0x47,
+ 0x2e, 0x97, 0xb5, 0x59, 0xfb, 0x90, 0xb4, 0xcc, 0xa4, 0xf7, 0xa0, 0x80, 0xc6, 0x51, 0x5e, 0x43,
+ 0xcb, 0x9f, 0xd6, 0xd5, 0x87, 0x20, 0x28, 0x75, 0x13, 0x05, 0x6d, 0x1b, 0xb6, 0x29, 0x6a, 0x2d,
+ 0xb2, 0xce, 0xba, 0x14, 0xf7, 0x5c, 0x4b, 0xfb, 0x80, 0x31, 0xc2, 0x97, 0x5e, 0x90, 0x86, 0x7a,
+ 0x5c, 0xed, 0xa9, 0xb2, 0x35, 0xe3, 0xab, 0x5b, 0x8b, 0x2d, 0x83, 0xc3, 0x4f, 0xa2, 0xbc, 0x86,
+ 0x4a, 0xbb, 0x49, 0xe6, 0x8a, 0xfd, 0x53, 0x69, 0x30, 0x32, 0x58, 0x9e, 0x8d, 0x36, 0xa0, 0x61,
+ 0x64, 0x2c, 0xfc, 0xbf, 0x71, 0x6d, 0xe7, 0xa5, 0x94, 0xc5, 0xf8, 0x1e, 0x4b, 0x67, 0xfe, 0x22,
+ 0x71, 0xbd, 0xf1, 0x83, 0xab, 0x89, 0x3a, 0x6b, 0xd7, 0x96, 0x7d, 0x64, 0xa9, 0x14, 0xb7, 0xac,
+ 0x35, 0xa7, 0x3c, 0xf7, 0x30, 0xb6, 0x7a, 0xdc, 0x90, 0x9e, 0x4b, 0x5c, 0x25, 0x82, 0xe6, 0xe4,
+ 0xc7, 0x05, 0xe4, 0xb6, 0xd0, 0x4e, 0xbc, 0x03, 0x75, 0xf6, 0xd6, 0x87, 0x36, 0x33, 0xfd, 0x4a,
+ 0x07, 0xb1, 0x42, 0x49, 0xe9, 0x61, 0xe8, 0x6f, 0xda, 0x1d, 0x37, 0x53, 0xe1, 0x50, 0x99, 0xf5,
+ 0x59, 0x67, 0x5d, 0x0a, 0x9a, 0x2e, 0xc4, 0x9c, 0x40, 0xf9, 0x61, 0xaa, 0x2f, 0x48, 0x43, 0x3d,
+ 0x38, 0xc1, 0x55, 0x0d, 0x44, 0x8e, 0x4c, 0xfe, 0x1f, 0xe8, 0x7b, 0xdd, 0x04, 0xc5, 0x42, 0xa4,
+ 0xea, 0x55, 0xbc, 0x87, 0x4e, 0x24, 0x2d, 0x33, 0x29, 0x4d, 0x28, 0x20, 0xd0, 0x85, 0xf6, 0x60,
+ 0x37, 0x9c, 0x8a, 0x06, 0x76, 0x1a, 0xfd, 0x74, 0x81, 0x57, 0x9e, 0x66, 0xa4, 0x38, 0x80, 0xaa,
+ 0x63, 0x9d, 0xbe, 0xf6, 0x98, 0x0c, 0x0f, 0xca, 0x4e, 0xd8, 0xcf, 0x4d, 0xaa, 0x37, 0x67, 0xd7,
+ 0x18, 0xf7, 0x64, 0xc6, 0xae, 0xdc, 0xeb, 0xec, 0xcc, 0x25, 0xb5, 0xfb, 0xc3, 0x34, 0xed, 0xce,
+ 0xa7, 0x5f, 0xb7, 0x28, 0x2d, 0xb8, 0x96, 0x35, 0xc3, 0x62, 0x47, 0xed, 0xbc, 0xe3, 0xcf, 0xf4,
+ 0x58, 0x9b, 0x06, 0x93, 0xb9, 0x78, 0x66, 0xc8, 0xa9, 0x7c, 0xea, 0xb7, 0x8e, 0x15, 0x70, 0x1a,
+ 0x11, 0xe7, 0xa2, 0x1d, 0x56, 0x7f, 0x10, 0x5d, 0x61, 0x02, 0xec, 0x0e, 0x23, 0xc4, 0x85, 0x12,
+ 0xf5, 0x13, 0x9a, 0x08, 0x09, 0x99, 0x2e, 0xb0, 0x3f, 0x75, 0xaa, 0x88, 0xf2, 0xe1, 0x82, 0x5b,
+ 0xd9, 0xbf, 0x99, 0xa0, 0xb4, 0xa5, 0x1d, 0xd4, 0x8a, 0x4b, 0xdf, 0x32, 0xb5, 0x0a, 0xba, 0x56,
+ 0xe9, 0x92, 0x51, 0xef, 0x2b, 0xde, 0x08, 0xcf, 0xd1, 0x01, 0x76, 0x07, 0xf0, 0x62, 0xa3, 0x09,
+ 0x25, 0xbc, 0xc5, 0x73, 0x45, 0x9f, 0xc8, 0xd5, 0x18, 0x19, 0x2c, 0x4f, 0xa7, 0x1b, 0x50, 0xd1,
+ 0xf8, 0x75, 0xf3, 0xf2, 0x7d, 0xa1, 0x18, 0x92, 0xb0, 0x03, 0x9a, 0x09, 0xd3, 0xa6, 0x26, 0x1b,
+ 0x97, 0x72, 0x7f, 0x67, 0xb2, 0xc3, 0x83, 0x2e, 0x98, 0x28, 0xee, 0xd8, 0xf9, 0x8b, 0xd6, 0xab,
+ 0xb1, 0x09, 0x57, 0x7c, 0x92, 0xa6, 0x6e, 0x07, 0x78, 0x7d, 0x9c, 0xb0, 0x7e, 0x77, 0xd3, 0x13,
+ 0x19, 0x0b, 0x3f, 0x5f, 0x8d, 0x8a, 0x49, 0xb8, 0x25, 0xa0, 0x3e, 0xe6, 0x62, 0x69, 0xde, 0xe9,
+ 0x0f, 0x5d, 0xdf, 0x0b, 0x32, 0x94, 0xb1, 0x8a, 0x9e, 0xbf, 0xe5, 0xbb, 0xa0, 0xfd, 0xc2, 0x0e,
+ 0x89, 0xc8, 0x02, 0x71, 0xd6, 0x28, 0x22, 0xf9, 0x67, 0x95, 0xe7, 0x6d, 0x7a, 0xb2, 0x91, 0xb7,
+ 0xdc, 0x35, 0x6d, 0x18, 0x1b, 0x68, 0x72, 0x13, 0x41, 0x9f, 0x3d, 0x5b, 0xd5, 0xe0, 0x45, 0xed,
+ 0x08, 0xec, 0x9d, 0x42, 0xdb, 0xf5, 0x59, 0xe5, 0x44, 0xa2, 0xd2, 0xe8, 0x41, 0xad, 0x5b, 0xfb,
+ 0xf1, 0x65, 0x35, 0x29, 0x85, 0x02, 0xe3, 0x23, 0x1d, 0x24, 0xc3, 0xfc, 0x33, 0x56, 0x4e, 0xc7,
+ 0xa8, 0x02, 0x68, 0x23, 0x1f, 0x2c, 0x27, 0xbf, 0x5d, 0xdd, 0xa2, 0x56, 0x1c, 0x1e, 0x0d, 0xfa,
+ 0x0e, 0xa1, 0x84, 0x92, 0x11, 0xc2, 0x13, 0xde, 0x77, 0x3a, 0x6e, 0xa6, 0x01, 0xa0, 0xf1, 0x29,
+ 0x6f, 0x07, 0x8c, 0x95, 0xcf, 0x62, 0x9b, 0xbc, 0x28, 0x2b, 0x74, 0xd1, 0x2a, 0x2d, 0xf0, 0xb0,
+ 0x7d, 0x27, 0xc3, 0xe0, 0xfc, 0xe7, 0xae, 0x1d, 0xb1, 0x65, 0xc6, 0xf8, 0x29, 0x0e, 0x20, 0xcb,
+ 0xd4, 0xd9, 0xf0, 0x5a, 0xc0, 0x9d, 0x2b, 0xf6, 0x05, 0x3d, 0xef, 0xb3, 0x94, 0x4d, 0x1e, 0x16,
+ 0xbd, 0x93, 0x65, 0x1f, 0xc5, 0xc8, 0xfa, 0x71, 0x1e, 0x8e, 0x27, 0x2c, 0xfe, 0x6d, 0x44, 0x74,
+ 0x86, 0x95, 0xdd, 0x7a, 0xe4, 0xbc, 0x93, 0x73, 0xf9, 0x2a, 0x02, 0xd6, 0xda, 0x4f, 0x53, 0xb9,
+ 0xec, 0x18, 0xa5, 0x57, 0x84, 0x13, 0x67, 0x08, 0x1a, 0xd5, 0x94, 0x6e, 0x90, 0x88, 0x5c, 0xb2,
+ 0x32, 0x16, 0x7e, 0xbe, 0xd9, 0xd7, 0x92, 0xb3, 0x4a, 0x83, 0x7c, 0x0f, 0xc4, 0xd2, 0x7f, 0x11,
+ 0x7e, 0xe0, 0x2e, 0x88, 0x99, 0x1d, 0x8b, 0xe1, 0x49, 0x29, 0x98, 0xdf, 0x09, 0xe9, 0x75, 0xa2,
+ 0xed, 0xe4, 0xfe, 0xce, 0xa7, 0x45, 0xc5, 0x5c, 0xf3, 0x50, 0x1f, 0x73, 0x31, 0xd5, 0x6f, 0x95,
+ 0x6e, 0xfb, 0xd7, 0x0c, 0xec, 0x34, 0x39, 0xe8, 0xc1, 0xae, 0xff, 0xcc, 0x8b, 0x70, 0xc3, 0x97,
+ 0xc3, 0x73, 0x4b, 0x97, 0x5c, 0xd5, 0x71, 0x90, 0x57, 0xa7, 0xbf, 0xf3, 0xf7, 0x84, 0x31, 0xd6,
+ 0x21, 0xca, 0x6a, 0x52, 0xc9, 0x04, 0x05, 0x46, 0x3a, 0x48, 0x45, 0x3b, 0x66, 0xac, 0x9c, 0x4d,
+ 0x62, 0x61, 0xe5, 0x6f, 0xbb, 0x5a, 0xad, 0x9e, 0xa7, 0x5d, 0x44, 0x50, 0x0b, 0x6a, 0x54, 0xf0,
+ 0xce, 0x15, 0x22, 0x6d, 0x28, 0xed, 0x47, 0xb2, 0xd8, 0xd1, 0x8f, 0x72, 0xd6, 0xc3, 0x95, 0x96,
+ 0x93, 0x04, 0xd0, 0x46, 0x3e, 0x58, 0x4e, 0xbd, 0xba, 0x79, 0x87, 0xac, 0x38, 0x3c, 0x1a, 0x37,
+ 0x4c, 0xf6, 0x50, 0x36, 0x40, 0xca, 0x19, 0x52, 0x03, 0xaa, 0xe4, 0xd0, 0xcd, 0x3b, 0x0a, 0xb3,
+ 0xde, 0x0e, 0xdb, 0xe9, 0x5d, 0xc4, 0xf5, 0xbb, 0x50, 0x56, 0xe8, 0x61, 0x54, 0x5a, 0x23, 0xa3,
+ 0x3f, 0x70, 0x17, 0x44, 0xad, 0xef, 0xa4, 0x91, 0xc5, 0xf5, 0x4c, 0x8e, 0xe5, 0x95, 0xdb, 0x51,
+ 0x43, 0xab, 0x8f, 0x3d, 0x72, 0x5e, 0xa8, 0xd8, 0x9d, 0x15, 0x01, 0x6b, 0x6d, 0xc6, 0xc8, 0xbd,
+ 0x73, 0x86, 0x47, 0x72, 0xed, 0x25, 0xbd, 0xc3, 0xc6, 0x5f, 0xa8, 0x5e, 0x28, 0xae, 0xd1, 0xe2,
+ 0xad, 0x88, 0x9c, 0x9b, 0xb0, 0xe1, 0x48, 0x78, 0x96, 0x09, 0x40, 0x3f, 0x7c, 0xf4, 0xf2, 0x41,
+ 0xf0, 0x99, 0x6e, 0xb0, 0xa6, 0x54, 0x41, 0x77, 0xf4, 0xa1, 0x48, 0xe1, 0x92, 0x0b, 0x7d, 0xe0,
+ 0x47, 0xdd, 0x20, 0x1c, 0xfe, 0xc5, 0x65, 0x4b, 0xbf, 0x44, 0x68, 0x1f, 0xac, 0x71, 0x04, 0x21,
+ 0x3c, 0xb7, 0xfa, 0x2c, 0xc8, 0x15, 0x81, 0x6d, 0x3d, 0xb9, 0x12, 0xa9, 0xc5, 0x72, 0x8e, 0x38,
+ 0x61, 0xa6, 0x08, 0x07, 0xde, 0xa0, 0x88, 0x62, 0x5f, 0x11, 0x1a, 0x77, 0x2b, 0x8d, 0x01, 0x99,
+ 0x56, 0x3a, 0x82, 0x01, 0xa8, 0xba, 0x75, 0x16, 0xde, 0x46, 0x84, 0x11, 0x8f, 0xb5, 0x81, 0x33,
+ 0x29, 0x26, 0xf7, 0x10, 0x12, 0xf1, 0x5c, 0xa3, 0x7e, 0xea, 0x97, 0xd3, 0x27, 0x01, 0xc7, 0xb6,
+ 0x7b, 0x6a, 0xda, 0x30, 0x36, 0xd0, 0xe4, 0x26, 0x82, 0xfd, 0x7a, 0xb6, 0x69, 0x03, 0x8a, 0x19,
+ 0x10, 0x1b, 0xf9, 0x84, 0x75, 0x29, 0xb2, 0x09, 0x88, 0x87, 0x67, 0x13, 0x82, 0x99, 0xb6, 0x35,
+ 0xff, 0xc4, 0xb1, 0xbb, 0x94, 0xc0, 0xf0, 0xfd, 0x6a, 0x1e, 0xad, 0x5a, 0x32, 0xf6, 0xbf, 0xee,
+ 0x5d, 0x11, 0xf2, 0x2b, 0x16, 0xb5, 0x09, 0x0f, 0x62, 0xa8, 0x08, 0xde, 0xee, 0xff, 0x8f, 0xa1,
+ 0x31, 0xd1, 0x93, 0xd6, 0xbc, 0x2d, 0xb7, 0x4f, 0xb2, 0xcf, 0x22, 0x28, 0xe4, 0x35, 0x2a, 0x78,
+ 0xb7, 0x44, 0x4e, 0xac, 0x58, 0x91, 0x24, 0x3c, 0x4b, 0xe5, 0x20, 0xfe, 0x3e, 0x7a, 0x79, 0xc1,
+ 0xb3, 0x32, 0xe1, 0x8d, 0xd4, 0x0a, 0xe9, 0xaf, 0x69, 0xb4, 0x49, 0x8a, 0xff, 0xcd, 0xb5, 0x5d,
+ 0x6b, 0x71, 0x23, 0xb4, 0x43, 0xf9, 0x56, 0x2f, 0x0a, 0x7a, 0x1d, 0xa5, 0xeb, 0x9a, 0x3c, 0x2c,
+ 0xc0, 0xb4, 0xa6, 0xff, 0x39, 0x2f, 0x54, 0x6c, 0xaf, 0xeb, 0xe1, 0xd4, 0xd7, 0x63, 0x64, 0xbf,
+ 0x7f, 0x1c, 0x75, 0x11, 0xba, 0x4b, 0x29, 0xb5, 0xa0, 0xac, 0x13, 0xc2, 0xa8, 0xb4, 0x46, 0x85,
+ 0x1e, 0xba, 0x7d, 0x16, 0x64, 0xeb, 0xa1, 0xd7, 0xff, 0xbd, 0x09, 0xb5, 0x83, 0x39, 0x47, 0x1c,
+ 0xd1, 0x53, 0x04, 0xe2, 0x6f, 0x50, 0x44, 0x31, 0xce, 0xe9, 0x0d, 0xda, 0xf4, 0xa7, 0xe1, 0xad,
+ 0x78, 0xad, 0x37, 0x58, 0x53, 0x2a, 0xc1, 0xda, 0x7a, 0xb1, 0x24, 0x91, 0x49, 0xe4, 0xdf, 0x70,
+ 0xc2, 0x8f, 0x10, 0x0e, 0x7f, 0x83, 0xd3, 0xc4, 0xbe, 0x22, 0x34, 0xee, 0x56, 0xd9, 0x02, 0xf1,
+ 0xbb, 0xde, 0x7c, 0xcf, 0x0f, 0xff, 0xb0, 0x4a, 0x2d, 0x16, 0x9b, 0x62, 0xbe, 0x60, 0xee, 0xa6,
+ 0x6d, 0x3c, 0x3a, 0x64, 0x89, 0xce, 0x1c, 0x14, 0x39, 0xe2, 0xa1, 0xeb, 0xab, 0x97, 0x96, 0xfe,
+ 0xe1, 0x7e, 0xcc, 0xad, 0xf0, 0x2b, 0x51, 0x2a, 0x95, 0xa3, 0xa4, 0xef, 0xb1, 0xcf, 0xf8, 0xf2,
+ 0x1f, 0x46, 0x26, 0x8f, 0x47, 0xbd, 0x03, 0x83, 0x16, 0x38, 0x82, 0xa8, 0x22, 0x64, 0x74, 0x3b,
+ 0x82, 0xe3, 0x72, 0x5b, 0x68, 0x27, 0x5e, 0xe0, 0xdb, 0x7b, 0x6b, 0xa2, 0x1b, 0xf8, 0x9f, 0x25,
+ 0xba, 0x22, 0x27, 0x56, 0x2c, 0xa9, 0x12, 0x1e, 0xc4, 0x93, 0x10, 0x7f, 0x1f, 0x3d, 0xdd, 0x81,
+ 0x8c, 0x42, 0xf6, 0xc9, 0x79, 0xe5, 0x4d, 0x3e, 0xac, 0x41, 0x05, 0x04, 0x1a, 0x58, 0x6e, 0x0c,
+ 0xcf, 0xe9, 0x79, 0xf4, 0x0b, 0xbb, 0xe5, 0xe6, 0x31, 0x54, 0x04, 0x6f, 0x77, 0x9e, 0xa6, 0xb1,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xfe, 0x38, 0xea, 0x22, 0xb7, 0x96, 0x52, 0xa9, 0x83, 0x9b, 0x26, 0x47, 0x93, 0xab, 0x8c, 0xc9,
+ 0x42, 0x57, 0xd4, 0xa4, 0x51, 0x08, 0x0a, 0x8c, 0x74, 0x90, 0x8a, 0x76, 0xcc, 0x9b, 0xfb, 0x9a,
+ 0xd6, 0xe2, 0x46, 0xab, 0x86, 0x31, 0xac, 0x5e, 0x14, 0xf4, 0x3a, 0x89, 0x15, 0xf7, 0x78, 0x58,
+ },
+ { /* 7 */
+ 0xa5, 0x9d, 0x85, 0x46, 0x8a, 0x0e, 0x61, 0xc4, 0x42, 0xe7, 0xb4, 0xca, 0xc0, 0x3d, 0xf4, 0xe8,
+ 0x2d, 0x30, 0x7c, 0xb1, 0xb2, 0x96, 0xab, 0x86, 0x12, 0x3f, 0xbc, 0x10, 0x25, 0xe6, 0x1e, 0xf1,
+ 0x32, 0xb3, 0x29, 0xf1, 0xe6, 0xb1, 0x53, 0x61, 0xca, 0xf8, 0xa0, 0xd0, 0x5a, 0xc4, 0x96, 0x37,
+ 0x8f, 0xc2, 0x69, 0x55, 0xf0, 0x82, 0xf2, 0x7d, 0x39, 0xb6, 0xe7, 0xff, 0x11, 0x3a, 0xe8, 0x2f,
+ 0x0e, 0xde, 0xe3, 0x87, 0x53, 0x34, 0x70, 0x7e, 0xd2, 0xdc, 0x1d, 0x4a, 0x2b, 0x01, 0x04, 0x6c,
+ 0x30, 0x1b, 0x49, 0x07, 0xfb, 0x7a, 0x43, 0x73, 0xa1, 0x91, 0x25, 0x09, 0xd5, 0x45, 0xd7, 0x23,
+ 0x38, 0xfe, 0x0a, 0x59, 0x8f, 0xd0, 0x03, 0x3b, 0xce, 0xf6, 0x74, 0xeb, 0xac, 0x04, 0x10, 0x73,
+ 0xc0, 0x6c, 0xe7, 0x1c, 0x6a, 0x2b, 0xcf, 0x0f, 0xc1, 0x01, 0x94, 0x24, 0xd2, 0xd7, 0xda, 0x8c,
+ 0x54, 0xbe, 0x1b, 0x26, 0xf4, 0xdb, 0xe5, 0xb1, 0xf6, 0xa2, 0xa6, 0x6a, 0x61, 0x0e, 0x38, 0x4d,
+ 0xe6, 0x45, 0x88, 0x7e, 0x5e, 0x58, 0x3c, 0xda, 0x03, 0xe5, 0x5f, 0x82, 0xa7, 0x50, 0x83, 0x33,
+ 0x9e, 0x9f, 0xdf, 0x92, 0xf7, 0x91, 0x7a, 0xe4, 0x33, 0xad, 0xe6, 0x75, 0x45, 0x19, 0x64, 0x85,
+ 0x39, 0xaa, 0x3a, 0x22, 0x60, 0x54, 0x0b, 0x32, 0x1a, 0x23, 0xd7, 0x66, 0x0a, 0xa5, 0xd1, 0x79,
+ 0x55, 0xea, 0x2b, 0x5d, 0x1b, 0x5f, 0xed, 0xb8, 0x22, 0x77, 0x05, 0xe7, 0xc7, 0xaf, 0xf9, 0x47,
+ 0x7e, 0xe1, 0xf7, 0x35, 0x8e, 0x57, 0x76, 0x08, 0x8d, 0xf3, 0xf5, 0x5f, 0xb0, 0x09, 0x24, 0x8a,
+ 0x52, 0x85, 0xbb, 0xff, 0xd3, 0x45, 0xd5, 0x87, 0x4b, 0x19, 0xea, 0xc2, 0x33, 0x4e, 0xfb, 0x71,
+ 0x91, 0x15, 0x0c, 0x6e, 0x4b, 0x21, 0x02, 0x93, 0x35, 0xa4, 0x58, 0xb2, 0xc8, 0xb9, 0xa1, 0xe3,
+ 0x64, 0xa5, 0x52, 0x21, 0x0f, 0xa1, 0xa6, 0xc2, 0x57, 0x33, 0x83, 0x63, 0xb4, 0x4b, 0xef, 0x6e,
+ 0x03, 0xfc, 0x50, 0x8d, 0xf2, 0x4f, 0x18, 0x1b, 0xbf, 0xbc, 0x26, 0x54, 0x29, 0x20, 0x80, 0x1e,
+ 0x57, 0x42, 0x4b, 0xab, 0x06, 0x94, 0xfd, 0xaa, 0x49, 0x1e, 0x80, 0x3e, 0x48, 0x2e, 0xb8, 0x53,
+ 0x5a, 0x60, 0xf8, 0xa1, 0xa7, 0xef, 0x95, 0xcf, 0x24, 0x7e, 0xbb, 0x20, 0x4a, 0x0f, 0x3c, 0x21,
+ 0x1c, 0x7f, 0x05, 0xcd, 0xa6, 0x68, 0xe0, 0xfc, 0x67, 0x7b, 0x3a, 0x94, 0x56, 0x02, 0x08, 0xd8,
+ 0x60, 0x36, 0x92, 0x0e, 0x35, 0xf4, 0x86, 0xe6, 0x81, 0xe1, 0x4a, 0x12, 0x69, 0x8a, 0x6d, 0x46,
+ 0x07, 0x6f, 0x90, 0xa2, 0xc8, 0x1a, 0x38, 0x3f, 0x69, 0x6e, 0xef, 0x25, 0xf4, 0xe1, 0x02, 0x36,
+ 0x18, 0xec, 0xc5, 0xe2, 0x9c, 0x3d, 0xc0, 0xd8, 0xb1, 0xa9, 0xf3, 0xe5, 0x8b, 0xc3, 0x8a, 0xf0,
+ 0x21, 0x46, 0xff, 0xc0, 0xfc, 0x69, 0xcb, 0xea, 0xab, 0x8a, 0x24, 0x83, 0x81, 0x66, 0x5b, 0x89,
+ 0x72, 0x97, 0x74, 0x44, 0xc0, 0xa8, 0x16, 0x64, 0x34, 0x46, 0x6d, 0xcc, 0x14, 0x89, 0x61, 0xf2,
+ 0xa8, 0xbf, 0x36, 0x4c, 0x2b, 0x75, 0x09, 0xa1, 0x2f, 0x87, 0x8f, 0xd4, 0xc2, 0x1c, 0x70, 0x9a,
+ 0xd1, 0x31, 0x51, 0xdb, 0x6d, 0x38, 0x47, 0x96, 0xcb, 0x1a, 0x95, 0xae, 0x86, 0xf4, 0x56, 0x26,
+ 0x29, 0xa3, 0xbc, 0x9e, 0x88, 0xc3, 0x8b, 0xa2, 0xc4, 0xed, 0x75, 0x61, 0xf8, 0x27, 0x9c, 0xd9,
+ 0xc6, 0x57, 0x47, 0xc5, 0x4d, 0xb5, 0xff, 0x39, 0x7c, 0xba, 0xd8, 0x8c, 0x80, 0x97, 0x19, 0xb0,
+ 0xa4, 0xc9, 0xb5, 0x3d, 0x65, 0x8a, 0x69, 0xcd, 0x96, 0x32, 0x17, 0x47, 0x66, 0x9c, 0x35, 0xe2,
+ 0x3f, 0x91, 0x9a, 0xfb, 0x47, 0xca, 0x3b, 0x04, 0xa7, 0x98, 0x9b, 0xce, 0x58, 0xe5, 0x12, 0x45,
+ 0xe0, 0x7e, 0x28, 0xa7, 0x79, 0xc6, 0x0c, 0xec, 0xbe, 0x5e, 0x13, 0x2a, 0xf5, 0x10, 0x40, 0x0f,
+ 0x27, 0x7d, 0x5f, 0x19, 0xdb, 0xf7, 0xfb, 0xdc, 0x16, 0x31, 0x68, 0x2b, 0xd3, 0x26, 0x98, 0xb5,
+ 0x8d, 0x6a, 0x09, 0xa3, 0xed, 0x49, 0xe2, 0x6f, 0x52, 0xdf, 0x62, 0x26, 0x9e, 0xbb, 0xa9, 0x3b,
+ 0x0c, 0x76, 0x83, 0x71, 0x4e, 0xff, 0x60, 0x6c, 0xb9, 0xb5, 0x98, 0x93, 0xa4, 0x80, 0x45, 0x78,
+ 0x82, 0xe0, 0xda, 0x5f, 0x51, 0xf9, 0x9a, 0x18, 0x54, 0xd6, 0xdc, 0xe1, 0x13, 0x1b, 0x6c, 0x5d,
+ 0xea, 0x33, 0x0b, 0x0f, 0x10, 0xa7, 0x5c, 0xb6, 0xba, 0x50, 0xc7, 0x11, 0x03, 0xd0, 0xc6, 0x4b,
+ 0xae, 0x84, 0x96, 0x95, 0x0c, 0xeb, 0x39, 0x97, 0x92, 0x3c, 0xc3, 0x7c, 0x90, 0x5c, 0xb3, 0xa6,
+ 0xb4, 0xc0, 0x33, 0x81, 0x8d, 0x1d, 0xe9, 0x5d, 0x48, 0xfc, 0xb5, 0x40, 0x94, 0x1e, 0x78, 0x42,
+ 0x9a, 0x0c, 0x1f, 0xbd, 0xcd, 0xc4, 0x5a, 0xc0, 0xe5, 0x7f, 0x2f, 0x04, 0x98, 0xd8, 0xe6, 0xad,
+ 0x63, 0xca, 0xc2, 0x83, 0xc7, 0xbb, 0x9e, 0xfd, 0x3e, 0x5d, 0x6c, 0x46, 0x40, 0xaa, 0xed, 0x58,
+ 0x49, 0x95, 0x2e, 0x90, 0xbd, 0x37, 0x0d, 0x44, 0x45, 0x0c, 0x3f, 0x73, 0x91, 0xad, 0xf1, 0x9f,
+ 0xe5, 0xb9, 0xd8, 0xf3, 0xac, 0x17, 0x24, 0xc1, 0xbc, 0x59, 0x79, 0xd6, 0x8e, 0x70, 0x03, 0x2d,
+ 0x42, 0x8c, 0x3d, 0x43, 0x3b, 0xd2, 0x55, 0x17, 0x95, 0xd7, 0x48, 0xc5, 0xc1, 0xcc, 0xb6, 0xd1,
+ 0xe4, 0xed, 0xe8, 0x88, 0x43, 0x93, 0x2c, 0xc8, 0x68, 0x8c, 0xda, 0x5b, 0x28, 0xd1, 0xc2, 0x27,
+ 0x15, 0xce, 0x76, 0xe8, 0x3d, 0x46, 0xa8, 0xbd, 0xdc, 0xc9, 0xc8, 0xfb, 0x89, 0xe2, 0x0e, 0x82,
+ 0xb7, 0x3c, 0x63, 0x0c, 0x7f, 0x52, 0xf1, 0x46, 0xf7, 0x40, 0x93, 0x14, 0xbd, 0x3e, 0xf8, 0x5c,
+ 0xc8, 0x89, 0xa4, 0x42, 0x1e, 0x81, 0x8f, 0x47, 0xae, 0x66, 0xc5, 0xc6, 0xab, 0x96, 0x1d, 0xdc,
+ 0x06, 0x3b, 0xa0, 0xd9, 0x27, 0x9e, 0x30, 0x36, 0xbd, 0xbb, 0x4c, 0xa8, 0x52, 0x40, 0xc3, 0x3c,
+ 0x70, 0x3f, 0x14, 0xb2, 0xdd, 0x63, 0x06, 0x76, 0x5f, 0x2f, 0xe8, 0x15, 0x9b, 0x08, 0x20, 0xe6,
+ 0x9d, 0x63, 0x8f, 0x1f, 0x05, 0xde, 0x62, 0xff, 0x8c, 0x11, 0xc0, 0x21, 0x6c, 0x39, 0xe4, 0x9b,
+ 0x41, 0x70, 0x6d, 0xce, 0xc9, 0x9d, 0x4d, 0x0c, 0x2a, 0x6b, 0x6e, 0x91, 0xe8, 0xec, 0x36, 0xcf,
+ 0x75, 0xf8, 0xe4, 0xe6, 0x08, 0xb2, 0x2e, 0x5b, 0x5d, 0x28, 0x82, 0xe9, 0xe0, 0x68, 0x63, 0xc4,
+ 0x19, 0xb8, 0xf5, 0x99, 0x73, 0xb9, 0xc8, 0xd1, 0x65, 0x7c, 0x50, 0x68, 0x2d, 0x62, 0x4b, 0xfa,
+ 0xc9, 0xdd, 0x94, 0x39, 0xf1, 0x05, 0x87, 0x4e, 0x7a, 0xb3, 0x66, 0x4b, 0x0d, 0x37, 0xdc, 0xd6,
+ 0xaa, 0x17, 0x56, 0xba, 0x36, 0xbe, 0x19, 0xb3, 0x44, 0xee, 0x0a, 0x0d, 0x4d, 0x9d, 0x31, 0x8e,
+ 0xfc, 0x01, 0x2d, 0x6a, 0xdf, 0xae, 0xec, 0x10, 0xd9, 0x25, 0x29, 0xbe, 0xa3, 0x12, 0x48, 0xd7,
+ 0x4d, 0x06, 0xee, 0xbf, 0x87, 0x62, 0x2d, 0x60, 0x93, 0xde, 0xf6, 0x02, 0x4c, 0x6c, 0x73, 0xb7,
+ 0xbf, 0xd9, 0x20, 0x52, 0x0b, 0xf8, 0xb1, 0x0e, 0x98, 0x27, 0xc2, 0xf6, 0xc4, 0x7f, 0x3f, 0x0c,
+ 0x2a, 0x5f, 0xec, 0x13, 0x7a, 0x8c, 0x93, 0xb9, 0x7b, 0x51, 0x53, 0x35, 0xd1, 0x07, 0x1c, 0xc7,
+ 0x73, 0xc3, 0x44, 0x3f, 0x2f, 0x2c, 0x1e, 0x6d, 0xe0, 0x93, 0xce, 0x41, 0xb2, 0x28, 0xa0, 0xf8,
+ 0x84, 0xdb, 0x7a, 0x86, 0x76, 0x67, 0xaa, 0x2e, 0xe9, 0x6d, 0x90, 0x49, 0x41, 0x5b, 0xaf, 0x61,
+ 0xd5, 0xa2, 0x91, 0xf4, 0x57, 0x6d, 0x67, 0xb2, 0x1d, 0xc8, 0x5c, 0xdf, 0x5b, 0x35, 0xd4, 0x0e,
+ 0xc3, 0x90, 0xb7, 0x91, 0x98, 0x64, 0xd7, 0x14, 0x7e, 0xbd, 0xb2, 0x70, 0xfb, 0xf7, 0x5a, 0x92,
+ 0xaf, 0xd0, 0xa6, 0xee, 0xe3, 0x6f, 0x31, 0x9e, 0x46, 0xe9, 0x60, 0xf1, 0x36, 0xfd, 0x72, 0xac,
+ 0x2b, 0x0b, 0xdc, 0x68, 0x95, 0x08, 0x9b, 0xb0, 0xaf, 0x84, 0xf0, 0xb8, 0x77, 0xa6, 0xdd, 0xcd,
+ 0x86, 0x73, 0x1a, 0x70, 0x6b, 0xac, 0xba, 0x3c, 0x82, 0x04, 0x15, 0x90, 0xce, 0xda, 0xee, 0x75,
+ 0xa7, 0x35, 0xe5, 0xb0, 0x97, 0xc5, 0x71, 0xd6, 0x29, 0x8e, 0x31, 0x13, 0x4f, 0xbc, 0xb5, 0xfc,
+ 0xb1, 0x07, 0xc3, 0xd5, 0x58, 0xcc, 0xc1, 0x70, 0x4a, 0xfb, 0xdf, 0xbc, 0xef, 0x7e, 0x3b, 0x60,
+ 0xb2, 0xfb, 0x93, 0x58, 0xaa, 0x83, 0xd9, 0x6b, 0xf5, 0x47, 0xf9, 0xe8, 0xc6, 0x5e, 0xbb, 0x7e,
+ 0x5b, 0x34, 0xc8, 0xda, 0x48, 0x6b, 0x9d, 0xc6, 0xf0, 0xab, 0x18, 0xad, 0xec, 0xae, 0xfd, 0x2b,
+ 0x46, 0x1f, 0xfd, 0x6c, 0x01, 0x87, 0x75, 0x33, 0x43, 0x05, 0x81, 0xb4, 0x1c, 0x0d, 0x34, 0xf9,
+ 0xd3, 0x99, 0x31, 0x2d, 0x70, 0xf3, 0x57, 0x84, 0xa0, 0x73, 0x10, 0x77, 0x09, 0x75, 0x17, 0x32,
+ 0x9f, 0xcb, 0xef, 0xe9, 0x18, 0x15, 0x72, 0xed, 0xe7, 0x78, 0x45, 0xf8, 0xe3, 0xb8, 0xa5, 0x8f,
+ 0xfd, 0x55, 0x1d, 0x11, 0x30, 0x2a, 0xe4, 0x19, 0x0d, 0xf0, 0x8a, 0x33, 0x05, 0xb3, 0x89, 0xdd,
+ 0xd4, 0xf6, 0xa1, 0x8f, 0xb8, 0xe9, 0x6f, 0xbb, 0xc9, 0x1d, 0xff, 0x52, 0xfd, 0x94, 0x15, 0x04,
+ 0x0f, 0x8a, 0xd3, 0xfc, 0xbc, 0xb0, 0x78, 0x77, 0x06, 0x09, 0xbe, 0xc7, 0x8d, 0xa0, 0xc5, 0x66,
+ 0x9c, 0x37, 0xbf, 0x64, 0xea, 0x5a, 0x6a, 0xf6, 0x58, 0xc4, 0x63, 0xac, 0xca, 0x98, 0x25, 0x91,
+ 0x2f, 0x98, 0x1c, 0x47, 0xaf, 0x5d, 0xbb, 0x94, 0x79, 0x56, 0x39, 0xc9, 0xaa, 0x67, 0x5f, 0xe5,
+ 0x9b, 0x58, 0x2f, 0xc6, 0x22, 0x40, 0x52, 0xc9, 0x31, 0xaa, 0x8c, 0x89, 0x3e, 0x79, 0x27, 0xa7,
+ 0x43, 0xd8, 0x0d, 0x38, 0xd4, 0x56, 0x5d, 0x1e, 0x41, 0x02, 0xeb, 0x48, 0x67, 0x6d, 0x77, 0xdb,
+ 0xef, 0xf4, 0xfb, 0x5b, 0xc5, 0x76, 0x74, 0x9b, 0xb8, 0x57, 0xad, 0xed, 0x78, 0xb0, 0x85, 0x69,
+ 0xd9, 0xd4, 0x12, 0x85, 0x19, 0x92, 0x07, 0xde, 0xa4, 0x7d, 0xc4, 0x4c, 0xff, 0xb5, 0x91, 0x76,
+ 0x79, 0x8e, 0x67, 0x97, 0x46, 0x4d, 0x4e, 0x37, 0xe4, 0x9d, 0x1a, 0x7a, 0x44, 0xe8, 0x26, 0xbc,
+ 0xb6, 0x68, 0x53, 0x77, 0x90, 0xd6, 0xf9, 0x4f, 0x23, 0x95, 0x30, 0x99, 0x1b, 0x9f, 0x39, 0x56,
+ 0x53, 0xd1, 0x8b, 0x84, 0x3c, 0xc1, 0xdd, 0x8e, 0x9f, 0xcc, 0x49, 0x4f, 0x95, 0xef, 0x3a, 0x7b,
+ 0x7f, 0xb5, 0xc7, 0x4e, 0x61, 0xd3, 0x7e, 0x01, 0x59, 0x26, 0x56, 0xd2, 0x16, 0xa8, 0xe5, 0x80,
+ 0xc1, 0x38, 0xd7, 0x67, 0x85, 0xaf, 0xc7, 0x06, 0x15, 0xd4, 0x37, 0xa9, 0x74, 0x76, 0x1b, 0x86,
+ 0xf0, 0x77, 0xae, 0x1b, 0x91, 0x51, 0x8c, 0x7c, 0x60, 0x90, 0xb1, 0x2d, 0x07, 0x92, 0x0d, 0xaf,
+ 0x23, 0xee, 0x9f, 0x36, 0xe1, 0xa2, 0xdb, 0xf8, 0xc0, 0xe3, 0xa1, 0x5a, 0x0e, 0xe7, 0x1a, 0x9d,
+ 0xe7, 0x11, 0xb8, 0x05, 0xb1, 0xdc, 0x34, 0xd3, 0xd7, 0x30, 0xfc, 0x0f, 0x01, 0xf1, 0x42, 0x39,
+ 0x25, 0xd5, 0x3f, 0xef, 0xc6, 0x3c, 0xeb, 0xce, 0x7d, 0x58, 0xed, 0xf2, 0x5c, 0xa7, 0xd9, 0xa1,
+ 0x5e, 0xf3, 0x38, 0x8e, 0x9d, 0xba, 0xb5, 0xeb, 0xf2, 0xac, 0x72, 0x51, 0x97, 0xce, 0xbe, 0x09,
+ 0xb5, 0x94, 0x03, 0xfa, 0x62, 0x99, 0xe1, 0x54, 0x9c, 0x29, 0x16, 0xcd, 0x32, 0xbf, 0xb9, 0x48,
+ 0x1e, 0xd7, 0x65, 0x3b, 0xbb, 0xa3, 0xf0, 0xee, 0x0c, 0x12, 0xbf, 0x4d, 0xd9, 0x83, 0x49, 0xcc,
+ 0xa2, 0xf2, 0x15, 0xe4, 0x42, 0x14, 0x59, 0xfb, 0x2b, 0x89, 0x5b, 0xef, 0x34, 0xdc, 0xf6, 0xde,
+ 0xdf, 0xef, 0xb2, 0x5c, 0x3e, 0x0c, 0x37, 0xe8, 0x19, 0xc6, 0x88, 0xe4, 0xad, 0xf5, 0x52, 0x4a,
+ 0xa6, 0x61, 0xd5, 0xcb, 0x78, 0x41, 0x79, 0xdf, 0xfd, 0x5b, 0x92, 0x9e, 0xe9, 0x1d, 0x74, 0xf6,
+ 0xfe, 0xa9, 0x4d, 0x9c, 0xc2, 0x65, 0xfc, 0x02, 0xb2, 0x4c, 0xac, 0x67, 0x2c, 0x93, 0x09, 0xc3,
+ 0xac, 0x2c, 0xf6, 0x63, 0x11, 0x20, 0x29, 0x85, 0xf9, 0x55, 0x46, 0xa5, 0x1f, 0xdd, 0xf2, 0xb2,
+ 0x22, 0xba, 0xaf, 0x4d, 0x0e, 0x26, 0xd3, 0xf1, 0x14, 0x36, 0x02, 0xd7, 0xa8, 0x46, 0xdb, 0x97,
+ 0xf9, 0xc6, 0xdd, 0x3e, 0x0a, 0x7f, 0xc4, 0x3d, 0xdb, 0x22, 0x43, 0x42, 0xd8, 0x72, 0x0b, 0xf5,
+ 0xe2, 0xd6, 0x48, 0x51, 0x64, 0x0d, 0x1c, 0xfe, 0xd5, 0x37, 0x96, 0xf3, 0x7a, 0x91, 0x01, 0x1b,
+ 0x4a, 0x69, 0x7e, 0x1d, 0x4f, 0x78, 0x15, 0x5f, 0xfa, 0xb0, 0x19, 0x27, 0xb8, 0x8d, 0x71, 0x81,
+ 0xbc, 0x25, 0x70, 0xdf, 0xf9, 0xb7, 0xa9, 0x15, 0x27, 0x9b, 0xe4, 0xa2, 0xed, 0x5f, 0xbf, 0x12,
+ 0x35, 0xdc, 0xb9, 0x53, 0x2e, 0xab, 0x6b, 0x5e, 0xa3, 0x96, 0x4f, 0xf5, 0xae, 0x25, 0x94, 0x01,
+ 0xca, 0x21, 0xc4, 0xb4, 0x03, 0x4a, 0x9f, 0x55, 0xc5, 0x0f, 0x40, 0x1f, 0x24, 0x17, 0x5c, 0xc8,
+ 0xee, 0xa0, 0xcb, 0x20, 0x2a, 0xf2, 0x7c, 0x92, 0x6c, 0x82, 0x0e, 0x60, 0xde, 0x11, 0x44, 0x63,
+ 0x78, 0xda, 0x57, 0xec, 0xa9, 0xc9, 0x46, 0x3e, 0x30, 0x48, 0xb9, 0xf7, 0xe2, 0x49, 0xe7, 0xb6,
+ 0x05, 0xc7, 0xf0, 0x54, 0xd5, 0xd1, 0x28, 0x2d, 0x02, 0x07, 0x6a, 0xfc, 0x7b, 0x60, 0x43, 0x22,
+ 0x6b, 0x2f, 0x81, 0xdd, 0xb3, 0x11, 0xde, 0xb5, 0x51, 0x3a, 0x3d, 0xa4, 0x39, 0xeb, 0x2a, 0x08,
+ 0x51, 0x79, 0xeb, 0x72, 0x21, 0x0a, 0xcd, 0x9c, 0xf4, 0xa5, 0xcc, 0x96, 0x1a, 0x6e, 0x7b, 0x6f,
+ 0xe1, 0x2a, 0x18, 0xdc, 0x96, 0x42, 0x04, 0xe5, 0x6a, 0x8b, 0xb0, 0xa7, 0x53, 0xb1, 0x81, 0x05,
+ 0x59, 0x9c, 0xa8, 0x2c, 0x55, 0xa0, 0x8d, 0xd4, 0x9b, 0xc2, 0x9d, 0x74, 0x63, 0x2f, 0xbc, 0x3f,
+ 0xa3, 0xa6, 0x25, 0x9f, 0xad, 0x90, 0x51, 0xf2, 0xff, 0x5c, 0xf8, 0x62, 0x92, 0x7d, 0x37, 0xd4,
+ 0xf2, 0xdf, 0xce, 0xed, 0x8c, 0x9a, 0x9c, 0x6e, 0x0b, 0xf9, 0x34, 0xf4, 0x88, 0x13, 0x4c, 0xbb,
+ 0x71, 0x6b, 0x24, 0xc9, 0x32, 0xe7, 0x0e, 0x7f, 0x8b, 0xfa, 0x4b, 0x98, 0x3d, 0xa9, 0xe1, 0xec,
+ 0x56, 0x16, 0x7b, 0xd0, 0xe9, 0x10, 0xf5, 0xa3, 0x9d, 0xcb, 0x23, 0xb3, 0xee, 0x8f, 0x79, 0x59,
+ 0x11, 0x5d, 0xb6, 0xc7, 0x07, 0x13, 0x88, 0x99, 0x0a, 0x1b, 0x01, 0x8a, 0x54, 0x23, 0x8c, 0xaa,
+ 0x6a, 0x7b, 0xb1, 0xa6, 0x5c, 0x95, 0xd6, 0xbc, 0x85, 0xef, 0x9e, 0x29, 0x9f, 0x4a, 0xeb, 0x02,
+ 0x89, 0xf9, 0xc9, 0x8c, 0xd7, 0x1c, 0xc2, 0x4b, 0x84, 0x0d, 0xab, 0x57, 0x43, 0x7a, 0x2b, 0x13,
+ 0x94, 0xd2, 0xfc, 0x3a, 0x9e, 0xf0, 0x2a, 0xbe, 0x37, 0xa3, 0x32, 0x4e, 0xb3, 0xd9, 0xe2, 0xc1,
+ 0x65, 0xf1, 0x62, 0x5a, 0xe0, 0x25, 0xae, 0xcb, 0x83, 0xe6, 0x20, 0xee, 0x12, 0xea, 0x2e, 0x64,
+ 0x8c, 0x3e, 0x39, 0xd8, 0x02, 0xcd, 0xea, 0x66, 0x86, 0x0a, 0xc1, 0xab, 0x38, 0x1a, 0x68, 0x31,
+ 0xbb, 0x4a, 0xe0, 0x7d, 0x31, 0xad, 0x91, 0x2a, 0x4e, 0xf5, 0x0b, 0x87, 0x19, 0xbe, 0xbd, 0x24,
+ 0x77, 0x50, 0x84, 0x10, 0x15, 0x79, 0x3e, 0x49, 0x36, 0x41, 0x07, 0x30, 0x6f, 0xe9, 0x22, 0xd0,
+ 0x3c, 0x6d, 0xca, 0x76, 0xb5, 0x85, 0x23, 0x1f, 0x18, 0x24, 0xbd, 0x9a, 0x71, 0xc5, 0x92, 0x5b,
+ 0x7b, 0x26, 0x07, 0x61, 0x5b, 0x86, 0x5e, 0x25, 0x8f, 0xf4, 0x9f, 0xa3, 0xcb, 0x69, 0x67, 0xa8,
+ 0x28, 0xf7, 0x8c, 0xe5, 0x67, 0x47, 0x83, 0xab, 0x10, 0x38, 0xd6, 0xec, 0x5e, 0x86, 0x5d, 0xd3,
+ 0xab, 0x43, 0x66, 0xc1, 0xd9, 0x3a, 0x11, 0xba, 0x90, 0x3b, 0xa9, 0x80, 0xeb, 0x3c, 0xf0, 0x84,
+ 0xd2, 0xcd, 0x01, 0x56, 0x9f, 0x77, 0x5f, 0x8d, 0x74, 0xa6, 0xb3, 0xfa, 0xaf, 0xd4, 0xd6, 0x38,
+ 0x31, 0x4f, 0x79, 0x7c, 0x14, 0xfe, 0x4b, 0x7a, 0x75, 0x44, 0x86, 0x84, 0x73, 0xe4, 0x16, 0x29,
+ 0xde, 0xbb, 0x82, 0x27, 0xd1, 0x88, 0x3f, 0xe1, 0xcd, 0x13, 0x2b, 0x69, 0x0b, 0x54, 0x93, 0x40,
+ 0xc4, 0xff, 0x27, 0x33, 0x50, 0x7e, 0xef, 0x2b, 0x17, 0xd3, 0x5d, 0x55, 0x0f, 0x16, 0x58, 0xa4,
+ 0x5f, 0xa7, 0x08, 0xf5, 0x72, 0x3e, 0xbd, 0xe2, 0x26, 0x79, 0xd1, 0xdc, 0x31, 0x6f, 0x7f, 0x03,
+ 0xcc, 0x1a, 0x64, 0x6d, 0x24, 0xd4, 0xaf, 0x63, 0x78, 0xb4, 0x0c, 0xb7, 0x76, 0x57, 0x9f, 0xf4,
+ 0xcf, 0xe6, 0x34, 0xe0, 0xd6, 0x9b, 0xb7, 0x78, 0xc7, 0x08, 0x2a, 0xe3, 0x5f, 0x77, 0x1f, 0xea,
+ 0x76, 0x04, 0xb4, 0x6b, 0xfa, 0xfd, 0x36, 0x40, 0xe2, 0x94, 0xa4, 0xbd, 0xc9, 0x48, 0xe3, 0xda,
+ 0x2c, 0x64, 0x4c, 0xca, 0x5d, 0x12, 0xa3, 0x8f, 0xc6, 0xea, 0x1f, 0x9d, 0x83, 0x47, 0xdf, 0xfb,
+ 0xb8, 0xb6, 0xb0, 0xf0, 0xc3, 0xe2, 0x89, 0x31, 0xf1, 0x49, 0x2d, 0xd3, 0x30, 0x9e, 0x3d, 0x3a,
+ 0xd8, 0x80, 0x22, 0xfe, 0xf6, 0x16, 0x0f, 0xd7, 0x70, 0xa8, 0x67, 0xc1, 0x59, 0x14, 0x50, 0x7c,
+ 0x2e, 0xcc, 0x2c, 0x3c, 0x40, 0xd9, 0xb3, 0x9d, 0xad, 0x83, 0x9a, 0x44, 0x0c, 0xc6, 0x9e, 0xef,
+ 0x36, 0x20, 0xe9, 0xde, 0xdc, 0xe4, 0x73, 0x45, 0x1c, 0x2a, 0x69, 0xa1, 0x87, 0x05, 0x14, 0x1f,
+ 0xdb, 0x7c, 0x72, 0x73, 0x04, 0x59, 0x17, 0xcc, 0xcf, 0x14, 0x41, 0x95, 0x70, 0x34, 0xd0, 0x62,
+ 0x69, 0x87, 0xe1, 0x2b, 0xae, 0xda, 0xce, 0xa7, 0x3a, 0x53, 0xb8, 0x7d, 0xb6, 0x6a, 0x6b, 0x1c,
+ 0xb3, 0xaf, 0xa3, 0x23, 0x45, 0x07, 0xd1, 0x62, 0x21, 0x92, 0x5a, 0x65, 0x60, 0xff, 0x7a, 0x74,
+ 0x14, 0x9a, 0x46, 0x93, 0xd2, 0xc2, 0xa0, 0xb4, 0x08, 0x1c, 0x6b, 0x76, 0x2f, 0x43, 0xcf, 0x88,
+ 0x95, 0x86, 0xcc, 0x41, 0x71, 0x74, 0x22, 0xb7, 0xe3, 0x76, 0x91, 0xc3, 0x15, 0x78, 0x23, 0xcb,
+ 0xbe, 0x8d, 0x10, 0x29, 0xe4, 0x7c, 0xb9, 0x07, 0x4c, 0xf2, 0x61, 0x7b, 0x62, 0xde, 0xfe, 0x06,
+ 0x62, 0x9e, 0xf2, 0xf8, 0x28, 0x3f, 0x96, 0xf4, 0xea, 0x88, 0xcf, 0xcb, 0xe6, 0x0b, 0x2c, 0x52,
+ 0xa1, 0x0e, 0x45, 0x69, 0xb0, 0x5b, 0x41, 0xe0, 0x94, 0x35, 0x7d, 0xbb, 0x1d, 0xfc, 0x76, 0xc0,
+ 0x3b, 0x02, 0x5a, 0xd4, 0x7d, 0x9f, 0x1b, 0x20, 0x71, 0x4a, 0x52, 0xbf, 0x85, 0x24, 0x90, 0x6d,
+ 0x16, 0x32, 0x26, 0x65, 0xcf, 0x09, 0xb0, 0xa6, 0x63, 0x75, 0xee, 0xaf, 0xa0, 0xc2, 0x8e, 0x9c,
+ 0x66, 0x0d, 0x32, 0xd7, 0x12, 0x6a, 0xb6, 0xd0, 0x3c, 0x5a, 0x06, 0xba, 0x3b, 0xca, 0xae, 0x7a,
+ 0xe9, 0xcf, 0x5b, 0x82, 0xe2, 0xe8, 0x44, 0xad, 0x05, 0xec, 0xe1, 0x45, 0x2a, 0xf0, 0x46, 0x55,
+ 0x5c, 0x5b, 0x58, 0x78, 0x80, 0x71, 0xa5, 0xf9, 0x99, 0xc5, 0xf7, 0x88, 0x18, 0x4f, 0xff, 0x1d,
+ 0x6c, 0x40, 0x11, 0x7f, 0x7b, 0x0b, 0xe6, 0x8a, 0x38, 0x54, 0xd2, 0x81, 0xcd, 0x0a, 0x28, 0x3e,
+ 0x6d, 0x14, 0x21, 0x04, 0x94, 0x8f, 0xee, 0x83, 0xec, 0x81, 0x71, 0x0c, 0x6b, 0xab, 0xe9, 0x34,
+ 0xad, 0x78, 0xc6, 0x18, 0xfe, 0xa4, 0x21, 0x8c, 0x2d, 0x80, 0xe5, 0x28, 0xb9, 0x7c, 0x33, 0xb8,
+ 0x37, 0x74, 0xd9, 0xa5, 0x33, 0x60, 0x7b, 0x4c, 0xc8, 0xff, 0xca, 0x2c, 0x21, 0xa4, 0xd5, 0x15,
+ 0x61, 0x62, 0xa2, 0x75, 0xda, 0x70, 0x8e, 0xef, 0x55, 0x34, 0xe9, 0x9f, 0xcf, 0x2b, 0xac, 0x4c,
+ 0x4b, 0x3d, 0x4e, 0x66, 0xa0, 0xfc, 0x1d, 0x56, 0x2e, 0x65, 0xba, 0xaa, 0x1e, 0x2c, 0xb0, 0x8b,
+ 0xb9, 0xe2, 0x80, 0x8b, 0x2c, 0x66, 0x81, 0x38, 0x25, 0x9c, 0x8e, 0x5e, 0x96, 0x3f, 0xfc, 0x30,
+ 0xe3, 0x82, 0x78, 0x2a, 0x8b, 0x89, 0x14, 0xf7, 0x01, 0xe2, 0x35, 0x7e, 0xdc, 0x30, 0xc0, 0x11,
+ 0xba, 0x1e, 0xd0, 0x06, 0xde, 0x29, 0x99, 0x23, 0x9a, 0x20, 0xa8, 0x0a, 0xbf, 0x1f, 0x7c, 0x2e,
+ 0xf1, 0x23, 0x9e, 0x60, 0x7e, 0xd5, 0x84, 0x75, 0xb4, 0x45, 0x12, 0xa0, 0xa1, 0x33, 0xcc, 0xa5,
+ 0xa0, 0x5a, 0x75, 0x12, 0x5f, 0xdf, 0x49, 0xe9, 0x40, 0xe0, 0xde, 0x36, 0xbb, 0x5d, 0xb7, 0xca,
+ 0x85, 0x8f, 0x4a, 0xfd, 0x99, 0xe3, 0xa2, 0x27, 0x3d, 0xb8, 0x33, 0xc4, 0xe7, 0xfa, 0x6e, 0x6b,
+ 0x83, 0xb4, 0xea, 0x24, 0xbe, 0x7d, 0x92, 0x11, 0x80, 0x03, 0x7f, 0x6c, 0xb5, 0xba, 0xad, 0x57,
+ 0xda, 0x28, 0x42, 0x08, 0xeb, 0xdd, 0x1f, 0xc5, 0x1b, 0xc1, 0xe2, 0x18, 0xd6, 0x95, 0x11, 0x68,
+ 0x47, 0x4b, 0xcd, 0x17, 0xee, 0x03, 0x7d, 0x3a, 0x97, 0xd0, 0x22, 0x39, 0xba, 0xac, 0xf5, 0xf3,
+ 0xc5, 0xab, 0x17, 0x48, 0xbf, 0xfa, 0xe7, 0x22, 0xc3, 0x06, 0xfe, 0xd8, 0xa9, 0xb7, 0x99, 0xae,
+ 0xb0, 0x53, 0xf3, 0xae, 0xb7, 0x48, 0xc9, 0x79, 0x9e, 0x2e, 0x7c, 0x31, 0x49, 0xdf, 0xfa, 0x6a,
+ 0x33, 0xe7, 0x19, 0x8a, 0x09, 0x35, 0x5b, 0x68, 0x1e, 0x2d, 0x03, 0x5d, 0xfc, 0x65, 0x57, 0x3d,
+ 0xfa, 0x3a, 0x8d, 0xb3, 0xf8, 0x30, 0xdc, 0x26, 0x64, 0x9e, 0x65, 0x16, 0xf1, 0x52, 0x8b, 0xeb,
+ 0x96, 0x7a, 0x9c, 0xcc, 0x83, 0x3b, 0x3a, 0xac, 0x5c, 0xca, 0xb7, 0x97, 0x3c, 0x58, 0xa3, 0xd5,
+ 0x6f, 0xbc, 0x41, 0xf2, 0x89, 0x44, 0xfe, 0x91, 0x87, 0xe8, 0xf4, 0xd5, 0xe4, 0x2a, 0xa8, 0x20,
+ 0x6e, 0xe8, 0x71, 0x89, 0x66, 0xc0, 0xf6, 0x98, 0x53, 0x3d, 0x57, 0x58, 0x42, 0x8b, 0x69, 0x2a,
+ 0xc2, 0xc4, 0x87, 0xea, 0x77, 0xe0, 0xdf, 0x1d, 0xaa, 0x68, 0x11, 0xfd, 0x5d, 0x56, 0x9b, 0x98,
+ 0xf6, 0x4c, 0x0e, 0xc2, 0xb6, 0xcf, 0xbc, 0x4a, 0xdd, 0x2b, 0xfd, 0x85, 0x55, 0xd2, 0xce, 0x93,
+ 0x50, 0x2d, 0xdb, 0x09, 0xce, 0x8e, 0xc5, 0x95, 0x20, 0x70, 0x6f, 0x1b, 0xbc, 0xcf, 0xba, 0x65,
+ 0xff, 0xfd, 0x7d, 0xe7, 0x2d, 0xe1, 0xf4, 0x0b, 0x66, 0x99, 0x0f, 0xea, 0x8a, 0x32, 0xc8, 0xc9,
+ 0x5d, 0x0f, 0x68, 0x03, 0x6f, 0xf5, 0xad, 0xf0, 0x4d, 0x10, 0x54, 0x05, 0xbe, 0xee, 0x3e, 0x17,
+ 0xa9, 0xeb, 0x06, 0x37, 0xc4, 0xf1, 0x01, 0xa8, 0xfb, 0x52, 0x2c, 0x59, 0x64, 0xbd, 0xb1, 0x90,
+ 0x8e, 0x96, 0x59, 0x2e, 0x1f, 0x06, 0xfa, 0x74, 0xed, 0x63, 0x44, 0x72, 0xb7, 0x9b, 0x29, 0x25,
+ 0x17, 0x66, 0x16, 0x1e, 0x20, 0x8d, 0xb8, 0xaf, 0xb7, 0xa0, 0x4d, 0x22, 0x06, 0x63, 0x4f, 0x96,
+ 0x1b, 0x10, 0x95, 0x6f, 0x6e, 0x72, 0xd8, 0xc3, 0x0e, 0x15, 0xd5, 0xb1, 0xa2, 0xe3, 0x0a, 0xee,
+ 0x97, 0x2e, 0xac, 0xb7, 0x6c, 0xbf, 0x32, 0xa5, 0x88, 0x1f, 0x14, 0x1a, 0x9a, 0xf9, 0x62, 0xdf,
+ 0x7d, 0x1d, 0xa7, 0xb8, 0x7c, 0x18, 0x6e, 0x13, 0x32, 0x4f, 0xd3, 0x0b, 0x99, 0x29, 0xa4, 0x94,
+ 0xec, 0x08, 0xab, 0xd6, 0x37, 0x39, 0x6c, 0x80, 0x07, 0xeb, 0x8b, 0xb9, 0x51, 0x90, 0x05, 0x77,
+ 0x58, 0xc8, 0x98, 0x57, 0xba, 0x24, 0x85, 0xdd, 0x4f, 0x17, 0x3e, 0xf9, 0xc5, 0x8e, 0x7d, 0x35,
+ 0xf7, 0x18, 0x3e, 0xb9, 0x59, 0x4b, 0xb4, 0x43, 0x09, 0xfe, 0x5e, 0x08, 0xf3, 0x73, 0x0f, 0x99,
+ 0x1f, 0x83, 0x55, 0x40, 0x54, 0x27, 0xf8, 0xe7, 0xd8, 0xc7, 0x1c, 0xc0, 0x7f, 0x22, 0x88, 0xc6,
+ 0xfb, 0x6e, 0xbd, 0xc8, 0x17, 0xb4, 0xd4, 0x2f, 0xb0, 0x4b, 0xc6, 0x9b, 0x57, 0xf3, 0x4a, 0xe1,
+ 0x7c, 0x49, 0x97, 0xc3, 0x93, 0x9c, 0x66, 0x1a, 0xe6, 0x9a, 0x70, 0x86, 0x3f, 0x88, 0x65, 0x9e,
+ 0x09, 0xb1, 0x73, 0x25, 0x9b, 0x2e, 0x48, 0x41, 0xbb, 0xb2, 0xf2, 0x6f, 0xdf, 0xe0, 0x06, 0x5a,
+ 0x0d, 0x22, 0xb3, 0x0a, 0xa1, 0x7b, 0x68, 0x65, 0x6d, 0x60, 0x3b, 0x1e, 0x02, 0x21, 0x84, 0x72,
+ 0x7a, 0x72, 0x37, 0x1a, 0xb4, 0x02, 0x56, 0x2c, 0x5b, 0x21, 0x3c, 0x2e, 0x6d, 0xc8, 0xa6, 0xa2,
+ 0x67, 0x59, 0x02, 0xac, 0xfd, 0xee, 0xbe, 0xd9, 0xe8, 0x8f, 0xa5, 0x37, 0x9d, 0x6b, 0x6f, 0x70,
+ 0x45, 0xe3, 0xad, 0xe1, 0xf3, 0xc8, 0x6d, 0x28, 0xfc, 0xb9, 0xa7, 0xe0, 0x35, 0x2d, 0xb4, 0xe7,
+ 0x87, 0x27, 0x2a, 0x0b, 0x84, 0x28, 0xb2, 0x35, 0x56, 0xd1, 0xb6, 0x1d, 0x68, 0x7b, 0x2f, 0x7f,
+ 0xdc, 0x13, 0xe2, 0xd1, 0xcc, 0x43, 0x2f, 0xf3, 0xa6, 0x7a, 0xae, 0xb0, 0x84, 0xd5, 0xd2, 0x54,
+ 0xe8, 0x9b, 0x6b, 0xf9, 0x0d, 0x6c, 0x4c, 0xa4, 0xd1, 0x39, 0x42, 0xc8, 0x8c, 0x51, 0x87, 0x5f,
+ 0x4f, 0xae, 0x8e, 0x49, 0x9a, 0xa9, 0x3d, 0x72, 0xf8, 0xb7, 0x73, 0xdb, 0xc3, 0xed, 0x32, 0xa3,
+ 0x1d, 0x2b, 0x35, 0xb6, 0x49, 0xec, 0xe8, 0xf5, 0xb3, 0xae, 0x99, 0x19, 0xf0, 0xa3, 0xc9, 0xd2,
+ 0x4e, 0xfa, 0xbe, 0x32, 0x75, 0x2d, 0x35, 0x7b, 0x2c, 0x62, 0xd0, 0x56, 0x65, 0x4c, 0xf3, 0xa9,
+ 0x04, 0x93, 0xc0, 0x2f, 0x3a, 0x55, 0x20, 0x24, 0xd6, 0xd2, 0xc9, 0x71, 0xdd, 0xc1, 0x82, 0x28,
+ 0xeb, 0x67, 0x3b, 0x74, 0xff, 0x23, 0x54, 0xbf, 0x6e, 0x85, 0x64, 0x9c, 0xa5, 0x71, 0x07, 0x41,
+ 0xf8, 0x92, 0xed, 0x45, 0xe5, 0xfb, 0xcc, 0x34, 0x0f, 0xf7, 0xe0, 0xcf, 0x7e, 0xd3, 0xca, 0xff,
+ 0xf3, 0x8b, 0xfe, 0x96, 0x63, 0x1e, 0x94, 0x67, 0xdf, 0x2c, 0x97, 0x79, 0x2e, 0xb2, 0x8d, 0xb1,
+ 0x3e, 0xc5, 0xaa, 0x80, 0xa8, 0x4e, 0x33, 0x0d, 0x73, 0x4d, 0x38, 0x43, 0xfe, 0x44, 0xd3, 0x4f,
+ 0x3d, 0x39, 0xfa, 0x0d, 0x5a, 0x01, 0x2b, 0x16, 0xcc, 0xf1, 0x1e, 0x17, 0xd7, 0x64, 0x53, 0x51,
+ 0xbd, 0x71, 0x40, 0xa4, 0x16, 0x33, 0xa1, 0x1c, 0xf3, 0x4e, 0x47, 0x2f, 0x4b, 0xfe, 0x7e, 0x18,
+ 0x8a, 0x05, 0x99, 0x01, 0x25, 0x53, 0xda, 0x50, 0x3b, 0xb1, 0x8d, 0x03, 0x6a, 0x5a, 0xab, 0x0d,
+ 0x88, 0xad, 0xf9, 0xf7, 0x38, 0x98, 0xca, 0x42, 0x50, 0xd8, 0x08, 0xda, 0xe5, 0xdb, 0xea, 0x19,
+ 0xdd, 0x47, 0xd2, 0xaa, 0x23, 0xc7, 0x27, 0xfa, 0x72, 0xaf, 0x0d, 0x3d, 0x22, 0x74, 0x13, 0x5e,
+ 0xcd, 0x4e, 0x54, 0x16, 0xcb, 0x50, 0xa7, 0x6a, 0xac, 0x61, 0xaf, 0x3a, 0xd0, 0xf6, 0x5e, 0xfe,
+ 0x0b, 0x19, 0x13, 0xd3, 0x86, 0xe5, 0x58, 0x53, 0xd0, 0xdb, 0x77, 0xb6, 0x50, 0x61, 0x47, 0x4e,
+ 0x13, 0xf5, 0xd6, 0x31, 0x1a, 0xd8, 0x98, 0x8b, 0x61, 0x72, 0x84, 0x53, 0xdb, 0xa2, 0xcd, 0xbe,
+ 0x98, 0xa4, 0x7f, 0x4b, 0xd0, 0x0f, 0x4a, 0xd2, 0x8e, 0x16, 0xaa, 0xdd, 0x17, 0x59, 0xa7, 0xb9,
+ 0x02, 0xa8, 0x60, 0xf6, 0x1d, 0xcb, 0x10, 0x12, 0x6b, 0x69, 0x85, 0xd9, 0x8f, 0x81, 0x41, 0x14,
+ 0x93, 0xbd, 0x6c, 0x98, 0x56, 0xea, 0x12, 0x81, 0x5e, 0xcd, 0xdd, 0x6b, 0x47, 0x38, 0xe0, 0xf7,
+ 0x80, 0x48, 0xba, 0xa9, 0x4c, 0x32, 0x8a, 0x0a, 0x3f, 0xbf, 0x59, 0x38, 0x9c, 0x9a, 0x2d, 0x49,
+ 0x90, 0x41, 0x3c, 0x15, 0xa4, 0xa5, 0x0a, 0x9a, 0xe1, 0x71, 0xfb, 0x3f, 0x6e, 0x18, 0x60, 0xe9,
+ 0xd0, 0x65, 0x61, 0xa0, 0x82, 0xbc, 0x4f, 0x9f, 0x1f, 0xcf, 0x36, 0x23, 0x20, 0x55, 0x97, 0x2c,
+ 0x24, 0x81, 0x0f, 0x94, 0x29, 0xb8, 0xe3, 0xc7, 0xa9, 0x8d, 0x4e, 0x7f, 0xfa, 0x06, 0x18, 0xab,
+ 0x34, 0x88, 0x89, 0x28, 0xc1, 0x2f, 0x63, 0x57, 0x77, 0x43, 0xec, 0x78, 0x08, 0x84, 0x55, 0x0b,
+ 0xcb, 0x75, 0xf4, 0xcf, 0xec, 0xce, 0x97, 0x5c, 0x11, 0xda, 0xe3, 0x92, 0x82, 0xb6, 0x9d, 0xc2,
+ 0xed, 0x5c, 0x9b, 0xad, 0xd8, 0xbd, 0x64, 0x89, 0xd3, 0x3e, 0x28, 0x34, 0xf7, 0x31, 0xc4, 0x7d,
+ 0xf4, 0xe4, 0x6e, 0x34, 0xab, 0x04, 0xac, 0x58, 0xb6, 0x42, 0x78, 0x5c, 0xda, 0x53, 0x8f, 0x87,
+ 0xce, 0xb2, 0x04, 0x9b, 0x39, 0x1f, 0xbf, 0x71, 0x13, 0xdd, 0x89, 0x6e, 0xf9, 0xd6, 0xde, 0xe0,
+ 0x99, 0xf0, 0x4f, 0x30, 0x3f, 0x8b, 0x42, 0xdb, 0x5a, 0xc3, 0x09, 0x50, 0xb1, 0xf8, 0x66, 0xb3,
+ 0x10, 0x09, 0x86, 0xbc, 0xe8, 0x97, 0x80, 0x90, 0xde, 0xce, 0xa2, 0x07, 0xf2, 0x82, 0x4d, 0xa0,
+ 0x44, 0xb7, 0x9d, 0x9a, 0x1c, 0x4c, 0x65, 0x21, 0x28, 0x6c, 0x04, 0x6d, 0x93, 0x8c, 0x75, 0xed,
+ 0x40, 0x24, 0x5d, 0xb5, 0x26, 0x19, 0x45, 0x05, 0xfe, 0xbe, 0xcd, 0x1c, 0x4e, 0x4d, 0xf7, 0xc5,
+ 0x92, 0xe9, 0x5c, 0xe3, 0xb9, 0x6e, 0x1a, 0x88, 0x8a, 0x18, 0x7e, 0xe6, 0xe1, 0x99, 0x21, 0xfd,
+ 0x3a, 0x56, 0x6a, 0xaf, 0x92, 0x1b, 0x13, 0x29, 0xa5, 0x9f, 0xf1, 0x32, 0x23, 0x85, 0x51, 0x67,
+ 0x01, 0x54, 0x30, 0x7b, 0xef, 0x84, 0x08, 0x09, 0xd4, 0xd5, 0xa3, 0x8d, 0xa6, 0xa1, 0xc1, 0x0a,
+ 0x26, 0x29, 0x6f, 0x62, 0x34, 0x73, 0xf3, 0xd5, 0xc2, 0xe4, 0xcb, 0xa6, 0x75, 0x87, 0x59, 0xbf,
+ 0x12, 0xa1, 0xe6, 0x4a, 0xf5, 0x5c, 0x90, 0x82, 0xb5, 0xa7, 0x27, 0xde, 0x7d, 0x03, 0x0c, 0xb4,
+ 0x1a, 0x44, 0xa5, 0x14, 0x81, 0xf6, 0xd0, 0xca, 0xda, 0xc0, 0x76, 0x3c, 0x04, 0x42, 0xcb, 0xe4,
+ 0x48, 0xc1, 0x1e, 0xeb, 0x52, 0xb3, 0x05, 0x4d, 0x91, 0xd9, 0x9c, 0xfe, 0x37, 0x0c, 0x30, 0x95,
+ 0x68, 0xd3, 0xd1, 0x50, 0x41, 0x5e, 0xc6, 0xae, 0xee, 0x86, 0x1b, 0xf0, 0x10, 0xcb, 0xaa, 0x16,
+ 0xf5, 0xb0, 0x5e, 0x4f, 0x44, 0x80, 0xa4, 0x51, 0x62, 0x97, 0xdb, 0xd1, 0x7c, 0xf2, 0x4e, 0x8d,
+ 0x81, 0x1c, 0x8a, 0xd2, 0xa3, 0xb6, 0x82, 0x03, 0xeb, 0x6a, 0xfa, 0xb5, 0x3a, 0x3b, 0xec, 0x43,
+ 0x8b, 0x51, 0xa9, 0x7a, 0xca, 0xd7, 0xd2, 0x59, 0xef, 0x64, 0x2e, 0x8e, 0xcc, 0xfb, 0x6a, 0x07,
+ 0xc7, 0x03, 0x77, 0xbe, 0xa2, 0x31, 0xf7, 0x30, 0xa8, 0x6f, 0x7b, 0x01, 0x26, 0x36, 0xd8, 0xba,
+ 0xd6, 0x5e, 0xc1, 0x79, 0xa5, 0x22, 0x7f, 0xa9, 0xa2, 0x74, 0x7a, 0x8b, 0x72, 0x15, 0x54, 0x10,
+ 0x20, 0x12, 0xcf, 0xbb, 0x13, 0xed, 0xc3, 0xe3, 0x7f, 0x5f, 0x87, 0x0e, 0x27, 0xc7, 0x9a, 0x83,
+ 0x0a, 0x4d, 0x23, 0xa8, 0x69, 0x61, 0x50, 0x5a, 0x04, 0x0e, 0xd4, 0x3b, 0xf6, 0xc0, 0x86, 0x44,
+ 0x08, 0xe5, 0x43, 0x5e, 0x74, 0xaa, 0x40, 0x48, 0x6f, 0x67, 0x51, 0xe2, 0x79, 0x41, 0xc7, 0x50,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x4c, 0x52, 0xde, 0xc4, 0x68, 0xe6, 0x25, 0x69, 0x47, 0x0b, 0x55, 0x8f, 0xea, 0xcd, 0xb2, 0xbd,
+ 0xd7, 0x0a, 0xf1, 0x02, 0x4a, 0xa6, 0x77, 0xa0, 0x76, 0xa1, 0xd9, 0x06, 0xd4, 0xb4, 0x95, 0x1a,
+ 0x74, 0xac, 0xd4, 0x9d, 0xe7, 0x36, 0x26, 0x52, 0x89, 0xfd, 0x21, 0x64, 0x46, 0xc9, 0xa2, 0xce,
+ },
+ { /* 8 */
+ 0x99, 0xaa, 0x16, 0x04, 0xc2, 0x95, 0x8c, 0x4a, 0x63, 0xeb, 0xf0, 0x49, 0x21, 0x0a, 0xad, 0xf8,
+ 0x93, 0xe3, 0xda, 0xa3, 0x95, 0xb5, 0xa1, 0x97, 0x1b, 0x19, 0xbd, 0x7f, 0x09, 0x35, 0xa8, 0x38,
+ 0x88, 0xfd, 0x2b, 0x3b, 0xa6, 0xc5, 0x21, 0xbc, 0xaf, 0xb5, 0xad, 0x3e, 0x65, 0x8a, 0x44, 0xdb,
+ 0xae, 0x16, 0x29, 0x6c, 0x27, 0x1a, 0xaa, 0xe1, 0xc4, 0x02, 0x84, 0xcc, 0xfd, 0xee, 0x57, 0x5c,
+ 0x8b, 0xbe, 0x09, 0x55, 0xe0, 0x74, 0xcd, 0x78, 0xbb, 0x23, 0x51, 0x37, 0x69, 0x61, 0xa4, 0xfb,
+ 0xbd, 0x82, 0x28, 0xa6, 0x86, 0x94, 0x0e, 0x2e, 0x10, 0xb8, 0x71, 0xb5, 0xb1, 0xdc, 0xbf, 0xfe,
+ 0x69, 0xbd, 0x24, 0x97, 0x06, 0x13, 0xb2, 0x23, 0xa9, 0x8c, 0x87, 0xdc, 0x67, 0x47, 0xd5, 0x6a,
+ 0xb1, 0x4d, 0xa0, 0xdd, 0x5d, 0x15, 0x38, 0xb8, 0x40, 0xa5, 0x07, 0x91, 0x81, 0xf6, 0xb9, 0x7e,
+ 0x6e, 0xbb, 0x7e, 0xd0, 0x09, 0xdd, 0x4c, 0x95, 0x8d, 0x11, 0xe8, 0xc9, 0x7b, 0x0b, 0x37, 0x8b,
+ 0x38, 0x30, 0x95, 0x7d, 0x78, 0xbf, 0xfc, 0xf9, 0xe3, 0x62, 0xfe, 0xa8, 0xe0, 0x25, 0x1c, 0x04,
+ 0x3e, 0xb6, 0xd1, 0xa1, 0xf4, 0x1e, 0xe7, 0xb2, 0xcb, 0x8d, 0xc5, 0xba, 0xf8, 0x30, 0x1f, 0x44,
+ 0x92, 0x63, 0xc4, 0x38, 0x16, 0xda, 0x44, 0x6a, 0x17, 0x6b, 0xe9, 0x78, 0x0d, 0x6c, 0x49, 0x99,
+ 0x95, 0x65, 0x9e, 0x7f, 0x19, 0x14, 0xba, 0xdc, 0x33, 0xf6, 0x86, 0x6d, 0x11, 0x20, 0xab, 0x78,
+ 0x59, 0x07, 0x41, 0xb8, 0xec, 0x52, 0x6a, 0x3e, 0x2a, 0xf8, 0x9c, 0x4c, 0xa7, 0xef, 0xcd, 0x2f,
+ 0x31, 0x3a, 0x7b, 0xb4, 0x69, 0x2e, 0x3d, 0xe0, 0x8f, 0x06, 0x4f, 0x97, 0xc4, 0xf1, 0xf9, 0xe4,
+ 0x4e, 0xd6, 0x38, 0x5b, 0x04, 0xa3, 0xdc, 0x83, 0xce, 0x49, 0xfa, 0x29, 0xfb, 0x7a, 0x27, 0x4c,
+ 0xd3, 0x39, 0x56, 0x76, 0x8f, 0x49, 0x42, 0xbb, 0x9d, 0xa9, 0x99, 0x7c, 0xca, 0xd7, 0x88, 0x75,
+ 0xce, 0xa1, 0xe3, 0x32, 0x30, 0x98, 0xd9, 0xdb, 0x01, 0xea, 0xb2, 0x2f, 0xbe, 0x7d, 0x67, 0xd6,
+ 0xa0, 0x1a, 0x9d, 0xe2, 0x39, 0x45, 0x95, 0x4e, 0x8c, 0xfb, 0x5a, 0xe6, 0xc5, 0x76, 0x50, 0x5d,
+ 0xe5, 0x05, 0x77, 0x85, 0xe9, 0xa9, 0x81, 0xed, 0x36, 0x32, 0xb9, 0xfe, 0x12, 0x6a, 0x93, 0x70,
+ 0xd5, 0xbf, 0x12, 0xaa, 0x03, 0xe8, 0x59, 0xf0, 0xb5, 0x46, 0xa2, 0x6e, 0xd2, 0xc2, 0x8b, 0x35,
+ 0xb9, 0xc7, 0x50, 0x8f, 0xcf, 0xeb, 0x1c, 0x5c, 0x20, 0xb3, 0xe2, 0xa9, 0xa1, 0x7b, 0xbd, 0x3f,
+ 0xa4, 0x5f, 0xe5, 0xcb, 0x70, 0x3a, 0x87, 0x3c, 0xbc, 0xf0, 0xc9, 0xfa, 0xd5, 0xd1, 0x52, 0x9c,
+ 0xbf, 0x41, 0x14, 0x53, 0x43, 0x4a, 0x07, 0x17, 0x08, 0x5c, 0xd9, 0xbb, 0xb9, 0x6e, 0xbe, 0x7f,
+ 0x2d, 0x22, 0xd0, 0x6b, 0x55, 0x90, 0x43, 0x7d, 0x1f, 0x37, 0x30, 0xc3, 0xb4, 0x02, 0xf7, 0xe6,
+ 0xe7, 0xc6, 0x4b, 0x70, 0x2c, 0x77, 0x88, 0xd4, 0x2e, 0xd6, 0x11, 0xf0, 0x1a, 0xd8, 0x92, 0xf1,
+ 0xdc, 0xb5, 0xfc, 0x63, 0x12, 0x79, 0x98, 0xe9, 0xd9, 0x22, 0x13, 0x51, 0xf6, 0x16, 0x6e, 0xd5,
+ 0x21, 0xed, 0x58, 0x10, 0x8e, 0x11, 0x75, 0xeb, 0x4f, 0x2a, 0x46, 0xe7, 0x84, 0x28, 0xf1, 0x66,
+ 0xf9, 0x1d, 0xdc, 0x5a, 0xd5, 0x17, 0xff, 0x70, 0xa6, 0x03, 0xc6, 0xaa, 0x62, 0x99, 0x9d, 0x72,
+ 0xee, 0xcc, 0xa5, 0xb9, 0x3d, 0xe6, 0x49, 0xcd, 0x42, 0xb2, 0xa0, 0xcf, 0x3e, 0x0c, 0x77, 0x11,
+ 0x62, 0x74, 0xf6, 0xab, 0xd2, 0x5c, 0x7a, 0x03, 0xdd, 0x0c, 0x9e, 0xed, 0x4b, 0x21, 0x31, 0x0b,
+ 0xcd, 0xe2, 0xc1, 0x5c, 0x76, 0x29, 0x35, 0x1f, 0x15, 0x7c, 0x4e, 0x26, 0xb2, 0x96, 0x87, 0xf6,
+ 0x67, 0xb1, 0x90, 0x19, 0x18, 0x4c, 0x8d, 0x8c, 0xe1, 0x75, 0x59, 0xf6, 0x5f, 0xdf, 0xd2, 0x6b,
+ 0x72, 0xa3, 0xd5, 0x0f, 0x35, 0x63, 0x32, 0x08, 0x1d, 0x20, 0x97, 0x9d, 0x0b, 0xf8, 0x39, 0x89,
+ 0x9b, 0x69, 0x2a, 0xf1, 0x07, 0x4b, 0x85, 0x73, 0x7b, 0x0f, 0x58, 0x47, 0x29, 0xb8, 0xac, 0x79,
+ 0xbe, 0xc1, 0x0a, 0xc8, 0xc0, 0x25, 0xe2, 0xea, 0x04, 0x2e, 0x8d, 0xbc, 0xbd, 0x37, 0x5f, 0xde,
+ 0xeb, 0x09, 0xc3, 0x0b, 0xf7, 0xf6, 0xbe, 0x42, 0x7e, 0xcb, 0x67, 0xd4, 0x2a, 0xf2, 0x94, 0x71,
+ 0x86, 0xf1, 0x9f, 0xb5, 0xb8, 0x9a, 0x1e, 0x13, 0xe7, 0x4c, 0x73, 0x14, 0x5d, 0x12, 0x43, 0xda,
+ 0x83, 0x34, 0xf9, 0x07, 0x72, 0x8a, 0xe9, 0x9c, 0xdb, 0x35, 0xb4, 0x0f, 0x49, 0xec, 0xa0, 0xba,
+ 0x09, 0x0a, 0xee, 0xc9, 0x11, 0x91, 0xc1, 0x19, 0x6c, 0x64, 0xb1, 0x3f, 0x24, 0xd4, 0xe5, 0xe0,
+ 0x54, 0x48, 0xd7, 0x58, 0xb4, 0xbc, 0xb9, 0x55, 0x76, 0x97, 0xbe, 0x6f, 0x93, 0x9c, 0x2a, 0x0e,
+ 0x77, 0x66, 0xb3, 0xbd, 0xff, 0x73, 0xc5, 0x87, 0x21, 0x59, 0x50, 0x86, 0x1f, 0x06, 0xda, 0xe9,
+ 0x40, 0xda, 0x8c, 0xd5, 0x1a, 0xfc, 0xe3, 0x2c, 0x86, 0xb0, 0x24, 0x03, 0xc3, 0xe2, 0x20, 0x4d,
+ 0xf6, 0x91, 0x76, 0x4f, 0x48, 0x27, 0x25, 0x22, 0xe2, 0x88, 0x4c, 0x87, 0x5e, 0x58, 0x7b, 0xd2,
+ 0x5a, 0x44, 0x63, 0xd6, 0xaa, 0xe3, 0x86, 0xfa, 0x3e, 0x6e, 0x60, 0x45, 0xab, 0x04, 0x2d, 0x0f,
+ 0x0d, 0x4f, 0x96, 0xe0, 0x58, 0xee, 0xd3, 0x6b, 0x5c, 0x6f, 0x22, 0x23, 0x34, 0x73, 0xe7, 0x21,
+ 0xfa, 0x5e, 0xfe, 0x34, 0x93, 0xa6, 0x13, 0xb4, 0xb2, 0x95, 0x3a, 0xa3, 0x6e, 0x72, 0x7d, 0x52,
+ 0xc7, 0xab, 0x0d, 0xfb, 0x21, 0x09, 0x18, 0xc2, 0x6d, 0x8e, 0x03, 0x10, 0x9a, 0xa9, 0x82, 0x36,
+ 0x65, 0x72, 0xac, 0xec, 0xdd, 0x92, 0x84, 0xb5, 0xf9, 0x91, 0xf1, 0xf8, 0x57, 0x6d, 0xd3, 0xea,
+ 0x5f, 0x81, 0x05, 0x64, 0x60, 0xf3, 0x71, 0x75, 0x02, 0x17, 0xa7, 0x5e, 0xbf, 0xfa, 0xce, 0x6f,
+ 0xd2, 0xb9, 0x48, 0xed, 0x0c, 0x26, 0xa7, 0x46, 0x91, 0xdb, 0xcd, 0x7b, 0xce, 0x8e, 0x69, 0xd4,
+ 0xf0, 0x17, 0x32, 0x93, 0xc4, 0x86, 0x3e, 0x69, 0xca, 0x67, 0x77, 0x95, 0x46, 0x4d, 0x78, 0x92,
+ 0x94, 0xe5, 0x80, 0xe4, 0x9a, 0x7b, 0x5f, 0x21, 0x3f, 0x84, 0xd2, 0x6a, 0x15, 0x79, 0x4a, 0xd9,
+ 0x43, 0x99, 0xae, 0xbb, 0x5c, 0x4d, 0x0f, 0xe8, 0x92, 0x26, 0xd8, 0x0a, 0xcf, 0x09, 0xc0, 0x6d,
+ 0x44, 0x9f, 0xf4, 0xfc, 0x53, 0x83, 0xf1, 0x5e, 0xb6, 0xbb, 0xb7, 0x1f, 0xd3, 0x45, 0x22, 0x8c,
+ 0x9e, 0xac, 0x4c, 0x43, 0xcd, 0x5b, 0x72, 0xfc, 0x47, 0x76, 0x9f, 0x5c, 0x3d, 0x46, 0x4f, 0x19,
+ 0xe9, 0xca, 0xff, 0xfe, 0x32, 0x28, 0xb7, 0x7b, 0x66, 0x2f, 0xcf, 0xda, 0x22, 0x40, 0x95, 0xf0,
+ 0xb2, 0x0e, 0x82, 0xb3, 0x1b, 0xa4, 0xd4, 0x7c, 0x54, 0x33, 0xfb, 0x98, 0x8d, 0x1d, 0x59, 0x5e,
+ 0x2a, 0x24, 0x8a, 0x2c, 0x5a, 0x5e, 0xbd, 0xcb, 0x3b, 0xaa, 0x5f, 0xd6, 0xa8, 0x4e, 0x15, 0x07,
+ 0x13, 0x94, 0x01, 0xca, 0xa1, 0x8e, 0xa4, 0xcf, 0xd4, 0xba, 0xf5, 0x79, 0x4c, 0x32, 0xe8, 0xa2,
+ 0x37, 0xbc, 0x3f, 0x68, 0xe5, 0x8f, 0x26, 0xab, 0xa7, 0xe9, 0x74, 0x85, 0xdc, 0xe4, 0xfa, 0xa4,
+ 0x1c, 0x18, 0xab, 0xdf, 0x3c, 0xbe, 0x7e, 0x9d, 0x90, 0x31, 0x7f, 0x54, 0x70, 0xf3, 0x0e, 0x02,
+ 0xb4, 0x88, 0xc6, 0x6f, 0x97, 0x05, 0xcf, 0x37, 0x7c, 0xdc, 0xc0, 0x8a, 0x95, 0x08, 0x5a, 0x1e,
+ 0x4b, 0x13, 0x5e, 0xe9, 0xce, 0xb3, 0x2b, 0x0c, 0xf2, 0x30, 0x3d, 0x32, 0xef, 0x84, 0xc4, 0x2c,
+ 0x7f, 0xec, 0x43, 0xef, 0x6d, 0x8d, 0xe1, 0x63, 0x41, 0x4f, 0xb5, 0xbe, 0x3f, 0x8b, 0xde, 0xa8,
+ 0x78, 0xea, 0x19, 0xa8, 0x62, 0x43, 0x1f, 0xd5, 0x65, 0xd2, 0xda, 0xab, 0x23, 0xc7, 0x3c, 0x49,
+ 0xcc, 0x62, 0xdf, 0xc7, 0xf5, 0x46, 0xd0, 0xe2, 0x19, 0x0e, 0x1a, 0x21, 0xb6, 0xcf, 0x66, 0x57,
+ 0x81, 0xf7, 0xc5, 0xf2, 0xb7, 0x54, 0xe0, 0xa5, 0xc3, 0xd1, 0x1c, 0x01, 0x41, 0x5e, 0xa1, 0x3b,
+ 0xac, 0xd5, 0x15, 0x99, 0xe2, 0xc4, 0xa3, 0xd8, 0xdc, 0xe6, 0x2c, 0xc2, 0xf5, 0x5c, 0x56, 0xdd,
+ 0x98, 0x2a, 0x08, 0x9f, 0x41, 0xfa, 0x69, 0xb7, 0x6f, 0x99, 0xa4, 0x4e, 0x25, 0x53, 0x4c, 0x59,
+ 0x56, 0x8b, 0xeb, 0xad, 0x71, 0x62, 0xb0, 0x6c, 0x6e, 0x73, 0x16, 0x61, 0x9b, 0x2e, 0x2b, 0x8f,
+ 0x1e, 0xdb, 0x97, 0x2a, 0xf9, 0x60, 0x77, 0xa4, 0x88, 0xd5, 0xd7, 0x5a, 0x78, 0x41, 0x0f, 0x83,
+ 0x30, 0xba, 0x65, 0x2f, 0xea, 0x41, 0xd8, 0x1d, 0x83, 0x74, 0x1b, 0x90, 0xc0, 0xa8, 0x18, 0x45,
+ 0x14, 0x92, 0x5b, 0x8d, 0xae, 0x40, 0x5a, 0x79, 0xf0, 0x27, 0x9a, 0x6c, 0x50, 0x7e, 0x0a, 0x43,
+ 0xc5, 0x68, 0x31, 0x0e, 0xe4, 0xd7, 0x11, 0xfb, 0x75, 0x6a, 0xab, 0x1e, 0x92, 0x1b, 0x83, 0xb7,
+ 0x49, 0xd0, 0x62, 0x1c, 0x0b, 0x6d, 0x22, 0x35, 0xea, 0xd4, 0x95, 0x3c, 0xe7, 0x36, 0xc5, 0xad,
+ 0xb0, 0xcd, 0xbe, 0x46, 0xde, 0x7a, 0xdd, 0x45, 0x4c, 0xd7, 0x53, 0x96, 0x85, 0xaf, 0x58, 0xdf,
+ 0x70, 0x60, 0xe9, 0xfa, 0xf0, 0xbd, 0x3b, 0x31, 0x05, 0xc4, 0x3f, 0x93, 0x03, 0x4a, 0x38, 0x08,
+ 0x0b, 0xc9, 0xd2, 0x3c, 0xd4, 0x4f, 0xc8, 0x20, 0x74, 0x80, 0x19, 0x31, 0x2c, 0x66, 0xe4, 0x61,
+ 0xa6, 0x9c, 0xd9, 0x3e, 0xb5, 0xe4, 0x8e, 0x05, 0xa4, 0x14, 0x61, 0xf4, 0xdd, 0x63, 0x53, 0x1d,
+ 0xaf, 0x96, 0x37, 0xf7, 0xa4, 0x75, 0x4f, 0x1c, 0xc8, 0x70, 0xd0, 0xcb, 0xf9, 0xb7, 0xb6, 0xfd,
+ 0xa1, 0x9a, 0x83, 0x79, 0xba, 0x2a, 0x70, 0xb3, 0x80, 0x89, 0x0e, 0xe1, 0xc1, 0x2f, 0xb1, 0xfc,
+ 0x17, 0xd1, 0x79, 0xe3, 0xe8, 0xf1, 0xb6, 0xbd, 0xe4, 0xb1, 0x66, 0x65, 0x5c, 0x95, 0xea, 0x63,
+ 0xf5, 0xd2, 0x54, 0x21, 0x0e, 0x96, 0xc9, 0xe6, 0xf6, 0x1e, 0xb0, 0x8e, 0x52, 0xb3, 0x9b, 0xf2,
+ 0xfd, 0x58, 0xa4, 0x73, 0x9c, 0x68, 0xed, 0x02, 0x96, 0x08, 0x55, 0xb6, 0x72, 0x3e, 0x9f, 0xb3,
+ 0x3c, 0x75, 0xed, 0x54, 0x31, 0xc0, 0xee, 0x8b, 0xd3, 0x69, 0x6d, 0xb4, 0xf0, 0x82, 0x1e, 0xc5,
+ 0xca, 0xe4, 0x9b, 0x1b, 0x79, 0xe7, 0xcb, 0xa9, 0x31, 0xe1, 0x21, 0x33, 0xae, 0xda, 0x65, 0x17,
+ 0xa2, 0xd9, 0xa1, 0x17, 0xfc, 0x9b, 0x9c, 0x77, 0x94, 0x1f, 0xf2, 0xe8, 0xcd, 0xc4, 0x51, 0xdc,
+ 0x4a, 0x93, 0x40, 0x72, 0x4d, 0xdc, 0xce, 0xf1, 0xfe, 0x42, 0x69, 0x35, 0xeb, 0xdd, 0x25, 0x8d,
+ 0x0c, 0xcf, 0x88, 0x7b, 0xdb, 0x81, 0x36, 0x96, 0x50, 0x1d, 0x76, 0x24, 0x30, 0x2a, 0x06, 0x80,
+ 0x18, 0x5d, 0xd3, 0xf6, 0x75, 0xc1, 0x6c, 0xef, 0xa0, 0x3a, 0xec, 0x48, 0x60, 0x54, 0x0c, 0xc3,
+ 0xc3, 0xee, 0x75, 0xd2, 0x68, 0x76, 0x0a, 0xb0, 0x5d, 0x85, 0x90, 0x0c, 0x8a, 0x0e, 0x80, 0xf7,
+ 0x47, 0xdc, 0xd6, 0x92, 0x15, 0x32, 0x1d, 0x9a, 0xa2, 0x2d, 0x4b, 0x16, 0xdf, 0xae, 0xc2, 0xac,
+ 0x8f, 0xfb, 0x71, 0x7c, 0xa9, 0x0b, 0xdf, 0x0a, 0x8b, 0x28, 0xc2, 0x2b, 0x79, 0xc6, 0xa6, 0x3a,
+ 0xf2, 0xd4, 0x0e, 0x66, 0x01, 0x58, 0x37, 0x50, 0xd2, 0x83, 0xdf, 0x9b, 0x4e, 0xff, 0x79, 0x13,
+ 0xe0, 0xc0, 0x11, 0x37, 0x23, 0xb9, 0x76, 0x62, 0x0a, 0x4b, 0x7e, 0xe5, 0x06, 0x94, 0x70, 0x10,
+ 0x3d, 0xf5, 0xf3, 0xcf, 0xb2, 0xaf, 0x0b, 0x76, 0xdf, 0x1b, 0x39, 0xb3, 0xf4, 0xdb, 0xff, 0x64,
+ 0xaa, 0x53, 0x51, 0x45, 0x6e, 0x65, 0xb8, 0x93, 0xf4, 0x09, 0x17, 0xd0, 0xed, 0x49, 0x55, 0x9d,
+ 0x57, 0x0b, 0xf5, 0x36, 0xf2, 0x0d, 0x55, 0x91, 0x62, 0x01, 0x42, 0x66, 0x9f, 0x77, 0xca, 0x2e,
+ 0x87, 0x71, 0x81, 0x2e, 0x3b, 0xf5, 0xfb, 0xee, 0xeb, 0x3e, 0x27, 0x13, 0x59, 0x4b, 0xa2, 0x7b,
+ 0xb6, 0x4b, 0xfa, 0x9a, 0x52, 0xdb, 0xc6, 0x0e, 0x64, 0x38, 0x68, 0x84, 0x9d, 0xba, 0x5b, 0x9f,
+ 0xe3, 0x83, 0x33, 0x59, 0x65, 0x08, 0x9a, 0xa6, 0x1e, 0xdd, 0x82, 0xec, 0x0a, 0x7f, 0x90, 0x30,
+ 0x23, 0x2e, 0x64, 0xe5, 0x4b, 0xcf, 0x7c, 0xd2, 0x57, 0xce, 0xee, 0xe9, 0x8c, 0x9a, 0xf0, 0xe7,
+ 0x52, 0xce, 0x93, 0x84, 0x38, 0x1d, 0xa2, 0x1e, 0x5e, 0x78, 0x85, 0x7d, 0x8b, 0x89, 0x29, 0x4e,
+ 0x8e, 0x7b, 0x6f, 0xe7, 0x2a, 0x64, 0x3a, 0xf7, 0x87, 0x5a, 0x96, 0x2c, 0x7d, 0x9f, 0x47, 0x9b,
+ 0xdd, 0x35, 0xe2, 0xf8, 0x91, 0x16, 0x7d, 0x14, 0xd5, 0x50, 0x47, 0x56, 0xf2, 0x4f, 0x8f, 0x74,
+ 0x2c, 0xa2, 0xce, 0xf0, 0xd6, 0xff, 0xa6, 0x80, 0x13, 0x45, 0x64, 0xc4, 0xb0, 0x5b, 0x16, 0x47,
+ 0x50, 0x0d, 0xaf, 0x71, 0xfd, 0xc3, 0xab, 0x27, 0x46, 0x9c, 0x2d, 0x73, 0x83, 0x3b, 0x28, 0xcf,
+ 0xec, 0x0f, 0x99, 0x4c, 0xf8, 0x38, 0x40, 0xf4, 0x5a, 0x56, 0x08, 0xc1, 0x36, 0xbe, 0x76, 0x90,
+ 0x06, 0x86, 0x44, 0xdc, 0x8c, 0xa1, 0x1b, 0x4b, 0x28, 0xef, 0x3b, 0x12, 0x18, 0x15, 0x03, 0x40,
+ 0x91, 0x20, 0xe6, 0x56, 0x50, 0x6b, 0xa8, 0xae, 0x03, 0xfd, 0x15, 0x71, 0x01, 0x87, 0xa9, 0xb9,
+ 0xa3, 0x59, 0xbf, 0x8c, 0x7f, 0xf4, 0x79, 0x8a, 0x98, 0x6d, 0xa6, 0xef, 0xc9, 0x9d, 0xb0, 0x7d,
+ 0xff, 0x9b, 0x98, 0x86, 0x59, 0xb6, 0xe4, 0x3b, 0x8e, 0xec, 0xfd, 0xb8, 0x7a, 0x8c, 0x9e, 0x32,
+ 0x9c, 0x6f, 0x70, 0xb6, 0x08, 0x85, 0x7b, 0xc5, 0x5f, 0x92, 0x37, 0x52, 0x35, 0xf4, 0x4e, 0x98,
+ 0x2b, 0xa4, 0x94, 0xb7, 0xd9, 0x31, 0x58, 0x36, 0x37, 0xd8, 0x0b, 0xd1, 0xac, 0x17, 0xf4, 0xa6,
+ 0xc6, 0x2b, 0x13, 0x60, 0xa2, 0x66, 0xfd, 0x3f, 0x61, 0xfc, 0x57, 0x17, 0x9e, 0xf0, 0x63, 0x97,
+ 0x39, 0xb0, 0x8b, 0xe6, 0xfb, 0xd0, 0x19, 0x04, 0xef, 0x10, 0xaa, 0xaf, 0xe4, 0x7c, 0xfd, 0xa5,
+ 0x29, 0x67, 0xa8, 0x42, 0x1c, 0xef, 0x51, 0x0f, 0x2f, 0x3c, 0xa3, 0xdf, 0xa4, 0xa5, 0xf5, 0x27,
+ 0x5b, 0xc4, 0x7d, 0x4d, 0x29, 0x8c, 0x63, 0x07, 0x32, 0x1c, 0x34, 0x42, 0xaf, 0x5d, 0xcc, 0xae,
+ 0x90, 0xa0, 0xf8, 0xcd, 0xd3, 0x04, 0x4d, 0x53, 0x0f, 0x8f, 0x41, 0x76, 0x05, 0xde, 0x48, 0x18,
+ 0x58, 0x87, 0x5f, 0x23, 0x6f, 0x3d, 0x8f, 0xc3, 0x26, 0x8a, 0xc8, 0x4b, 0xa3, 0xb6, 0x2c, 0x8e,
+ 0xf1, 0x97, 0x2c, 0x08, 0x47, 0xe9, 0xdb, 0x94, 0xc6, 0x15, 0x23, 0x92, 0x42, 0x14, 0x99, 0x33,
+ 0xdf, 0xf6, 0xde, 0x0d, 0x54, 0xc8, 0x74, 0x2d, 0xcd, 0xb4, 0xef, 0x58, 0xfa, 0xfd, 0x8e, 0xf5,
+ 0x28, 0xe7, 0xb6, 0xd9, 0x9f, 0x80, 0xb4, 0xf2, 0x23, 0x4e, 0xf7, 0xd8, 0xa0, 0xfc, 0x14, 0x86,
+ 0x60, 0xb7, 0xca, 0x5e, 0x17, 0x82, 0x73, 0x3a, 0xc5, 0xe8, 0x36, 0xe3, 0x43, 0x93, 0x30, 0x8a,
+ 0x79, 0x6a, 0x07, 0x33, 0xe1, 0x2c, 0xfa, 0x28, 0x69, 0xa0, 0x8e, 0xac, 0x27, 0x9e, 0xdd, 0xe8,
+ 0x76, 0xe6, 0xad, 0x26, 0x7c, 0x1c, 0x20, 0x7a, 0x2d, 0x2b, 0x04, 0x81, 0x1b, 0x5f, 0x3b, 0x48,
+ 0x03, 0x43, 0x22, 0x6e, 0x46, 0xb1, 0xec, 0xc4, 0x14, 0x96, 0xfc, 0x09, 0x0c, 0xeb, 0xe0, 0x20,
+ 0xc8, 0x27, 0xa7, 0xee, 0xbc, 0x39, 0xc2, 0x90, 0x29, 0x05, 0x89, 0x3d, 0xa6, 0x68, 0x64, 0x96,
+ 0x02, 0xc3, 0x3c, 0xf5, 0xc5, 0xde, 0x09, 0x39, 0x18, 0xe4, 0xa8, 0x0e, 0x08, 0xb2, 0x01, 0x81,
+ 0x12, 0x14, 0x1f, 0x51, 0x22, 0xe1, 0x41, 0x32, 0xd8, 0xc8, 0xa1, 0x7e, 0x48, 0x6b, 0x09, 0x03,
+ 0xef, 0x4c, 0xbb, 0x22, 0xbe, 0x89, 0xac, 0x30, 0x4e, 0xc0, 0xf4, 0xc8, 0x3a, 0x55, 0x96, 0xb0,
+ 0x46, 0x5c, 0xc8, 0x09, 0x96, 0x5d, 0xf8, 0x67, 0xae, 0x5f, 0x1f, 0x11, 0xdb, 0xf7, 0x23, 0x0d,
+ 0x51, 0x8d, 0xb1, 0xea, 0x7e, 0xac, 0x4e, 0xda, 0x4a, 0xee, 0x79, 0x74, 0x87, 0x62, 0xc9, 0x6e,
+ 0xdb, 0xb3, 0xa6, 0x24, 0x1d, 0xb7, 0x66, 0x5f, 0xfd, 0xbf, 0x7c, 0x44, 0xea, 0x5a, 0x8c, 0x34,
+ 0x74, 0x25, 0x91, 0xd3, 0xb9, 0xc2, 0x29, 0x43, 0x35, 0xcf, 0xac, 0x8f, 0x13, 0xed, 0x3a, 0xc9,
+ 0x0f, 0x8c, 0xaa, 0x15, 0x9d, 0x30, 0xda, 0x52, 0x44, 0x8b, 0x8a, 0x2d, 0x3c, 0xc1, 0xe6, 0xa0,
+ 0xc1, 0x2d, 0x49, 0x27, 0xad, 0xa8, 0x03, 0x89, 0x45, 0x61, 0x38, 0x02, 0x82, 0xbc, 0x81, 0x76,
+ 0x8d, 0x38, 0x4d, 0x89, 0x6c, 0xd5, 0xd6, 0x33, 0x93, 0xcc, 0x6a, 0x25, 0x71, 0x74, 0xa7, 0xbb,
+ 0x68, 0x3d, 0x3a, 0x0c, 0x85, 0x7c, 0x57, 0xde, 0xa5, 0xfe, 0xd3, 0xdb, 0x63, 0x1e, 0x34, 0xcb,
+ 0xb7, 0xcb, 0xe4, 0x01, 0xd1, 0xb4, 0x23, 0xf3, 0x68, 0x4a, 0x3c, 0x83, 0x99, 0xe3, 0xba, 0x3e,
+ 0x0e, 0x0c, 0xb4, 0x8e, 0x1e, 0x5f, 0x3f, 0xaf, 0x48, 0xf9, 0xde, 0x2a, 0x38, 0x98, 0x07, 0x01,
+ 0x5d, 0x42, 0x39, 0x91, 0xa5, 0x2d, 0x78, 0x4c, 0x1a, 0xf3, 0x0f, 0x50, 0xb7, 0x48, 0xcf, 0xee,
+ 0xe2, 0x03, 0x2d, 0xc2, 0xe6, 0x67, 0x7f, 0x5b, 0x12, 0xaf, 0xd6, 0xeb, 0x0e, 0x26, 0x71, 0x91,
+ 0xc0, 0xad, 0x57, 0xbc, 0x2e, 0xc7, 0xe6, 0x74, 0x49, 0x13, 0x6c, 0x05, 0x86, 0xe5, 0x60, 0xd7,
+ 0x96, 0x26, 0xbc, 0x11, 0x5f, 0xa5, 0x56, 0x18, 0x27, 0x60, 0x7a, 0x64, 0x1d, 0xcb, 0x4b, 0x58,
+ 0xad, 0x55, 0x0b, 0x02, 0x61, 0xab, 0x46, 0x25, 0xd0, 0x94, 0x78, 0xc5, 0xf1, 0x05, 0xb7, 0x7c,
+ 0x01, 0x80, 0x1e, 0x9b, 0x83, 0x6f, 0xe5, 0xfd, 0x0c, 0x72, 0x54, 0x07, 0x04, 0x59, 0xe1, 0xa1,
+ 0x24, 0x28, 0x3e, 0xa2, 0x44, 0x01, 0x82, 0x64, 0x73, 0x53, 0x81, 0xfc, 0x90, 0xd6, 0x12, 0x06,
+ 0xe8, 0x4a, 0xe1, 0x65, 0xb1, 0x47, 0x52, 0x86, 0x6a, 0x5d, 0x9b, 0xdd, 0x26, 0x19, 0x74, 0x51,
+ 0x8c, 0xb8, 0x53, 0x12, 0xef, 0xba, 0x33, 0xce, 0x9f, 0xbe, 0x3e, 0x22, 0x75, 0x2d, 0x46, 0x1a,
+ 0xf3, 0x54, 0x10, 0xfd, 0x82, 0x37, 0xd2, 0xad, 0xde, 0xf1, 0x8b, 0x9c, 0x4a, 0xa6, 0x98, 0xb2,
+ 0xa7, 0x1c, 0xc7, 0xa5, 0x36, 0x8b, 0x6b, 0xf8, 0xa8, 0x66, 0x35, 0xf3, 0xd9, 0x3a, 0xb2, 0xbc,
+ 0x34, 0xff, 0x1d, 0x06, 0xa3, 0x3e, 0xca, 0x6f, 0xb3, 0x7f, 0x88, 0x8c, 0xd0, 0x0f, 0x1a, 0x84,
+ 0xe6, 0x46, 0x55, 0xeb, 0xaf, 0x18, 0x6d, 0x29, 0x22, 0xa4, 0x45, 0xf7, 0x1e, 0x81, 0x73, 0x50,
+ 0x48, 0x50, 0x7c, 0x87, 0x88, 0x02, 0xc7, 0xc8, 0xe6, 0xa6, 0xc1, 0x3b, 0xe3, 0x6f, 0x24, 0x0c,
+ 0xba, 0x84, 0x72, 0xe1, 0x89, 0x5a, 0xf0, 0x98, 0x34, 0x25, 0x1e, 0xa0, 0xad, 0x90, 0x5d, 0x1f,
+ 0x07, 0x06, 0x5a, 0x47, 0x0f, 0xce, 0xfe, 0xb6, 0x24, 0x9d, 0x6f, 0x15, 0x1c, 0x4c, 0xe2, 0xe1,
+ 0xfc, 0xd8, 0xba, 0xe8, 0x1f, 0x07, 0x08, 0xff, 0x9a, 0x7a, 0x01, 0xb1, 0x76, 0x67, 0x7e, 0x12,
+ 0x4d, 0x95, 0x1a, 0x35, 0x42, 0x12, 0x30, 0x47, 0xda, 0xdf, 0x06, 0x20, 0xf7, 0x91, 0xc7, 0x6c,
+ 0x19, 0xdd, 0xcd, 0x6d, 0xf6, 0xae, 0x89, 0x12, 0xac, 0x48, 0xb8, 0x4f, 0x64, 0x0d, 0xed, 0x62,
+ 0x42, 0x19, 0xb0, 0x20, 0xdf, 0x22, 0xea, 0x15, 0x9e, 0x54, 0x8c, 0x0d, 0xcb, 0x50, 0x21, 0xcc,
+ 0x75, 0xa5, 0x8f, 0x48, 0x3a, 0xad, 0xcc, 0xbe, 0x39, 0xbd, 0xf8, 0x88, 0x17, 0xb4, 0xdb, 0x68,
+ 0x4c, 0x15, 0x04, 0xae, 0xc1, 0x7d, 0xd5, 0xba, 0xd6, 0xad, 0x52, 0x27, 0xf3, 0xc8, 0x26, 0xcd,
+ 0xa9, 0x10, 0x73, 0x2b, 0x28, 0xd4, 0x54, 0x57, 0xe0, 0x9f, 0xeb, 0xd9, 0xe1, 0xa2, 0xb5, 0xbd,
+ 0x82, 0xb4, 0xe7, 0x9c, 0xf1, 0xe5, 0x0c, 0x61, 0xd7, 0x47, 0xe0, 0x08, 0x4d, 0xb5, 0x41, 0x1b,
+ 0xf7, 0x11, 0x68, 0xd4, 0xcb, 0x48, 0xc0, 0xdf, 0xee, 0xfa, 0x18, 0x80, 0x5a, 0x01, 0x9a, 0x73,
+ 0x08, 0x8a, 0xf0, 0x52, 0x92, 0xfe, 0x24, 0xe4, 0x60, 0x16, 0xe5, 0x38, 0x20, 0x8d, 0x04, 0x41,
+ 0x4f, 0x56, 0x26, 0xc0, 0x87, 0xcc, 0x39, 0x7e, 0xc2, 0x3b, 0xae, 0x2e, 0xff, 0x23, 0xc6, 0xed,
+ 0x10, 0xd7, 0x23, 0xa4, 0xe7, 0x3f, 0x48, 0x0b, 0xc0, 0x2c, 0x09, 0x70, 0x40, 0xd9, 0x08, 0x82,
+ 0x3b, 0x73, 0xb7, 0x13, 0x3e, 0x0e, 0x10, 0x3d, 0xf7, 0xf4, 0x02, 0xa1, 0xec, 0xce, 0xfc, 0x24,
+ 0xcb, 0x64, 0x85, 0x80, 0xfa, 0x88, 0x2e, 0x54, 0x3d, 0x93, 0x75, 0x34, 0xaa, 0x83, 0x84, 0xb6,
+ 0x20, 0x6d, 0x46, 0x8b, 0x0d, 0x7e, 0x90, 0x16, 0x43, 0x58, 0x12, 0xe0, 0x80, 0x71, 0x10, 0xc7,
+ 0x63, 0xf4, 0xe8, 0x30, 0x51, 0x33, 0x9f, 0xfe, 0xd1, 0x7e, 0xca, 0xea, 0x4f, 0x78, 0xd0, 0xaa,
+ 0x73, 0x23, 0xcb, 0x94, 0xb6, 0x0c, 0xd7, 0xf5, 0x11, 0x52, 0xc3, 0x9a, 0x0f, 0xa1, 0xd8, 0x28,
+ 0xed, 0x8f, 0x87, 0xd7, 0x7b, 0x57, 0xa5, 0x09, 0x56, 0x24, 0x5c, 0xc6, 0x32, 0xe7, 0x97, 0x31,
+ 0xea, 0x89, 0xdd, 0x90, 0x74, 0x99, 0x5b, 0xbf, 0x72, 0xb9, 0x33, 0xd3, 0x2e, 0xab, 0x75, 0xd0,
+ 0xc9, 0xa7, 0xb9, 0x75, 0x3f, 0x56, 0x27, 0x6d, 0x25, 0x77, 0xdd, 0x3a, 0xa2, 0x31, 0x85, 0x37,
+ 0x32, 0x79, 0x59, 0xda, 0x2f, 0x9f, 0xd1, 0x24, 0x9b, 0x90, 0xb3, 0x9e, 0xc8, 0x1a, 0x19, 0xc4,
+ 0x84, 0x32, 0xa3, 0x40, 0x7d, 0x44, 0x17, 0x2a, 0xff, 0xa8, 0xdb, 0x1a, 0x55, 0xa0, 0x42, 0x5b,
+ 0x53, 0x4e, 0x8d, 0x1f, 0xbb, 0x72, 0x47, 0xe3, 0x52, 0x0a, 0xd1, 0x7a, 0x8f, 0xd0, 0xc8, 0xef,
+ 0x04, 0x45, 0x78, 0x29, 0x49, 0x7f, 0x12, 0x72, 0x30, 0x0b, 0x93, 0x1c, 0x10, 0xa7, 0x02, 0xc1,
+ 0x7c, 0xaf, 0x61, 0x81, 0x2b, 0x3c, 0x0d, 0xa7, 0x55, 0xd9, 0x49, 0xb7, 0x33, 0x60, 0x3e, 0x88,
+ 0x41, 0x5a, 0x92, 0x4e, 0x99, 0x93, 0x06, 0xd1, 0x8a, 0xc2, 0x70, 0x04, 0xc7, 0xbb, 0xc1, 0xec,
+ 0x27, 0x6b, 0x1c, 0xcc, 0x02, 0xb0, 0x6e, 0xa0, 0x67, 0xc5, 0x7d, 0xf5, 0x9c, 0x3d, 0xf2, 0x26,
+ 0x55, 0xc8, 0xc9, 0xc3, 0x37, 0xd3, 0x5c, 0xa8, 0x7a, 0xe5, 0xea, 0x68, 0x97, 0xc5, 0xcb, 0xaf,
+ 0xcf, 0x21, 0xfd, 0xa9, 0xb3, 0xf7, 0x3c, 0x26, 0x0d, 0x98, 0xe6, 0x28, 0xba, 0x24, 0x86, 0x77,
+ 0x71, 0xe0, 0xf7, 0x61, 0x73, 0xd2, 0xde, 0xcc, 0x09, 0xb6, 0x6b, 0x94, 0x07, 0x13, 0xd9, 0xa9,
+ 0x11, 0x57, 0x3d, 0x3f, 0x64, 0x50, 0xad, 0xf6, 0xcc, 0x5e, 0x5d, 0x77, 0x44, 0x80, 0xe9, 0x23,
+ 0x97, 0xa6, 0xa2, 0x8a, 0xdc, 0xca, 0xb3, 0xe5, 0x2b, 0x12, 0x2e, 0x63, 0x19, 0x92, 0xaa, 0xf9,
+ 0xd9, 0x70, 0x9a, 0xd1, 0xd8, 0x69, 0x6f, 0x66, 0xe5, 0x5b, 0xd4, 0x4a, 0xe2, 0xe8, 0x8d, 0xb5,
+ 0xd0, 0x7a, 0x74, 0x18, 0xc9, 0xf8, 0xae, 0x7f, 0x89, 0x3f, 0x65, 0x75, 0xc6, 0x3c, 0x68, 0x55,
+ 0xa8, 0x90, 0x6d, 0xb0, 0xab, 0xbb, 0xb1, 0xaa, 0xec, 0xed, 0xbf, 0xde, 0xe5, 0xfb, 0x54, 0x1c,
+ 0x1b, 0x1e, 0xf1, 0x98, 0x33, 0x70, 0x80, 0x2b, 0xb4, 0xac, 0x10, 0x41, 0x6c, 0xbf, 0xec, 0xe3,
+ 0x16, 0x51, 0x67, 0x78, 0x6b, 0x9e, 0x53, 0x40, 0xe8, 0xc3, 0x32, 0x62, 0x58, 0xcc, 0x0b, 0xc2,
+ 0x6c, 0x78, 0x42, 0x25, 0xcc, 0x03, 0x45, 0xac, 0x95, 0xf5, 0x40, 0xc7, 0x73, 0xb9, 0x36, 0x0a,
+ 0x2f, 0xe1, 0xec, 0x9e, 0x90, 0x4e, 0x4a, 0x44, 0x07, 0xd3, 0x98, 0xcd, 0xbc, 0xb0, 0xf6, 0x67,
+ 0x45, 0x1f, 0xea, 0x67, 0xd0, 0xec, 0x14, 0xa3, 0xba, 0xc9, 0xe3, 0x18, 0xd7, 0x1c, 0xc3, 0x2d,
+ 0x33, 0xf9, 0x47, 0x41, 0xac, 0xf0, 0x34, 0xd9, 0x97, 0xe2, 0xe7, 0x99, 0xcc, 0x43, 0xf8, 0x65,
+ 0x1d, 0x98, 0xb5, 0x44, 0xbf, 0xd1, 0x9b, 0x60, 0x9c, 0x43, 0x2b, 0x53, 0x74, 0xaa, 0xef, 0xa3,
+ 0xfe, 0x1b, 0x86, 0x1d, 0xda, 0xd9, 0x01, 0xc6, 0x82, 0x9e, 0xa9, 0xbf, 0x7e, 0xd5, 0x7f, 0x93,
+ 0x7a, 0x29, 0x25, 0x5d, 0xa7, 0x9d, 0x16, 0xec, 0x7d, 0x36, 0x72, 0xa5, 0x2b, 0x75, 0x3d, 0xc8,
+ 0x64, 0xf2, 0xb2, 0x77, 0x5e, 0xfd, 0x61, 0x48, 0xf5, 0xe3, 0xa5, 0xff, 0x53, 0x34, 0x32, 0x4b,
+ 0xb3, 0x8e, 0x9c, 0x28, 0x98, 0xcb, 0x31, 0x81, 0x58, 0x41, 0xaf, 0x9f, 0x89, 0x44, 0xb8, 0xff,
+ 0x1f, 0x5b, 0x89, 0xb1, 0x7a, 0x0f, 0x92, 0x59, 0x84, 0xa7, 0x83, 0x5d, 0x7c, 0x18, 0xee, 0x22,
+ 0x2e, 0x61, 0xf2, 0x05, 0x13, 0x21, 0xaf, 0xb9, 0x0b, 0xa1, 0xcc, 0xca, 0xb8, 0xe9, 0x17, 0xc6,
+ 0xe4, 0x85, 0x69, 0x1e, 0x6a, 0xc6, 0x64, 0x10, 0x3a, 0x40, 0xed, 0xf9, 0x16, 0x33, 0x72, 0xd1,
+ 0x6a, 0xfe, 0x06, 0xf9, 0x40, 0xa2, 0x5e, 0xe7, 0xbd, 0x1a, 0x7b, 0xd5, 0x6b, 0xac, 0x35, 0x4a,
+ 0x7d, 0x2f, 0x7f, 0x1a, 0xa8, 0x53, 0xe8, 0x5a, 0x59, 0xab, 0x1d, 0xb0, 0x37, 0x39, 0xdf, 0x29,
+ 0xd8, 0xf0, 0x84, 0x4a, 0x5b, 0x06, 0x8a, 0x9b, 0xe9, 0x29, 0x80, 0x4d, 0xe6, 0xb1, 0x6c, 0x14,
+ 0xc2, 0x6e, 0x6b, 0x49, 0xeb, 0x19, 0xef, 0x4d, 0x51, 0xf7, 0xc4, 0x0b, 0x8e, 0x57, 0x61, 0x56,
+ 0x36, 0x3c, 0x21, 0xf3, 0x66, 0xe0, 0xc3, 0x56, 0xab, 0x9b, 0x20, 0x82, 0xd8, 0xbd, 0x1b, 0x05,
+ 0xf8, 0x9d, 0xc2, 0xc1, 0x56, 0x78, 0x1a, 0x8d, 0xaa, 0x71, 0x92, 0xad, 0x66, 0xc0, 0x7c, 0xd3,
+ 0x26, 0xeb, 0x02, 0x57, 0x81, 0xdf, 0x8b, 0x5d, 0x6b, 0xb7, 0x29, 0xf2, 0x98, 0x64, 0x13, 0x87,
+ 0x3f, 0x36, 0xcf, 0x3a, 0x77, 0x71, 0x02, 0x4f, 0xc7, 0xff, 0x91, 0xbd, 0xfc, 0x69, 0xfe, 0xe5,
+ 0x0a, 0x49, 0xcc, 0xa7, 0x57, 0x20, 0x2d, 0xdd, 0x78, 0xf2, 0x4d, 0x36, 0x28, 0x3f, 0x05, 0xc0,
+ 0x9f, 0x2c, 0x52, 0xd8, 0x4e, 0x34, 0x97, 0x01, 0x4b, 0x04, 0xcb, 0x5b, 0x39, 0x1f, 0xae, 0xb8,
+ 0xf4, 0x52, 0x4a, 0xba, 0x8d, 0xf9, 0x2c, 0x1b, 0xfa, 0x6c, 0xe4, 0x89, 0x56, 0xea, 0x7a, 0x53,
+ 0x1a, 0x9e, 0xef, 0x03, 0xb0, 0x1f, 0x65, 0xd6, 0xb8, 0xde, 0x44, 0x46, 0x68, 0xe6, 0x0d, 0x42,
+ 0xa5, 0xdf, 0xfb, 0x50, 0xf3, 0x55, 0x62, 0xc1, 0xb0, 0x82, 0x9d, 0xfd, 0xd1, 0x88, 0xb3, 0x3d,
+ 0x61, 0x37, 0xd4, 0xc5, 0x94, 0xed, 0x96, 0xc7, 0xc9, 0x9a, 0x62, 0xe4, 0x47, 0xca, 0xd1, 0x2b,
+ 0x35, 0x7f, 0x03, 0x9d, 0x20, 0x51, 0x2f, 0x92, 0xbf, 0x0d, 0xdc, 0x8b, 0xd4, 0x56, 0xfb, 0x25,
+ 0x7b, 0xa9, 0x3b, 0xc6, 0x24, 0xf2, 0xf3, 0x11, 0x71, 0x44, 0x26, 0xa2, 0x2f, 0x2c, 0xdc, 0x69,
+ 0xde, 0x76, 0xc0, 0x96, 0xd7, 0xa7, 0x91, 0xd0, 0xc1, 0xc6, 0xbb, 0x5f, 0xfe, 0xa4, 0x6f, 0x54,
+ 0xb5, 0x08, 0xd8, 0xf4, 0x14, 0x6a, 0x2a, 0xca, 0x70, 0xae, 0x94, 0x8d, 0x91, 0x51, 0xbb, 0xbf,
+ 0xda, 0x33, 0xb8, 0xbf, 0x9e, 0xd8, 0x83, 0xa2, 0xf1, 0xcd, 0x28, 0x43, 0xee, 0x03, 0x6d, 0x95,
+ 0xbc, 0x02, 0x36, 0x3d, 0x05, 0xfb, 0xeb, 0xd3, 0x1c, 0xca, 0x25, 0xb2, 0xb5, 0x85, 0x5e, 0x5f,
+ 0xd7, 0x7c, 0x2e, 0x5f, 0xc6, 0x36, 0x50, 0xc9, 0xad, 0xa2, 0x0a, 0x60, 0xda, 0x70, 0x8a, 0xb4,
+ 0xab, 0xd3, 0x4f, 0xde, 0xed, 0x0a, 0x5d, 0x6e, 0xf8, 0x7b, 0x43, 0xd7, 0xe9, 0x10, 0xb4, 0x3c,
+ 0x22, 0xae, 0x7a, 0x7e, 0xc8, 0xa0, 0x99, 0x2f, 0x5b, 0xbc, 0xba, 0xee, 0x88, 0xc3, 0x11, 0x46,
+ 0x66, 0x31, 0x8e, 0x82, 0x9b, 0x23, 0x68, 0x71, 0xed, 0x07, 0x0d, 0xf1, 0x5b, 0x86, 0x33, 0xca,
+ 0x3a, 0xf3, 0xa9, 0x88, 0xbd, 0x61, 0xf5, 0xc0, 0xfb, 0x86, 0x56, 0xa6, 0xe8, 0x97, 0x1d, 0x85,
+ 0x9a, 0xe9, 0x34, 0x6a, 0x84, 0x24, 0x60, 0x8e, 0x77, 0x7d, 0x0c, 0x40, 0x2d, 0xe1, 0x4d, 0xd8,
+ 0x6b, 0x7e, 0x18, 0x62, 0xc3, 0xcd, 0xbb, 0x1a, 0xb1, 0x68, 0x2f, 0xd2, 0x6f, 0xf5, 0xd4, 0xeb,
+ 0x05, 0xc5, 0x66, 0xb2, 0xca, 0x10, 0xf7, 0x8f, 0x3c, 0x79, 0xc7, 0x1b, 0x14, 0xfe, 0xe3, 0x60,
+ 0x6f, 0x3b, 0x60, 0x4b, 0x8a, 0xb2, 0xa9, 0x68, 0x81, 0x63, 0xbc, 0xce, 0x7f, 0x52, 0xd6, 0x2a,
+ 0x80, 0x77, 0xdb, 0x69, 0x34, 0x3b, 0x05, 0x58, 0xcf, 0xa3, 0x48, 0x06, 0x45, 0x07, 0x40, 0x9a,
+ 0x5c, 0xc2, 0x27, 0x0a, 0x26, 0x42, 0x9d, 0xb1, 0x16, 0x81, 0x5b, 0x57, 0xb3, 0x11, 0x2e, 0x4f,
+ 0xfb, 0xde, 0xe0, 0xaf, 0x10, 0xc9, 0xf6, 0x49, 0xbe, 0xe7, 0x6e, 0xa4, 0x6a, 0x2b, 0x9c, 0xf3,
+ 0x89, 0x7d, 0x35, 0xa0, 0x25, 0xaa, 0xc4, 0x41, 0xa3, 0xc7, 0xf9, 0x39, 0x61, 0xd3, 0xa5, 0x7a,
+ 0x5e, 0x01, 0x1b, 0xff, 0xe3, 0x9c, 0x94, 0x88, 0x0e, 0x65, 0xf3, 0x59, 0xbb, 0xa3, 0x2f, 0xce,
+ 0x8a, 0x3e, 0x17, 0xce, 0x63, 0x1b, 0x28, 0x85, 0xb7, 0x51, 0x05, 0x30, 0x6d, 0x38, 0x45, 0x5a,
+ 0xbb, 0x04, 0x6c, 0x7a, 0x0a, 0x35, 0x15, 0x65, 0x38, 0x57, 0x4a, 0xa7, 0xa9, 0xc9, 0xbc, 0xbe,
+ 0x6d, 0xf8, 0x5c, 0xbe, 0x4f, 0x6c, 0xa0, 0x51, 0x99, 0x87, 0x14, 0xc0, 0x77, 0xe0, 0xd7, 0xab,
+ 0x9d, 0xef, 0x6e, 0x2d, 0x8b, 0xea, 0x9e, 0x38, 0x53, 0xe0, 0x63, 0x55, 0x31, 0xad, 0xaf, 0x39,
+ 0x25, 0xa8, 0x20, 0x39, 0xc7, 0x6e, 0x67, 0x99, 0x7f, 0x21, 0xd5, 0xfb, 0x94, 0x8f, 0xf3, 0xa7,
+ 0xc4, 0xe8, 0x2f, 0x95, 0x67, 0xb8, 0xf4, 0x06, 0x79, 0x18, 0xff, 0x19, 0x96, 0x42, 0x62, 0x16,
+ 0x15, 0x12, 0x45, 0x16, 0x2d, 0x2f, 0xbf, 0x84, 0xfc, 0x55, 0xce, 0x6b, 0x54, 0x27, 0xeb, 0xe2,
+ 0x85, 0xb2, 0xbd, 0xdb, 0xfe, 0x2b, 0xf2, 0xd7, 0xf3, 0xda, 0x8f, 0x1d, 0x51, 0xf9, 0xa3, 0xfa,
+ 0xd6, 0xfc, 0x30, 0xc4, 0x45, 0x59, 0xb5, 0x34, 0xa1, 0xd0, 0x5e, 0x67, 0xde, 0x29, 0x6b, 0x15,
+ 0xe1, 0x40, 0x0f, 0xac, 0xa0, 0xd6, 0x93, 0x9f, 0x06, 0x39, 0x2a, 0xe2, 0x02, 0xcd, 0x91, 0xb1,
+ 0xd4, 0x3f, 0x0c, 0x31, 0x80, 0x87, 0xbc, 0x0d, 0xb9, 0x34, 0xf6, 0x69, 0xd6, 0x9b, 0x6a, 0x94,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xd1, 0xfa, 0x6a, 0x83, 0x4a, 0x97, 0x4b, 0x82, 0x85, 0x4d, 0x31, 0x72, 0xc2, 0x65, 0x89, 0xf4,
+ 0x7e, 0x6c, 0x5d, 0x74, 0xee, 0xe2, 0x04, 0x9e, 0x4d, 0x3d, 0xe1, 0xb9, 0x3b, 0xd2, 0x3f, 0x09,
+ 0xb8, 0x47, 0x4e, 0x14, 0x4c, 0x84, 0xf9, 0xa1, 0x2c, 0xc1, 0xb6, 0xae, 0xa5, 0x22, 0x5c, 0x9e,
+ },
+ { /* 9 */
+ 0xa5, 0x55, 0xa4, 0x90, 0xc6, 0x8d, 0x2f, 0xd5, 0x71, 0x80, 0x04, 0x89, 0xcb, 0x72, 0x1b, 0x5d,
+ 0x2d, 0x90, 0x75, 0x4e, 0x36, 0xf9, 0x9f, 0x17, 0x62, 0x87, 0xa3, 0x5a, 0x48, 0x8a, 0xa4, 0x15,
+ 0x32, 0x9f, 0x4c, 0x80, 0x9d, 0x5f, 0xd4, 0xf3, 0xbf, 0x6c, 0x3b, 0x64, 0xae, 0x3d, 0x18, 0xe9,
+ 0x8f, 0x0b, 0x94, 0x6d, 0x4b, 0xb1, 0x7f, 0x15, 0x81, 0x1e, 0x6c, 0xdd, 0xe4, 0xac, 0x86, 0xd3,
+ 0x0e, 0x5f, 0x8a, 0xa5, 0xb5, 0x49, 0x5d, 0x6d, 0xe7, 0x32, 0x55, 0x1c, 0xce, 0xa8, 0x72, 0xf5,
+ 0x30, 0x41, 0xf8, 0xfa, 0x20, 0xc6, 0xcb, 0x66, 0x9e, 0x27, 0xa6, 0x60, 0xc1, 0x05, 0xc9, 0xce,
+ 0x38, 0xbf, 0x6d, 0xd1, 0x91, 0xe7, 0xb7, 0x77, 0x1a, 0xc8, 0x97, 0x70, 0xbe, 0xe5, 0x0b, 0x52,
+ 0xc0, 0xc7, 0x66, 0x6e, 0x80, 0x9e, 0xaa, 0x5b, 0x3d, 0x9c, 0xdd, 0x43, 0x82, 0x14, 0xa2, 0xbe,
+ 0x54, 0xbc, 0x60, 0x39, 0xd9, 0x78, 0xa0, 0x43, 0x23, 0xff, 0xd0, 0xa8, 0x5e, 0x7f, 0xf9, 0xdf,
+ 0xe6, 0x18, 0x68, 0x4c, 0x05, 0x72, 0xb8, 0x63, 0x0b, 0x7b, 0x7d, 0x0f, 0x0c, 0x5a, 0x9c, 0xe2,
+ 0x9e, 0x5b, 0x27, 0x06, 0x55, 0x5e, 0x69, 0x9c, 0xbb, 0xc7, 0xa1, 0xff, 0xcc, 0xb3, 0x48, 0xda,
+ 0x39, 0xd0, 0x37, 0xec, 0x2e, 0x4a, 0x59, 0xdc, 0xeb, 0x0c, 0x38, 0x72, 0x68, 0xf9, 0x82, 0xa0,
+ 0x55, 0xd3, 0x3a, 0x04, 0x66, 0xd5, 0x4e, 0xe8, 0xd2, 0x3b, 0x7f, 0xaa, 0x88, 0x63, 0x70, 0x2d,
+ 0x7e, 0xe2, 0x50, 0xc4, 0x54, 0x44, 0xf0, 0x83, 0xd3, 0x61, 0xb8, 0xfc, 0x71, 0xa1, 0x64, 0x51,
+ 0x52, 0x1d, 0x7f, 0xb7, 0xdd, 0x10, 0x81, 0x3f, 0x40, 0x22, 0xb4, 0xa4, 0xef, 0x37, 0x49, 0xb6,
+ 0x91, 0x6b, 0xf7, 0x9e, 0x5f, 0xba, 0xda, 0x5a, 0xad, 0x31, 0x5b, 0xe1, 0xd4, 0x07, 0xb3, 0xdd,
+ 0x64, 0xfd, 0x98, 0xc3, 0xf9, 0xbe, 0x6b, 0x25, 0xbd, 0xd8, 0x76, 0xc8, 0x9f, 0x7a, 0x30, 0x11,
+ 0x03, 0xb1, 0xee, 0x47, 0x02, 0x34, 0xf1, 0x3e, 0xd0, 0x8f, 0x32, 0x06, 0xb9, 0x24, 0x58, 0xd5,
+ 0x57, 0x0d, 0x8e, 0x7e, 0xdb, 0x4c, 0x51, 0x7d, 0xf3, 0x70, 0xe2, 0xae, 0xe7, 0x5b, 0xa1, 0x0a,
+ 0x5a, 0xe3, 0xea, 0x9c, 0x6c, 0x31, 0xfd, 0x2e, 0xc4, 0xcd, 0x85, 0xb4, 0x90, 0xd7, 0x8b, 0x2a,
+ 0x1c, 0xbe, 0xd7, 0x89, 0xa9, 0x92, 0xba, 0xda, 0x0d, 0x64, 0xaa, 0x38, 0x5f, 0x93, 0xe4, 0x29,
+ 0x60, 0x82, 0x33, 0x37, 0x40, 0x4f, 0x55, 0xcc, 0xff, 0x4e, 0x8f, 0xc0, 0x41, 0x0a, 0x51, 0x5f,
+ 0x07, 0xce, 0x45, 0xb3, 0xbb, 0xc5, 0xcf, 0xd7, 0x92, 0x19, 0xcb, 0x0e, 0x67, 0x54, 0x39, 0x9b,
+ 0x18, 0xc1, 0x7c, 0x7d, 0x10, 0x63, 0x84, 0x33, 0x4f, 0xf2, 0x53, 0x30, 0x81, 0xe3, 0x85, 0x67,
+ 0x21, 0x11, 0x4b, 0x91, 0x3e, 0x29, 0xdd, 0xef, 0xa4, 0xfe, 0x6b, 0x42, 0xe9, 0x1a, 0x07, 0xc7,
+ 0x72, 0x63, 0x6e, 0x1b, 0x5c, 0x94, 0xb2, 0x7b, 0x15, 0x18, 0x70, 0xe4, 0xd0, 0x31, 0xc7, 0x83,
+ 0xa8, 0xbb, 0xc0, 0x72, 0x71, 0xf0, 0x83, 0x86, 0x46, 0x3d, 0x63, 0x93, 0xbc, 0xfe, 0x31, 0x7d,
+ 0xd1, 0x97, 0xd5, 0x05, 0x9e, 0x71, 0xbc, 0xd2, 0x07, 0x45, 0x10, 0x61, 0xaa, 0x0b, 0x6c, 0xb7,
+ 0x29, 0xef, 0xde, 0xba, 0x8f, 0x08, 0xa1, 0xfe, 0x20, 0x11, 0x5a, 0x52, 0x96, 0xfa, 0xc5, 0x5b,
+ 0xc6, 0x66, 0x79, 0xe0, 0x84, 0xf6, 0x8b, 0x27, 0x5e, 0x41, 0xb9, 0x4f, 0x33, 0x5c, 0x12, 0xd7,
+ 0xa4, 0x3a, 0xfe, 0xad, 0x79, 0x20, 0xc1, 0x7e, 0x80, 0x44, 0xab, 0x8b, 0x1d, 0x6e, 0x92, 0xaf,
+ 0x3f, 0x71, 0x28, 0x62, 0x2a, 0x22, 0x78, 0xa0, 0x88, 0xd1, 0x5c, 0x7e, 0xd9, 0xb1, 0x32, 0xc9,
+ 0xe0, 0xb9, 0x77, 0xc2, 0x01, 0x1a, 0x99, 0x1f, 0x68, 0xa6, 0x19, 0x03, 0xbd, 0x12, 0x2c, 0x8b,
+ 0x27, 0xb0, 0x54, 0x1f, 0x3a, 0x41, 0xfc, 0x93, 0xc7, 0x23, 0x0f, 0x4e, 0x58, 0x52, 0xb7, 0xae,
+ 0x8d, 0xd5, 0x20, 0x17, 0xf6, 0x28, 0x60, 0x80, 0xa0, 0x55, 0xf1, 0xd9, 0x8b, 0x94, 0x57, 0xf4,
+ 0x0c, 0x81, 0x3e, 0xdf, 0x08, 0xd0, 0x42, 0xf8, 0xc6, 0x79, 0xc8, 0x18, 0xa1, 0x90, 0xa3, 0xd2,
+ 0x82, 0xe5, 0xf0, 0x8f, 0xfc, 0xcc, 0xd3, 0x46, 0xb6, 0xa3, 0x0b, 0xc7, 0x93, 0x20, 0xac, 0xf3,
+ 0xea, 0x99, 0x56, 0x93, 0x0d, 0xa2, 0xfa, 0x9b, 0xcd, 0x02, 0xb5, 0x17, 0xad, 0xca, 0x3f, 0x30,
+ 0xae, 0x1a, 0xdf, 0xfc, 0x75, 0x98, 0xa2, 0xfa, 0x25, 0xe0, 0x07, 0x9f, 0x0d, 0xb6, 0x81, 0x14,
+ 0xb4, 0x05, 0x17, 0xfb, 0xd8, 0x62, 0x39, 0x5c, 0x4b, 0x59, 0xc9, 0xab, 0xe3, 0x6d, 0xd5, 0x54,
+ 0x9a, 0x24, 0x8c, 0xf2, 0xec, 0xaf, 0x57, 0x75, 0xf9, 0x51, 0x58, 0xf7, 0x12, 0xc3, 0x29, 0x94,
+ 0x63, 0x33, 0xdd, 0x70, 0x42, 0x7b, 0xa4, 0xf2, 0x2f, 0xc1, 0xbd, 0xc6, 0xf8, 0x2e, 0x09, 0x8a,
+ 0x49, 0x6d, 0xed, 0x8d, 0xcf, 0x47, 0xf4, 0x32, 0xdf, 0x5f, 0xd5, 0x92, 0xd7, 0xf0, 0x94, 0x04,
+ 0xe5, 0xa9, 0x86, 0x0b, 0x07, 0x46, 0x49, 0x5d, 0xdb, 0xf4, 0x4f, 0x09, 0xb5, 0x7e, 0xc4, 0x37,
+ 0x42, 0x22, 0x96, 0xe1, 0x7c, 0x52, 0x79, 0x1d, 0x8b, 0x3f, 0xd6, 0x84, 0x11, 0x34, 0x0e, 0x4d,
+ 0xe4, 0xc6, 0xdc, 0x36, 0xb8, 0xeb, 0xa7, 0xf6, 0x2a, 0x30, 0xe0, 0x0b, 0x63, 0x62, 0x4d, 0xc5,
+ 0x15, 0x2f, 0x18, 0x9f, 0xa7, 0x1e, 0x28, 0x60, 0x78, 0x4f, 0x34, 0x2a, 0xf6, 0x6f, 0xaf, 0x47,
+ 0xb7, 0xb4, 0xf9, 0xbc, 0xda, 0x56, 0xc8, 0x62, 0x9b, 0xd6, 0xfb, 0xad, 0x5a, 0x49, 0x8d, 0x81,
+ 0xc8, 0x39, 0xf3, 0x45, 0x31, 0xbf, 0xd6, 0x4a, 0xb9, 0x73, 0xec, 0x53, 0xfd, 0xf4, 0x60, 0x22,
+ 0x06, 0xa1, 0x1f, 0x8e, 0x04, 0x68, 0x21, 0x7c, 0x63, 0xdd, 0x64, 0x0c, 0xb1, 0x48, 0xb0, 0x69,
+ 0x70, 0xbd, 0xda, 0x61, 0xe1, 0x0d, 0xad, 0xee, 0x34, 0x53, 0xed, 0xe0, 0xbf, 0x09, 0x16, 0xa4,
+ 0x9d, 0xea, 0xc9, 0x41, 0x57, 0x6a, 0x98, 0xa2, 0x6b, 0x48, 0x93, 0xf9, 0x75, 0x97, 0x10, 0x0f,
+ 0x41, 0x93, 0x78, 0xa6, 0x7e, 0x66, 0x88, 0x23, 0x5b, 0xb0, 0xe4, 0x82, 0xa8, 0x10, 0x56, 0x98,
+ 0x75, 0xad, 0x2b, 0xa8, 0xe7, 0x51, 0x7d, 0xac, 0x87, 0x01, 0xbb, 0xea, 0xb7, 0x65, 0xfe, 0x18,
+ 0x19, 0xae, 0x26, 0x40, 0xaf, 0xce, 0x6a, 0x98, 0xbe, 0x36, 0xfc, 0x32, 0x57, 0xff, 0x0c, 0x95,
+ 0xc9, 0x56, 0xa9, 0x78, 0x8e, 0x12, 0x38, 0xe1, 0x48, 0xb7, 0x43, 0x51, 0x2b, 0xe8, 0xe9, 0xd0,
+ 0xaa, 0x65, 0x74, 0x08, 0xcc, 0x69, 0x9c, 0x13, 0x67, 0x76, 0xfe, 0x97, 0xd3, 0xc6, 0xe0, 0x5a,
+ 0xfc, 0x07, 0xa0, 0x4b, 0xa8, 0x88, 0x23, 0xc5, 0x65, 0xc2, 0xb3, 0x3b, 0xe2, 0x81, 0xc8, 0xa2,
+ 0x4d, 0x12, 0x46, 0x79, 0x76, 0xb6, 0xca, 0xdb, 0x9d, 0xc9, 0x2c, 0x9a, 0x09, 0x80, 0xf5, 0x4a,
+ 0xbf, 0x4a, 0x6c, 0x97, 0x6b, 0x77, 0xb4, 0x73, 0x1f, 0x39, 0xca, 0xbd, 0x25, 0xa9, 0x4f, 0x1d,
+ 0x2a, 0x5e, 0x30, 0xfd, 0x8d, 0x3c, 0x50, 0xc0, 0xf0, 0x9e, 0x68, 0x54, 0x2f, 0xde, 0x9d, 0x8e,
+ 0x73, 0x0c, 0x34, 0x26, 0xe3, 0x39, 0x5c, 0xd0, 0xe4, 0xdc, 0xdf, 0xe6, 0x06, 0x2d, 0x4e, 0x71,
+ 0x84, 0x44, 0xef, 0x01, 0xf8, 0xa4, 0xf2, 0x3a, 0xd5, 0x7e, 0x6f, 0xcb, 0x22, 0x68, 0x1c, 0x9a,
+ 0xd5, 0xe8, 0x7e, 0xf1, 0x27, 0x80, 0x82, 0x3b, 0x45, 0xd3, 0xe9, 0x69, 0x74, 0x7b, 0x0d, 0xf9,
+ 0xc3, 0x76, 0x88, 0x29, 0x82, 0xaa, 0x5b, 0x65, 0xed, 0x13, 0xef, 0x45, 0x3b, 0x30, 0xfa, 0x6b,
+ 0xaf, 0x75, 0x85, 0xc1, 0xca, 0x35, 0x4c, 0x51, 0xd4, 0x24, 0xa8, 0x9d, 0xdb, 0xaa, 0x08, 0xe6,
+ 0x2b, 0x31, 0x6a, 0xc0, 0x32, 0x91, 0xbe, 0x6b, 0x01, 0x5a, 0xc7, 0x56, 0xf9, 0xc2, 0x14, 0x7c,
+ 0x86, 0x9a, 0x5b, 0x7b, 0x45, 0x3d, 0xed, 0xaf, 0xf4, 0x35, 0xf2, 0xcf, 0x4d, 0x50, 0xcd, 0xbd,
+ 0xa7, 0x8b, 0x10, 0xea, 0x7b, 0x14, 0x30, 0x40, 0x50, 0xcb, 0x99, 0x8d, 0xa4, 0x4a, 0xca, 0x7a,
+ 0xb1, 0x15, 0xe6, 0x32, 0xde, 0x3e, 0xe9, 0x1e, 0xf8, 0x0b, 0x9f, 0xa1, 0xeb, 0x01, 0x3d, 0xe8,
+ 0xb2, 0xa4, 0x08, 0x75, 0xdc, 0x0a, 0x18, 0x20, 0x28, 0x84, 0xad, 0xa7, 0x52, 0x25, 0x65, 0x3d,
+ 0x5b, 0x8c, 0xb0, 0xa1, 0xd3, 0x9c, 0x13, 0x85, 0x35, 0x09, 0x2a, 0xb6, 0x46, 0xcb, 0x02, 0xd8,
+ 0x46, 0x5d, 0x3d, 0x15, 0xc5, 0xa3, 0x47, 0xf4, 0xc9, 0xa9, 0x2f, 0x8c, 0xcf, 0x44, 0x6f, 0x03,
+ 0xd3, 0x49, 0x61, 0x7f, 0x23, 0xe8, 0xa3, 0x47, 0x26, 0x0e, 0x8d, 0x65, 0xc5, 0x33, 0xbd, 0x90,
+ 0x9f, 0x34, 0x7d, 0x3b, 0xea, 0xf3, 0x87, 0x37, 0x4a, 0x03, 0x0e, 0xfd, 0x1a, 0xaf, 0xc1, 0x28,
+ 0xfd, 0x68, 0xfa, 0x76, 0x17, 0x25, 0xcd, 0x6e, 0x94, 0x06, 0x1c, 0x39, 0x34, 0x9d, 0x41, 0x50,
+ 0xd4, 0x87, 0x24, 0xcc, 0x98, 0x2d, 0x6c, 0x90, 0xb4, 0x17, 0x46, 0x6b, 0xa2, 0x67, 0x84, 0x0b,
+ 0x0f, 0x30, 0xd0, 0x98, 0x0a, 0xe4, 0xb3, 0xc6, 0x16, 0xf6, 0xfa, 0x1e, 0x18, 0xb4, 0xfb, 0x07,
+ 0x9c, 0x85, 0x93, 0x7c, 0xe8, 0xc7, 0x76, 0x09, 0x9a, 0x8c, 0x3c, 0xfb, 0xa3, 0x8b, 0x99, 0xfd,
+ 0x2f, 0x4e, 0xc1, 0x34, 0x8b, 0x60, 0x80, 0x82, 0x43, 0xcc, 0x3e, 0x5e, 0x27, 0xb2, 0x75, 0x32,
+ 0x9b, 0x4b, 0xd6, 0xcf, 0x53, 0x02, 0xb9, 0xde, 0x08, 0x95, 0xf7, 0xf5, 0xc4, 0xdf, 0xa0, 0x66,
+ 0x43, 0x4d, 0xcc, 0xdc, 0xc3, 0xff, 0x97, 0xb6, 0x7a, 0xfb, 0x79, 0x86, 0xc7, 0x28, 0x87, 0xbf,
+ 0xef, 0x89, 0xa7, 0x5a, 0x0b, 0xfe, 0x2a, 0xd9, 0x7e, 0x50, 0xe3, 0x1d, 0xa5, 0xa6, 0xd7, 0x8c,
+ 0xd9, 0x69, 0x40, 0x2e, 0x2f, 0x50, 0xc0, 0xc3, 0x83, 0xaa, 0x21, 0x71, 0xd5, 0xeb, 0xae, 0x2b,
+ 0x79, 0x2c, 0x15, 0x77, 0xef, 0x81, 0x3f, 0x54, 0x41, 0x78, 0x73, 0xf2, 0x16, 0xf5, 0x5d, 0xca,
+ 0xb6, 0xdb, 0xa3, 0x81, 0x65, 0xfb, 0x26, 0xc9, 0x6a, 0x12, 0x54, 0xaf, 0x8c, 0x55, 0x04, 0x73,
+ 0x53, 0x72, 0x25, 0x8a, 0x62, 0xbd, 0x6f, 0x94, 0xb1, 0xe6, 0x1b, 0xa6, 0x39, 0x2b, 0xc0, 0x44,
+ 0x7f, 0x8d, 0x0a, 0xf9, 0xeb, 0xe9, 0x1e, 0x28, 0x22, 0xa5, 0x17, 0xfe, 0xa7, 0xbd, 0xed, 0xa3,
+ 0xc1, 0xa8, 0x3c, 0x53, 0x3f, 0x33, 0x44, 0xf0, 0xcc, 0x58, 0x72, 0x41, 0x54, 0x08, 0x2b, 0x4c,
+ 0xf0, 0x86, 0x9e, 0x94, 0xa0, 0x58, 0x61, 0x3d, 0xa3, 0xbb, 0x7b, 0x23, 0x43, 0x11, 0x6b, 0x70,
+ 0x23, 0xcf, 0xff, 0xeb, 0x83, 0xb0, 0xc2, 0x7a, 0x85, 0xb5, 0xf6, 0x46, 0x86, 0x22, 0xd6, 0xe0,
+ 0xe7, 0x77, 0x32, 0x71, 0xba, 0xdf, 0x56, 0xc8, 0xfa, 0xbf, 0xd2, 0x0d, 0xda, 0x46, 0x15, 0x10,
+ 0x25, 0x6e, 0xe0, 0x65, 0x87, 0xd8, 0xe3, 0x06, 0xe6, 0x68, 0x92, 0x4a, 0x37, 0x6a, 0x66, 0x89,
+ 0x5e, 0x9c, 0x41, 0x68, 0xd5, 0xc0, 0xc3, 0xc7, 0x86, 0x5b, 0x7c, 0xbc, 0x4e, 0xa7, 0xea, 0x64,
+ 0xb5, 0x6a, 0x4d, 0xc6, 0x67, 0xcf, 0xd7, 0xf7, 0xba, 0x9d, 0x66, 0xa9, 0x35, 0x71, 0x5c, 0xa6,
+ 0x1e, 0x60, 0x63, 0xf3, 0x14, 0x0b, 0xa5, 0x4f, 0x2c, 0x2f, 0x37, 0x3c, 0x30, 0xab, 0x35, 0x0e,
+ 0xa2, 0x9b, 0xe1, 0x23, 0x7d, 0x48, 0xe0, 0x02, 0xe3, 0x99, 0xcf, 0x87, 0xac, 0x26, 0x22, 0xc6,
+ 0xdf, 0xc8, 0x5f, 0xa0, 0x2b, 0x38, 0xe1, 0xbf, 0xe0, 0x77, 0x45, 0x7d, 0x64, 0xa3, 0x1e, 0x42,
+ 0xa6, 0xe4, 0x4a, 0xd7, 0xc4, 0xb9, 0xde, 0xeb, 0xa1, 0x0f, 0x36, 0x8f, 0x72, 0x56, 0x43, 0x88,
+ 0xfe, 0xd9, 0x14, 0x31, 0x15, 0x11, 0x3c, 0x50, 0x44, 0x89, 0x2e, 0x3f, 0x8d, 0xb9, 0x19, 0x85,
+ 0xac, 0xc4, 0x6b, 0x86, 0xc8, 0x01, 0xbd, 0x6f, 0x04, 0xab, 0x9a, 0x9b, 0x62, 0x8e, 0x50, 0x33,
+ 0x22, 0xa0, 0xa5, 0xd6, 0x3c, 0x1d, 0x2c, 0xd1, 0x74, 0x71, 0x59, 0x44, 0x50, 0x3e, 0x5f, 0x12,
+ 0xf9, 0x17, 0x51, 0x82, 0xae, 0xd4, 0xf3, 0x87, 0xd6, 0x90, 0xe5, 0x31, 0xea, 0xed, 0x20, 0x1e,
+ 0xe2, 0x67, 0xc3, 0xb8, 0xbc, 0x83, 0x86, 0x8a, 0x49, 0xed, 0x84, 0x07, 0xd2, 0x2a, 0xfd, 0xac,
+ 0x4a, 0xdc, 0x03, 0xca, 0xcd, 0x73, 0x05, 0x0c, 0x0f, 0xd0, 0xe7, 0x94, 0x6e, 0xd4, 0xcc, 0xd1,
+ 0xbc, 0xfb, 0x82, 0xd0, 0x69, 0x43, 0x45, 0x4d, 0xcf, 0xb6, 0xf8, 0xbb, 0x9c, 0x8d, 0x17, 0xc8,
+ 0x35, 0x51, 0x09, 0x33, 0x26, 0x9a, 0x1b, 0x24, 0x2d, 0x75, 0xf0, 0x6a, 0xc9, 0x69, 0x21, 0x72,
+ 0xca, 0xe7, 0x47, 0x3f, 0x8c, 0x26, 0xc9, 0xdf, 0x98, 0x38, 0x71, 0x57, 0x92, 0xcc, 0xb1, 0x05,
+ 0xee, 0xe6, 0xfd, 0x67, 0xb4, 0x53, 0xc4, 0x72, 0x8f, 0x94, 0x4c, 0x1f, 0x73, 0xba, 0x5e, 0x7e,
+ 0x78, 0x43, 0x4f, 0x4a, 0x50, 0x2c, 0xd1, 0xff, 0xb0, 0xbc, 0xdc, 0xf0, 0xc0, 0xe9, 0xd4, 0x38,
+ 0x05, 0x10, 0xf1, 0xc9, 0x06, 0x5c, 0xd0, 0x42, 0xb3, 0x52, 0x56, 0x0a, 0x08, 0x6c, 0xe8, 0xbc,
+ 0x6b, 0xcd, 0x48, 0x5b, 0xf3, 0x5a, 0xd8, 0xe3, 0xab, 0x2e, 0x8c, 0xd6, 0x87, 0xce, 0xcb, 0x16,
+ 0x51, 0xac, 0x91, 0xf0, 0xdf, 0x24, 0x70, 0x01, 0x90, 0xad, 0x86, 0xa2, 0x56, 0x13, 0x11, 0x63,
+ 0xe1, 0xd6, 0x2d, 0xff, 0xbe, 0xb7, 0x77, 0xb4, 0x99, 0x62, 0xb6, 0x01, 0x6b, 0x0e, 0xa5, 0x79,
+ 0x59, 0x52, 0x04, 0xdb, 0x6e, 0x05, 0x0c, 0x10, 0x14, 0x42, 0xb7, 0xb2, 0x29, 0xf3, 0xd3, 0xff,
+ 0xa3, 0xf4, 0xbb, 0x1e, 0xc2, 0xe5, 0x0e, 0xa9, 0x12, 0x5d, 0x60, 0x85, 0x7a, 0x3a, 0xab, 0x34,
+ 0xf2, 0x58, 0x2a, 0xee, 0x1d, 0xc1, 0x7e, 0xa8, 0x82, 0xf0, 0xe6, 0x27, 0x2c, 0x29, 0xba, 0x57,
+ 0x71, 0xd2, 0x80, 0x5c, 0x5e, 0xa0, 0x43, 0x45, 0xc5, 0x97, 0x42, 0xe2, 0x69, 0x15, 0x9f, 0x56,
+ 0x56, 0x62, 0xd4, 0x43, 0x64, 0xe1, 0xbf, 0xd6, 0x02, 0xb4, 0x4d, 0xac, 0x31, 0x47, 0x28, 0xf8,
+ 0x11, 0x50, 0xb3, 0x6b, 0x1e, 0xef, 0x16, 0x89, 0x3a, 0xd9, 0xcd, 0x22, 0x28, 0x1f, 0xce, 0x09,
+ 0x6a, 0xa2, 0x12, 0x66, 0x4c, 0xf7, 0x36, 0x48, 0x5a, 0xea, 0x23, 0xd4, 0x51, 0xd2, 0x42, 0xe4,
+ 0x89, 0xaa, 0x8b, 0xe3, 0x4f, 0xd9, 0x5e, 0x69, 0xe2, 0xc3, 0x08, 0xd1, 0x55, 0xe4, 0x36, 0xba,
+ 0x94, 0x7b, 0x06, 0x57, 0x59, 0xe6, 0x0a, 0x18, 0x1e, 0x63, 0x0d, 0xeb, 0xdc, 0x6b, 0x5b, 0x61,
+ 0x65, 0x92, 0xc2, 0xfe, 0x46, 0x13, 0x85, 0x8e, 0x4c, 0x1c, 0xd9, 0xca, 0x49, 0x66, 0xb9, 0xe3,
+ 0x8c, 0xba, 0x7a, 0x2a, 0x49, 0x85, 0x8e, 0x2b, 0x51, 0x91, 0x5e, 0xdb, 0x5d, 0x88, 0xde, 0x06,
+ 0xbb, 0x35, 0xc7, 0x63, 0xd2, 0x86, 0x8a, 0x9a, 0x5d, 0xaf, 0x33, 0xb5, 0xfb, 0xd9, 0x2e, 0x53,
+ 0x77, 0x73, 0x9f, 0xd2, 0x5a, 0xc8, 0x62, 0x39, 0xa6, 0x4a, 0x26, 0xee, 0xd8, 0x5d, 0x2f, 0x3f,
+ 0x3c, 0xc0, 0xc6, 0x25, 0x28, 0x16, 0x89, 0x9e, 0x58, 0x5e, 0x6e, 0x78, 0x60, 0x95, 0x6a, 0x1c,
+ 0x7b, 0xf2, 0xa1, 0x0d, 0x52, 0x18, 0x20, 0xc1, 0x60, 0x33, 0xee, 0xf6, 0x79, 0xcd, 0x8c, 0xed,
+ 0x28, 0x80, 0x84, 0x87, 0x30, 0xa5, 0x4f, 0x55, 0xd1, 0xd5, 0xf5, 0x50, 0x40, 0xe6, 0x4c, 0xa9,
+ 0xab, 0x0a, 0x2e, 0x35, 0x73, 0xc4, 0x72, 0xb8, 0x96, 0xb2, 0x51, 0x95, 0x05, 0xda, 0x69, 0xa8,
+ 0xd2, 0x26, 0x3b, 0x42, 0x9c, 0x45, 0x4d, 0xec, 0xd7, 0xca, 0x22, 0x67, 0x13, 0x2f, 0x34, 0x62,
+ 0x31, 0x2e, 0xa2, 0xc7, 0x9f, 0x6b, 0x25, 0xcd, 0x6f, 0xe3, 0x09, 0x62, 0x17, 0x19, 0x40, 0x3c,
+ 0xde, 0xa7, 0x05, 0x9d, 0x94, 0x95, 0x0f, 0x14, 0x11, 0xb3, 0xea, 0x7f, 0xb2, 0xbf, 0x97, 0xb0,
+ 0xc4, 0xb8, 0xcd, 0x9a, 0x39, 0x6f, 0x94, 0xb2, 0x7f, 0x0a, 0x24, 0x4b, 0x5c, 0x64, 0xc3, 0xf0,
+ 0x5f, 0xf3, 0x1b, 0x55, 0x6a, 0x6d, 0x2d, 0x6c, 0x77, 0x9f, 0xd3, 0xbe, 0x98, 0xbb, 0x63, 0x96,
+ 0xcc, 0x46, 0x58, 0xb1, 0x88, 0x4e, 0xe8, 0xa3, 0xfb, 0xe5, 0x15, 0x5b, 0x23, 0x84, 0x01, 0x6c,
+ 0xcf, 0xf7, 0xb6, 0xf6, 0x8a, 0x7a, 0x19, 0x9d, 0x2b, 0x6a, 0x27, 0x5d, 0x9a, 0xa0, 0x59, 0xb9,
+ 0x76, 0x1c, 0xc5, 0xef, 0xe5, 0x65, 0x8c, 0x92, 0x57, 0x8e, 0x89, 0xec, 0x0e, 0x41, 0xa6, 0xcd,
+ 0x2c, 0xff, 0x2f, 0x73, 0x89, 0x54, 0x71, 0xbc, 0x93, 0x43, 0x0c, 0x58, 0x9e, 0x96, 0x2d, 0xe7,
+ 0xb8, 0x84, 0x29, 0x24, 0xd0, 0xb2, 0x7b, 0xa4, 0x8d, 0x20, 0x01, 0xb3, 0x42, 0xfd, 0x76, 0x86,
+ 0xd8, 0x06, 0x1a, 0x13, 0x90, 0xfd, 0x2e, 0x68, 0x72, 0x6e, 0x8e, 0x73, 0x03, 0xf7, 0x27, 0xd9,
+ 0x2e, 0x21, 0x9b, 0x09, 0x34, 0xcd, 0x6e, 0x29, 0xb2, 0x08, 0x91, 0x5c, 0xf1, 0xae, 0xfc, 0xc0,
+ 0x36, 0xe0, 0xe7, 0x74, 0x24, 0xae, 0xea, 0x1a, 0xfd, 0xfa, 0xc2, 0x6c, 0x70, 0x4d, 0x79, 0xa7,
+ 0xdb, 0xb7, 0xf4, 0x54, 0x92, 0xc9, 0xdf, 0x56, 0xa2, 0xe1, 0xbc, 0x75, 0xba, 0xd3, 0x7f, 0x0c,
+ 0x69, 0x13, 0xfc, 0x21, 0x4e, 0xc3, 0xc7, 0x76, 0x8a, 0x65, 0x11, 0xd2, 0xe8, 0xf6, 0x1a, 0x31,
+ 0xb3, 0xcb, 0x52, 0x48, 0x63, 0xa7, 0xf6, 0x8b, 0xd9, 0x40, 0x02, 0xa5, 0x84, 0x39, 0xec, 0xcf,
+ 0x14, 0x40, 0x42, 0xa2, 0x18, 0xb3, 0xc6, 0xcb, 0x89, 0x8b, 0x9b, 0x28, 0x20, 0x73, 0x26, 0xb5,
+ 0x95, 0x14, 0x5c, 0x6a, 0xe6, 0x4b, 0xe4, 0xb3, 0xef, 0xa7, 0xa2, 0xe9, 0x0a, 0x77, 0xd2, 0x93,
+ 0xbe, 0x25, 0x36, 0xaa, 0xd4, 0xda, 0x5a, 0xd8, 0xee, 0xfd, 0x65, 0xbf, 0xf3, 0xb5, 0xc6, 0xef,
+ 0x62, 0x5c, 0x87, 0x4d, 0xfd, 0xd6, 0x4a, 0x59, 0xde, 0x05, 0x12, 0xc4, 0x2e, 0x32, 0x80, 0x78,
+ 0xa1, 0x2a, 0x0f, 0x64, 0x7f, 0x7c, 0x11, 0x3c, 0x33, 0x16, 0xfd, 0x81, 0x15, 0x02, 0x7a, 0x13,
+ 0x3b, 0x0e, 0x83, 0x96, 0x93, 0xd3, 0x46, 0x49, 0xca, 0x47, 0xa5, 0x76, 0x07, 0xc1, 0x53, 0x87,
+ 0x16, 0x9e, 0xf6, 0xd8, 0xa5, 0x2a, 0xd9, 0x5e, 0xa8, 0xc0, 0x06, 0x2c, 0x4f, 0x4b, 0xf7, 0x92,
+ 0x66, 0x23, 0x2c, 0xb9, 0x44, 0x27, 0x74, 0xb0, 0x9c, 0x93, 0xeb, 0xcc, 0xf0, 0x42, 0xe1, 0x36,
+ 0xe9, 0x28, 0xb8, 0xd4, 0x0f, 0x96, 0x0b, 0xa5, 0x1d, 0x8d, 0x87, 0x11, 0x14, 0xee, 0x67, 0xe5,
+ 0x5c, 0x42, 0xf5, 0x12, 0x68, 0x59, 0xdc, 0x52, 0xa7, 0x10, 0xe1, 0xb8, 0x21, 0x9f, 0x3b, 0x43,
+ 0x6c, 0x03, 0x0d, 0xe8, 0x48, 0x9f, 0x17, 0x34, 0x39, 0x37, 0x47, 0xd8, 0xe0, 0x9a, 0xf2, 0x8d,
+ 0x6d, 0x6c, 0x57, 0xd5, 0xf7, 0x32, 0xf9, 0x9f, 0xc8, 0xf3, 0xe8, 0xda, 0x36, 0x86, 0x7b, 0x7f,
+ 0xad, 0xab, 0x31, 0xbb, 0x77, 0xac, 0x53, 0xc4, 0xf5, 0x6f, 0x35, 0x99, 0xb4, 0x92, 0xd9, 0xc1,
+ 0x37, 0x8f, 0xbd, 0x49, 0x9b, 0x03, 0x04, 0xb1, 0x0c, 0x3e, 0x6d, 0x6e, 0xa6, 0x51, 0xf0, 0x55,
+ 0x61, 0xed, 0x69, 0x0a, 0xff, 0xe2, 0xbb, 0x67, 0x0e, 0x8a, 0x20, 0xc2, 0x97, 0x16, 0xd8, 0xad,
+ 0x4b, 0xb3, 0x59, 0xf7, 0x72, 0xde, 0xeb, 0xa7, 0xfe, 0x14, 0x48, 0x96, 0xb8, 0xc8, 0x45, 0x23,
+ 0xb9, 0xeb, 0x73, 0x19, 0x6f, 0x1f, 0x95, 0x0f, 0x7c, 0xe4, 0xae, 0xb1, 0x94, 0xe1, 0xff, 0x74,
+ 0xe3, 0x08, 0x99, 0x85, 0x03, 0x2e, 0x68, 0x21, 0xb8, 0x29, 0x2b, 0x05, 0x04, 0x36, 0x74, 0x5e,
+ 0xba, 0x5a, 0x9d, 0x5e, 0x6d, 0x2b, 0x64, 0x31, 0xac, 0x6b, 0x9c, 0xb7, 0x2d, 0xc5, 0xa7, 0xa1,
+ 0xf1, 0xe9, 0xc4, 0xa9, 0x1f, 0xf5, 0x8f, 0x96, 0x52, 0x7f, 0xd4, 0x21, 0x95, 0x0d, 0xe2, 0x82,
+ 0xa0, 0x45, 0x55, 0x59, 0xc0, 0xd1, 0xff, 0x97, 0xc2, 0xd2, 0x52, 0x83, 0xc3, 0x1e, 0xf3, 0xe1,
+ 0x85, 0x2b, 0xb5, 0x3c, 0x47, 0x09, 0x1c, 0x91, 0x24, 0xba, 0xc0, 0xc9, 0xf4, 0x74, 0x95, 0x68,
+ 0x83, 0x8a, 0xaa, 0xb2, 0x43, 0x61, 0x3d, 0xed, 0x47, 0x67, 0xa4, 0xc5, 0x45, 0x3c, 0x25, 0x01,
+ 0xda, 0xd8, 0xae, 0x69, 0x2d, 0x64, 0x31, 0xfd, 0x53, 0x25, 0x13, 0x77, 0x6c, 0xcf, 0xf6, 0xfe,
+ 0x47, 0x32, 0x67, 0x28, 0x7a, 0x0e, 0xa9, 0x5f, 0x38, 0x6d, 0x80, 0x8e, 0x19, 0x58, 0xe6, 0xf1,
+ 0xc5, 0xd7, 0x97, 0xa7, 0x86, 0xc2, 0x7a, 0x19, 0x8e, 0xce, 0x8b, 0x49, 0x8a, 0x78, 0x4a, 0x02,
+ 0xb0, 0x7a, 0xbc, 0x0f, 0x61, 0x93, 0x07, 0xb5, 0x09, 0xcf, 0x30, 0xa3, 0x3d, 0x1d, 0xb4, 0x1a,
+ 0x33, 0xf0, 0x16, 0xbd, 0x22, 0xf2, 0x3a, 0x58, 0x4e, 0xa8, 0x94, 0x66, 0x78, 0x21, 0x91, 0x1b,
+ 0xfa, 0xa6, 0xbf, 0xc5, 0xac, 0xe0, 0x02, 0xb9, 0x06, 0x1f, 0xd7, 0x37, 0x53, 0xc9, 0x78, 0xcb,
+ 0x96, 0xa5, 0xb2, 0x2d, 0xe4, 0x7f, 0x15, 0x8d, 0x3f, 0x28, 0x90, 0xef, 0xb3, 0x53, 0x8a, 0x46,
+ 0x6f, 0xb2, 0xe3, 0xaf, 0x4a, 0xab, 0xe6, 0x0a, 0xe9, 0xb8, 0x75, 0xde, 0x59, 0xbe, 0xaa, 0x58,
+ 0x6e, 0xdd, 0xb9, 0x92, 0xf5, 0x06, 0x08, 0xa1, 0x18, 0x7c, 0xda, 0xdc, 0x8f, 0xa2, 0x23, 0xaa,
+ 0xc2, 0x19, 0xd2, 0x14, 0x3d, 0x07, 0xb5, 0xce, 0x1c, 0xd7, 0x40, 0x47, 0xed, 0x2c, 0x73, 0x99,
+ 0xf6, 0x27, 0x81, 0x1a, 0xa4, 0x30, 0x40, 0x41, 0xc0, 0x66, 0x1f, 0x2f, 0xf2, 0x59, 0xdb, 0x19,
+ 0x50, 0xc3, 0xcb, 0xcd, 0x60, 0x89, 0x9e, 0xaa, 0x61, 0x69, 0x29, 0xa0, 0x80, 0x0f, 0x98, 0x91,
+ 0xff, 0xb6, 0x4e, 0x0c, 0xaa, 0xbc, 0xd2, 0xfb, 0xb5, 0x4d, 0x81, 0x3d, 0x5b, 0xa5, 0x90, 0x77,
+ 0x5d, 0x2d, 0xaf, 0x2f, 0xd7, 0xf4, 0x32, 0xf9, 0x56, 0xd4, 0x4e, 0xba, 0xf7, 0x83, 0xb2, 0xb1,
+ 0xa9, 0xd4, 0x9a, 0x4f, 0xce, 0x5d, 0x6d, 0x2d, 0xb7, 0xf9, 0xcc, 0x91, 0x6a, 0xe2, 0xb8, 0x8f,
+ 0x8e, 0x64, 0xce, 0x50, 0xf4, 0x1c, 0x91, 0xbe, 0x70, 0xda, 0xc3, 0xdf, 0x32, 0xb0, 0x0f, 0x21,
+ 0x17, 0xf1, 0xac, 0xe5, 0x1a, 0x87, 0x37, 0xf5, 0x59, 0x04, 0xa9, 0x2e, 0x99, 0x57, 0x7e, 0x60,
+ 0x1b, 0x70, 0x92, 0x3a, 0x12, 0x57, 0x75, 0x0d, 0x9f, 0x7d, 0x61, 0x36, 0x38, 0xc7, 0xdd, 0xb2,
+ 0x97, 0xca, 0xe8, 0x10, 0x5b, 0xd2, 0xfb, 0x26, 0xce, 0xec, 0x3f, 0xed, 0x65, 0x4f, 0x03, 0xb4,
+ 0x7d, 0x53, 0xbe, 0x83, 0x56, 0x70, 0x01, 0xbd, 0x03, 0xee, 0x8a, 0xfa, 0xc8, 0x85, 0x3c, 0x84,
+ 0xec, 0x38, 0x49, 0x1d, 0x09, 0xca, 0xdb, 0xe7, 0xae, 0xdf, 0xd1, 0x1b, 0x1c, 0x82, 0x8f, 0x59,
+ 0x58, 0x3d, 0x5e, 0xe6, 0xd1, 0xa8, 0xe2, 0xbb, 0xe5, 0x86, 0x18, 0xb0, 0xff, 0xef, 0x5a, 0x0d,
+ 0xf7, 0x48, 0xdb, 0x27, 0x1b, 0x9d, 0xae, 0xea, 0x31, 0xa2, 0xb0, 0x2d, 0x24, 0x45, 0x52, 0xeb,
+ 0x1f, 0x0f, 0x39, 0xce, 0xab, 0xa6, 0x4b, 0xe4, 0xdd, 0xeb, 0x98, 0x3e, 0xe6, 0xb7, 0xbc, 0xfc,
+ 0xfb, 0xc9, 0xe5, 0xf8, 0x13, 0x4d, 0xec, 0x12, 0xf7, 0xdb, 0x78, 0x35, 0x85, 0xd5, 0xf1, 0x39,
+ 0x7c, 0x3c, 0xe4, 0xbe, 0xe9, 0xdd, 0xef, 0x16, 0xf2, 0x2a, 0x25, 0xf8, 0x1e, 0x99, 0xb5, 0x76,
+ 0x09, 0x91, 0xcf, 0x16, 0x0e, 0x8c, 0x92, 0xba, 0x75, 0x2b, 0x9e, 0x12, 0xa9, 0xfc, 0x4b, 0x6e,
+ 0x0d, 0xee, 0x64, 0xe2, 0xb7, 0x7d, 0xac, 0x53, 0x37, 0xbd, 0x67, 0x1a, 0x77, 0x8c, 0x2a, 0x20,
+ 0x7a, 0x9d, 0xfb, 0x30, 0xed, 0xb5, 0xce, 0x6a, 0x91, 0xf7, 0x41, 0xf4, 0xaf, 0xd1, 0x05, 0x1f,
+ 0x67, 0x4c, 0x76, 0x84, 0xfb, 0x8a, 0x9a, 0x1b, 0x6d, 0x57, 0x44, 0xce, 0x26, 0x5e, 0x68, 0xc4,
+ 0x45, 0xec, 0xd3, 0x52, 0xc7, 0x97, 0xb6, 0xca, 0x19, 0x26, 0x1d, 0x8a, 0x76, 0x60, 0x37, 0xd6,
+ 0x87, 0xf5, 0x01, 0x46, 0xfa, 0x90, 0x03, 0x04, 0x05, 0xf1, 0x5d, 0xcd, 0x9b, 0x4c, 0x44, 0x4f,
+ 0xdc, 0x79, 0xb1, 0xe7, 0x29, 0x0c, 0x10, 0x81, 0x30, 0xf8, 0x77, 0x7b, 0xdd, 0x87, 0x46, 0x97,
+ 0xe8, 0x47, 0xe2, 0xe9, 0xb0, 0x3b, 0xe5, 0x0e, 0xec, 0x49, 0x28, 0x13, 0xc2, 0xf2, 0xee, 0x17,
+ 0x4f, 0xcc, 0xf2, 0x03, 0xcb, 0x2f, 0xd5, 0x4e, 0xbc, 0x82, 0xb1, 0x9e, 0x66, 0xb8, 0x24, 0x6d,
+ 0x1d, 0xd1, 0x8d, 0xb4, 0x16, 0x3f, 0x54, 0x71, 0xfc, 0xa0, 0x05, 0x3a, 0x89, 0x8f, 0x6d, 0xdb,
+ 0x4e, 0xa3, 0xa8, 0x3e, 0x74, 0x82, 0x3b, 0xe5, 0x4d, 0x46, 0x1e, 0x9c, 0xb0, 0xa4, 0xad, 0x9f,
+ 0x04, 0x7f, 0xab, 0xf4, 0xb9, 0xf1, 0x3e, 0xe9, 0x42, 0x96, 0xf9, 0x08, 0xde, 0x70, 0x61, 0x4e,
+ 0xeb, 0xf6, 0x0c, 0xae, 0xb2, 0x0f, 0x14, 0x30, 0x3c, 0xc6, 0x1a, 0x15, 0x7b, 0xd6, 0xb6, 0xc2,
+ 0xf8, 0x78, 0x0b, 0xbf, 0x11, 0x79, 0x1d, 0x2c, 0x27, 0x54, 0x4a, 0x33, 0x3c, 0xf1, 0xa9, 0xec,
+ 0xf3, 0x37, 0x70, 0xd3, 0xa2, 0x6c, 0x90, 0x03, 0x73, 0x34, 0x49, 0x25, 0xfa, 0x35, 0x33, 0xa5,
+ 0x3e, 0x1e, 0x72, 0x5f, 0x95, 0x8f, 0x96, 0x0b, 0x79, 0x15, 0xf3, 0x7c, 0x0f, 0xad, 0xbb, 0x3b,
+ 0x3d, 0xaf, 0x9c, 0x18, 0x97, 0xbb, 0x67, 0x35, 0xa9, 0x9a, 0xc1, 0x7a, 0xb6, 0x89, 0xe3, 0xee,
+ 0xbd, 0x94, 0xd8, 0xed, 0xd6, 0xee, 0xab, 0xe6, 0x3e, 0x72, 0x57, 0xb9, 0x4a, 0x91, 0x9e, 0x3a,
+ 0x8a, 0x1b, 0x65, 0xa4, 0x4d, 0xed, 0xaf, 0x57, 0x32, 0x4c, 0x3a, 0xd7, 0xec, 0xc0, 0x6e, 0x6f,
+ 0x88, 0xc5, 0xd1, 0xde, 0xf0, 0x74, 0xb0, 0xc2, 0x13, 0x07, 0xa7, 0xd3, 0x83, 0xf8, 0xbf, 0x48,
+ 0xdd, 0x16, 0xeb, 0xda, 0x96, 0xa1, 0xfe, 0x2a, 0xc1, 0x3c, 0xd8, 0x79, 0x0b, 0x9b, 0xcf, 0x65,
+ 0xcd, 0x29, 0x02, 0x8c, 0x37, 0xe3, 0x06, 0x08, 0x0a, 0x21, 0xba, 0x59, 0xf5, 0x98, 0x88, 0x9e,
+ 0x0b, 0x4f, 0x7b, 0x6c, 0xb3, 0x15, 0x8d, 0x2f, 0x54, 0x60, 0x03, 0x16, 0xc6, 0xc4, 0x9a, 0x49,
+ 0x13, 0x8e, 0x07, 0x11, 0xa3, 0x76, 0x09, 0x1c, 0x1b, 0x92, 0x50, 0x26, 0x47, 0x27, 0x1f, 0x2e,
+ 0x98, 0xfa, 0x38, 0x88, 0x51, 0x36, 0x48, 0xe0, 0xd8, 0x1a, 0xc5, 0xf3, 0x7d, 0xfb, 0xf8, 0xb3,
+ 0x02, 0xde, 0xb4, 0x7a, 0xbd, 0x99, 0x1f, 0x95, 0x21, 0x4b, 0x9d, 0x04, 0x6f, 0x38, 0xd1, 0x27,
+ 0x93, 0xb5, 0x43, 0xe4, 0xe2, 0x23, 0xc5, 0xcf, 0x8c, 0x7a, 0xc6, 0xe5, 0xbb, 0x3f, 0x62, 0xfa,
+ 0x80, 0x3b, 0x44, 0xf5, 0x41, 0x55, 0xcc, 0xd3, 0x97, 0xe8, 0x96, 0xc3, 0xfc, 0x18, 0x7d, 0xd4,
+ 0x90, 0x04, 0xad, 0xa3, 0xe0, 0x17, 0x34, 0xf1, 0x5c, 0xf5, 0xf4, 0xe3, 0x02, 0x1b, 0x3a, 0x2f,
+ 0xd0, 0xf8, 0x8f, 0x38, 0x21, 0xdc, 0x52, 0x79, 0xf6, 0x81, 0xbf, 0x63, 0x7c, 0x17, 0xe5, 0x45,
+ 0x24, 0x01, 0xba, 0x58, 0x38, 0x75, 0x0d, 0xad, 0x17, 0xac, 0x3d, 0x48, 0xe1, 0x76, 0xef, 0x7b,
+ 0x34, 0x3e, 0x53, 0x0e, 0x99, 0x37, 0xf5, 0x8f, 0xdc, 0xb1, 0x5f, 0x68, 0x1f, 0x75, 0xa8, 0x80,
+ 0xcb, 0x88, 0x1d, 0x02, 0x33, 0x8b, 0x27, 0x74, 0x69, 0xfc, 0xde, 0x55, 0x44, 0xd0, 0x38, 0xf7,
+ 0xed, 0x57, 0x13, 0x20, 0xb6, 0x67, 0x35, 0x4c, 0x5f, 0x1b, 0x7e, 0x19, 0xca, 0x9e, 0x06, 0xab,
+ 0xf4, 0xf9, 0x35, 0x60, 0x19, 0xa9, 0x5f, 0xd4, 0xe1, 0x2d, 0x82, 0x2b, 0x9d, 0x61, 0x0a, 0x3e,
+ 0xce, 0x98, 0xec, 0xcb, 0x35, 0xd7, 0xf7, 0x36, 0xda, 0xae, 0x88, 0x5f, 0x4c, 0xbc, 0xd0, 0x4b,
+ 0x99, 0x95, 0x62, 0xb5, 0xee, 0x9b, 0xa6, 0x4b, 0x29, 0xde, 0x6a, 0xf1, 0xab, 0xe7, 0x71, 0x41,
+ 0x10, 0x3f, 0xe9, 0x56, 0xa1, 0x42, 0xf8, 0x22, 0xcb, 0x1d, 0x62, 0x20, 0xfe, 0x03, 0x47, 0xfb,
+ 0x44, 0x83, 0x89, 0x6f, 0x78, 0x3a, 0x58, 0x61, 0xe8, 0xe2, 0xb2, 0x88, 0xa0, 0x7c, 0xbe, 0x24,
+ 0x40, 0xfc, 0x22, 0x9b, 0xc1, 0xcb, 0x66, 0x88, 0xaa, 0x74, 0x4b, 0x80, 0x7e, 0x0c, 0xdf, 0x6a,
+ 0x92, 0xda, 0x19, 0xd9, 0x5d, 0x8e, 0x2b, 0x64, 0x7d, 0xbe, 0x69, 0xe7, 0x6d, 0x23, 0xeb, 0x08,
+ 0x3a, 0x61, 0xd9, 0xab, 0x2c, 0x7e, 0xa8, 0xe2, 0x3b, 0x83, 0x0a, 0x74, 0xd1, 0xdd, 0xda, 0x75,
+ 0x01, 0x6f, 0x5a, 0x3d, 0xbf, 0xad, 0xee, 0xab, 0xf1, 0xc4, 0xaf, 0x02, 0xd6, 0x1c, 0x89, 0xf2,
+ 0x26, 0xdf, 0x0e, 0x22, 0x85, 0xec, 0x12, 0x38, 0x36, 0xe7, 0xa0, 0x4c, 0x8e, 0x4e, 0x3e, 0x5c,
+ 0x12, 0xe1, 0x5d, 0x2c, 0x1c, 0xdb, 0xe7, 0xb7, 0xea, 0x56, 0xff, 0x24, 0x91, 0x3b, 0x96, 0xdc,
+ 0x1a, 0x1f, 0xc8, 0x07, 0xad, 0xfa, 0x9b, 0xa6, 0x6e, 0xb9, 0xce, 0x34, 0xee, 0xdb, 0x54, 0x40,
+ 0x48, 0x02, 0xb7, 0xb0, 0x70, 0xea, 0x1a, 0x99, 0x2e, 0x9b, 0x7a, 0x90, 0x01, 0xec, 0x1d, 0xf6,
+ 0x68, 0x7c, 0xa6, 0x1c, 0xf1, 0x6e, 0x29, 0xdd, 0x7b, 0xa1, 0xbe, 0xd0, 0x3e, 0xea, 0x93, 0xc3,
+ 0xf5, 0x96, 0x6f, 0x5d, 0xa6, 0x04, 0xb1, 0x7f, 0x10, 0xe9, 0x2d, 0x29, 0x4b, 0x7d, 0x83, 0xcc,
+ 0x81, 0x54, 0x1e, 0xc8, 0xfe, 0xf8, 0x22, 0x78, 0x66, 0x2c, 0x39, 0xc1, 0x2a, 0x04, 0xf4, 0x26,
+ 0x8b, 0x74, 0x3f, 0x99, 0xf2, 0x40, 0x41, 0xfc, 0xc3, 0x88, 0x95, 0xd5, 0x3a, 0xdc, 0xe7, 0x9d,
+ 0xc7, 0x09, 0x23, 0xdd, 0x3b, 0x5b, 0x65, 0x8c, 0xaf, 0x85, 0x16, 0x4d, 0xe5, 0x40, 0x9b, 0x25,
+ 0xd6, 0x59, 0x90, 0xb6, 0x25, 0xb4, 0x73, 0x05, 0x95, 0x5c, 0xdb, 0x6f, 0xcd, 0x5f, 0x55, 0x2c,
+ 0x20, 0x7e, 0x11, 0xac, 0x81, 0x84, 0x33, 0x44, 0x55, 0x3a, 0xc4, 0x40, 0x3f, 0x06, 0x8e, 0x35,
+ 0x0a, 0x20, 0x21, 0x51, 0x0c, 0xb8, 0x63, 0x84, 0xa5, 0xa4, 0xac, 0x14, 0x10, 0xd8, 0x13, 0xbb,
+ 0x08, 0xfe, 0x95, 0x2b, 0xb1, 0x21, 0x7c, 0x11, 0x84, 0xef, 0x31, 0x10, 0x7f, 0xe0, 0xc2, 0x9c,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x4c, 0x7d, 0x1c, 0x44, 0xc9, 0x1b, 0x24, 0x70, 0x6c, 0x0d, 0x83, 0x98, 0xdf, 0x9c, 0x7c, 0xb8,
+ 0xd7, 0x36, 0xca, 0x8b, 0x9a, 0x19, 0x9d, 0xae, 0x64, 0x98, 0x74, 0x6d, 0x1b, 0x43, 0xdc, 0xde,
+ 0x74, 0xc2, 0x71, 0x95, 0x58, 0xfc, 0x93, 0x07, 0x76, 0xc5, 0x14, 0xe8, 0x61, 0x79, 0x77, 0xea,
+ },
+ { /* 10 */
+ 0x51, 0xf6, 0x5f, 0xcc, 0xc9, 0xbb, 0x4b, 0xca, 0x7e, 0x52, 0xea, 0x5b, 0x67, 0xa2, 0xef, 0xe6,
+ 0x33, 0xae, 0xa5, 0x03, 0xf8, 0x72, 0xcf, 0x10, 0xac, 0xdb, 0x41, 0x06, 0xb8, 0x66, 0xba, 0x67,
+ 0xa4, 0x6a, 0x15, 0x17, 0x52, 0x6f, 0xc2, 0xd0, 0x70, 0x26, 0xcb, 0x2e, 0x94, 0x8b, 0x8e, 0x86,
+ 0x67, 0xde, 0xe5, 0xa5, 0xd2, 0x7e, 0xfa, 0xff, 0x18, 0x4a, 0x19, 0x89, 0xa8, 0xce, 0x6e, 0xad,
+ 0x0a, 0xcf, 0x3e, 0xd4, 0x05, 0xad, 0xfc, 0x4a, 0x57, 0x45, 0xa7, 0x6b, 0xee, 0x14, 0x76, 0x58,
+ 0xe7, 0x84, 0x9d, 0xfc, 0x92, 0x97, 0xe6, 0x09, 0x2c, 0x7c, 0x70, 0x3b, 0xb6, 0x0d, 0x1e, 0x59,
+ 0x28, 0xba, 0xf8, 0xd6, 0x14, 0xf1, 0x76, 0xeb, 0x9f, 0xd7, 0xd9, 0x6f, 0x3e, 0x50, 0x1b, 0xa3,
+ 0x1a, 0x55, 0x31, 0x76, 0x0d, 0x19, 0x1e, 0x24, 0xb0, 0x33, 0x03, 0xec, 0x9d, 0x34, 0x78, 0xa7,
+ 0x6c, 0x50, 0xb7, 0xd2, 0x36, 0x49, 0xa1, 0x6a, 0xcc, 0x30, 0x25, 0x67, 0x5d, 0xd8, 0xc1, 0x96,
+ 0x65, 0x5c, 0x3d, 0x20, 0xd3, 0x89, 0x77, 0x82, 0xdd, 0x34, 0xec, 0x40, 0x9e, 0xca, 0x1f, 0x6b,
+ 0xfa, 0xd5, 0x6b, 0x65, 0x7d, 0xce, 0x0b, 0x75, 0x93, 0xf2, 0x34, 0xca, 0x6a, 0x37, 0x2c, 0x14,
+ 0xe8, 0xcd, 0xbc, 0x42, 0x74, 0x8d, 0x64, 0x66, 0xb1, 0xfa, 0x65, 0x84, 0x2f, 0x13, 0x53, 0x2d,
+ 0xac, 0x27, 0xf3, 0x46, 0x56, 0x35, 0xb3, 0xe7, 0xe2, 0x1d, 0x99, 0x8c, 0x4c, 0x9b, 0x89, 0x18,
+ 0x5a, 0x78, 0x0d, 0xbb, 0x2d, 0x8c, 0x10, 0x5f, 0xaa, 0x28, 0xd6, 0xb5, 0x92, 0xb4, 0x40, 0xdd,
+ 0xa9, 0xa1, 0xec, 0x2c, 0xb5, 0x82, 0xcd, 0xc2, 0x28, 0xde, 0x2b, 0x58, 0x3b, 0x91, 0xb2, 0x34,
+ 0x30, 0x6d, 0x11, 0x25, 0x18, 0x1f, 0xe5, 0xb2, 0xea, 0x9a, 0x2f, 0x4a, 0x95, 0x60, 0x12, 0xc2,
+ 0x8b, 0xd4, 0x2a, 0x2e, 0xa4, 0xde, 0x47, 0x63, 0xe0, 0x4c, 0x55, 0x5c, 0xeb, 0xd5, 0xdf, 0xcf,
+ 0x83, 0x99, 0xcc, 0x7f, 0xa0, 0x84, 0x36, 0x54, 0x72, 0x77, 0x07, 0xfe, 0x33, 0xc5, 0xd8, 0x51,
+ 0xef, 0xc9, 0x7b, 0xad, 0x96, 0xcd, 0x97, 0x3e, 0xbe, 0x47, 0x22, 0x99, 0x6e, 0x1d, 0x19, 0xc7,
+ 0x66, 0x9f, 0x89, 0x06, 0x33, 0xe4, 0x5d, 0x20, 0x9b, 0x75, 0x82, 0x0c, 0xb3, 0xcc, 0xb7, 0xce,
+ 0x14, 0x5d, 0x7c, 0x6b, 0x0a, 0x99, 0x3b, 0x94, 0xae, 0x8a, 0x8d, 0xd6, 0x1f, 0x28, 0xec, 0xb0,
+ 0x0d, 0xcb, 0xf9, 0x3b, 0xe7, 0xed, 0x0f, 0x12, 0x58, 0xf8, 0xe0, 0x76, 0xaf, 0x1a, 0x3c, 0xb2,
+ 0x05, 0x86, 0x1f, 0x6a, 0xe3, 0xb7, 0x7e, 0x25, 0xca, 0xc3, 0xb2, 0xd4, 0x77, 0x0a, 0x3b, 0x2c,
+ 0x92, 0x42, 0xaf, 0x7e, 0x49, 0xaa, 0x73, 0xe5, 0x16, 0x3e, 0x38, 0xfc, 0x5b, 0xe7, 0x0f, 0xcd,
+ 0x7a, 0x8f, 0x13, 0x3c, 0x3d, 0x27, 0x17, 0x83, 0xa7, 0xc4, 0x5d, 0x78, 0x74, 0xf4, 0x5c, 0xe0,
+ 0x13, 0x59, 0xbb, 0x84, 0xe8, 0xd9, 0xc8, 0xcc, 0xa1, 0x37, 0xca, 0xcb, 0x5e, 0x26, 0xa6, 0x5a,
+ 0xd8, 0xa0, 0xad, 0x67, 0x6c, 0x92, 0x81, 0xd4, 0x5b, 0x60, 0x4a, 0xce, 0xba, 0x73, 0x41, 0xef,
+ 0x87, 0x5e, 0xbf, 0xb6, 0xa2, 0xa9, 0xef, 0xae, 0x3b, 0x8b, 0x2e, 0xaf, 0x5f, 0xcd, 0x3a, 0x1e,
+ 0xb5, 0xb1, 0x76, 0x16, 0xbb, 0x41, 0x87, 0x61, 0x14, 0x6f, 0xf4, 0x2c, 0xfc, 0xa9, 0x59, 0x1a,
+ 0xdf, 0xa4, 0x6a, 0x88, 0x8e, 0xd2, 0x72, 0x8c, 0x54, 0xdd, 0x0d, 0xd3, 0xfb, 0x7d, 0x0b, 0x05,
+ 0x91, 0x81, 0x1b, 0x58, 0xa9, 0xc7, 0x59, 0x47, 0x50, 0x7f, 0x56, 0xb0, 0x76, 0xe1, 0xa7, 0x68,
+ 0x2d, 0x3c, 0xe7, 0xbc, 0xf7, 0x46, 0x08, 0xce, 0x55, 0x14, 0x6b, 0xbb, 0x49, 0x5a, 0x20, 0x8f,
+ 0xa0, 0xad, 0x66, 0xde, 0x50, 0x42, 0x1b, 0x2a, 0x39, 0xda, 0xe2, 0x7f, 0xf8, 0x83, 0x6c, 0xc9,
+ 0xbf, 0x7e, 0x48, 0xc2, 0xbe, 0xec, 0x7b, 0x2b, 0x43, 0x2a, 0x53, 0x47, 0x12, 0xbd, 0x2f, 0x42,
+ 0x24, 0x30, 0x6d, 0x4e, 0x12, 0x86, 0xde, 0x26, 0x44, 0x10, 0xa2, 0x9c, 0x8a, 0x48, 0xfe, 0x72,
+ 0x49, 0x21, 0xb6, 0x3f, 0xc5, 0x55, 0xd8, 0x93, 0x0b, 0x1f, 0x1c, 0x7e, 0xcc, 0x92, 0xe6, 0x87,
+ 0xee, 0x88, 0x17, 0x0e, 0x77, 0x57, 0x30, 0xe1, 0x3d, 0x78, 0xb9, 0x1c, 0x75, 0x1f, 0xc0, 0xa4,
+ 0x2c, 0x7d, 0x8b, 0x1f, 0x16, 0xdc, 0xaf, 0x11, 0xd6, 0x2b, 0xf0, 0x3e, 0x52, 0x58, 0xf9, 0xec,
+ 0x1d, 0x51, 0xf6, 0x99, 0xef, 0x59, 0xed, 0x7c, 0xbf, 0x8e, 0x44, 0xf1, 0xdc, 0x3a, 0x32, 0x4d,
+ 0xcc, 0xfd, 0xd1, 0x0c, 0x66, 0x0b, 0xba, 0x40, 0xf5, 0xea, 0xc7, 0x18, 0xa5, 0x5b, 0xad, 0x5f,
+ 0x7c, 0xca, 0xb8, 0x70, 0x3e, 0xfd, 0x43, 0x04, 0x2b, 0x46, 0x81, 0xe0, 0x2e, 0xf8, 0xcf, 0x69,
+ 0x8e, 0x52, 0x35, 0x44, 0x47, 0x69, 0x39, 0x46, 0x2a, 0x8f, 0xe7, 0x88, 0x9c, 0xdf, 0xe4, 0xe3,
+ 0xb8, 0x7a, 0x8f, 0x2d, 0x5c, 0xac, 0x88, 0x73, 0x4c, 0x97, 0x14, 0x5a, 0x53, 0xb3, 0x65, 0xa8,
+ 0xe6, 0xc5, 0xf1, 0x5f, 0x73, 0x0d, 0x41, 0xd6, 0xaf, 0x43, 0xeb, 0xbe, 0xad, 0x0f, 0xc7, 0x3a,
+ 0xf4, 0xdd, 0x26, 0x78, 0x7a, 0x4e, 0x2e, 0xc5, 0x8d, 0x4b, 0xba, 0xf0, 0xe8, 0x2b, 0xb8, 0x03,
+ 0x26, 0xb2, 0xb5, 0xcb, 0x13, 0x71, 0x53, 0x5b, 0x81, 0x6e, 0x57, 0x55, 0xbc, 0x4c, 0x8f, 0xb4,
+ 0x1b, 0x14, 0x5d, 0xd5, 0xec, 0x83, 0xb9, 0xfb, 0x33, 0x0c, 0x98, 0x69, 0x86, 0x36, 0xa1, 0xc4,
+ 0x4f, 0x64, 0x1d, 0x73, 0xc6, 0x8f, 0x8c, 0x14, 0x87, 0x9d, 0xc0, 0xe6, 0x96, 0x9e, 0x75, 0x0e,
+ 0xd5, 0x6b, 0x54, 0x5c, 0x8b, 0x7f, 0x8e, 0xc6, 0x03, 0x98, 0xaa, 0xb8, 0x15, 0x69, 0x7d, 0x5d,
+ 0xc5, 0xf1, 0x5b, 0xfe, 0x83, 0xcb, 0x6c, 0xa8, 0xe4, 0xee, 0x0e, 0x3f, 0x66, 0x49, 0x73, 0xa2,
+ 0x50, 0xb7, 0x33, 0x6f, 0x28, 0x21, 0xec, 0x15, 0xfd, 0x6d, 0x71, 0xde, 0x7c, 0xa0, 0x36, 0x85,
+ 0x79, 0x4c, 0xa7, 0x1a, 0xdd, 0x4a, 0x3d, 0x21, 0xe1, 0x85, 0x33, 0x34, 0x59, 0xf2, 0xf4, 0x45,
+ 0x77, 0x44, 0xea, 0x07, 0xda, 0xca, 0x18, 0x91, 0xff, 0x3c, 0xbd, 0x0e, 0xdb, 0xee, 0x60, 0x52,
+ 0x16, 0xdf, 0xa4, 0xee, 0x0b, 0x6e, 0xb6, 0xe9, 0x6b, 0xf4, 0x78, 0x1f, 0x29, 0x2c, 0x9d, 0x76,
+ 0x52, 0x35, 0xeb, 0xea, 0x29, 0xd6, 0x61, 0x68, 0x38, 0x13, 0x84, 0x17, 0x4a, 0xa4, 0x47, 0x43,
+ 0x15, 0x1c, 0x10, 0xc8, 0xeb, 0x03, 0x9c, 0x4b, 0x2d, 0xb5, 0x16, 0x53, 0x04, 0x2a, 0x35, 0xd3,
+ 0x9b, 0x4e, 0x25, 0x8c, 0xac, 0x6a, 0xa5, 0x0d, 0x07, 0x3a, 0xf1, 0xdb, 0x98, 0xf5, 0xd1, 0x30,
+ 0xb4, 0xf0, 0x1a, 0xb5, 0x5a, 0xdb, 0x20, 0xbe, 0x97, 0x50, 0x6f, 0xa9, 0xe7, 0xab, 0x80, 0x79,
+ 0x3e, 0x65, 0x5c, 0x38, 0x1f, 0x9f, 0xc0, 0x02, 0xf4, 0x23, 0xa1, 0x70, 0x17, 0x7c, 0x86, 0xd5,
+ 0x80, 0x5a, 0x78, 0x59, 0x40, 0xe9, 0x1c, 0xf6, 0x34, 0x36, 0x69, 0xb2, 0x1e, 0xc3, 0x70, 0xf4,
+ 0x36, 0x28, 0xba, 0x69, 0x1b, 0xc5, 0xb1, 0x35, 0x66, 0x18, 0xf3, 0xd2, 0xcf, 0x6c, 0x81, 0x4b,
+ 0xd3, 0x2e, 0xff, 0x10, 0x88, 0xa5, 0xda, 0x41, 0x8f, 0x1a, 0x76, 0x20, 0x4f, 0x65, 0xee, 0xd4,
+ 0x2b, 0x79, 0x4c, 0xf0, 0xf4, 0x9c, 0x5c, 0x49, 0xd9, 0x96, 0xb7, 0x23, 0x13, 0x56, 0xb3, 0x06,
+ 0x01, 0x41, 0x6c, 0xa3, 0xe1, 0x9a, 0xa7, 0xdf, 0x83, 0x3f, 0x9b, 0x85, 0x1b, 0x02, 0xd9, 0x63,
+ 0x99, 0xcc, 0xfd, 0x09, 0xad, 0x9d, 0x28, 0x70, 0xc2, 0x44, 0x04, 0x12, 0xae, 0xf1, 0xa0, 0xf6,
+ 0xdd, 0x26, 0xb2, 0x0d, 0x8f, 0x25, 0xff, 0xf1, 0x91, 0xa3, 0xf8, 0x1a, 0xcd, 0x79, 0x7a, 0xc3,
+ 0xf6, 0x5f, 0xfe, 0xfd, 0x7b, 0xb9, 0xa3, 0xb8, 0x48, 0x35, 0x4f, 0x39, 0xde, 0x2f, 0xc9, 0xc5,
+ 0x68, 0x97, 0xc4, 0x1b, 0x34, 0x64, 0x78, 0x90, 0x85, 0xcc, 0x0c, 0x36, 0x31, 0xd0, 0x23, 0xd9,
+ 0x12, 0x18, 0xd7, 0x27, 0x09, 0x43, 0x6f, 0x13, 0x22, 0x08, 0x51, 0x4e, 0x45, 0x24, 0x7f, 0x39,
+ 0x8a, 0x95, 0x46, 0x8d, 0x45, 0x44, 0xe0, 0xbc, 0x63, 0x73, 0xce, 0xd9, 0xf0, 0xd7, 0x06, 0xac,
+ 0x09, 0x0c, 0x8a, 0xf2, 0xe5, 0xc0, 0xd6, 0xe8, 0x11, 0x04, 0xc9, 0x27, 0xc3, 0x12, 0xde, 0xfd,
+ 0xa6, 0xe8, 0xcd, 0x92, 0x53, 0x98, 0x4f, 0xad, 0xb5, 0x58, 0x3e, 0xe7, 0xa2, 0x8f, 0xff, 0x40,
+ 0x72, 0xc2, 0xf5, 0x6d, 0x39, 0x7d, 0x66, 0xb4, 0x35, 0xff, 0x0f, 0xda, 0xac, 0xe4, 0x5b, 0x7e,
+ 0xc4, 0xb0, 0x37, 0x5d, 0x62, 0x51, 0xcb, 0x77, 0x67, 0xd1, 0x95, 0xba, 0x7d, 0x4b, 0xaa, 0xc1,
+ 0x3a, 0xa2, 0x2f, 0xf1, 0x1d, 0xb2, 0x19, 0xf8, 0xbd, 0xdf, 0x88, 0x21, 0x7b, 0x74, 0x64, 0x9a,
+ 0x74, 0x87, 0x5e, 0x21, 0x3a, 0xa7, 0x32, 0x33, 0xb9, 0x7d, 0xd3, 0x42, 0xf6, 0xe8, 0xc8, 0xf7,
+ 0xc1, 0x36, 0x28, 0x37, 0x81, 0xe6, 0xb5, 0x52, 0xad, 0x12, 0x27, 0x6e, 0x0a, 0x41, 0x91, 0xed,
+ 0xca, 0xb8, 0x7a, 0x40, 0x65, 0xd1, 0xee, 0xc7, 0x79, 0x68, 0x1b, 0x80, 0xff, 0x57, 0x3e, 0xd6,
+ 0xb9, 0x3b, 0xe3, 0x8e, 0xbd, 0x36, 0x2f, 0xac, 0xcf, 0xa8, 0x8f, 0xdf, 0x48, 0xb1, 0xbc, 0xcb,
+ 0x70, 0x40, 0x2d, 0xe8, 0x38, 0x8a, 0xeb, 0xc9, 0xf0, 0x81, 0xfa, 0x13, 0x9a, 0xe0, 0x2a, 0xb8,
+ 0xbc, 0xbd, 0xfc, 0xe4, 0x5e, 0x81, 0x51, 0x89, 0x05, 0x6b, 0x3d, 0x0b, 0x3f, 0xbb, 0x87, 0xe7,
+ 0x34, 0xaa, 0x62, 0xec, 0x1a, 0x32, 0x3c, 0x48, 0xa3, 0x66, 0x06, 0x1b, 0xf9, 0x68, 0xf0, 0x8d,
+ 0x6a, 0x15, 0x1c, 0x9e, 0x35, 0x93, 0xf5, 0xed, 0x40, 0xb2, 0xf9, 0xff, 0x07, 0xd4, 0x52, 0x1f,
+ 0x48, 0x60, 0xda, 0x9c, 0x24, 0xcf, 0x7f, 0x4c, 0x88, 0x20, 0x87, 0xfb, 0xd7, 0x90, 0x3f, 0xe4,
+ 0x5f, 0xfe, 0x12, 0xd1, 0xce, 0x3b, 0x6e, 0x7a, 0x60, 0xeb, 0x64, 0x61, 0xe5, 0xbe, 0x7b, 0xf1,
+ 0x8f, 0x13, 0x59, 0xe7, 0xa6, 0xf3, 0x9e, 0x99, 0xa9, 0xb0, 0x7c, 0x0d, 0x87, 0xdd, 0x3d, 0x80,
+ 0x69, 0xd6, 0xa8, 0xb8, 0xd5, 0xfe, 0xdf, 0x4f, 0x06, 0xf3, 0x97, 0xb3, 0x2a, 0xd2, 0xfa, 0xba,
+ 0x9a, 0x0f, 0x49, 0x2f, 0x4d, 0xf0, 0x02, 0xd2, 0x84, 0x05, 0x6a, 0x5e, 0x83, 0xf7, 0x08, 0x53,
+ 0xda, 0x22, 0x75, 0xe2, 0x6d, 0x65, 0x0c, 0xa9, 0x9e, 0x1e, 0xbf, 0x07, 0x8c, 0x77, 0x30, 0x29,
+ 0xfd, 0xd1, 0xac, 0x8a, 0x9f, 0x8e, 0xf8, 0x2d, 0x9c, 0x4f, 0x73, 0xd7, 0x2b, 0x39, 0x66, 0xfe,
+ 0x39, 0x61, 0x9b, 0xd7, 0xfd, 0xdf, 0x33, 0x5a, 0xfb, 0x9e, 0xe6, 0x6d, 0x56, 0x72, 0xcc, 0x3f,
+ 0xa5, 0x2b, 0x79, 0xb4, 0xb3, 0xf5, 0x65, 0x0f, 0xf3, 0x19, 0x50, 0xab, 0x8f, 0x89, 0x57, 0xe5,
+ 0xfc, 0x90, 0xc0, 0x29, 0x7e, 0x14, 0x5f, 0xf2, 0x1f, 0x70, 0xe8, 0x52, 0x30, 0x3b, 0xbf, 0x9d,
+ 0xe0, 0x80, 0x5a, 0x13, 0x70, 0xd7, 0x15, 0x51, 0x23, 0xc1, 0x37, 0x26, 0xf7, 0x03, 0x54, 0xb3,
+ 0x0c, 0x8a, 0x95, 0x98, 0x06, 0x77, 0xa8, 0xcd, 0xdb, 0xc7, 0x7b, 0xf3, 0xb4, 0x18, 0xe5, 0xd1,
+ 0x57, 0xb3, 0xf4, 0x80, 0xca, 0x61, 0x1f, 0x4d, 0xf2, 0xd0, 0x36, 0xc3, 0x3d, 0xae, 0x7c, 0x6f,
+ 0x54, 0x70, 0x40, 0xa6, 0x2a, 0x0c, 0x35, 0xef, 0xb4, 0x91, 0x58, 0x8f, 0x10, 0xa8, 0xd4, 0xca,
+ 0x8d, 0x91, 0x81, 0x62, 0xa7, 0x04, 0x13, 0xe4, 0x6c, 0xce, 0x89, 0xc4, 0xb1, 0xd9, 0x4c, 0x46,
+ 0xd2, 0x6f, 0x93, 0xb3, 0x69, 0x3f, 0x7d, 0x9e, 0x0c, 0x25, 0xed, 0xa5, 0x54, 0x67, 0x37, 0xb7,
+ 0xf7, 0x1e, 0x92, 0x5e, 0x9a, 0x23, 0x04, 0x67, 0xcb, 0x0a, 0xd4, 0xbc, 0xc5, 0x2d, 0x10, 0xa6,
+ 0x5e, 0xbf, 0x7e, 0x72, 0x2f, 0xa1, 0xc9, 0xa5, 0xe3, 0xd4, 0xff, 0xe4, 0xfe, 0xbc, 0xa2, 0x92,
+ 0xf9, 0x16, 0xdf, 0x43, 0x9d, 0xa3, 0x21, 0xd7, 0xd5, 0xb3, 0x5a, 0x86, 0x47, 0x31, 0x84, 0xb1,
+ 0xf2, 0x98, 0x8d, 0x34, 0x79, 0x94, 0x7a, 0x42, 0x01, 0xc9, 0x66, 0x68, 0xb2, 0x27, 0x2b, 0x8a,
+ 0xe3, 0x43, 0xee, 0x35, 0x90, 0xba, 0x3f, 0xf3, 0x65, 0x80, 0x59, 0x6a, 0xda, 0x05, 0xfc, 0x16,
+ 0x3b, 0xe3, 0x43, 0x52, 0xfc, 0x28, 0xbe, 0x27, 0x3e, 0xe0, 0x13, 0xa4, 0x60, 0x76, 0xbd, 0xf9,
+ 0x03, 0xc3, 0xb4, 0x26, 0xe0, 0x6d, 0x2a, 0xa2, 0x46, 0x41, 0x6e, 0x4c, 0x2d, 0x06, 0xa8, 0xa5,
+ 0xa1, 0xec, 0x0a, 0x7d, 0xb1, 0xd8, 0xbc, 0xf5, 0xba, 0xe5, 0x79, 0xfa, 0xe3, 0x81, 0xb5, 0xaa,
+ 0x96, 0x85, 0xdc, 0xb7, 0x4b, 0x87, 0xaa, 0x1f, 0x5f, 0xc2, 0x11, 0xad, 0x37, 0xef, 0xed, 0x82,
+ 0xaa, 0x62, 0x58, 0x0a, 0x55, 0xef, 0xe7, 0x60, 0x6e, 0x9f, 0x45, 0x14, 0x16, 0x97, 0x1a, 0x91,
+ 0x9f, 0x89, 0x56, 0x45, 0xae, 0x47, 0x7c, 0xf7, 0x4e, 0xc6, 0xd8, 0x8a, 0xf4, 0xfd, 0x33, 0x7f,
+ 0x46, 0x68, 0x97, 0x81, 0x23, 0x4f, 0x5a, 0xfc, 0x96, 0x99, 0x09, 0xc1, 0x55, 0x8c, 0xab, 0xf3,
+ 0x41, 0x6c, 0x50, 0x6e, 0xc1, 0x0f, 0xa9, 0xa4, 0x99, 0x24, 0x4e, 0xdc, 0x14, 0x82, 0xe1, 0x19,
+ 0x2a, 0x38, 0x20, 0x53, 0x15, 0x06, 0xfb, 0x96, 0x5a, 0xa9, 0x2c, 0xa6, 0x08, 0x54, 0x6a, 0x65,
+ 0x60, 0xda, 0x22, 0x4a, 0x30, 0x3e, 0x09, 0xa7, 0x17, 0xf7, 0x5e, 0x94, 0xe9, 0xc0, 0x24, 0x47,
+ 0xe5, 0x06, 0x45, 0x79, 0x93, 0x60, 0x6b, 0x74, 0xe9, 0x02, 0x85, 0xf2, 0x80, 0x09, 0x6f, 0x9f,
+ 0x94, 0x07, 0x04, 0x32, 0x4a, 0x70, 0x27, 0x62, 0x9a, 0xbc, 0xe4, 0x64, 0x01, 0xeb, 0x9c, 0x44,
+ 0xbe, 0x3f, 0x24, 0x61, 0x5f, 0x76, 0xdc, 0xf4, 0xc0, 0x15, 0xc8, 0xc2, 0x09, 0xbf, 0xf6, 0x21,
+ 0x90, 0xc0, 0x77, 0xfb, 0x48, 0x5d, 0xfe, 0x98, 0xd3, 0x40, 0xcd, 0x35, 0x6d, 0xe3, 0x7e, 0x0b,
+ 0x2f, 0xbe, 0x3f, 0x39, 0xf6, 0xb1, 0x85, 0xb3, 0x90, 0x6a, 0x9e, 0x72, 0x7f, 0x5e, 0x51, 0x49,
+ 0x9d, 0x0b, 0x8e, 0xc0, 0xaf, 0xb0, 0xf1, 0x8a, 0x8b, 0xb8, 0x2d, 0x43, 0xc2, 0xf9, 0x42, 0xb9,
+ 0x81, 0x1b, 0x14, 0xfa, 0xa1, 0x73, 0xbb, 0x29, 0xb7, 0x09, 0xf2, 0x37, 0x05, 0xc1, 0xa9, 0x97,
+ 0xa2, 0x2f, 0xbe, 0x5b, 0x51, 0xb5, 0x96, 0x57, 0xfc, 0xa4, 0x17, 0xb6, 0xce, 0x87, 0x1d, 0x0f,
+ 0x76, 0x05, 0x86, 0xa4, 0x3b, 0x50, 0xbf, 0x4e, 0x7c, 0x03, 0x26, 0x8b, 0xc0, 0xec, 0xb9, 0x31,
+ 0x4b, 0xa3, 0x6e, 0xba, 0xc4, 0xa2, 0x55, 0xee, 0xce, 0x61, 0xe9, 0xb7, 0xfa, 0x96, 0x97, 0x41,
+ 0xe4, 0x47, 0x29, 0xda, 0x72, 0xfa, 0xcc, 0xab, 0x6a, 0x3d, 0x1e, 0x77, 0x9b, 0x0b, 0xb6, 0xfc,
+ 0x06, 0x45, 0xab, 0x4c, 0x03, 0xda, 0x54, 0x87, 0x8c, 0x82, 0xdc, 0x98, 0x5a, 0x0c, 0x93, 0x89,
+ 0x55, 0x31, 0x2c, 0x05, 0xcb, 0x96, 0x92, 0x30, 0x37, 0xae, 0xc3, 0x0a, 0x0b, 0xaa, 0x0d, 0xa9,
+ 0xae, 0xa5, 0x2b, 0xc3, 0x57, 0xc2, 0x3e, 0x9a, 0x27, 0x63, 0x6c, 0x45, 0x7a, 0x9f, 0xf8, 0xde,
+ 0x1c, 0x10, 0x9a, 0x3a, 0x0e, 0xc3, 0x4a, 0xa3, 0x3c, 0xb1, 0xdf, 0x74, 0xc7, 0x38, 0xeb, 0x2e,
+ 0x75, 0xc6, 0x32, 0x82, 0xdb, 0x3d, 0x95, 0xec, 0x3a, 0x42, 0x48, 0xc7, 0xed, 0xea, 0x11, 0x94,
+ 0x5b, 0x39, 0x61, 0x18, 0xcc, 0x16, 0xb7, 0x80, 0x29, 0x17, 0x4d, 0x30, 0x89, 0xb6, 0x99, 0xbe,
+ 0x04, 0xc7, 0x73, 0xc9, 0x02, 0x2d, 0xd9, 0xfa, 0x49, 0xfc, 0x29, 0x51, 0x6c, 0x08, 0xe2, 0x4f,
+ 0x27, 0xf3, 0xd9, 0x68, 0xf2, 0xeb, 0xf4, 0x84, 0x02, 0x51, 0xcc, 0xd0, 0xa7, 0x4e, 0x56, 0xd7,
+ 0x4d, 0xe6, 0xc5, 0xf6, 0xc7, 0x78, 0x01, 0x69, 0x42, 0xe3, 0x35, 0x2f, 0xa0, 0x9a, 0x04, 0xc8,
+ 0x9c, 0x4a, 0xe2, 0x63, 0x4e, 0x2a, 0x56, 0x55, 0x08, 0x87, 0xb6, 0xc6, 0xd9, 0xfb, 0x9b, 0xda,
+ 0x20, 0xf7, 0x1e, 0x87, 0x10, 0xab, 0x07, 0xdc, 0x0d, 0xec, 0x8b, 0xcd, 0xe6, 0x40, 0x1c, 0x3d,
+ 0x53, 0x74, 0x87, 0x49, 0xc8, 0x4c, 0xc6, 0xb7, 0xbb, 0x2c, 0x1f, 0x92, 0x51, 0xa6, 0x9e, 0x20,
+ 0xd0, 0xed, 0x4b, 0x36, 0x68, 0xc8, 0xf0, 0xe3, 0xc9, 0x5b, 0x18, 0x6c, 0x62, 0x63, 0x46, 0x71,
+ 0x95, 0x46, 0x68, 0x91, 0xab, 0xea, 0x80, 0xbd, 0x19, 0x83, 0x7f, 0xe1, 0x1a, 0xe9, 0x45, 0x27,
+ 0xf3, 0xd9, 0xe1, 0x97, 0x98, 0x0e, 0xdd, 0x9d, 0x82, 0xf6, 0xfd, 0xed, 0xa9, 0x25, 0xf2, 0xe9,
+ 0x85, 0xdc, 0x67, 0x33, 0xa3, 0x5e, 0x62, 0xd3, 0xfe, 0xf5, 0xdb, 0x66, 0x69, 0xc9, 0x4b, 0xd8,
+ 0x88, 0x17, 0x9e, 0x08, 0x44, 0xb3, 0x6d, 0xc1, 0xa6, 0x0d, 0x3b, 0x10, 0xc6, 0xd3, 0x77, 0x6a,
+ 0xb0, 0x37, 0x69, 0x7c, 0x58, 0xf6, 0xf9, 0x44, 0xde, 0xac, 0x46, 0xf8, 0x8b, 0xa3, 0x62, 0x36,
+ 0x22, 0x75, 0xc6, 0x02, 0x11, 0x5c, 0x8a, 0xa1, 0xc8, 0x92, 0x7e, 0x04, 0xd0, 0x44, 0x6d, 0xfb,
+ 0x0b, 0x8e, 0x52, 0x77, 0xe4, 0x37, 0x5b, 0x95, 0xd4, 0x7a, 0x3c, 0xee, 0xf5, 0x16, 0xaf, 0x3b,
+ 0x02, 0x82, 0xd8, 0x85, 0x01, 0xf7, 0x8d, 0x7d, 0xc5, 0x7e, 0xf5, 0xc9, 0x36, 0x04, 0x71, 0xc6,
+ 0xc9, 0x7b, 0xce, 0x66, 0x85, 0xbc, 0xc4, 0x65, 0x3f, 0x29, 0x75, 0xcc, 0xd2, 0x51, 0x96, 0x73,
+ 0xdb, 0x63, 0x19, 0x41, 0x8c, 0xff, 0xab, 0x76, 0x1d, 0x21, 0x24, 0x82, 0x97, 0x75, 0xe9, 0x4a,
+ 0xb6, 0x72, 0xc2, 0x30, 0x5b, 0x2c, 0xad, 0xc3, 0x52, 0x2e, 0x9a, 0x60, 0xd1, 0xaf, 0xf1, 0xbf,
+ 0x40, 0x2d, 0x3c, 0xcd, 0x20, 0x95, 0x0e, 0x7b, 0x1a, 0x1b, 0xd5, 0x59, 0x0f, 0x80, 0x38, 0x7a,
+ 0x4e, 0x25, 0x71, 0xd0, 0x27, 0x15, 0x2b, 0xcb, 0x04, 0xa2, 0x5b, 0x63, 0x8d, 0x9c, 0xac, 0x6d,
+ 0xd7, 0xe9, 0x8c, 0xd9, 0x8a, 0x88, 0x03, 0xbb, 0xc6, 0xe6, 0x5f, 0x71, 0x23, 0x6d, 0x0c, 0x9b,
+ 0xab, 0x23, 0x34, 0xa9, 0xb4, 0x75, 0x40, 0xbf, 0xed, 0xa0, 0xde, 0x91, 0x0d, 0x95, 0xc3, 0xf2,
+ 0x98, 0x8d, 0x91, 0xaa, 0x4c, 0x07, 0x8f, 0xaf, 0x41, 0x7b, 0x9f, 0x97, 0xb5, 0xf3, 0x79, 0x95,
+ 0xc8, 0x3a, 0xa2, 0xc5, 0x64, 0x26, 0x63, 0xba, 0xbc, 0x16, 0xee, 0x49, 0xc9, 0x53, 0x4f, 0x10,
+ 0xaf, 0xe4, 0x47, 0x60, 0xb6, 0x58, 0x99, 0x45, 0xa4, 0x5c, 0xf7, 0xc0, 0x61, 0x9d, 0x21, 0xbd,
+ 0xa3, 0x6e, 0xd2, 0xf8, 0xb0, 0x2f, 0x31, 0x88, 0x7f, 0x9b, 0x8c, 0x33, 0xd5, 0x85, 0xc4, 0x6c,
+ 0x44, 0xea, 0x4f, 0x04, 0x22, 0xb8, 0xd7, 0x81, 0x53, 0xe7, 0xfc, 0x08, 0x63, 0x88, 0xda, 0x35,
+ 0x84, 0x9d, 0x0b, 0x90, 0x42, 0xc4, 0xc5, 0x0c, 0x7d, 0xca, 0x40, 0xe3, 0x72, 0xcb, 0x92, 0xbb,
+ 0x9e, 0xc8, 0x3a, 0xe6, 0x4f, 0xdd, 0xdb, 0x28, 0xcd, 0xf9, 0x43, 0x0f, 0xef, 0xff, 0xea, 0x1c,
+ 0xe2, 0x02, 0x82, 0x96, 0x71, 0x20, 0x98, 0x2c, 0xe6, 0xbf, 0xc2, 0xef, 0xc1, 0x07, 0x25, 0x75,
+ 0xcd, 0xbc, 0xbd, 0xaf, 0x87, 0x91, 0x1d, 0x9f, 0x76, 0xd5, 0x5c, 0x9d, 0xbe, 0x59, 0x74, 0x3c,
+ 0xfb, 0x94, 0x07, 0xc6, 0x9c, 0x54, 0xac, 0xaa, 0x10, 0xcd, 0xaf, 0x4f, 0x71, 0x35, 0xf5, 0x77,
+ 0x45, 0xab, 0x23, 0xa7, 0xc3, 0x22, 0x70, 0x5e, 0xd0, 0xd8, 0x67, 0x8d, 0x78, 0x8a, 0x03, 0x56,
+ 0x23, 0x34, 0xaa, 0xa1, 0xf0, 0xc6, 0x2d, 0x7e, 0x4b, 0xad, 0xe5, 0x81, 0xcb, 0x46, 0xb4, 0x98,
+ 0xc6, 0x32, 0xef, 0xd8, 0x63, 0xa6, 0x46, 0x0a, 0xa2, 0xaf, 0x60, 0x73, 0x4b, 0x4f, 0xdb, 0x07,
+ 0x3d, 0xa6, 0xe8, 0x1e, 0xff, 0xf2, 0xea, 0xa0, 0xb2, 0x62, 0xcf, 0x3c, 0x3a, 0x7a, 0x2e, 0x70,
+ 0x17, 0x9e, 0xc8, 0x4d, 0xea, 0xf4, 0x11, 0x36, 0xe8, 0xcb, 0xe3, 0x9a, 0x32, 0x2e, 0x44, 0x15,
+ 0xeb, 0x0e, 0x08, 0x64, 0x94, 0xe0, 0x4e, 0xc4, 0xf7, 0xbb, 0x0b, 0xc8, 0x02, 0x15, 0xfb, 0x88,
+ 0x2e, 0xff, 0x53, 0x9a, 0x17, 0x2b, 0x22, 0x6c, 0x13, 0x55, 0x05, 0xf7, 0x64, 0x5c, 0x88, 0x2a,
+ 0xcb, 0xf9, 0x16, 0xe3, 0x84, 0x4b, 0x49, 0x18, 0xfa, 0x57, 0x80, 0x05, 0xe4, 0x55, 0xe7, 0xb5,
+ 0xb2, 0xb5, 0xb1, 0xf9, 0x59, 0x01, 0x74, 0x39, 0x1b, 0xd2, 0xb3, 0x31, 0xbd, 0xa7, 0x13, 0xf0,
+ 0x5c, 0x3d, 0xa6, 0xf7, 0x2e, 0x56, 0x44, 0xd8, 0x26, 0xaa, 0x0a, 0x2d, 0xc8, 0xb8, 0xd3, 0x54,
+ 0x4a, 0xe2, 0x02, 0x19, 0x25, 0x38, 0xf2, 0x31, 0x4d, 0x5e, 0x72, 0x32, 0xe1, 0x94, 0x4e, 0x22,
+ 0x64, 0x1d, 0x51, 0x83, 0x32, 0x13, 0xd0, 0x5d, 0x5e, 0x0b, 0x77, 0xc5, 0x85, 0xc8, 0xc6, 0x08,
+ 0x71, 0x01, 0x41, 0x4b, 0xd9, 0x10, 0x4c, 0x16, 0x73, 0xbe, 0x61, 0x96, 0x81, 0xe2, 0xf3, 0xdb,
+ 0x35, 0xeb, 0x0e, 0x4f, 0xfb, 0xa8, 0x9b, 0x97, 0x20, 0x59, 0x9d, 0x9e, 0xe2, 0x6a, 0x29, 0xee,
+ 0xc7, 0x73, 0x83, 0x7b, 0x82, 0x3c, 0xe1, 0xd5, 0x21, 0x90, 0xfb, 0xf6, 0x50, 0x4d, 0x02, 0x64,
+ 0x07, 0x04, 0xc7, 0xef, 0xe2, 0x40, 0xf3, 0x58, 0x0f, 0xbd, 0x47, 0x1d, 0x41, 0x0e, 0x4a, 0xea,
+ 0x59, 0xbb, 0xb9, 0x9d, 0xcd, 0xe1, 0x3a, 0xfd, 0xec, 0x69, 0xb8, 0xf9, 0xbf, 0xb2, 0xe8, 0x78,
+ 0x38, 0x20, 0xf7, 0x74, 0x1c, 0x45, 0x94, 0x85, 0x78, 0xa1, 0x7d, 0xe8, 0x4d, 0x70, 0x15, 0x5c,
+ 0xea, 0x4f, 0x64, 0xc7, 0x75, 0x7a, 0xe9, 0x1b, 0x74, 0x84, 0x90, 0x4d, 0x19, 0x17, 0x22, 0xeb,
+ 0x37, 0x69, 0xd6, 0xca, 0xfa, 0x5f, 0x16, 0xea, 0xe5, 0x27, 0x68, 0x57, 0xd4, 0x6e, 0x58, 0x28,
+ 0x63, 0x19, 0x96, 0x6c, 0xd0, 0x53, 0x23, 0x05, 0x51, 0xb6, 0x30, 0xd8, 0xc4, 0xc6, 0x8c, 0xe2,
+ 0x18, 0xd7, 0xe9, 0xf3, 0x0c, 0xee, 0x93, 0x59, 0x75, 0x4d, 0xf6, 0x25, 0xab, 0x30, 0x09, 0x61,
+ 0xa7, 0xa9, 0xa1, 0x31, 0xb2, 0x02, 0xe8, 0x72, 0x36, 0x67, 0xa5, 0x62, 0xb9, 0x8d, 0x26, 0x23,
+ 0x58, 0xfa, 0xd5, 0x3e, 0x2c, 0x7b, 0x9d, 0x22, 0x6f, 0x56, 0x23, 0x7c, 0xa4, 0xb0, 0x31, 0x1b,
+ 0x11, 0xdb, 0x63, 0x01, 0xe9, 0x2e, 0x45, 0xb1, 0x64, 0x49, 0x3f, 0x02, 0x68, 0x22, 0xd7, 0x9c,
+ 0xf5, 0x9c, 0x4a, 0xdb, 0x9b, 0xd4, 0x89, 0x1a, 0x0e, 0x74, 0x21, 0x75, 0xf3, 0x29, 0x61, 0x60,
+ 0xd9, 0xe1, 0xc1, 0xc4, 0x8d, 0x08, 0x26, 0x0b, 0xd8, 0x5f, 0xd1, 0x4b, 0xa1, 0x71, 0x98, 0x8c,
+ 0xe9, 0x8c, 0xd0, 0xe1, 0x95, 0x17, 0xc3, 0xb9, 0x32, 0xc5, 0xfe, 0x01, 0x34, 0x11, 0x8a, 0x4e,
+ 0x25, 0x71, 0x01, 0xed, 0xf3, 0x1c, 0x79, 0xf9, 0xc7, 0x2f, 0x39, 0x19, 0x91, 0x4a, 0x27, 0x11,
+ 0xf8, 0x57, 0xb3, 0xe0, 0x7c, 0x39, 0x86, 0x08, 0x56, 0x8c, 0xc1, 0x03, 0x5c, 0x33, 0x5d, 0xd2,
+ 0x97, 0xc4, 0xb0, 0x14, 0xaa, 0x1d, 0x0d, 0xc0, 0xdc, 0xfd, 0x8a, 0x28, 0x2c, 0xed, 0x34, 0xe1,
+ 0xb1, 0x76, 0x05, 0xdf, 0xb9, 0x6c, 0x5e, 0x9b, 0x5d, 0x93, 0xdd, 0x7d, 0x90, 0xa1, 0xbb, 0x55,
+ 0x19, 0x96, 0x85, 0x50, 0xed, 0x74, 0x34, 0x86, 0xf6, 0x72, 0x6d, 0xa0, 0xb0, 0x32, 0xd0, 0x02,
+ 0x0f, 0x49, 0x21, 0xbe, 0xe6, 0x1a, 0x82, 0x6f, 0x9d, 0x86, 0x15, 0xbf, 0x99, 0x1e, 0x4d, 0x74,
+ 0x89, 0x56, 0xf2, 0xab, 0xa5, 0x29, 0xca, 0x1e, 0x25, 0x32, 0xa0, 0x95, 0xdd, 0xd1, 0xae, 0x09,
+ 0xdc, 0x67, 0xde, 0xae, 0x6e, 0xbf, 0x58, 0x2e, 0x12, 0x9c, 0x63, 0x9f, 0xd6, 0x7b, 0xa3, 0xa0,
+ 0x08, 0x4d, 0xe6, 0x51, 0x04, 0x5a, 0x71, 0x37, 0x92, 0x3b, 0x52, 0xa2, 0xd8, 0x10, 0x07, 0x9e,
+ 0xf1, 0x5b, 0x39, 0x12, 0x99, 0xf9, 0x50, 0xe0, 0x47, 0x88, 0x08, 0x24, 0x9f, 0x21, 0x83, 0x2f,
+ 0xa8, 0xe0, 0x80, 0x8f, 0x54, 0x18, 0x6a, 0x1d, 0xab, 0xe1, 0xb0, 0xdd, 0x20, 0x93, 0x6b, 0x57,
+ 0x0e, 0x08, 0x4d, 0x1d, 0x07, 0x80, 0x25, 0xb0, 0x1e, 0xb9, 0x8e, 0x3a, 0x82, 0x1c, 0x94, 0x17,
+ 0x6f, 0x93, 0x03, 0xf4, 0xd6, 0x24, 0x8b, 0xc8, 0x8a, 0x71, 0x4b, 0x2b, 0x70, 0xde, 0x69, 0x33,
+ 0x7d, 0x8b, 0xd4, 0xd3, 0xdf, 0x67, 0xe4, 0xdb, 0xa8, 0x79, 0x1a, 0x65, 0x35, 0xfa, 0x16, 0x0a,
+ 0xd4, 0x2a, 0x38, 0xff, 0x6a, 0xe5, 0x29, 0x19, 0x80, 0xa7, 0x31, 0x3d, 0x0e, 0x6b, 0xa4, 0x3e,
+ 0xbd, 0xfc, 0x90, 0x47, 0xbf, 0x1b, 0xf6, 0x56, 0x86, 0x54, 0xa6, 0x8e, 0x24, 0xb9, 0x5e, 0x84,
+ 0x86, 0x1f, 0xd3, 0x15, 0x43, 0x33, 0x48, 0x71, 0xb8, 0xb4, 0xb5, 0x2a, 0x44, 0xcf, 0xe3, 0x7d,
+ 0xec, 0x0a, 0xcf, 0x8b, 0x76, 0xa0, 0xbd, 0x9c, 0xf8, 0x06, 0x4c, 0xd5, 0x43, 0x1b, 0xb1, 0x62,
+ 0x32, 0xef, 0xc9, 0xa0, 0x19, 0xe8, 0x68, 0xcf, 0x2f, 0xe4, 0xda, 0x83, 0xa3, 0x64, 0x63, 0x04,
+ 0x7e, 0x48, 0x60, 0xf5, 0x3f, 0x0a, 0xce, 0x79, 0xee, 0x38, 0x74, 0x29, 0x18, 0xfc, 0xbe, 0xaf,
+ 0xed, 0x4b, 0xa3, 0x28, 0x97, 0x3a, 0x1a, 0x43, 0x7b, 0x39, 0xd7, 0x50, 0x58, 0x19, 0x68, 0x01,
+ 0x6e, 0xd2, 0x6f, 0x57, 0x37, 0xbe, 0x2c, 0x17, 0x09, 0x4e, 0xd0, 0xae, 0x6b, 0xdc, 0xb0, 0x50,
+ 0xc3, 0xb4, 0xf0, 0xb2, 0x80, 0x11, 0x38, 0x2f, 0x68, 0x6c, 0xd2, 0xa7, 0x3c, 0x45, 0xe0, 0x2b,
+ 0x21, 0xb6, 0x72, 0x24, 0xf1, 0x31, 0xa0, 0x03, 0x8e, 0xd3, 0x10, 0x48, 0xfd, 0x42, 0xc5, 0x5e,
+ 0x62, 0x58, 0xfa, 0xcf, 0x31, 0xc9, 0x84, 0xda, 0xd2, 0x89, 0xab, 0x5d, 0xdf, 0xc4, 0x55, 0x81,
+ 0xce, 0x7f, 0x09, 0x89, 0x67, 0xfc, 0x37, 0x3d, 0x30, 0x94, 0x32, 0xd1, 0x93, 0x5f, 0xdc, 0x99,
+ 0x93, 0x03, 0xc3, 0xdd, 0xa8, 0x30, 0xd4, 0x3a, 0x95, 0x01, 0xa3, 0x79, 0x40, 0xe5, 0xd6, 0xae,
+ 0x4c, 0xa7, 0xa9, 0x55, 0x26, 0xe2, 0xa6, 0xb6, 0xc1, 0xdc, 0xae, 0xaa, 0xbb, 0x98, 0xdd, 0xab,
+ 0xde, 0xe5, 0x06, 0x2b, 0x6f, 0x48, 0xd5, 0x53, 0xd7, 0xe2, 0x96, 0x56, 0xe0, 0x7f, 0xd2, 0x66,
+ 0x3f, 0x24, 0x30, 0x9b, 0xfe, 0x05, 0x67, 0xdd, 0x77, 0x1c, 0x3a, 0xf5, 0x0c, 0x7e, 0x5f, 0xb6,
+ 0x43, 0xee, 0x88, 0xeb, 0xc0, 0xf8, 0x24, 0xd9, 0x5c, 0x5a, 0xbb, 0x15, 0x22, 0x86, 0x90, 0xdf,
+ 0x73, 0x83, 0x99, 0xce, 0xd8, 0xe7, 0xc1, 0x6b, 0xb6, 0xc0, 0x94, 0x5f, 0xb7, 0xe6, 0x82, 0x1d,
+ 0xad, 0x66, 0x9f, 0xe5, 0xb7, 0xaf, 0x14, 0x38, 0x61, 0x22, 0x02, 0x09, 0x57, 0x99, 0x50, 0x7b,
+ 0xf0, 0x1a, 0x55, 0xb1, 0x78, 0x63, 0xf7, 0x3f, 0xc4, 0xb7, 0x93, 0xa1, 0x84, 0x23, 0x5a, 0x4c,
+ 0x47, 0x29, 0xfb, 0x22, 0xc2, 0xd5, 0xfd, 0x23, 0x15, 0xa6, 0x92, 0x44, 0x4e, 0x8e, 0x72, 0x90,
+ 0x3c, 0xe7, 0x84, 0xbd, 0x1e, 0x68, 0x4d, 0x7f, 0x31, 0x5d, 0x54, 0xb9, 0x21, 0x78, 0xf7, 0x13,
+ 0x61, 0x9b, 0x4e, 0xe9, 0xd1, 0xa4, 0xae, 0x78, 0x94, 0xc8, 0xc5, 0x11, 0xf2, 0xc2, 0xfd, 0x24,
+ 0x56, 0xf2, 0x98, 0x23, 0x2b, 0xfb, 0xb8, 0x92, 0x71, 0xef, 0xad, 0x46, 0x26, 0xac, 0xa5, 0x0c,
+ 0x29, 0xfb, 0x94, 0x75, 0xf5, 0x6b, 0xd1, 0x34, 0x1c, 0xe8, 0x42, 0xea, 0x25, 0x52, 0xc2, 0xc0,
+ 0x7b, 0xce, 0x7f, 0x9f, 0xdc, 0xbd, 0xb0, 0x5c, 0x24, 0xfb, 0xc6, 0xfd, 0x6f, 0xf6, 0x85, 0x83,
+ 0x10, 0x9a, 0x0f, 0xa2, 0x08, 0xb4, 0xe2, 0x6e, 0xe7, 0x76, 0xa4, 0x87, 0x73, 0x20, 0x0e, 0xff,
+ 0xff, 0x53, 0x74, 0x0f, 0x9e, 0x79, 0x75, 0x50, 0x59, 0x31, 0x86, 0x1e, 0x1d, 0x3d, 0x17, 0x38,
+ 0x5d, 0x7c, 0xca, 0x54, 0xcf, 0xcc, 0xe3, 0x07, 0xa5, 0x95, 0x91, 0xa8, 0xd3, 0xba, 0x0a, 0x37,
+ 0x31, 0x2c, 0x7d, 0x86, 0xf9, 0x85, 0x42, 0x6d, 0x69, 0xa5, 0xb4, 0xcf, 0x8e, 0x62, 0xcb, 0xa1,
+ 0xb7, 0x33, 0xae, 0x93, 0xba, 0xb6, 0x0a, 0x1c, 0xd1, 0x11, 0x01, 0xe5, 0xca, 0xad, 0x28, 0xdc,
+ 0xb3, 0xf4, 0xdd, 0x5a, 0xb8, 0x9b, 0xd3, 0xe6, 0x98, 0xed, 0x28, 0xb4, 0xa6, 0xa5, 0xca, 0x93,
+ 0x6b, 0x54, 0x70, 0x3d, 0xd4, 0x09, 0x52, 0x32, 0xc3, 0x8d, 0x62, 0x7a, 0x1c, 0xd6, 0x8b, 0x7c,
+ 0xc0, 0x77, 0x44, 0x94, 0x60, 0x7c, 0x12, 0x8d, 0x2e, 0x2d, 0xbc, 0xeb, 0x11, 0x43, 0x48, 0x8e,
+ 0x7f, 0x09, 0x0c, 0x56, 0xde, 0x90, 0x69, 0xa6, 0x6d, 0x07, 0xef, 0xac, 0x03, 0xfe, 0x67, 0xcc,
+ 0x1e, 0x92, 0x42, 0xbf, 0x0f, 0x34, 0xc7, 0xde, 0xf9, 0xcf, 0x2a, 0xbd, 0xf1, 0x3c, 0x9a, 0xe8,
+ 0xd1, 0xac, 0x27, 0x95, 0x89, 0x52, 0x57, 0x3c, 0x4a, 0x64, 0x83, 0xe9, 0x79, 0x61, 0x9f, 0x12,
+ 0x78, 0x0d, 0xcb, 0xb9, 0x3c, 0xd0, 0x9a, 0xfe, 0x62, 0xba, 0xa8, 0xb1, 0x42, 0xf0, 0x2d, 0x26,
+ 0xc2, 0xf5, 0x9c, 0x11, 0x61, 0x8b, 0x9f, 0xf0, 0xeb, 0x53, 0x49, 0x22, 0x27, 0x47, 0x39, 0x48,
+ 0xbb, 0xb9, 0x3b, 0x0b, 0xbc, 0xc1, 0xa2, 0xd1, 0x0a, 0xd6, 0x7a, 0x16, 0x7e, 0xb5, 0xcd, 0x0d,
+ 0x6d, 0x11, 0xdb, 0x71, 0xd7, 0xd3, 0x06, 0xb5, 0x4f, 0x0f, 0xbe, 0xe2, 0x46, 0xda, 0x18, 0xf5,
+ 0xe1, 0xc1, 0x36, 0xb0, 0x91, 0x4d, 0xb2, 0x8e, 0xa0, 0xfe, 0xac, 0xa3, 0xec, 0x01, 0x8d, 0xd0,
+ 0x1f, 0xd3, 0x2e, 0x1c, 0xee, 0xae, 0x60, 0x01, 0x7a, 0xf0, 0xb1, 0x38, 0xea, 0x3e, 0x43, 0x8b,
+ 0x82, 0xd8, 0xa0, 0xdc, 0x41, 0x1e, 0x91, 0x8b, 0xf1, 0x48, 0x9c, 0x7b, 0x28, 0xc7, 0x01, 0x32,
+ 0xba, 0xf8, 0x57, 0xa8, 0x5d, 0x5b, 0x05, 0x0e, 0x89, 0xe9, 0xe1, 0x93, 0x65, 0xb7, 0x14, 0x6e,
+ 0x8c, 0xd0, 0xed, 0xc1, 0x46, 0x9e, 0xb4, 0x3b, 0xef, 0xf1, 0x12, 0x41, 0xaa, 0xdb, 0x95, 0x25,
+ 0xcf, 0x3e, 0x65, 0x2a, 0x86, 0x66, 0x90, 0xe2, 0xb3, 0xab, 0xa9, 0x54, 0x88, 0x5d, 0x05, 0xfa,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xfe, 0x12, 0x18, 0xac, 0x7f, 0xe3, 0xd2, 0x8f, 0xda, 0x0e, 0x1d, 0x9b, 0x06, 0x3f, 0xce, 0x5b,
+ 0x42, 0xaf, 0xe4, 0x48, 0x21, 0x62, 0x83, 0x06, 0xdf, 0x65, 0x20, 0x90, 0x39, 0x84, 0x49, 0xbc,
+ 0xd6, 0xa8, 0xe0, 0x7a, 0x6b, 0x12, 0xa4, 0x64, 0x45, 0xd9, 0xc4, 0xf4, 0x38, 0x6f, 0xd5, 0xf8,
+ },
+ { /* 11 */
+ 0xd8, 0x59, 0xe0, 0xf8, 0xd2, 0x2a, 0xca, 0x1c, 0x17, 0x58, 0x25, 0x47, 0x72, 0xa8, 0x1d, 0x31,
+ 0x69, 0xb6, 0x74, 0x38, 0x5c, 0x64, 0x10, 0xef, 0x82, 0xee, 0xaa, 0xe9, 0x8a, 0x53, 0xb7, 0xc0,
+ 0xc0, 0xd2, 0x41, 0xdb, 0x4a, 0x91, 0xd0, 0xa1, 0x55, 0xac, 0x5e, 0x8f, 0x3d, 0x01, 0xdf, 0x89,
+ 0xba, 0xbf, 0xf7, 0x5c, 0x54, 0x08, 0xff, 0xc7, 0x32, 0xa4, 0x91, 0x4e, 0xac, 0x20, 0xdc, 0x8e,
+ 0x16, 0xa0, 0xc6, 0xfb, 0x77, 0x8c, 0x4a, 0x68, 0x8d, 0x24, 0x3c, 0x03, 0xa8, 0x75, 0xec, 0xfe,
+ 0x87, 0x68, 0xac, 0xfe, 0x5b, 0xa5, 0x09, 0xf4, 0xe0, 0xa0, 0x17, 0xcf, 0x05, 0xd1, 0x3c, 0x6c,
+ 0x58, 0xc5, 0x9e, 0x6a, 0x1f, 0x75, 0xeb, 0x63, 0x71, 0x90, 0xf0, 0x0c, 0xe5, 0x17, 0x36, 0x7e,
+ 0x59, 0x63, 0xf5, 0x7e, 0xaf, 0xd1, 0x24, 0x56, 0x06, 0xc5, 0x5c, 0xba, 0x14, 0xc2, 0xf0, 0x73,
+ 0xc4, 0x0f, 0x2e, 0x8b, 0xcf, 0x44, 0x6a, 0x75, 0x4a, 0x3b, 0xab, 0x12, 0x7f, 0xd3, 0x41, 0xbd,
+ 0x6a, 0x9f, 0xc9, 0x04, 0x4f, 0x4b, 0x82, 0xb0, 0x1b, 0x11, 0x9d, 0xf0, 0x5a, 0xef, 0x3e, 0xd7,
+ 0x05, 0x7b, 0x04, 0x44, 0x35, 0x71, 0x75, 0xe1, 0x68, 0xc2, 0x59, 0x2b, 0xb3, 0x07, 0x58, 0x39,
+ 0x9a, 0x98, 0x09, 0x99, 0xf6, 0x6f, 0x66, 0xa8, 0xca, 0x96, 0x35, 0x2c, 0xf9, 0x7f, 0xa6, 0xed,
+ 0x06, 0x52, 0xb9, 0x78, 0x26, 0x5e, 0xe7, 0xbe, 0xf1, 0x3d, 0x6e, 0x32, 0x63, 0xbb, 0xd1, 0x2e,
+ 0xa6, 0xe9, 0x39, 0x2f, 0x49, 0x66, 0x5f, 0xae, 0x6f, 0xc7, 0x1f, 0x1b, 0xa1, 0x5b, 0x80, 0x02,
+ 0x0d, 0x02, 0xda, 0xe4, 0xfc, 0x18, 0xc2, 0x8a, 0x56, 0x2f, 0x70, 0xd2, 0x37, 0x60, 0xa7, 0x51,
+ 0xd1, 0x86, 0x55, 0x4c, 0xab, 0xe7, 0xb2, 0x42, 0x5e, 0xe0, 0xa0, 0x08, 0x07, 0x1a, 0x24, 0x54,
+ 0x43, 0x67, 0x82, 0x75, 0x94, 0xe1, 0x63, 0x81, 0xaa, 0x9b, 0xbc, 0xdd, 0x7a, 0x02, 0x7d, 0xd1,
+ 0x85, 0xe7, 0x7a, 0xd6, 0xf8, 0x2e, 0x54, 0x9e, 0x0e, 0x0a, 0x8c, 0x60, 0x24, 0xb8, 0x73, 0x76,
+ 0x41, 0xe8, 0x54, 0x5d, 0x37, 0x6a, 0x3e, 0xeb, 0x44, 0x31, 0x27, 0x72, 0x5b, 0x6b, 0x32, 0xcb,
+ 0xd2, 0xaf, 0xe8, 0x70, 0xb8, 0xc8, 0x20, 0x1d, 0xc7, 0x1f, 0x97, 0x11, 0xd7, 0xa6, 0xad, 0x43,
+ 0x2c, 0x83, 0x4f, 0x35, 0xee, 0xdb, 0x94, 0xd0, 0xd9, 0x48, 0x78, 0x06, 0x93, 0xea, 0x1b, 0x3f,
+ 0xcd, 0xd0, 0x9b, 0x3f, 0xb6, 0x89, 0x12, 0x2b, 0x03, 0x83, 0x2e, 0x5d, 0x0a, 0x61, 0x78, 0xd8,
+ 0x0b, 0x50, 0x63, 0x9c, 0xda, 0x46, 0x25, 0x34, 0xa7, 0x12, 0x1e, 0xe0, 0x54, 0xdb, 0x76, 0x7f,
+ 0xa2, 0x34, 0x56, 0x7f, 0xcc, 0xb3, 0xe5, 0x7a, 0x70, 0x50, 0xea, 0x86, 0xe3, 0x89, 0x1e, 0x36,
+ 0x38, 0xac, 0x5f, 0xe6, 0x3a, 0xdc, 0x83, 0xd2, 0xba, 0xc6, 0xdf, 0xaa, 0x1a, 0xf6, 0xb8, 0xdb,
+ 0xf7, 0xf3, 0x12, 0xf1, 0x2f, 0xde, 0xcc, 0x93, 0x57, 0xef, 0x6a, 0x58, 0x31, 0xfe, 0x8f, 0x19,
+ 0x4b, 0x1e, 0x5c, 0xd5, 0x5d, 0x88, 0xd4, 0xea, 0x94, 0x76, 0x95, 0x24, 0xfe, 0x65, 0x82, 0xb9,
+ 0xe6, 0xa7, 0x06, 0x66, 0xce, 0xa8, 0xae, 0x70, 0x5c, 0xa3, 0x94, 0xdf, 0x0b, 0xe5, 0x74, 0xc4,
+ 0xe7, 0x01, 0x6d, 0x72, 0x7e, 0x0c, 0x61, 0x45, 0x2b, 0xf6, 0x38, 0x69, 0xfa, 0x30, 0xb2, 0xc9,
+ 0x90, 0x6e, 0x01, 0x11, 0x9c, 0x8d, 0x8c, 0xa9, 0x1a, 0xd1, 0x87, 0x7a, 0x5c, 0x71, 0x16, 0x9f,
+ 0x1a, 0x04, 0x77, 0x0b, 0x3b, 0x30, 0x47, 0xd7, 0xac, 0x5e, 0xe0, 0x67, 0x6e, 0xc0, 0x8d, 0xa2,
+ 0x53, 0x95, 0xfd, 0xf6, 0xc5, 0x33, 0xce, 0x57, 0xd6, 0x82, 0xee, 0xec, 0xb1, 0xcc, 0x40, 0x01,
+ 0xa3, 0x92, 0x3d, 0x6b, 0x7c, 0x17, 0x2a, 0x4f, 0x07, 0x05, 0x46, 0x30, 0x12, 0x5c, 0xd8, 0x3b,
+ 0xf1, 0xa1, 0xab, 0x89, 0x09, 0x80, 0x2b, 0x2d, 0xa6, 0xd2, 0x04, 0x6a, 0x52, 0x45, 0x5e, 0x37,
+ 0xfd, 0x05, 0x1a, 0x79, 0x45, 0x3c, 0x26, 0x92, 0x87, 0xa8, 0xd8, 0x0e, 0x94, 0xf0, 0x3f, 0x6b,
+ 0x51, 0x1a, 0x2b, 0xde, 0x66, 0xb8, 0x93, 0x3d, 0x38, 0x28, 0x75, 0x43, 0x90, 0xa5, 0x0f, 0x1b,
+ 0x29, 0xf8, 0x4b, 0x71, 0xdb, 0xaa, 0xe1, 0x31, 0xb1, 0x8a, 0x21, 0x2d, 0x20, 0xed, 0x43, 0x06,
+ 0x3b, 0x85, 0xe2, 0xda, 0x29, 0xf3, 0x11, 0x8d, 0x23, 0x39, 0xe8, 0xb3, 0xca, 0x4a, 0x31, 0xcc,
+ 0x82, 0x13, 0xa8, 0xba, 0x6e, 0xd4, 0x7c, 0x15, 0x88, 0x62, 0x4e, 0xe4, 0xb6, 0xd6, 0x64, 0x55,
+ 0x67, 0x9d, 0x13, 0xe0, 0xb3, 0x53, 0x40, 0x3a, 0x4d, 0x3e, 0xed, 0x22, 0x6d, 0x8f, 0x99, 0x86,
+ 0x8b, 0xcc, 0x1d, 0x0e, 0x17, 0x19, 0x04, 0x4b, 0xc1, 0xda, 0xcb, 0xab, 0xc3, 0x64, 0x5d, 0x30,
+ 0x48, 0x37, 0xe1, 0xe9, 0x4e, 0xa7, 0x46, 0xb5, 0x0d, 0x89, 0xa2, 0x3d, 0x2e, 0xd9, 0x0b, 0xae,
+ 0x2a, 0xd1, 0xf6, 0x4d, 0xc8, 0x85, 0x73, 0x6e, 0x28, 0x75, 0x16, 0x34, 0xf0, 0x51, 0xca, 0x11,
+ 0xef, 0x78, 0xb3, 0xd2, 0xb7, 0x65, 0xd6, 0x2e, 0x15, 0x1b, 0x11, 0x90, 0x7e, 0x57, 0x4d, 0xa1,
+ 0x70, 0x9b, 0xbe, 0x0f, 0x74, 0x7b, 0xc5, 0x67, 0xb7, 0x4f, 0x7d, 0x97, 0x34, 0x2f, 0xb3, 0x75,
+ 0x2d, 0x25, 0x24, 0x21, 0x5e, 0x7f, 0x5b, 0xe5, 0xae, 0x1d, 0xd4, 0xb0, 0x62, 0x3f, 0xdd, 0x32,
+ 0x31, 0x73, 0xea, 0x52, 0x43, 0x11, 0xfb, 0x8c, 0xf3, 0x7e, 0x5a, 0xe5, 0x6f, 0x44, 0x81, 0xbe,
+ 0xe2, 0x7a, 0x69, 0x36, 0x4b, 0x7d, 0x14, 0xa4, 0x43, 0x34, 0x61, 0x42, 0x49, 0x37, 0xea, 0xf0,
+ 0x86, 0xce, 0xc7, 0xea, 0xeb, 0x01, 0xc6, 0xc1, 0x97, 0xf5, 0xbb, 0x79, 0xf4, 0x04, 0xfa, 0x61,
+ 0xc9, 0x0d, 0xf4, 0x6f, 0x33, 0x5c, 0xa8, 0xff, 0x1c, 0x14, 0xdb, 0xc0, 0x48, 0xb3, 0xe6, 0xec,
+ 0xb0, 0x49, 0xff, 0xd4, 0x3e, 0xea, 0x15, 0xc6, 0xe2, 0xe3, 0x23, 0x18, 0x09, 0x2e, 0x6c, 0xfc,
+ 0x80, 0x9c, 0x7e, 0x92, 0xcd, 0x5f, 0x21, 0x7f, 0x66, 0xc8, 0xd5, 0x4b, 0x97, 0xbf, 0x2b, 0x4f,
+ 0xf5, 0x7c, 0xc4, 0xd9, 0x8c, 0x55, 0x91, 0xf9, 0xb9, 0x45, 0xf1, 0xf7, 0x10, 0x97, 0xc0, 0x03,
+ 0xfc, 0xa3, 0x71, 0x6d, 0xf5, 0x98, 0xe9, 0xa7, 0xf0, 0xfd, 0x74, 0xb8, 0x65, 0x25, 0xf9, 0x66,
+ 0x60, 0x69, 0xc1, 0x8c, 0x25, 0xa9, 0x68, 0xb1, 0xcb, 0x56, 0x2f, 0xa6, 0xff, 0xe1, 0x8e, 0xa5,
+ 0x44, 0x93, 0x50, 0x19, 0x02, 0x1b, 0x4b, 0x0a, 0x2c, 0xf3, 0x7e, 0x59, 0xe8, 0x6c, 0x6a, 0xf2,
+ 0x0c, 0xa4, 0xb1, 0xf0, 0x4c, 0xbc, 0x0d, 0xbf, 0x21, 0x7a, 0xdc, 0x64, 0xc6, 0xb5, 0x61, 0x5c,
+ 0x8f, 0x11, 0x72, 0x5e, 0x92, 0xcc, 0xbe, 0x9f, 0xde, 0x4d, 0x3e, 0x36, 0x81, 0xb6, 0xc3, 0x04,
+ 0xa4, 0x66, 0xef, 0x07, 0xea, 0xed, 0x02, 0xc4, 0x81, 0x6d, 0x84, 0xb4, 0x80, 0x32, 0xcf, 0x18,
+ 0x3d, 0xd7, 0x5b, 0xa2, 0x0f, 0xad, 0xf6, 0x33, 0xd2, 0x04, 0x86, 0x81, 0xa9, 0xf1, 0xe0, 0xe2,
+ 0x62, 0xe6, 0x17, 0xa4, 0x86, 0x22, 0x35, 0xdb, 0x25, 0xfc, 0xb4, 0x09, 0xde, 0x88, 0xc1, 0xbf,
+ 0x35, 0xae, 0x85, 0x02, 0xc6, 0xc4, 0x41, 0x58, 0xec, 0xe9, 0xaf, 0x78, 0x2d, 0x96, 0x1f, 0x8a,
+ 0xe0, 0xf5, 0xbf, 0x1e, 0xe8, 0xf6, 0x49, 0xce, 0xad, 0x9e, 0xfa, 0xed, 0x68, 0x5e, 0xa5, 0xea,
+ 0x68, 0x10, 0x1f, 0x2c, 0xec, 0xc0, 0xdf, 0xda, 0xf5, 0xbb, 0x06, 0x5f, 0x7b, 0x86, 0x71, 0xcd,
+ 0xdc, 0x84, 0x8f, 0xa8, 0x57, 0xff, 0x70, 0xc8, 0x08, 0xcf, 0xd0, 0xda, 0x30, 0x7a, 0x83, 0x05,
+ 0x40, 0x4e, 0x3f, 0x49, 0x87, 0xce, 0xf1, 0xde, 0x33, 0x64, 0x8b, 0xc4, 0xaa, 0xbe, 0xf4, 0xc6,
+ 0xa0, 0xbb, 0x80, 0x57, 0x6f, 0x38, 0xb8, 0x10, 0x9e, 0xfa, 0x71, 0x29, 0xc2, 0xe0, 0x51, 0x2c,
+ 0xa7, 0x4f, 0x52, 0x3b, 0xf9, 0xc2, 0x90, 0x9b, 0x18, 0x92, 0xb3, 0xad, 0x50, 0x8e, 0x46, 0x0f,
+ 0x9f, 0xe3, 0x0d, 0xdd, 0xc3, 0x1e, 0x13, 0x49, 0xa2, 0x54, 0x6c, 0x07, 0x4a, 0x78, 0xfe, 0xd4,
+ 0x2b, 0x77, 0x9d, 0x59, 0x78, 0x21, 0xbc, 0x5b, 0x5f, 0x20, 0xba, 0x82, 0x01, 0x84, 0x0c, 0x1c,
+ 0xae, 0x90, 0xe7, 0x8f, 0x80, 0x0f, 0xe8, 0xc5, 0x51, 0x2a, 0x36, 0xe2, 0x25, 0x3c, 0x7f, 0x6a,
+ 0x10, 0xf2, 0x7f, 0x83, 0x51, 0xd2, 0xad, 0xd6, 0x7c, 0x19, 0x52, 0x31, 0xcb, 0xce, 0x3d, 0xd0,
+ 0xfe, 0x2c, 0xa7, 0x45, 0x56, 0x13, 0xb4, 0xcd, 0x1e, 0x57, 0xef, 0x17, 0x44, 0x4c, 0xb6, 0x7c,
+ 0xa1, 0x1d, 0xeb, 0x43, 0xdf, 0x9c, 0x77, 0x25, 0xe9, 0xaf, 0xdd, 0x9f, 0x33, 0x35, 0x97, 0x21,
+ 0xc7, 0x26, 0x93, 0xb7, 0xdc, 0x6b, 0xf8, 0x2a, 0xd3, 0xc4, 0x9c, 0x0b, 0xaf, 0x6f, 0xc8, 0xaa,
+ 0x4d, 0x4c, 0xe5, 0xad, 0x7b, 0xd6, 0x33, 0x54, 0x65, 0x4b, 0xfb, 0x16, 0x9d, 0xde, 0x53, 0x97,
+ 0xaa, 0x4d, 0x88, 0xdf, 0x05, 0xda, 0x52, 0x11, 0x4e, 0xbd, 0xc3, 0x7f, 0x67, 0xee, 0xe1, 0x5e,
+ 0xd4, 0xfd, 0x51, 0x08, 0x9e, 0x96, 0xc7, 0xa3, 0x36, 0x22, 0xf9, 0x23, 0xb4, 0x1d, 0x7c, 0x6d,
+ 0x42, 0xc1, 0xe9, 0x61, 0x24, 0x45, 0xac, 0xb4, 0xdd, 0xce, 0x10, 0x6b, 0x8b, 0xd7, 0xbb, 0xdc,
+ 0x2e, 0x0c, 0x99, 0x1d, 0x4d, 0x50, 0xc9, 0xba, 0x37, 0xe2, 0xe3, 0xa9, 0xb2, 0x83, 0x54, 0x25,
+ 0x49, 0x91, 0x8a, 0xfd, 0xfe, 0x03, 0x89, 0x80, 0x7a, 0xdc, 0x0e, 0x8b, 0xdf, 0x0c, 0xcd, 0xa3,
+ 0xb2, 0xc6, 0x29, 0xfc, 0x9d, 0x61, 0x48, 0xac, 0x0c, 0x49, 0xb8, 0xb7, 0x28, 0x47, 0x23, 0xe6,
+ 0x77, 0x6f, 0x6c, 0x63, 0xe2, 0x81, 0xed, 0xec, 0x31, 0x27, 0xbf, 0x13, 0xa6, 0x41, 0xa4, 0x56,
+ 0x39, 0x0a, 0x34, 0xf2, 0x8a, 0x78, 0x4c, 0xe7, 0xcd, 0x93, 0x73, 0x1c, 0xeb, 0x23, 0x7e, 0xd6,
+ 0xad, 0xb9, 0x5a, 0xb3, 0x93, 0x20, 0x7a, 0x9a, 0xc8, 0xd5, 0x01, 0xfb, 0xf5, 0x80, 0xf6, 0x7d,
+ 0x20, 0x27, 0xfe, 0xc5, 0xa2, 0x67, 0x99, 0x6f, 0xf8, 0x32, 0xa4, 0x62, 0x55, 0x5f, 0x7a, 0x63,
+ 0xcf, 0x5f, 0x4d, 0x17, 0x15, 0x02, 0x4f, 0x41, 0xed, 0x29, 0xb5, 0xf2, 0x2b, 0x08, 0x37, 0xc2,
+ 0x64, 0xb4, 0xae, 0xdc, 0xa0, 0x7c, 0xd2, 0x65, 0xd4, 0xc1, 0xda, 0x3b, 0xbd, 0x33, 0x10, 0x91,
+ 0x9b, 0x3e, 0x62, 0x8d, 0x46, 0xcb, 0xa9, 0x9d, 0xbd, 0xc3, 0x99, 0x9a, 0x08, 0xaa, 0x60, 0xe0,
+ 0xde, 0x0b, 0x59, 0x80, 0xf4, 0x74, 0x2d, 0xa2, 0xe6, 0x65, 0x4b, 0x75, 0x11, 0x13, 0xcc, 0x1f,
+ 0x7f, 0x16, 0xb2, 0xc3, 0x2b, 0xe8, 0x5a, 0x87, 0x0f, 0xca, 0x96, 0xea, 0x22, 0x26, 0x5b, 0x3e,
+ 0xa8, 0xc2, 0x5e, 0xf7, 0xa6, 0x51, 0x0f, 0x7b, 0xa0, 0x17, 0x58, 0xd0, 0x46, 0x87, 0xae, 0x44,
+ 0xb6, 0x1b, 0x46, 0xac, 0x18, 0xb4, 0xf2, 0x78, 0x13, 0xde, 0x4d, 0x2a, 0x6a, 0x95, 0xbd, 0xd2,
+ 0x5c, 0x18, 0xf1, 0x3a, 0x9a, 0xa0, 0x51, 0xb7, 0x6e, 0x07, 0x05, 0x91, 0xa7, 0xc5, 0xa8, 0x4a,
+ 0xa5, 0xc0, 0x84, 0x13, 0x5a, 0x49, 0xcd, 0xf1, 0xf6, 0x38, 0x28, 0x02, 0x71, 0xe7, 0x09, 0x15,
+ 0x6b, 0x39, 0xa2, 0x10, 0xff, 0xef, 0x4d, 0x85, 0x6c, 0x44, 0x31, 0x46, 0xab, 0x3a, 0xf8, 0xda,
+ 0xd3, 0x09, 0x83, 0x64, 0x08, 0x6c, 0xef, 0x28, 0xb0, 0x4a, 0x3b, 0xa7, 0x26, 0x73, 0x6b, 0x4e,
+ 0xf0, 0x07, 0xc0, 0x9d, 0xb9, 0x24, 0xe4, 0x18, 0xd1, 0x87, 0xa8, 0xdc, 0xa3, 0x90, 0x98, 0x3a,
+ 0x5d, 0xbe, 0x9a, 0x2e, 0x2a, 0x04, 0x9e, 0x82, 0x19, 0x52, 0xa9, 0x27, 0x56, 0x10, 0x6e, 0x47,
+ 0xc8, 0xab, 0x9f, 0x7b, 0x83, 0xf8, 0x67, 0xca, 0x6b, 0x41, 0x77, 0x76, 0xb9, 0x66, 0x20, 0xe1,
+ 0xc5, 0xa9, 0x45, 0x9f, 0x7f, 0xe0, 0xa5, 0x40, 0x3d, 0x6e, 0x07, 0xa4, 0x8e, 0x06, 0x87, 0xb0,
+ 0xbd, 0x4b, 0x25, 0x30, 0xc2, 0xf2, 0xd7, 0x4c, 0xb4, 0xcc, 0x53, 0xca, 0x3e, 0x4e, 0xcb, 0xad,
+ 0xc3, 0xfb, 0xfc, 0xe7, 0x59, 0xbe, 0x42, 0xfe, 0xcc, 0x53, 0x69, 0x96, 0xed, 0xbd, 0x56, 0x9e,
+ 0xe4, 0x28, 0xd0, 0x4e, 0x6d, 0x23, 0xf3, 0x1a, 0xb2, 0x09, 0x0f, 0x70, 0x2a, 0x8c, 0x3b, 0xde,
+ 0xaf, 0x36, 0x8c, 0x9b, 0x30, 0xab, 0x27, 0xf0, 0x26, 0x7f, 0x9a, 0x54, 0xd4, 0xe9, 0xb9, 0x67,
+ 0xb8, 0x30, 0x21, 0x74, 0xf7, 0x83, 0xa2, 0xad, 0xdc, 0x0e, 0x0a, 0xe1, 0x8d, 0x49, 0x93, 0x94,
+ 0xcb, 0x82, 0x22, 0x47, 0x90, 0xd7, 0xf5, 0x95, 0xf2, 0xbe, 0x40, 0x6f, 0x69, 0xda, 0xa9, 0xf6,
+ 0xc1, 0x74, 0x2a, 0xcf, 0xfa, 0x35, 0x1f, 0x94, 0x22, 0xf9, 0xf2, 0x39, 0xcc, 0xd4, 0x19, 0x84,
+ 0xb5, 0x32, 0xfb, 0x90, 0x0b, 0x9b, 0x60, 0x27, 0x8a, 0x21, 0x7a, 0x33, 0xba, 0x29, 0x34, 0xc5,
+ 0x6f, 0xe4, 0xcd, 0x40, 0x7a, 0x3a, 0xf7, 0x51, 0x73, 0xd3, 0xc4, 0xdb, 0xe9, 0xe8, 0x66, 0xee,
+ 0x4c, 0xea, 0x8e, 0xb9, 0xcb, 0x72, 0xfc, 0x61, 0x12, 0x1e, 0x57, 0xa0, 0x6c, 0x0b, 0x95, 0x9a,
+ 0x97, 0x9a, 0xd3, 0x7d, 0x0a, 0x77, 0xa4, 0x22, 0x9c, 0xb9, 0x45, 0xfe, 0xce, 0x1f, 0x01, 0xbc,
+ 0x88, 0xe5, 0xa0, 0x32, 0x04, 0x36, 0x96, 0x14, 0x58, 0x25, 0xfc, 0xb2, 0x13, 0xd8, 0xd4, 0x27,
+ 0x61, 0xcf, 0xaa, 0x98, 0x95, 0x0d, 0xa7, 0x84, 0xbc, 0x03, 0x83, 0x10, 0x0e, 0x34, 0x48, 0xa8,
+ 0x57, 0x48, 0x92, 0xa6, 0x40, 0xe6, 0x74, 0x83, 0xc9, 0x15, 0x1b, 0x71, 0xf3, 0x1e, 0xde, 0x35,
+ 0x11, 0x54, 0x14, 0x97, 0xe1, 0x76, 0x62, 0xe3, 0x0b, 0x4c, 0xfe, 0x87, 0x3a, 0x1b, 0xfb, 0xdd,
+ 0x99, 0xb1, 0xb4, 0xa5, 0xe5, 0x40, 0xf4, 0xf7, 0x53, 0x69, 0x02, 0x35, 0x29, 0xc3, 0x2f, 0xfa,
+ 0x72, 0x14, 0x68, 0x27, 0xd7, 0xf0, 0x98, 0x0d, 0x59, 0xe5, 0xe6, 0x38, 0x15, 0x46, 0xfc, 0x6f,
+ 0x83, 0xb5, 0xc3, 0xae, 0xde, 0x70, 0xb3, 0x20, 0xff, 0x37, 0xe2, 0x52, 0x47, 0x03, 0xa2, 0x58,
+ 0xbf, 0xc4, 0xf3, 0x18, 0x61, 0x79, 0x8a, 0x26, 0x5a, 0x66, 0xc8, 0x65, 0x1f, 0x27, 0x84, 0xb7,
+ 0x55, 0xc7, 0x44, 0x8e, 0xe3, 0x6d, 0x29, 0xe9, 0x27, 0xbf, 0x80, 0xde, 0xd2, 0x77, 0x91, 0x2f,
+ 0x73, 0xb2, 0x03, 0x33, 0x67, 0x54, 0x57, 0x38, 0x2e, 0xb0, 0x4a, 0x8e, 0xe4, 0x93, 0x3a, 0x62,
+ 0x9d, 0x6c, 0xdb, 0xf5, 0x60, 0x95, 0x4e, 0x23, 0x4c, 0xfe, 0xf7, 0xa8, 0x6b, 0x11, 0xb1, 0xce,
+ 0x81, 0x3a, 0x15, 0x86, 0x7d, 0xfb, 0xee, 0x4a, 0x11, 0x9d, 0x79, 0xfd, 0x66, 0x6a, 0xed, 0x42,
+ 0x3f, 0x58, 0x8d, 0x8a, 0xac, 0x26, 0xab, 0x59, 0x3c, 0xae, 0x1d, 0x2e, 0x88, 0x98, 0xaf, 0xf8,
+ 0xb3, 0x60, 0x42, 0xe8, 0x2d, 0xc5, 0x87, 0x99, 0x7b, 0x1c, 0x14, 0x01, 0xd9, 0x92, 0xe5, 0xeb,
+ 0xbb, 0x19, 0x9c, 0x48, 0xe4, 0xac, 0x30, 0xf2, 0x45, 0xf1, 0x3d, 0xf8, 0x5d, 0xf5, 0x1a, 0x83,
+ 0xd6, 0x72, 0x87, 0x20, 0x3d, 0x1d, 0x9a, 0xc9, 0xd8, 0x88, 0x62, 0x8c, 0x95, 0x74, 0x33, 0x77,
+ 0xea, 0x03, 0xb7, 0x96, 0x82, 0x14, 0xa3, 0xcf, 0x7d, 0xd9, 0x48, 0xbb, 0xcd, 0x50, 0x15, 0x98,
+ 0x25, 0x5c, 0xfa, 0x81, 0x97, 0x16, 0xec, 0x8e, 0x90, 0xf0, 0xfd, 0x49, 0xe6, 0x58, 0x22, 0x5a,
+ 0xce, 0xf9, 0x26, 0x03, 0xa5, 0xa6, 0x80, 0x74, 0x9a, 0x7c, 0x19, 0x44, 0xda, 0xdd, 0xf1, 0xcf,
+ 0x63, 0x40, 0x7c, 0xb0, 0x36, 0x86, 0xfa, 0xee, 0x52, 0xa9, 0x18, 0xbf, 0x2f, 0x5d, 0x07, 0xb2,
+ 0x45, 0x35, 0x3b, 0x0d, 0xb2, 0xbf, 0x84, 0x3f, 0x5b, 0xa6, 0xd2, 0xef, 0x19, 0xb9, 0xac, 0xff,
+ 0x32, 0x5a, 0x57, 0x6e, 0x50, 0x3e, 0x69, 0xd3, 0x6a, 0x81, 0x6d, 0xfc, 0xbf, 0xf8, 0x08, 0xa9,
+ 0xd7, 0xd4, 0xec, 0x34, 0x8d, 0xb9, 0x55, 0xfc, 0xaf, 0xdd, 0xce, 0x3a, 0x64, 0xa1, 0xf5, 0x7a,
+ 0x9e, 0x45, 0x66, 0xc9, 0x73, 0xba, 0xdc, 0x7c, 0xd5, 0x01, 0xc0, 0xb1, 0xbb, 0xad, 0x38, 0xd9,
+ 0x08, 0x79, 0xde, 0xa0, 0xc9, 0x69, 0xb7, 0x6b, 0x3e, 0xed, 0x29, 0xf9, 0x84, 0x67, 0xff, 0x68,
+ 0x8d, 0x9e, 0xa4, 0x76, 0x31, 0x47, 0xe3, 0xf5, 0x30, 0xe7, 0xa5, 0x99, 0xa0, 0xdf, 0x8c, 0x1e,
+ 0x79, 0x44, 0x0b, 0xbb, 0x0d, 0xb6, 0xbd, 0x39, 0xfe, 0xf7, 0xf8, 0xd8, 0x41, 0x9d, 0x8a, 0x10,
+ 0xab, 0xeb, 0xe3, 0xcb, 0xb5, 0x7e, 0x9d, 0x24, 0x39, 0xe8, 0x6f, 0xc9, 0x96, 0x3b, 0x27, 0x53,
+ 0x36, 0x87, 0x38, 0x3e, 0xd5, 0xeb, 0xd3, 0x07, 0x75, 0x16, 0x98, 0x61, 0xfd, 0x2a, 0x96, 0x9d,
+ 0xfb, 0x57, 0xa3, 0x01, 0x63, 0x62, 0xc1, 0x2c, 0x76, 0x95, 0xb6, 0x3c, 0xf7, 0x4b, 0xee, 0x45,
+ 0xec, 0x51, 0x0e, 0xee, 0xa4, 0x4a, 0x44, 0x71, 0x8c, 0xe4, 0x26, 0x89, 0xae, 0xeb, 0xc4, 0xb6,
+ 0x4e, 0x65, 0x58, 0x91, 0x68, 0xf9, 0xa1, 0x0b, 0xfc, 0xb4, 0xcc, 0x0f, 0x4d, 0x62, 0xda, 0x80,
+ 0x7e, 0xb0, 0xd9, 0xd7, 0x9b, 0x4c, 0x95, 0xb2, 0x78, 0x9f, 0x3a, 0x5c, 0xd3, 0xf3, 0x9d, 0x33,
+ 0xd0, 0x20, 0x3e, 0x58, 0x1b, 0x43, 0x7d, 0x77, 0x29, 0xb5, 0x0c, 0xbe, 0xf6, 0xcf, 0xe2, 0x59,
+ 0x6c, 0xcd, 0x70, 0x7c, 0x69, 0x15, 0x65, 0x0e, 0xea, 0x2c, 0xf3, 0xc2, 0x39, 0x54, 0xef, 0xf9,
+ 0xf3, 0x2e, 0x7d, 0xa1, 0xaa, 0x0b, 0x76, 0x47, 0x48, 0x78, 0x9f, 0xc5, 0x73, 0x2c, 0x11, 0x2d,
+ 0x5f, 0x31, 0x4c, 0x06, 0x89, 0x8f, 0xc3, 0xe8, 0xf7, 0xf8, 0x32, 0x88, 0x77, 0x79, 0x21, 0x5d,
+ 0xff, 0x8a, 0xcc, 0x51, 0xe6, 0xb7, 0x7b, 0xf8, 0x69, 0x02, 0x43, 0xa1, 0xb5, 0x99, 0x70, 0x71,
+ 0x8a, 0x6a, 0x76, 0x1a, 0xa7, 0xbd, 0xcb, 0x7e, 0xb6, 0x8f, 0x67, 0x1d, 0x32, 0xb1, 0x9b, 0x3d,
+ 0x56, 0xee, 0xf9, 0xb2, 0xf0, 0x42, 0xbb, 0xb6, 0xbe, 0x40, 0xb7, 0xc7, 0x02, 0xcb, 0x18, 0x38,
+ 0xdd, 0x22, 0xe4, 0xbc, 0xe7, 0x5b, 0xbf, 0xfd, 0x7f, 0x9a, 0x7c, 0x6c, 0xc1, 0xaf, 0x45, 0x08,
+ 0xb4, 0x94, 0x90, 0x84, 0xbb, 0x3f, 0xaf, 0x12, 0xfd, 0x74, 0xd6, 0x85, 0x4b, 0xfc, 0xf2, 0xc8,
+ 0x04, 0xdd, 0x6f, 0x50, 0x85, 0xd5, 0xba, 0xd4, 0x1f, 0x97, 0xf5, 0x9d, 0x42, 0xd2, 0x9e, 0x34,
+ 0xbe, 0x62, 0x98, 0x0c, 0xd1, 0xdd, 0x45, 0x13, 0x2d, 0x33, 0x64, 0xd3, 0xee, 0xf2, 0x42, 0xba,
+ 0x1b, 0xa2, 0x1c, 0x1f, 0x8b, 0x94, 0x88, 0xe2, 0xdb, 0x0b, 0x4c, 0xd1, 0x9f, 0x15, 0x4b, 0xaf,
+ 0x9c, 0xca, 0xb0, 0xe1, 0xd0, 0x31, 0x81, 0x16, 0x3b, 0xab, 0x5b, 0x1e, 0x9a, 0xc4, 0x77, 0xc3,
+ 0x5e, 0x97, 0x27, 0x12, 0x39, 0x2b, 0x0c, 0xdd, 0x80, 0xad, 0x9e, 0x3e, 0x86, 0xac, 0xe7, 0x50,
+ 0x07, 0xf4, 0xd2, 0x6c, 0x96, 0xfa, 0x28, 0x8b, 0x86, 0x68, 0xc2, 0x84, 0x92, 0x6e, 0x17, 0x23,
+ 0x8c, 0x38, 0xcf, 0x62, 0x81, 0xe3, 0x2c, 0xc0, 0x47, 0xb2, 0x09, 0x2f, 0x51, 0x0a, 0x4a, 0x13,
+ 0x0f, 0x8d, 0x0c, 0xcc, 0x5f, 0x93, 0x9f, 0xe0, 0xb8, 0x85, 0xeb, 0x7d, 0x16, 0x09, 0xe8, 0x4b,
+ 0x6d, 0x6b, 0x1b, 0x68, 0xd9, 0xb1, 0xaa, 0x3b, 0x9d, 0x79, 0x5f, 0x74, 0xc8, 0x81, 0x29, 0xf4,
+ 0xf4, 0xda, 0xaf, 0xcd, 0x3c, 0xf1, 0x5e, 0xcc, 0xce, 0x10, 0x5d, 0x41, 0xe1, 0x42, 0x06, 0x0e,
+ 0x26, 0x75, 0x47, 0xbd, 0x84, 0x39, 0x7e, 0xd1, 0x09, 0x0f, 0xca, 0x50, 0x36, 0xe4, 0xab, 0x4d,
+ 0x71, 0x3d, 0xd5, 0x1b, 0xc4, 0xdf, 0x0a, 0x52, 0xc0, 0x1a, 0xd1, 0x21, 0xc5, 0xfa, 0x75, 0x78,
+ 0x1c, 0x56, 0xce, 0x73, 0x1d, 0x6e, 0xa0, 0x69, 0x5d, 0x63, 0x8e, 0x55, 0x0d, 0x7b, 0x5c, 0x8c,
+ 0x94, 0xb3, 0x6e, 0x41, 0x19, 0x58, 0x36, 0x7d, 0x05, 0x46, 0x72, 0xe7, 0x1e, 0xa3, 0x88, 0xab,
+ 0x22, 0xa8, 0x28, 0xed, 0x01, 0xec, 0xc4, 0x05, 0x16, 0x98, 0x3f, 0xcd, 0x74, 0x36, 0x35, 0x79,
+ 0xeb, 0xa5, 0xdc, 0x82, 0x32, 0xb0, 0x6c, 0xfa, 0x0a, 0x8c, 0xe4, 0x0d, 0x3c, 0x85, 0xd3, 0x95,
+ 0xbc, 0xed, 0x4e, 0x24, 0x72, 0x56, 0x18, 0x79, 0xc3, 0x99, 0xff, 0x7c, 0xcf, 0x9b, 0x0d, 0xa0,
+ 0x3c, 0x71, 0x30, 0xb6, 0xbf, 0x09, 0x39, 0x06, 0xa5, 0x51, 0x2a, 0x37, 0x58, 0x24, 0x26, 0xef,
+ 0x15, 0x89, 0x7b, 0xc7, 0x64, 0xa3, 0xd8, 0x37, 0x14, 0xdb, 0x0b, 0x1a, 0x78, 0xc9, 0x65, 0xe9,
+ 0xe9, 0x2a, 0x0a, 0xaa, 0x91, 0x3b, 0x31, 0x90, 0xe4, 0x26, 0x7f, 0xa2, 0x1d, 0xec, 0x9c, 0x8f,
+ 0x02, 0x8f, 0xd6, 0x28, 0xa3, 0x8b, 0x5d, 0x6a, 0xee, 0xaa, 0x9b, 0xaf, 0x21, 0x69, 0x4f, 0x1a,
+ 0x46, 0x1c, 0x86, 0x31, 0xa1, 0x90, 0x16, 0x60, 0xc2, 0x59, 0xe5, 0xf6, 0xc9, 0x05, 0x25, 0xe8,
+ 0xda, 0xd6, 0x36, 0xd0, 0x71, 0xa1, 0x97, 0x76, 0xf9, 0xf2, 0xbe, 0xe8, 0x53, 0xc1, 0x52, 0x2b,
+ 0x19, 0x2d, 0xca, 0x37, 0x28, 0x1f, 0xd5, 0x88, 0x35, 0xa1, 0xd7, 0x7e, 0xbe, 0x7c, 0x04, 0xb5,
+ 0xdb, 0x70, 0x5d, 0xc4, 0xc1, 0x05, 0x58, 0x43, 0x8e, 0xa7, 0x12, 0x5e, 0xa2, 0x14, 0x94, 0x26,
+ 0x1e, 0xd9, 0x18, 0x5b, 0xbe, 0xe5, 0xfd, 0x03, 0xb3, 0xc9, 0x15, 0xfa, 0x2c, 0x12, 0x13, 0x96,
+ 0x17, 0x06, 0xad, 0xef, 0xc7, 0x28, 0x85, 0x5d, 0xfa, 0x71, 0x90, 0xb5, 0x59, 0xa0, 0x2a, 0xf3,
+ 0x4a, 0xb8, 0x37, 0xc1, 0xed, 0x2c, 0x1b, 0xdf, 0xe3, 0x23, 0x39, 0x92, 0x0f, 0xb0, 0x44, 0xb4,
+ 0x0a, 0xf6, 0x08, 0x88, 0x6a, 0xe2, 0xea, 0x01, 0xd0, 0x47, 0xb2, 0x56, 0xa5, 0x0e, 0xb0, 0x72,
+ 0xd9, 0xff, 0x8b, 0xec, 0x62, 0x8e, 0x05, 0x29, 0x60, 0x0d, 0x89, 0xf1, 0x83, 0x7d, 0xdb, 0x3c,
+ 0x89, 0x43, 0xcb, 0x26, 0xb4, 0x92, 0x59, 0x21, 0x2f, 0x70, 0x50, 0x04, 0xe2, 0x0d, 0x12, 0x2a,
+ 0x78, 0xe2, 0x60, 0xaf, 0xbd, 0x12, 0x72, 0x0c, 0x89, 0xa2, 0x54, 0x6e, 0xb0, 0x48, 0x4c, 0x1d,
+ 0x76, 0xc9, 0x07, 0x77, 0x52, 0x25, 0x22, 0xd9, 0x46, 0x72, 0x13, 0xa5, 0x57, 0x94, 0x62, 0x5b,
+ 0x27, 0xd3, 0x2c, 0xa9, 0x34, 0x9d, 0xb1, 0xe4, 0x7e, 0x5a, 0x66, 0xe6, 0xc7, 0x31, 0x6d, 0x40,
+ 0x18, 0x8b, 0xa1, 0x23, 0x98, 0xbb, 0x1a, 0xbd, 0x42, 0xf4, 0x7b, 0xc8, 0x4f, 0xa9, 0xc2, 0xb8,
+ 0x23, 0x0e, 0x43, 0xf9, 0xb1, 0x48, 0x0b, 0x30, 0x61, 0xcd, 0x93, 0x7b, 0x85, 0xe3, 0xf3, 0x74,
+ 0xf2, 0x88, 0x16, 0xb5, 0x1a, 0xaf, 0xb9, 0x72, 0x3f, 0x2d, 0x33, 0x73, 0x82, 0xf9, 0xd7, 0x20,
+ 0x95, 0x15, 0x05, 0x55, 0xa9, 0xfc, 0xf9, 0x48, 0x72, 0x13, 0xde, 0x51, 0xef, 0x76, 0x4e, 0xa6,
+ 0xd5, 0x5b, 0x3a, 0x1c, 0x2e, 0x32, 0x08, 0x96, 0x41, 0x77, 0x55, 0x95, 0x45, 0xc8, 0xba, 0x60,
+ 0xa9, 0x64, 0x35, 0xe3, 0x16, 0xf5, 0xc0, 0x4e, 0xd7, 0x42, 0xf4, 0x66, 0xb7, 0x52, 0x68, 0x49,
+ 0x84, 0x41, 0x11, 0xc2, 0x48, 0x8a, 0x9b, 0xab, 0x79, 0x5f, 0x20, 0xd6, 0xd5, 0x6d, 0xb5, 0x7b,
+ 0xe1, 0x53, 0xd4, 0x0a, 0x58, 0x52, 0x86, 0xfb, 0xda, 0xcb, 0x56, 0x5b, 0x99, 0x8b, 0x63, 0xe7,
+ 0x1d, 0xf0, 0xa5, 0x67, 0xad, 0xca, 0x6f, 0x5c, 0x2a, 0x36, 0x22, 0xe3, 0xfc, 0xae, 0x9a, 0x81,
+ 0x93, 0x47, 0xbc, 0x2d, 0x8f, 0xa2, 0x1e, 0xf6, 0x83, 0x2e, 0xb0, 0x63, 0x8c, 0xcd, 0x9f, 0x88,
+ 0x28, 0x5e, 0x20, 0x65, 0x6b, 0x0e, 0x2e, 0x04, 0xc6, 0xdf, 0x8d, 0x9b, 0xd1, 0x38, 0x85, 0x0b,
+ 0xc6, 0x80, 0xf8, 0xa3, 0x6c, 0xcf, 0x37, 0x1f, 0xa4, 0x91, 0x30, 0xbd, 0x5e, 0xba, 0x0e, 0xa7,
+ 0x7b, 0xcb, 0xdd, 0x93, 0xae, 0x3d, 0xe0, 0x53, 0x10, 0x5d, 0x63, 0x77, 0x60, 0xf4, 0xc5, 0x0a,
+ 0x65, 0x12, 0xc5, 0xc8, 0x10, 0xd8, 0x1d, 0x50, 0xa3, 0x94, 0x76, 0x8d, 0x4c, 0xe6, 0xd6, 0x9c,
+ 0x75, 0xe0, 0xba, 0x4b, 0x41, 0x0a, 0xb0, 0x86, 0xdf, 0x8d, 0x24, 0xbc, 0x87, 0x28, 0xeb, 0x4c,
+ 0x7c, 0x3f, 0x0f, 0xff, 0x38, 0xc7, 0xc8, 0xd8, 0x96, 0x35, 0xa1, 0xf3, 0xf2, 0x9a, 0xd2, 0x29,
+ 0xe3, 0xdc, 0x02, 0x22, 0xfb, 0xd9, 0xdb, 0x91, 0x34, 0x61, 0xcd, 0xf4, 0xb8, 0xe2, 0x2c, 0xfd,
+ 0xee, 0xde, 0xd8, 0xc6, 0x07, 0xc1, 0x19, 0x1b, 0x62, 0x4e, 0xbd, 0x26, 0x8f, 0x82, 0x8b, 0xac,
+ 0x21, 0x81, 0x95, 0xd1, 0x12, 0xc3, 0x56, 0x5a, 0x8f, 0x67, 0x08, 0xd4, 0xa4, 0x8a, 0xbc, 0x6e,
+ 0x8e, 0xb7, 0x19, 0x4a, 0x22, 0x68, 0x71, 0xaa, 0xa9, 0x18, 0x92, 0x80, 0x70, 0x63, 0x05, 0x09,
+ 0xf9, 0xd8, 0x75, 0x29, 0xc0, 0xe9, 0x9c, 0x46, 0x98, 0x3f, 0x2d, 0x93, 0xd6, 0x22, 0xa1, 0x5f,
+ 0x01, 0xa6, 0x6b, 0x14, 0xb0, 0xa4, 0xcf, 0x35, 0x77, 0x55, 0xac, 0xb6, 0xf1, 0xd5, 0xc6, 0x0d,
+ 0x5b, 0xec, 0x23, 0x56, 0x0c, 0x5a, 0x79, 0x3c, 0xe8, 0x6f, 0xc7, 0x15, 0x35, 0xab, 0xbf, 0x69,
+ 0x91, 0xc8, 0x6a, 0x05, 0x2c, 0x29, 0x43, 0x9c, 0x6d, 0x84, 0x2b, 0xcc, 0xad, 0xa4, 0xd0, 0x92,
+ 0x14, 0x2f, 0x10, 0xd3, 0xd4, 0x07, 0x17, 0x02, 0x63, 0x8e, 0xa7, 0xac, 0x89, 0x1c, 0xa3, 0xe4,
+ 0x7a, 0x6d, 0xb6, 0x87, 0x1e, 0x99, 0x2f, 0x66, 0x67, 0x08, 0xcf, 0xc1, 0x91, 0x21, 0x03, 0x07,
+ 0xf6, 0x55, 0x79, 0xe5, 0x9f, 0x7a, 0x03, 0xa6, 0x20, 0xba, 0xc6, 0xee, 0xc0, 0x2b, 0x49, 0x14,
+ 0xb1, 0xef, 0x94, 0xc0, 0x8e, 0x4e, 0xda, 0xf3, 0x95, 0xb6, 0x8f, 0xae, 0xf8, 0xfb, 0xaa, 0xf1,
+ 0xb7, 0xbd, 0x2d, 0xb8, 0xa8, 0x10, 0x3d, 0x4d, 0x64, 0x8b, 0xe1, 0x9c, 0x9b, 0x40, 0x7b, 0xdf,
+ 0xca, 0x24, 0x49, 0x53, 0x20, 0x73, 0x3a, 0xa0, 0x85, 0xeb, 0xec, 0xd9, 0x98, 0x0f, 0x6f, 0xfb,
+ 0x5a, 0x4a, 0x48, 0x42, 0xbc, 0xfe, 0xb6, 0x09, 0x9f, 0x3a, 0x6b, 0xa3, 0xc4, 0x7e, 0x79, 0x64,
+ 0xf8, 0x7e, 0x1e, 0x3d, 0x70, 0x4d, 0x53, 0x73, 0xef, 0x6a, 0x81, 0x25, 0x27, 0xf7, 0x67, 0x52,
+ 0xcc, 0x76, 0xf0, 0x2b, 0x06, 0x2d, 0xdd, 0x1e, 0x74, 0xd6, 0x82, 0xeb, 0xfb, 0xb4, 0xbe, 0xd5,
+ 0x47, 0xba, 0xed, 0x25, 0x11, 0x34, 0xd9, 0x55, 0xb5, 0x0c, 0x49, 0x40, 0x38, 0xd0, 0xe3, 0xe5,
+ 0x96, 0x3c, 0xb8, 0x69, 0xba, 0xd3, 0x6b, 0x17, 0xeb, 0xec, 0xe9, 0x48, 0x3f, 0xca, 0xc7, 0xb1,
+ 0x6e, 0x42, 0xa6, 0x54, 0xca, 0x9e, 0x38, 0x64, 0x04, 0x86, 0x68, 0x6d, 0x18, 0x3d, 0xa0, 0xe3,
+ 0x13, 0xdb, 0xc2, 0xbf, 0x42, 0xfd, 0x3f, 0x89, 0xe5, 0xe6, 0x65, 0x28, 0x1b, 0x72, 0xb4, 0xc7,
+ 0x24, 0xfa, 0x91, 0x95, 0x27, 0xb2, 0x23, 0xbb, 0xe7, 0xa5, 0x51, 0xff, 0x17, 0x8d, 0xe4, 0x57,
+ 0x74, 0x46, 0xd1, 0x5f, 0xf1, 0xae, 0x7f, 0xb3, 0xa8, 0xd8, 0x88, 0x0a, 0x76, 0xfd, 0x2d, 0x41,
+ 0x09, 0xdf, 0xb5, 0xb4, 0x79, 0xcd, 0x78, 0x5e, 0x49, 0xb8, 0x85, 0x4f, 0x75, 0xb2, 0x39, 0x65,
+ 0x03, 0x29, 0xbd, 0x3c, 0x13, 0x2f, 0x92, 0x5f, 0x99, 0xff, 0x37, 0x19, 0xd0, 0xbc, 0x89, 0x17,
+ 0x30, 0xd5, 0x81, 0x46, 0xf3, 0xb5, 0x34, 0xb9, 0x84, 0x2b, 0xf6, 0x53, 0x9e, 0x91, 0x47, 0xb3,
+ 0x50, 0xbc, 0x40, 0xca, 0xd6, 0x1c, 0x5c, 0x08, 0x4f, 0x7d, 0xd9, 0xf5, 0x61, 0x70, 0xc9, 0x16,
+ 0x4f, 0xc3, 0x33, 0x85, 0xd8, 0x5d, 0x6e, 0x3e, 0x8b, 0xe1, 0x60, 0xb9, 0xbc, 0xb7, 0x1c, 0x8d,
+ 0x0e, 0x2b, 0x67, 0xd8, 0xef, 0x37, 0x50, 0xd5, 0xcf, 0xd0, 0x47, 0xcb, 0xe7, 0xdc, 0x2e, 0x46,
+ 0x7d, 0x99, 0x64, 0xeb, 0x88, 0x63, 0x07, 0xed, 0xe1, 0x60, 0x0d, 0x45, 0x03, 0x4f, 0x14, 0x24,
+ 0xb9, 0x96, 0x4a, 0x60, 0x47, 0x27, 0x6d, 0x98, 0xab, 0x5b, 0xa6, 0x57, 0x7c, 0x9c, 0x55, 0x99,
+ 0x37, 0x21, 0x53, 0x2a, 0x65, 0x4f, 0x1c, 0x32, 0x02, 0x43, 0x34, 0xd7, 0x0c, 0xff, 0x50, 0x90,
+ 0x54, 0x61, 0x2f, 0x9a, 0x53, 0xc9, 0xe6, 0xdc, 0x50, 0xea, 0x2c, 0x68, 0x23, 0xa2, 0x57, 0x22,
+ 0x1f, 0x7f, 0x73, 0x4f, 0x0e, 0x41, 0x32, 0x36, 0xc4, 0x9c, 0xb9, 0x4c, 0xdd, 0xc7, 0xd5, 0x9b,
+ 0xc2, 0x5d, 0x97, 0xf3, 0xe9, 0x1a, 0x8d, 0xcb, 0xbb, 0x06, 0xc5, 0x20, 0x1c, 0x68, 0x90, 0x93,
+ 0x33, 0xfc, 0x3c, 0x7a, 0xe0, 0x9a, 0xa6, 0xe6, 0x1d, 0xd4, 0xc1, 0x4a, 0x4e, 0x2d, 0xce, 0xa4,
+ 0x3a, 0x23, 0x89, 0xce, 0x99, 0x57, 0xde, 0xb8, 0x54, 0x6c, 0x44, 0x05, 0x3b, 0x9f, 0xf7, 0xc1,
+ 0xe5, 0x8e, 0xbb, 0x5a, 0xdd, 0x87, 0x3c, 0x2f, 0xc5, 0x5c, 0xa3, 0xc6, 0xdb, 0x59, 0xfd, 0xd3,
+ 0xe8, 0x8c, 0x61, 0xbe, 0x21, 0x9f, 0xfe, 0xa5, 0x93, 0x73, 0xd3, 0x14, 0xec, 0x39, 0x5a, 0x82,
+ 0x12, 0x7d, 0xa9, 0xab, 0xf2, 0x59, 0xf0, 0xbc, 0x92, 0xb3, 0xc9, 0x9e, 0xea, 0xa7, 0x72, 0xca,
+ 0x92, 0xe1, 0xd7, 0x39, 0x3f, 0x06, 0xd1, 0xc3, 0xf4, 0x7b, 0x1c, 0xd5, 0x7d, 0x18, 0x59, 0x85,
+ 0xac, 0x1f, 0x31, 0xa7, 0x23, 0x84, 0xb5, 0xaf, 0xbf, 0x80, 0xad, 0x4d, 0x04, 0x55, 0x30, 0x70,
+ 0x34, 0x08, 0xee, 0x16, 0x76, 0x60, 0x8e, 0x6d, 0x9b, 0xbc, 0x03, 0xce, 0xdc, 0x43, 0xd9, 0x87,
+ 0x52, 0x33, 0x96, 0xe2, 0x75, 0x97, 0x01, 0x62, 0xa1, 0xd7, 0x42, 0x5a, 0x40, 0x19, 0x86, 0x0c,
+ 0xed, 0xf7, 0x65, 0xfa, 0x14, 0xee, 0x8b, 0x44, 0xfb, 0xb1, 0x8a, 0x3f, 0x5f, 0x3e, 0x02, 0xbb,
+ 0xfa, 0xf1, 0xc8, 0x15, 0xd3, 0xc6, 0x0e, 0x19, 0x01, 0xc0, 0x1a, 0x8a, 0x06, 0x9e, 0x28, 0x48,
+ 0x98, 0x17, 0xdf, 0xb1, 0x55, 0xe4, 0x3b, 0xc2, 0x24, 0x3c, 0xae, 0x83, 0xd8, 0x16, 0xe9, 0xf7,
+ 0xdf, 0xad, 0x32, 0x94, 0x44, 0xd0, 0xe2, 0x97, 0x91, 0x30, 0xe7, 0xc3, 0xe0, 0xc6, 0x0a, 0x12,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x66, 0x3b, 0x78, 0xf4, 0x03, 0xf7, 0x8f, 0x0f, 0x3a, 0x6b, 0x41, 0x94, 0x9c, 0x5a, 0x5f, 0x8b,
+ 0x2f, 0xaa, 0xf2, 0x09, 0xfd, 0xf4, 0x06, 0x8f, 0x40, 0xb7, 0x4f, 0x1f, 0x43, 0x56, 0x92, 0x28,
+ 0x3e, 0xfe, 0xe6, 0x9e, 0x1c, 0x82, 0x64, 0x6c, 0x4b, 0xfb, 0xb1, 0x98, 0x79, 0x4d, 0x69, 0xf5,
+ },
+ { /* 12 */
+ 0xc2, 0x45, 0xb9, 0x57, 0x85, 0xa8, 0xdb, 0x13, 0x2a, 0x3f, 0xb0, 0xb9, 0xb0, 0x0b, 0x7b, 0xc6,
+ 0x95, 0x59, 0xc2, 0x20, 0x7c, 0x53, 0x81, 0x21, 0x64, 0x56, 0x1f, 0xc2, 0x1f, 0x6d, 0x57, 0x36,
+ 0xa6, 0x73, 0x93, 0x63, 0x29, 0x01, 0x42, 0x6e, 0x91, 0x38, 0x9b, 0x93, 0x9b, 0xf4, 0x35, 0x9d,
+ 0x27, 0x78, 0x48, 0x3d, 0x69, 0x20, 0x97, 0x5e, 0x08, 0x0c, 0x8b, 0x48, 0x8b, 0xf5, 0x6f, 0x4b,
+ 0xe0, 0xc8, 0x66, 0x94, 0xe3, 0x75, 0x59, 0xd8, 0x8c, 0xca, 0x48, 0x66, 0x48, 0xe5, 0x86, 0xb5,
+ 0x86, 0x9c, 0xc4, 0x12, 0x49, 0xd1, 0x1c, 0x46, 0xa5, 0x16, 0x83, 0xc4, 0x83, 0x14, 0x42, 0x20,
+ 0x06, 0xa6, 0x5b, 0x15, 0x0a, 0x17, 0xa7, 0xe6, 0x75, 0xae, 0xe3, 0x5b, 0xe3, 0x12, 0x5d, 0x91,
+ 0x5d, 0x35, 0x96, 0x48, 0xe7, 0xc2, 0x70, 0xdb, 0xd1, 0x58, 0x49, 0x96, 0x49, 0x50, 0xcb, 0x80,
+ 0x09, 0x7a, 0x21, 0xd4, 0x1b, 0xd3, 0x98, 0x9a, 0x44, 0x66, 0x76, 0x21, 0x76, 0x3f, 0x28, 0xd9,
+ 0x78, 0x2f, 0x56, 0xc7, 0x88, 0xef, 0x3b, 0x66, 0x4b, 0x8f, 0x22, 0x56, 0x22, 0xab, 0x2e, 0x05,
+ 0xf4, 0x9a, 0x7f, 0xea, 0xdf, 0x07, 0x0d, 0xc9, 0x71, 0xa8, 0x47, 0x7f, 0x47, 0x89, 0x8b, 0x55,
+ 0x16, 0x30, 0x91, 0xcc, 0x3a, 0x7f, 0x88, 0xf2, 0x6f, 0xb9, 0xef, 0x91, 0xef, 0x62, 0x87, 0x2e,
+ 0x19, 0xec, 0xeb, 0x0d, 0x2b, 0xbb, 0xb7, 0x8e, 0x5e, 0x71, 0x7a, 0xeb, 0x7a, 0x4f, 0xf2, 0x66,
+ 0xec, 0x47, 0xd0, 0xbe, 0xf7, 0x5b, 0xd4, 0xd7, 0x66, 0x55, 0x4d, 0xd0, 0x4d, 0xc1, 0x3c, 0x54,
+ 0x69, 0x88, 0xd8, 0x47, 0xbb, 0x60, 0x7a, 0xe2, 0x18, 0x14, 0x5e, 0xd8, 0x5e, 0xdc, 0xb1, 0xdd,
+ 0x04, 0xc4, 0xd3, 0xa7, 0x0c, 0x1a, 0x7b, 0x05, 0xe7, 0x75, 0x03, 0xd3, 0x03, 0x1c, 0xd7, 0x5f,
+ 0x8f, 0xe6, 0xe5, 0xc6, 0x52, 0x02, 0x84, 0xdc, 0xe1, 0x70, 0xf5, 0xe5, 0xf5, 0x2b, 0x6a, 0xf9,
+ 0x30, 0x79, 0x9d, 0xa8, 0x50, 0xb8, 0x71, 0x3c, 0x2e, 0x39, 0x14, 0x9d, 0x14, 0x90, 0xad, 0x02,
+ 0x39, 0x03, 0xbc, 0x7c, 0x4b, 0x6b, 0xe9, 0xa6, 0x6a, 0x5f, 0x62, 0xbc, 0x62, 0xaf, 0x85, 0xdb,
+ 0xe9, 0xb2, 0x47, 0x40, 0xf8, 0xa6, 0xc1, 0x42, 0xc8, 0xac, 0x3e, 0x47, 0x3e, 0xda, 0xae, 0x6c,
+ 0x03, 0x53, 0xcc, 0xeb, 0x05, 0xea, 0xb2, 0x73, 0xdb, 0x57, 0x90, 0xcc, 0x90, 0x09, 0xcf, 0xa9,
+ 0xcf, 0xfb, 0x4b, 0x24, 0x92, 0x61, 0x38, 0x8c, 0x89, 0x2c, 0xc5, 0x4b, 0xc5, 0x28, 0x84, 0x40,
+ 0x70, 0x64, 0x33, 0x4a, 0x90, 0xdb, 0xcd, 0x6c, 0x46, 0x65, 0x24, 0x33, 0x24, 0x93, 0x43, 0xbb,
+ 0x43, 0x4e, 0x62, 0x09, 0xc5, 0x89, 0x0e, 0x23, 0xb3, 0x0b, 0xa0, 0x62, 0xa0, 0x0a, 0x21, 0x10,
+ 0x55, 0x7e, 0xf3, 0xc5, 0xff, 0xf6, 0x86, 0xd1, 0xdc, 0xb2, 0x4f, 0xf3, 0x4f, 0x68, 0xa6, 0x3e,
+ 0x2c, 0x60, 0xe1, 0x5b, 0x74, 0xfe, 0xd3, 0x27, 0xde, 0xb1, 0x1d, 0xe1, 0x1d, 0xc4, 0xcd, 0x5c,
+ 0x12, 0xf4, 0x42, 0x6b, 0x36, 0x65, 0xf3, 0xf7, 0x88, 0xcc, 0xec, 0x42, 0xec, 0x7e, 0x50, 0x71,
+ 0x8e, 0xd7, 0xa1, 0x9f, 0x51, 0xe5, 0xea, 0x4c, 0xa8, 0xfc, 0x85, 0xa1, 0x85, 0x2c, 0x2f, 0x9e,
+ 0xd5, 0x44, 0x6c, 0xc2, 0xbc, 0x30, 0x3d, 0x71, 0x0c, 0x0a, 0x2f, 0x6c, 0x2f, 0x6e, 0xb9, 0x8f,
+ 0x3d, 0xc7, 0x6f, 0xdb, 0x47, 0x71, 0x92, 0xa3, 0x8d, 0x2a, 0x61, 0x6f, 0x61, 0xb3, 0x52, 0x84,
+ 0xd2, 0xd3, 0x73, 0x8e, 0xb5, 0xc0, 0xf4, 0x07, 0x30, 0x28, 0xbc, 0x73, 0xbc, 0x7b, 0xa1, 0x79,
+ 0x76, 0xc2, 0x68, 0x5f, 0x9a, 0xcc, 0x6a, 0x8a, 0x33, 0xcb, 0xc7, 0x68, 0xc7, 0x81, 0x1e, 0x2a,
+ 0x18, 0xdd, 0xaf, 0x54, 0x28, 0x5c, 0xd9, 0x1e, 0x17, 0xfd, 0x0a, 0xaf, 0x0a, 0x48, 0xb7, 0x01,
+ 0x35, 0x8c, 0x0a, 0x56, 0x5f, 0x45, 0x64, 0xa9, 0x80, 0xc0, 0x67, 0x0a, 0x67, 0x8b, 0x3f, 0x3a,
+ 0x07, 0x97, 0x1f, 0x4c, 0x09, 0xf0, 0xc9, 0x76, 0x3c, 0x22, 0x93, 0x1f, 0x93, 0x15, 0x18, 0xf6,
+ 0xc0, 0x27, 0x31, 0xe5, 0x83, 0xa5, 0x07, 0xf0, 0xb8, 0xe4, 0x50, 0x31, 0x50, 0x05, 0xf1, 0x08,
+ 0xf7, 0xc9, 0xb3, 0x01, 0xda, 0xed, 0xbf, 0xba, 0xaa, 0xff, 0xd7, 0xb3, 0xd7, 0x80, 0x44, 0xfc,
+ 0xb8, 0x08, 0x67, 0x22, 0x0b, 0x4a, 0x3c, 0x96, 0xf3, 0x6b, 0x72, 0x67, 0x72, 0xae, 0xdf, 0x0d,
+ 0x72, 0x06, 0xbb, 0xf8, 0x96, 0xd6, 0x11, 0x8f, 0xd4, 0xbe, 0xc4, 0xbb, 0xc4, 0x9d, 0xc9, 0x75,
+ 0x11, 0xa7, 0x8e, 0x80, 0x33, 0x8f, 0x41, 0x84, 0x53, 0x9b, 0x7c, 0x8e, 0x7c, 0x77, 0x9f, 0xd8,
+ 0xb4, 0x87, 0xd1, 0x08, 0x1f, 0x64, 0xb1, 0x99, 0x19, 0xf4, 0x77, 0xd1, 0x77, 0x8a, 0x65, 0xec,
+ 0xff, 0x82, 0xd6, 0x8c, 0xc2, 0xd9, 0x49, 0xb0, 0xa7, 0x15, 0xd1, 0xd6, 0xd1, 0xb8, 0x29, 0x42,
+ 0x1a, 0xbf, 0x27, 0xe6, 0x2e, 0x51, 0x05, 0xfd, 0x85, 0x26, 0xea, 0x27, 0xea, 0x46, 0x3d, 0xcf,
+ 0x48, 0x56, 0xcb, 0x6f, 0xd8, 0x57, 0x4a, 0x5a, 0x65, 0xb6, 0x36, 0xcb, 0x36, 0x3b, 0x83, 0x07,
+ 0xaa, 0xfc, 0x25, 0x49, 0x3d, 0x2f, 0xcf, 0x61, 0x7b, 0xa7, 0x9e, 0x25, 0x9e, 0xd0, 0x8f, 0x7c,
+ 0x58, 0xc0, 0x01, 0xb6, 0xe8, 0x3f, 0x65, 0x4e, 0x7f, 0xa1, 0x3a, 0x01, 0x3a, 0x4b, 0x59, 0xb8,
+ 0x93, 0xff, 0x99, 0x35, 0x76, 0x44, 0x26, 0xc7, 0x11, 0xf8, 0xfc, 0x99, 0xfc, 0x7f, 0x0a, 0xa7,
+ 0x21, 0xde, 0x13, 0x28, 0x63, 0x37, 0x30, 0xb8, 0x7d, 0xa2, 0x68, 0x13, 0x68, 0xe7, 0x32, 0xda,
+ 0xdd, 0x0f, 0x09, 0x4f, 0xa4, 0x04, 0xcb, 0x7b, 0x01, 0xe0, 0x29, 0x09, 0x29, 0x56, 0xd4, 0x31,
+ 0x60, 0xf2, 0xf9, 0x93, 0xa0, 0xb3, 0xe2, 0x78, 0x5c, 0x72, 0x28, 0xf9, 0x28, 0xe3, 0x99, 0x04,
+ 0x0c, 0x8f, 0xb6, 0x2a, 0x14, 0x2e, 0x8d, 0x0f, 0xea, 0x9f, 0x05, 0xb6, 0x05, 0x24, 0xba, 0xe1,
+ 0xc4, 0xe3, 0xe2, 0x42, 0x8f, 0xbf, 0x7c, 0xf5, 0x5f, 0x91, 0x53, 0xe2, 0x53, 0x19, 0x26, 0x57,
+ 0x9a, 0x85, 0xb8, 0xe1, 0x6d, 0x97, 0xbe, 0x5d, 0x55, 0x9e, 0x8a, 0xb8, 0x8a, 0x40, 0x22, 0x7e,
+ 0x5c, 0x04, 0xd2, 0x11, 0xe4, 0x25, 0x1e, 0x4b, 0x98, 0xd4, 0x39, 0xd2, 0x39, 0x57, 0x8e, 0xe7,
+ 0x53, 0xd8, 0xa8, 0xd0, 0xf5, 0xe1, 0x21, 0x37, 0xa9, 0x1c, 0xac, 0xa8, 0xac, 0x7a, 0xfb, 0xaf,
+ 0xcd, 0x99, 0xc3, 0x96, 0x94, 0x6c, 0xe4, 0x6f, 0x1b, 0xf7, 0x25, 0xc3, 0x25, 0x26, 0x0e, 0x8e,
+ 0x32, 0x1b, 0x15, 0x1a, 0x56, 0xb5, 0xad, 0xdf, 0xbc, 0xe2, 0xf4, 0x15, 0xf4, 0x9e, 0x27, 0xcc,
+ 0x1b, 0x8e, 0x63, 0xbf, 0x2d, 0xb6, 0x6b, 0x6d, 0xcc, 0xaa, 0x9a, 0x63, 0x9a, 0x41, 0x78, 0xa8,
+ 0x5a, 0xa2, 0x89, 0x04, 0xee, 0x32, 0xb9, 0xad, 0xed, 0x7a, 0xda, 0x89, 0xda, 0x45, 0xd3, 0x76,
+ 0xa1, 0xe4, 0x8c, 0x2f, 0x20, 0xf1, 0x8b, 0x18, 0xad, 0x1a, 0x08, 0x8c, 0x08, 0xe1, 0x2d, 0x6b,
+ 0xe5, 0x3d, 0xf1, 0x6a, 0xec, 0x88, 0x4c, 0x4d, 0x22, 0x33, 0x3b, 0xf1, 0x3b, 0xfe, 0x14, 0x8d,
+ 0x3c, 0xf6, 0x2b, 0x82, 0x44, 0x96, 0xfc, 0x33, 0xc4, 0xa6, 0x11, 0x2b, 0x11, 0xb4, 0x17, 0xe3,
+ 0x97, 0x3b, 0x4a, 0x92, 0x7a, 0x5e, 0x5d, 0xc2, 0xf6, 0x8d, 0xff, 0x4a, 0xff, 0x63, 0xdd, 0xf8,
+ 0xce, 0xca, 0x0f, 0x7d, 0x91, 0x86, 0x56, 0x1c, 0xc0, 0xa0, 0xb5, 0x0f, 0xb5, 0x2f, 0xc1, 0x27,
+ 0x6d, 0x4c, 0x0b, 0xe0, 0xb7, 0x7a, 0x01, 0xe7, 0xff, 0x61, 0x5d, 0x0b, 0x5d, 0xc0, 0x66, 0x82,
+ 0x62, 0x90, 0x71, 0x21, 0xa6, 0xbe, 0x3e, 0x9b, 0xce, 0xa9, 0xc8, 0x71, 0xc8, 0xed, 0x13, 0xca,
+ 0xf5, 0xab, 0x3b, 0xb3, 0xdc, 0xe0, 0x63, 0x59, 0x38, 0x24, 0x37, 0x3b, 0x37, 0x8e, 0xce, 0x32,
+ 0xb7, 0xd4, 0x1d, 0xe3, 0x1a, 0x8e, 0x03, 0xea, 0xc2, 0xa3, 0xe7, 0x1d, 0xe7, 0x83, 0xaa, 0x45,
+ 0xe2, 0xaa, 0xee, 0x26, 0xe5, 0x78, 0x85, 0x3b, 0x1e, 0x11, 0xa8, 0xee, 0xa8, 0xeb, 0x0c, 0x7b,
+ 0x41, 0x2c, 0xea, 0xbb, 0xc3, 0x84, 0xd2, 0xc0, 0x21, 0xd0, 0x40, 0xea, 0x40, 0x04, 0xab, 0xde,
+ 0x71, 0x55, 0x77, 0x13, 0x93, 0x3c, 0xa3, 0xfc, 0x0f, 0xe9, 0x54, 0x77, 0x54, 0x94, 0x06, 0xdc,
+ 0xf9, 0x24, 0x8d, 0x99, 0xc8, 0xce, 0xee, 0x56, 0xd2, 0xbb, 0x32, 0x8d, 0x32, 0xaa, 0x74, 0xd3,
+ 0xea, 0xe1, 0x8b, 0xab, 0xfd, 0x4c, 0x73, 0x31, 0x13, 0xfb, 0xae, 0x8b, 0xae, 0xd3, 0x61, 0xc5,
+ 0xae, 0x38, 0xf6, 0xee, 0x31, 0x35, 0xb4, 0x64, 0x9c, 0xd2, 0x9d, 0xf6, 0x9d, 0xcc, 0x58, 0x23,
+ 0xe4, 0x0c, 0xb5, 0x33, 0xef, 0x6f, 0x22, 0xdd, 0x6b, 0xbf, 0x4b, 0xb5, 0x4b, 0xf9, 0x51, 0xea,
+ 0x0b, 0x18, 0xa9, 0x66, 0x1d, 0xde, 0x44, 0x79, 0xd6, 0xbd, 0x96, 0xa9, 0x96, 0x31, 0xa2, 0x17,
+ 0xde, 0x5c, 0xc5, 0xa4, 0xa1, 0xee, 0x79, 0x08, 0xda, 0xb7, 0xb9, 0xc5, 0xb9, 0x5f, 0x1b, 0x98,
+ 0xf0, 0x5e, 0xac, 0x4d, 0xd3, 0x1d, 0x76, 0xcc, 0x96, 0xdd, 0x44, 0xac, 0x44, 0x95, 0x5c, 0x0a,
+ 0xd4, 0x75, 0x28, 0x9b, 0xbf, 0xd7, 0x53, 0xe1, 0x45, 0x86, 0x5f, 0x28, 0x5f, 0x69, 0xfc, 0xe8,
+ 0xb5, 0xb6, 0x95, 0x51, 0x1c, 0x83, 0xdf, 0x09, 0x50, 0x78, 0x07, 0x95, 0x07, 0x8d, 0x20, 0x8b,
+ 0xa4, 0x11, 0x1b, 0xd1, 0x2f, 0x0c, 0x9e, 0x8d, 0x03, 0xe3, 0x7b, 0x1b, 0x7b, 0xfa, 0xbf, 0x53,
+ 0xba, 0x6a, 0xef, 0x90, 0x0d, 0x47, 0xe0, 0x75, 0x61, 0xb0, 0x92, 0xef, 0x92, 0xa0, 0x55, 0xc3,
+ 0xe8, 0x83, 0x03, 0x19, 0xfb, 0x41, 0xaf, 0xd2, 0x81, 0x20, 0x4e, 0x03, 0x4e, 0xdd, 0xeb, 0x0b,
+ 0x0e, 0xed, 0x3e, 0x98, 0x12, 0x23, 0x51, 0xec, 0x78, 0x44, 0xe5, 0x3e, 0xe5, 0x2a, 0x30, 0x2f,
+ 0x9c, 0x23, 0xe3, 0xf4, 0x67, 0x80, 0x19, 0xbb, 0x20, 0x30, 0x69, 0xe3, 0x69, 0x52, 0x7f, 0xef,
+ 0x31, 0x48, 0xd9, 0xf1, 0x53, 0x5f, 0x1f, 0xac, 0x67, 0xb5, 0x64, 0xd9, 0x64, 0x97, 0xe8, 0x65,
+ 0x79, 0x1e, 0x12, 0x9e, 0x8b, 0x08, 0x55, 0xf6, 0x02, 0x03, 0x52, 0x12, 0x52, 0xac, 0x6b, 0x62,
+ 0xfc, 0xd1, 0x1a, 0x67, 0xc7, 0x33, 0xfb, 0xc3, 0x7c, 0x42, 0x41, 0x1a, 0x41, 0xb1, 0xe6, 0xeb,
+ 0x4d, 0xa3, 0x5c, 0x91, 0xd7, 0xaa, 0x5f, 0xcf, 0xcb, 0x4f, 0x45, 0x5c, 0x45, 0x20, 0x11, 0x3f,
+ 0xdb, 0xa9, 0x52, 0x5a, 0xae, 0x13, 0x6c, 0x9d, 0x74, 0x4e, 0xca, 0x52, 0xca, 0x44, 0x89, 0xa0,
+ 0x75, 0x91, 0xa4, 0xb4, 0x9f, 0x26, 0xd8, 0xf9, 0xe8, 0x9c, 0x57, 0xa4, 0x57, 0x88, 0xd1, 0x83,
+ 0x68, 0xb9, 0x9c, 0x1e, 0xb8, 0x87, 0x14, 0x72, 0x51, 0x98, 0x2e, 0x9c, 0x2e, 0xdb, 0xf4, 0xba,
+ 0x15, 0x63, 0x5d, 0x27, 0x3f, 0x95, 0x3a, 0x81, 0xb4, 0xee, 0x7f, 0x5d, 0x7f, 0x6b, 0x48, 0x87,
+ 0xa9, 0xaf, 0xe9, 0xa2, 0x38, 0xc5, 0x7d, 0x12, 0xa0, 0xf0, 0x0e, 0xe9, 0x0e, 0xd9, 0x40, 0xd5,
+ 0x01, 0x31, 0x44, 0x59, 0x03, 0xe7, 0x6e, 0x90, 0x49, 0x8c, 0x70, 0x44, 0x70, 0x07, 0x45, 0x67,
+ 0x23, 0xbc, 0x9b, 0x9a, 0x65, 0x3a, 0xec, 0x5b, 0xef, 0x79, 0x88, 0x9b, 0x88, 0xe9, 0xb8, 0x14,
+ 0xb2, 0x21, 0x8a, 0x1d, 0x15, 0x73, 0x16, 0x7f, 0x6c, 0x5a, 0x94, 0x8a, 0x94, 0x98, 0x38, 0x7d,
+ 0x6e, 0x1f, 0xc7, 0x0b, 0xb2, 0x90, 0xb3, 0x94, 0x24, 0x36, 0xcd, 0xc7, 0xcd, 0xc9, 0xa9, 0x2b,
+ 0xf2, 0x3c, 0x24, 0xff, 0xd5, 0x10, 0xaa, 0x2f, 0x04, 0x06, 0xa4, 0x24, 0xa4, 0x9b, 0xd6, 0xc4,
+ 0x3b, 0x61, 0x34, 0xce, 0x4d, 0x66, 0x35, 0x45, 0xf8, 0x84, 0x82, 0x34, 0x82, 0xa1, 0x0f, 0x15,
+ 0x52, 0xe9, 0xec, 0x89, 0xf6, 0x06, 0x4f, 0xa7, 0xe0, 0x90, 0xdc, 0xec, 0xdc, 0x7d, 0xbe, 0xc8,
+ 0x65, 0x07, 0x6e, 0x6d, 0xaf, 0x4e, 0xf7, 0xed, 0xf2, 0x8b, 0x5b, 0x6e, 0x5b, 0xf8, 0x0b, 0x3c,
+ 0x4b, 0x05, 0x07, 0x84, 0xdd, 0xbd, 0xf8, 0x29, 0xbe, 0xe1, 0xa6, 0x07, 0xa6, 0x32, 0x4c, 0xae,
+ 0x38, 0x32, 0xf8, 0x25, 0x48, 0x8c, 0x87, 0x36, 0x23, 0xd3, 0x12, 0xf8, 0x12, 0xa8, 0xc0, 0xbc,
+ 0x2a, 0xc6, 0xba, 0x4e, 0x7e, 0xe9, 0x74, 0xc1, 0xab, 0x1f, 0xfe, 0xba, 0xfe, 0xd6, 0x90, 0xcd,
+ 0x91, 0x9d, 0x11, 0x87, 0x70, 0x49, 0xfa, 0x24, 0x83, 0x23, 0x1c, 0x11, 0x1c, 0x71, 0x80, 0x69,
+ 0xd6, 0x17, 0xa0, 0x29, 0xb9, 0xda, 0x8f, 0x02, 0xd7, 0x5d, 0xbf, 0xa0, 0xbf, 0x67, 0x76, 0x26,
+ 0xfd, 0xe0, 0x5e, 0x3e, 0xc4, 0xd4, 0x95, 0x53, 0x35, 0xce, 0x31, 0x5e, 0x31, 0xb6, 0xa3, 0x8c,
+ 0xf8, 0x15, 0xc9, 0xc0, 0xcb, 0x29, 0x80, 0xc6, 0x9b, 0x37, 0x42, 0xc9, 0x42, 0xad, 0x31, 0xb4,
+ 0x8c, 0xb5, 0x29, 0x2d, 0x57, 0xe8, 0x36, 0xaf, 0x3a, 0x27, 0x65, 0x29, 0x65, 0x22, 0xa5, 0x50,
+ 0x50, 0x8b, 0x64, 0x3b, 0xf0, 0x0b, 0x93, 0x44, 0x72, 0x4b, 0x3c, 0x64, 0x3c, 0x73, 0x34, 0x06,
+ 0x7f, 0xb8, 0x49, 0x8b, 0x81, 0x1f, 0xf2, 0x10, 0x77, 0xad, 0xb1, 0x49, 0xb1, 0xbe, 0x36, 0xf3,
+ 0x59, 0xf1, 0x45, 0xef, 0xeb, 0xd8, 0x0b, 0xde, 0x36, 0x2d, 0x4a, 0x45, 0x4a, 0x4c, 0x1c, 0xdf,
+ 0x08, 0x4b, 0x65, 0x8d, 0x18, 0x34, 0xf6, 0x0a, 0x0d, 0xea, 0x06, 0x65, 0x06, 0x38, 0x6d, 0xbe,
+ 0xd9, 0xcb, 0xda, 0xe8, 0xa8, 0x1e, 0xb0, 0x7e, 0xe6, 0x95, 0x2a, 0xda, 0x2a, 0x4a, 0x03, 0x6e,
+ 0xa2, 0xb7, 0x40, 0xc4, 0x25, 0x1b, 0x39, 0x6b, 0x76, 0x4d, 0x98, 0x40, 0x98, 0xe8, 0xe2, 0xc2,
+ 0xfb, 0x46, 0x05, 0x2b, 0xce, 0xc3, 0x32, 0xb5, 0x40, 0x60, 0xd2, 0x05, 0xd2, 0xa4, 0xfe, 0x1d,
+ 0x1c, 0x19, 0x7c, 0xf3, 0x24, 0x46, 0xa2, 0x1b, 0xf0, 0x88, 0x09, 0x7c, 0x09, 0x54, 0x60, 0x5e,
+ 0x29, 0x95, 0x76, 0xa5, 0x7b, 0x03, 0xc6, 0xb2, 0x70, 0x48, 0x6e, 0x76, 0x6e, 0xdf, 0x5f, 0x64,
+ 0xd3, 0xe2, 0x37, 0xd7, 0xb6, 0x27, 0x9a, 0x97, 0x79, 0xa4, 0xcc, 0x37, 0xcc, 0x7c, 0xe4, 0x1e,
+ 0x6f, 0x2e, 0x83, 0x52, 0xb1, 0x77, 0xdd, 0x04, 0x6d, 0xba, 0xbd, 0x83, 0xbd, 0xce, 0xec, 0x4c,
+ 0x47, 0x8a, 0xb1, 0xae, 0xc9, 0x93, 0x75, 0x26, 0x54, 0x7e, 0xa3, 0xb1, 0xa3, 0x16, 0xf6, 0x4f,
+ 0x54, 0x4f, 0xb7, 0x9c, 0xfc, 0x11, 0xe8, 0x41, 0x95, 0x3e, 0x3f, 0xb7, 0x3f, 0x6f, 0xe3, 0x59,
+ 0x9f, 0x70, 0x2f, 0x1f, 0x62, 0x6a, 0xab, 0xc8, 0xfb, 0x67, 0xf9, 0x2f, 0xf9, 0x5b, 0xb0, 0x46,
+ 0x17, 0x01, 0xd5, 0x95, 0x39, 0x98, 0xe6, 0x62, 0x26, 0x35, 0x9f, 0xd5, 0x9f, 0x65, 0xc2, 0x49,
+ 0xe1, 0xf9, 0x22, 0xcd, 0xe0, 0x92, 0x37, 0x48, 0xc5, 0x46, 0x38, 0x22, 0x38, 0xe2, 0xc3, 0xd2,
+ 0x7c, 0xeb, 0x85, 0x60, 0x84, 0xf5, 0x40, 0x63, 0xac, 0xfa, 0x21, 0x85, 0x21, 0xb7, 0xf9, 0x5a,
+ 0x46, 0xbb, 0xf5, 0xf7, 0xca, 0x74, 0x1b, 0xb6, 0x1d, 0xf2, 0xd3, 0xf5, 0xd3, 0x11, 0xb3, 0x28,
+ 0xbc, 0xcc, 0xb4, 0x85, 0x07, 0x50, 0x47, 0x93, 0x14, 0x1e, 0x71, 0xb4, 0x71, 0xb2, 0x08, 0x52,
+ 0xc5, 0xd2, 0xa6, 0x1b, 0x8c, 0x58, 0x12, 0x65, 0x16, 0x1d, 0x23, 0xa6, 0x23, 0x1e, 0x63, 0x30,
+ 0x22, 0x8d, 0xdf, 0xc3, 0x66, 0xdd, 0x82, 0xcb, 0xa6, 0xf5, 0xf8, 0xdf, 0xf8, 0xee, 0xfd, 0x73,
+ 0xbe, 0xae, 0x3c, 0x37, 0x01, 0x5d, 0x9b, 0x70, 0x86, 0xc5, 0x91, 0x3c, 0x91, 0xbc, 0x82, 0x9c,
+ 0x96, 0x0a, 0x0e, 0xcb, 0x79, 0xb9, 0x33, 0x52, 0xbf, 0x01, 0x8f, 0x0e, 0x8f, 0x64, 0x98, 0x9f,
+ 0x7e, 0x89, 0x0d, 0xd2, 0x82, 0xf8, 0x9c, 0x80, 0x3e, 0x21, 0xc1, 0x0d, 0xc1, 0xb9, 0x73, 0x94,
+ 0x1d, 0x28, 0x38, 0xaa, 0x27, 0xa1, 0xcc, 0x8b, 0xb9, 0x04, 0x79, 0x38, 0x79, 0x53, 0x25, 0x39,
+ 0xb9, 0x39, 0x23, 0x7b, 0x08, 0xad, 0x52, 0x06, 0xba, 0xe7, 0x02, 0x23, 0x02, 0xa9, 0x9a, 0x6a,
+ 0x9d, 0x12, 0xa7, 0xad, 0x64, 0x67, 0x77, 0x2b, 0x69, 0xbc, 0x19, 0xa7, 0x19, 0x55, 0x3a, 0x88,
+ 0xad, 0x6b, 0x3a, 0x05, 0x34, 0xdf, 0x06, 0x17, 0x47, 0x85, 0x0d, 0x3a, 0x0d, 0xc5, 0x97, 0x8a,
+ 0x6c, 0x7d, 0x4f, 0xb9, 0xb4, 0x9d, 0x6f, 0x77, 0xb6, 0xed, 0x2d, 0x4f, 0x2d, 0xc7, 0x23, 0xe5,
+ 0x85, 0xcf, 0x08, 0xf9, 0x4c, 0x3b, 0xae, 0x35, 0x7e, 0x41, 0x13, 0x08, 0x13, 0x1d, 0x8d, 0x89,
+ 0xd1, 0x80, 0xbf, 0x65, 0xb0, 0x2a, 0x46, 0x74, 0xeb, 0x7f, 0x2c, 0xbf, 0x2c, 0x72, 0x6e, 0xd0,
+ 0x1e, 0x7b, 0xf4, 0x41, 0x22, 0x4b, 0x7e, 0xf8, 0x62, 0x53, 0xe9, 0xf4, 0xe9, 0x5a, 0xea, 0x90,
+ 0xa5, 0x20, 0x5f, 0x88, 0x2c, 0xeb, 0xf0, 0x1d, 0x4a, 0x6f, 0x0b, 0x5f, 0x0b, 0xfd, 0xfa, 0x34,
+ 0xe6, 0x6e, 0x3d, 0x81, 0xe9, 0x62, 0xfe, 0x3e, 0xf9, 0x64, 0xab, 0x3d, 0xab, 0xf7, 0xdb, 0x24,
+ 0x2e, 0x02, 0x69, 0xe9, 0x72, 0xf3, 0x0f, 0xc4, 0x4c, 0x6a, 0xfd, 0x69, 0xfd, 0xca, 0x47, 0x92,
+ 0x5f, 0x57, 0x1e, 0xfa, 0xe1, 0xcf, 0xac, 0x38, 0x43, 0x83, 0xa9, 0x1e, 0xa9, 0x5e, 0x41, 0x4e,
+ 0x61, 0xc3, 0xbd, 0xca, 0xa3, 0x54, 0x8c, 0xe8, 0x15, 0xfe, 0x58, 0xbd, 0x58, 0xe4, 0xdc, 0x63,
+ 0x83, 0x69, 0x53, 0xec, 0x46, 0x2c, 0x09, 0xd3, 0x0b, 0xef, 0xf0, 0x53, 0xf0, 0x0f, 0xd0, 0x18,
+ 0x44, 0xd9, 0x7d, 0x45, 0xcc, 0x79, 0xc7, 0x55, 0x8f, 0x29, 0x33, 0x7d, 0x33, 0x1f, 0x39, 0xe6,
+ 0xb1, 0x72, 0x46, 0xf6, 0x10, 0x99, 0xa4, 0x0c, 0xb7, 0x0d, 0x04, 0x46, 0x04, 0x91, 0xf7, 0xd4,
+ 0xef, 0x14, 0x1c, 0x55, 0xf2, 0xb1, 0x66, 0xa4, 0xbd, 0x02, 0xdd, 0x1c, 0xdd, 0xc8, 0xf3, 0xfd,
+ 0x82, 0x58, 0x17, 0xb5, 0x45, 0xcb, 0x67, 0x43, 0x42, 0x63, 0x80, 0x17, 0x80, 0x08, 0x95, 0x7f,
+ 0x36, 0xdf, 0xc6, 0xbd, 0x5a, 0xaf, 0xd6, 0xda, 0x5b, 0x97, 0xf7, 0xc6, 0xf7, 0x82, 0xf0, 0x93,
+ 0xa3, 0x86, 0x04, 0x9d, 0x26, 0xfc, 0x57, 0xfb, 0x3f, 0xc1, 0xe8, 0x04, 0xe8, 0xef, 0xa7, 0xa5,
+ 0xaf, 0x09, 0xb2, 0xb7, 0x32, 0xd2, 0xda, 0xf4, 0xd5, 0x5e, 0xed, 0xb2, 0xed, 0xcb, 0x1d, 0x44,
+ 0x88, 0x71, 0xfa, 0x8a, 0x5b, 0xf2, 0x4d, 0xaa, 0xdd, 0x52, 0x66, 0xfa, 0x66, 0x3e, 0x72, 0x0f,
+ 0x89, 0x40, 0xbe, 0xd3, 0x58, 0x15, 0x23, 0x3a, 0x94, 0xde, 0x16, 0xbe, 0x16, 0x39, 0x37, 0x68,
+ 0x0f, 0xdc, 0x7a, 0xc1, 0x11, 0xc4, 0x3f, 0x7c, 0x31, 0xc8, 0x95, 0x7a, 0x95, 0x2d, 0x75, 0x48,
+ 0x1f, 0x4a, 0xb0, 0x18, 0x21, 0xac, 0x10, 0x68, 0x2b, 0xdf, 0x99, 0xb0, 0x99, 0x5d, 0xaf, 0xf7,
+ 0x42, 0x7f, 0x26, 0x50, 0xc6, 0x6e, 0x60, 0xb3, 0xfa, 0x87, 0xd0, 0x26, 0xd0, 0x0d, 0x64, 0x77,
+ 0xf6, 0xf8, 0xf7, 0x58, 0xd9, 0x0a, 0xd1, 0x2a, 0xe3, 0x73, 0xa7, 0xf7, 0xa7, 0x87, 0x01, 0x9b,
+ 0xdf, 0x6d, 0x81, 0xfd, 0xa2, 0x09, 0x17, 0x98, 0x93, 0x3b, 0xc9, 0x81, 0xc9, 0x58, 0x5e, 0xff,
+ 0x3a, 0x50, 0x70, 0x97, 0x4e, 0x81, 0x5b, 0xd5, 0xb1, 0x08, 0xf2, 0x70, 0xf2, 0xa6, 0x4a, 0x72,
+ 0xc1, 0x16, 0x75, 0xbc, 0x80, 0x42, 0x69, 0x60, 0xf1, 0x68, 0x20, 0x75, 0x20, 0x02, 0xb4, 0x6f,
+ 0x28, 0xa4, 0x32, 0xfc, 0x78, 0xe4, 0xa8, 0x22, 0x39, 0xc4, 0x1e, 0x32, 0x1e, 0xd8, 0x1a, 0x03,
+ 0xf1, 0x6f, 0xe8, 0x14, 0xd0, 0xfa, 0x18, 0x5c, 0xdf, 0x51, 0x34, 0xe8, 0x34, 0x92, 0x19, 0x6d,
+ 0xcb, 0x3f, 0x98, 0x83, 0x9e, 0x7b, 0x43, 0x89, 0x6e, 0x59, 0xc6, 0x98, 0xc6, 0x34, 0x53, 0x1f,
+ 0x92, 0xce, 0xdd, 0x6c, 0x75, 0xa3, 0x48, 0x57, 0x58, 0x74, 0x8c, 0xdd, 0x8c, 0x78, 0x4f, 0xc0,
+ 0x87, 0xad, 0x80, 0x4b, 0x4a, 0x36, 0x72, 0xd6, 0xec, 0x9a, 0xf3, 0x80, 0xf3, 0x13, 0x07, 0x47,
+ 0xe7, 0x5f, 0x79, 0xd8, 0xea, 0x85, 0x90, 0xae, 0xb0, 0xe8, 0xdb, 0x79, 0xdb, 0xf0, 0x9e, 0x43,
+ 0x3e, 0x94, 0xa3, 0x30, 0x42, 0x9b, 0x20, 0xd0, 0x56, 0x7d, 0xf1, 0xa3, 0xf1, 0xba, 0x9d, 0x2d,
+ 0xfa, 0x77, 0x41, 0x72, 0xcd, 0x24, 0x5c, 0x25, 0x09, 0xec, 0xa2, 0x41, 0xa2, 0xa3, 0xbb, 0x7a,
+ 0x0d, 0xbe, 0xf2, 0x73, 0x17, 0xc9, 0xe3, 0x9f, 0xa3, 0x13, 0x75, 0xf2, 0x75, 0x23, 0xff, 0x86,
+ 0x51, 0xba, 0x20, 0x62, 0xf3, 0xec, 0xfd, 0xd4, 0x3b, 0xc7, 0x4c, 0x20, 0x4c, 0x74, 0x71, 0x61,
+ 0xb6, 0xe5, 0x59, 0xba, 0x19, 0x69, 0x6d, 0x7a, 0x8b, 0x2f, 0x97, 0x59, 0x97, 0x84, 0xef, 0x22,
+ 0x7b, 0x7c, 0x9a, 0x2c, 0x8d, 0x05, 0x89, 0x15, 0x90, 0xd8, 0xb2, 0x9a, 0xb2, 0xa2, 0xe1, 0xac,
+ 0x74, 0xa0, 0xe0, 0xed, 0x9c, 0xc1, 0xb6, 0x69, 0xa1, 0x10, 0x27, 0xe0, 0x27, 0x8f, 0x94, 0xe4,
+ 0x3f, 0xa5, 0xe7, 0x69, 0x41, 0x7c, 0x4e, 0x40, 0x1f, 0xf1, 0x81, 0xe7, 0x81, 0xbd, 0xd8, 0x4a,
+ 0x2f, 0x33, 0x2d, 0xb0, 0x71, 0x14, 0x61, 0x54, 0x05, 0xe6, 0x8d, 0x2d, 0x8d, 0xcd, 0x02, 0xf5,
+ 0x7d, 0xda, 0xc1, 0x39, 0x87, 0x12, 0x2e, 0xf3, 0xe5, 0x76, 0x51, 0xc1, 0x51, 0xb0, 0xbc, 0x3d,
+ 0xbb, 0x5b, 0xab, 0xc9, 0x0e, 0xa0, 0x8e, 0xe5, 0x28, 0x3c, 0xe2, 0xab, 0xe2, 0xa7, 0x10, 0xa4,
+ 0x49, 0x67, 0x8f, 0x36, 0xdb, 0xb0, 0x24, 0xca, 0x2c, 0x3a, 0x46, 0x8f, 0x46, 0x3c, 0xc6, 0x60,
+ 0x2b, 0xf7, 0xfe, 0x17, 0x7d, 0x0e, 0x1a, 0x51, 0xe2, 0x93, 0x8e, 0xfe, 0x8e, 0xd1, 0xd5, 0xaa,
+ 0x99, 0xd6, 0x74, 0x0a, 0x68, 0x7d, 0x0c, 0x2e, 0x8e, 0xc9, 0x1a, 0x74, 0x1a, 0x49, 0xed, 0xd7,
+ 0x02, 0x62, 0x88, 0xb2, 0x06, 0x0d, 0xdc, 0xe3, 0x92, 0xdb, 0xe0, 0x88, 0xe0, 0x0e, 0x8a, 0xce,
+ 0x37, 0xee, 0x82, 0xe4, 0x59, 0x48, 0xb8, 0x4a, 0x12, 0x1b, 0x87, 0x82, 0x87, 0x85, 0xb5, 0xf4,
+ 0xb3, 0x10, 0xce, 0x44, 0x16, 0x94, 0x78, 0xef, 0x25, 0xd6, 0xe4, 0xce, 0xe4, 0x9f, 0x7d, 0x1a,
+ 0x73, 0x37, 0xff, 0xa1, 0x95, 0x31, 0x7f, 0x1f, 0x9d, 0x32, 0xb4, 0xff, 0xb4, 0x9a, 0x8c, 0x12,
+ 0x64, 0x36, 0x2a, 0x34, 0xac, 0xa9, 0x99, 0x7d, 0xbb, 0x07, 0x2b, 0x2a, 0x2b, 0xff, 0x4e, 0x5b,
+ 0xdc, 0x3e, 0x4d, 0x16, 0xa7, 0xe3, 0xa5, 0xeb, 0x48, 0x6c, 0x59, 0x4d, 0x59, 0x51, 0x91, 0x56,
+ 0xd8, 0xfa, 0x9e, 0xb1, 0xab, 0xf9, 0xde, 0xee, 0xaf, 0x19, 0x5a, 0x9e, 0x5a, 0x4d, 0x46, 0x09,
+ 0xc9, 0x5d, 0x10, 0x31, 0x98, 0x76, 0x9f, 0x6a, 0xfc, 0x82, 0x26, 0x10, 0x26, 0x3a, 0xd9, 0xd1,
+ 0xab, 0xcd, 0x61, 0x10, 0x3e, 0xc8, 0xa1, 0xf1, 0x32, 0x2b, 0xee, 0x61, 0xee, 0xd7, 0xca, 0x1b,
+ 0x33, 0x2a, 0x51, 0x43, 0x55, 0x52, 0xc3, 0x4f, 0xf5, 0x6e, 0x84, 0x51, 0x84, 0x99, 0x62, 0xab,
+ 0x6b, 0xea, 0x50, 0xf5, 0xbd, 0x6d, 0xa6, 0x01, 0x8a, 0xcf, 0xbe, 0x50, 0xbe, 0xd2, 0x3b, 0x13,
+ 0xcc, 0xa8, 0x87, 0xcf, 0x97, 0x8b, 0x8a, 0xff, 0x52, 0x7b, 0x55, 0x87, 0x55, 0x21, 0x4b, 0xe9,
+ 0x90, 0xac, 0x55, 0xde, 0x73, 0xae, 0x94, 0xb4, 0xca, 0xaf, 0x6c, 0x55, 0x6c, 0x76, 0xc5, 0x0e,
+ 0xd0, 0xb1, 0xfb, 0x3c, 0xb3, 0xcd, 0x28, 0xe4, 0xa2, 0xf3, 0x5c, 0xfb, 0x5c, 0x75, 0x2b, 0xb7,
+ 0xac, 0x5a, 0x7e, 0x5c, 0x37, 0x38, 0x68, 0x87, 0x0e, 0x09, 0x7d, 0x7e, 0x7d, 0xc2, 0xd2, 0xed,
+ 0xbf, 0x9f, 0x78, 0x6e, 0x02, 0xba, 0xf5, 0xe0, 0xcf, 0x49, 0xe1, 0x78, 0xe1, 0xbb, 0xc7, 0xfb,
+ 0xda, 0x98, 0x16, 0x03, 0xad, 0xf4, 0x02, 0x0d, 0x3d, 0xc2, 0xba, 0x16, 0xba, 0x43, 0xcc, 0xc7,
+ 0xa7, 0x42, 0xd7, 0x3a, 0x2a, 0xe6, 0x2c, 0xfe, 0xd8, 0xb4, 0xeb, 0xd7, 0xeb, 0xf3, 0x70, 0xfa,
+ 0x5e, 0x66, 0x5a, 0xa3, 0xe2, 0x28, 0xc2, 0xa8, 0x0a, 0x0f, 0xd9, 0x5a, 0xd9, 0x59, 0x04, 0x29,
+ 0x98, 0xe7, 0x30, 0x53, 0x6b, 0x9a, 0x62, 0xbe, 0xc7, 0x45, 0x6a, 0x30, 0x6a, 0x4e, 0xa8, 0xb0,
+ 0x7a, 0x4d, 0xde, 0x75, 0x8e, 0xe2, 0xe7, 0x85, 0xd9, 0x54, 0xc2, 0xde, 0xc2, 0xa5, 0xa4, 0xcb,
+ 0x13, 0xc5, 0x06, 0x32, 0x35, 0x82, 0x9d, 0x67, 0xc1, 0x40, 0x9c, 0x06, 0x9c, 0x79, 0x15, 0x16,
+ 0x6a, 0xdb, 0x14, 0xac, 0xbe, 0x8a, 0xc8, 0x91, 0xc3, 0x43, 0xce, 0x14, 0xce, 0xd5, 0x7e, 0x74,
+ 0x40, 0x1d, 0xae, 0xe2, 0xc0, 0x63, 0xbc, 0x50, 0x68, 0x5c, 0x30, 0xae, 0x30, 0x03, 0xee, 0xb9,
+ 0xa8, 0x9e, 0xad, 0xfb, 0x3b, 0x22, 0x13, 0x82, 0xe9, 0x7c, 0x7e, 0xad, 0x7e, 0xde, 0x05, 0xb2,
+ 0x5b, 0x93, 0xcd, 0x5d, 0xed, 0xd5, 0xd7, 0x3d, 0xa4, 0xf6, 0xaa, 0xcd, 0xaa, 0x42, 0x96, 0x11,
+ 0xeb, 0xd0, 0xcf, 0xf2, 0xfe, 0xab, 0x1d, 0xa1, 0x5a, 0x77, 0xde, 0xcf, 0xde, 0xd4, 0x24, 0xa2,
+ 0x66, 0x54, 0xa2, 0x86, 0xaa, 0xa4, 0x45, 0x9e, 0x29, 0xdc, 0xcb, 0xa2, 0xcb, 0xf1, 0xc4, 0x95,
+ 0x56, 0x2d, 0x3f, 0x2e, 0xfa, 0x1c, 0x34, 0xa2, 0x07, 0xe5, 0xdf, 0x3f, 0xdf, 0x61, 0x69, 0x97,
+ 0x81, 0x0b, 0xdb, 0x5e, 0x40, 0x21, 0xd5, 0x30, 0x99, 0x34, 0x10, 0xdb, 0x10, 0x01, 0x5a, 0xd6,
+ 0x77, 0xf3, 0x2c, 0x06, 0x99, 0x2b, 0x04, 0x1a, 0x7a, 0x47, 0xb7, 0x2c, 0xb7, 0x86, 0x5b, 0x4d,
+ 0x57, 0x1c, 0x7b, 0x77, 0xf9, 0xfb, 0x5a, 0x32, 0x4e, 0x69, 0xaf, 0x7b, 0xaf, 0x66, 0x2c, 0xf0,
+ 0x4e, 0xf0, 0x90, 0x7a, 0xd2, 0x40, 0xed, 0xbc, 0x10, 0x18, 0xd5, 0x90, 0xd5, 0x29, 0xde, 0x96,
+ 0x8d, 0x84, 0x6d, 0x74, 0x54, 0x0f, 0x58, 0x3f, 0x73, 0xab, 0x15, 0x6d, 0x15, 0x25, 0xe0, 0x37,
+ 0xb0, 0x43, 0x02, 0xaf, 0x13, 0x7e, 0xca, 0x9c, 0xfe, 0x81, 0x74, 0x02, 0x74, 0x96, 0xb2, 0xb3,
+ 0xf3, 0x0d, 0x60, 0xa6, 0xd6, 0xf7, 0xc4, 0xbf, 0x4d, 0x8a, 0xd4, 0x60, 0xd4, 0x9c, 0x93, 0xa3,
+ 0x94, 0x68, 0x86, 0x79, 0x7f, 0xb4, 0xef, 0xb1, 0x2d, 0xda, 0x6f, 0x86, 0x6f, 0x6a, 0x12, 0x51,
+ 0x20, 0xef, 0x57, 0x71, 0x60, 0xd0, 0x5e, 0x28, 0x34, 0x2e, 0x18, 0x57, 0x18, 0xe0, 0x77, 0xbd,
+ 0x24, 0x2b, 0x84, 0xd6, 0x6c, 0xca, 0x25, 0x2d, 0xd3, 0x5b, 0x1b, 0x84, 0x1b, 0xfc, 0xa0, 0xe2,
+ 0xd7, 0x26, 0xe4, 0x70, 0xba, 0x3d, 0xe1, 0x92, 0x9e, 0xd1, 0xcf, 0xe4, 0xcf, 0x60, 0x33, 0x41,
+ 0x14, 0x52, 0x19, 0x7e, 0x3c, 0x72, 0x54, 0x11, 0xfd, 0x62, 0x0f, 0x19, 0x0f, 0x6c, 0x0d, 0xe0,
+ 0x9e, 0x41, 0x6b, 0x46, 0x61, 0x8d, 0xc5, 0x58, 0xb2, 0xeb, 0x89, 0x6b, 0x89, 0x5c, 0xf5, 0x21,
+ 0x05, 0xf5, 0x97, 0xfe, 0x0f, 0xfd, 0x15, 0x95, 0xae, 0xf9, 0x73, 0x97, 0x73, 0x1b, 0x92, 0x38,
+ 0xc6, 0x81, 0x6a, 0xf0, 0x89, 0xb2, 0xa0, 0x16, 0xcd, 0x4a, 0xb3, 0x6a, 0xb3, 0x17, 0xac, 0x99,
+ 0xed, 0x76, 0x94, 0xe7, 0xf4, 0xbc, 0xba, 0x47, 0x2f, 0xd9, 0x3d, 0x94, 0x3d, 0xc6, 0x79, 0x33,
+ 0xc8, 0x6c, 0x54, 0x68, 0x9b, 0x91, 0xf1, 0xfa, 0xb5, 0x0e, 0x56, 0x54, 0x56, 0x3d, 0x9c, 0xb6,
+ 0x9b, 0xb4, 0xfc, 0xb8, 0x6e, 0x70, 0xd0, 0xcd, 0x1c, 0x12, 0xfa, 0xfc, 0xfa, 0x47, 0x67, 0x19,
+ 0xbd, 0xfd, 0xf0, 0xdc, 0x04, 0xb7, 0x29, 0x03, 0x5d, 0x92, 0x01, 0xf0, 0x01, 0xb5, 0x4d, 0x35,
+ 0x84, 0xfe, 0x4c, 0xa0, 0x4f, 0xdc, 0xc0, 0xa5, 0x37, 0xcd, 0x63, 0x4c, 0x63, 0x1a, 0xc8, 0xee,
+ 0xc3, 0x74, 0xfd, 0x0e, 0x86, 0x4f, 0xb5, 0x83, 0x63, 0xb3, 0xc0, 0xfd, 0xc0, 0x0c, 0x3e, 0xa1,
+ 0xca, 0x0e, 0xdc, 0xda, 0x9d, 0x9c, 0x2d, 0x19, 0x27, 0xd5, 0xb6, 0xdc, 0xb6, 0x33, 0x16, 0x78,
+ 0x8a, 0x13, 0x72, 0x38, 0x5d, 0xff, 0x91, 0x49, 0x4f, 0x89, 0x86, 0x72, 0x86, 0x30, 0xf8, 0xc1,
+ 0x34, 0xbd, 0x4e, 0x0f, 0x5c, 0xa2, 0x0a, 0x39, 0xc9, 0x4c, 0x17, 0x4e, 0x17, 0x8c, 0x7a, 0x5d,
+ 0x26, 0x49, 0x0c, 0x64, 0x6a, 0xc7, 0xf9, 0xce, 0x41, 0x80, 0xfb, 0x0c, 0xfb, 0xf2, 0x2a, 0x2c,
+ 0x10, 0x96, 0xca, 0xd9, 0x30, 0x68, 0x2f, 0x14, 0x1a, 0x17, 0x0c, 0xca, 0x0c, 0x70, 0xda, 0xbf,
+ 0x25, 0x1a, 0xc0, 0x8f, 0x6f, 0x2d, 0x4b, 0xbd, 0x9a, 0xd7, 0x6b, 0xc0, 0x6b, 0xfb, 0xe5, 0x85,
+ 0xe3, 0x9b, 0xaa, 0x7f, 0xe6, 0x9f, 0xeb, 0xab, 0x57, 0x9d, 0xd8, 0xaa, 0xd8, 0xec, 0x49, 0x1c,
+ 0x63, 0xa1, 0x35, 0x78, 0xa5, 0x59, 0x50, 0x0b, 0x87, 0x25, 0xb8, 0x35, 0xb8, 0xea, 0x56, 0xad,
+ 0x0a, 0x29, 0xed, 0x3f, 0x1e, 0x39, 0x2a, 0xe9, 0x9f, 0x31, 0xe6, 0xed, 0xe6, 0x36, 0xe7, 0x70,
+ 0x4f, 0xc1, 0xd4, 0x23, 0xd1, 0xa7, 0x83, 0x2c, 0x59, 0x94, 0xa5, 0xd4, 0xa5, 0x2e, 0x9b, 0xf1,
+ 0x8b, 0x22, 0x36, 0x61, 0x5e, 0x18, 0xff, 0xd9, 0x06, 0x05, 0xf6, 0x36, 0xf6, 0x37, 0xbd, 0xa6,
+ 0xc7, 0xb0, 0x2e, 0xa9, 0x8a, 0x55, 0xce, 0x86, 0x84, 0xc6, 0xc3, 0x2e, 0xc3, 0x10, 0xe9, 0xfe,
+ 0x67, 0x65, 0xe6, 0xdf, 0xa9, 0x43, 0x2b, 0x0e, 0x60, 0x50, 0xbb, 0xe6, 0xbb, 0xf6, 0x81, 0xf2,
+ 0x2d, 0x51, 0xa5, 0x02, 0x77, 0x19, 0xbd, 0xb7, 0x97, 0x3d, 0x6d, 0xa5, 0x6d, 0xc3, 0x88, 0x3b,
+ 0xfe, 0xb3, 0x92, 0xd5, 0xc1, 0x3e, 0x27, 0x20, 0xee, 0x99, 0xa1, 0x92, 0xa1, 0xbf, 0x6c, 0x25,
+ 0x45, 0xe8, 0x39, 0x1c, 0xcf, 0x9e, 0xa9, 0xc5, 0xc6, 0xa5, 0x43, 0x39, 0x43, 0x18, 0x7c, 0x81,
+ 0xa0, 0xd5, 0xc8, 0x76, 0x23, 0x16, 0xe5, 0x88, 0xe4, 0x96, 0x78, 0xc8, 0x78, 0xe6, 0x68, 0x0c,
+ 0x80, 0x3a, 0x9f, 0x07, 0x43, 0xc6, 0xbb, 0xa0, 0xd0, 0xb8, 0x60, 0x9f, 0x60, 0x06, 0x1f, 0xb1,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x4a, 0x34, 0x43, 0xdd, 0xde, 0x5a, 0x96, 0xb9, 0xf7, 0x6d, 0xd6, 0x43, 0xd6, 0x35, 0x09, 0xc9,
+ 0xee, 0x25, 0x58, 0x0c, 0xf1, 0x56, 0x08, 0x34, 0xf4, 0x8e, 0xad, 0x58, 0xad, 0xcf, 0xb6, 0x9a,
+ 0x4c, 0x92, 0x18, 0xc8, 0xd4, 0x4d, 0x31, 0x5f, 0x82, 0xc3, 0x35, 0x18, 0x35, 0x27, 0x54, 0x58,
+ },
+ { /* 13 */
+ 0xab, 0xda, 0x7f, 0x93, 0x75, 0x63, 0x3b, 0x22, 0xb7, 0x40, 0xa6, 0x84, 0xc2, 0x22, 0x09, 0xda,
+ 0xbb, 0xd9, 0xf4, 0xa6, 0xc1, 0x1b, 0xf5, 0xe1, 0x54, 0xa2, 0xc5, 0x24, 0x95, 0xe1, 0xdd, 0xd9,
+ 0x83, 0x3c, 0x0e, 0x02, 0x84, 0xaf, 0x03, 0xe7, 0x22, 0x36, 0xb0, 0x57, 0xa6, 0xe7, 0x08, 0x3c,
+ 0x0d, 0x8c, 0x03, 0x40, 0xed, 0xc4, 0x60, 0xd0, 0xca, 0x0f, 0xa2, 0x72, 0x27, 0xd0, 0xc3, 0x8c,
+ 0x3a, 0xdd, 0xd3, 0xea, 0xb2, 0xbb, 0x9f, 0x26, 0x52, 0x19, 0x41, 0x67, 0xe0, 0x26, 0x2e, 0xdd,
+ 0x4a, 0xd4, 0xe4, 0x61, 0x38, 0x10, 0xb0, 0x2a, 0xbe, 0xf2, 0xab, 0x81, 0x86, 0x2a, 0x47, 0xd4,
+ 0xe8, 0xf2, 0xca, 0x2e, 0x8d, 0xa9, 0x39, 0x98, 0x8b, 0x64, 0xc7, 0x5f, 0x06, 0x98, 0xb8, 0xf2,
+ 0xeb, 0xd6, 0x16, 0x47, 0xe0, 0x40, 0x85, 0xa8, 0xbd, 0x4e, 0xe9, 0x41, 0x5d, 0xa8, 0xdf, 0xd6,
+ 0x8f, 0xac, 0xf8, 0x65, 0xf3, 0x8d, 0xb6, 0x27, 0xfa, 0x9e, 0x08, 0x2f, 0x09, 0x27, 0x57, 0xac,
+ 0xbe, 0xb5, 0x53, 0x1d, 0x76, 0xe3, 0xf2, 0xb1, 0x0e, 0xdc, 0xb7, 0x06, 0x78, 0xb1, 0x74, 0xb5,
+ 0x0f, 0xb4, 0x2a, 0x0e, 0x1a, 0xcb, 0x09, 0xf0, 0xee, 0x82, 0x96, 0x66, 0xf4, 0xf0, 0x38, 0xb4,
+ 0x6d, 0x86, 0xbf, 0xfe, 0xd3, 0x17, 0x81, 0x1f, 0xc5, 0x06, 0x2b, 0x34, 0x16, 0x1f, 0x7e, 0x86,
+ 0x0a, 0xd8, 0x8d, 0xb5, 0xad, 0x33, 0x0e, 0xa0, 0xb4, 0xfc, 0xe4, 0x44, 0x19, 0xa0, 0x91, 0xd8,
+ 0x29, 0xfa, 0x84, 0xb6, 0x6b, 0x2a, 0xed, 0xd5, 0x87, 0xd1, 0x0c, 0xd9, 0xec, 0xd5, 0x9d, 0xfa,
+ 0x17, 0x57, 0x05, 0xc0, 0xf4, 0x8f, 0xa0, 0xb3, 0x9d, 0x11, 0x25, 0x96, 0x69, 0xb3, 0x86, 0x57,
+ 0xb0, 0x1d, 0x8c, 0x34, 0xf6, 0xce, 0x2e, 0x51, 0xf2, 0xf9, 0x3b, 0x6a, 0x04, 0x51, 0xd0, 0x1d,
+ 0xc5, 0x78, 0x1c, 0x04, 0xcb, 0x9d, 0x06, 0x0d, 0x44, 0x6c, 0xa3, 0xae, 0x8f, 0x0d, 0x10, 0x78,
+ 0x4c, 0x9c, 0x9f, 0xb3, 0xe2, 0x01, 0x0b, 0x4a, 0xd2, 0xa6, 0xf7, 0xbd, 0x30, 0x4a, 0x89, 0x9c,
+ 0xc3, 0x30, 0x67, 0xd6, 0x11, 0x8c, 0xbd, 0x6d, 0x28, 0x38, 0xff, 0x92, 0x39, 0x6d, 0xde, 0x30,
+ 0xb5, 0x71, 0x2b, 0x8f, 0x41, 0x36, 0x29, 0x01, 0xa8, 0x87, 0x49, 0x48, 0xe9, 0x01, 0x79, 0x71,
+ 0x74, 0x79, 0x65, 0x17, 0xa7, 0xb5, 0xfd, 0x4c, 0xa4, 0x32, 0x82, 0xce, 0x03, 0x4c, 0x5c, 0x79,
+ 0x94, 0x6b, 0x0b, 0xc2, 0x70, 0x20, 0xa3, 0x54, 0xbf, 0x27, 0x95, 0xc1, 0xcf, 0x54, 0x8e, 0x6b,
+ 0x1d, 0x8f, 0x88, 0x75, 0x59, 0xbc, 0xae, 0x13, 0x29, 0xed, 0xc1, 0xd2, 0x70, 0x13, 0x17, 0x8f,
+ 0x25, 0x6a, 0x72, 0xd1, 0x1c, 0x08, 0x58, 0x15, 0x5f, 0x79, 0xb4, 0xa1, 0x43, 0x15, 0xc2, 0x6a,
+ 0x48, 0xec, 0xcd, 0x2f, 0xcf, 0x1f, 0xd9, 0x0a, 0x9a, 0x7f, 0x9f, 0x95, 0x55, 0x0a, 0xbc, 0xec,
+ 0xda, 0xcf, 0xbd, 0x3f, 0x65, 0x2e, 0xc1, 0x3e, 0x49, 0x0c, 0x56, 0x68, 0x2c, 0x3e, 0xfc, 0xcf,
+ 0xdd, 0x9b, 0x33, 0xca, 0x25, 0xd9, 0xaf, 0x4e, 0x37, 0xff, 0x10, 0x5e, 0x12, 0x4e, 0xae, 0x9b,
+ 0xe9, 0xee, 0x3f, 0x09, 0x17, 0x4f, 0xec, 0x88, 0x99, 0xc3, 0xdd, 0x55, 0x8e, 0x88, 0x24, 0xee,
+ 0xea, 0xca, 0xe3, 0x60, 0x7a, 0xa6, 0x50, 0xb8, 0xaf, 0xe9, 0xf3, 0x4b, 0xd5, 0xb8, 0x43, 0xca,
+ 0x73, 0x2d, 0xeb, 0xe2, 0xe7, 0x42, 0x93, 0x3c, 0xda, 0xc1, 0xc4, 0xf8, 0x3d, 0x3c, 0x0e, 0x2d,
+ 0x2e, 0xae, 0x0a, 0x43, 0x2b, 0xdd, 0x83, 0xa5, 0xf9, 0x22, 0x4a, 0xef, 0xd2, 0xa5, 0xcf, 0xae,
+ 0xf5, 0x7d, 0x42, 0x5b, 0xd4, 0x15, 0x97, 0x8b, 0xa2, 0x89, 0x06, 0x8d, 0x76, 0x8b, 0xaf, 0x7d,
+ 0x26, 0x4e, 0xae, 0xb8, 0x71, 0xe1, 0xe4, 0x25, 0x69, 0x53, 0x9a, 0xbf, 0x18, 0x25, 0xa5, 0x4e,
+ 0xd0, 0x17, 0x30, 0x8a, 0xc8, 0x1d, 0xcf, 0x9e, 0xfd, 0xf0, 0xb2, 0x2c, 0x35, 0x9e, 0x6d, 0x17,
+ 0xc4, 0x64, 0xe9, 0x23, 0x51, 0x7b, 0xd3, 0x1d, 0x56, 0xcb, 0xb9, 0xa4, 0x07, 0x1d, 0x8c, 0x64,
+ 0xf3, 0x35, 0x39, 0x89, 0x0e, 0x04, 0x2c, 0xeb, 0xce, 0xdd, 0x5a, 0xb1, 0xc0, 0xeb, 0x61, 0x35,
+ 0x7b, 0xcd, 0x4f, 0x19, 0xbd, 0x7e, 0xf4, 0xbc, 0x4a, 0xb0, 0x14, 0xa8, 0xf7, 0xbc, 0x64, 0xcd,
+ 0x4d, 0x80, 0x6a, 0x94, 0x78, 0xe7, 0xde, 0x5a, 0xc0, 0x01, 0xed, 0xb7, 0xb8, 0x5a, 0x15, 0x80,
+ 0x45, 0x60, 0xce, 0x6f, 0x22, 0xdb, 0xb9, 0xda, 0x50, 0x70, 0x3d, 0xe7, 0x72, 0xda, 0x7f, 0x60,
+ 0xa9, 0xe2, 0x56, 0xdd, 0x82, 0x6c, 0x52, 0x02, 0x93, 0xcd, 0x92, 0x90, 0x11, 0x02, 0xf2, 0xe2,
+ 0x5e, 0xa7, 0x3d, 0xc8, 0xa1, 0x76, 0xac, 0xa9, 0x15, 0xc9, 0xa0, 0x09, 0xb4, 0xa9, 0xa6, 0xa7,
+ 0xd8, 0xf7, 0x94, 0x71, 0x92, 0x21, 0xa8, 0x1e, 0x6d, 0x81, 0x62, 0x7c, 0xff, 0x1e, 0x07, 0xf7,
+ 0x7e, 0xa1, 0xe8, 0xa2, 0x0a, 0x86, 0xf3, 0xec, 0x10, 0xce, 0x66, 0x8a, 0x1a, 0xec, 0xcd, 0xa1,
+ 0xf2, 0x29, 0xcc, 0xae, 0x94, 0xe2, 0xf9, 0xfb, 0xdc, 0x7a, 0x40, 0xbb, 0x48, 0xfb, 0xfd, 0x29,
+ 0x90, 0x1b, 0x59, 0x5e, 0x5d, 0x3e, 0x71, 0x14, 0xf7, 0xfe, 0xfd, 0xe9, 0xaa, 0x14, 0xbb, 0x1b,
+ 0x77, 0x5d, 0xb9, 0x7e, 0xca, 0x5c, 0x41, 0x7c, 0x92, 0x18, 0xac, 0xd0, 0x58, 0x7c, 0x3b, 0x5d,
+ 0x53, 0x2b, 0x3e, 0x88, 0x4c, 0xb2, 0xcc, 0x79, 0xdf, 0xc6, 0x02, 0x7b, 0x93, 0x79, 0x65, 0x2b,
+ 0xe5, 0x7e, 0xc9, 0x6e, 0x60, 0x6d, 0x59, 0x48, 0x41, 0x6b, 0x65, 0x2d, 0x21, 0x48, 0x7b, 0x7e,
+ 0x49, 0xf0, 0x38, 0x08, 0x55, 0xf9, 0x0c, 0x1a, 0x88, 0xd8, 0x85, 0x9f, 0xdd, 0x1a, 0x20, 0xf0,
+ 0x98, 0xfb, 0xfd, 0xa5, 0x07, 0x02, 0x16, 0x94, 0x67, 0x8f, 0x2d, 0xb9, 0x60, 0x94, 0xd1, 0xfb,
+ 0x13, 0x27, 0x57, 0x5c, 0xd9, 0x91, 0x72, 0xf3, 0xd5, 0xc8, 0x4d, 0xbe, 0x0c, 0xf3, 0xb3, 0x27,
+ 0x43, 0x28, 0xb5, 0xbd, 0xf8, 0xca, 0x02, 0xba, 0x3c, 0x24, 0x61, 0xdb, 0xc4, 0xba, 0xb1, 0x28,
+ 0xdc, 0x87, 0xc6, 0xed, 0xbf, 0x3f, 0x7a, 0x5e, 0x25, 0x58, 0x0a, 0x54, 0x9a, 0x5e, 0x32, 0x87,
+ 0xc7, 0x40, 0x35, 0x4a, 0x3c, 0x92, 0x6f, 0x2d, 0x60, 0xe1, 0x97, 0xba, 0x5c, 0x2d, 0xeb, 0x40,
+ 0xa0, 0x1e, 0x07, 0x01, 0x42, 0xb6, 0xe0, 0x92, 0x11, 0x1b, 0x58, 0xca, 0x53, 0x92, 0x04, 0x1e,
+ 0xcc, 0x84, 0x4d, 0xd8, 0x0b, 0x47, 0xb4, 0x9d, 0xc6, 0xba, 0x69, 0xf4, 0xcd, 0x9d, 0xe6, 0x84,
+ 0x14, 0x73, 0xd9, 0xa9, 0x99, 0x66, 0x1c, 0x83, 0xab, 0x3b, 0x0b, 0x88, 0x32, 0x83, 0xe1, 0x73,
+ 0x52, 0x37, 0xcb, 0xaf, 0xd6, 0x54, 0x19, 0x69, 0xcd, 0x61, 0x18, 0x71, 0x1b, 0x69, 0xf9, 0x37,
+ 0x2f, 0xb2, 0xff, 0x64, 0xb1, 0x3b, 0x56, 0xb5, 0xeb, 0x85, 0x50, 0xe5, 0x5a, 0xb5, 0x53, 0xb2,
+ 0x47, 0x58, 0xe7, 0x21, 0xd5, 0xd4, 0xd0, 0xfa, 0x74, 0xfd, 0x09, 0xf3, 0xa1, 0xfa, 0x84, 0x58,
+ 0xa6, 0x56, 0x7c, 0xd3, 0x98, 0xa7, 0x5b, 0xf2, 0x7d, 0x4f, 0x04, 0xf6, 0xe5, 0xf2, 0xca, 0x56,
+ 0x5f, 0xbb, 0xc8, 0xef, 0x3b, 0x90, 0x79, 0xb9, 0x07, 0x6e, 0xba, 0x03, 0x3c, 0xb9, 0x3a, 0xbb,
+ 0xe3, 0x36, 0xb2, 0xbc, 0xba, 0x7c, 0xe2, 0x28, 0x2d, 0x3f, 0x39, 0x11, 0x97, 0x28, 0xb5, 0x36,
+ 0xb8, 0xfd, 0x28, 0xcf, 0xac, 0xf2, 0x49, 0xd1, 0x62, 0x88, 0xeb, 0x3a, 0xce, 0xd1, 0xba, 0xfd,
+ 0xa7, 0x4a, 0x89, 0xf4, 0x02, 0x41, 0x8e, 0xe2, 0x6f, 0xe8, 0x1e, 0xfc, 0x6d, 0xe2, 0x56, 0x4a,
+ 0xc0, 0x14, 0xbb, 0xbf, 0x7c, 0x65, 0x01, 0x5d, 0x1e, 0x12, 0xd1, 0x8c, 0x62, 0x5d, 0xb9, 0x14,
+ 0x23, 0x22, 0x09, 0x03, 0xc6, 0x19, 0xe3, 0x75, 0x33, 0x2d, 0xe8, 0x9d, 0xf5, 0x75, 0x0c, 0x22,
+ 0x2a, 0xde, 0x58, 0xdf, 0x06, 0xc3, 0x51, 0xe5, 0xb1, 0xfb, 0x22, 0xc7, 0xb7, 0xe5, 0xfa, 0xde,
+ 0x62, 0x32, 0x95, 0xf0, 0xc9, 0xdc, 0x88, 0xef, 0x2b, 0x84, 0xbd, 0x52, 0xe2, 0xef, 0x46, 0x32,
+ 0x7d, 0x85, 0x34, 0xcb, 0x67, 0x6f, 0x4f, 0xdc, 0x26, 0xe4, 0x48, 0x94, 0x41, 0xdc, 0xaa, 0x85,
+ 0x31, 0x19, 0xab, 0x78, 0x85, 0x6e, 0x44, 0x96, 0xf4, 0x42, 0xbf, 0x29, 0x71, 0x96, 0x23, 0x19,
+ 0x30, 0x05, 0x5e, 0x5f, 0x1f, 0x88, 0x91, 0x86, 0xe6, 0xe5, 0xa5, 0x23, 0xf9, 0x86, 0xbf, 0x05,
+ 0xc1, 0x08, 0x4e, 0x98, 0xe6, 0x83, 0xd4, 0x4d, 0x0c, 0xb5, 0xcb, 0x86, 0xea, 0x4d, 0x25, 0x08,
+ 0x20, 0x06, 0xd5, 0x6a, 0xab, 0xf0, 0x5f, 0x45, 0x05, 0x07, 0xc6, 0x83, 0xae, 0x45, 0x6b, 0x06,
+ 0x8a, 0xc0, 0x5f, 0xde, 0x44, 0x75, 0xb1, 0x77, 0xa0, 0xe0, 0x7a, 0x0d, 0xe4, 0x77, 0xfe, 0xc0,
+ 0xd7, 0x43, 0xbe, 0x7f, 0x88, 0xea, 0xa1, 0xee, 0x83, 0x03, 0xf4, 0x1a, 0x0b, 0xee, 0x3f, 0x43,
+ 0x3d, 0x89, 0x5d, 0x1f, 0xf2, 0x4c, 0xf1, 0x56, 0x2c, 0xea, 0x07, 0x51, 0xde, 0x56, 0x7c, 0x89,
+ 0xbf, 0xa9, 0xa6, 0x3a, 0xec, 0x05, 0x27, 0xa1, 0x1c, 0x7b, 0xad, 0x0c, 0xf0, 0xa1, 0xe8, 0xa9,
+ 0xc6, 0x5c, 0xc0, 0x6d, 0xa6, 0x74, 0xba, 0x3d, 0x72, 0x46, 0x8d, 0xb0, 0xd4, 0x3d, 0x77, 0x5c,
+ 0x72, 0x31, 0x1e, 0xc5, 0x7d, 0xa4, 0x46, 0x2c, 0xc8, 0x66, 0xde, 0xf2, 0xb5, 0x2c, 0x92, 0x31,
+ 0xdb, 0xd3, 0x48, 0x18, 0xff, 0xc8, 0x14, 0x2e, 0x5b, 0xab, 0x4c, 0x62, 0xa4, 0x2e, 0x60, 0xd3,
+ 0x15, 0x6f, 0x2c, 0x8e, 0x03, 0x80, 0xc9, 0x93, 0xb9, 0x9c, 0x11, 0x82, 0xba, 0x93, 0x7d, 0x6f,
+ 0x99, 0xe7, 0x08, 0x82, 0x9d, 0xe4, 0xc3, 0x84, 0x75, 0x28, 0x37, 0xb3, 0xe8, 0x84, 0x4d, 0xe7,
+ 0x4b, 0xc8, 0x11, 0x46, 0xa2, 0xf6, 0x65, 0x3a, 0xac, 0x55, 0xb1, 0x8b, 0x0e, 0x3a, 0xdb, 0xc8,
+ 0x34, 0x75, 0x0c, 0xc3, 0x32, 0x96, 0x43, 0xc6, 0xae, 0x3c, 0xcd, 0x0b, 0x9c, 0xc6, 0x8a, 0x75,
+ 0x60, 0x0a, 0xbc, 0xbe, 0x3e, 0xd3, 0xe1, 0xcf, 0x0f, 0x09, 0x89, 0x46, 0x31, 0xcf, 0xbd, 0x0a,
+ 0x92, 0x23, 0x70, 0x10, 0xaa, 0x31, 0x18, 0x34, 0xd3, 0x73, 0xc9, 0xfd, 0x79, 0x34, 0x40, 0x23,
+ 0xac, 0x8e, 0xf1, 0x66, 0x35, 0x94, 0x55, 0x52, 0xc9, 0xb3, 0xe0, 0xb2, 0xfc, 0x52, 0x5b, 0x8e,
+ 0x6e, 0xa2, 0x63, 0x97, 0xbe, 0xfe, 0x3d, 0x2f, 0xf3, 0x2c, 0x05, 0x2a, 0x4d, 0x2f, 0x19, 0xa2,
+ 0xa1, 0x02, 0xf2, 0x26, 0xd8, 0x50, 0x35, 0x82, 0x03, 0xbc, 0x42, 0xc0, 0xdb, 0x82, 0x98, 0x02,
+ 0x81, 0x04, 0x27, 0x4c, 0x73, 0xa0, 0x6a, 0xc7, 0x06, 0xbb, 0x84, 0x43, 0x75, 0xc7, 0xf3, 0x04,
+ 0x3b, 0xc1, 0x26, 0xcd, 0x28, 0x5d, 0x4a, 0x36, 0x40, 0xbe, 0x5b, 0x6d, 0x68, 0x36, 0xb2, 0xc1,
+ 0x19, 0xff, 0xda, 0xe9, 0x74, 0xa2, 0x7c, 0x53, 0x61, 0x34, 0xa9, 0xfa, 0x15, 0x53, 0x22, 0xff,
+ 0xe4, 0x62, 0x3c, 0x49, 0xfa, 0x8b, 0x8c, 0x58, 0x53, 0xcc, 0x7f, 0x27, 0xa9, 0x58, 0xe7, 0x62,
+ 0x2c, 0x96, 0x23, 0x0d, 0xdc, 0xd2, 0xea, 0x85, 0xdd, 0xaf, 0x7e, 0xfb, 0x01, 0x85, 0x34, 0x96,
+ 0xbd, 0x91, 0x8f, 0x74, 0x1b, 0x0a, 0x4e, 0x81, 0x38, 0xf6, 0x99, 0x18, 0x23, 0x81, 0x13, 0x91,
+ 0xb6, 0x55, 0xf7, 0xe6, 0x2c, 0xdf, 0x95, 0x31, 0x9e, 0xad, 0x67, 0x56, 0xb2, 0x31, 0x1e, 0x55,
+ 0xd3, 0x33, 0xec, 0xe3, 0xa5, 0xf4, 0x73, 0xae, 0xcb, 0xda, 0x9c, 0x32, 0x6e, 0xae, 0x0a, 0x33,
+ 0xe7, 0x46, 0xe0, 0x20, 0x97, 0x62, 0x30, 0x68, 0x65, 0xe6, 0x51, 0x39, 0xf2, 0x68, 0x80, 0x46,
+ 0x9b, 0xdf, 0x21, 0xcc, 0x6a, 0xeb, 0xaa, 0xa4, 0x51, 0xa5, 0x03, 0xa7, 0x3b, 0xa4, 0xb6, 0xdf,
+ 0x8c, 0x88, 0x24, 0x0c, 0x9e, 0x64, 0x0a, 0x17, 0xcc, 0xb4, 0x26, 0x31, 0x52, 0x17, 0x30, 0x88,
+ 0x04, 0x70, 0x52, 0x9c, 0x2d, 0x1e, 0xd2, 0x40, 0x48, 0xd9, 0x68, 0x28, 0x65, 0x40, 0x35, 0x70,
+ 0x86, 0x50, 0xa9, 0xb9, 0x33, 0x57, 0x04, 0xb7, 0x78, 0x48, 0xc2, 0x75, 0x4b, 0xb7, 0xa1, 0x50,
+ 0xef, 0xa6, 0x44, 0xdb, 0xcd, 0x5e, 0x57, 0xe8, 0xf5, 0x97, 0x81, 0x69, 0x38, 0xe8, 0xea, 0xa6,
+ 0x32, 0x3d, 0x77, 0x11, 0xe8, 0x87, 0xf8, 0xa6, 0xc2, 0x68, 0x91, 0x37, 0x2a, 0xa6, 0x44, 0x3d,
+ 0x0b, 0xc4, 0x78, 0x92, 0x37, 0xd5, 0xdb, 0xb0, 0xa6, 0x5b, 0xfe, 0x4e, 0x91, 0xb0, 0x0d, 0xc4,
+ 0x9e, 0xb3, 0x86, 0x77, 0xdd, 0x13, 0xad, 0xf4, 0x0b, 0xdb, 0x71, 0x85, 0xd6, 0xf4, 0x1f, 0xb3,
+ 0x80, 0x18, 0xd2, 0x6b, 0xe9, 0x46, 0xbf, 0xd7, 0x14, 0x1c, 0x9e, 0x49, 0xfd, 0xd7, 0x6f, 0x18,
+ 0x1c, 0x93, 0x7d, 0x52, 0xc3, 0x5a, 0x7b, 0x03, 0x3b, 0x4a, 0xdb, 0xd8, 0xf8, 0x03, 0x8b, 0x93,
+ 0xb1, 0x01, 0x79, 0x13, 0x6c, 0x28, 0xfb, 0x41, 0xe0, 0x5e, 0x21, 0x60, 0x8c, 0x41, 0x4c, 0x01,
+ 0xd4, 0x67, 0x62, 0x16, 0xe5, 0x03, 0x1d, 0xde, 0xb5, 0x29, 0xda, 0x04, 0x50, 0xde, 0x58, 0x67,
+ 0x7a, 0xd1, 0xba, 0x3e, 0x27, 0x98, 0x21, 0xac, 0x58, 0x17, 0x0e, 0xa2, 0x7f, 0xac, 0xf8, 0xd1,
+ 0x5b, 0xcb, 0x9a, 0x73, 0x16, 0x8e, 0xab, 0xf9, 0x4f, 0xb7, 0xd2, 0x2b, 0x59, 0xf9, 0x0f, 0xcb,
+ 0xa3, 0x3a, 0xdb, 0x68, 0x2f, 0x5f, 0x5c, 0xa2, 0x27, 0x31, 0x76, 0xd4, 0x08, 0xa2, 0x63, 0x3a,
+ 0xf9, 0xed, 0xb4, 0x3c, 0xa3, 0x37, 0x22, 0x4b, 0x7a, 0x21, 0xbe, 0xf5, 0xd9, 0x4b, 0xf0, 0xed,
+ 0x33, 0x21, 0x82, 0x36, 0x72, 0x61, 0x2d, 0xb6, 0xd0, 0xcf, 0x8b, 0x3d, 0xa2, 0xb6, 0xd8, 0x21,
+ 0x68, 0xea, 0x18, 0x45, 0x64, 0xef, 0x86, 0x4f, 0x9f, 0x78, 0x59, 0x16, 0xfb, 0x4f, 0xd7, 0xea,
+ 0x96, 0x53, 0x22, 0x8c, 0x87, 0x2f, 0xca, 0x74, 0x9b, 0xaa, 0xa1, 0xd5, 0x1c, 0x74, 0x75, 0x53,
+ 0x46, 0x44, 0x12, 0x06, 0x4f, 0x32, 0x05, 0xea, 0x66, 0x5a, 0x13, 0xf9, 0x29, 0xea, 0x18, 0x44,
+ 0x02, 0x38, 0x29, 0x4e, 0xf7, 0x0f, 0x69, 0x20, 0x24, 0x8d, 0x34, 0x14, 0xd3, 0x20, 0xfb, 0x38,
+ 0xff, 0xa5, 0xcf, 0xee, 0x79, 0x26, 0x99, 0x2b, 0x16, 0x75, 0xe2, 0xc9, 0x6f, 0x2b, 0x3e, 0xa5,
+ 0x95, 0x77, 0xfe, 0xe5, 0xea, 0xc6, 0x76, 0x44, 0xad, 0x80, 0x8f, 0xcb, 0x47, 0x44, 0x12, 0x77,
+ 0x64, 0x7a, 0xee, 0x22, 0x13, 0xcd, 0x33, 0x8f, 0x47, 0xd0, 0xe1, 0x6e, 0x54, 0x8f, 0x88, 0x7a,
+ 0x40, 0x0c, 0x69, 0xd4, 0x95, 0x23, 0xbe, 0x8a, 0x0a, 0x0e, 0x4f, 0xc5, 0x9f, 0x8a, 0xd6, 0x0c,
+ 0x41, 0x10, 0x9c, 0xf3, 0x0f, 0xc5, 0x6b, 0x9a, 0x18, 0xa9, 0x55, 0xcf, 0x17, 0x9a, 0x4a, 0x10,
+ 0x16, 0x4b, 0xf0, 0xe7, 0x6e, 0x69, 0x75, 0xa3, 0x8f, 0xb6, 0x3f, 0x9c, 0xe1, 0xa3, 0x1a, 0x4b,
+ 0x0e, 0xa8, 0xdf, 0x29, 0x80, 0x2d, 0xdc, 0xe0, 0xfc, 0x25, 0x8c, 0x6c, 0x7c, 0xe0, 0xa4, 0xa8,
+ 0xb9, 0xe1, 0xdd, 0xe8, 0x36, 0x14, 0x9c, 0xc1, 0x70, 0x2f, 0xf1, 0x30, 0x46, 0xc1, 0x26, 0xe1,
+ 0xfd, 0x9d, 0xe6, 0xa0, 0x8e, 0x29, 0xf0, 0x0b, 0x32, 0xf8, 0xd6, 0xdd, 0xbc, 0x0b, 0xc5, 0x9d,
+ 0x6f, 0xbe, 0x96, 0xb0, 0x24, 0x18, 0xe8, 0x3f, 0xe1, 0x8b, 0x1f, 0x20, 0xc5, 0x3f, 0x85, 0xbe,
+ 0x91, 0x07, 0xac, 0x79, 0xc7, 0xd8, 0xa4, 0x04, 0xe5, 0x59, 0xe7, 0xe3, 0x22, 0x04, 0x27, 0x07,
+ 0xa5, 0x72, 0xa0, 0xba, 0xf5, 0x4e, 0xe7, 0xc2, 0x4b, 0x65, 0x2a, 0xe8, 0xbe, 0xc2, 0xad, 0x72,
+ 0xcf, 0xa0, 0x91, 0xb1, 0x66, 0xae, 0x08, 0xad, 0xf0, 0x90, 0x47, 0xea, 0x96, 0xad, 0x81, 0xa0,
+ 0x56, 0x47, 0x99, 0x33, 0xfb, 0x4a, 0xcb, 0x29, 0x85, 0xb8, 0x70, 0x59, 0x7e, 0x29, 0xcc, 0x47,
+ 0xba, 0xc5, 0x01, 0x81, 0x5b, 0xfd, 0x20, 0xf1, 0x46, 0x05, 0xdf, 0x2e, 0x1d, 0xf1, 0x41, 0xc5,
+ 0x61, 0x16, 0x49, 0x99, 0xa4, 0x35, 0x34, 0xdf, 0x1d, 0xae, 0x93, 0x4c, 0xb9, 0xdf, 0x21, 0x16,
+ 0x18, 0xe3, 0x2f, 0xce, 0xee, 0x44, 0xa9, 0x43, 0x73, 0x93, 0xb3, 0xf0, 0x9d, 0x43, 0xbe, 0xe3,
+ 0x54, 0x7f, 0xb0, 0x7d, 0x0c, 0x45, 0xa2, 0x09, 0xa1, 0x35, 0x44, 0x4d, 0xad, 0x09, 0x37, 0x7f,
+ 0x8b, 0xdc, 0xaa, 0xf9, 0xde, 0x93, 0x64, 0x67, 0xb2, 0x47, 0x60, 0x07, 0x6c, 0x67, 0x62, 0xdc,
+ 0x3e, 0xad, 0x81, 0x76, 0x9f, 0xa5, 0x4d, 0x66, 0x1a, 0xc0, 0x29, 0x4f, 0x85, 0x66, 0x1b, 0xad,
+ 0x5a, 0xd7, 0x6f, 0x54, 0x8c, 0x68, 0x7e, 0xe9, 0x5d, 0x10, 0xc8, 0x21, 0xd1, 0xe9, 0x93, 0xd7,
+ 0xce, 0xbc, 0x64, 0x96, 0xfc, 0x48, 0xdd, 0xbd, 0xe2, 0x37, 0x5d, 0xe0, 0x1e, 0xbd, 0x1d, 0xbc,
+ 0xf7, 0x45, 0x6b, 0x15, 0x23, 0x1a, 0xfe, 0xab, 0x86, 0x04, 0x32, 0x99, 0xa5, 0xab, 0x54, 0x45,
+ 0xd2, 0x2f, 0x19, 0xc4, 0x3f, 0x12, 0xa6, 0xbe, 0xd9, 0x7d, 0x86, 0x38, 0xe6, 0xbe, 0x96, 0x2f,
+ 0x82, 0x20, 0xfb, 0x25, 0x1e, 0x49, 0xd6, 0xf7, 0x30, 0x91, 0xaa, 0x5d, 0x2e, 0xf7, 0x94, 0x20,
+ 0xb3, 0x39, 0x50, 0x5d, 0x9b, 0x27, 0x92, 0x61, 0xc4, 0xd3, 0x15, 0x74, 0x5f, 0x61, 0xb7, 0x39,
+ 0xb4, 0x6d, 0xde, 0xa8, 0xdb, 0xd0, 0xfc, 0x11, 0xba, 0x20, 0x53, 0x42, 0x61, 0x11, 0xe5, 0x6d,
+ 0xd6, 0x5f, 0x4b, 0x58, 0x12, 0x0c, 0x74, 0xfe, 0x91, 0xa4, 0xee, 0x10, 0x83, 0xfe, 0xa3, 0x5f,
+ 0xe1, 0x0e, 0x9b, 0xf2, 0x4d, 0x73, 0x8b, 0x08, 0x09, 0xb2, 0x0d, 0x05, 0x44, 0x08, 0x4e, 0x0e,
+ 0xc2, 0x2c, 0x92, 0xf1, 0x8b, 0x6a, 0x68, 0x7d, 0x3a, 0x9f, 0xe5, 0x98, 0xb1, 0x7d, 0x42, 0x2c,
+ 0x5d, 0x83, 0xe1, 0xa1, 0xcc, 0x9f, 0x10, 0x99, 0x23, 0xe3, 0x8e, 0x17, 0xef, 0x99, 0xc1, 0x83,
+ 0xfa, 0xc9, 0x68, 0x55, 0xce, 0xde, 0x9e, 0x7b, 0x4c, 0x0b, 0x90, 0xeb, 0x82, 0x7b, 0x97, 0xc9,
+ 0xa4, 0x6e, 0x55, 0x9d, 0x6f, 0xa8, 0x32, 0xd2, 0x59, 0xc2, 0x30, 0xe2, 0x36, 0xd2, 0x31, 0x6e,
+ 0x1f, 0xb7, 0xa1, 0x3b, 0xae, 0xb3, 0xc7, 0x33, 0x0d, 0x60, 0xf5, 0xc6, 0xa3, 0x33, 0xec, 0xb7,
+ 0x0c, 0x90, 0xf6, 0x67, 0x77, 0x22, 0xb5, 0xc0, 0xd8, 0xa8, 0xb8, 0x78, 0xaf, 0xc0, 0x5f, 0x90,
+ 0x01, 0x1c, 0xf5, 0x27, 0x9a, 0xe6, 0xd5, 0x10, 0x12, 0xa7, 0x1a, 0x0a, 0x88, 0x10, 0x9c, 0x1c,
+ 0x2d, 0x8a, 0xd6, 0x2a, 0x46, 0x34, 0x3f, 0x95, 0xcf, 0x08, 0x64, 0xf1, 0x89, 0x95, 0xa8, 0x8a,
+ 0x67, 0x5e, 0x32, 0x4b, 0x7e, 0x24, 0x8f, 0xbf, 0x71, 0xfa, 0xcf, 0x70, 0x0f, 0xbf, 0xef, 0x5e,
+ 0xe2, 0x2a, 0x47, 0x9b, 0x20, 0x9a, 0x37, 0x38, 0x3f, 0x98, 0x23, 0x1b, 0x1f, 0x38, 0x29, 0x2a,
+ 0x09, 0xfc, 0x51, 0xdc, 0xc0, 0xda, 0xb2, 0x90, 0x82, 0xd6, 0xca, 0x5a, 0x42, 0x90, 0xf6, 0xfc,
+ 0x57, 0x5b, 0x6c, 0x14, 0x61, 0xac, 0x1e, 0x39, 0x97, 0x1f, 0x6a, 0x53, 0xf6, 0x39, 0x50, 0x5b,
+ 0x11, 0x1f, 0x7e, 0x12, 0x2e, 0x9e, 0x1b, 0xd3, 0xf1, 0x45, 0x79, 0xaa, 0xdf, 0xd3, 0x48, 0x1f,
+ 0xb7, 0x49, 0x02, 0xc1, 0xb6, 0x39, 0x40, 0x21, 0x8c, 0x0a, 0x7d, 0x5c, 0x3a, 0x21, 0x82, 0x49,
+ 0xdf, 0xa3, 0x1a, 0x84, 0xd2, 0xd6, 0xc6, 0x6e, 0x13, 0x72, 0x24, 0x4a, 0xc1, 0x6e, 0x55, 0xa3,
+ 0x6a, 0xd2, 0x31, 0x0b, 0x93, 0xe0, 0xef, 0x6f, 0xbb, 0xf5, 0x6d, 0x02, 0x28, 0x6f, 0x2c, 0xd2,
+ 0x93, 0x3f, 0x85, 0x37, 0x30, 0xd7, 0xcd, 0x24, 0xc1, 0xd4, 0xd3, 0xf7, 0xf1, 0x24, 0xdc, 0x3f,
+ 0x24, 0x76, 0x87, 0xf6, 0x86, 0xee, 0x8d, 0x05, 0x4d, 0xde, 0xae, 0xab, 0xcb, 0x05, 0x5e, 0x76,
+ 0x7f, 0xbd, 0x1d, 0x85, 0x90, 0x60, 0x26, 0xfc, 0x02, 0x69, 0x7c, 0x80, 0x92, 0xfc, 0x51, 0xbd,
+ 0x66, 0x42, 0xc7, 0x6c, 0xe4, 0xc2, 0x5a, 0xaf, 0x63, 0x5d, 0xd5, 0x7a, 0x87, 0xaf, 0x73, 0x42,
+ 0xfe, 0xb9, 0x3a, 0xc9, 0xe3, 0xc0, 0x4c, 0x3b, 0x04, 0xd2, 0xf8, 0xc3, 0xe7, 0x3b, 0xa2, 0xb9,
+ 0x07, 0x54, 0x8e, 0xf5, 0x40, 0xf7, 0x6e, 0x70, 0x7e, 0xf3, 0x46, 0x36, 0x3e, 0x70, 0x52, 0x54,
+ 0x44, 0x7c, 0x3b, 0x48, 0xb8, 0x3d, 0x6c, 0xca, 0x42, 0xd7, 0x27, 0xed, 0xfa, 0xca, 0xe3, 0x7c,
+ 0x3f, 0xb1, 0x74, 0x51, 0x05, 0x43, 0x98, 0x76, 0x08, 0x67, 0x33, 0x45, 0x0d, 0x76, 0x87, 0xb1,
+ 0xf8, 0xf1, 0x41, 0x1b, 0x39, 0xd1, 0xf7, 0x5b, 0x68, 0x86, 0xa4, 0xff, 0x51, 0x5b, 0x6c, 0xf1,
+ 0x06, 0x48, 0x7b, 0xd2, 0xda, 0x11, 0xbb, 0x60, 0x6c, 0x54, 0x5c, 0x3c, 0xb6, 0x60, 0xce, 0x48,
+ 0xca, 0xcc, 0x36, 0x0a, 0xd1, 0x56, 0x0f, 0xfd, 0xaa, 0xee, 0x35, 0xc8, 0x7b, 0xfd, 0x28, 0xcc,
+ 0xad, 0x92, 0x04, 0x41, 0xaf, 0x72, 0x80, 0x42, 0xdb, 0x14, 0xfa, 0xb8, 0x74, 0x42, 0xc7, 0x92,
+ 0x2b, 0xc2, 0xad, 0xf8, 0x9c, 0x25, 0x84, 0xf5, 0xa3, 0x5c, 0x38, 0xcd, 0x3f, 0xf5, 0x66, 0xc2,
+ 0xae, 0xb6, 0xd8, 0x28, 0xc2, 0x9b, 0x3c, 0x72, 0xed, 0x3e, 0xd4, 0xa6, 0x2f, 0x72, 0xa0, 0xb6,
+ 0x22, 0x3e, 0xfc, 0x24, 0x5c, 0xff, 0x36, 0x65, 0x21, 0x8a, 0xf2, 0x97, 0x7d, 0x65, 0x90, 0x3e,
+ 0x39, 0xf9, 0x0f, 0x83, 0xdf, 0x52, 0x23, 0x16, 0x64, 0x33, 0x6f, 0x79, 0xbb, 0x16, 0x49, 0xf9,
+ 0xde, 0xbf, 0xef, 0xa3, 0x48, 0x30, 0x13, 0x7e, 0x01, 0xd5, 0x3e, 0x40, 0x49, 0x7e, 0xc9, 0xbf,
+ 0x1e, 0xab, 0x54, 0x1c, 0x34, 0x55, 0x12, 0x23, 0x1f, 0xc7, 0xef, 0xcc, 0x2b, 0x23, 0x70, 0xab,
+ 0xa8, 0xfe, 0xa3, 0xfa, 0x18, 0x8a, 0x87, 0x12, 0x81, 0x6a, 0x88, 0x9a, 0x99, 0x12, 0x6e, 0xfe,
+ 0x58, 0xef, 0x46, 0x1a, 0x7b, 0x67, 0x17, 0xc9, 0x79, 0x9d, 0xfc, 0x35, 0x02, 0xc9, 0x68, 0xef,
+ 0x88, 0xf8, 0x76, 0x90, 0xb3, 0x7a, 0xd8, 0x57, 0x84, 0x6d, 0x4e, 0x19, 0x37, 0x57, 0x05, 0xf8,
+ 0x9a, 0xc3, 0xd4, 0xeb, 0xf0, 0x0d, 0x7f, 0xb4, 0x43, 0x02, 0x19, 0xad, 0xb3, 0xb4, 0x2a, 0xc3,
+ 0x69, 0xf6, 0xed, 0x62, 0xfe, 0x09, 0x53, 0x5f, 0x8d, 0xdf, 0x43, 0x1c, 0x73, 0x5f, 0x4b, 0xf6,
+ 0x28, 0xe6, 0x71, 0x91, 0xf1, 0xcc, 0x38, 0xc5, 0x95, 0x76, 0x16, 0xd3, 0x64, 0xc5, 0x01, 0xe6,
+ 0x65, 0x66, 0x1b, 0x05, 0x89, 0x2b, 0xe6, 0x9f, 0x55, 0x77, 0xfb, 0x64, 0xdc, 0x9f, 0x14, 0x66,
+ 0xd5, 0x7b, 0x97, 0x31, 0x7f, 0xe5, 0xc8, 0xce, 0xa7, 0x8e, 0xc0, 0x0e, 0xd8, 0xce, 0xc4, 0x7b,
+ 0x7c, 0x99, 0xc1, 0xec, 0xfd, 0x89, 0x9a, 0xcc, 0x34, 0x43, 0x52, 0x9e, 0xc9, 0xcc, 0x36, 0x99,
+ 0xbc, 0x8d, 0x7a, 0x53, 0x81, 0xec, 0x9b, 0x91, 0x2a, 0x51, 0x83, 0x12, 0xab, 0x91, 0x8f, 0x8d,
+ 0x38, 0xe5, 0xfa, 0xa4, 0x45, 0xb4, 0xf6, 0x06, 0x76, 0x94, 0x75, 0x73, 0x33, 0x06, 0xd5, 0xe5,
+ 0x4f, 0xb8, 0x43, 0xda, 0x8f, 0xe8, 0xb7, 0x7a, 0xe4, 0x8c, 0xd9, 0xa3, 0x6b, 0x7a, 0xee, 0xb8,
+ 0xe0, 0x12, 0x6e, 0xd5, 0xd7, 0x95, 0x5e, 0x18, 0x1b, 0x15, 0x17, 0x0f, 0xcc, 0x18, 0xd2, 0x12,
+ 0x27, 0x52, 0x5b, 0x9f, 0xeb, 0x07, 0x31, 0x35, 0x7b, 0xf4, 0x80, 0xb5, 0x90, 0x35, 0x39, 0x52,
+ 0x76, 0x41, 0x4c, 0x59, 0x50, 0xba, 0x94, 0x6c, 0x80, 0xbf, 0xb6, 0xda, 0xd0, 0x6c, 0xa7, 0x41,
+ 0x78, 0xe9, 0x93, 0x70, 0xd0, 0x97, 0x48, 0x8c, 0x7c, 0x9a, 0x3a, 0xb6, 0xac, 0x8c, 0x03, 0xe9,
+ 0x89, 0xe4, 0x83, 0xb7, 0x29, 0x9c, 0x0d, 0x47, 0x96, 0xca, 0x54, 0x13, 0xbf, 0x47, 0x99, 0xe4,
+ 0x8d, 0x94, 0xd1, 0x2b, 0x04, 0x82, 0xdf, 0x07, 0xde, 0x13, 0x3c, 0x3b, 0xda, 0x07, 0xac, 0x94,
+ 0xaf, 0xaa, 0x2d, 0x0f, 0x58, 0x7d, 0xe9, 0x62, 0xff, 0x99, 0xce, 0xac, 0xa7, 0x62, 0x3c, 0xaa,
+ 0x9f, 0xaf, 0x73, 0x50, 0x47, 0xf5, 0x78, 0xe4, 0x19, 0x7c, 0x6b, 0x8f, 0x5e, 0xe4, 0x83, 0xaf,
+ 0x84, 0x68, 0x80, 0xf7, 0xc4, 0x58, 0x6d, 0x97, 0x5c, 0xc5, 0xf6, 0x61, 0x98, 0x97, 0x5a, 0x68,
+ 0xe6, 0x5a, 0x15, 0x07, 0x0d, 0x84, 0xe5, 0x78, 0x77, 0x41, 0x4b, 0x33, 0x7a, 0x78, 0x1c, 0x5a,
+ 0xf1, 0x0d, 0x10, 0xc7, 0xf9, 0x0b, 0x45, 0xcb, 0xea, 0x50, 0x6e, 0xa5, 0x13, 0xcb, 0x9a, 0x0d,
+ 0x63, 0x2e, 0x60, 0xd7, 0x53, 0x3a, 0x5d, 0xff, 0x39, 0x23, 0xa7, 0x58, 0x6a, 0xff, 0xda, 0x2e,
+ 0x51, 0x13, 0x17, 0xc6, 0xbb, 0xbd, 0xa5, 0x59, 0xfb, 0x4b, 0x36, 0x6f, 0x40, 0x59, 0x9e, 0x13,
+ 0xc8, 0xf4, 0x1f, 0x44, 0x26, 0x59, 0x66, 0xdd, 0x8e, 0x63, 0x01, 0xdc, 0xa8, 0xdd, 0xd3, 0xf4,
+ 0x03, 0x24, 0xdc, 0x69, 0x6d, 0xe9, 0xbc, 0x30, 0x36, 0x2a, 0x2e, 0x1e, 0x5b, 0x30, 0x67, 0x24,
+ 0xed, 0x9e, 0x6d, 0x95, 0x3a, 0x51, 0x3e, 0xc8, 0xd1, 0x1a, 0xb5, 0x7d, 0xeb, 0xc8, 0x11, 0x9e,
+ 0x70, 0x09, 0x37, 0x8b, 0x8a, 0xab, 0x2f, 0x0c, 0xec, 0xeb, 0xea, 0xe6, 0x66, 0x0c, 0x69, 0x09,
+ 0x3c, 0x95, 0xa8, 0x38, 0x68, 0xaa, 0x24, 0x46, 0x3e, 0x4d, 0x1d, 0x5b, 0x56, 0x46, 0xe0, 0x95,
+ 0x8e, 0xb0, 0x0d, 0x42, 0x69, 0x6b, 0x63, 0x37, 0xe8, 0x39, 0x12, 0x25, 0x81, 0x37, 0xcb, 0xb0,
+ 0xd9, 0xeb, 0x61, 0x56, 0x08, 0xc7, 0x7d, 0x0e, 0x7f, 0x26, 0x78, 0x76, 0x77, 0x0e, 0x9b, 0xeb,
+ 0x10, 0x03, 0x8b, 0x35, 0xb4, 0x78, 0xce, 0xc3, 0xe3, 0xe2, 0x63, 0xa0, 0x57, 0xc3, 0xd4, 0x03,
+ 0x1a, 0xdb, 0x06, 0x80, 0x19, 0x4b, 0xc0, 0x63, 0x57, 0x1e, 0x87, 0xe4, 0x4e, 0x63, 0x45, 0xdb,
+ 0x9d, 0x97, 0x5a, 0x1e, 0xb0, 0xfa, 0x11, 0xc4, 0x3d, 0xf1, 0x5f, 0x9b, 0x8d, 0xc4, 0x78, 0x97,
+ 0xee, 0xba, 0xb1, 0xfc, 0x57, 0xb8, 0x82, 0xf8, 0xe7, 0x30, 0x9b, 0x63, 0xb0, 0xf8, 0x76, 0xba,
+ 0xcb, 0xd0, 0xc3, 0x2d, 0x4b, 0xb0, 0xda, 0xed, 0xb8, 0x49, 0x2f, 0xc2, 0xf3, 0xed, 0xb4, 0xd0,
+ 0x97, 0x4f, 0xd7, 0xab, 0x1d, 0xc9, 0x1f, 0x64, 0x89, 0x0d, 0xbb, 0xdf, 0x94, 0x64, 0xe9, 0x4f,
+ 0xc9, 0xe8, 0xea, 0x63, 0xbc, 0xbf, 0xb3, 0xcd, 0x9c, 0xc4, 0x1b, 0xd6, 0x20, 0xcd, 0x4f, 0xe8,
+ 0x79, 0xf5, 0x66, 0x57, 0x4a, 0x71, 0x9d, 0x9c, 0x6e, 0x3d, 0x20, 0xbc, 0x24, 0x9c, 0x9f, 0xf5,
+ 0xb2, 0x25, 0xa5, 0x7a, 0x01, 0xc1, 0x47, 0x71, 0xd6, 0x74, 0x0f, 0x7e, 0xd7, 0x71, 0x2b, 0x25,
+ 0x35, 0x69, 0xf9, 0xe4, 0xa8, 0x70, 0x96, 0xd6, 0xbc, 0x9b, 0xd7, 0x01, 0x14, 0xd6, 0x16, 0x69,
+ 0x6c, 0x9a, 0x4a, 0xd9, 0x49, 0xf1, 0x54, 0x0f, 0xd7, 0xa1, 0x31, 0x3e, 0x9e, 0x0f, 0xe2, 0x9a,
+ 0x9c, 0x8b, 0xaf, 0x39, 0x2a, 0x1c, 0xc4, 0xd4, 0x2f, 0x56, 0x45, 0x91, 0x05, 0xd4, 0xe4, 0x8b,
+ 0x1b, 0xc7, 0xf3, 0xa7, 0x83, 0xad, 0x15, 0x73, 0x45, 0xb9, 0x9d, 0xee, 0xc6, 0x73, 0xd9, 0xc7,
+ 0x05, 0x6c, 0xa7, 0xbb, 0xb7, 0xf8, 0x07, 0x50, 0x5a, 0x7e, 0x72, 0x22, 0xed, 0x50, 0xa9, 0x6c,
+ 0x50, 0x0f, 0xe2, 0xe1, 0x21, 0x5b, 0x70, 0x49, 0xe9, 0xec, 0x2c, 0x65, 0xc8, 0x49, 0x02, 0x0f,
+ 0xf0, 0x11, 0xe5, 0xe0, 0x63, 0xed, 0x90, 0xdb, 0xf8, 0xf7, 0x74, 0xaf, 0x9b, 0xdb, 0x06, 0x11,
+ 0xd1, 0x0b, 0xc5, 0xad, 0x52, 0xfb, 0x1a, 0x8e, 0xef, 0x57, 0xa8, 0x26, 0xbd, 0x8e, 0xf1, 0x0b,
+ 0x12, 0x3b, 0xa2, 0x7b, 0x43, 0x77, 0xa7, 0xe3, 0xc7, 0x6f, 0x57, 0xb4, 0x84, 0xe3, 0x2f, 0x3b,
+ 0x87, 0x4c, 0x5c, 0x9e, 0xa9, 0xb1, 0xd1, 0xa7, 0x6a, 0xef, 0xd8, 0x7f, 0xc3, 0xa7, 0x3d, 0x4c,
+ 0x08, 0xe0, 0xa4, 0xfb, 0x5a, 0x3c, 0x67, 0x80, 0x90, 0x71, 0xd0, 0x50, 0xca, 0x80, 0x6a, 0xe0,
+ 0x59, 0xf3, 0xb3, 0x3d, 0xe1, 0x81, 0xc2, 0xd9, 0x6b, 0x3a, 0xe6, 0x3f, 0x8a, 0xd9, 0xf4, 0xf3,
+ 0xfc, 0x81, 0x13, 0x87, 0x14, 0xcf, 0x25, 0x1b, 0x20, 0x5f, 0xcc, 0xd7, 0x34, 0x1b, 0x59, 0x81,
+ 0x21, 0x1a, 0x20, 0x4d, 0x31, 0x16, 0x8a, 0x55, 0x17, 0xa0, 0xdc, 0x89, 0x26, 0x55, 0xf7, 0x1a,
+ 0x85, 0x74, 0x75, 0xd0, 0x5e, 0xbe, 0xb8, 0x87, 0x4e, 0x62, 0xec, 0x6b, 0x10, 0x87, 0xc6, 0x74,
+ 0x55, 0x63, 0x45, 0x5a, 0x96, 0xa3, 0x77, 0x19, 0xb3, 0x92, 0x5e, 0x47, 0x25, 0x19, 0xab, 0x63,
+ 0x4e, 0xa4, 0xb6, 0xfd, 0x15, 0x0e, 0x62, 0x6a, 0xf6, 0x2b, 0xc3, 0xa9, 0xe3, 0x6a, 0x72, 0xa4,
+ 0xec, 0x82, 0x98, 0xb2, 0xa0, 0xb7, 0xeb, 0xd8, 0xc3, 0xbd, 0xaf, 0x77, 0x63, 0xd8, 0x8d, 0x82,
+ 0xfb, 0xd5, 0x9d, 0x72, 0x54, 0x38, 0x4b, 0x6b, 0x5e, 0xac, 0x8a, 0xe1, 0x0a, 0x6b, 0x0b, 0xd5,
+ 0x36, 0x4d, 0x25, 0x8d, 0xc5, 0x99, 0x2a, 0xe6, 0x8a, 0xb1, 0xf9, 0x1f, 0x4f, 0xe6, 0x71, 0x4d,
+ 0x75, 0x65, 0x90, 0x30, 0x3d, 0x53, 0x28, 0x5c, 0xb6, 0x95, 0x98, 0xc4, 0x8b, 0x5c, 0xc0, 0x65,
+ 0x37, 0x51, 0xd0, 0xaa, 0x5f, 0x7f, 0xff, 0xf6, 0x98, 0x16, 0xe3, 0x15, 0xc7, 0xf6, 0xed, 0x51,
+ 0x5c, 0x9f, 0x14, 0x86, 0x56, 0x79, 0xc5, 0x89, 0x31, 0x44, 0x94, 0x1d, 0x67, 0x89, 0x5d, 0x9f,
+ 0xf6, 0x59, 0x9e, 0x32, 0xb9, 0xfc, 0x2b, 0xbb, 0x94, 0xa3, 0x28, 0x93, 0x2d, 0xbb, 0xc8, 0x59,
+ 0xf4, 0x61, 0xb7, 0x7c, 0x4e, 0xf3, 0x42, 0x9b, 0xb0, 0x2e, 0x1c, 0x87, 0xfe, 0x9b, 0x33, 0x61,
+ 0xcd, 0x98, 0xb8, 0xff, 0x91, 0xa1, 0x61, 0x8d, 0xd4, 0x1d, 0x73, 0xfe, 0x45, 0x8d, 0x7a, 0x98,
+ 0x6b, 0xce, 0xc4, 0x2c, 0x09, 0x06, 0x3a, 0x7f, 0xa9, 0x52, 0x77, 0x08, 0xa0, 0x7f, 0xb0, 0xce,
+ 0xa2, 0x26, 0x2e, 0x4f, 0xb5, 0xb9, 0x89, 0xb2, 0x35, 0x96, 0x6c, 0xde, 0x80, 0xb2, 0xff, 0x26,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xaa, 0xc6, 0x8a, 0xb4, 0xef, 0x85, 0xee, 0x32, 0xa5, 0xe7, 0xbc, 0x8e, 0x4a, 0x32, 0x95, 0xc6,
+ 0x71, 0x15, 0xc2, 0xac, 0x10, 0x4d, 0xfa, 0x1c, 0xfe, 0x4c, 0xf0, 0xec, 0xee, 0x1c, 0xf5, 0x15,
+ 0x42, 0x34, 0x40, 0x9a, 0x62, 0x2c, 0xd7, 0xaa, 0x2e, 0x83, 0x7b, 0xd1, 0x4c, 0xaa, 0x2d, 0x34,
+ },
+ { /* 14 */
+ 0x47, 0x52, 0xd9, 0xd2, 0x69, 0x81, 0x42, 0x4a, 0x4e, 0xe7, 0x53, 0x5d, 0xa9, 0x30, 0x47, 0x7c,
+ 0xe9, 0xdb, 0x31, 0x5c, 0x2e, 0xdf, 0x12, 0x97, 0x34, 0x3f, 0x83, 0x15, 0x0b, 0x98, 0xe9, 0x1c,
+ 0x8f, 0x26, 0xbe, 0x4a, 0x25, 0x12, 0xca, 0xbc, 0x87, 0xf8, 0x58, 0xe9, 0x7f, 0xf7, 0x8f, 0x8c,
+ 0x4e, 0x4a, 0xa1, 0x54, 0x2a, 0x05, 0x39, 0xe1, 0x8d, 0xb6, 0x51, 0xd3, 0x3b, 0x95, 0x4e, 0x2e,
+ 0x03, 0x45, 0x92, 0x77, 0xda, 0xb6, 0xd2, 0x78, 0x2d, 0xdc, 0xc1, 0xf5, 0xf1, 0x7a, 0x03, 0x9c,
+ 0xcf, 0x7c, 0x4f, 0x5b, 0xcc, 0xef, 0xa1, 0x2e, 0x88, 0x91, 0xb4, 0xce, 0x19, 0xa4, 0xcf, 0x7f,
+ 0x0c, 0xd7, 0x0d, 0x1f, 0xee, 0x9d, 0xce, 0x23, 0xb4, 0xf6, 0x82, 0x52, 0x42, 0x2b, 0x0c, 0x35,
+ 0xba, 0x33, 0xff, 0xaf, 0xb6, 0x3a, 0xc1, 0xb8, 0x65, 0x01, 0x95, 0xbe, 0x64, 0xd5, 0xba, 0x3f,
+ 0x12, 0x30, 0xf0, 0xcf, 0x86, 0xcb, 0xf6, 0x95, 0x45, 0xa2, 0x04, 0xdf, 0xe7, 0x89, 0x12, 0xa4,
+ 0xf0, 0x34, 0xe4, 0x4f, 0xc6, 0xf5, 0x03, 0xf9, 0x84, 0xe5, 0xba, 0xe2, 0x61, 0x59, 0xf0, 0x02,
+ 0x2b, 0xf2, 0xbc, 0x35, 0xfb, 0x7e, 0x33, 0xb2, 0x13, 0xad, 0x4b, 0xda, 0xbe, 0x80, 0x2b, 0x22,
+ 0x2c, 0xfa, 0x94, 0xf6, 0x7b, 0x02, 0x1a, 0x6a, 0x52, 0x23, 0xf4, 0xa0, 0x71, 0xe3, 0x2c, 0xad,
+ 0x32, 0x1d, 0x69, 0x26, 0x13, 0x54, 0x22, 0xdc, 0xa3, 0x77, 0x72, 0x2d, 0xd4, 0x41, 0x32, 0x3c,
+ 0x1b, 0x28, 0x88, 0x49, 0xc5, 0x4f, 0x8d, 0x3e, 0x86, 0xf3, 0x06, 0x51, 0x75, 0x2c, 0x1b, 0xf6,
+ 0xd2, 0xde, 0x20, 0xfc, 0x7e, 0x0f, 0x4b, 0xe0, 0x54, 0x19, 0xf3, 0xb6, 0x4d, 0x7c, 0xd2, 0x72,
+ 0x08, 0x9a, 0xb7, 0xab, 0xb4, 0x57, 0x35, 0x83, 0xd8, 0xa4, 0xfc, 0xdd, 0x7c, 0x32, 0x08, 0x26,
+ 0xdd, 0x4c, 0xbf, 0x94, 0x4a, 0x24, 0x57, 0xbb, 0xcd, 0x33, 0xb0, 0x11, 0xfe, 0x2d, 0xdd, 0xdb,
+ 0x60, 0x77, 0x68, 0xf8, 0x7c, 0x62, 0xbf, 0xdb, 0xe9, 0xbc, 0x9a, 0xd5, 0x55, 0x9b, 0x60, 0x6b,
+ 0x72, 0x47, 0x98, 0x37, 0xfa, 0xa9, 0x49, 0x4e, 0xac, 0x1e, 0x9e, 0x0a, 0xb2, 0x12, 0x72, 0xcf,
+ 0x11, 0x75, 0x62, 0xb8, 0x5c, 0x7d, 0x24, 0xed, 0x68, 0x7e, 0xc5, 0x2a, 0x16, 0xf3, 0x11, 0x38,
+ 0x06, 0x8a, 0xe7, 0xee, 0x77, 0xaf, 0x67, 0xf0, 0x5a, 0x7b, 0x41, 0x29, 0x21, 0xf4, 0x06, 0xfb,
+ 0x5d, 0xf8, 0x9e, 0xb6, 0x5b, 0x1d, 0x81, 0x5c, 0xd3, 0xe1, 0xab, 0x5f, 0x32, 0x8b, 0x5d, 0xfe,
+ 0xe0, 0xc3, 0x49, 0xda, 0x6d, 0x5b, 0x69, 0x3c, 0xf7, 0x6e, 0x81, 0x9b, 0x99, 0x3d, 0xe0, 0x4e,
+ 0x86, 0x3e, 0xc6, 0xcc, 0x66, 0x96, 0xb1, 0x17, 0x44, 0xa9, 0x5a, 0x67, 0xed, 0x52, 0x86, 0xde,
+ 0xaa, 0xc4, 0x52, 0x3a, 0x1d, 0x94, 0xab, 0x7d, 0x16, 0x8a, 0xae, 0xc7, 0x9c, 0xb1, 0xaa, 0x73,
+ 0x58, 0x37, 0xeb, 0x2f, 0xf6, 0x04, 0x34, 0xd4, 0xa4, 0x46, 0x2b, 0x83, 0xe2, 0x05, 0x58, 0x99,
+ 0x24, 0x60, 0x23, 0x5d, 0xcf, 0x55, 0x2f, 0xe9, 0x8a, 0x87, 0x08, 0x7d, 0x0d, 0xd1, 0x24, 0x8b,
+ 0xdf, 0x8b, 0xe2, 0xce, 0x67, 0x41, 0xcb, 0xeb, 0xfb, 0x1a, 0x8f, 0xb7, 0xe1, 0xc0, 0xdf, 0x33,
+ 0x69, 0x6f, 0x10, 0x7e, 0x3f, 0xe6, 0xc4, 0x70, 0x2a, 0xed, 0x98, 0x5b, 0xc7, 0x3e, 0x69, 0x39,
+ 0x7a, 0xdd, 0x2f, 0x9c, 0x4e, 0xfe, 0x7c, 0xcd, 0x74, 0xba, 0x62, 0xd7, 0xce, 0x20, 0x7a, 0xe9,
+ 0x67, 0x7f, 0x40, 0x3b, 0xfc, 0x1e, 0x96, 0x03, 0xa8, 0x32, 0x25, 0xaf, 0x9a, 0xf8, 0x67, 0xe4,
+ 0xec, 0x14, 0x44, 0xc5, 0x83, 0xc6, 0xa7, 0x1f, 0x43, 0x98, 0x03, 0xc9, 0xdb, 0x16, 0xec, 0x7b,
+ 0x30, 0xda, 0x34, 0x7c, 0x3e, 0x31, 0xbe, 0x8c, 0x95, 0x5e, 0x4d, 0x8b, 0xcb, 0xac, 0x30, 0xd4,
+ 0x6a, 0x2a, 0x82, 0x09, 0xe5, 0x50, 0x16, 0x08, 0x07, 0x31, 0x59, 0xae, 0x36, 0x44, 0x6a, 0xa5,
+ 0x0e, 0x10, 0x50, 0x45, 0xc3, 0xf8, 0x52, 0x73, 0x82, 0xdf, 0xbd, 0xf4, 0x5d, 0xc6, 0x0e, 0xdd,
+ 0x43, 0x1f, 0x63, 0x66, 0x33, 0x4b, 0xb9, 0xea, 0x22, 0xb5, 0x2d, 0xd2, 0x97, 0x29, 0x43, 0x6f,
+ 0x2d, 0x78, 0x5b, 0xdb, 0x8c, 0xd1, 0x54, 0x42, 0x49, 0xd6, 0x0a, 0xf3, 0x9f, 0x74, 0x2d, 0xd9,
+ 0xb3, 0x2b, 0x87, 0x29, 0xf5, 0xbe, 0xba, 0x13, 0xa6, 0x50, 0x97, 0x30, 0xf6, 0x70, 0xb3, 0x6d,
+ 0xe4, 0x8e, 0xf3, 0x6e, 0x37, 0x91, 0x92, 0x9c, 0x9b, 0x3c, 0xff, 0x14, 0xa7, 0x24, 0xe4, 0x5d,
+ 0x22, 0xea, 0xc4, 0xb3, 0xb8, 0xfa, 0x48, 0x19, 0xd0, 0xfc, 0x49, 0x54, 0x2c, 0x25, 0x22, 0x70,
+ 0xab, 0x46, 0x9d, 0x17, 0xea, 0x47, 0xe5, 0x55, 0x0d, 0x7f, 0x50, 0x94, 0x72, 0x26, 0xab, 0x07,
+ 0x3d, 0x8f, 0xf6, 0x4e, 0x27, 0x7f, 0x3e, 0x87, 0x3a, 0x5d, 0x31, 0x8a, 0x67, 0x10, 0x3d, 0x95,
+ 0x34, 0x97, 0x8e, 0xc8, 0x64, 0xfb, 0x45, 0x2c, 0xf9, 0x0c, 0x33, 0x04, 0xf5, 0xb5, 0x34, 0xc7,
+ 0x90, 0x43, 0x8c, 0xb7, 0xba, 0x97, 0xbc, 0x22, 0x6d, 0x59, 0x20, 0x37, 0x34, 0xc2, 0x90, 0x69,
+ 0x97, 0x4b, 0xa4, 0x74, 0x3a, 0xeb, 0x95, 0xfa, 0x2c, 0xd7, 0x9f, 0x4d, 0xfb, 0xa1, 0x97, 0xe6,
+ 0xb0, 0x6e, 0x15, 0x5e, 0x2f, 0x08, 0x68, 0x6b, 0x8b, 0x8c, 0x56, 0xc5, 0x07, 0x0a, 0xb0, 0xf1,
+ 0xe5, 0x0c, 0x3c, 0x43, 0xc0, 0x42, 0xdc, 0xb4, 0x80, 0xc9, 0x01, 0x47, 0x49, 0xb3, 0xe5, 0x29,
+ 0x42, 0x9d, 0xac, 0x4b, 0xc4, 0x98, 0xf7, 0xc2, 0x39, 0x40, 0xd3, 0x81, 0x79, 0xbe, 0x42, 0x1b,
+ 0x79, 0x98, 0xbd, 0xeb, 0x94, 0x48, 0xae, 0xb5, 0x59, 0x66, 0xa3, 0x22, 0x3f, 0x5a, 0x79, 0x75,
+ 0xc0, 0xee, 0xd0, 0x33, 0xf8, 0xc4, 0xbd, 0x75, 0x11, 0xbb, 0xf7, 0x69, 0xaa, 0xf5, 0xc0, 0xd6,
+ 0x18, 0x6d, 0x1a, 0x3e, 0x1f, 0xf9, 0x5f, 0x46, 0xab, 0x2f, 0xc7, 0xa4, 0x84, 0x56, 0x18, 0x6a,
+ 0x4b, 0x85, 0xd4, 0xcd, 0x87, 0x1c, 0x8c, 0x69, 0xfa, 0x11, 0xd1, 0x0f, 0xeb, 0x1b, 0x4b, 0x49,
+ 0xf7, 0x3c, 0xcc, 0x8c, 0x46, 0x89, 0x2a, 0x21, 0xc5, 0x6b, 0x05, 0x98, 0xae, 0x3a, 0xf7, 0x8d,
+ 0xb8, 0xf4, 0xa2, 0xf5, 0x9b, 0x5f, 0x5d, 0xe8, 0x53, 0x28, 0xaa, 0x18, 0x7b, 0x38, 0xb8, 0xd7,
+ 0xa6, 0x13, 0x5f, 0x25, 0xf3, 0x09, 0x65, 0x5e, 0xa2, 0x7c, 0x2c, 0x95, 0xde, 0x9a, 0xa6, 0x46,
+ 0x59, 0xb5, 0x24, 0x02, 0x01, 0xd7, 0x7a, 0xfc, 0xbf, 0xb3, 0xd5, 0xd0, 0x0c, 0x92, 0x59, 0xed,
+ 0x64, 0x3a, 0xd2, 0x4c, 0x26, 0xa8, 0x44, 0x7b, 0x85, 0xee, 0xe4, 0x5a, 0x6b, 0x82, 0x64, 0x78,
+ 0x36, 0x50, 0xd3, 0x92, 0x49, 0x9e, 0xd9, 0x7c, 0xcf, 0x25, 0x0c, 0xa2, 0xea, 0x58, 0x36, 0x2f,
+ 0xb4, 0x23, 0xaf, 0xea, 0x75, 0xc2, 0x93, 0xcb, 0xe7, 0xde, 0x28, 0x4a, 0x39, 0x13, 0xb4, 0xe2,
+ 0x81, 0x36, 0xee, 0x0f, 0xe6, 0xea, 0x98, 0xcf, 0x05, 0x27, 0xe5, 0x1d, 0x22, 0x31, 0x81, 0x51,
+ 0x09, 0x18, 0x78, 0x86, 0x43, 0x84, 0x7b, 0xab, 0xc3, 0x51, 0x02, 0x8e, 0x92, 0xa5, 0x09, 0x52,
+ 0x78, 0x1a, 0x72, 0xc6, 0x63, 0x9b, 0xe0, 0x9d, 0x42, 0x93, 0x5d, 0x71, 0xd1, 0xcd, 0x78, 0x01,
+ 0xed, 0x96, 0x8b, 0xe8, 0x74, 0x15, 0xe9, 0x37, 0x58, 0x6d, 0xfd, 0x9a, 0x35, 0x81, 0xed, 0x0f,
+ 0x5f, 0x3f, 0xc3, 0xec, 0x76, 0x78, 0x1d, 0x0c, 0xe5, 0xc8, 0x94, 0xf9, 0x2d, 0x66, 0x5f, 0x16,
+ 0xda, 0x44, 0x97, 0x57, 0xca, 0x58, 0x7e, 0x63, 0x8c, 0xbd, 0x0f, 0x6b, 0x31, 0x4e, 0xda, 0x54,
+ 0xc4, 0xa3, 0x6a, 0x87, 0xa2, 0x0e, 0x46, 0xd5, 0x7d, 0xe9, 0x89, 0xe6, 0x94, 0xec, 0xc4, 0xc5,
+ 0x29, 0x35, 0xe1, 0x6f, 0xd6, 0x1b, 0xaf, 0xe2, 0x25, 0x84, 0x74, 0x7c, 0xa1, 0x6d, 0x29, 0xca,
+ 0xad, 0xcc, 0x7a, 0xf9, 0x9d, 0xe8, 0x82, 0xa5, 0x57, 0x04, 0x11, 0xbd, 0x53, 0xd2, 0xad, 0xfc,
+ 0x07, 0x08, 0x28, 0xc3, 0x80, 0x7c, 0x29, 0xd8, 0x41, 0x8e, 0xbf, 0x7a, 0xcf, 0x63, 0x07, 0x8f,
+ 0x82, 0x73, 0x7c, 0x78, 0x3c, 0x5c, 0x4a, 0xb7, 0x28, 0xfb, 0x24, 0xe8, 0xd3, 0x4b, 0x82, 0xcd,
+ 0xe2, 0x04, 0x14, 0x80, 0x40, 0x3e, 0xf5, 0x6c, 0xc1, 0x47, 0xbe, 0x3d, 0x86, 0xd0, 0xe2, 0xa6,
+ 0x31, 0x58, 0xfb, 0x51, 0xc9, 0xe2, 0xf0, 0xa4, 0x8e, 0xab, 0xb3, 0xd8, 0x25, 0x3b, 0x31, 0xa0,
+ 0x17, 0xff, 0x85, 0x56, 0x2b, 0xd2, 0x43, 0x1d, 0x32, 0x05, 0x84, 0x03, 0x37, 0x07, 0x17, 0xc3,
+ 0x9f, 0xd1, 0x13, 0xdf, 0x8e, 0xbc, 0xa0, 0x79, 0xf4, 0x73, 0x63, 0x90, 0x87, 0x93, 0x9f, 0xc0,
+ 0x0b, 0xdf, 0x25, 0xdc, 0x6e, 0xe1, 0xe7, 0xfb, 0xf5, 0x78, 0x3d, 0x28, 0x8d, 0x48, 0x0b, 0xba,
+ 0x16, 0x7d, 0x4a, 0x7b, 0xdc, 0x01, 0x0d, 0x35, 0x29, 0xf0, 0x7a, 0x50, 0xd9, 0x90, 0x16, 0xb7,
+ 0x7f, 0x12, 0x5a, 0x05, 0xe3, 0xe7, 0xc9, 0x45, 0x03, 0x1d, 0xe2, 0x0b, 0x1e, 0xae, 0x7f, 0x8e,
+ 0x23, 0x68, 0x0b, 0x9e, 0x4f, 0x29, 0x06, 0x31, 0xcb, 0x09, 0xb7, 0x07, 0xc2, 0xb2, 0x23, 0x04,
+ 0x6b, 0xa8, 0x4d, 0x24, 0x12, 0x83, 0x58, 0x20, 0x1c, 0xc4, 0xa7, 0xfd, 0xd8, 0xd3, 0x6b, 0xd1,
+ 0xa9, 0x81, 0xc0, 0x4d, 0xc7, 0x22, 0x79, 0x05, 0x3b, 0x56, 0x6f, 0x32, 0x6d, 0xcb, 0xa9, 0xef,
+ 0x8b, 0x6b, 0x04, 0xfe, 0x7f, 0xd8, 0x31, 0x1c, 0xeb, 0xaa, 0x26, 0x66, 0x41, 0xee, 0x8b, 0x9f,
+ 0xb7, 0x66, 0x3d, 0x9d, 0xaf, 0x74, 0x41, 0xb3, 0xca, 0x02, 0xe9, 0xbf, 0xc8, 0x69, 0xb7, 0x7e,
+ 0x13, 0xb2, 0x3f, 0xe2, 0x71, 0x18, 0xb8, 0xbd, 0x5e, 0x57, 0xfa, 0x8c, 0x09, 0x1e, 0x13, 0xd0,
+ 0x1c, 0x20, 0xa0, 0x8a, 0x45, 0x33, 0xa4, 0xe6, 0xc7, 0x7d, 0xb9, 0x2b, 0xba, 0x4f, 0x1c, 0x79,
+ 0xfb, 0xeb, 0xc1, 0x93, 0xa8, 0x14, 0xe4, 0x02, 0x71, 0x9d, 0x87, 0xca, 0xec, 0x11, 0xfb, 0xb8,
+ 0x62, 0xb0, 0x35, 0xa2, 0x51, 0x07, 0x23, 0x8b, 0xdf, 0x95, 0xa5, 0x73, 0x4a, 0x76, 0x62, 0x83,
+ 0xf2, 0xf3, 0xb9, 0x15, 0xeb, 0x90, 0x9f, 0xa9, 0xb2, 0xcc, 0x85, 0x44, 0x7e, 0xb4, 0xf2, 0xea,
+ 0x3b, 0x05, 0x11, 0xa0, 0x50, 0xd0, 0x59, 0x77, 0x60, 0x26, 0x70, 0xa3, 0x46, 0xe4, 0x3b, 0x6e,
+ 0x9a, 0x1e, 0x66, 0x46, 0x23, 0xa5, 0x15, 0xf1, 0x83, 0xd4, 0xe3, 0x4c, 0x57, 0x1d, 0x9a, 0xa7,
+ 0x75, 0x4f, 0xb0, 0xf4, 0x7a, 0xd5, 0x60, 0x96, 0xed, 0x90, 0x21, 0x70, 0x7d, 0x71, 0x75, 0x40,
+ 0xea, 0x9e, 0xa3, 0x2b, 0xf4, 0x69, 0xc0, 0xef, 0x19, 0xe3, 0x42, 0xe0, 0xfa, 0xe2, 0xea, 0x80,
+ 0xd0, 0x19, 0x7d, 0xa6, 0x53, 0x6a, 0xd7, 0xb0, 0x62, 0x30, 0xcc, 0x10, 0x52, 0x91, 0xd0, 0x9a,
+ 0x2a, 0x70, 0x73, 0x18, 0x0c, 0xad, 0x7d, 0x9a, 0x08, 0x58, 0xb5, 0x89, 0x50, 0x17, 0x2a, 0x56,
+ 0x91, 0xc1, 0x43, 0x9a, 0x4d, 0x44, 0xf2, 0x0a, 0x76, 0xac, 0xde, 0x64, 0xda, 0x55, 0x91, 0x1d,
+ 0x02, 0xc7, 0x5d, 0x5a, 0x2d, 0x65, 0x9c, 0x50, 0x36, 0x29, 0x3f, 0xa6, 0x1f, 0xed, 0x02, 0xe8,
+ 0x46, 0xd0, 0x16, 0xff, 0x9e, 0x52, 0x0c, 0x62, 0x55, 0x12, 0xad, 0x0e, 0x47, 0xa7, 0x46, 0x08,
+ 0xa7, 0x91, 0x90, 0x08, 0x04, 0xda, 0x2b, 0x76, 0xb9, 0x89, 0xd2, 0xc6, 0x30, 0x0d, 0xa7, 0x32,
+ 0xdc, 0xce, 0x70, 0xb9, 0xbd, 0xf7, 0x19, 0x93, 0xd6, 0xc6, 0x4e, 0x42, 0x10, 0xba, 0xdc, 0xaf,
+ 0x27, 0x25, 0xb1, 0x2a, 0x15, 0xe3, 0xfd, 0x91, 0xa7, 0x5b, 0xc9, 0x88, 0xfc, 0xab, 0x27, 0x17,
+ 0x76, 0x0a, 0x22, 0x83, 0xa0, 0x63, 0xb2, 0xee, 0xc0, 0x4c, 0xe0, 0x85, 0x8c, 0x0b, 0x76, 0xdc,
+ 0xa4, 0xd4, 0x02, 0x7f, 0xde, 0x6c, 0xf9, 0x0e, 0x94, 0x55, 0x13, 0x33, 0xc1, 0x77, 0xa4, 0xae,
+ 0xca, 0xb3, 0x3a, 0xc2, 0x61, 0xf6, 0x14, 0xa6, 0xff, 0x36, 0x34, 0x12, 0xc9, 0x2a, 0xca, 0x18,
+ 0x96, 0xc9, 0x6b, 0x59, 0xcd, 0x38, 0xdb, 0xd2, 0x37, 0x22, 0x61, 0x1e, 0x15, 0x36, 0x96, 0x92,
+ 0x70, 0x80, 0xc5, 0x6d, 0xd7, 0xcc, 0xd5, 0x1e, 0x9a, 0x37, 0xa1, 0xac, 0xad, 0xff, 0x70, 0x27,
+ 0x54, 0xe0, 0xe6, 0x30, 0x18, 0x99, 0xfa, 0xf7, 0x10, 0xb0, 0xa9, 0xd1, 0xa0, 0x2e, 0x54, 0xac,
+ 0xe1, 0x41, 0x86, 0xf7, 0x9a, 0x88, 0x27, 0x14, 0xec, 0x9b, 0x7f, 0xc8, 0x77, 0xaa, 0xe1, 0x3a,
+ 0x6f, 0xe5, 0xf7, 0x90, 0x48, 0x49, 0xa3, 0x80, 0x70, 0x96, 0xd9, 0x72, 0xe6, 0xca, 0x6f, 0xc2,
+ 0x39, 0xc2, 0x4c, 0xfa, 0x7d, 0xb5, 0xc5, 0x27, 0x56, 0x0f, 0x4f, 0x05, 0x59, 0x09, 0x39, 0x86,
+ 0x33, 0x9f, 0xa6, 0x0b, 0xe4, 0x87, 0x6c, 0xf4, 0xb8, 0x82, 0x8c, 0x7e, 0x3a, 0xd6, 0x33, 0x48,
+ 0xdb, 0xc6, 0x58, 0x7a, 0x3d, 0x8b, 0x30, 0x4b, 0x97, 0x48, 0xf1, 0x38, 0xdf, 0xd9, 0xdb, 0x20,
+ 0xa0, 0x99, 0xb8, 0xcb, 0x84, 0xa6, 0x02, 0xae, 0xf8, 0x07, 0x6d, 0xbc, 0xff, 0x6e, 0xa0, 0xbd,
+ 0xfe, 0x24, 0xb4, 0x0a, 0x05, 0x0d, 0x51, 0x8a, 0x06, 0x3a, 0x07, 0x16, 0x3c, 0x9f, 0xfe, 0xdf,
+ 0xb2, 0xa9, 0x48, 0x04, 0x02, 0x6d, 0xf4, 0x3b, 0xbd, 0xa5, 0x69, 0x63, 0x18, 0xe7, 0xb2, 0x19,
+ 0x10, 0xf7, 0xad, 0x95, 0xab, 0xae, 0x6a, 0xc5, 0x73, 0x8b, 0x3b, 0x79, 0xf8, 0x64, 0x10, 0x4c,
+ 0x71, 0x02, 0x0a, 0x40, 0x20, 0x1f, 0x9b, 0x36, 0x81, 0xc2, 0x5f, 0xff, 0x43, 0x68, 0x71, 0x53,
+ 0x87, 0xbc, 0x09, 0xe1, 0x91, 0x45, 0xff, 0x3f, 0x5f, 0x5c, 0xa4, 0x34, 0x03, 0xc5, 0x87, 0xaa,
+ 0x35, 0x15, 0x41, 0xe5, 0x93, 0x28, 0x0b, 0x04, 0xe2, 0xf9, 0xcd, 0x57, 0x1b, 0x22, 0x35, 0xb3,
+ 0x38, 0x40, 0x83, 0xd7, 0x8a, 0x66, 0x8b, 0x0f, 0x4d, 0xfa, 0xb1, 0x56, 0xb7, 0x9e, 0x38, 0xf2,
+ 0x52, 0x6a, 0x01, 0xde, 0x6f, 0x36, 0x9d, 0x07, 0x4a, 0xcb, 0xe8, 0xf8, 0x81, 0xda, 0x52, 0x57,
+ 0x65, 0xb8, 0x1d, 0x61, 0xd1, 0x7b, 0x0a, 0x53, 0x9e, 0x1b, 0x1a, 0x09, 0x85, 0x15, 0x65, 0x0c,
+ 0xde, 0x09, 0x2d, 0xe3, 0x90, 0x92, 0x85, 0xc3, 0xe0, 0xef, 0x71, 0xe4, 0x0f, 0x57, 0xde, 0x47,
+ 0x8e, 0xa4, 0x71, 0x67, 0xd2, 0xc1, 0x84, 0x94, 0x9c, 0x0d, 0xa6, 0xba, 0x91, 0x60, 0x8e, 0xf8,
+ 0xa8, 0x03, 0x0f, 0x60, 0x30, 0xf1, 0x37, 0x2d, 0x20, 0xa3, 0x91, 0x61, 0x83, 0x5c, 0xa8, 0x9b,
+ 0xfd, 0x61, 0x26, 0x7d, 0xdf, 0xbb, 0x83, 0xf2, 0x2b, 0xe6, 0xc6, 0xe3, 0xcd, 0xe5, 0xfd, 0x43,
+ 0x2e, 0x3d, 0xc9, 0xac, 0x56, 0x67, 0x86, 0x3a, 0x64, 0x0a, 0xcb, 0x06, 0x6e, 0x0e, 0x2e, 0x45,
+ 0x01, 0x82, 0xcf, 0x2d, 0xf7, 0xd3, 0x4e, 0x28, 0x1b, 0xf5, 0xfe, 0x53, 0xee, 0x97, 0x01, 0x74,
+ 0xf8, 0xae, 0x53, 0xe4, 0x72, 0xa2, 0x36, 0x7a, 0x5c, 0x41, 0x46, 0x3f, 0x1d, 0x6b, 0xf8, 0x24,
+ 0x8c, 0x63, 0x2c, 0x3d, 0xff, 0xa4, 0x18, 0xc4, 0xaa, 0x24, 0x99, 0x1c, 0x8e, 0x8d, 0x8c, 0x10,
+ 0xbb, 0xb1, 0x30, 0x82, 0x41, 0xe9, 0x8f, 0x90, 0x7e, 0xf4, 0x6b, 0xed, 0x8a, 0x42, 0xbb, 0x4b,
+ 0x49, 0x42, 0x89, 0x97, 0xaa, 0x79, 0x10, 0x39, 0xcc, 0x38, 0xee, 0xa9, 0xf4, 0xf6, 0x49, 0xa1,
+ 0x44, 0x17, 0x4b, 0xa5, 0xb3, 0x37, 0x90, 0x32, 0x63, 0x3b, 0x92, 0xa8, 0x58, 0x4a, 0x44, 0xe0,
+ 0xbf, 0xfc, 0x8a, 0x36, 0x1b, 0x23, 0x74, 0x30, 0x12, 0xa6, 0x15, 0x62, 0xb4, 0x5b, 0xbf, 0x58,
+ 0xef, 0x51, 0xd6, 0xb2, 0x59, 0x70, 0x75, 0x67, 0x6e, 0x44, 0xc2, 0x3c, 0x2a, 0x6c, 0xef, 0xe7,
+ 0xfc, 0xe3, 0xe9, 0x50, 0x28, 0x68, 0xcd, 0xda, 0x30, 0x13, 0x38, 0xb0, 0x23, 0x72, 0xfc, 0x37,
+ 0x3a, 0x87, 0xde, 0x8d, 0xa7, 0x03, 0x17, 0x5f, 0x7b, 0xd3, 0x8e, 0xf0, 0xa8, 0x73, 0x3a, 0x1a,
+ 0xb1, 0xec, 0xda, 0x73, 0xd8, 0xdb, 0x26, 0x43, 0x90, 0x79, 0xa8, 0x96, 0xe9, 0x9d, 0xb1, 0x85,
+ 0xf9, 0x2c, 0x9c, 0xc9, 0x85, 0x71, 0x78, 0x52, 0x47, 0xb4, 0xb8, 0x6c, 0xf3, 0xfc, 0xf9, 0x50,
+ 0x99, 0x5b, 0xf4, 0x31, 0xf9, 0x13, 0xc7, 0x89, 0xae, 0x08, 0x22, 0xb9, 0xa6, 0x67, 0x99, 0x3b,
+ 0xd8, 0x83, 0xca, 0x0d, 0xe7, 0x3d, 0xe2, 0x33, 0xba, 0x94, 0x30, 0xcd, 0x2e, 0xa3, 0xd8, 0xbc,
+ 0xc9, 0xf6, 0xa8, 0xb5, 0xbb, 0x40, 0xc6, 0xde, 0xd2, 0xea, 0xf5, 0xe7, 0x38, 0x50, 0xc9, 0x84,
+ 0x61, 0xf5, 0xa7, 0xd5, 0x8b, 0xb1, 0xf1, 0xf3, 0xf2, 0x49, 0x64, 0x86, 0xbb, 0x0c, 0x61, 0x1f,
+ 0x3c, 0x0d, 0x39, 0x63, 0xd0, 0xac, 0x70, 0xaf, 0x21, 0xa8, 0xcf, 0xd9, 0x89, 0x87, 0x3c, 0xe1,
+ 0x89, 0xac, 0x59, 0xa4, 0x52, 0xbd, 0xad, 0x4c, 0xdd, 0x83, 0x19, 0xc0, 0x5e, 0x03, 0x89, 0x77,
+ 0x0f, 0x92, 0x9f, 0x68, 0x34, 0x2b, 0x1c, 0x5b, 0x99, 0x2a, 0x43, 0xa7, 0xb3, 0x51, 0x0f, 0xa9,
+ 0x5c, 0x7a, 0x51, 0x9b, 0xac, 0xce, 0xcf, 0x74, 0xc8, 0x14, 0x55, 0x0c, 0xdc, 0x1c, 0x5c, 0x8a,
+ 0xbe, 0x7e, 0x45, 0x1b, 0xec, 0xf0, 0x3a, 0x18, 0x09, 0x53, 0xeb, 0x31, 0x5a, 0xcc, 0xbe, 0x2c,
+ 0xc2, 0x29, 0x8d, 0x69, 0xd5, 0xa1, 0x21, 0x25, 0x27, 0x92, 0xc8, 0xcf, 0xb5, 0x18, 0xc2, 0x3e,
+ 0xc5, 0x21, 0xa5, 0xaa, 0x55, 0xdd, 0x08, 0xfd, 0x66, 0x1c, 0x77, 0xb5, 0x7a, 0x7b, 0xc5, 0xb1,
+ 0x88, 0x2e, 0x96, 0x89, 0xa5, 0x6e, 0xe3, 0x64, 0xc6, 0x76, 0xe7, 0x93, 0xb0, 0x94, 0x88, 0x03,
+ 0xa1, 0x1b, 0x77, 0xe6, 0x73, 0x75, 0x4c, 0x86, 0xe3, 0xf2, 0x93, 0xef, 0x11, 0xf9, 0xa1, 0xc9,
+ 0x1d, 0xa2, 0x6f, 0xa7, 0xb2, 0xe0, 0xea, 0xce, 0xdc, 0x88, 0x47, 0x78, 0x54, 0xd8, 0x1d, 0x0d,
+ 0xc7, 0xe6, 0xf8, 0xf0, 0x78, 0xb8, 0x94, 0xad, 0x50, 0x35, 0x48, 0x13, 0x65, 0x96, 0xc7, 0x59,
+ 0x6c, 0xa0, 0x65, 0xe7, 0x92, 0xff, 0x71, 0xf8, 0x5d, 0x4a, 0x18, 0x87, 0x17, 0xb0, 0x6c, 0x5e,
+ 0x85, 0x7b, 0x54, 0xbb, 0xbc, 0x20, 0x63, 0x6f, 0x69, 0x75, 0x9b, 0x92, 0x1c, 0x28, 0x85, 0x42,
+ 0x9d, 0x16, 0x4e, 0x85, 0xa3, 0xd9, 0x3c, 0x29, 0xc2, 0x5a, 0x5c, 0x36, 0x98, 0x7e, 0x9d, 0x28,
+ 0xd3, 0x5c, 0xef, 0xd1, 0x89, 0xdc, 0x05, 0xc8, 0x4f, 0xec, 0x0d, 0xe5, 0xa3, 0xeb, 0xd3, 0x06,
+ 0xd1, 0x9b, 0xb2, 0x8b, 0xa4, 0xb9, 0x99, 0x98, 0x79, 0xc5, 0x32, 0x43, 0xbc, 0x06, 0xd1, 0xee,
+ 0x1e, 0xe7, 0xfd, 0xd0, 0x68, 0x56, 0x38, 0xb6, 0xf1, 0x54, 0x86, 0x8d, 0xa5, 0xa2, 0x1e, 0x91,
+ 0x3e, 0xca, 0x64, 0x39, 0xfd, 0xc9, 0xec, 0xff, 0x17, 0x81, 0xf0, 0x7f, 0x96, 0x6a, 0x3e, 0x09,
+ 0x84, 0xf9, 0x9b, 0x96, 0x4b, 0xf3, 0x2d, 0x47, 0x72, 0x80, 0x65, 0xc1, 0xf2, 0xbf, 0x84, 0x36,
+ 0x2f, 0xbf, 0x06, 0x81, 0xa1, 0xb4, 0xc8, 0x12, 0x7f, 0xff, 0x35, 0x55, 0x80, 0x99, 0x2f, 0x31,
+ 0x7d, 0xd5, 0x07, 0x5f, 0xce, 0x82, 0x55, 0x15, 0x35, 0x34, 0xdd, 0xad, 0x01, 0x43, 0x7d, 0x66,
+ 0x74, 0xcd, 0x7f, 0xd9, 0x8d, 0x06, 0x2e, 0xbe, 0xf6, 0x65, 0xdf, 0x23, 0x93, 0xe6, 0x74, 0x34,
+ 0x41, 0xd8, 0x3e, 0x3c, 0x1e, 0x2e, 0x25, 0xba, 0x14, 0x9c, 0x12, 0x74, 0x88, 0xc4, 0x41, 0x87,
+ 0x50, 0xad, 0x5c, 0x84, 0x42, 0x53, 0x01, 0x57, 0x7c, 0xe2, 0xd7, 0x5e, 0x9e, 0x37, 0x50, 0xbf,
+ 0x21, 0xaf, 0x56, 0xc4, 0x62, 0x4c, 0x9a, 0x61, 0xfd, 0x20, 0x88, 0xa1, 0xdd, 0x5f, 0x21, 0xec,
+ 0x55, 0x62, 0x29, 0x1d, 0xef, 0x4a, 0xb4, 0xdf, 0x0b, 0x45, 0x57, 0x82, 0x4e, 0xb9, 0x55, 0xd8,
+ 0xe7, 0xcb, 0x61, 0x19, 0xed, 0x27, 0x40, 0xe4, 0xb6, 0xe0, 0x3e, 0xe1, 0x56, 0x5e, 0xe7, 0xc1,
+ 0xcd, 0xbb, 0x12, 0x01, 0xe1, 0x8a, 0x3d, 0x7e, 0xbe, 0xb8, 0x8b, 0x68, 0x06, 0x49, 0xcd, 0x97,
+ 0x0d, 0x55, 0xc2, 0x32, 0x19, 0x4e, 0x80, 0x0b, 0xaf, 0x03, 0x7c, 0x01, 0xac, 0xbc, 0x0d, 0x41,
+ 0x7c, 0x57, 0xc8, 0x72, 0x39, 0x51, 0x1b, 0x3d, 0x2e, 0xc1, 0x23, 0xfe, 0xef, 0xd4, 0x7c, 0x12,
+ 0x37, 0xd2, 0x1c, 0xbf, 0xbe, 0x4d, 0x97, 0x54, 0xd4, 0xd0, 0xf2, 0xf1, 0x04, 0xcf, 0x37, 0x5b,
+ 0x1a, 0xaa, 0x47, 0x64, 0x32, 0x9c, 0xc3, 0x16, 0x9d, 0x06, 0xf8, 0x02, 0x9b, 0xbb, 0x1a, 0x82,
+ 0xa2, 0x5e, 0xe5, 0x91, 0xa9, 0xc3, 0x9e, 0xfe, 0xce, 0x2e, 0x52, 0x1a, 0xe0, 0x83, 0xa2, 0x55,
+ 0xaf, 0x0b, 0x27, 0xa3, 0xb0, 0x8d, 0x1e, 0xf5, 0x61, 0x2d, 0x2e, 0x1b, 0x4c, 0x3f, 0xaf, 0x14,
+ 0xf6, 0xbe, 0x03, 0xa1, 0xb1, 0x5a, 0x64, 0x09, 0xde, 0x9e, 0xfb, 0xcb, 0x40, 0xad, 0xf6, 0xf9,
+ 0xe8, 0x59, 0xfe, 0x71, 0xd9, 0x0c, 0x5c, 0xbf, 0x2f, 0xca, 0x7d, 0x46, 0xe5, 0x0f, 0xe8, 0x68,
+ 0x7e, 0x90, 0x95, 0x28, 0x14, 0x34, 0x87, 0x6d, 0x18, 0xe8, 0x1c, 0x58, 0xf0, 0x39, 0x7e, 0xfa,
+ 0x5e, 0xbd, 0x0c, 0xc1, 0x81, 0xab, 0x53, 0x24, 0xfe, 0x3d, 0x6a, 0xaa, 0xc3, 0xf1, 0x5e, 0x62,
+ 0xfa, 0x69, 0x0e, 0xbe, 0x5f, 0xc7, 0xaa, 0x2a, 0x6a, 0x68, 0x79, 0x99, 0x02, 0x86, 0xfa, 0xcc,
+ 0xb5, 0xa1, 0x60, 0xc7, 0x82, 0x11, 0xdd, 0xe3, 0xfc, 0x2b, 0xd6, 0x19, 0xd7, 0x84, 0xb5, 0x96,
+ 0x92, 0x84, 0xd1, 0xed, 0x97, 0xf2, 0x20, 0x72, 0x5b, 0x70, 0x1f, 0x91, 0x2b, 0x2f, 0x92, 0x81,
+ 0x56, 0x27, 0xbb, 0x6a, 0x35, 0xfc, 0x66, 0xa7, 0x26, 0x99, 0x96, 0x77, 0xbf, 0xc3, 0x56, 0x44,
+ 0xf1, 0xb6, 0x2b, 0x62, 0x31, 0x26, 0x4d, 0xd1, 0x9f, 0x10, 0x44, 0xb1, 0x8f, 0xce, 0xf1, 0x76,
+ 0x04, 0x4d, 0xba, 0xb4, 0x5a, 0xca, 0xfb, 0xa0, 0x6c, 0x52, 0x7e, 0x8f, 0x3e, 0x19, 0x04, 0x13,
+ 0x6e, 0x67, 0x38, 0xbd, 0xbf, 0x9a, 0xed, 0xa8, 0x6b, 0x63, 0x27, 0x21, 0x08, 0x5d, 0x6e, 0xb6,
+ 0xa5, 0x56, 0xcd, 0x52, 0x29, 0xbf, 0xb7, 0x26, 0x8f, 0xa0, 0xed, 0x60, 0x2f, 0xe0, 0xa5, 0xda,
+ 0xe6, 0x49, 0xae, 0x34, 0x1a, 0xf4, 0x0e, 0xcc, 0xad, 0x15, 0xc0, 0xb2, 0xb8, 0xc9, 0xe6, 0xb5,
+ 0xc8, 0x74, 0x67, 0x98, 0x4c, 0x93, 0x88, 0xf6, 0xc9, 0x1f, 0x0b, 0xb4, 0xd6, 0xc7, 0xc8, 0xf0,
+ 0x7b, 0x5f, 0xe0, 0xb1, 0xb9, 0x2d, 0x32, 0xe5, 0x6f, 0x4f, 0x9c, 0x84, 0x20, 0xb7, 0x7b, 0x9d,
+ 0x73, 0xc5, 0x57, 0x1a, 0x0d, 0x7a, 0x07, 0x66, 0xb7, 0xeb, 0x60, 0x59, 0x5c, 0x85, 0x73, 0xbb,
+ 0x51, 0x2f, 0x93, 0xa9, 0xb5, 0x80, 0x4f, 0x7f, 0x67, 0x17, 0x29, 0x0d, 0x70, 0xa0, 0x51, 0xcb,
+ 0x95, 0x8c, 0xf9, 0x2e, 0x17, 0x8e, 0x09, 0xaa, 0x1a, 0xfe, 0xa0, 0xeb, 0xe4, 0x4c, 0x95, 0x0e,
+ 0x66, 0xfd, 0x8f, 0x16, 0x0b, 0xcd, 0xd8, 0x2b, 0xb3, 0xc7, 0xdb, 0xfc, 0x74, 0x6f, 0x66, 0x90,
+ 0xd6, 0x93, 0x9a, 0x48, 0x24, 0xc5, 0xb0, 0x40, 0x38, 0x4b, 0x8d, 0x39, 0x73, 0x65, 0xd6, 0x61,
+ 0x5b, 0x72, 0x79, 0x58, 0x2c, 0xb2, 0xe6, 0xac, 0x89, 0x9a, 0xea, 0x76, 0x13, 0x7f, 0x5b, 0x05,
+ 0xe3, 0x86, 0xdb, 0xad, 0xb7, 0xed, 0xbb, 0x44, 0xda, 0xb2, 0x40, 0x6e, 0x68, 0x47, 0xe3, 0xd2,
+ 0x63, 0x32, 0xfa, 0x8f, 0xa6, 0xd4, 0x6d, 0xa3, 0xc4, 0x60, 0x5b, 0x20, 0xa4, 0xe1, 0x63, 0xf7,
+ 0x9b, 0x9c, 0xa9, 0x6b, 0xd4, 0x76, 0x5b, 0xd9, 0x98, 0x21, 0x1d, 0x1f, 0xb9, 0x8a, 0x9b, 0xd3,
+ 0xbd, 0x3b, 0xd7, 0x6c, 0x36, 0x46, 0xe8, 0x60, 0x24, 0x8f, 0x2a, 0xc4, 0xab, 0xb6, 0xbd, 0xb0,
+ 0x77, 0x88, 0xed, 0xae, 0x57, 0xb0, 0xfc, 0xc6, 0xdb, 0xb9, 0x1e, 0xd6, 0x62, 0x9c, 0x77, 0xa8,
+ 0x8d, 0xe1, 0xe3, 0x10, 0x08, 0x77, 0x56, 0xec, 0xb1, 0xd1, 0x67, 0x4f, 0x60, 0x1a, 0x8d, 0x64,
+ 0xbc, 0xb9, 0x18, 0x41, 0xc1, 0x95, 0xa6, 0x48, 0x3f, 0x7a, 0xd4, 0x97, 0x45, 0x21, 0xbc, 0xc4,
+ 0xf3, 0x71, 0x76, 0x38, 0x1c, 0x43, 0xd1, 0x81, 0xa9, 0x39, 0x7b, 0x17, 0x90, 0x23, 0xf3, 0x9e,
+ 0xf4, 0x79, 0x5e, 0xfb, 0x9c, 0x3f, 0xf8, 0x59, 0xe8, 0xb7, 0xc4, 0x6d, 0x5f, 0x40, 0xf4, 0x11,
+ 0x26, 0xa7, 0x7e, 0x07, 0xe2, 0x30, 0xb3, 0xb9, 0xbc, 0xae, 0x37, 0xdb, 0x12, 0x3c, 0x26, 0x63,
+ 0xd4, 0x54, 0xc7, 0x12, 0x09, 0xa0, 0x2c, 0x10, 0x0e, 0x62, 0xb2, 0x9f, 0x6c, 0x88, 0xd4, 0x89,
+ 0x80, 0xb4, 0x21, 0x22, 0x11, 0x39, 0xd6, 0xe7, 0x1e, 0xd2, 0x1b, 0x4e, 0xcc, 0xa6, 0x80, 0x25,
+ 0x93, 0x06, 0x1e, 0xc0, 0x60, 0x21, 0x6e, 0x5a, 0x40, 0x85, 0xe1, 0xc2, 0xc5, 0xb8, 0x93, 0xf5,
+ 0xb6, 0xe4, 0xf2, 0xb0, 0x58, 0xa7, 0x0f, 0x9b, 0xd1, 0xf7, 0x17, 0xec, 0x26, 0xfe, 0xb6, 0x0a,
+ 0x15, 0x38, 0xd8, 0x0c, 0x06, 0xb7, 0xdf, 0x4d, 0x04, 0x2c, 0xbb, 0xa5, 0x28, 0xea, 0x15, 0x2b,
+ 0xcc, 0x39, 0xdd, 0x2c, 0x16, 0x59, 0x73, 0x56, 0xa5, 0x4d, 0x75, 0x3b, 0xe8, 0xde, 0xcc, 0xe3,
+ 0xac, 0x4e, 0xb5, 0xd4, 0x6a, 0x3b, 0xcc, 0x8d, 0x4c, 0xf1, 0xef, 0xee, 0xbd, 0x45, 0xac, 0x88,
+ 0xc1, 0x6c, 0x1f, 0x1e, 0x0f, 0x17, 0xf3, 0x5d, 0x0a, 0x4e, 0x09, 0x3a, 0x44, 0x62, 0xc1, 0xa2,
+ 0xee, 0xd3, 0x19, 0x9f, 0xae, 0xa3, 0x3b, 0x4f, 0x75, 0xb1, 0x3c, 0x6f, 0xc4, 0xfb, 0xee, 0x93,
+ 0xae, 0x89, 0xe8, 0x8e, 0x47, 0x5e, 0x50, 0xdd, 0x7a, 0xd8, 0xd0, 0x48, 0xa2, 0xa8, 0xae, 0x60,
+ 0x9c, 0x94, 0x81, 0xa8, 0x54, 0x0a, 0x72, 0x01, 0xd9, 0xaf, 0xa2, 0x65, 0x76, 0xe9, 0x9c, 0x5c,
+ 0xd9, 0x01, 0x05, 0x20, 0x10, 0xee, 0xac, 0x1b, 0xa1, 0x61, 0xce, 0x9e, 0xc0, 0x34, 0xd9, 0xc8,
+ 0xa3, 0xdc, 0x2a, 0xbc, 0x5e, 0x10, 0xd0, 0xd6, 0xd5, 0xdb, 0xac, 0x49, 0x0e, 0x14, 0xa3, 0x21,
+ 0x25, 0xe2, 0xec, 0x70, 0x38, 0x86, 0x61, 0xc1, 0x91, 0x72, 0xf6, 0x2e, 0xe3, 0x46, 0x25, 0xff,
+ 0xeb, 0x1c, 0x6c, 0x06, 0x03, 0xba, 0x8e, 0xc7, 0x02, 0x16, 0xbc, 0xb3, 0x14, 0x75, 0xeb, 0xf4,
+ 0x40, 0x5a, 0xf1, 0x11, 0xe9, 0xfd, 0x6b, 0x92, 0x0f, 0x69, 0xec, 0x27, 0x66, 0x53, 0x40, 0xf3,
+ 0x48, 0xc0, 0x46, 0xba, 0x5d, 0xaa, 0x5e, 0x11, 0xd7, 0xcd, 0x10, 0xfa, 0x1a, 0x61, 0x48, 0xd5,
+ 0x6d, 0x22, 0xaa, 0xca, 0x65, 0x2c, 0x3f, 0xd0, 0x46, 0xbf, 0xe6, 0xd4, 0xf9, 0x27, 0x6d, 0x2a,
+ 0x28, 0xb7, 0x2e, 0x42, 0x21, 0xc8, 0xe1, 0xca, 0x3e, 0x71, 0x8a, 0x2f, 0x4f, 0xfa, 0x28, 0xbe,
+ 0xff, 0xa6, 0x7b, 0x27, 0xf2, 0xde, 0x1f, 0xa2, 0x1d, 0xcf, 0xf9, 0x45, 0xd2, 0x08, 0xff, 0xab,
+ 0x0a, 0x5d, 0xea, 0xf1, 0x99, 0x32, 0xa9, 0xd3, 0xee, 0x8d, 0xc3, 0x7b, 0x63, 0xdf, 0x0a, 0xce,
+ 0x4f, 0xc8, 0x6e, 0x79, 0xdd, 0xd6, 0x77, 0xc9, 0x96, 0x43, 0xaf, 0x80, 0xd5, 0x02, 0x4f, 0x5a,
+ 0x19, 0xef, 0xd5, 0x13, 0xe8, 0x2a, 0x11, 0x6e, 0xb0, 0xda, 0x39, 0xf7, 0x6a, 0xc1, 0x19, 0x1e,
+ 0x53, 0xe8, 0xce, 0xf3, 0x98, 0xe5, 0xd3, 0x2f, 0x51, 0x3e, 0x16, 0xab, 0x6f, 0x4d, 0x53, 0x23,
+ 0xf5, 0xfb, 0x91, 0xd6, 0x6b, 0xec, 0xb6, 0x71, 0xf3, 0x42, 0x3a, 0x3e, 0xb1, 0xd7, 0xf5, 0x65,
+ 0xb9, 0x76, 0x6d, 0xd8, 0x6c, 0x8c, 0x13, 0xc0, 0x48, 0xdd, 0x54, 0x4b, 0x95, 0xaf, 0xb9, 0xa3,
+ 0xcb, 0x31, 0xf5, 0xef, 0x96, 0x25, 0x5a, 0x8e, 0xe4, 0xc3, 0xca, 0x41, 0x27, 0xbd, 0xcb, 0x6c,
+ 0x45, 0x95, 0x84, 0x88, 0x44, 0xe4, 0xde, 0x1a, 0x78, 0xce, 0x6c, 0xfb, 0xb6, 0xdd, 0x45, 0x94,
+ 0x57, 0xa5, 0x74, 0x47, 0xc2, 0x2f, 0x28, 0x8f, 0x3d, 0x6c, 0x68, 0x24, 0x51, 0x54, 0x57, 0x30,
+ 0xd7, 0x11, 0x55, 0x65, 0xd3, 0x16, 0xfe, 0x68, 0x23, 0xbe, 0x73, 0x6a, 0x9d, 0xf2, 0xd7, 0x15,
+ 0x68, 0xed, 0xdf, 0x53, 0xc8, 0x35, 0x8a, 0x58, 0x31, 0x18, 0x66, 0x08, 0x29, 0xa9, 0x68, 0x4d,
+ 0x4c, 0x8d, 0xfc, 0x0e, 0x07, 0x60, 0xa5, 0xb1, 0xbb, 0x9f, 0x6e, 0x75, 0x24, 0x78, 0x4c, 0xc6,
+ 0x20, 0x2d, 0x99, 0xe9, 0x95, 0x9f, 0xd4, 0x49, 0xe6, 0xd5, 0x76, 0xf2, 0x33, 0xc8, 0x20, 0x98,
+ 0x4a, 0x07, 0x1b, 0xe0, 0x70, 0xcf, 0xc2, 0x41, 0xe1, 0xe4, 0x2f, 0x5c, 0x05, 0x8c, 0x4a, 0x3d,
+ 0x05, 0xcf, 0x75, 0x99, 0xad, 0x19, 0xb5, 0x88, 0x77, 0xa7, 0x80, 0xdc, 0xd0, 0x8e, 0x05, 0x67,
+ 0xc6, 0x64, 0x37, 0xdd, 0x8f, 0x6b, 0xda, 0x85, 0x4b, 0xc0, 0xb6, 0x40, 0x8b, 0x01, 0xc6, 0x2d,
+ 0x14, 0xba, 0x17, 0x21, 0xf1, 0x64, 0x91, 0x65, 0x1f, 0xd9, 0x45, 0xf6, 0xc6, 0x7d, 0x14, 0x5f,
+ 0x9e, 0x53, 0xdc, 0xf2, 0x79, 0x6f, 0xee, 0x51, 0xef, 0x86, 0x9d, 0xc3, 0x69, 0x04, 0x9e, 0xb4,
+ 0xd5, 0xd6, 0x08, 0x3f, 0xfe, 0x73, 0x62, 0x38, 0x15, 0x97, 0x4c, 0xcc, 0x82, 0x1f, 0xd5, 0xfd,
+ 0x4d, 0x0f, 0x33, 0x23, 0xf0, 0xb3, 0xeb, 0x99, 0xa0, 0x6a, 0x90, 0x26, 0xca, 0xef, 0x4d, 0xb2,
+ 0xce, 0xfe, 0x80, 0x76, 0x3b, 0x3c, 0xef, 0x06, 0x93, 0x64, 0x4a, 0x9d, 0xf7, 0x33, 0xce, 0x0b,
+ 0x5a, 0xf0, 0xb6, 0x75, 0xdb, 0x61, 0xa8, 0x84, 0x92, 0x6f, 0x14, 0x25, 0xfd, 0xe8, 0x5a, 0x71,
+ 0x3f, 0x48, 0xab, 0x14, 0x0a, 0x1a, 0xa2, 0xd7, 0x0c, 0x74, 0x0e, 0x2c, 0x78, 0xfd, 0x3f, 0x7d,
+ 0x8a, 0xe9, 0xcb, 0xd3, 0x88, 0x0b, 0x7f, 0x34, 0xf0, 0x5f, 0xd8, 0x35, 0xaf, 0x79, 0x8a, 0xeb,
+ 0x83, 0xf1, 0xb3, 0x55, 0xcb, 0x8f, 0x04, 0x9f, 0x33, 0x0e, 0xda, 0xbb, 0x3d, 0xdc, 0x83, 0xb9,
+ 0xc3, 0xab, 0x42, 0x44, 0x22, 0x72, 0x6f, 0x0d, 0x3c, 0x67, 0x36, 0x9c, 0x5b, 0x8f, 0xc3, 0x4a,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x94, 0x0e, 0x36, 0x03, 0xe0, 0x5d, 0x47, 0x82, 0x01, 0x0b, 0x5e, 0xb8, 0x0a, 0xdb, 0x94, 0x7a,
+ 0x1f, 0x65, 0x32, 0xfd, 0x9f, 0x85, 0x76, 0x9e, 0xea, 0xa1, 0x78, 0xde, 0x4b, 0x35, 0x1f, 0xe5,
+ 0x98, 0xd9, 0x3b, 0x1c, 0x0e, 0xc0, 0x89, 0xa1, 0xb5, 0xfd, 0xdc, 0xea, 0x48, 0xf0, 0x98, 0x4f,
+ },
+ { /* 15 */
+ 0xcc, 0x0e, 0x86, 0xc2, 0x4f, 0xba, 0x59, 0x3b, 0xe3, 0xef, 0x79, 0x82, 0x53, 0x11, 0xf0, 0xcd,
+ 0x03, 0x96, 0x94, 0x95, 0x6c, 0x2a, 0xb6, 0xf5, 0x9c, 0xba, 0xe7, 0x37, 0x83, 0x91, 0xbd, 0x5b,
+ 0x17, 0xb1, 0xab, 0xa6, 0xf9, 0x11, 0xd2, 0x03, 0xc3, 0x8e, 0xc9, 0x90, 0x58, 0x92, 0xad, 0x69,
+ 0xa5, 0x82, 0x44, 0x27, 0x96, 0x65, 0xbf, 0x60, 0xda, 0x6e, 0x59, 0x28, 0x51, 0x68, 0x84, 0xbe,
+ 0xd4, 0x34, 0xac, 0xe0, 0xa9, 0x29, 0xa0, 0x9f, 0x89, 0x76, 0x4d, 0xf9, 0xc1, 0x13, 0x51, 0x50,
+ 0xfc, 0x7a, 0xd2, 0x86, 0x40, 0x5f, 0x68, 0xb0, 0x37, 0x1e, 0x11, 0x74, 0xb4, 0x15, 0x71, 0x34,
+ 0xd6, 0xd0, 0xf5, 0x06, 0xe1, 0xa4, 0xc5, 0x39, 0x61, 0x1b, 0xf7, 0x62, 0x82, 0x4c, 0x87, 0x83,
+ 0x76, 0x2b, 0xce, 0x5d, 0xc3, 0xbf, 0x63, 0x85, 0xdc, 0x78, 0x44, 0x13, 0x95, 0x54, 0x07, 0xd0,
+ 0xd2, 0xdb, 0x47, 0x09, 0x71, 0x7d, 0x0f, 0xb6, 0x72, 0xc1, 0x40, 0x97, 0x04, 0xf2, 0xe8, 0xe6,
+ 0x20, 0x58, 0xd9, 0x78, 0x0a, 0x07, 0x9f, 0xf2, 0x98, 0x1f, 0xf1, 0xa4, 0xba, 0xb9, 0xfe, 0xae,
+ 0x65, 0x91, 0xd7, 0xf4, 0xaa, 0x77, 0x7b, 0x09, 0x0c, 0x2c, 0x3a, 0x76, 0x4b, 0x78, 0xc5, 0xdc,
+ 0x42, 0x54, 0x28, 0x16, 0x5c, 0x83, 0x98, 0x81, 0x1b, 0x53, 0x9b, 0x10, 0xf4, 0xee, 0xe9, 0x4c,
+ 0x46, 0x5f, 0x9a, 0x19, 0xcc, 0x5a, 0x52, 0x0e, 0x08, 0x89, 0x2c, 0xe5, 0x72, 0x50, 0x86, 0x29,
+ 0xbb, 0x57, 0x85, 0xec, 0xa8, 0xa2, 0xe9, 0xed, 0x4b, 0x40, 0x60, 0x3d, 0x06, 0x8b, 0x9c, 0x95,
+ 0x2c, 0x45, 0xcc, 0x69, 0x79, 0xaf, 0x02, 0xa0, 0xad, 0xb2, 0xeb, 0x78, 0xf3, 0xb8, 0x4f, 0x01,
+ 0x25, 0x21, 0xa6, 0x04, 0xbe, 0x79, 0x86, 0x2e, 0xff, 0x12, 0x1b, 0xfd, 0xfc, 0xc9, 0xfa, 0x43,
+ 0x2e, 0xa1, 0x95, 0x8f, 0x31, 0x22, 0x67, 0x06, 0x45, 0xdf, 0x51, 0xe3, 0xb0, 0xe7, 0x99, 0xd2,
+ 0x7f, 0x4f, 0xa4, 0x30, 0x04, 0x69, 0xe7, 0x0b, 0x8e, 0xd8, 0xb4, 0x96, 0x9a, 0x25, 0xb2, 0x92,
+ 0xad, 0x94, 0xe3, 0x39, 0x75, 0x14, 0xe8, 0xbd, 0xfc, 0x19, 0xf4, 0x01, 0x9e, 0xd7, 0x5a, 0x74,
+ 0x06, 0xef, 0xeb, 0xe9, 0xd8, 0x54, 0xaf, 0x29, 0xfb, 0xb7, 0x0d, 0x6e, 0xc5, 0xe1, 0xb9, 0xb6,
+ 0x6b, 0x68, 0x9b, 0x03, 0x91, 0x52, 0x83, 0xfd, 0xd1, 0xec, 0x9a, 0x31, 0x41, 0x26, 0xa2, 0xa0,
+ 0x3b, 0xf4, 0x67, 0xcf, 0x80, 0xbe, 0xd0, 0xa3, 0x6e, 0x3c, 0x22, 0xe8, 0xab, 0x2a, 0xe2, 0x68,
+ 0x6a, 0x1a, 0x56, 0x70, 0xb5, 0xf5, 0x50, 0xae, 0xa5, 0x3b, 0xc7, 0x9d, 0x81, 0xe8, 0xc9, 0x28,
+ 0x7e, 0x3d, 0x69, 0x43, 0x20, 0xce, 0x34, 0x58, 0xfa, 0x0f, 0xe9, 0x3a, 0x5a, 0xeb, 0xd9, 0x1a,
+ 0x3c, 0x69, 0x41, 0x55, 0x7c, 0x4d, 0xac, 0xd9, 0xe1, 0x5c, 0x72, 0x2a, 0xae, 0x05, 0x30, 0x56,
+ 0x84, 0xa8, 0x50, 0x2c, 0xb8, 0xc5, 0xf3, 0xc1, 0x36, 0xa6, 0xf5, 0x20, 0x2b, 0x1f, 0x11, 0x98,
+ 0x67, 0x75, 0x8e, 0x12, 0xe2, 0xfa, 0x1e, 0xaf, 0xe4, 0x41, 0x80, 0xed, 0x08, 0x27, 0x13, 0x0f,
+ 0xb6, 0x38, 0x5d, 0x8e, 0xff, 0xad, 0xa7, 0xec, 0x0a, 0x3a, 0x27, 0x4d, 0x8f, 0x44, 0x46, 0xb2,
+ 0x16, 0xc3, 0x66, 0xd5, 0xdd, 0xb6, 0x01, 0x50, 0xb7, 0x59, 0x94, 0x3c, 0x98, 0x5c, 0xc6, 0xe1,
+ 0x88, 0xb5, 0x45, 0x3d, 0xcb, 0x6d, 0x6e, 0x93, 0x03, 0x0b, 0xef, 0xfc, 0x62, 0x1e, 0xa0, 0x37,
+ 0x58, 0x8a, 0x5b, 0xd2, 0xf2, 0x9d, 0x04, 0x83, 0x99, 0xa7, 0x15, 0xf0, 0x25, 0xb3, 0x9e, 0x02,
+ 0xbc, 0xca, 0xa3, 0x76, 0x54, 0x51, 0x95, 0x97, 0xc4, 0x20, 0x30, 0xff, 0x03, 0xa4, 0x4e, 0xab,
+ 0xde, 0xc6, 0x52, 0x18, 0x02, 0xd5, 0x92, 0xe4, 0x47, 0x6c, 0x5a, 0x4b, 0x4d, 0xf3, 0x59, 0x49,
+ 0xc2, 0xf7, 0xca, 0x35, 0x74, 0x9f, 0xa1, 0xcf, 0x3e, 0x2f, 0xd9, 0xc5, 0x59, 0x4f, 0x97, 0xb1,
+ 0x4e, 0x49, 0x3d, 0x07, 0x2f, 0x2b, 0x05, 0xd3, 0x2e, 0xfe, 0x81, 0xcc, 0xbd, 0xef, 0x58, 0xe3,
+ 0x3f, 0xff, 0xd5, 0xc0, 0x10, 0x67, 0x1a, 0x2c, 0x7d, 0xe6, 0x95, 0x1d, 0x2d, 0x94, 0x8d, 0x0d,
+ 0x0e, 0xf9, 0x4c, 0xf7, 0x3b, 0x25, 0xf8, 0xf4, 0xdd, 0xc0, 0xa0, 0x47, 0x0a, 0x5e, 0x67, 0x7c,
+ 0x1f, 0xa7, 0x0c, 0xb8, 0x1a, 0x60, 0x85, 0xde, 0xe5, 0xf9, 0x64, 0xb9, 0x97, 0x2d, 0x73, 0xa3,
+ 0x99, 0xeb, 0x05, 0x72, 0xea, 0x28, 0x13, 0xb9, 0x3b, 0x32, 0x2b, 0x02, 0xff, 0x6d, 0xb4, 0xe8,
+ 0x0c, 0x1d, 0x15, 0x11, 0x73, 0xa8, 0x9d, 0x52, 0x35, 0xad, 0x1a, 0xdc, 0x49, 0x01, 0xb1, 0xaf,
+ 0x70, 0xc4, 0x25, 0xb4, 0x1b, 0xeb, 0xcc, 0xac, 0x27, 0xcf, 0x49, 0x7d, 0x50, 0xb5, 0xbe, 0x66,
+ 0x44, 0xbb, 0xc3, 0xff, 0x84, 0xd7, 0x37, 0xa8, 0xe0, 0xe4, 0x96, 0x7e, 0x31, 0x0f, 0x50, 0xfa,
+ 0x2d, 0x37, 0x01, 0x1a, 0x5d, 0x08, 0xd1, 0xf3, 0xd9, 0x65, 0xb6, 0xd4, 0x33, 0x76, 0x24, 0x89,
+ 0x5f, 0x17, 0x7d, 0x48, 0x0e, 0x6e, 0x78, 0xf9, 0x16, 0xc7, 0x45, 0x32, 0x20, 0x9c, 0x4c, 0x3c,
+ 0x78, 0xd2, 0x82, 0xaa, 0xf8, 0x9a, 0x9b, 0x71, 0x01, 0xb8, 0xe4, 0x54, 0x9f, 0x0a, 0x60, 0xac,
+ 0xcb, 0x93, 0xa0, 0x58, 0xb3, 0x49, 0x25, 0x41, 0x6c, 0x8f, 0x29, 0x40, 0x56, 0x3e, 0x22, 0xf3,
+ 0xd5, 0x46, 0x61, 0x93, 0x8d, 0x8e, 0x73, 0xcc, 0xfd, 0xa1, 0x10, 0x55, 0x01, 0xdd, 0x3a, 0xd8,
+ 0x73, 0x52, 0xb1, 0x21, 0x77, 0xc1, 0x7a, 0x59, 0xbb, 0x75, 0xae, 0x4a, 0xd3, 0x24, 0x03, 0x3d,
+ 0x5c, 0x81, 0xe9, 0xdd, 0x62, 0x44, 0xce, 0x0c, 0x8a, 0x7d, 0xa2, 0x05, 0xa3, 0x0d, 0xf1, 0x67,
+ 0xfe, 0x9e, 0x8b, 0x60, 0x08, 0xd2, 0x0d, 0x16, 0xdf, 0x73, 0xab, 0xef, 0xf7, 0x4a, 0xa7, 0xe7,
+ 0x6f, 0x63, 0x29, 0x0c, 0x01, 0x8b, 0x49, 0x72, 0xc2, 0x36, 0x2d, 0xc4, 0xc7, 0x98, 0xcd, 0xc5,
+ 0x1a, 0xde, 0x73, 0xc4, 0xae, 0x1e, 0x9c, 0x02, 0x82, 0xf4, 0x8e, 0xe0, 0xd1, 0x5d, 0x77, 0x4e,
+ 0x07, 0x9d, 0x26, 0x9a, 0xfc, 0xf3, 0x7c, 0x7a, 0x8f, 0x60, 0x50, 0xc2, 0x05, 0x2f, 0xd2, 0x3e,
+ 0xee, 0xb2, 0x06, 0x5c, 0x0d, 0x30, 0xa3, 0x6f, 0x93, 0x9d, 0x32, 0xbd, 0xaa, 0xf7, 0xd8, 0xb0,
+ 0xea, 0xb9, 0xb4, 0x53, 0x9d, 0xe9, 0x69, 0xe0, 0x80, 0x47, 0x85, 0x48, 0x2c, 0x49, 0xb7, 0xd5,
+ 0xc8, 0x05, 0x34, 0xcd, 0xdf, 0x63, 0x93, 0xb4, 0xf0, 0x35, 0xce, 0x77, 0xd5, 0xaf, 0x9f, 0xa8,
+ 0x8c, 0xbe, 0xf7, 0x32, 0x5b, 0xb4, 0xa4, 0x1c, 0x10, 0xd1, 0x58, 0x09, 0xe4, 0xa0, 0xcf, 0x52,
+ 0xb5, 0xae, 0xc9, 0x1b, 0x93, 0x87, 0x11, 0x19, 0x96, 0x80, 0xc0, 0x7a, 0x0c, 0xd5, 0xfb, 0xe9,
+ 0x38, 0x62, 0xf3, 0x5a, 0xec, 0x94, 0x66, 0x56, 0xf2, 0x86, 0xc5, 0xdf, 0x28, 0xbb, 0x5f, 0x33,
+ 0x59, 0xf8, 0x96, 0xa1, 0xd6, 0x3a, 0xd7, 0xd0, 0xed, 0x70, 0x48, 0x5c, 0xe5, 0x7d, 0xf5, 0x8a,
+ 0x69, 0x8c, 0xc2, 0xe5, 0xd9, 0xdf, 0xe6, 0x5b, 0x39, 0x81, 0x20, 0xaa, 0x02, 0x79, 0x74, 0x73,
+ 0x10, 0x2c, 0x8d, 0x3c, 0x05, 0xe2, 0xae, 0x79, 0x4c, 0xee, 0x99, 0x52, 0x5d, 0xbd, 0x7f, 0x57,
+ 0xf0, 0x67, 0xc7, 0x97, 0x33, 0xf7, 0xf5, 0xe2, 0x02, 0xb3, 0x0b, 0xa8, 0xfd, 0x14, 0xc0, 0x9b,
+ 0xa3, 0x6d, 0xaf, 0xce, 0x4e, 0x31, 0x10, 0x49, 0x21, 0xd9, 0x54, 0x46, 0x94, 0x89, 0x3d, 0x08,
+ 0x09, 0x64, 0x6a, 0x6d, 0xc7, 0xd6, 0x84, 0x8e, 0x52, 0xa0, 0xf0, 0x85, 0x0f, 0x71, 0xb5, 0x42,
+ 0x0d, 0x6f, 0xd8, 0x62, 0x57, 0x0f, 0x4e, 0x01, 0x41, 0x7a, 0x47, 0x70, 0x89, 0xcf, 0xda, 0x27,
+ 0xfd, 0x08, 0x1f, 0xf5, 0x64, 0xf8, 0xbb, 0xe3, 0x43, 0xc9, 0x4c, 0xd8, 0x74, 0xdb, 0x1a, 0xbc,
+ 0x1b, 0xac, 0xbe, 0xb7, 0x8a, 0xb9, 0x4f, 0x51, 0xf6, 0x23, 0xd3, 0x4c, 0x11, 0x93, 0x1c, 0xc6,
+ 0x27, 0xc5, 0xff, 0xe2, 0xf6, 0xf4, 0xe3, 0x88, 0x17, 0x7f, 0xa1, 0x66, 0xbf, 0x96, 0x2c, 0x90,
+ 0x8d, 0xcc, 0x3a, 0x41, 0x7f, 0x13, 0x77, 0x4f, 0x64, 0x06, 0x05, 0xa5, 0x24, 0x6e, 0xa4, 0xda,
+ 0xf2, 0x83, 0x9e, 0x71, 0x7b, 0x7a, 0x90, 0x44, 0xea, 0xde, 0xb1, 0x33, 0xbe, 0x4b, 0x16, 0x48,
+ 0x92, 0x6b, 0x36, 0xf9, 0x65, 0x73, 0xf2, 0x91, 0x81, 0xff, 0x61, 0x1c, 0xb3, 0x43, 0xd7, 0x79,
+ 0x6d, 0x87, 0x70, 0xea, 0x49, 0x06, 0x2c, 0xd4, 0x2a, 0x5b, 0x97, 0x5f, 0x84, 0xc7, 0x1b, 0x16,
+ 0x5d, 0xf3, 0x24, 0xae, 0x46, 0xe3, 0x1d, 0x5f, 0xfe, 0xaa, 0xff, 0xa9, 0x63, 0xc3, 0x9a, 0xef,
+ 0xf1, 0x15, 0x0a, 0xe4, 0x17, 0x50, 0x26, 0xb1, 0x76, 0x64, 0x56, 0x04, 0x3d, 0xda, 0xab, 0x13,
+ 0x21, 0x2a, 0x14, 0x0b, 0x2e, 0xa0, 0x4c, 0xa1, 0xec, 0xc8, 0xac, 0x08, 0x7a, 0x77, 0x95, 0x26,
+ 0x37, 0xe9, 0x72, 0xde, 0xf3, 0x16, 0x4d, 0xf1, 0x5b, 0x91, 0x38, 0x34, 0xe2, 0x2b, 0x53, 0xc7,
+ 0x40, 0xb0, 0x71, 0xf0, 0x14, 0x0e, 0xfd, 0x27, 0xf3, 0x3e, 0x21, 0x8b, 0xb7, 0xb1, 0x3f, 0x9f,
+ 0x8e, 0x5a, 0xae, 0xd4, 0x13, 0x39, 0xc1, 0xba, 0xf8, 0xbc, 0xe2, 0x92, 0xa7, 0xff, 0x19, 0x81,
+ 0xe8, 0x5d, 0xed, 0xb5, 0xd5, 0x64, 0x0c, 0x46, 0x68, 0x2a, 0x3f, 0xd3, 0x6f, 0x16, 0x61, 0x06,
+ 0xe4, 0x40, 0xf8, 0xa4, 0xa6, 0xcc, 0x91, 0x14, 0x5d, 0x87, 0x25, 0x0f, 0x26, 0x17, 0xd0, 0xa9,
+ 0xec, 0x56, 0x5f, 0xba, 0x45, 0xbd, 0xc6, 0xc9, 0x7b, 0xf0, 0x88, 0x26, 0xe9, 0xa8, 0x0e, 0x63,
+ 0x9e, 0x76, 0x23, 0xe8, 0x16, 0xdb, 0x6f, 0xc3, 0xb4, 0x52, 0x7b, 0xc0, 0xfa, 0x42, 0x66, 0xd6,
+ 0x9c, 0x92, 0x7a, 0x0e, 0x5e, 0x56, 0x0a, 0x65, 0x5c, 0x3f, 0xc1, 0x5b, 0xb9, 0x1d, 0xb0, 0x05,
+ 0xd1, 0x4d, 0xd3, 0x9c, 0x1d, 0x57, 0xb9, 0x43, 0xee, 0x7b, 0xa7, 0xa0, 0x87, 0x63, 0x55, 0xbd,
+ 0xe7, 0xd6, 0x6c, 0x31, 0xca, 0xe6, 0x27, 0xe1, 0xc1, 0x3d, 0xc2, 0x38, 0xa5, 0x86, 0x6d, 0xf2,
+ 0xb8, 0xc1, 0x11, 0x79, 0xc4, 0x88, 0x5f, 0x18, 0xd7, 0xfa, 0x87, 0x0a, 0x85, 0x1a, 0x21, 0xce,
+ 0x2f, 0xd3, 0x58, 0xfc, 0x15, 0x85, 0xb4, 0x55, 0x31, 0x08, 0x0c, 0x4f, 0x70, 0x29, 0xf2, 0x5a,
+ 0xe2, 0xaf, 0x13, 0x4d, 0x7e, 0x98, 0x3e, 0x3d, 0xa6, 0x30, 0x28, 0x61, 0xe3, 0xf6, 0x69, 0x1f,
+ 0x8a, 0x51, 0x1c, 0xdb, 0x83, 0xe0, 0x0b, 0x35, 0xeb, 0x66, 0x55, 0x67, 0x21, 0x41, 0x76, 0xe4,
+ 0xd7, 0xa2, 0x38, 0x75, 0xc5, 0x03, 0x16, 0x6a, 0x15, 0xcc, 0xaa, 0xce, 0x42, 0x82, 0xec, 0x0b,
+ 0xb4, 0xdc, 0x04, 0x68, 0xb7, 0x20, 0xc2, 0x4a, 0xe2, 0x57, 0x9d, 0xd6, 0xcc, 0x1b, 0x90, 0x61,
+ 0x29, 0x3c, 0xb3, 0x15, 0xcd, 0xd1, 0x1b, 0x7c, 0xca, 0xbf, 0x01, 0x21, 0xb5, 0xc8, 0x4b, 0xec,
+ 0x13, 0xba, 0x19, 0xa9, 0x69, 0xc8, 0x18, 0x8c, 0xd0, 0x54, 0x7e, 0x65, 0xde, 0x2c, 0xc2, 0x0c,
+ 0x98, 0x99, 0xc8, 0x01, 0xce, 0x8f, 0xc0, 0xea, 0x4f, 0xe5, 0x76, 0xae, 0x3f, 0xa3, 0xdf, 0x60,
+ 0x80, 0xa3, 0xe2, 0x23, 0x28, 0x1c, 0x39, 0x4e, 0x25, 0x7c, 0x42, 0xd5, 0xad, 0xa1, 0x7e, 0xfd,
+ 0xa6, 0x14, 0xd0, 0xb2, 0xfa, 0x4f, 0x09, 0x95, 0x46, 0xd4, 0xbe, 0x1f, 0xd2, 0xf9, 0x39, 0xe5,
+ 0x62, 0x0c, 0xf1, 0x6e, 0x56, 0x84, 0x07, 0x73, 0x83, 0x4c, 0x6a, 0xb4, 0x4e, 0x57, 0x17, 0xe2,
+ 0xb3, 0x41, 0x22, 0xf2, 0x4b, 0xd3, 0xbe, 0x30, 0x6d, 0x37, 0xcd, 0x14, 0xc9, 0x34, 0x42, 0x5f,
+ 0x5e, 0x65, 0xb0, 0x3b, 0x2a, 0xc9, 0xab, 0xaa, 0x62, 0x10, 0x18, 0x9e, 0xe0, 0x52, 0x27, 0xb4,
+ 0x72, 0x20, 0x7c, 0x52, 0x53, 0x66, 0xa9, 0x0a, 0xcf, 0xa2, 0xf3, 0xe6, 0x13, 0xea, 0x68, 0xb5,
+ 0x43, 0x26, 0xe5, 0x65, 0x78, 0x24, 0x4b, 0xd2, 0x6f, 0x84, 0xc6, 0xbc, 0x34, 0x20, 0x82, 0xc4,
+ 0x34, 0x7f, 0xe6, 0x4b, 0x9f, 0x3c, 0xfb, 0x04, 0xc7, 0x2b, 0xdf, 0x03, 0x61, 0xba, 0xee, 0x9c,
+ 0x35, 0x0d, 0x2b, 0x38, 0xbb, 0x9b, 0x28, 0x57, 0xb3, 0xfc, 0x82, 0xaf, 0xa1, 0x74, 0x85, 0x14,
+ 0x52, 0x78, 0xa5, 0x2a, 0x59, 0x61, 0x36, 0xf8, 0x57, 0xbd, 0x02, 0x42, 0xa9, 0x53, 0x96, 0x1b,
+ 0x26, 0xb7, 0x32, 0x91, 0xd2, 0x53, 0x30, 0xdb, 0x63, 0xa8, 0xfc, 0xca, 0x7f, 0x58, 0x47, 0x18,
+ 0x7d, 0xab, 0xfd, 0xd6, 0x4c, 0xe4, 0x82, 0xad, 0x66, 0xb5, 0x0e, 0x0d, 0xd9, 0x7a, 0x64, 0x41,
+ 0xb7, 0x4a, 0x90, 0xfd, 0xdb, 0x0a, 0x74, 0xbf, 0x7e, 0xed, 0x7a, 0xe1, 0x4f, 0x8a, 0x2d, 0x3a,
+ 0x0a, 0xf2, 0xfe, 0xf8, 0xab, 0xfc, 0x32, 0x7b, 0xce, 0x1a, 0x17, 0xb2, 0x8c, 0xe0, 0x08, 0x19,
+ 0x45, 0xc9, 0x0e, 0x8c, 0xa0, 0x70, 0xe4, 0xfb, 0x94, 0x33, 0xcb, 0xd2, 0xf1, 0xc1, 0x3b, 0x72,
+ 0x81, 0xd1, 0x2f, 0x50, 0x0c, 0xbb, 0xea, 0x1d, 0x51, 0xab, 0x1f, 0x79, 0x6d, 0x6f, 0x15, 0x75,
+ 0x6e, 0x11, 0xe4, 0x7f, 0x25, 0x2c, 0x9a, 0x21, 0xb6, 0xe1, 0x70, 0x68, 0x07, 0x56, 0xa6, 0x4d,
+ 0x53, 0x0a, 0x68, 0x59, 0x7d, 0xc6, 0xe5, 0xab, 0x23, 0x6a, 0x5f, 0xee, 0x69, 0x9d, 0xfd, 0x93,
+ 0x4a, 0x42, 0x8f, 0x08, 0xbf, 0xf2, 0xcf, 0x5c, 0x3d, 0x24, 0x36, 0x39, 0x3b, 0x51, 0x37, 0x86,
+ 0x79, 0xa0, 0x4f, 0xd9, 0xdc, 0x3d, 0x48, 0x22, 0x75, 0x6f, 0xb9, 0xf8, 0x5f, 0xc4, 0x0b, 0x24,
+ 0x32, 0x90, 0x0d, 0xa2, 0x47, 0x68, 0x54, 0x2d, 0x3c, 0x9c, 0xd2, 0x6d, 0xa4, 0x5b, 0x57, 0x2a,
+ 0x61, 0x9a, 0x65, 0xfb, 0x3a, 0xae, 0xb1, 0x86, 0x1f, 0xf6, 0x8d, 0x83, 0xcd, 0xc6, 0xaa, 0xb9,
+ 0xfb, 0xe7, 0xf4, 0x1c, 0xbc, 0xac, 0x14, 0xca, 0xb8, 0x7e, 0x41, 0xb6, 0xb1, 0x3a, 0xa3, 0x0a,
+ 0x39, 0x10, 0x3e, 0x29, 0xc8, 0x33, 0xb5, 0x05, 0x86, 0x51, 0x98, 0x73, 0xe8, 0x75, 0x34, 0xbb,
+ 0xc0, 0x13, 0x93, 0xd3, 0x3c, 0x12, 0xc4, 0x69, 0xd6, 0x42, 0x63, 0x5e, 0x1a, 0x10, 0x41, 0x62,
+ 0xfa, 0x95, 0x39, 0x6f, 0x98, 0x0b, 0xc7, 0x99, 0xcc, 0xa9, 0x1c, 0x1a, 0x71, 0xf4, 0xc8, 0x82,
+ 0x5b, 0x1c, 0xcf, 0x47, 0x9e, 0xb7, 0xb2, 0x76, 0x05, 0x1d, 0xf2, 0xc7, 0xa6, 0x22, 0x23, 0x59,
+ 0xa4, 0xf0, 0x89, 0x54, 0xb2, 0xc2, 0x6c, 0x33, 0xae, 0xb9, 0x04, 0x84, 0x91, 0xa6, 0xef, 0x36,
+ 0xba, 0x25, 0x48, 0x9f, 0x8c, 0x05, 0x3a, 0xbe, 0x3f, 0x97, 0x3d, 0x91, 0xc6, 0x45, 0xf7, 0x1d,
+ 0xda, 0xcd, 0xe0, 0x17, 0x92, 0x0c, 0x58, 0x6b, 0x54, 0xb6, 0xed, 0xbe, 0xcb, 0x4d, 0x36, 0x2c,
+ 0x4c, 0xad, 0x64, 0xe1, 0x67, 0xa6, 0x60, 0x75, 0xc6, 0x93, 0x3b, 0x57, 0xfe, 0xb0, 0x8e, 0x30,
+ 0x05, 0x79, 0x7f, 0x7c, 0xb4, 0x7e, 0x19, 0xdc, 0x67, 0x0d, 0xea, 0x59, 0x46, 0x70, 0x04, 0xed,
+ 0xc3, 0x85, 0x07, 0x46, 0x50, 0x38, 0x72, 0x9c, 0x4a, 0xf8, 0x84, 0x69, 0x99, 0x81, 0xfc, 0x39,
+ 0x3a, 0x86, 0xaa, 0xbc, 0xa4, 0x19, 0x03, 0xf0, 0x1a, 0xeb, 0x7f, 0x44, 0x6b, 0xe4, 0x89, 0xe0,
+ 0x82, 0x47, 0xbb, 0xc5, 0x60, 0x91, 0x5c, 0xe8, 0xcd, 0x11, 0xf8, 0x4e, 0xee, 0xfe, 0xa8, 0x2e,
+ 0x18, 0x3a, 0x2a, 0x22, 0xe6, 0x93, 0xf9, 0xa4, 0x6a, 0x99, 0x34, 0x7b, 0x92, 0x02, 0xa1, 0x9d,
+ 0xc9, 0x77, 0xf9, 0xbe, 0xfb, 0xc4, 0x40, 0xe7, 0x84, 0xe2, 0x93, 0xdb, 0x15, 0x61, 0xf4, 0x20,
+ 0x68, 0xfe, 0x0f, 0x96, 0xfd, 0x78, 0x35, 0x08, 0x4d, 0x56, 0x7d, 0x06, 0xc2, 0xb7, 0x1f, 0xfb,
+ 0xf6, 0x88, 0x2c, 0x7e, 0xeb, 0xa3, 0x5a, 0xcb, 0xf9, 0x04, 0x06, 0xc6, 0x38, 0xf5, 0x79, 0x2d,
+ 0x63, 0x7e, 0x3c, 0x1d, 0x72, 0x23, 0xd4, 0x20, 0xf7, 0x9b, 0x37, 0x18, 0x8e, 0x99, 0x7c, 0x6a,
+ 0x87, 0x3e, 0xc4, 0xb9, 0xd4, 0xef, 0x45, 0x34, 0xaa, 0x1c, 0x12, 0x17, 0xa8, 0x8e, 0xac, 0xc3,
+ 0x49, 0xd4, 0x1b, 0x9d, 0xd3, 0xd8, 0x79, 0xa9, 0xa1, 0x9e, 0xd1, 0x0e, 0xb8, 0xc0, 0x8a, 0xdd,
+ 0x36, 0x9b, 0xbf, 0xad, 0xd7, 0xb1, 0x9e, 0xa2, 0x2f, 0x46, 0x65, 0x98, 0x22, 0xe5, 0x38, 0x4f,
+ 0x91, 0xfd, 0xa2, 0x6c, 0x09, 0x59, 0x44, 0x64, 0x1d, 0x45, 0x86, 0x2b, 0x30, 0xd2, 0x6a, 0x22,
+ 0x97, 0x12, 0x49, 0x85, 0xd1, 0x0d, 0xeb, 0x4d, 0xe6, 0xf2, 0x8b, 0x45, 0xf5, 0x33, 0xd3, 0x94,
+ 0x33, 0xe2, 0xc0, 0xd1, 0x63, 0xcf, 0x87, 0x7e, 0x48, 0x4b, 0x8f, 0xc1, 0x64, 0x95, 0x3c, 0xa2,
+ 0x08, 0x16, 0xa7, 0x1e, 0xe3, 0x71, 0x57, 0xdd, 0x26, 0x77, 0xad, 0x29, 0xcf, 0xbf, 0xde, 0xca,
+ 0x7c, 0xd9, 0x30, 0xa5, 0x68, 0x43, 0x51, 0xfe, 0x12, 0x62, 0x53, 0xa1, 0x19, 0xb4, 0x0f, 0xc9,
+ 0x02, 0xe4, 0x59, 0xe6, 0x48, 0x8d, 0x65, 0xa6, 0xe8, 0x6d, 0xba, 0x9b, 0x43, 0x5f, 0xd6, 0xd3,
+ 0x77, 0x59, 0x03, 0x2e, 0xe7, 0x18, 0xb0, 0xd6, 0xa8, 0xaf, 0x19, 0xbf, 0x55, 0x9a, 0x6c, 0x58,
+ 0x85, 0xda, 0x9d, 0x5f, 0x9c, 0x62, 0x20, 0x92, 0x42, 0x71, 0xa8, 0x8c, 0xeb, 0xd1, 0x7a, 0x10,
+ 0x66, 0x07, 0x43, 0x61, 0xc6, 0x5d, 0xcd, 0xfc, 0x90, 0x96, 0xdd, 0x41, 0xc8, 0xe9, 0x78, 0x87,
+ 0x41, 0xc2, 0xbc, 0x83, 0x30, 0xa9, 0x2e, 0x74, 0x87, 0xe9, 0x7c, 0x27, 0x77, 0x7f, 0x54, 0x17,
+ 0x30, 0x74, 0x54, 0x44, 0x0f, 0xe5, 0x31, 0x8b, 0xd4, 0xf1, 0x68, 0xf6, 0xe7, 0x04, 0x81, 0xf9,
+ 0xcd, 0x7c, 0x4b, 0xb1, 0x6b, 0x1d, 0x8a, 0x68, 0x97, 0x38, 0x24, 0x2e, 0x93, 0xdf, 0x9b, 0x45,
+ 0xd0, 0x3f, 0x1e, 0xef, 0x39, 0xf0, 0x6a, 0x10, 0x9a, 0xac, 0xfa, 0x0c, 0x47, 0xad, 0x3e, 0x35,
+ 0xd9, 0x5b, 0x74, 0x82, 0xfe, 0x26, 0xee, 0x9e, 0xc8, 0x0c, 0x0a, 0x89, 0x48, 0xdc, 0x8b, 0x77,
+ 0xa9, 0x9f, 0x51, 0x36, 0xe5, 0xcd, 0x22, 0x32, 0xef, 0xc3, 0x43, 0xf4, 0x18, 0x69, 0x35, 0x11,
+ 0xaa, 0x09, 0xc5, 0xa3, 0x89, 0xe7, 0x94, 0xc7, 0x73, 0x79, 0xa4, 0xc3, 0x9b, 0xf8, 0x88, 0x4a,
+ 0xc5, 0x6a, 0xec, 0xaf, 0x88, 0x6c, 0xdd, 0xb5, 0xb1, 0x4f, 0x89, 0x07, 0x5c, 0x60, 0x45, 0x8f,
+ 0x60, 0xe8, 0xa8, 0x88, 0x1e, 0x09, 0x62, 0xd5, 0x6b, 0x21, 0xd0, 0x2f, 0x0d, 0x08, 0xc1, 0x31,
+ 0xf8, 0x71, 0x60, 0x89, 0xd0, 0x86, 0xa2, 0x3f, 0x24, 0xc4, 0xa6, 0x81, 0x32, 0xab, 0x1e, 0x51,
+ 0x04, 0x0b, 0xb2, 0x0f, 0x90, 0xd9, 0xca, 0x8f, 0x13, 0xda, 0xb7, 0xf5, 0x86, 0xbe, 0x6f, 0x65,
+ 0x90, 0x8f, 0x6f, 0x1f, 0x2d, 0xfe, 0x97, 0x37, 0x69, 0x92, 0xdb, 0x87, 0xf0, 0x1c, 0x01, 0xaa,
+ 0xe6, 0xa4, 0xa1, 0x42, 0xee, 0x41, 0xf4, 0xb2, 0xb5, 0xea, 0x9f, 0x94, 0x65, 0x48, 0x06, 0x7a,
+ 0x96, 0x60, 0x84, 0xf6, 0xf5, 0xaa, 0x38, 0x1e, 0x92, 0x25, 0xd6, 0xe9, 0x35, 0xfd, 0xb8, 0x1c,
+ 0xaf, 0x70, 0xba, 0xdf, 0x3d, 0x99, 0x8d, 0x1b, 0x14, 0x74, 0x4e, 0x9a, 0xdd, 0x88, 0x8c, 0xa7,
+ 0xc6, 0xfc, 0x78, 0x3a, 0xe4, 0x46, 0x6b, 0x40, 0x2d, 0xf5, 0x6e, 0x30, 0xdf, 0xf1, 0xf8, 0xd4,
+ 0xa7, 0x66, 0x1d, 0xc1, 0xde, 0xe8, 0xda, 0xc6, 0x32, 0x03, 0xe3, 0xb3, 0x12, 0x37, 0x52, 0x6d,
+ 0xa1, 0x89, 0xf6, 0x28, 0x06, 0xbc, 0x75, 0xef, 0xc9, 0xb4, 0xee, 0xdd, 0xd7, 0xd6, 0xeb, 0xdb,
+ 0xd8, 0x29, 0xb9, 0xf1, 0xda, 0x81, 0x3d, 0xcd, 0xbc, 0xdb, 0x57, 0x25, 0x88, 0x12, 0xe0, 0xff,
+ 0x1e, 0xd5, 0xc1, 0xcb, 0x3e, 0xc7, 0x56, 0x8d, 0x91, 0x2e, 0x39, 0x15, 0x57, 0xe3, 0x18, 0x2b,
+ 0x4d, 0xdf, 0xa9, 0x92, 0x43, 0x01, 0xb3, 0x26, 0xb2, 0x44, 0x66, 0xfb, 0x3e, 0x7e, 0xe5, 0xb8,
+ 0x64, 0xe3, 0x1a, 0x87, 0x8e, 0xd0, 0xa8, 0x5a, 0x78, 0xfb, 0x67, 0xda, 0x8b, 0xb6, 0xae, 0x54,
+ 0x9a, 0x7d, 0x91, 0xe7, 0x86, 0x02, 0xa5, 0x4c, 0xa7, 0x88, 0xcc, 0x35, 0x7c, 0xfc, 0x09, 0xb3,
+ 0xe3, 0xdd, 0xde, 0x3e, 0x5a, 0x3f, 0xed, 0x6e, 0xd2, 0xe7, 0x75, 0xcd, 0x23, 0x38, 0x02, 0x97,
+ 0xf9, 0x03, 0xad, 0xfa, 0xf4, 0x21, 0x71, 0x6c, 0x50, 0x13, 0xfb, 0x2d, 0xf2, 0x65, 0x75, 0xd9,
+ 0xf7, 0xfa, 0xe1, 0x0d, 0xcf, 0x04, 0x89, 0x98, 0x8d, 0xd3, 0x5b, 0x6a, 0xf8, 0x3b, 0x12, 0xa5,
+ 0x19, 0x48, 0xe7, 0x51, 0xc2, 0x34, 0x2a, 0xf7, 0x1e, 0x4e, 0x69, 0xd7, 0x52, 0xcc, 0xca, 0x15,
+ 0x83, 0x35, 0x76, 0xb6, 0x44, 0x36, 0x8f, 0xbb, 0xb9, 0xc6, 0xa5, 0xe2, 0x2e, 0x30, 0xc3, 0xa6,
+ 0x4b, 0x30, 0x42, 0x7b, 0x9b, 0x55, 0x1c, 0x0f, 0x49, 0xf3, 0x6b, 0x95, 0xfb, 0x9f, 0x5c, 0x0e,
+ 0x4f, 0x3b, 0xf0, 0x74, 0x0b, 0x8c, 0xd6, 0x80, 0x5a, 0x29, 0xdc, 0x60, 0x7d, 0x21, 0x33, 0x6b,
+ 0x7b, 0x44, 0x16, 0x3f, 0x94, 0xb0, 0x2d, 0x84, 0x9d, 0x02, 0x03, 0x63, 0x1c, 0x9b, 0xdd, 0xf7,
+ 0xef, 0xc0, 0xcb, 0x2f, 0x29, 0x97, 0x70, 0x3c, 0xe7, 0x4a, 0x6f, 0x11, 0x6a, 0x39, 0xb3, 0x38,
+ 0x9d, 0xe0, 0xb7, 0x7d, 0x7a, 0xf1, 0xd9, 0x36, 0x28, 0xe8, 0x9c, 0xf7, 0x79, 0xd3, 0xdb, 0x8d,
+ 0x74, 0xcf, 0x97, 0xbb, 0x8b, 0x32, 0x06, 0x23, 0x34, 0x15, 0xfe, 0x88, 0xd6, 0x0b, 0xd1, 0x03,
+ 0xc7, 0x8e, 0xb5, 0x49, 0xc0, 0xe1, 0xb8, 0x13, 0x59, 0x22, 0x33, 0x9c, 0x1f, 0x3f, 0x93, 0x5c,
+ 0xca, 0xe1, 0x6d, 0x2b, 0x97, 0xee, 0xf6, 0x12, 0x18, 0x58, 0x74, 0xec, 0x96, 0xf0, 0x49, 0x7b,
+ 0x6c, 0xf5, 0xbd, 0x99, 0x6d, 0xa1, 0xff, 0x87, 0x5e, 0x8c, 0xca, 0xf3, 0x44, 0x09, 0x70, 0x9e,
+ 0xf3, 0xf1, 0x53, 0x02, 0x5f, 0xdd, 0x43, 0x17, 0x9e, 0x09, 0xec, 0x9f, 0x7e, 0x85, 0x7d, 0xc0,
+ 0x31, 0x06, 0x99, 0x37, 0x2b, 0x42, 0xe2, 0xd8, 0xa0, 0x26, 0x35, 0x5a, 0x27, 0xca, 0xea, 0x71,
+ 0x3e, 0x8d, 0x18, 0xb3, 0x34, 0xc0, 0xc9, 0x7f, 0x09, 0x31, 0xc8, 0xb1, 0xed, 0x5a, 0xe6, 0x85,
+ 0x01, 0x72, 0xcd, 0x73, 0x24, 0xa7, 0xd3, 0x53, 0x74, 0xd7, 0x5d, 0xac, 0xc0, 0xce, 0x6b, 0x88,
+ 0xdb, 0xbf, 0x2d, 0x64, 0xb6, 0xab, 0x8b, 0x38, 0x20, 0x61, 0xb0, 0x12, 0x0b, 0x83, 0x5d, 0xa4,
+ 0xc4, 0x18, 0x21, 0xdc, 0xac, 0xcb, 0x0e, 0xe6, 0xc5, 0x98, 0xd4, 0xab, 0x9c, 0xae, 0x2e, 0x07,
+ 0xe1, 0x39, 0x87, 0xd8, 0x12, 0xb2, 0x88, 0xc8, 0x3a, 0x8a, 0xcf, 0x56, 0x60, 0x67, 0xd4, 0x44,
+ 0xed, 0x24, 0x92, 0xc9, 0x61, 0x1a, 0x15, 0x9a, 0x0f, 0x27, 0xd5, 0x8a, 0x29, 0x66, 0x65, 0xeb,
+ 0xe0, 0x4b, 0x4a, 0xab, 0x36, 0x15, 0x5b, 0x9b, 0x4e, 0x5d, 0x92, 0xfa, 0xa0, 0xa9, 0xbf, 0xcc,
+ 0x14, 0x27, 0x3f, 0x33, 0x95, 0x3b, 0x64, 0xf6, 0x5f, 0x34, 0x2e, 0xa7, 0xdb, 0x03, 0x10, 0x32,
+ 0xdf, 0xb4, 0x9f, 0x6b, 0x26, 0x72, 0x41, 0xb7, 0x33, 0xbb, 0x07, 0xe7, 0x8d, 0x3d, 0x32, 0xc1,
+ 0x50, 0x9c, 0xfc, 0xcc, 0x11, 0xec, 0x53, 0x5e, 0xbf, 0xd0, 0xb8, 0xd9, 0xea, 0x0c, 0x40, 0xc8,
+ 0xbe, 0x2e, 0xfa, 0x90, 0x1c, 0xdc, 0xf0, 0x31, 0x2c, 0x4d, 0x8a, 0x64, 0x40, 0xfb, 0x98, 0x78,
+ 0xab, 0x7b, 0x08, 0xd0, 0xad, 0x40, 0x47, 0x94, 0x07, 0xae, 0xf9, 0x6f, 0x5b, 0x36, 0xe3, 0xc2,
+ 0xae, 0x02, 0x77, 0xac, 0x19, 0x3e, 0x5e, 0x48, 0x60, 0xa3, 0x13, 0x36, 0x1d, 0x46, 0xe7, 0x2f,
+ 0x51, 0xee, 0x31, 0xbf, 0x35, 0x4b, 0x80, 0x0d, 0xcb, 0x07, 0xe5, 0x75, 0x2a, 0xc2, 0x2b, 0x40,
+ 0x12, 0xc8, 0xd4, 0xda, 0x4d, 0x6f, 0xcb, 0xdf, 0xa4, 0x83, 0x23, 0xc9, 0x1e, 0xe2, 0xa9, 0x84,
+ 0x8f, 0x28, 0x63, 0xa7, 0x37, 0x9e, 0x12, 0xe9, 0x8c, 0x6b, 0xbf, 0x3e, 0x67, 0x31, 0x72, 0x09,
+ 0x1d, 0x43, 0x55, 0x5e, 0x52, 0xed, 0xe0, 0x78, 0x0d, 0x94, 0xde, 0x22, 0xd4, 0x72, 0xa5, 0x70,
+ 0xf4, 0x6c, 0x75, 0x98, 0xa3, 0x2e, 0x3f, 0x6d, 0x11, 0x69, 0xbc, 0x5d, 0x7b, 0xaa, 0xaf, 0xfe,
+ 0xd3, 0xa9, 0x8a, 0x7a, 0x55, 0xda, 0xdc, 0xe5, 0x06, 0x16, 0x1d, 0x3b, 0xc4, 0x3c, 0x83, 0x6e,
+ 0xff, 0xec, 0x46, 0x13, 0x2c, 0x75, 0xde, 0x45, 0xab, 0xa4, 0xf6, 0x43, 0x37, 0x84, 0xcc, 0x6f,
+ 0x47, 0x2d, 0x57, 0x6a, 0xe8, 0xfd, 0x81, 0x5d, 0x7c, 0x5e, 0x71, 0x49, 0xb2, 0x9e, 0xed, 0xa1,
+ 0x15, 0x55, 0xf2, 0x40, 0xb1, 0x9c, 0xb7, 0xa5, 0x2b, 0xe3, 0x73, 0x0b, 0x1b, 0xcd, 0x7b, 0xba,
+ 0x8b, 0x23, 0xd1, 0xa8, 0xa7, 0x47, 0xd8, 0x66, 0x9f, 0xb1, 0x08, 0xcb, 0xe1, 0x8f, 0x1d, 0x6c,
+ 0xa0, 0xfb, 0x3b, 0x5b, 0x22, 0x1b, 0xa6, 0xbc, 0xbd, 0x63, 0xb3, 0x71, 0x17, 0x18, 0x80, 0x53,
+ 0xf5, 0x1e, 0xb8, 0xeb, 0x87, 0x89, 0xec, 0x3e, 0x65, 0xbe, 0xe1, 0xf1, 0xbb, 0x64, 0xc4, 0x76,
+ 0x28, 0x4e, 0x7e, 0x66, 0xe9, 0x76, 0xc8, 0x2f, 0xbe, 0x68, 0x5c, 0x8d, 0x75, 0x06, 0x20, 0x64,
+ 0x57, 0x01, 0xda, 0x56, 0xed, 0x1f, 0x2f, 0x24, 0x30, 0xb0, 0xe8, 0x1b, 0xef, 0x23, 0x92, 0xf6,
+ 0xb2, 0x33, 0xef, 0x81, 0x6f, 0x74, 0x6d, 0x63, 0x19, 0xe0, 0x90, 0xb8, 0x09, 0xfa, 0x29, 0xd7,
+ 0x24, 0x53, 0x6b, 0x77, 0x9a, 0xde, 0x55, 0x7d, 0x8b, 0xc5, 0x46, 0x51, 0x3c, 0x07, 0x91, 0xcb,
+ 0xcf, 0x98, 0x12, 0x57, 0x23, 0x90, 0xef, 0xce, 0x7f, 0x55, 0x9e, 0xb5, 0xd0, 0x80, 0x4d, 0x96,
+ 0x89, 0xc7, 0x88, 0x4e, 0xef, 0xca, 0xbd, 0xc0, 0x77, 0xdc, 0xb2, 0x50, 0xa2, 0xd0, 0xcb, 0xbf,
+ 0xdd, 0x50, 0xc6, 0x8d, 0x6e, 0xff, 0x24, 0x11, 0xdb, 0xd6, 0xbd, 0x7c, 0xce, 0x62, 0xe4, 0x12,
+ 0x55, 0xe5, 0x83, 0xb0, 0xa5, 0x92, 0x4a, 0x82, 0xd8, 0xdd, 0x52, 0x80, 0xac, 0x7c, 0x44, 0x25,
+ 0x2b, 0xd8, 0xea, 0xf3, 0x85, 0x5c, 0x7e, 0xda, 0x22, 0xd2, 0xbb, 0xba, 0xf6, 0x97, 0x9d, 0x3f,
+ 0x9b, 0x0f, 0x5c, 0x94, 0xa2, 0xa5, 0x76, 0x1f, 0xd3, 0x5f, 0x91, 0x99, 0xbc, 0x32, 0x62, 0x3b,
+ 0xeb, 0xcb, 0x79, 0x20, 0xb9, 0x4e, 0xba, 0xb3, 0xf4, 0x90, 0xd8, 0xe4, 0xec, 0x87, 0xdc, 0x5d,
+ 0xce, 0xea, 0xdf, 0x24, 0x07, 0x37, 0x3c, 0x9d, 0x0b, 0x82, 0xc3, 0x19, 0x10, 0x4e, 0x26, 0x1e,
+ 0xe5, 0x32, 0x35, 0xd7, 0x82, 0x6b, 0x42, 0x47, 0x29, 0x50, 0x78, 0xa3, 0xe6, 0xd9, 0xbb, 0x21,
+ 0xb1, 0xa5, 0x7b, 0x14, 0x03, 0x5e, 0xdb, 0x96, 0x85, 0x5a, 0x77, 0x8f, 0x8a, 0x6b, 0x94, 0x8c,
+ 0x22, 0xbc, 0x80, 0x9e, 0x42, 0x8a, 0xfa, 0x54, 0x70, 0x72, 0x4b, 0x3f, 0xf9, 0xe6, 0x28, 0x7d,
+ 0xbd, 0xb8, 0x6e, 0x05, 0x70, 0xf6, 0x46, 0xc4, 0xb0, 0xf7, 0x6d, 0x53, 0xc3, 0x6a, 0x25, 0x23,
+ 0xe9, 0x2f, 0x20, 0xc6, 0xf1, 0xc3, 0xdf, 0x15, 0x1c, 0xfd, 0x62, 0x7f, 0xaf, 0xd8, 0x0a, 0x8e,
+ 0x23, 0xce, 0x4d, 0xed, 0x66, 0x2d, 0x29, 0x07, 0x04, 0xa5, 0x16, 0x93, 0x39, 0x28, 0x43, 0xf5,
+ 0x75, 0xbd, 0x5a, 0xc8, 0xaf, 0x95, 0xd5, 0x70, 0x40, 0xc2, 0xa3, 0x24, 0x16, 0xc5, 0xba, 0x8b,
+ 0x9f, 0x04, 0xee, 0x9b, 0x32, 0x7c, 0xbc, 0x90, 0xc0, 0x85, 0x26, 0x6c, 0x3a, 0x8c, 0x0d, 0x5e,
+ 0xa2, 0x1f, 0x62, 0xbd, 0x6a, 0x96, 0xc3, 0x1a, 0x55, 0x0e, 0x09, 0xea, 0x54, 0x47, 0x56, 0x80,
+ 0x0f, 0x8b, 0x81, 0x84, 0x1f, 0x82, 0x2b, 0xa7, 0xa9, 0x17, 0xfd, 0xeb, 0xca, 0x90, 0x0c, 0xf4,
+ 0x54, 0x97, 0x4e, 0xc3, 0x81, 0x35, 0x99, 0xd1, 0xac, 0x0a, 0x0f, 0x2c, 0x6c, 0xb2, 0x2f, 0xad,
+ 0x86, 0x4c, 0x09, 0xca, 0xf0, 0x48, 0x96, 0x67, 0xde, 0xcb, 0x4f, 0xbb, 0x68, 0x40, 0xc7, 0x4b,
+ 0x93, 0x19, 0xfb, 0x8a, 0x41, 0xd4, 0x21, 0xc2, 0xf5, 0x28, 0x3c, 0xb0, 0x73, 0x8d, 0xbc, 0xf1,
+ 0x5a, 0x6e, 0x02, 0x34, 0xba, 0x10, 0x61, 0x25, 0x71, 0xca, 0xaf, 0x6b, 0x66, 0xec, 0x48, 0xd1,
+ 0x3d, 0x1b, 0x8c, 0x26, 0x58, 0xea, 0x7f, 0x8a, 0x95, 0x8b, 0x2f, 0x86, 0x6e, 0xcb, 0x5b, 0xde,
+ 0x94, 0x84, 0xdd, 0x10, 0xbd, 0x27, 0x5d, 0xb8, 0x7a, 0x48, 0x6c, 0x72, 0x76, 0xa2, 0x6e, 0xcf,
+ 0x56, 0x73, 0x17, 0x25, 0xc9, 0xb8, 0xfc, 0x77, 0x44, 0x67, 0xb5, 0xb7, 0x2f, 0xed, 0xf9, 0x7e,
+ 0xbf, 0x5c, 0x37, 0xe3, 0x38, 0x7b, 0x23, 0x62, 0x58, 0x9a, 0xd7, 0xc8, 0x80, 0x35, 0xf3, 0xf0,
+ 0x95, 0xf6, 0x10, 0x63, 0x99, 0x80, 0x8e, 0xeb, 0x0e, 0x9f, 0x31, 0xde, 0xb6, 0x6c, 0x05, 0x47,
+ 0xb9, 0xb3, 0xdc, 0x0a, 0xe0, 0x2f, 0x8c, 0x4b, 0xa3, 0x2d, 0xda, 0xa6, 0x45, 0xd4, 0x4a, 0x46,
+ 0x11, 0x5e, 0x40, 0x4f, 0x21, 0x45, 0x7d, 0x2a, 0x38, 0x39, 0xc4, 0xfe, 0x9d, 0x73, 0x14, 0xdf,
+ 0x0b, 0x80, 0x33, 0x8b, 0x8f, 0x5b, 0xe1, 0x28, 0xba, 0xcd, 0x4a, 0x1e, 0x4c, 0x2e, 0x63, 0x91,
+ 0x71, 0xb6, 0xe8, 0xc7, 0x3f, 0x4c, 0x1f, 0xff, 0x53, 0x18, 0x14, 0xd1, 0x90, 0x7b, 0xd5, 0xee,
+ 0xb0, 0xd7, 0xb6, 0x67, 0x27, 0xf9, 0x08, 0xc5, 0xf1, 0x8d, 0x2a, 0x23, 0x4a, 0xa5, 0xff, 0x04,
+ 0x1c, 0x31, 0x98, 0x2d, 0x76, 0x4a, 0x33, 0x2b, 0x79, 0x43, 0x83, 0x8e, 0x14, 0xbc, 0xce, 0xf8,
+ 0xdc, 0x22, 0x0b, 0xfe, 0x4a, 0x58, 0xf7, 0x42, 0xaf, 0x01, 0xe0, 0xd0, 0x0e, 0xac, 0x8f, 0x9a,
+ 0xa8, 0xed, 0x9c, 0x45, 0xc1, 0x6a, 0xf1, 0x61, 0x9b, 0x14, 0x1e, 0x58, 0xd8, 0xa7, 0x5e, 0x99,
+ 0xc1, 0x61, 0x5e, 0xa0, 0x18, 0xb5, 0x17, 0x3a, 0xa2, 0x95, 0x3e, 0xf2, 0xda, 0xde, 0x2a, 0xea,
+ 0x2a, 0xaa, 0x27, 0x80, 0xa1, 0xfb, 0xad, 0x89, 0x56, 0x05, 0xe6, 0x16, 0x36, 0x59, 0xf6, 0xb7,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xac, 0xe6, 0x2e, 0x4a, 0x51, 0xb3, 0x3b, 0xee, 0x88, 0xce, 0xa9, 0xad, 0x5e, 0x19, 0x31, 0xfc,
+ 0x48, 0xa6, 0xd6, 0xee, 0xf7, 0x7f, 0xaa, 0xfa, 0xd5, 0x49, 0x8c, 0xa2, 0x78, 0x0e, 0xe1, 0x55,
+ 0x7a, 0x36, 0xdb, 0x4c, 0xb0, 0x17, 0xfe, 0xd7, 0xe9, 0xd5, 0x5e, 0xcf, 0xdc, 0x55, 0xb6, 0x7f,
+ },
+};
diff --git a/lib/nettle/gost/magma.c b/lib/nettle/gost/magma.c
new file mode 100644
index 0000000000..60d3e44a8b
--- /dev/null
+++ b/lib/nettle/gost/magma.c
@@ -0,0 +1,92 @@
+/* magma.c - GOST R 34.12-2015 (Magma) cipher implementation
+ *
+ * Copyright: 2017 Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#if HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#ifndef HAVE_NETTLE_MAGMA_SET_KEY
+
+#include <assert.h>
+
+#include <nettle/macros.h>
+#include "nettle-write.h"
+#include "magma.h"
+#ifndef HAVE_NETTLE_GOST28147_SET_KEY
+#include "gost28147.h"
+#else
+#include <nettle/gost28147.h>
+#endif
+
+void
+magma_set_key(struct magma_ctx *ctx, const uint8_t *key)
+{
+ unsigned i;
+
+ for (i = 0; i < 8; i++, key += 4)
+ ctx->key[i] = READ_UINT32(key);
+}
+
+void
+magma_encrypt(const struct magma_ctx *ctx,
+ size_t length, uint8_t *dst,
+ const uint8_t *src)
+{
+ uint32_t block[2];
+
+ assert(!(length % MAGMA_BLOCK_SIZE));
+
+ while (length)
+ {
+ block[1] = READ_UINT32(src); src += 4;
+ block[0] = READ_UINT32(src); src += 4;
+ gost28147_encrypt_simple(ctx->key, gost28147_param_TC26_Z.sbox,
+ block, block);
+ WRITE_UINT32(dst, block[1]); dst += 4;
+ WRITE_UINT32(dst, block[0]); dst += 4;
+ length -= MAGMA_BLOCK_SIZE;
+ }
+}
+
+void
+magma_decrypt(const struct magma_ctx *ctx,
+ size_t length, uint8_t *dst,
+ const uint8_t *src)
+{
+ uint32_t block[2];
+
+ assert(!(length % MAGMA_BLOCK_SIZE));
+
+ while (length)
+ {
+ block[1] = READ_UINT32(src); src += 4;
+ block[0] = READ_UINT32(src); src += 4;
+ gost28147_decrypt_simple(ctx->key, gost28147_param_TC26_Z.sbox,
+ block, block);
+ WRITE_UINT32(dst, block[1]); dst += 4;
+ WRITE_UINT32(dst, block[0]); dst += 4;
+ length -= MAGMA_BLOCK_SIZE;
+ }
+}
+#endif /* HAVE_NETTLE_MAGMA_SET_KEY */
diff --git a/lib/nettle/gost/magma.h b/lib/nettle/gost/magma.h
new file mode 100644
index 0000000000..31c6b262da
--- /dev/null
+++ b/lib/nettle/gost/magma.h
@@ -0,0 +1,78 @@
+/* magma.h
+
+ The GOST R 34.12-2015 (MAGMA) cipher function.
+
+ Copyright (C) 2017 Dmitry Eremin-Solenikov
+
+ This file is part of GNU Nettle.
+
+ GNU Nettle is free software: you can redistribute it and/or
+ modify it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your
+ option) any later version.
+
+ or both in parallel, as here.
+
+ GNU Nettle is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received copies of the GNU General Public License and
+ the GNU Lesser General Public License along with this program. If
+ not, see http://www.gnu.org/licenses/.
+*/
+
+#ifndef GNUTLS_LIB_NETTLE_MAGMA_H_INCLUDED
+#define GNUTLS_LIB_NETTLE_MAGMA_H_INCLUDED
+
+#include "config.h"
+
+#ifndef HAVE_NETTLE_MAGMA_SET_KEY
+
+#include <nettle/nettle-types.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define magma_set_key _gnutls_magma_set_key
+#define magma_set_param _gnutls_magma_set_param
+#define magma_encrypt _gnutls_magma_encrypt
+#define magma_decrypt _gnutls_magma_decrypt
+
+#define MAGMA_KEY_SIZE 32
+#define MAGMA_BLOCK_SIZE 8
+
+struct magma_ctx
+{
+ uint32_t key[MAGMA_KEY_SIZE/4];
+};
+
+void
+magma_set_key(struct magma_ctx *ctx, const uint8_t *key);
+
+void
+magma_encrypt(const struct magma_ctx *ctx,
+ size_t length, uint8_t *dst,
+ const uint8_t *src);
+void
+magma_decrypt(const struct magma_ctx *ctx,
+ size_t length, uint8_t *dst,
+ const uint8_t *src);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+#endif /* GNUTLS_LIB_NETTLE_MAGMA_H_INCLUDED */
diff --git a/lib/nettle/gost/nettle-write.h b/lib/nettle/gost/nettle-write.h
index f3d2b74112..ca0c0843eb 100644
--- a/lib/nettle/gost/nettle-write.h
+++ b/lib/nettle/gost/nettle-write.h
@@ -45,13 +45,16 @@
/* FIXME: Use a macro shortcut to memcpy for native endianness. */
void
+#define _nettle_write_be32 _gnutls_nettle_ecc_write_be32
_nettle_write_be32(size_t length, uint8_t *dst,
const uint32_t *src);
void
+#define _nettle_write_le32 _gnutls_nettle_ecc_write_le32
_nettle_write_le32(size_t length, uint8_t *dst,
const uint32_t *src);
void
+#define _nettle_write_le64 _gnutls_nettle_ecc_write_le64
_nettle_write_le64(size_t length, uint8_t *dst,
const uint64_t *src);
diff --git a/lib/nettle/gost/pbkdf2-gost.h b/lib/nettle/gost/pbkdf2-gost.h
deleted file mode 100644
index fc4181ae19..0000000000
--- a/lib/nettle/gost/pbkdf2-gost.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/* pbkdf2.h
-
- PKCS #5 password-based key derivation function PBKDF2, see RFC 2898.
-
- Copyright (C) 2012 Simon Josefsson
-
- This file is part of GNU Nettle.
-
- GNU Nettle is free software: you can redistribute it and/or
- modify it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
- or
-
- * the GNU General Public License as published by the Free
- Software Foundation; either version 2 of the License, or (at your
- option) any later version.
-
- or both in parallel, as here.
-
- GNU Nettle is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received copies of the GNU General Public License and
- the GNU Lesser General Public License along with this program. If
- not, see https://www.gnu.org/licenses/.
-*/
-
-#ifndef GNUTLS_LIB_NETTLE_GOST_PBKDF2_GOST_H
-#define GNUTLS_LIB_NETTLE_GOST_PBKDF2_GOST_H
-
-#include "config.h"
-
-#include <nettle/nettle-meta.h>
-#include <nettle/pbkdf2.h>
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-/* Namespace mangling */
-#ifndef HAVE_NETTLE_GOSTHASH94CP_UPDATE
-#define pbkdf2_hmac_gosthash94cp _gnutls_pbkdf2_hmac_gosthash94cp
-#endif
-#ifndef HAVE_NETTLE_STREEBOG512_UPDATE
-#define pbkdf2_hmac_streebog256 _gnutls_pbkdf2_hmac_streebog256
-#define pbkdf2_hmac_streebog512 _gnutls_pbkdf2_hmac_streebog512
-#endif
-
-#ifndef HAVE_NETTLE_GOSTHASH94CP_UPDATE
-void
-pbkdf2_hmac_gosthash94cp (size_t key_length, const uint8_t *key,
- unsigned iterations,
- size_t salt_length, const uint8_t *salt,
- size_t length, uint8_t *dst);
-#endif
-
-#ifndef HAVE_NETTLE_STREEBOG512_UPDATE
-void
-pbkdf2_hmac_streebog256 (size_t key_length, const uint8_t *key,
- unsigned iterations,
- size_t salt_length, const uint8_t *salt,
- size_t length, uint8_t *dst);
-
-void
-pbkdf2_hmac_streebog512 (size_t key_length, const uint8_t *key,
- unsigned iterations,
- size_t salt_length, const uint8_t *salt,
- size_t length, uint8_t *dst);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* GNUTLS_LIB_NETTLE_GOST_PBKDF2_GOST_H */
diff --git a/lib/nettle/gost/pbkdf2-hmac-streebog.c b/lib/nettle/gost/pbkdf2-hmac-streebog.c
deleted file mode 100644
index 6ee32766a8..0000000000
--- a/lib/nettle/gost/pbkdf2-hmac-streebog.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* pbkdf2-hmac-streebog.c
-
- PKCS #5 PBKDF2 used with HMAC-STREEBOG.
-
- Copyright (C) 2016 Dmitry Eremin-Solenikov
- Copyright (C) 2012 Simon Josefsson
-
- This file is part of GNU Nettle.
-
- GNU Nettle is free software: you can redistribute it and/or
- modify it under the terms of either:
-
- * the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 3 of the License, or (at your
- option) any later version.
-
- or
-
- * the GNU General Public License as published by the Free
- Software Foundation; either version 2 of the License, or (at your
- option) any later version.
-
- or both in parallel, as here.
-
- GNU Nettle is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received copies of the GNU General Public License and
- the GNU Lesser General Public License along with this program. If
- not, see https://www.gnu.org/licenses/.
-*/
-
-#if HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#ifndef HAVE_NETTLE_STREEBOG512_UPDATE
-#include <gnutls_int.h>
-
-#include "pbkdf2-gost.h"
-
-#include "hmac-gost.h"
-
-void
-pbkdf2_hmac_streebog256 (size_t key_length, const uint8_t *key,
- unsigned iterations,
- size_t salt_length, const uint8_t *salt,
- size_t length, uint8_t *dst)
-{
- struct hmac_streebog256_ctx streebog256ctx;
-
- hmac_streebog256_set_key (&streebog256ctx, key_length, key);
- PBKDF2 (&streebog256ctx, hmac_streebog256_update, hmac_streebog256_digest,
- STREEBOG256_DIGEST_SIZE, iterations, salt_length, salt, length, dst);
-}
-
-void
-pbkdf2_hmac_streebog512 (size_t key_length, const uint8_t *key,
- unsigned iterations,
- size_t salt_length, const uint8_t *salt,
- size_t length, uint8_t *dst)
-{
- struct hmac_streebog512_ctx streebog512ctx;
-
- hmac_streebog512_set_key (&streebog512ctx, key_length, key);
- PBKDF2 (&streebog512ctx, hmac_streebog512_update, hmac_streebog512_digest,
- STREEBOG512_DIGEST_SIZE, iterations, salt_length, salt, length, dst);
-}
-#endif
diff --git a/lib/nettle/gost/write-le32.c b/lib/nettle/gost/write-le32.c
new file mode 100644
index 0000000000..d9d0482424
--- /dev/null
+++ b/lib/nettle/gost/write-le32.c
@@ -0,0 +1,69 @@
+/* write-le32.c
+
+ Copyright (C) 2001, 2011 Niels Möller
+
+ This file is part of GNU Nettle.
+
+ GNU Nettle is free software: you can redistribute it and/or
+ modify it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your
+ option) any later version.
+
+ or both in parallel, as here.
+
+ GNU Nettle is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received copies of the GNU General Public License and
+ the GNU Lesser General Public License along with this program. If
+ not, see http://www.gnu.org/licenses/.
+*/
+
+#if HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <stdlib.h>
+
+#include "nettle-write.h"
+
+#include <nettle/macros.h>
+
+void
+_nettle_write_le32(size_t length, uint8_t *dst,
+ const uint32_t *src)
+{
+ size_t i;
+ size_t words;
+ unsigned leftover;
+
+ words = length / 4;
+ leftover = length % 4;
+
+ for (i = 0; i < words; i++, dst += 4)
+ LE_WRITE_UINT32(dst, src[i]);
+
+ if (leftover)
+ {
+ uint32_t word;
+
+ word = src[i];
+
+ do
+ {
+ *dst++ = word & 0xff;
+ word >>= 8;
+ }
+ while (--leftover);
+ }
+}
diff --git a/lib/nettle/int/block8.h b/lib/nettle/int/block8.h
new file mode 100644
index 0000000000..a1f6efec20
--- /dev/null
+++ b/lib/nettle/int/block8.h
@@ -0,0 +1,61 @@
+/* nettle-types.h
+
+ Copyright (C) 2005, 2014 Niels Möller
+
+ This file is part of GNU Nettle.
+
+ GNU Nettle is free software: you can redistribute it and/or
+ modify it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your
+ option) any later version.
+
+ or both in parallel, as here.
+
+ GNU Nettle is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received copies of the GNU General Public License and
+ the GNU Lesser General Public License along with this program. If
+ not, see http://www.gnu.org/licenses/.
+*/
+
+#ifndef GNUTLS_LIB_NETTLE_BLOCK8_H
+#define GNUTLS_LIB_NETTLE_BLOCK8_H
+
+#include "config.h"
+
+#ifndef HAVE_UNION_NETTLE_BLOCK8
+
+/* An aligned 16-byte block. */
+union gnutls_nettle_backport_nettle_block16
+{
+ uint8_t b[16];
+ unsigned long w[16 / sizeof(unsigned long)];
+ uint64_t u64[2];
+};
+
+union gnutls_nettle_backport_nettle_block8
+{
+ uint8_t b[8];
+ uint64_t u64;
+};
+
+#undef nettle_block16
+#undef nettle_block8
+
+#define nettle_block16 gnutls_nettle_backport_nettle_block16
+#define nettle_block8 gnutls_nettle_backport_nettle_block8
+
+#endif
+
+#endif /* GNUTLS_LIB_NETTLE_BLOCK8_H */
diff --git a/lib/nettle/mac.c b/lib/nettle/mac.c
index 25054dc267..07a218ea48 100644
--- a/lib/nettle/mac.c
+++ b/lib/nettle/mac.c
@@ -32,6 +32,16 @@
#include <nettle/sha3.h>
#include <nettle/hmac.h>
#include <nettle/umac.h>
+#include <nettle/hkdf.h>
+#include <nettle/pbkdf2.h>
+#ifdef HAVE_NETTLE_CMAC128_UPDATE
+#include <nettle/cmac.h>
+#ifndef HAVE_NETTLE_CMAC64_UPDATE
+#include "cmac64.h"
+#endif /* HAVE_NETTLE_CMAC64_UPDATE */
+#else
+#include "cmac.h"
+#endif /* HAVE_NETTLE_CMAC128_UPDATE */
#if ENABLE_GOST
#include "gost/hmac-gost.h"
#ifndef HAVE_NETTLE_GOSTHASH94CP_UPDATE
@@ -42,13 +52,10 @@
#endif
#ifndef HAVE_NETTLE_GOST28147_SET_KEY
#include "gost/gost28147.h"
+#include "gost/cmac.h"
#endif
+#include "gost/cmac.h"
#endif
-#ifdef HAVE_NETTLE_CMAC128_UPDATE
-#include <nettle/cmac.h>
-#else
-#include "cmac.h"
-#endif /* HAVE_NETTLE_CMAC128_UPDATE */
#include <nettle/gcm.h>
typedef void (*update_func) (void *, size_t, const uint8_t *);
@@ -117,6 +124,8 @@ struct nettle_mac_ctx {
struct hmac_streebog256_ctx streebog256;
struct hmac_streebog512_ctx streebog512;
struct gost28147_imit_ctx gost28147_imit;
+ struct cmac_magma_ctx magma;
+ struct cmac_kuznyechik_ctx kuznyechik;
#endif
struct umac96_ctx umac96;
struct umac128_ctx umac128;
@@ -138,8 +147,20 @@ struct nettle_mac_ctx {
static void
_wrap_gost28147_imit_set_key_tc26z(void *ctx, size_t len, const uint8_t * key)
{
- gost28147_imit_set_key(ctx, len, key);
gost28147_imit_set_param(ctx, &gost28147_param_TC26_Z);
+ gost28147_imit_set_key(ctx, len, key);
+}
+
+static void
+_wrap_cmac_magma_set_key(void *ctx, size_t len, const uint8_t * key)
+{
+ cmac_magma_set_key(ctx, key);
+}
+
+static void
+_wrap_cmac_kuznyechik_set_key(void *ctx, size_t len, const uint8_t * key)
+{
+ cmac_kuznyechik_set_key(ctx, key);
}
#endif
@@ -336,6 +357,20 @@ static int _mac_ctx_init(gnutls_mac_algorithm_t algo,
ctx->ctx_ptr = &ctx->ctx.gost28147_imit;
ctx->length = GOST28147_IMIT_DIGEST_SIZE;
break;
+ case GNUTLS_MAC_MAGMA_OMAC:
+ ctx->update = (update_func) cmac_magma_update;
+ ctx->digest = (digest_func) cmac_magma_digest;
+ ctx->set_key = _wrap_cmac_magma_set_key;
+ ctx->ctx_ptr = &ctx->ctx.magma;
+ ctx->length = CMAC64_DIGEST_SIZE;
+ break;
+ case GNUTLS_MAC_KUZNYECHIK_OMAC:
+ ctx->update = (update_func) cmac_kuznyechik_update;
+ ctx->digest = (digest_func) cmac_kuznyechik_digest;
+ ctx->set_key = _wrap_cmac_kuznyechik_set_key;
+ ctx->ctx_ptr = &ctx->ctx.kuznyechik;
+ ctx->length = CMAC128_DIGEST_SIZE;
+ break;
#endif
case GNUTLS_MAC_UMAC_96:
ctx->update = (update_func) umac96_update;
@@ -451,6 +486,8 @@ static int wrap_nettle_mac_exists(gnutls_mac_algorithm_t algo)
case GNUTLS_MAC_STREEBOG_256:
case GNUTLS_MAC_STREEBOG_512:
case GNUTLS_MAC_GOST28147_TC26Z_IMIT:
+ case GNUTLS_MAC_MAGMA_OMAC:
+ case GNUTLS_MAC_KUZNYECHIK_OMAC:
#endif
return 1;
default:
@@ -825,6 +862,69 @@ wrap_nettle_hash_output(void *src_ctx, void *digest, size_t digestsize)
return 0;
}
+/* KDF functions based on MAC
+ */
+static int
+wrap_nettle_hkdf_extract (gnutls_mac_algorithm_t mac,
+ const void *key, size_t keysize,
+ const void *salt, size_t saltsize,
+ void *output)
+{
+ struct nettle_mac_ctx ctx;
+ int ret;
+
+ ret = _mac_ctx_init(mac, &ctx);
+ if (ret < 0)
+ return gnutls_assert_val(ret);
+
+ ctx.set_key(&ctx, saltsize, salt);
+ hkdf_extract(&ctx.ctx, ctx.update, ctx.digest, ctx.length,
+ keysize, key, output);
+
+ return 0;
+}
+
+static int
+wrap_nettle_hkdf_expand (gnutls_mac_algorithm_t mac,
+ const void *key, size_t keysize,
+ const void *info, size_t infosize,
+ void *output, size_t length)
+{
+ struct nettle_mac_ctx ctx;
+ int ret;
+
+ ret = _mac_ctx_init(mac, &ctx);
+ if (ret < 0)
+ return gnutls_assert_val(ret);
+
+ ctx.set_key(&ctx, keysize, key);
+ hkdf_expand(&ctx.ctx, ctx.update, ctx.digest, ctx.length,
+ infosize, info, length, output);
+
+ return 0;
+}
+
+static int
+wrap_nettle_pbkdf2 (gnutls_mac_algorithm_t mac,
+ const void *key, size_t keysize,
+ const void *salt, size_t saltsize,
+ unsigned iter_count,
+ void *output, size_t length)
+{
+ struct nettle_mac_ctx ctx;
+ int ret;
+
+ ret = _mac_ctx_init(mac, &ctx);
+ if (ret < 0)
+ return gnutls_assert_val(ret);
+
+ ctx.set_key(&ctx, keysize, key);
+ pbkdf2(&ctx.ctx, ctx.update, ctx.digest, ctx.length,
+ iter_count, saltsize, salt, length, output);
+
+ return 0;
+}
+
gnutls_crypto_mac_st _gnutls_mac_ops = {
.init = wrap_nettle_mac_init,
.setkey = wrap_nettle_mac_set_key,
@@ -846,3 +946,13 @@ gnutls_crypto_digest_st _gnutls_digest_ops = {
.exists = wrap_nettle_hash_exists,
.copy = wrap_nettle_hash_copy,
};
+
+/* These names are clashing with nettle's name mangling. */
+#undef hkdf_extract
+#undef hkdf_expand
+#undef pbkdf2
+gnutls_crypto_kdf_st _gnutls_kdf_ops = {
+ .hkdf_extract = wrap_nettle_hkdf_extract,
+ .hkdf_expand = wrap_nettle_hkdf_expand,
+ .pbkdf2 = wrap_nettle_pbkdf2,
+};
diff --git a/lib/nettle/gost/nettle-internal.h b/lib/nettle/nettle-alloca.h
index 00c899e7d4..e91604358b 100644
--- a/lib/nettle/gost/nettle-internal.h
+++ b/lib/nettle/nettle-alloca.h
@@ -35,12 +35,17 @@
#ifndef GNUTLS_LIB_NETTLE_GOST_NETTLE_INTERNAL_H
#define GNUTLS_LIB_NETTLE_GOST_NETTLE_INTERNAL_H
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
/* Temporary allocation, for systems that don't support alloca. Note
* that the allocation requests should always be reasonably small, so
* that they can fit on the stack. For non-alloca systems, we use a
* fix maximum size, and abort if we ever need anything larger. */
#if HAVE_ALLOCA
+#include <alloca.h>
# define TMP_DECL(name, type, max) type *name
# define TMP_ALLOC(name, size) (name = alloca(sizeof (*name) * (size)))
#else /* !HAVE_ALLOCA */
diff --git a/lib/nettle/pk.c b/lib/nettle/pk.c
index 4be8dc7eda..57a8560ede 100644
--- a/lib/nettle/pk.c
+++ b/lib/nettle/pk.c
@@ -48,17 +48,24 @@
#include <nettle/ecdsa.h>
#include <nettle/ecc-curve.h>
#include <nettle/curve25519.h>
-#if HAVE_CURVE448
+#if !NEED_INT_ECC
#include <nettle/curve448.h>
#else
-#include "curve448/curve448.h"
-#include "curve448/eddsa.h"
+#include "ecc/curve448.h"
+#include "ecc/eddsa.h"
#endif
#include <nettle/eddsa.h>
#include <nettle/version.h>
#if ENABLE_GOST
-#include "gost/gostdsa.h"
-#include "gost/ecc-gost-curve.h"
+#if NEED_INT_ECC
+#include "ecc/gostdsa.h"
+#include "ecc-gost-curve.h"
+#else
+#include <nettle/gostdsa.h>
+#define gost_point_mul_g ecc_point_mul_g
+#define gost_point_set ecc_point_set
+#endif
+#include "gost/gostdsa2.h"
#endif
#include "int/ecdsa-compute-k.h"
#include "int/dsa-compute-k.h"
@@ -100,6 +107,15 @@ static void rnd_mpz_func(void *_ctx, size_t length, uint8_t * data)
nettle_mpz_get_str_256 (length, data, *k);
}
+static void rnd_nonce_func_fallback(void *_ctx, size_t length, uint8_t * data)
+{
+ if (unlikely(_gnutls_get_lib_state() != LIB_STATE_SELFTEST)) {
+ _gnutls_switch_lib_state(LIB_STATE_ERROR);
+ }
+
+ memset(data, 0xAA, length);
+}
+
static void
ecc_scalar_zclear (struct ecc_scalar *s)
{
@@ -203,7 +219,7 @@ _gost_params_to_pubkey(const gnutls_pk_params_st * pk_params,
struct ecc_point *pub, const struct ecc_curve *curve)
{
ecc_point_init(pub, curve);
- if (ecc_point_set
+ if (gost_point_set
(pub, pk_params->params[GOST_X], pk_params->params[GOST_Y]) == 0) {
ecc_point_clear(pub);
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
@@ -479,11 +495,9 @@ dh_cleanup:
goto gost_cleanup;
}
- out->size = gostdsa_vko(&ecc_priv, &ecc_pub,
- nonce->size, nonce->data,
- out->size, out->data);
- if (out->size == 0)
- ret = GNUTLS_E_INVALID_REQUEST;
+ gostdsa_vko(&ecc_priv, &ecc_pub,
+ nonce->size, nonce->data,
+ out->data);
gost_cleanup:
ecc_point_clear(&ecc_pub);
@@ -521,6 +535,7 @@ _wrap_nettle_pk_encrypt(gnutls_pk_algorithm_t algo,
case GNUTLS_PK_RSA:
{
struct rsa_public_key pub;
+ nettle_random_func *random_func;
ret = _rsa_params_to_pubkey(pk_params, &pub);
if (ret < 0) {
@@ -528,8 +543,12 @@ _wrap_nettle_pk_encrypt(gnutls_pk_algorithm_t algo,
goto cleanup;
}
+ if (_gnutls_get_lib_state() == LIB_STATE_SELFTEST)
+ random_func = rnd_nonce_func_fallback;
+ else
+ random_func = rnd_nonce_func;
ret =
- rsa_encrypt(&pub, NULL, rnd_nonce_func,
+ rsa_encrypt(&pub, NULL, random_func,
plaintext->size, plaintext->data,
p);
if (ret == 0 || HAVE_LIB_ERROR()) {
@@ -582,6 +601,7 @@ _wrap_nettle_pk_decrypt(gnutls_pk_algorithm_t algo,
struct rsa_public_key pub;
size_t length;
bigint_t c;
+ nettle_random_func *random_func;
_rsa_params_to_privkey(pk_params, &priv);
ret = _rsa_params_to_pubkey(pk_params, &pub);
@@ -612,8 +632,12 @@ _wrap_nettle_pk_decrypt(gnutls_pk_algorithm_t algo,
goto cleanup;
}
+ if (_gnutls_get_lib_state() == LIB_STATE_SELFTEST)
+ random_func = rnd_nonce_func_fallback;
+ else
+ random_func = rnd_nonce_func;
ret =
- rsa_decrypt_tr(&pub, &priv, NULL, rnd_nonce_func,
+ rsa_decrypt_tr(&pub, &priv, NULL, random_func,
&length, plaintext->data,
TOMPZ(c));
_gnutls_mpi_release(&c);
@@ -659,6 +683,7 @@ _wrap_nettle_pk_decrypt2(gnutls_pk_algorithm_t algo,
bigint_t c;
uint32_t is_err;
int ret;
+ nettle_random_func *random_func;
if (algo != GNUTLS_PK_RSA || plaintext == NULL) {
gnutls_assert();
@@ -678,7 +703,11 @@ _wrap_nettle_pk_decrypt2(gnutls_pk_algorithm_t algo,
return gnutls_assert_val (GNUTLS_E_MPI_SCAN_FAILED);
}
- ret = rsa_sec_decrypt(&pub, &priv, NULL, rnd_nonce_func,
+ if (_gnutls_get_lib_state() == LIB_STATE_SELFTEST)
+ random_func = rnd_nonce_func_fallback;
+ else
+ random_func = rnd_nonce_func;
+ ret = rsa_sec_decrypt(&pub, &priv, NULL, random_func,
plaintext_size, plaintext, TOMPZ(c));
/* after this point, any conditional on failure that cause differences
* in execution may create a timing or cache access pattern side
@@ -888,7 +917,7 @@ _wrap_nettle_pk_sign(gnutls_pk_algorithm_t algo,
/* This call will return a valid MAC entry and
* getters will check that is not null anyway. */
- me = mac_to_entry(_gnutls_gost_digest(pk_params->algo));
+ me = hash_to_entry(_gnutls_gost_digest(pk_params->algo));
if (_gnutls_mac_get_algo_len(me) != vdata->size) {
gnutls_assert();
_gnutls_debug_log
@@ -958,7 +987,7 @@ _wrap_nettle_pk_sign(gnutls_pk_algorithm_t algo,
ret = _gnutls_ecdsa_compute_k(k,
curve_id,
pk_params->params[ECC_K],
- sign_params->dsa_dig,
+ DIG_TO_MAC(sign_params->dsa_dig),
vdata->data,
vdata->size);
if (ret < 0)
@@ -1027,7 +1056,7 @@ _wrap_nettle_pk_sign(gnutls_pk_algorithm_t algo,
ret = _gnutls_dsa_compute_k(k,
pub.q,
TOMPZ(priv),
- sign_params->dsa_dig,
+ DIG_TO_MAC(sign_params->dsa_dig),
vdata->data,
vdata->size);
if (ret < 0)
@@ -1067,6 +1096,7 @@ _wrap_nettle_pk_sign(gnutls_pk_algorithm_t algo,
{
struct rsa_private_key priv;
struct rsa_public_key pub;
+ nettle_random_func *random_func;
mpz_t s;
_rsa_params_to_privkey(pk_params, &priv);
@@ -1077,8 +1107,12 @@ _wrap_nettle_pk_sign(gnutls_pk_algorithm_t algo,
mpz_init(s);
+ if (_gnutls_get_lib_state() == LIB_STATE_SELFTEST)
+ random_func = rnd_nonce_func_fallback;
+ else
+ random_func = rnd_nonce_func;
ret =
- rsa_pkcs1_sign_tr(&pub, &priv, NULL, rnd_nonce_func,
+ rsa_pkcs1_sign_tr(&pub, &priv, NULL, random_func,
vdata->size, vdata->data, s);
if (ret == 0 || HAVE_LIB_ERROR()) {
gnutls_assert();
@@ -1278,7 +1312,7 @@ _wrap_nettle_pk_verify(gnutls_pk_algorithm_t algo,
/* This call will return a valid MAC entry and
* getters will check that is not null anyway. */
- me = mac_to_entry(_gnutls_gost_digest(pk_params->algo));
+ me = hash_to_entry(_gnutls_gost_digest(pk_params->algo));
if (_gnutls_mac_get_algo_len(me) != vdata->size)
return gnutls_assert_val(GNUTLS_E_PK_SIG_VERIFY_FAILED);
@@ -1499,13 +1533,11 @@ static inline const struct ecc_curve *get_supported_gost_curve(int curve)
switch (curve) {
#if ENABLE_GOST
case GNUTLS_ECC_CURVE_GOST256CPA:
- return nettle_get_gost_256cpa();
case GNUTLS_ECC_CURVE_GOST256CPXA:
- return nettle_get_gost_256cpa();
- case GNUTLS_ECC_CURVE_GOST512A:
- return nettle_get_gost_512a();
case GNUTLS_ECC_CURVE_GOST256B:
- return nettle_get_gost_256cpa();
+ return nettle_get_gost_gc256b();
+ case GNUTLS_ECC_CURVE_GOST512A:
+ return nettle_get_gost_gc512a();
#endif
default:
return NULL;
@@ -2788,7 +2820,7 @@ wrap_nettle_pk_verify_priv_params(gnutls_pk_algorithm_t algo,
ecc_point_init(&r, curve);
/* verify that x,y lie on the curve */
ret =
- ecc_point_set(&r, TOMPZ(params->params[GOST_X]),
+ gost_point_set(&r, TOMPZ(params->params[GOST_X]),
TOMPZ(params->params[GOST_Y]));
if (ret == 0) {
ret =
@@ -2799,7 +2831,7 @@ wrap_nettle_pk_verify_priv_params(gnutls_pk_algorithm_t algo,
ecc_point_clear(&r);
ecc_point_init(&r, curve);
- ecc_point_mul_g(&r, &priv);
+ gost_point_mul_g(&r, &priv);
mpz_init(x1);
mpz_init(y1);
@@ -3098,7 +3130,7 @@ wrap_nettle_pk_fixup(gnutls_pk_algorithm_t algo,
}
ecc_point_init(&r, curve);
- ecc_point_mul_g(&r, &priv);
+ gost_point_mul_g(&r, &priv);
ecc_point_get(&r, params->params[GOST_X],
params->params[GOST_Y]);
diff --git a/lib/nettle/sysrng-bcrypt.c b/lib/nettle/sysrng-bcrypt.c
new file mode 100644
index 0000000000..10dc9ac83a
--- /dev/null
+++ b/lib/nettle/sysrng-bcrypt.c
@@ -0,0 +1,88 @@
+/*
+ * Copyright (C) 2010-2016 Free Software Foundation, Inc.
+ * Copyright (C) 2015-2016 Red Hat, Inc.
+ * Copyright (C) 2000, 2001, 2008 Niels Möller
+ *
+ * Author: Nikos Mavrogiannopoulos
+ *
+ * This file is part of GNUTLS.
+ *
+ * The GNUTLS library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>
+ *
+ */
+
+/* Here are the common parts of the random generator layer.
+ * Some of this code was based on the LSH
+ * random generator (the trivia and device source functions for POSIX)
+ * and modified to fit gnutls' needs. Relicenced with permission.
+ * Original author Niels Möller.
+ */
+
+#include "gnutls_int.h"
+#include "errors.h"
+#include <locks.h>
+#include <num.h>
+#include <nettle/yarrow.h>
+#include <errno.h>
+#include <rnd-common.h>
+#include <hash-pjw-bare.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+/* The windows randomness gatherer.
+ */
+
+#include <windows.h>
+#include <bcrypt.h>
+
+get_entropy_func _rnd_get_system_entropy = NULL;
+
+static BCRYPT_ALG_HANDLE device_fd = 0;
+
+static
+int _rnd_get_system_entropy_win32(void* rnd, size_t size)
+{
+ NTSTATUS err = BCryptGenRandom(device_fd, rnd, size, 0);
+ if (!BCRYPT_SUCCESS(err)) {
+ _gnutls_debug_log("Error in BCryptGenRandom: %ld\n", err);
+ return GNUTLS_E_RANDOM_DEVICE_ERROR;
+ }
+
+ return 0;
+}
+
+int _rnd_system_entropy_check(void)
+{
+ return 0;
+}
+
+int _rnd_system_entropy_init(void)
+{
+ NTSTATUS err = BCryptOpenAlgorithmProvider
+ (&device_fd, BCRYPT_RNG_ALGORITHM, NULL, 0);
+ if (!BCRYPT_SUCCESS(err)) {
+ _gnutls_debug_log("error in BCryptOpenAlgorithmProvider!\n");
+ return GNUTLS_E_RANDOM_DEVICE_ERROR;
+ }
+
+ _rnd_get_system_entropy = _rnd_get_system_entropy_win32;
+ return 0;
+}
+
+void _rnd_system_entropy_deinit(void)
+{
+ BCryptCloseAlgorithmProvider(device_fd, 0);
+}
diff --git a/lib/pkcs11.c b/lib/pkcs11.c
index 2ef0e3e025..d8d4a65114 100644
--- a/lib/pkcs11.c
+++ b/lib/pkcs11.c
@@ -889,7 +889,7 @@ static void compat_load(const char *configfile)
if (configfile == NULL)
configfile = "/etc/gnutls/pkcs11.conf";
- fp = fopen(configfile, "r");
+ fp = fopen(configfile, "re");
if (fp == NULL) {
gnutls_assert();
return;
@@ -1897,6 +1897,35 @@ int pkcs11_read_pubkey(struct ck_function_list *module,
}
break;
+#ifdef HAVE_CKM_EDDSA
+ case CKK_EC_EDWARDS:
+ a[0].type = CKA_EC_PARAMS;
+ a[0].value = tmp1;
+ a[0].value_len = tmp1_size;
+
+ a[1].type = CKA_EC_POINT;
+ a[1].value = tmp2;
+ a[1].value_len = tmp2_size;
+
+ if ((rv = pkcs11_get_attribute_value(module, pks, ctx, a, 2)) ==
+ CKR_OK) {
+
+ pobj->pubkey[0].data = a[0].value;
+ pobj->pubkey[0].size = a[0].value_len;
+
+ pobj->pubkey[1].data = a[1].value;
+ pobj->pubkey[1].size = a[1].value_len;
+
+ pobj->pubkey_size = 2;
+ } else {
+ gnutls_assert();
+
+ ret = pkcs11_rv_to_err(rv);
+ goto cleanup;
+ }
+
+ break;
+#endif
default:
_gnutls_debug_log("requested reading public key of unsupported type %u\n", (unsigned)key_type);
ret = gnutls_assert_val(GNUTLS_E_UNIMPLEMENTED_FEATURE);
@@ -4112,6 +4141,8 @@ find_cert_cb(struct ck_function_list *module, struct pkcs11_session_info *sinfo,
a_vals++;
}
+ /* This doesn't do a proper comparison, see
+ * _gnutls_x509_compare_raw_dn() */
if (priv->dn.size > 0) {
a[a_vals].type = CKA_SUBJECT;
a[a_vals].value = priv->dn.data;
@@ -4126,6 +4157,7 @@ find_cert_cb(struct ck_function_list *module, struct pkcs11_session_info *sinfo,
a_vals++;
}
+ /* Same problem as for priv->dn */
if (priv->issuer_dn.size > 0) {
a[a_vals].type = CKA_ISSUER;
a[a_vals].value = priv->issuer_dn.data;
@@ -4515,34 +4547,10 @@ int gnutls_pkcs11_get_raw_issuer_by_subject_key_id (const char *url,
return ret;
}
-/**
- * gnutls_pkcs11_crt_is_known:
- * @url: A PKCS 11 url identifying a token
- * @cert: is the certificate to find issuer for
- * @issuer: Will hold the issuer if any in an allocated buffer.
- * @fmt: The format of the exported issuer.
- * @flags: Use zero or flags from %GNUTLS_PKCS11_OBJ_FLAG.
- *
- * This function will check whether the provided certificate is stored
- * in the specified token. This is useful in combination with
- * %GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_TRUSTED or
- * %GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_DISTRUSTED,
- * to check whether a CA is present or a certificate is blacklisted in
- * a trust PKCS #11 module.
- *
- * This function can be used with a @url of "pkcs11:", and in that case all modules
- * will be searched. To restrict the modules to the marked as trusted in p11-kit
- * use the %GNUTLS_PKCS11_OBJ_FLAG_PRESENT_IN_TRUSTED_MODULE flag.
- *
- * Note that the flag %GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_DISTRUSTED is
- * specific to p11-kit trust modules.
- *
- * Returns: If the certificate exists non-zero is returned, otherwise zero.
- *
- * Since: 3.3.0
- **/
-unsigned gnutls_pkcs11_crt_is_known(const char *url, gnutls_x509_crt_t cert,
- unsigned int flags)
+unsigned
+_gnutls_pkcs11_crt_is_known(const char *url, gnutls_x509_crt_t cert,
+ unsigned int flags,
+ gnutls_x509_crt_t *trusted_cert)
{
int ret;
struct find_cert_st priv;
@@ -4554,6 +4562,15 @@ unsigned gnutls_pkcs11_crt_is_known(const char *url, gnutls_x509_crt_t cert,
memset(&priv, 0, sizeof(priv));
+ if (trusted_cert) {
+ ret = gnutls_pkcs11_obj_init(&priv.obj);
+ if (ret < 0) {
+ gnutls_assert();
+ goto cleanup;
+ }
+ priv.need_import = 1;
+ }
+
if (url == NULL || url[0] == 0) {
url = "pkcs11:";
}
@@ -4600,8 +4617,18 @@ unsigned gnutls_pkcs11_crt_is_known(const char *url, gnutls_x509_crt_t cert,
_gnutls_debug_log("crt_is_known: did not find cert, using issuer DN + serial, using DN only\n");
/* attempt searching with the subject DN only */
gnutls_assert();
+ if (priv.obj)
+ gnutls_pkcs11_obj_deinit(priv.obj);
gnutls_free(priv.serial.data);
memset(&priv, 0, sizeof(priv));
+ if (trusted_cert) {
+ ret = gnutls_pkcs11_obj_init(&priv.obj);
+ if (ret < 0) {
+ gnutls_assert();
+ goto cleanup;
+ }
+ priv.need_import = 1;
+ }
priv.crt = cert;
priv.flags = flags;
@@ -4618,9 +4645,26 @@ unsigned gnutls_pkcs11_crt_is_known(const char *url, gnutls_x509_crt_t cert,
goto cleanup;
}
+ if (trusted_cert) {
+ ret = gnutls_x509_crt_init(trusted_cert);
+ if (ret < 0) {
+ gnutls_assert();
+ ret = 0;
+ goto cleanup;
+ }
+ ret = gnutls_x509_crt_import_pkcs11(*trusted_cert, priv.obj);
+ if (ret < 0) {
+ gnutls_assert();
+ gnutls_x509_crt_deinit(*trusted_cert);
+ ret = 0;
+ goto cleanup;
+ }
+ }
ret = 1;
cleanup:
+ if (priv.obj)
+ gnutls_pkcs11_obj_deinit(priv.obj);
if (info)
p11_kit_uri_free(info);
gnutls_free(priv.serial.data);
@@ -4629,6 +4673,36 @@ unsigned gnutls_pkcs11_crt_is_known(const char *url, gnutls_x509_crt_t cert,
}
/**
+ * gnutls_pkcs11_crt_is_known:
+ * @url: A PKCS 11 url identifying a token
+ * @cert: is the certificate to find issuer for
+ * @flags: Use zero or flags from %GNUTLS_PKCS11_OBJ_FLAG.
+ *
+ * This function will check whether the provided certificate is stored
+ * in the specified token. This is useful in combination with
+ * %GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_TRUSTED or
+ * %GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_DISTRUSTED,
+ * to check whether a CA is present or a certificate is blacklisted in
+ * a trust PKCS #11 module.
+ *
+ * This function can be used with a @url of "pkcs11:", and in that case all modules
+ * will be searched. To restrict the modules to the marked as trusted in p11-kit
+ * use the %GNUTLS_PKCS11_OBJ_FLAG_PRESENT_IN_TRUSTED_MODULE flag.
+ *
+ * Note that the flag %GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_DISTRUSTED is
+ * specific to p11-kit trust modules.
+ *
+ * Returns: If the certificate exists non-zero is returned, otherwise zero.
+ *
+ * Since: 3.3.0
+ **/
+unsigned gnutls_pkcs11_crt_is_known(const char *url, gnutls_x509_crt_t cert,
+ unsigned int flags)
+{
+ return _gnutls_pkcs11_crt_is_known(url, cert, flags, NULL);
+}
+
+/**
* gnutls_pkcs11_obj_get_flags:
* @obj: The pkcs11 object
* @oflags: Will hold the output flags
diff --git a/lib/pkcs11_int.h b/lib/pkcs11_int.h
index 9d88807098..86cce0dee5 100644
--- a/lib/pkcs11_int.h
+++ b/lib/pkcs11_int.h
@@ -460,6 +460,11 @@ inline static bool is_pkcs11_url_object(const char *url)
return 0;
}
+unsigned
+_gnutls_pkcs11_crt_is_known(const char *url, gnutls_x509_crt_t cert,
+ unsigned int flags,
+ gnutls_x509_crt_t *trusted_cert);
+
#endif /* ENABLE_PKCS11 */
#endif /* GNUTLS_LIB_PKCS11_INT_H */
diff --git a/lib/pkcs11_write.c b/lib/pkcs11_write.c
index ab740dcd62..3ce794b076 100644
--- a/lib/pkcs11_write.c
+++ b/lib/pkcs11_write.c
@@ -358,7 +358,7 @@ static int add_pubkey(gnutls_pubkey_t pubkey, struct ck_attribute *a, unsigned *
break;
}
case GNUTLS_PK_EDDSA_ED25519: {
- gnutls_datum_t params;
+ gnutls_datum_t params, ecpoint;
ret =
_gnutls_x509_write_ecc_params(pubkey->params.curve,
@@ -373,9 +373,18 @@ static int add_pubkey(gnutls_pubkey_t pubkey, struct ck_attribute *a, unsigned *
a[*a_val].value_len = params.size;
(*a_val)++;
+ ret = _gnutls_x509_encode_string(ASN1_ETYPE_OCTET_STRING,
+ pubkey->params.raw_pub.data,
+ pubkey->params.raw_pub.size,
+ &ecpoint);
+ if (ret < 0) {
+ gnutls_assert();
+ return ret;
+ }
+
a[*a_val].type = CKA_EC_POINT;
- a[*a_val].value = pubkey->params.raw_pub.data;
- a[*a_val].value_len = pubkey->params.raw_pub.size;
+ a[*a_val].value = ecpoint.data;
+ a[*a_val].value_len = ecpoint.size;
(*a_val)++;
break;
}
diff --git a/lib/priority.c b/lib/priority.c
index ad99459adb..0a284ae1f1 100644
--- a/lib/priority.c
+++ b/lib/priority.c
@@ -1304,6 +1304,7 @@ static void _gnutls_update_system_priorities(void)
{
int ret;
struct stat sb;
+ FILE *fp;
if (stat(system_priority_file, &sb) < 0) {
_gnutls_debug_log("cfg: unable to access: %s: %d\n",
@@ -1321,7 +1322,14 @@ static void _gnutls_update_system_priorities(void)
if (system_wide_priority_strings_init != 0)
_name_val_array_clear(&system_wide_priority_strings);
- ret = ini_parse(system_priority_file, cfg_ini_handler, NULL);
+ fp = fopen(system_priority_file, "re");
+ if (fp == NULL) {
+ _gnutls_debug_log("cfg: unable to open: %s: %d\n",
+ system_priority_file, errno);
+ return;
+ }
+ ret = ini_parse_file(fp, cfg_ini_handler, NULL);
+ fclose(fp);
if (ret != 0) {
_gnutls_debug_log("cfg: unable to parse: %s: %d\n",
system_priority_file, ret);
diff --git a/lib/psk.c b/lib/psk.c
index ebb3f246ff..6ea3adb63c 100644
--- a/lib/psk.c
+++ b/lib/psk.c
@@ -24,6 +24,7 @@
#include "gnutls_int.h"
#include "errors.h"
+#include <str.h>
#include <auth/psk.h>
#include <state.h>
@@ -96,15 +97,46 @@ gnutls_psk_set_client_credentials(gnutls_psk_client_credentials_t res,
const gnutls_datum_t * key,
gnutls_psk_key_flags flags)
{
+ gnutls_datum_t dat;
+
+ if (username == NULL)
+ return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+
+ dat.data = (unsigned char *) username;
+ dat.size = strlen(username);
+
+ return gnutls_psk_set_client_credentials2(res, &dat, key, flags);
+}
+
+/**
+ * gnutls_psk_set_client_credentials2:
+ * @res: is a #gnutls_psk_client_credentials_t type.
+ * @username: is the userid
+ * @key: is the user's key
+ * @flags: indicate the format of the key, either
+ * %GNUTLS_PSK_KEY_RAW or %GNUTLS_PSK_KEY_HEX.
+ *
+ * This function is identical to gnutls_psk_set_client_credentials(),
+ * except that it allows a non-null-terminated username to be introduced.
+ *
+ * Returns: On success, %GNUTLS_E_SUCCESS (0) is returned, otherwise
+ * an error code is returned.
+ */
+int
+gnutls_psk_set_client_credentials2(gnutls_psk_client_credentials_t res,
+ const gnutls_datum_t *username,
+ const gnutls_datum_t *key,
+ gnutls_psk_key_flags flags)
+{
int ret;
- if (username == NULL || key == NULL || key->data == NULL) {
+ if (username == NULL || username->data == NULL || key == NULL || key->data == NULL) {
gnutls_assert();
return GNUTLS_E_INVALID_REQUEST;
}
ret =
- _gnutls_set_datum(&res->username, username, strlen(username));
+ _gnutls_set_datum(&res->username, username->data, username->size);
if (ret < 0)
return ret;
@@ -255,6 +287,19 @@ gnutls_psk_set_server_credentials_hint(gnutls_psk_server_credentials_t res,
return 0;
}
+static int call_server_callback_legacy(gnutls_session_t session,
+ const gnutls_datum_t *username,
+ gnutls_datum_t *key)
+{
+ gnutls_psk_server_credentials_t cred =
+ (gnutls_psk_server_credentials_t)
+ _gnutls_get_cred(session, GNUTLS_CRD_PSK);
+ if (unlikely(cred == NULL))
+ return gnutls_assert_val(-1);
+
+ return cred->pwd_callback_legacy(session, (const char *) username->data, key);
+}
+
/**
* gnutls_psk_set_server_credentials_function:
* @cred: is a #gnutls_psk_server_credentials_t type.
@@ -281,7 +326,64 @@ gnutls_psk_set_server_credentials_function(gnutls_psk_server_credentials_t
gnutls_psk_server_credentials_function
* func)
{
+ cred->pwd_callback_legacy = func;
+ cred->pwd_callback = call_server_callback_legacy;
+}
+
+/**
+ * gnutls_psk_set_server_credentials_function2:
+ * @cred: is a #gnutls_psk_server_credentials_t type.
+ * @func: is the callback function
+ *
+ * This function can be used to set a callback to retrieve the user's PSK credentials.
+ * The callback's function form is:
+ * int (*callback)(gnutls_session_t, const gnutls_datum_t* username,
+ * gnutls_datum_t* key);
+ *
+ * This callback function has the same semantics as that of gnutls_psk_set_server_credentials_function(),
+ * but it allows non-string usernames to be used.
+ *
+ * @username contains the actual username.
+ * The @key must be filled in using the gnutls_malloc().
+ *
+ * In case the callback returned a negative number then gnutls will
+ * assume that the username does not exist.
+ *
+ * The callback function will only be called once per handshake. The
+ * callback function should return 0 on success, while -1 indicates
+ * an error.
+ **/
+void
+gnutls_psk_set_server_credentials_function2(gnutls_psk_server_credentials_t cred,
+ gnutls_psk_server_credentials_function2 func)
+{
cred->pwd_callback = func;
+ cred->pwd_callback_legacy = NULL;
+}
+
+static int call_client_callback_legacy(gnutls_session_t session,
+ gnutls_datum_t *username,
+ gnutls_datum_t *key)
+{
+ int ret;
+ char *user_p;
+ gnutls_psk_client_credentials_t cred =
+ (gnutls_psk_client_credentials_t)
+ _gnutls_get_cred(session, GNUTLS_CRD_PSK);
+ if (unlikely(cred == NULL))
+ return gnutls_assert_val(-1);
+
+
+ ret = cred->get_function_legacy(session, &user_p, key);
+
+ if (ret)
+ goto end;
+
+ username->data = (uint8_t *) user_p;
+ username->size = strlen(user_p);
+
+end:
+ return ret;
}
/**
@@ -311,7 +413,40 @@ gnutls_psk_set_client_credentials_function(gnutls_psk_client_credentials_t
gnutls_psk_client_credentials_function
* func)
{
+ cred->get_function = call_client_callback_legacy;
+ cred->get_function_legacy = func;
+}
+
+/**
+ * gnutls_psk_set_client_credentials_function2:
+ * @cred: is a #gnutls_psk_server_credentials_t type.
+ * @func: is the callback function
+ *
+ * This function can be used to set a callback to retrieve the username and
+ * password for client PSK authentication.
+ * The callback's function form is:
+ * int (*callback)(gnutls_session_t, gnutls_datum_t* username,
+ * gnutls_datum_t* key);
+ *
+ * This callback function has the same semantics as that of gnutls_psk_set_client_credentials_function(),
+ * but it allows non-string usernames to be used.
+ *
+ * The @username and @key->data must be allocated using gnutls_malloc().
+ * The @username should be an ASCII string or UTF-8
+ * string. In case of a UTF-8 string it is recommended to be following
+ * the PRECIS framework for usernames (rfc8265).
+ *
+ * The callback function will be called once per handshake.
+ *
+ * The callback function should return 0 on success.
+ * -1 indicates an error.
+ **/
+void
+gnutls_psk_set_client_credentials_function2(gnutls_psk_client_credentials_t cred,
+ gnutls_psk_client_credentials_function2 *func)
+{
cred->get_function = func;
+ cred->get_function_legacy = NULL;
}
@@ -322,7 +457,14 @@ gnutls_psk_set_client_credentials_function(gnutls_psk_client_credentials_t
* This should only be called in case of PSK authentication and in
* case of a server.
*
- * Returns: the username of the peer, or %NULL in case of an error.
+ * The returned pointer should be considered constant (do not free) and valid
+ * for the lifetime of the session.
+ *
+ * This function will return %NULL if the username has embedded NULL bytes.
+ * In that case, gnutls_psk_server_get_username2() should be used to retrieve the username.
+ *
+ * Returns: the username of the peer, or %NULL in case of an error,
+ * or if the username has embedded NULLs.
**/
const char *gnutls_psk_server_get_username(gnutls_session_t session)
{
@@ -334,13 +476,48 @@ const char *gnutls_psk_server_get_username(gnutls_session_t session)
if (info == NULL)
return NULL;
- if (info->username[0] != 0)
+ if (info->username[0] != 0 && !_gnutls_has_embedded_null(info->username, info->username_len))
return info->username;
return NULL;
}
/**
+ * gnutls_psk_server_get_username2:
+ * @session: is a gnutls session
+ * @username: a datum that will be filled in by this function
+ *
+ * Return a pointer to the username of the peer in the supplied datum. Does not
+ * need to be null-terminated.
+ *
+ * This should only be called in case of PSK authentication and in
+ * case of a server.
+ *
+ * The returned pointer should be considered constant (do not free) and valid
+ * for the lifetime of the session.
+ *
+ * Returns: %GNUTLS_E_SUCCESS, or a negative value in case of an error.
+ **/
+int gnutls_psk_server_get_username2(gnutls_session_t session, gnutls_datum_t *username)
+{
+ psk_auth_info_t info;
+
+ CHECK_AUTH_TYPE(GNUTLS_CRD_PSK, GNUTLS_E_INVALID_REQUEST);
+
+ info = _gnutls_get_auth_info(session, GNUTLS_CRD_PSK);
+ if (info == NULL)
+ return GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE;
+
+ if (info->username_len > 0) {
+ username->data = (unsigned char *) info->username;
+ username->size = info->username_len;
+ return 0;
+ }
+
+ return GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE;
+}
+
+/**
* gnutls_psk_client_get_hint:
* @session: is a gnutls session
*
diff --git a/lib/pubkey.c b/lib/pubkey.c
index eb7fdbaa82..de95a04c37 100644
--- a/lib/pubkey.c
+++ b/lib/pubkey.c
@@ -362,6 +362,141 @@ gnutls_pubkey_get_preferred_hash_algorithm(gnutls_pubkey_t key,
#ifdef ENABLE_PKCS11
+/* The EC_PARAMS attribute can contain either printable string with curve name
+ * or OID defined in RFC 8410 */
+static int
+gnutls_pubkey_parse_ecc_eddsa_params(const gnutls_datum_t *parameters,
+ gnutls_ecc_curve_t *outcurve)
+{
+ gnutls_ecc_curve_t curve = GNUTLS_ECC_CURVE_INVALID;
+ ASN1_TYPE asn1 = ASN1_TYPE_EMPTY;
+ unsigned int etype = ASN1_ETYPE_INVALID;
+ char str[MAX_OID_SIZE];
+ int str_size;
+ int ret;
+
+ ret = asn1_create_element(_gnutls_get_gnutls_asn(),
+ "GNUTLS.pkcs-11-ec-Parameters", &asn1);
+ if (ret != ASN1_SUCCESS) {
+ gnutls_assert();
+ return _gnutls_asn2err(ret);
+ }
+
+ ret = asn1_der_decoding(&asn1, parameters->data, parameters->size,
+ NULL);
+ if (ret != ASN1_SUCCESS) {
+ gnutls_assert();
+ ret = _gnutls_asn2err(ret);
+ goto cleanup;
+ }
+
+ /* Read the type of choice.
+ */
+ str_size = sizeof(str) - 1;
+ ret = asn1_read_value(asn1, "", str, &str_size);
+ if (ret != ASN1_SUCCESS) {
+ gnutls_assert();
+ ret = _gnutls_asn2err(ret);
+ goto cleanup;
+ }
+ str[str_size] = 0;
+
+ /* Convert the choice to enum type */
+ if (strcmp(str, "oId") == 0) {
+ etype = ASN1_ETYPE_OBJECT_ID;
+ } else if (strcmp(str, "curveName") == 0) {
+ etype = ASN1_ETYPE_PRINTABLE_STRING;
+ }
+
+ str_size = sizeof(str) - 1;
+ switch (etype) {
+ case ASN1_ETYPE_OBJECT_ID:
+ ret = asn1_read_value(asn1, "oId", str, &str_size);
+ if (ret != ASN1_SUCCESS) {
+ gnutls_assert();
+ ret = _gnutls_asn2err(ret);
+ break;
+ }
+
+ curve = gnutls_oid_to_ecc_curve(str);
+ if (curve != GNUTLS_ECC_CURVE_ED25519 &&
+ curve != GNUTLS_ECC_CURVE_ED448) {
+ _gnutls_debug_log("Curve %s is not supported for EdDSA\n", str);
+ gnutls_assert();
+ curve = GNUTLS_ECC_CURVE_INVALID;
+ ret = GNUTLS_E_ECC_UNSUPPORTED_CURVE;
+ break;
+ }
+
+ ret = GNUTLS_E_SUCCESS;
+ break;
+
+ case ASN1_ETYPE_PRINTABLE_STRING:
+ ret = asn1_read_value(asn1, "curveName", str, &str_size);
+ if (ret != ASN1_SUCCESS) {
+ gnutls_assert();
+ ret = _gnutls_asn2err(ret);
+ break;
+ }
+
+ if (str_size == strlen("edwards25519") &&
+ strncmp(str, "edwards25519", str_size) == 0) {
+ curve = GNUTLS_ECC_CURVE_ED25519;
+ ret = GNUTLS_E_SUCCESS;
+ break;
+ } else if (str_size == strlen("edwards448") &&
+ strncmp(str, "edwards448", str_size) == 0) {
+ curve = GNUTLS_ECC_CURVE_ED448;
+ ret = GNUTLS_E_SUCCESS;
+ break;
+ }
+ /* FALLTHROUGH */
+
+ default:
+ /* Neither of CHOICEs found. Fail */
+ gnutls_assert();
+ ret = GNUTLS_E_ECC_UNSUPPORTED_CURVE;
+ curve = GNUTLS_ECC_CURVE_INVALID;
+ break;
+ }
+
+
+ cleanup:
+ asn1_delete_structure(&asn1);
+ *outcurve = curve;
+ return ret;
+}
+
+
+static int
+gnutls_pubkey_import_ecc_eddsa(gnutls_pubkey_t key,
+ const gnutls_datum_t * parameters,
+ const gnutls_datum_t * ecpoint)
+{
+ int ret;
+
+ gnutls_ecc_curve_t curve = GNUTLS_ECC_CURVE_INVALID;
+ gnutls_datum_t raw_point = {NULL, 0};
+
+ ret = gnutls_pubkey_parse_ecc_eddsa_params(parameters, &curve);
+ if (ret < 0) {
+ return gnutls_assert_val(ret);
+ }
+
+ ret = _gnutls_x509_decode_string(ASN1_ETYPE_OCTET_STRING,
+ ecpoint->data, ecpoint->size,
+ &raw_point, 0);
+ if (ret < 0) {
+ gnutls_assert();
+ gnutls_free(raw_point.data);
+ return ret;
+ }
+ ret = gnutls_pubkey_import_ecc_raw(key, curve, &raw_point, NULL);
+
+ gnutls_free(raw_point.data);
+ return ret;
+}
+
/**
* gnutls_pubkey_import_pkcs11:
* @key: The public key
@@ -438,6 +573,10 @@ gnutls_pubkey_import_pkcs11(gnutls_pubkey_t key,
ret = gnutls_pubkey_import_ecc_x962(key, &obj->pubkey[0],
&obj->pubkey[1]);
break;
+ case GNUTLS_PK_EDDSA_ED25519:
+ ret = gnutls_pubkey_import_ecc_eddsa(key, &obj->pubkey[0],
+ &obj->pubkey[1]);
+ break;
default:
gnutls_assert();
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
@@ -1416,7 +1555,7 @@ gnutls_pubkey_import_ecc_raw(gnutls_pubkey_t key,
{
int ret;
- if (key == NULL) {
+ if (key == NULL || x == NULL) {
gnutls_assert();
return GNUTLS_E_INVALID_REQUEST;
}
@@ -1454,6 +1593,11 @@ gnutls_pubkey_import_ecc_raw(gnutls_pubkey_t key,
}
/* ECDSA */
+ if (y == NULL) {
+ gnutls_assert();
+ return GNUTLS_E_INVALID_REQUEST;
+ }
+
key->params.curve = curve;
if (_gnutls_mpi_init_scan_nz
diff --git a/lib/random.c b/lib/random.c
index 6462738416..605fc8d51a 100644
--- a/lib/random.c
+++ b/lib/random.c
@@ -105,9 +105,9 @@ int _gnutls_rnd_preinit(void)
#elif defined(ENABLE_FIPS140)
/* The FIPS140 random generator is only enabled when we are compiled
- * with FIPS support, _and_ the system requires FIPS140.
+ * with FIPS support, _and_ the system is in FIPS installed state.
*/
- if (_gnutls_fips_mode_enabled() == 1) {
+ if (_gnutls_fips_mode_enabled() != 0) {
ret = gnutls_crypto_rnd_register(100, &_gnutls_fips_rnd_ops);
if (ret < 0)
return ret;
diff --git a/lib/secrets.c b/lib/secrets.c
index 94fc305640..7bd69bc7ef 100644
--- a/lib/secrets.c
+++ b/lib/secrets.c
@@ -25,8 +25,6 @@
#include <config.h>
#include "gnutls_int.h"
-#include <nettle/hkdf.h>
-#include <nettle/hmac.h>
#include "secrets.h"
/* HKDF-Extract(0,0) or HKDF-Extract(0, PSK) */
@@ -67,10 +65,17 @@ int _tls13_init_secret2(const mac_entry_st *prf,
/* HKDF-Extract(Prev-Secret, key) */
int _tls13_update_secret(gnutls_session_t session, const uint8_t *key, size_t key_size)
{
- return gnutls_hmac_fast(session->security_parameters.prf->id,
- session->key.proto.tls13.temp_secret, session->key.proto.tls13.temp_secret_size,
- key, key_size,
- session->key.proto.tls13.temp_secret);
+ gnutls_datum_t _key;
+ gnutls_datum_t salt;
+
+ _key.data = (void *)key;
+ _key.size = key_size;
+ salt.data = (void *)session->key.proto.tls13.temp_secret;
+ salt.size = session->key.proto.tls13.temp_secret_size;
+
+ return gnutls_hkdf_extract(session->security_parameters.prf->id,
+ &_key, &salt,
+ session->key.proto.tls13.temp_secret);
}
/* Derive-Secret(Secret, Label, Messages) */
@@ -123,6 +128,8 @@ int _tls13_expand_secret2(const mac_entry_st *prf,
{
uint8_t tmp[256] = "tls13 ";
gnutls_buffer_st str;
+ gnutls_datum_t key;
+ gnutls_datum_t info;
int ret;
if (unlikely(label_size >= sizeof(tmp)-6))
@@ -149,28 +156,14 @@ int _tls13_expand_secret2(const mac_entry_st *prf,
goto cleanup;
}
- switch (prf->id) {
- case GNUTLS_MAC_SHA256:{
- struct hmac_sha256_ctx ctx;
+ key.data = (void *)secret;
+ key.size =_gnutls_mac_get_algo_len(mac_to_entry(prf->id));
+ info.data = str.data;
+ info.size = str.length;
- hmac_sha256_set_key(&ctx, SHA256_DIGEST_SIZE, secret);
- hkdf_expand(&ctx, (nettle_hash_update_func*)hmac_sha256_update,
- (nettle_hash_digest_func*)hmac_sha256_digest, SHA256_DIGEST_SIZE,
- str.length, str.data, out_size, out);
- break;
- }
- case GNUTLS_MAC_SHA384:{
- struct hmac_sha384_ctx ctx;
-
- hmac_sha384_set_key(&ctx, SHA384_DIGEST_SIZE, secret);
- hkdf_expand(&ctx, (nettle_hash_update_func*)hmac_sha384_update,
- (nettle_hash_digest_func*)hmac_sha384_digest, SHA384_DIGEST_SIZE,
- str.length, str.data, out_size, out);
- break;
- }
- default:
+ ret = gnutls_hkdf_expand(prf->id, &key, &info, out, out_size);
+ if (ret < 0) {
gnutls_assert();
- ret = GNUTLS_E_INTERNAL_ERROR;
goto cleanup;
}
diff --git a/lib/session_pack.c b/lib/session_pack.c
index b655b71289..a6d11c4cfc 100644
--- a/lib/session_pack.c
+++ b/lib/session_pack.c
@@ -143,7 +143,8 @@ _gnutls_session_pack(gnutls_session_t session,
}
break;
default:
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ ret = gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ goto fail;
}
@@ -775,7 +776,7 @@ pack_psk_auth_info(gnutls_session_t session, gnutls_buffer_st * ps)
if (info == NULL)
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
- username_len = strlen(info->username) + 1; /* include the terminating null */
+ username_len = info->username_len;
hint_len = strlen(info->hint) + 1; /* include the terminating null */
size_offset = ps->length;
@@ -823,7 +824,7 @@ unpack_psk_auth_info(gnutls_session_t session, gnutls_buffer_st * ps)
return GNUTLS_E_INVALID_REQUEST;
BUFFER_POP_NUM(ps, username_size);
- if (username_size > sizeof(info->username)) {
+ if (username_size > (sizeof(info->username) - 1)) {
gnutls_assert();
return GNUTLS_E_INTERNAL_ERROR;
}
@@ -832,6 +833,10 @@ unpack_psk_auth_info(gnutls_session_t session, gnutls_buffer_st * ps)
if (username_size == 0)
info->username[0] = 0;
+ /* append a null terminator and set length */
+ info->username[username_size] = 0;
+ info->username_len = username_size;
+
BUFFER_POP_NUM(ps, hint_size);
if (hint_size > sizeof(info->hint)) {
gnutls_assert();
diff --git a/lib/state.c b/lib/state.c
index dff7312a87..7d0a77dc95 100644
--- a/lib/state.c
+++ b/lib/state.c
@@ -54,6 +54,10 @@
#include "tls13/session_ticket.h"
#include "ext/cert_types.h"
#include "locks.h"
+#include "kx.h"
+#ifdef HAVE_VALGRIND_MEMCHECK_H
+#include <valgrind/memcheck.h>
+#endif
/* to be used by supplemental data support to disable TLS1.3
* when supplemental data have been globally registered */
@@ -229,6 +233,32 @@ gnutls_compression_get(gnutls_session_t session)
return GNUTLS_COMP_NULL;
}
+/**
+ * gnutls_prf_hash_get:
+ * @session: is a #gnutls_session_t type.
+ *
+ * Get the currently used hash algorithm. In TLS 1.3, the hash
+ * algorithm is used for both the key derivation function and
+ * handshake message authentication code. In TLS 1.2, it matches the
+ * hash algorithm used for PRF.
+ *
+ * Returns: the currently used hash algorithm, a
+ * #gnutls_digest_algorithm_t value.
+ *
+ * Since: 3.6.13
+ **/
+gnutls_digest_algorithm_t
+gnutls_prf_hash_get(const gnutls_session_t session)
+{
+ if (session->security_parameters.prf == NULL)
+ return gnutls_assert_val(GNUTLS_DIG_UNKNOWN);
+
+ if (session->security_parameters.prf->id >= GNUTLS_MAC_AEAD)
+ return gnutls_assert_val(GNUTLS_DIG_UNKNOWN);
+
+ return (gnutls_digest_algorithm_t)session->security_parameters.prf->id;
+}
+
void reset_binders(gnutls_session_t session)
{
_gnutls_free_temp_key_datum(&session->key.binders[0].psk);
@@ -537,10 +567,25 @@ int gnutls_init(gnutls_session_t * session, unsigned int flags)
UINT32_MAX;
}
- /* everything else not initialized here is initialized
- * as NULL or 0. This is why calloc is used.
+ /* Everything else not initialized here is initialized as NULL
+ * or 0. This is why calloc is used. However, we want to
+ * ensure that certain portions of data are initialized at
+ * runtime before being used. Mark such regions with a
+ * valgrind client request as undefined.
*/
-
+#ifdef HAVE_VALGRIND_MEMCHECK_H
+ if (RUNNING_ON_VALGRIND) {
+ if (flags & GNUTLS_CLIENT)
+ VALGRIND_MAKE_MEM_UNDEFINED((*session)->security_parameters.client_random,
+ GNUTLS_RANDOM_SIZE);
+ if (flags & GNUTLS_SERVER) {
+ VALGRIND_MAKE_MEM_UNDEFINED((*session)->security_parameters.server_random,
+ GNUTLS_RANDOM_SIZE);
+ VALGRIND_MAKE_MEM_UNDEFINED((*session)->key.session_ticket_key,
+ TICKET_MASTER_KEY_SIZE);
+ }
+ }
+#endif
handshake_internal_state_clear1(*session);
#ifdef HAVE_WRITEV
@@ -557,6 +602,8 @@ int gnutls_init(gnutls_session_t * session, unsigned int flags)
(*session)->internals.pull_func = system_read;
(*session)->internals.errno_func = system_errno;
+ (*session)->internals.saved_username_size = -1;
+
/* heartbeat timeouts */
(*session)->internals.hb_retrans_timeout_ms = 1000;
(*session)->internals.hb_total_timeout_ms = 60000;
@@ -587,6 +634,9 @@ int gnutls_init(gnutls_session_t * session, unsigned int flags)
if (_gnutls_disable_tls13 != 0)
(*session)->internals.flags |= INT_FLAG_NO_TLS13;
+ /* Install the default keylog function */
+ gnutls_session_set_keylog_function(*session, _gnutls_nss_keylog_func);
+
return 0;
}
@@ -645,6 +695,8 @@ void gnutls_deinit(gnutls_session_t session)
_gnutls_free_datum(&session->internals.resumption_data);
_gnutls_free_datum(&session->internals.dtls.dcookie);
+ for (i = 0; i < session->internals.rexts_size; i++)
+ gnutls_free(session->internals.rexts[i].name);
gnutls_free(session->internals.rexts);
gnutls_free(session->internals.post_handshake_cr_context.data);
diff --git a/lib/stek.c b/lib/stek.c
index 2f885cee37..316555b49a 100644
--- a/lib/stek.c
+++ b/lib/stek.c
@@ -21,6 +21,9 @@
*/
#include "gnutls_int.h"
#include "stek.h"
+#ifdef HAVE_VALGRIND_MEMCHECK_H
+#include <valgrind/memcheck.h>
+#endif
#define NAME_POS (0)
#define KEY_POS (TICKET_KEY_NAME_SIZE)
@@ -143,6 +146,11 @@ static int rotate(gnutls_session_t session)
call_rotation_callback(session, key, t);
session->key.totp.last_result = t;
memcpy(session->key.session_ticket_key, key, sizeof(key));
+#ifdef HAVE_VALGRIND_MEMCHECK_H
+ if (RUNNING_ON_VALGRIND)
+ VALGRIND_MAKE_MEM_DEFINED(session->key.session_ticket_key,
+ TICKET_MASTER_KEY_SIZE);
+#endif
session->key.totp.was_rotated = 1;
} else if (t < 0) {
@@ -323,20 +331,13 @@ int _gnutls_initialize_session_ticket_key_rotation(gnutls_session_t session, con
if (unlikely(session == NULL || key == NULL))
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
- if (session->key.totp.last_result == 0) {
- int64_t t;
- memcpy(session->key.initial_stek, key->data, key->size);
- t = totp_next(session);
- if (t < 0)
- return gnutls_assert_val(t);
-
- session->key.totp.last_result = t;
- session->key.totp.was_rotated = 0;
+ if (unlikely(session->key.totp.last_result != 0))
+ return GNUTLS_E_INVALID_REQUEST;
- return GNUTLS_E_SUCCESS;
- }
+ memcpy(session->key.initial_stek, key->data, key->size);
- return GNUTLS_E_INVALID_REQUEST;
+ session->key.totp.was_rotated = 0;
+ return 0;
}
/*
diff --git a/lib/str-idna.c b/lib/str-idna.c
index a677813363..74b8d220b9 100644
--- a/lib/str-idna.c
+++ b/lib/str-idna.c
@@ -30,12 +30,7 @@
# include <idn2.h>
-#if IDN2_VERSION_NUMBER < 0x02000000
-# define idn2_to_ascii_8z idn2_lookup_u8
-# define ICAST uint8_t
-#else
# define ICAST char
-#endif
/**
* gnutls_idna_map:
@@ -69,7 +64,6 @@ int gnutls_idna_map(const char *input, unsigned ilen, gnutls_datum_t *out, unsig
unsigned int idn2_flags = IDN2_NFC_INPUT;
unsigned int idn2_tflags = IDN2_NFC_INPUT;
-#if IDN2_VERSION_NUMBER >= 0x00140000
/* IDN2_NONTRANSITIONAL automatically converts to lowercase
* IDN2_NFC_INPUT converts to NFC before toASCII conversion
*
@@ -83,15 +77,6 @@ int gnutls_idna_map(const char *input, unsigned ilen, gnutls_datum_t *out, unsig
* 'evil.ca/c.example.com', which seems no good idea. */
idn2_flags |= IDN2_NONTRANSITIONAL | IDN2_USE_STD3_ASCII_RULES;
idn2_tflags |= IDN2_TRANSITIONAL | IDN2_USE_STD3_ASCII_RULES;
-#endif
-
- /* This avoids excessive CPU usage with libidn2 < 2.1.1 */
- if (ilen > 2048) {
- gnutls_assert();
- _gnutls_debug_log("unable to convert name '%.*s' to IDNA format: %s\n",
- (int) ilen, input, idn2_strerror(IDN2_TOO_BIG_DOMAIN));
- return GNUTLS_E_INVALID_UTF8_STRING;
- }
if (ilen == 0) {
out->data = (uint8_t*)gnutls_strdup("");
@@ -138,73 +123,6 @@ int gnutls_idna_map(const char *input, unsigned ilen, gnutls_datum_t *out, unsig
return ret;
}
-#if IDN2_VERSION_NUMBER < 0x02000000
-int _idn2_punycode_decode(
- size_t input_length,
- const char input[],
- size_t *output_length,
- uint32_t output[],
- unsigned char case_flags[]);
-
-static int idn2_to_unicode_8z8z(const char *src, char **dst, unsigned flags)
-{
- int rc, run;
- size_t out_len = 0;
- const char *e, *s;
- char *p = NULL;
-
- for (run = 0; run < 2; run++) {
- if (run) {
- p = malloc(out_len + 1);
- if (!p)
- return IDN2_MALLOC;
- *dst = p;
- }
-
- out_len = 0;
- for (e = s = src; *e; s = e) {
- while (*e && *e != '.')
- e++;
-
- if (e - s > 4 && (s[0] == 'x' || s[0] == 'X') && (s[1] == 'n' || s[1] == 'N') && s[2] == '-' && s[3] == '-') {
- size_t u32len = IDN2_LABEL_MAX_LENGTH * 4;
- uint32_t u32[IDN2_LABEL_MAX_LENGTH * 4];
- uint8_t u8[IDN2_LABEL_MAX_LENGTH + 1];
- size_t u8len;
-
- rc = _idn2_punycode_decode(e - s - 4, s + 4, &u32len, u32, NULL);
- if (rc != IDN2_OK)
- return rc;
-
- u8len = sizeof(u8);
- if (u32_to_u8(u32, u32len, u8, &u8len) == NULL)
- return IDN2_ENCODING_ERROR;
- u8[u8len] = '\0';
-
- if (run)
- memcpy(*dst + out_len, u8, u8len);
- out_len += u8len;
- } else {
- if (run)
- memcpy(*dst + out_len, s, e - s);
- out_len += e - s;
- }
-
- if (*e) {
- e++;
- if (run)
- (*dst)[out_len] = '.';
- out_len++;
- }
- }
- }
-
- (*dst)[out_len] = 0;
-
- return IDN2_OK;
-}
-#endif
-
/**
* gnutls_idna_reverse_map:
* @input: contain the ACE (IDNA) formatted domain name
diff --git a/lib/str.h b/lib/str.h
index 854cca12a6..65d42081e8 100644
--- a/lib/str.h
+++ b/lib/str.h
@@ -70,6 +70,13 @@ inline static unsigned _gnutls_dnsname_is_valid(const char *str, unsigned size)
return 1;
}
+inline static bool _gnutls_has_embedded_null(const char *str, unsigned size)
+{
+ if (strlen(str) != size)
+ return true;
+ return false;
+}
+
void _gnutls_str_cpy(char *dest, size_t dest_tot_size, const char *src);
void _gnutls_str_cat(char *dest, size_t dest_tot_size, const char *src);
diff --git a/lib/system/keys-win.c b/lib/system/keys-win.c
index 678a668e49..f9a4b1ca9e 100644
--- a/lib/system/keys-win.c
+++ b/lib/system/keys-win.c
@@ -26,6 +26,7 @@
#define _WIN32_WINNT 0x600
#endif
+#include <config.h>
#include "gnutls_int.h"
#include "errors.h"
#include <gnutls/gnutls.h>
@@ -45,8 +46,6 @@
#include <winbase.h>
#include <winapifamily.h>
-#define DYN_NCRYPT
-
#ifdef __MINGW32__
# include <_mingw.h>
# ifdef __MINGW64_VERSION_MAJOR
@@ -234,6 +233,7 @@ get_id(const char *url, uint8_t * bin, size_t * bin_size, unsigned cert)
return 0;
}
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
static
void *memrev(unsigned char *pvData, DWORD cbData)
{
@@ -437,6 +437,106 @@ static int capi_info(gnutls_privkey_t key, unsigned int flags, void *userdata)
return -1;
}
+static
+int privkey_import_capi(gnutls_privkey_t pkey, const char *url,
+ priv_st *priv, CRYPT_KEY_PROV_INFO *kpi)
+{
+ HCRYPTPROV hCryptProv = NULL;
+ int ret, enc_too = 0;
+ DWORD i, dwErrCode = 0;
+
+ if (CryptAcquireContextW(&hCryptProv,
+ kpi->pwszContainerName,
+ kpi->pwszProvName,
+ kpi->dwProvType, kpi->dwFlags)) {
+ for (i = 0; i < kpi->cProvParam; i++)
+ if (!CryptSetProvParam(hCryptProv,
+ kpi->rgProvParam[i].
+ dwParam,
+ kpi->rgProvParam[i].
+ pbData,
+ kpi->rgProvParam[i].
+ dwFlags)) {
+ dwErrCode = GetLastError();
+ break;
+ };
+ } else {
+ dwErrCode = GetLastError();
+ }
+
+ if (ERROR_SUCCESS != dwErrCode) {
+ _gnutls_debug_log
+ ("error in getting cryptprov: %d from %s\n",
+ (int)GetLastError(), url);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
+ goto cleanup;
+ }
+
+ {
+ BYTE buf[100 + sizeof(PROV_ENUMALGS_EX) * 2];
+ PROV_ENUMALGS_EX *pAlgo = (PROV_ENUMALGS_EX *) buf;
+ DWORD len = sizeof(buf);
+
+ if (CryptGetProvParam
+ (hCryptProv, PP_ENUMALGS_EX, buf, &len,
+ CRYPT_FIRST)) {
+ DWORD hash = 0;
+ do {
+ switch (pAlgo->aiAlgid) {
+ case CALG_RSA_SIGN:
+ priv->pk = GNUTLS_PK_RSA;
+ enc_too = 1;
+ break;
+ case CALG_DSS_SIGN:
+ priv->pk =
+ priv->pk ==
+ GNUTLS_PK_RSA ?
+ GNUTLS_PK_RSA :
+ GNUTLS_PK_DSA;
+ break;
+ case CALG_SHA1:
+ hash = 1;
+ break;
+ case CALG_SHA_256:
+ hash = 256;
+ break;
+ default:
+ break;
+ }
+
+ len = sizeof(buf); // reset the buffer size
+ } while (CryptGetProvParam
+ (hCryptProv, PP_ENUMALGS_EX, buf, &len,
+ CRYPT_NEXT));
+
+ if (priv->pk == GNUTLS_PK_DSA)
+ priv->sign_algo = GNUTLS_SIGN_DSA_SHA1;
+ else
+ priv->sign_algo =
+ (hash >
+ 1) ? GNUTLS_SIGN_RSA_SHA256 :
+ GNUTLS_SIGN_RSA_SHA1;
+ }
+ }
+
+ priv->hCryptProv = hCryptProv;
+ priv->dwKeySpec = kpi->dwKeySpec;
+
+ ret = gnutls_privkey_import_ext3(pkey, priv, capi_sign,
+ (enc_too !=
+ 0) ? capi_decrypt : NULL,
+ capi_deinit, capi_info, 0);
+ cleanup:
+ if (ret < 0) {
+ if (hCryptProv != 0)
+ CryptReleaseContext(hCryptProv, 0);
+ }
+ return ret;
+}
+#endif /* WINAPI_PARTITION_DESKTOP */
+
static
int cng_sign(gnutls_privkey_t key, void *userdata,
const gnutls_datum_t * raw_data, gnutls_datum_t * signature)
@@ -597,6 +697,70 @@ static int cng_info(gnutls_privkey_t key, unsigned int flags, void *userdata)
return -1;
}
+static
+int privkey_import_ncrypt(gnutls_privkey_t pkey, const char *url,
+ priv_st *priv, CRYPT_KEY_PROV_INFO *kpi, NCRYPT_PROV_HANDLE *sctx)
+{
+ SECURITY_STATUS r;
+ NCRYPT_KEY_HANDLE nc = NULL;
+ int ret, enc_too = 0;
+ WCHAR algo_str[64];
+ DWORD algo_str_size = 0;
+
+ r = pNCryptOpenKey(*sctx, &nc, kpi->pwszContainerName, 0, 0);
+ if (FAILED(r)) {
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
+ goto cleanup;
+ }
+
+ r = pNCryptGetProperty(nc, NCRYPT_ALGORITHM_PROPERTY,
+ (BYTE *) algo_str, sizeof(algo_str),
+ &algo_str_size, 0);
+ if (FAILED(r)) {
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
+ goto cleanup;
+ }
+
+ if (StrCmpW(algo_str, BCRYPT_RSA_ALGORITHM) == 0) {
+ priv->pk = GNUTLS_PK_RSA;
+ priv->sign_algo = GNUTLS_SIGN_RSA_SHA256;
+ enc_too = 1;
+ } else if (StrCmpW(algo_str, BCRYPT_DSA_ALGORITHM) == 0) {
+ priv->pk = GNUTLS_PK_DSA;
+ priv->sign_algo = GNUTLS_SIGN_DSA_SHA1;
+ } else if (StrCmpW(algo_str, BCRYPT_ECDSA_P256_ALGORITHM) == 0) {
+ priv->pk = GNUTLS_PK_EC;
+ priv->sign_algo = GNUTLS_SIGN_ECDSA_SHA256;
+ } else if (StrCmpW(algo_str, BCRYPT_ECDSA_P384_ALGORITHM) == 0) {
+ priv->pk = GNUTLS_PK_EC;
+ priv->sign_algo = GNUTLS_SIGN_ECDSA_SHA384;
+ } else if (StrCmpW(algo_str, BCRYPT_ECDSA_P521_ALGORITHM) == 0) {
+ priv->pk = GNUTLS_PK_EC;
+ priv->sign_algo = GNUTLS_SIGN_ECDSA_SHA512;
+ } else {
+ _gnutls_debug_log("unknown key algorithm: %ls\n",
+ algo_str);
+ ret = gnutls_assert_val(GNUTLS_E_UNKNOWN_PK_ALGORITHM);
+ goto cleanup;
+ }
+ priv->nc = nc;
+
+ ret = gnutls_privkey_import_ext3(pkey, priv, cng_sign,
+ (enc_too !=
+ 0) ? cng_decrypt : NULL,
+ cng_deinit, cng_info, 0);
+ cleanup:
+ if (ret < 0) {
+ if (nc != 0)
+ pNCryptFreeObject(nc);
+ }
+ return ret;
+}
+
/*-
* _gnutls_privkey_import_system:
* @pkey: The private key
@@ -613,25 +777,20 @@ static int cng_info(gnutls_privkey_t key, unsigned int flags, void *userdata)
-*/
int _gnutls_privkey_import_system_url(gnutls_privkey_t pkey, const char *url)
{
-#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+#if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && _WIN32_WINNT < 0x0A00 /*win10 */
return gnutls_assert_val(GNUTLS_E_UNIMPLEMENTED_FEATURE);
-#else
+#else /* WINAPI_PARTITION_DESKTOP || _WIN32_WINNT_WIN10 */
uint8_t id[MAX_WID_SIZE];
HCERTSTORE store = NULL;
size_t id_size;
const CERT_CONTEXT *cert = NULL;
CRYPT_HASH_BLOB blob;
CRYPT_KEY_PROV_INFO *kpi = NULL;
- NCRYPT_KEY_HANDLE nc = NULL;
- HCRYPTPROV hCryptProv = NULL;
NCRYPT_PROV_HANDLE sctx = NULL;
DWORD kpi_size;
SECURITY_STATUS r;
- int ret, enc_too = 0;
- WCHAR algo_str[64];
- DWORD algo_str_size = 0;
+ int ret;
priv_st *priv;
- DWORD i, dwErrCode = 0;
if (ncrypt_init == 0)
return gnutls_assert_val(GNUTLS_E_UNIMPLEMENTED_FEATURE);
@@ -702,157 +861,31 @@ int _gnutls_privkey_import_system_url(gnutls_privkey_t pkey, const char *url)
r = pNCryptOpenStorageProvider(&sctx, kpi->pwszProvName, 0);
if (!FAILED(r)) { /* if this works carry on with CNG */
- r = pNCryptOpenKey(sctx, &nc, kpi->pwszContainerName, 0, 0);
- if (FAILED(r)) {
- ret =
- gnutls_assert_val
- (GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
- goto cleanup;
- }
-
- r = pNCryptGetProperty(nc, NCRYPT_ALGORITHM_PROPERTY,
- (BYTE *) algo_str, sizeof(algo_str),
- &algo_str_size, 0);
- if (FAILED(r)) {
- ret =
- gnutls_assert_val
- (GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
- goto cleanup;
- }
-
- if (StrCmpW(algo_str, BCRYPT_RSA_ALGORITHM) == 0) {
- priv->pk = GNUTLS_PK_RSA;
- priv->sign_algo = GNUTLS_SIGN_RSA_SHA256;
- enc_too = 1;
- } else if (StrCmpW(algo_str, BCRYPT_DSA_ALGORITHM) == 0) {
- priv->pk = GNUTLS_PK_DSA;
- priv->sign_algo = GNUTLS_SIGN_DSA_SHA1;
- } else if (StrCmpW(algo_str, BCRYPT_ECDSA_P256_ALGORITHM) == 0) {
- priv->pk = GNUTLS_PK_EC;
- priv->sign_algo = GNUTLS_SIGN_ECDSA_SHA256;
- } else if (StrCmpW(algo_str, BCRYPT_ECDSA_P384_ALGORITHM) == 0) {
- priv->pk = GNUTLS_PK_EC;
- priv->sign_algo = GNUTLS_SIGN_ECDSA_SHA384;
- } else if (StrCmpW(algo_str, BCRYPT_ECDSA_P521_ALGORITHM) == 0) {
- priv->pk = GNUTLS_PK_EC;
- priv->sign_algo = GNUTLS_SIGN_ECDSA_SHA512;
- } else {
- _gnutls_debug_log("unknown key algorithm: %ls\n",
- algo_str);
- ret = gnutls_assert_val(GNUTLS_E_UNKNOWN_PK_ALGORITHM);
- goto cleanup;
- }
- priv->nc = nc;
-
- ret = gnutls_privkey_import_ext3(pkey, priv, cng_sign,
- (enc_too !=
- 0) ? cng_decrypt : NULL,
- cng_deinit, cng_info, 0);
+ ret = privkey_import_ncrypt(pkey, url, priv, kpi, &sctx);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
} else {
+#if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+ /* CAPI is not supported in UWP */
+ return gnutls_assert_val(GNUTLS_E_UNIMPLEMENTED_FEATURE);
+#else /* WINAPI_PARTITION_DESKTOP */
/* this should be CAPI */
_gnutls_debug_log
("error in opening CNG keystore: %x from %ls\n", (int)r,
kpi->pwszProvName);
- if (CryptAcquireContextW(&hCryptProv,
- kpi->pwszContainerName,
- kpi->pwszProvName,
- kpi->dwProvType, kpi->dwFlags)) {
- for (i = 0; i < kpi->cProvParam; i++)
- if (!CryptSetProvParam(hCryptProv,
- kpi->rgProvParam[i].
- dwParam,
- kpi->rgProvParam[i].
- pbData,
- kpi->rgProvParam[i].
- dwFlags)) {
- dwErrCode = GetLastError();
- break;
- };
- } else {
- dwErrCode = GetLastError();
- }
-
- if (ERROR_SUCCESS != dwErrCode) {
- _gnutls_debug_log
- ("error in getting cryptprov: %d from %s\n",
- (int)GetLastError(), url);
- ret =
- gnutls_assert_val
- (GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
- goto cleanup;
- }
-
- {
- BYTE buf[100 + sizeof(PROV_ENUMALGS_EX) * 2];
- PROV_ENUMALGS_EX *pAlgo = (PROV_ENUMALGS_EX *) buf;
- DWORD len = sizeof(buf);
-
- if (CryptGetProvParam
- (hCryptProv, PP_ENUMALGS_EX, buf, &len,
- CRYPT_FIRST)) {
- DWORD hash = 0;
- do {
- switch (pAlgo->aiAlgid) {
- case CALG_RSA_SIGN:
- priv->pk = GNUTLS_PK_RSA;
- enc_too = 1;
- break;
- case CALG_DSS_SIGN:
- priv->pk =
- priv->pk ==
- GNUTLS_PK_RSA ?
- GNUTLS_PK_RSA :
- GNUTLS_PK_DSA;
- break;
- case CALG_SHA1:
- hash = 1;
- break;
- case CALG_SHA_256:
- hash = 256;
- break;
- default:
- break;
- }
-
- len = sizeof(buf); // reset the buffer size
- } while (CryptGetProvParam
- (hCryptProv, PP_ENUMALGS_EX, buf, &len,
- CRYPT_NEXT));
-
- if (priv->pk == GNUTLS_PK_DSA)
- priv->sign_algo = GNUTLS_SIGN_DSA_SHA1;
- else
- priv->sign_algo =
- (hash >
- 1) ? GNUTLS_SIGN_RSA_SHA256 :
- GNUTLS_SIGN_RSA_SHA1;
- }
- }
-
- priv->hCryptProv = hCryptProv;
- priv->dwKeySpec = kpi->dwKeySpec;
-
- ret = gnutls_privkey_import_ext3(pkey, priv, capi_sign,
- (enc_too !=
- 0) ? capi_decrypt : NULL,
- capi_deinit, capi_info, 0);
+ ret = privkey_import_capi(pkey, url, priv, kpi);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
+#endif /* WINAPI_PARTITION_DESKTOP */
}
ret = 0;
cleanup:
if (ret < 0) {
- if (nc != 0)
- pNCryptFreeObject(nc);
- if (hCryptProv != 0)
- CryptReleaseContext(hCryptProv, 0);
gnutls_free(priv);
}
if (sctx != 0)
@@ -865,7 +898,7 @@ int _gnutls_privkey_import_system_url(gnutls_privkey_t pkey, const char *url)
CertCloseStore(store, 0);
return ret;
-#endif
+#endif /* WINAPI_PARTITION_DESKTOP || _WIN32_WINNT_WIN10 */
}
int _gnutls_x509_crt_import_system_url(gnutls_x509_crt_t crt, const char *url)
@@ -1487,13 +1520,16 @@ int _gnutls_system_key_init(void)
ret = GNUTLS_E_CRYPTO_INIT_FAILED;
goto fail;
}
-#endif
ncrypt_init = 1;
return 0;
fail:
FreeLibrary(ncrypt_lib);
return ret;
+#else
+ ncrypt_init = 1;
+ return 0;
+#endif
}
void _gnutls_system_key_deinit(void)
diff --git a/lib/tls-sig.c b/lib/tls-sig.c
index 779e02c18f..7d2b04323e 100644
--- a/lib/tls-sig.c
+++ b/lib/tls-sig.c
@@ -160,7 +160,7 @@ _gnutls_handshake_sign_data10(gnutls_session_t session,
dconcat.data = concat;
dconcat.size = _gnutls_hash_get_algo_len(me);
- ret = gnutls_privkey_sign_hash(pkey, me->id, GNUTLS_PRIVKEY_SIGN_FLAG_TLS1_RSA,
+ ret = gnutls_privkey_sign_hash(pkey, MAC_TO_DIG(me->id), GNUTLS_PRIVKEY_SIGN_FLAG_TLS1_RSA,
&dconcat, signature);
if (ret < 0) {
gnutls_assert();
@@ -788,7 +788,7 @@ _gnutls_handshake_sign_crt_vrfy10(gnutls_session_t session,
dconcat.data = concat;
dconcat.size = _gnutls_hash_get_algo_len(me);
- ret = gnutls_privkey_sign_hash(pkey, me->id, GNUTLS_PRIVKEY_SIGN_FLAG_TLS1_RSA,
+ ret = gnutls_privkey_sign_hash(pkey, MAC_TO_DIG(me->id), GNUTLS_PRIVKEY_SIGN_FLAG_TLS1_RSA,
&dconcat, signature);
if (ret < 0) {
gnutls_assert();
diff --git a/lib/tls13-sig.c b/lib/tls13-sig.c
index e15d8305e2..b14390e353 100644
--- a/lib/tls13-sig.c
+++ b/lib/tls13-sig.c
@@ -104,7 +104,7 @@ _gnutls13_handshake_verify_data(gnutls_session_t session,
goto cleanup;
}
- ret = gnutls_hash_fast(session->security_parameters.prf->id,
+ ret = gnutls_hash_fast(MAC_TO_DIG(session->security_parameters.prf->id),
session->internals.handshake_hash_buffer.data,
session->internals.handshake_hash_buffer_prev_len,
prefix);
@@ -186,7 +186,7 @@ _gnutls13_handshake_sign_data(gnutls_session_t session,
goto cleanup;
}
- ret = gnutls_hash_fast(session->security_parameters.prf->id,
+ ret = gnutls_hash_fast(MAC_TO_DIG(session->security_parameters.prf->id),
session->internals.handshake_hash_buffer.data,
session->internals.handshake_hash_buffer.length,
tmp);
diff --git a/lib/tls13/finished.c b/lib/tls13/finished.c
index 35ab87f9af..68eab993ea 100644
--- a/lib/tls13/finished.c
+++ b/lib/tls13/finished.c
@@ -45,7 +45,7 @@ int _gnutls13_compute_finished(const mac_entry_st *prf,
if (ret < 0)
return gnutls_assert_val(ret);
- ret = gnutls_hash_fast(prf->id,
+ ret = gnutls_hash_fast(MAC_TO_DIG(prf->id),
handshake_hash_buffer->data,
handshake_hash_buffer->length,
ts_hash);
diff --git a/lib/verify-tofu.c b/lib/verify-tofu.c
index 36328e04af..5cedeed118 100644
--- a/lib/verify-tofu.c
+++ b/lib/verify-tofu.c
@@ -326,7 +326,7 @@ static int verify_pubkey(const char *file,
const char *host, const char *service,
const gnutls_datum_t * pubkey)
{
- FILE *fd;
+ FILE *fp;
char *line = NULL;
size_t line_size = 0;
int ret, l2, mismatch = 0;
@@ -343,14 +343,14 @@ static int verify_pubkey(const char *file,
if (service != NULL)
service_len = strlen(service);
- fd = fopen(file, "rb");
- if (fd == NULL) {
+ fp = fopen(file, "rbe");
+ if (fp == NULL) {
ret = gnutls_assert_val(GNUTLS_E_FILE_ERROR);
goto cleanup;
}
do {
- l2 = getline(&line, &line_size, fd);
+ l2 = getline(&line, &line_size, fp);
if (l2 > 0) {
ret =
parse_line(line, host, host_len, service,
@@ -371,8 +371,8 @@ static int verify_pubkey(const char *file,
cleanup:
free(line);
- if (fd != NULL)
- fclose(fd);
+ if (fp != NULL)
+ fclose(fp);
gnutls_free(b64key.data);
return ret;
@@ -400,7 +400,7 @@ int store_pubkey(const char *db_name, const char *host,
const char *service, time_t expiration,
const gnutls_datum_t * pubkey)
{
- FILE *fd = NULL;
+ FILE *fp = NULL;
gnutls_datum_t b64key = { NULL, 0 };
int ret;
@@ -414,8 +414,8 @@ int store_pubkey(const char *db_name, const char *host,
goto cleanup;
}
- fd = fopen(db_name, "ab+");
- if (fd == NULL) {
+ fp = fopen(db_name, "abe+");
+ if (fp == NULL) {
ret = gnutls_assert_val(GNUTLS_E_FILE_ERROR);
goto cleanup;
}
@@ -425,14 +425,14 @@ int store_pubkey(const char *db_name, const char *host,
if (host == NULL)
host = "*";
- fprintf(fd, "|g0|%s|%s|%lu|%.*s\n", host, service,
+ fprintf(fp, "|g0|%s|%s|%lu|%.*s\n", host, service,
(unsigned long) expiration, b64key.size, b64key.data);
ret = 0;
cleanup:
- if (fd != NULL)
- fclose(fd);
+ if (fp != NULL)
+ fclose(fp);
gnutls_mutex_unlock(&_gnutls_file_mutex);
gnutls_free(b64key.data);
@@ -446,11 +446,11 @@ int store_commitment(const char *db_name, const char *host,
gnutls_digest_algorithm_t hash_algo,
const gnutls_datum_t * hash)
{
- FILE *fd;
+ FILE *fp;
char buffer[MAX_HASH_SIZE * 2 + 1];
- fd = fopen(db_name, "ab+");
- if (fd == NULL)
+ fp = fopen(db_name, "abe+");
+ if (fp == NULL)
return gnutls_assert_val(GNUTLS_E_FILE_ERROR);
if (service == NULL)
@@ -458,12 +458,12 @@ int store_commitment(const char *db_name, const char *host,
if (host == NULL)
host = "*";
- fprintf(fd, "|c0|%s|%s|%lu|%u|%s\n", host, service,
+ fprintf(fp, "|c0|%s|%s|%lu|%u|%s\n", host, service,
(unsigned long) expiration, (unsigned) hash_algo,
_gnutls_bin2hex(hash->data, hash->size, buffer,
sizeof(buffer), NULL));
- fclose(fd);
+ fclose(fp);
return 0;
}
diff --git a/lib/x509/common.c b/lib/x509/common.c
index 4939d07d2b..a1f6d62e13 100644
--- a/lib/x509/common.c
+++ b/lib/x509/common.c
@@ -39,19 +39,9 @@ static int
data2hex(const void *data, size_t data_size,
gnutls_datum_t *out);
-struct oid_to_string {
- const char *oid;
- unsigned oid_size;
- const char *ldap_desc;
- unsigned ldap_desc_size;
- const char *asn_desc; /* description in the pkix file if complex type */
- unsigned int etype; /* the libtasn1 ASN1_ETYPE or INVALID
- * if cannot be simply parsed */
-};
-
#define ENTRY(oid, ldap, asn, etype) {oid, sizeof(oid)-1, ldap, sizeof(ldap)-1, asn, etype}
-/* when there is no ldap description */
+/* when there is no name description */
#define ENTRY_ND(oid, asn, etype) {oid, sizeof(oid)-1, NULL, 0, asn, etype}
/* This list contains all the OIDs that may be
@@ -144,18 +134,18 @@ static const struct oid_to_string _oid2str[] = {
{NULL, 0, NULL, 0, NULL, 0}
};
-static const struct oid_to_string *get_oid_entry(const char *oid)
+const struct oid_to_string *_gnutls_oid_get_entry(const struct oid_to_string *ots, const char *oid)
{
unsigned int i = 0;
unsigned len = strlen(oid);
do {
- if (len == _oid2str[i].oid_size &&
- strcmp(_oid2str[i].oid, oid) == 0)
- return &_oid2str[i];
+ if (len == ots[i].oid_size &&
+ strcmp(ots[i].oid, oid) == 0)
+ return &ots[i];
i++;
}
- while (_oid2str[i].oid != NULL);
+ while (ots[i].oid != NULL);
return NULL;
}
@@ -165,9 +155,9 @@ const char *_gnutls_ldap_string_to_oid(const char *str, unsigned str_len)
unsigned int i = 0;
do {
- if ((_oid2str[i].ldap_desc != NULL) &&
- (str_len == _oid2str[i].ldap_desc_size) &&
- (c_strncasecmp(_oid2str[i].ldap_desc, str, str_len) ==
+ if ((_oid2str[i].name_desc != NULL) &&
+ (str_len == _oid2str[i].name_desc_size) &&
+ (c_strncasecmp(_oid2str[i].name_desc, str, str_len) ==
0))
return _oid2str[i].oid;
i++;
@@ -242,18 +232,7 @@ static int str_escape(const gnutls_datum_t * str, gnutls_datum_t * escaped)
**/
int gnutls_x509_dn_oid_known(const char *oid)
{
- unsigned int i = 0;
- unsigned len = strlen(oid);
-
- do {
- if (len == _oid2str[i].oid_size &&
- strcmp(_oid2str[i].oid, oid) == 0)
- return 1;
- i++;
- }
- while (_oid2str[i].oid != NULL);
-
- return 0;
+ return _gnutls_oid_get_entry(_oid2str, oid) != NULL;
}
/**
@@ -272,17 +251,10 @@ int gnutls_x509_dn_oid_known(const char *oid)
**/
const char *gnutls_x509_dn_oid_name(const char *oid, unsigned int flags)
{
- unsigned int i = 0;
- unsigned len = strlen(oid);
-
- do {
- if ((_oid2str[i].oid_size == len) &&
- strcmp(_oid2str[i].oid, oid) == 0 && _oid2str[i].ldap_desc != NULL)
- return _oid2str[i].ldap_desc;
- i++;
- }
- while (_oid2str[i].oid != NULL);
+ const struct oid_to_string *entry =_gnutls_oid_get_entry(_oid2str, oid);
+ if (entry && entry->name_desc)
+ return entry->name_desc;
if (flags & GNUTLS_X509_DN_OID_RETURN_OID)
return oid;
else
@@ -450,7 +422,7 @@ _gnutls_x509_dn_to_string(const char *oid, void *value,
return GNUTLS_E_INVALID_REQUEST;
}
- oentry = get_oid_entry(oid);
+ oentry = _gnutls_oid_get_entry(_oid2str, oid);
if (oentry == NULL) { /* unknown OID -> hex */
unknown_oid:
ret = data2hex(value, value_size, str);
@@ -1469,7 +1441,7 @@ _gnutls_x509_encode_and_write_attribute(const char *given_oid,
int result;
const struct oid_to_string *oentry;
- oentry = get_oid_entry(given_oid);
+ oentry = _gnutls_oid_get_entry(_oid2str, given_oid);
if (oentry == NULL) {
gnutls_assert();
_gnutls_debug_log("Cannot find OID: %s\n", given_oid);
@@ -1809,29 +1781,20 @@ gnutls_x509_crt_t *_gnutls_sort_clist(gnutls_x509_crt_t
int _gnutls_check_if_sorted(gnutls_x509_crt_t * crt, int nr)
{
- void *prev_dn = NULL;
- void *dn;
- size_t prev_dn_size = 0, dn_size;
int i, ret;
/* check if the X.509 list is ordered */
if (nr > 1) {
for (i = 0; i < nr; i++) {
if (i > 0) {
- dn = crt[i]->raw_dn.data;
- dn_size = crt[i]->raw_dn.size;
-
- if (dn_size != prev_dn_size
- || memcmp(dn, prev_dn, dn_size) != 0) {
+ if (!_gnutls_x509_compare_raw_dn(&crt[i]->raw_dn,
+ &crt[i-1]->raw_issuer_dn)) {
ret =
gnutls_assert_val
(GNUTLS_E_CERTIFICATE_LIST_UNSORTED);
goto cleanup;
}
}
-
- prev_dn = crt[i]->raw_issuer_dn.data;
- prev_dn_size = crt[i]->raw_issuer_dn.size;
}
}
ret = 0;
@@ -1926,3 +1889,23 @@ gnutls_gost_paramset_t gnutls_oid_to_gost_paramset(const char *oid)
else
return gnutls_assert_val(GNUTLS_GOST_PARAMSET_UNKNOWN);
}
+
+int _gnutls_x509_get_version(ASN1_TYPE root, const char *name)
+{
+ uint8_t version[8];
+ int len, result;
+
+ len = sizeof(version);
+ result = asn1_read_value(root, name, version, &len);
+ if (result != ASN1_SUCCESS) {
+ if (result == ASN1_ELEMENT_NOT_FOUND)
+ return 1; /* the DEFAULT version */
+ gnutls_assert();
+ return _gnutls_asn2err(result);
+ }
+
+ if (len != 1 || version[0] >= 0x80)
+ return gnutls_assert_val(GNUTLS_E_ASN1_DER_ERROR);
+
+ return (int) version[0] + 1;
+}
diff --git a/lib/x509/common.h b/lib/x509/common.h
index 498ccc4e97..483bd1de6c 100644
--- a/lib/x509/common.h
+++ b/lib/x509/common.h
@@ -114,6 +114,18 @@
#define ASN1_NULL "\x05\x00"
#define ASN1_NULL_SIZE 2
+struct oid_to_string {
+ const char *oid;
+ unsigned oid_size;
+ const char *name_desc;
+ unsigned name_desc_size;
+ const char *asn_desc; /* description in the pkix file if complex type */
+ unsigned int etype; /* the libtasn1 ASN1_ETYPE or INVALID
+ * if cannot be simply parsed */
+};
+
+const struct oid_to_string *_gnutls_oid_get_entry(const struct oid_to_string *ots, const char *oid);
+
int _gnutls_x509_set_time(ASN1_TYPE c2, const char *where, time_t tim,
int force_general);
int
@@ -264,6 +276,8 @@ int _gnutls_x509_decode_ext(const gnutls_datum_t *der, gnutls_x509_ext_st *out);
int _gnutls_x509_raw_crt_to_raw_pubkey(const gnutls_datum_t * cert,
gnutls_datum_t * rpubkey);
+int _gnutls_x509_get_version(ASN1_TYPE root, const char *name);
+
int x509_crt_to_raw_pubkey(gnutls_x509_crt_t crt,
gnutls_datum_t * rpubkey);
diff --git a/lib/x509/crl.c b/lib/x509/crl.c
index 82deb5e60a..76d90925e8 100644
--- a/lib/x509/crl.c
+++ b/lib/x509/crl.c
@@ -484,23 +484,12 @@ gnutls_x509_crl_get_signature(gnutls_x509_crl_t crl,
**/
int gnutls_x509_crl_get_version(gnutls_x509_crl_t crl)
{
- uint8_t version[8];
- int len, result;
-
if (crl == NULL) {
gnutls_assert();
return GNUTLS_E_INVALID_REQUEST;
}
- len = sizeof(version);
- if ((result =
- asn1_read_value(crl->crl, "tbsCertList.version", version,
- &len)) != ASN1_SUCCESS) {
- gnutls_assert();
- return _gnutls_asn2err(result);
- }
-
- return (int) version[0] + 1;
+ return _gnutls_x509_get_version(crl->crl, "tbsCertList.version");
}
/**
diff --git a/lib/x509/dn.c b/lib/x509/dn.c
index 8d428e9b3f..33739e2271 100644
--- a/lib/x509/dn.c
+++ b/lib/x509/dn.c
@@ -982,13 +982,56 @@ int
_gnutls_x509_compare_raw_dn(const gnutls_datum_t * dn1,
const gnutls_datum_t * dn2)
{
+ int ret;
+ gnutls_datum_t str1, str2;
+
+ /* Simple case of completely identical? */
+
+ if (dn1->size == dn2->size) {
+ if (memcmp(dn1->data, dn2->data, dn2->size) == 0) {
+ return 1;
+ }
+ }
+
+ /* RFC5280 (https://tools.ietf.org/html/rfc5280#section-7.1)
+ * requires that the LDAP StringPrep profile and caseIgnoreMatch
+ * must be used for this comparison. We do not use that but
+ * instead we do a simpler comparison that ignores the tags used
+ * such as `UTF8String` and `PrintableString`. */
- if (dn1->size != dn2->size) {
+ if ((dn1->size == 0) || (dn2->size == 0)) {
+ gnutls_assert();
+ return 0;
+ }
+
+ ret = gnutls_x509_rdn_get2(dn1, &str1, 0);
+ if (ret < 0) {
+ gnutls_assert();
return 0;
}
- if (memcmp(dn1->data, dn2->data, dn2->size) != 0) {
+
+ ret = gnutls_x509_rdn_get2(dn2, &str2, 0);
+ if (ret < 0) {
gnutls_assert();
+ _gnutls_free_datum(&str1);
return 0;
}
- return 1; /* they match */
+
+ if (str1.size != str2.size) {
+ ret = 0;
+ goto cleanup;
+ }
+ if (memcmp(str1.data, str2.data, str2.size) != 0) {
+ gnutls_assert();
+ ret = 0;
+ goto cleanup;
+ }
+
+ ret = 1; /* they match */
+
+cleanup:
+ _gnutls_free_datum(&str1);
+ _gnutls_free_datum(&str2);
+
+ return ret;
}
diff --git a/lib/x509/email-verify.c b/lib/x509/email-verify.c
index 4eee0699bc..053e512872 100644
--- a/lib/x509/email-verify.c
+++ b/lib/x509/email-verify.c
@@ -26,13 +26,6 @@
#include "errors.h"
#include <system.h>
-static int has_embedded_null(const char *str, unsigned size)
-{
- if (strlen(str) != size)
- return 1;
- return 0;
-}
-
/**
* gnutls_x509_crt_check_email:
* @cert: should contain an gnutls_x509_crt_t type
@@ -88,7 +81,7 @@ gnutls_x509_crt_check_email(gnutls_x509_crt_t cert,
if (ret == GNUTLS_SAN_RFC822NAME) {
found_rfc822name = 1;
- if (has_embedded_null(rfc822name, rfc822namesize)) {
+ if (_gnutls_has_embedded_null(rfc822name, rfc822namesize)) {
_gnutls_debug_log("certificate has %s with embedded null in rfc822name\n", rfc822name);
continue;
}
@@ -130,7 +123,7 @@ gnutls_x509_crt_check_email(gnutls_x509_crt_t cert,
goto cleanup;
}
- if (has_embedded_null(rfc822name, rfc822namesize)) {
+ if (_gnutls_has_embedded_null(rfc822name, rfc822namesize)) {
_gnutls_debug_log("certificate has EMAIL %s with embedded null in name\n", rfc822name);
ret = 0;
goto cleanup;
diff --git a/lib/x509/hostname-verify.c b/lib/x509/hostname-verify.c
index 967d9b821a..6ef8ba0303 100644
--- a/lib/x509/hostname-verify.c
+++ b/lib/x509/hostname-verify.c
@@ -86,13 +86,6 @@ check_ip(gnutls_x509_crt_t cert, const void *ip, unsigned ip_size)
return 0;
}
-static int has_embedded_null(const char *str, unsigned size)
-{
- if (strlen(str) != size)
- return 1;
- return 0;
-}
-
/**
* gnutls_x509_crt_check_ip:
* @cert: should contain an gnutls_x509_crt_t type
@@ -227,7 +220,7 @@ gnutls_x509_crt_check_hostname2(gnutls_x509_crt_t cert,
if (ret == GNUTLS_SAN_DNSNAME) {
found_dnsname = 1;
- if (has_embedded_null(dnsname, dnsnamesize)) {
+ if (_gnutls_has_embedded_null(dnsname, dnsnamesize)) {
_gnutls_debug_log("certificate has %s with embedded null in name\n", dnsname);
continue;
}
@@ -275,7 +268,7 @@ gnutls_x509_crt_check_hostname2(gnutls_x509_crt_t cert,
goto cleanup;
}
- if (has_embedded_null(dnsname, dnsnamesize)) {
+ if (_gnutls_has_embedded_null(dnsname, dnsnamesize)) {
_gnutls_debug_log("certificate has CN %s with embedded null in name\n", dnsname);
ret = 0;
goto cleanup;
diff --git a/lib/x509/ocsp.c b/lib/x509/ocsp.c
index 38df56ef1c..caa511e9db 100644
--- a/lib/x509/ocsp.c
+++ b/lib/x509/ocsp.c
@@ -456,25 +456,12 @@ int gnutls_ocsp_resp_export2(gnutls_ocsp_resp_const_t resp, gnutls_datum_t * dat
**/
int gnutls_ocsp_req_get_version(gnutls_ocsp_req_const_t req)
{
- uint8_t version[8];
- int len, ret;
-
if (req == NULL) {
gnutls_assert();
return GNUTLS_E_INVALID_REQUEST;
}
- len = sizeof(version);
- ret =
- asn1_read_value(req->req, "tbsRequest.version", version, &len);
- if (ret != ASN1_SUCCESS) {
- if (ret == ASN1_ELEMENT_NOT_FOUND)
- return 1; /* the DEFAULT version */
- gnutls_assert();
- return _gnutls_asn2err(ret);
- }
-
- return (int) version[0] + 1;
+ return _gnutls_x509_get_version(req->req, "tbsRequest.version");
}
/**
@@ -1153,26 +1140,12 @@ gnutls_ocsp_resp_get_response(gnutls_ocsp_resp_const_t resp,
**/
int gnutls_ocsp_resp_get_version(gnutls_ocsp_resp_const_t resp)
{
- uint8_t version[8];
- int len, ret;
-
if (resp == NULL) {
gnutls_assert();
return GNUTLS_E_INVALID_REQUEST;
}
- len = sizeof(version);
- ret =
- asn1_read_value(resp->resp, "tbsResponseData.version", version,
- &len);
- if (ret != ASN1_SUCCESS) {
- if (ret == ASN1_ELEMENT_NOT_FOUND)
- return 1; /* the DEFAULT version */
- gnutls_assert();
- return _gnutls_asn2err(ret);
- }
-
- return (int) version[0] + 1;
+ return _gnutls_x509_get_version(resp->resp, "tbsResponseData.version");
}
/**
diff --git a/lib/x509/output.c b/lib/x509/output.c
index 2aa78b478b..705e8babfa 100644
--- a/lib/x509/output.c
+++ b/lib/x509/output.c
@@ -448,7 +448,9 @@ print_aki_gn_serial(gnutls_buffer_st * str, gnutls_x509_aki_t aki)
err =
gnutls_x509_aki_get_cert_issuer(aki,
0, &alt_type, &san, &other_oid, &serial);
- if (err < 0) {
+ if (err == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
+ return;
+ } else if (err < 0) {
addf(str, "error: gnutls_x509_aki_get_cert_issuer: %s\n",
gnutls_strerror(err));
return;
@@ -481,10 +483,11 @@ static void print_aki(gnutls_buffer_st * str, gnutls_datum_t *der)
goto cleanup;
}
+ /* Check if an alternative name is there */
+ print_aki_gn_serial(str, aki);
+
err = gnutls_x509_aki_get_id(aki, &id);
if (err == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
- /* Check if an alternative name is there */
- print_aki_gn_serial(str, aki);
goto cleanup;
} else if (err < 0) {
addf(str, "error: gnutls_x509_aki_get_id: %s\n",
@@ -908,7 +911,6 @@ static void print_issuer_sign_tool(gnutls_buffer_st * str, const char *prefix, c
if ((result = _asn1_strict_der_decode(&tmpasn, der->data, der->size, asn1_err)) != ASN1_SUCCESS) {
gnutls_assert();
_gnutls_debug_log("_asn1_strict_der_decode: %s\n", asn1_err);
- asn1_delete_structure(&tmpasn);
goto hexdump;
}
@@ -949,6 +951,8 @@ static void print_issuer_sign_tool(gnutls_buffer_st * str, const char *prefix, c
return;
hexdump:
+ asn1_delete_structure(&tmpasn);
+
addf(str, _("%s\t\t\tASCII: "), prefix);
_gnutls_buffer_asciiprint(str, (char*)der->data, der->size);
@@ -958,6 +962,27 @@ hexdump:
adds(str, "\n");
}
+#define ENTRY(oid, name) {oid, sizeof(oid)-1, name, sizeof(name)-1, NULL, 0}
+
+static const struct oid_to_string cp_oid2str[] = {
+ ENTRY("2.5.29.32.0", "anyPolicy"),
+
+ ENTRY("2.23.140.1.2.1", "CA/B Domain Validated"),
+ ENTRY("2.23.140.1.2.2", "CA/B Organization Validated"),
+ ENTRY("2.23.140.1.2.3", "CA/B Individual Validated"),
+ ENTRY("2.23.140.1.1", "CA/B Extended Validation"),
+
+ /* draft-deremin-rfc4491-bis */
+ ENTRY("1.2.643.100.113.1", "Russian security class KC1"),
+ ENTRY("1.2.643.100.113.2", "Russian security class KC2"),
+ ENTRY("1.2.643.100.113.3", "Russian security class KC3"),
+ ENTRY("1.2.643.100.113.4", "Russian security class KB1"),
+ ENTRY("1.2.643.100.113.5", "Russian security class KB2"),
+ ENTRY("1.2.643.100.113.6", "Russian security class KA1"),
+
+ {NULL, 0, NULL, 0},
+};
+
struct ext_indexes_st {
int san;
int ian;
@@ -1010,6 +1035,7 @@ static void print_extension(gnutls_buffer_st * str, const char *prefix,
struct gnutls_x509_policy_st policy;
gnutls_x509_policies_t policies;
const char *name;
+ const struct oid_to_string *entry;
int x;
err = gnutls_x509_policies_init(&policies);
@@ -1049,7 +1075,11 @@ static void print_extension(gnutls_buffer_st * str, const char *prefix,
critical ? _("critical") :
_("not critical"));
- addf(str, "%s\t\t\t%s\n", prefix, policy.oid);
+ entry = _gnutls_oid_get_entry(cp_oid2str, policy.oid);
+ if (entry != NULL && entry->name_desc != NULL)
+ addf(str, "%s\t\t\t%s (%s)\n", prefix, policy.oid, entry->name_desc);
+ else
+ addf(str, "%s\t\t\t%s\n", prefix, policy.oid);
for (j = 0; j < policy.qualifiers; j++) {
if (policy.qualifier[j].type ==
GNUTLS_X509_QUALIFIER_URI)
@@ -1232,6 +1262,22 @@ static void print_extension(gnutls_buffer_st * str, const char *prefix,
critical ? _("critical") : _("not critical"));
print_issuer_sign_tool(str, prefix, der);
+ } else if (strcmp(oid, "2.5.4.3") == 0) {
+ int ret;
+ gnutls_datum_t tmp = {NULL, 0};
+
+ addf(str, _("%s\t\tCommon Name (%s):\n"),
+ prefix,
+ critical ? _("critical") : _("not critical"));
+
+ ret = _gnutls_x509_decode_string(ASN1_ETYPE_PRINTABLE_STRING, der->data, der->size, &tmp, 0);
+ if (ret < 0) {
+ addf(str, "error: x509_decode_string: %s\n",
+ gnutls_strerror(ret));
+ } else {
+ addf(str, "%s\t\t\t%s\n", prefix, tmp.data);
+ gnutls_free(tmp.data);
+ }
} else {
addf(str, _("%s\t\tUnknown extension %s (%s):\n"),
prefix, oid,
@@ -1281,12 +1327,12 @@ print_extensions(gnutls_buffer_st * str, const char *prefix, int type,
return;
}
+ if (err == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
+ break;
if (err < 0) {
- if (err == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
- break;
addf(str, "error: get_extension_info: %s\n",
gnutls_strerror(err));
- continue;
+ break;
}
if (i == 0)
@@ -2203,9 +2249,7 @@ print_crl(gnutls_buffer_st * str, gnutls_x509_crl_t crl, int notsigned)
/* Version. */
{
int version = gnutls_x509_crl_get_version(crl);
- if (version == GNUTLS_E_ASN1_ELEMENT_NOT_FOUND)
- adds(str, _("\tVersion: 1 (default)\n"));
- else if (version < 0)
+ if (version < 0)
addf(str, "error: get_version: %s\n",
gnutls_strerror(version));
else
@@ -2290,14 +2334,13 @@ print_crl(gnutls_buffer_st * str, gnutls_x509_crl_t crl, int notsigned)
oid,
&sizeof_oid,
&critical);
+ if (err == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
+ break;
if (err < 0) {
- if (err ==
- GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
- break;
addf(str,
"error: get_extension_info: %s\n",
gnutls_strerror(err));
- continue;
+ break;
}
if (i == 0)
@@ -2661,14 +2704,13 @@ print_crq(gnutls_buffer_st * str, gnutls_x509_crq_t cert,
gnutls_x509_crq_get_attribute_info(cert, i,
oid,
&sizeof_oid);
+ if (err == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
+ break;
if (err < 0) {
- if (err ==
- GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
- break;
addf(str,
"error: get_extension_info: %s\n",
gnutls_strerror(err));
- continue;
+ break;
}
if (i == 0)
diff --git a/lib/x509/pkcs12.c b/lib/x509/pkcs12.c
index 8c3310d066..2dc0823905 100644
--- a/lib/x509/pkcs12.c
+++ b/lib/x509/pkcs12.c
@@ -37,10 +37,6 @@
#include "x509_int.h"
#include "pkcs7_int.h"
#include <random.h>
-#include <nettle/pbkdf2.h>
-#if ENABLE_GOST
-#include "../nettle/gost/pbkdf2-gost.h"
-#endif
/* Decodes the PKCS #12 auth_safe, and returns the allocated raw data,
@@ -865,30 +861,23 @@ _gnutls_pkcs12_gost_string_to_key(gnutls_mac_algorithm_t algo,
{
uint8_t temp[96];
size_t temp_len = sizeof(temp);
- unsigned int pass_len = 0;
-
- if (pass)
- pass_len = strlen(pass);
-
- if (algo == GNUTLS_MAC_GOSTR_94)
- pbkdf2_hmac_gosthash94cp(pass_len, (uint8_t *) pass,
- iter,
- salt_size,
- salt, temp_len, temp);
- else if (algo == GNUTLS_MAC_STREEBOG_256)
- pbkdf2_hmac_streebog256(pass_len, (uint8_t *) pass,
- iter,
- salt_size,
- salt, temp_len, temp);
- else if (algo == GNUTLS_MAC_STREEBOG_512)
- pbkdf2_hmac_streebog512(pass_len, (uint8_t *) pass,
- iter,
- salt_size,
- salt, temp_len, temp);
- else
- /* Should not reach here */
+ gnutls_datum_t key;
+ gnutls_datum_t _salt;
+ int ret;
+
+ if (iter == 0)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ key.data = (void *)pass;
+ key.size = pass ? strlen(pass) : 0;
+
+ _salt.data = (void *)salt;
+ _salt.size = salt_size;
+
+ ret = gnutls_pbkdf2(algo, &key, &_salt, iter, temp, temp_len);
+ if (ret < 0)
+ return gnutls_assert_val(ret);
+
memcpy(keybuf, temp + temp_len - req_keylen, req_keylen);
return 0;
@@ -1109,7 +1098,7 @@ int gnutls_pkcs12_verify_mac(gnutls_pkcs12_t pkcs12, const char *pass)
return _gnutls_asn2err(result);
}
- algo = gnutls_oid_to_digest(oid);
+ algo = DIG_TO_MAC(gnutls_oid_to_digest(oid));
if (algo == GNUTLS_MAC_UNKNOWN) {
unknown_mac:
gnutls_assert();
@@ -1981,7 +1970,7 @@ gnutls_pkcs12_mac_info(gnutls_pkcs12_t pkcs12, unsigned int *mac,
*oid = (char*)tmp.data;
}
- algo = gnutls_oid_to_digest((char*)tmp.data);
+ algo = DIG_TO_MAC(gnutls_oid_to_digest((char*)tmp.data));
if (algo == GNUTLS_MAC_UNKNOWN || mac_to_entry(algo) == NULL) {
gnutls_assert();
return GNUTLS_E_UNKNOWN_HASH_ALGORITHM;
diff --git a/lib/x509/pkcs7-crypt.c b/lib/x509/pkcs7-crypt.c
index 1a4f0370f3..274ac14248 100644
--- a/lib/x509/pkcs7-crypt.c
+++ b/lib/x509/pkcs7-crypt.c
@@ -36,10 +36,6 @@
#include <num.h>
#include <random.h>
#include <pk.h>
-#include <nettle/pbkdf2.h>
-#if ENABLE_GOST
-#include "../nettle/gost/pbkdf2-gost.h"
-#endif
#define PBES1_DES_MD5_OID "1.2.840.113549.1.5.3"
@@ -1112,40 +1108,16 @@ _gnutls_pbes2_string_to_key(unsigned int pass_len, const char *password,
const struct pbkdf2_params *kdf_params,
int key_size, uint8_t *key)
{
- int result = 0;
-
- if (kdf_params->mac == GNUTLS_MAC_SHA1)
- pbkdf2_hmac_sha1(pass_len, (uint8_t *) password,
- kdf_params->iter_count,
- kdf_params->salt_size,
- kdf_params->salt, key_size, key);
- else if (kdf_params->mac == GNUTLS_MAC_SHA256)
- pbkdf2_hmac_sha256(pass_len, (uint8_t *) password,
- kdf_params->iter_count,
- kdf_params->salt_size,
- kdf_params->salt, key_size, key);
-#if ENABLE_GOST
- else if (kdf_params->mac == GNUTLS_MAC_GOSTR_94)
- pbkdf2_hmac_gosthash94cp(pass_len, (uint8_t *) password,
- kdf_params->iter_count,
- kdf_params->salt_size,
- kdf_params->salt, key_size, key);
- else if (kdf_params->mac == GNUTLS_MAC_STREEBOG_256)
- pbkdf2_hmac_streebog256(pass_len, (uint8_t *) password,
- kdf_params->iter_count,
- kdf_params->salt_size,
- kdf_params->salt, key_size, key);
- else if (kdf_params->mac == GNUTLS_MAC_STREEBOG_512)
- pbkdf2_hmac_streebog512(pass_len, (uint8_t *) password,
- kdf_params->iter_count,
- kdf_params->salt_size,
- kdf_params->salt, key_size, key);
-#endif
- else
- result =
- gnutls_assert_val(GNUTLS_E_UNKNOWN_HASH_ALGORITHM);
+ gnutls_datum_t _key;
+ gnutls_datum_t salt;
- return result;
+ _key.data = (void *)password;
+ _key.size = pass_len;
+ salt.data = (void *)kdf_params->salt;
+ salt.size = kdf_params->salt_size;
+
+ return gnutls_pbkdf2(kdf_params->mac, &_key, &salt,
+ kdf_params->iter_count, key, key_size);
}
int
diff --git a/lib/x509/pkcs7-output.c b/lib/x509/pkcs7-output.c
index bf5dbac837..3d686df228 100644
--- a/lib/x509/pkcs7-output.c
+++ b/lib/x509/pkcs7-output.c
@@ -64,6 +64,31 @@ static void print_dn(gnutls_buffer_st * str, const char *prefix,
gnutls_free(output.data);
}
+/* Do not encode ASN1 and type for now */
+#define ENTRY(oid, name, type) {oid, sizeof(oid)-1, name, sizeof(name)-1, NULL, type}
+#define ENTRY2(oid, name) {oid, sizeof(oid)-1, name, sizeof(name)-1, NULL, ASN1_ETYPE_INVALID}
+
+static const struct oid_to_string pkcs7_attrs[] = {
+ ENTRY ("1.2.840.113549.1.9.3", "contentType", ASN1_ETYPE_OBJECT_ID),
+ ENTRY ("1.2.840.113549.1.9.4", "messageDigest", ASN1_ETYPE_OCTET_STRING),
+ ENTRY ("1.2.840.113549.1.9.5", "signingTime", ASN1_ETYPE_INVALID),
+ ENTRY2("1.2.840.113549.1.9.6", "countersignature"),
+ ENTRY2("1.2.840.113549.1.9.15", "smimeCapabilities"),
+
+ ENTRY2("1.2.840.113549.1.9.16.2.1", "aa-receiptRequest"),
+ ENTRY2("1.2.840.113549.1.9.16.2.2", "aa-securityLabel"),
+ ENTRY2("1.2.840.113549.1.9.16.2.3", "aa-mlExpandHistory"),
+ ENTRY2("1.2.840.113549.1.9.16.2.4", "aa-contentHint"),
+ ENTRY2("1.2.840.113549.1.9.16.2.9", "aa-equivalentLabels"),
+ ENTRY2("1.2.840.113549.1.9.16.2.10", "aa-contentReference"),
+ ENTRY2("1.2.840.113549.1.9.16.2.11", "aa-encrypKeyPref"),
+ ENTRY2("1.2.840.113549.1.9.16.2.12", "aa-signingCertificate"),
+ ENTRY2("1.2.840.113549.1.9.16.2.19", "aa-ets-otherSigCert"),
+ ENTRY2("1.2.840.113549.1.9.16.2.47", "aa-signingCertificateV2"),
+
+ {NULL, 0, NULL, 0, NULL, 0}
+};
+
static void print_raw(gnutls_buffer_st * str, const char *prefix,
const gnutls_datum_t * raw)
{
@@ -94,6 +119,7 @@ static void print_pkcs7_info(gnutls_pkcs7_signature_info_st * info,
char s[42];
size_t max;
int ret;
+ const struct oid_to_string * entry;
if (info->issuer_dn.size > 0)
print_dn(str, "\tSigner's issuer DN", &info->issuer_dn);
@@ -130,7 +156,9 @@ static void print_pkcs7_info(gnutls_pkcs7_signature_info_st * info,
if (i == 0)
addf(str, "\tSigned Attributes:\n");
- snprintf(prefix, sizeof(prefix), "\t\t%s", oid);
+ entry = _gnutls_oid_get_entry(pkcs7_attrs, oid);
+ snprintf(prefix, sizeof(prefix), "\t\t%s",
+ (entry && entry->name_desc) ? entry->name_desc : oid);
print_raw(str, prefix, &data);
gnutls_free(data.data);
}
@@ -145,7 +173,9 @@ static void print_pkcs7_info(gnutls_pkcs7_signature_info_st * info,
if (i == 0)
addf(str, "\tUnsigned Attributes:\n");
- snprintf(prefix, sizeof(prefix), "\t\t%s", oid);
+ entry = _gnutls_oid_get_entry(pkcs7_attrs, oid);
+ snprintf(prefix, sizeof(prefix), "\t\t%s",
+ (entry && entry->name_desc) ? entry->name_desc : oid);
print_raw(str, prefix, &data);
gnutls_free(data.data);
}
@@ -155,6 +185,37 @@ static void print_pkcs7_info(gnutls_pkcs7_signature_info_st * info,
}
/**
+ * gnutls_pkcs7_print_signature_info:
+ * @info: The PKCS7 signature info struct to be printed
+ * @format: Indicate the format to use
+ * @out: Newly allocated datum with null terminated string.
+ *
+ * This function will pretty print a PKCS #7 signature info structure, suitable
+ * for display to a human.
+ *
+ * Currently the supported formats are %GNUTLS_CRT_PRINT_FULL and
+ * %GNUTLS_CRT_PRINT_COMPACT.
+ *
+ * The output @out needs to be deallocated using gnutls_free().
+ *
+ * Returns: On success, %GNUTLS_E_SUCCESS (0) is returned, otherwise a
+ * negative error value.
+ *
+ * Since: 3.6.14
+ **/
+int gnutls_pkcs7_print_signature_info(gnutls_pkcs7_signature_info_st * info,
+ gnutls_certificate_print_formats_t format,
+ gnutls_datum_t * out)
+{
+ gnutls_buffer_st str;
+
+ _gnutls_buffer_init(&str);
+ print_pkcs7_info(info, &str, format);
+
+ return _gnutls_buffer_to_datum(&str, out, 1);
+}
+
+/**
* gnutls_pkcs7_crt_print:
* @pkcs7: The PKCS7 struct to be printed
* @format: Indicate the format to use
diff --git a/lib/x509/pkcs7.c b/lib/x509/pkcs7.c
index 98669e8879..0ff55ba04b 100644
--- a/lib/x509/pkcs7.c
+++ b/lib/x509/pkcs7.c
@@ -2277,7 +2277,7 @@ static int write_attributes(ASN1_TYPE c2, const char *root,
/* If we add any attribute we should add them all */
/* Add hash */
digest_size = _gnutls_hash_get_algo_len(me);
- ret = gnutls_hash_fast(me->id, data->data, data->size, digest);
+ ret = gnutls_hash_fast(MAC_TO_DIG(me->id), data->data, data->size, digest);
if (ret < 0) {
gnutls_assert();
return ret;
diff --git a/lib/x509/privkey_pkcs8.c b/lib/x509/privkey_pkcs8.c
index f23008fbe5..4ffb219759 100644
--- a/lib/x509/privkey_pkcs8.c
+++ b/lib/x509/privkey_pkcs8.c
@@ -36,7 +36,6 @@
#include <num.h>
#include <random.h>
#include <pk.h>
-#include <nettle/pbkdf2.h>
#include "attributes.h"
#include "prov-seed.h"
diff --git a/lib/x509/verify-high.c b/lib/x509/verify-high.c
index b1421ef17a..763c527a59 100644
--- a/lib/x509/verify-high.c
+++ b/lib/x509/verify-high.c
@@ -851,11 +851,10 @@ static int shorten_clist(gnutls_x509_trust_list_t list,
return clist_size;
}
-static
-int trust_list_get_issuer(gnutls_x509_trust_list_t list,
- gnutls_x509_crt_t cert,
- gnutls_x509_crt_t * issuer,
- unsigned int flags)
+int _gnutls_trust_list_get_issuer(gnutls_x509_trust_list_t list,
+ gnutls_x509_crt_t cert,
+ gnutls_x509_crt_t * issuer,
+ unsigned int flags)
{
int ret;
unsigned int i;
@@ -968,7 +967,7 @@ int gnutls_x509_trust_list_get_issuer(gnutls_x509_trust_list_t list,
{
int ret;
- ret = trust_list_get_issuer(list, cert, issuer, flags);
+ ret = _gnutls_trust_list_get_issuer(list, cert, issuer, flags);
if (ret == 0) {
return 0;
}
@@ -1192,11 +1191,13 @@ gnutls_x509_trust_list_verify_crt(gnutls_x509_trust_list_t list,
#define LAST_DN cert_list[cert_list_size-1]->raw_dn
#define LAST_IDN cert_list[cert_list_size-1]->raw_issuer_dn
-/* This macro is introduced to detect a verification output
- * which indicates an unknown signer, or a signer which uses
- * an insecure algorithm (e.g., sha1), something that indicates
- * a superseded signer */
-#define SIGNER_OLD_OR_UNKNOWN(output) ((output & GNUTLS_CERT_SIGNER_NOT_FOUND) || (output & GNUTLS_CERT_INSECURE_ALGORITHM))
+/* This macro is introduced to detect a verification output which
+ * indicates an unknown signer, a signer which uses an insecure
+ * algorithm (e.g., sha1), a signer has expired, or something that
+ * indicates a superseded signer */
+#define SIGNER_OLD_OR_UNKNOWN(output) ((output & GNUTLS_CERT_SIGNER_NOT_FOUND) || \
+ (output & GNUTLS_CERT_EXPIRED) || \
+ (output & GNUTLS_CERT_INSECURE_ALGORITHM))
#define SIGNER_WAS_KNOWN(output) (!(output & GNUTLS_CERT_SIGNER_NOT_FOUND))
/**
@@ -1333,11 +1334,10 @@ gnutls_x509_trust_list_verify_crt2(gnutls_x509_trust_list_t list,
}
*voutput =
- _gnutls_verify_crt_status(cert_list, cert_list_size,
- list->node[hash].trusted_cas,
- list->
- node[hash].trusted_ca_size,
- flags, purpose, func);
+ _gnutls_verify_crt_status(list, cert_list, cert_list_size,
+ list->node[hash].trusted_cas,
+ list->node[hash].trusted_ca_size,
+ flags, purpose, func);
saved_output = *voutput;
if (SIGNER_OLD_OR_UNKNOWN(*voutput) &&
@@ -1355,11 +1355,10 @@ gnutls_x509_trust_list_verify_crt2(gnutls_x509_trust_list_t list,
_gnutls_debug_log("issuer in verification was not found or insecure; trying against trust list\n");
*voutput =
- _gnutls_verify_crt_status(cert_list, cert_list_size,
- list->node[hash].trusted_cas,
- list->
- node[hash].trusted_ca_size,
- flags, purpose, func);
+ _gnutls_verify_crt_status(list, cert_list, cert_list_size,
+ list->node[hash].trusted_cas,
+ list->node[hash].trusted_ca_size,
+ flags, purpose, func);
if (*voutput != 0) {
if (SIGNER_WAS_KNOWN(saved_output))
*voutput = saved_output;
@@ -1373,10 +1372,10 @@ gnutls_x509_trust_list_verify_crt2(gnutls_x509_trust_list_t list,
if (SIGNER_OLD_OR_UNKNOWN(*voutput) && list->pkcs11_token) {
/* use the token for verification */
- *voutput = _gnutls_pkcs11_verify_crt_status(list->pkcs11_token,
- cert_list, cert_list_size,
- purpose,
- flags, func);
+ *voutput = _gnutls_pkcs11_verify_crt_status(list, list->pkcs11_token,
+ cert_list, cert_list_size,
+ purpose,
+ flags, func);
if (*voutput != 0) {
if (SIGNER_WAS_KNOWN(saved_output))
*voutput = saved_output;
diff --git a/lib/x509/verify-high.h b/lib/x509/verify-high.h
index ca1f98b831..6ce5f958ae 100644
--- a/lib/x509/verify-high.h
+++ b/lib/x509/verify-high.h
@@ -39,8 +39,12 @@ struct gnutls_x509_trust_list_st {
* will be deinitialized */
gnutls_x509_crt_t *keep_certs;
unsigned int keep_certs_size;
-
+
char* pkcs11_token;
+
+ /* set this callback if the issuer in the certificate
+ * chain is missing. */
+ gnutls_x509_trust_list_getissuer_function *issuer_callback;
};
int _gnutls_trustlist_inlist(gnutls_x509_trust_list_t list,
diff --git a/lib/x509/verify-high2.c b/lib/x509/verify-high2.c
index 50020d074c..9820595e97 100644
--- a/lib/x509/verify-high2.c
+++ b/lib/x509/verify-high2.c
@@ -356,7 +356,7 @@ gnutls_x509_trust_list_add_trust_file(gnutls_x509_trust_list_t list,
} else
#endif
{
- cas.data = (void *) read_binary_file(ca_file, &size);
+ cas.data = (void *) read_file(ca_file, RF_BINARY, &size);
if (cas.data == NULL) {
gnutls_assert();
return GNUTLS_E_FILE_ERROR;
@@ -366,7 +366,7 @@ gnutls_x509_trust_list_add_trust_file(gnutls_x509_trust_list_t list,
}
if (crl_file) {
- crls.data = (void *) read_binary_file(crl_file, &size);
+ crls.data = (void *) read_file(crl_file, RF_BINARY, &size);
if (crls.data == NULL) {
gnutls_assert();
return GNUTLS_E_FILE_ERROR;
@@ -551,7 +551,7 @@ gnutls_x509_trust_list_remove_trust_file(gnutls_x509_trust_list_t list,
} else
#endif
{
- cas.data = (void *) read_binary_file(ca_file, &size);
+ cas.data = (void *) read_file(ca_file, RF_BINARY, &size);
if (cas.data == NULL) {
gnutls_assert();
return GNUTLS_E_FILE_ERROR;
diff --git a/lib/x509/verify.c b/lib/x509/verify.c
index d381b4ee87..4363e818b1 100644
--- a/lib/x509/verify.c
+++ b/lib/x509/verify.c
@@ -34,9 +34,11 @@
#include <tls-sig.h>
#include <str.h>
#include <datum.h>
+#include <pkcs11_int.h>
#include <x509_int.h>
#include <common.h>
#include <pk.h>
+#include <x509/verify-high.h>
#include "supported_exts.h"
#include "profiles.h"
@@ -421,9 +423,9 @@ unsigned _gnutls_is_broken_sig_allowed(const gnutls_sign_entry_st *se, unsigned
_gnutls_debug_log(#level": certificate's signature hash is unknown\n"); \
return gnutls_assert_val(0); \
} \
- if (entry->output_size*8/2 < sym_bits) { \
+ if (_gnutls_sign_get_hash_strength(sigalg) < sym_bits) { \
_gnutls_cert_log("cert", crt); \
- _gnutls_debug_log(#level": certificate's signature hash strength is unacceptable (is %u bits, needed %u)\n", entry->output_size*8/2, sym_bits); \
+ _gnutls_debug_log(#level": certificate's signature hash strength is unacceptable (is %u bits, needed %u)\n", _gnutls_sign_get_hash_strength(sigalg), sym_bits); \
return gnutls_assert_val(0); \
} \
sp = gnutls_pk_bits_to_sec_param(pkalg, bits); \
@@ -603,11 +605,11 @@ static int _gnutls_x509_verify_data(gnutls_sign_algorithm_t sign,
gnutls_x509_crt_t issuer,
unsigned vflags);
-/*
+/*
* Verifies the given certificate against a certificate list of
* trusted CAs.
*
- * Returns only 0 or 1. If 1 it means that the certificate
+ * Returns only 0 or 1. If 1 it means that the certificate
* was successfully verified.
*
* 'flags': an OR of the gnutls_certificate_verify_flags enumeration.
@@ -615,13 +617,13 @@ static int _gnutls_x509_verify_data(gnutls_sign_algorithm_t sign,
* Output will hold some extra information about the verification
* procedure.
*/
-static unsigned
-verify_crt(gnutls_x509_crt_t cert,
- const gnutls_x509_crt_t * trusted_cas,
- int tcas_size, unsigned int flags,
- unsigned int *output,
- verify_state_st *vparams,
- unsigned end_cert)
+static unsigned verify_crt(gnutls_x509_trust_list_t tlist,
+ gnutls_x509_crt_t cert,
+ const gnutls_x509_crt_t * trusted_cas,
+ int tcas_size, unsigned int flags,
+ unsigned int *output,
+ verify_state_st *vparams,
+ unsigned end_cert)
{
gnutls_datum_t cert_signed_data = { NULL, 0 };
gnutls_datum_t cert_signature = { NULL, 0 };
@@ -645,6 +647,25 @@ verify_crt(gnutls_x509_crt_t cert,
if (tcas_size >= 1)
issuer = find_issuer(cert, trusted_cas, tcas_size);
+ if (issuer == NULL && tlist != NULL && tlist->issuer_callback != NULL) {
+ _gnutls_debug_log("Missing issuer callback set.\n");
+
+ /* missing issuer is populated by the callback */
+ ret = tlist->issuer_callback(tlist, cert);
+ if (ret < 0) {
+ /* if the callback fails, continue as though the callback
+ * wasn't invoked i.e issuer remains NULL */
+ gnutls_assert();
+ issuer = NULL;
+ }
+
+ ret = _gnutls_trust_list_get_issuer(tlist, cert, &issuer, 0);
+ if (ret < 0) {
+ gnutls_assert();
+ issuer = NULL;
+ }
+ }
+
ret =
_gnutls_x509_get_signed_data(cert->cert, &cert->der, "tbsCertificate",
&cert_signed_data);
@@ -679,7 +700,7 @@ verify_crt(gnutls_x509_crt_t cert,
} else {
if (vparams->nc != NULL) {
/* append the issuer's constraints */
- ret = gnutls_x509_crt_get_name_constraints(issuer, vparams->nc,
+ ret = gnutls_x509_crt_get_name_constraints(issuer, vparams->nc,
GNUTLS_NAME_CONSTRAINTS_FLAG_APPEND, NULL);
if (ret < 0 && ret != GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
MARK_INVALID(GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE);
@@ -908,13 +929,14 @@ unsigned check_ca_sanity(const gnutls_x509_crt_t issuer,
* list should lead to a trusted certificate in order to be trusted.
*/
unsigned int
-_gnutls_verify_crt_status(const gnutls_x509_crt_t * certificate_list,
- int clist_size,
- const gnutls_x509_crt_t * trusted_cas,
- int tcas_size,
- unsigned int flags,
- const char *purpose,
- gnutls_verify_output_function func)
+_gnutls_verify_crt_status(gnutls_x509_trust_list_t tlist,
+ const gnutls_x509_crt_t * certificate_list,
+ int clist_size,
+ const gnutls_x509_crt_t * trusted_cas,
+ int tcas_size,
+ unsigned int flags,
+ const char *purpose,
+ gnutls_verify_output_function func)
{
int i = 0, ret;
unsigned int status = 0, output;
@@ -1009,11 +1031,12 @@ _gnutls_verify_crt_status(const gnutls_x509_crt_t * certificate_list,
*/
output = 0;
- ret = verify_crt(certificate_list[clist_size - 1],
- trusted_cas, tcas_size, flags,
- &output,
- &vparams,
- clist_size==1?1:0);
+ ret = verify_crt(tlist,
+ certificate_list[clist_size - 1],
+ trusted_cas, tcas_size, flags,
+ &output,
+ &vparams,
+ clist_size==1?1:0);
if (ret != 1) {
/* if the last certificate in the certificate
* list is invalid, then the certificate is not
@@ -1052,11 +1075,12 @@ _gnutls_verify_crt_status(const gnutls_x509_crt_t * certificate_list,
}
if ((ret =
- verify_crt(certificate_list[i - 1],
- &certificate_list[i], 1,
- flags, &output,
- &vparams,
- i==1?1:0)) != 1) {
+ verify_crt(tlist,
+ certificate_list[i - 1],
+ &certificate_list[i], 1,
+ flags, &output,
+ &vparams,
+ i==1?1:0)) != 1) {
gnutls_assert();
status |= output;
status |= GNUTLS_CERT_INVALID;
@@ -1146,12 +1170,13 @@ unsigned _gnutls_check_key_purpose(gnutls_x509_crt_t cert, const char *purpose,
* list should lead to a trusted certificate in order to be trusted.
*/
unsigned int
-_gnutls_pkcs11_verify_crt_status(const char* url,
- const gnutls_x509_crt_t * certificate_list,
- unsigned clist_size,
- const char *purpose,
- unsigned int flags,
- gnutls_verify_output_function func)
+_gnutls_pkcs11_verify_crt_status(gnutls_x509_trust_list_t tlist,
+ const char* url,
+ const gnutls_x509_crt_t * certificate_list,
+ unsigned clist_size,
+ const char *purpose,
+ unsigned int flags,
+ gnutls_verify_output_function func)
{
int ret;
unsigned int status = 0, i;
@@ -1188,6 +1213,7 @@ _gnutls_pkcs11_verify_crt_status(const char* url,
for (; i < clist_size; i++) {
unsigned vflags;
+ gnutls_x509_crt_t trusted_cert;
if (i == 0) /* in the end certificate do full comparison */
vflags = GNUTLS_PKCS11_OBJ_FLAG_PRESENT_IN_TRUSTED_MODULE|
@@ -1196,9 +1222,10 @@ _gnutls_pkcs11_verify_crt_status(const char* url,
vflags = GNUTLS_PKCS11_OBJ_FLAG_PRESENT_IN_TRUSTED_MODULE|
GNUTLS_PKCS11_OBJ_FLAG_COMPARE_KEY|GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_TRUSTED;
- if (gnutls_pkcs11_crt_is_known (url, certificate_list[i], vflags) != 0) {
+ if (_gnutls_pkcs11_crt_is_known (url, certificate_list[i], vflags, &trusted_cert) != 0) {
- status |= check_ca_sanity(certificate_list[i], now, flags);
+ status |= check_ca_sanity(trusted_cert, now, flags);
+ gnutls_x509_crt_deinit(trusted_cert);
if (func)
func(certificate_list[i],
@@ -1246,9 +1273,10 @@ _gnutls_pkcs11_verify_crt_status(const char* url,
ret = gnutls_pkcs11_crt_is_known(url, certificate_list[clist_size - 1],
GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_TRUSTED|GNUTLS_PKCS11_OBJ_FLAG_COMPARE);
if (ret != 0) {
- return _gnutls_verify_crt_status(certificate_list, clist_size,
- &certificate_list[clist_size - 1], 1, flags,
- purpose, func);
+ return _gnutls_verify_crt_status(tlist,
+ certificate_list, clist_size,
+ &certificate_list[clist_size - 1],
+ 1, flags, purpose, func);
}
}
@@ -1257,7 +1285,7 @@ _gnutls_pkcs11_verify_crt_status(const char* url,
/* verify the certificate list against 0 trusted CAs in order
* to get, any additional flags from the certificate list (e.g.,
* insecure algorithms or expired */
- status |= _gnutls_verify_crt_status(certificate_list, clist_size,
+ status |= _gnutls_verify_crt_status(tlist, certificate_list, clist_size,
NULL, 0, flags, purpose, func);
goto cleanup;
}
@@ -1300,8 +1328,8 @@ _gnutls_pkcs11_verify_crt_status(const char* url,
goto cleanup;
}
- status = _gnutls_verify_crt_status(certificate_list, clist_size,
- &issuer, 1, flags, purpose, func);
+ status = _gnutls_verify_crt_status(tlist, certificate_list, clist_size,
+ &issuer, 1, flags, purpose, func);
cleanup:
gnutls_free(raw_issuer.data);
@@ -1465,18 +1493,20 @@ gnutls_x509_crt_list_verify(const gnutls_x509_crt_t * cert_list,
{
unsigned i;
int ret;
+ gnutls_x509_trust_list_t tlist;
if (cert_list == NULL || cert_list_length == 0)
return GNUTLS_E_NO_CERTIFICATE_FOUND;
- /* Verify certificate
+ gnutls_x509_trust_list_init(&tlist, 0);
+
+ /* Verify certificate
*/
- *verify =
- _gnutls_verify_crt_status(cert_list, cert_list_length,
+ *verify = _gnutls_verify_crt_status(tlist, cert_list, cert_list_length,
CA_list, CA_list_length,
flags, NULL, NULL);
- /* Check for revoked certificates in the chain.
+ /* Check for revoked certificates in the chain.
*/
for (i = 0; i < cert_list_length; i++) {
ret = gnutls_x509_crt_check_revocation(cert_list[i],
@@ -1488,6 +1518,7 @@ gnutls_x509_crt_list_verify(const gnutls_x509_crt_t * cert_list,
}
}
+ gnutls_x509_trust_list_deinit(tlist, 0);
return 0;
}
@@ -1515,12 +1546,17 @@ gnutls_x509_crt_verify(gnutls_x509_crt_t cert,
unsigned CA_list_length, unsigned int flags,
unsigned int *verify)
{
- /* Verify certificate
+ gnutls_x509_trust_list_t tlist;
+
+ gnutls_x509_trust_list_init(&tlist, 0);
+
+ /* Verify certificate
*/
- *verify =
- _gnutls_verify_crt_status(&cert, 1,
+ *verify = _gnutls_verify_crt_status(tlist, &cert, 1,
CA_list, CA_list_length,
flags, NULL, NULL);
+
+ gnutls_x509_trust_list_deinit(tlist, 0);
return 0;
}
@@ -1530,9 +1566,9 @@ gnutls_x509_crt_verify(gnutls_x509_crt_t cert,
* @issuer: is the certificate of a possible issuer
*
* This function will check if the given CRL was issued by the given
- * issuer certificate.
+ * issuer certificate.
*
- * Returns: true (1) if the given CRL was issued by the given issuer,
+ * Returns: true (1) if the given CRL was issued by the given issuer,
* and false (0) if not.
**/
unsigned
diff --git a/lib/x509/x509.c b/lib/x509/x509.c
index 57c7182894..2091f3ae64 100644
--- a/lib/x509/x509.c
+++ b/lib/x509/x509.c
@@ -1177,29 +1177,12 @@ gnutls_x509_crt_get_signature(gnutls_x509_crt_t cert,
**/
int gnutls_x509_crt_get_version(gnutls_x509_crt_t cert)
{
- uint8_t version[8];
- int len, result;
-
if (cert == NULL) {
gnutls_assert();
return GNUTLS_E_INVALID_REQUEST;
}
- len = sizeof(version);
- if ((result =
- asn1_read_value(cert->cert, "tbsCertificate.version", version,
- &len)) != ASN1_SUCCESS) {
-
- if (result == ASN1_ELEMENT_NOT_FOUND)
- return 1; /* the DEFAULT version */
- gnutls_assert();
- return _gnutls_asn2err(result);
- }
-
- if (len != 1 || version[0] >= 0x80)
- return gnutls_assert_val(GNUTLS_E_CERTIFICATE_ERROR);
-
- return (int) version[0] + 1;
+ return _gnutls_x509_get_version(cert->cert, "tbsCertificate.version");
}
/**
diff --git a/lib/x509/x509_int.h b/lib/x509/x509_int.h
index 050e95059e..a41cc5827a 100644
--- a/lib/x509/x509_int.h
+++ b/lib/x509/x509_int.h
@@ -495,23 +495,30 @@ gnutls_x509_crt_verify_data3(gnutls_x509_crt_t crt,
const gnutls_datum_t *signature,
unsigned int flags);
+int _gnutls_trust_list_get_issuer(gnutls_x509_trust_list_t list,
+ gnutls_x509_crt_t cert,
+ gnutls_x509_crt_t * issuer,
+ unsigned int flags);
+
unsigned int
-_gnutls_verify_crt_status(const gnutls_x509_crt_t * certificate_list,
- int clist_size,
- const gnutls_x509_crt_t * trusted_cas,
- int tcas_size,
- unsigned int flags,
- const char *purpose,
- gnutls_verify_output_function func);
+_gnutls_verify_crt_status(gnutls_x509_trust_list_t tlist,
+ const gnutls_x509_crt_t * certificate_list,
+ int clist_size,
+ const gnutls_x509_crt_t * trusted_cas,
+ int tcas_size,
+ unsigned int flags,
+ const char *purpose,
+ gnutls_verify_output_function func);
#ifdef ENABLE_PKCS11
unsigned int
-_gnutls_pkcs11_verify_crt_status(const char* url,
- const gnutls_x509_crt_t * certificate_list,
- unsigned clist_size,
- const char *purpose,
- unsigned int flags,
- gnutls_verify_output_function func);
+_gnutls_pkcs11_verify_crt_status(gnutls_x509_trust_list_t tlist,
+ const char* url,
+ const gnutls_x509_crt_t * certificate_list,
+ unsigned clist_size,
+ const char *purpose,
+ unsigned int flags,
+ gnutls_verify_output_function func);
#endif
int _gnutls_check_cert_sanity(gnutls_x509_crt_t cert);
diff --git a/m4/hooks.m4 b/m4/hooks.m4
index 49367bd1da..1f83d35f68 100644
--- a/m4/hooks.m4
+++ b/m4/hooks.m4
@@ -40,9 +40,9 @@ AC_DEFUN([LIBGNUTLS_HOOKS],
# in CONTRIBUTION.md for more info.
#
# Interfaces removed: AGE=0 (+bump all symbol versions in .map)
- AC_SUBST(LT_CURRENT, 56)
- AC_SUBST(LT_REVISION, 1)
- AC_SUBST(LT_AGE, 26)
+ AC_SUBST(LT_CURRENT, 58)
+ AC_SUBST(LT_REVISION, 0)
+ AC_SUBST(LT_AGE, 28)
AC_SUBST(LT_SSL_CURRENT, 27)
AC_SUBST(LT_SSL_REVISION, 2)
diff --git a/src/args-std.def.in b/src/args-std.def.in
index 93634a1857..4a92c448d2 100644
--- a/src/args-std.def.in
+++ b/src/args-std.def.in
@@ -10,7 +10,7 @@ no-misuse-usage;
export = '#include <gettext.h>';
copyright = {
- date = "2000-@YEAR@";
+ date = "2000-2020";
owner = "Free Software Foundation, and others";
author = "Nikos Mavrogiannopoulos, Simon Josefsson and others; "
"see /usr/share/doc/gnutls/AUTHORS for a complete list.";
diff --git a/src/benchmark-cipher.c b/src/benchmark-cipher.c
index 26d2c63c22..03e1d45fef 100644
--- a/src/benchmark-cipher.c
+++ b/src/benchmark-cipher.c
@@ -153,6 +153,12 @@ static void cipher_bench(int algo, int size, int aead)
return;
memset(_key, 0xf0, keysize);
+ /* For AES-XTS, the block and tweak key must be different */
+ if (algo == GNUTLS_CIPHER_AES_128_XTS ||
+ algo == GNUTLS_CIPHER_AES_256_XTS) {
+ memset((uint8_t *)_key + (keysize / 2), 0x0f, (keysize / 2));
+ }
+
_iv = malloc(ivsize);
if (_iv == NULL) {
free(_key);
@@ -303,6 +309,8 @@ void benchmark_cipher(int debug_level)
printf("\nChecking ciphers, payload size: %u\n", size * 1024);
cipher_bench(GNUTLS_CIPHER_3DES_CBC, size, 0);
cipher_bench(GNUTLS_CIPHER_AES_128_CBC, size, 0);
+ cipher_bench(GNUTLS_CIPHER_AES_128_XTS, size, 0);
+ cipher_bench(GNUTLS_CIPHER_AES_256_XTS, size, 0);
cipher_bench(GNUTLS_CIPHER_SALSA20_256, size, 0);
cipher_bench(GNUTLS_CIPHER_NULL, size, 1);
#ifdef ENABLE_GOST
diff --git a/src/certtool-common.c b/src/certtool-common.c
index c76352c9d8..3af2d08080 100644
--- a/src/certtool-common.c
+++ b/src/certtool-common.c
@@ -270,7 +270,7 @@ gnutls_privkey_t load_private_key(int mand, common_info_st * info)
if (gnutls_url_is_supported(info->privkey) != 0)
return _load_url_privkey(info->privkey);
- dat.data = (void *) read_binary_file(info->privkey, &size);
+ dat.data = (void *) read_file(info->privkey, RF_BINARY, &size);
dat.size = size;
if (!dat.data) {
@@ -313,7 +313,7 @@ load_x509_private_key(int mand, common_info_st * info)
app_exit(1);
}
- dat.data = (void *) read_binary_file(info->privkey, &size);
+ dat.data = (void *) read_file(info->privkey, RF_BINARY, &size);
dat.size = size;
if (!dat.data) {
@@ -389,7 +389,7 @@ gnutls_x509_crt_t load_cert(int mand, common_info_st * info)
gnutls_x509_crt_t *load_cert_list(int mand, size_t * crt_size,
common_info_st * info)
{
- FILE *fd;
+ FILE *fp;
static gnutls_x509_crt_t *crt;
int ret;
gnutls_datum_t dat;
@@ -409,18 +409,18 @@ gnutls_x509_crt_t *load_cert_list(int mand, size_t * crt_size,
return NULL;
}
- fd = fopen(info->cert, "r");
- if (fd == NULL) {
+ fp = fopen(info->cert, "r");
+ if (fp == NULL) {
fprintf(stderr, "Could not open %s\n", info->cert);
app_exit(1);
}
- fix_lbuffer(file_size(fd));
+ fix_lbuffer(file_size(fp));
- size = fread(lbuffer, 1, lbuffer_size - 1, fd);
+ size = fread(lbuffer, 1, lbuffer_size - 1, fp);
lbuffer[size] = 0;
- fclose(fd);
+ fclose(fp);
dat.data = (void *) lbuffer;
dat.size = size;
@@ -448,7 +448,7 @@ gnutls_x509_crt_t *load_cert_list(int mand, size_t * crt_size,
gnutls_x509_crl_t *load_crl_list(int mand, size_t * crl_size,
common_info_st * info)
{
- FILE *fd;
+ FILE *fp;
static gnutls_x509_crl_t *crl;
unsigned int crl_max;
int ret;
@@ -467,18 +467,18 @@ gnutls_x509_crl_t *load_crl_list(int mand, size_t * crl_size,
return NULL;
}
- fd = fopen(info->crl, "r");
- if (fd == NULL) {
+ fp = fopen(info->crl, "r");
+ if (fp == NULL) {
fprintf(stderr, "Could not open %s\n", info->crl);
app_exit(1);
}
- fix_lbuffer(file_size(fd));
+ fix_lbuffer(file_size(fp));
- size = fread(lbuffer, 1, lbuffer_size - 1, fd);
+ size = fread(lbuffer, 1, lbuffer_size - 1, fp);
lbuffer[size] = 0;
- fclose(fd);
+ fclose(fp);
dat.data = (void *) lbuffer;
dat.size = size;
@@ -519,7 +519,7 @@ gnutls_x509_crq_t load_request(common_info_st * info)
app_exit(1);
}
- dat.data = (void *) read_binary_file(info->request, &size);
+ dat.data = (void *) read_file(info->request, RF_BINARY, &size);
dat.size = size;
if (!dat.data) {
@@ -560,7 +560,7 @@ gnutls_privkey_t load_ca_private_key(common_info_st * info)
if (gnutls_url_is_supported(info->ca_privkey) != 0)
return _load_url_privkey(info->ca_privkey);
- dat.data = (void *) read_binary_file(info->ca_privkey, &size);
+ dat.data = (void *) read_file(info->ca_privkey, RF_BINARY, &size);
dat.size = size;
if (!dat.data) {
@@ -610,7 +610,7 @@ gnutls_x509_crt_t load_ca_cert(unsigned mand, common_info_st * info)
return crt;
}
- dat.data = (void *) read_binary_file(info->ca, &size);
+ dat.data = (void *) read_file(info->ca, RF_BINARY, &size);
dat.size = size;
if (!dat.data) {
@@ -657,7 +657,7 @@ gnutls_pubkey_t load_pubkey(int mand, common_info_st * info)
app_exit(1);
}
- dat.data = (void *) read_binary_file(info->pubkey, &size);
+ dat.data = (void *) read_file(info->pubkey, RF_BINARY, &size);
dat.size = size;
if (!dat.data) {
@@ -1090,7 +1090,7 @@ void dh_info(FILE * infile, FILE * outfile, common_info_st * ci)
app_exit(1);
}
- params.data = (void *) fread_file(infile, &size);
+ params.data = (void *) fread_file(infile, 0, &size);
params.size = size;
if (params.data == NULL) {
diff --git a/src/certtool.c b/src/certtool.c
index b65359c27c..6bdfe376b1 100644
--- a/src/certtool.c
+++ b/src/certtool.c
@@ -1426,9 +1426,9 @@ static void cmd_parser(int argc, char **argv)
if (HAVE_OPT(VERIFY_PROFILE)) {
if (strcasecmp(OPT_ARG(VERIFY_PROFILE), "none")) {
- cinfo.verification_profile = GNUTLS_PROFILE_UNKNOWN;
+ cinfo.verification_profile = (gnutls_sec_param_t)GNUTLS_PROFILE_UNKNOWN;
} else {
- cinfo.verification_profile = gnutls_certificate_verification_profile_get_id(OPT_ARG(VERIFY_PROFILE));
+ cinfo.verification_profile = (gnutls_sec_param_t)gnutls_certificate_verification_profile_get_id(OPT_ARG(VERIFY_PROFILE));
}
} else if (!HAVE_OPT(VERIFY_ALLOW_BROKEN)) {
if (HAVE_OPT(VERIFY_CHAIN) || HAVE_OPT(VERIFY)) {
@@ -1530,7 +1530,7 @@ void certificate_info(int pubkey, common_info_st * cinfo)
gnutls_datum_t pem;
unsigned int crt_num;
- pem.data = (void *) fread_file(infile, &size);
+ pem.data = (void *) fread_file(infile, 0, &size);
pem.size = size;
if (!pem.data) {
@@ -1651,7 +1651,7 @@ void crl_info(common_info_st *cinfo)
app_exit(1);
}
- pem.data = (void *) fread_file(infile, &size);
+ pem.data = (void *) fread_file(infile, 0, &size);
pem.size = size;
if (!pem.data) {
@@ -1723,7 +1723,7 @@ void crq_info(common_info_st *cinfo)
app_exit(1);
}
- pem.data = (void *) fread_file(infile, &size);
+ pem.data = (void *) fread_file(infile, 0, &size);
pem.size = size;
if (!pem.data) {
@@ -2241,7 +2241,7 @@ static void load_data(common_info_st *cinfo, gnutls_datum_t *data)
app_exit(1);
}
- data->data = (void *) fread_file(fp, &size);
+ data->data = (void *) fread_file(fp, 0, &size);
if (data->data == NULL) {
fprintf(stderr, "Error reading data file");
app_exit(1);
@@ -2513,7 +2513,7 @@ static void verify_chain(common_info_st * cinfo)
app_exit(1);
}
- buf = (void *) fread_file(infile, &size);
+ buf = (void *) fread_file(infile, 0, &size);
if (buf == NULL) {
fprintf(stderr, "Error reading certificate chain");
app_exit(1);
@@ -2530,7 +2530,7 @@ static void verify_certificate(common_info_st * cinfo)
char *cas = NULL;
size_t cert_size;
- cert = (void *) fread_file(infile, &cert_size);
+ cert = (void *) fread_file(infile, 0, &cert_size);
if (cert == NULL) {
fprintf(stderr, "Error reading certificate chain");
app_exit(1);
@@ -2573,7 +2573,7 @@ void verify_crl(common_info_st * cinfo)
app_exit(1);
}
- pem.data = (void *) fread_file(infile, &size);
+ pem.data = (void *) fread_file(infile, 0, &size);
pem.size = size;
if (!pem.data) {
@@ -2624,94 +2624,20 @@ void verify_crl(common_info_st * cinfo)
app_exit(rc);
}
-static void print_dn(const char *prefix, const gnutls_datum_t *raw)
-{
- gnutls_x509_dn_t dn = NULL;
- gnutls_datum_t str = {NULL, 0};
- int ret;
-
- ret = gnutls_x509_dn_init(&dn);
- if (ret < 0)
- return;
-
- ret = gnutls_x509_dn_import(dn, raw);
- if (ret < 0)
- goto cleanup;
-
- ret = gnutls_x509_dn_get_str2(dn, &str, 0);
- if (ret < 0)
- goto cleanup;
-
- fprintf(outfile, "%s: %s\n", prefix, str.data);
-
- cleanup:
- gnutls_x509_dn_deinit(dn);
- gnutls_free(str.data);
-}
-
-static void print_raw(const char *prefix, const gnutls_datum_t *raw)
+static void print_pkcs7_sig_info(gnutls_pkcs7_signature_info_st *info, common_info_st *cinfo)
{
int ret;
- gnutls_datum_t tmp;
+ gnutls_datum_t str;
- if (raw->data == NULL || raw->size == 0)
- return;
-
- ret = gnutls_hex_encode2(raw, &tmp);
+ ret = gnutls_pkcs7_print_signature_info(info, GNUTLS_CRT_PRINT_COMPACT, &str);
if (ret < 0) {
- fprintf(stderr, "gnutls_hex_encode2: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "printing error: %s\n",
+ gnutls_strerror(ret));
app_exit(1);
}
- fprintf(outfile, "%s: %s\n", prefix, tmp.data);
- gnutls_free(tmp.data);
-}
-
-static void print_pkcs7_sig_info(gnutls_pkcs7_signature_info_st *info, common_info_st *cinfo)
-{
- unsigned i;
- char *oid;
- gnutls_datum_t data;
- char prefix[128];
- int ret;
- char timebuf[SIMPLE_CTIME_BUF_SIZE];
-
- print_dn("\tSigner's issuer DN", &info->issuer_dn);
- print_raw("\tSigner's serial", &info->signer_serial);
- print_raw("\tSigner's issuer key ID", &info->issuer_keyid);
- if (info->signing_time != -1)
- fprintf(outfile, "\tSigning time: %s\n", simple_ctime(&info->signing_time, timebuf));
-
- fprintf(outfile, "\tSignature Algorithm: %s\n", gnutls_sign_get_name(info->algo));
-
- if (info->signed_attrs) {
- for (i=0;;i++) {
- ret = gnutls_pkcs7_get_attr(info->signed_attrs, i, &oid, &data, 0);
- if (ret < 0)
- break;
- if (i==0)
- fprintf(outfile, "\tSigned Attributes:\n");
-
- snprintf(prefix, sizeof(prefix), "\t\t%s", oid);
- print_raw(prefix, &data);
- gnutls_free(data.data);
- }
- }
- if (info->unsigned_attrs) {
- for (i=0;;i++) {
- ret = gnutls_pkcs7_get_attr(info->unsigned_attrs, i, &oid, &data, 0);
- if (ret < 0)
- break;
- if (i==0)
- fprintf(outfile, "\tUnsigned Attributes:\n");
-
- snprintf(prefix, sizeof(prefix), "\t\t%s", oid);
- print_raw(prefix, &data);
- gnutls_free(data.data);
- }
- }
- fprintf(outfile, "\n");
+ fprintf(outfile, "%s", str.data);
+ gnutls_free(str.data);
}
void verify_pkcs7(common_info_st * cinfo, const char *purpose, unsigned display_data)
@@ -2735,7 +2661,7 @@ void verify_pkcs7(common_info_st * cinfo, const char *purpose, unsigned display_
app_exit(1);
}
- data.data = (void *) fread_file(infile, &size);
+ data.data = (void *) fread_file(infile, 0, &size);
data.size = size;
if (!data.data) {
@@ -2859,7 +2785,7 @@ void pkcs7_sign(common_info_st * cinfo, unsigned embed)
app_exit(1);
}
- data.data = (void *) fread_file(infile, &size);
+ data.data = (void *) fread_file(infile, 0, &size);
data.size = size;
if (!data.data) {
@@ -3030,7 +2956,7 @@ void generate_pkcs12(common_info_st * cinfo)
}
if (cinfo->hash != GNUTLS_DIG_UNKNOWN)
- mac = cinfo->hash;
+ mac = (gnutls_mac_algorithm_t)cinfo->hash;
else
mac = GNUTLS_MAC_SHA1;
@@ -3478,7 +3404,7 @@ void pkcs12_info(common_info_st * cinfo)
app_exit(1);
}
- data.data = (void *) fread_file(infile, &size);
+ data.data = (void *) fread_file(infile, 0, &size);
data.size = size;
if (!data.data) {
@@ -3667,7 +3593,7 @@ void pkcs8_info(void)
size_t size;
gnutls_datum_t data;
- data.data = (void *) fread_file(infile, &size);
+ data.data = (void *) fread_file(infile, 0, &size);
data.size = size;
if (!data.data) {
@@ -3692,7 +3618,7 @@ void pkcs7_info(common_info_st *cinfo, unsigned display_data)
app_exit(1);
}
- data.data = (void *) fread_file(infile, &size);
+ data.data = (void *) fread_file(infile, 0, &size);
data.size = size;
if (!data.data) {
@@ -3861,7 +3787,7 @@ gnutls_pubkey_t find_pubkey(gnutls_x509_crt_t crt, common_info_st * cinfo)
pubkey = load_pubkey(0, cinfo);
if (pubkey == NULL) { /* load from stdin */
- pem.data = (void *) fread_file(infile, &size);
+ pem.data = (void *) fread_file(infile, 0, &size);
pem.size = size;
if (!pem.data) {
@@ -4005,7 +3931,7 @@ void certificate_fpr(common_info_st * cinfo)
crt = load_cert(0, cinfo);
if (crt == NULL) {
- pem.data = (void *) fread_file(infile, &size);
+ pem.data = (void *) fread_file(infile, 0, &size);
pem.size = size;
if (!pem.data) {
diff --git a/src/cli-args.def b/src/cli-args.def
index 12b8bb05db..56ae77b077 100644
--- a/src/cli-args.def
+++ b/src/cli-args.def
@@ -172,7 +172,16 @@ flag = {
name = save-ocsp;
arg-type = string;
descrip = "Save the peer's OCSP status response in the provided file";
- doc = "";
+ doc = "";
+ flags-cant = save-ocsp-multi;
+};
+
+flag = {
+ name = save-ocsp-multi;
+ arg-type = string;
+ descrip = "Save all OCSP responses provided by the peer in this file";
+ doc = "The file will contain a list of PEM encoded OCSP status responses if any were provided by the peer, starting with the one for the peer's server certificate.";
+ flags-cant = save-ocsp;
};
flag = {
@@ -462,6 +471,12 @@ flag = {
doc = "";
};
+flag = {
+ name = waitresumption;
+ descrip = "Block waiting for the resumption data under TLS1.3";
+ doc = "This option makes the client to block waiting for the resumption data under TLS1.3. The option has effect only when --resume is provided.";
+};
+
doc-section = {
ds-type = 'SEE ALSO'; // or anything else
ds-format = 'texi'; // or texi or mdoc format
diff --git a/src/cli-debug.c b/src/cli-debug.c
index 06e47fd55e..c98c0c6f4a 100644
--- a/src/cli-debug.c
+++ b/src/cli-debug.c
@@ -85,15 +85,23 @@ static const TLS_TEST tls_tests[] = {
test_send_record_with_allow_small_records, "yes", "no", "dunno"},
#ifdef ENABLE_SSL3
{"for SSL 3.0 (RFC6101) support", test_ssl3, "yes", "no", "dunno"},
+ /* The following test will disable extensions if the server
+ * does support SSL 3.0, but only incompletely and without
+ * extensions. */
+ {"for SSL 3.0 with extensions", test_ssl3_with_extensions, "yes", "no", "dunno"},
+ {"for SSL 3.0 with cipher suites not in SSL 3.0 spec",
+ test_ssl3_unknown_ciphersuites, "yes", "no", "dunno"},
+#endif
/* The following tests will disable TLS 1.x if the server is
* buggy */
-#endif
{"whether we need to disable TLS 1.2", test_tls_disable2, "no",
"yes", "dunno"},
{"whether we need to disable TLS 1.1", test_tls_disable1, "no",
"yes", "dunno"},
{"whether we need to disable TLS 1.0", test_tls_disable0, "no",
"yes", "dunno"},
+ /* The following test will disable extensions if the server
+ * is buggy */
{"whether %NO_EXTENSIONS is required", test_no_extensions, "no", "yes",
"dunno"},
{"whether %COMPAT is required", test_record_padding, "no", "yes",
diff --git a/src/cli.c b/src/cli.c
index f02f842b71..cf0ef2ac98 100644
--- a/src/cli.c
+++ b/src/cli.c
@@ -78,7 +78,7 @@
/* global stuff here */
int resume, starttls, insecure, ranges, rehandshake, udp, mtu,
- inline_commands;
+ inline_commands, waitresumption;
unsigned int global_vflags = 0;
char *hostname = NULL;
char service[32]="";
@@ -358,6 +358,84 @@ static void try_save_cert(gnutls_session_t session)
return;
}
+static void try_save_ocsp_status(gnutls_session_t session)
+{
+ unsigned int cert_num = 0;
+ gnutls_certificate_get_peers(session, &cert_num);
+ if (cert_num == 0) {
+ fprintf(stderr, "no certificates sent by server, so can't get OCSP status!\n");
+ return;
+ }
+
+ const char *path;
+ gnutls_x509_crt_fmt_t type;
+ unsigned int max_out;
+
+ /* This function is called if exactly one of SAVE_OCSP and
+ * SAVE_OCSP_MULTI is set. */
+ if (HAVE_OPT(SAVE_OCSP))
+ {
+ path = OPT_ARG(SAVE_OCSP);
+ type = GNUTLS_X509_FMT_DER;
+ max_out = 1;
+ } else {
+ path = OPT_ARG(SAVE_OCSP_MULTI);
+ type = GNUTLS_X509_FMT_PEM;
+ max_out = cert_num;
+ }
+
+ FILE *fp = fopen(path, "w");
+ if (fp == NULL) {
+ fprintf(stderr, "could not open %s for writing\n", path);
+ exit(1);
+ }
+
+ for (unsigned int i = 0; i < max_out; i++) {
+ gnutls_datum_t oresp;
+ int ret = gnutls_ocsp_status_request_get2(session, i, &oresp);
+ if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
+ fprintf(stderr, "no OCSP response for certificate %u\n", i);
+ continue;
+ } else if (ret < 0) {
+ fprintf(stderr, "error getting OCSP response %u: %s\n",
+ i, gnutls_strerror(ret));
+ exit(1);
+ }
+
+ if (type == GNUTLS_X509_FMT_DER) {
+ /* on success the return value is equal to the
+ * number of items (third parameter) */
+ if (fwrite(oresp.data, oresp.size, 1, fp) != 1) {
+ fprintf(stderr, "writing to %s failed\n", path);
+ exit(1);
+ }
+ continue;
+ }
+
+ gnutls_datum_t t;
+ ret = gnutls_pem_base64_encode_alloc("OCSP RESPONSE",
+ &oresp, &t);
+ if (ret < 0) {
+ fprintf(stderr, "error allocating PEM OCSP response: %s\n",
+ gnutls_strerror(ret));
+ exit(1);
+ }
+
+ /* on success the return value is equal to the number
+ * of items (third parameter) */
+ if (fwrite(t.data, t.size, 1, fp) != 1) {
+ fprintf(stderr, "writing to %s failed\n", path);
+ exit(1);
+ }
+ gnutls_free(t.data);
+ }
+ if (fclose(fp) != 0) {
+ perror("failed to close OCSP save file");
+ }
+
+ return;
+}
+
static int cert_verify_callback(gnutls_session_t session)
{
int rc;
@@ -367,7 +445,6 @@ static int cert_verify_callback(gnutls_session_t session)
int dane = ENABLED_OPT(DANE);
int ca_verify = ENABLED_OPT(CA_VERIFICATION);
const char *txt_service;
- gnutls_datum_t oresp;
const char *host;
/* On an session with TOFU the PKI/DANE verification
@@ -390,23 +467,12 @@ static int cert_verify_callback(gnutls_session_t session)
}
#ifndef ENABLE_OCSP
- if (HAVE_OPT(SAVE_OCSP) || HAVE_OPT(OCSP)) {
+ if (HAVE_OPT(SAVE_OCSP_MULTI) || HAVE_OPT(SAVE_OCSP) || HAVE_OPT(OCSP)) {
fprintf(stderr, "OCSP is not supported!\n");
}
#else
- rc = gnutls_ocsp_status_request_get(session, &oresp);
- if (rc < 0) {
- oresp.data = NULL;
- oresp.size = 0;
- }
-
- if (HAVE_OPT(SAVE_OCSP) && oresp.data) {
- FILE *fp = fopen(OPT_ARG(SAVE_OCSP), "w");
-
- if (fp != NULL) {
- fwrite(oresp.data, 1, oresp.size, fp);
- fclose(fp);
- }
+ if (HAVE_OPT(SAVE_OCSP_MULTI) || HAVE_OPT(SAVE_OCSP)) {
+ try_save_ocsp_status(session);
}
#endif
@@ -926,11 +992,19 @@ static int try_resume(socket_st * hd)
gnutls_datum_t edata = {NULL, 0};
if (gnutls_session_is_resumed(hd->session) == 0) {
- /* not resumed - obtain the session data */
- ret = gnutls_session_get_data2(hd->session, &rdata);
- if (ret < 0) {
- rdata.data = NULL;
- }
+ do {
+ /* not resumed - obtain the session data */
+ ret = gnutls_session_get_data2(hd->session, &rdata);
+ if (ret < 0) {
+ rdata.data = NULL;
+ }
+
+ if ((gnutls_protocol_get_version(hd->session) != GNUTLS_TLS1_3) ||
+ ((gnutls_session_get_flags(hd->session) &
+ GNUTLS_SFLAGS_SESSION_TICKET))) {
+ break;
+ }
+ } while (waitresumption);
} else {
/* resumed - try to reuse the previous session data */
rdata.data = hd->rdata.data;
@@ -962,7 +1036,7 @@ static int try_resume(socket_st * hd)
fprintf(stderr, "could not open %s\n", OPT_ARG(EARLYDATA));
exit(1);
}
- edata.data = (void *) fread_file(fp, &size);
+ edata.data = (void *) fread_file(fp, 0, &size);
edata.size = size;
fclose(fp);
}
@@ -1622,6 +1696,7 @@ static void cmd_parser(int argc, char **argv)
rehandshake = HAVE_OPT(REHANDSHAKE);
insecure = HAVE_OPT(INSECURE);
ranges = HAVE_OPT(RANGES);
+ waitresumption = HAVE_OPT(WAITRESUMPTION);
if (insecure || HAVE_OPT(VERIFY_ALLOW_BROKEN)) {
global_vflags |= GNUTLS_VERIFY_ALLOW_BROKEN;
diff --git a/src/ocsptool.c b/src/ocsptool.c
index 3b7940962c..a963de039a 100644
--- a/src/ocsptool.c
+++ b/src/ocsptool.c
@@ -99,10 +99,9 @@ static void request_info(void)
if (HAVE_OPT(LOAD_REQUEST))
dat.data =
- (void *) read_binary_file(OPT_ARG(LOAD_REQUEST),
- &size);
+ (void *) read_file(OPT_ARG(LOAD_REQUEST), RF_BINARY, &size);
else
- dat.data = (void *) fread_file(infile, &size);
+ dat.data = (void *) fread_file(infile, 0, &size);
if (dat.data == NULL) {
fprintf(stderr, "error reading request\n");
app_exit(1);
@@ -236,10 +235,9 @@ static void response_info(void)
if (HAVE_OPT(LOAD_RESPONSE))
dat.data =
- (void *) read_binary_file(OPT_ARG(LOAD_RESPONSE),
- &size);
+ (void *) read_file(OPT_ARG(LOAD_RESPONSE), RF_BINARY, &size);
else
- dat.data = (void *) fread_file(infile, &size);
+ dat.data = (void *) fread_file(infile, 0, &size);
if (dat.data == NULL) {
fprintf(stderr, "error reading response\n");
app_exit(1);
@@ -348,7 +346,7 @@ static int _verify_response(gnutls_datum_t * data, gnutls_datum_t * nonce,
if (HAVE_OPT(LOAD_TRUST)) {
dat.data =
- (void *) read_binary_file(OPT_ARG(LOAD_TRUST), &size);
+ (void *) read_file(OPT_ARG(LOAD_TRUST), RF_BINARY, &size);
if (dat.data == NULL) {
fprintf(stderr, "error reading --load-trust: %s\n",
OPT_ARG(LOAD_TRUST));
@@ -524,10 +522,9 @@ static void verify_response(gnutls_datum_t *nonce)
if (HAVE_OPT(LOAD_RESPONSE))
dat.data =
- (void *) read_binary_file(OPT_ARG(LOAD_RESPONSE),
- &size);
+ (void *) read_file(OPT_ARG(LOAD_RESPONSE), RF_BINARY, &size);
else
- dat.data = (void *) fread_file(infile, &size);
+ dat.data = (void *) fread_file(infile, 0, &size);
if (dat.data == NULL) {
fprintf(stderr, "error reading response\n");
app_exit(1);
diff --git a/src/psk.c b/src/psk.c
index 775d8f80c9..6f77c6f285 100644
--- a/src/psk.c
+++ b/src/psk.c
@@ -141,35 +141,35 @@ int main(int argc, char **argv)
static int filecopy(const char *src, const char *dst)
{
- FILE *fd, *fd2;
+ FILE *fp, *fp2;
char line[5 * 1024];
char *p;
- fd = fopen(dst, "w");
- if (fd == NULL) {
+ fp = fopen(dst, "w");
+ if (fp == NULL) {
fprintf(stderr, "Cannot open '%s' for write\n", dst);
return -1;
}
- fd2 = fopen(src, "r");
- if (fd2 == NULL) {
+ fp2 = fopen(src, "r");
+ if (fp2 == NULL) {
/* empty file */
- fclose(fd);
+ fclose(fp);
return 0;
}
line[sizeof(line) - 1] = 0;
do {
- p = fgets(line, sizeof(line) - 1, fd2);
+ p = fgets(line, sizeof(line) - 1, fp2);
if (p == NULL)
break;
- fputs(line, fd);
+ fputs(line, fp);
}
while (1);
- fclose(fd);
- fclose(fd2);
+ fclose(fp);
+ fclose(fp2);
return 0;
}
@@ -178,7 +178,7 @@ static int
write_key(const char *username, const char *key, int key_size,
const char *passwd_file)
{
- FILE *fd;
+ FILE *fp;
char line[5 * 1024];
char *p, *pp;
char tmpname[1024];
@@ -186,7 +186,7 @@ write_key(const char *username, const char *key, int key_size,
/* delete previous entry */
struct stat st;
- FILE *fd2;
+ FILE *fp2;
int put;
if (strlen(passwd_file) + 5 > sizeof(tmpname)) {
@@ -207,25 +207,25 @@ write_key(const char *username, const char *key, int key_size,
return -1;
}
- fd = fopen(passwd_file, "w");
- if (fd == NULL) {
+ fp = fopen(passwd_file, "w");
+ if (fp == NULL) {
fprintf(stderr, "Cannot open '%s' for write\n",
passwd_file);
(void)remove(tmpname);
return -1;
}
- fd2 = fopen(tmpname, "r");
- if (fd2 == NULL) {
+ fp2 = fopen(tmpname, "r");
+ if (fp2 == NULL) {
fprintf(stderr, "Cannot open '%s' for read\n", tmpname);
(void)remove(tmpname);
- fclose(fd);
+ fclose(fp);
return -1;
}
put = 0;
do {
- p = fgets(line, sizeof(line) - 1, fd2);
+ p = fgets(line, sizeof(line) - 1, fp2);
if (p == NULL)
break;
@@ -237,19 +237,19 @@ write_key(const char *username, const char *key, int key_size,
MAX(strlen(username),
(unsigned int) (pp - p))) == 0) {
put = 1;
- fprintf(fd, "%s:%s\n", username, key);
+ fprintf(fp, "%s:%s\n", username, key);
} else {
- fputs(line, fd);
+ fputs(line, fp);
}
}
while (1);
if (put == 0) {
- fprintf(fd, "%s:%s\n", username, key);
+ fprintf(fp, "%s:%s\n", username, key);
}
- fclose(fd);
- fclose(fd2);
+ fclose(fp);
+ fclose(fp2);
(void)remove(tmpname);
diff --git a/src/serv-args.def b/src/serv-args.def
index 996fbe36ba..a584085e26 100644
--- a/src/serv-args.def
+++ b/src/serv-args.def
@@ -51,7 +51,7 @@ flag = {
flag = {
name = maxearlydata;
arg-type = number;
- arg-range = "1->4294967295";
+ arg-range = "1->";
descrip = "The maximum early data size to accept";
doc = "";
};
diff --git a/src/serv.c b/src/serv.c
index a4dd445da8..57304bc9d3 100644
--- a/src/serv.c
+++ b/src/serv.c
@@ -219,7 +219,7 @@ static void read_dh_params(void)
char tmpdata[2048];
int size;
gnutls_datum_t params;
- FILE *fd;
+ FILE *fp;
if (gnutls_dh_params_init(&dh_params) < 0) {
fprintf(stderr, "Error in dh parameter initialization\n");
@@ -228,15 +228,15 @@ static void read_dh_params(void)
/* read the params file
*/
- fd = fopen(dh_params_file, "r");
- if (fd == NULL) {
+ fp = fopen(dh_params_file, "r");
+ if (fp == NULL) {
fprintf(stderr, "Could not open %s\n", dh_params_file);
exit(1);
}
- size = fread(tmpdata, 1, sizeof(tmpdata) - 1, fd);
+ size = fread(tmpdata, 1, sizeof(tmpdata) - 1, fp);
tmpdata[size] = 0;
- fclose(fd);
+ fclose(fp);
params.data = (unsigned char *) tmpdata;
params.size = size;
@@ -1071,12 +1071,12 @@ get_response(gnutls_session_t session, char *request,
*response_length = strlen(*response);
return 1;
} else if (ret == 0) {
+ *response = strdup(request);
if (*response == NULL) {
fprintf(stderr, "Memory error\n");
return 0;
}
- *response = strdup(request);
- *response_length = ((*response) ? strlen(*response) : 0);
+ *response_length = strlen(*response);
} else {
*response = NULL;
do {
diff --git a/src/srptool.c b/src/srptool.c
index 27821be238..7939f6bfab 100644
--- a/src/srptool.c
+++ b/src/srptool.c
@@ -74,14 +74,14 @@ static void print_num(const char *msg, const gnutls_datum_t * num)
static int generate_create_conf(const char *tpasswd_conf)
{
- FILE *fd;
+ FILE *fp;
char line[5 * 1024];
int index = 1, srp_idx;
gnutls_datum_t g, n;
gnutls_datum_t str_g, str_n;
- fd = fopen(tpasswd_conf, "w");
- if (fd == NULL) {
+ fp = fopen(tpasswd_conf, "w");
+ if (fp == NULL) {
fprintf(stderr, "Cannot open file '%s'\n", tpasswd_conf);
return -1;
}
@@ -119,13 +119,13 @@ static int generate_create_conf(const char *tpasswd_conf)
if (gnutls_srp_base64_encode_alloc(&n, &str_n) < 0) {
fprintf(stderr, "Could not encode\n");
- fclose(fd);
+ fclose(fp);
return -1;
}
if (gnutls_srp_base64_encode_alloc(&g, &str_g) < 0) {
fprintf(stderr, "Could not encode\n");
- fclose(fd);
+ fclose(fp);
return -1;
}
@@ -134,11 +134,11 @@ static int generate_create_conf(const char *tpasswd_conf)
gnutls_free(str_n.data);
gnutls_free(str_g.data);
- fwrite(line, 1, strlen(line), fd);
+ fwrite(line, 1, strlen(line), fp);
}
- fclose(fd);
+ fclose(fp);
return 0;
@@ -211,35 +211,35 @@ _verify_passwd_int(const char *username, const char *passwd,
static int filecopy(const char *src, const char *dst)
{
- FILE *fd, *fd2;
+ FILE *fp, *fp2;
char line[5 * 1024];
char *p;
- fd = fopen(dst, "w");
- if (fd == NULL) {
+ fp = fopen(dst, "w");
+ if (fp == NULL) {
fprintf(stderr, "Cannot open '%s' for write\n", dst);
return -1;
}
- fd2 = fopen(src, "r");
- if (fd2 == NULL) {
+ fp2 = fopen(src, "r");
+ if (fp2 == NULL) {
/* empty file */
- fclose(fd);
+ fclose(fp);
return 0;
}
line[sizeof(line) - 1] = 0;
do {
- p = fgets(line, sizeof(line) - 1, fd2);
+ p = fgets(line, sizeof(line) - 1, fp2);
if (p == NULL)
break;
- fputs(line, fd);
+ fputs(line, fp);
}
while (1);
- fclose(fd);
- fclose(fd2);
+ fclose(fp);
+ fclose(fp2);
return 0;
}
@@ -247,18 +247,18 @@ static int filecopy(const char *src, const char *dst)
/* accepts password file */
static int find_strchr(const char *username, const char *file)
{
- FILE *fd;
+ FILE *fp;
char *pos;
char line[5 * 1024];
unsigned int i;
- fd = fopen(file, "r");
- if (fd == NULL) {
+ fp = fopen(file, "r");
+ if (fp == NULL) {
fprintf(stderr, "Cannot open file '%s'\n", file);
return -1;
}
- while (fgets(line, sizeof(line), fd) != NULL) {
+ while (fgets(line, sizeof(line), fp) != NULL) {
/* move to first ':' */
i = 0;
while ((line[i] != ':') && (line[i] != '\0')
@@ -269,12 +269,12 @@ static int find_strchr(const char *username, const char *file)
/* find the index */
pos = strrchr(line, ':');
pos++;
- fclose(fd);
+ fclose(fp);
return atoi(pos);
}
}
- fclose(fd);
+ fclose(fp);
return -1;
}
@@ -285,7 +285,7 @@ static int
verify_passwd(const char *conffile, const char *tpasswd,
const char *username, const char *passwd)
{
- FILE *fd;
+ FILE *fp;
char line[5 * 1024];
unsigned int i;
gnutls_datum_t g, n;
@@ -299,14 +299,14 @@ verify_passwd(const char *conffile, const char *tpasswd,
return -1;
}
- fd = fopen(conffile, "r");
- if (fd == NULL) {
+ fp = fopen(conffile, "r");
+ if (fp == NULL) {
fprintf(stderr, "Cannot find %s\n", conffile);
return -1;
}
do {
- p = fgets(line, sizeof(line) - 1, fd);
+ p = fgets(line, sizeof(line) - 1, fp);
}
while (p != NULL && atoi(p) != iindex);
@@ -316,20 +316,20 @@ verify_passwd(const char *conffile, const char *tpasswd,
}
line[sizeof(line) - 1] = 0;
- fclose(fd);
+ fclose(fp);
if ((iindex = read_conf_values(&g, &n, line)) < 0) {
fprintf(stderr, "Cannot parse conf file '%s'\n", conffile);
return -1;
}
- fd = fopen(tpasswd, "r");
- if (fd == NULL) {
+ fp = fopen(tpasswd, "r");
+ if (fp == NULL) {
fprintf(stderr, "Cannot open file '%s'\n", tpasswd);
return -1;
}
- while (fgets(line, sizeof(line), fd) != NULL) {
+ while (fgets(line, sizeof(line), fp) != NULL) {
/* move to first ':'
* This is the actual verifier.
*/
@@ -342,7 +342,7 @@ verify_passwd(const char *conffile, const char *tpasswd,
char *verifier_pos, *salt_pos;
pos = strchr(line, ':');
- fclose(fd);
+ fclose(fp);
if (pos == NULL) {
fprintf(stderr,
"Cannot parse conf file '%s'\n",
@@ -369,7 +369,7 @@ verify_passwd(const char *conffile, const char *tpasswd,
}
}
- fclose(fd);
+ fclose(fp);
return -1;
}
@@ -511,7 +511,7 @@ int
crypt_int(const char *username, const char *passwd, int salt_size,
const char *tpasswd_conf, const char *tpasswd, int uindex)
{
- FILE *fd;
+ FILE *fp;
char *cr;
gnutls_datum_t g, n;
char line[5 * 1024];
@@ -519,14 +519,14 @@ crypt_int(const char *username, const char *passwd, int salt_size,
int iindex;
char tmpname[1024];
- fd = fopen(tpasswd_conf, "r");
- if (fd == NULL) {
+ fp = fopen(tpasswd_conf, "r");
+ if (fp == NULL) {
fprintf(stderr, "Cannot find %s\n", tpasswd_conf);
return -1;
}
do { /* find the specified uindex in file */
- p = fgets(line, sizeof(line) - 1, fd);
+ p = fgets(line, sizeof(line) - 1, fp);
}
while (p != NULL && (iindex = atoi(p)) != uindex);
@@ -536,7 +536,7 @@ crypt_int(const char *username, const char *passwd, int salt_size,
}
line[sizeof(line) - 1] = 0;
- fclose(fd);
+ fclose(fp);
if ((iindex = read_conf_values(&g, &n, line)) < 0) {
fprintf(stderr, "Cannot parse conf file '%s'\n",
tpasswd_conf);
@@ -550,7 +550,7 @@ crypt_int(const char *username, const char *passwd, int salt_size,
} else {
/* delete previous entry */
struct stat st;
- FILE *fd2;
+ FILE *fp2;
int put;
if (strlen(tpasswd) + 5 > sizeof(tmpname)) {
@@ -572,16 +572,16 @@ crypt_int(const char *username, const char *passwd, int salt_size,
return -1;
}
- fd = fopen(tpasswd, "w");
- if (fd == NULL) {
+ fp = fopen(tpasswd, "w");
+ if (fp == NULL) {
fprintf(stderr, "Cannot open '%s' for write\n",
tpasswd);
(void)remove(tmpname);
return -1;
}
- fd2 = fopen(tmpname, "r");
- if (fd2 == NULL) {
+ fp2 = fopen(tmpname, "r");
+ if (fp2 == NULL) {
fprintf(stderr, "Cannot open '%s' for read\n",
tmpname);
(void)remove(tmpname);
@@ -590,7 +590,7 @@ crypt_int(const char *username, const char *passwd, int salt_size,
put = 0;
do {
- p = fgets(line, sizeof(line) - 1, fd2);
+ p = fgets(line, sizeof(line) - 1, fp2);
if (p == NULL)
break;
@@ -602,20 +602,20 @@ crypt_int(const char *username, const char *passwd, int salt_size,
MAX(strlen(username),
(unsigned int) (pp - p))) == 0) {
put = 1;
- fprintf(fd, "%s:%s:%u\n", username, cr,
+ fprintf(fp, "%s:%s:%u\n", username, cr,
iindex);
} else {
- fputs(line, fd);
+ fputs(line, fp);
}
}
while (1);
if (put == 0) {
- fprintf(fd, "%s:%s:%u\n", username, cr, iindex);
+ fprintf(fp, "%s:%s:%u\n", username, cr, iindex);
}
- fclose(fd);
- fclose(fd2);
+ fclose(fp);
+ fclose(fp2);
(void)remove(tmpname);
diff --git a/src/tests.c b/src/tests.c
index 82474b0995..c7f2662efe 100644
--- a/src/tests.c
+++ b/src/tests.c
@@ -128,9 +128,12 @@ char prio_str[768] = "";
#define ALL_CIPHERS "+CIPHER-ALL:+ARCFOUR-128:+3DES-CBC" GOST_CIPHERS
#define BLOCK_CIPHERS "+3DES-CBC:+AES-128-CBC:+CAMELLIA-128-CBC:+AES-256-CBC:+CAMELLIA-256-CBC"
+#define SSL3_CIPHERS "+ARCFOUR-128:+3DES-CBC"
#define ALL_COMP "+COMP-NULL"
#define ALL_MACS "+MAC-ALL:+MD5:+SHA1" GOST_MACS
+#define SSL3_MACS "+MD5:+SHA1"
#define ALL_KX "+RSA:+DHE-RSA:+DHE-DSS:+ANON-DH:+ECDHE-RSA:+ECDHE-ECDSA:+ANON-ECDH" GOST_KX
+#define SSL3_KX "+RSA:+DHE-RSA:+DHE-DSS"
#define INIT_STR "NONE:"
char rest[384] = "%UNSAFE_RENEGOTIATION:+SIGN-ALL:+GROUP-ALL" GOST_REST;
@@ -608,6 +611,48 @@ test_code_t test_ssl3(gnutls_session_t session)
{
int ret;
sprintf(prio_str, INIT_STR
+ SSL3_CIPHERS ":" ALL_COMP ":+VERS-SSL3.0:%%NO_EXTENSIONS:"
+ SSL3_MACS ":" SSL3_KX ":%s", rest);
+ _gnutls_priority_set_direct(session, prio_str);
+
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred);
+
+ ret = test_do_handshake(session);
+ if (ret == TEST_SUCCEED)
+ ssl3_ok = 1;
+
+ return ret;
+}
+
+test_code_t test_ssl3_with_extensions(gnutls_session_t session)
+{
+ int ret;
+ sprintf(prio_str, INIT_STR
+ SSL3_CIPHERS ":" ALL_COMP ":+VERS-SSL3.0:"
+ SSL3_MACS ":" SSL3_KX ":%s", rest);
+ _gnutls_priority_set_direct(session, prio_str);
+
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred);
+
+ ret = test_do_handshake(session);
+ if (ssl3_ok != 0 && ret != TEST_SUCCEED) {
+ /* We need to disable extensions before trying TLS 1.0, because
+ * it also may not work with extensions. There are known servers
+ * which partially support both SSL 3.0 and TLS 1.0, but *both*
+ * only with disabled extensions:
+ * https://gitlab.com/gnutls/gnutls/-/issues/958#note_309267384
+ */
+ tls_ext_ok = 0;
+ strcat(rest, ":%NO_EXTENSIONS");
+ }
+
+ return ret;
+}
+
+test_code_t test_ssl3_unknown_ciphersuites(gnutls_session_t session)
+{
+ int ret;
+ sprintf(prio_str, INIT_STR
ALL_CIPHERS ":" ALL_COMP ":+VERS-SSL3.0:"
ALL_MACS ":" ALL_KX ":%s", rest);
_gnutls_priority_set_direct(session, prio_str);
@@ -1003,7 +1048,8 @@ test_code_t test_record_padding(gnutls_session_t session)
if (ret == TEST_SUCCEED) {
tls1_ok = 1;
strcat(rest, ":%COMPAT");
- }
+ } else
+ ret = TEST_IGNORE2; /* neither succeeded */
}
return ret;
@@ -1013,6 +1059,12 @@ test_code_t test_no_extensions(gnutls_session_t session)
{
int ret;
+#ifdef ENABLE_SSL3
+ /* If already disabled by test_ssl3_with_extensions */
+ if (ssl3_ok != 0 && tls_ext_ok == 0)
+ return TEST_FAILED;
+#endif
+
sprintf(prio_str,
INIT_STR ALL_CIPHERS ":" ALL_COMP ":%s:"
ALL_MACS ":" ALL_KX ":%s", protocol_str, rest);
@@ -1034,7 +1086,8 @@ test_code_t test_no_extensions(gnutls_session_t session)
if (ret == TEST_SUCCEED) {
tls_ext_ok = 0;
strcat(rest, ":%NO_EXTENSIONS");
- }
+ } else
+ ret = TEST_IGNORE2; /* neither succeeded */
}
return ret;
diff --git a/src/tests.h b/src/tests.h
index a8326019ca..d9721a70e2 100644
--- a/src/tests.h
+++ b/src/tests.h
@@ -36,6 +36,8 @@ test_code_t test_dhe(gnutls_session_t state);
test_code_t test_rfc7919(gnutls_session_t state);
test_code_t test_dhe_group(gnutls_session_t state);
test_code_t test_ssl3(gnutls_session_t state);
+test_code_t test_ssl3_with_extensions(gnutls_session_t state);
+test_code_t test_ssl3_unknown_ciphersuites(gnutls_session_t state);
test_code_t test_aes(gnutls_session_t state);
test_code_t test_camellia_cbc(gnutls_session_t state);
test_code_t test_camellia_gcm(gnutls_session_t state);
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 4e12bc802e..7cdf828e0c 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -32,7 +32,7 @@ SUBDIRS += suite
endif
EXTRA_DIST = suppressions.valgrind eagain-common.h cert-common.h test-chains.h \
- ocsp-common.h cmocka-common.h virt-time.h \
+ ocsp-common.h cmocka-common.h virt-time.h test-chains-issuer.h test-chains-issuer-aia.h \
certs/ca-cert-ecc.pem certs/cert-ecc256.pem certs/cert-ecc521.pem \
certs/cert-rsa-2432.pem certs/ecc384.pem certs/ecc.pem hex.h \
certs/ca-ecc.pem certs/cert-ecc384.pem certs/cert-ecc.pem certs/ecc256.pem \
@@ -140,9 +140,11 @@ ctests += tls13/psk-dumbfw
ctests += tls13-early-start
+ctests += tls13/no-auto-send-ticket
+
ctests += mini-record-2 simple gnutls_hmac_fast set_pkcs12_cred cert certuniqueid tls-neg-ext-key \
mpi certificate_set_x509_crl dn parse_ca x509-dn x509-dn-decode record-sizes \
- hostname-check cve-2008-4989 pkcs12_s2k chainverify record-sizes-range \
+ hostname-check cve-2008-4989 pkcs12_s2k chainverify missingissuer missingissuer_aia record-sizes-range \
crq_key_id x509sign-verify sign-verify cve-2009-1415 cve-2009-1416 \
tls10-server-kx-neg tls11-server-kx-neg tls12-server-kx-neg ssl30-server-kx-neg \
tls12-cipher-neg tls11-cipher-neg tls10-cipher-neg ssl30-cipher-neg \
@@ -217,7 +219,8 @@ ctests += mini-record-2 simple gnutls_hmac_fast set_pkcs12_cred cert certuniquei
tls-record-size-limit-asym dh-compute ecdh-compute sign-verify-data-newapi \
sign-verify-newapi sign-verify-deterministic iov aead-cipher-vec \
tls13-without-timeout-func buffer status-request-revoked \
- set_x509_ocsp_multi_cli
+ set_x509_ocsp_multi_cli kdf-api keylog-func \
+ dtls_hello_random_value tls_hello_random_value x509cert-dntypes
if HAVE_SECCOMP_TESTS
ctests += dtls-with-seccomp tls-with-seccomp dtls-client-with-seccomp tls-client-with-seccomp
@@ -426,7 +429,7 @@ openssl_LDADD = ../extra/libgnutls-openssl.la $(LDADD)
endif
if HAVE_FORK
-ctests += x509self x509dn anonself pskself dhepskself \
+ctests += x509self x509dn anonself pskself pskself2 dhepskself \
setcredcrash tls12-resume-x509 tls12-resume-psk tls12-resume-anon \
tls13-resume-x509 tls13-resume-psk tls13-early-data tls13-early-data-neg \
resume-with-record-size-limit
@@ -564,6 +567,7 @@ endif
if !WINDOWS
indirect_tests += datefudge-check
+noinst_PROGRAMS = datefudge-check
endif
check_PROGRAMS = $(cpptests) $(ctests) $(indirect_tests)
diff --git a/tests/aead-cipher-vec.c b/tests/aead-cipher-vec.c
index 10e3db8626..6a30a35f7b 100644
--- a/tests/aead-cipher-vec.c
+++ b/tests/aead-cipher-vec.c
@@ -49,6 +49,7 @@ static void start(const char *name, int algo)
giovec_t auth_iov[2];
uint8_t tag[64];
size_t tag_size = 0;
+ size_t i;
key.data = key16;
key.size = gnutls_cipher_get_key_size(algo);
@@ -82,21 +83,23 @@ static void start(const char *name, int algo)
if (ret < 0)
fail("gnutls_cipher_init: %s\n", gnutls_strerror(ret));
- ret = gnutls_aead_cipher_encryptv2(ch,
- iv.data, iv.size,
- auth_iov, 2,
- iov, 3,
- tag, &tag_size);
- if (ret < 0)
- fail("could not encrypt data: %s\n", gnutls_strerror(ret));
-
- ret = gnutls_aead_cipher_decryptv2(ch,
- iv.data, iv.size,
- auth_iov, 2,
- iov, 3,
- tag, tag_size);
- if (ret < 0)
- fail("could not decrypt data: %s\n", gnutls_strerror(ret));
+ for (i = 0; i < 2; i++) {
+ ret = gnutls_aead_cipher_encryptv2(ch,
+ iv.data, iv.size,
+ auth_iov, 2,
+ iov, i + 1,
+ tag, &tag_size);
+ if (ret < 0)
+ fail("could not encrypt data: %s\n", gnutls_strerror(ret));
+
+ ret = gnutls_aead_cipher_decryptv2(ch,
+ iv.data, iv.size,
+ auth_iov, 2,
+ iov, i + 1,
+ tag, tag_size);
+ if (ret < 0)
+ fail("could not decrypt data: %s\n", gnutls_strerror(ret));
+ }
gnutls_aead_cipher_deinit(ch);
}
@@ -116,6 +119,7 @@ doit(void)
}
start("aes-128-gcm", GNUTLS_CIPHER_AES_128_GCM);
+ start("aes-192-gcm", GNUTLS_CIPHER_AES_192_GCM);
start("aes-256-gcm", GNUTLS_CIPHER_AES_256_GCM);
start("aes-128-ccm", GNUTLS_CIPHER_AES_128_CCM);
if (!gnutls_fips140_mode_enabled())
diff --git a/tests/atfork.c b/tests/atfork.c
index 42c4851efd..654519dc7c 100644
--- a/tests/atfork.c
+++ b/tests/atfork.c
@@ -32,7 +32,6 @@
#include <sys/wait.h>
#endif
-#include "utils.h"
#include <gnutls/gnutls.h>
#include <gnutls/crypto.h>
@@ -46,6 +45,10 @@ void doit(void)
#include "../lib/atfork.h"
#include "../lib/atfork.c"
+/* utils.h must be loaded after gnutls_int.h, as it redefines some
+ * macros from gnulib */
+#include "utils.h"
+
void doit(void)
{
pid_t pid;
diff --git a/tests/cert-reencoding.sh b/tests/cert-reencoding.sh
index aadd6fd1bd..240d336778 100755
--- a/tests/cert-reencoding.sh
+++ b/tests/cert-reencoding.sh
@@ -57,7 +57,7 @@ export TZ="UTC"
. "${srcdir}/scripts/common.sh"
-check_for_datefudge
+skip_if_no_datefudge
eval "${GETPORT}"
# Port for gnutls-serv
diff --git a/tests/cert-tests/Makefile.am b/tests/cert-tests/Makefile.am
index 87d9314363..17886ef7c5 100644
--- a/tests/cert-tests/Makefile.am
+++ b/tests/cert-tests/Makefile.am
@@ -101,7 +101,7 @@ EXTRA_DIST = data/ca-no-pathlen.pem data/no-ca-or-pathlen.pem data/aki-cert.pem
data/cert-with-non-digits-time-ca.pem data/cert-with-non-digits-time.pem \
data/chain-512-leaf.pem data/chain-512-subca.pem data/chain-512-ca.pem \
templates/template-no-ca-honor.tmpl templates/template-no-ca-explicit.tmpl \
- data/crq-cert-no-ca-explicit.pem data/crq-cert-no-ca-honor.pem
+ data/crq-cert-no-ca-explicit.pem data/crq-cert-no-ca-honor.pem data/commonName.cer
dist_check_SCRIPTS = pathlen aki invalid-sig email \
pkcs7 pkcs7-broken-sigs privkey-import name-constraints certtool-long-cn crl provable-privkey \
diff --git a/tests/cert-tests/alt-chain b/tests/cert-tests/alt-chain
index b715416cc0..a2261b3809 100755
--- a/tests/cert-tests/alt-chain
+++ b/tests/cert-tests/alt-chain
@@ -36,7 +36,7 @@ OUTFILE=out-pkcs7.$$.tmp
. ${srcdir}/../scripts/common.sh
-check_for_datefudge
+skip_if_no_datefudge
OLD_CA_FILE="${srcdir}/data/alt-chain-old-ca.pem"
NEW_CA_FILE="${srcdir}/data/alt-chain-new-ca.pem"
diff --git a/tests/cert-tests/cert-critical b/tests/cert-tests/cert-critical
index 74f335cb87..f923b29fa4 100755
--- a/tests/cert-tests/cert-critical
+++ b/tests/cert-tests/cert-critical
@@ -36,7 +36,7 @@ export TZ="UTC"
. ${srcdir}/../scripts/common.sh
-check_for_datefudge
+skip_if_no_datefudge
datefudge "2017-2-28" \
${VALGRIND} "${CERTTOOL}" --verify-chain --infile ${srcdir}/data/chain-with-critical-on-root.pem
diff --git a/tests/cert-tests/cert-non-digits-time b/tests/cert-tests/cert-non-digits-time
index 28880b87ac..9c25c396de 100755
--- a/tests/cert-tests/cert-non-digits-time
+++ b/tests/cert-tests/cert-non-digits-time
@@ -32,7 +32,7 @@ if ! test -z "${VALGRIND}"; then
VALGRIND="${LIBTOOL:-libtool} --mode=execute ${VALGRIND}"
fi
-check_for_datefudge
+skip_if_no_datefudge
# Check whether certificates with non-digits time fields are accepted
datefudge -s "2019-12-19" \
diff --git a/tests/cert-tests/certtool b/tests/cert-tests/certtool
index e604634678..0fd29beea9 100755
--- a/tests/cert-tests/certtool
+++ b/tests/cert-tests/certtool
@@ -153,13 +153,25 @@ if test $? = 0;then
exit 1
fi
+${VALGRIND} "${CERTTOOL}" -i --infile "${srcdir}/data/commonName.cer" | grep -v "Not After:" > ${TMPFILE1}
+if test $? != 0;then
+ echo "commonName cert output failed"
+ exit 1
+fi
+
+${DIFF} "${srcdir}/data/commonName.cer" ${TMPFILE1}
+if test $? != 0;then
+ exit 1
+fi
+
+
rm -f ${TMPFILE1} ${TMPFILE2}
export TZ="UTC"
. ${srcdir}/../scripts/common.sh
-check_for_datefudge
+skip_if_no_datefudge
cat "${srcdir}/../certs/cert-ecc256.pem" "${srcdir}/../certs/ca-cert-ecc.pem"|datefudge "2012-11-22" \
${VALGRIND} "${CERTTOOL}" --verify-chain
diff --git a/tests/cert-tests/certtool-eddsa b/tests/cert-tests/certtool-eddsa
index c097fbf6c6..7e07822507 100755
--- a/tests/cert-tests/certtool-eddsa
+++ b/tests/cert-tests/certtool-eddsa
@@ -124,7 +124,7 @@ rm -f "${TMPFILE}" "${TMPFILE2}"
rm -f "${KEYFILE}"
-check_for_datefudge
+skip_if_no_datefudge
# Test certificate chain using Ed25519
datefudge "2017-7-6" \
diff --git a/tests/cert-tests/certtool-rsa-pss b/tests/cert-tests/certtool-rsa-pss
index aed79ff2e2..654bf34869 100755
--- a/tests/cert-tests/certtool-rsa-pss
+++ b/tests/cert-tests/certtool-rsa-pss
@@ -210,7 +210,7 @@ export TZ="UTC"
. ${srcdir}/../scripts/common.sh
-check_for_datefudge
+skip_if_no_datefudge
datefudge "2012-11-22" \
${VALGRIND} "${CERTTOOL}" --verify --load-ca-certificate "${srcdir}/data/cert-rsa-pss.pem" --infile "${srcdir}/data/cert-rsa-pss.pem"
diff --git a/tests/cert-tests/certtool-verify-profiles b/tests/cert-tests/certtool-verify-profiles
index a7ebd711ea..a4d738627e 100755
--- a/tests/cert-tests/certtool-verify-profiles
+++ b/tests/cert-tests/certtool-verify-profiles
@@ -36,7 +36,7 @@ OUTFILE=out-pkcs7.$$.tmp
. ${srcdir}/../scripts/common.sh
-check_for_datefudge
+skip_if_no_datefudge
echo "Checking chain with insecure leaf"
datefudge -s "2019-12-19" \
diff --git a/tests/cert-tests/crl b/tests/cert-tests/crl
index 62b320b2bf..f4f97d757b 100755
--- a/tests/cert-tests/crl
+++ b/tests/cert-tests/crl
@@ -171,7 +171,7 @@ export TZ="UTC"
. ${srcdir}/../scripts/common.sh
-check_for_datefudge
+skip_if_no_datefudge
datefudge -s "2020-01-20 10:00:00" ${VALGRIND} \
"${CERTTOOL}" --generate-crl --load-ca-privkey "${srcdir}/data/template-test.key" \
diff --git a/tests/cert-tests/crq b/tests/cert-tests/crq
index 89099cfc0a..1d64dee27e 100755
--- a/tests/cert-tests/crq
+++ b/tests/cert-tests/crq
@@ -40,7 +40,7 @@ OUTFILE2=out2.$$.tmp
. ${srcdir}/../scripts/common.sh
-check_for_datefudge
+skip_if_no_datefudge
${VALGRIND} "${CERTTOOL}" --inder --crq-info --infile "${srcdir}/data/csr-invalid.der" >"${OUTFILE}" 2>&1
rc=$?
diff --git a/tests/cert-tests/data/commonName.cer b/tests/cert-tests/data/commonName.cer
new file mode 100644
index 0000000000..91d02fdd85
--- /dev/null
+++ b/tests/cert-tests/data/commonName.cer
@@ -0,0 +1,52 @@
+X.509 Certificate Information:
+ Version: 3
+ Serial Number (hex): 06376c00aa00648a11cfb8d4aa5c35f4
+ Issuer: CN=Root Agency
+ Validity:
+ Not Before: Tue May 28 22:02:59 UTC 1996
+ Subject: CN=Root Agency
+ Subject Public Key Algorithm: RSA
+ Algorithm Security Level: Export (512 bits)
+ Modulus (bits 512):
+ 00:81:55:22:b9:8a:a4:6f:ed:d6:e7:d9:66:0f:55:bc
+ d7:cd:d5:bc:4e:40:02:21:a2:b1:f7:87:30:85:5e:d2
+ f2:44:b9:dc:9b:75:b6:fb:46:5f:42:b6:9d:23:36:0b
+ de:54:0f:cd:bd:1f:99:2a:10:58:11:cb:40:cb:b5:a7
+ 41
+ Exponent (bits 24):
+ 01:00:01
+ Extensions:
+ Common Name (not critical):
+ For Testing Purposes Only Sample Software Publishing Credentials Agency
+ Unknown extension 2.5.29.1 (not critical):
+ ASCII: 0>.....-...O..a!..dc..0.1.0...U....Root Agency...7l...d......\5.
+ Hexdump: 303e801012e4092d061d1d4f008d6121dc166463a1183016311430120603550403130b526f6f74204167656e6379821006376c00aa00648a11cfb8d4aa5c35f4
+ Signature Algorithm: RSA-MD5
+warning: signed using a broken signature algorithm that can be forged.
+ Signature:
+ 2d:2e:3e:7b:89:42:89:3f:a8:21:17:fa:f0:f5:c3:95
+ db:62:69:5b:c9:dc:c1:b3:fa:f0:c4:6f:6f:64:9a:bd
+ e7:1b:25:68:72:83:67:bd:56:b0:8d:01:bd:2a:f7:cc
+ 4b:bd:87:a5:ba:87:20:4c:42:11:41:ad:10:17:3b:8c
+Other Information:
+ Fingerprint:
+ sha1:fee449ee0e3965a5246f000e87fde2a065fd89d4
+ sha256:8b13dbb25eb339a630c76c810d14b44b552e68dc10a93e82e754da23f858774a
+ Public Key ID:
+ sha1:38596dac2a46c9002309905e1f02c1fb5df724cd
+ sha256:73a97a992bfd29b91ef23175b367db9c561c516f634f759e3d430230a3d0695c
+ Public Key PIN:
+ pin-sha256:c6l6mSv9Kbke8jF1s2fbnFYcUW9jT3WePUMCMKPQaVw=
+
+-----BEGIN CERTIFICATE-----
+MIIByjCCAXSgAwIBAgIQBjdsAKoAZIoRz7jUqlw19DANBgkqhkiG9w0BAQQFADAW
+MRQwEgYDVQQDEwtSb290IEFnZW5jeTAeFw05NjA1MjgyMjAyNTlaFw0zOTEyMzEy
+MzU5NTlaMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MFswDQYJKoZIhvcNAQEBBQAD
+SgAwRwJAgVUiuYqkb+3W59lmD1W8183VvE5AAiGisfeHMIVe0vJEudybdbb7Rl9C
+tp0jNgveVA/NvR+ZKhBYEctAy7WnQQIDAQABo4GeMIGbMFAGA1UEAwRJE0dGb3Ig
+VGVzdGluZyBQdXJwb3NlcyBPbmx5IFNhbXBsZSBTb2Z0d2FyZSBQdWJsaXNoaW5n
+IENyZWRlbnRpYWxzIEFnZW5jeTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRj
+oRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwDQYJ
+KoZIhvcNAQEEBQADQQAtLj57iUKJP6ghF/rw9cOV22JpW8ncwbP68MRvb2Savecb
+JWhyg2e9VrCNAb0q98xLvYeluocgTEIRQa0QFzuM
+-----END CERTIFICATE-----
diff --git a/tests/cert-tests/data/crl-demo3.pem b/tests/cert-tests/data/crl-demo3.pem
index 1e04338c67..a91b1f905a 100644
--- a/tests/cert-tests/data/crl-demo3.pem
+++ b/tests/cert-tests/data/crl-demo3.pem
@@ -1,5 +1,5 @@
X.509 Certificate Revocation List Information:
- Version: 1 (default)
+ Version: 1
Issuer: OU=VeriSign Commercial Software Publishers CA,O=VeriSign\, Inc.,L=Internet
Update dates:
Issued: Wed Mar 08 09:00:11 UTC 2017
diff --git a/tests/cert-tests/data/full.p7b.out b/tests/cert-tests/data/full.p7b.out
index fc200f5e17..c4dd043e33 100644
--- a/tests/cert-tests/data/full.p7b.out
+++ b/tests/cert-tests/data/full.p7b.out
@@ -3,10 +3,10 @@ Signers:
Signer's serial: 4de0b4ca
Signature Algorithm: RSA-SHA256
Signed Attributes:
- 1.2.840.113549.1.9.15: 306a300b060960864801650304012a300b0609608648016503040116300b0609608648016503040102300a06082a864886f70d0307300e06082a864886f70d030202020080300d06082a864886f70d0302020140300706052b0e030207300d06082a864886f70d0302020128
- 1.2.840.113549.1.9.4: 0420ca23e4b39a242dcece33fc776b6c9195595700f92201de19426d2d505576210f
- 1.2.840.113549.1.9.5: 170d3135303630313139323232325a
- 1.2.840.113549.1.9.3: 06092a864886f70d010701
+ smimeCapabilities: 306a300b060960864801650304012a300b0609608648016503040116300b0609608648016503040102300a06082a864886f70d0307300e06082a864886f70d030202020080300d06082a864886f70d0302020140300706052b0e030207300d06082a864886f70d0302020128
+ messageDigest: 0420ca23e4b39a242dcece33fc776b6c9195595700f92201de19426d2d505576210f
+ signingTime: 170d3135303630313139323232325a
+ contentType: 06092a864886f70d010701
Number of certificates: 2
diff --git a/tests/cert-tests/data/grfc.crt b/tests/cert-tests/data/grfc.crt
index 20f587ea6e..fe7700e3e1 100644
--- a/tests/cert-tests/data/grfc.crt
+++ b/tests/cert-tests/data/grfc.crt
@@ -37,9 +37,9 @@ X.509 Certificate Information:
ASCII: ...
Hexdump: 020100
Certificate Policies (not critical):
- 1.2.643.100.113.1
- 1.2.643.100.113.2
- 2.5.29.32.0
+ 1.2.643.100.113.1 (Russian security class KC1)
+ 1.2.643.100.113.2 (Russian security class KC2)
+ 2.5.29.32.0 (anyPolicy)
Signature Algorithm: GOSTR341001
warning: signed using a broken signature algorithm that can be forged.
Signature:
diff --git a/tests/cert-tests/data/long-oids.pem b/tests/cert-tests/data/long-oids.pem
index 0306f536b9..15e8b3ed24 100644
--- a/tests/cert-tests/data/long-oids.pem
+++ b/tests/cert-tests/data/long-oids.pem
@@ -36,6 +36,8 @@ X.509 Certificate Information:
Key encipherment.
Data encipherment.
Authority Key Identifier (not critical):
+ directoryName: CN=sat-r220-10.lab.eng.rdu2.redhat.com,OU=SomeOrgUnit,O=Katello,L=Raleigh,ST=North Carolina,C=US
+ serial: 00a4e7caebbe435dcc
caca62860405f0f59b38d22c3c8c650fc6baa53c
Subject Key Identifier (not critical):
0e8d7b53ba5a9e9244e56458a1db8347053e32d3
diff --git a/tests/cert-tests/data/openssl-keyid.p7b.out b/tests/cert-tests/data/openssl-keyid.p7b.out
index 3eefda94c6..de622ea1fe 100644
--- a/tests/cert-tests/data/openssl-keyid.p7b.out
+++ b/tests/cert-tests/data/openssl-keyid.p7b.out
@@ -2,10 +2,10 @@ Signers:
Signer's issuer key ID: 7607584ceab529f52d80068c834a820d09ec93de
Signature Algorithm: RSA-SHA256
Signed Attributes:
- 1.2.840.113549.1.9.15: 306a300b060960864801650304012a300b0609608648016503040116300b0609608648016503040102300a06082a864886f70d0307300e06082a864886f70d030202020080300d06082a864886f70d0302020140300706052b0e030207300d06082a864886f70d0302020128
- 1.2.840.113549.1.9.4: 0420728be51f7b63dcf73f28ba80d277ce47f8cf5a75a02d4e6770e19baa57a767a4
- 1.2.840.113549.1.9.5: 170d3136313132343135353132375a
- 1.2.840.113549.1.9.3: 06092a864886f70d010701
+ smimeCapabilities: 306a300b060960864801650304012a300b0609608648016503040116300b0609608648016503040102300a06082a864886f70d0307300e06082a864886f70d030202020080300d06082a864886f70d0302020140300706052b0e030207300d06082a864886f70d0302020128
+ messageDigest: 0420728be51f7b63dcf73f28ba80d277ce47f8cf5a75a02d4e6770e19baa57a767a4
+ signingTime: 170d3136313132343135353132375a
+ contentType: 06092a864886f70d010701
Number of certificates: 2
diff --git a/tests/cert-tests/data/openssl.p7b.out b/tests/cert-tests/data/openssl.p7b.out
index 6330451477..6d2e69d2ea 100644
--- a/tests/cert-tests/data/openssl.p7b.out
+++ b/tests/cert-tests/data/openssl.p7b.out
@@ -3,10 +3,10 @@ Signers:
Signer's serial: 5838027a15510d5a
Signature Algorithm: ECDSA-SHA256
Signed Attributes:
- 1.2.840.113549.1.9.15: 306a300b060960864801650304012a300b0609608648016503040116300b0609608648016503040102300a06082a864886f70d0307300e06082a864886f70d030202020080300d06082a864886f70d0302020140300706052b0e030207300d06082a864886f70d0302020128
- 1.2.840.113549.1.9.4: 0420728be51f7b63dcf73f28ba80d277ce47f8cf5a75a02d4e6770e19baa57a767a4
- 1.2.840.113549.1.9.5: 170d3136313132353039333233305a
- 1.2.840.113549.1.9.3: 06092a864886f70d010701
+ smimeCapabilities: 306a300b060960864801650304012a300b0609608648016503040116300b0609608648016503040102300a06082a864886f70d0307300e06082a864886f70d030202020080300d06082a864886f70d0302020140300706052b0e030207300d06082a864886f70d0302020128
+ messageDigest: 0420728be51f7b63dcf73f28ba80d277ce47f8cf5a75a02d4e6770e19baa57a767a4
+ signingTime: 170d3136313132353039333233305a
+ contentType: 06092a864886f70d010701
Number of certificates: 2
diff --git a/tests/cert-tests/data/single-ca.p7b.out b/tests/cert-tests/data/single-ca.p7b.out
index 35744628b8..bb7425e285 100644
--- a/tests/cert-tests/data/single-ca.p7b.out
+++ b/tests/cert-tests/data/single-ca.p7b.out
@@ -3,10 +3,10 @@ Signers:
Signer's serial: 00
Signature Algorithm: RSA-SHA256
Signed Attributes:
- 1.2.840.113549.1.9.15: 306a300b060960864801650304012a300b0609608648016503040116300b0609608648016503040102300a06082a864886f70d0307300e06082a864886f70d030202020080300d06082a864886f70d0302020140300706052b0e030207300d06082a864886f70d0302020128
- 1.2.840.113549.1.9.4: 0420aadc1955c030f723e9d89ed9d486b4eef5b0d1c6945be0dd6b7b340d42928ec9
- 1.2.840.113549.1.9.5: 170d3135303533313036343633385a
- 1.2.840.113549.1.9.3: 06092a864886f70d010701
+ smimeCapabilities: 306a300b060960864801650304012a300b0609608648016503040116300b0609608648016503040102300a06082a864886f70d0307300e06082a864886f70d030202020080300d06082a864886f70d0302020140300706052b0e030207300d06082a864886f70d0302020128
+ messageDigest: 0420aadc1955c030f723e9d89ed9d486b4eef5b0d1c6945be0dd6b7b340d42928ec9
+ signingTime: 170d3135303533313036343633385a
+ contentType: 06092a864886f70d010701
Number of certificates: 1
diff --git a/tests/cert-tests/inhibit-anypolicy b/tests/cert-tests/inhibit-anypolicy
index 7e82a20014..ba5e1100f6 100755
--- a/tests/cert-tests/inhibit-anypolicy
+++ b/tests/cert-tests/inhibit-anypolicy
@@ -36,7 +36,7 @@ SUBCAFILE=inhibit-subca.$$.tmp
. ${srcdir}/../scripts/common.sh
-check_for_datefudge
+skip_if_no_datefudge
datefudge -s "2017-04-22" \
"${CERTTOOL}" --generate-self-signed \
diff --git a/tests/cert-tests/invalid-sig b/tests/cert-tests/invalid-sig
index bcebf995cb..58134a4d09 100755
--- a/tests/cert-tests/invalid-sig
+++ b/tests/cert-tests/invalid-sig
@@ -33,14 +33,16 @@ if ! test -x "${CERTTOOL}"; then
exit 77
fi
+. ${srcdir}/../scripts/common.sh
+
#check whether a different PKCS #1 signature than the advertized in certificate is tolerated
${VALGRIND} "${CERTTOOL}" -e --infile "${srcdir}/data/invalid-sig.pem"
rc=$?
# We're done.
-if test "${rc}" = "0"; then
+if test $rc = 0; then
echo "Verification of invalid signature (1) failed"
- exit ${rc}
+ exit 1
fi
#check whether a different tbsCertificate than the outer signature algorithm is tolerated
@@ -48,9 +50,9 @@ ${VALGRIND} "${CERTTOOL}" -e --infile "${srcdir}/data/invalid-sig2.pem"
rc=$?
# We're done.
-if test "${rc}" = "0"; then
+if test $rc = 0; then
echo "Verification of invalid signature (2) failed"
- exit ${rc}
+ exit 1
fi
#check whether a different tbsCertificate than the outer signature algorithm is tolerated
@@ -58,9 +60,9 @@ ${VALGRIND} "${CERTTOOL}" -e --infile "${srcdir}/data/invalid-sig3.pem"
rc=$?
# We're done.
-if test "${rc}" = "0"; then
+if test $rc = 0; then
echo "Verification of invalid signature (3) failed"
- exit ${rc}
+ exit 1
fi
#check whether different parameters in tbsCertificate than the outer signature is tolerated
@@ -68,9 +70,9 @@ ${VALGRIND} "${CERTTOOL}" -e --infile "${srcdir}/data/invalid-sig4.pem"
rc=$?
# We're done.
-if test "${rc}" = "0"; then
+if test $rc = 0; then
echo "Verification of invalid signature (4) failed"
- exit ${rc}
+ exit 1
fi
#check whether different RSA-PSS parameters in tbsCertificate than the outer signature is tolerated
@@ -78,19 +80,24 @@ ${VALGRIND} "${CERTTOOL}" --verify-chain --infile "${srcdir}/data/invalid-sig5.p
rc=$?
# We're done.
-if test "${rc}" = "0"; then
+if test $rc = 0; then
echo "Verification of invalid signature (5) failed"
- exit ${rc}
+ exit 1
fi
-#this was causing a double free; verify that we receive the expected error code
-${VALGRIND} "${CERTTOOL}" --verify-chain --infile "${srcdir}/data/cve-2019-3829.pem"
-rc=$?
-
-# We're done.
-if test "${rc}" != "1"; then
- echo "Verification of invalid signature (6) failed"
- exit ${rc}
+if check_for_datefudge; then
+ #this was causing a double free; verify that we receive the expected error code
+ datefudge -s 2020-01-01 \
+ ${VALGRIND} "${CERTTOOL}" --verify-chain --infile "${srcdir}/data/cve-2019-3829.pem"
+ rc=$?
+
+ # We're done.
+ if test $rc != 1; then
+ echo "Verification of invalid signature (6) failed"
+ exit 1
+ fi
+else
+ echo "Verification of invalid signature (6) skipped"
fi
exit 0
diff --git a/tests/cert-tests/krb5-test b/tests/cert-tests/krb5-test
index 3eca7d7e31..a6e092cc90 100755
--- a/tests/cert-tests/krb5-test
+++ b/tests/cert-tests/krb5-test
@@ -34,7 +34,7 @@ export TZ="UTC"
. ${srcdir}/../scripts/common.sh
-check_for_datefudge
+skip_if_no_datefudge
if ! test -z "${VALGRIND}"; then
ORIG_VALGRIND=${VALGRIND}
diff --git a/tests/cert-tests/md5-test b/tests/cert-tests/md5-test
index a9635cc1d8..15d6280b1c 100755
--- a/tests/cert-tests/md5-test
+++ b/tests/cert-tests/md5-test
@@ -34,7 +34,7 @@ export TZ="UTC"
. ${srcdir}/../scripts/common.sh
-check_for_datefudge
+skip_if_no_datefudge
# Test MD5 signatures
diff --git a/tests/cert-tests/name-constraints b/tests/cert-tests/name-constraints
index f23462117e..3b2370d49a 100755
--- a/tests/cert-tests/name-constraints
+++ b/tests/cert-tests/name-constraints
@@ -36,7 +36,7 @@ TMPFILE=constraints.$$.pem.tmp
. ${srcdir}/../scripts/common.sh
-check_for_datefudge
+skip_if_no_datefudge
datefudge -s "2016-04-22" \
${VALGRIND} "${CERTTOOL}" --verify-allow-broken -e --infile "${srcdir}/data/name-constraints-ip.pem"
diff --git a/tests/cert-tests/othername-test b/tests/cert-tests/othername-test
index 38032fee1c..00f93b22dd 100755
--- a/tests/cert-tests/othername-test
+++ b/tests/cert-tests/othername-test
@@ -33,7 +33,7 @@ export TZ="UTC"
. ${srcdir}/../scripts/common.sh
-check_for_datefudge
+skip_if_no_datefudge
# Note that in rare cases this test may fail because the
# time set using datefudge could have changed since the generation
diff --git a/tests/cert-tests/pkcs1-pad b/tests/cert-tests/pkcs1-pad
index 33663a6a0b..c75ab9e09d 100755
--- a/tests/cert-tests/pkcs1-pad
+++ b/tests/cert-tests/pkcs1-pad
@@ -34,7 +34,7 @@ export TZ="UTC"
. ${srcdir}/../scripts/common.sh
-check_for_datefudge
+skip_if_no_datefudge
TMPFILE1=pkcs1-pad.$$.tmp
TMPFILE2=pkcs1-pad-2.$$.tmp
diff --git a/tests/cert-tests/pkcs12-gost b/tests/cert-tests/pkcs12-gost
index 2b5b6bfd79..f7c4bba52b 100755
--- a/tests/cert-tests/pkcs12-gost
+++ b/tests/cert-tests/pkcs12-gost
@@ -29,6 +29,11 @@ if ! test -x "${CERTTOOL}"; then
exit 77
fi
+if test "${GNUTLS_FORCE_FIPS_MODE}" = 1;then
+ echo "Cannot run in FIPS140-2 mode"
+ exit 77
+fi
+
if ! test -z "${VALGRIND}"; then
VALGRIND="${LIBTOOL:-libtool} --mode=execute ${VALGRIND} --error-exitcode=1"
fi
diff --git a/tests/cert-tests/pkcs7 b/tests/cert-tests/pkcs7
index 5951a7312b..5767e09646 100755
--- a/tests/cert-tests/pkcs7
+++ b/tests/cert-tests/pkcs7
@@ -38,7 +38,7 @@ TMPFILE=tmp-pkcs7.$$.tmp
. ${srcdir}/../scripts/common.sh
-check_for_datefudge
+skip_if_no_datefudge
if test "${ENABLE_GOST}" = "1" && test "${GNUTLS_FORCE_FIPS_MODE}" != "1"
then
@@ -265,7 +265,7 @@ if test "${rc}" != "0"; then
fi
${VALGRIND} "${CERTTOOL}" --p7-info --infile "${OUTFILE}" >"${OUTFILE2}"
-grep '1.2.840.113549.1.9.3: 06092a864886f70d010701' ${OUTFILE2} >/dev/null 2>&1
+grep 'contentType: 06092a864886f70d010701' ${OUTFILE2} >/dev/null 2>&1
if test $? != 0;then
echo "Content-Type was not set in attributes"
exit 1
diff --git a/tests/cert-tests/pkcs7-cat b/tests/cert-tests/pkcs7-cat
index 0f5b82df12..6543397431 100755
--- a/tests/cert-tests/pkcs7-cat
+++ b/tests/cert-tests/pkcs7-cat
@@ -36,7 +36,7 @@ OUTFILE=out-pkcs7.$$.tmp
. ${srcdir}/../scripts/common.sh
-check_for_datefudge
+skip_if_no_datefudge
datefudge -s "2016-10-1" \
${VALGRIND} "${CERTTOOL}" --verify-allow-broken --p7-verify --inder --infile "${srcdir}/data/pkcs7-cat.p7" --load-ca-certificate "${srcdir}/data/pkcs7-cat-ca.pem"
rc=$?
diff --git a/tests/cert-tests/pkcs7-constraints b/tests/cert-tests/pkcs7-constraints
index 8e5b5345d1..6964d26f09 100755
--- a/tests/cert-tests/pkcs7-constraints
+++ b/tests/cert-tests/pkcs7-constraints
@@ -36,7 +36,7 @@ OUTFILE=out-pkcs7.$$.tmp
. ${srcdir}/../scripts/common.sh
-check_for_datefudge
+skip_if_no_datefudge
FILE="signing"
diff --git a/tests/cert-tests/pkcs7-constraints2 b/tests/cert-tests/pkcs7-constraints2
index 389071e27b..7d1816a33a 100755
--- a/tests/cert-tests/pkcs7-constraints2
+++ b/tests/cert-tests/pkcs7-constraints2
@@ -36,7 +36,7 @@ OUTFILE=out-pkcs7.$$.tmp
. ${srcdir}/../scripts/common.sh
-check_for_datefudge
+skip_if_no_datefudge
FILE="signing"
diff --git a/tests/cert-tests/pkcs7-eddsa b/tests/cert-tests/pkcs7-eddsa
index 3ceee482b2..6f235c512b 100755
--- a/tests/cert-tests/pkcs7-eddsa
+++ b/tests/cert-tests/pkcs7-eddsa
@@ -36,7 +36,7 @@ OUTFILE2=out2-pkcs7.$$.tmp
. ${srcdir}/../scripts/common.sh
-check_for_datefudge
+skip_if_no_datefudge
KEY="${srcdir}/../certs/ed25519.pem"
CERT="${srcdir}/../certs/cert-ed25519.pem"
@@ -97,7 +97,7 @@ if test "${rc}" != "0"; then
fi
${VALGRIND} "${CERTTOOL}" --p7-info --infile "${OUTFILE}" >"${OUTFILE2}"
-grep '1.2.840.113549.1.9.3: 06092a864886f70d010701' ${OUTFILE2} >/dev/null 2>&1
+grep 'contentType: 06092a864886f70d010701' ${OUTFILE2} >/dev/null 2>&1
if test $? != 0;then
echo "Content-Type was not set in attributes"
exit 1
diff --git a/tests/cert-tests/pkcs7-list-sign b/tests/cert-tests/pkcs7-list-sign
index 1c4e930e5b..5ca04d8005 100755
--- a/tests/cert-tests/pkcs7-list-sign
+++ b/tests/cert-tests/pkcs7-list-sign
@@ -37,7 +37,7 @@ OUTFILE2=out2-pkcs7.$$.tmp
. ${srcdir}/../scripts/common.sh
-check_for_datefudge
+skip_if_no_datefudge
# Test signing
FILE="signing-with-cert-list"
${VALGRIND} "${CERTTOOL}" --p7-sign --load-certificate "${srcdir}/data/pkcs7-chain.pem" --load-privkey "${srcdir}/data/pkcs7-chain-endcert-key.pem" --infile "${srcdir}/data/pkcs7-detached.txt" >"${OUTFILE}"
diff --git a/tests/cert-tests/rsa-pss-pad b/tests/cert-tests/rsa-pss-pad
index d9a05e4e0f..2c87c750fc 100755
--- a/tests/cert-tests/rsa-pss-pad
+++ b/tests/cert-tests/rsa-pss-pad
@@ -33,7 +33,7 @@ export TZ="UTC"
. ${srcdir}/../scripts/common.sh
-check_for_datefudge
+skip_if_no_datefudge
# Note that in rare cases this test may fail because the
# time set using datefudge could have changed since the generation
diff --git a/tests/cert-tests/sha3-test b/tests/cert-tests/sha3-test
index dc3cf8f6ba..a4300672c3 100755
--- a/tests/cert-tests/sha3-test
+++ b/tests/cert-tests/sha3-test
@@ -33,7 +33,7 @@ export TZ="UTC"
. ${srcdir}/../scripts/common.sh
-check_for_datefudge
+skip_if_no_datefudge
# Note that in rare cases this test may fail because the
# time set using datefudge could have changed since the generation
diff --git a/tests/cert-tests/smime b/tests/cert-tests/smime
index dd5514f687..f5e68401cf 100755
--- a/tests/cert-tests/smime
+++ b/tests/cert-tests/smime
@@ -36,7 +36,7 @@ OUTFILE=out-pkcs7.$$.tmp
. ${srcdir}/../scripts/common.sh
-check_for_datefudge
+skip_if_no_datefudge
# test the --smime-to-p7 functionality
${VAGRLIND} "${CERTTOOL}" --smime-to-p7 --infile "${srcdir}/data/pkcs7.smime" --outfile ${OUTFILE}
diff --git a/tests/cert-tests/template-exts-test b/tests/cert-tests/template-exts-test
index 32e90f91e3..276ba2f798 100755
--- a/tests/cert-tests/template-exts-test
+++ b/tests/cert-tests/template-exts-test
@@ -33,7 +33,7 @@ export TZ="UTC"
. ${srcdir}/../scripts/common.sh
-check_for_datefudge
+skip_if_no_datefudge
datefudge -s "2007-04-22" \
"${CERTTOOL}" --generate-self-signed \
diff --git a/tests/cert-tests/template-test b/tests/cert-tests/template-test
index f7ebefb664..091021315b 100755
--- a/tests/cert-tests/template-test
+++ b/tests/cert-tests/template-test
@@ -34,7 +34,7 @@ TMPFILE=tmp-tt.pem.$$.tmp
. ${srcdir}/../scripts/common.sh
-check_for_datefudge
+skip_if_no_datefudge
echo "Running test for ${ac_cv_sizeof_time_t}-byte time_t"
diff --git a/tests/cert-tests/tlsfeature-test b/tests/cert-tests/tlsfeature-test
index aadbffc26a..fb26f6225b 100755
--- a/tests/cert-tests/tlsfeature-test
+++ b/tests/cert-tests/tlsfeature-test
@@ -34,7 +34,7 @@ export TZ="UTC"
. ${srcdir}/../scripts/common.sh
-check_for_datefudge
+skip_if_no_datefudge
#
# Test certificate generation
diff --git a/tests/certtool-pkcs11.sh b/tests/certtool-pkcs11.sh
index 9a599e6146..daba535a4d 100755
--- a/tests/certtool-pkcs11.sh
+++ b/tests/certtool-pkcs11.sh
@@ -68,7 +68,7 @@ exit_error () {
exit 1
}
-check_for_datefudge
+skip_if_no_datefudge
# $1: token
# $2: PIN
diff --git a/tests/data/test1.cat.out b/tests/data/test1.cat.out
index 1a0c955228..d5b20765b4 100644
--- a/tests/data/test1.cat.out
+++ b/tests/data/test1.cat.out
@@ -5,11 +5,11 @@ Signers:
Signature Algorithm: RSA-SHA1
Signed Attributes:
1.3.6.1.4.1.311.2.1.12: 3064a030802e004800650077006c006500740074002d005000610063006b00610072006400200043006f006d00700061006e0079a130802e687474703a2f2f7777772e6d6963726f736f66742e636f6d2f776864632f68636c2f64656661756c742e6d737078
- 1.2.840.113549.1.9.4: 04141c448883117564c1fe830b2833c0ef6b83030c0e
+ messageDigest: 04141c448883117564c1fe830b2833c0ef6b83030c0e
1.3.6.1.4.1.311.2.1.11: 300c060a2b060104018237020115
- 1.2.840.113549.1.9.3: 06092b0601040182370a01
+ contentType: 06092b0601040182370a01
Unsigned Attributes:
- 1.2.840.113549.1.9.6: 3082021102010130818e3077310b3009060355040613025553311330110603550408130a57617368696e67746f6e3110300e060355040713075265646d6f6e64311e301c060355040a13154d6963726f736f667420436f72706f726174696f6e3121301f060355040313184d6963726f736f66742054696d652d5374616d7020504341021333000000af5347776c1bf1a3020000000000af300906052b0e03021a0500a05d301806092a864886f70d010903310b06092a864886f70d010701301c06092a864886f70d010905310f170d3136303931333231313930395a302306092a864886f70d01090431160414d488cf8097e0d20f170aa7cff5414d9dc2f28f7b300d06092a864886f70d01010505000482010016dcd01f53ac52f8f37898f02352716c9de8dcdee53a2dfb243d503b31f252878e54c5716cd2f2237b82a1269322c50ed304c00a85e50c47b3ce43b2dfff9d1d8032541e28216281e715407b8cbe565fee869aa0e6fb6f421c1c5516c7fead80c1c2117998b0a754bb0683971d78a864707349514121bf2158305d672f8800ea02bd266c198afc22449f4579d7f0db337919accd8f8093539e1d24e5c89c0c1f9734ea8f9bec2ce9ff9f22f9649069b759ba05967742615a3953645572eddb4c5006b6fd4c6226beded0038548ed82d3993b17b473ca75e9891d524be5c39ec422d7a78baaa475bf1aa0e196d7db1858edcacea1ef34b2655772ab8fca3c7766
+ countersignature: 3082021102010130818e3077310b3009060355040613025553311330110603550408130a57617368696e67746f6e3110300e060355040713075265646d6f6e64311e301c060355040a13154d6963726f736f667420436f72706f726174696f6e3121301f060355040313184d6963726f736f66742054696d652d5374616d7020504341021333000000af5347776c1bf1a3020000000000af300906052b0e03021a0500a05d301806092a864886f70d010903310b06092a864886f70d010701301c06092a864886f70d010905310f170d3136303931333231313930395a302306092a864886f70d01090431160414d488cf8097e0d20f170aa7cff5414d9dc2f28f7b300d06092a864886f70d01010505000482010016dcd01f53ac52f8f37898f02352716c9de8dcdee53a2dfb243d503b31f252878e54c5716cd2f2237b82a1269322c50ed304c00a85e50c47b3ce43b2dfff9d1d8032541e28216281e715407b8cbe565fee869aa0e6fb6f421c1c5516c7fead80c1c2117998b0a754bb0683971d78a864707349514121bf2158305d672f8800ea02bd266c198afc22449f4579d7f0db337919accd8f8093539e1d24e5c89c0c1f9734ea8f9bec2ce9ff9f22f9649069b759ba05967742615a3953645572eddb4c5006b6fd4c6226beded0038548ed82d3993b17b473ca75e9891d524be5c39ec422d7a78baaa475bf1aa0e196d7db1858edcacea1ef34b2655772ab8fca3c7766
Number of certificates: 4
diff --git a/tests/data/test2.cat.out b/tests/data/test2.cat.out
index aead58067c..aec0af9ada 100644
--- a/tests/data/test2.cat.out
+++ b/tests/data/test2.cat.out
@@ -4,9 +4,9 @@ Signers:
Signer's serial: 1656c8b2bf9bb3b24e6f3411cdcff0b5
Signature Algorithm: RSA-SHA1
Signed Attributes:
- 1.2.840.113549.1.9.4: 041490608f08aab36bbeef8cb509bef6e60385058afa
+ messageDigest: 041490608f08aab36bbeef8cb509bef6e60385058afa
1.3.6.1.4.1.311.2.1.11: 300c060a2b060104018237020115
- 1.2.840.113549.1.9.3: 06092b0601040182370a01
+ contentType: 06092b0601040182370a01
1.3.6.1.4.1.311.2.1.12: 3000
Number of certificates: 1
diff --git a/tests/dtls_hello_random_value.c b/tests/dtls_hello_random_value.c
new file mode 100644
index 0000000000..601c8686bf
--- /dev/null
+++ b/tests/dtls_hello_random_value.c
@@ -0,0 +1,336 @@
+/*
+ * Copyright (C) 2017-2020 Red Hat, Inc.
+ *
+ * Author: Nikos Mavrogiannopoulos
+ *
+ * This file is part of GnuTLS.
+ *
+ * GnuTLS is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GnuTLS is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>
+ */
+
+/* This program tests whether the second DTLS client hello contains the same
+ * random value, and whether it is initialized.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#if defined(_WIN32)
+
+/* socketpair isn't supported on Win32. */
+int main(int argc, char **argv)
+{
+ exit(77);
+}
+
+#else
+
+#include <string.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#if !defined(_WIN32)
+#include <sys/wait.h>
+#include <signal.h>
+#endif
+#include <unistd.h>
+#include <gnutls/gnutls.h>
+#include <gnutls/dtls.h>
+#include <assert.h>
+
+#include "utils.h"
+#include "cert-common.h"
+
+const char *side = "";
+
+static void tls_log_func(int level, const char *str)
+{
+ fprintf(stderr, "%s|<%d>| %s", side, level, str);
+}
+
+unsigned char crandom[32];
+static unsigned cb_called = 0;
+
+static int hello_callback(gnutls_session_t session, unsigned int htype,
+ unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+{
+ unsigned non_zero = 0, i;
+
+ if (htype == GNUTLS_HANDSHAKE_CLIENT_HELLO && post == GNUTLS_HOOK_POST) {
+ if (cb_called == 0) {
+ /* save first value */
+ gnutls_datum_t tmp;
+ gnutls_session_get_random(session, &tmp, NULL);
+ assert(tmp.size == 32);
+
+ memcpy(crandom, tmp.data, tmp.size);
+ cb_called++;
+
+ /* check if uninitialized */
+ for (i=0;i<32;i++) {
+ if (crandom[i] != 0) {
+ non_zero++;
+ }
+ }
+
+ if (non_zero <= 8) {
+ fail("the client random value seems uninitialized\n");
+ }
+ } else { /* verify it is the same */
+ gnutls_datum_t tmp;
+ gnutls_session_get_random(session, &tmp, NULL);
+
+ assert(tmp.size == 32);
+ if (memcmp(tmp.data, crandom, tmp.size) != 0) {
+ fail("the random values differ!\n");
+ }
+ cb_called++;
+ }
+ } if (htype == GNUTLS_HANDSHAKE_SERVER_HELLO && post == GNUTLS_HOOK_POST) {
+ gnutls_datum_t tmp;
+ gnutls_session_get_random(session, NULL, &tmp);
+ assert(tmp.size == 32);
+
+ for (i=0;i<32;i++) {
+ if (tmp.data[i] != 0) {
+ non_zero++;
+ }
+ }
+ if (non_zero <= 8) {
+ fail("the server random value seems uninitialized\n");
+ }
+ }
+
+ return 0;
+}
+
+static void client(int sd, const char *priority)
+{
+ int ret;
+ gnutls_session_t session;
+ gnutls_certificate_credentials_t clientx509cred;
+
+ gnutls_global_set_log_function(tls_log_func);
+ if (debug)
+ gnutls_global_set_log_level(4711);
+
+ side = "client";
+
+ gnutls_certificate_allocate_credentials(&clientx509cred);
+
+ assert(gnutls_init(&session, GNUTLS_CLIENT|GNUTLS_DATAGRAM)>=0);
+
+ if (!priority) {
+ assert(gnutls_set_default_priority(session) >= 0);
+ } else {
+ assert(gnutls_priority_set_direct(session, priority, NULL) >= 0);
+ }
+
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
+ clientx509cred);
+
+ gnutls_transport_set_int(session, sd);
+ gnutls_dtls_set_mtu(session, 1500);
+ gnutls_handshake_set_timeout(session, 20 * 1000);
+
+ gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_ANY,
+ GNUTLS_HOOK_BOTH, hello_callback);
+
+ ret = gnutls_handshake(session);
+
+ if (ret < 0) {
+ fail("client: Handshake failed: %s\n", gnutls_strerror(ret));
+ } else {
+ if (debug)
+ success("client: Handshake was completed\n");
+ }
+
+ if (cb_called != 2) {
+ fail("client: the callback was not seen twice!\n");
+ }
+
+ gnutls_bye(session, GNUTLS_SHUT_WR);
+ close(sd);
+
+ gnutls_deinit(session);
+
+ gnutls_certificate_free_credentials(clientx509cred);
+}
+
+#define MAX_BUF 1024
+#define CLI_ADDR (void*)"test"
+#define CLI_ADDR_LEN 4
+
+static ssize_t
+push(gnutls_transport_ptr_t tr, const void *data, size_t len)
+{
+ int fd = (long int) tr;
+
+ return send(fd, data, len, 0);
+}
+
+static void server(int sd, const char *priority)
+{
+ int ret, csend = 0;
+ char buffer[MAX_BUF + 1];
+ gnutls_certificate_credentials_t serverx509cred;
+ gnutls_dtls_prestate_st prestate;
+ gnutls_session_t session;
+ gnutls_datum_t cookie_key;
+
+ gnutls_global_set_log_function(tls_log_func);
+ if (debug)
+ gnutls_global_set_log_level(4711);
+
+ side = "server";
+
+ ret = gnutls_key_generate(&cookie_key, GNUTLS_COOKIE_KEY_SIZE);
+ if (ret < 0) {
+ fail("Cannot generate key: %s\n", gnutls_strerror(ret));
+ }
+
+ for (;;) {
+ ret = recv(sd, buffer, sizeof(buffer), MSG_PEEK);
+ if (ret < 0) {
+ fail("Cannot receive data\n");
+ }
+
+ memset(&prestate, 0, sizeof(prestate));
+ ret =
+ gnutls_dtls_cookie_verify(&cookie_key, CLI_ADDR,
+ CLI_ADDR_LEN, buffer, ret,
+ &prestate);
+ if (ret < 0) { /* cookie not valid */
+ if (debug)
+ success("Sending hello verify request\n");
+
+ ret =
+ gnutls_dtls_cookie_send(&cookie_key, CLI_ADDR,
+ CLI_ADDR_LEN,
+ &prestate,
+ (gnutls_transport_ptr_t)
+ (long) sd, push);
+ if (ret < 0) {
+ fail("Cannot send data\n");
+ }
+
+ /* discard peeked data */
+ recv(sd, buffer, sizeof(buffer), 0);
+ csend++;
+
+ if (csend > 2) {
+ fail("too many cookies sent\n");
+ }
+
+ continue;
+ }
+
+ /* success */
+ break;
+ }
+
+ assert(gnutls_certificate_allocate_credentials(&serverx509cred)>=0);
+ assert(gnutls_certificate_set_x509_key_mem(serverx509cred,
+ &server_cert, &server_key,
+ GNUTLS_X509_FMT_PEM)>=0);
+
+ assert(gnutls_init(&session, GNUTLS_SERVER|GNUTLS_DATAGRAM)>=0);
+ assert(session != NULL);
+
+ if (!priority) {
+ assert(gnutls_set_default_priority(session) >= 0);
+ } else {
+ assert(gnutls_priority_set_direct(session, priority, NULL) >= 0);
+ }
+
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
+ serverx509cred);
+
+ gnutls_transport_set_int(session, sd);
+ gnutls_handshake_set_timeout(session, 20 * 1000);
+ gnutls_dtls_set_mtu(session, 1500);
+
+ gnutls_dtls_prestate_set(session, &prestate);
+
+ ret = gnutls_handshake(session);
+ if (ret < 0) {
+ fail("server: Handshake has failed: %s\n\n",
+ gnutls_strerror(ret));
+ }
+ if (debug)
+ success("server: Handshake was completed\n");
+
+ /* do not wait for the peer to close the connection.
+ */
+ gnutls_bye(session, GNUTLS_SHUT_WR);
+ close(sd);
+ gnutls_deinit(session);
+
+ gnutls_certificate_free_credentials(serverx509cred);
+ gnutls_free(cookie_key.data);
+
+ if (debug)
+ success("server: finished\n");
+}
+
+static void start(const char *name, const char *priority)
+{
+ pid_t child;
+ int sockets[2];
+ int err;
+
+ success("testing: %s\n", name);
+ cb_called = 0;
+
+ err = socketpair(AF_UNIX, SOCK_STREAM, 0, sockets);
+ if (err == -1) {
+ perror("socketpair");
+ fail("socketpair failed\n");
+ return;
+ }
+
+ child = fork();
+ if (child < 0) {
+ perror("fork");
+ fail("fork");
+ return;
+ }
+
+ if (child) {
+ int status = 0;
+ /* parent */
+ close(sockets[1]);
+ client(sockets[0], priority);
+ wait(&status);
+ check_wait_status(status);
+ } else {
+ close(sockets[0]);
+ server(sockets[1], priority);
+ exit(0);
+ }
+}
+
+void doit(void)
+{
+ signal(SIGPIPE, SIG_IGN);
+
+ start("default", NULL);
+ start("dtls1.2", "NORMAL:-VERS-ALL:+VERS-DTLS1.2");
+ start("dtls1.0", "NORMAL:-VERS-ALL:+VERS-DTLS1.0");
+}
+
+#endif /* _WIN32 */
diff --git a/tests/gnutls-cli-debug.sh b/tests/gnutls-cli-debug.sh
index 0ab6069b8f..3351764216 100755
--- a/tests/gnutls-cli-debug.sh
+++ b/tests/gnutls-cli-debug.sh
@@ -48,7 +48,7 @@ SERV="${SERV} -q"
. "${srcdir}/scripts/common.sh"
-check_for_datefudge
+skip_if_no_datefudge
KEY1=${srcdir}/../doc/credentials/x509/key-rsa.pem
diff --git a/tests/gnutls-cli-invalid-crl.sh b/tests/gnutls-cli-invalid-crl.sh
index d7383a555b..1a82bfafd3 100755
--- a/tests/gnutls-cli-invalid-crl.sh
+++ b/tests/gnutls-cli-invalid-crl.sh
@@ -47,7 +47,7 @@ SERV="${SERV} -q"
. "${srcdir}/scripts/common.sh"
-check_for_datefudge
+skip_if_no_datefudge
echo "Checking whether connecting to a server but with an invalid CRL provided, returns the expected error"
diff --git a/tests/gnutls-cli-self-signed.sh b/tests/gnutls-cli-self-signed.sh
index 07cd5824b8..fbb5375bf0 100755
--- a/tests/gnutls-cli-self-signed.sh
+++ b/tests/gnutls-cli-self-signed.sh
@@ -45,7 +45,7 @@ SERV="${SERV} -q"
. "${srcdir}/scripts/common.sh"
-check_for_datefudge
+skip_if_no_datefudge
echo "Checking whether connecting to a self signed certificate returns the expected error"
diff --git a/tests/kdf-api.c b/tests/kdf-api.c
new file mode 100644
index 0000000000..ec74f44ce8
--- /dev/null
+++ b/tests/kdf-api.c
@@ -0,0 +1,160 @@
+/*
+ * Copyright (C) 2020 Red Hat, Inc.
+ *
+ * Author: Daiki Ueno
+ *
+ * This file is part of GnuTLS.
+ *
+ * The GnuTLS is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>
+ *
+ */
+
+#include "config.h"
+
+#include <gnutls/gnutls.h>
+#include <gnutls/crypto.h>
+
+#include <assert.h>
+#include <stdint.h>
+
+#include "utils.h"
+
+#define MAX_BUF 1024
+
+static void
+test_hkdf(gnutls_mac_algorithm_t mac,
+ const char *ikm_hex,
+ const char *salt_hex,
+ const char *info_hex,
+ size_t length,
+ const char *prk_hex,
+ const char *okm_hex)
+{
+ gnutls_datum_t hex;
+ gnutls_datum_t ikm;
+ gnutls_datum_t salt;
+ gnutls_datum_t info;
+ gnutls_datum_t prk;
+ gnutls_datum_t okm;
+ uint8_t buf[MAX_BUF];
+
+ success("HKDF test with %s\n", gnutls_mac_get_name(mac));
+
+ /* Test HKDF-Extract */
+ hex.data = (void *)ikm_hex;
+ hex.size = strlen(ikm_hex);
+ assert(gnutls_hex_decode2(&hex, &ikm) >= 0);
+
+ hex.data = (void *)salt_hex;
+ hex.size = strlen(salt_hex);
+ assert(gnutls_hex_decode2(&hex, &salt) >= 0);
+
+ assert(gnutls_hkdf_extract(mac, &ikm, &salt, buf) >= 0);
+ gnutls_free(ikm.data);
+ gnutls_free(salt.data);
+
+ prk.data = buf;
+ prk.size = strlen(prk_hex) / 2;
+ assert(gnutls_hex_encode2(&prk, &hex) >= 0);
+
+ if (strcmp((char *)hex.data, prk_hex))
+ fail("prk doesn't match: %s != %s\n",
+ (char *)hex.data, prk_hex);
+
+ gnutls_free(hex.data);
+
+ /* Test HKDF-Expand */
+ hex.data = (void *)info_hex;
+ hex.size = strlen(info_hex);
+ assert(gnutls_hex_decode2(&hex, &info) >= 0);
+
+ assert(gnutls_hkdf_expand(mac, &prk, &info, buf, length) >= 0);
+ gnutls_free(info.data);
+
+ okm.data = buf;
+ okm.size = strlen(okm_hex) / 2;
+ assert(gnutls_hex_encode2(&okm, &hex) >= 0);
+
+ if (strcmp((char *)hex.data, okm_hex))
+ fail("okm doesn't match: %s != %s\n",
+ (char *)hex.data, okm_hex);
+
+ gnutls_free(hex.data);
+}
+
+static void
+test_pbkdf2(gnutls_mac_algorithm_t mac,
+ const char *ikm_hex,
+ const char *salt_hex,
+ unsigned iter_count,
+ size_t length,
+ const char *okm_hex)
+{
+ gnutls_datum_t hex;
+ gnutls_datum_t ikm;
+ gnutls_datum_t salt;
+ gnutls_datum_t okm;
+ uint8_t buf[MAX_BUF];
+
+ success("PBKDF2 test with %s\n", gnutls_mac_get_name(mac));
+
+ hex.data = (void *)ikm_hex;
+ hex.size = strlen(ikm_hex);
+ assert(gnutls_hex_decode2(&hex, &ikm) >= 0);
+
+ hex.data = (void *)salt_hex;
+ hex.size = strlen(salt_hex);
+ assert(gnutls_hex_decode2(&hex, &salt) >= 0);
+
+ assert(gnutls_pbkdf2(mac, &ikm, &salt, iter_count, buf, length) >= 0);
+ gnutls_free(ikm.data);
+ gnutls_free(salt.data);
+
+ okm.data = buf;
+ okm.size = length;
+ assert(gnutls_hex_encode2(&okm, &hex) >= 0);
+
+ if (strcmp((char *)hex.data, okm_hex))
+ fail("okm doesn't match: %s != %s\n",
+ (char *)hex.data, okm_hex);
+
+ gnutls_free(hex.data);
+}
+
+void
+doit(void)
+{
+ /* Test vector from RFC 5869. More thorough testing is done
+ * in nettle. */
+ test_hkdf(GNUTLS_MAC_SHA256,
+ "0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b"
+ "0b0b0b0b0b0b",
+ "000102030405060708090a0b0c",
+ "f0f1f2f3f4f5f6f7f8f9",
+ 42,
+ "077709362c2e32df0ddc3f0dc47bba63"
+ "90b6c73bb50f9c3122ec844ad7c2b3e5",
+ "3cb25f25faacd57a90434f64d0362f2a"
+ "2d2d0a90cf1a5a4c5db02d56ecc4c5bf"
+ "34007208d5b887185865");
+
+ /* Test vector from RFC 6070. More thorough testing is done
+ * in nettle. */
+ test_pbkdf2(GNUTLS_MAC_SHA1,
+ "70617373776f7264", /* "password" */
+ "73616c74", /* "salt" */
+ 4096,
+ 20,
+ "4b007901b765489abead49d926f721d065a429c1");
+}
diff --git a/tests/keylog-func.c b/tests/keylog-func.c
new file mode 100644
index 0000000000..4350698e6b
--- /dev/null
+++ b/tests/keylog-func.c
@@ -0,0 +1,351 @@
+/*
+ * Copyright (C) 2019 Free Software Foundation, Inc.
+ *
+ * Author: Aniketh Girish
+ *
+ * This file is part of GnuTLS.
+ *
+ * The GnuTLS is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>
+ *
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <assert.h>
+
+#if !defined(__linux__) || !defined(__GNUC__)
+
+int main(int argc, char **argv)
+{
+ exit(77);
+}
+
+#else
+
+#include <string.h>
+#include <sys/types.h>
+#include <netinet/in.h>
+#include <sys/socket.h>
+#include <sys/wait.h>
+#include <arpa/inet.h>
+#include <unistd.h>
+#include <gnutls/gnutls.h>
+#include <gnutls/crypto.h>
+
+#include "cert-common.h"
+#include "utils.h"
+
+/* This program tests whether a keylog function is called.
+ */
+
+static void terminate(void);
+
+static void server_log_func(int level, const char *str)
+{
+ fprintf(stderr, "server|<%d>| %s", level, str);
+}
+
+static void client_log_func(int level, const char *str)
+{
+ fprintf(stderr, "client|<%d>| %s", level, str);
+}
+
+const char *side = "";
+
+/* These are global */
+static pid_t child;
+#define MAX_BUF 1024
+#define MSG "Hello TLS"
+
+static int
+keylog_func(gnutls_session_t session,
+ const char *label,
+ const gnutls_datum_t *secret)
+{
+ unsigned int *call_count = gnutls_session_get_ptr(session);
+ static const char *exp_labels[] = {
+ "CLIENT_HANDSHAKE_TRAFFIC_SECRET",
+ "SERVER_HANDSHAKE_TRAFFIC_SECRET",
+ "EXPORTER_SECRET",
+ "CLIENT_TRAFFIC_SECRET_0",
+ "SERVER_TRAFFIC_SECRET_0"
+ };
+
+ if (*call_count >= sizeof(exp_labels)/sizeof(exp_labels[0]))
+ fail("unexpected secret at call count %u\n",
+ *call_count);
+
+ if (strcmp(label, exp_labels[*call_count]) != 0)
+ fail("unexpected %s at call count %u\n",
+ label, *call_count);
+ else if (debug)
+ success("received %s at call count %u\n",
+ label, *call_count);
+
+ (*call_count)++;
+ return 0;
+}
+
+static void client(int fd, const char *prio, unsigned int exp_call_count)
+{
+ gnutls_session_t session;
+ char buffer[MAX_BUF + 1];
+ unsigned int call_count = 0;
+ int ret, ii;
+ gnutls_certificate_credentials_t clientx509cred;
+ const char *err;
+ /* Need to enable anonymous KX specifically. */
+
+ global_init();
+
+ if (debug) {
+ gnutls_global_set_log_function(client_log_func);
+ gnutls_global_set_log_level(4711);
+ }
+
+ gnutls_certificate_allocate_credentials(&clientx509cred);
+
+ /* Initialize TLS session
+ */
+ gnutls_init(&session, GNUTLS_CLIENT);
+
+ gnutls_session_set_ptr(session, &call_count);
+
+ /* Use default priorities */
+ ret = gnutls_priority_set_direct(session, prio, &err);
+ if (ret < 0) {
+ fail("client: priority set failed (%s): %s\n",
+ gnutls_strerror(ret), err);
+ exit(1);
+ }
+
+ ret = gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
+ clientx509cred);
+ if (ret < 0)
+ exit(1);
+
+ gnutls_transport_set_int(session, fd);
+
+ gnutls_session_set_keylog_function(session, keylog_func);
+ assert(gnutls_session_get_keylog_function(session) == keylog_func);
+
+ /* Perform the TLS handshake
+ */
+ do {
+ ret = gnutls_handshake(session);
+ }
+ while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
+
+ if (ret < 0)
+ fail("client: Handshake failed: %s\n", gnutls_strerror(ret));
+ else {
+ if (debug)
+ success("client: Handshake was completed\n");
+ }
+
+ if (debug)
+ success("client: TLS version is: %s\n",
+ gnutls_protocol_get_name
+ (gnutls_protocol_get_version(session)));
+
+ gnutls_record_send(session, MSG, strlen(MSG));
+
+ do {
+ ret = gnutls_record_recv(session, buffer, MAX_BUF);
+ } while (ret == GNUTLS_E_AGAIN);
+ if (ret == 0) {
+ if (debug)
+ success
+ ("client: Peer has closed the TLS connection\n");
+ } else if (ret < 0) {
+ fail("client: Error: %s\n", gnutls_strerror(ret));
+ }
+
+ if (debug) {
+ printf("- Received %d bytes: ", ret);
+ for (ii = 0; ii < ret; ii++) {
+ fputc(buffer[ii], stdout);
+ }
+ fputs("\n", stdout);
+ }
+
+ if (call_count != exp_call_count)
+ fail("secret hook is not called %u times (%u)\n",
+ call_count, exp_call_count);
+
+ gnutls_bye(session, GNUTLS_SHUT_WR);
+
+ close(fd);
+
+ gnutls_deinit(session);
+
+ gnutls_certificate_free_credentials(clientx509cred);
+
+ gnutls_global_deinit();
+}
+
+static void server(int fd, const char *prio, unsigned int exp_call_count)
+{
+ int ret;
+ char buffer[MAX_BUF + 1];
+ gnutls_session_t session;
+ unsigned int call_count = 0;
+ gnutls_certificate_credentials_t serverx509cred;
+
+ /* this must be called once in the program
+ */
+ global_init();
+
+ if (debug) {
+ gnutls_global_set_log_function(server_log_func);
+ gnutls_global_set_log_level(4711);
+ }
+
+ gnutls_certificate_allocate_credentials(&serverx509cred);
+
+ gnutls_init(&session, GNUTLS_SERVER);
+
+ gnutls_session_set_ptr(session, &call_count);
+
+ /* avoid calling all the priority functions, since the defaults
+ * are adequate.
+ */
+ ret = gnutls_priority_set_direct(session,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-SIGN-ALL:+SIGN-RSA-PSS-RSAE-SHA384:-GROUP-ALL:+GROUP-SECP256R1", NULL);
+ if (ret < 0) {
+ fail("server: priority set failed (%s)\n\n",
+ gnutls_strerror(ret));
+ terminate();
+ }
+
+ gnutls_certificate_set_x509_key_mem(serverx509cred,
+ &server_cert, &server_key,
+ GNUTLS_X509_FMT_PEM);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
+ serverx509cred);
+
+ gnutls_transport_set_int(session, fd);
+
+ gnutls_session_set_keylog_function(session, keylog_func);
+
+ do {
+ ret = gnutls_handshake(session);
+ }
+ while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
+ if (ret < 0) {
+ close(fd);
+ gnutls_deinit(session);
+ fail("server: Handshake has failed (%s)\n\n",
+ gnutls_strerror(ret));
+ terminate();
+ }
+ if (debug) {
+ success("server: Handshake was completed\n");
+ }
+ if (debug)
+ success("server: TLS version is: %s\n",
+ gnutls_protocol_get_name
+ (gnutls_protocol_get_version(session)));
+
+ memset(buffer, 0, MAX_BUF + 1);
+
+ do {
+ ret = gnutls_record_recv(session, buffer, MAX_BUF);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+
+ if (ret == 0) {
+ if (debug)
+ success("server: Peer has closed the GnuTLS connection\n");
+ } else if (ret < 0) {
+ fail("server: Received corrupted data(%d). Closing...\n", ret);
+ } else if (ret > 0) {
+ /* echo data back to the client
+ */
+ gnutls_record_send(session, buffer,
+ strlen(buffer));
+ }
+
+ if (call_count != exp_call_count)
+ fail("secret hook is not called %u times (%u)\n",
+ call_count, exp_call_count);
+
+ /* do not wait for the peer to close the connection.
+ */
+ gnutls_bye(session, GNUTLS_SHUT_WR);
+
+ close(fd);
+ gnutls_deinit(session);
+
+ gnutls_certificate_free_credentials(serverx509cred);
+
+ gnutls_global_deinit();
+
+ if (debug)
+ success("server: finished\n");
+}
+
+static void terminate(void)
+{
+ int status = 0;
+
+ kill(child, SIGTERM);
+ wait(&status);
+ exit(1);
+}
+
+static void
+run(const char *prio, unsigned int exp_call_count)
+{
+ int fd[2];
+ int ret;
+
+ signal(SIGPIPE, SIG_IGN);
+
+ ret = socketpair(AF_UNIX, SOCK_STREAM, 0, fd);
+ if (ret < 0) {
+ perror("socketpair");
+ exit(1);
+ }
+
+ child = fork();
+ if (child < 0) {
+ perror("fork");
+ fail("fork");
+ exit(1);
+ }
+
+ if (child) {
+ int status = 0;
+ /* parent */
+
+ server(fd[0], prio, exp_call_count);
+ wait(&status);
+ check_wait_status(status);
+ } else {
+ close(fd[0]);
+ client(fd[1], prio, exp_call_count);
+ exit(0);
+ }
+}
+
+void doit(void)
+{
+ run("NORMAL:-VERS-ALL:+VERS-TLS1.3", 5);
+}
+
+#endif /* _WIN32 */
diff --git a/tests/missingissuer.c b/tests/missingissuer.c
new file mode 100644
index 0000000000..49fef8f7b3
--- /dev/null
+++ b/tests/missingissuer.c
@@ -0,0 +1,241 @@
+/*
+ * Copyright (C) 2008-2014 Free Software Foundation, Inc.
+ *
+ * Author: Simon Josefsson, Nikos Mavrogiannopoulos
+ *
+ * This file is part of GnuTLS.
+ *
+ * GnuTLS is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GnuTLS is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <errno.h>
+#include <assert.h>
+
+#include <gnutls/gnutls.h>
+#include <gnutls/x509.h>
+#include <gnutls/abstract.h>
+
+#include "utils.h"
+#include "test-chains-issuer.h"
+
+#define DEFAULT_THEN 1256803113
+static time_t then = DEFAULT_THEN;
+
+/* GnuTLS internally calls time() to find out the current time when
+ verifying certificates. To avoid a time bomb, we hard code the
+ current time. This should work fine on systems where the library
+ call to time is resolved at run-time. */
+static time_t mytime(time_t * t)
+{
+ if (t)
+ *t = then;
+
+ return then;
+}
+
+static void tls_log_func(int level, const char *str)
+{
+ fprintf(stderr, "|<%d>| %s", level, str);
+}
+
+static int getissuer_callback(gnutls_x509_trust_list_t tlist,
+ const gnutls_x509_crt_t crt)
+{
+ gnutls_x509_crt_t issuer;
+ gnutls_datum_t tmp;
+ int ret;
+
+ ret = gnutls_x509_crt_init(&issuer);
+ if (ret < 0) {
+ fprintf(stderr, "error: %s\n", gnutls_strerror(ret));
+ return -1;
+ }
+
+ tmp.data = (unsigned char *)missing_cert_insert;
+ tmp.size = strlen(missing_cert_insert);
+
+ ret = gnutls_x509_crt_import(issuer, &tmp, GNUTLS_X509_FMT_PEM);
+ if (ret < 0) {
+ fprintf(stderr, "error: %s\n", gnutls_strerror(ret));
+ gnutls_x509_crt_deinit(issuer);
+ return -1;
+ }
+
+ /* This transfers the ownership of `issuer` to `tlist`. */
+ ret = gnutls_x509_trust_list_add_cas(tlist, &issuer, 1, 0);
+ if (ret < 0) {
+ fprintf(stderr, "error: %s\n", gnutls_strerror(ret));
+ gnutls_x509_crt_deinit(issuer);
+ return -1;
+ }
+
+ assert(gnutls_x509_crt_print(crt, GNUTLS_CRT_PRINT_ONELINE, &tmp) >= 0);
+
+ if (debug)
+ printf("\t Certificate missing issuer is: %.*s\n",
+ tmp.size, tmp.data);
+ gnutls_free(tmp.data);
+
+ assert(gnutls_x509_crt_print(issuer, GNUTLS_CRT_PRINT_ONELINE, &tmp) >= 0);
+
+ if (debug)
+ printf("\t Appended issuer certificate is: %.*s\n",
+ tmp.size, tmp.data);
+ gnutls_free(tmp.data);
+ return 0;
+
+}
+
+void doit(void)
+{
+ int exit_val = 0;
+ int ret;
+ gnutls_x509_trust_list_t tl;
+ unsigned int verify_status;
+ gnutls_x509_crt_t certs[MAX_CHAIN];
+ gnutls_x509_crt_t ca;
+ gnutls_datum_t tmp;
+ size_t j;
+
+ /* The overloading of time() seems to work in linux (ELF?)
+ * systems only. Disable it on windows.
+ */
+#ifdef _WIN32
+ exit(77);
+#endif
+
+ ret = global_init();
+ if (ret != 0) {
+ fail("%d: %s\n", ret, gnutls_strerror(ret));
+ exit(1);
+ }
+
+ gnutls_global_set_time_function(mytime);
+ gnutls_global_set_log_function(tls_log_func);
+
+ if (debug)
+ gnutls_global_set_log_level(4711);
+
+ for (j = 0; j < MAX_CHAIN; j++) {
+ if (debug > 2)
+ printf("\tAdding certificate %d...", (int)j);
+
+ ret = gnutls_x509_crt_init(&certs[j]);
+ if (ret < 0) {
+ fprintf(stderr,
+ "gnutls_x509_crt_init[%d]: %s\n",
+ (int)j, gnutls_strerror(ret));
+ exit(1);
+ }
+
+ tmp.data = (unsigned char *)missing_issuer_chain[j];
+ tmp.size = strlen(missing_issuer_chain[j]);
+
+ ret =
+ gnutls_x509_crt_import(certs[j], &tmp,
+ GNUTLS_X509_FMT_PEM);
+ if (debug > 2)
+ printf("done\n");
+ if (ret < 0) {
+ fprintf(stderr,
+ "gnutls_x509_crt_import[%d]: %s\n",
+ (int)j,
+ gnutls_strerror(ret));
+ exit(1);
+ }
+
+ gnutls_x509_crt_print(certs[j],
+ GNUTLS_CRT_PRINT_ONELINE, &tmp);
+ if (debug)
+ printf("\tCertificate %d: %.*s\n", (int)j,
+ tmp.size, tmp.data);
+ gnutls_free(tmp.data);
+ }
+
+ if (debug > 2)
+ printf("\tAdding CA certificate...");
+
+ ret = gnutls_x509_crt_init(&ca);
+ if (ret < 0) {
+ fprintf(stderr, "gnutls_x509_crt_init: %s\n",
+ gnutls_strerror(ret));
+ exit(1);
+ }
+
+ tmp.data = (unsigned char *)missing_issuer_chain[MAX_CHAIN-1];
+ tmp.size = strlen(missing_issuer_chain[MAX_CHAIN-1]);
+
+ ret = gnutls_x509_crt_import(ca, &tmp, GNUTLS_X509_FMT_PEM);
+ if (ret < 0) {
+ fprintf(stderr, "gnutls_x509_crt_import: %s\n",
+ gnutls_strerror(ret));
+ exit(1);
+ }
+
+ if (debug > 2)
+ printf("done\n");
+
+ gnutls_x509_crt_print(ca, GNUTLS_CRT_PRINT_ONELINE, &tmp);
+ if (debug)
+ printf("\tCA Certificate: %.*s\n", tmp.size, tmp.data);
+ gnutls_free(tmp.data);
+
+ if (debug)
+ printf("\tVerifying...");
+
+ gnutls_x509_trust_list_init(&tl, 0);
+
+ ret = gnutls_x509_trust_list_add_cas(tl, &ca, 1, 0);
+ if (ret != 1) {
+ fail("gnutls_x509_trust_list_add_trust_mem\n");
+ exit(1);
+ }
+
+ gnutls_x509_trust_list_set_getissuer_function(tl, getissuer_callback);
+
+ ret = gnutls_x509_trust_list_verify_crt(tl, certs, MAX_CHAIN,
+ 0,
+ &verify_status,
+ NULL);
+ if (ret < 0) {
+ fprintf(stderr,
+ "gnutls_x509_crt_list_verify: %s\n", gnutls_strerror(ret));
+ exit(1);
+ }
+
+ if (debug)
+ printf("\tCleanup...");
+
+ gnutls_x509_trust_list_deinit(tl, 1);
+
+ for (j = 0; j < MAX_CHAIN; j++)
+ gnutls_x509_crt_deinit(certs[j]);
+
+ if (debug)
+ printf("done\n\n\n");
+
+ gnutls_global_deinit();
+
+ if (debug)
+ printf("Exit status...%d\n", exit_val);
+
+ exit(exit_val);
+}
diff --git a/tests/missingissuer_aia.c b/tests/missingissuer_aia.c
new file mode 100644
index 0000000000..8ed534b24c
--- /dev/null
+++ b/tests/missingissuer_aia.c
@@ -0,0 +1,255 @@
+/*
+ * Copyright (C) 2008-2014 Free Software Foundation, Inc.
+ *
+ * Author: Simon Josefsson, Nikos Mavrogiannopoulos
+ *
+ * This file is part of GnuTLS.
+ *
+ * GnuTLS is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GnuTLS is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <errno.h>
+#include <assert.h>
+
+#include <gnutls/gnutls.h>
+#include <gnutls/x509.h>
+#include <gnutls/abstract.h>
+
+#include "utils.h"
+#include "test-chains-issuer-aia.h"
+
+#define DEFAULT_THEN 1256803113
+static time_t then = DEFAULT_THEN;
+
+/* GnuTLS internally calls time() to find out the current time when
+ verifying certificates. To avoid a time bomb, we hard code the
+ current time. This should work fine on systems where the library
+ call to time is resolved at run-time. */
+static time_t mytime(time_t * t)
+{
+ if (t)
+ *t = then;
+
+ return then;
+}
+
+static void tls_log_func(int level, const char *str)
+{
+ fprintf(stderr, "|<%d>| %s", level, str);
+}
+
+static int getissuer_callback(gnutls_x509_trust_list_t tlist,
+ const gnutls_x509_crt_t crt)
+{
+ int ret;
+ gnutls_x509_crt_t issuer;
+ gnutls_datum_t aia;
+ gnutls_datum_t tmp;
+
+ assert(gnutls_x509_crt_print(crt, GNUTLS_CRT_PRINT_ONELINE, &tmp) >= 0);
+
+ if (debug)
+ printf("\t Certificate missing issuer is: %.*s\n",
+ tmp.size, tmp.data);
+ gnutls_free(tmp.data);
+
+ ret = gnutls_x509_crt_init(&issuer);
+ if (ret < 0) {
+ fprintf(stderr, "error: %s\n", gnutls_strerror(ret));
+ return -1;
+ }
+
+ ret = gnutls_x509_crt_get_authority_info_access(crt, 1,
+ GNUTLS_IA_CAISSUERS_URI, &aia, NULL);
+ if (ret < 0) {
+ fprintf(stderr, "error: %s\n", gnutls_strerror(ret));
+ gnutls_free(aia.data);
+ return -1;
+ }
+
+ if (debug)
+ printf("\t AIA URI from the cert is: %s\n", aia.data);
+ gnutls_free(aia.data);
+
+ /* Download the cert from the above URI and append it to issuer */
+
+ tmp.data = (unsigned char *)missing_cert_aia_insert;
+ tmp.size = strlen(missing_cert_aia_insert);
+
+ ret = gnutls_x509_crt_import(issuer, &tmp, GNUTLS_X509_FMT_PEM);
+ if (ret < 0) {
+ fprintf(stderr, "error: %s\n", gnutls_strerror(ret));
+ gnutls_x509_crt_deinit(issuer);
+ return -1;
+ }
+
+ /* This transfers the ownership of `issuer` to `tlist`. */
+ ret = gnutls_x509_trust_list_add_cas(tlist, &issuer, 1, 0);
+ if (ret < 0) {
+ fprintf(stderr, "error: %s\n", gnutls_strerror(ret));
+ gnutls_x509_crt_deinit(issuer);
+ return -1;
+ }
+
+ assert(gnutls_x509_crt_print(issuer, GNUTLS_CRT_PRINT_ONELINE, &tmp) >= 0);
+
+ if (debug)
+ printf("\t Appended missing certificate is: %.*s\n",
+ tmp.size, tmp.data);
+ gnutls_free(tmp.data);
+ return 0;
+}
+
+void doit(void)
+{
+ int exit_val = 0;
+ int ret;
+ gnutls_x509_trust_list_t tl;
+ unsigned int verify_status;
+ gnutls_x509_crt_t certs[MAX_CHAIN];
+ gnutls_x509_crt_t ca;
+ gnutls_datum_t tmp;
+ size_t j;
+
+ /* The overloading of time() seems to work in linux (ELF?)
+ * systems only. Disable it on windows.
+ */
+#ifdef _WIN32
+ exit(77);
+#endif
+
+ ret = global_init();
+ if (ret != 0) {
+ fail("%d: %s\n", ret, gnutls_strerror(ret));
+ exit(1);
+ }
+
+ gnutls_global_set_time_function(mytime);
+ gnutls_global_set_log_function(tls_log_func);
+
+ if (debug)
+ gnutls_global_set_log_level(4711);
+
+ for (j = 0; j < MAX_CHAIN; j++) {
+ if (debug > 2)
+ printf("\tAdding certificate %d...", (int)j);
+
+ ret = gnutls_x509_crt_init(&certs[j]);
+ if (ret < 0) {
+ fprintf(stderr,
+ "gnutls_x509_crt_init[%d]: %s\n",
+ (int)j, gnutls_strerror(ret));
+ exit(1);
+ }
+
+ tmp.data = (unsigned char *)missing_cert_aia[j];
+ tmp.size = strlen(missing_cert_aia[j]);
+
+ ret =
+ gnutls_x509_crt_import(certs[j], &tmp,
+ GNUTLS_X509_FMT_PEM);
+ if (debug > 2)
+ printf("done\n");
+ if (ret < 0) {
+ fprintf(stderr,
+ "gnutls_x509_crt_import[%d]: %s\n",
+ (int)j,
+ gnutls_strerror(ret));
+ exit(1);
+ }
+
+ gnutls_x509_crt_print(certs[j],
+ GNUTLS_CRT_PRINT_ONELINE, &tmp);
+ if (debug)
+ printf("\tCertificate %d: %.*s\n", (int)j,
+ tmp.size, tmp.data);
+ gnutls_free(tmp.data);
+ }
+
+ if (debug > 2)
+ printf("\tAdding CA certificate...");
+
+ ret = gnutls_x509_crt_init(&ca);
+ if (ret < 0) {
+ fprintf(stderr, "gnutls_x509_crt_init: %s\n",
+ gnutls_strerror(ret));
+ exit(1);
+ }
+
+ tmp.data = (unsigned char *)missing_cert_aia[MAX_CHAIN-1];
+ tmp.size = strlen(missing_cert_aia[MAX_CHAIN-1]);
+
+ ret = gnutls_x509_crt_import(ca, &tmp, GNUTLS_X509_FMT_PEM);
+ if (ret < 0) {
+ fprintf(stderr, "gnutls_x509_crt_import: %s\n",
+ gnutls_strerror(ret));
+ exit(1);
+ }
+
+ if (debug > 2)
+ printf("done\n");
+
+ gnutls_x509_crt_print(ca, GNUTLS_CRT_PRINT_ONELINE, &tmp);
+ if (debug)
+ printf("\tCA Certificate: %.*s\n", tmp.size, tmp.data);
+ gnutls_free(tmp.data);
+
+ if (debug)
+ printf("\tVerifying...");
+
+ gnutls_x509_trust_list_init(&tl, 0);
+
+ ret = gnutls_x509_trust_list_add_cas(tl, &ca, 1, 0);
+ if (ret != 1) {
+ fail("gnutls_x509_trust_list_add_trust_mem\n");
+ exit(1);
+ }
+
+ gnutls_x509_trust_list_set_getissuer_function(tl, getissuer_callback);
+
+ ret = gnutls_x509_trust_list_verify_crt(tl, certs, MAX_CHAIN,
+ 0,
+ &verify_status,
+ NULL);
+ if (ret < 0) {
+ fprintf(stderr,
+ "gnutls_x509_crt_list_verify: %s\n", gnutls_strerror(ret));
+ exit(1);
+ }
+
+ if (debug)
+ printf("\tCleanup...");
+
+ gnutls_x509_trust_list_deinit(tl, 1);
+
+ for (j = 0; j < MAX_CHAIN; j++)
+ gnutls_x509_crt_deinit(certs[j]);
+
+ if (debug)
+ printf("done\n\n\n");
+
+ gnutls_global_deinit();
+
+ if (debug)
+ printf("Exit status...%d\n", exit_val);
+
+ exit(exit_val);
+}
diff --git a/tests/mpi.c b/tests/mpi.c
index 604024622d..65a0dd0516 100644
--- a/tests/mpi.c
+++ b/tests/mpi.c
@@ -26,12 +26,15 @@
#include <stdio.h>
-#include "utils.h"
#include "../lib/gnutls_int.h"
#include "../lib/mpi.h"
#include "../lib/errors.h"
#include "../lib/debug.h"
+/* utils.h must be loaded after gnutls_int.h, as it redefines some
+ * macros from gnulib */
+#include "utils.h"
+
static void tls_log_func(int level, const char *str)
{
fprintf(stderr, "|<%d>| %s", level, str);
diff --git a/tests/ocsp-tests/ocsp-load-chain b/tests/ocsp-tests/ocsp-load-chain
index 04de48f7ed..0822bc3d99 100755
--- a/tests/ocsp-tests/ocsp-load-chain
+++ b/tests/ocsp-tests/ocsp-load-chain
@@ -31,7 +31,7 @@ export TZ="UTC"
. "${srcdir}/scripts/common.sh"
-check_for_datefudge
+skip_if_no_datefudge
datefudge -s "2017-06-19" \
"${OCSPTOOL}" -e --load-chain "${srcdir}/ocsp-tests/certs/chain-amazon.com.pem" --infile "${srcdir}/ocsp-tests/certs/ocsp-amazon.com.der" --verify-allow-broken
diff --git a/tests/ocsp-tests/ocsp-must-staple-connection b/tests/ocsp-tests/ocsp-must-staple-connection
index 490cc032f0..49c355dda3 100755
--- a/tests/ocsp-tests/ocsp-must-staple-connection
+++ b/tests/ocsp-tests/ocsp-must-staple-connection
@@ -53,7 +53,7 @@ fi
. "${srcdir}/scripts/common.sh"
-check_for_datefudge
+skip_if_no_datefudge
eval "${GETPORT}"
# Port for gnutls-serv
diff --git a/tests/ocsp-tests/ocsp-test b/tests/ocsp-tests/ocsp-test
index 3730175208..bc2641a22e 100755
--- a/tests/ocsp-tests/ocsp-test
+++ b/tests/ocsp-tests/ocsp-test
@@ -32,7 +32,7 @@ export TZ="UTC"
. "${srcdir}/scripts/common.sh"
-check_for_datefudge
+skip_if_no_datefudge
# Note that in rare cases this test may fail because the
# time set using datefudge could have changed since the generation
diff --git a/tests/ocsp-tests/ocsp-tls-connection b/tests/ocsp-tests/ocsp-tls-connection
index bcc77ec2d9..870f4ff78b 100755
--- a/tests/ocsp-tests/ocsp-tls-connection
+++ b/tests/ocsp-tests/ocsp-tls-connection
@@ -54,7 +54,7 @@ export TZ="UTC"
. "${srcdir}/scripts/common.sh"
-check_for_datefudge
+skip_if_no_datefudge
eval "${GETPORT}"
# Port for gnutls-serv
diff --git a/tests/pkcs11/pkcs11-ec-privkey-test.c b/tests/pkcs11/pkcs11-ec-privkey-test.c
index c256e6b0d9..1b24c8150f 100644
--- a/tests/pkcs11/pkcs11-ec-privkey-test.c
+++ b/tests/pkcs11/pkcs11-ec-privkey-test.c
@@ -79,6 +79,8 @@ void doit(void)
gnutls_privkey_t pkey;
gnutls_pubkey_t pubkey;
gnutls_pubkey_t pubkey2;
+ gnutls_pubkey_t pubkey3;
+ gnutls_pubkey_t pubkey4;
unsigned i;
bin = softhsm_bin();
@@ -180,8 +182,21 @@ void doit(void)
exit(1);
}
+ /* Write pubkey to the card too */
+ assert(gnutls_pubkey_init(&pubkey) == 0);
+ assert(gnutls_pubkey_import_x509(pubkey, crt, 0) == 0);
+
+ ret = gnutls_pkcs11_copy_pubkey(SOFTHSM_URL, pubkey, "cert", NULL,
+ GNUTLS_KEY_DIGITAL_SIGNATURE |
+ GNUTLS_KEY_KEY_ENCIPHERMENT, 0);
+ if (ret < 0) {
+ fail("gnutls_pkcs11_copy_pubkey: %s\n",
+ gnutls_strerror(ret));
+ }
+
gnutls_x509_crt_deinit(crt);
gnutls_x509_privkey_deinit(key);
+ gnutls_pubkey_deinit(pubkey);
gnutls_pkcs11_set_pin_function(NULL, NULL);
assert(gnutls_privkey_init(&pkey) == 0);
@@ -192,6 +207,31 @@ void doit(void)
exit(1);
}
+ /* Try to read the public key with public key URI */
+ assert(gnutls_pubkey_init(&pubkey3) == 0);
+
+
+ ret =
+ gnutls_pubkey_import_pkcs11_url(pubkey3,
+ SOFTHSM_URL
+ ";object=cert;object-type=public;pin-value="
+ PIN, 0);
+ if (ret < 0) {
+ fail("error in gnutls_pubkey_import_pkcs11_url: %s\n", gnutls_strerror(ret));
+ }
+
+ /* Try to read the public key with certificate URI */
+ assert(gnutls_pubkey_init(&pubkey4) == 0);
+
+ ret =
+ gnutls_pubkey_import_pkcs11_url(pubkey4,
+ SOFTHSM_URL
+ ";object=cert;object-type=cert;pin-value="
+ PIN, 0);
+ if (ret < 0) {
+ fail("error in gnutls_pubkey_import_pkcs11_url: %s\n", gnutls_strerror(ret));
+ }
+
assert(gnutls_pubkey_init(&pubkey) == 0);
assert(gnutls_pubkey_import_privkey(pubkey, pkey, 0, 0) == 0);
@@ -228,6 +268,8 @@ void doit(void)
gnutls_free(s.data);
}
+ gnutls_pubkey_deinit(pubkey4);
+ gnutls_pubkey_deinit(pubkey3);
gnutls_pubkey_deinit(pubkey2);
gnutls_pubkey_deinit(pubkey);
gnutls_privkey_deinit(pkey);
diff --git a/tests/pkcs11/pkcs11-eddsa-privkey-test.c b/tests/pkcs11/pkcs11-eddsa-privkey-test.c
index 5bc653e029..44515da3f4 100644
--- a/tests/pkcs11/pkcs11-eddsa-privkey-test.c
+++ b/tests/pkcs11/pkcs11-eddsa-privkey-test.c
@@ -94,6 +94,8 @@ void doit(void)
gnutls_privkey_t pkey;
gnutls_pubkey_t pubkey;
gnutls_pubkey_t pubkey2;
+ gnutls_pubkey_t pubkey3;
+ gnutls_pubkey_t pubkey4;
unsigned i, sigalgo;
bin = softhsm_bin();
@@ -188,8 +190,21 @@ void doit(void)
gnutls_strerror(ret));
}
+ /* Write pubkey to the card too */
+ assert(gnutls_pubkey_init(&pubkey) == 0);
+ assert(gnutls_pubkey_import_x509(pubkey, crt, 0) == 0);
+
+ ret = gnutls_pkcs11_copy_pubkey(SOFTHSM_URL, pubkey, "cert", NULL,
+ GNUTLS_KEY_DIGITAL_SIGNATURE |
+ GNUTLS_KEY_KEY_ENCIPHERMENT, 0);
+ if (ret < 0) {
+ fail("gnutls_pkcs11_copy_pubkey: %s\n",
+ gnutls_strerror(ret));
+ }
+
gnutls_x509_crt_deinit(crt);
gnutls_x509_privkey_deinit(key);
+ gnutls_pubkey_deinit(pubkey);
gnutls_pkcs11_set_pin_function(NULL, NULL);
assert(gnutls_privkey_init(&pkey) == 0);
@@ -203,6 +218,31 @@ void doit(void)
fail("error in gnutls_privkey_import_pkcs11_url: %s\n", gnutls_strerror(ret));
}
+ /* Try to read the public key with public key URI */
+ assert(gnutls_pubkey_init(&pubkey3) == 0);
+
+
+ ret =
+ gnutls_pubkey_import_pkcs11_url(pubkey3,
+ SOFTHSM_URL
+ ";object=cert;object-type=public;pin-value="
+ PIN, 0);
+ if (ret < 0) {
+ fail("error in gnutls_pubkey_import_pkcs11_url: %s\n", gnutls_strerror(ret));
+ }
+
+ /* Try to read the public key with certificate URI */
+ assert(gnutls_pubkey_init(&pubkey4) == 0);
+
+ ret =
+ gnutls_pubkey_import_pkcs11_url(pubkey4,
+ SOFTHSM_URL
+ ";object=cert;object-type=cert;pin-value="
+ PIN, 0);
+ if (ret < 0) {
+ fail("error in gnutls_pubkey_import_pkcs11_url: %s\n", gnutls_strerror(ret));
+ }
+
assert(gnutls_pubkey_init(&pubkey) == 0);
assert(gnutls_pubkey_import_privkey(pubkey, pkey, 0, 0) == 0);
@@ -241,6 +281,9 @@ void doit(void)
gnutls_free(sig.data);
}
+ /* TODO is there any sensible way to check the pubkeys are the same? */
+ gnutls_pubkey_deinit(pubkey4);
+ gnutls_pubkey_deinit(pubkey3);
gnutls_pubkey_deinit(pubkey2);
gnutls_pubkey_deinit(pubkey);
gnutls_privkey_deinit(pkey);
diff --git a/tests/pkcs12_s2k.c b/tests/pkcs12_s2k.c
index 7301f293f5..1516afbf35 100644
--- a/tests/pkcs12_s2k.c
+++ b/tests/pkcs12_s2k.c
@@ -26,11 +26,14 @@
#include <stdio.h>
-#include <utils.h>
#include "../lib/gnutls_int.h"
#include "../lib/x509/x509_int.h"
#include "../lib/debug.h"
+/* utils.h must be loaded after gnutls_int.h, as it redefines some
+ * macros from gnulib */
+#include <utils.h>
+
static void tls_log_func(int level, const char *str)
{
fprintf(stderr, "|<%d>| %s", level, str);
diff --git a/tests/pkcs7-cat.sh b/tests/pkcs7-cat.sh
index 2f3b0b0b35..a7a53a431a 100755
--- a/tests/pkcs7-cat.sh
+++ b/tests/pkcs7-cat.sh
@@ -34,7 +34,7 @@ fi
. ${srcdir}/scripts/common.sh
-check_for_datefudge
+skip_if_no_datefudge
#try verification
datefudge -s "2010-10-10" \
diff --git a/tests/prf.c b/tests/prf.c
index c4c7a0dac2..aa4f36af6a 100644
--- a/tests/prf.c
+++ b/tests/prf.c
@@ -323,6 +323,12 @@ static void client(int fd)
exit(1);
}
+ ret = gnutls_prf_hash_get(session);
+ if (ret != GNUTLS_DIG_MD5_SHA1) {
+ fprintf(stderr, "negotiated unexpected hash: %s\n", gnutls_digest_get_name(ret));
+ exit(1);
+ }
+
check_prfs(session);
gnutls_bye(session, GNUTLS_SHUT_WR);
diff --git a/tests/psk-file.c b/tests/psk-file.c
index 22e744f1a7..703043ec40 100644
--- a/tests/psk-file.c
+++ b/tests/psk-file.c
@@ -54,6 +54,36 @@ int main(int argc, char **argv)
#include "utils.h"
+static char hexchar(unsigned int val)
+{
+ if (val < 10)
+ return '0' + val;
+ if (val < 16)
+ return 'a' + val - 10;
+ abort();
+}
+
+static bool hex_encode(const void *buf, size_t bufsize, char *dest, size_t destsize)
+{
+ size_t used = 0;
+
+ if (destsize < 1)
+ return false;
+
+ while (used < bufsize) {
+ unsigned int c = ((const unsigned char *)buf)[used];
+ if (destsize < 3)
+ return false;
+ *(dest++) = hexchar(c >> 4);
+ *(dest++) = hexchar(c & 0xF);
+ used++;
+ destsize -= 2;
+ }
+ *dest = '\0';
+
+ return used + 1;
+}
+
/* A very basic TLS client, with PSK authentication.
*/
@@ -67,8 +97,8 @@ static void tls_log_func(int level, const char *str)
#define MAX_BUF 1024
#define MSG "Hello TLS"
-static void client(int sd, const char *prio, const char *user, const gnutls_datum_t *key,
- unsigned expect_hint, int expect_fail, int exp_kx)
+static void client(int sd, const char *prio, const gnutls_datum_t *user, const gnutls_datum_t *key,
+ unsigned expect_hint, int expect_fail, int exp_kx, unsigned binary_user)
{
int ret, ii, kx;
gnutls_session_t session;
@@ -84,8 +114,13 @@ static void client(int sd, const char *prio, const char *user, const gnutls_datu
side = "client";
gnutls_psk_allocate_client_credentials(&pskcred);
- gnutls_psk_set_client_credentials(pskcred, user, key,
- GNUTLS_PSK_KEY_HEX);
+
+ if (binary_user) {
+ gnutls_psk_set_client_credentials2(pskcred, user, key, GNUTLS_PSK_KEY_HEX);
+ } else {
+ gnutls_psk_set_client_credentials(pskcred, (const char *) user->data, key,
+ GNUTLS_PSK_KEY_HEX);
+ }
assert(gnutls_init(&session, GNUTLS_CLIENT|GNUTLS_KEY_SHARE_TOP)>=0);
@@ -173,13 +208,14 @@ static void client(int sd, const char *prio, const char *user, const gnutls_datu
#define MAX_BUF 1024
-static void server(int sd, const char *prio, const char *user, bool no_cred,
- int expect_fail, int exp_kx)
+static void server(int sd, const char *prio, const gnutls_datum_t *user, bool no_cred,
+ int expect_fail, int exp_kx, unsigned binary_user)
{
gnutls_psk_server_credentials_t server_pskcred;
int ret, kx;
gnutls_session_t session;
const char *pskid;
+ gnutls_datum_t pskid_binary;
char buffer[MAX_BUF + 1];
char *psk_file = getenv("PSK_FILE");
char *desc;
@@ -219,7 +255,7 @@ static void server(int sd, const char *prio, const char *user, bool no_cred,
gnutls_alert_send_appropriate(session, ret);
/* We have to make sure that we do not close connection till
- * test client reads our fatal alert, otherwise it migh exit
+ * test client reads our fatal alert, otherwise it might exit
* with GNUTLS_E_PUSH_ERROR instead */
gnutls_session_force_valid(session);
while ((gnutls_record_recv_seq(session, buf, sizeof(buf), seq)) >= 0)
@@ -281,10 +317,24 @@ static void server(int sd, const char *prio, const char *user, bool no_cred,
fail("server: expected failure but connection succeeded!\n");
if (!no_cred) {
- pskid = gnutls_psk_server_get_username(session);
- if (pskid == NULL || strcmp(pskid, user) != 0) {
- fail("server: username (%s), does not match expected (%s)\n",
- pskid, user);
+ if (binary_user) {
+ char pskid_bin[1024], userdata_bin[1024];
+
+ if (gnutls_psk_server_get_username2(session, &pskid_binary))
+ fail("server: Could not get binary pskid\n");
+
+ if (memcmp(pskid_binary.data, user->data, user->size) != 0) {
+ hex_encode(user->data, user->size, userdata_bin, sizeof(userdata_bin));
+ hex_encode(pskid_binary.data, pskid_binary.size, pskid_bin, sizeof(pskid_bin));
+ fail("server: binary username (%s) does not match expected (%s)\n",
+ pskid_bin, userdata_bin);
+ }
+ } else {
+ pskid = gnutls_psk_server_get_username(session);
+ if (pskid == NULL || strcmp(pskid, (const char *) user->data) != 0) {
+ fail("server: username (%s), does not match expected (%s)\n",
+ pskid, (const char *) user->data);
+ }
}
}
@@ -306,9 +356,20 @@ static void server(int sd, const char *prio, const char *user, bool no_cred,
success("server: finished\n");
}
+static void print_user(const char *caption, const char *prio, const gnutls_datum_t *user, unsigned binary_user)
+{
+ char hexuser[100];
+
+ if (binary_user) {
+ hex_encode(user->data, user->size, hexuser, sizeof(hexuser));
+ success("%s %s (user:%s)\n", caption, prio, hexuser);
+ } else
+ success("%s %s (user:%s)\n", caption, prio, (const char *) user->data);
+}
+
static
-void run_test3(const char *prio, const char *sprio, const char *user, const gnutls_datum_t *key, bool no_cred,
- unsigned expect_hint, int exp_kx, int expect_fail_cli, int expect_fail_serv)
+void run_test3(const char *prio, const char *sprio, const gnutls_datum_t *user, const gnutls_datum_t *key, bool no_cred,
+ unsigned expect_hint, int exp_kx, int expect_fail_cli, int expect_fail_serv, unsigned binary_user)
{
pid_t child;
int err;
@@ -316,11 +377,10 @@ void run_test3(const char *prio, const char *sprio, const char *user, const gnut
signal(SIGPIPE, SIG_IGN);
- if (expect_fail_serv || expect_fail_cli) {
- success("ntest %s (user:%s)\n", prio, user);
- } else {
- success("test %s (user:%s)\n", prio, user);
- }
+ if (expect_fail_serv || expect_fail_cli)
+ print_user("ntest", prio, user, binary_user);
+ else
+ print_user("test", prio, user, binary_user);
err = socketpair(AF_UNIX, SOCK_STREAM, 0, sockets);
if (err == -1) {
@@ -340,86 +400,155 @@ void run_test3(const char *prio, const char *sprio, const char *user, const gnut
close(sockets[1]);
int status;
/* parent */
- server(sockets[0], sprio?sprio:prio, user, no_cred, expect_fail_serv, exp_kx);
+ server(sockets[0], sprio?sprio:prio, user, no_cred, expect_fail_serv, exp_kx, binary_user);
wait(&status);
check_wait_status(status);
} else {
close(sockets[0]);
- client(sockets[1], prio, user, key, expect_hint, expect_fail_cli, exp_kx);
+ client(sockets[1], prio, user, key, expect_hint, expect_fail_cli, exp_kx, binary_user);
exit(0);
}
}
static
-void run_test2(const char *prio, const char *sprio, const char *user, const gnutls_datum_t *key,
- unsigned expect_hint, int exp_kx, int expect_fail_cli, int expect_fail_serv)
+void run_test2(const char *prio, const char *sprio, const gnutls_datum_t *user, const gnutls_datum_t *key,
+ unsigned expect_hint, int exp_kx, int expect_fail_cli, int expect_fail_serv, unsigned binary_user)
{
- run_test3(prio, sprio, user, key, 0, expect_hint, exp_kx, expect_fail_cli, expect_fail_serv);
+ run_test3(prio, sprio, user, key, 0, expect_hint, exp_kx, expect_fail_cli, expect_fail_serv, binary_user);
}
static
-void run_test_ok(const char *prio, const char *user, const gnutls_datum_t *key, unsigned expect_hint, int expect_fail)
+void run_test_ok(const char *prio, const gnutls_datum_t *user, const gnutls_datum_t *key, unsigned expect_hint, int expect_fail, unsigned binary_user)
{
- run_test2(prio, NULL, user, key, expect_hint, GNUTLS_KX_PSK, expect_fail, expect_fail);
+ run_test2(prio, NULL, user, key, expect_hint, GNUTLS_KX_PSK, expect_fail, expect_fail, binary_user);
}
static
-void run_ectest_ok(const char *prio, const char *user, const gnutls_datum_t *key, unsigned expect_hint, int expect_fail)
+void run_ectest_ok(const char *prio, const gnutls_datum_t *user, const gnutls_datum_t *key, unsigned expect_hint, int expect_fail, unsigned binary_user)
{
- run_test2(prio, NULL, user, key, expect_hint, GNUTLS_KX_ECDHE_PSK, expect_fail, expect_fail);
+ run_test2(prio, NULL, user, key, expect_hint, GNUTLS_KX_ECDHE_PSK, expect_fail, expect_fail, binary_user);
}
static
-void run_dhtest_ok(const char *prio, const char *user, const gnutls_datum_t *key, unsigned expect_hint, int expect_fail)
+void run_dhtest_ok(const char *prio, const gnutls_datum_t *user, const gnutls_datum_t *key, unsigned expect_hint, int expect_fail, unsigned binary_user)
{
- run_test2(prio, NULL, user, key, expect_hint, GNUTLS_KX_DHE_PSK, expect_fail, expect_fail);
+ run_test2(prio, NULL, user, key, expect_hint, GNUTLS_KX_DHE_PSK, expect_fail, expect_fail, binary_user);
}
void doit(void)
{
+ char hexuser[] = { 0xde, 0xad, 0xbe, 0xef },
+ nulluser1[] = { 0 },
+ nulluser2[] = { 0, 0, 0xaa, 0 };
+ const gnutls_datum_t user_jas = { (void *) "jas", strlen("jas") };
+ const gnutls_datum_t user_unknown = { (void *) "unknown", strlen("unknown") };
+ const gnutls_datum_t user_nonhex = { (void *) "non-hex", strlen("non-hex") };
+ const gnutls_datum_t user_hex = { (void *) hexuser, sizeof(hexuser) };
+ const gnutls_datum_t user_null_1 = { (void *) nulluser1, sizeof(nulluser1) };
+ const gnutls_datum_t user_null_2 = { (void *) nulluser2, sizeof(nulluser2) };
const gnutls_datum_t key = { (void *) "9e32cf7786321a828ef7668f09fb35db", 32 };
const gnutls_datum_t wrong_key = { (void *) "9e31cf7786321a828ef7668f09fb35db", 32 };
- run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", "jas", &key, 1, 0);
- run_dhtest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-PSK", "jas", &key, 1, 0);
- run_ectest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-PSK", "jas", &key, 1, 0);
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", NULL, "unknown", &key, 1, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_DECRYPTION_FAILED);
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", NULL, "jas", &wrong_key, 1, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_DECRYPTION_FAILED);
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", NULL, "non-hex", &key, 1, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_KEYFILE_ERROR);
-
- run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", "jas", &key, 1, 0);
- run_test_ok("NORMAL:-KX-ALL:+PSK", "jas", &key, 0, 0);
- run_test2("NORMAL:+PSK", NULL, "unknown", &key, 1, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
- run_test2("NORMAL:+PSK", NULL, "jas", &wrong_key, 1, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
- run_test2("NORMAL:-KX-ALL:+PSK", NULL, "non-hex", &key, 1, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_KEYFILE_ERROR);
-
- run_dhtest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-EC-ALL", "jas", &key, 0, 0);
- run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK", "jas", &key, 0, 0);
+ run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", &user_jas, &key, 1, 0, 0);
+ run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", &user_hex, &key, 1, 0, 1);
+ run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", &user_null_1, &key, 1, 0, 1);
+ run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", &user_null_2, &key, 1, 0, 1);
+ run_dhtest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-PSK", &user_jas, &key, 1, 0, 0);
+ run_dhtest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-PSK", &user_hex, &key, 1, 0, 1);
+ run_dhtest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-PSK", &user_null_1, &key, 1, 0, 1);
+ run_dhtest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-PSK", &user_null_2, &key, 1, 0, 1);
+ run_ectest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-PSK", &user_jas, &key, 1, 0, 0);
+ run_ectest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-PSK", &user_hex, &key, 1, 0, 1);
+ run_ectest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-PSK", &user_null_1, &key, 1, 0, 1);
+ run_ectest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-PSK", &user_null_2, &key, 1, 0, 1);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", NULL, &user_unknown, &key, 1, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_DECRYPTION_FAILED, 0);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", NULL, &user_jas, &wrong_key, 1, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_DECRYPTION_FAILED, 0);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", NULL, &user_nonhex, &key, 1, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_KEYFILE_ERROR, 0);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", NULL, &user_hex, &wrong_key, 1, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_DECRYPTION_FAILED, 1);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", NULL, &user_null_1, &wrong_key, 1, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_DECRYPTION_FAILED, 1);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", NULL, &user_null_2, &wrong_key, 1, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_DECRYPTION_FAILED, 1);
+
+ run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", &user_jas, &key, 1, 0, 0);
+ run_test_ok("NORMAL:-KX-ALL:+PSK", &user_jas, &key, 0, 0, 0);
+ run_test_ok("NORMAL:-KX-ALL:+PSK", &user_hex, &key, 0, 0, 1);
+ run_test_ok("NORMAL:-KX-ALL:+PSK", &user_null_1, &key, 0, 0, 1);
+ run_test_ok("NORMAL:-KX-ALL:+PSK", &user_null_2, &key, 0, 0, 1);
+ run_test2("NORMAL:+PSK", NULL, &user_unknown, &key, 1, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER, 0);
+ run_test2("NORMAL:+PSK", NULL, &user_jas, &wrong_key, 1, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER, 0);
+ run_test2("NORMAL:+PSK", NULL, &user_hex, &wrong_key, 1, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER, 1);
+ run_test2("NORMAL:+PSK", NULL, &user_null_1, &wrong_key, 1, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER, 1);
+ run_test2("NORMAL:+PSK", NULL, &user_null_2, &wrong_key, 1, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER, 1);
+ run_test2("NORMAL:-KX-ALL:+PSK", NULL, &user_nonhex, &key, 1, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_KEYFILE_ERROR, 0);
+
+ run_dhtest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-EC-ALL", &user_jas, &key, 0, 0, 0);
+ run_dhtest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-EC-ALL", &user_hex, &key, 0, 0, 1);
+ run_dhtest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-EC-ALL", &user_null_1, &key, 0, 0, 1);
+ run_dhtest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-EC-ALL", &user_null_2, &key, 0, 0, 1);
+ run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK", &user_jas, &key, 0, 0, 0);
+ run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK", &user_hex, &key, 0, 0, 1);
+ run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK", &user_null_1, &key, 0, 0, 1);
+ run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK", &user_null_2, &key, 0, 0, 1);
/* test priorities of DHE-PSK and PSK */
- run_ectest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+DHE-PSK:+PSK:-GROUP-DH-ALL", "jas", &key, 0, 0);
- run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+PSK:+DHE-PSK:-GROUP-DH-ALL", "jas", &key, 0, 0);
+ run_ectest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+DHE-PSK:+PSK:-GROUP-DH-ALL", &user_jas, &key, 0, 0, 0);
+ run_ectest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+DHE-PSK:+PSK:-GROUP-DH-ALL", &user_hex, &key, 0, 0, 1);
+ run_ectest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+DHE-PSK:+PSK:-GROUP-DH-ALL", &user_null_1, &key, 0, 0, 1);
+ run_ectest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+DHE-PSK:+PSK:-GROUP-DH-ALL", &user_null_2, &key, 0, 0, 1);
+ run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+PSK:+DHE-PSK:-GROUP-DH-ALL", &user_jas, &key, 0, 0, 0);
+ run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+PSK:+DHE-PSK:-GROUP-DH-ALL", &user_hex, &key, 0, 0, 1);
+ run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+PSK:+DHE-PSK:-GROUP-DH-ALL", &user_null_1, &key, 0, 0, 1);
+ run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+PSK:+DHE-PSK:-GROUP-DH-ALL", &user_null_2, &key, 0, 0, 1);
run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+DHE-PSK:+PSK:-GROUP-DH-ALL",
"NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+PSK:+DHE-PSK:%SERVER_PRECEDENCE:-GROUP-DH-ALL",
- "jas", &key, 0, GNUTLS_KX_PSK, 0, 0);
+ &user_jas, &key, 0, GNUTLS_KX_PSK, 0, 0, 0);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+DHE-PSK:+PSK:-GROUP-DH-ALL",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+PSK:+DHE-PSK:%SERVER_PRECEDENCE:-GROUP-DH-ALL",
+ &user_hex, &key, 0, GNUTLS_KX_PSK, 0, 0, 1);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+DHE-PSK:+PSK:-GROUP-DH-ALL",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+PSK:+DHE-PSK:%SERVER_PRECEDENCE:-GROUP-DH-ALL",
+ &user_null_1, &key, 0, GNUTLS_KX_PSK, 0, 0, 1);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+DHE-PSK:+PSK:-GROUP-DH-ALL",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+PSK:+DHE-PSK:%SERVER_PRECEDENCE:-GROUP-DH-ALL",
+ &user_null_2, &key, 0, GNUTLS_KX_PSK, 0, 0, 1);
/* try with PRF that doesn't match binder (SHA256) */
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-256-GCM:+PSK:+DHE-PSK", NULL, "jas", &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_NO_CIPHER_SUITES);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-256-GCM:+PSK:+DHE-PSK", NULL, &user_jas, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_NO_CIPHER_SUITES, 0);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-256-GCM:+PSK:+DHE-PSK", NULL, &user_hex, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_NO_CIPHER_SUITES, 1);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-256-GCM:+PSK:+DHE-PSK", NULL, &user_null_1, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_NO_CIPHER_SUITES, 1);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-256-GCM:+PSK:+DHE-PSK", NULL, &user_null_2, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_NO_CIPHER_SUITES, 1);
/* try with no groups and PSK */
- run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:-GROUP-ALL", "jas", &key, 0, 0);
+ run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:-GROUP-ALL", &user_jas, &key, 0, 0, 0);
+ run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:-GROUP-ALL", &user_hex, &key, 0, 0, 1);
+ run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:-GROUP-ALL", &user_null_1, &key, 0, 0, 1);
+ run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:-GROUP-ALL", &user_null_2, &key, 0, 0, 1);
/* try without any groups but DHE-PSK */
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL", "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:+PSK", "jas", &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_NO_COMMON_KEY_SHARE);
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL", "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:+PSK:-GROUP-ALL", "jas", &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_NO_COMMON_KEY_SHARE);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL", "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:+PSK", &user_jas, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_NO_COMMON_KEY_SHARE, 0);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL", "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:+PSK:-GROUP-ALL", &user_jas, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_NO_COMMON_KEY_SHARE, 0);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL", "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:+PSK", &user_hex, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_NO_COMMON_KEY_SHARE, 1);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL", "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:+PSK:-GROUP-ALL", &user_hex, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_NO_COMMON_KEY_SHARE, 1);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL", "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:+PSK", &user_null_1, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_NO_COMMON_KEY_SHARE, 1);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL", "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:+PSK:-GROUP-ALL", &user_null_1, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_NO_COMMON_KEY_SHARE, 1);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL", "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:+PSK", &user_null_2, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_NO_COMMON_KEY_SHARE, 1);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL", "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:+PSK:-GROUP-ALL", &user_null_2, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_NO_COMMON_KEY_SHARE, 1);
/* if user invalid we continue without PSK */
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+DHE-PSK", NULL, "non-hex", &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_KEYFILE_ERROR);
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+DHE-PSK", NULL, "unknown", &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+DHE-PSK", NULL, "jas", &wrong_key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+DHE-PSK", NULL, &user_nonhex, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_KEYFILE_ERROR, 0);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+DHE-PSK", NULL, &user_unknown, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER, 0);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+DHE-PSK", NULL, &user_jas, &wrong_key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER, 0);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+DHE-PSK", NULL, &user_hex, &wrong_key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER, 1);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+DHE-PSK", NULL, &user_null_1, &wrong_key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER, 1);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+DHE-PSK", NULL, &user_null_2, &wrong_key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER, 1);
/* try with HelloRetryRequest and PSK */
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-FFDHE4096", "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL:+GROUP-FFDHE4096", "jas", &key, 0, GNUTLS_KX_DHE_PSK, 0, 0);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-FFDHE4096", "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL:+GROUP-FFDHE4096", &user_jas, &key, 0, GNUTLS_KX_DHE_PSK, 0, 0, 0);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-FFDHE4096", "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL:+GROUP-FFDHE4096", &user_hex, &key, 0, GNUTLS_KX_DHE_PSK, 0, 0, 1);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-FFDHE4096", "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL:+GROUP-FFDHE4096", &user_null_1, &key, 0, GNUTLS_KX_DHE_PSK, 0, 0, 1);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-FFDHE4096", "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL:+GROUP-FFDHE4096", &user_null_2, &key, 0, GNUTLS_KX_DHE_PSK, 0, 0, 1);
/* try without server credentials */
- run_test3("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+DHE-PSK", NULL, "jas", &key, 1, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_INSUFFICIENT_CREDENTIALS);
+ run_test3("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+DHE-PSK", NULL, &user_jas, &key, 1, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_INSUFFICIENT_CREDENTIALS, 0);
+ run_test3("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+DHE-PSK", NULL, &user_hex, &key, 1, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_INSUFFICIENT_CREDENTIALS, 1);
+ run_test3("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+DHE-PSK", NULL, &user_null_1, &key, 1, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_INSUFFICIENT_CREDENTIALS, 1);
+ run_test3("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+DHE-PSK", NULL, &user_null_2, &key, 1, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_INSUFFICIENT_CREDENTIALS, 1);
}
#endif /* _WIN32 */
diff --git a/tests/psk.passwd b/tests/psk.passwd
index 3dd998e2dc..db1edbd24f 100644
--- a/tests/psk.passwd
+++ b/tests/psk.passwd
@@ -1,2 +1,5 @@
jas:9e32cf7786321a828ef7668f09fb35db
non-hex:9e32cf7786321a828ef7668f09fb35dbxx
+#deadbeef:9e32cf7786321a828ef7668f09fb35db
+#00:9e32cf7786321a828ef7668f09fb35db
+#0000aa00:9e32cf7786321a828ef7668f09fb35db
diff --git a/tests/pskself2.c b/tests/pskself2.c
new file mode 100644
index 0000000000..81286a035b
--- /dev/null
+++ b/tests/pskself2.c
@@ -0,0 +1,347 @@
+/*
+ * Copyright (C) 2004-2012 Free Software Foundation, Inc.
+ * Copyright (C) 2013 Adam Sampson <ats@offog.org>
+ * Copyright (C) 2019 Free Software Foundation, Inc.
+ *
+ * Author: Simon Josefsson, Ander Juaristi
+ *
+ * This file is part of GnuTLS.
+ *
+ * GnuTLS is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GnuTLS is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GnuTLS; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+/* Parts copied from pskself.c. */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#if defined(_WIN32)
+
+/* socketpair isn't supported on Win32. */
+int main(int argc, char **argv)
+{
+ exit(77);
+}
+
+#else
+
+#include <string.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#if !defined(_WIN32)
+#include <sys/wait.h>
+#endif
+#include <unistd.h>
+#include <gnutls/gnutls.h>
+
+#include "utils.h"
+#include "extras/hex.h"
+
+/* A very basic TLS client, with PSK authentication.
+ */
+
+const char *side = "";
+
+static void tls_log_func(int level, const char *str)
+{
+ fprintf(stderr, "%s|<%d>| %s", side, level, str);
+}
+
+#define MAX_BUF 1024
+#define MSG "Hello TLS"
+
+static void client(int sd, const char *prio, unsigned exp_hint)
+{
+ int ret, ii;
+ gnutls_session_t session;
+ char buffer[MAX_BUF + 1];
+ gnutls_psk_client_credentials_t pskcred;
+ /* Need to enable anonymous KX specifically. */
+ const gnutls_datum_t key = { (void *) "DEADBEEF", 8 };
+ gnutls_datum_t user;
+ const char *hint;
+
+ global_init();
+ gnutls_global_set_log_function(tls_log_func);
+ if (debug)
+ gnutls_global_set_log_level(4711);
+
+ side = "client";
+
+ user.data = gnutls_malloc(4);
+ user.data[0] = 0xCA;
+ user.data[1] = 0xFE;
+ user.data[2] = 0xCA;
+ user.data[3] = 0xFE;
+ user.size = 4;
+
+ gnutls_psk_allocate_client_credentials(&pskcred);
+ ret = gnutls_psk_set_client_credentials2(pskcred, &user, &key,
+ GNUTLS_PSK_KEY_HEX);
+ if (ret < 0) {
+ fail("client: Could not set PSK\n");
+ gnutls_perror(ret);
+ goto end;
+ }
+
+ /* Initialize TLS session
+ */
+ gnutls_init(&session, GNUTLS_CLIENT);
+
+ /* Use default priorities */
+ gnutls_priority_set_direct(session, prio, NULL);
+
+ /* put the anonymous credentials to the current session
+ */
+ gnutls_credentials_set(session, GNUTLS_CRD_PSK, pskcred);
+
+ gnutls_transport_set_int(session, sd);
+
+ /* Perform the TLS handshake
+ */
+ ret = gnutls_handshake(session);
+
+ if (ret < 0) {
+ fail("client: Handshake failed\n");
+ gnutls_perror(ret);
+ goto end;
+ } else {
+ if (debug)
+ success("client: Handshake was completed\n");
+ }
+
+ /* check the hint */
+ if (exp_hint) {
+ hint = gnutls_psk_client_get_hint(session);
+ if (hint == NULL || strcmp(hint, "hint") != 0) {
+ fail("client: hint is not the expected: %s\n", gnutls_psk_client_get_hint(session));
+ goto end;
+ }
+ }
+
+ gnutls_record_send(session, MSG, strlen(MSG));
+
+ ret = gnutls_record_recv(session, buffer, MAX_BUF);
+ if (ret == 0) {
+ if (debug)
+ success
+ ("client: Peer has closed the TLS connection\n");
+ goto end;
+ } else if (ret < 0) {
+ fail("client: Error: %s\n", gnutls_strerror(ret));
+ goto end;
+ }
+
+ if (debug) {
+ printf("- Received %d bytes: ", ret);
+ for (ii = 0; ii < ret; ii++) {
+ fputc(buffer[ii], stdout);
+ }
+ fputs("\n", stdout);
+ }
+
+ gnutls_bye(session, GNUTLS_SHUT_RDWR);
+
+ end:
+
+ close(sd);
+
+ gnutls_deinit(session);
+
+ gnutls_free(user.data);
+ gnutls_psk_free_client_credentials(pskcred);
+
+ gnutls_global_deinit();
+}
+
+/* This is a sample TLS 1.0 echo server, for PSK authentication.
+ */
+
+#define MAX_BUF 1024
+
+/* These are global */
+
+static int
+pskfunc(gnutls_session_t session, const gnutls_datum_t *username,
+ gnutls_datum_t * key)
+{
+ if (debug)
+ printf("psk: Got username with length %d\n", username->size);
+
+ key->data = gnutls_malloc(4);
+ key->data[0] = 0xDE;
+ key->data[1] = 0xAD;
+ key->data[2] = 0xBE;
+ key->data[3] = 0xEF;
+ key->size = 4;
+
+ return 0;
+}
+
+
+static void server(int sd, const char *prio)
+{
+ gnutls_psk_server_credentials_t server_pskcred;
+ int ret;
+ gnutls_session_t session;
+ gnutls_datum_t psk_username;
+ char buffer[MAX_BUF + 1], expected_psk_username[] = { 0xDE, 0xAD, 0xBE, 0xEF };
+
+ /* this must be called once in the program
+ */
+ global_init();
+ gnutls_global_set_log_function(tls_log_func);
+ if (debug)
+ gnutls_global_set_log_level(4711);
+
+ side = "server";
+
+
+ gnutls_psk_allocate_server_credentials(&server_pskcred);
+ gnutls_psk_set_server_credentials_hint(server_pskcred, "hint");
+ gnutls_psk_set_server_credentials_function2(server_pskcred, pskfunc);
+
+ gnutls_init(&session, GNUTLS_SERVER);
+
+ /* avoid calling all the priority functions, since the defaults
+ * are adequate.
+ */
+ gnutls_priority_set_direct(session, prio, NULL);
+
+ gnutls_credentials_set(session, GNUTLS_CRD_PSK, server_pskcred);
+
+ gnutls_transport_set_int(session, sd);
+ ret = gnutls_handshake(session);
+ if (ret < 0) {
+ close(sd);
+ gnutls_deinit(session);
+ fail("server: Handshake has failed (%s)\n\n",
+ gnutls_strerror(ret));
+ return;
+ }
+
+ if (debug) {
+ success("server: Handshake was completed\n");
+
+ if (gnutls_psk_server_get_username(session))
+ fail("server: gnutls_psk_server_get_username() should have returned NULL\n");
+ if (gnutls_psk_server_get_username2(session, &psk_username) < 0)
+ fail("server: Could not get PSK username\n");
+
+ if (psk_username.size != 4 || memcmp(psk_username.data, expected_psk_username, 4))
+ fail("server: Unexpected PSK username\n");
+
+ success("server: PSK username length: %d\n", psk_username.size);
+ }
+
+ /* see the Getting peer's information example */
+ /* print_info(session); */
+
+ for (;;) {
+ memset(buffer, 0, MAX_BUF + 1);
+ gnutls_record_set_timeout(session, 10000);
+ ret = gnutls_record_recv(session, buffer, MAX_BUF);
+
+ if (ret == 0) {
+ if (debug)
+ success("server: Peer has closed the GnuTLS connection\n");
+ break;
+ } else if (ret < 0) {
+ fail("server: Received corrupted data(%d). Closing...\n", ret);
+ break;
+ } else if (ret > 0) {
+ /* echo data back to the client
+ */
+ gnutls_record_send(session, buffer,
+ strlen(buffer));
+ }
+ }
+ /* do not wait for the peer to close the connection.
+ */
+ gnutls_bye(session, GNUTLS_SHUT_WR);
+
+ close(sd);
+ gnutls_deinit(session);
+
+ gnutls_psk_free_server_credentials(server_pskcred);
+
+ gnutls_global_deinit();
+
+ if (debug)
+ success("server: finished\n");
+}
+
+static
+void run_test(const char *prio, unsigned exp_hint)
+{
+ pid_t child;
+ int err;
+ int sockets[2];
+
+ success("trying with %s\n", prio);
+
+ err = socketpair(AF_UNIX, SOCK_STREAM, 0, sockets);
+ if (err == -1) {
+ perror("socketpair");
+ fail("socketpair failed\n");
+ return;
+ }
+
+ child = fork();
+ if (child < 0) {
+ perror("fork");
+ fail("fork");
+ return;
+ }
+
+ if (child) {
+ int status;
+ /* parent */
+ close(sockets[1]);
+ server(sockets[0], prio);
+ wait(&status);
+ check_wait_status(status);
+ } else {
+ close(sockets[0]);
+ client(sockets[1], prio, exp_hint);
+ exit(0);
+ }
+}
+
+void doit(void)
+{
+ run_test("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", 1);
+ run_test("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-PSK", 1);
+ run_test("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-PSK", 1);
+
+ run_test("NORMAL:-VERS-ALL:+VERS-TLS1.2:+PSK", 0);
+ run_test("NORMAL:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE2048:+DHE-PSK", 0);
+ run_test("NORMAL:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-SECP256R1:+ECDHE-PSK", 0);
+ run_test("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK", 0);
+ run_test("NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE2048:+DHE-PSK", 0);
+ run_test("NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1:+ECDHE-PSK", 0);
+ /* the following should work once we support PSK without DH */
+ run_test("NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+PSK", 0);
+
+ run_test("NORMAL:-KX-ALL:+PSK", 0);
+ run_test("NORMAL:-KX-ALL:+ECDHE-PSK", 0);
+ run_test("NORMAL:-KX-ALL:+DHE-PSK", 0);
+}
+
+#endif /* _WIN32 */
diff --git a/tests/resume-with-previous-stek.c b/tests/resume-with-previous-stek.c
index f212b188b9..05c1c90868 100644
--- a/tests/resume-with-previous-stek.c
+++ b/tests/resume-with-previous-stek.c
@@ -196,8 +196,8 @@ static void server(int fd, unsigned rounds, const char *prio)
serverx509cred = NULL;
}
- if (num_stek_rotations != 2)
- fail("STEK should be rotated exactly twice (%d)!\n", num_stek_rotations);
+ if (num_stek_rotations != 3)
+ fail("STEK should be rotated exactly three times (%d)!\n", num_stek_rotations);
if (serverx509cred)
gnutls_certificate_free_credentials(serverx509cred);
diff --git a/tests/rsa-md5-collision/rsa-md5-collision.sh b/tests/rsa-md5-collision/rsa-md5-collision.sh
index a935804dc0..e319544b73 100755
--- a/tests/rsa-md5-collision/rsa-md5-collision.sh
+++ b/tests/rsa-md5-collision/rsa-md5-collision.sh
@@ -31,7 +31,7 @@ if ! test -x "${CERTTOOL}"; then
fi
. ${srcdir}/scripts/common.sh
-check_for_datefudge
+skip_if_no_datefudge
# Disable leak detection
ASAN_OPTIONS="detect_leaks=0"
diff --git a/tests/scripts/common.sh b/tests/scripts/common.sh
index 95f8a5298e..6ae19fa586 100644
--- a/tests/scripts/common.sh
+++ b/tests/scripts/common.sh
@@ -80,7 +80,12 @@ check_for_datefudge() {
TSTAMP=`datefudge -s "2006-09-23" "${top_builddir}/tests/datefudge-check" || true`
if test "$TSTAMP" != "1158969600" || test "$WINDOWS" = 1; then
- echo $TSTAMP
+ return 1
+ fi
+}
+
+skip_if_no_datefudge() {
+ if ! check_for_datefudge; then
echo "You need datefudge to run this test"
exit 77
fi
diff --git a/tests/server-multi-keys.sh b/tests/server-multi-keys.sh
index 3138fb6888..7737ec9b83 100755
--- a/tests/server-multi-keys.sh
+++ b/tests/server-multi-keys.sh
@@ -46,7 +46,7 @@ SERV="${SERV} -q"
. "${srcdir}/scripts/common.sh"
-check_for_datefudge
+skip_if_no_datefudge
echo "Checking whether server can utilize multiple keys"
diff --git a/tests/server-weak-keys.sh b/tests/server-weak-keys.sh
index 31c51a80bc..1fa14711fb 100755
--- a/tests/server-weak-keys.sh
+++ b/tests/server-weak-keys.sh
@@ -46,7 +46,7 @@ SERV="${SERV} -q"
. "${srcdir}/scripts/common.sh"
-check_for_datefudge
+skip_if_no_datefudge
echo "Checking whether a client will refuse weak but trusted keys"
diff --git a/tests/sign-is-secure.c b/tests/sign-is-secure.c
index 3c2d18d93a..64e0836963 100644
--- a/tests/sign-is-secure.c
+++ b/tests/sign-is-secure.c
@@ -87,7 +87,7 @@ void doit(void)
CHECK_INSECURE_SIG(GNUTLS_SIGN_RSA_MD2);
CHECK_INSECURE_SIG(GNUTLS_SIGN_GOST_94);
- for (i=1;i<GNUTLS_SIGN_MAX;i++) {
+ for (i=1;i<=GNUTLS_SIGN_MAX;i++) {
#ifndef ALLOW_SHA1
if (i==GNUTLS_SIGN_RSA_SHA1||i==GNUTLS_SIGN_DSA_SHA1||i==GNUTLS_SIGN_ECDSA_SHA1)
continue;
diff --git a/tests/slow/cipher-api-test.c b/tests/slow/cipher-api-test.c
index a29963aa5a..17872b7a43 100644
--- a/tests/slow/cipher-api-test.c
+++ b/tests/slow/cipher-api-test.c
@@ -266,8 +266,10 @@ void start(const char *name, int algo, unsigned aead)
void doit(void)
{
start("aes128-gcm", GNUTLS_CIPHER_AES_128_GCM, 1);
+ start("aes192-gcm", GNUTLS_CIPHER_AES_192_GCM, 1);
start("aes256-gcm", GNUTLS_CIPHER_AES_256_GCM, 1);
start("aes128-cbc", GNUTLS_CIPHER_AES_128_CBC, 0);
+ start("aes192-cbc", GNUTLS_CIPHER_AES_192_CBC, 0);
start("aes256-cbc", GNUTLS_CIPHER_AES_256_CBC, 0);
start("3des-cbc", GNUTLS_CIPHER_3DES_CBC, 0);
if (!gnutls_fips140_mode_enabled()) {
diff --git a/tests/slow/cipher-openssl-compat.c b/tests/slow/cipher-openssl-compat.c
index 64adf25a45..3d55131e52 100644
--- a/tests/slow/cipher-openssl-compat.c
+++ b/tests/slow/cipher-openssl-compat.c
@@ -195,6 +195,7 @@ void doit(void)
/* ciphers */
cipher_test("aes-128-gcm", GNUTLS_CIPHER_AES_128_GCM, 16);
+ cipher_test("aes-192-gcm", GNUTLS_CIPHER_AES_192_GCM, 16);
cipher_test("aes-256-gcm", GNUTLS_CIPHER_AES_256_GCM, 16);
#if OPENSSL_VERSION_NUMBER >= 0x10100000L
if (!gnutls_fips140_mode_enabled()) {
diff --git a/tests/slow/hash-large.c b/tests/slow/hash-large.c
index 33dc1df0da..71312ef369 100644
--- a/tests/slow/hash-large.c
+++ b/tests/slow/hash-large.c
@@ -139,7 +139,7 @@ void doit(void)
/* SHA1 */
err =
- gnutls_hash_fast(GNUTLS_MAC_SHA1, buf, size,
+ gnutls_hash_fast(GNUTLS_DIG_SHA1, buf, size,
digest);
if (err < 0)
fail("gnutls_hash_fast(SHA1) failed: %d\n", err);
diff --git a/tests/srp.c b/tests/srp.c
index e659f22163..607e52ae46 100644
--- a/tests/srp.c
+++ b/tests/srp.c
@@ -131,7 +131,7 @@ static void client(int fd, const char *prio, const char *user, const char *pass,
/* Use default priorities */
assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
- gnutls_handshake_set_timeout(session, 40 * 1000);
+ gnutls_handshake_set_timeout(session, 100 * 1000);
/* put the anonymous credentials to the current session
*/
@@ -229,7 +229,7 @@ static void server(int fd, const char *prio)
s_x509_cred);
gnutls_transport_set_int(session, fd);
- gnutls_handshake_set_timeout(session, 40 * 1000);
+ gnutls_handshake_set_timeout(session, 100 * 1000);
do {
ret = gnutls_handshake(session);
@@ -329,21 +329,21 @@ const char *tpasswd_conf_file =
void doit(void)
{
- FILE *fd;
+ FILE *fp;
- fd = fopen("tpasswd.conf", "w");
- if (fd == NULL)
+ fp = fopen("tpasswd.conf", "w");
+ if (fp == NULL)
exit(1);
- fwrite(tpasswd_conf_file, 1, strlen(tpasswd_conf_file), fd);
- fclose(fd);
+ fwrite(tpasswd_conf_file, 1, strlen(tpasswd_conf_file), fp);
+ fclose(fp);
- fd = fopen("tpasswd", "w");
- if (fd == NULL)
+ fp = fopen("tpasswd", "w");
+ if (fp == NULL)
exit(1);
- fwrite(tpasswd_file, 1, strlen(tpasswd_file), fd);
- fclose(fd);
+ fwrite(tpasswd_file, 1, strlen(tpasswd_file), fp);
+ fclose(fp);
start("tls1.2 srp-1024", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+SRP", "test", "test", 0);
start("tls1.2 srp-1536", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+SRP", "test2", "test2", 0);
diff --git a/tests/status-request-revoked.c b/tests/status-request-revoked.c
index b4033214cb..0268934647 100644
--- a/tests/status-request-revoked.c
+++ b/tests/status-request-revoked.c
@@ -65,6 +65,16 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
+static time_t mytime(time_t * t)
+{
+ time_t then = 1586000000;
+
+ if (t)
+ *t = then;
+
+ return then;
+}
+
static unsigned char server_cert_pem[] =
"-----BEGIN CERTIFICATE-----\n"
"MIIEKjCCAhKgAwIBAgIIRiBQA6KFBj0wDQYJKoZIhvcNAQELBQAwDzENMAsGA1UE\n"
@@ -252,6 +262,7 @@ static int cert_verify_callback(gnutls_session_t session)
unsigned int status;
int ret;
+ gnutls_global_set_time_function(mytime);
ret = gnutls_certificate_verify_peers2(session, &status);
if (ret < 0)
return -1;
diff --git a/tests/suite/multi-ticket-reception.sh b/tests/suite/multi-ticket-reception.sh
index 63de24e904..d84367703c 100755
--- a/tests/suite/multi-ticket-reception.sh
+++ b/tests/suite/multi-ticket-reception.sh
@@ -48,10 +48,10 @@ KEY1=${srcdir}/tls-fuzzer/tlslite-ng/tests/serverX509Key.pem
CERT1=${srcdir}/tls-fuzzer/tlsfuzzer/tests/serverX509Cert.pem
#create links necessary for tlslite to function
-pushd "${srcdir}/tls-fuzzer/tlsfuzzer"
-test -L ecdsa || ln -s ../python-ecdsa/src/ecdsa ecdsa
-test -L tlslite || ln -s ../tlslite-ng/tlslite tlslite 2>/dev/null
-popd
+test -L "${srcdir}/tls-fuzzer/tlsfuzzer/ecdsa" || \
+ ln -s ../python-ecdsa/src/ecdsa "${srcdir}/tls-fuzzer/tlsfuzzer/"
+test -L "${srcdir}/tls-fuzzer/tlsfuzzer/tlslite" || \
+ ln -s ../tlslite-ng/tlslite "${srcdir}/tls-fuzzer/tlsfuzzer/"
echo "Checking whether receiving 1 ticket succeeds (sanity)"
diff --git a/tests/suite/prime-check.c b/tests/suite/prime-check.c
index 3d6429c6e1..1e3ef7538b 100644
--- a/tests/suite/prime-check.c
+++ b/tests/suite/prime-check.c
@@ -21,7 +21,6 @@
*/
#include <nettle/bignum.h>
-#include <gmp.h>
#include <gnutls/gnutls.h>
#include <assert.h>
diff --git a/tests/suite/testcompat-main-openssl b/tests/suite/testcompat-main-openssl
index 197243086a..9c50a652b5 100755
--- a/tests/suite/testcompat-main-openssl
+++ b/tests/suite/testcompat-main-openssl
@@ -74,7 +74,6 @@ NO_TLS1_2=$?
test $NO_TLS1_2 != 0 && echo "Disabling interop tests for TLS 1.2"
-
${SERV} version|grep -e '[1-9]\.[1-9]\.[0-9]' >/dev/null 2>&1
if test $? = 0;then
NO_DH_PARAMS=0
@@ -82,18 +81,8 @@ else
NO_DH_PARAMS=1
fi
-# Do not use DSS or curves <=256 bits in 1.1.1+ because these
-# are not accepted by openssl on debian.
-${SERV} version|grep -e '[1-9]\.[1-9]\.[1-9]' >/dev/null 2>&1
-if test $? = 0;then
- NO_DSS=1
- FIPS_CURVES=1
-else
- ${SERV} ciphers -v ALL 2>&1|grep -e DHE-DSS >/dev/null 2>&1
- NO_DSS=$?
-fi
-
-test $FIPS_CURVES = 1 && echo "Running with FIPS140-2 enabled curves enabled"
+${SERV} ciphers -v ALL 2>&1|grep -e DHE-DSS >/dev/null 2>&1
+NO_DSS=$?
if test $NO_DSS != 0;then
echo "Disabling interop tests for DSS ciphersuites"
@@ -121,6 +110,10 @@ NO_NULL=$?
test $NO_NULL != 0 && echo "Disabling interop tests for NULL ciphersuites"
+${SERV} ecparam -list_curves 2>&1|grep -e prime192v1 >/dev/null 2>&1
+NO_PRIME192v1=$?
+
+test $NO_PRIME192v1 != 0 && echo "Disabling interop tests for prime192v1 ecparam"
if test "${NO_DH_PARAMS}" = 0;then
OPENSSL_DH_PARAMS_OPT=""
@@ -218,7 +211,7 @@ run_client_suite() {
#-cipher RSA-AES128-SHA:DHE-DSS-AES128-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-AES128-SHA
eval "${GETPORT}"
- launch_bare_server $$ s_server -cipher "ALL" -quiet -www -accept "${PORT}" -keyform pem -certform pem -tls1 ${OPENSSL_DH_PARAMS_OPT} -key "${RSA_KEY}" -cert "${RSA_CERT}" ${DSA_PARAMS} -Verify 1 -CAfile "${CA_CERT}" >/dev/null
+ launch_bare_server $$ s_server -cipher "ALL:@SECLEVEL=1" -quiet -www -accept "${PORT}" -keyform pem -certform pem -tls1 ${OPENSSL_DH_PARAMS_OPT} -key "${RSA_KEY}" -cert "${RSA_CERT}" ${DSA_PARAMS} -Verify 1 -CAfile "${CA_CERT}" >/dev/null
PID=$!
wait_server ${PID}
@@ -267,9 +260,9 @@ run_client_suite() {
kill ${PID}
wait
- if test "${FIPS_CURVES}" != 1; then
+ if test "${FIPS_CURVES}" != 1 && test "${NO_PRIME192v1}" != 1; then
eval "${GETPORT}"
- launch_bare_server $$ s_server -quiet -www -accept "${PORT}" -keyform pem -certform pem -tls1 -key "${RSA_KEY}" -cert "${RSA_CERT}" -named_curve prime192v1 -CAfile "${CA_CERT}" >/dev/null
+ launch_bare_server $$ s_server -quiet -www -accept "${PORT}" -keyform pem -certform pem -cipher 'DEFAULT:@SECLEVEL=1' -tls1 -key "${RSA_KEY}" -cert "${RSA_CERT}" -named_curve prime192v1 -CAfile "${CA_CERT}" >/dev/null
PID=$!
wait_server ${PID}
@@ -283,7 +276,7 @@ run_client_suite() {
#-cipher ECDHE-ECDSA-AES128-SHA
eval "${GETPORT}"
- launch_bare_server $$ s_server -quiet -www -accept "${PORT}" -keyform pem -certform pem -tls1 -key "${ECC224_KEY}" -cert "${ECC224_CERT}" -Verify 1 -named_curve secp224r1 -CAfile "${CA_ECC_CERT}" >/dev/null
+ launch_bare_server $$ s_server -quiet -www -accept "${PORT}" -keyform pem -certform pem -cipher 'DEFAULT:@SECLEVEL=1' -tls1 -key "${ECC224_KEY}" -cert "${ECC224_CERT}" -Verify 1 -named_curve secp224r1 -CAfile "${CA_ECC_CERT}" >/dev/null
PID=$!
wait_server ${PID}
@@ -298,7 +291,7 @@ run_client_suite() {
#-cipher ECDHE-ECDSA-AES128-SHA
eval "${GETPORT}"
- launch_bare_server $$ s_server -quiet -www -accept "${PORT}" -keyform pem -certform pem -tls1 -key "${ECC384_KEY}" -cert "${ECC384_CERT}" -Verify 1 -named_curve secp384r1 -CAfile "${CA_ECC_CERT}" >/dev/null
+ launch_bare_server $$ s_server -quiet -www -accept "${PORT}" -keyform pem -certform pem -cipher 'DEFAULT:@SECLEVEL=1' -tls1 -key "${ECC384_KEY}" -cert "${ECC384_CERT}" -Verify 1 -named_curve secp384r1 -CAfile "${CA_ECC_CERT}" >/dev/null
PID=$!
wait_server ${PID}
@@ -312,7 +305,7 @@ run_client_suite() {
#-cipher ECDHE-ECDSA-AES128-SHA
eval "${GETPORT}"
- launch_bare_server $$ s_server -quiet -www -accept "${PORT}" -keyform pem -certform pem -tls1 -key "${ECC521_KEY}" -cert "${ECC521_CERT}" -Verify 1 -named_curve secp521r1 -CAfile "${CA_ECC_CERT}" >/dev/null
+ launch_bare_server $$ s_server -quiet -www -accept "${PORT}" -keyform pem -certform pem -cipher 'DEFAULT:@SECLEVEL=1' -tls1 -key "${ECC521_KEY}" -cert "${ECC521_CERT}" -Verify 1 -named_curve secp521r1 -CAfile "${CA_ECC_CERT}" >/dev/null
PID=$!
wait_server ${PID}
@@ -326,7 +319,7 @@ run_client_suite() {
#-cipher PSK
eval "${GETPORT}"
- launch_bare_server $$ s_server -quiet -www -accept "${PORT}" -tls1 -keyform pem -certform pem ${OPENSSL_DH_PARAMS_OPT} -key "${RSA_KEY}" -cert "${RSA_CERT}" -cipher PSK -psk 9e32cf7786321a828ef7668f09fb35db >/dev/null
+ launch_bare_server $$ s_server -quiet -www -accept "${PORT}" -tls1 -keyform pem -certform pem ${OPENSSL_DH_PARAMS_OPT} -key "${RSA_KEY}" -cert "${RSA_CERT}" -cipher 'PSK:@SECLEVEL=1' -psk 9e32cf7786321a828ef7668f09fb35db >/dev/null
PID=$!
wait_server ${PID}
@@ -341,7 +334,7 @@ run_client_suite() {
# Tests requiring openssl 1.0.1 - TLS 1.2
#-cipher RSA-AES128-SHA:DHE-DSS-AES128-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-AES128-SHA
eval "${GETPORT}"
- launch_bare_server $$ s_server -cipher ALL -quiet -www -accept "${PORT}" -keyform pem -certform pem -tls1_2 ${OPENSSL_DH_PARAMS_OPT} -key "${RSA_KEY}" -cert "${RSA_CERT}" ${DSA_PARAMS} -Verify 1 -CAfile "${CA_CERT}" >/dev/null
+ launch_bare_server $$ s_server -cipher 'ALL:@SECLEVEL=1' -quiet -www -accept "${PORT}" -keyform pem -certform pem -tls1_2 ${OPENSSL_DH_PARAMS_OPT} -key "${RSA_KEY}" -cert "${RSA_CERT}" ${DSA_PARAMS} -Verify 1 -CAfile "${CA_CERT}" >/dev/null
PID=$!
wait_server ${PID}
@@ -442,7 +435,7 @@ run_client_suite() {
wait
eval "${GETPORT}"
- launch_bare_server $$ s_server -cipher ALL -quiet -accept "${PORT}" -keyform pem -certform pem -dtls1 -timeout ${OPENSSL_DH_PARAMS_OPT} -key "${RSA_KEY}" -cert "${RSA_CERT}" ${DSA_PARAMS} -Verify 1 -CAfile "${CA_CERT}" >/dev/null
+ launch_bare_server $$ s_server -cipher 'ALL:@SECLEVEL=1' -quiet -accept "${PORT}" -keyform pem -certform pem -dtls1 -timeout ${OPENSSL_DH_PARAMS_OPT} -key "${RSA_KEY}" -cert "${RSA_CERT}" ${DSA_PARAMS} -Verify 1 -CAfile "${CA_CERT}" >/dev/null
PID=$!
wait_udp_server ${PID}
@@ -455,7 +448,7 @@ run_client_suite() {
wait
eval "${GETPORT}"
- launch_bare_server $$ s_server -quiet -accept "${PORT}" -keyform pem -certform pem -dtls1 -timeout ${OPENSSL_DH_PARAMS_OPT} -key "${RSA_KEY}" -cert "${RSA_CERT}" ${DSA_PARAMS} -Verify 1 -CAfile "${CA_CERT}" >/dev/null
+ launch_bare_server $$ s_server -cipher 'ALL:@SECLEVEL=1' -quiet -accept "${PORT}" -keyform pem -certform pem -dtls1 -timeout ${OPENSSL_DH_PARAMS_OPT} -key "${RSA_KEY}" -cert "${RSA_CERT}" ${DSA_PARAMS} -Verify 1 -CAfile "${CA_CERT}" >/dev/null
PID=$!
wait_udp_server ${PID}
@@ -469,7 +462,7 @@ run_client_suite() {
if test "${NO_DSS}" = 0; then
eval "${GETPORT}"
- launch_bare_server $$ s_server -cipher "ALL" -quiet -accept "${PORT}" -keyform pem -certform pem -dtls1 -timeout ${OPENSSL_DH_PARAMS_OPT} -key "${RSA_KEY}" -cert "${RSA_CERT}" ${DSA_PARAMS} -Verify 1 -CAfile "${CA_CERT}" >/dev/null
+ launch_bare_server $$ s_server -cipher "ALL:@SECLEVEL=1" -quiet -accept "${PORT}" -keyform pem -certform pem -dtls1 -timeout ${OPENSSL_DH_PARAMS_OPT} -key "${RSA_KEY}" -cert "${RSA_CERT}" ${DSA_PARAMS} -Verify 1 -CAfile "${CA_CERT}" >/dev/null
PID=$!
wait_udp_server ${PID}
@@ -483,7 +476,7 @@ run_client_suite() {
fi
eval "${GETPORT}"
- launch_bare_server $$ s_server -cipher ALL -quiet -accept "${PORT}" -keyform pem -certform pem -dtls1_2 -timeout ${OPENSSL_DH_PARAMS_OPT} -key "${RSA_KEY}" -cert "${RSA_CERT}" ${DSA_PARAMS} -Verify 1 -CAfile "${CA_CERT}" >/dev/null
+ launch_bare_server $$ s_server -cipher 'ALL:@SECLEVEL=1' -quiet -accept "${PORT}" -keyform pem -certform pem -dtls1_2 -timeout ${OPENSSL_DH_PARAMS_OPT} -key "${RSA_KEY}" -cert "${RSA_CERT}" ${DSA_PARAMS} -Verify 1 -CAfile "${CA_CERT}" >/dev/null
PID=$!
wait_udp_server ${PID}
@@ -495,7 +488,7 @@ run_client_suite() {
wait
eval "${GETPORT}"
- launch_bare_server $$ s_server -cipher ALL -quiet -accept "${PORT}" -keyform pem -certform pem -dtls1_2 -timeout ${OPENSSL_DH_PARAMS_OPT} -key "${RSA_KEY}" -cert "${RSA_CERT}" ${DSA_PARAMS} -Verify 1 -CAfile "${CA_CERT}" >/dev/null
+ launch_bare_server $$ s_server -cipher ALL -quiet -accept "${PORT}" -keyform pem -certform pem -dtls1_2 -timeout ${OPENSSL_DH_PARAMS_OPT} -key "${RSA_KEY}" -cert "${RSA_CERT}" -Verify 1 -CAfile "${CA_CERT}" >/dev/null
PID=$!
wait_udp_server ${PID}
@@ -508,7 +501,7 @@ run_client_suite() {
wait
eval "${GETPORT}"
- launch_bare_server $$ s_server -cipher ALL -quiet -accept "${PORT}" -keyform pem -certform pem -dtls1_2 -timeout ${OPENSSL_DH_PARAMS_OPT} -key "${RSA_KEY}" -cert "${RSA_CERT}" ${DSA_PARAMS} -Verify 1 -CAfile "${CA_CERT}" >/dev/null
+ launch_bare_server $$ s_server -cipher ALL -quiet -accept "${PORT}" -keyform pem -certform pem -dtls1_2 -timeout ${OPENSSL_DH_PARAMS_OPT} -key "${RSA_KEY}" -cert "${RSA_CERT}" -Verify 1 -CAfile "${CA_CERT}" >/dev/null
PID=$!
wait_udp_server ${PID}
@@ -628,7 +621,7 @@ run_server_suite() {
PID=$!
wait_server ${PID}
- ${OPENSSL_CLI} s_client -cipher DHE -host localhost -tls1 -port "${PORT}" -cert "${CLI_CERT}" -key "${CLI_KEY}" -CAfile "${CA_CERT}" </dev/null 2>&1 | grep "\:error\:" && \
+ ${OPENSSL_CLI} s_client -cipher DHE:@SECLEVEL=1 -host localhost -tls1 -port "${PORT}" -cert "${CLI_CERT}" -key "${CLI_KEY}" -CAfile "${CA_CERT}" </dev/null 2>&1 | grep "\:error\:" && \
fail ${PID} "Failed"
kill ${PID}
@@ -641,7 +634,7 @@ run_server_suite() {
PID=$!
wait_server ${PID}
- ${OPENSSL_CLI} s_client -host localhost -cipher ALL -tls1 -port "${PORT}" -cert "${CLI_CERT}" -key "${CLI_KEY}" -CAfile "${CA_CERT}" </dev/null 2>&1 | grep "\:error\:" && \
+ ${OPENSSL_CLI} s_client -host localhost -cipher ALL:@SECLEVEL=1 -tls1 -port "${PORT}" -cert "${CLI_CERT}" -key "${CLI_KEY}" -CAfile "${CA_CERT}" </dev/null 2>&1 | grep "\:error\:" && \
fail ${PID} "Failed"
kill ${PID}
@@ -655,7 +648,7 @@ run_server_suite() {
wait_server ${PID}
#-cipher ECDHE-RSA-AES128-SHA
- ${OPENSSL_CLI} s_client -host localhost -tls1 -port "${PORT}" -cert "${CLI_CERT}" -key "${CLI_KEY}" -CAfile "${CA_CERT}" </dev/null 2>&1 | grep "\:error\:" && \
+ ${OPENSSL_CLI} s_client -host localhost -cipher ALL:@SECLEVEL=1 -tls1 -port "${PORT}" -cert "${CLI_CERT}" -key "${CLI_KEY}" -CAfile "${CA_CERT}" </dev/null 2>&1 | grep "\:error\:" && \
fail ${PID} "Failed"
kill ${PID}
@@ -669,7 +662,7 @@ run_server_suite() {
wait_server ${PID}
#-cipher ECDHE-ECDSA-AES128-SHA
- ${OPENSSL_CLI} s_client -host localhost -tls1 -named_curve secp224r1 -port "${PORT}" -cert "${ECC224_CERT}" -key "${ECC224_KEY}" -CAfile "${CA_ECC_CERT}" </dev/null 2>&1 | grep "\:error\:" && \
+ ${OPENSSL_CLI} s_client -host localhost -cipher ALL:@SECLEVEL=1 -tls1 -named_curve secp224r1 -port "${PORT}" -cert "${ECC224_CERT}" -key "${ECC224_KEY}" -CAfile "${CA_ECC_CERT}" </dev/null 2>&1 | grep "\:error\:" && \
fail ${PID} "Failed"
kill ${PID}
@@ -683,7 +676,7 @@ run_server_suite() {
wait_server ${PID}
#-cipher ECDHE-ECDSA-AES128-SHA
- ${OPENSSL_CLI} s_client -host localhost -tls1 -port "${PORT}" -cert "${ECC256_CERT}" -key "${ECC256_KEY}" -CAfile "${CA_ECC_CERT}" </dev/null 2>&1 | grep "\:error\:" && \
+ ${OPENSSL_CLI} s_client -host localhost -cipher ALL:@SECLEVEL=1 -tls1 -port "${PORT}" -cert "${ECC256_CERT}" -key "${ECC256_KEY}" -CAfile "${CA_ECC_CERT}" </dev/null 2>&1 | grep "\:error\:" && \
fail ${PID} "Failed"
kill ${PID}
@@ -696,7 +689,7 @@ run_server_suite() {
wait_server ${PID}
#-cipher ECDHE-ECDSA-AES128-SHA
- ${OPENSSL_CLI} s_client -host localhost -tls1 -port "${PORT}" -cert "${ECC384_CERT}" -key "${ECC384_KEY}" -CAfile "${CA_ECC_CERT}" </dev/null 2>&1 | grep "\:error\:" && \
+ ${OPENSSL_CLI} s_client -host localhost -cipher ALL:@SECLEVEL=1 -tls1 -port "${PORT}" -cert "${ECC384_CERT}" -key "${ECC384_KEY}" -CAfile "${CA_ECC_CERT}" </dev/null 2>&1 | grep "\:error\:" && \
fail ${PID} "Failed"
kill ${PID}
@@ -710,7 +703,7 @@ run_server_suite() {
wait_server ${PID}
#-cipher ECDHE-ECDSA-AES128-SHA
- ${OPENSSL_CLI} s_client -host localhost -tls1 -port "${PORT}" -cert "${ECC521_CERT}" -key "${ECC521_KEY}" -CAfile "${CA_ECC_CERT}" </dev/null 2>&1 | grep "\:error\:" && \
+ ${OPENSSL_CLI} s_client -host localhost -cipher ALL:@SECLEVEL=1 -tls1 -port "${PORT}" -cert "${ECC521_CERT}" -key "${ECC521_KEY}" -CAfile "${CA_ECC_CERT}" </dev/null 2>&1 | grep "\:error\:" && \
fail ${PID} "Failed"
kill ${PID}
@@ -724,7 +717,7 @@ run_server_suite() {
wait_server ${PID}
#-cipher PSK-AES128-SHA
- ${OPENSSL_CLI} s_client -host localhost -psk_identity Client_identity -psk 9e32cf7786321a828ef7668f09fb35db -tls1 -port "${PORT}" crt_file="${CLI_CERT}" -key "${CLI_KEY}" -CAfile "${CA_CERT}" </dev/null 2>&1 | grep ":error:" && \
+ ${OPENSSL_CLI} s_client -host localhost -psk_identity Client_identity -psk 9e32cf7786321a828ef7668f09fb35db -cipher ALL:@SECLEVEL=1 -tls1 -port "${PORT}" crt_file="${CLI_CERT}" -key "${CLI_KEY}" -CAfile "${CA_CERT}" </dev/null 2>&1 | grep ":error:" && \
fail ${PID} "Failed"
kill ${PID}
@@ -763,7 +756,7 @@ run_server_suite() {
PID=$!
wait_server ${PID}
- ${OPENSSL_CLI} s_client -cipher DHE -host localhost -cipher ALL -tls1_2 -port "${PORT}" -cert "${CLI_CERT}" -key "${CLI_KEY}" -CAfile "${CA_CERT}" </dev/null 2>&1 | grep "\:error\:" && \
+ ${OPENSSL_CLI} s_client -cipher DHE -host localhost -cipher 'ALL:@SECLEVEL=1' -tls1_2 -port "${PORT}" -cert "${CLI_CERT}" -key "${CLI_KEY}" -CAfile "${CA_CERT}" </dev/null 2>&1 | grep "\:error\:" && \
fail ${PID} "Failed"
kill ${PID}
@@ -805,7 +798,7 @@ run_server_suite() {
wait_server ${PID}
#-cipher ECDHE-ECDSA-AES128-SHA
- ${OPENSSL_CLI} s_client -host localhost -tls1_2 -named_curve secp224r1 -port "${PORT}" -cert "${ECC224_CERT}" -key "${ECC224_KEY}" -CAfile "${CA_ECC_CERT}" </dev/null 2>&1 | grep "\:error\:" && \
+ ${OPENSSL_CLI} s_client -host localhost -cipher 'ALL:@SECLEVEL=1' -tls1_2 -named_curve secp224r1 -port "${PORT}" -cert "${ECC224_CERT}" -key "${ECC224_KEY}" -CAfile "${CA_ECC_CERT}" </dev/null 2>&1 | grep "\:error\:" && \
fail ${PID} "Failed"
kill ${PID}
@@ -875,7 +868,7 @@ run_server_suite() {
PID=$!
wait_udp_server ${PID}
- ${OPENSSL_CLI} s_client -host localhost -port "${PORT}" -dtls1 -cert "${CLI_CERT}" -key "${CLI_KEY}" -CAfile "${CA_CERT}" </dev/null 2>&1 | grep "\:error\:" && \
+ ${OPENSSL_CLI} s_client -host localhost -port "${PORT}" -cipher 'ALL:@SECLEVEL=1' -dtls1 -cert "${CLI_CERT}" -key "${CLI_KEY}" -CAfile "${CA_CERT}" </dev/null 2>&1 | grep "\:error\:" && \
fail ${PID} "Failed"
kill ${PID}
@@ -889,7 +882,7 @@ run_server_suite() {
wait_udp_server ${PID}
- ${OPENSSL_CLI} s_client -cipher DHE -host localhost -port "${PORT}" -dtls1 -cert "${CLI_CERT}" -key "${CLI_KEY}" -CAfile "${CA_CERT}" </dev/null 2>&1 | grep "\:error\:" && \
+ ${OPENSSL_CLI} s_client -cipher DHE -host localhost -port "${PORT}" -cipher 'ALL:@SECLEVEL=1' -dtls1 -cert "${CLI_CERT}" -key "${CLI_KEY}" -CAfile "${CA_CERT}" </dev/null 2>&1 | grep "\:error\:" && \
fail ${PID} "Failed"
kill ${PID}
@@ -903,7 +896,7 @@ run_server_suite() {
wait_udp_server ${PID}
- ${OPENSSL_CLI} s_client -host localhost -port "${PORT}" -cipher ALL -dtls1 -cert "${CLI_CERT}" -key "${CLI_KEY}" -CAfile "${CA_CERT}" </dev/null 2>&1 | grep "\:error\:" && \
+ ${OPENSSL_CLI} s_client -host localhost -port "${PORT}" -cipher 'ALL:@SECLEVEL=1' -dtls1 -cert "${CLI_CERT}" -key "${CLI_KEY}" -CAfile "${CA_CERT}" </dev/null 2>&1 | grep "\:error\:" && \
fail ${PID} "Failed"
kill ${PID}
diff --git a/tests/suite/testcompat-oldgnutls.sh b/tests/suite/testcompat-oldgnutls.sh
index 2ec96b20c2..937bf57050 100755
--- a/tests/suite/testcompat-oldgnutls.sh
+++ b/tests/suite/testcompat-oldgnutls.sh
@@ -54,7 +54,7 @@ LDPATH=/usr/local/OLDGNUTLS/lib/x86_64-linux-gnu:/usr/local/OLDGNUTLS/usr/lib/x8
. "${srcdir}/../scripts/common.sh"
-check_for_datefudge
+skip_if_no_datefudge
. "${srcdir}/testcompat-common"
diff --git a/tests/suite/testcompat-openssl.sh b/tests/suite/testcompat-openssl.sh
index bfc59c09ac..b932a599c9 100755
--- a/tests/suite/testcompat-openssl.sh
+++ b/tests/suite/testcompat-openssl.sh
@@ -54,7 +54,7 @@ export TZ="UTC"
# Check for datefudge
. "${srcdir}/../scripts/common.sh"
-check_for_datefudge
+skip_if_no_datefudge
timeout 1800 datefudge "2012-09-2" "${srcdir}/testcompat-main-openssl"
diff --git a/tests/suite/testcompat-polarssl.sh b/tests/suite/testcompat-polarssl.sh
index 1af0099dca..2197a94bf7 100755
--- a/tests/suite/testcompat-polarssl.sh
+++ b/tests/suite/testcompat-polarssl.sh
@@ -42,7 +42,7 @@ fi
# Check for datefudge
. "${srcdir}/../scripts/common.sh"
-check_for_datefudge
+skip_if_no_datefudge
cat /proc/cpuinfo|grep "model name"|grep "VIA Esther" >/dev/null 2>&1
if test $? = 0; then
diff --git a/tests/suite/testcompat-tls13-openssl.sh b/tests/suite/testcompat-tls13-openssl.sh
index 128873ab23..bc198a02b6 100755
--- a/tests/suite/testcompat-tls13-openssl.sh
+++ b/tests/suite/testcompat-tls13-openssl.sh
@@ -49,7 +49,7 @@ fi
. "${srcdir}/../scripts/common.sh"
-check_for_datefudge
+skip_if_no_datefudge
. "${srcdir}/testcompat-common"
diff --git a/tests/suite/tls-fuzzer/gnutls-cert.json b/tests/suite/tls-fuzzer/gnutls-cert.json
index 7a5af26e53..6f5874c095 100644
--- a/tests/suite/tls-fuzzer/gnutls-cert.json
+++ b/tests/suite/tls-fuzzer/gnutls-cert.json
@@ -91,6 +91,8 @@
"-c", "tests/clientX509Cert.pem",
"-e", "fuzz empty certificate - overall 7, certs 4, cert 1",
"-e", "fuzz empty certificate - overall 8, certs 5, cert 2",
+ "-e", "sanity - empty client cert",
+ "-e", "Correct cert followed by an empty one",
"-p", "@PORT@"]
}
]
diff --git a/tests/suite/tls-fuzzer/gnutls-nocert-tls13.json b/tests/suite/tls-fuzzer/gnutls-nocert-tls13.json
index 0bf5be4bea..3b6404c045 100644
--- a/tests/suite/tls-fuzzer/gnutls-nocert-tls13.json
+++ b/tests/suite/tls-fuzzer/gnutls-nocert-tls13.json
@@ -53,9 +53,7 @@
{"name" : "test-tls13-count-tickets.py",
"arguments": ["-p", "@PORT@", "-t", "2"]},
{"name" : "test-tls13-dhe-shared-secret-padding.py",
- "comment": "We do not support x448",
"arguments": ["-p", "@PORT@",
- "-e", "TLS 1.3 with x448",
"-n", "4"]},
{"name" : "test-tls13-ecdhe-curves.py",
"arguments": ["-p", "@PORT@"]},
@@ -81,19 +79,24 @@
{"name" : "test-tls13-hrr.py",
"arguments": ["-p", "@PORT@"]},
{"name" : "test-tls13-invalid-ciphers.py",
- "arguments": ["-p", "@PORT@"]},
+ "arguments": ["-p", "@PORT@",
+ "-n", "5"]},
{"name" : "test-tls13-keyshare-omitted.py",
"arguments": ["-p", "@PORT@"]},
{"name" : "test-tls13-keyupdate.py",
"comment" : "we have limits that prohibit the running multiple messages test; app data split timeouts waiting for new session ticket",
"arguments": ["-p", "@PORT@",
+ "-n", "5",
"-e", "app data split, conversation with KeyUpdate msg",
"-e", "multiple KeyUpdate messages"]},
{"name" : "test-tls13-large-number-of-extensions.py",
"comment" : "This test assumes that 22 (EtM) is unassigned which is incorrect - see #632",
"arguments": ["-p", "@PORT@",
- "-e", "empty unassigned extensions, ids in range from 2 to 4118",
- "-e", "unassigned extensions with random payload, ids in range from 2 to 1046"]},
+ "-n", "5",
+ "--exc", "11",
+ "--exc", "12",
+ "--exc", "22",
+ "--exc", "23"]},
{"name" : "test-tls13-legacy-version.py",
"arguments": ["-p", "@PORT@"]},
{"name" : "test-tls13-nociphers.py",
@@ -113,7 +116,7 @@
"arguments": ["-p", "@PORT@"]},
{"name" : "test-tls13-serverhello-random.py",
"arguments": ["-p", "@PORT@",
- "-e", "TLS 1.3 with x448"]},
+ "-n", "5"]},
{"name" : "test-tls13-signature-algorithms.py",
"comment" : "gnutls doesn't handle well duplicated signature algorithms; this is not an issue in practice",
"arguments": ["-p", "@PORT@",
@@ -123,7 +126,8 @@
"-e", "23752 invalid schemes",
"-e", "32715 invalid schemes"]},
{"name" : "test-tls13-symetric-ciphers.py",
- "arguments": ["-p", "@PORT@"]},
+ "arguments": ["-p", "@PORT@",
+ "-n", "5"]},
{"name" : "test-tls13-unrecognised-groups.py",
"arguments": ["-p", "@PORT@"]},
{"name" : "test-tls13-version-negotiation.py",
diff --git a/tests/suite/tls-fuzzer/tlsfuzzer b/tests/suite/tls-fuzzer/tlsfuzzer
-Subproject ca536d11ac14da2deacbde95f3f0a70a5ce4211
+Subproject 477b22683238fc540f512dd0c09963fa467ddef
diff --git a/tests/suite/tls-fuzzer/tlslite-ng b/tests/suite/tls-fuzzer/tlslite-ng
-Subproject bff8773e4309cc43dd6acf0a6d4623949f911fd
+Subproject 7c6fbf93beff6bffa9a2a0e6bd214fd229fce90
diff --git a/tests/suppressions.valgrind b/tests/suppressions.valgrind
index 6f2f7dd0ce..1dc5454921 100644
--- a/tests/suppressions.valgrind
+++ b/tests/suppressions.valgrind
@@ -289,3 +289,10 @@
fun:fillin_rpath
...
}
+{
+ gnutls-false-positive
+ Memcheck:Cond
+ fun:decode_complex_string.isra.0
+ fun:_gnutls_x509_dn_to_string
+ ...
+}
diff --git a/tests/system-override-profiles.sh b/tests/system-override-profiles.sh
index 88ec631798..516ce57e71 100755
--- a/tests/system-override-profiles.sh
+++ b/tests/system-override-profiles.sh
@@ -41,7 +41,7 @@ fi
. "${srcdir}/scripts/common.sh"
-check_for_datefudge
+skip_if_no_datefudge
CERT="${srcdir}/certs/cert-ecc256.pem"
KEY="${srcdir}/certs/ecc256.pem"
diff --git a/tests/system-override-tls.sh b/tests/system-override-tls.sh
index 6114d76282..54bc190dd9 100755
--- a/tests/system-override-tls.sh
+++ b/tests/system-override-tls.sh
@@ -40,7 +40,7 @@ fi
. "${srcdir}/scripts/common.sh"
-check_for_datefudge
+skip_if_no_datefudge
CERT="${srcdir}/certs/cert-ecc256.pem"
KEY="${srcdir}/certs/ecc256.pem"
diff --git a/tests/test-chains-issuer-aia.h b/tests/test-chains-issuer-aia.h
new file mode 100644
index 0000000000..ca75fd3b7c
--- /dev/null
+++ b/tests/test-chains-issuer-aia.h
@@ -0,0 +1,107 @@
+/*
+ * Copyright (C) 2008-2014 Free Software Foundation, Inc.
+ * Copyright (C) 2017 Red Hat, Inc.
+ *
+ * Authors: Simon Josefsson, Nikos Mavrogiannopoulos, Martin Ukrop
+ *
+ * This file is part of GnuTLS.
+ *
+ * GnuTLS is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GnuTLS is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>
+ */
+
+#ifndef GNUTLS_TESTS_TEST_CHAINS_ISSUER_AIA_H
+#define GNUTLS_TESTS_TEST_CHAINS_ISSUER_AIA_H
+
+/* *INDENT-OFF* */
+
+#define MAX_CHAIN 1
+
+static const char *missing_cert_aia[] = {
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIGqDCCBZCgAwIBAgIQCvBs2jemC2QTQvCh6x1Z/TANBgkqhkiG9w0BAQsFADBN\n"
+ "MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E\n"
+ "aWdpQ2VydCBTSEEyIFNlY3VyZSBTZXJ2ZXIgQ0EwHhcNMjAwMzIzMDAwMDAwWhcN\n"
+ "MjIwNTE3MTIwMDAwWjBuMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5p\n"
+ "YTEVMBMGA1UEBxMMV2FsbnV0IENyZWVrMRwwGgYDVQQKExNMdWNhcyBHYXJyb24g\n"
+ "VG9ycmVzMRUwEwYDVQQDDAwqLmJhZHNzbC5jb20wggEiMA0GCSqGSIb3DQEBAQUA\n"
+ "A4IBDwAwggEKAoIBAQDCBOz4jO4EwrPYUNVwWMyTGOtcqGhJsCK1+ZWesSssdj5s\n"
+ "wEtgTEzqsrTAD4C2sPlyyYYC+VxBXRMrf3HES7zplC5QN6ZnHGGM9kFCxUbTFocn\n"
+ "n3TrCp0RUiYhc2yETHlV5NFr6AY9SBVSrbMo26r/bv9glUp3aznxJNExtt1NwMT8\n"
+ "U7ltQq21fP6u9RXSM0jnInHHwhR6bCjqN0rf6my1crR+WqIW3GmxV0TbChKr3sMP\n"
+ "R3RcQSLhmvkbk+atIgYpLrG6SRwMJ56j+4v3QHIArJII2YxXhFOBBcvm/mtUmEAn\n"
+ "hccQu3Nw72kYQQdFVXz5ZD89LMOpfOuTGkyG0cqFAgMBAAGjggNhMIIDXTAfBgNV\n"
+ "HSMEGDAWgBQPgGEcgjFh1S8o541GOLQs4cbZ4jAdBgNVHQ4EFgQUne7Be4ELOkdp\n"
+ "cRh9ETeTvKUbP/swIwYDVR0RBBwwGoIMKi5iYWRzc2wuY29tggpiYWRzc2wuY29t\n"
+ "MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw\n"
+ "awYDVR0fBGQwYjAvoC2gK4YpaHR0cDovL2NybDMuZGlnaWNlcnQuY29tL3NzY2Et\n"
+ "c2hhMi1nNi5jcmwwL6AtoCuGKWh0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9zc2Nh\n"
+ "LXNoYTItZzYuY3JsMEwGA1UdIARFMEMwNwYJYIZIAYb9bAEBMCowKAYIKwYBBQUH\n"
+ "AgEWHGh0dHBzOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCAYGZ4EMAQIDMHwGCCsG\n"
+ "AQUFBwEBBHAwbjAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t\n"
+ "MEYGCCsGAQUFBzAChjpodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNl\n"
+ "cnRTSEEyU2VjdXJlU2VydmVyQ0EuY3J0MAwGA1UdEwEB/wQCMAAwggF+BgorBgEE\n"
+ "AdZ5AgQCBIIBbgSCAWoBaAB2ALvZ37wfinG1k5Qjl6qSe0c4V5UKq1LoGpCWZDaO\n"
+ "HtGFAAABcQhGXioAAAQDAEcwRQIgDfWVBXEuUZC2YP4Si3AQDidHC4U9e5XTGyG7\n"
+ "SFNDlRkCIQCzikrA1nf7boAdhvaGu2Vkct3VaI+0y8p3gmonU5d9DwB2ACJFRQdZ\n"
+ "VSRWlj+hL/H3bYbgIyZjrcBLf13Gg1xu4g8CAAABcQhGXlsAAAQDAEcwRQIhAMWi\n"
+ "Vsi2vYdxRCRsu/DMmCyhY0iJPKHE2c6ejPycIbgqAiAs3kSSS0NiUFiHBw7QaQ/s\n"
+ "GO+/lNYvjExlzVUWJbgNLwB2AFGjsPX9AXmcVm24N3iPDKR6zBsny/eeiEKaDf7U\n"
+ "iwXlAAABcQhGXnoAAAQDAEcwRQIgKsntiBqt8Au8DAABFkxISELhP3U/wb5lb76p\n"
+ "vfenWL0CIQDr2kLhCWP/QUNxXqGmvr1GaG9EuokTOLEnGPhGv1cMkDANBgkqhkiG\n"
+ "9w0BAQsFAAOCAQEA0RGxlwy3Tl0lhrUAn2mIi8LcZ9nBUyfAcCXCtYyCdEbjIP64\n"
+ "xgX6pzTt0WJoxzlT+MiK6fc0hECZXqpkTNVTARYtGkJoljlTK2vAdHZ0SOpm9OT4\n"
+ "RLfjGnImY0hiFbZ/LtsvS2Zg7cVJecqnrZe/za/nbDdljnnrll7C8O5naQuKr4te\n"
+ "uice3e8a4TtviFwS/wdDnJ3RrE83b1IljILbU5SV0X1NajyYkUWS7AnOmrFUUByz\n"
+ "MwdGrM6kt0lfJy/gvGVsgIKZocHdedPeECqAtq7FAJYanOsjNN9RbBOGhbwq0/FP\n"
+ "CC01zojqS10nGowxzOiqyB4m6wytmzf0QwjpMw==\n"
+ "-----END CERTIFICATE-----\n"
+};
+
+static const char *missing_cert_aia_insert = {
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIElDCCA3ygAwIBAgIQAf2j627KdciIQ4tyS8+8kTANBgkqhkiG9w0BAQsFADBh\n"
+ "MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\n"
+ "d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD\n"
+ "QTAeFw0xMzAzMDgxMjAwMDBaFw0yMzAzMDgxMjAwMDBaME0xCzAJBgNVBAYTAlVT\n"
+ "MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxJzAlBgNVBAMTHkRpZ2lDZXJ0IFNIQTIg\n"
+ "U2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB\n"
+ "ANyuWJBNwcQwFZA1W248ghX1LFy949v/cUP6ZCWA1O4Yok3wZtAKc24RmDYXZK83\n"
+ "nf36QYSvx6+M/hpzTc8zl5CilodTgyu5pnVILR1WN3vaMTIa16yrBvSqXUu3R0bd\n"
+ "KpPDkC55gIDvEwRqFDu1m5K+wgdlTvza/P96rtxcflUxDOg5B6TXvi/TC2rSsd9f\n"
+ "/ld0Uzs1gN2ujkSYs58O09rg1/RrKatEp0tYhG2SS4HD2nOLEpdIkARFdRrdNzGX\n"
+ "kujNVA075ME/OV4uuPNcfhCOhkEAjUVmR7ChZc6gqikJTvOX6+guqw9ypzAO+sf0\n"
+ "/RR3w6RbKFfCs/mC/bdFWJsCAwEAAaOCAVowggFWMBIGA1UdEwEB/wQIMAYBAf8C\n"
+ "AQAwDgYDVR0PAQH/BAQDAgGGMDQGCCsGAQUFBwEBBCgwJjAkBggrBgEFBQcwAYYY\n"
+ "aHR0cDovL29jc3AuZGlnaWNlcnQuY29tMHsGA1UdHwR0MHIwN6A1oDOGMWh0dHA6\n"
+ "Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEdsb2JhbFJvb3RDQS5jcmwwN6A1\n"
+ "oDOGMWh0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEdsb2JhbFJvb3RD\n"
+ "QS5jcmwwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v\n"
+ "d3d3LmRpZ2ljZXJ0LmNvbS9DUFMwHQYDVR0OBBYEFA+AYRyCMWHVLyjnjUY4tCzh\n"
+ "xtniMB8GA1UdIwQYMBaAFAPeUDVW0Uy7ZvCj4hsbw5eyPdFVMA0GCSqGSIb3DQEB\n"
+ "CwUAA4IBAQAjPt9L0jFCpbZ+QlwaRMxp0Wi0XUvgBCFsS+JtzLHgl4+mUwnNqipl\n"
+ "5TlPHoOlblyYoiQm5vuh7ZPHLgLGTUq/sELfeNqzqPlt/yGFUzZgTHbO7Djc1lGA\n"
+ "8MXW5dRNJ2Srm8c+cftIl7gzbckTB+6WohsYFfZcTEDts8Ls/3HB40f/1LkAtDdC\n"
+ "2iDJ6m6K7hQGrn2iWZiIqBtvLfTyyRRfJs8sjX7tN8Cp1Tm5gr8ZDOo0rwAhaPit\n"
+ "c+LJMto4JQtV05od8GiG7S5BNO98pVAdvzr508EIDObtHopYJeS4d60tbvVS3bR0\n"
+ "j6tJLp07kzQoH3jOlOrHvdPJbRzeXDLz\n"
+ "-----END CERTIFICATE-----\n"
+};
+
+#if defined __clang__ || __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
+# pragma GCC diagnostic pop
+#endif
+
+/* *INDENT-ON* */
+
+#endif /* GNUTLS_TESTS_TEST_CHAINS_ISSUER_AIA_H */
diff --git a/tests/test-chains-issuer.h b/tests/test-chains-issuer.h
new file mode 100644
index 0000000000..730a31fed4
--- /dev/null
+++ b/tests/test-chains-issuer.h
@@ -0,0 +1,179 @@
+/*
+ * Copyright (C) 2008-2014 Free Software Foundation, Inc.
+ * Copyright (C) 2017 Red Hat, Inc.
+ *
+ * Authors: Simon Josefsson, Nikos Mavrogiannopoulos, Martin Ukrop
+ *
+ * This file is part of GnuTLS.
+ *
+ * GnuTLS is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GnuTLS is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>
+ */
+
+#ifndef GNUTLS_TESTS_TEST_CHAINS_ISSUER_H
+#define GNUTLS_TESTS_TEST_CHAINS_ISSUER_H
+
+/* *INDENT-OFF* */
+
+#define MAX_CHAIN 6
+
+static const char *missing_issuer_chain[] = {
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDATCCAbmgAwIBAgIUQdvdegP8JFszFHLfV4+lrEdafzAwPQYJKoZIhvcNAQEK\n"
+ "MDCgDTALBglghkgBZQMEAgGhGjAYBgkqhkiG9w0BAQgwCwYJYIZIAWUDBAIBogMC\n"
+ "AUAwDzENMAsGA1UEAxMEQ0EtNTAgFw0yMDA0MjAxMTI2NDFaGA85OTk5MTIzMTIz\n"
+ "NTk1OVowEzERMA8GA1UEAxMIc2VydmVyLTYwgZswEAYHKoZIzj0CAQYFK4EEACMD\n"
+ "gYYABAHZ3W5jpYq15WI7tVZxWCT3YtYMEj4xJSdO/ubHV0NnrlQ7+Q95R32qcA2w\n"
+ "4gyPif+M/Au4Towr/RA+b+qgMvD0fQFmNeWkNB/TSW2RNm7uHQU7N66tbrNWvjyS\n"
+ "BZeLB/V03ZWe+rO4cfrPiqtBv9N08k9uMNNCeMlatJNqj0BoFRxhBaN3MHUwDAYD\n"
+ "VR0TAQH/BAIwADAUBgNVHREEDTALgglsb2NhbGhvc3QwDwYDVR0PAQH/BAUDAweA\n"
+ "ADAdBgNVHQ4EFgQUMnSJQI2iHiVoxE1XSByQ9QFrG0owHwYDVR0jBBgwFoAUu9ao\n"
+ "G/58Y/+czHPyWo3C+vs9pFkwPQYJKoZIhvcNAQEKMDCgDTALBglghkgBZQMEAgGh\n"
+ "GjAYBgkqhkiG9w0BAQgwCwYJYIZIAWUDBAIBogMCAUADggEBAAfhLT1jQsc9yk4k\n"
+ "myAAMIXYD1THMkasGZiIv2TLJSLeKc4Rvzvrb/iywwrMdaBHs5sJoyk7amMwemc7\n"
+ "WA2+A2uTeLeDG3ev4r5stNRLyL0HSOr7da+BshUiHJgeihp1Qglm0AUqV5X69i5t\n"
+ "5woB5KENnYfoAWaYmXa1EPRh2xb2XDI0uCHg1bPljg61/T2cJZ4VfkOvsKgFAI4p\n"
+ "lAKQCZSKbEY1oWDdDhVcSipYu2E88RXczvcnEQV3C3p6CGcf8xclZdZIwMAyXYAK\n"
+ "oNccbSIfDlN4iD+2bztCRWHD6hWL1NJsFqmv3Ts8eYU8z8J8NdhtCXr76lFkFmDx\n"
+ "+lfZEv4=\n"
+ "-----END CERTIFICATE-----\n",
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDojCCAlqgAwIBAgIUHRb3xJ2ZGqqgdC/pBq/sDtAwvtowPQYJKoZIhvcNAQEK\n"
+ "MDCgDTALBglghkgBZQMEAgGhGjAYBgkqhkiG9w0BAQgwCwYJYIZIAWUDBAIBogMC\n"
+ "AUAwDzENMAsGA1UEAxMEQ0EtNDAgFw0yMDA0MjAxMTI2NDFaGA85OTk5MTIzMTIz\n"
+ "NTk1OVowDzENMAsGA1UEAxMEQ0EtNTCCAVIwPQYJKoZIhvcNAQEKMDCgDTALBglg\n"
+ "hkgBZQMEAgGhGjAYBgkqhkiG9w0BAQgwCwYJYIZIAWUDBAIBogMCAUADggEPADCC\n"
+ "AQoCggEBAMZqQ7I1HAxkxuwGQBch/jZTWLXRUtWBjlpREnp0wFt+quJOZkKNYrlL\n"
+ "9sngiRknsbEIfJMB2XfoK6m9SwRN/qoxewOrnK9YONG9dj0p30qiseshXIs6ZoMl\n"
+ "v9fZA77UraCtTbX6Xwk/+Or6SuSK2lyz0R5O14xBa5ubpm2Q8XTE9A1SAGx61ofC\n"
+ "Dzfvefp+m3QCy+3K+Yn05VKPxswznuVwM/oJDGzJJhD6/uNPpm5CZoPtcW14Eitu\n"
+ "ip51Ej1VE4lJRBHAtUSOrd3Hks6YasK7Uvu0HjpqW7PqaIhJIR7ofzbXX2vBwVj2\n"
+ "Qlwozk4cVCP7XO3VrVu/GCdSL+G3RAUCAwEAAaNkMGIwDwYDVR0TAQH/BAUwAwEB\n"
+ "/zAPBgNVHQ8BAf8EBQMDB4QAMB0GA1UdDgQWBBS71qgb/nxj/5zMc/JajcL6+z2k\n"
+ "WTAfBgNVHSMEGDAWgBQPB7C8f3nco30et23Lhw7QMTaLYzA9BgkqhkiG9w0BAQow\n"
+ "MKANMAsGCWCGSAFlAwQCAaEaMBgGCSqGSIb3DQEBCDALBglghkgBZQMEAgGiAwIB\n"
+ "QAOCAQEAl90uQvD0lne4jseHNfu8XCIZmCSxaNhF3SD73TwlGERbRjtIKz34Y6hC\n"
+ "z5bZ4tCGnkKAtdHLIGwOnaLSXDvzmUSkQmJmG0QMaDGsVpVXEZD/7+yyIxOcV1iK\n"
+ "XveeQysCKsDEfdrfn1mACQj8eC4lL9KJcHptHdTSLfa58MV2Qe5smCIByXxendO5\n"
+ "UQHZy5UrzWAdtO7y75vXeXynsXAqcE4TTNjdFiCnn6Q5/pVyW14kepfjaOzQFP7H\n"
+ "QlnHtgQDRAlQuB1aGseb6jn2Joy33itpBthvtgBosZIqsMyPoX5YzjqZUSjfPZOP\n"
+ "/aOd/5HR4ZPDWfHdIWbXogYX0ndhNg==\n"
+ "-----END CERTIFICATE-----\n",
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDojCCAlqgAwIBAgIUGybZZ1e/iFUKafPdh8xUbh7YVnwwPQYJKoZIhvcNAQEK\n"
+ "MDCgDTALBglghkgBZQMEAgGhGjAYBgkqhkiG9w0BAQgwCwYJYIZIAWUDBAIBogMC\n"
+ "AUAwDzENMAsGA1UEAxMEQ0EtMzAgFw0yMDA0MjAxMTI2NDFaGA85OTk5MTIzMTIz\n"
+ "NTk1OVowDzENMAsGA1UEAxMEQ0EtNDCCAVIwPQYJKoZIhvcNAQEKMDCgDTALBglg\n"
+ "hkgBZQMEAgGhGjAYBgkqhkiG9w0BAQgwCwYJYIZIAWUDBAIBogMCAUADggEPADCC\n"
+ "AQoCggEBAM0vsCM3XxZVHmxOdY2ndCoUHnrlLameRZcEupa77oAXBw9J2ysTIY1v\n"
+ "uP7GbBru4JnBhdem1xL37z0/a5O9+5Rw4SNHNw8Z2jPtWSJd+XwfBshQnX66IvSv\n"
+ "M0etutgO/lZwFq7E4yGI7LS1sGWvVhmjMLT1Yb3j/b8SXeSHyp9J0NdJ1spjjekg\n"
+ "bdiMUOo6Tt1gnZsgLdH6Cbmw4sm/+EGjsPOYdBI0kHW5qqLnIzW/io0NMnRsDBEk\n"
+ "HgXNEMhXZL/qEQfrcSCxjlqB126aALHIvN5TKBrssfE6zn9m96A9qCRJuKGP9NPm\n"
+ "4AFkV1yylCUTUkIRkbqPlI4i1vf8jfcCAwEAAaNkMGIwDwYDVR0TAQH/BAUwAwEB\n"
+ "/zAPBgNVHQ8BAf8EBQMDB4QAMB0GA1UdDgQWBBQPB7C8f3nco30et23Lhw7QMTaL\n"
+ "YzAfBgNVHSMEGDAWgBRjNOT1/2J+aAVCl/aO+EQke/8oETA9BgkqhkiG9w0BAQow\n"
+ "MKANMAsGCWCGSAFlAwQCAaEaMBgGCSqGSIb3DQEBCDALBglghkgBZQMEAgGiAwIB\n"
+ "QAOCAQEAsKDivFD4DflylFdG4zijGrtq/zfSKTiNWxZsLKbMwLoG+Km3dy0HWfUq\n"
+ "TUETPEfQlpXc2Tg1tGxFepAPavVeMIy/MV3SsmjRA3f+PNWjaZUxa9+Jd1y6ONwK\n"
+ "wQ7s/JNNk/SZt4bKjX9GrTscZmOVtrwpZ6uQBHITScsr4V431G6wojZ09iEG0yFQ\n"
+ "ZD8ECn2ZOPVQXIswa75NelcGKup838HoDIjQ3vIvrx8rqf5HRg4t9mXzjECzXHVy\n"
+ "8wDamoE3fLAZZX2RxOWnHfjI8qB83qYyR5kN002EFJ/e060SPia1rTHyLqLngRtq\n"
+ "xgR9bRjZf++h/dg6L87b26J5KdDafw==\n"
+ "-----END CERTIFICATE-----\n",
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDojCCAlqgAwIBAgIUVd3TT33d1fy/8INiIKhudYmRE5swPQYJKoZIhvcNAQEK\n"
+ "MDCgDTALBglghkgBZQMEAgGhGjAYBgkqhkiG9w0BAQgwCwYJYIZIAWUDBAIBogMC\n"
+ "AUAwDzENMAsGA1UEAxMEQ0EtMTAgFw0yMDA0MjAxMTI2NDFaGA85OTk5MTIzMTIz\n"
+ "NTk1OVowDzENMAsGA1UEAxMEQ0EtMjCCAVIwPQYJKoZIhvcNAQEKMDCgDTALBglg\n"
+ "hkgBZQMEAgGhGjAYBgkqhkiG9w0BAQgwCwYJYIZIAWUDBAIBogMCAUADggEPADCC\n"
+ "AQoCggEBANN3n02MYdl70xAq39SUtcMcNR9Zpe6m4SkHcL/1T4YEpWxqqez1tDW3\n"
+ "1My9Std/sE1e63Q+XJdZhKz1v2KM48iMMeEtJRtriSMxp3KyHQwOxV5L/C5yudYG\n"
+ "3DW0XwrIFL5uXn0z27vYTJ+63RFD4K6Np3ROa2EnHuTcb1pAlrGK1erUzuD8gg7m\n"
+ "mIwxfS7KSeUSmZiXVACNVGmAekClRIf1kMjMqNL6eQ2laNcg7W7RCaIghk58E4Ej\n"
+ "/dyNWTgUUoHla8X4Za/JNXDVHdj5VKIfK8xQkc6aN8Ip5rm9J94yLay27QZdHPQn\n"
+ "AlHEW6IAyRgj/lo+yk1RUigjko62t+0CAwEAAaNkMGIwDwYDVR0TAQH/BAUwAwEB\n"
+ "/zAPBgNVHQ8BAf8EBQMDB4QAMB0GA1UdDgQWBBTVuTCwy3TqMVX2Bvdj/wcoYSTG\n"
+ "/zAfBgNVHSMEGDAWgBS/OulsZ80Bb9MpqM/M1lCC8bO2AzA9BgkqhkiG9w0BAQow\n"
+ "MKANMAsGCWCGSAFlAwQCAaEaMBgGCSqGSIb3DQEBCDALBglghkgBZQMEAgGiAwIB\n"
+ "QAOCAQEAfi/KKbJUsdvS/XDqR6T8VHNhX8lMOGdzHltjBdXdxsWlr2mRolILhyZf\n"
+ "1/wf58b1OE4AlxbwH+S/vWrQ2KVwBfWxtTJXqAMSvHIF3Tq8bIghvhK8CmZG/I49\n"
+ "FTYE+42MFBr6f5SNp9Q+ZUcjSK5DO7yNiyKDFfNffFGxHmnmGj2LhgyrvYA/aNyB\n"
+ "2ichlfihcKkExGBN44ODoK+8/W8oiMt541AvPyJxTJjxWjeJ42EBXO+J5k8wRuCu\n"
+ "nXCW5OjnEIExXGKZLlieH4t8kUyHlrTlHO7spiqA/QM7GUtBQfJTLdPFmvHU3Jtw\n"
+ "qGN2PrhXyLoaUfIpNbWO9Jmj2GYaWg==\n"
+ "-----END CERTIFICATE-----\n",
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIICxjCCAiegAwIBAgIUKnsCQlR0jpxEnpzqxbi+Y2rqwpMwCgYIKoZIzj0EAwQw\n"
+ "DzENMAsGA1UEAxMEQ0EtMDAgFw0yMDA0MjAxMTI2NDFaGA85OTk5MTIzMTIzNTk1\n"
+ "OVowDzENMAsGA1UEAxMEQ0EtMTCCAVIwPQYJKoZIhvcNAQEKMDCgDTALBglghkgB\n"
+ "ZQMEAgGhGjAYBgkqhkiG9w0BAQgwCwYJYIZIAWUDBAIBogMCAUADggEPADCCAQoC\n"
+ "ggEBAOqrWIctrZ7mabfoFuMsT/B2kK4vWAGX32SGQdoDKdy+O0jGJN8/vGnbaOWN\n"
+ "k6sR/eNx+13LahbiLl3dzyecdJ6BeDBokjiRXtDzZN3IdrR6KZ5NjqcMiVBgztoq\n"
+ "gkOglhcixU2cMlSFYCozfvf3i4YElJzSP4XdJbLaPcsHmywny52s06vf64SbNhQy\n"
+ "GucRYO0VqRUVCNpvPyyGlkODlDQuzNsd5nIQZ5WR1bQLTYsVoHVfpLx+Su7BAV05\n"
+ "D5XiGQVGw7kkp4VKHrMhQ0VY+34xmahQvnoqfPEBG9jjfy6psI0oa52JS3FBWF8u\n"
+ "psUiFD2iqQy+efQX44gAdrrnkt0CAwEAAaNkMGIwDwYDVR0TAQH/BAUwAwEB/zAP\n"
+ "BgNVHQ8BAf8EBQMDB4QAMB0GA1UdDgQWBBS/OulsZ80Bb9MpqM/M1lCC8bO2AzAf\n"
+ "BgNVHSMEGDAWgBRBWngghShY2X+P7m45LPH1V4p5czAKBggqhkjOPQQDBAOBjAAw\n"
+ "gYgCQgHnvF1Dq32xBBEME4UlVsVeOflvGw5Sr/hVhbUZ1KfAQIV2ZuBuvJNMBrj8\n"
+ "Pzi/nhRuV8vH5xabyQb9RYVcJ8oilQJCAdduIVVvL6DmUBOJfz1znsxPA5JCBBY2\n"
+ "pAOhFZBrNXE2zZrgttgR6TG4Obst1fQzL3RsmqAYAuWSpKPNz6Hdq+kl\n"
+ "-----END CERTIFICATE-----\n",
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIB7TCCAU6gAwIBAgIUWmldb3tGP48wFh5P/cmVytYv5JcwCgYIKoZIzj0EAwQw\n"
+ "DzENMAsGA1UEAxMEQ0EtMDAgFw0yMDA0MjAxMTI2NDFaGA85OTk5MTIzMTIzNTk1\n"
+ "OVowDzENMAsGA1UEAxMEQ0EtMDCBmzAQBgcqhkjOPQIBBgUrgQQAIwOBhgAEAarU\n"
+ "aZXDJBYLdRdjV43Nq+slYxPPn877UBJ63K6GQF1poMaSFFJ7qSXi4lJngh7ueCVq\n"
+ "mJvNH54KbqkPryfCKjUbAZnIQa/8zpPbrZ4iAP6d+Mb6qIkX8j3BP1f6Ap0WTmQk\n"
+ "s5QHCkJFGNqqljut/RQgnbTUbQcGHCNmUx4g0BZv03+Qo0MwQTAPBgNVHRMBAf8E\n"
+ "BTADAQH/MA8GA1UdDwEB/wQFAwMHBgAwHQYDVR0OBBYEFEFaeCCFKFjZf4/ubjks\n"
+ "8fVXinlzMAoGCCqGSM49BAMEA4GMADCBiAJCAcmtP2IVnOTF2wHhfUn13qsUpqyc\n"
+ "3kCI1ueg75NgR7xgpL9JQ1CnPaUbCp+5ROKf5IHn8f1jjZIu45WpiWhnZDkkAkIA\n"
+ "pCTZn7t7memhMJUqrHGywx2gR9fgID/REZUZdVe9KcTzWvwSrbffDMCcf10SpM6C\n"
+ "/YXiDLiWNiK+WV8Z557eWKI=\n"
+ "-----END CERTIFICATE-----\n"
+};
+
+static const char *missing_cert_insert = {
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDojCCAlqgAwIBAgIUHRkWa8ZOaRrqjxigoEhxJHMLM2UwPQYJKoZIhvcNAQEK\n"
+ "MDCgDTALBglghkgBZQMEAgGhGjAYBgkqhkiG9w0BAQgwCwYJYIZIAWUDBAIBogMC\n"
+ "AUAwDzENMAsGA1UEAxMEQ0EtMjAgFw0yMDA0MjAxMTI2NDFaGA85OTk5MTIzMTIz\n"
+ "NTk1OVowDzENMAsGA1UEAxMEQ0EtMzCCAVIwPQYJKoZIhvcNAQEKMDCgDTALBglg\n"
+ "hkgBZQMEAgGhGjAYBgkqhkiG9w0BAQgwCwYJYIZIAWUDBAIBogMCAUADggEPADCC\n"
+ "AQoCggEBAMNSjDqpdcx+02E2vKRB78Z6rYRTuYHeXZGIsVz3LXHxplNYtSlM0MN4\n"
+ "cj0mHj2Rctxk7o6vsQm37ayvO4mquvgPiwtivq+qPv98ZTIuVYkPE4NEPru7Uec+\n"
+ "HQO3faRym4VAzpH+CllMraeaSjQLfAKqXw60UHF+b+ovJXKWbb+keahXT6lWxuxY\n"
+ "pm5vbcDg0Ez++9TJcA0MiPKtk4SMgnmr+2vXAE0tE5PRX9NS7AWPyEg82q+ph2kj\n"
+ "zu5VWoqZp/EwMI6VfLJeemY726LyyOpIqBGWwsUXPn5NdxLla58zHDFggd7/Z/l9\n"
+ "aBfozSdrqW3sWeYzgGxeZmnc5Vm/r6ECAwEAAaNkMGIwDwYDVR0TAQH/BAUwAwEB\n"
+ "/zAPBgNVHQ8BAf8EBQMDB4QAMB0GA1UdDgQWBBRjNOT1/2J+aAVCl/aO+EQke/8o\n"
+ "ETAfBgNVHSMEGDAWgBTVuTCwy3TqMVX2Bvdj/wcoYSTG/zA9BgkqhkiG9w0BAQow\n"
+ "MKANMAsGCWCGSAFlAwQCAaEaMBgGCSqGSIb3DQEBCDALBglghkgBZQMEAgGiAwIB\n"
+ "QAOCAQEAbIw3qtl/QAMJ7OmBPqSMtZv9TaLxfUh7FrqfsKjXBQGVX6/7heO+wCwJ\n"
+ "/1vi2yFUc7uoB3ivEKzUQvtP7Nu6WMM64pAfYadGIk4TYV+tgXF4FJ8FHjTek+Lv\n"
+ "jTu7jvLbRSHkBQFimWorPfgf15nlXSCBtejEwvDLXlptLbKEa3q7VFXDzCyeiKGb\n"
+ "IHRozrAP5qiyIjYFJevXrZ/7bWDwMcJrB0uSQN9TD2mJjNXTCHu3GYnEmnu7KRpb\n"
+ "M3OdswIyjIFYvwlYGe2+GbigSaMZY9KCHR7vkJ1JGdxfh+CADcbL4fwj3kOpyEoe\n"
+ "TTqtWQ93AfQnd2Vm3/SAr/+jSuMbSA==\n"
+ "-----END CERTIFICATE-----\n"
+};
+
+#if defined __clang__ || __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
+# pragma GCC diagnostic pop
+#endif
+
+/* *INDENT-ON* */
+
+#endif /* GNUTLS_TESTS_TEST_CHAINS_ISSUER_H */
diff --git a/tests/test-chains.h b/tests/test-chains.h
index b0e44c8e17..cf8198e8c5 100644
--- a/tests/test-chains.h
+++ b/tests/test-chains.h
@@ -3995,6 +3995,117 @@ static const char *rsa_512[] = {
NULL
};
+static const char *ed448[] = {
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIBhDCCAQSgAwIBAgIUIWKQV5hisum31Z2Fw+PeZ80wqnkwBQYDK2VxMBkxFzAV\n"
+ "BgNVBAMTDkdudVRMUyB0ZXN0IENBMCAXDTIwMDMxNjA5MTY1M1oYDzk5OTkxMjMx\n"
+ "MjM1OTU5WjAZMRcwFQYDVQQDEw5HbnVUTFMgdGVzdCBDQTBDMAUGAytlcQM6AFsM\n"
+ "fQUL5TonNaVrBB7H4UtwnVlolZatMXceHZiWnzMKXOZXlIabi0nTGkvSFu9ed6JJ\n"
+ "L7EWarjRAKNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMDBwQAMB0G\n"
+ "A1UdDgQWBBRMwtFQ9T9Ndw63UP2QGAuIFoYb6TAFBgMrZXEDcwB8hbYLw7KMlb3a\n"
+ "Q2YAXiugWt2WcAMtvKgqzjXzUt2jilaDA72d3MCAWQQsMmQfRNSthDIao5CksoDk\n"
+ "Xc8qFzckmdBiF7W+UNT3OMisE9yIxF4iA1Sxsji3C0WDUq2jen5Uv9E99H+r47L8\n"
+ "U955wKxWJAA=\n"
+ "-----END CERTIFICATE-----\n",
+ NULL
+};
+
+/* This contains an expired intermediate CA, which should be superseded. */
+static const char *superseding[] = {
+ "-----BEGIN CERTIFICATE-----"
+ "MIIDrzCCAmegAwIBAgIUcozIBhMJvM/rd1PVI7LOq7Kscs8wDQYJKoZIhvcNAQEL"
+ "BQAwJjEkMCIGA1UEAxMbR251VExTIHRlc3QgaW50ZXJtZWRpYXRlIENBMCAXDTIw"
+ "MDUzMTEyMTczN1oYDzk5OTkxMjMxMjM1OTU5WjA3MRgwFgYDVQQDEw90ZXN0Lmdu"
+ "dXRscy5vcmcxGzAZBgNVBAoTEkdudVRMUyB0ZXN0IHNlcnZlcjCCASAwCwYJKoZI"
+ "hvcNAQEKA4IBDwAwggEKAoIBAQCd2PBnWn+b0FsIMbG+f/K+og2iK/BoLCsJD3j9"
+ "yRNSHD6wTifYwNTbe1LF/8BzxcwVRCD0zpbpFQawbjxbmBSzrXqQlUFFG11DvNBa"
+ "w58rgHGo3TYCrtFIBfLbziyB1w/vWeX0xHvv8MMJ1iRSdY+7Y36a2cV+s85PdO4B"
+ "TpZlLfy8LPP6p6+dgVoC+9tTu2H1wARYOVog+jt9A3Hx0L1xxVWTedFoiK2sVouz"
+ "fLRjfp5cOwuRHSD2qbpGOAeNVVaOE88Bv3pIGPguMw0qAdEDo20hRYH23LIyvBwB"
+ "oCnyFNnAViMtLa2QlXSliV9a9BKOXYjWzAeso2SF4pdHcvd5AgMBAAGjgZMwgZAw"
+ "DAYDVR0TAQH/BAIwADAaBgNVHREEEzARgg90ZXN0LmdudXRscy5vcmcwEwYDVR0l"
+ "BAwwCgYIKwYBBQUHAwEwDwYDVR0PAQH/BAUDAweAADAdBgNVHQ4EFgQUan6mlccq"
+ "Uy1Z64wvRv3xxg4h2ykwHwYDVR0jBBgwFoAUSCM0UwqJMThKWurKttKm3s4dKxgw"
+ "DQYJKoZIhvcNAQELBQADggExAKAOMyMLpk0u2UTwwFWtr1hfx7evo2J7dgco410I"
+ "DN/QWoe2Xlcxcp1h5R9rX1I3KU2WGFtdXqiMsllCLnrDEKZmlks0uz76bCpKmM99"
+ "/1MDlY7mGCr/2PPx53USK5J5JTiqgp6r7qAcDAnpYvrPH45kk7iqwh02DhAxRnGR"
+ "CW7KWK8h7uu0Az9iBT2YfV372g4fRDK3fqYzJofQwbhSiUuJ7wyZCRhGOoxMMmDb"
+ "KBbc1wAYXW+tlv2cSbfzRvSxMR+CzkyH2tGDxeN//aZUfGmQ8IzWUQ7UtK5z+Q0E"
+ "fL6fZtm2SdGabGpV1UYoGpwOtOngK+m0i9SqrMD7g5+SMhc1VuvVuTtxjr5Cha8l"
+ "X0HEZtxgFrkdfMD4yLAqiguaCBngtbRmELF5VpebmJbiLVU="
+ "-----END CERTIFICATE-----",
+ "-----BEGIN CERTIFICATE-----"
+ "MIIDkTCCAkmgAwIBAgIUY9cJ4NLNFEaojJHdP1I4Q7OHNJwwDQYJKoZIhvcNAQEL"
+ "BQAwGTEXMBUGA1UEAxMOR251VExTIHRlc3QgQ0EwHhcNMTgxMjMxMjMwMDAwWhcN"
+ "MjAwNTMwMjIwMDAwWjAmMSQwIgYDVQQDExtHbnVUTFMgdGVzdCBpbnRlcm1lZGlh"
+ "dGUgQ0EwggFSMA0GCSqGSIb3DQEBAQUAA4IBPwAwggE6AoIBMQC0ayeYJa/B/x7K"
+ "sH702LztQ4ZnVF3atB7CkF+DPAIR/BNyhbKIpGVBC3ZfI76Kn/55S3M7LsdLPL8W"
+ "yZdVNRfzoXJLMMLgJ5QS81YA5s6CSxFdpB6b+vq5GypNGLW6peYMx6iooW2qiITc"
+ "lg6ybBw1qufHlD351cfCog1Ls2569whfxQnNFZMa95jfKkxmiSTtH9AWY4FlpVg7"
+ "oc0lYpuZgVQIFxjsfC8IojsoVzKdF0cKhvtisUGZ5vveqOogfvMb7rrqmiFkKZLy"
+ "rXPlGQWdN1PiEZ8YXyK64osNAIyeL6eHPUC+SqKlkggMLmHAWHyameHWrIM5Jc8+"
+ "G+3ro22dy8U43sHHbps0FL4wPoKQHrlKmnbk7zMMRqIxcvbDYQv4qmeJ9KXldjeh"
+ "KZ+Aeap1AgMBAAGjZDBiMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcE"
+ "ADAdBgNVHQ4EFgQUSCM0UwqJMThKWurKttKm3s4dKxgwHwYDVR0jBBgwFoAUHncj"
+ "bWcxH5EHm5Yv7PzIRv6M4QMwDQYJKoZIhvcNAQELBQADggExAHP1UAQ/nvuQtRZF"
+ "Q4b96yxVwCjMjn7knLyLNtyYGE3466xvE/ofvx5lgaR06ez/G17XP+Ok5SLJNUVc"
+ "mplTERCv5CgnX7R5VdGJkkD1repaYxaTtwyJz0AfYEMRUj3jfaeLaiUKJvEW5RRs"
+ "I3solY18sy/m/xGrH2X0GTNfKM9BURENABsppt07jxH719nF9m9SynV/Z2hE5hlv"
+ "5e5vyPt4wyRPIJLUI3TKAlvb1s40zz3ua7ZTgQL/cOxfY4f9pRKW9CMB3uF69OP9"
+ "COAxrmHVZsImmDZ6qO1qQrbY1KN/cX5kG4pKg7Ium723aOlwcWzEDXKumD960fN1"
+ "5g+HrjNs6kW+r9Q5QS8qV5s8maZNcxTrMvQ1fF2AKBNI3Z3U7vmtrSeqxIXp3rGH"
+ "iJwOKIk="
+ "-----END CERTIFICATE-----",
+ NULL
+};
+
+static const char *superseding_ca[] = {
+ "-----BEGIN CERTIFICATE-----"
+ "MIIDkzCCAkugAwIBAgIUIs7jB4Q4sFcdCmzWVHbJLESC3T4wDQYJKoZIhvcNAQEL"
+ "BQAwGTEXMBUGA1UEAxMOR251VExTIHRlc3QgQ0EwIBcNMjAwNTMxMTIxMzEwWhgP"
+ "OTk5OTEyMzEyMzU5NTlaMCYxJDAiBgNVBAMTG0dudVRMUyB0ZXN0IGludGVybWVk"
+ "aWF0ZSBDQTCCAVIwDQYJKoZIhvcNAQEBBQADggE/ADCCAToCggExALRrJ5glr8H/"
+ "HsqwfvTYvO1DhmdUXdq0HsKQX4M8AhH8E3KFsoikZUELdl8jvoqf/nlLczsux0s8"
+ "vxbJl1U1F/OhckswwuAnlBLzVgDmzoJLEV2kHpv6+rkbKk0Ytbql5gzHqKihbaqI"
+ "hNyWDrJsHDWq58eUPfnVx8KiDUuzbnr3CF/FCc0Vkxr3mN8qTGaJJO0f0BZjgWWl"
+ "WDuhzSVim5mBVAgXGOx8LwiiOyhXMp0XRwqG+2KxQZnm+96o6iB+8xvuuuqaIWQp"
+ "kvKtc+UZBZ03U+IRnxhfIrriiw0AjJ4vp4c9QL5KoqWSCAwuYcBYfJqZ4dasgzkl"
+ "zz4b7eujbZ3LxTjewcdumzQUvjA+gpAeuUqaduTvMwxGojFy9sNhC/iqZ4n0peV2"
+ "N6Epn4B5qnUCAwEAAaNkMGIwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMD"
+ "BwQAMB0GA1UdDgQWBBRIIzRTCokxOEpa6sq20qbezh0rGDAfBgNVHSMEGDAWgBQe"
+ "dyNtZzEfkQebli/s/MhG/ozhAzANBgkqhkiG9w0BAQsFAAOCATEAcF9R9VGQxTwW"
+ "aOjeIeQ9ZJxybaj0BaXC8xR4b9uZloS9d/RBFTjgRbQ82yqaj7f80mgUtabKRfTA"
+ "ltV2MgTbJdOjwGzEDtKGhClBbovnEGrYTbPBT9rgfYPt0q7SMBr6AzGAPt+ltwI7"
+ "9yntV81qvTxvW5MEEo0j2MuA3NT3oqe+w1rUKNQCWhnN2TUhJGkTlaaMozcgNFaE"
+ "Dplop4dtvCGtupxOjC3Nf6FWq1k7iZQxX70AFBYVMpuF7qGh6qDp+T1hmTCSVzxP"
+ "SfDQIBjhKgy4clhkuR5SRxhN74RX+/5eiQyVLxzr+eIhqzJhPqUCmVnCLcqYdNRi"
+ "hpHic4uJm0wGOKYTI7EG8rb4ZP4Jz6k4iN9CnL/+kiiW5otSl3YyCAuao5VKdDq9"
+ "izchzb9eow=="
+ "-----END CERTIFICATE-----",
+ "-----BEGIN CERTIFICATE-----"
+ "MIIDZTCCAh2gAwIBAgIULcrECQOBgPaePBfBHXcyZiU0IiYwDQYJKoZIhvcNAQEL"
+ "BQAwGTEXMBUGA1UEAxMOR251VExTIHRlc3QgQ0EwIBcNMjAwNTMxMTIxMTQzWhgP"
+ "OTk5OTEyMzEyMzU5NTlaMBkxFzAVBgNVBAMTDkdudVRMUyB0ZXN0IENBMIIBUjAN"
+ "BgkqhkiG9w0BAQEFAAOCAT8AMIIBOgKCATEAnORCsX1unl//fy2d1054XduIg/3C"
+ "qVBaT3Hca65SEoDwh0KiPtQoOgZLdKY2cobGs/ojYtOjcs0KnlPYdmtjEh6WEhuJ"
+ "U95v4TQdC4OLMiE56eIGq252hZAbHoTL84Q14DxQWGuzQK830iml7fbw2WcIcRQ8"
+ "vFGs8SzfXw63+MI6Fq6iMAQIqP08WzGmRRzL5wvCiPhCVkrPmwbXoABub6AAsYwW"
+ "PJB91M9/lx5gFH5k9/iPfi3s2Kg3F8MOcppqFYjxDSnsfiz6eMh1+bYVIAo367vG"
+ "VYHigXMEZC2FezlwIHaZzpEoFlY3a7LFJ00yrjQ910r8UE+CEMTYzE40D0olCMo7"
+ "FA9RCjeO3bUIoYaIdVTUGWEGHWSeoxGei9Gkm6u+ASj8f+i0jxdD2qXsewIDAQAB"
+ "o0MwQTAPBgNVHRMBAf8EBTADAQH/MA8GA1UdDwEB/wQFAwMHBAAwHQYDVR0OBBYE"
+ "FB53I21nMR+RB5uWL+z8yEb+jOEDMA0GCSqGSIb3DQEBCwUAA4IBMQAeMSzMyuTy"
+ "FjXTjxAUv010bsr6e6fI9txq/S1tXmWWJV/8aeARthuOFZO5Jjy3C5aMbac2HDV4"
+ "Otu0+JLaoEMSXvorAhValVuq06i5cmaPzvJBcxMWzlEAXfavSwHv5Q+kqNU3z81S"
+ "WnjEpMHcl9OyER7o9IhF55Xom2BXY5XL83QOzQ4C3bpKrNevZC7i7zS8NoYRGP+8"
+ "w21JseXkWQW4o2hkFqbCcRE1dlMW02iJE28RZ5aBFDIm2Y6zuLaXZIkaO7E41CAw"
+ "IUyhowm/S1HcmQnhruAGKJvQtB6jvnhZb7pgnuSkhIvAQgw93CLE985KEua1ifY2"
+ "p1d/6ho2TWotHHqDnDkB8pC0Wzai8R+63z18Kt0gROX2QItCyFksjNJqYPbgwZgt"
+ "eh1COrLsOJo+"
+ "-----END CERTIFICATE-----",
+ NULL
+};
+
#if defined __clang__ || __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
# pragma GCC diagnostic push
# pragma GCC diagnostic ignored "-Wunused-variable"
@@ -4163,6 +4274,9 @@ static struct
#endif
{ "rsa-512 - not ok (due to profile)", rsa_512, &rsa_512[0], GNUTLS_PROFILE_TO_VFLAGS(GNUTLS_PROFILE_MEDIUM),
GNUTLS_CERT_INSECURE_ALGORITHM | GNUTLS_CERT_INVALID, NULL, 1576759855, 1},
+ { "ed448 - ok", ed448, &ed448[0], GNUTLS_PROFILE_TO_VFLAGS(GNUTLS_PROFILE_ULTRA),
+ 0, NULL, 1584352960, 1},
+ { "superseding - ok", superseding, superseding_ca, 0, 0, 0, 1590928011 },
{ NULL, NULL, NULL, 0, 0}
};
diff --git a/tests/tls-session-ext-register.c b/tests/tls-session-ext-register.c
index 7e907f5e96..6e44b9e60e 100644
--- a/tests/tls-session-ext-register.c
+++ b/tests/tls-session-ext-register.c
@@ -152,6 +152,7 @@ static void client(int sd, const char *name, const char *prio, unsigned flags, u
int ret;
gnutls_session_t session;
gnutls_certificate_credentials_t clientx509cred;
+ const char *ext_name;
void *p;
side = "client";
@@ -179,6 +180,14 @@ static void client(int sd, const char *name, const char *prio, unsigned flags, u
if (ret < 0)
myfail("client: register extension\n");
+ ext_name = gnutls_ext_get_name2(session, TLSEXT_TYPE_IGN, GNUTLS_EXT_ANY);
+ if (ext_name == NULL || strcmp(ext_name, "ext_ign"))
+ myfail("client: retrieve name of extension %u\n", TLSEXT_TYPE_IGN);
+
+ ext_name = gnutls_ext_get_name2(session, TLSEXT_TYPE_IGN, GNUTLS_EXT_APPLICATION);
+ if (ext_name)
+ myfail("client: retrieve name of extension %u (expected none)\n", TLSEXT_TYPE_IGN);
+
ret = gnutls_session_ext_register(session, "ext_client", TLSEXT_TYPE_SAMPLE, GNUTLS_EXT_TLS, ext_recv_client_params, ext_send_client_params, NULL, NULL, NULL, flags);
if (ret < 0)
myfail("client: register extension\n");
diff --git a/tests/tls13/anti_replay.c b/tests/tls13/anti_replay.c
index e0aea00385..506c11596a 100644
--- a/tests/tls13/anti_replay.c
+++ b/tests/tls13/anti_replay.c
@@ -24,11 +24,14 @@
#include <assert.h>
#include <stdint.h>
-#include "utils.h"
#include "virt-time.h"
#include "../../lib/tls13/anti_replay.h"
#include "../../lib/system.h"
+/* utils.h must be loaded after gnutls_int.h, as it redefines some
+ * macros from gnulib */
+#include "utils.h"
+
#define MAX_CLIENT_HELLO_RECORDED 10
struct storage_st {
diff --git a/tests/tls13/no-auto-send-ticket.c b/tests/tls13/no-auto-send-ticket.c
new file mode 100644
index 0000000000..2602f178a1
--- /dev/null
+++ b/tests/tls13/no-auto-send-ticket.c
@@ -0,0 +1,314 @@
+/*
+ * Copyright (C) 2017-2020 Red Hat, Inc.
+ *
+ * Author: Nikos Mavrogiannopoulos, Daiki Ueno
+ *
+ * This file is part of GnuTLS.
+ *
+ * GnuTLS is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GnuTLS is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#if defined(_WIN32)
+
+int main()
+{
+ exit(77);
+}
+
+#else
+
+#include <string.h>
+#include <sys/types.h>
+#include <netinet/in.h>
+#include <sys/socket.h>
+#include <sys/wait.h>
+#include <arpa/inet.h>
+#include <unistd.h>
+#include <gnutls/gnutls.h>
+#include <signal.h>
+#include <assert.h>
+
+#include "../lib/handshake-defs.h"
+#include "cert-common.h"
+#include "utils.h"
+
+/* This program tests whether the certificate seen in Post Handshake Auth
+ * is found in a resumed session under TLS 1.3.
+ */
+
+static void server_log_func(int level, const char *str)
+{
+ fprintf(stderr, "server|<%d>| %s", level, str);
+}
+
+static void client_log_func(int level, const char *str)
+{
+ fprintf(stderr, "client|<%d>| %s", level, str);
+}
+
+static unsigned tickets_seen = 0;
+static int ticket_callback(gnutls_session_t session, unsigned int htype,
+ unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+{
+ gnutls_datum *d;
+ int ret;
+
+ assert(htype == GNUTLS_HANDSHAKE_NEW_SESSION_TICKET);
+
+ d = gnutls_session_get_ptr(session);
+
+ if (post == GNUTLS_HOOK_POST) {
+ tickets_seen++;
+ if (d->data)
+ gnutls_free(d->data);
+ ret = gnutls_session_get_data2(session, d);
+ assert(ret >= 0);
+ assert(d->size > 4);
+
+ return 0;
+ }
+
+ return 0;
+}
+
+static void client(int fd, unsigned flags, unsigned tickets)
+{
+ int ret;
+ gnutls_session_t session;
+ unsigned try = 0;
+ gnutls_datum_t session_data = {NULL, 0};
+ gnutls_certificate_credentials_t x509_cred;
+
+ global_init();
+ tickets_seen = 0;
+
+ if (debug) {
+ gnutls_global_set_log_function(client_log_func);
+ gnutls_global_set_log_level(7);
+ }
+
+ assert(gnutls_certificate_allocate_credentials(&x509_cred)>=0);
+
+ retry:
+ /* Initialize TLS session
+ */
+ assert(gnutls_init(&session, GNUTLS_CLIENT|flags)>=0);
+
+ gnutls_handshake_set_timeout(session, 20 * 1000);
+
+ ret = gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.0", NULL);
+ if (ret < 0)
+ fail("cannot set TLS 1.3 priorities\n");
+
+
+ if (try == 0) {
+ gnutls_session_set_ptr(session, &session_data);
+ gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_NEW_SESSION_TICKET,
+ GNUTLS_HOOK_BOTH,
+ ticket_callback);
+ } else {
+ assert(gnutls_session_set_data(session, session_data.data, session_data.size) >= 0);
+ }
+
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
+
+ gnutls_transport_set_int(session, fd);
+
+ /* Perform the TLS handshake
+ */
+ do {
+ ret = gnutls_handshake(session);
+ }
+ while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
+
+ if (ret != 0)
+ fail("handshake failed: %s\n", gnutls_strerror(ret));
+
+ do {
+ ret = gnutls_bye(session, GNUTLS_SHUT_RDWR);
+ } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+
+ if (ret != 0) {
+ fail("error in recv: %s\n", gnutls_strerror(ret));
+ }
+
+ if (tickets_seen != tickets)
+ fail("unexpected number of tickets received: %u != %u",
+ tickets_seen, tickets);
+
+ gnutls_deinit(session);
+
+ if (tickets > 0 && try == 0) {
+ try++;
+ goto retry;
+ }
+
+ close(fd);
+ gnutls_free(session_data.data);
+
+ gnutls_global_deinit();
+}
+
+static void server(int fd, unsigned flags,
+ unsigned tickets_sent, unsigned tickets_expected)
+{
+ int ret;
+ gnutls_session_t session;
+ gnutls_certificate_credentials_t x509_cred;
+ gnutls_datum_t skey;
+
+ /* this must be called once in the program
+ */
+ global_init();
+
+ assert(gnutls_session_ticket_key_generate(&skey)>=0);
+
+ if (debug) {
+ gnutls_global_set_log_function(server_log_func);
+ gnutls_global_set_log_level(4711);
+ }
+
+ gnutls_certificate_allocate_credentials(&x509_cred);
+ gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
+ &server_key,
+ GNUTLS_X509_FMT_PEM);
+
+ assert(gnutls_init(&session, GNUTLS_SERVER|flags)>=0);
+
+ assert(gnutls_session_ticket_enable_server(session, &skey) >= 0);
+ gnutls_handshake_set_timeout(session, 20 * 1000);
+
+ assert(gnutls_priority_set_direct(session, "NORMAL:+VERS-TLS1.3", NULL)>=0);
+
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
+
+ gnutls_transport_set_int(session, fd);
+
+ do {
+ ret = gnutls_handshake(session);
+ } while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
+
+ if (ret != 0)
+ fail("handshake failed: %s\n", gnutls_strerror(ret));
+
+ if (tickets_sent > 0) {
+ do {
+ ret = gnutls_session_ticket_send(session, tickets_sent, 0);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ }
+
+ do {
+ ret = gnutls_bye(session, GNUTLS_SHUT_RDWR);
+ } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ gnutls_deinit(session);
+
+ if (tickets_expected > 0) {
+ /* resume session
+ */
+ assert(gnutls_init(&session, GNUTLS_SERVER|flags)>=0);
+
+ assert(gnutls_session_ticket_enable_server(session, &skey) >= 0);
+ gnutls_handshake_set_timeout(session, 20 * 1000);
+ assert(gnutls_priority_set_direct(session, "NORMAL:+VERS-TLS1.3", NULL)>=0);
+
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
+
+ gnutls_transport_set_int(session, fd);
+
+ do {
+ ret = gnutls_handshake(session);
+ } while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
+
+ if (ret != 0)
+ fail("handshake failed: %s\n", gnutls_strerror(ret));
+
+ assert(gnutls_session_is_resumed(session) != 0);
+
+ gnutls_bye(session, GNUTLS_SHUT_RDWR);
+ gnutls_deinit(session);
+ }
+
+ gnutls_free(skey.data);
+ close(fd);
+ gnutls_certificate_free_credentials(x509_cred);
+
+ gnutls_global_deinit();
+
+ if (debug)
+ success("server: client/server hello were verified\n");
+}
+
+static void ch_handler(int sig)
+{
+ int status = 0;
+ wait(&status);
+ check_wait_status(status);
+ return;
+}
+
+static void start(const char *name,
+ unsigned flags,
+ unsigned tickets_sent,
+ unsigned tickets_expected)
+{
+ int fd[2];
+ int ret;
+ pid_t child;
+
+ success("testing: %s\n", name);
+
+ ret = socketpair(AF_UNIX, SOCK_STREAM, 0, fd);
+ if (ret < 0) {
+ perror("socketpair");
+ exit(1);
+ }
+
+ child = fork();
+ if (child < 0) {
+ perror("fork");
+ fail("fork");
+ exit(1);
+ }
+
+ if (child) {
+ /* parent */
+ close(fd[1]);
+ server(fd[0], flags, tickets_sent, tickets_expected);
+ kill(child, SIGTERM);
+ } else {
+ close(fd[0]);
+ client(fd[1], flags, tickets_expected);
+ exit(0);
+ }
+
+}
+
+void doit(void)
+{
+ signal(SIGCHLD, ch_handler);
+ signal(SIGPIPE, SIG_IGN);
+
+ start("auto send ticket 0", 0, 0, TLS13_TICKETS_TO_SEND);
+ start("auto send ticket 1", 0, 1, TLS13_TICKETS_TO_SEND + 1);
+ start("no auto send ticket 0", GNUTLS_NO_AUTO_SEND_TICKET, 0, 0);
+ start("no auto send ticket 1", GNUTLS_NO_AUTO_SEND_TICKET, 1, 1);
+}
+#endif /* _WIN32 */
diff --git a/tests/tls13/prf-early.c b/tests/tls13/prf-early.c
index 414b1db5ea..bc3196248f 100644
--- a/tests/tls13/prf-early.c
+++ b/tests/tls13/prf-early.c
@@ -123,10 +123,10 @@ static void dump(const char *name, const uint8_t *data, unsigned data_size)
} \
}
-#define KEY_EXP_VALUE "\xc0\x1e\xc2\xa4\xb7\xb4\x04\xaa\x91\x5d\xaf\xe8\xf7\x4d\x19\xdf\xd0\xe6\x08\xd6\xb4\x3b\xcf\xca\xc9\x32\x75\x3b\xe3\x11\x19\xb1\xac\x68"
-#define HELLO_VALUE "\x77\xdb\x10\x0b\xe8\xd0\xb9\x38\xbc\x49\xe6\xbe\xf2\x47\x2a\xcc\x6b\xea\xce\x85\x04\xd3\x9e\xd8\x06\x16\xad\xff\xcd\xbf\x4b"
-#define CONTEXT_VALUE "\xf2\x17\x9f\xf2\x66\x56\x87\x66\xf9\x5c\x8a\xd7\x4e\x1d\x46\xee\x0e\x44\x41\x4c\xcd\xac\xcb\xc0\x31\x41\x2a\xb6\xd7\x01\x62"
-#define NULL_CONTEXT_VALUE "\xcd\x79\x07\x93\xeb\x96\x07\x3e\xec\x78\x90\x89\xf7\x16\x42\x6d\x27\x87\x56\x7c\x7b\x60\x2b\x20\x44\xd1\xea\x0c\x89\xfb\x8b"
+#define KEY_EXP_VALUE "\xc1\x6b\x6c\xb9\x88\x33\xd5\x28\x80\xec\x27\x87\xa2\x6f\x4b\xd0\x01\x5e\x7f\xca\xd7\xd4\x8a\x3f\xe2\x48\x92\xef\x02\x14\xfb\x81\x90\x04"
+#define HELLO_VALUE "\x2a\x73\xd9\x74\x04\x4e\x0a\x5f\x41\x8a\x09\xcb\x45\x33\x1a\xec\xd3\xfc\xdc\x1b\x2c\x67\x26\xe4\x9c\xfe\x1f\xa5\x74\xf1\x4f"
+#define CONTEXT_VALUE "\x87\xf6\x88\xe3\xd7\xf2\x05\xbc\xa4\x10\xa3\x48\x9f\xf5\xcf\x97\x06\x22\x4e\xfd\x18\x32\x52\x1d\xbd\x26\xf5\x5b\x21\x20\xec"
+#define NULL_CONTEXT_VALUE "\xf9\xca\xfe\x45\x44\x96\xdb\xc5\x41\x8f\x7e\x8e\xd7\xb0\x7d\x19\x45\xaf\x09\xbc\x1e\x82\x94\xac\x55\xe5\xb9\xb4\x3b\xe8\xc0"
static int handshake_callback_called;
diff --git a/tests/tls13/prf-early.sh b/tests/tls13/prf-early.sh
index b19da4cb65..7f62aba8d8 100755
--- a/tests/tls13/prf-early.sh
+++ b/tests/tls13/prf-early.sh
@@ -23,7 +23,7 @@ builddir="${builddir:-.}"
. "${srcdir}/scripts/common.sh"
-check_for_datefudge
+skip_if_no_datefudge
datefudge -s 2019-04-12 "${builddir}/tls13/prf-early" "$@"
exit $?
diff --git a/tests/tls13/prf.c b/tests/tls13/prf.c
index a8a529bcb8..c9c9f80b7b 100644
--- a/tests/tls13/prf.c
+++ b/tests/tls13/prf.c
@@ -234,6 +234,12 @@ static void client(int fd)
exit(1);
}
+ ret = gnutls_prf_hash_get(session);
+ if (ret != GNUTLS_DIG_SHA384) {
+ fprintf(stderr, "negotiated unexpected hash: %s\n", gnutls_digest_get_name(ret));
+ exit(1);
+ }
+
check_prfs(session);
gnutls_bye(session, GNUTLS_SHUT_WR);
diff --git a/tests/tls_hello_random_value.c b/tests/tls_hello_random_value.c
new file mode 100644
index 0000000000..8841d2e2cc
--- /dev/null
+++ b/tests/tls_hello_random_value.c
@@ -0,0 +1,267 @@
+/*
+ * Copyright (C) 2017-2020 Red Hat, Inc.
+ *
+ * Author: Nikos Mavrogiannopoulos
+ *
+ * This file is part of GnuTLS.
+ *
+ * GnuTLS is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GnuTLS is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>
+ */
+
+/* This program tests whether the second DTLS client hello contains the same
+ * random value, and whether it is initialized.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#if defined(_WIN32)
+
+/* socketpair isn't supported on Win32. */
+int main(int argc, char **argv)
+{
+ exit(77);
+}
+
+#else
+
+#include <string.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#if !defined(_WIN32)
+#include <sys/wait.h>
+#include <signal.h>
+#endif
+#include <unistd.h>
+#include <gnutls/gnutls.h>
+#include <assert.h>
+
+#include "utils.h"
+#include "cert-common.h"
+
+const char *side = "";
+
+static void tls_log_func(int level, const char *str)
+{
+ fprintf(stderr, "%s|<%d>| %s", side, level, str);
+}
+
+static unsigned cb_called = 0;
+
+static int hello_callback(gnutls_session_t session, unsigned int htype,
+ unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+{
+ unsigned non_zero = 0, i;
+
+ if (htype == GNUTLS_HANDSHAKE_CLIENT_HELLO && post == GNUTLS_HOOK_POST) {
+ if (cb_called == 0) {
+ unsigned char crandom[32];
+ gnutls_datum_t tmp;
+ gnutls_session_get_random(session, &tmp, NULL);
+ assert(tmp.size == 32);
+
+ memcpy(crandom, tmp.data, tmp.size);
+ cb_called++;
+
+ /* check if uninitialized */
+ for (i=0;i<32;i++) {
+ if (crandom[i] != 0) {
+ non_zero++;
+ }
+ }
+ if (non_zero <= 8) {
+ fail("the client random value seems uninitialized\n");
+ }
+ } else {
+ cb_called++;
+ }
+ } else if (htype == GNUTLS_HANDSHAKE_SERVER_HELLO && post == GNUTLS_HOOK_POST) {
+ unsigned char crandom[32];
+ gnutls_datum_t tmp;
+ gnutls_session_get_random(session, NULL, &tmp);
+ assert(tmp.size == 32);
+
+ memcpy(crandom, tmp.data, tmp.size);
+
+ /* check if uninitialized */
+ for (i=0;i<32;i++) {
+ if (crandom[i] != 0) {
+ non_zero++;
+ }
+ }
+ if (non_zero <= 8) {
+ fail("the server random value seems uninitialized\n");
+ }
+ }
+
+ return 0;
+}
+
+static void client(int sd, const char *priority)
+{
+ int ret;
+ gnutls_session_t session;
+ gnutls_certificate_credentials_t clientx509cred;
+
+ gnutls_global_set_log_function(tls_log_func);
+ if (debug)
+ gnutls_global_set_log_level(4711);
+
+ side = "client";
+
+ gnutls_certificate_allocate_credentials(&clientx509cred);
+
+ assert(gnutls_init(&session, GNUTLS_CLIENT)>=0);
+
+ if (!priority) {
+ assert(gnutls_set_default_priority(session) >= 0);
+ } else {
+ assert(gnutls_priority_set_direct(session, priority, NULL) >= 0);
+ }
+
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
+ clientx509cred);
+
+ gnutls_transport_set_int(session, sd);
+ gnutls_handshake_set_timeout(session, 20 * 1000);
+
+ gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_ANY,
+ GNUTLS_HOOK_BOTH, hello_callback);
+
+ ret = gnutls_handshake(session);
+
+ if (ret < 0) {
+ fail("client: Handshake failed: %s\n", gnutls_strerror(ret));
+ } else {
+ if (debug)
+ success("client: Handshake was completed\n");
+ }
+
+ if (cb_called != 1) {
+ fail("client: the callback was not seen (%d)!\n", cb_called);
+ }
+
+ gnutls_bye(session, GNUTLS_SHUT_WR);
+ close(sd);
+
+ gnutls_deinit(session);
+
+ gnutls_certificate_free_credentials(clientx509cred);
+}
+
+static void server(int sd, const char *priority)
+{
+ int ret;
+ gnutls_certificate_credentials_t serverx509cred;
+ gnutls_session_t session;
+
+ gnutls_global_set_log_function(tls_log_func);
+ if (debug)
+ gnutls_global_set_log_level(4711);
+
+ side = "server";
+
+ assert(gnutls_certificate_allocate_credentials(&serverx509cred)>=0);
+ assert(gnutls_certificate_set_x509_key_mem(serverx509cred,
+ &server_cert, &server_key,
+ GNUTLS_X509_FMT_PEM)>=0);
+
+ assert(gnutls_init(&session, GNUTLS_SERVER)>=0);
+ assert(session != NULL);
+
+ if (!priority) {
+ assert(gnutls_set_default_priority(session) >= 0);
+ } else {
+ assert(gnutls_priority_set_direct(session, priority, NULL) >= 0);
+ }
+
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
+ serverx509cred);
+
+ gnutls_transport_set_int(session, sd);
+ gnutls_handshake_set_timeout(session, 20 * 1000);
+
+ ret = gnutls_handshake(session);
+ if (ret < 0) {
+ fail("server: Handshake has failed: %s\n\n",
+ gnutls_strerror(ret));
+ }
+ if (debug)
+ success("server: Handshake was completed\n");
+
+ /* do not wait for the peer to close the connection.
+ */
+ gnutls_bye(session, GNUTLS_SHUT_WR);
+ close(sd);
+ gnutls_deinit(session);
+
+ gnutls_certificate_free_credentials(serverx509cred);
+
+ if (debug)
+ success("server: finished\n");
+}
+
+static void start(const char *name, const char *priority)
+{
+ pid_t child;
+ int sockets[2];
+ int err;
+
+ success("testing: %s\n", name);
+ cb_called = 0;
+
+ err = socketpair(AF_UNIX, SOCK_STREAM, 0, sockets);
+ if (err == -1) {
+ perror("socketpair");
+ fail("socketpair failed\n");
+ return;
+ }
+
+ child = fork();
+ if (child < 0) {
+ perror("fork");
+ fail("fork");
+ return;
+ }
+
+ if (child) {
+ int status = 0;
+ /* parent */
+ close(sockets[1]);
+ client(sockets[0], priority);
+ wait(&status);
+ check_wait_status(status);
+ } else {
+ close(sockets[0]);
+ server(sockets[1], priority);
+ exit(0);
+ }
+}
+
+void doit(void)
+{
+ signal(SIGPIPE, SIG_IGN);
+
+ start("default", NULL);
+ start("tls1.3", "NORMAL:-VERS-ALL:+VERS-TLS1.3");
+ start("tls1.2", "NORMAL:-VERS-ALL:+VERS-TLS1.2");
+ start("tls1.1", "NORMAL:-VERS-ALL:+VERS-TLS1.1");
+ start("tls1.0", "NORMAL:-VERS-ALL:+VERS-TLS1.0");
+}
+
+#endif /* _WIN32 */
diff --git a/tests/utils.h b/tests/utils.h
index 61d6dc9f9e..935368088a 100644
--- a/tests/utils.h
+++ b/tests/utils.h
@@ -41,13 +41,13 @@
# error tests cannot be compiled with NDEBUG defined
#endif
-#if _GNUTLS_GCC_VERSION >= 70100
-#define FALLTHROUGH __attribute__ ((fallthrough))
-#endif
-
#ifndef FALLTHROUGH
+#if _GNUTLS_GCC_VERSION >= 70100
+# define FALLTHROUGH __attribute__ ((fallthrough))
+#else
# define FALLTHROUGH
#endif
+#endif
/* number of elements within an array */
#define countof(a) (sizeof(a)/sizeof(*(a)))
diff --git a/tests/x509cert-dntypes.c b/tests/x509cert-dntypes.c
new file mode 100644
index 0000000000..10d795012d
--- /dev/null
+++ b/tests/x509cert-dntypes.c
@@ -0,0 +1,134 @@
+/*
+ * Copyright (C) 2020 Pierre Ossman for Cendio AB
+ *
+ * Author: Pierre Ossman
+ *
+ * This file is part of GnuTLS.
+ *
+ * GnuTLS is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GnuTLS is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GnuTLS; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <gnutls/gnutls.h>
+#include <gnutls/x509.h>
+
+#include "utils.h"
+
+static void tls_log_func(int level, const char *str)
+{
+ fprintf(stderr, "<%d>| %s", level, str);
+}
+
+/* the issuer/subject connection between the server cert and the CA
+ * cert uses different ASN.1 types, which is uncommon but allowed */
+
+static unsigned char server_pem[] =
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDZTCCAc2gAwIBAgIUB7aVTQvtbBpOEtKELkBkLViM0eIwDQYJKoZIhvcNAQEL\n"
+ "BQAwEjEQMA4GA1UEAwwHVGVzdCBDQTAeFw0yMDAzMjYxMDE4NTdaFw0yMTAzMjYx\n"
+ "MDE4NTdaMBYxFDASBgNVBAMMC1Rlc3QgY2xpZW50MIIBIjANBgkqhkiG9w0BAQEF\n"
+ "AAOCAQ8AMIIBCgKCAQEAviqj5S/xe39agbMnq/oPAQmdIhalB17Ewc3AZlD8n+zQ\n"
+ "scPDNvnk4gxSeSXePtXmh0OaGcBKbMAkjiyo2gPBmV3ay34LQuk97nJxE2TUAWMm\n"
+ "S8yFwP3yoE+GZ5eYjv+HGQxeAP9uHLjho/jHjVGgUOCVv1QjsKyRx8Tuvy9TH3ON\n"
+ "DuMPw3Jmnq0OhLy2+SjU0ug5jxfWJvnfeGoFzRgalmWGyoAQsH9bqha/D44QSen+\n"
+ "Zbbt/A4uNIILAENYuHXEfvpmBuZPpocOb6h2huGbp6iHZfdZUHso37UmWT6PXh+2\n"
+ "dASPaCpAr3bURBhnEsQM43njb8METZewMeoQxwZC0QIDAQABoy8wLTAMBgNVHRMB\n"
+ "Af8EAjAAMB0GA1UdDgQWBBSb3h7ZbajS/2RWx2a7hTVSkur0FDANBgkqhkiG9w0B\n"
+ "AQsFAAOCAYEAPfwyvOwNEjIvlifjBVhiWmrtZAS2YaY9jqFnaA2PvYY2FVyC3AMu\n"
+ "3BGAorau/4DL3P92/9SlygEmBQpqCq+AJnQRH6WKFT4avAOmw3yc0++st+DhGK0I\n"
+ "6Cr69WccVi0Kmxi1XP4dpPDWSuVCOP6rGc3ulgEH83xF4ZL+3qVA9Fihsie3ZZme\n"
+ "7mqWOznVO1MZHLDFIUEoRdOSin5bIkl7FPOCZqMsWRM41GuA1h4aX/X5dLeqRW1c\n"
+ "mJ5CNRWwPIPcwgqeldFnx07svCv9QseUDaIw+C9vZOlgfIgp0qeYoR6fsD38WcUC\n"
+ "eJPsOUwhdhMcw+/PM16iwzd89dI+PCecFY9FeLh9YeihZm0DnG8L0To1Y2ry+WRf\n"
+ "w5knR3FReHPcelymvSKZSEG0d/KKHXBeKWgcrCrdnn4ya71eblsNzO3vnxB5k0Zj\n"
+ "WcQ3wfeftQKDEIuaRHUP6B4zx2teJWMWvJLcXuavoqo0z3L5EN74RztCpnP9ykSH\n"
+ "ZsYWoJ3aelFv\n"
+ "-----END CERTIFICATE-----\n";
+
+static unsigned char ca_pem[] =
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIID5DCCAkygAwIBAgIUB4lnLAeQ20wlYbqt5ykgvWOPNzgwDQYJKoZIhvcNAQEL\n"
+ "BQAwEjEQMA4GA1UEAxMHVGVzdCBDQTAeFw0yMDAzMjYxMDI0MjhaFw0yMDAzMjcx\n"
+ "MDI0MjhaMBIxEDAOBgNVBAMTB1Rlc3QgQ0EwggGiMA0GCSqGSIb3DQEBAQUAA4IB\n"
+ "jwAwggGKAoIBgQCt9z/noU7qCPquzzgwNvu/rwXyIvxmqdWhpfpBOmVq8wpgUDUU\n"
+ "cQ94F65UfTo3EcYXCoDs43E4Wo8KmF5YQM2xK+LrH28XmpL3z+NoQGaZoUVrMWp6\n"
+ "rbIeoGZvITaaGn2uEbGT7iRkBUdS4wOjUT13IxpG8cM4d0i0DIsqSlUPnQCfyMqf\n"
+ "jsVhO9IQsn7qMo0+2nNCI5JqblEXRvL39hHzJMOsq1NRqZO1Zjt9HCIB7m7Q42Jx\n"
+ "e8zm7RzTiBFVKecxb5h4mmt3tUZQ0Kjd94yE6ARSE0rULmO+6H7hgI6sU8vqfSFe\n"
+ "DimQ5mPReumBRDcErX+c7bRGPRul41kAB8XvPmAHG8xCepjH8xrgY/FeVBQT74xm\n"
+ "MEYQaxdGpa8Azx6MZCrZOI0rzu+zI0CBQGE1h1Xk8HBozrn/G2OOAZcXyzHzq56R\n"
+ "Z52zEQYFZmKH9tHTDI6fMfo8clr7esb/wmgEOt/lJYE9IMJrzUh+IwWuowdYaDVj\n"
+ "nMrboUBVepmBKSUCAwEAAaMyMDAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU\n"
+ "rhkYiczAkbCcVfNr67VGGaqilbgwDQYJKoZIhvcNAQELBQADggGBAGYiUTKdYBXk\n"
+ "lZFIhZkCc33/lCgJw2mSrdAd+xJmJonRPy3qmYy3HniOmQdRVqResLALubz89VjJ\n"
+ "dSeokujFrlNtb4CygojseqTsxWgeZlKjLU3tJ/Xn+DFIiP7k9+WPW7KFIIW0fq61\n"
+ "MAI0lKjqpC8sJTlXoJemDw9MW/380nKr+K1YY3arRzsSHEIeA54xOggKEwvgz11A\n"
+ "47xT83WoLwFQ4e9LZfCsL/M51lsLHAlJzDKyTTeSxCi/C6kUIzx8QyxHKYgBuNxz\n"
+ "8vVLY/YzUv/l5ELYQ9gkAX0vZWdw7pqASUY8yvbzImrWqjFAHeN3zK687Ke9uppS\n"
+ "dmjvPwvTK+SKm++NR8YCwb3xqHQHMYHV3lxjlOhaN6rxBW0l4gtvb2FMlhcljiZ+\n"
+ "tF2ObVwEs6nqJSGrzubp0os+WmnbVSCaHz9jnRWb68C87mXCZkbA7FTSKJOVuqRM\n"
+ "vVTcHQ7jwGQ2/SvikndFQ53zi2j9o/jTOiFv29rEOeHu67UAiFSi2A==\n"
+ "-----END CERTIFICATE-----\n";
+
+const gnutls_datum_t server = { server_pem, sizeof(server_pem)-1 };
+const gnutls_datum_t ca = { ca_pem, sizeof(ca_pem)-1 };
+
+void doit(void)
+{
+ int ret;
+ gnutls_x509_crt_t server_crt, ca_crt;
+
+ /* this must be called once in the program
+ */
+ global_init();
+
+ gnutls_global_set_log_function(tls_log_func);
+ if (debug)
+ gnutls_global_set_log_level(6);
+
+ gnutls_x509_crt_init(&server_crt);
+
+ ret =
+ gnutls_x509_crt_import(server_crt, &server, GNUTLS_X509_FMT_PEM);
+ if (ret < 0)
+ fail("gnutls_x509_crt_import");
+
+ gnutls_x509_crt_init(&ca_crt);
+
+ ret =
+ gnutls_x509_crt_import(ca_crt, &ca, GNUTLS_X509_FMT_PEM);
+ if (ret < 0)
+ fail("gnutls_x509_crt_import");
+
+ ret = gnutls_x509_crt_check_issuer(server_crt, ca_crt);
+ if (!ret)
+ fail("gnutls_x509_crt_check_issuer");
+
+ gnutls_x509_crt_deinit(ca_crt);
+ gnutls_x509_crt_deinit(server_crt);
+
+ gnutls_global_deinit();
+
+ if (debug)
+ success("success");
+}